@iflyrpa/actions 1.2.11 → 1.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/baijiahaoPublish/index.d.ts +7 -1
- package/dist/actions/common/FansTool/index.d.ts +19 -0
- package/dist/actions/getBaijiaohaoConfig/index.d.ts +13 -0
- package/dist/actions/searchToutiaoLocation/index.d.ts +7 -0
- package/dist/actions/searchToutiaoUserID/index.d.ts +7 -0
- package/dist/actions/toutiaoPublish/index.d.ts +16 -0
- package/dist/actions/weixinPublish/index.d.ts +1 -0
- package/dist/bundle.js +1619 -80
- package/dist/bundle.js.map +1 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +4353 -2801
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1631 -80
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.ts +35 -5
- package/dist/utils/index.d.ts +9 -0
- package/package.json +1 -1
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sources":["webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/browser.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/common.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/node.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/follow-redirects@1.15.9/node_modules/follow-redirects/debug.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/follow-redirects@1.15.9/node_modules/follow-redirects/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/form_data.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/populate.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/encode-html.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Tokenizer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Parser.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/helpers.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/bind.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/utils.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/AxiosError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/classes/FormData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/toFormData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/buildURL.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/InterceptorManager.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/defaults/transitional.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/classes/URLSearchParams.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/common/utils.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/defaults/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/parseHeaders.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/AxiosHeaders.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/transformData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/isCancel.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/CanceledError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/settle.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/combineURLs.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/buildFullPath.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/env/data.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/parseProtocol.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/fromDataURI.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/AxiosTransformStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/readBlob.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/formDataToStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/callbackify.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/speedometer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/throttle.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/http.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/cookies.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/mergeConfig.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/resolveConfig.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/xhr.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/composeSignals.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/trackStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/fetch.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/adapters.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/dispatchRequest.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/validator.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/Axios.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/CancelToken.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/spread.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isAxiosError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/axios.js","webpack://@iflyrpa/actions/./src/utils/http.ts","webpack://@iflyrpa/actions/./src/utils/index.ts","webpack://@iflyrpa/actions/../share/dist/index.mjs","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/getBaijiahaoActivity/index.ts","webpack://@iflyrpa/actions/./src/actions/getToutiaoConfig/index.ts","webpack://@iflyrpa/actions/./src/actions/searchToutiaoTopicList/index.ts","webpack://@iflyrpa/actions/./src/actions/searchXiaohongshuLocation/index.ts","webpack://@iflyrpa/actions/./src/actions/searchXiaohongshuTopicList/index.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/utils.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/index.ts","webpack://@iflyrpa/actions/./src/utils/xhsXsEncrypt.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/index.ts","webpack://@iflyrpa/actions/./src/index.ts"],"sourcesContent":["module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\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\tlet m;\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 && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[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.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...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","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","'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","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\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","/**\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","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet flagForceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tflagForceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.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, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m') ||\n\t\t\thasFlag('color=full') ||\n\t\t\thasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\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', 'DRONE'].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 = Number.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, options = {}) {\n\tconst level = supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options\n\t});\n\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel({isTTY: tty.isatty(1)}),\n\tstderr: getSupportLevel({isTTY: tty.isatty(2)})\n};\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map","import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map","// Generated using scripts/write-encode-map.ts\nfunction restoreDiff(arr) {\n for (let i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexport default new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [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, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [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, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [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, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [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, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [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, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [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, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [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, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nexport function decode(data, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(data, mode);\n }\n return decodeXML(data);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(data, options = EntityLevel.XML) {\n var _a;\n const opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);\n return decode(data, opts);\n}\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nexport function encode(data, options = EntityLevel.XML) {\n const opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return escapeUTF8(data);\n if (opts.mode === EncodingMode.Attribute)\n return escapeAttribute(data);\n if (opts.mode === EncodingMode.Text)\n return escapeText(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return encodeNonAsciiHTML(data);\n }\n return encodeHTML(data);\n }\n // ASCII and Extensive are equivalent\n return encodeXML(data);\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","export const elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map((val) => [val.toLowerCase(), val]));\nexport const attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map((val) => [val.toLowerCase(), val]));\n","/*\n * Module dependencies\n */\nimport * as ElementType from \"domelementtype\";\nimport { encodeXML, escapeAttribute, escapeText } from \"entities\";\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nimport { elementNames, attributeNames } from \"./foreignNames.js\";\nconst unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML\n : escapeAttribute;\n return Object.keys(attributes)\n .map((key) => {\n var _a, _b;\n const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return `${key}=\"${encode(value)}\"`;\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nconst singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nexport function render(node, options = {}) {\n const nodes = \"length\" in node ? node : [node];\n let output = \"\";\n for (let i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexport default render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nconst foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = { ...opts, xmlMode: false };\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = { ...opts, xmlMode: \"foreign\" };\n }\n let tag = `<${elem.name}`;\n const attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += ` ${attribs}`;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += `</${elem.name}>`;\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return `<${elem.data}>`;\n}\nfunction renderText(elem, opts) {\n var _a;\n let data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML(data)\n : escapeText(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return `<![CDATA[${elem.children[0].data}]]>`;\n}\nfunction renderComment(elem) {\n return `<!--${elem.data}-->`;\n}\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","import { EntityDecoder, DecodingMode, htmlDecodeTree, xmlDecodeTree, } from \"entities/lib/decode.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"BeforeSpecialT\"] = 23] = \"BeforeSpecialT\";\n State[State[\"SpecialStartSequence\"] = 24] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 25] = \"InSpecialTag\";\n State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (this.xmlMode) {\n this.state = State.InTagName;\n }\n else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n }\n else if (lower === Sequences.TitleEnd[2]) {\n this.state = State.BeforeSpecialT;\n }\n else {\n this.state = State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index + 1);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeSpecialT(c) {\n const lower = c | 0x20;\n if (lower === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n }\n else if (lower === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute);\n }\n stateInEntity() {\n const length = this.entityDecoder.write(this.buffer, this.index - this.offset);\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n }\n else {\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.BeforeSpecialT: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(cp);\n }\n else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/lib/decode.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e, _f;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : this.htmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;\n this.recognizeSelfClosing =\n (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;\n this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer)(this.options, this);\n this.foreignContext = [!this.htmlMode];\n (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp, endIndex) {\n var _a, _b;\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n */\n isVoidElement(name) {\n return this.htmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))) {\n this.foreignContext.shift();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index <= pos; index++) {\n const element = this.stack.shift();\n // We know the stack has sufficient elements.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, index !== pos);\n }\n }\n else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\");\n (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", {}, true);\n (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.shift();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (!this.htmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(!this.htmlMode);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map","import { hasChildren } from \"domhandler\";\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nexport function removeSubsets(nodes) {\n let idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n const node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nexport var DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nexport function compareDocumentPosition(nodeA, nodeB) {\n const aParents = [];\n const bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n let current = hasChildren(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = hasChildren(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n const maxIdx = Math.min(aParents.length, bParents.length);\n let idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n const sharedParent = aParents[idx - 1];\n const siblings = sharedParent.children;\n const aSibling = aParents[idx];\n const bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nexport function uniqueSort(nodes) {\n nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1));\n nodes.sort((a, b) => {\n const relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","export const VERSION = \"1.7.8\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import util from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport proxyFromEnv from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import type { ResponseData } from \"@iflyrpa/share\";\nimport axios, {\n\ttype AxiosError,\n\ttype AxiosInstance,\n\ttype AxiosResponse,\n\ttype CreateAxiosDefaults,\n\ttype AxiosRequestConfig,\n} from \"axios\";\n\nexport class Http {\n\tprivate apiClient: AxiosInstance;\n\n\tstatic handleApiError(error: unknown): ResponseData {\n\t\t// 如果错误已经是 ResponseData 格式,直接抛出\n\t\tif (error && typeof error === \"object\" && \"code\" in error && \"message\" in error) {\n\t\t\treturn error as ResponseData;\n\t\t}\n\n\t\t// 处理其他类型的错误\n\t\treturn {\n\t\t\tcode: 500,\n\t\t\tmessage: \"\",\n\t\t\tdata: error,\n\t\t};\n\t}\n\n\tconstructor(config?: CreateAxiosDefaults) {\n\t\tthis.apiClient = axios.create(config);\n\t}\n\n\t// 添加响应拦截器\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\tpublic addResponseInterceptor<T = any>(findError: (response: AxiosResponse<T>) => ResponseData | undefined) {\n\t\tthis.apiClient.interceptors.response.use(\n\t\t\t(response) => {\n\t\t\t\t// 检查响应中的 errno 字段\n\t\t\t\tconst error = findError(response);\n\n\t\t\t\tif (error) {\n\t\t\t\t\treturn Promise.reject(\n\t\t\t\t\t\tObject.assign(error, {\n\t\t\t\t\t\t\textra: {\n\t\t\t\t\t\t\t\tmethod: response.config.method,\n\t\t\t\t\t\t\t\turl: response.config.url,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t},\n\t\t\t(error: AxiosError) => {\n\t\t\t\t// 创建标准错误响应格式\n\t\t\t\tconst errorResponse: ResponseData = {\n\t\t\t\t\tcode: error.response?.status || 500,\n\t\t\t\t\tmessage: error.message || \"\",\n\t\t\t\t\tdata: error.response?.data,\n\t\t\t\t\textra: {\n\t\t\t\t\t\tmethod: error.config?.method,\n\t\t\t\t\t\turl: error.config?.url,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\t// 如果服务端返回了详细错误信息,可以使用服务端的错误信息\n\t\t\t\tif (error.response?.data) {\n\t\t\t\t\tif (typeof error.response.data === \"object\") {\n\t\t\t\t\t\t// 如果服务端返回的是对象,可以尝试提取错误信息\n\t\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\t\t\t\t\tconst serverError = error.response.data as any;\n\t\t\t\t\t\tif (serverError.message) {\n\t\t\t\t\t\t\terrorResponse.message = serverError.message;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// 可以保留原始错误数据\n\t\t\t\t\t\terrorResponse.data = serverError;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 返回标准化的错误响应\n\t\t\t\treturn Promise.reject(errorResponse);\n\t\t\t},\n\t\t);\n\t}\n\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\tpublic async api<T = any>(config: AxiosRequestConfig): Promise<T> {\n\t\ttry {\n\t\t\tconst response = await this.apiClient<T>(config);\n\t\t\treturn response.data;\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(Http.handleApiError(error));\n\t\t}\n\t}\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport type { CommonAction, Page, ResponseData } from \"@iflyrpa/share\";\nimport domSerializer from \"dom-serializer\";\nimport { type ChildNode, DomHandler, type Element } from \"domhandler\";\nimport { DomUtils, Parser } from \"htmlparser2\";\nimport mime from \"mime-types\";\n\nimport { Http } from \"./http\";\n\n/**\n * 生成两数之间的随机整数\n * @param min\n * @param max\n * @returns\n */\nexport function getRandomInRange(min: number, max: number) {\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nexport const getFileState = (filePath: string) => {\n\t// 获取文件名\n\tconst filename = path.basename(filePath);\n\t// 获取文件类型\n\tconst fileType = mime.lookup(filePath);\n\tconst stats = fs.statSync(filePath);\n\t// 获取文件大小\n\tconst fileSize = stats.size;\n\t// 获取最后修改时间\n\tconst lastModifiedDate = stats.mtime;\n\n\treturn {\n\t\tname: filename,\n\t\ttype: fileType,\n\t\tsize: fileSize,\n\t\tlastModifiedDate: lastModifiedDate.toString(),\n\t};\n};\n\nexport type AspectRatio = [number, number];\nexport type CropCoordinates = {\n\tx1: number;\n\ty1: number;\n\tx2: number;\n\ty2: number;\n};\n\n/**\n * 获取特定的比例切割图片,获取切割的坐标\n * @param width 图片长度\n * @param height 图片高度\n * @param aspectRatio 切割比例:[宽度,高度]\n * @returns\n */\nexport const calculateCropCoordinates = (width: number, height: number, aspectRatio: AspectRatio): CropCoordinates => {\n\tconst targetRatio = aspectRatio[0] / aspectRatio[1];\n\tlet cropWidth: number;\n\tlet cropHeight: number;\n\n\tif (width / height > targetRatio) {\n\t\t// 图片过宽,需要裁切宽度\n\t\tcropHeight = height;\n\t\tcropWidth = height * targetRatio;\n\t} else {\n\t\t// 图片过高,需要裁切高度\n\t\tcropWidth = width;\n\t\tcropHeight = width / targetRatio;\n\t}\n\n\tconst x1 = (width - cropWidth) / 2;\n\tconst y1 = (height - cropHeight) / 2;\n\tconst x2 = x1 + cropWidth;\n\tconst y2 = y1 + cropHeight;\n\n\t// 返回百分比坐标\n\treturn {\n\t\tx1: x1 / width,\n\t\ty1: y1 / height,\n\t\tx2: x2 / width,\n\t\ty2: y2 / height,\n\t};\n};\n\n// 提取 html 中的 img 标签\nexport const extractImgTag = (html: string) => {\n\tconst srcList: string[] = [];\n\n\tconst parser = new Parser({\n\t\tonopentag(name, attributes) {\n\t\t\tif (name === \"img\" && (attributes.src.trim() || attributes.currentSrc.trim())) {\n\t\t\t\tsrcList.push(attributes.src.trim() || attributes.currentSrc.trim());\n\t\t\t}\n\t\t},\n\t});\n\n\tparser.write(html);\n\tparser.end();\n\n\treturn srcList;\n};\n\nexport const replaceImgSrc = (html: string, callback: (dom: Element) => Element) => {\n\tlet lastedHtml = html;\n\n\tconst isImageTag = (node: ChildNode): node is Element => node.type === \"tag\" && node.name === \"img\";\n\n\tconst traverseDom = (node: ChildNode) => {\n\t\tif (DomUtils.hasChildren(node)) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tif (isImageTag(child)) {\n\t\t\t\t\tcallback(child);\n\t\t\t\t}\n\t\t\t\ttraverseDom(child);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handler = new DomHandler((error, dom) => {\n\t\tif (error) {\n\t\t\tconsole.log(error);\n\t\t} else {\n\t\t\t// 处理 DOM 节点的函数\n\t\t\tdom.forEach(traverseDom);\n\t\t}\n\n\t\tlastedHtml = domSerializer(dom, { decodeEntities: false });\n\t});\n\n\tconst parser = new Parser(handler, { decodeEntities: false });\n\tparser.write(html);\n\tparser.end();\n\n\treturn lastedHtml;\n};\n\nexport const stringifyError = (error: unknown) => {\n\tif (error instanceof Error) {\n\t\treturn error.toString();\n\t}\n\n\tif (typeof error === \"object\") {\n\t\treturn JSON.stringify(error);\n\t}\n\n\treturn error;\n};\n\n/**\n * 创建一个函数,该函数会依次执行传入的函数列表,直到有一个函数成功或所有函数都失败。\n *\n * @template P - 函数的参数类型,为一个任意长度的数组。\n * @template T - 函数的返回类型,为一个 Promise 的解析值类型。\n * @param {CommonAction<P, T>[]} actions - 一个函数列表,每个函数的类型为 `(...p: P) => Promise<T>`。\n * @returns {CommonAction<P, T>} - 返回一个新的函数,其类型与传入的函数列表中的函数类型相同。\n * 当调用该函数时,会依次执行 `actions` 中的函数,直到有一个函数成功(即返回一个解析的 Promise),\n * 或者所有函数都失败(即抛出异常)。如果所有函数都失败,则抛出最后一个错误。\n *\n * @example\n * const action1 = async (num) => {\n * if (num > 0) return \"Action 1 succeeded\";\n * throw new Error(\"Action 1 failed\");\n * };\n *\n * const action2 = async (num) => {\n * if (num > 1) return \"Action 2 succeeded\";\n * throw new Error(\"Action 2 failed\");\n * };\n *\n * const combinedAction = executeAction(action1, action2);\n *\n * (async () => {\n * try {\n * const result = await combinedAction(1);\n * console.log(result); // 输出: \"Action 2 succeeded\"\n * } catch (error) {\n * console.error(error.message);\n * }\n * })();\n */\nexport const executeAction = <P, T>(...actions: CommonAction<P, T>[]): CommonAction<P, T> => {\n\treturn async (task, params) => {\n\t\tlet result: ResponseData<T> = {\n\t\t\tcode: 500,\n\t\t\tmessage: \"\",\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\t\tdata: null as any,\n\t\t};\n\n\t\tfor (let index = 0; index < actions.length; index++) {\n\t\t\tconst action = actions[index];\n\n\t\t\ttry {\n\t\t\t\tresult = await action(task, params);\n\t\t\t} catch (error) {\n\t\t\t\tresult = Http.handleApiError(error);\n\t\t\t}\n\n\t\t\t// code === 0 表示成功, code === 200 虽然表示失败,但是不需要继续执行后续的 action\n\t\t\tif (result.code === 0 || result.code === 200) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\t// 不是最后一个 action,上报错误信息\n\t\t\tif (index !== actions.length - 1) {\n\t\t\t\ttask.logger.error(result.message, stringifyError(result.data), result.extra);\n\t\t\t}\n\t\t}\n\n\t\t// 所有 action 都执行完毕但都失败了,返回最后一个失败结果\n\t\treturn result;\n\t};\n};\n\n/**\n * 将 HTML 内容复制到剪贴板\n * @param page - 页面对象\n * @param html - HTML 内容\n * @param options - 选项,包括格式和回退\n * @returns 无返回值\n */\nexport async function copyHtmlToClipboard(page: Page, html: string, options = { format: \"text/html\", fallback: true }) {\n\ttry {\n\t\t// 尝试使用原生 API\n\t\tawait page.evaluate(\n\t\t\tasync ({ htmlContent, format }) => {\n\t\t\t\tconst blob = new Blob([htmlContent], { type: format });\n\t\t\t\tawait navigator.clipboard.write([new ClipboardItem({ [format]: blob })]);\n\t\t\t},\n\t\t\t{ htmlContent: html, format: options.format },\n\t\t);\n\t} catch (error) {\n\t\tif (options.fallback) {\n\t\t\t// 回退到 DOM 操作\n\t\t\tawait page.evaluate((htmlContent) => {\n\t\t\t\tconst div = document.createElement(\"div\");\n\t\t\t\tdiv.contentEditable = \"true\";\n\t\t\t\tdiv.style.cssText = `\n position: fixed;\n left: -9999px;\n opacity: 0;\n pointer-events: none;\n `;\n\n\t\t\t\tdiv.innerHTML = htmlContent;\n\t\t\t\tdocument.body.appendChild(div);\n\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(div);\n\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <忽略错误>\n\t\t\t\tconst selection = window.getSelection()!;\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\tdocument.body.removeChild(div);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t}, html);\n\t\t}\n\t}\n}\n\n/**\n * 通用弹窗监听处理器\n * @param page - Playwright 页面对象\n * @param popupSelector - 弹窗的选择器(字符串或 Locator)\n * @param popKey - 弹窗中的唯一键(字符串)\n * @param buttonSelector - 弹窗中需要点击的按钮选择器\n * @param options - 可选配置项\n */\nexport function PopupListener(\n\tpage: Page, \n\tpopupSelector: string, \n\tpopKey: string, \n\tbuttonSelector: string, \n\toptions:{\n\t\tcheckInterval?: number;\n\t\tstopAfterClick?: boolean;\n\t} = {}) {\n\tconst {\n\t\tcheckInterval = 1000,\n\t\tstopAfterClick = false\n\t} = options;\n\n\tconst popup = page.locator(popupSelector);\n\tconst button = page.locator(buttonSelector);\n\n\tconst intervalId = setInterval(async () => {\n\t\ttry {\n\t\t\tif (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent()||\"\").includes(popKey)) {\n\t\t\t\tawait button.click({ force: true });\n\n\t\t\t\tif (stopAfterClick) {\n\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) { }\n\t}, checkInterval);\n\n\treturn () => {\n\t\tclearInterval(intervalId);\n\t};\n}\n\n// 将 url 的 queryString 解析成对象\nexport const parseUrlQueryString = (url: string) => {\n\tconst queryStringObject: Record<string, string> = {};\n\n\t// 检查 URL 是否包含查询参数\n\tif (!url || !url.includes(\"?\")) {\n\t\treturn queryStringObject;\n\t}\n\n\t// 提取查询字符串部分\n\tconst queryString = url.split(\"?\")[1];\n\n\t// 检查查询字符串是否为空\n\tif (!queryString) {\n\t\treturn queryStringObject;\n\t}\n\n\t// 处理 hash 部分\n\tconst queryWithoutHash = queryString.split(\"#\")[0];\n\n\t// 分割查询参数\n\tconst queryStringArray = queryWithoutHash.split(\"&\");\n\n\tfor (const item of queryStringArray) {\n\t\t// 跳过空参数\n\t\tif (!item) continue;\n\n\t\tconst equalIndex = item.indexOf(\"=\");\n\n\t\t// 处理没有值的参数 (如 ?param)\n\t\tif (equalIndex === -1) {\n\t\t\tqueryStringObject[item] = \"\";\n\t\t} else {\n\t\t\tconst key = item.slice(0, equalIndex);\n\t\t\tconst value = item.slice(equalIndex + 1);\n\n\t\t\t// 尝试解码,如果解码失败则使用原始值\n\t\t\ttry {\n\t\t\t\tqueryStringObject[key] = decodeURIComponent(value);\n\t\t\t} catch (e) {\n\t\t\t\tqueryStringObject[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn queryStringObject;\n};\n\n/**\n * 合并默认参数\n * @param params\n * @param defaults\n * @returns\n */\nexport const defaultParams = <P = Record<string, unknown>>(params: P, defaults: Partial<P>): P => {\n\treturn Object.assign({}, defaults, params);\n};\n","import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from \"node:fs\";\nimport * as __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__ from \"node:https\";\nimport * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from \"node:path\";\nfunction pathExists(path) {\n return new Promise((resolve)=>{\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(path, (err)=>{\n resolve(!err);\n });\n });\n}\nfunction ensureFileSync(filePath) {\n const dirPath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].dirname(filePath);\n try {\n if (!__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].existsSync(dirPath)) __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].mkdirSync(dirPath, {\n recursive: true\n });\n } catch (err) {\n if (err instanceof Error) throw new Error(`Error creating directory: ${err.message}`);\n }\n try {\n if (!__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].existsSync(filePath)) __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFileSync(filePath, \"\");\n } catch (err) {\n if (err instanceof Error) throw new Error(`Error creating file: ${err.message}`);\n }\n}\nfunction writeFile(filePath, data) {\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFile(filePath, data, (err)=>{\n if (err) {\n console.error(\"Error writing file:\", err);\n reject();\n } else {\n console.log(\"File written successfully\");\n resolve();\n }\n });\n });\n}\nfunction compareVersions(v1, v2) {\n const parts1 = v1.split(\".\").map(Number);\n const parts2 = v2.split(\".\").map(Number);\n for(let i = 0; i < Math.max(parts1.length, parts2.length); i++){\n const num1 = i < parts1.length ? parts1[i] : 0;\n const num2 = i < parts2.length ? parts2[i] : 0;\n if (num1 > num2) return 1;\n if (num1 < num2) return -1;\n }\n return 0;\n}\nconst semver = {\n gt: (v1, v2)=>1 === compareVersions(v1, v2)\n};\nfunction fetchJSON(url) {\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__[\"default\"].get(url, (res)=>{\n let data = \"\";\n res.on(\"data\", (chunk)=>{\n data += chunk;\n });\n res.on(\"end\", ()=>{\n try {\n const parsedData = JSON.parse(data);\n resolve(parsedData);\n } catch (e) {\n if (e instanceof Error) reject(new Error(`Error parsing JSON: ${e.message}`));\n }\n });\n }).on(\"error\", (err)=>{\n reject(new Error(`Request failed: ${err.message}`));\n });\n });\n}\nfunction isNil(value) {\n return null == value;\n}\nfunction ensureFile(filePath) {\n return new Promise((resolve, reject)=>{\n const dirPath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].dirname(filePath);\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(dirPath, (err, stats)=>{\n if (err) {\n if (\"ENOENT\" !== err.code) return reject(err);\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].mkdir(dirPath, {\n recursive: true\n }, (err)=>{\n if (err) return reject(err);\n createFile();\n });\n } else if (stats.isDirectory()) checkFile();\n else reject(new Error(`${dirPath} is not a directory`));\n });\n function checkFile() {\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(filePath, (err, stats)=>{\n if (err) {\n if (\"ENOENT\" === err.code) createFile();\n else reject(err);\n } else if (stats.isFile()) resolve();\n else reject(new Error(`${filePath} is not a file`));\n });\n }\n function createFile() {\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFile(filePath, \"\", (err)=>{\n if (err) reject(err);\n else resolve();\n });\n }\n });\n}\nasync function downloadImage(url, savePath) {\n await ensureFile(savePath);\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__[\"default\"].get(url, (response)=>{\n if (200 === response.statusCode) {\n const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].createWriteStream(savePath);\n response.pipe(fileStream);\n fileStream.on(\"finish\", ()=>{\n fileStream.close();\n console.log(\"下载完成,文件已保存至:\", savePath);\n resolve(savePath);\n });\n } else {\n console.log(\"图片下载失败:\", response.statusCode);\n response.resume();\n reject();\n }\n }).on(\"error\", (error)=>{\n console.error(\"请求图片时发生错误:\", error.message);\n reject();\n });\n });\n}\nfunction getFilenameFromUrl(imageUrl) {\n const parsedUrl = new URL(imageUrl);\n return __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].basename(parsedUrl.pathname);\n}\nconst sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));\nconst success = (data, message)=>({\n code: 0,\n message: message || \"发布成功\",\n data\n });\nconst randomString = (length)=>{\n let T = \"\";\n const H = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n for(let de = 0; de < length; de++)T += H.charAt(Math.floor(Math.random() * H.length));\n return T;\n};\nexport { downloadImage, ensureFile, ensureFileSync, fetchJSON, getFilenameFromUrl, isNil, pathExists, randomString, semver, sleep, success, writeFile };\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { PublishAction } from \".\";\nimport { extractImgTag, replaceImgSrc } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\terrmsg: string;\n\terrno: number;\n}\n\ninterface ImageRetResponse {\n\tbos_url: string;\n\thttps_url: string;\n\tno_waterlog_bos_url: string;\n\torg_url: string;\n}\n\nconst errnoMap: Record<number, string> = {\n\t20040706: \"正文图片和封面图片推荐jpg、png格式。\",\n\t20040084: \"正文图片和封面图片推荐jpg、png格式。\",\n\t20050004: \"今日百家号发布次数已达上限,请明天再试。\",\n\t10000015: \"账号存在异常,需前往百家号平台完成发文验证后可激活使用。\",\n\t20050000: \"操作太频繁,请稍后再试\",\n\t20040027: \"你的账号状态异常,请到百家号平台检查账号状态。\",\n\t10000017: \"账号存在异常,需前往百家号平台完成发文验证后可激活使用。\",\n\t20040033: \"封面图片推荐 jpg、png格式,宽高在372×284-5000×5000 范围内。\",\n\t2004005714: \"网络环境异常,请检查网络后重试发布。\",\n\t401100032: \"异常,请检查图片(如:格式、版权、合规性等)。\",\n\t20040034: \"封面图片推荐jpg、png格式,不支持gif格式。\",\n\t20040124: \"服务器异常,请稍后重试!\"\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\ttoken: params.token,\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst msgType = params.saveType === \"draft\" ? \"同步\" : \"发布\";\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (response.data.errno !== 0) {\n\t\t\tlet errmsg = response.config.defaultErrorMsg || `文章${msgType}异常,请稍后重试。`;\n\n\t\t\tif (response.data.errno === 20050000) {\n\t\t\t\terrmsg = msgType + errnoMap[response.data.errno];\n\t\t\t}\n\t\t\tif (response.data.errno === 401100032) {\n\t\t\t\terrmsg = `图片${msgType}${errnoMap[response.data.errno]}`;\n\t\t\t} else if (errnoMap[response.data.errno]) {\n\t\t\t\terrmsg = errnoMap[response.data.errno];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[response.data.errno] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: response.data,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://baijiahao.baidu.com/pcui/home/index\",\n\t\tdefaultErrorMsg: `百家号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t});\n\n\t// 1. 获取用户 appId\n\tconst appIdInfo = await http.api<CommonResponse<{ user: { app_id: number } }>>({\n\t\tmethod: \"post\",\n\t\turl: \"https://baijiahao.baidu.com/builder/app/appinfo\",\n\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试。\",\n\t});\n\n\tconst appId = appIdInfo.data.user.app_id;\n\n\tconst uploadImages = async (_images: string[]) => {\n\t\t// 过滤掉空字符串\n\t\tconst images = _images.filter((url) => !!url && url.trim() !== \"\");\n\n\t\t// 下载图片到本地\n\t\treturn await Promise.all(\n\t\t\timages.map(async (url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\tconst image = await downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"org_file_name\", fileName);\n\t\t\t\tformData.append(\"type\", \"image\");\n\t\t\t\tformData.append(\"app_id\", appId);\n\t\t\t\tformData.append(\"is_waterlog\", \"1\");\n\t\t\t\tformData.append(\"save_material\", \"1\");\n\t\t\t\tformData.append(\"no_compress\", \"0\");\n\t\t\t\tformData.append(\"article_type\", \"news\");\n\t\t\t\tformData.append(\"media\", fs.createReadStream(image));\n\n\t\t\t\tconst res = await http.api<{ ret: ImageRetResponse }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://baijiahao.baidu.com/materialui/picture/uploadProxy\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t\tdefaultErrorMsg:\n\t\t\t\t\t\tparams.saveType === \"draft\" ? \"图片上传异常,请稍后重试同步。\" : \"图片上传异常,请稍后重试发布。\",\n\t\t\t\t});\n\n\t\t\t\treturn res.ret;\n\t\t\t}),\n\t\t);\n\t};\n\n\t// 2. 提取并上传正文中的图片\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].bos_url;\n\t\t\tdom.attribs[\"data-bjh-origin-src\"] = targetContentImages[idx].org_url;\n\t\t\tdom.attribs[\"data-bjh-params\"] = targetContentImages[idx].org_url;\n\t\t\tdom.attribs[\"data-bjh-type\"] = \"IMG\";\n\t\t}\n\n\t\treturn dom;\n\t});\n\n\t// 3. 上传竖版封面\n\tlet vertical_cover = params.settingInfo.baijiahaoVerticalCover;\n\tif (vertical_cover) {\n\t\tvertical_cover = (await uploadImages([vertical_cover]))[0].bos_url;\n\t}\n\n\t// 4. 上传横版封面\n\tconst horizontalCoverUrl = baijiahaoCoverType === \"single\" ? [baijiahaoSingleCover] : baijiahaoMultCover;\n\tconst horizontalCoverRes = await uploadImages(horizontalCoverUrl);\n\tconst cover_images = horizontalCoverRes.map((item) => ({\n\t\tsrc: item.bos_url,\n\t\tmachine_chooseimg: 0,\n\t\tisLegal: 0,\n\t}));\n\tconst _cover_images_map = horizontalCoverRes.map((item) => ({\n\t\tsrc: item?.bos_url,\n\t\torigin_src: item?.org_url,\n\t}));\n\n\t// 5. 构造发布数据\n\tconst isAi = params.settingInfo.baijiahaoIsAi.includes(\"isAi\");\n\tconst activityList = params.settingInfo.baijiahaoSelectActivityCache;\n\tconst cover_layout = baijiahaoCoverType === \"single\" ? \"one\" : \"three\";\n\n\tconst activity_list = [\n\t\t...(activityList.length > 0 ? [{ id: `task_${activityList[0]}`, is_checked: 1 }] : []),\n\t\t...(isAi ? [{ id: \"aigc_bjh_status\", is_checked: 1 }] : []),\n\t];\n\n\tconst publishData = {\n\t\ttitle: params.settingInfo.baijiahaoTitle,\n\t\tcontent,\n\t\tvertical_cover,\n\t\tabstract: params.settingInfo.baijiahaoAbstract,\n\t\tcover_layout,\n\t\tcover_images: JSON.stringify(cover_images),\n\t\t_cover_images_map: JSON.stringify(_cover_images_map),\n\t\ttype: \"news\",\n\t\tsource_reprinted_allow: 0,\n\t\tabstract_from: 1,\n\t\tisBeautify: \"false\",\n\t\tusingImgFilter: \"false\",\n\t\tsource: \"upload\",\n\t\tcover_source: \"upload\",\n\t\tactivity_list,\n\t};\n\n\tconst isDraft = params.saveType === \"draft\";\n\n\tconst saveUrl = isDraft\n\t\t? \"https://baijiahao.baidu.com/pcui/article/save?callback=bjhdraft\"\n\t\t: \"https://baijiahao.baidu.com/pcui/article/publish?callback=bjhpublish\";\n\n\tconst res = await http.api<{ ret: { article_id: string } }>({\n\t\tmethod: \"post\",\n\t\turl: saveUrl,\n\t\tdata: publishData,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\torigin: \"https://baijiahao.baidu.com\",\n\t\t\treferer: \"https://baijiahao.baidu.com/builder/rc/edit?type=news\",\n\t\t},\n\t\tdefaultErrorMsg: isDraft ? \"文章同步出现异常,请稍后重试。\" : \"文章发布出现异常,请稍后重试。\",\n\t});\n\n\treturn success(res.ret.article_id, \"百家号发布完成。\");\n};\n","import path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport { copyHtmlToClipboard } from \"../../utils\";\nimport type { PublishAction } from \"./index\";\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"baijiahao.baidu.com\",\n\t\turl: \"https://baijiahao.baidu.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://baijiahao.baidu.com/builder/rc/edit?type=news&is_from_cms=1\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".bjh-edit-header\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 等待编辑器加载出来\n\tawait page.waitForSelector(\".edui-editor-toolbarbox\", { state: \"visible\" });\n\n\t// 2. 关闭纯文本粘贴\n\t// 有个默认开启纯文本粘贴的提示,先关闭\n\tif (await page.locator(\"#_onceTip-news_pasteplain_tip\").isVisible()) {\n\t\tawait page.locator(\"#_onceTip-news_pasteplain_tip .confirm\").click();\n\t}\n\t// 判断是否开启纯文本粘贴,如果开启,点击关闭\n\tif (await page.locator(\".edui-editor-toolbarbox .edui-button.edui-for-pasteplain .edui-state-checked\").isVisible()) {\n\t\tawait page.locator(\".edui-editor-toolbarbox .edui-button.edui-for-pasteplain .edui-state-checked\").click();\n\t}\n\n\t// 3. 填写标题\n\tconst titleInstance = page.locator(\"#ueditor #bjhNewsTitle .input-box textarea\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 4. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\"#ueditor .edui-editor-iframeholder iframe\");\n\t// 模拟Ctrl+A全选\n\tawait page.keyboard.press(\"Control+A\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 等待 1 秒钟(让正文中的图片上传上去)\n\tawait page.waitForTimeout(1000);\n\n\t// 5. 设置封面\n\tconst coverFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(0);\n\tconst isSingleCover = params.settingInfo.baijiahaoCoverType === \"single\";\n\tif (isSingleCover) {\n\t\t// 单图\n\t\tawait coverFormItem\n\t\t\t.locator(\".cheetah-form-item-control label.cheetah-radio-wrapper\")\n\t\t\t.filter({ hasText: \"单图\" })\n\t\t\t.click();\n\t} else {\n\t\t// 多图\n\t\tawait coverFormItem\n\t\t\t.locator(\".cheetah-form-item-control label.cheetah-radio-wrapper\")\n\t\t\t.filter({ hasText: \"三图\" })\n\t\t\t.click();\n\t}\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\t(isSingleCover ? [params.settingInfo.baijiahaoSingleCover] : params.settingInfo.baijiahaoMultCover).map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\tconst coverSelector = page.locator(\n\t\t\".cheetah-form-item-control .edit-cover-container .cover-list .DraggableTags-tag-drag .coverUploaderView\",\n\t);\n\tconst coverCount = await coverSelector.count();\n\n\tfor (let i = 0; i < coverCount; i++) {\n\t\tconst item = coverSelector.nth(i);\n\t\tconst image = images[i];\n\n\t\t// 滚动到可视区域\n\t\tawait item.evaluate((node) => node.scrollIntoView());\n\n\t\t// 如果已经存在图片,选择更换\n\t\tif (await item.locator(\".actions-wrap\").isVisible()) {\n\t\t\tawait item.locator(\".actions-wrap .action\").filter({ hasText: \"更换\" }).click();\n\t\t} else {\n\t\t\tawait item.click();\n\t\t}\n\n\t\t// 等待弹窗出现\n\t\tawait page.waitForSelector(\".cheetah-modal-root .cheetah-ui-pro-image-modal\", { state: \"visible\" });\n\t\t// 选择本地图片 tab\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-tabs-nav-list .cheetah-tabs-tab\")\n\t\t\t.filter({ hasText: \"本地图片\" })\n\t\t\t.click();\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-tabs-tabpane-active .cheetah-upload-wrapper\")\n\t\t\t.click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([image]);\n\t\t// 等待上传完成(可以用去编辑是否可点击来判断)\n\t\t// 等待 button 元素上面的 disabled 属性消失\n\t\tawait page.waitForSelector(\n\t\t\t\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-modal-footer button#imageModalEditBtn[disabled]\",\n\t\t\t{ state: \"detached\" },\n\t\t);\n\t\t// 点击确认关闭弹窗\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-modal-footer button\")\n\t\t\t.filter({ hasText: \"确认\" })\n\t\t\t.click();\n\t\t// 等待 2 秒\n\t\tawait page.waitForTimeout(1000);\n\t}\n\n\t// 6. 摘要\n\tconst abstractFormItem = page\n\t\t.locator(\".bjh-edit-wrap-set .cheetah-form-item\")\n\t\t.nth(1)\n\t\t.locator(\"textarea.cheetah-input\");\n\tawait abstractFormItem.click();\n\tawait abstractFormItem.fill(params.settingInfo.baijiahaoAbstract);\n\n\t// 7. 设置\n\tconst isAi = params.settingInfo.baijiahaoIsAi.includes(\"isAi\");\n\tif (isAi) {\n\t\tconst settingFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(5);\n\t\tawait settingFormItem.locator(\"label.cheetah-checkbox-wrapper\").filter({ hasText: \"AI创作声明\" }).click();\n\t}\n\n\t// 8. 活动投稿\n\tif (params.settingInfo.baijiahaoActivity.length > 0 && params.settingInfo.baijiahaoSelectActivityCache.length > 0) {\n\t\tconst activity = params.settingInfo.baijiahaoActivity.filter((it) =>\n\t\t\tparams.settingInfo.baijiahaoSelectActivityCache.includes(it.id),\n\t\t);\n\t\tif (activity.length > 0) {\n\t\t\tconst activityFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(3);\n\t\t\tconst name = activity[0].task_name;\n\t\t\tconst findActivity = activityFormItem.locator(\".cheetah-form-item-control\").getByText(name, { exact: true });\n\t\t\tif ((await findActivity.count()) > 0) {\n\t\t\t\tfindActivity.first().locator(\"..\").click();\n\t\t\t}\n\t\t}\n\t}\n\n\t// 9. 保存草稿 / 发布\n\tconst articleId = await new Promise<string>((resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tconst url = response.url();\n\t\t\tif (url.includes(\"/pcui/article/save\") || url.includes(\"/pcui/article/publish\")) {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse?.ret?.article_id);\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\tconst operatorContainer = page.locator(\".editor-component-operator\");\n\t\tif (params.saveType === \"draft\") {\n\t\t\toperatorContainer.locator(\".op-btn-outter-content\").filter({ hasText: \"存草稿\" }).locator(\"button\").click();\n\t\t} else {\n\t\t\toperatorContainer.locator(\".op-btn-outter-content\").filter({ hasText: \"发布\" }).locator(\"button\").click();\n\t\t}\n\t});\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(articleId);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ninterface ActivityData {\n\tid: string;\n\ttask_name: string;\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t[key: string]: any;\n}\n\nexport interface BaijiahaoPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\ttoken: string;\n\ttitle: string;\n\tcontent: string;\n\tsettingInfo: {\n\t\tbaijiahaoTitle: string; // 标题\n\t\tbaijiahaoCoverType: \"single\" | \"multiple\"; // 封面设置:单图 | 三图\n\t\tbaijiahaoAbstract: string; // 摘要\n\t\tbaijiahaoIsAi: string[]; // 设置\n\t\tbaijiahaoSingleCover: string; // 单图封面\n\t\tbaijiahaoMultCover: string[]; // 三图封面\n\t\tbaijiahaoVerticalCover: string; // 竖版封面\n\t\tbaijiahaoActivity: ActivityData[]; // 活动投稿\n\t\tbaijiahaoSelectActivityCache: string[]; // 选中的活动标签\n\t};\n}\n\nexport type PublishAction = CommonAction<BaijiahaoPublishParams, string>;\n\nexport const baijiahaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface GetBaijiahaoActivityParams extends ActiomCommonParams {\n\ttoken: string;\n}\n\nexport interface ActivityData {\n\tid: string;\n\ttask_name: string;\n}\n\nexport type PublishAction = CommonAction<GetBaijiahaoActivityParams, ActivityData[]>;\n\nexport const getBaijiahaoActivity: PublishAction = async (_task, params) => {\n\tconst cookies = params.cookies ?? [];\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\ttoken: params.token,\n\t\t},\n\t});\n\n\tconst res = await http.api<{ data: { list: ActivityData[] } }>({\n\t\tmethod: \"get\",\n\t\turl: \"https://baijiahao.baidu.com/author/eco/tasksystem/getSquareMissionList\",\n\t\tparams: {\n\t\t\tpage_no: 1,\n\t\t\tpage_size: 18,\n\t\t\tarticle_type: 1,\n\t\t\ttask_attend: 1,\n\t\t\ttask_origin: \"market\",\n\t\t\ttask_type: -1,\n\t\t},\n\t});\n\n\treturn success(res?.data?.list ?? []);\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface GetToutiaoConfigParams extends ActiomCommonParams {}\n\nexport interface GetToutiaoConfigResult {\n\tsuggestWords: Toutiao.Topic[];\n\tcityDistrict: Toutiao.CityDistrict | null;\n\tuserRights: Toutiao.UserRight[];\n}\n\nexport type PublishAction = CommonAction<GetToutiaoConfigParams, GetToutiaoConfigResult>;\n\nexport const getToutiaoConfig: PublishAction = async (_task, params) => {\n\tconst cookies = params.cookies ?? [];\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\tconst getSuggestWords = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ code: number; hots: Toutiao.Topic[] }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_helper/suggest_words\",\n\t\t\t\tparams: { type: 2, words: \"\" },\n\t\t\t});\n\n\t\t\treturn res.code === 0 ? res.hots : [];\n\t\t} catch (error) {\n\t\t\treturn [];\n\t\t}\n\t};\n\n\tconst getCityDistrict = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ status: number; data: Toutiao.CityDistrict }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/toutiao/normandy/mp/city_district/\",\n\t\t\t});\n\t\t\treturn res.status === 0 ? res.data : null;\n\t\t} catch (error) {\n\t\t\treturn null;\n\t\t}\n\t};\n\n\tconst getUserRights = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ code: number; data: { benefit_level_info_list: Toutiao.UserRight[] } }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_project/get_benefit_page_info\",\n\t\t\t});\n\t\t\treturn res.code === 0 ? res.data.benefit_level_info_list : [];\n\t\t} catch (error) {\n\t\t\treturn [];\n\t\t}\n\t};\n\n\tconst [suggestWords, cityDistrict, userRights] = await Promise.all([\n\t\tgetSuggestWords(),\n\t\tgetCityDistrict(),\n\t\tgetUserRights(),\n\t]);\n\n\treturn success({ suggestWords, cityDistrict, userRights });\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchToutiaoTopicListParams extends ActiomCommonParams {\n\tsearchValue: string;\n}\n\nexport type PublishAction = CommonAction<SearchToutiaoTopicListParams, Toutiao.Topic[]>;\n\nexport const searchToutiaoTopicList: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\ttry {\n\t\tconst res = await http.api<{ code: number; recents: Toutiao.Topic[]; hots: Toutiao.Topic[] }>({\n\t\t\tmethod: \"get\",\n\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_helper/suggest_words\",\n\t\t\tparams: { type: 2, words: params.searchValue },\n\t\t});\n\n\t\tif (res.code === 0) {\n\t\t\treturn success(params.searchValue ? res.recents : res.hots);\n\t\t}\n\n\t\treturn success([]);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface searchXiaohongshuLocationParams extends ActiomCommonParams {\n\tsearchValue: string;\n\tlatitude?: number;\n\tlongitude?: number;\n\tsize?: number;\n\tpage?: number;\n}\n\nexport type PublishAction = CommonAction<searchXiaohongshuLocationParams, Xiaohongshu.Location[]>;\n\nexport const searchXiaohongshuLocation: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://creator.xiaohongshu.com\",\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t},\n\t});\n\n\ttry {\n\t\tconst result = await http.api<{ code: number; data: { poi_list: Xiaohongshu.Location[] } }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v1/local/poi/creator/search\",\n\t\t\tdata: {\n\t\t\t\tkeyword: params.searchValue,\n\t\t\t\tlatitude: params.latitude ?? 0,\n\t\t\t\tlongitude: params.longitude ?? 0,\n\t\t\t\tpage: params.page ?? 1,\n\t\t\t\tsize: params.size ?? 10,\n\t\t\t\tsource: \"WEB\",\n\t\t\t\ttype: 3,\n\t\t\t},\n\t\t});\n\n\t\treturn success(result.code === 0 ? result.data.poi_list : []);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchXiaohongshuTopicListParams extends ActiomCommonParams {\n\tsearchValue: string;\n}\n\nexport type PublishAction = CommonAction<SearchXiaohongshuTopicListParams, Xiaohongshu.Topic[]>;\n\nexport const searchXiaohongshuTopicList: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://creator.xiaohongshu.com\",\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t},\n\t});\n\n try {\n\t\tconst result = await http.api<{ code: number; data: { topic_info_dtos: Xiaohongshu.Topic[] } }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v1/search/topic\",\n\t\t\tdata: {\n\t\t\t\tkeyword: params.searchValue,\n\t\t\t\tsuggest_topic_request: {\n\t\t\t\t title: \"\",\n\t\t\t\t desc: `#${params.searchValue}`\n\t\t\t\t},\n\t\t\t\tpage: {\n\t\t\t\t page_size: 20,\n\t\t\t\t page: 1\n\t\t\t\t}\n\t\t\t },\n\t\t\tdefaultErrorMsg: \"话题搜索异常,请稍后重试。\",\n\t\t});\n\n\t\treturn success(result.code === 0 ? result.data.topic_info_dtos : [],'获取话题成功');\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n\n}","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { Toutiao } from \"../../types\";\nimport { extractImgTag, replaceImgSrc } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\nimport { COVER_TYPE, type PublishAction, getAddTypeValue } from \"./index\";\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\tcode: number;\n\tmessage: string;\n}\n\nconst errnoMap: Record<number, string | string[]> = {\n\t20004020: \"图片上传异常,请重新绑定账号后同步。\",\n\t7115: \"正文图片和封面图片推荐jpg、png格式。\",\n\t100006: \"文章同步异常,请重新绑定账号后重试。\",\n\t3101: [\n\t\t\"今日头条号发布次数已达上限,请明天再试。\",\n\t\t\"头条账号状态异常,需前往头条号完成实名认证。\",\n\t\t\"头条账号状态异常,资料审核未通过,请前往头条号查看。\",\n\t],\n\t2007: \"文章发布失败,声明原创要求正文字数不少于 300 字,请修改后重试。\",\n\t2010: \"无头条广告权限,请修改后重试。\",\n\t3103: \"今日头条号发布次数已达上限,请明天再试。\",\n\t1053: \"正文图片和封面图片推荐jpg、png格式。\",\n\t2005: \"账号无【申明原创】权限,请关闭申明后重试。\",\n\t100004: \"用户未登录或登陆已过期,请重新登陆后重试。\"\n};\n\nconst get3101DetailError = (errorList: string[], message: string, saveType: string) => {\n\tlet error = \"\";\n\tif (message?.includes(\"当日发文\")) {\n\t\terror = errorList[0];\n\t} else if (message?.includes(\"实名认证\")) {\n\t\terror = errorList[1];\n\t} else if (message?.includes(\"资料审核\")) {\n\t\terror = errorList[2];\n\t}\n\treturn error || (saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\");\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal } = params.settingInfo;\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.toutiao.com\",\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\t// 检查响应中的 errno 字段\n\t\tif (response.data?.code !== 0) {\n\t\t\tlet errmsg = \"\";\n\n\t\t\tif (Array.isArray(errnoMap[response.data.code])) {\n\t\t\t\terrmsg = get3101DetailError(errnoMap[response.data.code] as string[], response.data.message, params.saveType);\n\t\t\t} else {\n\t\t\t\terrmsg =\n\t\t\t\t\t(errnoMap[response.data.code] as string) ||\n\t\t\t\t\tresponse.config.defaultErrorMsg ||\n\t\t\t\t\t(params.saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\");\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[response.data.code] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: response.data,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.toutiao.com/mp/agw/creator_center/user_info\",\n\t\tdefaultErrorMsg: `头条号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t});\n\n\tconst uploadImages = async (images: string[]) => {\n\t\t// 下载图片到本地\n\t\treturn await Promise.all(\n\t\t\timages.map(async (url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\tconst image = await downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"image\", fs.createReadStream(image));\n\n\t\t\t\tconst response = await http.api<CommonResponse<Toutiao.ImageData>>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.toutiao.com/spice/image?upload_source=20020002&aid=1231&device_platform=web\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t\tdefaultErrorMsg:\n\t\t\t\t\t\tparams.saveType === \"draft\" ? \"图片上传异常,请稍后重试同步。\" : \"图片上传异常,请稍后重试发布。\",\n\t\t\t\t});\n\n\t\t\t\treturn response.data;\n\t\t\t}),\n\t\t);\n\t};\n\n\t// 1. 提取并上传正文中的图片\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 2. 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].image_url;\n\t\t\tdom.attribs.web_uri = targetContentImages[idx].image_uri;\n\t\t\tdom.attribs.img_width = targetContentImages[idx].image_width.toString();\n\t\t\tdom.attribs.image_height = targetContentImages[idx].image_height.toString();\n\t\t\tdom.attribs.image_type = targetContentImages[idx].image_type.toString();\n\t\t\tdom.attribs.mime_type = targetContentImages[idx].image_mime_type;\n\t\t}\n\t\treturn dom;\n\t});\n\n\t// 3. 上传横版封面\n\tconst coverUrl =\n\t\ttoutiaoCoverType === \"single\" ? [toutiaoSingleCover] : toutiaoCoverType === \"multiple\" ? toutiaoMultCover : [];\n\tconst coverRes = await uploadImages(coverUrl);\n\n\t// 4. 构造发布数据\n\tconst isSingleTitle = params.settingInfo.toutiaoTitleType === \"single\";\n\tconst location = params.settingInfo.toutiaoLocation;\n\tconst topics = params.settingInfo.toutiaoTopic || [];\n\n\tconst multiTitleData = params.settingInfo.subTitles.map((title) => ({\n\t\tid: \"0\",\n\t\tvisibility_level: 0,\n\t\tsource: \"author\",\n\t\told_source: \"author\",\n\t\ttext: title,\n\t\tversion: \"author\",\n\t\tai_title: \"\",\n\t}));\n\n\tconst topicContent = topics\n\t\t.map(\n\t\t\t(topic) =>\n\t\t\t\t`<p><a class=\"tteditor-forum\" data-name=\"${topic.word}\" data-id=\"${topic.id}\" data-concern-id=\"${topic.id}\">#${topic.word}#</a ></p >`,\n\t\t)\n\t\t.join(\"\");\n\n\tconst extraData = {\n\t\tcontent_word_cnt: params.settingInfo.cntWord,\n\t\tis_multi_title: isSingleTitle ? 0 : 1,\n\t\tsub_titles: isSingleTitle ? [] : multiTitleData,\n\t\tgd_ext: {\n\t\t\tentrance: \"\",\n\t\t\tfrom_page: \"publisher_mp\",\n\t\t\tenter_from: \"PC\",\n\t\t\tdevice_platform: \"mp\",\n\t\t\tis_message: 0,\n\t\t},\n\t\ttuwen_wtt_trans_flag: \"0\",\n\t\tinfo_source: {\n\t\t\tsource_type: 5,\n\t\t\tsource_link: \"\",\n\t\t\ttime_format: \"\",\n\t\t\tposition: {},\n\t\t},\n\t\t...(location ? { city: location.label, city_code: location.value } : null),\n\t};\n\n\tconst publishData = {\n\t\tarticle_type: 0,\n\t\tsource: 0,\n\t\tsearch_creation_info: '{\"searchTopOne\": 0, \"abstract\": \"\", \"clue_id\": \"\"}',\n\t\ttitle_id: \"\",\n\t\teducluecard: \"\",\n\t\torigin_debut_check_pgc_normal: 1,\n\t\tis_fans_article: 0,\n\t\tgovern_forward: 0,\n\t\tpraise: 0,\n\t\tdisable_praise: 0,\n\t\ttree_plan_article: 0,\n\t\tstar_order_id: \"\",\n\t\tstar_order_name: \"\",\n\t\tcustomer_nick_name: \"\",\n\t\tactivity_tag: 0,\n\t\ttrends_writing_tag: 0,\n\t\tis_refute_rumor: 0,\n\t\tsave: params.saveType === \"publish\" ? 1 : 0,\n\t\ttimer_status: 0,\n\t\ttimer_time: \"\",\n\t\ttitle: params.title,\n\t\tcontent: content + topicContent,\n\t\textra: JSON.stringify(extraData),\n\t\tmp_editor_stat: toutiaoCoverType === \"no\" ? \"{}\" : '{\"image\": %d}',\n\t\tdraft_form_data: JSON.stringify({\n\t\t\tcoverType: COVER_TYPE[toutiaoCoverType],\n\t\t}),\n\t\tpgc_feed_covers: JSON.stringify(\n\t\t\tcoverRes.map((item) => ({\n\t\t\t\tid: \"\",\n\t\t\t\turl: item.image_url,\n\t\t\t\turi: item.image_uri,\n\t\t\t\tic_uri: \"\",\n\t\t\t\tthumb_widt: item.image_width,\n\t\t\t\tthumb_heigh: item.image_height,\n\t\t\t\textra: {\n\t\t\t\t\tfrom_content_uri: \"\",\n\t\t\t\t\tfrom_content: \"0\",\n\t\t\t\t},\n\t\t\t})),\n\t\t),\n\t\tarticle_ad_type: getAddTypeValue(params.settingInfo.toutiaoAd),\n\t\tclaim_origin: toutiaoOriginal.includes(\"original\") ? 1 : 0,\n\t\tclaim_exclusive: toutiaoOriginal.includes(\"exclusive\") ? 1 : 0,\n\t};\n\n\tconst publishResult = await http.api<CommonResponse<{ pgc_id: string }>>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1\",\n\t\tdata: publishData,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t},\n\t\tdefaultErrorMsg: params.saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\",\n\t});\n\n\treturn success(publishResult.data.pgc_id);\n};\n","import path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport { copyHtmlToClipboard, getRandomInRange, PopupListener } from \"../../utils\";\nimport { COVER_TYPE, type PublishAction, getAddTypeValue } from \"./index\";\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \".toutiao.com\",\n\t\turl: \"https://mp.toutiao.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".publish-editor\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn {\n\t\t\tcode: 400,\n\t\t\tmessage: `头条号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t\t\tdata: page.url(),\n\t\t};\n\t}\n\n\tconst interceptUrls = [\n\t\t'/mp/agw/article/publish'\n\t];\n\t \n\tawait page.route('**', async (route, request) => {\n\t\tconst url = new URL(request.url()); \n\t\tif (interceptUrls.some(pattern => url.pathname.includes(pattern))) {\n\t\t\turl.searchParams.set('aid', '1'); \n\t\n\t\t\tawait route.continue({ url: url.toString() });\n\t\t} else {\n\t\t\tawait route.continue();\n\t\t}\n\t});\n\n\t//弹窗监听检测\n\tPopupListener(page,'.byte-modal.publish-exclusive-modal .title',\"激励\", '.byte-modal-close-icon', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: false\n\t})\n\t\n\t// 1. 填写标题\n\tconst titleInstance = page.locator(\".publish-editor-title-wrapper .publish-editor-title textarea\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 2. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\".publish-editor .syl-editor-wrap .ProseMirror\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 3. 封面\n\tconst coverTypeValue = COVER_TYPE[params.settingInfo.toutiaoCoverType];\n\tconst coverContainer = page.locator(\".form-container .edit-cell\").filter({ hasText: \"展示封面\" });\n\t// 滚动到可视区域\n\tawait coverContainer.evaluate((node) => node.scrollIntoView());\n\tawait coverContainer.locator(`.article-cover label.byte-radio:has(input[value=\"${coverTypeValue}\"])`).click();\n\n\tlet coverUrls: string[] = [];\n\tif (params.settingInfo.toutiaoCoverType === \"single\") {\n\t\tcoverUrls = [params.settingInfo.toutiaoSingleCover];\n\t} else if (params.settingInfo.toutiaoCoverType === \"multiple\") {\n\t\tcoverUrls = params.settingInfo.toutiaoMultCover;\n\t}\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\tcoverUrls.map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\n\tconst coverUploadEle = coverContainer\n\t\t.locator(\".article-cover .article-cover-images\")\n\t\t.locator(\".article-cover-img-wrap, .article-cover-add\");\n\tconst coverUploadCount = await coverUploadEle.count();\n\n\tfor (let i = 0; i < coverUploadCount; i++) {\n\t\tif (!images[i]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst ele = coverUploadEle.nth(i);\n\t\t// 如果存在图片则替换\n\t\tif ((await ele.locator(\"img\").count()) > 0) {\n\t\t\tawait ele.locator(\".article-cover-img-menu a\").filter({ hasText: \"替换\" }).click();\n\t\t} else {\n\t\t\t// 如果不存在图片则点击上传\n\t\t\tawait ele.click();\n\t\t}\n\n\t\t// 上传图片\n\t\tconst drawerContainer = page.locator(\".byte-drawer-wrapper:not(.byte-drawer-wrapper-hide)\");\n\t\tawait drawerContainer.locator(\".byte-tabs-header .byte-tabs-header-title\").filter({ hasText: \"上传图片\" }).click();\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page.waitForTimeout(200);\n\t\tawait drawerContainer.locator(\".upload-image-panel button.byte-btn\").filter({ hasText: \"本地上传\" }).click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([images[i]]);\n\n\t\t// 等待上传完成\n\t\tconst confirmBtn = drawerContainer\n\t\t\t.locator(\".footer .confirm-btns button:not(.byte-btn-disabled)\")\n\t\t\t.filter({ hasText: \"确定\" });\n\t\tawait confirmBtn.waitFor({ state: \"visible\" });\n\t\tawait confirmBtn.click();\n\n\t\tawait page.waitForTimeout(getRandomInRange(500, 1000));\n\t}\n\n\t// 4. 添加位置\n\tif (params.settingInfo.toutiaoLocation) {\n\t\tconst locationContainer = page.locator(\".form-container .edit-cell\").filter({ hasText: \"添加位置\" });\n\t\tawait locationContainer.locator(\".position-select\").click();\n\t\tawait locationContainer\n\t\t\t.locator(\".position-select .byte-select-view-search input\")\n\t\t\t.fill(params.settingInfo.toutiaoLocation.label);\n\t\tconst poperInstance = page.locator(\".byte-trigger .byte-select-popup .byte-select-option\");\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t}\n\n\t// 5. 投放广告\n\tconst adContainer = page\n\t\t.locator(\".form-container .edit-cell .edit-label\")\n\t\t.filter({ hasText: \"投放广告\" })\n\t\t.locator(\"xpath=..\");\n\n\t// 判断是否存在投放广告的选项\n\tconst isAdOptionVisible = await adContainer.isVisible();\n\n\tif (isAdOptionVisible) {\n\t\t// 获取元素的父元素句柄并点击\n\t\tawait adContainer\n\t\t\t.locator(`label.byte-radio:has(input[value=\"${getAddTypeValue(params.settingInfo.toutiaoAd)}\"])`)\n\t\t\t.click();\n\t}\n\n\t// 6. 声明首发\n\tif (params.settingInfo.toutiaoOriginal.includes(\"exclusive\")) {\n\t\tconst exclusiveContainer = page\n\t\t\t.locator(\".form-container .edit-cell .edit-label\")\n\t\t\t.filter({ hasText: \"声明首发\" })\n\t\t\t.locator(\"xpath=..\");\n\t\texclusiveContainer.locator(\".exclusive .exclusive-checkbox-wraper .byte-checkbox\").click();\n\t}\n\n\t// 7. 保存草稿 / 发布\n\tconst articleId = await new Promise<string>((resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tconst url = response.url();\n\t\t\tif (url.includes(\"/mp/agw/article/publish\")) {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse.data.pgc_id);\n\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\t\t// 保存草稿\n\t\tpage.locator(\".publish-footer button\").filter({ hasText: \"预览并发布\" }).click();\n\t});\n\n\tif(params.settingInfo.toutiaoAd == 'no'){\n\t\tawait page.waitForTimeout(200);\n\t\tconst confirmBtn = page.locator('div.byte-modal-footer button.byte-btn-primary:has-text(\"确定\")');\n\t\tif (await confirmBtn.isVisible()) {\n\t\t await confirmBtn.click();\n\t\t}\n\t}\n\t\n\tif (params.saveType === \"publish\") {\n\t\tawait page.locator(\".publish-footer button\").filter({ hasText: \"确认发布\" }).waitFor({ state: \"visible\" });\n\t\tawait page.waitForTimeout(200);\n\t\tawait page.locator(\".publish-footer button\").filter({ hasText: \"确认发布\" }).click();\n\t}\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(articleId);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ntype CoverType = \"single\" | \"multiple\" | \"no\";\n\nexport interface ToutiaoPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\ttitle: string;\n\tcontent: string;\n\tsettingInfo: {\n\t\ttoutiaoCoverType: CoverType;\n\t\ttoutiaoTitleType: \"single\" | \"multiple\";\n\t\ttoutiaoSingleCover: string;\n\t\ttoutiaoMultCover: string[];\n\t\ttoutiaoAd: string; // 广告配置 - 投放广告/不投放广告\n\t\ttoutiaoOriginal: string; // 作品声明\n\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\ttoutiaoLocation?: { label: string; value: string; [key: string]: any }; // 位置\n\t\ttoutiaoTopic: { id: string; word: string }[]; // 话题\n\t\tcntWord: number;\n\t\tsubTitles: string[]; // 多标题\n\t};\n}\n\nexport const COVER_TYPE: Record<CoverType, number> = {\n\tno: 1,\n\tsingle: 2,\n\tmultiple: 3,\n};\n\nexport const getAddTypeValue = (toutiaoAd: ToutiaoPublishParams[\"settingInfo\"][\"toutiaoAd\"]) =>\n\ttoutiaoAd === \"yes\" ? 3 : 2;\n\nexport type PublishAction = CommonAction<ToutiaoPublishParams, string>;\n\nexport const toutiaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\nimport { Http } from \"../../utils/http\"\n\nimport type { PublishAction } from \".\";\nimport type { Toutiao } from \"../../types\";\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.toutiao.com\",\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\t// 0. 校验登录\n\tconst userInfoRes = await http.api<{ code: number }>({\n method: \"get\",\n url: \"https://mp.toutiao.com/mp/agw/creator_center/user_info\",\n });\n\n\tif (userInfoRes.code !== 0) {\n return { code: 0, message: \"登录失效\", data: userInfoRes };\n\t}\n\n\t// 1. 上传图片\n\tconst imageList: string[] = [];\n\tif (params.banners && params.banners.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tconst res = await Promise.all(\n\t\t\timages.map(async (it) => {\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"image\", fs.createReadStream(it));\n\n\t\t\t\tconst response = await http.api<{ data: Toutiao.ImageData }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.toutiao.com/spice/image?upload_source=20020003&aid=1231&device_platform=web\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t});\n\n\t\t\t\treturn response.data;\n\t\t\t}),\n\t\t);\n\n\t\timageList.push(...res.map((it) => it.image_uri));\n\t}\n\n\t// 2. 构造发布数据\n\tconst extra = {\n\t\tadd_music_to_article_flag: \"0\", // 开启配乐\n\t\tclaim_exclusive: \"0\", // 原创&首发声明\n\t\ttuwen_wtt_trans_flag: \"0\",\n\t\tinfo_source: JSON.stringify({\n\t\t\tsource_type: 5,\n\t\t\tsource_author_uid: \"\",\n\t\t\ttime_format: \"\",\n\t\t\tposition: {},\n\t\t}),\n\t\tugc_position: JSON.stringify({\n\t\t\taddress: \"\",\n\t\t\tposition: \"合肥市\",\n\t\t\tcity: \"合肥市\",\n\t\t\tlongitude: 117.227289,\n\t\t\tlatitude: 31.82057,\n\t\t\tpoi_type_code: \"190104\",\n\t\t\tpoi_id: \"22535659123306003\",\n\t\t}),\n\t};\n\n\tconst syncData = {\n\t\tcontent: params.content, // 正文,\n\t\timage_list: imageList, // 图片列表\n\t\tis_fans_article: 2,\n\t\tpre_upload: 1,\n\t\twelfare_card: \"\",\n\t\textra: JSON.stringify(extra),\n\t};\n\n const res = await http.api<any>({\n method: \"post\",\n url: \"https://mp.toutiao.com/mp/agw/article/wtt\",\n data: syncData,\n });\n\n return success(res.data)\n};\n","import path from \"node:path\";\nimport type { CookieMap } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport type { PublishAction } from \"./index\";\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.toutiao.com\",\n\t\turl: \"https://mp.toutiao.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://mp.toutiao.com/profile_v4/weitoutiao/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\t// 0. 判断是否登录\n\ttry {\n\t\tawait page.waitForSelector(\".publish-box\");\n\t} catch (error) {\n\t\treturn { code: 0, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 添加正文\n\tconst descInstance = page.locator(\".syl-editor .ProseMirror\");\n\tawait descInstance.click();\n\tawait descInstance.fill(params.content);\n\n\t// 2. 添加图片\n\tif (params.banners && params.banners?.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page.locator(\".toolbar .syl-toolbar-tool.weitoutiao-image-plugin\").click();\n\t\tawait page.locator(\".byte-drawer.mp-ic-img-drawer button.byte-btn\").filter({ hasText: \"本地上传\" }).click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles(images);\n\n\t\tawait page.locator(\".byte-drawer.mp-ic-img-drawer .footer button.byte-btn\").filter({ hasText: \"确定\" }).click();\n\t}\n\n\t// 滚动到底部\n\tawait page.mouse.wheel(0, 500); // 向下滚动 500 像素\n\n\t// 3. 添加位置\n\tif (params.address) {\n\t\tconst addressFormItem = page.locator(\".img-form-wrap .form-item-wrap .form-item\").filter({ hasText: \"添加位置\" });\n\t\tawait addressFormItem.locator(\".byte-select\").click();\n\t\tawait addressFormItem.locator(\".byte-select-view-search input\").fill(params.address);\n\t\tconst poperInstance = page.locator(\".byte-trigger .byte-select-popup .byte-select-option\");\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t}\n\n\t// 4. 作品声明\n\tif (params.declaration) {\n\t\tconst declarationFormItem = page\n\t\t\t.locator(\".img-form-wrap .form-item-wrap .form-item\")\n\t\t\t.filter({ hasText: \"作品声明\" })\n\t\t\t.locator(\".source-info-wrap\");\n\t\tawait declarationFormItem.locator(`.byte-checkbox:has(input[value=\"${params.declaration}\"])`).click();\n\t}\n\n\t// 5. 发布\n\tawait page.locator(\".footer-wrap button.publish-content\").click();\n\n\treturn success(\"\");\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\n/**\n * 作品声明\n * 1:引用站内\n * 3:引用AI\n * 4:取材网络\n * 5:个人观点,仅供参考\n * 6:虚构演绎,故事经历\n * 7:投资观点,仅供参考\n * 8:健康医疗分享,仅供参考\n */\ntype DeclarationType = 1 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport interface WeitoutiaoPublishParams extends ActiomCommonParams {\n\tcontent: string;\n\tbanners?: string[];\n\taddress?: string;\n\tdeclaration?: DeclarationType;\n}\n\nexport type PublishAction = CommonAction<WeitoutiaoPublishParams>;\n\nexport const weitoutiaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","export const scanRetryMaxCount = 30;\n\nexport const QuotaType = {\n\tNormal: \"kQuotaTypeMassSendNormal\",\n\tProductActivity: \"kQuotaTypeMassSendProductActivity\",\n};\n\nexport interface QuotaItem {\n\toriginal_quota: number;\n\tquota: number;\n\tstr_date: string;\n}\n\nexport interface QuotaDetail {\n\tquota_item_list: QuotaItem[];\n\tquota_type: string;\n}\n","import fs, { write } from \"node:fs\";\n// import https from \"node:https\";\nimport path from \"node:path\";\nimport { type ResponseData, downloadImage, getFilenameFromUrl, randomString, sleep, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\nimport { extractImgTag, getFileState, replaceImgSrc } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\nimport type { PublishAction, WeixinPublishParams , WxWhitelistUserInfo, WxInteraction} from \"./index\";\nimport { type QuotaDetail, QuotaType, scanRetryMaxCount } from \"./utils\";\nimport { match } from \"node:assert\";\n\ntype CommonResponse<T = unknown> = T & {\n\tbase_resp?: { err_msg: string; ret: number };\n};\n\nconst GET_QRCODE_DEFAULT_ERROR = \"二维码获取异常,请稍后重试。\";\n\nconst errnoMap: Record<number|string, string> = {\n\t200003: \"微信公众号号登录状态失效,请重新绑定账号后重试。\",\n\t420001: \"封面图不支持GIF,请更换后重试。\",\n\t200002: \"上传图片参数错误,请检查后重试。\",\n\t200039: \"上传图片高度(像素)与宽度(像素)的乘积不能超过600万,请更换后重试。\",\n\t153201: \"不支持发布审核中或转码中的视频\",\n\t200007: \"登陆失败,请重新登陆账户后重试。\",\n\t64703: \"摘要超出120字长度限制,请修改摘要后重试。\",\n\t\"-4\": \"不支持发布审核中或转码中的视频\",\n\t\"-2\": \"不支持发布审核中或转码中的视频\",\n\t770001: \"不支持发布审核中或转码中的视频\",\n\t200074: \"系统繁忙,请稍后重试!\",\n\t64702: \"标题超出64字长度限制,请修改标题后重试。\"\n};\n\n// 不需要直接抛出的异常码,如 154019\nconst ignoreErrno = [154019];\n\n// 用户互动类型表\nconst userTypeMap: Record<string, 1 | 2 | 3> = {\n\t\"所有用户\": 1,\n\t\"已关注的用户\": 2,\n\t\"已关注7天及以上的用户\": 3,\n };\n\nconst generatorFormData = (data: Record<string, unknown>) => {\n\tconst formData = new URLSearchParams();\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tformData.append(key, String(value));\n\t}\n\n\treturn formData.toString();\n};\n\nexport const checkCopyrightStat = async <T>(http: Http, params: WeixinPublishParams, data: Record<string, unknown>) => {\n\tlet resData: T;\n\n\ttry {\n\t\tresData = await http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\t\tparams: {\n\t\t\t\taction: \"get_appmsg_copyright_stat\",\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t},\n\t\t\tdata: generatorFormData(data),\n\t\t});\n\t} catch (error) {\n\t\tresData = (error as ResponseData)?.data;\n\t}\n\n\treturn resData;\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst fingerprint = \"4695500bc93ab4ce8fb2692da6564e04\";\n\tconst client_time_diff = Number(\"1743488763\") * 1 - Math.floor(new Date().getTime() / 1000);\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\t// 接口代理,特意保留,作为测试使用\n\t\t// httpsAgent: new https.Agent({\n\t\t// \trejectUnauthorized: false,\n\t\t// \thost: \"127.0.0.1\",\n\t\t// \tport: 9000,\n\t\t// }),\n\t\theaders: {\n\t\t\t\"User-Agent\":\n\t\t\t\t\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0\",\n\t\t\tCookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.weixin.qq.com\",\n\t\t\treferer: `https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=edit&isNew=1&type=77&createType=0&token=${params.token}&lang=zh_CN×tamp=${Date.now()}`,\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst responseData = response.data;\n\t\tconst msgType = params.saveType === \"draft\" ? \"同步\" : \"发布\";\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (\n\t\t\tresponseData?.base_resp &&\n\t\t\tresponseData.base_resp.ret !== 0 &&\n\t\t\t!ignoreErrno.includes(responseData.base_resp.ret)\n\t\t) {\n\t\t\tconst errmsg =\n\t\t\t\terrnoMap[responseData.base_resp.ret] ||\n\t\t\t\tresponse.config.defaultErrorMsg ||\n\t\t\t\tresponseData.base_resp.err_msg ||\n\t\t\t\t`文章${msgType}异常,请稍后重试。`;\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[responseData.base_resp.ret] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: responseData,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/appmsgpublish\",\n\t\tparams: {\n\t\t\tfingerprint,\n\t\t\tsub: \"list\",\n\t\t\tbegin: 0,\n\t\t\tcount: 10,\n\t\t\tquery: \"\",\n\t\t\ttype: 101_1_102_103,\n\t\t\tshow_type: \"\",\n\t\t\tfree_publish_type: 1_102_103,\n\t\t\tsub_action: \"list_ex\",\n\t\t\tsearch_card: 0,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t},\n\t});\n\n\t// 1. 提取并上传正文中的图片\n\tconst uploadImages = async (images: string[]) => {\n\t\tconst cloudImages: Array<{ cdn_url: string; content: string }> = [];\n\n\t\t// 下载图片到本地\n\t\tconst localImages = await Promise.all(\n\t\t\timages.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tfor (let index = 0; index < images.length; index++) {\n\t\t\tconst image = localImages[index];\n\t\t\tconst fileState = getFileState(image);\n\n\t\t\tconst formData = new FormData();\n\t\t\tformData.append(\"id\", `WU_FILE_${index + 1}`);\n\t\t\tformData.append(\"name\", fileState.name);\n\t\t\tformData.append(\"type\", fileState.type);\n\t\t\tformData.append(\"lastModifiedDate\", fileState.lastModifiedDate);\n\t\t\tformData.append(\"size\", fileState.size);\n\t\t\tformData.append(\"file\", fs.createReadStream(image));\n\n\t\t\tconst response = await http.api<(typeof cloudImages)[0]>({\n\t\t\t\tmethod: \"post\",\n\t\t\t\turl: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,\n\t\t\t\tdata: formData,\n\t\t\t\tdefaultErrorMsg: \"图片上传异常,请稍后重试发布。\",\n\t\t\t});\n\n\t\t\tcloudImages.push(response);\n\t\t}\n\n\t\treturn cloudImages;\n\t};\n\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 2. 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].cdn_url;\n\t\t\tdom.attribs.class = \"rich_pass wxw-img js_insertlocalimg\";\n\t\t\tdom.attribs.style = \"\";\n\t\t}\n\t\treturn dom;\n\t});\n\n\t// 3. 上传封面图片\n\tconst coverRes = await uploadImages([params.settingInfo.wxCover]);\n\n\t// 4. 原创声明白名单有效性判断与生成转载白名单\n\tlet oriWhitelist = null;\n\t\n\tif (params.settingInfo?.wxCopyright && params.settingInfo?.wxWhitelist) {\n\t\tconst _oriWhitelist = params.settingInfo.wxWhitelist;\n\t\n\t\tif (_oriWhitelist && _oriWhitelist.length > 0) {\n\t\t\tconst white_list = [];\n\n\t\t\tconst white_list_user = {\n\t\t\t\tnickname: \"\",\n\t\t\t\ttitle: \"可修改文章\",\n\t\t\t\topenid: \"\",\n\t\t\t\twx_name: \"\",\n\t\t\t\tusername: \"\",\n\t\t\t\tavatar: \"\",\n\t\t\t\tcan_modify: \"1\",\n\t\t\t\tcan_hide_source: \"0\",\n\t\t\t\tcan_reward: \"0\",\n\t\t\t};\n\t\n\t\t\tfor (const _user of _oriWhitelist) {\n\t\t\t\tconst userInfo_res = await http.api<{ search_list: WxWhitelistUserInfo[] }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/appmsgcopyright?action=searchacct\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\taction: \"searchacct\",\n\t\t\t\t\t},\n\t\t\t\t\tdata: generatorFormData({\n\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\trandom: Math.random().toString(),\n\t\t\t\t\t\tusername: _user,\n\t\t\t\t\t}),\n\t\t\t\t\tdefaultErrorMsg: \"搜索用户信息失败\",\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif(userInfo_res.search_list.length>0){\n\t\t\t\t\tlet userInfo_resJson = userInfo_res.search_list[0];\n\t\t\t\t\twhite_list_user.nickname = userInfo_resJson.nickname;\n\t\t\t\t\twhite_list_user.openid = userInfo_resJson.openid;\n\t\t\t\t\twhite_list_user.avatar = userInfo_resJson.pic_url;\n\t\t\t\t\twhite_list_user.username = userInfo_resJson.username;\n\t\t\t\t\twhite_list_user.wx_name = userInfo_resJson.wx_name;\n\t\t\t\t\twhite_list.push({ ...white_list_user });\n\t\t\t\t}else{\n\t\t\t\t\treturn { code: 200, message: `白名单用户:${_user} 未搜索到,请确定输入是否正确!`, data: '' }\n\t\t\t\t}\n\t\t\t}\n\t\t\toriWhitelist = white_list.length > 0 ? JSON.stringify({ \"white_list\" : white_list }) : \"\"; \n\t\t}\n\t}\n\n\t// 5. 赞赏设置\n\tlet writerid = null;\n\tlet reply_id = null\n\tif (params.settingInfo.wxCopyright && params.settingInfo.wxRewardTarget){\n\t\tasync function getWriterList() {\n\t\t\tconst res = await http.api({\n\t\t\t method: \"get\",\n\t\t\t url: 'https://mp.weixin.qq.com/acct/writermgr',\n\t\t\t params: {\n\t\t\t\taction: 'get_writer_list',\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t }\n\t\t\t});\n\t\t \n\t\t\treturn res.pageinfo.writerlist || [];\n\t\t }\n\n\t\t async function getRewardText(): Promise<{ text: string , reply_id: string}[]> {\n\t\t\tconst res = await http.api({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: 'https://mp.weixin.qq.com/merchant/reward',\n\t\t\t\tparams: {\n\t\t\t\taction: 'getautoreply',\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\t},\n\t\t\t});\n\t\t\t\n\t\t\treturn res.reply_infos;\n\t\t}\n\n\t\t//遍历绑定信息\n\t\tfor (var _type in params.settingInfo.wxRewardTarget){\n\t\t\tif (_type === \"author\"){\n\n\t\t\t\tif( (await getWriterList()).length == 0){\n\t\t\t\t\t// 获取二维码等待用户绑定\n\t\t\t\t\tconst rewardbind = await http.api({\n\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\turl: \"https://mp.weixin.qq.com/acct/writermgr\",\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\taction: \"get_rewardbind_qrcode\",\n\t\t\t\t\t\t\trandom: Math.random().toString(),\n\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t\t\t\t\t});\n\t\t\n\t\t\t\t\tconst rewardBuffer = Buffer.from(rewardbind.qrcode_base64, 'base64');\n\t\t\t\t\tconst rewardFilePath = path.join(tmpCachePath, \"weixin_reward.jpg\");\n\t\t\t\t\tfs.writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));\n\t\t\t\t\n\t\t\t\t\tparams.safeQrcodeCallback?.(rewardFilePath);\n\t\t\n\t\t\t\t\tconst task_id = rewardbind.task_id\n\t\t\n\t\t\t\t\tlet code = null\n\t\t\n\t\t\t\t\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\t\t\t\t\tawait sleep(2000);\n\t\t\t\t\n\t\t\t\t\t\tconst checkScanResult = await http.api<{ qrcode_status: number; }>({\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\turl: \"https://mp.weixin.qq.com/acct/writermgr\",\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\taction: \"query_rewardbind_qrcode_status\",\n\t\t\t\t\t\t\t\ttask_id: task_id,\n\t\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\t\ttimespam: Date.now(),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\tcode = checkScanResult.qrcode_status\n\t\t\t\t\n\t\t\t\t\t\tif ( code == 2 && (await getWriterList()).length > 0 ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif (i === scanRetryMaxCount - 1) {\n\t\t\t\t\t\t\treturn { code: 200, message: \"二维码已过期,请重试绑定。\", data: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\n\t\t\t\t// 判断为赞赏作者\n\t\t\t\tlet _writer = await getWriterList()\n\t\t\t\tfor (var _writer_item of _writer){\n\t\t\t\t\tif (_writer_item.nickname === params.settingInfo.wxRewardTarget[_type]){\n\t\t\t\t\t\twriterid = _writer_item.writerid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!writerid){\n\t\t\t\t\t// 没找到作者id\n\t\t\t\t\treturn { code: 200, message: \"未匹配到赞赏绑定用户,请确认用户名与绑定是否正常!\", data: \"\" };\n\t\t\t\t}\n\n\t\t\t\tif (params.settingInfo?.wxRewardText){\n\t\t\t\t\t// 判断文案是否已添加\n\t\t\t\t\tlet rewardList = await getRewardText()\n\t\t\t\t\t\n\t\t\t\t\tlet matchdID = rewardList.find(\n\t\t\t\t\t\treward => reward.text === params.settingInfo.wxRewardText\n\t\t\t\t\t)?.reply_id ?? null;\n\t\n\t\t\t\t\tif (rewardList.length == 0 || !matchdID ){\n\t\t\t\t\t\tawait http.api({\n\t\t\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\t\t\turl: 'https://mp.weixin.qq.com/merchant/reward',\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t \taction: 'addautoreply',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: generatorFormData({\n\t\t\t\t\t\t\t\ttype: 1,\n\t\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t\t\ttext: params.settingInfo.wxRewardText\n\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\treply_id = matchdID\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!matchdID) {\n\t\t\t\t\t\tfor (var _reply_item of (await getRewardText())){\n\t\t\t\t\t\t\treply_id = (await getRewardText()).find(\n\t\t\t\t\t\t\t\treward => reward.text === params.settingInfo.wxRewardText\n\t\t\t\t\t\t\t)?.reply_id ;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!reply_id) {\n\t\t\t\t\t\t\treturn {code:200, message:\"赞赏文案添加失败,请重新检查\", data:\"\"}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}else if(_type === \"project\"){\n\t\t\t\t// 判断为公益捐赠\n\t\t\t}\n\t\t}\n\n\t}\n\t// 留言设置\n\tconst wxInteractionInfo = (() => {\n\t\tconst _wxInteraction = {\n\t\t\tneed_open_comment0: 0,\n\t\t\tonly_fans_can_comment0: 0,\n\t\t\tonly_fans_days_can_comment0: 0,\n\t\t\treply_flag0: 2,\n\t\t\tauto_elect_comment0: 0,\n\t\t\tauto_elect_reply0: 1,\n\t\t\topen_fansmsg0: 0\n\t\t};\n\t\n\t\tconst type = params?.settingInfo?.wxInteraction?.Type ?? \"\";\n\t\tif (type === \"public\") {\n\t\t\tconst _opt = params?.settingInfo?.wxInteraction?.Option;\n\t\t\tif (!_opt || !_opt.Comment || !_opt.reply || _opt.elect_comment == null || _opt.elect_reply == null) return null;\n\t\n\t\t\tconst commentType = userTypeMap[_opt.Comment];\n\t\t\tconst replyType = userTypeMap[_opt.reply] + 1;\n\n\t\t\t// 设置评论权限\n\t\t\t_wxInteraction.need_open_comment0 = 1;\n\t\t\tswitch (commentType) {\n\t\t\t\tcase 1:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 0;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 1;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 0;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 1;\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t\t// 设置回复权限等级\n\t\t\t_wxInteraction.reply_flag0 = replyType;\n\t\n\t\t\t// 精选功能\n\t\t\t_wxInteraction.auto_elect_comment0 = _opt.elect_comment ? userTypeMap[_opt.Comment] : 0;\n\t\t\t_wxInteraction.auto_elect_reply0 = _opt.elect_reply ? userTypeMap[_opt.reply] : 1;\n\t\n\t\t\treturn _wxInteraction;\n\t\t}\n\t\n\t\tif (type === \"private\") {\n\t\t\t_wxInteraction.open_fansmsg0 = 1;\n\t\t\treturn _wxInteraction;\n\t\t}\n\t\n\t\t// 其他未启用评论功能的情形\n\t\treturn _wxInteraction;\n\t})();\n\n\tif (!wxInteractionInfo) return { code: 200, message: \"互动参数设置错误,请检查参数设置!\", data: \"\" }\n\t\n\t\n\t// 4. 保存为草稿\n\tconst draftData = {\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\tcount: 1,\n\t\toperate_from: \"Chrome\",\n\t\tisnew: 0,\n\t\tarticlenum: 1,\n\t\tpre_timesend_set: 0,\n\t\tis_finder_video0: 0,\n\t\tfinder_draft_id0: 0,\n\t\tapplyori0: 0,\n\t\tcan_reward0: writerid ? 1 : 0,\n\t\tpay_gifts_count0: 0,\n\t\tis_video_recommend0: -1,\n\t\twriterid0: writerid ? writerid : 0,\n\t\tauto_gen_digest0: 0,\n\t\tlast_choose_cover_from0: 0,\n\t\tneed_open_comment0: wxInteractionInfo.need_open_comment0 ,\n\t\tonly_fans_can_comment0: wxInteractionInfo.only_fans_can_comment0,\n\t\tonly_fans_days_can_comment0: wxInteractionInfo.only_fans_days_can_comment0,\n\t\treply_flag0: wxInteractionInfo.reply_flag0,\n\t\tauto_elect_comment0: wxInteractionInfo.auto_elect_comment0,\n\t\tauto_elect_reply0: wxInteractionInfo.auto_elect_reply0,\n\t\treward_reply_id0:params.settingInfo?.wxRewardText? reply_id ? reply_id : 0 : 0,\n\t\tnot_pay_can_comment0: 0,\n\t\tdata_seq: 0,\n\t\tmsg_index_id0: \"\",\n\n\t\ttoken: params.token,\n\t\tAppMsgId: params.appMsgId || \"\",\n\t\ttitle0: params.title,\n\t\tauthor0: params?.settingInfo?.wxAuthor || \"\" ,\n\t\tdigest0: params?.settingInfo?.wxAbstract || \"\",\n\t\tcontent0: content || \"\",\n\t\tsourceurl0: params?.settingInfo?.wxOriginalText || \"\",\n\t\tcdn_url0: coverRes[0].cdn_url || \"\",\n\t\tcopyright_type0: params?.settingInfo?.wxCopyright? 1 : 0,\n\t\tallow_reprint0: params?.settingInfo?.wxCopyright? 0 : '',\n\t\tallow_reprint_modify0: params?.settingInfo?.wxCopyright? 0 : '',\n\t\tori_white_list0: params?.settingInfo?.wxCopyright? oriWhitelist: '',\n\t\topen_fansmsg0: wxInteractionInfo.open_fansmsg0,\n\t\tallow_fast_reprint0: params?.settingInfo?.wxQuickReprint ? 1 : 0,\n\t\tdisable_recommend0: params?.settingInfo?.wxNotAllowRecommend ? 1 : 0,\n\t\tclaim_source_type0: params?.settingInfo?.wxCreationSource?.[0] || \"\",\n\n\t\tmasssend_check: 1,\n\t\tis_masssend: 1,\n\t};\n\n\tconst { appMsgId } = await http.api<{ appMsgId: string }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/operate_appmsg\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tt: \"ajax-response\",\n\t\t\tsub: \"create\",\n\t\t\ttype: 77,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: generatorFormData(draftData),\n\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试发布。\",\n\t});\n\n\t// 如果只需要保存为草稿,直接返回 appMsgId\n\tif (params.saveType === \"draft\") {\n\t\treturn { code: 0, data: appMsgId, message: \"微信公众号保存草稿成功。\" };\n\t}\n\n\tconst masssendpage = () => {\n\t\treturn http.api<CommonResponse<{ operation_seq: string; quota_detail_list: QuotaDetail[] }>>({\n\t\t\tmethod: \"get\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssendpage\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tpreview_appmsgid: appMsgId,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t},\n\t\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试发布。\",\n\t\t});\n\t};\n\n\t// 4. 预览\n\tlet massSendRes = await masssendpage();\n\t// 判断是否需要同意群发声明\n\tif (massSendRes.base_resp?.ret === 154019) {\n\t\ttask.logger.info(\"需要同意群发声明\");\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/setprotocolsign\",\n\t\t\tparams: {\n\t\t\t\tcgi: \"setprotocolsign\",\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\ttoken: params.token,\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t\tissigned: 1,\n\t\t\t}),\n\t\t});\n\t\tmassSendRes = await masssendpage();\n\t}\n\n\t// 判断是否还有群发次数\n\tconst { operation_seq, quota_detail_list = [] } = massSendRes;\n\n\t// 群发时需要判断是否还有群发次数\n\tif (params.masssend) {\n\t\tconst quotaDetail = quota_detail_list.find((it) => it.quota_type === QuotaType.Normal);\n\t\tif (!quotaDetail?.quota_item_list[0]?.quota) {\n\t\t\treturn { code: 200, message: \"今日群发次数用尽,请明天再试。\", data: \"\" };\n\t\t}\n\t}\n\n\t// 非群发时会多一个接口\n\tif (!params.masssend) {\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\t\tparams: {\n\t\t\t\tt: \"ajax-response\",\n\t\t\t\tfor_check: 1,\n\t\t\t\tis_release_publish_page: 1,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\tappmsgid: appMsgId,\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t}),\n\t\t});\n\t}\n\n\t// check\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend?action=check_same_material\",\n\t\tdata: generatorFormData({\n\t\t\tmsgid: appMsgId,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tconst copyrightStatData = {\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\trandom: Math.random().toString(),\n\t\tfingerprint,\n\t\tfirst_check: 1,\n\t\ttype: 10,\n\t\tappmsgid: appMsgId,\n\t};\n\tfor (let i = 0; i < 10; i++) {\n\t\tawait sleep(1000);\n\t\tconst lastData = { ...copyrightStatData, first_check: i === 0 ? 1 : 0 };\n\t\tconst checkCopyrightStatRes = await checkCopyrightStat<{ open_ad_reprint_status?: string }>(http, params, lastData);\n\t\tif (checkCopyrightStatRes.open_ad_reprint_status) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tawait sleep(300);\n\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\taction: \"check_ad\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\tappmsg_id: appMsgId,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\tis_release_publish_page: params.masssend ? 0 : 1, // 群发时为 0,否则为 1\n\t\t\tsend_time: 0,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tawait sleep(300);\n\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\taction: \"check_music\",\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\tappmsgid: appMsgId,\n\t\t\tmasssend_check: 1,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tawait sleep(300);\n\n\t// 5. 获取群发文章ticket接口\n\tconst getTicketResult = await http.api<{ ticket: string; operation_seq: string }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/misc/safeassistant\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t1: 1,\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\taction: \"get_ticket\",\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t});\n\n\tawait sleep(300);\n\n\t// 6. 获取群发文章 uuid\n\tconst getUuidResult = await http.api<{ uuid: string; genuuid_res: number }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/safe/safeqrconnect\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t1: 1,\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\tstate: 0,\n\t\t\tlogin_type: \"safe_center\",\n\t\t\ttype: \"json\",\n\t\t\tticket: getTicketResult.ticket,\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t});\n\tawait sleep(1000);\n\n\tif (getUuidResult.genuuid_res !== 0) {\n\t\treturn { code: 200, message: GET_QRCODE_DEFAULT_ERROR, data: \"\" };\n\t}\n\tconst uuid = getUuidResult.uuid;\n\tawait sleep(1000);\n\n\t// 7. 获取验证二维码\n\tconst qrcodeResult = await http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.weixin.qq.com/safe/safeqrcode\",\n\t\tparams: {\n\t\t\taction: \"check\",\n\t\t\ttype: \"msgs\",\n\t\t\tservice_type: 1,\n\t\t\tticket: getTicketResult.ticket,\n\t\t\tuuid,\n\t\t\tmsgid: operation_seq,\n\t\t\t...(params.masssend ? {} : { publish_type: 1 }),\n\t\t},\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t\tresponseType: \"arraybuffer\",\n\t});\n\n\tconst qrcodeBuffer = Buffer.from(qrcodeResult);\n\tconst qrcodeFilePath = path.join(tmpCachePath, \"weixin_qrcode.jpg\");\n\tfs.writeFileSync(qrcodeFilePath, new Uint8Array(qrcodeBuffer));\n\n\tparams.safeQrcodeCallback?.(qrcodeFilePath);\n\n\t// 8. 验证二维码结果\n\tlet code = \"\";\n\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\tawait sleep(2000);\n\n\t\tconst checkScanResult = await http.api<{ code: string; errcode: number }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/safe/safeuuid\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\ttimespam: Date.now(),\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tuuid,\n\t\t\t\taction: \"json\",\n\t\t\t\ttype: \"json\",\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t}),\n\t\t});\n\n\t\tif (checkScanResult.errcode === 405 && checkScanResult.code) {\n\t\t\tcode = checkScanResult.code;\n\t\t\tbreak;\n\t\t}\n\n\t\tif (i === scanRetryMaxCount - 1) {\n\t\t\treturn { code: 200, message: \"二维码已过期,请重试发布。\", data: \"\" };\n\t\t}\n\t}\n\n\t// 非群发时会多一个接口\n\tif (!params.masssend) {\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/misc/safeassistant\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t1: 1,\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t\taction: \"get_uuid\",\n\t\t\t\tuuid,\n\t\t\t}),\n\t\t});\n\t}\n\n\t// 9. 发送群发通知\n\tawait http.api<{ code: string; errcode: number }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\tt: \"ajax-response\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t...(params.masssend ? {} : { is_release_publish_page: 1 }),\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: \"1\",\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t\tack: \"\",\n\t\t\tcode,\n\t\t\treprint_info: \"\",\n\t\t\treprint_confirm: \"0\",\n\t\t\tlist: \"\",\n\t\t\tgroupid: \"\",\n\t\t\tsex: \"0\",\n\t\t\tcountry: \"\",\n\t\t\tprovince: \"\",\n\t\t\tcity: \"\",\n\t\t\tsend_time: \"0\",\n\t\t\ttype: \"10\",\n\t\t\tshare_page: \"1\",\n\t\t\tsynctxweibo: \"0\",\n\t\t\toperation_seq,\n\t\t\treq_id: randomString(32),\n\t\t\treq_time: new Date().getTime() + client_time_diff * 1e3,\n\t\t\tsync_version: \"1\",\n\t\t\tisFreePublish: params.masssend ? \"false\" : \"true\",\n\t\t\tappmsgid: appMsgId,\n\t\t\tisMulti: \"0\",\n\t\t\tdirect_send: \"1\",\n\t\t\tisNeedCode: \"true\",\n\t\t\tuserType: \"1\",\n\t\t}),\n\t\tdefaultErrorMsg: params.masssend ? \"文章群发异常,请尝试关闭群发或稍后重试。\" : \"文章发布异常,请稍后重试。\",\n\t});\n\n\treturn success(appMsgId, \"微信公众号发布完成。\");\n};\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport axios from \"axios\";\n\nimport { copyHtmlToClipboard, parseUrlQueryString, PopupListener } from \"../../utils\";\nimport type { PublishAction } from \"./index\";\nimport { scanRetryMaxCount } from \"./utils\";\n\n// 等待二维码验证结果最长时间\nconst waitQrcodeResultMaxTime = scanRetryMaxCount * 2 * 1000;\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.weixin.qq.com\",\n\t\turl: \"https://mp.weixin.qq.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst urlParams = {\n\t\taction: \"edit\",\n\t\ttype: 77,\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\ttimestamp: Date.now(),\n\t\tappmsgid: params.appMsgId,\n\t};\n\n\tif (params.settingInfo?.wxRewardTarget){\n\t\tconst urlRewardParams = {\n\t\t\taction: \"inviteauthor\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t};\n\t\tconst wxRewardPage = await task.createPage({\n\t\t\tshow: task.debug,\n\t\t\turl:\n\t\t\t\tparams.url ||\n\t\t\t\t`https://mp.weixin.qq.com/cgi-bin/safecenterstatus?${Object.entries(urlRewardParams)\n\t\t\t\t\t.map((it) => it.join(\"=\"))\n\t\t\t\t\t.join(\"&\")}`,\n\t\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t\t});\n\n\t\tconst reward_page = wxRewardPage.locator(\"#app\")\n\t\tconst isAddRewarder = reward_page.locator('.author_card_bd.weui-desktop-vm_primary').filter({hasText: params.settingInfo.wxRewardTarget.author}).count()\n\t\tif(await isAddRewarder == 0){\n\t\t\tawait reward_page.locator('.weui-desktop-panel__hd-right').click()\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tawait wxRewardPage.waitForSelector('.invite-qrcode', { state: 'visible', timeout: 20000 });\n\t\t\t\t\tconst qrcodeSrc = await reward_page.locator(\".invite-qrcode\").getAttribute('src')\n\t\t\t\t\t\n\t\t\t\t\tif (qrcodeSrc) {\n\t\t\t\t\t\tconst rewardBuffer = Buffer.from(qrcodeSrc.replace(/^data:image\\/\\w+;base64,/, ''), 'base64');\n\t\t\t\t\t\tconst rewardFilePath = path.join(tmpCachePath, \"weixin_reward.jpg\");\n\t\t\t\t\t\tfs.writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));\n\t\t\t\t\t\n\t\t\t\t\t\tparams.safeQrcodeCallback?.(rewardFilePath);\n\t\t\t\t\t}\n\n\t\t\t\t\t// await wxRewardPage.waitForSelector('[data-transfer=\"true\"]:not([weui=\"true\"])', { state: 'detached', timeout: 30000 });\n\t\t\t\t\t\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new Error(\"二维码已过期,请重试绑定。\");\n\t\t\t\t}\n\n\t\t\t\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\twxRewardPage.reload(),\n\t\t\t\t\t\twxRewardPage.waitForLoadState('domcontentloaded')\n\t\t\t\t\t]);\n\t\t\t\t\t\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait wxRewardPage.waitForSelector(`.author_card_bd.weui-desktop-vm_primary:has-text(\"${params.settingInfo.wxRewardTarget?.author}\")`, { timeout: 1000 });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} catch (error) {}\n\n\t\t\t\t\tif (i === scanRetryMaxCount - 1) throw new Error(\"未确认绑定账户,请在手机端确认绑定并重试\");\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tlet errorMessage = \"发生未知错误\";\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\terrorMessage = error.message;\n\t\t\t\t} else if (typeof error === \"string\") {\n\t\t\t\t\terrorMessage = error;\n\t\t\t\t}\n\t\t\t\tawait wxRewardPage.close();\n\t\t\t\treturn { code: 200, message: errorMessage , data: \"\" };\n\t\t\t}\n\t\t}\n\n\t\tif(params.settingInfo.wxRewardText){\n\t\t\tawait wxRewardPage.locator('[href=\"/merchant/reward?action=getautoreply\"]').click()\n\t\t\tawait wxRewardPage.waitForLoadState('networkidle');\n\t\t\t\n\t\t\tconst isAddWord = reward_page.locator(\".auto-reply__list.edit .auto-reply__hd .auto-reply__text\").filter({hasText: new RegExp(`^${params.settingInfo.wxRewardText}$`) }).count()\n\t\t\t\n\t\t\tif(await isAddWord == 0){\n\t\t\t\tawait reward_page.locator(\".emotion_editor .edit_area\").fill(params.settingInfo.wxRewardText)\n\t\t\t\tawait reward_page.locator(\".emotion_editor .edit_area\").click()\n\t\t\t\tawait reward_page.locator(\".editor_toolbar .weui-desktop-btn.weui-desktop-btn_primary\").click()\n\t\t\t}\n\t\t}\n\t\tawait wxRewardPage.close();\n\n\t}\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl:\n\t\t\tparams.url ||\n\t\t\t`https://mp.weixin.qq.com/cgi-bin/appmsg?${Object.entries(urlParams)\n\t\t\t\t.map((it) => it.join(\"=\"))\n\t\t\t\t.join(\"&\")}`,\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".weui-desktop-head\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 等待编辑器加载出来\n\tawait page.waitForSelector(\"#editor_pannel\", { state: \"visible\" });\n\n\t//新功能更新监听\n\tPopupListener(page,'[v-transfer-dom=\"#vue_app\"] .weui-desktop-dialog',\"更新\", '[v-transfer-dom=\"#vue_app\"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: false\n\t})\n\t//小店功能开通监听\n\tPopupListener(page,'[extclass=\"weui-desktop-dialog_simple\"] .weui-desktop-dialog',\"小店\", '[extclass=\"weui-desktop-dialog_simple\"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: true\n\t})\n\n\t// 2. 填写标题\n\tconst titleInstance = page.locator(\"#js_title_main textarea#title\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 3. 填写作者\n\tif (params.settingInfo.wxAuthor) {\n\t\tconst titleInstance = page.locator(\"#js_author_area input#author\");\n\t\tawait titleInstance.click();\n\t\tawait titleInstance.fill(params.settingInfo.wxAuthor);\n\t}\n\n\t// 4. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\".js_editor_area .ProseMirror\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 将设置区域滚动到可见区域\n\tawait page.locator(\"#article_setting_area\").evaluate((node) => node.scrollIntoView());\n\n\t// 5. 填写摘要\n\tif (params.settingInfo.wxAbstract) {\n\t\tconst titleInstance = page.locator(\"#article_setting_area #js_description_area textarea\");\n\t\tawait titleInstance.click();\n\t\tawait titleInstance.fill(params.settingInfo.wxAbstract);\n\t}\n\n\t// 6. 设置封面\n\tif (params.settingInfo.wxCover) {\n\t\tconst fileName = getFilenameFromUrl(params.settingInfo.wxCover);\n\t\tconst cover = await downloadImage(params.settingInfo.wxCover, path.join(tmpCachePath, fileName));\n\n\t\t// 从图片库选择\n\t\tawait page.locator(\"#article_setting_area #js_cover_area .select-cover__btn\").hover();\n\t\tawait page\n\t\t\t.locator(\"#article_setting_area #js_cover_area .pop-opr__group-select-cover .pop-opr__list .pop-opr__item\")\n\t\t\t.filter({ hasText: \"从图片库选择\" })\n\t\t\t.click();\n\n\t\t// 在弹窗内选择「我的图片」- 「上传文件」\n\t\t// 等待弹窗出现\n\t\tawait page.waitForSelector(\"#vue_app .weui-desktop-dialog\", { state: \"visible\" });\n\t\tconst dialog = page.locator(\"#vue_app .weui-desktop-dialog\");\n\t\t// 点击「我的图片」\n\t\tawait dialog.locator(\".weui-desktop-menu .weui-desktop-menu__item\").filter({ hasText: \"我的图片\" }).click();\n\t\tawait page.waitForTimeout(300);\n\t\t// 点击「上传文件」\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait dialog.locator(\".weui-desktop-img-picker__list__area .js_upload_btn_container\").click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([cover]);\n\n\t\t// 等待图片上传完成\n\t\tawait page.waitForSelector(\".weui-desktop-img-picker__list .weui-desktop-img-picker__item.selected\", {\n\t\t\tstate: \"visible\",\n\t\t});\n\t\tawait page.waitForSelector('.weui-desktop-upload__file__progress', { state: 'detached' });\n\n\t\tconst pic_msg = page.locator('.weui-desktop-img-picker__list .weui-desktop-img-picker__item.selected .weui-desktop-upload__file__msg')\n\t\tif(await pic_msg.count() > 0) return {code: 200, message: \"图片上传错误:\"+(await pic_msg.textContent()||\"未知错误,请重试!\"), data: \"\"}\n\n\t\t// 选择下一步\n\t\tawait dialog\n\t\t\t.locator(\".weui-desktop-dialog__ft .weui-desktop-btn:not(.weui-desktop-btn_disabled)\")\n\t\t\t.filter({ hasText: \"下一步\" })\n\t\t\t.click();\n\t\t// 等待第二步的确认按钮出来\n\t\tawait dialog\n\t\t\t.locator(\".weui-desktop-dialog__ft .weui-desktop-btn\")\n\t\t\t.filter({ hasText: \"确认\" })\n\t\t\t.waitFor({ state: \"visible\" });\n\t\tawait dialog.locator(\".weui-desktop-dialog__ft .weui-desktop-btn\").filter({ hasText: \"确认\" }).click();\n\t}\n\n\t// 7. 原创与赞赏设置\n\tif(params.settingInfo.wxCopyright){\n\t\tawait page.locator('#js_original').click()\n\n\t\tconst ori_dialog = page.locator('.claim__original-dialog.original_dialog')\n\t\tconst ori_dialog_bd = ori_dialog.locator('.weui-desktop-dialog__bd')\n\t\tconst ori_dialog_ft = ori_dialog.locator('.weui-desktop-dialog__ft')\n\n\t\tawait ori_dialog_bd.locator('.weui-desktop-form__check-content').filter({hasText: \"文字原创\"}).click()\n\n\t\tif(params.settingInfo?.wxWhitelist){\n\t\t\t\n\t\t\tfor (var _target of params.settingInfo.wxWhitelist){\n\t\t\t\t\n\t\t\t\tawait ori_dialog_bd.locator('#js_article_whitelist_search').fill(_target)\n\t\t\t\tawait ori_dialog_bd.locator('.js_search').click()\n\t\t\t\tconst search_res = ori_dialog_bd.locator('#js_article_whitelist_search_result > div')\n\n\t\t\t\tawait page.waitForTimeout(1000);\n\n\t\t\t\tif( await search_res.getAttribute('class') !== 'search-result-title search-result-empty'){\n\n\t\t\t\t\tconst search_res_name = await search_res.locator('.search-result-name-left').textContent() || undefined\n\t\t\t\t\tawait search_res.click()\n\t\t\t\t\tconst whrite_list = ori_dialog_bd.locator('#js_article_whitelist_added tbody')\n\t\t\t\t\tconst white_td_isadd = await whrite_list.locator('.table-td-name').filter({hasText: search_res_name}).count()\n\n\t\t\t\t\tif (!white_td_isadd) {\n\t\t\t\t\t\treturn {code: 200 , message:'白名单添加失败,请重试!', data: ''}\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\treturn { code: 200, message: `白名单用户:${_target} 未搜索到,请确定输入是否正确!`, data: '' }\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\n\t\tif(params.settingInfo?.wxQuickReprint){\n\t\t\tconst btn_isChecked = await ori_dialog_bd.locator('//span[@class=\"frm_tips\"]').filter({ hasText: '已开启' }).count() == 1 ? true : false; \n\t\t\tif(!btn_isChecked) await ori_dialog_bd.locator('.weui-desktop-switch_loading .weui-desktop-switch__box').click()\n\t\t}\n\n\t\tconst checkbox = ori_dialog_ft.locator('.weui-desktop-icon-checkbox')\n\t\tif( !await checkbox.isChecked()) await checkbox.check() \n\t\tawait ori_dialog_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\n\t\tif (params.settingInfo?.wxRewardTarget){\n\n\t\t\tawait page.locator('#js_reward_setting_area').click()\n\n\t\t\tconst reward_setting = page.locator('.reward-setting-dialog')\n\t\t\tconst reward_setting_bd = reward_setting.locator('.weui-desktop-dialog__bd')\n\t\t\tconst reward_setting_ft = reward_setting.locator('.weui-desktop-dialog__ft')\n\n\t\t\t//遍历绑定信息\n\t\t\tfor (var _type in params.settingInfo.wxRewardTarget){\n\t\t\t\tif (_type === \"author\"){\n\t\t\t\t\tlet userName = params.settingInfo.wxRewardTarget[_type]\n\n\t\t\t\t\tawait reward_setting_bd.locator('.weui-desktop-form__check-label', { hasText: '赞赏作者' }).click()\n\t\t\t\t\tawait reward_setting_bd.locator('.weui-desktop-form__input').fill(userName)\n\n\n\t\t\t\t\tif(params.settingInfo.wxRewardText) {\n\t\t\t\t\t\tconst reward_setting_replay = page.locator('.reward-reply-setting')\n\t\t\t\t\t\tconst switchAuto = reward_setting_replay.locator('.weui-desktop-switch__box')\n\n\t\t\t\t\t\tconst maxAttempts = 5;\n\t\t\t\t\t\tconst delayMs = 500;\n\t\t\t\t\t\tlet nowCheckTime = 0 \n\n\t\t\t\t\t\tfor (let attempt = 0; attempt < maxAttempts; attempt++) {\n\t\t\t\t\t\t\tconst isDisabled = await switchAuto.isDisabled();\n\t\t\t\t\t\t\tif (!isDisabled){\n\t\t\t\t\t\t\t\tawait switchAuto.isChecked() ? nowCheckTime++ : null\n\t\t\t\t\t\t\t\tif (nowCheckTime == 2) break\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (attempt === maxAttempts - 1) throw new Error('Checkbox did not become enabled within the timeout.');\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, delayMs)); \n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\n\t\t\t\t\t\tconst isOneReplay = await reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__tips').textContent() == \"添加新的回复\"\n\t\t\t\t\t\tconst isCurrentReplay = await reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__display .wording').filter({hasText: new RegExp(`^${[params.settingInfo.wxRewardText]}$`)}).count() == 1\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (!isOneReplay && !isCurrentReplay) {\n\t\t\t\t\t\t\tawait reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__tips').click()\n\t\t\t\t\t\t\tawait reward_setting_replay.locator('.reward-reply-select__display.can-select .wording').filter({hasText: new RegExp(`^${[params.settingInfo.wxRewardText]}$`)}).click()\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\tawait reward_setting_bd.locator('.reward-reply-setting .weui-desktop-switch__input').isChecked() ? reward_setting_bd.locator('.reward-reply-setting .weui-desktop-switch__box').uncheck(): 0\n\t\t\t\t\t}\n\t\n\t\t\t\t}\n\t\t\t\telse if (_type === \"project\"){}\n\t\t\t}\n\n\t\t\tconst checkbox = reward_setting_ft.locator('.weui-desktop-icon-checkbox')\n\t\t\tif( !await checkbox.isChecked()) await checkbox.check() \n\t\t\tawait reward_setting_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\n\t\t}\n\n\t}\n\n\t// 8. 互动设置\n\tif(params.settingInfo?.wxInteraction){\n\t\tawait page.locator('.appmsg-editor__setting-group.js_interaction_cell').click()\n\t\tconst wxInteraction_setting = page.locator('.interaction-dialog')\n\t\tconst wxInteraction_bd = wxInteraction_setting.locator('.weui-desktop-dialog__bd')\n\t\tconst wxInteraction_ft = wxInteraction_setting.locator('.weui-desktop-dialog__ft')\n\n\t\tif(params.settingInfo.wxInteraction.Type == \"public\"){\n\t\t\tawait wxInteraction_bd.locator('.weui-desktop-form__check-label span', { hasText: /^(开启|留言)$/ }).click();\n\t\t\t\n\t\t\tconst comment_area = wxInteraction_bd.locator('.comment-options-block.pt0')\n\t\t\tconst reply_area = wxInteraction_bd.locator('.comment-options-block.bb0.pb0')\n\t\t\tconst commont_rply_opt = page.locator('.weui-desktop-popper.options-popover[x-placement=\"bottom\"]')\n\n\t\t\tawait comment_area.locator('.comment-options__selector-btn').click();\n\t\t\tawait commont_rply_opt.locator('.weui-desktop-form__check-label', { hasText: params.settingInfo.wxInteraction.Option?.Comment }).click();\n\n\t\t\tif(params.settingInfo.wxInteraction.Option?.elect_comment) {\n\t\t\t\tawait comment_area.locator('.weui-desktop-switch__box').check()\n\t\t\t}else{\n\t\t\t\tawait comment_area.locator('.weui-desktop-switch__input').isChecked() ? comment_area.locator('.weui-desktop-switch__box').uncheck(): 0\n\t\t\t}\n\n\t\t\tawait page.waitForTimeout(1000);\n\n\t\t\tawait reply_area.locator('.comment-options__selector-btn').click();\n\t\t\tawait commont_rply_opt.locator('.weui-desktop-form__check-label', { hasText: params.settingInfo.wxInteraction.Option?.reply }).click();\n\t\t\t\n\t\t\tif(params.settingInfo.wxInteraction.Option?.elect_reply) {\n\t\t\t\tawait reply_area.locator('.weui-desktop-switch__box').check()\n\t\t\t}else{\n\t\t\t\tawait reply_area.locator('.weui-desktop-switch__input').isChecked() ? reply_area.locator('.weui-desktop-switch__box').uncheck(): 0\n\t\t\t}\n\t\t}else if(params.settingInfo.wxInteraction.Type == \"private\"){\n\t\t\tawait wxInteraction_bd.locator('.weui-desktop-form__check-label span', { hasText: /^(快捷私信|不开启)$/ }).click();\n\t\t}\n\n\t\tawait wxInteraction_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\t}\n\n\t// 9. 原文链接\n\tif (params.settingInfo.wxOriginalText) {\n\t\tawait page.locator(\"#js_article_url_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tconst poperInput = poperInstance.locator(\"input.weui-desktop-form__input.js_url\");\n\t\tawait poperInput.fill(params.settingInfo.wxOriginalText);\n\t\tawait poperInstance.locator(\".popover_bar .btn_primary\").click();\n\t}\n\n\t// 10. 创作来源\n\tif (params.settingInfo.wxCreationSource && params.settingInfo.wxCreationSource.length > 0) {\n\t\tconst source = params.settingInfo.wxCreationSource[0];\n\t\tawait page.locator(\"#js_claim_source_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tawait poperInstance.locator(`.frm_radio_item label[for=\"${source}\"]`).click();\n\t}\n\n\t// 11. 关闭平台推荐\n\tif (params.settingInfo.wxNotAllowRecommend === true) {\n\t\tawait page.locator(\"#js_not_recommend_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tawait poperInstance.locator('.frm_radio_item label[for=\"not_recomment_0\"]').click();\n\t}\n\n\tawait page.waitForTimeout(1000);\n\n\t// 12. 发布\n\tconst articleId = await new Promise<string>((resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tconst url = response.url();\n\t\t\tconst query = parseUrlQueryString(url);\n\t\t\tif (url.includes(\"/cgi-bin/operate_appmsg\") && query?.t === \"ajax-response\") {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse?.appMsgId);\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\t// 点击发表\n\t\tpage.locator(\"#editor_pannel #bottom_main #js_button_area #js_send button\").click();\n\t});\n\n\t// 再次点击发表\n\tawait page.waitForSelector('.new_mass_send_dialog .weui-desktop-dialog__wrp:not([style*=\"display: none\"])', {\n\t\tstate: \"visible\",\n\t});\n\tawait page\n\t\t.locator(\".new_mass_send_dialog .weui-desktop-dialog .weui-desktop-dialog__ft button.weui-desktop-btn_primary\")\n\t\t.click();\n\n\t// 点击继续发表\n\tawait page.waitForSelector('.double_check_dialog .weui-desktop-dialog__wrp:not([style*=\"display: none\"])', {\n\t\tstate: \"visible\",\n\t});\n\tawait page\n\t\t.locator(\".double_check_dialog .weui-desktop-dialog .weui-desktop-dialog__ft button.weui-desktop-btn_primary\")\n\t\t.click();\n\n\ttry {\n\t\tconst startTime = Date.now();\n\n\t\t// biome-ignore lint/suspicious/noAsyncPromiseExecutor: <explanation>\n\t\tawait new Promise<void>(async (resolve, reject) => {\n\t\t\t// 定义响应处理函数\n\t\t\tconst handleResponse = async (response: Response) => {\n\t\t\t\tif (response.url().includes(\"/safe/safeuuid\")) {\n\t\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\t\tif (jsonResponse.errcode === 405) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\t\t} else if (Date.now() - startTime > waitQrcodeResultMaxTime) {\n\t\t\t\t\t\treject();\n\t\t\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// 开始监听响应事件\n\t\t\tpage.on(\"response\", handleResponse);\n\n\t\t\t// 获取微信验证二维码\n\t\t\tawait page.waitForSelector(\".dialog .js_wxchecks.safe_check img.qrcode.js_qrcode\", {\n\t\t\t\tstate: \"visible\",\n\t\t\t});\n\t\t\tconst qrcodeSrc = await page\n\t\t\t\t.locator(\".dialog .js_wxchecks.safe_check img.qrcode.js_qrcode\")\n\t\t\t\t.first()\n\t\t\t\t.getAttribute(\"src\");\n\t\t\tif (qrcodeSrc) {\n\t\t\t\tconst imgUrl = new URL(qrcodeSrc, page.url()).href; // 处理相对路径\n\t\t\t\tconst response = await axios({\n\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\turl: imgUrl,\n\t\t\t\t\tresponseType: \"arraybuffer\", // 确保接收二进制数据\n\t\t\t\t});\n\t\t\t\t// 保存文件\n\t\t\t\tconst qrcodeFilePath = path.join(tmpCachePath, \"weixin_qrcode.jpg\");\n\t\t\t\tfs.writeFileSync(qrcodeFilePath, response.data);\n\t\t\t\tparams.safeQrcodeCallback?.(qrcodeFilePath);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"qrcodeSrc is empty\");\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tawait page.close();\n\t\treturn { code: 500, message: \"群发二维码已过期,请重试发布。\", data: \"\" };\n\t}\n\n\tawait page.waitForTimeout(3000);\n\tawait page.close();\n\n\treturn success(articleId);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { defaultParams, executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\nexport interface WxInteraction {\n\tType: \"public\" | \"private\" | \"off\"; // public:评论留言, priviate: 快捷私信, off: 不开启\n\tOption?: { // public下相关设置\n\t Comment: \"已关注7天及以上的用户\" | \"已关注的用户\" | \"所有用户\"; // 评论设置\n\t reply: \"已关注7天及以上的用户\" | \"已关注的用户\" | \"所有用户\"; // 回复设置\n\t elect_comment: boolean; // 是否开启精选评论\n\t elect_reply: boolean; // 是否开启精选回复\n\t};\n }\n\nexport interface WeixinPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\tmasssend?: boolean; // 是否群发(默认开启群发)\n\ttoken: string | number;\n\ttitle: string; // 标题\n\tcontent: string; // 正文内容\n\tuuid?: string;\n\tappMsgId?: string;\n\toperation_seq?: string;\n\tsettingInfo: {\n\t\twxCover: string; // 封面\n\t\twxAuthor?: string; // 作者\n\t\twxAbstract?: string; // 摘要\n\t\twxOriginalText?: string; // 原文链接\n\t\twxCopyright?: boolean, // 版权声明\n\t\twxWhitelist?: string[]; // 转载白马名单\n\t\twxRewardTarget?: Record<string, string>; // 赞赏目标与ID\n\t\twxRewardText?: string; // 赞赏文案\n\t\twxQuickReprint?: boolean; // 快捷转载\n\t\twxNotAllowRecommend?: boolean; // 不允许被平台推荐\n\t\twxCreationSource?: string[]; // 创作来源\n\t\twxInteraction?: WxInteraction // 互动设置\n\t};\n\tsafeQrcodeCallback?: (qrcodePath: string) => void; // 二维码验证回调\n}\n\nexport interface WxWhitelistUserInfo {\n\tnickname: string;\n\topenid: string; // 微信常用字段命名可能是 open_id\n\tusername: string;\n\twx_name: string;\n\tpic_url: string;\n}\n\nexport type PublishAction = CommonAction<WeixinPublishParams, string>;\n\nexport const weixinPublish: PublishAction = async (task, _params) => {\n\tconst params = defaultParams(_params, { masssend: true });\n\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { PublishAction, WeixinmpPublishParams } from \".\";\nimport type { WeiXinCropResult } from \"../../types\";\nimport type { AspectRatio } from \"../../utils\";\nimport { calculateCropCoordinates, getFileState } from \"../../utils\";\nimport { Http } from \"../../utils/http\"\n\ntype ColorResponse = {\n\twidth: number;\n\theight: number;\n\ttheme_color: { r: number; g: number; b: number };\n};\ntype ShareInamgeInfo = {\n\tcdn_url: string;\n\tdisable_live: 0;\n\tdisable_theme: 1;\n\tfile_id: number;\n\twidth: number;\n\theight: number;\n\ttheme_color: string;\n\turl: string;\n};\n\nconst saveDraft = (\n\thttp: Http,\n\tparams: WeixinmpPublishParams,\n\tdata: Record<string, unknown>,\n) => {\n\tconst formData = new FormData();\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tformData.append(key, value);\n\t}\n\n\treturn http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/operate_appmsg\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tt: \"ajax-response\",\n\t\t\tsub: \"update\",\n\t\t\ttype: 77,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: formData,\n\t});\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.weixin.qq.com\",\n\t\t\treferer: `https://mp.weixin.qq.com/cgi-bin/appmsg?token=${params.token}&lang=zh_CN`,\n\t\t},\n\t});\n\n\t// 1. 上传图片\n\tconst shareImageInfos: ShareInamgeInfo[] = [];\n\tconst cropResult: Record<string, string> = {};\n\n\tif (params.banners && params.banners.length > 0) {\n\t\t// 下载图片到本地\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tfor (let index = 0; index < images.length; index++) {\n\t\t\tconst image = images[index];\n\t\t\tconst fileState = getFileState(image);\n\n\t\t\tconst formData = new FormData();\n\t\t\tformData.append(\"id\", `WU_FILE_${index + 1}`);\n\t\t\tformData.append(\"name\", fileState.name);\n\t\t\tformData.append(\"type\", fileState.type);\n\t\t\tformData.append(\"lastModifiedDate\", fileState.lastModifiedDate);\n\t\t\tformData.append(\"size\", fileState.size);\n\t\t\tformData.append(\"file\", fs.createReadStream(image));\n\n\t\t\tconst response = await http.api<{ cdn_url: string; content: string }>({\n\t\t\t\tmethod: \"post\",\n\t\t\t\turl: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,\n\t\t\t\tdata: formData,\n\t\t\t});\n\n\t\t\t// 获取图片的主题色\n\t\t\tconst colorResponseData = await http.api<ColorResponse>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/filepage\",\n\t\t\t\tparams: {\n\t\t\t\t\taction: \"getimgext\",\n\t\t\t\t\tfileid: response.content,\n\t\t\t\t\ttoken: params.token,\n\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\tf: \"json\",\n\t\t\t\t\tajax: 1,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst themeColor = colorResponseData.theme_color;\n\n\t\t\tshareImageInfos.push({\n\t\t\t\tcdn_url: response.cdn_url,\n\t\t\t\tdisable_live: 0,\n\t\t\t\tdisable_theme: 1,\n\t\t\t\tfile_id: Number(response.content),\n\t\t\t\twidth: colorResponseData.width,\n\t\t\t\theight: colorResponseData.height,\n\t\t\t\ttheme_color: `rgb(${themeColor.r},${themeColor.g},${themeColor.b})`,\n\t\t\t\turl: response.cdn_url,\n\t\t\t});\n\n\t\t\t// 第一张图片还需要添加头图裁切\n\t\t\tif (index === 0) {\n\t\t\t\tconst cropFormData = new FormData();\n\t\t\t\tcropFormData.append(\"imgurl\", response.cdn_url);\n\n\t\t\t\t// 需要裁切 16:9,3:4,1:1 三种尺寸的图片\n\t\t\t\tconst cropRatios: AspectRatio[] = [\n\t\t\t\t\t[16, 9],\n\t\t\t\t\t[1, 1],\n\t\t\t\t\t[3, 4],\n\t\t\t\t];\n\t\t\t\tcropFormData.append(\"size_count\", cropRatios.length);\n\t\t\t\tconst cropCoordinates = cropRatios.map((r, idx) => {\n\t\t\t\t\tconst cropCoordinate = calculateCropCoordinates(\n\t\t\t\t\t\tcolorResponseData.width,\n\t\t\t\t\t\tcolorResponseData.height,\n\t\t\t\t\t\tr,\n\t\t\t\t\t);\n\t\t\t\t\tcropFormData.append(`size${idx}_x1`, cropCoordinate.x1);\n\t\t\t\t\tcropFormData.append(`size${idx}_y1`, cropCoordinate.y1);\n\t\t\t\t\tcropFormData.append(`size${idx}_x2`, cropCoordinate.x2);\n\t\t\t\t\tcropFormData.append(`size${idx}_y2`, cropCoordinate.y2);\n\n\t\t\t\t\treturn { ratio: `${r[0]}_${r[1]}`, ...cropCoordinate };\n\t\t\t\t});\n\n\t\t\t\tcropFormData.append(\"token\", params.token);\n\t\t\t\tcropFormData.append(\"lang\", \"zh_CN\");\n\t\t\t\tcropFormData.append(\"f\", \"json\");\n\t\t\t\tcropFormData.append(\"ajax\", 1);\n\n\t\t\t\tconst cropResponse = await http.api<{ result: WeiXinCropResult[] }>({\n method: \"post\",\n url: \"https://mp.weixin.qq.com/cgi-bin/cropimage?action=crop_multi\",\n data: cropFormData\n });\n\n\t\t\t\tcropResult.cdn_url_back0 = response.cdn_url; // 原图\n\t\t\t\tcropResult.cdn_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_235_1_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_16_9_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_1_1_url0 = cropResponse.result[1].cdnurl; // 1:1\n\t\t\t\tcropResult.cdn_3_4_url0 = cropResponse.result[2].cdnurl; // 3:4\n\t\t\t\tcropResult.crop_list0 = JSON.stringify({\n\t\t\t\t\tcrop_list: cropCoordinates.map((it, idx) => ({\n\t\t\t\t\t\tfile_id: cropResponse.result[idx].file_id,\n\t\t\t\t\t\tratio: it.ratio,\n\t\t\t\t\t\tx1: 0,\n\t\t\t\t\t\tx2: 0,\n\t\t\t\t\t\ty1: 0,\n\t\t\t\t\t\ty2: 0,\n\t\t\t\t\t})),\n\t\t\t\t\tcrop_list_percent: cropCoordinates.map((it, idx) => ({\n\t\t\t\t\t\t...it,\n\t\t\t\t\t\tfile_id: cropResponse.result[idx].file_id,\n\t\t\t\t\t})),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// 保存\n\tconst res = await saveDraft(http, params, {\n\t\t...cropResult,\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\toperate_from: \"Chrome\",\n\t\ttitle0: params.title,\n\t\tcontent0: params.content,\n\t\tshare_imageinfo0: JSON.stringify(shareImageInfos),\n\t});\n\n return success(res)\n};\n","import path from \"node:path\";\nimport type { CookieMap } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport type { PublishAction, Source } from \"./index\";\n\nconst sourceText: Record<Source, string> = {\n\tai: \"内容由AI生成\",\n\tofficial: \"素材来源官方媒体/网络新闻\",\n\tfictional: \"内容剧情演绎,仅供娱乐\",\n\tpersonal: \"个人观点,仅供参考\",\n};\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.weixin.qq.com\",\n\t\turl: \"https://mp.weixin.qq.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl:\n\t\t\tparams.url ||\n\t\t\t`https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=8&token=${params.token}&lang=zh_CN`,\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\t// 0. 判断是否登录\n\ttry {\n\t\tawait page.waitForSelector(\"#editor_pannel\");\n\t} catch (error) {\n\t\treturn { code: 500, message: \"登录失效\", data: page.url() };\n\t}\n\n\tconst container = page.locator(\"#editor_pannel\");\n\n\t// 1. 添加图片\n\tif (params.banners && params.banners.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\t// 选择文件\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait container.locator(\".image-selector__add\").hover();\n\t\tawait container\n\t\t\t.locator(\".image-selector__add .pop-opr__list .pop-opr__item\")\n\t\t\t.filter({ hasText: \"本地上传\" })\n\t\t\t.click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles(images);\n\t}\n\n\t// 2. 标题\n\tconst titleInstance = page.locator(\"#js_title_main textarea#title\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 3. 正文\n\tconst descInstance = page.locator(\"#guide_words_main .ProseMirror\");\n\tawait descInstance.click();\n\tawait descInstance.fill(params.content);\n\n\t// 4. 来源\n\tif (params.source) {\n\t\tawait container.locator(\"#js_claim_source_area .js_claim_source_desc\").click();\n\t\tawait page\n\t\t\t.locator(\".popover_article_claim_source .frm_radio_item label\")\n\t\t\t.filter({ hasText: sourceText[params.source] })\n\t\t\t.click();\n\t}\n\n\t// 5. 等待所有图片上传完成\n\tif (params.banners && params.banners.length > 0) {\n\t\tawait page.waitForSelector(\"#editor_pannel .image-selector .image-selector__preview\");\n\t}\n\n\t// 6. 保存\n\tif (params.draft) {\n\t\tawait container.locator(\"#bottom_main #js_submit button\").click();\n\t} else {\n\t\tawait container.locator(\"#bottom_main #js_send button\").click();\n\t}\n\n\treturn success(\"\");\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\nexport type Source = \"ai\" | \"official\" | \"fictional\" | \"personal\";\n\nexport interface WeixinmpPublishParams extends ActiomCommonParams {\n\ttoken: string | number;\n\tbanners?: string[];\n\ttitle: string; // 标题\n\tcontent: string; // 正文\n\t/**\n\t * 内容由AI生成 - ai\n\t * 素材来源官方媒体/网络新闻 - official\n\t * 内容剧情演绎,仅供娱乐 - fictional\n\t * 个人观点,仅供参考 - personal\n\t */\n\tsource?: Source; // 来源\n\tdraft?: boolean; // 是否为草稿\n}\n\nexport type PublishAction = CommonAction<WeixinmpPublishParams>;\n\nexport const weixinmpPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import { Buffer } from \"node:buffer\";\nimport crypto from \"node:crypto\";\n\n/**\n * 小红书加密参数逆向,代码来自:https://github.com/Cloxl/xhshow\n */\nexport class XsEncrypt {\n\tprivate words = [929260340, 1633971297, 895580464, 925905270];\n\tprivate keyBytes = Buffer.concat(\n\t\tthis.words.map(\n\t\t\t(word) =>\n\t\t\t\tnew Uint8Array(Buffer.from([(word >> 24) & 0xff, (word >> 16) & 0xff, (word >> 8) & 0xff, word & 0xff])),\n\t\t),\n\t);\n\tprivate iv = Buffer.from(\"4uzjr7mbsibcaldp\", \"utf8\");\n\n\t/**\n\t * 根据传入的url生成MD5摘要\n\t *\n\t * @param {string} url - API的url\n\t * @returns {string} MD5摘要\n\t */\n\tasync encryptMD5(url: string): Promise<string> {\n\t\treturn crypto.createHash(\"md5\").update(url, \"utf8\").digest(\"hex\");\n\t}\n\n\t/**\n\t * 根据传入的text生成AES加密后的内容,并将其转为base64编码\n\t *\n\t * @param {string} text - 需要加密的字符串\n\t * @returns {string} 加密后的base64编码字符串\n\t */\n\tasync encryptText(text: string): Promise<string> {\n\t\t// 将文本编码为 Base64\n\t\tconst textEncoded = Buffer.from(text).toString(\"base64\");\n\t\t// 创建 AES 加密器\n\t\tconst cipher = crypto.createCipheriv(\"aes-128-cbc\", new Uint8Array(this.keyBytes), new Uint8Array(this.iv));\n\t\t// 对数据进行填充\n\t\tconst ciphertext = cipher.update(textEncoded, \"utf8\", \"base64\");\n\t\treturn ciphertext + cipher.final(\"base64\");\n\t}\n\n\t/**\n\t * 把加密后的payload转为16进制\n\t *\n\t * @param {string} encodedData - 加密后的payload(Base64编码)\n\t * @returns {string} 十六进制字符串\n\t */\n\tasync base64ToHex(encodedData: string): Promise<string> {\n\t\t// 将 Base64 字符串解码为二进制数据\n\t\tconst decodedData = Buffer.from(encodedData, \"base64\");\n\t\t// 将二进制数据转换为十六进制字符串\n\t\treturn decodedData.toString(\"hex\");\n\t}\n\n\t/**\n\t * 把小红书加密参数payload转16进制 再使用base64编码\n\t *\n\t * @param {string} payload - 要加密处理的payload内容\n\t * @param {string} platform - 登录平台\n\t * @returns {string} 加密后并进行base64编码的字符串\n\t */\n\tasync encryptPayload(payload: string, platform: string): Promise<string> {\n\t\t// 将 payload 转换为十六进制\n\t\tconst hexPayload = await this.base64ToHex(payload);\n\n\t\t// 构造对象\n\t\tconst obj = {\n\t\t\tsignSvn: \"56\",\n\t\t\tsignType: \"x2\",\n\t\t\tappID: platform,\n\t\t\tsignVersion: \"1\",\n\t\t\tpayload: hexPayload,\n\t\t};\n\n\t\t// 将对象转换为 JSON 字符串(紧凑格式)\n\t\tconst jsonString = JSON.stringify(obj, null, 0);\n\n\t\t// 对 JSON 字符串进行 Base64 编码\n\t\treturn Buffer.from(jsonString).toString(\"base64\");\n\t}\n\n\t/**\n\t * 将传入的参数加密为小红书的xs\n\t * Args: url: API请求的URL\n\t * a1: 签名参数a1\n\t * ts: 时间戳\n\t * platform: 登录平台 默认为xhs-pc-web\n\t * Returns:\n\t * 最终的加密签名字符串,前缀为“XYW_”\n\t */\n\tasync encryptXs(url: string, a1: string, ts: string, platform = \"xhs-pc-web\"): Promise<string> {\n\t\tconst text = `x1=${await this.encryptMD5(`url=${url}`)};x2=0|0|0|1|0|0|1|0|0|0|1|0|0|0|0|1|0|0|0;x3=${a1};x4=${ts};`;\n\t\treturn `XYW_${await this.encryptPayload(await this.encryptText(text), platform)}`;\n\t}\n\n\tdumps(...rest: Parameters<typeof JSON.stringify>): string {\n\t\tconst [data, replacer = null, space = 0] = rest;\n\t\treturn JSON.stringify(data, replacer, space)\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/\":\\s+\"/g, '\":\"');\n\t}\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport type { PublishAction } from \".\";\nimport { Http } from \"../../utils/http\";\nimport { XsEncrypt } from \"../../utils/xhsXsEncrypt\";\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\tcode: number;\n\tsuccess: boolean;\n}\n\ninterface UploadTempPermit {\n\tbucket: string;\n\tfileIds: string[];\n\ttoken: string;\n}\n\nconst errnoMap: Record<number, string> = {\n\t915: \"所属C端账号手机号被修改,请重新登录\",\n\t903: \"账户已登出,需重新登陆重试!\",\n\t902: \"登录已过期,请重新登录!\"\n};\n\n// 小红书参数加密器\nconst xsEncrypt = new XsEncrypt();\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst a1Cookie = params.cookies.find((it) => it.name === \"a1\")?.value;\n\tif (!a1Cookie) {\n\t\treturn { code: 200, message: \"账号数据异常,请重新绑定账号后重试。\", data: \"\" };\n\t}\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t\treferer: \"https://creator.xiaohongshu.com/\",\n\t\t\t\"user-agent\":\n\t\t\t\t\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36\",\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst responseData = response.data;\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (responseData?.code && responseData.code !== 0) {\n\t\t\tconst errmsg = errnoMap[responseData.code] || response.config.defaultErrorMsg || \"文章发布异常,请稍后重试。\";\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[responseData.code] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: responseData\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 获取上传 token\n\tconst fetchCoverUrl = `/api/media/v1/upload/creator/permit?biz_name=spectrum&scene=image&file_count=${params.banners.length}&version=1&source=web`;\n\tconst xt = Date.now().toString();\n\tconst xs = await xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt);\n\tconst coverIdInfo = await http.api<CommonResponse<{ uploadTempPermits: UploadTempPermit[] }>>({\n\t\tmethod: \"get\",\n\t\tbaseURL: \"https://creator.xiaohongshu.com\",\n\t\turl: fetchCoverUrl,\n\t\tdefaultErrorMsg: \"获取小红书用户信息失败,请稍后重试发布。\",\n\t\theaders: { \"x-s\": xs, \"x-t\": xt },\n\t});\n\n\tconst coverIds = coverIdInfo.data.uploadTempPermits[0].fileIds;\n\tconst ossToken = coverIdInfo.data.uploadTempPermits[0].token;\n\tif(!coverIds || !ossToken) return { code: 200, message: \"图片上传失败,请稍后重试!\", data: \"\" };\n\n\t// 1. 上传附件\n\tconst uploadFile = async (url: string, index: number) => {\n\t\tconst fileName = getFilenameFromUrl(url);\n\t\tconst localUrl = await downloadImage(url, path.join(tmpCachePath, fileName));\n\n\t\tconst ossFileId = coverIds[index];\n\t\t// 读取本地文件,转成 Buffer\n\t\tconst fileBuffer = fs.readFileSync(localUrl);\n\n\t\tawait http.api({\n\t\t\tmethod: \"put\",\n\t\t\turl: `https://ros-upload.xiaohongshu.com/${ossFileId}`,\n\t\t\tdata: fileBuffer,\n\t\t\theaders: {\n\t\t\t\t\"x-cos-security-token\": ossToken,\n\t\t\t},\n\t\t\tdefaultErrorMsg: \"图片上传异常,请稍后重试发布。\",\n\t\t});\n\n\t\treturn { ossFileId, ossToken };\n\t};\n\n\tconst coverInfos = await Promise.all(params.banners.map((it, idx) => uploadFile(it, idx)));\n\n\tif(params.topic && params.topic.length >0){\n\t\tawait Promise.all(params.topic.map(async (topic) => {\n\t\t\tif(!topic[\"id\"]){\n\t\t\t\tconst topicData = {topic_names: topic[\"name\"]}\n\t\t\t\tconst topicDataStr = xsEncrypt.dumps(topicData);\n\t\t\t\tconst publishXt = Date.now().toString();\n\t\t\t\tconst publishXs = await xsEncrypt.encryptXs(`/web_api/sns/capa/postgw/topic/batch_customized${topicDataStr}`, a1Cookie, publishXt);\n\t\n\t\t\t\tlet createTopic = await http.api({\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/capa/postgw/topic/batch_customized\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"x-s\": publishXs,\n\t\t\t\t\t\t\"x-t\": publishXt,\n\t\t\t\t\t},\n\t\t\t\t\tdata: topicData,\n\t\t\t\t\tdefaultErrorMsg: \"话题创建异常,请稍后重试。\",\n\t\t\t\t})\n\t\t\t\tObject.assign(topic , createTopic.data.topic_infos[0])\n\t\t\t}\n\t\t}))\n\t};\n\n\tconst publishData = {\n\t\tcommon: {\n\t\t\tats: [],\n\t\t\tbiz_relations: [],\n\t\t\tdesc: params?.content,\n\t\t\tgoods_info: {},\n\t\t\thash_tag: params.topic || [],\n\t\t\tnote_id: \"\",\n\t\t\tsource: JSON.stringify({\n\t\t\t\ttype: \"web\",\n\t\t\t\tids: \"\",\n\t\t\t\textraInfo: '{\"systemId\":\"web\"}',\n\t\t\t}),\n\t\t\ttitle: params?.title,\n\t\t\ttype: \"normal\",\n\t\t\tprivacy_info: {\n\t\t\t\top_type: 1,\n\t\t\t\ttype: params.visibleRange === \"public\" ? 0 : 1,\n\t\t\t},\n\t\t\tpost_loc: params.address\n\t\t\t\t? {\n\t\t\t\t\t\tname: params.address?.name,\n\t\t\t\t\t\tpoi_id: params.address?.poi_id,\n\t\t\t\t\t\tpoi_type: params.address?.poi_type,\n\t\t\t\t\t\tsubname: params.address?.full_address,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t\tbusiness_binds: \"\",\n\t\t},\n\t\timage_info: {\n\t\t\timages: coverInfos.map((it) => ({\n\t\t\t\textra_info_json: '{\"mimeType\":\"image/png\"}',\n\t\t\t\tfile_id: it.ossFileId,\n\t\t\t\tmetadata: { source: -1 },\n\t\t\t\tstickers: { floating: [], version: 2 },\n\t\t\t})),\n\t\t},\n\t\tvideo_info: null,\n\t};\n\n\t// 自主声明\n\tconst userDeclarationBind = {\n\t\torigin: 2,\n\t\tphotoInfo: {},\n\t\trepostInfo: {},\n\t};\n\n\tif (params.selfDeclaration?.type === \"fictional-rendition\") {\n\t\t// 虚拟演绎,仅供娱乐\n\t\tuserDeclarationBind.origin = 1;\n\t} else if (params.selfDeclaration?.type === \"ai-generated\") {\n\t\t// 笔记含AI合成内容\n\t\tuserDeclarationBind.origin = 2;\n\t} else if (params.selfDeclaration?.type === \"source-statement\") {\n\t\t// 内容来源声明\n\t\tif (params.selfDeclaration.childType === \"self-labeling\") {\n\t\t\t// 已自主标注\n\t\t\tuserDeclarationBind.origin = 3;\n\t\t} else if (params.selfDeclaration.childType === \"self-shooting\") {\n\t\t\t// 自主拍摄\n\t\t\tuserDeclarationBind.origin = 4;\n\t\t\tconst photoInfo: { photoPlace?: unknown; photoTime?: string } = {};\n\n\t\t\tif (params.selfDeclaration.shootingLocation) {\n\t\t\t\t// 拍摄地点\n\t\t\t\tphotoInfo.photoPlace = {\n\t\t\t\t\tname: params.selfDeclaration.shootingLocation.name,\n\t\t\t\t\tpoiId: params.selfDeclaration.shootingLocation.poi_id,\n\t\t\t\t\tpoiType: params.selfDeclaration.shootingLocation.poi_type,\n\t\t\t\t\tsubname: params.selfDeclaration.shootingLocation.full_address,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (params.selfDeclaration.shootingDate) {\n\t\t\t\t// 拍摄日期\n\t\t\t\tphotoInfo.photoTime = params.selfDeclaration.shootingDate;\n\t\t\t}\n\n\t\t\tuserDeclarationBind.photoInfo = photoInfo;\n\t\t} else if (params.selfDeclaration.childType === \"transshipment\") {\n\t\t\t// 来源转载\n\t\t\tuserDeclarationBind.origin = 5;\n\n\t\t\tif (params.selfDeclaration.sourceMedia) {\n\t\t\t\t// 来源媒体\n\t\t\t\tuserDeclarationBind.repostInfo = {\n\t\t\t\t\tsource: params.selfDeclaration.sourceMedia,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tconst business_binds = {\n\t\tversion: 1,\n\t\tbizType: \"\",\n\t\tnoteId: \"\",\n\t\tnoteOrderBind: {},\n\t\t// 发布时间 - 立即发布/定时发布\n\t\tnotePostTiming: params.isImmediatelyPublish ? {} : { postTime: params.scheduledPublish },\n\t\tnoteCollectionBind: { id: \"\" },\n\t\t...(params.selfDeclaration ? { userDeclarationBind } : {}),\n\t};\n\n\tpublishData.common.business_binds = JSON.stringify(business_binds);\n\n\tconst publishDataStr = xsEncrypt.dumps(publishData);\n\tconst publishXt = Date.now().toString();\n\tconst publishXs = await xsEncrypt.encryptXs(`/web_api/sns/v2/note${publishDataStr}`, a1Cookie, publishXt);\n\n\t// 发布\n\tconst publishResult = await http.api<CommonResponse<{ id: string }>>({\n\t\tmethod: \"post\",\n\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v2/note\",\n\t\tdata: publishData,\n\t\theaders: {\n\t\t\t\"x-s\": publishXs,\n\t\t\t\"x-t\": publishXt,\n\t\t},\n\t\tdefaultErrorMsg: \"文章发布异常,请稍后重试。\",\n\t});\n\n\treturn success(publishResult.data?.id);\n};\n","import path from \"node:path\";\nimport type { CookieMap, Locator, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport { XsEncrypt } from \"../../utils/xhsXsEncrypt\";\nimport type { PublishAction } from \"./index\";\n\n// 小红书参数加密器\nconst xsEncrypt = new XsEncrypt();\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsameSite: \"lax\",\n\t\tsecure: false,\n\t\tdomain: \"xiaohongshu.com\",\n\t\turl: \"https://creator.xiaohongshu.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://creator.xiaohongshu.com/publish/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst interceptUrls = [\n\t\t'/api/media/v1/upload/creator/permit',\n\t\t'/api/galaxy/v2/creator/activity_center/list',\n\t\t'/web_api/sns/v5/creator/topic/template/list',\n\t\t'/web_api/sns/v5/creator/file/encryption',\n\t\t'/web_api/sns/capa/postgw/topic/batch_customized',\n\t\t'/web_api/sns/v2/note'\n\t];\n\t \n\tawait page.route('**', async (route, request) => {\n\t\tconst url = request.url();\n\t\tif (interceptUrls.some(pattern => url.includes(pattern))) {\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst fetchCoverUrl = urlObj.pathname + urlObj.search;\n\t\t\tconst xt = Date.now().toString();\n\n\t\t\tconst a1Cookie = params.cookies.find((it) => it.name === \"a1\")?.value;\n\t\t\tif (!a1Cookie) {\n\t\t\t\tawait route.fulfill({\n\t\t\t\t\tstatus: 200,\n\t\t\t\t\tcontentType: 'application/json',\n\t\t\t\t\tbody: JSON.stringify({ code: 200, message: \"账号数据异常,请重新绑定账号后重试。\", data: \"\" })\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isNoteRequest = urlObj.pathname.includes(interceptUrls[5]);\n\n\t\t\tconst xs = await (isNoteRequest \n\t\t\t\t? (async () => {\n\t\t\t\t\tconst publishData = JSON.parse(request.postData() || \"\")\n\t\t\t\t\tconst publishDataStr = xsEncrypt.dumps(publishData);\n\t\t\t\t\t\n\t\t\t\t\treturn xsEncrypt.encryptXs(interceptUrls[5]+publishDataStr, a1Cookie, xt);\n\t\t\t\t })(): xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt))\n\n\t\t\n\t\t\tconst newHeaders = {\n\t\t\t\t...request.headers(),\n\t\t\t\t'x-s': xs\n\t\t\t};\n\t\t\n\t\t\tawait route.continue({ headers: newHeaders });\n\t\t}else {\n\t\t\tawait route.continue();\n\t\t}\n\t});\n\n\n\t// 通用的选择地点\n\tconst selectAddress = async (selector: Locator, address: string) => {\n\t\tconst instance = typeof selector === \"string\" ? page.locator(selector) : selector;\n\t\tawait instance.click();\n\t\tawait instance.locator(\"input\").fill(address);\n\t\tconst poperInstance = page.locator('.d-popover:not([style*=\"display: none\"]) .d-options .d-grid-item');\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t};\n\n\t// 通用的选择日期\n\tconst selectDate = async (selector: string | Locator, date: string) => {\n\t\tconst instance = typeof selector === \"string\" ? page.locator(selector) : selector;\n\t\tawait instance.click();\n\t\tawait instance.fill(date);\n\t\tawait instance.blur();\n\t};\n\n\t// 查找显示的 popover 弹窗\n\tconst getPoperInstance = async (): Promise<Locator> => {\n\t\tawait page.waitForTimeout(500);\n\t\tconst elements = page.locator(\".d-popover\");\n\t\tconst count = await elements.count();\n\t\tconst visibleElements: (typeof elements)[] = [];\n\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst element = elements.nth(i);\n\t\t\tconst style = await element.getAttribute(\"style\");\n\t\t\tif (style && !style.includes(\"display: none\")) {\n\t\t\t\tvisibleElements.push(element);\n\t\t\t}\n\t\t}\n\n\t\tif (visibleElements.length > 0) {\n\t\t\treturn visibleElements[visibleElements.length - 1];\n\t\t}\n\n\t\tthrow new Error(\"未找到 popover 弹窗\");\n\t};\n\n\t// 查找显示的 dialog 弹窗\n\tconst getDialogInstance = async (): Promise<Locator> => {\n\t\tawait page.waitForTimeout(1000);\n\t\tconst elements = page.locator(\".el-dialog\");\n\t\treturn elements.last();\n\t};\n\n\t// 自动化脚本\n\t// ----------------------------------------------------------------------------------\n\n\t// 等待登录成功\n\ttry {\n\t\tawait page.waitForSelector(\"#CreatorPlatform\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 跳转到发布页面\n\tawait page.locator(\"#content-area .menu-container .publish-video .btn\").click();\n\n\t// 点击上传图文\n\tawait page\n\t\t.locator('.creator-container .header .creator-tab:not([style*=\"-9999px\"]) .title')\n\t\t.filter({ hasText: /^上传图文$/ })\n\t\t.click();\n\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\tparams.banners.map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\n\t// 选择文件\n\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\tawait page.getByRole(\"textbox\").click();\n\tconst fileChooser = await fileChooserPromise;\n\tawait fileChooser.setFiles(images);\n\n\t// 填写标题\n\tconst titleInstance = page.locator(\".input.titleInput input\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 填写正文\n\tconst descInstance = page.locator(\".editor-container #quillEditor .ql-editor\");\n\tawait descInstance.click();\n\tawait descInstance.pressSequentially(params.content.replace(/#.*?\\[.*?]\\#/g,\"\"));\n\n\t// 填写话题\n\tif(params.topic && params.topic.length > 0){\n\t\tfor (const it of params.topic) {\n\t\t\tawait descInstance.pressSequentially(`#${it[\"name\"]}`);\n\t\t\tawait page.locator('.ql-mention-loading').waitFor({ state: 'detached' });\n\t\t\tawait page.waitForTimeout(1000);\n\t\t\tawait page.locator('#quill-mention-item-0 .item-view-num').click();\n\t\t};\n\t}\n\n\t// 滚动到底部\n\tconst container = page.locator(\".creator-container .content .scroll-content\");\n\tawait container.focus();\n\tawait page.mouse.wheel(0, 500); // 向下滚动 500 像素\n\n\tif (params.address) {\n\t\t// 填写地点\n\t\tawait selectAddress(\n\t\t\tpage.locator(\".media-extension .address-input\").filter({ hasText: \"添加地点\" }),\n\t\t\tparams.address.name,\n\t\t);\n\t}\n\n\tif (params.selfDeclaration) {\n\t\t// 自主声明\n\t\tawait page.locator(\".media-settings .flexbox\").filter({ hasText: \"内容类型声明\" }).locator(\".d-select-placeholder\").click();\n\t\tconst poperInstance = await getPoperInstance();\n\t\tconst selfDeclarationInstance = poperInstance.locator(\".d-options .d-option\");\n\t\tif (params.selfDeclaration.type === \"fictional-rendition\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: \"虚构演绎,仅供娱乐\" }).click();\n\t\t} else if (params.selfDeclaration.type === \"ai-generated\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: \"笔记含AI合成内容\" }).click();\n\t\t} else if (params.selfDeclaration.type === \"source-statement\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: /内容来源声明/ }).click();\n\t\t\t// 内容来源声明二级菜单\n\t\t\tconst selfDeclarationSecondaryMenuInstance = (await getPoperInstance()).locator(\".d-options .d-option\");\n\t\t\t// 等待元素出现\n\t\t\tawait selfDeclarationSecondaryMenuInstance.first().waitFor();\n\t\t\tif (params.selfDeclaration.childType === \"self-labeling\") {\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"已在正文中自主标注\" }).click();\n\t\t\t} else if (params.selfDeclaration.childType === \"self-shooting\") {\n\t\t\t\tconst { shootingDate, shootingLocation } = params.selfDeclaration;\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"自主拍摄\" }).click();\n\t\t\t\t// 自主拍摄弹窗\n\t\t\t\tconst selfShootingPopup = await getDialogInstance();\n\t\t\t\tconst hasCustomContent = shootingDate || shootingLocation;\n\n\t\t\t\t// 选择拍摄地点\n\t\t\t\tif (shootingLocation) {\n\t\t\t\t\tawait selectAddress(selfShootingPopup.locator(\".address-input\"), shootingLocation.name);\n\t\t\t\t}\n\t\t\t\t// 选择拍摄日期\n\t\t\t\tif (shootingDate) {\n\t\t\t\t\tawait selectDate(selfShootingPopup.locator(\".date-picker input\"), shootingDate);\n\t\t\t\t}\n\n\t\t\t\tawait selfShootingPopup\n\t\t\t\t\t.locator(\"footer button\")\n\t\t\t\t\t.filter({ hasText: hasCustomContent ? \"确认\" : \"取消\" })\n\t\t\t\t\t.click();\n\t\t\t} else if (params.selfDeclaration.childType === \"transshipment\") {\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"来源转载\" }).click();\n\t\t\t\t// 来源媒体弹窗\n\t\t\t\tconst selfShootingPopup = await getDialogInstance();\n\n\t\t\t\tconst sourceMedia = params.selfDeclaration.sourceMedia;\n\t\t\t\tif (sourceMedia) {\n\t\t\t\t\tawait selfShootingPopup.locator(\".el-input input\").fill(sourceMedia);\n\t\t\t\t}\n\n\t\t\t\tawait selfShootingPopup\n\t\t\t\t\t.locator(\"footer button\")\n\t\t\t\t\t.filter({ hasText: sourceMedia ? \"确认\" : \"取消\" })\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t}\n\n\t// 可见范围 - 仅自己可见\n\tif (params.visibleRange === \"private\") {\n\t\tawait page.locator(\".media-settings .flexbox\").filter({ hasText: \"可见范围\" }).locator(\".d-select-wrapper\").click();\n\t\tconst poperInstance = await getPoperInstance();\n\t\tawait poperInstance.locator(\".d-options .custom-option\").filter({ hasText: \"仅自己可见\" }).click();\n\t}\n\n\tconst releaseTimeInstance = page\n\t\t.locator(\"label\")\n\t\t.filter({ hasText: params.isImmediatelyPublish ? \"立即发布\" : \"定时发布\" });\n\tawait releaseTimeInstance.click();\n\n\tif (params.scheduledPublish) {\n\t\t// 自定义发布时间\n\t\tawait selectDate(\".date-picker input\", params.scheduledPublish);\n\t}\n\n\tconst response = await new Promise<string>((resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tif (response.url().includes(\"/web_api/sns/v2/note\")) {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse?.data?.id);\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\tpage.locator(\".submit .publishBtn\").click();\n\t});\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(response);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ninterface FictionalRendition {\n\ttype: \"fictional-rendition\"; // 虚拟演绎,仅供娱乐\n}\n\ninterface AIGenerated {\n\ttype: \"ai-generated\"; // 笔记含AI合成内容\n}\n\ninterface SourceStatement {\n\ttype: \"source-statement\"; // 内容来源声明\n\tchildType: \"self-labeling\" | \"self-shooting\" | \"transshipment\"; // 已自主标注 / 自助拍摄 / 转载\n\tshootingLocation?: Xiaohongshu.Location; // 拍摄地点\n\tshootingDate?: string; // 拍摄日期\n\tsourceMedia?: string; // 来源媒体\n}\n\ntype SelfDeclaration = FictionalRendition | AIGenerated | SourceStatement;\n\nexport interface XiaohongshuPublishParams extends ActiomCommonParams {\n\tbanners: string[]; // 图片\n\ttitle: string; // 标题\n\tcontent: string; // 正文\n\taddress?: Xiaohongshu.Location; // 地点\n\tselfDeclaration?: SelfDeclaration; // 自主声明\n\ttopic?: Xiaohongshu.Topic[]; //话题\n\tvisibleRange: \"public\" | \"private\"; // 可见范围\n\tisImmediatelyPublish?: boolean; // 是否立即发布\n\tscheduledPublish?: string; // 定时发布时间\n}\n\nexport type PublishAction = CommonAction<XiaohongshuPublishParams, string>;\n\nexport const xiaohongshuPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import type { AutomateTask, CommonAction, ResponseData } from \"@iflyrpa/share\";\nimport { type BaijiahaoPublishParams, baijiahaoPublish } from \"./actions/baijiahaoPublish\";\nimport { type GetBaijiahaoActivityParams, getBaijiahaoActivity } from \"./actions/getBaijiahaoActivity\";\nimport { type GetToutiaoConfigParams, getToutiaoConfig } from \"./actions/getToutiaoConfig\";\nimport { type SearchToutiaoTopicListParams, searchToutiaoTopicList } from \"./actions/searchToutiaoTopicList\";\nimport { searchXiaohongshuLocation, type searchXiaohongshuLocationParams } from \"./actions/searchXiaohongshuLocation\";\nimport { searchXiaohongshuTopicList, SearchXiaohongshuTopicListParams } from \"./actions/searchXiaohongshuTopicList\";\nimport { type ToutiaoPublishParams, toutiaoPublish } from \"./actions/toutiaoPublish\";\nimport { type WeitoutiaoPublishParams, weitoutiaoPublish } from \"./actions/weitoutiaoPublish\";\nimport { type WeixinPublishParams, weixinPublish } from \"./actions/weixinPublish\";\nimport { type WeixinmpPublishParams, weixinmpPublish } from \"./actions/weixinmpPublish\";\nimport { type XiaohongshuPublishParams, xiaohongshuPublish } from \"./actions/xiaohongshuPublish\";\n\nimport type { ActiomCommonParams } from \"./types\";\nimport { stringifyError } from \"./utils\";\nimport { Http } from \"./utils/http\";\n\nexport class Action {\n\tconstructor(private task: AutomateTask) {}\n\n\t// 绑定 task, 并处理异常\n\tprivate async bindTask<T extends ActiomCommonParams, R>(func: CommonAction<T, R>, params: T) {\n\t\tlet responseData: ResponseData<R>;\n\n\t\tif (this.task.setArticleId) {\n\t\t\t// 给所有的日志添加 articleId 标签\n\t\t\tthis.task.setArticleId(params.articleId ?? \"\");\n\t\t}\n\n\t\tif (typeof params === \"object\" && params !== null) {\n\t\t\t// 默认设置 cookies\n\t\t\tparams.cookies = params?.cookies ?? [];\n\t\t}\n\n\t\ttry {\n\t\t\tresponseData = await func(this.task, params);\n\t\t} catch (error) {\n\t\t\tresponseData = Http.handleApiError(error);\n\t\t}\n\n\t\tif (responseData.code === 200) {\n\t\t\t// 表示是由于脚本输入信息错误导致的失败,不是脚本问题\n\t\t\tthis.task.logger.info(`${func.name} action params error`, responseData);\n\t\t} else if (responseData.code !== 0) {\n\t\t\tthis.task.logger.error(\n\t\t\t\tresponseData.message || `${func.name} 执行失败`,\n\t\t\t\tstringifyError(responseData.data),\n\t\t\t\tresponseData.extra,\n\t\t\t);\n\t\t\tthis.task.logger.info(`${func.name} action failed`);\n\t\t} else {\n\t\t\tthis.task.logger.info(`${func.name} action success`);\n\t\t}\n\n\t\treturn responseData;\n\t}\n\n\t// 搜索头条话题列表\n\tsearchToutiaoTopicList(params: SearchToutiaoTopicListParams) {\n\t\treturn this.bindTask(searchToutiaoTopicList, params);\n\t}\n\n\t// 获取头条配置\n\tgetToutiaoConfig(params: GetToutiaoConfigParams) {\n\t\treturn this.bindTask(getToutiaoConfig, params);\n\t}\n\n\t// 百家号发布\n\tbaijiahaoPublish(params: BaijiahaoPublishParams) {\n\t\treturn this.bindTask(baijiahaoPublish, params);\n\t}\n\n\t// 查询百家号活动投稿\n\tgetBaijiahaoActivity(params: GetBaijiahaoActivityParams) {\n\t\treturn this.bindTask(getBaijiahaoActivity, params);\n\t}\n\n\t// 小红书发布\n\txiaohongshuPublish(params: XiaohongshuPublishParams) {\n\t\treturn this.bindTask(xiaohongshuPublish, params);\n\t}\n\n\t// 搜索小红书话题\n\tsearchXiaohongshuTopicList(params: SearchXiaohongshuTopicListParams) {\n\t\treturn this.bindTask(searchXiaohongshuTopicList, params);\n\t}\n\t// 搜索小红书地址\n\tsearchXiaohongshuLocation(params: searchXiaohongshuLocationParams) {\n\t\treturn this.bindTask(searchXiaohongshuLocation, params);\n\t}\n\n\t// 小绿书发布\n\tweixinmpPublish(params: WeixinmpPublishParams) {\n\t\treturn this.bindTask(weixinmpPublish, params);\n\t}\n\n\t// 微头条发布\n\tweitoutiaoPublish(params: WeitoutiaoPublishParams) {\n\t\treturn this.bindTask(weitoutiaoPublish, params);\n\t}\n\n\t// 头条发布\n\ttoutiaoPublish(params: ToutiaoPublishParams) {\n\t\treturn this.bindTask(toutiaoPublish, params);\n\t}\n\n\t// 微信发布\n\tweixinPublish(params: WeixinPublishParams) {\n\t\treturn this.bindTask(weixinPublish, params);\n\t}\n}\n\ntype ActionInstance = InstanceType<typeof Action>;\n\n// 提取方法的参数类型\ntype MethodParams<T> = {\n\t// biome-ignore lint/suspicious/noExplicitAny: 有使用 any\n\t[K in keyof T]: T[K] extends (...args: any[]) => unknown ? Parameters<T[K]>[0] : never;\n};\n\n// 应用于 Action 类的实例\nexport type ActionMethodParams = MethodParams<ActionInstance>;\n\nexport { version } from \"../package.json\";\n"],"names":["module","abort","state","Object","clean","key","defer","async","callback","isAsync","err","result","fn","nextTick","setImmediate","process","setTimeout","iterate","list","iterator","runJob","error","output","item","aborter","sortMethod","isNamedList","Array","initState","a","b","terminator","parallel","serialOrdered","serial","ascending","descending","iteratorHandler","util","Stream","DelayedStream","CombinedStream","options","combinedStream","option","stream","Buffer","isStreamLike","newStream","Infinity","dest","getStream","value","self","data","message","Error","exports","formatArgs","save","load","useColors","localstorage","warned","console","window","navigator","m","document","parseInt","args","c","index","lastC","match","namespaces","r","localStorage","formatters","v","JSON","setup","env","createDebug","coerce","disable","enable","enabled","destroy","selectColor","namespace","hash","i","Math","prevTime","enableOverride","namespacesCache","enabledCache","debug","curr","Number","Date","ms","format","formatter","val","logFn","extend","delimiter","newDebug","split","len","RegExp","toNamespace","name","regexp","tty","init","log","supportsColor","obj","prop","_","k","Boolean","colorCode","prefix","getDate","keys","str","source","delayedStream","realEmit","arguments","url","URL","http","https","Writable","assert","looksLikeNode","looksLikeBrowser","looksLikeV8","isFunction","useNativeURL","preservedUrlFields","events","eventHandlers","event","arg1","arg2","arg3","InvalidUrlError","createErrorType","TypeError","RedirectionError","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","noop","RedirectableRequest","responseCallback","response","cause","destroyRequest","encoding","isString","isBuffer","currentRequest","msecs","destroyOnTimeout","socket","startTimer","clearTimeout","clearTimer","method","property","searchPos","protocol","nativeProtocol","scheme","request","buffers","writeNext","buffer","statusCode","location","requestHeaders","beforeRedirect","removeMatchingHeaders","currentHostHeader","currentUrlParts","parseUrl","currentHost","currentUrl","redirectUrl","resolveUrl","spreadUrlObject","isSubdomain","responseDetails","requestDetails","wrap","protocols","nativeProtocols","wrappedProtocol","input","isURL","validateUrl","get","wrappedRequest","parsed","relative","base","urlObject","target","spread","regex","headers","lastValue","header","undefined","String","code","baseClass","CustomError","properties","subdomain","domain","dot","path","fs","mime","asynckit","populate","FormData","field","append","footer","valueLength","stat","fileSize","contentDisposition","contentType","contents","filename","next","lastPart","userHeaders","formHeaders","boundary","dataBuffer","knownLength","hasKnownLength","cb","values","length","params","defaults","onResponse","responce","dst","src","flag","argv","position","terminatorPosition","db","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","extension","lookup","populateMaps","type","exts","extensions","types","preference","from","to","s","h","d","w","y","parse","isFinite","fmtLong","fmtShort","n","parseFloat","msAbs","plural","isPlural","DEFAULT_PORTS","stringEndsWith","getProxyForUrl","parsedUrl","proto","hostname","port","shouldProxy","proxy","getEnv","NO_PROXY","parsedProxy","parsedProxyHostname","parsedProxyPort","os","hasFlag","flagForceColor","envForceColor","translateLevel","level","haveStream","streamIsTTY","sniffFlags","noFlagForceColor","forceColor","min","osRelease","sign","version","getSupportLevel","ElementType","isTag","elem","Root","Text","Directive","Comment","Script","Style","Tag","CDATA","Doctype","Uint16Array","decodeMap","Map","fromCodePoint","codePoint","replaceCodePoint","_a","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","offset","start","end","digitCount","startIdx","char","lastCp","expectedLength","current","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","restoreDiff","arr","xmlCodeMap","lastIdx","getEscaper","map","EntityLevel","EncodingMode","elementNames","attributeNames","unencodedElements","Set","replaceQuotes","formatAttributes","attributes","opts","encode","_b","singleTag","render","node","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","attribs","Node","parent","prev","recursive","cloneNode","DataNode","ProcessingInstruction","NodeWithChildren","children","Document","Element","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone","child","instruction","childs","defaultOpts","elementCB","parser","element","lastNode","text","previousSibling","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","QuoteType","Sequences","Uint8Array","Tokenizer","xmlMode","decodeEntities","cbs","cp","chunk","isEnd","isMatch","endOfText","actualIndex","sequence","lower","quote","endIndex","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","_c","_d","_e","_f","impliesClose","isImplied","_g","_h","pos","isOpenImplied","_j","_k","slice","DocumentPosition","bind","thisArg","getPrototypeOf","kindOf","cache","thing","kindOfTest","typeOfTest","isArray","isUndefined","isArrayBuffer","isArrayBufferView","ArrayBuffer","isObject","isBoolean","isPlainObject","prototype","Symbol","isDate","isFile","isBlob","isStream","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","l","findKey","_key","_global","globalThis","global","isContextDefined","context","caseless","assignValue","targetKey","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","toArray","isTypedArray","TypedArray","forEachEntry","generator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","asap","queueMicrotask","config","utils","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","_Blob","Blob","useBlob","convertValue","AxiosError","el","exposedHelpers","build","charMap","encodeURIComponent","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","e","hasJSONContentType","isObjectPayload","isFormData","isFileList","_FormData","transitional","forcedJSONParsing","JSONRequested","silentJSONParsing","strictJSONParsing","status","ignoreDuplicateOf","rawHeaders","line","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","methodName","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","matcher","deleted","deleteHeader","normalized","targets","asStrings","first","computed","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","AxiosHeaders","isCancel","CanceledError","settle","resolve","reject","validateStatus","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","VERSION","parseProtocol","DATA_URL_PATTERN","fromDataURI","uri","asBlob","isBase64","body","decodeURIComponent","kInternals","AxiosTransformStream","maxRate","readableHighWaterMark","timeWindow","divider","bytesThreshold","minChunkSize","pushChunk","_chunk","_callback","bytes","transformChunk","chunkSize","chunkRemainder","maxChunkSize","bytesLeft","passed","now","transformNextChunk","asyncIterator","blob","BOUNDARY_ALPHABET","textEncoder","TextEncoder","CRLF","CRLF_BYTES","CRLF_BYTES_COUNT","FormDataPart","escapeName","isStringValue","readBlob","formDataToStream","form","headersHandler","boundaryBytes","footerBytes","contentLength","parts","part","computedHeaders","ZlibHeaderTransformStream","callbackify","samplesCount","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","lengthComputable","asyncDecorator","zlibOptions","brotliOptions","isBrotliSupported","httpFollow","httpsFollow","isHttps","supportedProtocols","flushOnFinish","dispatchBeforeRedirect","setProxy","configProxy","proxyUrl","base64","proxyHost","redirectOptions","isHttpAdapterSupported","wrapAsync","asyncExecutor","Promise","onDone","isDone","done","isRejected","_resolve","_reject","reason","onDoneHandler","resolveFamily","address","family","buildAddressEntry","responseType","responseEncoding","req","_lookup","opt","arg0","addresses","addr","emitter","onFinished","fullPath","convertedData","onUploadProgress","onDownloadProgress","maxUploadRate","maxDownloadRate","userBoundary","auth","username","password","urlUsername","urlPassword","customErr","transport","isHttpsRequest","res","streams","responseLength","transformStream","responseStream","lastRequest","offListeners","responseBuffer","totalResponseBytes","responseData","timeout","timeoutErrorMessage","ended","errored","origin","isMSIE","expires","secure","cookie","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","merge","configValue","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","btoa","unescape","isURLSameOrigin","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","_config","resolveConfig","requestData","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","cancel","composeSignals","signals","controller","AbortController","aborted","onabort","unsubscribe","signal","streamChunk","readBytes","iterable","readStream","reader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","loadedBytes","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","_request","resolveBodyLength","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","knownAdapters","xhr","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","desc","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","Http","findError","errorResponse","serverError","getRandomInRange","max","getFileState","filePath","fileType","stats","lastModifiedDate","calculateCropCoordinates","width","height","aspectRatio","targetRatio","cropWidth","cropHeight","x1","y1","x2","y2","extractImgTag","html","srcList","Parser","replaceImgSrc","lastedHtml","isImageTag","traverseDom","DomUtils","handler","DomHandler","dom","domSerializer","stringifyError","executeAction","actions","task","action","copyHtmlToClipboard","page","htmlContent","ClipboardItem","div","range","selection","PopupListener","popupSelector","popKey","buttonSelector","checkInterval","stopAfterClick","popup","button","intervalId","setInterval","clearInterval","parseUrlQueryString","queryStringObject","queryString","queryWithoutHash","queryStringArray","equalIndex","defaultParams","ensureFile","dirPath","createFile","checkFile","downloadImage","savePath","fileStream","getFilenameFromUrl","imageUrl","sleep","success","randomString","T","H","de","errnoMap","mockAction","baijiahaoSingleCover","baijiahaoMultCover","baijiahaoCoverType","tmpCachePath","it","msgType","errmsg","appIdInfo","appId","uploadImages","_images","images","fileName","image","originContentImages","targetContentImages","idx","vertical_cover","horizontalCoverUrl","horizontalCoverRes","cover_images","_cover_images_map","isAi","activityList","cover_layout","activity_list","publishData","isDraft","saveUrl","rpaAction","commonCookies","titleInstance","coverFormItem","isSingleCover","coverSelector","coverCount","fileChooserPromise","fileChooser","abstractFormItem","settingFormItem","activity","activityFormItem","findActivity","articleId","handleResponse","jsonResponse","operatorContainer","baijiahaoPublish","getBaijiahaoActivity","_task","cookies","getToutiaoConfig","getSuggestWords","getCityDistrict","getUserRights","suggestWords","cityDistrict","userRights","searchToutiaoTopicList","searchXiaohongshuLocation","searchXiaohongshuTopicList","get3101DetailError","errorList","saveType","toutiaoSingleCover","toutiaoMultCover","toutiaoCoverType","toutiaoOriginal","coverUrl","coverRes","isSingleTitle","topics","multiTitleData","title","topicContent","topic","extraData","COVER_TYPE","getAddTypeValue","publishResult","interceptUrls","route","pattern","coverTypeValue","coverContainer","coverUrls","coverUploadEle","coverUploadCount","ele","drawerContainer","confirmBtn","locationContainer","poperInstance","adContainer","isAdOptionVisible","exclusiveContainer","toutiaoAd","toutiaoPublish","userInfoRes","imageList","extra","syncData","descInstance","addressFormItem","declarationFormItem","weitoutiaoPublish","scanRetryMaxCount","QuotaType","GET_QRCODE_DEFAULT_ERROR","ignoreErrno","userTypeMap","generatorFormData","URLSearchParams","checkCopyrightStat","resData","fingerprint","client_time_diff","cloudImages","localImages","fileState","oriWhitelist","_oriWhitelist","white_list","white_list_user","_user","userInfo_res","userInfo_resJson","writerid","reply_id","getWriterList","getRewardText","_type","rewardbind","rewardBuffer","rewardFilePath","task_id","checkScanResult","_writer","_writer_item","rewardList","matchdID","reward","_reply_item","wxInteractionInfo","_wxInteraction","_opt","commentType","replyType","draftData","appMsgId","masssendpage","massSendRes","operation_seq","quota_detail_list","quotaDetail","copyrightStatData","lastData","checkCopyrightStatRes","getTicketResult","getUuidResult","uuid","qrcodeResult","qrcodeBuffer","qrcodeFilePath","waitQrcodeResultMaxTime","urlParams","urlRewardParams","wxRewardPage","reward_page","isAddRewarder","qrcodeSrc","errorMessage","isAddWord","cover","dialog","pic_msg","ori_dialog","ori_dialog_bd","ori_dialog_ft","_target","search_res","search_res_name","whrite_list","white_td_isadd","btn_isChecked","checkbox","reward_setting","reward_setting_bd","reward_setting_ft","userName","reward_setting_replay","switchAuto","maxAttempts","delayMs","nowCheckTime","attempt","isDisabled","isOneReplay","isCurrentReplay","wxInteraction_setting","wxInteraction_bd","wxInteraction_ft","comment_area","reply_area","commont_rply_opt","poperInput","query","startTime","imgUrl","weixinPublish","_params","saveDraft","shareImageInfos","cropResult","colorResponseData","themeColor","cropFormData","cropRatios","cropCoordinates","cropCoordinate","cropResponse","sourceText","container","weixinmpPublish","XsEncrypt","crypto","textEncoded","cipher","ciphertext","encodedData","decodedData","platform","hexPayload","jsonString","a1","ts","rest","replacer","space","word","xsEncrypt","a1Cookie","fetchCoverUrl","xt","xs","coverIdInfo","coverIds","ossToken","uploadFile","localUrl","ossFileId","fileBuffer","coverInfos","topicData","topicDataStr","publishXt","publishXs","createTopic","userDeclarationBind","photoInfo","business_binds","publishDataStr","urlObj","isNoteRequest","newHeaders","selectAddress","selector","selectDate","date","getPoperInstance","elements","count","visibleElements","style","getDialogInstance","selfDeclarationInstance","selfDeclarationSecondaryMenuInstance","shootingDate","shootingLocation","selfShootingPopup","hasCustomContent","sourceMedia","releaseTimeInstance","xiaohongshuPublish","Action","func"],"mappings":"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SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;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SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAqB,GAAG;gBAAK,GAAG;YAAuB;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAsB,GAAG;gBAAK,GAAG;YAAwB;SAAE;QAAE;YAAC;YAAI;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAiB;QAAE;YAAC;YAAG;SAAgB;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAc;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAI;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAO;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAa,GAAG;gBAAK,GAAG;YAAa;SAAE;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAS,GAAG;gBAAK,GAAG;YAAS;SAAE;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAc,GAAG;gBAAK,GAAG;YAAc;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAc,GAAG;gBAAK,GAAG;YAAc;SAAE;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAO;QAAE;YAAC;YAAG;SAAO;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAc,GAAG;gBAAK,GAAG;YAAsB;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAoB,GAAG;gBAAK,GAAG;YAA4B;SAAE;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAU,GAAG;gBAAO,GAAG;YAAU;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAU,GAAG;gBAAO,GAAG;YAAU;SAAE;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAmB,GAAG;gBAAK,GAAG;YAAqB;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAS,GAAG;gBAAK,GAAG;YAAqB;SAAE;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAa;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAgB;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAO;QAAE;YAAC;YAAG;SAAO;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAU,GAAG;gBAAK,GAAG;YAAU;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAU,GAAG;gBAAK,GAAG;YAAU;SAAE;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAW,GAAG;gBAAO,GAAG;YAAkB;SAAE;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAW,GAAG;gBAAO,GAAG;YAAkB;SAAE;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAY;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;gBAAE,GAAG;gBAAW,GAAG;gBAAM,GAAG;YAAW;SAAE;QAAE;YAAC;YAAO;gBAAE,GAAG,IAAIzC,IAAI,aAAa,GAAGyC,YAAY;oBAAC;wBAAC;wBAAO;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAI;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBA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9GM,IAAI;IACV,UAAU+C,WAAW;QAElBA,WAAW,CAACA,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG;QAEtCA,WAAW,CAACA,WAAW,CAAC,OAAO,GAAG,EAAE,GAAG;IAC3C,GAAG,mBAAgB,mBAAc,CAAC;IAC3B,IAAI;IACV,UAAUC,YAAY;QAKnBA,YAAY,CAACA,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG;QAMzCA,YAAY,CAACA,YAAY,CAAC,QAAQ,GAAG,EAAE,GAAG;QAK1CA,YAAY,CAACA,YAAY,CAAC,YAAY,GAAG,EAAE,GAAG;QAK9CA,YAAY,CAACA,YAAY,CAAC,YAAY,GAAG,EAAE,GAAG;QAK9CA,YAAY,CAACA,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG;IAC7C,GAAG,oBAAiB,oBAAe,CAAC;ICvC7B,MAAMC,eAAe,IAAIjD,IAAI;QAChC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH,CAAC,GAAG,CAAC,CAAC1O,MAAQ;YAACA,IAAI,WAAW;YAAIA;SAAI;IAChC,MAAM4R,iBAAiB,IAAIlD,IAAI;QAClC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH,CAAC,GAAG,CAAC,CAAC1O,MAAQ;YAACA,IAAI,WAAW;YAAIA;SAAI;ICvFvC,MAAM6R,oBAAoB,IAAIC,IAAI;QAC9B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,SAASC,cAAcpV,KAAK;QACxB,OAAOA,MAAM,OAAO,CAAC,MAAM;IAC/B;IAIA,SAASqV,iBAAiBC,UAAU,EAAEC,IAAI;QACtC,IAAIpD;QACJ,IAAI,CAACmD,YACD;QACJ,MAAME,SAAS,AAAC,CAA+B,SAA9BrD,CAAAA,KAAKoD,KAAK,cAAc,AAAD,KAAepD,AAAO,KAAK,MAAZA,KAAgBA,KAAKoD,KAAK,cAAc,AAAD,MAAO,QAC/FH,gBACAG,KAAK,OAAO,IAAIA,AAAwB,WAAxBA,KAAK,cAAc,GAC/B,mBACA;QACV,OAAOxY,OAAO,IAAI,CAACuY,YACd,GAAG,CAAC,CAACrY;YACN,IAAIkV,IAAIsD;YACR,MAAMzV,QAAQ,AAA2B,SAA1BmS,CAAAA,KAAKmD,UAAU,CAACrY,IAAI,AAAD,KAAekV,AAAO,KAAK,MAAZA,KAAgBA,KAAK;YACtE,IAAIoD,AAAiB,cAAjBA,KAAK,OAAO,EAEZtY,MAAM,AAAmC,SAAlCwY,CAAAA,KAAKR,eAAe,GAAG,CAAChY,IAAG,KAAewY,AAAO,KAAK,MAAZA,KAAgBA,KAAKxY;YAE1E,IAAI,CAACsY,KAAK,UAAU,IAAI,CAACA,KAAK,OAAO,IAAIvV,AAAU,OAAVA,OACrC,OAAO/C;YAEX,OAAO,GAAGA,IAAI,EAAE,EAAEuY,OAAOxV,OAAO,CAAC,CAAC;QACtC,GACK,IAAI,CAAC;IACd;IAIA,MAAM0V,YAAY,IAAIP,IAAI;QACtB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IASM,SAASQ,OAAOC,IAAI,EAAEtW,UAAU,CAAC,CAAC;QACrC,MAAMuW,QAAQ,YAAYD,OAAOA,OAAO;YAACA;SAAK;QAC9C,IAAI1X,SAAS;QACb,IAAK,IAAIsE,IAAI,GAAGA,IAAIqT,MAAM,MAAM,EAAErT,IAC9BtE,UAAU4X,WAAWD,KAAK,CAACrT,EAAE,EAAElD;QAEnC,OAAOpB;IACX;IACA,YAAeyX;IACf,SAASG,WAAWF,IAAI,EAAEtW,OAAO;QAC7B,OAAQsW,KAAK,IAAI;YACb,KAAK;gBACD,OAAOD,OAAOC,KAAK,QAAQ,EAAEtW;YAEjC,KAAK;YACL,KAAK;gBACD,OAAOyW,gBAAgBH;YAC3B,KAAK;gBACD,OAAOI,cAAcJ;YACzB,KAAK;gBACD,OAAOK,YAAYL;YACvB,KAAK;YACL,KAAK;YACL,KAAK;gBACD,OAAOM,UAAUN,MAAMtW;YAC3B,KAAK;gBACD,OAAO6W,WAAWP,MAAMtW;QAChC;IACJ;IACA,MAAM8W,+BAA+B,IAAIjB,IAAI;QACzC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,MAAMkB,kBAAkB,IAAIlB,IAAI;QAAC;QAAO;KAAO;IAC/C,SAASe,UAAU/E,IAAI,EAAEoE,IAAI;QACzB,IAAIpD;QAEJ,IAAIoD,AAAiB,cAAjBA,KAAK,OAAO,EAAgB;YAE5BpE,KAAK,IAAI,GAAG,AAAuC,SAAtCgB,CAAAA,KAAK6C,aAAa,GAAG,CAAC7D,KAAK,IAAI,MAAegB,AAAO,KAAK,MAAZA,KAAgBA,KAAKhB,KAAK,IAAI;YAEzF,IAAIA,KAAK,MAAM,IACXiF,6BAA6B,GAAG,CAACjF,KAAK,MAAM,CAAC,IAAI,GACjDoE,OAAO;gBAAE,GAAGA,IAAI;gBAAE,SAAS;YAAM;QAEzC;QACA,IAAI,CAACA,KAAK,OAAO,IAAIc,gBAAgB,GAAG,CAAClF,KAAK,IAAI,GAC9CoE,OAAO;YAAE,GAAGA,IAAI;YAAE,SAAS;QAAU;QAEzC,IAAIe,MAAM,CAAC,CAAC,EAAEnF,KAAK,IAAI,EAAE;QACzB,MAAMoF,UAAUlB,iBAAiBlE,KAAK,OAAO,EAAEoE;QAC/C,IAAIgB,SACAD,OAAO,CAAC,CAAC,EAAEC,SAAS;QAExB,IAAIpF,AAAyB,MAAzBA,KAAK,QAAQ,CAAC,MAAM,IACnBoE,CAAAA,KAAK,OAAO,GAELA,AAAyB,UAAzBA,KAAK,eAAe,GAEpBA,KAAK,eAAe,IAAIG,UAAU,GAAG,CAACvE,KAAK,IAAI,IAAI;YAC3D,IAAI,CAACoE,KAAK,OAAO,EACbe,OAAO;YACXA,OAAO;QACX,OACK;YACDA,OAAO;YACP,IAAInF,KAAK,QAAQ,CAAC,MAAM,GAAG,GACvBmF,OAAOX,OAAOxE,KAAK,QAAQ,EAAEoE;YAEjC,IAAIA,KAAK,OAAO,IAAI,CAACG,UAAU,GAAG,CAACvE,KAAK,IAAI,GACxCmF,OAAO,CAAC,EAAE,EAAEnF,KAAK,IAAI,CAAC,CAAC,CAAC;QAEhC;QACA,OAAOmF;IACX;IACA,SAASP,gBAAgB5E,IAAI;QACzB,OAAO,CAAC,CAAC,EAAEA,KAAK,IAAI,CAAC,CAAC,CAAC;IAC3B;IACA,SAASgF,WAAWhF,IAAI,EAAEoE,IAAI;QAC1B,IAAIpD;QACJ,IAAIjS,OAAOiR,KAAK,IAAI,IAAI;QAExB,IAAI,AAAC,CAA+B,SAA9BgB,CAAAA,KAAKoD,KAAK,cAAc,AAAD,KAAepD,AAAO,KAAK,MAAZA,KAAgBA,KAAKoD,KAAK,cAAc,AAAD,MAAO,SACtF,CAAE,EAACA,KAAK,OAAO,IACXpE,KAAK,MAAM,IACX+D,kBAAkB,GAAG,CAAC/D,KAAK,MAAM,CAAC,IAAI,IAC1CjR,OACIqV,KAAK,OAAO,IAAIA,AAAwB,WAAxBA,KAAK,cAAc,GAC7B,iBAAUrV,QACV,kBAAWA;QAEzB,OAAOA;IACX;IACA,SAAS+V,YAAY9E,IAAI;QACrB,OAAO,CAAC,SAAS,EAAEA,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;IACjD;IACA,SAAS6E,cAAc7E,IAAI;QACvB,OAAO,CAAC,IAAI,EAAEA,KAAK,IAAI,CAAC,GAAG,CAAC;IAChC;ICxLO,MAAMqF;QACT,aAAc;YAEV,IAAI,CAAC,MAAM,GAAG;YAEd,IAAI,CAAC,IAAI,GAAG;YAEZ,IAAI,CAAC,IAAI,GAAG;YAEZ,IAAI,CAAC,UAAU,GAAG;YAElB,IAAI,CAAC,QAAQ,GAAG;QACpB;QAMA,IAAI,aAAa;YACb,OAAO,IAAI,CAAC,MAAM;QACtB;QACA,IAAI,WAAWC,MAAM,EAAE;YACnB,IAAI,CAAC,MAAM,GAAGA;QAClB;QAKA,IAAI,kBAAkB;YAClB,OAAO,IAAI,CAAC,IAAI;QACpB;QACA,IAAI,gBAAgBC,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,GAAGA;QAChB;QAKA,IAAI,cAAc;YACd,OAAO,IAAI,CAAC,IAAI;QACpB;QACA,IAAI,YAAYzK,IAAI,EAAE;YAClB,IAAI,CAAC,IAAI,GAAGA;QAChB;QAOA,UAAU0K,YAAY,KAAK,EAAE;YACzB,OAAOC,UAAU,IAAI,EAAED;QAC3B;IACJ;IAIO,MAAME,iBAAiBL;QAI1B,YAAYtW,IAAI,CAAE;YACd,KAAK;YACL,IAAI,CAAC,IAAI,GAAGA;QAChB;QAKA,IAAI,YAAY;YACZ,OAAO,IAAI,CAAC,IAAI;QACpB;QACA,IAAI,UAAUA,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,GAAGA;QAChB;IACJ;IAIO,MAAM,kBAAa2W;QACtB,aAAc;YACV,KAAK,IAAI5R;YACT,IAAI,CAAC,IAAI,GAAG,oBAAgB;QAChC;QACA,IAAI,WAAW;YACX,OAAO;QACX;IACJ;IAIO,MAAM,qBAAgB4R;QACzB,aAAc;YACV,KAAK,IAAI5R;YACT,IAAI,CAAC,IAAI,GAAG,uBAAmB;QACnC;QACA,IAAI,WAAW;YACX,OAAO;QACX;IACJ;IAIO,MAAM6R,8BAA8BD;QACvC,YAAY/S,IAAI,EAAE5D,IAAI,CAAE;YACpB,KAAK,CAACA;YACN,IAAI,CAAC,IAAI,GAAG4D;YACZ,IAAI,CAAC,IAAI,GAAG,yBAAqB;QACrC;QACA,IAAI,WAAW;YACX,OAAO;QACX;IACJ;IAIO,MAAMiT,yBAAyBP;QAIlC,YAAYQ,QAAQ,CAAE;YAClB,KAAK;YACL,IAAI,CAAC,QAAQ,GAAGA;QACpB;QAGA,IAAI,aAAa;YACb,IAAI7E;YACJ,OAAO,AAA4B,SAA3BA,CAAAA,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,AAAD,KAAeA,AAAO,KAAK,MAAZA,KAAgBA,KAAK;QACpE;QAEA,IAAI,YAAY;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,GACvC;QACV;QAKA,IAAI,aAAa;YACb,OAAO,IAAI,CAAC,QAAQ;QACxB;QACA,IAAI,WAAW6E,QAAQ,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAGA;QACpB;IACJ;IACO,MAAM,mBAAcD;QACvB,aAAc;YACV,KAAK,IAAI9R;YACT,IAAI,CAAC,IAAI,GAAG,qBAAiB;QACjC;QACA,IAAI,WAAW;YACX,OAAO;QACX;IACJ;IAIO,MAAMgS,iBAAiBF;QAC1B,aAAc;YACV,KAAK,IAAI9R;YACT,IAAI,CAAC,IAAI,GAAG,oBAAgB;QAChC;QACA,IAAI,WAAW;YACX,OAAO;QACX;IACJ;IAIO,MAAMiS,gBAAgBH;QAMzB,YAAYjT,IAAI,EAAEyS,OAAO,EAAES,WAAW,EAAE,EAAElJ,OAAOhK,AAAS,aAATA,OAC3C,sBAAkB,GAClBA,AAAS,YAATA,OACI,qBAAiB,GACjB,mBAAe,CAAE;YACvB,KAAK,CAACkT;YACN,IAAI,CAAC,IAAI,GAAGlT;YACZ,IAAI,CAAC,OAAO,GAAGyS;YACf,IAAI,CAAC,IAAI,GAAGzI;QAChB;QACA,IAAI,WAAW;YACX,OAAO;QACX;QAMA,IAAI,UAAU;YACV,OAAO,IAAI,CAAC,IAAI;QACpB;QACA,IAAI,QAAQhK,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAGA;QAChB;QACA,IAAI,aAAa;YACb,OAAO/G,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC+G;gBAClC,IAAIqO,IAAIsD;gBACR,OAAQ;oBACJ3R;oBACA,OAAO,IAAI,CAAC,OAAO,CAACA,KAAK;oBACzB,WAAW,AAAsC,SAArCqO,CAAAA,KAAK,IAAI,CAAC,qBAAqB,AAAD,KAAeA,AAAO,KAAK,MAAZA,KAAgB,KAAK,IAAIA,EAAE,CAACrO,KAAK;oBAC1F,QAAQ,AAAmC,SAAlC2R,CAAAA,KAAK,IAAI,CAAC,kBAAkB,AAAD,KAAeA,AAAO,KAAK,MAAZA,KAAgB,KAAK,IAAIA,EAAE,CAAC3R,KAAK;gBACxF;YACJ;QACJ;IACJ;IAKO,SAAS,WAAM8R,IAAI;QACtB,OAAO1E,MAAS0E;IACpB;IAKO,SAASuB,QAAQvB,IAAI;QACxB,OAAOA,KAAK,IAAI,KAAK,qBAAiB;IAC1C;IAKO,SAASwB,OAAOxB,IAAI;QACvB,OAAOA,KAAK,IAAI,KAAK,oBAAgB;IACzC;IAKO,SAASyB,UAAUzB,IAAI;QAC1B,OAAOA,KAAK,IAAI,KAAK,uBAAmB;IAC5C;IAKO,SAAS0B,YAAY1B,IAAI;QAC5B,OAAOA,KAAK,IAAI,KAAK,yBAAqB;IAC9C;IAKO,SAAS2B,WAAW3B,IAAI;QAC3B,OAAOA,KAAK,IAAI,KAAK,oBAAgB;IACzC;IAKO,SAAS4B,YAAY5B,IAAI;QAC5B,OAAO7Y,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC6Y,MAAM;IACtD;IAOO,SAASgB,UAAUhB,IAAI,EAAEe,YAAY,KAAK;QAC7C,IAAIpZ;QACJ,IAAI6Z,OAAOxB,OACPrY,SAAS,IAAI,UAAKqY,KAAK,IAAI;aAE1B,IAAIyB,UAAUzB,OACfrY,SAAS,IAAI,aAAQqY,KAAK,IAAI;aAE7B,IAAI,WAAMA,OAAO;YAClB,MAAMoB,WAAWL,YAAYc,cAAc7B,KAAK,QAAQ,IAAI,EAAE;YAC9D,MAAM8B,QAAQ,IAAIR,QAAQtB,KAAK,IAAI,EAAE;gBAAE,GAAGA,KAAK,OAAO;YAAC,GAAGoB;YAC1DA,SAAS,OAAO,CAAC,CAACW,QAAWA,MAAM,MAAM,GAAGD;YAC5C,IAAI9B,AAAkB,QAAlBA,KAAK,SAAS,EACd8B,MAAM,SAAS,GAAG9B,KAAK,SAAS;YAEpC,IAAIA,IAAI,CAAC,qBAAqB,EAC1B8B,KAAK,CAAC,qBAAqB,GAAG;gBAAE,GAAG9B,IAAI,CAAC,qBAAqB;YAAC;YAElE,IAAIA,IAAI,CAAC,kBAAkB,EACvB8B,KAAK,CAAC,kBAAkB,GAAG;gBAAE,GAAG9B,IAAI,CAAC,kBAAkB;YAAC;YAE5DrY,SAASma;QACb,OACK,IAAIP,QAAQvB,OAAO;YACpB,MAAMoB,WAAWL,YAAYc,cAAc7B,KAAK,QAAQ,IAAI,EAAE;YAC9D,MAAM8B,QAAQ,IAAI,WAAMV;YACxBA,SAAS,OAAO,CAAC,CAACW,QAAWA,MAAM,MAAM,GAAGD;YAC5Cna,SAASma;QACb,OACK,IAAIH,WAAW3B,OAAO;YACvB,MAAMoB,WAAWL,YAAYc,cAAc7B,KAAK,QAAQ,IAAI,EAAE;YAC9D,MAAM8B,QAAQ,IAAIT,SAASD;YAC3BA,SAAS,OAAO,CAAC,CAACW,QAAWA,MAAM,MAAM,GAAGD;YAC5C,IAAI9B,IAAI,CAAC,SAAS,EACd8B,KAAK,CAAC,SAAS,GAAG9B,IAAI,CAAC,SAAS;YAEpCrY,SAASma;QACb,OACK,IAAIJ,YAAY1B,OAAO;YACxB,MAAMgC,cAAc,IAAId,sBAAsBlB,KAAK,IAAI,EAAEA,KAAK,IAAI;YAClE,IAAIA,AAAkB,QAAlBA,IAAI,CAAC,SAAS,EAAU;gBACxBgC,WAAW,CAAC,SAAS,GAAGhC,IAAI,CAAC,SAAS;gBACtCgC,WAAW,CAAC,aAAa,GAAGhC,IAAI,CAAC,aAAa;gBAC9CgC,WAAW,CAAC,aAAa,GAAGhC,IAAI,CAAC,aAAa;YAClD;YACArY,SAASqa;QACb,OAEI,MAAM,IAAIxX,MAAM,CAAC,qBAAqB,EAAEwV,KAAK,IAAI,EAAE;QAEvDrY,OAAO,UAAU,GAAGqY,KAAK,UAAU;QACnCrY,OAAO,QAAQ,GAAGqY,KAAK,QAAQ;QAC/B,IAAIA,AAA2B,QAA3BA,KAAK,kBAAkB,EACvBrY,OAAO,kBAAkB,GAAGqY,KAAK,kBAAkB;QAEvD,OAAOrY;IACX;IACA,SAASka,cAAcI,MAAM;QACzB,MAAMb,WAAWa,OAAO,GAAG,CAAC,CAACF,QAAUf,UAAUe,OAAO;QACxD,IAAK,IAAInV,IAAI,GAAGA,IAAIwU,SAAS,MAAM,EAAExU,IAAK;YACtCwU,QAAQ,CAACxU,EAAE,CAAC,IAAI,GAAGwU,QAAQ,CAACxU,IAAI,EAAE;YAClCwU,QAAQ,CAACxU,IAAI,EAAE,CAAC,IAAI,GAAGwU,QAAQ,CAACxU,EAAE;QACtC;QACA,OAAOwU;IACX;IC7UA,MAAMc,cAAc;QAChB,kBAAkB;QAClB,gBAAgB;QAChB,SAAS;IACb;IACO,MAAM;QAMT,YAAY1a,QAAQ,EAAEkC,OAAO,EAAEyY,SAAS,CAAE;YAEtC,IAAI,CAAC,GAAG,GAAG,EAAE;YAEb,IAAI,CAAC,IAAI,GAAG,IAAId,SAAS,IAAI,CAAC,GAAG;YAEjC,IAAI,CAAC,IAAI,GAAG;YAEZ,IAAI,CAAC,QAAQ,GAAG;gBAAC,IAAI,CAAC,IAAI;aAAC;YAE3B,IAAI,CAAC,QAAQ,GAAG;YAEhB,IAAI,CAAC,MAAM,GAAG;YAEd,IAAI,AAAmB,cAAnB,OAAO3X,SAAwB;gBAC/ByY,YAAYzY;gBACZA,UAAUwY;YACd;YACA,IAAI,AAAoB,YAApB,OAAO1a,UAAuB;gBAC9BkC,UAAUlC;gBACVA,WAAWoN,KAAAA;YACf;YACA,IAAI,CAAC,QAAQ,GAAGpN,QAAAA,WAA2CA,WAAW;YACtE,IAAI,CAAC,OAAO,GAAGkC,QAAAA,UAAyCA,UAAUwY;YAClE,IAAI,CAAC,SAAS,GAAGC,QAAAA,YAA6CA,YAAY;QAC9E;QACA,aAAaC,MAAM,EAAE;YACjB,IAAI,CAAC,MAAM,GAAGA;QAClB;QAEA,UAAU;YACN,IAAI,CAAC,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,IAAIf,SAAS,IAAI,CAAC,GAAG;YACjC,IAAI,CAAC,IAAI,GAAG;YACZ,IAAI,CAAC,QAAQ,GAAG;gBAAC,IAAI,CAAC,IAAI;aAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG;YAChB,IAAI,CAAC,MAAM,GAAG;QAClB;QAEA,QAAQ;YACJ,IAAI,IAAI,CAAC,IAAI,EACT;YACJ,IAAI,CAAC,IAAI,GAAG;YACZ,IAAI,CAAC,MAAM,GAAG;YACd,IAAI,CAAC,cAAc,CAAC;QACxB;QACA,QAAQhZ,KAAK,EAAE;YACX,IAAI,CAAC,cAAc,CAACA;QACxB;QACA,aAAa;YACT,IAAI,CAAC,QAAQ,GAAG;YAChB,MAAMkT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG;YAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAC3BA,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;YAExC,IAAI,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CAACA;QACvB;QACA,UAAUrN,IAAI,EAAEyS,OAAO,EAAE;YACrB,MAAMzI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,mBAAe,GAAGtD,KAAAA;YACtD,MAAMyN,UAAU,IAAIf,QAAQpT,MAAMyS,SAAS/L,KAAAA,GAAWsD;YACtD,IAAI,CAAC,OAAO,CAACmK;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA;QACvB;QACA,OAAO/X,IAAI,EAAE;YACT,MAAM,EAAEgY,QAAQ,EAAE,GAAG,IAAI;YACzB,IAAIA,YAAYA,SAAS,IAAI,KAAK,oBAAgB,EAAE;gBAChDA,SAAS,IAAI,IAAIhY;gBACjB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAC3BgY,SAAS,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;YAEhD,OACK;gBACD,MAAMtC,OAAO,IAAI,UAAK1V;gBACtB,IAAI,CAAC,OAAO,CAAC0V;gBACb,IAAI,CAAC,QAAQ,GAAGA;YACpB;QACJ;QACA,UAAU1V,IAAI,EAAE;YACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,uBAAmB,EAAE;gBAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAIA;gBACtB;YACJ;YACA,MAAM0V,OAAO,IAAI,aAAQ1V;YACzB,IAAI,CAAC,OAAO,CAAC0V;YACb,IAAI,CAAC,QAAQ,GAAGA;QACpB;QACA,eAAe;YACX,IAAI,CAAC,QAAQ,GAAG;QACpB;QACA,eAAe;YACX,MAAMuC,OAAO,IAAI,UAAK;YACtB,MAAMvC,OAAO,IAAI,WAAM;gBAACuC;aAAK;YAC7B,IAAI,CAAC,OAAO,CAACvC;YACbuC,KAAK,MAAM,GAAGvC;YACd,IAAI,CAAC,QAAQ,GAAGuC;QACpB;QACA,aAAa;YACT,IAAI,CAAC,QAAQ,GAAG;QACpB;QACA,wBAAwBrU,IAAI,EAAE5D,IAAI,EAAE;YAChC,MAAM0V,OAAO,IAAIkB,sBAAsBhT,MAAM5D;YAC7C,IAAI,CAAC,OAAO,CAAC0V;QACjB;QACA,eAAe3X,KAAK,EAAE;YAClB,IAAI,AAAyB,cAAzB,OAAO,IAAI,CAAC,QAAQ,EACpB,IAAI,CAAC,QAAQ,CAACA,OAAO,IAAI,CAAC,GAAG;iBAE5B,IAAIA,OACL,MAAMA;QAEd;QACA,QAAQ2X,IAAI,EAAE;YACV,MAAMa,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;YACtD,MAAM2B,kBAAkB3B,OAAO,QAAQ,CAACA,OAAO,QAAQ,CAAC,MAAM,GAAG,EAAE;YACnE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAC7Bb,KAAK,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;YAE5C,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAC3BA,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;YAExCa,OAAO,QAAQ,CAAC,IAAI,CAACb;YACrB,IAAIwC,iBAAiB;gBACjBxC,KAAK,IAAI,GAAGwC;gBACZA,gBAAgB,IAAI,GAAGxC;YAC3B;YACAA,KAAK,MAAM,GAAGa;YACd,IAAI,CAAC,QAAQ,GAAG;QACpB;IACJ;IC/IA,IAAI;IACH,UAAUrE,SAAS;QAChBA,SAAS,CAACA,SAAS,CAAC,MAAM,GAAG,EAAE,GAAG;QAClCA,SAAS,CAACA,SAAS,CAAC,UAAU,GAAG,GAAG,GAAG;QACvCA,SAAS,CAACA,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG;QACxCA,SAAS,CAACA,SAAS,CAAC,iBAAiB,GAAG,GAAG,GAAG;QAC9CA,SAAS,CAACA,SAAS,CAAC,QAAQ,GAAG,GAAG,GAAG;QACrCA,SAAS,CAACA,SAAS,CAAC,kBAAkB,GAAG,GAAG,GAAG;QAC/CA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,MAAM,GAAG,GAAG,GAAG;QACnCA,SAAS,CAACA,SAAS,CAAC,cAAc,GAAG,GAAG,GAAG;QAC3CA,SAAS,CAACA,SAAS,CAAC,cAAc,GAAG,GAAG,GAAG;QAC3CA,SAAS,CAACA,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG;QACpCA,SAAS,CAACA,SAAS,CAAC,QAAQ,GAAG,GAAG,GAAG;QACrCA,SAAS,CAACA,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG;QACpCA,SAAS,CAACA,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG;QACpCA,SAAS,CAACA,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG;QACpCA,SAAS,CAACA,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG;QAClCA,SAAS,CAACA,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG;QAClCA,SAAS,CAACA,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG;QAClCA,SAAS,CAACA,SAAS,CAAC,eAAe,GAAG,GAAG,GAAG;QAC5CA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG;QACvCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG;QACvCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG;QACvCA,SAAS,CAACA,SAAS,CAAC,uBAAuB,GAAG,GAAG,GAAG;IACxD,GAAG,uBAAc,uBAAY,CAAC;IAE9B,IAAI;IACH,UAAUiG,KAAK;QACZA,KAAK,CAACA,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG;QAC3BA,KAAK,CAACA,KAAK,CAAC,gBAAgB,GAAG,EAAE,GAAG;QACpCA,KAAK,CAACA,KAAK,CAAC,YAAY,GAAG,EAAE,GAAG;QAChCA,KAAK,CAACA,KAAK,CAAC,mBAAmB,GAAG,EAAE,GAAG;QACvCA,KAAK,CAACA,KAAK,CAAC,uBAAuB,GAAG,EAAE,GAAG;QAC3CA,KAAK,CAACA,KAAK,CAAC,mBAAmB,GAAG,EAAE,GAAG;QACvCA,KAAK,CAACA,KAAK,CAAC,sBAAsB,GAAG,EAAE,GAAG;QAE1CA,KAAK,CAACA,KAAK,CAAC,sBAAsB,GAAG,EAAE,GAAG;QAC1CA,KAAK,CAACA,KAAK,CAAC,kBAAkB,GAAG,EAAE,GAAG;QACtCA,KAAK,CAACA,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG;QAC1CA,KAAK,CAACA,KAAK,CAAC,uBAAuB,GAAG,GAAG,GAAG;QAC5CA,KAAK,CAACA,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG;QAC1CA,KAAK,CAACA,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG;QAC1CA,KAAK,CAACA,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG;QAE1CA,KAAK,CAACA,KAAK,CAAC,oBAAoB,GAAG,GAAG,GAAG;QACzCA,KAAK,CAACA,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG;QAErCA,KAAK,CAACA,KAAK,CAAC,0BAA0B,GAAG,GAAG,GAAG;QAE/CA,KAAK,CAACA,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG;QACrCA,KAAK,CAACA,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG;QACrCA,KAAK,CAACA,KAAK,CAAC,mBAAmB,GAAG,GAAG,GAAG;QACxCA,KAAK,CAACA,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG;QAErCA,KAAK,CAACA,KAAK,CAAC,iBAAiB,GAAG,GAAG,GAAG;QACtCA,KAAK,CAACA,KAAK,CAAC,iBAAiB,GAAG,GAAG,GAAG;QACtCA,KAAK,CAACA,KAAK,CAAC,uBAAuB,GAAG,GAAG,GAAG;QAC5CA,KAAK,CAACA,KAAK,CAAC,eAAe,GAAG,GAAG,GAAG;QACpCA,KAAK,CAACA,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG;IACpC,GAAG,mBAAU,mBAAQ,CAAC;IACtB,SAASC,aAAanX,CAAC;QACnB,OAAQA,MAAM,oBAAU,KAAK,IACzBA,MAAM,oBAAU,OAAO,IACvBA,MAAM,oBAAU,GAAG,IACnBA,MAAM,oBAAU,QAAQ,IACxBA,MAAM,oBAAU,cAAc;IACtC;IACA,SAASoX,kBAAkBpX,CAAC;QACxB,OAAOA,MAAM,oBAAU,KAAK,IAAIA,MAAM,oBAAU,EAAE,IAAImX,aAAanX;IACvE;IACA,SAASqX,aAAarX,CAAC;QACnB,OAAQ,AAACA,KAAK,oBAAU,MAAM,IAAIA,KAAK,oBAAU,MAAM,IAClDA,KAAK,oBAAU,MAAM,IAAIA,KAAK,oBAAU,MAAM;IACvD;IACO,IAAI;IACV,UAAUsX,SAAS;QAChBA,SAAS,CAACA,SAAS,CAAC,UAAU,GAAG,EAAE,GAAG;QACtCA,SAAS,CAACA,SAAS,CAAC,WAAW,GAAG,EAAE,GAAG;QACvCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,EAAE,GAAG;QACrCA,SAAS,CAACA,SAAS,CAAC,SAAS,GAAG,EAAE,GAAG;IACzC,GAAG,uBAAc,uBAAY,CAAC;IAO9B,MAAMC,YAAY;QACd,OAAO,IAAIC,WAAW;YAAC;YAAM;YAAM;YAAM;YAAM;YAAM;SAAK;QAC1D,UAAU,IAAIA,WAAW;YAAC;YAAM;YAAM;SAAK;QAC3C,YAAY,IAAIA,WAAW;YAAC;YAAM;YAAM;SAAK;QAC7C,WAAW,IAAIA,WAAW;YAAC;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;SAAK;QAC1E,UAAU,IAAIA,WAAW;YAAC;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;SAAK;QACnE,UAAU,IAAIA,WAAW;YAAC;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;SAAK;QACnE,aAAa,IAAIA,WAAW;YACxB;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;YAAM;SACzD;IACL;IACe,MAAMC;QACjB,YAAY,EAAEC,UAAU,KAAK,EAAEC,iBAAiB,IAAI,EAAG,EAAEC,GAAG,CAAE;YAC1D,IAAI,CAAC,GAAG,GAAGA;YAEX,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;YAEvB,IAAI,CAAC,MAAM,GAAG;YAEd,IAAI,CAAC,YAAY,GAAG;YAEpB,IAAI,CAAC,KAAK,GAAG;YAEb,IAAI,CAAC,WAAW,GAAG;YAEnB,IAAI,CAAC,SAAS,GAAG,gBAAM,IAAI;YAE3B,IAAI,CAAC,SAAS,GAAG;YAEjB,IAAI,CAAC,OAAO,GAAG;YAEf,IAAI,CAAC,MAAM,GAAG;YACd,IAAI,CAAC,eAAe,GAAGvO,KAAAA;YACvB,IAAI,CAAC,aAAa,GAAG;YACrB,IAAI,CAAC,OAAO,GAAGqO;YACf,IAAI,CAAC,cAAc,GAAGC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAIjG,cAAcgG,UAAU,kBAAgB,kBAAgB,CAACG,IAAIpF,WAAa,IAAI,CAAC,aAAa,CAACoF,IAAIpF;QAC9H;QACA,QAAQ;YACJ,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;YACvB,IAAI,CAAC,MAAM,GAAG;YACd,IAAI,CAAC,YAAY,GAAG;YACpB,IAAI,CAAC,KAAK,GAAG;YACb,IAAI,CAAC,SAAS,GAAG,gBAAM,IAAI;YAC3B,IAAI,CAAC,eAAe,GAAGpJ,KAAAA;YACvB,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,CAAC,MAAM,GAAG;QAClB;QACA,MAAMyO,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YACjC,IAAI,CAAC,MAAM,GAAGA;YACd,IAAI,CAAC,KAAK;QACd;QACA,MAAM;YACF,IAAI,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM;QACnB;QACA,QAAQ;YACJ,IAAI,CAAC,OAAO,GAAG;QACnB;QACA,SAAS;YACL,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAC7C,IAAI,CAAC,KAAK;QAElB;QACA,UAAU9X,CAAC,EAAE;YACT,IAAIA,MAAM,oBAAU,EAAE,IACjB,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAAI;gBAC5D,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBAEjD,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YAClC,OACK,IAAI,IAAI,CAAC,cAAc,IAAIA,MAAM,oBAAU,GAAG,EAC/C,IAAI,CAAC,WAAW;QAExB;QACA,0BAA0BA,CAAC,EAAE;YACzB,MAAM+X,QAAQ,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM;YAChE,MAAMC,UAAUD,QAERX,kBAAkBpX,KAElB,AAACA,CAAAA,AAAI,OAAJA,CAAO,MAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/D,IAAKgY,SAGA;gBAAA,IAAI,CAACD,OAAO;oBACb,IAAI,CAAC,aAAa;oBAClB;gBACJ;YAAA,OALI,IAAI,CAAC,SAAS,GAAG;YAMrB,IAAI,CAAC,aAAa,GAAG;YACrB,IAAI,CAAC,KAAK,GAAG,gBAAM,SAAS;YAC5B,IAAI,CAAC,cAAc,CAAC/X;QACxB;QAEA,kBAAkBA,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBACpD,IAAIA,MAAM,oBAAU,EAAE,IAAImX,aAAanX,IAAI;oBACvC,MAAMiY,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM;oBAC1D,IAAI,IAAI,CAAC,YAAY,GAAGA,WAAW;wBAE/B,MAAMC,cAAc,IAAI,CAAC,KAAK;wBAC9B,IAAI,CAAC,KAAK,GAAGD;wBACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAEA;wBACnC,IAAI,CAAC,KAAK,GAAGC;oBACjB;oBACA,IAAI,CAAC,SAAS,GAAG;oBACjB,IAAI,CAAC,YAAY,GAAGD,YAAY;oBAChC,IAAI,CAAC,qBAAqB,CAACjY;oBAC3B;gBACJ;gBACA,IAAI,CAAC,aAAa,GAAG;YACzB;YACA,IAAI,AAACA,CAAAA,AAAI,OAAJA,CAAO,MAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EACvD,IAAI,CAAC,aAAa,IAAI;iBAErB,IAAI,AAAuB,MAAvB,IAAI,CAAC,aAAa;gBACvB,IAAI,IAAI,CAAC,eAAe,KAAKuX,UAAU,QAAQ,EAE3C;oBAAA,IAAI,IAAI,CAAC,cAAc,IAAIvX,MAAM,oBAAU,GAAG,EAC1C,IAAI,CAAC,WAAW;gBACpB,OAEC,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAEpC,IAAI,CAAC,aAAa,GAAG;mBAKzB,IAAI,CAAC,aAAa,GAAG6B,OAAO7B,MAAM,oBAAU,EAAE;QAEtD;QACA,mBAAmBA,CAAC,EAAE;YAClB,IAAIA,MAAMuX,UAAU,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EACzC;gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,KAAKA,UAAU,KAAK,CAAC,MAAM,EAAE;oBACjD,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;oBAChC,IAAI,CAAC,eAAe,GAAGA,UAAU,QAAQ;oBACzC,IAAI,CAAC,aAAa,GAAG;oBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;gBACrC;YAAA,OAEC;gBACD,IAAI,CAAC,aAAa,GAAG;gBACrB,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;gBAChC,IAAI,CAAC,kBAAkB,CAACvX;YAC5B;QACJ;QAOA,cAAcA,CAAC,EAAE;YACb,MAAO,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAClD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,MAAMA,GACrD,OAAO;YASf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG;YAChD,OAAO;QACX;QASA,mBAAmBA,CAAC,EAAE;YAClB,IAAIA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAC9C;gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBACtD,IAAI,IAAI,CAAC,eAAe,KAAKuX,UAAU,QAAQ,EAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE;yBAGhD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE;oBAEtD,IAAI,CAAC,aAAa,GAAG;oBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;oBACjC,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBAC3B;YAAA,OAEC,IAAI,AAAuB,MAAvB,IAAI,CAAC,aAAa,EAEvB;gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,GAC1C,IAAI,CAAC,aAAa,GAAG;YACzB,OAEC,IAAIvX,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,EAEvD,IAAI,CAAC,aAAa,GAAG;QAE7B;QAOA,eAAeA,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,GAAG,CAACoX,kBAAkBpX,KAAKqX,aAAarX;QAC/D;QACA,aAAamY,QAAQ,EAAEpG,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG;YACjB,IAAI,CAAC,eAAe,GAAGoG;YACvB,IAAI,CAAC,aAAa,GAAGpG;YACrB,IAAI,CAAC,KAAK,GAAG,gBAAM,oBAAoB;QAC3C;QACA,mBAAmB/R,CAAC,EAAE;YAClB,IAAIA,MAAM,oBAAU,eAAe,EAAE;gBACjC,IAAI,CAAC,KAAK,GAAG,gBAAM,iBAAiB;gBACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OACK,IAAIA,MAAM,oBAAU,YAAY,EAAE;gBACnC,IAAI,CAAC,KAAK,GAAG,gBAAM,uBAAuB;gBAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OACK,IAAI,IAAI,CAAC,cAAc,CAACA,IAAI;gBAC7B,MAAMoY,QAAQpY,AAAI,OAAJA;gBACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAC9B,IAAI,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,GAAG,gBAAM,SAAS;qBAE3B,IAAIoY,UAAUb,UAAU,SAAS,CAAC,EAAE,EACrC,IAAI,CAAC,KAAK,GAAG,gBAAM,cAAc;qBAEhC,IAAIa,UAAUb,UAAU,QAAQ,CAAC,EAAE,EACpC,IAAI,CAAC,KAAK,GAAG,gBAAM,cAAc;qBAGjC,IAAI,CAAC,KAAK,GAAG,gBAAM,SAAS;YAEpC,OACK,IAAIvX,MAAM,oBAAU,KAAK,EAC1B,IAAI,CAAC,KAAK,GAAG,gBAAM,oBAAoB;iBAEtC;gBACD,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,SAAS,CAACA;YACnB;QACJ;QACA,eAAeA,CAAC,EAAE;YACd,IAAIoX,kBAAkBpX,IAAI;gBACtB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACpD,IAAI,CAAC,YAAY,GAAG;gBACpB,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;gBACtC,IAAI,CAAC,wBAAwB,CAACA;YAClC;QACJ;QACA,0BAA0BA,CAAC,EAAE;YACzB,IAAImX,aAAanX;iBAGZ,IAAIA,MAAM,oBAAU,EAAE,EACvB,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;iBAEtB;gBACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAACA,KAC3B,gBAAM,gBAAgB,GACtB,gBAAM,gBAAgB;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YAClC;QACJ;QACA,sBAAsBA,CAAC,EAAE;YACrB,IAAIA,MAAM,oBAAU,EAAE,IAAImX,aAAanX,IAAI;gBACvC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACjD,IAAI,CAAC,YAAY,GAAG;gBACpB,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;gBACtC,IAAI,CAAC,wBAAwB,CAACA;YAClC;QACJ;QACA,yBAAyBA,CAAC,EAAE;YAExB,IAAIA,MAAM,oBAAU,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAAG;gBACxD,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC;QACJ;QACA,yBAAyBA,CAAC,EAAE;YACxB,IAAIA,MAAM,oBAAU,EAAE,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK;gBAChC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,KAAK,GAAG,gBAAM,YAAY;oBAC/B,IAAI,CAAC,aAAa,GAAG;gBACzB,OAEI,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBAE3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OACK,IAAIA,MAAM,oBAAU,KAAK,EAC1B,IAAI,CAAC,KAAK,GAAG,gBAAM,gBAAgB;iBAElC,IAAI,CAACmX,aAAanX,IAAI;gBACvB,IAAI,CAAC,KAAK,GAAG,gBAAM,eAAe;gBAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YAClC;QACJ;QACA,sBAAsBA,CAAC,EAAE;YACrB,IAAIA,MAAM,oBAAU,EAAE,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK;gBACpC,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;gBACjC,IAAI,CAAC,SAAS,GAAG;YACrB,OACK,IAAI,CAACmX,aAAanX,IAAI;gBACvB,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;gBACtC,IAAI,CAAC,wBAAwB,CAACA;YAClC;QACJ;QACA,qBAAqBA,CAAC,EAAE;YACpB,IAAIA,MAAM,oBAAU,EAAE,IAAIoX,kBAAkBpX,IAAI;gBAC5C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAC9B,IAAI,CAAC,KAAK,GAAG,gBAAM,kBAAkB;gBACrC,IAAI,CAAC,uBAAuB,CAACA;YACjC;QACJ;QACA,wBAAwBA,CAAC,EAAE;YACvB,IAAIA,MAAM,oBAAU,EAAE,EAClB,IAAI,CAAC,KAAK,GAAG,gBAAM,oBAAoB;iBAEtC,IAAIA,MAAM,oBAAU,KAAK,IAAIA,MAAM,oBAAU,EAAE,EAAE;gBAClD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,oBAAU,OAAO,EAAE,IAAI,CAAC,YAAY;gBACzD,IAAI,CAAC,YAAY,GAAG;gBACpB,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;gBACtC,IAAI,CAAC,wBAAwB,CAACA;YAClC,OACK,IAAI,CAACmX,aAAanX,IAAI;gBACvB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,oBAAU,OAAO,EAAE,IAAI,CAAC,YAAY;gBACzD,IAAI,CAAC,KAAK,GAAG,gBAAM,eAAe;gBAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YAClC;QACJ;QACA,0BAA0BA,CAAC,EAAE;YACzB,IAAIA,MAAM,oBAAU,WAAW,EAAE;gBAC7B,IAAI,CAAC,KAAK,GAAG,gBAAM,kBAAkB;gBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OACK,IAAIA,MAAM,oBAAU,WAAW,EAAE;gBAClC,IAAI,CAAC,KAAK,GAAG,gBAAM,kBAAkB;gBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OACK,IAAI,CAACmX,aAAanX,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAC9B,IAAI,CAAC,KAAK,GAAG,gBAAM,kBAAkB;gBACrC,IAAI,CAAC,6BAA6B,CAACA;YACvC;QACJ;QACA,uBAAuBA,CAAC,EAAEqY,KAAK,EAAE;YAC7B,IAAIrY,MAAMqY,SACL,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAACA,QAAS;gBACrD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACnD,IAAI,CAAC,YAAY,GAAG;gBACpB,IAAI,CAAC,GAAG,CAAC,WAAW,CAACA,UAAU,oBAAU,WAAW,GAC9C,oBAAU,MAAM,GAChB,oBAAU,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG;gBACrC,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;YAC1C,OACK,IAAI,IAAI,CAAC,cAAc,IAAIrY,MAAM,oBAAU,GAAG,EAC/C,IAAI,CAAC,WAAW;QAExB;QACA,kCAAkCA,CAAC,EAAE;YACjC,IAAI,CAAC,sBAAsB,CAACA,GAAG,oBAAU,WAAW;QACxD;QACA,kCAAkCA,CAAC,EAAE;YACjC,IAAI,CAAC,sBAAsB,CAACA,GAAG,oBAAU,WAAW;QACxD;QACA,8BAA8BA,CAAC,EAAE;YAC7B,IAAImX,aAAanX,MAAMA,MAAM,oBAAU,EAAE,EAAE;gBACvC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACnD,IAAI,CAAC,YAAY,GAAG;gBACpB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,oBAAU,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACnD,IAAI,CAAC,KAAK,GAAG,gBAAM,mBAAmB;gBACtC,IAAI,CAAC,wBAAwB,CAACA;YAClC,OACK,IAAI,IAAI,CAAC,cAAc,IAAIA,MAAM,oBAAU,GAAG,EAC/C,IAAI,CAAC,WAAW;QAExB;QACA,uBAAuBA,CAAC,EAAE;YACtB,IAAIA,MAAM,oBAAU,oBAAoB,EAAE;gBACtC,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;gBAChC,IAAI,CAAC,aAAa,GAAG;YACzB,OAEI,IAAI,CAAC,KAAK,GACNA,MAAM,oBAAU,IAAI,GACd,gBAAM,aAAa,GACnB,gBAAM,aAAa;QAErC;QACA,mBAAmBA,CAAC,EAAE;YAClB,IAAIA,MAAM,oBAAU,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAAG;gBACxD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBACpD,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC;QACJ;QACA,6BAA6BA,CAAC,EAAE;YAC5B,IAAIA,MAAM,oBAAU,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAAG;gBACxD,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;gBAC9D,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC;QACJ;QACA,mBAAmBA,CAAC,EAAE;YAClB,IAAIA,MAAM,oBAAU,IAAI,EAAE;gBACtB,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;gBAChC,IAAI,CAAC,eAAe,GAAGuX,UAAU,UAAU;gBAE3C,IAAI,CAAC,aAAa,GAAG;gBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC,OAEI,IAAI,CAAC,KAAK,GAAG,gBAAM,aAAa;QAExC;QACA,sBAAsBvX,CAAC,EAAE;YACrB,IAAIA,MAAM,oBAAU,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAU,EAAE,GAAG;gBACxD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE;gBAClD,IAAI,CAAC,KAAK,GAAG,gBAAM,IAAI;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG;YACrC;QACJ;QACA,oBAAoBA,CAAC,EAAE;YACnB,MAAMoY,QAAQpY,AAAI,OAAJA;YACd,IAAIoY,UAAUb,UAAU,SAAS,CAAC,EAAE,EAChC,IAAI,CAAC,YAAY,CAACA,UAAU,SAAS,EAAE;iBAEtC,IAAIa,UAAUb,UAAU,QAAQ,CAAC,EAAE,EACpC,IAAI,CAAC,YAAY,CAACA,UAAU,QAAQ,EAAE;iBAErC;gBACD,IAAI,CAAC,KAAK,GAAG,gBAAM,SAAS;gBAC5B,IAAI,CAAC,cAAc,CAACvX;YACxB;QACJ;QACA,oBAAoBA,CAAC,EAAE;YACnB,MAAMoY,QAAQpY,AAAI,OAAJA;YACd,IAAIoY,UAAUb,UAAU,QAAQ,CAAC,EAAE,EAC/B,IAAI,CAAC,YAAY,CAACA,UAAU,QAAQ,EAAE;iBAErC,IAAIa,UAAUb,UAAU,WAAW,CAAC,EAAE,EACvC,IAAI,CAAC,YAAY,CAACA,UAAU,WAAW,EAAE;iBAExC;gBACD,IAAI,CAAC,KAAK,GAAG,gBAAM,SAAS;gBAC5B,IAAI,CAAC,cAAc,CAACvX;YACxB;QACJ;QACA,cAAc;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;YAC3B,IAAI,CAAC,KAAK,GAAG,gBAAM,QAAQ;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK;YAC7B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,GACrC,0BAAmB,GACnB,IAAI,CAAC,SAAS,KAAK,gBAAM,IAAI,IAC3B,IAAI,CAAC,SAAS,KAAK,gBAAM,YAAY,GACnC,0BAAmB,GACnB,6BAAsB;QACpC;QACA,gBAAgB;YACZ,MAAMwL,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;YAE7E,IAAIA,UAAU,GAAG;gBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;gBAC3B,IAAIA,AAAW,MAAXA,QACA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW;YAErC,OAGI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG;QAExD;QAIA,UAAU;YAEN,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK;gBAChD,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAM,IAAI,IACxB,IAAI,CAAC,KAAK,KAAK,gBAAM,YAAY,IAAI,AAAuB,MAAvB,IAAI,CAAC,aAAa,EAAS;oBACjE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;oBAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAClC,OACK,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IAC5C,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IACvC,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,EAAE;oBACzC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;oBACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAClC;;QAER;QACA,iBAAiB;YACb,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;QACxE;QAMA,QAAQ;YACJ,MAAO,IAAI,CAAC,cAAc,GAAI;gBAC1B,MAAMxL,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;gBACzD,OAAQ,IAAI,CAAC,KAAK;oBACd,KAAK,gBAAM,IAAI;wBACX,IAAI,CAAC,SAAS,CAACA;wBACf;oBAEJ,KAAK,gBAAM,oBAAoB;wBAC3B,IAAI,CAAC,yBAAyB,CAACA;wBAC/B;oBAEJ,KAAK,gBAAM,YAAY;wBACnB,IAAI,CAAC,iBAAiB,CAACA;wBACvB;oBAEJ,KAAK,gBAAM,aAAa;wBACpB,IAAI,CAAC,kBAAkB,CAACA;wBACxB;oBAEJ,KAAK,gBAAM,kBAAkB;wBACzB,IAAI,CAAC,iCAAiC,CAACA;wBACvC;oBAEJ,KAAK,gBAAM,eAAe;wBACtB,IAAI,CAAC,oBAAoB,CAACA;wBAC1B;oBAEJ,KAAK,gBAAM,aAAa;wBACpB,IAAI,CAAC,kBAAkB,CAACA;wBACxB;oBAEJ,KAAK,gBAAM,gBAAgB;wBACvB,IAAI,CAAC,qBAAqB,CAACA;wBAC3B;oBAEJ,KAAK,gBAAM,mBAAmB;wBAC1B,IAAI,CAAC,wBAAwB,CAACA;wBAC9B;oBAEJ,KAAK,gBAAM,SAAS;wBAChB,IAAI,CAAC,cAAc,CAACA;wBACpB;oBAEJ,KAAK,gBAAM,gBAAgB;wBACvB,IAAI,CAAC,qBAAqB,CAACA;wBAC3B;oBAEJ,KAAK,gBAAM,aAAa;wBACpB,IAAI,CAAC,kBAAkB,CAACA;wBACxB;oBAEJ,KAAK,gBAAM,kBAAkB;wBACzB,IAAI,CAAC,uBAAuB,CAACA;wBAC7B;oBAEJ,KAAK,gBAAM,kBAAkB;wBACzB,IAAI,CAAC,iCAAiC,CAACA;wBACvC;oBAEJ,KAAK,gBAAM,oBAAoB;wBAC3B,IAAI,CAAC,yBAAyB,CAACA;wBAC/B;oBAEJ,KAAK,gBAAM,oBAAoB;wBAC3B,IAAI,CAAC,yBAAyB,CAACA;wBAC/B;oBAEJ,KAAK,gBAAM,mBAAmB;wBAC1B,IAAI,CAAC,wBAAwB,CAACA;wBAC9B;oBAEJ,KAAK,gBAAM,cAAc;wBACrB,IAAI,CAAC,mBAAmB,CAACA;wBACzB;oBAEJ,KAAK,gBAAM,cAAc;wBACrB,IAAI,CAAC,mBAAmB,CAACA;wBACzB;oBAEJ,KAAK,gBAAM,kBAAkB;wBACzB,IAAI,CAAC,6BAA6B,CAACA;wBACnC;oBAEJ,KAAK,gBAAM,gBAAgB;wBACvB,IAAI,CAAC,qBAAqB,CAACA;wBAC3B;oBAEJ,KAAK,gBAAM,aAAa;wBACpB,IAAI,CAAC,kBAAkB,CAACA;wBACxB;oBAEJ,KAAK,gBAAM,iBAAiB;wBACxB,IAAI,CAAC,sBAAsB,CAACA;wBAC5B;oBAEJ,KAAK,gBAAM,aAAa;wBACpB,IAAI,CAAC,kBAAkB,CAACA;wBACxB;oBAEJ,KAAK,gBAAM,uBAAuB;wBAC9B,IAAI,CAAC,4BAA4B,CAACA;wBAClC;oBAEJ,KAAK,gBAAM,QAAQ;wBACf,IAAI,CAAC,aAAa;wBAClB;gBAER;gBACA,IAAI,CAAC,KAAK;YACd;YACA,IAAI,CAAC,OAAO;QAChB;QACA,SAAS;YACL,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAM,QAAQ,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,GAAG;gBACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;YAC/B;YACA,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,GAAG,CAAC,KAAK;QAClB;QAEA,qBAAqB;YACjB,MAAMsY,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAEjD,IAAI,IAAI,CAAC,YAAY,IAAIA,UACrB;YAEJ,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAM,aAAa;gBAClC,IAAI,IAAI,CAAC,eAAe,KAAKf,UAAU,QAAQ,EAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAEe,UAAU;qBAG9C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAEA,UAAU;mBAG/C,IAAI,CAAC,KAAK,KAAK,gBAAM,SAAS,IACnC,IAAI,CAAC,KAAK,KAAK,gBAAM,mBAAmB,IACxC,IAAI,CAAC,KAAK,KAAK,gBAAM,oBAAoB,IACzC,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IACvC,IAAI,CAAC,KAAK,KAAK,gBAAM,eAAe,IACpC,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IACvC,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IACvC,IAAI,CAAC,KAAK,KAAK,gBAAM,kBAAkB,IACvC,IAAI,CAAC,KAAK,KAAK,gBAAM,gBAAgB,IAOrC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAEA;QAE3C;QACA,cAAcT,EAAE,EAAEpF,QAAQ,EAAE;YACxB,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAM,IAAI,IAC7B,IAAI,CAAC,SAAS,KAAK,gBAAM,YAAY,EAAE;gBACvC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EACpC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW;gBAE7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAGA;gBACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG;gBACjC,IAAI,CAAC,GAAG,CAAC,cAAc,CAACoF;YAC5B,OACK;gBACD,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW;gBAEvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAGpF;gBACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG;gBACjC,IAAI,CAAC,GAAG,CAAC,YAAY,CAACoF,IAAI,IAAI,CAAC,YAAY;YAC/C;QACJ;IACJ;IC5wBA,MAAMU,WAAW,IAAIvE,IAAI;QACrB;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,MAAMwE,OAAO,IAAIxE,IAAI;QAAC;KAAI;IAC1B,MAAMyE,mBAAmB,IAAIzE,IAAI;QAAC;QAAS;KAAQ;IACnD,MAAM0E,UAAU,IAAI1E,IAAI;QAAC;QAAM;KAAK;IACpC,MAAM2E,UAAU,IAAI3E,IAAI;QAAC;QAAM;KAAK;IACpC,MAAM4E,mBAAmB,IAAIhI,IAAI;QAC7B;YAAC;YAAM,IAAIoD,IAAI;gBAAC;gBAAM;gBAAM;aAAK;SAAE;QACnC;YAAC;YAAM,IAAIA,IAAI;gBAAC;aAAK;SAAE;QACvB;YAAC;YAAM,IAAIA,IAAI;gBAAC;gBAAS;gBAAM;aAAK;SAAE;QACtC;YAAC;YAAQ,IAAIA,IAAI;gBAAC;gBAAQ;gBAAQ;aAAS;SAAE;QAC7C;YAAC;YAAM,IAAIA,IAAI;gBAAC;aAAK;SAAE;QACvB;YAAC;YAAKwE;SAAK;QACX;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAUD;SAAS;QACpB;YAAC;YAASA;SAAS;QACnB;YAAC;YAAUA;SAAS;QACpB;YAAC;YAAUA;SAAS;QACpB;YAAC;YAAYA;SAAS;QACtB;YAAC;YAAYA;SAAS;QACtB;YAAC;YAAU,IAAIvE,IAAI;gBAAC;aAAS;SAAE;QAC/B;YAAC;YAAY,IAAIA,IAAI;gBAAC;gBAAY;aAAS;SAAE;QAC7C;YAAC;YAAM0E;SAAQ;QACf;YAAC;YAAMA;SAAQ;QACf;YAAC;YAAWF;SAAK;QACjB;YAAC;YAAWA;SAAK;QACjB;YAAC;YAASA;SAAK;QACf;YAAC;YAAcA;SAAK;QACpB;YAAC;YAAWA;SAAK;QACjB;YAAC;YAAOA;SAAK;QACb;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAYA;SAAK;QAClB;YAAC;YAAcA;SAAK;QACpB;YAAC;YAAUA;SAAK;QAChB;YAAC;YAAUA;SAAK;QAChB;YAAC;YAAQA;SAAK;QACd;YAAC;YAAUA;SAAK;QAChB;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAQA;SAAK;QACd;YAAC;YAAOA;SAAK;QACb;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAOA;SAAK;QACb;YAAC;YAAWA;SAAK;QACjB;YAAC;YAASA;SAAK;QACf;YAAC;YAAMA;SAAK;QACZ;YAAC;YAAMG;SAAQ;QACf;YAAC;YAAMA;SAAQ;QACf;YAAC;YAASF;SAAiB;QAC3B;YAAC;YAASA;SAAiB;KAC9B;IACD,MAAMI,eAAe,IAAI7E,IAAI;QACzB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,MAAM8E,yBAAyB,IAAI9E,IAAI;QAAC;QAAQ;KAAM;IACtD,MAAM+E,0BAA0B,IAAI/E,IAAI;QACpC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,MAAMgF,YAAY;IACX,MAAM;QACT,YAAYpB,GAAG,EAAEzZ,UAAU,CAAC,CAAC,CAAE;YAC3B,IAAI6S,IAAIsD,IAAI2E,IAAIC,IAAIC,IAAIC;YACxB,IAAI,CAAC,OAAO,GAAGjb;YAEf,IAAI,CAAC,UAAU,GAAG;YAElB,IAAI,CAAC,QAAQ,GAAG;YAKhB,IAAI,CAAC,YAAY,GAAG;YACpB,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,WAAW,GAAG;YACnB,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,CAAC,KAAK,GAAG,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,EAAE;YACjB,IAAI,CAAC,YAAY,GAAG;YAEpB,IAAI,CAAC,UAAU,GAAG;YAElB,IAAI,CAAC,KAAK,GAAG;YACb,IAAI,CAAC,GAAG,GAAGyZ,QAAAA,MAAiCA,MAAM,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YACrC,IAAI,CAAC,iBAAiB,GAAG,AAAiC,SAAhC5G,CAAAA,KAAK7S,QAAQ,aAAa,AAAD,KAAe6S,AAAO,KAAK,MAAZA,KAAgBA,KAAK,IAAI,CAAC,QAAQ;YACpG,IAAI,CAAC,uBAAuB,GACxB,AAA2C,SAA1CsD,CAAAA,KAAKnW,QAAQ,uBAAuB,AAAD,KAAemW,AAAO,KAAK,MAAZA,KAAgBA,KAAK,IAAI,CAAC,QAAQ;YACzF,IAAI,CAAC,oBAAoB,GACrB,AAAwC,SAAvC2E,CAAAA,KAAK9a,QAAQ,oBAAoB,AAAD,KAAe8a,AAAO,KAAK,MAAZA,KAAgBA,KAAK,CAAC,IAAI,CAAC,QAAQ;YACvF,IAAI,CAAC,SAAS,GAAG,IAAK,CAA6B,SAA5BC,CAAAA,KAAK/a,QAAQ,SAAS,AAAD,KAAe+a,AAAO,KAAK,MAAZA,KAAgBA,KAAKzB,SAAQ,EAAG,IAAI,CAAC,OAAO,EAAE,IAAI;YAC7G,IAAI,CAAC,cAAc,GAAG;gBAAC,CAAC,IAAI,CAAC,QAAQ;aAAC;YACE,SAAvC2B,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,YAAY,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI,IAAI;QAC7F;QAGA,OAAOnH,KAAK,EAAEsG,QAAQ,EAAE;YACpB,IAAItH,IAAIsD;YACR,MAAMvV,OAAO,IAAI,CAAC,QAAQ,CAACiT,OAAOsG;YAClC,IAAI,CAAC,QAAQ,GAAGA,WAAW;YACO,SAAjChE,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,MAAM,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAIjS;YAC/E,IAAI,CAAC,UAAU,GAAGuZ;QACtB;QAEA,aAAaT,EAAE,EAAES,QAAQ,EAAE;YACvB,IAAItH,IAAIsD;YACR,IAAI,CAAC,QAAQ,GAAGgE,WAAW;YACO,SAAjChE,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,MAAM,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAIH,cAAcgH;YAC7F,IAAI,CAAC,UAAU,GAAGS;QACtB;QAKA,cAAc3V,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC,QAAQ,IAAIkW,aAAa,GAAG,CAAClW;QAC7C;QAEA,cAAcqP,KAAK,EAAEsG,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAGA;YAChB,IAAI3V,OAAO,IAAI,CAAC,QAAQ,CAACqP,OAAOsG;YAChC,IAAI,IAAI,CAAC,iBAAiB,EACtB3V,OAAOA,KAAK,WAAW;YAE3B,IAAI,CAAC,WAAW,CAACA;QACrB;QACA,YAAYA,IAAI,EAAE;YACd,IAAIqO,IAAIsD,IAAI2E,IAAIC;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;YACnC,IAAI,CAAC,OAAO,GAAGvW;YACf,MAAM0W,eAAe,IAAI,CAAC,QAAQ,IAAIT,iBAAiB,GAAG,CAACjW;YAC3D,IAAI0W,cACA,MAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAKA,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAG;gBAC7D,MAAMvC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK;gBACM,SAArCxC,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,UAAU,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI8F,SAAS;YAChG;YAEJ,IAAI,CAAC,IAAI,CAAC,aAAa,CAACnU,OAAO;gBAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAACA;gBACnB,IAAI,IAAI,CAAC,QAAQ;oBACb,IAAImW,uBAAuB,GAAG,CAACnW,OAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;yBAE3B,IAAIoW,wBAAwB,GAAG,CAACpW,OACjC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;;YAGxC;YACyC,SAAxCuW,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,aAAa,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAItW;YACtF,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAClB,IAAI,CAAC,OAAO,GAAG,CAAC;QACxB;QACA,WAAW2W,SAAS,EAAE;YAClB,IAAItI,IAAIsD;YACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;YACnC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACuB,SAApCA,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,SAAS,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAEsI;gBAC9G,IAAI,CAAC,OAAO,GAAG;YACnB;YACA,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,GACtD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;YAEtC,IAAI,CAAC,OAAO,GAAG;QACnB;QAEA,aAAahB,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAGA;YAChB,IAAI,CAAC,UAAU,CAAC;YAEhB,IAAI,CAAC,UAAU,GAAGA,WAAW;QACjC;QAEA,WAAWtG,KAAK,EAAEsG,QAAQ,EAAE;YACxB,IAAItH,IAAIsD,IAAI2E,IAAIC,IAAIC,IAAIC,IAAIG,IAAIC;YAChC,IAAI,CAAC,QAAQ,GAAGlB;YAChB,IAAI3V,OAAO,IAAI,CAAC,QAAQ,CAACqP,OAAOsG;YAChC,IAAI,IAAI,CAAC,iBAAiB,EACtB3V,OAAOA,KAAK,WAAW;YAE3B,IAAI,IAAI,CAAC,QAAQ,IACZmW,CAAAA,uBAAuB,GAAG,CAACnW,SACxBoW,wBAAwB,GAAG,CAACpW,KAAI,GACpC,IAAI,CAAC,cAAc,CAAC,KAAK;YAE7B,IAAK,IAAI,CAAC,aAAa,CAACA,OAenB;gBAAA,IAAI,IAAI,CAAC,QAAQ,IAAIA,AAAS,SAATA,MAAe;oBAEI,SAAxCuW,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,aAAa,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI;oBACjD,SAApCG,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,SAAS,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI,MAAM,CAAC,GAAG;oBACtD,SAArCK,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,UAAU,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI,MAAM;gBAC7F;YAAA,OApB+B;gBAC3B,MAAME,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC9W;gBAC/B,IAAI8W,AAAQ,OAARA,KACA,IAAK,IAAIxZ,QAAQ,GAAGA,SAASwZ,KAAKxZ,QAAS;oBACvC,MAAM6W,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK;oBAEM,SAArCxC,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,UAAU,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI8F,SAAS7W,UAAUwZ;gBAC1G;qBAEC,IAAI,IAAI,CAAC,QAAQ,IAAI9W,AAAS,QAATA,MAAc;oBAEpC,IAAI,CAAC,WAAW,CAAC;oBACjB,IAAI,CAAC,eAAe,CAAC;gBACzB;YACJ;YAQA,IAAI,CAAC,UAAU,GAAG2V,WAAW;QACjC;QAEA,iBAAiBA,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAGA;YAChB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;gBACrD,IAAI,CAAC,eAAe,CAAC;gBAErB,IAAI,CAAC,UAAU,GAAGA,WAAW;YACjC,OAGI,IAAI,CAAC,YAAY,CAACA;QAE1B;QACA,gBAAgBoB,aAAa,EAAE;YAC3B,IAAI1I,IAAIsD;YACR,MAAM3R,OAAO,IAAI,CAAC,OAAO;YACzB,IAAI,CAAC,UAAU,CAAC+W;YAEhB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK/W,MAAM;gBAEc,SAArC2R,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,UAAU,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAIrO,MAAM,CAAC+W;gBAC1F,IAAI,CAAC,KAAK,CAAC,KAAK;YACpB;QACJ;QAEA,aAAa1H,KAAK,EAAEsG,QAAQ,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAGtG;YAClB,MAAMrP,OAAO,IAAI,CAAC,QAAQ,CAACqP,OAAOsG;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,GACxC3V,KAAK,WAAW,KAChBA;QACV;QAEA,aAAaqP,KAAK,EAAEsG,QAAQ,EAAE;YAC1B,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAACtG,OAAOsG;QAC7C;QAEA,eAAeT,EAAE,EAAE;YACf,IAAI,CAAC,WAAW,IAAIhH,cAAcgH;QACtC;QAEA,YAAYQ,KAAK,EAAEC,QAAQ,EAAE;YACzB,IAAItH,IAAIsD;YACR,IAAI,CAAC,QAAQ,GAAGgE;YACuB,SAAtChE,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,WAAW,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAEqH,UAAU,0BAAgB,GAC3I,MACAA,UAAU,0BAAgB,GACtB,MACAA,UAAU,2BAAiB,GACvBhP,KAAAA,IACA;YACd,IAAI,IAAI,CAAC,OAAO,IACZ,CAACzN,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW;YAEpD,IAAI,CAAC,WAAW,GAAG;QACvB;QACA,mBAAmBiD,KAAK,EAAE;YACtB,MAAMoB,QAAQpB,MAAM,MAAM,CAACma;YAC3B,IAAIrW,OAAO1C,QAAQ,IAAIpB,QAAQA,MAAM,MAAM,CAAC,GAAGoB;YAC/C,IAAI,IAAI,CAAC,iBAAiB,EACtB0C,OAAOA,KAAK,WAAW;YAE3B,OAAOA;QACX;QAEA,cAAcqP,KAAK,EAAEsG,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAGA;YAChB,MAAMzZ,QAAQ,IAAI,CAAC,QAAQ,CAACmT,OAAOsG;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBAClC,MAAM3V,OAAO,IAAI,CAAC,kBAAkB,CAAC9D;gBACrC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE8D,MAAM,EAAE,CAAC,CAAC,EAAE9D,OAAO;YAC5D;YAEA,IAAI,CAAC,UAAU,GAAGyZ,WAAW;QACjC;QAEA,wBAAwBtG,KAAK,EAAEsG,QAAQ,EAAE;YACrC,IAAI,CAAC,QAAQ,GAAGA;YAChB,MAAMzZ,QAAQ,IAAI,CAAC,QAAQ,CAACmT,OAAOsG;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBAClC,MAAM3V,OAAO,IAAI,CAAC,kBAAkB,CAAC9D;gBACrC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE8D,MAAM,EAAE,CAAC,CAAC,EAAE9D,OAAO;YAC5D;YAEA,IAAI,CAAC,UAAU,GAAGyZ,WAAW;QACjC;QAEA,UAAUtG,KAAK,EAAEsG,QAAQ,EAAEvG,MAAM,EAAE;YAC/B,IAAIf,IAAIsD,IAAI2E,IAAIC;YAChB,IAAI,CAAC,QAAQ,GAAGZ;YACqB,SAApChE,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,SAAS,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI,IAAI,CAAC,QAAQ,CAACgB,OAAOsG,WAAWvG;YAC1E,SAAvCmH,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,YAAY,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD;YAEjF,IAAI,CAAC,UAAU,GAAGX,WAAW;QACjC;QAEA,QAAQtG,KAAK,EAAEsG,QAAQ,EAAEvG,MAAM,EAAE;YAC7B,IAAIf,IAAIsD,IAAI2E,IAAIC,IAAIC,IAAIC,IAAIG,IAAIC,IAAIG,IAAIC;YACxC,IAAI,CAAC,QAAQ,GAAGtB;YAChB,MAAMzZ,QAAQ,IAAI,CAAC,QAAQ,CAACmT,OAAOsG,WAAWvG;YAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBACP,SAAvCuC,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,YAAY,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD;gBAC/C,SAAjCkI,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,MAAM,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAIpa;gBACzC,SAArCua,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,UAAU,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD;YACnF,OACK;gBACoC,SAApCK,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,SAAS,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI,CAAC,OAAO,EAAE1a,MAAM,EAAE,CAAC;gBAC7D,SAAvC+a,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,YAAY,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD;YACrF;YAEA,IAAI,CAAC,UAAU,GAAGrB,WAAW;QACjC;QAEA,QAAQ;YACJ,IAAItH,IAAIsD;YACR,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;gBAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;gBAC/B,IAAK,IAAIrU,QAAQ,GAAGA,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAEA,QAC3C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAACA,MAAM,EAAE;YAE/C;YACiC,SAAhCqU,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,KAAK,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD;QAC9E;QAIA,QAAQ;YACJ,IAAIA,IAAIsD,IAAI2E,IAAIC;YACmB,SAAlC5E,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,OAAO,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD;YAC5E,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,OAAO,GAAG;YACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;YACpB,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,QAAQ,GAAG;YACwB,SAAvCkI,CAAAA,KAAK,AAACD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,YAAY,AAAD,KAAeC,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACD,IAAI,IAAI;YACzF,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACtB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG;YAC7B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ;YAC1C,IAAI,CAAC,YAAY,GAAG;YACpB,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,KAAK,GAAG;QACjB;QAOA,cAAcla,IAAI,EAAE;YAChB,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,GAAG,CAACA;QACb;QACA,SAASiT,KAAK,EAAEC,GAAG,EAAE;YACjB,MAAOD,QAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CACtD,IAAI,CAAC,WAAW;YAEpB,IAAI6H,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC7H,QAAQ,IAAI,CAAC,YAAY,EAAEC,MAAM,IAAI,CAAC,YAAY;YACpF,MAAOA,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAE;gBACrD,IAAI,CAAC,WAAW;gBAChB4H,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG5H,MAAM,IAAI,CAAC,YAAY;YAC7D;YACA,OAAO4H;QACX;QACA,cAAc;YACV,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM;YAC3C,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,OAAO,CAAC,KAAK;QACtB;QAMA,MAAM/B,KAAK,EAAE;YACT,IAAI9G,IAAIsD;YACR,IAAI,IAAI,CAAC,KAAK,EAAE;gBACuB,SAAlCA,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,OAAO,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI,IAAI/R,MAAM;gBAC1F;YACJ;YACA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC6Y;YAClB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAACA;gBACrB,IAAI,CAAC,UAAU;YACnB;QACJ;QAMA,IAAIA,KAAK,EAAE;YACP,IAAI9G,IAAIsD;YACR,IAAI,IAAI,CAAC,KAAK,EAAE;gBACuB,SAAlCA,CAAAA,KAAK,AAACtD,CAAAA,KAAK,IAAI,CAAC,GAAG,AAAD,EAAG,OAAO,AAAD,KAAesD,AAAO,KAAK,MAAZA,MAAyBA,GAAG,IAAI,CAACtD,IAAI,IAAI/R,MAAM;gBAC1F;YACJ;YACA,IAAI6Y,OACA,IAAI,CAAC,KAAK,CAACA;YACf,IAAI,CAAC,KAAK,GAAG;YACb,IAAI,CAAC,SAAS,CAAC,GAAG;QACtB;QAIA,QAAQ;YACJ,IAAI,CAAC,SAAS,CAAC,KAAK;QACxB;QAIA,SAAS;YACL,IAAI,CAAC,SAAS,CAAC,MAAM;YACrB,MAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG;YAExD,IAAI,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,CAAC,GAAG;QAC1B;QAOA,WAAWA,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAACA;QACf;QAOA,KAAKA,KAAK,EAAE;YACR,IAAI,CAAC,GAAG,CAACA;QACb;IACJ;ICjcO,IAAI;IACV,UAAUgC,gBAAgB;QACvBA,gBAAgB,CAACA,gBAAgB,CAAC,eAAe,GAAG,EAAE,GAAG;QACzDA,gBAAgB,CAACA,gBAAgB,CAAC,YAAY,GAAG,EAAE,GAAG;QACtDA,gBAAgB,CAACA,gBAAgB,CAAC,YAAY,GAAG,EAAE,GAAG;QACtDA,gBAAgB,CAACA,gBAAgB,CAAC,WAAW,GAAG,EAAE,GAAG;QACrDA,gBAAgB,CAACA,gBAAgB,CAAC,eAAe,GAAG,GAAG,GAAG;IAC9D,GAAG,4BAAqB,4BAAmB,CAAC;;IC5C7B,SAASC,KAAK1d,EAAE,EAAE2d,OAAO;QACtC,OAAO;YACL,OAAO3d,GAAG,KAAK,CAAC2d,SAASlW;QAC3B;IACF;ICAA,MAAM,EAAC,UAAQ,mBAAIlI,OAAO,SAAS;IACnC,MAAM,EAACqe,cAAc,EAAC,GAAGre;IAEzB,MAAMse,SAAS,AAACC,CAAAA,CAAAA,QAASC,CAAAA;YACrB,MAAM1W,MAAM,eAAS,IAAI,CAAC0W;YAC1B,OAAOD,KAAK,CAACzW,IAAI,IAAKyW,CAAAA,KAAK,CAACzW,IAAI,GAAGA,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,EAAC;QACpE,GAAG9H,OAAO,MAAM,CAAC;IAEjB,MAAMye,aAAa,CAAC1N;QAClBA,OAAOA,KAAK,WAAW;QACvB,OAAO,CAACyN,QAAUF,OAAOE,WAAWzN;IACtC;IAEA,MAAM2N,aAAa3N,CAAAA,OAAQyN,CAAAA,QAAS,OAAOA,UAAUzN;IASrD,MAAM,EAAC4N,OAAO,EAAC,GAAGnd;IASlB,MAAMod,cAAcF,WAAW;IAS/B,SAAStU,SAAS9D,GAAG;QACnB,OAAOA,AAAQ,SAARA,OAAgB,CAACsY,YAAYtY,QAAQA,AAAoB,SAApBA,IAAI,WAAW,IAAa,CAACsY,YAAYtY,IAAI,WAAW,KAC/FsC,WAAWtC,IAAI,WAAW,CAAC,QAAQ,KAAKA,IAAI,WAAW,CAAC,QAAQ,CAACA;IACxE;IASA,MAAMuY,gBAAgBJ,WAAW;IAUjC,SAASK,kBAAkBxY,GAAG;QAC5B,IAAI9F;QAEFA,SADE,AAAwB,eAAvB,OAAOue,eAAiCA,YAAY,MAAM,GACpDA,YAAY,MAAM,CAACzY,OAEnB,AAACA,OAASA,IAAI,MAAM,IAAMuY,cAAcvY,IAAI,MAAM;QAE7D,OAAO9F;IACT;IASA,MAAM2J,WAAWuU,WAAW;IAQ5B,MAAM9V,aAAa8V,WAAW;IAS9B,MAAM,iBAAWA,WAAW;IAS5B,MAAMM,WAAW,CAACR,QAAUA,AAAU,SAAVA,SAAkB,AAAiB,YAAjB,OAAOA;IAQrD,MAAMS,YAAYT,CAAAA,QAASA,AAAU,SAAVA,SAAkBA,AAAU,UAAVA;IAS7C,MAAMU,gBAAgB,CAAC5Y;QACrB,IAAIgY,AAAgB,aAAhBA,OAAOhY,MACT,OAAO;QAGT,MAAM6Y,YAAYd,eAAe/X;QACjC,OAAO,AAAC6Y,CAAAA,AAAc,SAAdA,aAAsBA,cAAcnf,OAAO,SAAS,IAAIA,AAAqC,SAArCA,OAAO,cAAc,CAACmf,UAAkB,KAAM,CAAEC,CAAAA,OAAO,WAAW,IAAI9Y,GAAE,KAAM,CAAE8Y,CAAAA,OAAO,QAAQ,IAAI9Y,GAAE;IACvK;IASA,MAAM+Y,SAASZ,WAAW;IAS1B,MAAMa,SAASb,WAAW;IAS1B,MAAMc,SAASd,WAAW;IAS1B,MAAM,mBAAaA,WAAW;IAS9B,MAAMe,WAAW,CAAClZ,MAAQ0Y,SAAS1Y,QAAQsC,WAAWtC,IAAI,IAAI;IAS9D,MAAM,mBAAa,CAACkY;QAClB,IAAIiB;QACJ,OAAOjB,SACL,CAAqB,cAApB,OAAOjQ,YAA2BiQ,iBAAiBjQ,YAClD3F,WAAW4V,MAAM,MAAM,KACrB,CAA2B,eAA1BiB,CAAAA,OAAOnB,OAAOE,MAAK,KAEnBiB,AAAS,aAATA,QAAqB7W,WAAW4V,MAAM,QAAQ,KAAKA,AAAqB,wBAArBA,MAAM,QAAQ,EAA0B,CAEhG;IAEJ;IASA,MAAMkB,oBAAoBjB,WAAW;IAErC,MAAM,CAACkB,kBAAkBC,WAAWC,YAAYC,UAAU,GAAG;QAAC;QAAkB;QAAW;QAAY;KAAU,CAAC,GAAG,CAACrB;IAStH,MAAMsB,OAAO,CAACjY,MAAQA,IAAI,IAAI,GAC5BA,IAAI,IAAI,KAAKA,IAAI,OAAO,CAAC,sCAAsC;IAiBjE,SAASkY,QAAQ3Y,GAAG,EAAE5G,EAAE,EAAE,EAACwf,aAAa,KAAK,EAAC,GAAG,CAAC,CAAC;QAEjD,IAAI5Y,QAAAA,KACF;QAGF,IAAI5B;QACJ,IAAIya;QAGJ,IAAI,AAAe,YAAf,OAAO7Y,KAETA,MAAM;YAACA;SAAI;QAGb,IAAIsX,QAAQtX,MAEV,IAAK5B,IAAI,GAAGya,IAAI7Y,IAAI,MAAM,EAAE5B,IAAIya,GAAGza,IACjChF,GAAG,IAAI,CAAC,MAAM4G,GAAG,CAAC5B,EAAE,EAAEA,GAAG4B;aAEtB;YAEL,MAAMQ,OAAOoY,aAAajgB,OAAO,mBAAmB,CAACqH,OAAOrH,OAAO,IAAI,CAACqH;YACxE,MAAMT,MAAMiB,KAAK,MAAM;YACvB,IAAI3H;YAEJ,IAAKuF,IAAI,GAAGA,IAAImB,KAAKnB,IAAK;gBACxBvF,MAAM2H,IAAI,CAACpC,EAAE;gBACbhF,GAAG,IAAI,CAAC,MAAM4G,GAAG,CAACnH,IAAI,EAAEA,KAAKmH;YAC/B;QACF;IACF;IAEA,SAAS8Y,QAAQ9Y,GAAG,EAAEnH,GAAG;QACvBA,MAAMA,IAAI,WAAW;QACrB,MAAM2H,OAAO7H,OAAO,IAAI,CAACqH;QACzB,IAAI5B,IAAIoC,KAAK,MAAM;QACnB,IAAIuY;QACJ,MAAO3a,MAAM,EAAG;YACd2a,OAAOvY,IAAI,CAACpC,EAAE;YACd,IAAIvF,QAAQkgB,KAAK,WAAW,IAC1B,OAAOA;QAEX;QACA,OAAO;IACT;IAEA,MAAMC,UAAU,AAAC;QAEf,IAAI,AAAsB,eAAtB,OAAOC,YAA4B,OAAOA;QAC9C,OAAO,AAAgB,eAAhB,OAAOpd,OAAuBA,OAAQ,AAAkB,eAAlB,OAAOY,SAAyBA,SAASyc;IACxF;IAEA,MAAMC,mBAAmB,CAACC,UAAY,CAAC7B,YAAY6B,YAAYA,YAAYJ;IAoB3E,SAAS;QACP,MAAM,EAACK,QAAQ,EAAC,GAAGF,iBAAiB,IAAI,KAAK,IAAI,IAAI,CAAC;QACtD,MAAMhgB,SAAS,CAAC;QAChB,MAAMmgB,cAAc,CAACra,KAAKpG;YACxB,MAAM0gB,YAAYF,YAAYP,QAAQ3f,QAAQN,QAAQA;YACtD,IAAIgf,cAAc1e,MAAM,CAACogB,UAAU,KAAK1B,cAAc5Y,MACpD9F,MAAM,CAACogB,UAAU,GAAG,YAAMpgB,MAAM,CAACogB,UAAU,EAAEta;iBACxC,IAAI4Y,cAAc5Y,MACvB9F,MAAM,CAACogB,UAAU,GAAG,YAAM,CAAC,GAAGta;iBACzB,IAAIqY,QAAQrY,MACjB9F,MAAM,CAACogB,UAAU,GAAGta,IAAI,KAAK;iBAE7B9F,MAAM,CAACogB,UAAU,GAAGta;QAExB;QAEA,IAAK,IAAIb,IAAI,GAAGya,IAAIhY,UAAU,MAAM,EAAEzC,IAAIya,GAAGza,IAC3CyC,SAAS,CAACzC,EAAE,IAAIua,QAAQ9X,SAAS,CAACzC,EAAE,EAAEkb;QAExC,OAAOngB;IACT;IAYA,MAAMgG,SAAS,CAAC9E,GAAGC,GAAGyc,SAAS,EAAC6B,UAAU,EAAC,GAAE,CAAC,CAAC;QAC7CD,QAAQre,GAAG,CAAC2E,KAAKpG;YACf,IAAIke,WAAWxV,WAAWtC,MACxB5E,CAAC,CAACxB,IAAI,GAAGie,KAAK7X,KAAK8X;iBAEnB1c,CAAC,CAACxB,IAAI,GAAGoG;QAEb,GAAG;YAAC2Z;QAAU;QACd,OAAOve;IACT;IASA,MAAMmf,WAAW,CAACC;QAChB,IAAIA,AAA0B,WAA1BA,QAAQ,UAAU,CAAC,IACrBA,UAAUA,QAAQ,KAAK,CAAC;QAE1B,OAAOA;IACT;IAWA,MAAMC,WAAW,CAACC,aAAaC,kBAAkBC,OAAOC;QACtDH,YAAY,SAAS,GAAGhhB,OAAO,MAAM,CAACihB,iBAAiB,SAAS,EAAEE;QAClEH,YAAY,SAAS,CAAC,WAAW,GAAGA;QACpChhB,OAAO,cAAc,CAACghB,aAAa,SAAS;YAC1C,OAAOC,iBAAiB,SAAS;QACnC;QACAC,SAASlhB,OAAO,MAAM,CAACghB,YAAY,SAAS,EAAEE;IAChD;IAWA,MAAME,eAAe,CAACC,WAAWC,SAASC,QAAQC;QAChD,IAAIN;QACJ,IAAIzb;QACJ,IAAI6B;QACJ,MAAMma,SAAS,CAAC;QAEhBH,UAAUA,WAAW,CAAC;QAEtB,IAAID,AAAa,QAAbA,WAAmB,OAAOC;QAE9B,GAAG;YACDJ,QAAQlhB,OAAO,mBAAmB,CAACqhB;YACnC5b,IAAIyb,MAAM,MAAM;YAChB,MAAOzb,MAAM,EAAG;gBACd6B,OAAO4Z,KAAK,CAACzb,EAAE;gBACf,IAAI,AAAC,EAAC+b,cAAcA,WAAWla,MAAM+Z,WAAWC,QAAO,KAAM,CAACG,MAAM,CAACna,KAAK,EAAE;oBAC1Ega,OAAO,CAACha,KAAK,GAAG+Z,SAAS,CAAC/Z,KAAK;oBAC/Bma,MAAM,CAACna,KAAK,GAAG;gBACjB;YACF;YACA+Z,YAAYE,AAAW,UAAXA,UAAoBlD,eAAegD;QACjD,QAASA,aAAc,EAACE,UAAUA,OAAOF,WAAWC,QAAO,KAAMD,cAAcrhB,OAAO,SAAS,EAAE;QAEjG,OAAOshB;IACT;IAWA,MAAMI,WAAW,CAAC5Z,KAAK6Z,cAActR;QACnCvI,MAAM4F,OAAO5F;QACb,IAAIuI,AAAa5C,KAAAA,MAAb4C,YAA0BA,WAAWvI,IAAI,MAAM,EACjDuI,WAAWvI,IAAI,MAAM;QAEvBuI,YAAYsR,aAAa,MAAM;QAC/B,MAAM1K,YAAYnP,IAAI,OAAO,CAAC6Z,cAActR;QAC5C,OAAO4G,AAAc,OAAdA,aAAoBA,cAAc5G;IAC3C;IAUA,MAAMuR,UAAU,CAACpD;QACf,IAAI,CAACA,OAAO,OAAO;QACnB,IAAIG,QAAQH,QAAQ,OAAOA;QAC3B,IAAI/Y,IAAI+Y,MAAM,MAAM;QACpB,IAAI,CAAC,eAAS/Y,IAAI,OAAO;QACzB,MAAMiS,MAAM,IAAIlW,MAAMiE;QACtB,MAAOA,MAAM,EACXiS,GAAG,CAACjS,EAAE,GAAG+Y,KAAK,CAAC/Y,EAAE;QAEnB,OAAOiS;IACT;IAWA,MAAMmK,eAAe,AAACC,CAAAA,CAAAA,aAEbtD,CAAAA,QACEsD,cAActD,iBAAiBsD,UAE1C,EAAG,AAAsB,eAAtB,OAAOlG,cAA8ByC,eAAezC;IAUvD,MAAMmG,eAAe,CAAC1a,KAAK5G;QACzB,MAAMuhB,YAAY3a,OAAOA,GAAG,CAAC+X,OAAO,QAAQ,CAAC;QAE7C,MAAMpe,WAAWghB,UAAU,IAAI,CAAC3a;QAEhC,IAAI7G;QAEJ,MAAO,AAACA,CAAAA,SAASQ,SAAS,IAAI,EAAC,KAAM,CAACR,OAAO,IAAI,CAAE;YACjD,MAAMyhB,OAAOzhB,OAAO,KAAK;YACzBC,GAAG,IAAI,CAAC4G,KAAK4a,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE;QAC/B;IACF;IAUA,MAAMC,WAAW,CAACC,QAAQra;QACxB,IAAIsa;QACJ,MAAM1K,MAAM,EAAE;QAEd,MAAO,AAAiC,SAAhC0K,CAAAA,UAAUD,OAAO,IAAI,CAACra,IAAG,EAC/B4P,IAAI,IAAI,CAAC0K;QAGX,OAAO1K;IACT;IAGA,MAAM2K,aAAa5D,WAAW;IAE9B,MAAM6D,cAAcxa,CAAAA,MACXA,IAAI,WAAW,GAAG,OAAO,CAAC,yBAC/B,SAAkB9D,CAAC,EAAEue,EAAE,EAAEC,EAAE;YACzB,OAAOD,GAAG,WAAW,KAAKC;QAC5B;IAKJ,MAAM,uBAAiB,AAAC,EAAC,EAACC,cAAc,EAAC,GAAK,CAACpb,KAAKC,OAASmb,eAAe,IAAI,CAACpb,KAAKC,KAAI,EAAGtH,OAAO,SAAS;IAS7G,MAAM0iB,WAAWjE,WAAW;IAE5B,MAAMkE,oBAAoB,CAACtb,KAAKub;QAC9B,MAAMzB,cAAcnhB,OAAO,yBAAyB,CAACqH;QACrD,MAAMwb,qBAAqB,CAAC;QAE5B7C,QAAQmB,aAAa,CAAC2B,YAAY/b;YAChC,IAAIgQ;YACJ,IAAI,AAA2C,UAA1CA,CAAAA,MAAM6L,QAAQE,YAAY/b,MAAMM,IAAG,GACtCwb,kBAAkB,CAAC9b,KAAK,GAAGgQ,OAAO+L;QAEtC;QAEA9iB,OAAO,gBAAgB,CAACqH,KAAKwb;IAC/B;IAOA,MAAME,gBAAgB,CAAC1b;QACrBsb,kBAAkBtb,KAAK,CAACyb,YAAY/b;YAElC,IAAI6B,WAAWvB,QAAQ,AAAoD,OAApD;gBAAC;gBAAa;gBAAU;aAAS,CAAC,OAAO,CAACN,OAC/D,OAAO;YAGT,MAAM9D,QAAQoE,GAAG,CAACN,KAAK;YAEvB,IAAI,CAAC6B,WAAW3F,QAAQ;YAExB6f,WAAW,UAAU,GAAG;YAExB,IAAI,cAAcA,YAAY;gBAC5BA,WAAW,QAAQ,GAAG;gBACtB;YACF;YAEA,IAAI,CAACA,WAAW,GAAG,EACjBA,WAAW,GAAG,GAAG;gBACf,MAAMzf,MAAM,wCAAwC0D,OAAO;YAC7D;QAEJ;IACF;IAEA,MAAMic,cAAc,CAACC,eAAexc;QAClC,MAAMY,MAAM,CAAC;QAEb,MAAM6b,SAAS,CAACxL;YACdA,IAAI,OAAO,CAACzU,CAAAA;gBACVoE,GAAG,CAACpE,MAAM,GAAG;YACf;QACF;QAEA0b,QAAQsE,iBAAiBC,OAAOD,iBAAiBC,OAAOxV,OAAOuV,eAAe,KAAK,CAACxc;QAEpF,OAAOY;IACT;IAEA,MAAMuC,OAAO,KAAO;IAEpB,MAAMuZ,iBAAiB,CAAClgB,OAAOmgB,eACtBngB,AAAS,QAATA,SAAiBgD,OAAO,QAAQ,CAAChD,cAAkBA,QAAQmgB;IAGpE,MAAMC,QAAQ;IAEd,MAAMC,QAAQ;IAEd,MAAMC,WAAW;QACfD;QACAD;QACA,aAAaA,QAAQA,MAAM,WAAW,KAAKC;IAC7C;IAEA,MAAME,iBAAiB,CAACC,OAAO,EAAE,EAAEC,WAAWH,SAAS,WAAW;QAChE,IAAIzb,MAAM;QACV,MAAM,EAAC8H,MAAM,EAAC,GAAG8T;QACjB,MAAOD,OACL3b,OAAO4b,QAAQ,CAAChe,KAAK,MAAM,KAAKkK,SAAO,EAAE;QAG3C,OAAO9H;IACT;IASA,SAAS6b,oBAAoBnF,KAAK;QAChC,OAAO,CAAC,CAAEA,CAAAA,SAAS5V,WAAW4V,MAAM,MAAM,KAAKA,AAA8B,eAA9BA,KAAK,CAACY,OAAO,WAAW,CAAC,IAAmBZ,KAAK,CAACY,OAAO,QAAQ,CAAC,AAAD;IAClH;IAEA,MAAMwE,eAAe,CAACvc;QACpB,MAAMwc,QAAQ,IAAIriB,MAAM;QAExB,MAAMsiB,QAAQ,CAAC/b,QAAQtC;YAErB,IAAIuZ,SAASjX,SAAS;gBACpB,IAAI8b,MAAM,OAAO,CAAC9b,WAAW,GAC3B;gBAGF,IAAG,CAAE,aAAYA,MAAK,GAAI;oBACxB8b,KAAK,CAACpe,EAAE,GAAGsC;oBACX,MAAMoF,SAASwR,QAAQ5W,UAAU,EAAE,GAAG,CAAC;oBAEvCiY,QAAQjY,QAAQ,CAAC9E,OAAO/C;wBACtB,MAAM6jB,eAAeD,MAAM7gB,OAAOwC,IAAI;wBACrCmZ,YAAYmF,iBAAkB5W,CAAAA,MAAM,CAACjN,IAAI,GAAG6jB,YAAW;oBAC1D;oBAEAF,KAAK,CAACpe,EAAE,GAAGgI,KAAAA;oBAEX,OAAON;gBACT;YACF;YAEA,OAAOpF;QACT;QAEA,OAAO+b,MAAMzc,KAAK;IACpB;IAEA,MAAM2c,YAAYvF,WAAW;IAE7B,MAAMwF,aAAa,CAACzF,QAClBA,SAAUQ,CAAAA,SAASR,UAAU5V,WAAW4V,MAAK,KAAM5V,WAAW4V,MAAM,IAAI,KAAK5V,WAAW4V,MAAM,KAAK;IAKrG,MAAM0F,gBAAgB,AAAC,EAACC,uBAAuBC;QAC7C,IAAID,uBACF,OAAOxjB;QAGT,OAAOyjB,uBAAuB,AAAC,EAACC,OAAOC;YACrCjE,QAAQ,gBAAgB,CAAC,WAAW,CAAC,EAACtY,MAAM,EAAE5E,IAAI,EAAC;gBACjD,IAAI4E,WAAWsY,WAAWld,SAASkhB,OACjCC,UAAU,MAAM,IAAIA,UAAU,KAAK;YAEvC,GAAG;YAEH,OAAO,CAAC5U;gBACN4U,UAAU,IAAI,CAAC5U;gBACf2Q,QAAQ,WAAW,CAACgE,OAAO;YAC7B;QACF,GAAG,CAAC,MAAM,EAAE3e,KAAK,MAAM,IAAI,EAAE,EAAE,IAAI,CAACgK,KAAO7O,WAAW6O;IACxD,GACE,AAAwB,cAAxB,OAAO/O,cACPiI,WAAWyX,QAAQ,WAAW;IAGhC,MAAMkE,OAAO,AAA0B,eAA1B,OAAOC,iBAClBA,eAAe,IAAI,CAACnE,WAAa,AAAmB,eAAnB,OAAOzf,WAA2BA,QAAQ,QAAQ,IAAIsjB;IAIzF,cAAe;QACbvF;QACAE;QACAzU;QACA,YAAU;QACV0U;QACA3U;QACA,UAAQ;QACR8U;QACAD;QACAE;QACAS;QACAC;QACAC;QACAC;QACAlB;QACAS;QACAC;QACAC;QACAmD;QACA9Z;QACA4W;QACAE;QACAmC;QACA,YAAU;QACV7B;QACA,OAAK;QACLxZ;QACAuZ;QACAc;QACAE;QACAK;QACA9C;QACAG;QACAiD;QACAE;QACAG;QACAG;QACAG;QACA,gBAAc;QACd,YAAY;QACZM;QACAI;QACAC;QACAV;QACA1Y;QACAuZ;QACAhD;QACA,QAAQE;QACRG;QACA+C;QACAC;QACAG;QACAC;QACAI;QACAC;QACA,cAAcC;QACdK;IACF;ICxuBA,SAAS,sBAAWnhB,OAAO,EAAEuK,IAAI,EAAE8W,MAAM,EAAEvZ,OAAO,EAAEnB,QAAQ;QAC1D1G,MAAM,IAAI,CAAC,IAAI;QAEf,IAAIA,MAAM,iBAAiB,EACzBA,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW;aAE9C,IAAI,CAAC,KAAK,GAAG,AAAC,IAAIA,QAAS,KAAK;QAGlC,IAAI,CAAC,OAAO,GAAGD;QACf,IAAI,CAAC,IAAI,GAAG;QACZuK,QAAS,KAAI,CAAC,IAAI,GAAGA,IAAG;QACxB8W,UAAW,KAAI,CAAC,MAAM,GAAGA,MAAK;QAC9BvZ,WAAY,KAAI,CAAC,OAAO,GAAGA,OAAM;QACjC,IAAInB,UAAU;YACZ,IAAI,CAAC,QAAQ,GAAGA;YAChB,IAAI,CAAC,MAAM,GAAGA,SAAS,MAAM,GAAGA,SAAS,MAAM,GAAG;QACpD;IACF;IAEA2a,MAAM,QAAQ,CAAC,uBAAYrhB,OAAO;QAChC,QAAQ;YACN,OAAO;gBAEL,SAAS,IAAI,CAAC,OAAO;gBACrB,MAAM,IAAI,CAAC,IAAI;gBAEf,aAAa,IAAI,CAAC,WAAW;gBAC7B,QAAQ,IAAI,CAAC,MAAM;gBAEnB,UAAU,IAAI,CAAC,QAAQ;gBACvB,YAAY,IAAI,CAAC,UAAU;gBAC3B,cAAc,IAAI,CAAC,YAAY;gBAC/B,OAAO,IAAI,CAAC,KAAK;gBAEjB,QAAQqhB,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM;gBACtC,MAAM,IAAI,CAAC,IAAI;gBACf,QAAQ,IAAI,CAAC,MAAM;YACrB;QACF;IACF;IAEA,MAAM,uBAAY,sBAAW,SAAS;IACtC,MAAM,yBAAc,CAAC;IAErB;QACE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KAED,CAAC,OAAO,CAAC/W,CAAAA;QACR,sBAAW,CAACA,KAAK,GAAG;YAAC,OAAOA;QAAI;IAClC;IAEA3N,OAAO,gBAAgB,CAAC,uBAAY;IACpCA,OAAO,cAAc,CAAC,sBAAW,gBAAgB;QAAC,OAAO;IAAI;IAG7D,sBAAW,IAAI,GAAG,CAACkB,OAAOyM,MAAM8W,QAAQvZ,SAASnB,UAAU4a;QACzD,MAAMC,aAAa5kB,OAAO,MAAM,CAAC;QAEjC0kB,MAAM,YAAY,CAACxjB,OAAO0jB,YAAY,SAAgBvd,GAAG;YACvD,OAAOA,QAAQhE,MAAM,SAAS;QAChC,GAAGiE,CAAAA,OACMA,AAAS,mBAATA;QAGT,sBAAW,IAAI,CAACsd,YAAY1jB,MAAM,OAAO,EAAEyM,MAAM8W,QAAQvZ,SAASnB;QAElE6a,WAAW,KAAK,GAAG1jB;QAEnB0jB,WAAW,IAAI,GAAG1jB,MAAM,IAAI;QAE5ByjB,eAAe3kB,OAAO,MAAM,CAAC4kB,YAAYD;QAEzC,OAAOC;IACT;IAEA,mBAAe;;;ICpGf,yBAAe;ICYf,SAASC,YAAYrG,KAAK;QACxB,OAAOkG,MAAM,aAAa,CAAClG,UAAUkG,MAAM,OAAO,CAAClG;IACrD;IASA,SAASsG,eAAe5kB,GAAG;QACzB,OAAOwkB,MAAM,QAAQ,CAACxkB,KAAK,QAAQA,IAAI,KAAK,CAAC,GAAG,MAAMA;IACxD;IAWA,SAAS6kB,UAAU7W,IAAI,EAAEhO,GAAG,EAAE8kB,IAAI;QAChC,IAAI,CAAC9W,MAAM,OAAOhO;QAClB,OAAOgO,KAAK,MAAM,CAAChO,KAAK,GAAG,CAAC,SAAcmkB,KAAK,EAAE5e,CAAC;YAEhD4e,QAAQS,eAAeT;YACvB,OAAO,CAACW,QAAQvf,IAAI,MAAM4e,QAAQ,MAAMA;QAC1C,GAAG,IAAI,CAACW,OAAO,MAAM;IACvB;IASA,SAASC,YAAYvN,GAAG;QACtB,OAAOgN,MAAM,OAAO,CAAChN,QAAQ,CAACA,IAAI,IAAI,CAACmN;IACzC;IAEA,MAAMK,aAAaR,MAAM,YAAY,CAACA,OAAO,CAAC,GAAG,MAAM,SAAgBpd,IAAI;QACzE,OAAO,WAAW,IAAI,CAACA;IACzB;IAyBA,SAAS6d,WAAW9d,GAAG,EAAE+d,QAAQ,EAAE7iB,OAAO;QACxC,IAAI,CAACmiB,MAAM,QAAQ,CAACrd,MAClB,MAAM,IAAIkC,UAAU;QAItB6b,WAAWA,YAAY,IAAK,qBAAoB7W,QAAO;QAGvDhM,UAAUmiB,MAAM,YAAY,CAACniB,SAAS;YACpC,YAAY;YACZ,MAAM;YACN,SAAS;QACX,GAAG,OAAO,SAAiBE,MAAM,EAAEsF,MAAM;YAEvC,OAAO,CAAC2c,MAAM,WAAW,CAAC3c,MAAM,CAACtF,OAAO;QAC1C;QAEA,MAAM4iB,aAAa9iB,QAAQ,UAAU;QAErC,MAAM+iB,UAAU/iB,QAAQ,OAAO,IAAIgjB;QACnC,MAAMP,OAAOziB,QAAQ,IAAI;QACzB,MAAMijB,UAAUjjB,QAAQ,OAAO;QAC/B,MAAMkjB,QAAQljB,QAAQ,IAAI,IAAI,AAAgB,eAAhB,OAAOmjB,QAAwBA;QAC7D,MAAMC,UAAUF,SAASf,MAAM,mBAAmB,CAACU;QAEnD,IAAI,CAACV,MAAM,UAAU,CAACY,UACpB,MAAM,IAAI/b,UAAU;QAGtB,SAASqc,aAAa3iB,KAAK;YACzB,IAAIA,AAAU,SAAVA,OAAgB,OAAO;YAE3B,IAAIyhB,MAAM,MAAM,CAACzhB,QACf,OAAOA,MAAM,WAAW;YAG1B,IAAI,CAAC0iB,WAAWjB,MAAM,MAAM,CAACzhB,QAC3B,MAAM,IAAI4iB,WAAW;YAGvB,IAAInB,MAAM,aAAa,CAACzhB,UAAUyhB,MAAM,YAAY,CAACzhB,QACnD,OAAO0iB,WAAW,AAAgB,cAAhB,OAAOD,OAAsB,IAAIA,KAAK;gBAACziB;aAAM,IAAIN,OAAO,IAAI,CAACM;YAGjF,OAAOA;QACT;QAYA,SAASsiB,eAAetiB,KAAK,EAAE/C,GAAG,EAAEgO,IAAI;YACtC,IAAIwJ,MAAMzU;YAEV,IAAIA,SAAS,CAACiL,QAAQ,AAAiB,YAAjB,OAAOjL;gBAC3B,IAAIyhB,MAAM,QAAQ,CAACxkB,KAAK,OAAO;oBAE7BA,MAAMmlB,aAAanlB,MAAMA,IAAI,KAAK,CAAC,GAAG;oBAEtC+C,QAAQ4B,KAAK,SAAS,CAAC5B;gBACzB,OAAO,IACL,AAACyhB,MAAM,OAAO,CAACzhB,UAAUgiB,YAAYhiB,UACpC,AAACyhB,CAAAA,MAAM,UAAU,CAACzhB,UAAUyhB,MAAM,QAAQ,CAACxkB,KAAK,KAAI,KAAOwX,CAAAA,MAAMgN,MAAM,OAAO,CAACzhB,MAAK,GAClF;oBAEH/C,MAAM4kB,eAAe5kB;oBAErBwX,IAAI,OAAO,CAAC,SAAcoO,EAAE,EAAEzhB,KAAK;wBAC/BqgB,MAAM,WAAW,CAACoB,OAAOA,AAAO,SAAPA,MAAgBV,SAAS,MAAM,CAExDI,AAAY,SAAZA,UAAmBT,UAAU;4BAAC7kB;yBAAI,EAAEmE,OAAO2gB,QAASQ,AAAY,SAAZA,UAAmBtlB,MAAMA,MAAM,MACnF0lB,aAAaE;oBAEjB;oBACA,OAAO;gBACT;;YAGF,IAAIjB,YAAY5hB,QACd,OAAO;YAGTmiB,SAAS,MAAM,CAACL,UAAU7W,MAAMhO,KAAK8kB,OAAOY,aAAa3iB;YAEzD,OAAO;QACT;QAEA,MAAM4gB,QAAQ,EAAE;QAEhB,MAAMkC,iBAAiB/lB,OAAO,MAAM,CAACklB,YAAY;YAC/CK;YACAK;YACAf;QACF;QAEA,SAASmB,MAAM/iB,KAAK,EAAEiL,IAAI;YACxB,IAAIwW,MAAM,WAAW,CAACzhB,QAAQ;YAE9B,IAAI4gB,AAAyB,OAAzBA,MAAM,OAAO,CAAC5gB,QAChB,MAAMI,MAAM,oCAAoC6K,KAAK,IAAI,CAAC;YAG5D2V,MAAM,IAAI,CAAC5gB;YAEXyhB,MAAM,OAAO,CAACzhB,OAAO,SAAc6iB,EAAE,EAAE5lB,GAAG;gBACxC,MAAMM,SAAS,CAAEkkB,CAAAA,MAAM,WAAW,CAACoB,OAAOA,AAAO,SAAPA,EAAU,KAAMR,QAAQ,IAAI,CACpEF,UAAUU,IAAIpB,MAAM,QAAQ,CAACxkB,OAAOA,IAAI,IAAI,KAAKA,KAAKgO,MAAM6X;gBAG9D,IAAIvlB,AAAW,SAAXA,QACFwlB,MAAMF,IAAI5X,OAAOA,KAAK,MAAM,CAAChO,OAAO;oBAACA;iBAAI;YAE7C;YAEA2jB,MAAM,GAAG;QACX;QAEA,IAAI,CAACa,MAAM,QAAQ,CAACrd,MAClB,MAAM,IAAIkC,UAAU;QAGtByc,MAAM3e;QAEN,OAAO+d;IACT;IAEA,2BAAeD;IC9Mf,SAAS,4BAAOrd,GAAG;QACjB,MAAMme,UAAU;YACd,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,OAAO;YACP,OAAO;QACT;QACA,OAAOC,mBAAmBpe,KAAK,OAAO,CAAC,oBAAoB,SAAkBvD,KAAK;YAChF,OAAO0hB,OAAO,CAAC1hB,MAAM;QACvB;IACF;IAUA,SAAS4hB,qBAAqBtW,MAAM,EAAEtN,OAAO;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE;QAEhBsN,UAAU,mBAAWA,QAAQ,IAAI,EAAEtN;IACrC;IAEA,MAAM,iCAAY4jB,qBAAqB,SAAS;IAEhD,+BAAU,MAAM,GAAG,SAAgBpf,IAAI,EAAE9D,KAAK;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAC8D;YAAM9D;SAAM;IAChC;IAEA,+BAAU,QAAQ,GAAG,SAAkBmjB,OAAO;QAC5C,MAAMC,UAAUD,UAAU,SAASnjB,KAAK;YACtC,OAAOmjB,QAAQ,IAAI,CAAC,IAAI,EAAEnjB,OAAO;QACnC,IAAI;QAEJ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAcgf,IAAI;YACvC,OAAOoE,QAAQpE,IAAI,CAAC,EAAE,IAAI,MAAMoE,QAAQpE,IAAI,CAAC,EAAE;QACjD,GAAG,IAAI,IAAI,CAAC;IACd;IAEA,qCAAekE;IC5Cf,SAAS,gBAAO7f,GAAG;QACjB,OAAO4f,mBAAmB5f,KACxB,OAAO,CAAC,SAAS,KACjB,OAAO,CAAC,QAAQ,KAChB,OAAO,CAAC,SAAS,KACjB,OAAO,CAAC,QAAQ,KAChB,OAAO,CAAC,SAAS,KACjB,OAAO,CAAC,SAAS;IACrB;IAWe,SAASggB,SAASne,GAAG,EAAE0H,MAAM,EAAEtN,OAAO;QAEnD,IAAI,CAACsN,QACH,OAAO1H;QAGT,MAAMke,UAAU9jB,WAAWA,QAAQ,MAAM,IAAI;QAE7C,IAAImiB,MAAM,UAAU,CAACniB,UACnBA,UAAU;YACR,WAAWA;QACb;QAGF,MAAMgkB,cAAchkB,WAAWA,QAAQ,SAAS;QAEhD,IAAIikB;QAGFA,mBADED,cACiBA,YAAY1W,QAAQtN,WAEpBmiB,MAAM,iBAAiB,CAAC7U,UACzCA,OAAO,QAAQ,KACf,IAAI,6BAAqBA,QAAQtN,SAAS,QAAQ,CAAC8jB;QAGvD,IAAIG,kBAAkB;YACpB,MAAMC,gBAAgBte,IAAI,OAAO,CAAC;YAElC,IAAIse,AAAkB,OAAlBA,eACFte,MAAMA,IAAI,KAAK,CAAC,GAAGse;YAErBte,OAAO,AAACA,CAAAA,AAAqB,OAArBA,IAAI,OAAO,CAAC,OAAc,MAAM,GAAE,IAAKqe;QACjD;QAEA,OAAOre;IACT;IChEA,MAAMue;QACJ,aAAc;YACZ,IAAI,CAAC,QAAQ,GAAG,EAAE;QACpB;QAUA,IAAIC,SAAS,EAAEC,QAAQ,EAAErkB,OAAO,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjBokB;gBACAC;gBACA,aAAarkB,UAAUA,QAAQ,WAAW,GAAG;gBAC7C,SAASA,UAAUA,QAAQ,OAAO,GAAG;YACvC;YACA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG;QAChC;QASA,MAAMskB,EAAE,EAAE;YACR,IAAI,IAAI,CAAC,QAAQ,CAACA,GAAG,EACnB,IAAI,CAAC,QAAQ,CAACA,GAAG,GAAG;QAExB;QAOA,QAAQ;YACN,IAAI,IAAI,CAAC,QAAQ,EACf,IAAI,CAAC,QAAQ,GAAG,EAAE;QAEtB;QAYA,QAAQpmB,EAAE,EAAE;YACVikB,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAwBnT,CAAC;gBACpD,IAAIA,AAAM,SAANA,GACF9Q,GAAG8Q;YAEP;QACF;IACF;IAEA,gCAAemV;ICpEf,8BAAe;QACb,mBAAmB;QACnB,mBAAmB;QACnB,qBAAqB;IACvB;;ICHA,gCAAe,6BAAmB;ICAlC,sBAAe;QACb,QAAQ;QACR,SAAS;YACP,iBAAe;YACf,UAAQ;YACR,MAAM,AAAgB,eAAhB,OAAOhB,QAAwBA,QAAQ;QAC/C;QACA,WAAW;YAAE;YAAQ;YAAS;YAAQ;SAAQ;IAChD;ICXA,MAAMoB,gBAAgB,AAAkB,eAAlB,OAAOhjB,UAA0B,AAAoB,eAApB,OAAOG;IAE9D,MAAM8iB,aAAa,AAAqB,YAArB,OAAOhjB,aAA0BA,aAAa0J,KAAAA;IAmBjE,MAAMuZ,wBAAwBF,iBAC3B,EAACC,cAAc;QAAC;QAAe;QAAgB;KAAK,CAAC,OAAO,CAACA,WAAW,OAAO,IAAI;IAWtF,MAAME,iCAAiC,AAAC,KAEpC,AAA6B,eAA7B,OAAOC,qBAEPhkB,gBAAgBgkB,qBAChB,AAA8B,cAA9B,OAAOhkB,KAAK,aAAa,AAE7B;IAEA,MAAM,eAAS4jB,iBAAiBhjB,OAAO,QAAQ,CAAC,IAAI,IAAI;ICvCxD,qBAAe;QACb,GAAG,4BAAK;QACR,GAAG,aAAQ;IACb;ICAe,SAASqjB,iBAAiBhkB,IAAI,EAAEZ,OAAO;QACpD,OAAO,mBAAWY,MAAM,IAAI,oCAAgC,IAAInD,OAAO,MAAM,CAAC;YAC5E,SAAS,SAASiD,KAAK,EAAE/C,GAAG,EAAEgO,IAAI,EAAEkZ,OAAO;gBACzC,IAAI,mBAAe,IAAI1C,MAAM,QAAQ,CAACzhB,QAAQ;oBAC5C,IAAI,CAAC,MAAM,CAAC/C,KAAK+C,MAAM,QAAQ,CAAC;oBAChC,OAAO;gBACT;gBAEA,OAAOmkB,QAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAElf;YAC5C;QACF,GAAG3F;IACL;ICNA,SAAS8kB,cAActgB,IAAI;QAKzB,OAAO2d,MAAM,QAAQ,CAAC,iBAAiB3d,MAAM,GAAG,CAACxC,CAAAA,QACxCA,AAAa,SAAbA,KAAK,CAAC,EAAE,GAAY,KAAKA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE;IAExD;IASA,SAAS+iB,cAAc5P,GAAG;QACxB,MAAMrQ,MAAM,CAAC;QACb,MAAMQ,OAAO7H,OAAO,IAAI,CAAC0X;QACzB,IAAIjS;QACJ,MAAMmB,MAAMiB,KAAK,MAAM;QACvB,IAAI3H;QACJ,IAAKuF,IAAI,GAAGA,IAAImB,KAAKnB,IAAK;YACxBvF,MAAM2H,IAAI,CAACpC,EAAE;YACb4B,GAAG,CAACnH,IAAI,GAAGwX,GAAG,CAACxX,IAAI;QACrB;QACA,OAAOmH;IACT;IASA,SAASkgB,eAAenC,QAAQ;QAC9B,SAASoC,UAAUtZ,IAAI,EAAEjL,KAAK,EAAEkK,MAAM,EAAE9I,KAAK;YAC3C,IAAI0C,OAAOmH,IAAI,CAAC7J,QAAQ;YAExB,IAAI0C,AAAS,gBAATA,MAAsB,OAAO;YAEjC,MAAM0gB,eAAexhB,OAAO,QAAQ,CAAC,CAACc;YACtC,MAAM2gB,SAASrjB,SAAS6J,KAAK,MAAM;YACnCnH,OAAO,CAACA,QAAQ2d,MAAM,OAAO,CAACvX,UAAUA,OAAO,MAAM,GAAGpG;YAExD,IAAI2gB,QAAQ;gBACV,IAAIhD,MAAM,UAAU,CAACvX,QAAQpG,OAC3BoG,MAAM,CAACpG,KAAK,GAAG;oBAACoG,MAAM,CAACpG,KAAK;oBAAE9D;iBAAM;qBAEpCkK,MAAM,CAACpG,KAAK,GAAG9D;gBAGjB,OAAO,CAACwkB;YACV;YAEA,IAAI,CAACta,MAAM,CAACpG,KAAK,IAAI,CAAC2d,MAAM,QAAQ,CAACvX,MAAM,CAACpG,KAAK,GAC/CoG,MAAM,CAACpG,KAAK,GAAG,EAAE;YAGnB,MAAMvG,SAASgnB,UAAUtZ,MAAMjL,OAAOkK,MAAM,CAACpG,KAAK,EAAE1C;YAEpD,IAAI7D,UAAUkkB,MAAM,OAAO,CAACvX,MAAM,CAACpG,KAAK,GACtCoG,MAAM,CAACpG,KAAK,GAAGugB,cAAcna,MAAM,CAACpG,KAAK;YAG3C,OAAO,CAAC0gB;QACV;QAEA,IAAI/C,MAAM,UAAU,CAACU,aAAaV,MAAM,UAAU,CAACU,SAAS,OAAO,GAAG;YACpE,MAAM/d,MAAM,CAAC;YAEbqd,MAAM,YAAY,CAACU,UAAU,CAACre,MAAM9D;gBAClCukB,UAAUH,cAActgB,OAAO9D,OAAOoE,KAAK;YAC7C;YAEA,OAAOA;QACT;QAEA,OAAO;IACT;IAEA,+BAAekgB;IC1Ef,SAASI,gBAAgBC,QAAQ,EAAE3M,MAAM,EAAEmL,OAAO;QAChD,IAAI1B,MAAM,QAAQ,CAACkD,WACjB,IAAI;YACD3M,CAAAA,UAAUpW,KAAK,KAAK,AAAD,EAAG+iB;YACvB,OAAOlD,MAAM,IAAI,CAACkD;QACpB,EAAE,OAAOC,GAAG;YACV,IAAIA,AAAW,kBAAXA,EAAE,IAAI,EACR,MAAMA;QAEV;QAGF,OAAO,AAACzB,CAAAA,WAAWvhB,KAAK,SAAS,AAAD,EAAG+iB;IACrC;IAEA,MAAM,oBAAW;QAEf,cAAc;QAEd,SAAS;YAAC;YAAO;YAAQ;SAAQ;QAEjC,kBAAkB;YAAC,SAA0BzkB,IAAI,EAAEmK,OAAO;gBACxD,MAAMyB,cAAczB,QAAQ,cAAc,MAAM;gBAChD,MAAMwa,qBAAqB/Y,YAAY,OAAO,CAAC,sBAAsB;gBACrE,MAAMgZ,kBAAkBrD,MAAM,QAAQ,CAACvhB;gBAEvC,IAAI4kB,mBAAmBrD,MAAM,UAAU,CAACvhB,OACtCA,OAAO,IAAIoL,SAASpL;gBAGtB,MAAM6kB,aAAatD,MAAM,UAAU,CAACvhB;gBAEpC,IAAI6kB,YACF,OAAOF,qBAAqBjjB,KAAK,SAAS,CAAC,uBAAe1B,SAASA;gBAGrE,IAAIuhB,MAAM,aAAa,CAACvhB,SACtBuhB,MAAM,QAAQ,CAACvhB,SACfuhB,MAAM,QAAQ,CAACvhB,SACfuhB,MAAM,MAAM,CAACvhB,SACbuhB,MAAM,MAAM,CAACvhB,SACbuhB,MAAM,gBAAgB,CAACvhB,OAEvB,OAAOA;gBAET,IAAIuhB,MAAM,iBAAiB,CAACvhB,OAC1B,OAAOA,KAAK,MAAM;gBAEpB,IAAIuhB,MAAM,iBAAiB,CAACvhB,OAAO;oBACjCmK,QAAQ,cAAc,CAAC,mDAAmD;oBAC1E,OAAOnK,KAAK,QAAQ;gBACtB;gBAEA,IAAI8kB;gBAEJ,IAAIF,iBAAiB;oBACnB,IAAIhZ,YAAY,OAAO,CAAC,uCAAuC,IAC7D,OAAOoY,iBAAiBhkB,MAAM,IAAI,CAAC,cAAc,EAAE,QAAQ;oBAG7D,IAAI,AAAC8kB,CAAAA,aAAavD,MAAM,UAAU,CAACvhB,KAAI,KAAM4L,YAAY,OAAO,CAAC,yBAAyB,IAAI;wBAC5F,MAAMmZ,YAAY,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;wBAE/C,OAAO,mBACLD,aAAa;4BAAC,WAAW9kB;wBAAI,IAAIA,MACjC+kB,aAAa,IAAIA,aACjB,IAAI,CAAC,cAAc;oBAEvB;gBACF;gBAEA,IAAIH,mBAAmBD,oBAAqB;oBAC1Cxa,QAAQ,cAAc,CAAC,oBAAoB;oBAC3C,OAAOqa,gBAAgBxkB;gBACzB;gBAEA,OAAOA;YACT;SAAE;QAEF,mBAAmB;YAAC,SAA2BA,IAAI;gBACjD,MAAMglB,eAAe,IAAI,CAAC,YAAY,IAAI,kBAAS,YAAY;gBAC/D,MAAMC,oBAAoBD,gBAAgBA,aAAa,iBAAiB;gBACxE,MAAME,gBAAgB,AAAsB,WAAtB,IAAI,CAAC,YAAY;gBAEvC,IAAI3D,MAAM,UAAU,CAACvhB,SAASuhB,MAAM,gBAAgB,CAACvhB,OACnD,OAAOA;gBAGT,IAAIA,QAAQuhB,MAAM,QAAQ,CAACvhB,SAAU,CAACilB,qBAAqB,CAAC,IAAI,CAAC,YAAY,IAAKC,aAAY,GAAI;oBAChG,MAAMC,oBAAoBH,gBAAgBA,aAAa,iBAAiB;oBACxE,MAAMI,oBAAoB,CAACD,qBAAqBD;oBAEhD,IAAI;wBACF,OAAOxjB,KAAK,KAAK,CAAC1B;oBACpB,EAAE,OAAO0kB,GAAG;wBACV,IAAIU,mBAAmB;4BACrB,IAAIV,AAAW,kBAAXA,EAAE,IAAI,EACR,MAAMhC,WAAW,IAAI,CAACgC,GAAGhC,WAAW,gBAAgB,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ;4BAEjF,MAAMgC;wBACR;oBACF;gBACF;gBAEA,OAAO1kB;YACT;SAAE;QAMF,SAAS;QAET,gBAAgB;QAChB,gBAAgB;QAEhB,kBAAkB;QAClB,eAAe;QAEf,KAAK;YACH,UAAU,6BAAyB;YACnC,MAAM,yBAAqB;QAC7B;QAEA,gBAAgB,SAAwBqlB,MAAM;YAC5C,OAAOA,UAAU,OAAOA,SAAS;QACnC;QAEA,SAAS;YACP,QAAQ;gBACN,QAAU;gBACV,gBAAgB/a,KAAAA;YAClB;QACF;IACF;IAEAiX,MAAM,OAAO,CAAC;QAAC;QAAU;QAAO;QAAQ;QAAQ;QAAO;KAAQ,EAAE,CAAC9Z;QAChE,kBAAS,OAAO,CAACA,OAAO,GAAG,CAAC;IAC9B;IAEA,qBAAe;IC1Jf,MAAM6d,oBAAoB/D,MAAM,WAAW,CAAC;QAC1C;QAAO;QAAiB;QAAkB;QAAgB;QAC1D;QAAW;QAAQ;QAAQ;QAAqB;QAChD;QAAiB;QAAY;QAAgB;QAC7C;QAAW;QAAe;KAC3B;IAgBD,qBAAegE,CAAAA;QACb,MAAM3b,SAAS,CAAC;QAChB,IAAI7M;QACJ,IAAIoG;QACJ,IAAIb;QAEJijB,cAAcA,WAAW,KAAK,CAAC,MAAM,OAAO,CAAC,SAAgBC,IAAI;YAC/DljB,IAAIkjB,KAAK,OAAO,CAAC;YACjBzoB,MAAMyoB,KAAK,SAAS,CAAC,GAAGljB,GAAG,IAAI,GAAG,WAAW;YAC7Ca,MAAMqiB,KAAK,SAAS,CAACljB,IAAI,GAAG,IAAI;YAEhC,IAAI,CAACvF,OAAQ6M,MAAM,CAAC7M,IAAI,IAAIuoB,iBAAiB,CAACvoB,IAAI,EAChD;YAGF,IAAIA,AAAQ,iBAARA;gBACF,IAAI6M,MAAM,CAAC7M,IAAI,EACb6M,MAAM,CAAC7M,IAAI,CAAC,IAAI,CAACoG;qBAEjByG,MAAM,CAAC7M,IAAI,GAAG;oBAACoG;iBAAI;mBAGrByG,MAAM,CAAC7M,IAAI,GAAG6M,MAAM,CAAC7M,IAAI,GAAG6M,MAAM,CAAC7M,IAAI,GAAG,OAAOoG,MAAMA;QAE3D;QAEA,OAAOyG;IACT;ICjDA,MAAM6b,aAAaxJ,OAAO;IAE1B,SAASyJ,gBAAgBrb,MAAM;QAC7B,OAAOA,UAAUE,OAAOF,QAAQ,IAAI,GAAG,WAAW;IACpD;IAEA,SAASsb,eAAe7lB,KAAK;QAC3B,IAAIA,AAAU,UAAVA,SAAmBA,AAAS,QAATA,OACrB,OAAOA;QAGT,OAAOyhB,MAAM,OAAO,CAACzhB,SAASA,MAAM,GAAG,CAAC6lB,kBAAkBpb,OAAOzK;IACnE;IAEA,SAAS8lB,YAAYjhB,GAAG;QACtB,MAAMkhB,SAAShpB,OAAO,MAAM,CAAC;QAC7B,MAAMipB,WAAW;QACjB,IAAI1kB;QAEJ,MAAQA,QAAQ0kB,SAAS,IAAI,CAACnhB,KAC5BkhB,MAAM,CAACzkB,KAAK,CAAC,EAAE,CAAC,GAAGA,KAAK,CAAC,EAAE;QAG7B,OAAOykB;IACT;IAEA,MAAME,oBAAoB,CAACphB,MAAQ,iCAAiC,IAAI,CAACA,IAAI,IAAI;IAEjF,SAASqhB,iBAAiB1I,OAAO,EAAExd,KAAK,EAAEuK,MAAM,EAAE+T,MAAM,EAAE6H,kBAAkB;QAC1E,IAAI1E,MAAM,UAAU,CAACnD,SACnB,OAAOA,OAAO,IAAI,CAAC,IAAI,EAAEte,OAAOuK;QAGlC,IAAI4b,oBACFnmB,QAAQuK;QAGV,IAAI,CAACkX,MAAM,QAAQ,CAACzhB,QAAQ;QAE5B,IAAIyhB,MAAM,QAAQ,CAACnD,SACjB,OAAOte,AAA0B,OAA1BA,MAAM,OAAO,CAACse;QAGvB,IAAImD,MAAM,QAAQ,CAACnD,SACjB,OAAOA,OAAO,IAAI,CAACte;IAEvB;IAEA,SAASomB,aAAa7b,MAAM;QAC1B,OAAOA,OAAO,IAAI,GACf,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAACiE,GAAG+E,MAAM1O,MAC3C0O,KAAK,WAAW,KAAK1O;IAElC;IAEA,SAASwhB,eAAejiB,GAAG,EAAEmG,MAAM;QACjC,MAAM+b,eAAe7E,MAAM,WAAW,CAAC,MAAMlX;QAE7C;YAAC;YAAO;YAAO;SAAM,CAAC,OAAO,CAACgc,CAAAA;YAC5BxpB,OAAO,cAAc,CAACqH,KAAKmiB,aAAaD,cAAc;gBACpD,OAAO,SAASrgB,IAAI,EAAEC,IAAI,EAAEC,IAAI;oBAC9B,OAAO,IAAI,CAACogB,WAAW,CAAC,IAAI,CAAC,IAAI,EAAEhc,QAAQtE,MAAMC,MAAMC;gBACzD;gBACA,cAAc;YAChB;QACF;IACF;IAEA,MAAM;QACJ,YAAYkE,OAAO,CAAE;YACnBA,WAAW,IAAI,CAAC,GAAG,CAACA;QACtB;QAEA,IAAIE,MAAM,EAAEic,cAAc,EAAEC,OAAO,EAAE;YACnC,MAAMxmB,QAAO,IAAI;YAEjB,SAASymB,UAAUC,MAAM,EAAEC,OAAO,EAAEC,QAAQ;gBAC1C,MAAMC,UAAUlB,gBAAgBgB;gBAEhC,IAAI,CAACE,SACH,MAAM,IAAI1mB,MAAM;gBAGlB,MAAMnD,MAAMwkB,MAAM,OAAO,CAACxhB,OAAM6mB;gBAEhC,IAAG,CAAC7pB,OAAOgD,AAAcuK,KAAAA,MAAdvK,KAAI,CAAChD,IAAI,IAAkB4pB,AAAa,SAAbA,YAAsBA,AAAarc,KAAAA,MAAbqc,YAA0B5mB,AAAc,UAAdA,KAAI,CAAChD,IAAI,EAC7FgD,KAAI,CAAChD,OAAO2pB,QAAQ,GAAGf,eAAec;YAE1C;YAEA,MAAMI,aAAa,CAAC1c,SAASwc,WAC3BpF,MAAM,OAAO,CAACpX,SAAS,CAACsc,QAAQC,UAAYF,UAAUC,QAAQC,SAASC;YAEzE,IAAIpF,MAAM,aAAa,CAAClX,WAAWA,kBAAkB,IAAI,CAAC,WAAW,EACnEwc,WAAWxc,QAAQic;iBACd,IAAG/E,MAAM,QAAQ,CAAClX,WAAYA,CAAAA,SAASA,OAAO,IAAI,EAAC,KAAM,CAAC0b,kBAAkB1b,SACjFwc,WAAWC,aAAazc,SAASic;iBAC5B,IAAI/E,MAAM,SAAS,CAAClX,SACzB,KAAK,MAAM,CAACtN,KAAK+C,MAAM,IAAIuK,OAAO,OAAO,GACvCmc,UAAU1mB,OAAO/C,KAAKwpB;iBAGxBlc,AAAU,QAAVA,UAAkBmc,UAAUF,gBAAgBjc,QAAQkc;YAGtD,OAAO,IAAI;QACb;QAEA,IAAIlc,MAAM,EAAEyN,MAAM,EAAE;YAClBzN,SAASqb,gBAAgBrb;YAEzB,IAAIA,QAAQ;gBACV,MAAMtN,MAAMwkB,MAAM,OAAO,CAAC,IAAI,EAAElX;gBAEhC,IAAItN,KAAK;oBACP,MAAM+C,QAAQ,IAAI,CAAC/C,IAAI;oBAEvB,IAAI,CAAC+a,QACH,OAAOhY;oBAGT,IAAIgY,AAAW,SAAXA,QACF,OAAO8N,YAAY9lB;oBAGrB,IAAIyhB,MAAM,UAAU,CAACzJ,SACnB,OAAOA,OAAO,IAAI,CAAC,IAAI,EAAEhY,OAAO/C;oBAGlC,IAAIwkB,MAAM,QAAQ,CAACzJ,SACjB,OAAOA,OAAO,IAAI,CAAChY;oBAGrB,MAAM,IAAIsG,UAAU;gBACtB;YACF;QACF;QAEA,IAAIiE,MAAM,EAAE0c,OAAO,EAAE;YACnB1c,SAASqb,gBAAgBrb;YAEzB,IAAIA,QAAQ;gBACV,MAAMtN,MAAMwkB,MAAM,OAAO,CAAC,IAAI,EAAElX;gBAEhC,OAAO,CAAC,CAAEtN,CAAAA,OAAO,AAAcuN,KAAAA,MAAd,IAAI,CAACvN,IAAI,IAAmB,EAACgqB,WAAWf,iBAAiB,IAAI,EAAE,IAAI,CAACjpB,IAAI,EAAEA,KAAKgqB,QAAO,CAAC;YAC1G;YAEA,OAAO;QACT;QAEA,OAAO1c,MAAM,EAAE0c,OAAO,EAAE;YACtB,MAAMhnB,QAAO,IAAI;YACjB,IAAIinB,UAAU;YAEd,SAASC,aAAaP,OAAO;gBAC3BA,UAAUhB,gBAAgBgB;gBAE1B,IAAIA,SAAS;oBACX,MAAM3pB,MAAMwkB,MAAM,OAAO,CAACxhB,OAAM2mB;oBAEhC,IAAI3pB,OAAQ,EAACgqB,WAAWf,iBAAiBjmB,OAAMA,KAAI,CAAChD,IAAI,EAAEA,KAAKgqB,QAAO,GAAI;wBACxE,OAAOhnB,KAAI,CAAChD,IAAI;wBAEhBiqB,UAAU;oBACZ;gBACF;YACF;YAEA,IAAIzF,MAAM,OAAO,CAAClX,SAChBA,OAAO,OAAO,CAAC4c;iBAEfA,aAAa5c;YAGf,OAAO2c;QACT;QAEA,MAAMD,OAAO,EAAE;YACb,MAAMriB,OAAO7H,OAAO,IAAI,CAAC,IAAI;YAC7B,IAAIyF,IAAIoC,KAAK,MAAM;YACnB,IAAIsiB,UAAU;YAEd,MAAO1kB,IAAK;gBACV,MAAMvF,MAAM2H,IAAI,CAACpC,EAAE;gBACnB,IAAG,CAACykB,WAAWf,iBAAiB,IAAI,EAAE,IAAI,CAACjpB,IAAI,EAAEA,KAAKgqB,SAAS,OAAO;oBACpE,OAAO,IAAI,CAAChqB,IAAI;oBAChBiqB,UAAU;gBACZ;YACF;YAEA,OAAOA;QACT;QAEA,UAAU/jB,MAAM,EAAE;YAChB,MAAMlD,QAAO,IAAI;YACjB,MAAMoK,UAAU,CAAC;YAEjBoX,MAAM,OAAO,CAAC,IAAI,EAAE,CAACzhB,OAAOuK;gBAC1B,MAAMtN,MAAMwkB,MAAM,OAAO,CAACpX,SAASE;gBAEnC,IAAItN,KAAK;oBACPgD,KAAI,CAAChD,IAAI,GAAG4oB,eAAe7lB;oBAC3B,OAAOC,KAAI,CAACsK,OAAO;oBACnB;gBACF;gBAEA,MAAM6c,aAAajkB,SAASijB,aAAa7b,UAAUE,OAAOF,QAAQ,IAAI;gBAEtE,IAAI6c,eAAe7c,QACjB,OAAOtK,KAAI,CAACsK,OAAO;gBAGrBtK,KAAI,CAACmnB,WAAW,GAAGvB,eAAe7lB;gBAElCqK,OAAO,CAAC+c,WAAW,GAAG;YACxB;YAEA,OAAO,IAAI;QACb;QAEA,OAAO,GAAGC,OAAO,EAAE;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,KAAKA;QAC1C;QAEA,OAAOC,SAAS,EAAE;YAChB,MAAMljB,MAAMrH,OAAO,MAAM,CAAC;YAE1B0kB,MAAM,OAAO,CAAC,IAAI,EAAE,CAACzhB,OAAOuK;gBACjB,QAATvK,SAAiBA,AAAU,UAAVA,SAAoBoE,CAAAA,GAAG,CAACmG,OAAO,GAAG+c,aAAa7F,MAAM,OAAO,CAACzhB,SAASA,MAAM,IAAI,CAAC,QAAQA,KAAI;YAChH;YAEA,OAAOoE;QACT;QAEA,CAAC+X,OAAO,QAAQ,CAAC,GAAG;YAClB,OAAOpf,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAACof,OAAO,QAAQ,CAAC;QACvD;QAEA,WAAW;YACT,OAAOpf,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAACwN,QAAQvK,MAAM,GAAKuK,SAAS,OAAOvK,OAAO,IAAI,CAAC;QAC5F;QAEA,IAAI,CAACmc,OAAO,WAAW,CAAC,GAAG;YACzB,OAAO;QACT;QAEA,OAAO,KAAKZ,KAAK,EAAE;YACjB,OAAOA,iBAAiB,IAAI,GAAGA,QAAQ,IAAI,IAAI,CAACA;QAClD;QAEA,OAAO,OAAOgM,KAAK,EAAE,GAAGF,OAAO,EAAE;YAC/B,MAAMG,WAAW,IAAI,IAAI,CAACD;YAE1BF,QAAQ,OAAO,CAAC,CAACnd,SAAWsd,SAAS,GAAG,CAACtd;YAEzC,OAAOsd;QACT;QAEA,OAAO,SAASjd,MAAM,EAAE;YACtB,MAAMkd,YAAY,IAAI,CAAC9B,WAAW,GAAI,IAAI,CAACA,WAAW,GAAG;gBACvD,WAAW,CAAC;YACd;YAEA,MAAM+B,YAAYD,UAAU,SAAS;YACrC,MAAMvL,YAAY,IAAI,CAAC,SAAS;YAEhC,SAASyL,eAAef,OAAO;gBAC7B,MAAME,UAAUlB,gBAAgBgB;gBAEhC,IAAI,CAACc,SAAS,CAACZ,QAAQ,EAAE;oBACvBT,eAAenK,WAAW0K;oBAC1Bc,SAAS,CAACZ,QAAQ,GAAG;gBACvB;YACF;YAEArF,MAAM,OAAO,CAAClX,UAAUA,OAAO,OAAO,CAACod,kBAAkBA,eAAepd;YAExE,OAAO,IAAI;QACb;IACF;IAEA,0BAAa,QAAQ,CAAC;QAAC;QAAgB;QAAkB;QAAU;QAAmB;QAAc;KAAgB;IAGpHkX,MAAM,iBAAiB,CAAC,0BAAa,SAAS,EAAE,CAAC,EAACzhB,KAAK,EAAC,EAAE/C;QACxD,IAAI2qB,SAAS3qB,GAAG,CAAC,EAAE,CAAC,WAAW,KAAKA,IAAI,KAAK,CAAC;QAC9C,OAAO;YACL,KAAK,IAAM+C;YACX,KAAI6nB,WAAW;gBACb,IAAI,CAACD,OAAO,GAAGC;YACjB;QACF;IACF;IAEApG,MAAM,aAAa,CAAC;IAEpB,qBAAe;IC/RA,SAASqG,cAAcC,GAAG,EAAEjhB,QAAQ;QACjD,MAAM0a,SAAS,IAAI,IAAI;QACvB,MAAMhE,UAAU1W,YAAY0a;QAC5B,MAAMnX,UAAU2d,aAAa,IAAI,CAACxK,QAAQ,OAAO;QACjD,IAAItd,OAAOsd,QAAQ,IAAI;QAEvBiE,MAAM,OAAO,CAACsG,KAAK,SAAmBvqB,EAAE;YACtC0C,OAAO1C,GAAG,IAAI,CAACgkB,QAAQthB,MAAMmK,QAAQ,SAAS,IAAIvD,WAAWA,SAAS,MAAM,GAAG0D,KAAAA;QACjF;QAEAH,QAAQ,SAAS;QAEjB,OAAOnK;IACT;ICzBe,SAAS+nB,SAASjoB,KAAK;QACpC,OAAO,CAAC,CAAEA,CAAAA,SAASA,MAAM,UAAU,AAAD;IACpC;ICUA,SAASkoB,cAAc/nB,OAAO,EAAEqhB,MAAM,EAAEvZ,OAAO;QAE7C2a,WAAW,IAAI,CAAC,IAAI,EAAEziB,AAAW,QAAXA,UAAkB,aAAaA,SAASyiB,WAAW,YAAY,EAAEpB,QAAQvZ;QAC/F,IAAI,CAAC,IAAI,GAAG;IACd;IAEAwZ,MAAM,QAAQ,CAACyG,eAAetF,YAAY;QACxC,YAAY;IACd;IAEA,6BAAesF;ICXA,SAASC,OAAOC,OAAO,EAAEC,MAAM,EAAEvhB,QAAQ;QACtD,MAAMwhB,iBAAiBxhB,SAAS,MAAM,CAAC,cAAc;QACrD,IAAI,CAACA,SAAS,MAAM,IAAI,CAACwhB,kBAAkBA,eAAexhB,SAAS,MAAM,GACvEshB,QAAQthB;aAERuhB,OAAO,IAAIzF,WACT,qCAAqC9b,SAAS,MAAM,EACpD;YAAC8b,WAAW,eAAe;YAAEA,WAAW,gBAAgB;SAAC,CAACngB,KAAK,KAAK,CAACqE,SAAS,MAAM,GAAG,OAAO,EAAE,EAChGA,SAAS,MAAM,EACfA,SAAS,OAAO,EAChBA;IAGN;ICjBe,SAASyhB,cAAcrjB,GAAG;QAIvC,OAAO,8BAA8B,IAAI,CAACA;IAC5C;ICJe,SAASsjB,YAAYC,OAAO,EAAEC,WAAW;QACtD,OAAOA,cACHD,QAAQ,OAAO,CAAC,UAAU,MAAM,MAAMC,YAAY,OAAO,CAAC,QAAQ,MAClED;IACN;ICCe,SAASE,cAAcF,OAAO,EAAEG,YAAY;QACzD,IAAIH,WAAW,CAACF,cAAcK,eAC5B,OAAOJ,YAAYC,SAASG;QAE9B,OAAOA;IACT;;;;;;;ICpBO,MAAMC,UAAU;ICER,SAASC,cAAc5jB,GAAG;QACvC,MAAM5D,QAAQ,4BAA4B,IAAI,CAAC4D;QAC/C,OAAO5D,SAASA,KAAK,CAAC,EAAE,IAAI;IAC9B;ICCA,MAAMynB,mBAAmB;IAYV,SAASC,YAAYC,GAAG,EAAEC,MAAM,EAAE5pB,OAAO;QACtD,MAAMkjB,QAAQljB,WAAWA,QAAQ,IAAI,IAAI,yBAAqB;QAC9D,MAAMwI,WAAWghB,cAAcG;QAE/B,IAAIC,AAAW1e,KAAAA,MAAX0e,UAAwB1G,OAC1B0G,SAAS;QAGX,IAAIphB,AAAa,WAAbA,UAAqB;YACvBmhB,MAAMnhB,SAAS,MAAM,GAAGmhB,IAAI,KAAK,CAACnhB,SAAS,MAAM,GAAG,KAAKmhB;YAEzD,MAAM3nB,QAAQynB,iBAAiB,IAAI,CAACE;YAEpC,IAAI,CAAC3nB,OACH,MAAM,IAAIshB,WAAW,eAAeA,WAAW,eAAe;YAGhE,MAAMzX,OAAO7J,KAAK,CAAC,EAAE;YACrB,MAAM6nB,WAAW7nB,KAAK,CAAC,EAAE;YACzB,MAAM8nB,OAAO9nB,KAAK,CAAC,EAAE;YACrB,MAAM8G,SAAS1I,OAAO,IAAI,CAAC2pB,mBAAmBD,OAAOD,WAAW,WAAW;YAE3E,IAAID,QAAQ;gBACV,IAAI,CAAC1G,OACH,MAAM,IAAII,WAAW,yBAAyBA,WAAW,eAAe;gBAG1E,OAAO,IAAIJ,MAAM;oBAACpa;iBAAO,EAAE;oBAAC,MAAM+C;gBAAI;YACxC;YAEA,OAAO/C;QACT;QAEA,MAAM,IAAIwa,WAAW,0BAA0B9a,UAAU8a,WAAW,eAAe;IACrF;;IC/CA,MAAM0G,aAAanN,OAAO;IAE1B,MAAMoN,6BAA6B,0BAAgB;QACjD,YAAYjqB,OAAO,CAAE;YACnBA,UAAUmiB,MAAM,YAAY,CAACniB,SAAS;gBACpC,SAAS;gBACT,WAAW;gBACX,cAAc;gBACd,YAAY;gBACZ,WAAW;gBACX,cAAc;YAChB,GAAG,MAAM,CAAC+E,MAAMS,SACP,CAAC2c,MAAM,WAAW,CAAC3c,MAAM,CAACT,KAAK;YAGxC,KAAK,CAAC;gBACJ,uBAAuB/E,QAAQ,SAAS;YAC1C;YAEA,MAAMmoB,YAAY,IAAI,CAAC6B,WAAW,GAAG;gBACnC,YAAYhqB,QAAQ,UAAU;gBAC9B,WAAWA,QAAQ,SAAS;gBAC5B,SAASA,QAAQ,OAAO;gBACxB,cAAcA,QAAQ,YAAY;gBAClC,WAAW;gBACX,YAAY;gBACZ,qBAAqB;gBACrB,IAAI2D,KAAK,GAAG;gBACZ,OAAO;gBACP,gBAAgB;YAClB;YAEA,IAAI,CAAC,EAAE,CAAC,eAAe+C,CAAAA;gBACrB,IAAIA,AAAU,eAAVA,OACF;oBAAA,IAAI,CAACyhB,UAAU,UAAU,EACvBA,UAAU,UAAU,GAAG;gBACzB;YAEJ;QACF;QAEA,MAAMjH,IAAI,EAAE;YACV,MAAMiH,YAAY,IAAI,CAAC6B,WAAW;YAElC,IAAI7B,UAAU,cAAc,EAC1BA,UAAU,cAAc;YAG1B,OAAO,KAAK,CAAC,MAAMjH;QACrB;QAEA,WAAWvH,KAAK,EAAEhS,QAAQ,EAAE7J,QAAQ,EAAE;YACpC,MAAMqqB,YAAY,IAAI,CAAC6B,WAAW;YAClC,MAAME,UAAU/B,UAAU,OAAO;YAEjC,MAAMgC,wBAAwB,IAAI,CAAC,qBAAqB;YAExD,MAAMC,aAAajC,UAAU,UAAU;YAEvC,MAAMkC,UAAU,OAAOD;YACvB,MAAME,iBAAkBJ,UAAUG;YAClC,MAAME,eAAepC,AAA2B,UAA3BA,UAAU,YAAY,GAAahlB,KAAK,GAAG,CAACglB,UAAU,YAAY,EAAEmC,AAAiB,OAAjBA,kBAAyB;YAElH,MAAME,YAAY,CAACC,QAAQC;gBACzB,MAAMC,QAAQvqB,OAAO,UAAU,CAACqqB;gBAChCtC,UAAU,SAAS,IAAIwC;gBACvBxC,UAAU,KAAK,IAAIwC;gBAEnBxC,UAAU,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,YAAYA,UAAU,SAAS;gBAEjE,IAAI,IAAI,CAAC,IAAI,CAACsC,SACZpsB,QAAQ,QAAQ,CAACqsB;qBAEjBvC,UAAU,cAAc,GAAG;oBACzBA,UAAU,cAAc,GAAG;oBAC3B9pB,QAAQ,QAAQ,CAACqsB;gBACnB;YAEJ;YAEA,MAAME,iBAAiB,CAACH,QAAQC;gBAC9B,MAAMG,YAAYzqB,OAAO,UAAU,CAACqqB;gBACpC,IAAIK,iBAAiB;gBACrB,IAAIC,eAAeZ;gBACnB,IAAIa;gBACJ,IAAIC,SAAS;gBAEb,IAAIf,SAAS;oBACX,MAAMgB,MAAMvnB,KAAK,GAAG;oBAEpB,IAAI,CAACwkB,UAAU,EAAE,IAAI,AAAC8C,CAAAA,SAAUC,MAAM/C,UAAU,EAAE,KAAMiC,YAAY;wBAClEjC,UAAU,EAAE,GAAG+C;wBACfF,YAAYV,iBAAiBnC,UAAU,KAAK;wBAC5CA,UAAU,KAAK,GAAG6C,YAAY,IAAI,CAACA,YAAY;wBAC/CC,SAAS;oBACX;oBAEAD,YAAYV,iBAAiBnC,UAAU,KAAK;gBAC9C;gBAEA,IAAI+B,SAAS;oBACX,IAAIc,aAAa,GAEf,OAAO1sB,WAAW;wBAChBosB,UAAU,MAAMD;oBAClB,GAAGL,aAAaa;oBAGlB,IAAID,YAAYD,cACdA,eAAeC;gBAEnB;gBAEA,IAAID,gBAAgBF,YAAYE,gBAAgB,AAACF,YAAYE,eAAgBR,cAAc;oBACzFO,iBAAiBL,OAAO,QAAQ,CAACM;oBACjCN,SAASA,OAAO,QAAQ,CAAC,GAAGM;gBAC9B;gBAEAP,UAAUC,QAAQK,iBAAiB;oBACjCzsB,QAAQ,QAAQ,CAACqsB,WAAW,MAAMI;gBACpC,IAAIJ;YACN;YAEAE,eAAejR,OAAO,SAASwR,mBAAmBntB,GAAG,EAAEysB,MAAM;gBAC3D,IAAIzsB,KACF,OAAOF,SAASE;gBAGlB,IAAIysB,QACFG,eAAeH,QAAQU;qBAEvBrtB,SAAS;YAEb;QACF;IACF;IAEA,qCAAemsB;;IC9If,MAAM,EAACmB,aAAa,EAAC,GAAGvO;IAExB,MAAM,oBAAW,gBAAiBwO,IAAI;QACpC,IAAIA,KAAK,MAAM,EACb,OAAOA,KAAK,MAAM;aACb,IAAIA,KAAK,WAAW,EACzB,MAAM,MAAMA,KAAK,WAAW;aACvB,IAAIA,IAAI,CAACD,cAAc,EAC5B,OAAOC,IAAI,CAACD,cAAc;aAE1B,MAAMC;IAEV;IAEA,iBAAe;ICTf,MAAMC,oBAAoBnJ,MAAM,QAAQ,CAAC,WAAW,GAAG;IAEvD,MAAMoJ,cAAc,AAAuB,cAAvB,OAAOC,cAA6B,IAAIA,gBAAgB,IAAI,0BAAgB;IAEhG,MAAMC,OAAO;IACb,MAAMC,aAAaH,YAAY,MAAM,CAACE;IACtC,MAAME,mBAAmB;IAEzB,MAAMC;QACJ,YAAYpnB,IAAI,EAAE9D,KAAK,CAAE;YACvB,MAAM,EAACmrB,UAAU,EAAC,GAAG,IAAI,CAAC,WAAW;YACrC,MAAMC,gBAAgB3J,MAAM,QAAQ,CAACzhB;YAErC,IAAIqK,UAAU,CAAC,sCAAsC,EAAE8gB,WAAWrnB,MAAM,CAAC,EACvE,CAACsnB,iBAAiBprB,MAAM,IAAI,GAAG,CAAC,YAAY,EAAEmrB,WAAWnrB,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,KACzE+qB,MAAM;YAET,IAAIK,eACFprB,QAAQ6qB,YAAY,MAAM,CAACpgB,OAAOzK,OAAO,OAAO,CAAC,gBAAgB+qB;iBAEjE1gB,WAAW,CAAC,cAAc,EAAErK,MAAM,IAAI,IAAI,6BAA6B+qB,MAAM;YAG/E,IAAI,CAAC,OAAO,GAAGF,YAAY,MAAM,CAACxgB,UAAU0gB;YAE5C,IAAI,CAAC,aAAa,GAAGK,gBAAgBprB,MAAM,UAAU,GAAGA,MAAM,IAAI;YAElE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAGirB;YAE3D,IAAI,CAAC,IAAI,GAAGnnB;YACZ,IAAI,CAAC,KAAK,GAAG9D;QACf;QAEA,OAAO,SAAQ;YACb,MAAM,IAAI,CAAC,OAAO;YAElB,MAAM,EAACA,KAAK,EAAC,GAAG,IAAI;YAEpB,IAAGyhB,MAAM,YAAY,CAACzhB,QACpB,MAAMA;iBAEN,OAAOqrB,SAASrrB;YAGlB,MAAMgrB;QACR;QAEA,OAAO,WAAWlnB,IAAI,EAAE;YACpB,OAAO2G,OAAO3G,MAAM,OAAO,CAAC,YAAY,CAACxC,QAAW;oBAClD,MAAO;oBACP,MAAO;oBACP,KAAM;gBACR,EAAC,CAACA,MAAM;QACZ;IACF;IAEA,MAAMgqB,mBAAmB,CAACC,MAAMC,gBAAgBlsB;QAC9C,MAAM,EACJgX,MAAM,oBAAoB,EAC1BkK,OAAO,EAAE,EACTnU,WAAWiK,MAAM,MAAMmL,MAAM,cAAc,CAACjB,MAAMoK,kBAAkB,EACrE,GAAGtrB,WAAW,CAAC;QAEhB,IAAG,CAACmiB,MAAM,UAAU,CAAC8J,OACnB,MAAMjlB,UAAU;QAGlB,IAAI+F,SAAS,MAAM,GAAG,KAAKA,SAAS,MAAM,GAAG,IAC3C,MAAMjM,MAAM;QAGd,MAAMqrB,gBAAgBZ,YAAY,MAAM,CAAC,OAAOxe,WAAW0e;QAC3D,MAAMW,cAAcb,YAAY,MAAM,CAAC,OAAOxe,WAAW,OAAO0e,OAAOA;QACvE,IAAIY,gBAAgBD,YAAY,UAAU;QAE1C,MAAME,QAAQrtB,MAAM,IAAI,CAACgtB,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAACznB,MAAM9D,MAAM;YACzD,MAAM6rB,OAAO,IAAIX,aAAapnB,MAAM9D;YACpC2rB,iBAAiBE,KAAK,IAAI;YAC1B,OAAOA;QACT;QAEAF,iBAAiBF,cAAc,UAAU,GAAGG,MAAM,MAAM;QAExDD,gBAAgBlK,MAAM,cAAc,CAACkK;QAErC,MAAMG,kBAAkB;YACtB,gBAAgB,CAAC,8BAA8B,EAAEzf,UAAU;QAC7D;QAEA,IAAIrJ,OAAO,QAAQ,CAAC2oB,gBAClBG,eAAe,CAAC,iBAAiB,GAAGH;QAGtCH,kBAAkBA,eAAeM;QAEjC,OAAO,8BAAa,CAAC,AAAC;YACpB,KAAI,MAAMD,QAAQD,MAAO;gBACvB,MAAMH;gBACN,OAAOI,KAAK,MAAM;YACpB;YAEA,MAAMH;QACR;IACF;IAEA,iCAAeJ;IC1Gf,MAAMS,kCAAkC,0BAAgB;QACtD,YAAY9S,KAAK,EAAEhS,QAAQ,EAAE7J,QAAQ,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC6b;YACV7b;QACF;QAEA,WAAW6b,KAAK,EAAEhS,QAAQ,EAAE7J,QAAQ,EAAE;YACpC,IAAI6b,AAAiB,MAAjBA,MAAM,MAAM,EAAQ;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;gBAGlC,IAAIA,AAAa,QAAbA,KAAK,CAAC,EAAE,EAAU;oBACpB,MAAM1O,SAAS7K,OAAO,KAAK,CAAC;oBAC5B6K,MAAM,CAAC,EAAE,GAAG;oBACZA,MAAM,CAAC,EAAE,GAAG;oBACZ,IAAI,CAAC,IAAI,CAACA,QAAQtD;gBACpB;YACF;YAEA,IAAI,CAAC,WAAW,CAACgS,OAAOhS,UAAU7J;QACpC;IACF;IAEA,0CAAe2uB;ICzBf,MAAMC,cAAc,CAACxuB,IAAImiB,UAChB8B,MAAM,SAAS,CAACjkB,MAAM,SAAU,GAAG0D,IAAI;YAC5C,MAAMuL,KAAKvL,KAAK,GAAG;YACnB1D,GAAG,KAAK,CAAC,IAAI,EAAE0D,MAAM,IAAI,CAAC,CAAClB;gBACzB,IAAI;oBACF2f,UAAUlT,GAAG,SAASkT,QAAQ3f,UAAUyM,GAAG,MAAMzM;gBACnD,EAAE,OAAO1C,KAAK;oBACZmP,GAAGnP;gBACL;YACF,GAAGmP;QACL,IAAIjP;IAGN,4BAAewuB;ICPf,SAAS,wBAAYC,YAAY,EAAErb,GAAG;QACpCqb,eAAeA,gBAAgB;QAC/B,MAAMhC,QAAQ,IAAI1rB,MAAM0tB;QACxB,MAAMC,aAAa,IAAI3tB,MAAM0tB;QAC7B,IAAIE,OAAO;QACX,IAAIC,OAAO;QACX,IAAIC;QAEJzb,MAAMA,AAAQpG,KAAAA,MAARoG,MAAoBA,MAAM;QAEhC,OAAO,SAAc0b,WAAW;YAC9B,MAAM9B,MAAMvnB,KAAK,GAAG;YAEpB,MAAMspB,YAAYL,UAAU,CAACE,KAAK;YAElC,IAAI,CAACC,eACHA,gBAAgB7B;YAGlBP,KAAK,CAACkC,KAAK,GAAGG;YACdJ,UAAU,CAACC,KAAK,GAAG3B;YAEnB,IAAIhoB,IAAI4pB;YACR,IAAII,aAAa;YAEjB,MAAOhqB,MAAM2pB,KAAM;gBACjBK,cAAcvC,KAAK,CAACznB,IAAI;gBACxBA,KAAQypB;YACV;YAEAE,OAAO,AAACA,CAAAA,OAAO,KAAKF;YAEpB,IAAIE,SAASC,MACXA,OAAO,AAACA,CAAAA,OAAO,KAAKH;YAGtB,IAAIzB,MAAM6B,gBAAgBzb,KACxB;YAGF,MAAM2Z,SAASgC,aAAa/B,MAAM+B;YAElC,OAAOhC,SAAS9nB,KAAK,KAAK,CAAC+pB,AAAa,OAAbA,aAAoBjC,UAAU/f,KAAAA;QAC3D;IACF;IAEA,oBAAe;IChDf,SAASiiB,SAASjvB,EAAE,EAAEkvB,IAAI;QACxB,IAAIC,YAAY;QAChB,IAAIC,YAAY,OAAOF;QACvB,IAAIG;QACJ,IAAIC;QAEJ,MAAMC,SAAS,CAAC7rB,MAAMspB,MAAMvnB,KAAK,GAAG,EAAE;YACpC0pB,YAAYnC;YACZqC,WAAW;YACX,IAAIC,OAAO;gBACTrlB,aAAaqlB;gBACbA,QAAQ;YACV;YACAtvB,GAAG,KAAK,CAAC,MAAM0D;QACjB;QAEA,MAAM8rB,YAAY,CAAC,GAAG9rB;YACpB,MAAMspB,MAAMvnB,KAAK,GAAG;YACpB,MAAMsnB,SAASC,MAAMmC;YACrB,IAAKpC,UAAUqC,WACbG,OAAO7rB,MAAMspB;iBACR;gBACLqC,WAAW3rB;gBACX,IAAI,CAAC4rB,OACHA,QAAQlvB,WAAW;oBACjBkvB,QAAQ;oBACRC,OAAOF;gBACT,GAAGD,YAAYrC;YAEnB;QACF;QAEA,MAAM0C,QAAQ,IAAMJ,YAAYE,OAAOF;QAEvC,OAAO;YAACG;YAAWC;SAAM;IAC3B;IAEA,yBAAeR;ICvCR,MAAMS,uBAAuB,CAACC,UAAUC,kBAAkBV,OAAO,CAAC;QACvE,IAAIW,gBAAgB;QACpB,MAAMC,eAAeC,YAAY,IAAI;QAErC,OAAO,iBAAS3I,CAAAA;YACd,MAAM4I,SAAS5I,EAAE,MAAM;YACvB,MAAM6I,QAAQ7I,EAAE,gBAAgB,GAAGA,EAAE,KAAK,GAAGpa,KAAAA;YAC7C,MAAMkjB,gBAAgBF,SAASH;YAC/B,MAAMM,OAAOL,aAAaI;YAC1B,MAAME,UAAUJ,UAAUC;YAE1BJ,gBAAgBG;YAEhB,MAAMttB,OAAO;gBACXstB;gBACAC;gBACA,UAAUA,QAASD,SAASC,QAASjjB,KAAAA;gBACrC,OAAOkjB;gBACP,MAAMC,OAAOA,OAAOnjB,KAAAA;gBACpB,WAAWmjB,QAAQF,SAASG,UAAU,AAACH,CAAAA,QAAQD,MAAK,IAAKG,OAAOnjB,KAAAA;gBAChE,OAAOoa;gBACP,kBAAkB6I,AAAS,QAATA;gBAClB,CAACL,mBAAmB,aAAa,SAAS,EAAE;YAC9C;YAEAD,SAASjtB;QACX,GAAGwsB;IACL;IAEO,MAAMmB,yBAAyB,CAACJ,OAAOT;QAC5C,MAAMc,mBAAmBL,AAAS,QAATA;QAEzB,OAAO;YAAC,CAACD,SAAWR,SAAS,CAAC,EAAE,CAAC;oBAC/Bc;oBACAL;oBACAD;gBACF;YAAIR,SAAS,CAAC,EAAE;SAAC;IACnB;IAEO,MAAMe,iBAAiB,CAACvwB,KAAO,CAAC,GAAG0D,OAASugB,MAAM,IAAI,CAAC,IAAMjkB,MAAM0D;ICf1E,MAAM8sB,cAAc;QAClB,OAAO,oDAA2B;QAClC,aAAa,oDAA2B;IAC1C;IAEA,MAAMC,gBAAgB;QACpB,OAAO,8DAAqC;QAC5C,aAAa,8DAAqC;IACpD;IAEA,MAAMC,oBAAoBzM,MAAM,UAAU,CAAC,oDAA2B;IAEtE,MAAM,EAAC,MAAM0M,UAAU,EAAE,OAAOC,WAAW,EAAC,GAAG;IAE/C,MAAMC,UAAU;IAEhB,MAAMC,qBAAqB,0BAAsB,CAACxmB,CAAAA,WACzCA,WAAW;IAGpB,MAAMymB,gBAAgB,CAAC9uB,QAAQ,CAACutB,WAAWC,MAAM;QAC/CxtB,OACG,EAAE,CAAC,OAAOwtB,OACV,EAAE,CAAC,SAASA;QAEf,OAAOD;IACT;IAUA,SAASwB,uBAAuBlvB,OAAO,EAAE6J,eAAe;QACtD,IAAI7J,QAAQ,eAAe,CAAC,KAAK,EAC/BA,QAAQ,eAAe,CAAC,KAAK,CAACA;QAEhC,IAAIA,QAAQ,eAAe,CAAC,MAAM,EAChCA,QAAQ,eAAe,CAAC,MAAM,CAACA,SAAS6J;IAE5C;IAWA,SAASslB,SAASnvB,OAAO,EAAEovB,WAAW,EAAEpmB,QAAQ;QAC9C,IAAIqH,QAAQ+e;QACZ,IAAI,CAAC/e,SAASA,AAAU,UAAVA,OAAiB;YAC7B,MAAMgf,WAAW,6BAA2B,CAACrmB;YAC7C,IAAIqmB,UACFhf,QAAQ,IAAIxK,IAAIwpB;QAEpB;QACA,IAAIhf,OAAO;YAET,IAAIA,MAAM,QAAQ,EAChBA,MAAM,IAAI,GAAG,AAACA,CAAAA,MAAM,QAAQ,IAAI,EAAC,IAAK,MAAOA,CAAAA,MAAM,QAAQ,IAAI,EAAC;YAGlE,IAAIA,MAAM,IAAI,EAAE;gBAEd,IAAIA,MAAM,IAAI,CAAC,QAAQ,IAAIA,MAAM,IAAI,CAAC,QAAQ,EAC5CA,MAAM,IAAI,GAAG,AAACA,CAAAA,MAAM,IAAI,CAAC,QAAQ,IAAI,EAAC,IAAK,MAAOA,CAAAA,MAAM,IAAI,CAAC,QAAQ,IAAI,EAAC;gBAE5E,MAAMif,SAASlvB,OACZ,IAAI,CAACiQ,MAAM,IAAI,EAAE,QACjB,QAAQ,CAAC;gBACZrQ,QAAQ,OAAO,CAAC,sBAAsB,GAAG,WAAWsvB;YACtD;YAEAtvB,QAAQ,OAAO,CAAC,IAAI,GAAGA,QAAQ,QAAQ,GAAIA,CAAAA,QAAQ,IAAI,GAAG,MAAMA,QAAQ,IAAI,GAAG,EAAC;YAChF,MAAMuvB,YAAYlf,MAAM,QAAQ,IAAIA,MAAM,IAAI;YAC9CrQ,QAAQ,QAAQ,GAAGuvB;YAEnBvvB,QAAQ,IAAI,GAAGuvB;YACfvvB,QAAQ,IAAI,GAAGqQ,MAAM,IAAI;YACzBrQ,QAAQ,IAAI,GAAGgJ;YACf,IAAIqH,MAAM,QAAQ,EAChBrQ,QAAQ,QAAQ,GAAGqQ,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAOA,MAAM,QAAQ,GAAG,GAAGA,MAAM,QAAQ,CAAC,CAAC,CAAC;QAE3F;QAEArQ,QAAQ,eAAe,CAAC,KAAK,GAAG,SAAwBwvB,eAAe;YAGrEL,SAASK,iBAAiBJ,aAAaI,gBAAgB,IAAI;QAC7D;IACF;IAEA,MAAMC,yBAAyB,AAAmB,eAAnB,OAAOpxB,WAA2B8jB,AAA0B,cAA1BA,MAAM,MAAM,CAAC9jB;IAI9E,MAAMqxB,YAAY,CAACC,gBACV,IAAIC,QAAQ,CAAC9G,SAASC;YAC3B,IAAI8G;YACJ,IAAIC;YAEJ,MAAMC,OAAO,CAACrvB,OAAOsvB;gBACnB,IAAIF,QAAQ;gBACZA,SAAS;gBACTD,UAAUA,OAAOnvB,OAAOsvB;YAC1B;YAEA,MAAMC,WAAW,CAACvvB;gBAChBqvB,KAAKrvB;gBACLooB,QAAQpoB;YACV;YAEA,MAAMwvB,UAAU,CAACC;gBACfJ,KAAKI,QAAQ;gBACbpH,OAAOoH;YACT;YAEAR,cAAcM,UAAUC,SAAS,CAACE,gBAAmBP,SAASO,eAAgB,KAAK,CAACF;QACtF;IAGF,MAAMG,gBAAgB,CAAC,EAACC,OAAO,EAAEC,MAAM,EAAC;QACtC,IAAI,CAACpO,MAAM,QAAQ,CAACmO,UAClB,MAAMtpB,UAAU;QAElB,OAAQ;YACNspB;YACA,QAAQC,UAAWD,CAAAA,QAAQ,OAAO,CAAC,OAAO,IAAI,IAAI;QACpD;IACF;IAEA,MAAME,oBAAoB,CAACF,SAASC,SAAWF,cAAclO,MAAM,QAAQ,CAACmO,WAAWA,UAAU;YAACA;YAASC;QAAM;IAGjH,sBAAed,0BAA0B,SAAqBvN,MAAM;QAClE,OAAOwN,UAAU,eAAmC5G,OAAO,EAAEC,MAAM,EAAE8G,MAAM;YACzE,IAAI,EAACjvB,IAAI,EAAE0N,MAAM,EAAEiiB,MAAM,EAAC,GAAGrO;YAC7B,MAAM,EAACuO,YAAY,EAAEC,gBAAgB,EAAC,GAAGxO;YACzC,MAAM7Z,SAAS6Z,OAAO,MAAM,CAAC,WAAW;YACxC,IAAI4N;YACJ,IAAIzL,WAAW;YACf,IAAIsM;YAEJ,IAAIriB,QAAQ;gBACV,MAAMsiB,UAAU,oBAAYtiB,QAAQ,CAAC5N,QAAUyhB,MAAM,OAAO,CAACzhB,SAASA,QAAQ;wBAACA;qBAAM;gBAErF4N,SAAS,CAAC4B,UAAU2gB,KAAK1jB;oBACvByjB,QAAQ1gB,UAAU2gB,KAAK,CAAC7yB,KAAK8yB,MAAMnqB;wBACjC,IAAI3I,KACF,OAAOmP,GAAGnP;wBAGZ,MAAM+yB,YAAY5O,MAAM,OAAO,CAAC2O,QAAQA,KAAK,GAAG,CAACE,CAAAA,OAAQR,kBAAkBQ,SAAS;4BAACR,kBAAkBM,MAAMnqB;yBAAM;wBAEnHkqB,IAAI,GAAG,GAAG1jB,GAAGnP,KAAK+yB,aAAa5jB,GAAGnP,KAAK+yB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAEA,SAAS,CAAC,EAAE,CAAC,MAAM;oBAClF;gBACF;YACF;YAGA,MAAME,UAAU,IAAI,4CAAY;YAEhC,MAAMC,aAAa;gBACjB,IAAIhP,OAAO,WAAW,EACpBA,OAAO,WAAW,CAAC,WAAW,CAAC3kB;gBAGjC,IAAI2kB,OAAO,MAAM,EACfA,OAAO,MAAM,CAAC,mBAAmB,CAAC,SAAS3kB;gBAG7C0zB,QAAQ,kBAAkB;YAC5B;YAEApB,OAAO,CAACnvB,OAAOsvB;gBACbF,SAAS;gBACT,IAAIE,YAAY;oBACd3L,WAAW;oBACX6M;gBACF;YACF;YAEA,SAAS3zB,MAAM4yB,MAAM;gBACnBc,QAAQ,IAAI,CAAC,SAAS,CAACd,UAAUA,OAAO,IAAI,GAAG,IAAI,qBAAc,MAAMjO,QAAQyO,OAAOR;YACxF;YAEAc,QAAQ,IAAI,CAAC,SAASlI;YAEtB,IAAI7G,OAAO,WAAW,IAAIA,OAAO,MAAM,EAAE;gBACvCA,OAAO,WAAW,IAAIA,OAAO,WAAW,CAAC,SAAS,CAAC3kB;gBACnD,IAAI2kB,OAAO,MAAM,EACfA,OAAO,MAAM,CAAC,OAAO,GAAG3kB,UAAU2kB,OAAO,MAAM,CAAC,gBAAgB,CAAC,SAAS3kB;YAE9E;YAGA,MAAM4zB,WAAW9H,cAAcnH,OAAO,OAAO,EAAEA,OAAO,GAAG;YACzD,MAAM1X,SAAS,IAAI3E,IAAIsrB,UAAU,0BAAsB,GAAG,mBAAe,GAAGjmB,KAAAA;YAC5E,MAAM1C,WAAWgC,OAAO,QAAQ,IAAIwkB,kBAAkB,CAAC,EAAE;YAEzD,IAAIxmB,AAAa,YAAbA,UAAsB;gBACxB,IAAI4oB;gBAEJ,IAAI/oB,AAAW,UAAXA,QACF,OAAOwgB,OAAOC,SAASC,QAAQ;oBAC7B,QAAQ;oBACR,YAAY;oBACZ,SAAS,CAAC;oBACV7G;gBACF;gBAGF,IAAI;oBACFkP,gBAAgB1H,YAAYxH,OAAO,GAAG,EAAEuO,AAAiB,WAAjBA,cAAyB;wBAC/D,MAAMvO,OAAO,GAAG,IAAIA,OAAO,GAAG,CAAC,IAAI;oBACrC;gBACF,EAAE,OAAOlkB,KAAK;oBACZ,MAAMslB,WAAW,IAAI,CAACtlB,KAAKslB,WAAW,eAAe,EAAEpB;gBACzD;gBAEA,IAAIuO,AAAiB,WAAjBA,cAAyB;oBAC3BW,gBAAgBA,cAAc,QAAQ,CAACV;oBAEvC,IAAI,CAACA,oBAAoBA,AAAqB,WAArBA,kBACvBU,gBAAgBjP,MAAM,QAAQ,CAACiP;gBAEnC,OAAO,IAAIX,AAAiB,aAAjBA,cACTW,gBAAgB,8BAAoB,CAACA;gBAGvC,OAAOvI,OAAOC,SAASC,QAAQ;oBAC7B,MAAMqI;oBACN,QAAQ;oBACR,YAAY;oBACZ,SAAS,IAAI1I;oBACbxG;gBACF;YACF;YAEA,IAAI8M,AAAyC,OAAzCA,mBAAmB,OAAO,CAACxmB,WAC7B,OAAOugB,OAAO,IAAIzF,WAChB,0BAA0B9a,UAC1B8a,WAAW,eAAe,EAC1BpB;YAIJ,MAAMnX,UAAU2d,aAAa,IAAI,CAACxG,OAAO,OAAO,EAAE,SAAS;YAM3DnX,QAAQ,GAAG,CAAC,cAAc,WAAWwe,SAAS;YAE9C,MAAM,EAAC8H,gBAAgB,EAAEC,kBAAkB,EAAC,GAAGpP;YAC/C,MAAMgI,UAAUhI,OAAO,OAAO;YAC9B,IAAIqP;YACJ,IAAIC;YAGJ,IAAIrP,MAAM,mBAAmB,CAACvhB,OAAO;gBACnC,MAAM6wB,eAAe1mB,QAAQ,cAAc,CAAC;gBAE5CnK,OAAO,yBAAiBA,MAAM,CAACkM;oBAC7B/B,QAAQ,GAAG,CAAC+B;gBACd,GAAG;oBACD,KAAK,CAAC,MAAM,EAAEyc,QAAQ,SAAS,CAAC;oBAChC,UAAUkI,gBAAgBA,YAAY,CAAC,EAAE,IAAIvmB,KAAAA;gBAC/C;YAEF,OAAO,IAAIiX,MAAM,UAAU,CAACvhB,SAASuhB,MAAM,UAAU,CAACvhB,KAAK,UAAU,GAAG;gBACtEmK,QAAQ,GAAG,CAACnK,KAAK,UAAU;gBAE3B,IAAI,CAACmK,QAAQ,gBAAgB,IAC3B,IAAI;oBACF,MAAMkC,cAAc,MAAM,wBAAc,CAACrM,KAAK,SAAS,EAAE,IAAI,CAACA;oBAC9D8C,OAAO,QAAQ,CAACuJ,gBAAgBA,eAAe,KAAKlC,QAAQ,gBAAgB,CAACkC;gBAE/E,EAAE,OAAOqY,GAAG,CACZ;YAEJ,OAAO,IAAInD,MAAM,MAAM,CAACvhB,SAASuhB,MAAM,MAAM,CAACvhB,OAAO;gBACnDA,KAAK,IAAI,IAAImK,QAAQ,cAAc,CAACnK,KAAK,IAAI,IAAI;gBACjDmK,QAAQ,gBAAgB,CAACnK,KAAK,IAAI,IAAI;gBACtCA,OAAO,8BAAoB,CAACmrB,SAASnrB;YACvC,OAAO,IAAIA,QAAQ,CAACuhB,MAAM,QAAQ,CAACvhB,OAAO;gBACxC,IAAIR,OAAO,QAAQ,CAACQ;qBAEb,IAAIuhB,MAAM,aAAa,CAACvhB,OAC7BA,OAAOR,OAAO,IAAI,CAAC,IAAIiZ,WAAWzY;;oBAC7B,KAAIuhB,MAAM,QAAQ,CAACvhB,OAGxB,OAAOmoB,OAAO,IAAIzF,WAChB,qFACAA,WAAW,eAAe,EAC1BpB;oBALFthB,OAAOR,OAAO,IAAI,CAACQ,MAAM;;gBAU3BmK,QAAQ,gBAAgB,CAACnK,KAAK,MAAM,EAAE;gBAEtC,IAAIshB,OAAO,aAAa,GAAG,MAAMthB,KAAK,MAAM,GAAGshB,OAAO,aAAa,EACjE,OAAO6G,OAAO,IAAIzF,WAChB,gDACAA,WAAW,eAAe,EAC1BpB;YAGN;YAEA,MAAMmK,gBAAgBlK,MAAM,cAAc,CAACpX,QAAQ,gBAAgB;YAEnE,IAAIoX,MAAM,OAAO,CAAC+H,UAAU;gBAC1BqH,gBAAgBrH,OAAO,CAAC,EAAE;gBAC1BsH,kBAAkBtH,OAAO,CAAC,EAAE;YAC9B,OACEqH,gBAAgBC,kBAAkBtH;YAGpC,IAAItpB,QAASywB,CAAAA,oBAAoBE,aAAY,GAAI;gBAC/C,IAAI,CAACpP,MAAM,QAAQ,CAACvhB,OAClBA,OAAO,8BAAoB,CAACA,MAAM;oBAAC,YAAY;gBAAK;gBAGtDA,OAAO,yBAAe,CAAC;oBAACA;oBAAM,IAAI,6BAAqB;wBACrD,SAASuhB,MAAM,cAAc,CAACoP;oBAChC;iBAAG,EAAEpP,MAAM,IAAI;gBAEfkP,oBAAoBzwB,KAAK,EAAE,CAAC,YAAYquB,cACtCruB,MACA2tB,uBACElC,eACAuB,qBAAqBa,eAAe4C,mBAAmB,OAAO;YAGpE;YAGA,IAAIK;YACJ,IAAIxP,OAAO,IAAI,EAAE;gBACf,MAAMyP,WAAWzP,OAAO,IAAI,CAAC,QAAQ,IAAI;gBACzC,MAAM0P,WAAW1P,OAAO,IAAI,CAAC,QAAQ,IAAI;gBACzCwP,OAAOC,WAAW,MAAMC;YAC1B;YAEA,IAAI,CAACF,QAAQlnB,OAAO,QAAQ,EAAE;gBAC5B,MAAMqnB,cAAcrnB,OAAO,QAAQ;gBACnC,MAAMsnB,cAActnB,OAAO,QAAQ;gBACnCknB,OAAOG,cAAc,MAAMC;YAC7B;YAEAJ,QAAQ3mB,QAAQ,MAAM,CAAC;YAEvB,IAAIY;YAEJ,IAAI;gBACFA,OAAOoY,SACLvZ,OAAO,QAAQ,GAAGA,OAAO,MAAM,EAC/B0X,OAAO,MAAM,EACbA,OAAO,gBAAgB,EACvB,OAAO,CAAC,OAAO;YACnB,EAAE,OAAOlkB,KAAK;gBACZ,MAAM+zB,YAAY,IAAIjxB,MAAM9C,IAAI,OAAO;gBACvC+zB,UAAU,MAAM,GAAG7P;gBACnB6P,UAAU,GAAG,GAAG7P,OAAO,GAAG;gBAC1B6P,UAAU,MAAM,GAAG;gBACnB,OAAOhJ,OAAOgJ;YAChB;YAEAhnB,QAAQ,GAAG,CACT,mBACA,4BAA6B6jB,CAAAA,oBAAoB,SAAS,EAAC,GAAI;YAGjE,MAAM5uB,UAAU;gBACd2L;gBACA,QAAQtD;gBACR,SAAS0C,QAAQ,MAAM;gBACvB,QAAQ;oBAAE,MAAMmX,OAAO,SAAS;oBAAE,OAAOA,OAAO,UAAU;gBAAC;gBAC3DwP;gBACAlpB;gBACA+nB;gBACA,gBAAgBrB;gBAChB,iBAAiB,CAAC;YACpB;YAGC/M,MAAM,WAAW,CAAC7T,WAAYtO,CAAAA,QAAQ,MAAM,GAAGsO,MAAK;YAErD,IAAI4T,OAAO,UAAU,EACnBliB,QAAQ,UAAU,GAAGkiB,OAAO,UAAU;iBACjC;gBACLliB,QAAQ,QAAQ,GAAGwK,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAOA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAMA,OAAO,QAAQ;gBACnGxK,QAAQ,IAAI,GAAGwK,OAAO,IAAI;gBAC1B2kB,SAASnvB,SAASkiB,OAAO,KAAK,EAAE1Z,WAAW,OAAOgC,OAAO,QAAQ,GAAIA,CAAAA,OAAO,IAAI,GAAG,MAAMA,OAAO,IAAI,GAAG,EAAC,IAAKxK,QAAQ,IAAI;YAC3H;YAEA,IAAIgyB;YACJ,MAAMC,iBAAiBlD,QAAQ,IAAI,CAAC/uB,QAAQ,QAAQ;YACpDA,QAAQ,KAAK,GAAGiyB,iBAAiB/P,OAAO,UAAU,GAAGA,OAAO,SAAS;YACrE,IAAIA,OAAO,SAAS,EAClB8P,YAAY9P,OAAO,SAAS;iBACvB,IAAIA,AAAwB,MAAxBA,OAAO,YAAY,EAC5B8P,YAAYC,iBAAiB,kBAAQ;iBAChC;gBACL,IAAI/P,OAAO,YAAY,EACrBliB,QAAQ,YAAY,GAAGkiB,OAAO,YAAY;gBAE5C,IAAIA,OAAO,cAAc,EACvBliB,QAAQ,eAAe,CAAC,MAAM,GAAGkiB,OAAO,cAAc;gBAExD8P,YAAYC,iBAAiBnD,cAAcD;YAC7C;YAEA,IAAI3M,OAAO,aAAa,GAAG,IACzBliB,QAAQ,aAAa,GAAGkiB,OAAO,aAAa;iBAG5CliB,QAAQ,aAAa,GAAGO;YAG1B,IAAI2hB,OAAO,kBAAkB,EAC3BliB,QAAQ,kBAAkB,GAAGkiB,OAAO,kBAAkB;YAIxDyO,MAAMqB,UAAU,OAAO,CAAChyB,SAAS,SAAwBkyB,GAAG;gBAC1D,IAAIvB,IAAI,SAAS,EAAE;gBAEnB,MAAMwB,UAAU;oBAACD;iBAAI;gBAErB,MAAME,iBAAiB,CAACF,IAAI,OAAO,CAAC,iBAAiB;gBAErD,IAAIZ,sBAAsBE,iBAAiB;oBACzC,MAAMa,kBAAkB,IAAI,6BAAqB;wBAC/C,SAASlQ,MAAM,cAAc,CAACqP;oBAChC;oBAEAF,sBAAsBe,gBAAgB,EAAE,CAAC,YAAYpD,cACnDoD,iBACA9D,uBACE6D,gBACAxE,qBAAqBa,eAAe6C,qBAAqB,MAAM;oBAInEa,QAAQ,IAAI,CAACE;gBACf;gBAGA,IAAIC,iBAAiBJ;gBAGrB,MAAMK,cAAcL,IAAI,GAAG,IAAIvB;gBAG/B,IAAIzO,AAAsB,UAAtBA,OAAO,UAAU,IAAcgQ,IAAI,OAAO,CAAC,mBAAmB,EAAE;oBAGlE,IAAI7pB,AAAW,WAAXA,UAAqB6pB,AAAmB,QAAnBA,IAAI,UAAU,EACrC,OAAOA,IAAI,OAAO,CAAC,mBAAmB;oBAGxC,OAAQ,AAACA,CAAAA,IAAI,OAAO,CAAC,mBAAmB,IAAI,EAAC,EAAG,WAAW;wBAE3D,KAAK;wBACL,KAAK;wBACL,KAAK;wBACL,KAAK;4BAEHC,QAAQ,IAAI,CAAC,yCAAgB,CAACzD;4BAG9B,OAAOwD,IAAI,OAAO,CAAC,mBAAmB;4BACtC;wBACF,KAAK;4BACHC,QAAQ,IAAI,CAAC,IAAI;4BAGjBA,QAAQ,IAAI,CAAC,yCAAgB,CAACzD;4BAG9B,OAAOwD,IAAI,OAAO,CAAC,mBAAmB;4BACtC;wBACF,KAAK;4BACH,IAAItD,mBAAmB;gCACrBuD,QAAQ,IAAI,CAAC,oDAA2B,CAACxD;gCACzC,OAAOuD,IAAI,OAAO,CAAC,mBAAmB;4BACxC;oBACF;gBACF;gBAEAI,iBAAiBH,QAAQ,MAAM,GAAG,IAAI,yBAAe,CAACA,SAAShQ,MAAM,IAAI,IAAIgQ,OAAO,CAAC,EAAE;gBAEvF,MAAMK,eAAe,yBAAe,CAACF,gBAAgB;oBACnDE;oBACAtB;gBACF;gBAEA,MAAM1pB,WAAW;oBACf,QAAQ0qB,IAAI,UAAU;oBACtB,YAAYA,IAAI,aAAa;oBAC7B,SAAS,IAAIxJ,aAAawJ,IAAI,OAAO;oBACrChQ;oBACA,SAASqQ;gBACX;gBAEA,IAAI9B,AAAiB,aAAjBA,cAA2B;oBAC7BjpB,SAAS,IAAI,GAAG8qB;oBAChBzJ,OAAOC,SAASC,QAAQvhB;gBAC1B,OAAO;oBACL,MAAMirB,iBAAiB,EAAE;oBACzB,IAAIC,qBAAqB;oBAEzBJ,eAAe,EAAE,CAAC,QAAQ,SAA0B3Y,KAAK;wBACvD8Y,eAAe,IAAI,CAAC9Y;wBACpB+Y,sBAAsB/Y,MAAM,MAAM;wBAGlC,IAAIuI,OAAO,gBAAgB,GAAG,MAAMwQ,qBAAqBxQ,OAAO,gBAAgB,EAAE;4BAEhFmC,WAAW;4BACXiO,eAAe,OAAO;4BACtBvJ,OAAO,IAAIzF,WAAW,8BAA8BpB,OAAO,gBAAgB,GAAG,aAC5EoB,WAAW,gBAAgB,EAAEpB,QAAQqQ;wBACzC;oBACF;oBAEAD,eAAe,EAAE,CAAC,WAAW;wBAC3B,IAAIjO,UACF;wBAGF,MAAMrmB,MAAM,IAAIslB,WACd,2BACAA,WAAW,gBAAgB,EAC3BpB,QACAqQ;wBAEFD,eAAe,OAAO,CAACt0B;wBACvB+qB,OAAO/qB;oBACT;oBAEAs0B,eAAe,EAAE,CAAC,SAAS,SAA2Bt0B,GAAG;wBACvD,IAAI2yB,IAAI,SAAS,EAAE;wBACnB5H,OAAOzF,WAAW,IAAI,CAACtlB,KAAK,MAAMkkB,QAAQqQ;oBAC5C;oBAEAD,eAAe,EAAE,CAAC,OAAO;wBACvB,IAAI;4BACF,IAAIK,eAAeF,AAA0B,MAA1BA,eAAe,MAAM,GAASA,cAAc,CAAC,EAAE,GAAGryB,OAAO,MAAM,CAACqyB;4BACnF,IAAIhC,AAAiB,kBAAjBA,cAAgC;gCAClCkC,eAAeA,aAAa,QAAQ,CAACjC;gCACrC,IAAI,CAACA,oBAAoBA,AAAqB,WAArBA,kBACvBiC,eAAexQ,MAAM,QAAQ,CAACwQ;4BAElC;4BACAnrB,SAAS,IAAI,GAAGmrB;wBAClB,EAAE,OAAO30B,KAAK;4BACZ,OAAO+qB,OAAOzF,WAAW,IAAI,CAACtlB,KAAK,MAAMkkB,QAAQ1a,SAAS,OAAO,EAAEA;wBACrE;wBACAqhB,OAAOC,SAASC,QAAQvhB;oBAC1B;gBACF;gBAEAypB,QAAQ,IAAI,CAAC,SAASjzB,CAAAA;oBACpB,IAAI,CAACs0B,eAAe,SAAS,EAAE;wBAC7BA,eAAe,IAAI,CAAC,SAASt0B;wBAC7Bs0B,eAAe,OAAO;oBACxB;gBACF;YACF;YAEArB,QAAQ,IAAI,CAAC,SAASjzB,CAAAA;gBACpB+qB,OAAO/qB;gBACP2yB,IAAI,OAAO,CAAC3yB;YACd;YAGA2yB,IAAI,EAAE,CAAC,SAAS,SAA4B3yB,GAAG;gBAG7C+qB,OAAOzF,WAAW,IAAI,CAACtlB,KAAK,MAAMkkB,QAAQyO;YAC5C;YAGAA,IAAI,EAAE,CAAC,UAAU,SAA6B1oB,MAAM;gBAElDA,OAAO,YAAY,CAAC,MAAM;YAC5B;YAGA,IAAIia,OAAO,OAAO,EAAE;gBAElB,MAAM0Q,UAAUjxB,SAASugB,OAAO,OAAO,EAAE;gBAEzC,IAAIxe,OAAO,KAAK,CAACkvB,UAAU;oBACzB7J,OAAO,IAAIzF,WACT,iDACAA,WAAW,oBAAoB,EAC/BpB,QACAyO;oBAGF;gBACF;gBAOAA,IAAI,UAAU,CAACiC,SAAS;oBACtB,IAAI9C,QAAQ;oBACZ,IAAI+C,sBAAsB3Q,OAAO,OAAO,GAAG,gBAAgBA,OAAO,OAAO,GAAG,gBAAgB;oBAC5F,MAAM0D,eAAe1D,OAAO,YAAY,IAAI;oBAC5C,IAAIA,OAAO,mBAAmB,EAC5B2Q,sBAAsB3Q,OAAO,mBAAmB;oBAElD6G,OAAO,IAAIzF,WACTuP,qBACAjN,aAAa,mBAAmB,GAAGtC,WAAW,SAAS,GAAGA,WAAW,YAAY,EACjFpB,QACAyO;oBAEFpzB;gBACF;YACF;YAIA,IAAI4kB,MAAM,QAAQ,CAACvhB,OAAO;gBACxB,IAAIkyB,QAAQ;gBACZ,IAAIC,UAAU;gBAEdnyB,KAAK,EAAE,CAAC,OAAO;oBACbkyB,QAAQ;gBACV;gBAEAlyB,KAAK,IAAI,CAAC,SAAS5C,CAAAA;oBACjB+0B,UAAU;oBACVpC,IAAI,OAAO,CAAC3yB;gBACd;gBAEA4C,KAAK,EAAE,CAAC,SAAS;oBACf,IAAI,CAACkyB,SAAS,CAACC,SACbx1B,MAAM,IAAI,qBAAc,mCAAmC2kB,QAAQyO;gBAEvE;gBAEA/vB,KAAK,IAAI,CAAC+vB;YACZ,OACEA,IAAI,GAAG,CAAC/vB;QAEZ;IACF;IClrBA,wBAAe,kCAA8B,GAAG,AAAC,EAACoyB,QAAQC,SAAW,CAACrtB;YACpEA,MAAM,IAAIC,IAAID,KAAK,mBAAe;YAElC,OACEotB,OAAO,QAAQ,KAAKptB,IAAI,QAAQ,IAChCotB,OAAO,IAAI,KAAKptB,IAAI,IAAI,IACvBqtB,CAAAA,UAAUD,OAAO,IAAI,KAAKptB,IAAI,IAAI,AAAD;QAEtC,GACE,IAAIC,IAAI,mBAAe,GACvB,sBAAkB,IAAI,kBAAkB,IAAI,CAAC,gCAA4B,KACvE,IAAM;ICVV,wBAAe,kCAA8B,GAG3C;QACE,OAAMrB,IAAI,EAAE9D,KAAK,EAAEwyB,OAAO,EAAEvnB,IAAI,EAAEF,MAAM,EAAE0nB,MAAM;YAC9C,MAAMC,SAAS;gBAAC5uB,OAAO,MAAMmf,mBAAmBjjB;aAAO;YAEvDyhB,MAAM,QAAQ,CAAC+Q,YAAYE,OAAO,IAAI,CAAC,aAAa,IAAIzvB,KAAKuvB,SAAS,WAAW;YAEjF/Q,MAAM,QAAQ,CAACxW,SAASynB,OAAO,IAAI,CAAC,UAAUznB;YAE9CwW,MAAM,QAAQ,CAAC1W,WAAW2nB,OAAO,IAAI,CAAC,YAAY3nB;YAEvC,SAAX0nB,UAAmBC,OAAO,IAAI,CAAC;YAE/B1xB,SAAS,MAAM,GAAG0xB,OAAO,IAAI,CAAC;QAChC;QAEA,MAAK5uB,IAAI;YACP,MAAMxC,QAAQN,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI4C,OAAO,eAAeE,OAAO;YACrE,OAAQxC,QAAQ+nB,mBAAmB/nB,KAAK,CAAC,EAAE,IAAI;QACjD;QAEA,QAAOwC,IAAI;YACT,IAAI,CAAC,KAAK,CAACA,MAAM,IAAIb,KAAK,GAAG,KAAK;QACpC;IACF,IAKA;QACE,UAAS;QACT;YACE,OAAO;QACT;QACA,WAAU;IACZ;ICnCF,MAAM0vB,kBAAkB,CAACpX,QAAUA,iBAAiByM,eAAe;YAAE,GAAGzM,KAAK;QAAC,IAAIA;IAWnE,SAASqX,YAAYC,OAAO,EAAEC,OAAO;QAElDA,UAAUA,WAAW,CAAC;QACtB,MAAMtR,SAAS,CAAC;QAEhB,SAASuR,eAAe7oB,MAAM,EAAEpF,MAAM,EAAET,IAAI,EAAEoZ,QAAQ;YACpD,IAAIgE,MAAM,aAAa,CAACvX,WAAWuX,MAAM,aAAa,CAAC3c,SACrD,OAAO2c,MAAM,KAAK,CAAC,IAAI,CAAC;gBAAChE;YAAQ,GAAGvT,QAAQpF;YACvC,IAAI2c,MAAM,aAAa,CAAC3c,SAC7B,OAAO2c,MAAM,KAAK,CAAC,CAAC,GAAG3c;YAClB,IAAI2c,MAAM,OAAO,CAAC3c,SACvB,OAAOA,OAAO,KAAK;YAErB,OAAOA;QACT;QAGA,SAASkuB,oBAAoBv0B,CAAC,EAAEC,CAAC,EAAE2F,IAAI,EAAGoZ,QAAQ;YAChD,IAAI,CAACgE,MAAM,WAAW,CAAC/iB,IACrB,OAAOq0B,eAAet0B,GAAGC,GAAG2F,MAAOoZ;YAC9B,IAAI,CAACgE,MAAM,WAAW,CAAChjB,IAC5B,OAAOs0B,eAAevoB,KAAAA,GAAW/L,GAAG4F,MAAOoZ;QAE/C;QAGA,SAASwV,iBAAiBx0B,CAAC,EAAEC,CAAC;YAC5B,IAAI,CAAC+iB,MAAM,WAAW,CAAC/iB,IACrB,OAAOq0B,eAAevoB,KAAAA,GAAW9L;QAErC;QAGA,SAASw0B,iBAAiBz0B,CAAC,EAAEC,CAAC;YAC5B,IAAI,CAAC+iB,MAAM,WAAW,CAAC/iB,IACrB,OAAOq0B,eAAevoB,KAAAA,GAAW9L;YAC5B,IAAI,CAAC+iB,MAAM,WAAW,CAAChjB,IAC5B,OAAOs0B,eAAevoB,KAAAA,GAAW/L;QAErC;QAGA,SAAS00B,gBAAgB10B,CAAC,EAAEC,CAAC,EAAE2F,IAAI;YACjC,IAAIA,QAAQyuB,SACV,OAAOC,eAAet0B,GAAGC;YACpB,IAAI2F,QAAQwuB,SACjB,OAAOE,eAAevoB,KAAAA,GAAW/L;QAErC;QAEA,MAAM20B,WAAW;YACf,KAAKH;YACL,QAAQA;YACR,MAAMA;YACN,SAASC;YACT,kBAAkBA;YAClB,mBAAmBA;YACnB,kBAAkBA;YAClB,SAASA;YACT,gBAAgBA;YAChB,iBAAiBA;YACjB,eAAeA;YACf,SAASA;YACT,cAAcA;YACd,gBAAgBA;YAChB,gBAAgBA;YAChB,kBAAkBA;YAClB,oBAAoBA;YACpB,YAAYA;YACZ,kBAAkBA;YAClB,eAAeA;YACf,gBAAgBA;YAChB,WAAWA;YACX,WAAWA;YACX,YAAYA;YACZ,aAAaA;YACb,YAAYA;YACZ,kBAAkBA;YAClB,gBAAgBC;YAChB,SAAS,CAAC10B,GAAGC,GAAI2F,OAAS2uB,oBAAoBL,gBAAgBl0B,IAAIk0B,gBAAgBj0B,IAAG2F,MAAM;QAC7F;QAEAod,MAAM,OAAO,CAAC1kB,OAAO,IAAI,CAACA,OAAO,MAAM,CAAC,CAAC,GAAG81B,SAASC,WAAW,SAA4BzuB,IAAI;YAC9F,MAAMgvB,QAAQD,QAAQ,CAAC/uB,KAAK,IAAI2uB;YAChC,MAAMM,cAAcD,MAAMR,OAAO,CAACxuB,KAAK,EAAEyuB,OAAO,CAACzuB,KAAK,EAAEA;YACvDod,MAAM,WAAW,CAAC6R,gBAAgBD,UAAUF,mBAAqB3R,CAAAA,MAAM,CAACnd,KAAK,GAAGivB,WAAU;QAC7F;QAEA,OAAO9R;IACT;IChGA,sBAAe,CAACA;QACd,MAAM+R,YAAYX,YAAY,CAAC,GAAGpR;QAElC,IAAI,EAACthB,IAAI,EAAEszB,aAAa,EAAEC,cAAc,EAAEC,cAAc,EAAErpB,OAAO,EAAE2mB,IAAI,EAAC,GAAGuC;QAE3EA,UAAU,OAAO,GAAGlpB,UAAU2d,aAAa,IAAI,CAAC3d;QAEhDkpB,UAAU,GAAG,GAAGlQ,SAASsF,cAAc4K,UAAU,OAAO,EAAEA,UAAU,GAAG,GAAG/R,OAAO,MAAM,EAAEA,OAAO,gBAAgB;QAGhH,IAAIwP,MACF3mB,QAAQ,GAAG,CAAC,iBAAiB,WAC3BspB,KAAK,AAAC3C,CAAAA,KAAK,QAAQ,IAAI,EAAC,IAAK,MAAOA,CAAAA,KAAK,QAAQ,GAAG4C,SAAS3Q,mBAAmB+N,KAAK,QAAQ,KAAK,EAAC;QAIvG,IAAIllB;QAEJ,IAAI2V,MAAM,UAAU,CAACvhB;YACnB,IAAI,kCAA8B,IAAI,2CAAuC,EAC3EmK,QAAQ,cAAc,CAACG,KAAAA;iBAClB,IAAI,AAA6C,UAA5CsB,CAAAA,cAAczB,QAAQ,cAAc,EAAC,GAAc;gBAE7D,MAAM,CAACyD,MAAM,GAAGiY,OAAO,GAAGja,cAAcA,YAAY,KAAK,CAAC,KAAK,GAAG,CAACsV,CAAAA,QAASA,MAAM,IAAI,IAAI,MAAM,CAAC5c,WAAW,EAAE;gBAC9G6F,QAAQ,cAAc,CAAC;oBAACyD,QAAQ;uBAA0BiY;iBAAO,CAAC,IAAI,CAAC;YACzE;;QAOF,IAAI,kCAA8B,EAAE;YAClCyN,iBAAiB/R,MAAM,UAAU,CAAC+R,kBAAmBA,CAAAA,gBAAgBA,cAAcD,UAAS;YAE5F,IAAIC,iBAAkBA,AAAkB,UAAlBA,iBAA2BK,gBAAgBN,UAAU,GAAG,GAAI;gBAEhF,MAAMO,YAAYL,kBAAkBC,kBAAkB,oBAAY,CAACA;gBAEnE,IAAII,WACFzpB,QAAQ,GAAG,CAACopB,gBAAgBK;YAEhC;QACF;QAEA,OAAOP;IACT;IC5CA,MAAMQ,wBAAwB,AAA0B,eAA1B,OAAOC;IAErC,YAAeD,yBAAyB,SAAUvS,MAAM;QACtD,OAAO,IAAI0N,QAAQ,SAA4B9G,OAAO,EAAEC,MAAM;YAC5D,MAAM4L,UAAUC,cAAc1S;YAC9B,IAAI2S,cAAcF,QAAQ,IAAI;YAC9B,MAAM1rB,iBAAiByf,aAAa,IAAI,CAACiM,QAAQ,OAAO,EAAE,SAAS;YACnE,IAAI,EAAClE,YAAY,EAAEY,gBAAgB,EAAEC,kBAAkB,EAAC,GAAGqD;YAC3D,IAAIG;YACJ,IAAIC,iBAAiBC;YACrB,IAAIC,aAAaC;YAEjB,SAASnF;gBACPkF,eAAeA;gBACfC,iBAAiBA;gBAEjBP,QAAQ,WAAW,IAAIA,QAAQ,WAAW,CAAC,WAAW,CAACG;gBAEvDH,QAAQ,MAAM,IAAIA,QAAQ,MAAM,CAAC,mBAAmB,CAAC,SAASG;YAChE;YAEA,IAAInsB,UAAU,IAAI+rB;YAElB/rB,QAAQ,IAAI,CAACgsB,QAAQ,MAAM,CAAC,WAAW,IAAIA,QAAQ,GAAG,EAAE;YAGxDhsB,QAAQ,OAAO,GAAGgsB,QAAQ,OAAO;YAEjC,SAASQ;gBACP,IAAI,CAACxsB,SACH;gBAGF,MAAMysB,kBAAkB1M,aAAa,IAAI,CACvC,2BAA2B/f,WAAWA,QAAQ,qBAAqB;gBAErE,MAAMgqB,eAAe,AAAClC,gBAAgBA,AAAiB,WAAjBA,gBAA2BA,AAAiB,WAAjBA,eACxC9nB,QAAQ,QAAQ,GAAvCA,QAAQ,YAAY;gBACtB,MAAMnB,WAAW;oBACf,MAAMmrB;oBACN,QAAQhqB,QAAQ,MAAM;oBACtB,YAAYA,QAAQ,UAAU;oBAC9B,SAASysB;oBACTlT;oBACAvZ;gBACF;gBAEAkgB,OAAO,SAAkBnoB,KAAK;oBAC5BooB,QAAQpoB;oBACRqvB;gBACF,GAAG,SAAiB/xB,GAAG;oBACrB+qB,OAAO/qB;oBACP+xB;gBACF,GAAGvoB;gBAGHmB,UAAU;YACZ;YAEA,IAAI,eAAeA,SAEjBA,QAAQ,SAAS,GAAGwsB;iBAGpBxsB,QAAQ,kBAAkB,GAAG;gBAC3B,IAAI,CAACA,WAAWA,AAAuB,MAAvBA,QAAQ,UAAU,EAChC;gBAOF,IAAIA,AAAmB,MAAnBA,QAAQ,MAAM,IAAU,CAAEA,CAAAA,QAAQ,WAAW,IAAIA,AAAyC,MAAzCA,QAAQ,WAAW,CAAC,OAAO,CAAC,QAAa,GAC5F;gBAIFrK,WAAW62B;YACb;YAIFxsB,QAAQ,OAAO,GAAG;gBAChB,IAAI,CAACA,SACH;gBAGFogB,OAAO,IAAIzF,WAAW,mBAAmBA,WAAW,YAAY,EAAEpB,QAAQvZ;gBAG1EA,UAAU;YACZ;YAGAA,QAAQ,OAAO,GAAG;gBAGhBogB,OAAO,IAAIzF,WAAW,iBAAiBA,WAAW,WAAW,EAAEpB,QAAQvZ;gBAGvEA,UAAU;YACZ;YAGAA,QAAQ,SAAS,GAAG;gBAClB,IAAIkqB,sBAAsB8B,QAAQ,OAAO,GAAG,gBAAgBA,QAAQ,OAAO,GAAG,gBAAgB;gBAC9F,MAAM/O,eAAe+O,QAAQ,YAAY,IAAI;gBAC7C,IAAIA,QAAQ,mBAAmB,EAC7B9B,sBAAsB8B,QAAQ,mBAAmB;gBAEnD5L,OAAO,IAAIzF,WACTuP,qBACAjN,aAAa,mBAAmB,GAAGtC,WAAW,SAAS,GAAGA,WAAW,YAAY,EACjFpB,QACAvZ;gBAGFA,UAAU;YACZ;YAGgBuC,KAAAA,MAAhB2pB,eAA6B5rB,eAAe,cAAc,CAAC;YAG3D,IAAI,sBAAsBN,SACxBwZ,MAAM,OAAO,CAAClZ,eAAe,MAAM,IAAI,SAA0BlF,GAAG,EAAEpG,GAAG;gBACvEgL,QAAQ,gBAAgB,CAAChL,KAAKoG;YAChC;YAIF,IAAI,CAACoe,MAAM,WAAW,CAACwS,QAAQ,eAAe,GAC5ChsB,QAAQ,eAAe,GAAG,CAAC,CAACgsB,QAAQ,eAAe;YAIrD,IAAIlE,gBAAgBA,AAAiB,WAAjBA,cAClB9nB,QAAQ,YAAY,GAAGgsB,QAAQ,YAAY;YAI7C,IAAIrD,oBAAoB;gBACrB,CAAC0D,mBAAmBE,cAAc,GAAGtH,qBAAqB0D,oBAAoB;gBAC/E3oB,QAAQ,gBAAgB,CAAC,YAAYqsB;YACvC;YAGA,IAAI3D,oBAAoB1oB,QAAQ,MAAM,EAAE;gBACrC,CAACosB,iBAAiBE,YAAY,GAAGrH,qBAAqByD;gBAEvD1oB,QAAQ,MAAM,CAAC,gBAAgB,CAAC,YAAYosB;gBAE5CpsB,QAAQ,MAAM,CAAC,gBAAgB,CAAC,WAAWssB;YAC7C;YAEA,IAAIN,QAAQ,WAAW,IAAIA,QAAQ,MAAM,EAAE;gBAGzCG,aAAaO,CAAAA;oBACX,IAAI,CAAC1sB,SACH;oBAEFogB,OAAO,CAACsM,UAAUA,OAAO,IAAI,GAAG,IAAI,qBAAc,MAAMnT,QAAQvZ,WAAW0sB;oBAC3E1sB,QAAQ,KAAK;oBACbA,UAAU;gBACZ;gBAEAgsB,QAAQ,WAAW,IAAIA,QAAQ,WAAW,CAAC,SAAS,CAACG;gBACrD,IAAIH,QAAQ,MAAM,EAChBA,QAAQ,MAAM,CAAC,OAAO,GAAGG,eAAeH,QAAQ,MAAM,CAAC,gBAAgB,CAAC,SAASG;YAErF;YAEA,MAAMtsB,WAAWghB,cAAcmL,QAAQ,GAAG;YAE1C,IAAInsB,YAAY,AAAyC,OAAzC,8BAA0B,CAACA,WAAkB;gBAC3DugB,OAAO,IAAIzF,WAAW,0BAA0B9a,WAAW,KAAK8a,WAAW,eAAe,EAAEpB;gBAC5F;YACF;YAIAvZ,QAAQ,IAAI,CAACksB,eAAe;QAC9B;IACF;IChMA,MAAMS,iBAAiB,CAACC,SAAS3C;QAC/B,MAAM,EAACvlB,MAAM,EAAC,GAAIkoB,UAAUA,UAAUA,QAAQ,MAAM,CAACrwB,WAAW,EAAE;QAElE,IAAI0tB,WAAWvlB,QAAQ;YACrB,IAAImoB,aAAa,IAAIC;YAErB,IAAIC;YAEJ,MAAMC,UAAU,SAAUxF,MAAM;gBAC9B,IAAI,CAACuF,SAAS;oBACZA,UAAU;oBACVE;oBACA,MAAM53B,MAAMmyB,kBAAkBrvB,QAAQqvB,SAAS,IAAI,CAAC,MAAM;oBAC1DqF,WAAW,KAAK,CAACx3B,eAAeslB,aAAatlB,MAAM,IAAI,qBAAcA,eAAe8C,QAAQ9C,IAAI,OAAO,GAAGA;gBAC5G;YACF;YAEA,IAAIwvB,QAAQoF,WAAWt0B,WAAW;gBAChCkvB,QAAQ;gBACRmI,QAAQ,IAAIrS,WAAW,CAAC,QAAQ,EAAEsP,QAAQ,eAAe,CAAC,EAAEtP,WAAW,SAAS;YAClF,GAAGsP;YAEH,MAAMgD,cAAc;gBAClB,IAAIL,SAAS;oBACX/H,SAASrlB,aAAaqlB;oBACtBA,QAAQ;oBACR+H,QAAQ,OAAO,CAACM,CAAAA;wBACdA,OAAO,WAAW,GAAGA,OAAO,WAAW,CAACF,WAAWE,OAAO,mBAAmB,CAAC,SAASF;oBACzF;oBACAJ,UAAU;gBACZ;YACF;YAEAA,QAAQ,OAAO,CAAC,CAACM,SAAWA,OAAO,gBAAgB,CAAC,SAASF;YAE7D,MAAM,EAACE,MAAM,EAAC,GAAGL;YAEjBK,OAAO,WAAW,GAAG,IAAM1T,MAAM,IAAI,CAACyT;YAEtC,OAAOC;QACT;IACF;IAEA,+BAAeP;IC9CR,MAAMQ,cAAc,UAAWnc,KAAK,EAAEkR,SAAS;QACpD,IAAIxmB,MAAMsV,MAAM,UAAU;QAE1B,IAAI,CAACkR,aAAaxmB,MAAMwmB,WAAW;YACjC,MAAMlR;YACN;QACF;QAEA,IAAI2B,MAAM;QACV,IAAIxH;QAEJ,MAAOwH,MAAMjX,IAAK;YAChByP,MAAMwH,MAAMuP;YACZ,MAAMlR,MAAM,KAAK,CAAC2B,KAAKxH;YACvBwH,MAAMxH;QACR;IACF;IAEO,MAAMiiB,YAAY,gBAAiBC,QAAQ,EAAEnL,SAAS;QAC3D,WAAW,MAAMlR,SAASsc,WAAWD,UACnC,OAAOF,YAAYnc,OAAOkR;IAE9B;IAEA,MAAMoL,aAAa,gBAAiB91B,MAAM;QACxC,IAAIA,MAAM,CAAC0c,OAAO,aAAa,CAAC,EAAE;YAChC,OAAO1c;YACP;QACF;QAEA,MAAM+1B,SAAS/1B,OAAO,SAAS;QAC/B,IAAI;YACF,OAAS;gBACP,MAAM,EAAC4vB,IAAI,EAAErvB,KAAK,EAAC,GAAG,MAAMw1B,OAAO,IAAI;gBACvC,IAAInG,MACF;gBAEF,MAAMrvB;YACR;QACF,SAAU;YACR,MAAMw1B,OAAO,MAAM;QACrB;IACF;IAEO,MAAMC,cAAc,CAACh2B,QAAQ0qB,WAAWuL,YAAYC;QACzD,MAAM53B,WAAWs3B,UAAU51B,QAAQ0qB;QAEnC,IAAIF,QAAQ;QACZ,IAAIoF;QACJ,IAAIuG,YAAY,CAAChR;YACf,IAAI,CAACyK,MAAM;gBACTA,OAAO;gBACPsG,YAAYA,SAAS/Q;YACvB;QACF;QAEA,OAAO,IAAIiR,eAAe;YACxB,MAAM,MAAKf,UAAU;gBACnB,IAAI;oBACF,MAAM,EAACzF,IAAI,EAAErvB,KAAK,EAAC,GAAG,MAAMjC,SAAS,IAAI;oBAEzC,IAAIsxB,MAAM;wBACTuG;wBACCd,WAAW,KAAK;wBAChB;oBACF;oBAEA,IAAInxB,MAAM3D,MAAM,UAAU;oBAC1B,IAAI01B,YAAY;wBACd,IAAII,cAAc7L,SAAStmB;wBAC3B+xB,WAAWI;oBACb;oBACAhB,WAAW,OAAO,CAAC,IAAInc,WAAW3Y;gBACpC,EAAE,OAAO1C,KAAK;oBACZs4B,UAAUt4B;oBACV,MAAMA;gBACR;YACF;YACA,QAAOmyB,MAAM;gBACXmG,UAAUnG;gBACV,OAAO1xB,SAAS,MAAM;YACxB;QACF,GAAG;YACD,eAAe;QACjB;IACF;IC5EA,MAAMg4B,mBAAmB,AAAiB,cAAjB,OAAOC,SAAwB,AAAmB,cAAnB,OAAOC,WAA0B,AAAoB,cAApB,OAAOC;IAChG,MAAMC,4BAA4BJ,oBAAoB,AAA0B,cAA1B,OAAOF;IAG7D,MAAMO,aAAaL,oBAAqB,CAAuB,cAAvB,OAAOjL,cAC3C,AAAC,EAAC3H,UAAY,CAACte,MAAQse,QAAQ,MAAM,CAACte,IAAG,EAAG,IAAIimB,iBAChD,OAAOjmB,MAAQ,IAAI8T,WAAW,MAAM,IAAIud,SAASrxB,KAAK,WAAW,GAAE;IAGvE,MAAM,aAAO,CAACrH,IAAI,GAAG0D;QACnB,IAAI;YACF,OAAO,CAAC,CAAC1D,MAAM0D;QACjB,EAAE,OAAO0jB,GAAG;YACV,OAAO;QACT;IACF;IAEA,MAAMyR,wBAAwBF,6BAA6B,WAAK;QAC9D,IAAIG,iBAAiB;QAErB,MAAMC,iBAAiB,IAAIN,QAAQ,mBAAe,EAAE;YAClD,MAAM,IAAIJ;YACV,QAAQ;YACR,IAAI,UAAS;gBACXS,iBAAiB;gBACjB,OAAO;YACT;QACF,GAAG,OAAO,CAAC,GAAG,CAAC;QAEf,OAAOA,kBAAkB,CAACC;IAC5B;IAEA,MAAMC,qBAAqB;IAE3B,MAAMC,yBAAyBN,6BAC7B,WAAK,IAAM1U,MAAM,gBAAgB,CAAC,IAAIyU,SAAS,IAAI,IAAI;IAGzD,MAAMQ,YAAY;QAChB,QAAQD,0BAA2B,EAACjF,MAAQA,IAAI,IAAI,AAAD;IACrD;IAEAuE,oBAAqB,AAAC,EAACvE;QACrB;YAAC;YAAQ;YAAe;YAAQ;YAAY;SAAS,CAAC,OAAO,CAAC1jB,CAAAA;YAC3D4oB,SAAS,CAAC5oB,KAAK,IAAK4oB,CAAAA,SAAS,CAAC5oB,KAAK,GAAG2T,MAAM,UAAU,CAAC+P,GAAG,CAAC1jB,KAAK,IAAI,CAAC0jB,MAAQA,GAAG,CAAC1jB,KAAK,KACrF,CAACxJ,GAAGkd;gBACF,MAAM,IAAIoB,WAAW,CAAC,eAAe,EAAE9U,KAAK,kBAAkB,CAAC,EAAE8U,WAAW,eAAe,EAAEpB;YAC/F;QACJ;IACF,GAAG,IAAI0U;IAEP,MAAMS,gBAAgB,OAAOvN;QAC3B,IAAIA,AAAQ,QAARA,MACF,OAAO;QAGT,IAAG3H,MAAM,MAAM,CAAC2H,OACd,OAAOA,KAAK,IAAI;QAGlB,IAAG3H,MAAM,mBAAmB,CAAC2H,OAAO;YAClC,MAAMwN,WAAW,IAAIX,QAAQ,mBAAe,EAAE;gBAC5C,QAAQ;gBACR7M;YACF;YACA,OAAO,AAAC,OAAMwN,SAAS,WAAW,EAAC,EAAG,UAAU;QAClD;QAEA,IAAGnV,MAAM,iBAAiB,CAAC2H,SAAS3H,MAAM,aAAa,CAAC2H,OACtD,OAAOA,KAAK,UAAU;QAGxB,IAAG3H,MAAM,iBAAiB,CAAC2H,OACzBA,QAAc;QAGhB,IAAG3H,MAAM,QAAQ,CAAC2H,OAChB,OAAO,AAAC,OAAMgN,WAAWhN,KAAI,EAAG,UAAU;IAE9C;IAEA,MAAMyN,oBAAoB,OAAOxsB,SAAS+e;QACxC,MAAMzc,SAAS8U,MAAM,cAAc,CAACpX,QAAQ,gBAAgB;QAE5D,OAAOsC,AAAU,QAAVA,SAAiBgqB,cAAcvN,QAAQzc;IAChD;IAEA,uBAAeopB,oBAAqB,QAAOvU;QACzC,IAAI,EACFtc,GAAG,EACHyC,MAAM,EACNzH,IAAI,EACJi1B,MAAM,EACN2B,WAAW,EACX5E,OAAO,EACPtB,kBAAkB,EAClBD,gBAAgB,EAChBZ,YAAY,EACZ1lB,OAAO,EACP0sB,kBAAkB,aAAa,EAC/BC,YAAY,EACb,GAAG9C,cAAc1S;QAElBuO,eAAeA,eAAe,AAACA,CAAAA,eAAe,EAAC,EAAG,WAAW,KAAK;QAElE,IAAIkH,iBAAiB,uBAAe;YAAC9B;YAAQ2B,eAAeA,YAAY,aAAa;SAAG,EAAE5E;QAE1F,IAAIjqB;QAEJ,MAAMitB,cAAc+B,kBAAkBA,eAAe,WAAW,IAAK;YACjEA,eAAe,WAAW;QAC9B;QAEA,IAAIC;QAEJ,IAAI;YACF,IACEvG,oBAAoB0F,yBAAyB1uB,AAAW,UAAXA,UAAoBA,AAAW,WAAXA,UACjE,AAAoE,MAAnEuvB,CAAAA,uBAAuB,MAAML,kBAAkBxsB,SAASnK,KAAI,GAC7D;gBACA,IAAI02B,WAAW,IAAIX,QAAQ/wB,KAAK;oBAC9B,QAAQ;oBACR,MAAMhF;oBACN,QAAQ;gBACV;gBAEA,IAAIi3B;gBAEJ,IAAI1V,MAAM,UAAU,CAACvhB,SAAUi3B,CAAAA,oBAAoBP,SAAS,OAAO,CAAC,GAAG,CAAC,eAAc,GACpFvsB,QAAQ,cAAc,CAAC8sB;gBAGzB,IAAIP,SAAS,IAAI,EAAE;oBACjB,MAAM,CAAClB,YAAYzI,MAAM,GAAGY,uBAC1BqJ,sBACAhK,qBAAqBa,eAAe4C;oBAGtCzwB,OAAOu1B,YAAYmB,SAAS,IAAI,EAAEJ,oBAAoBd,YAAYzI;gBACpE;YACF;YAEA,IAAI,CAACxL,MAAM,QAAQ,CAACsV,kBAClBA,kBAAkBA,kBAAkB,YAAY;YAKlD,MAAMK,yBAAyB,iBAAiBnB,QAAQ,SAAS;YACjEhuB,UAAU,IAAIguB,QAAQ/wB,KAAK;gBACzB,GAAG8xB,YAAY;gBACf,QAAQC;gBACR,QAAQtvB,OAAO,WAAW;gBAC1B,SAAS0C,QAAQ,SAAS,GAAG,MAAM;gBACnC,MAAMnK;gBACN,QAAQ;gBACR,aAAak3B,yBAAyBL,kBAAkBvsB,KAAAA;YAC1D;YAEA,IAAI1D,WAAW,MAAMkvB,MAAM/tB;YAE3B,MAAMovB,mBAAmBZ,0BAA2B1G,CAAAA,AAAiB,aAAjBA,gBAA6BA,AAAiB,eAAjBA,YAA0B;YAE3G,IAAI0G,0BAA2B7F,CAAAA,sBAAuByG,oBAAoBnC,WAAW,GAAI;gBACvF,MAAM51B,UAAU,CAAC;gBAEjB;oBAAC;oBAAU;oBAAc;iBAAU,CAAC,OAAO,CAAC+E,CAAAA;oBAC1C/E,OAAO,CAAC+E,KAAK,GAAGyC,QAAQ,CAACzC,KAAK;gBAChC;gBAEA,MAAMizB,wBAAwB7V,MAAM,cAAc,CAAC3a,SAAS,OAAO,CAAC,GAAG,CAAC;gBAExE,MAAM,CAAC4uB,YAAYzI,MAAM,GAAG2D,sBAAsB/C,uBAChDyJ,uBACApK,qBAAqBa,eAAe6C,qBAAqB,UACtD,EAAE;gBAEP9pB,WAAW,IAAIovB,SACbT,YAAY3uB,SAAS,IAAI,EAAE0vB,oBAAoBd,YAAY;oBACzDzI,SAASA;oBACTiI,eAAeA;gBACjB,IACA51B;YAEJ;YAEAywB,eAAeA,gBAAgB;YAE/B,IAAIkC,eAAe,MAAMyE,SAAS,CAACjV,MAAM,OAAO,CAACiV,WAAW3G,iBAAiB,OAAO,CAACjpB,UAAU0a;YAE/F,CAAC6V,oBAAoBnC,eAAeA;YAEpC,OAAO,MAAM,IAAIhG,QAAQ,CAAC9G,SAASC;gBACjCF,OAAOC,SAASC,QAAQ;oBACtB,MAAM4J;oBACN,SAASjK,aAAa,IAAI,CAAClhB,SAAS,OAAO;oBAC3C,QAAQA,SAAS,MAAM;oBACvB,YAAYA,SAAS,UAAU;oBAC/B0a;oBACAvZ;gBACF;YACF;QACF,EAAE,OAAO3K,KAAK;YACZ43B,eAAeA;YAEf,IAAI53B,OAAOA,AAAa,gBAAbA,IAAI,IAAI,IAAoB,SAAS,IAAI,CAACA,IAAI,OAAO,GAC9D,MAAMP,OAAO,MAAM,CACjB,IAAI6lB,WAAW,iBAAiBA,WAAW,WAAW,EAAEpB,QAAQvZ,UAChE;gBACE,OAAO3K,IAAI,KAAK,IAAIA;YACtB;YAIJ,MAAMslB,WAAW,IAAI,CAACtlB,KAAKA,OAAOA,IAAI,IAAI,EAAEkkB,QAAQvZ;QACtD;IACF;IC5NA,MAAMsvB,gBAAgB;QACpB,MAAM;QACN,KAAKC;QACL,OAAO;IACT;IAEA/V,MAAM,OAAO,CAAC8V,eAAe,CAAC/5B,IAAIwC;QAChC,IAAIxC,IAAI;YACN,IAAI;gBACFT,OAAO,cAAc,CAACS,IAAI,QAAQ;oBAACwC;gBAAK;YAC1C,EAAE,OAAO4kB,GAAG,CAEZ;YACA7nB,OAAO,cAAc,CAACS,IAAI,eAAe;gBAACwC;YAAK;QACjD;IACF;IAEA,MAAMy3B,eAAe,CAAChI,SAAW,CAAC,EAAE,EAAEA,QAAQ;IAE9C,MAAMiI,mBAAmB,CAACC,UAAYlW,MAAM,UAAU,CAACkW,YAAYA,AAAY,SAAZA,WAAoBA,AAAY,UAAZA;IAEvF,0BAAe;QACb,YAAY,CAACC;YACXA,WAAWnW,MAAM,OAAO,CAACmW,YAAYA,WAAW;gBAACA;aAAS;YAE1D,MAAM,EAACjrB,MAAM,EAAC,GAAGirB;YACjB,IAAIC;YACJ,IAAIF;YAEJ,MAAMG,kBAAkB,CAAC;YAEzB,IAAK,IAAIt1B,IAAI,GAAGA,IAAImK,QAAQnK,IAAK;gBAC/Bq1B,gBAAgBD,QAAQ,CAACp1B,EAAE;gBAC3B,IAAIohB;gBAEJ+T,UAAUE;gBAEV,IAAI,CAACH,iBAAiBG,gBAAgB;oBACpCF,UAAUJ,aAAa,CAAC,AAAC3T,CAAAA,KAAKnZ,OAAOotB,cAAa,EAAG,WAAW,GAAG;oBAEnE,IAAIF,AAAYntB,KAAAA,MAAZmtB,SACF,MAAM,IAAI/U,WAAW,CAAC,iBAAiB,EAAEgB,GAAG,CAAC,CAAC;gBAElD;gBAEA,IAAI+T,SACF;gBAGFG,eAAe,CAAClU,MAAM,MAAMphB,EAAE,GAAGm1B;YACnC;YAEA,IAAI,CAACA,SAAS;gBAEZ,MAAMI,UAAUh7B,OAAO,OAAO,CAAC+6B,iBAC5B,GAAG,CAAC,CAAC,CAAClU,IAAI9mB,MAAM,GAAK,CAAC,QAAQ,EAAE8mB,GAAG,CAAC,CAAC,GACnC9mB,CAAAA,AAAU,UAAVA,QAAkB,wCAAwC,+BAA8B;gBAG7F,IAAIuR,IAAI1B,SACLorB,QAAQ,MAAM,GAAG,IAAI,cAAcA,QAAQ,GAAG,CAACN,cAAc,IAAI,CAAC,QAAQ,MAAMA,aAAaM,OAAO,CAAC,EAAE,IACxG;gBAEF,MAAM,IAAInV,WACR,0DAA0DvU,GAC1D;YAEJ;YAEA,OAAOspB;QACT;QACA,UAAUJ;IACZ;IC9DA,SAASS,6BAA6BxW,MAAM;QAC1C,IAAIA,OAAO,WAAW,EACpBA,OAAO,WAAW,CAAC,gBAAgB;QAGrC,IAAIA,OAAO,MAAM,IAAIA,OAAO,MAAM,CAAC,OAAO,EACxC,MAAM,IAAI,qBAAc,MAAMA;IAElC;IASe,SAASyW,gBAAgBzW,MAAM;QAC5CwW,6BAA6BxW;QAE7BA,OAAO,OAAO,GAAGwG,aAAa,IAAI,CAACxG,OAAO,OAAO;QAGjDA,OAAO,IAAI,GAAGsG,cAAc,IAAI,CAC9BtG,QACAA,OAAO,gBAAgB;QAGzB,IAAI,AAAoD,OAApD;YAAC;YAAQ;YAAO;SAAQ,CAAC,OAAO,CAACA,OAAO,MAAM,GAChDA,OAAO,OAAO,CAAC,cAAc,CAAC,qCAAqC;QAGrE,MAAMmW,UAAU,4BAAmB,CAACnW,OAAO,OAAO,IAAI,oBAAgB;QAEtE,OAAOmW,QAAQnW,QAAQ,IAAI,CAAC,SAA6B1a,QAAQ;YAC/DkxB,6BAA6BxW;YAG7B1a,SAAS,IAAI,GAAGghB,cAAc,IAAI,CAChCtG,QACAA,OAAO,iBAAiB,EACxB1a;YAGFA,SAAS,OAAO,GAAGkhB,aAAa,IAAI,CAAClhB,SAAS,OAAO;YAErD,OAAOA;QACT,GAAG,SAA4B2oB,MAAM;YACnC,IAAI,CAACxH,SAASwH,SAAS;gBACrBuI,6BAA6BxW;gBAG7B,IAAIiO,UAAUA,OAAO,QAAQ,EAAE;oBAC7BA,OAAO,QAAQ,CAAC,IAAI,GAAG3H,cAAc,IAAI,CACvCtG,QACAA,OAAO,iBAAiB,EACxBiO,OAAO,QAAQ;oBAEjBA,OAAO,QAAQ,CAAC,OAAO,GAAGzH,aAAa,IAAI,CAACyH,OAAO,QAAQ,CAAC,OAAO;gBACrE;YACF;YAEA,OAAOP,QAAQ,MAAM,CAACO;QACxB;IACF;IC3EA,MAAMyI,aAAa,CAAC;IAGpB;QAAC;QAAU;QAAW;QAAU;QAAY;QAAU;KAAS,CAAC,OAAO,CAAC,CAACpqB,MAAMtL;QAC7E01B,UAAU,CAACpqB,KAAK,GAAG,SAAmByN,KAAK;YACzC,OAAO,OAAOA,UAAUzN,QAAQ,MAAOtL,CAAAA,IAAI,IAAI,OAAO,GAAE,IAAKsL;QAC/D;IACF;IAEA,MAAMqqB,qBAAqB,CAAC;IAW5BD,WAAW,YAAY,GAAG,SAAsBE,SAAS,EAAErnB,OAAO,EAAE5Q,OAAO;QACzE,SAASk4B,cAAclI,GAAG,EAAEmI,IAAI;YAC9B,OAAO,aAAazP,UAAU,6BAA6BsH,MAAM,OAAOmI,OAAQn4B,CAAAA,UAAU,OAAOA,UAAU,EAAC;QAC9G;QAGA,OAAO,CAACH,OAAOmwB,KAAK5a;YAClB,IAAI6iB,AAAc,UAAdA,WACF,MAAM,IAAIxV,WACRyV,cAAclI,KAAK,sBAAuBpf,CAAAA,UAAU,SAASA,UAAU,EAAC,IACxE6R,WAAW,cAAc;YAI7B,IAAI7R,WAAW,CAAConB,kBAAkB,CAAChI,IAAI,EAAE;gBACvCgI,kBAAkB,CAAChI,IAAI,GAAG;gBAE1BvvB,QAAQ,IAAI,CACVy3B,cACElI,KACA,iCAAiCpf,UAAU;YAGjD;YAEA,OAAOqnB,YAAYA,UAAUp4B,OAAOmwB,KAAK5a,QAAQ;QACnD;IACF;IAEA2iB,WAAW,QAAQ,GAAG,SAAkBK,eAAe;QACrD,OAAO,CAACv4B,OAAOmwB;YAEbvvB,QAAQ,IAAI,CAAC,GAAGuvB,IAAI,4BAA4B,EAAEoI,iBAAiB;YACnE,OAAO;QACT;IACF;IAYA,SAASC,cAAcl5B,OAAO,EAAEm5B,MAAM,EAAEC,YAAY;QAClD,IAAI,AAAmB,YAAnB,OAAOp5B,SACT,MAAM,IAAIsjB,WAAW,6BAA6BA,WAAW,oBAAoB;QAEnF,MAAMhe,OAAO7H,OAAO,IAAI,CAACuC;QACzB,IAAIkD,IAAIoC,KAAK,MAAM;QACnB,MAAOpC,MAAM,EAAG;YACd,MAAM2tB,MAAMvrB,IAAI,CAACpC,EAAE;YACnB,MAAM41B,YAAYK,MAAM,CAACtI,IAAI;YAC7B,IAAIiI,WAAW;gBACb,MAAMp4B,QAAQV,OAAO,CAAC6wB,IAAI;gBAC1B,MAAM5yB,SAASyC,AAAUwK,KAAAA,MAAVxK,SAAuBo4B,UAAUp4B,OAAOmwB,KAAK7wB;gBAC5D,IAAI/B,AAAW,SAAXA,QACF,MAAM,IAAIqlB,WAAW,YAAYuN,MAAM,cAAc5yB,QAAQqlB,WAAW,oBAAoB;gBAE9F;YACF;YACA,IAAI8V,AAAiB,SAAjBA,cACF,MAAM,IAAI9V,WAAW,oBAAoBuN,KAAKvN,WAAW,cAAc;QAE3E;IACF;IAEA,0BAAe;QACb4V;QACAN;IACF;ICvFA,MAAM,mBAAa,4BAAoB;IASvC,MAAMS;QACJ,YAAYC,cAAc,CAAE;YAC1B,IAAI,CAAC,QAAQ,GAAGA;YAChB,IAAI,CAAC,YAAY,GAAG;gBAClB,SAAS,IAAI;gBACb,UAAU,IAAI;YAChB;QACF;QAUA,MAAM,QAAQC,WAAW,EAAErX,MAAM,EAAE;YACjC,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,QAAQ,CAACqX,aAAarX;YAC1C,EAAE,OAAOlkB,KAAK;gBACZ,IAAIA,eAAe8C,OAAO;oBACxB,IAAI04B,QAAQ,CAAC;oBAEb14B,MAAM,iBAAiB,GAAGA,MAAM,iBAAiB,CAAC04B,SAAUA,QAAQ,IAAI14B;oBAGxE,MAAMwgB,QAAQkY,MAAM,KAAK,GAAGA,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,MAAM;oBAC/D,IAAI;wBACF,IAAKx7B,IAAI,KAAK,EAGP;4BAAA,IAAIsjB,SAAS,CAACnW,OAAOnN,IAAI,KAAK,EAAE,QAAQ,CAACsjB,MAAM,OAAO,CAAC,aAAa,MACzEtjB,IAAI,KAAK,IAAI,OAAOsjB;wBACtB,OAJEtjB,IAAI,KAAK,GAAGsjB;oBAKhB,EAAE,OAAOgE,GAAG,CAEZ;gBACF;gBAEA,MAAMtnB;YACR;QACF;QAEA,SAASu7B,WAAW,EAAErX,MAAM,EAAE;YAG5B,IAAI,AAAuB,YAAvB,OAAOqX,aAA0B;gBACnCrX,SAASA,UAAU,CAAC;gBACpBA,OAAO,GAAG,GAAGqX;YACf,OACErX,SAASqX,eAAe,CAAC;YAG3BrX,SAASoR,YAAY,IAAI,CAAC,QAAQ,EAAEpR;YAEpC,MAAM,EAAC0D,YAAY,EAAE6T,gBAAgB,EAAE1uB,OAAO,EAAC,GAAGmX;YAElD,IAAI0D,AAAiB1a,KAAAA,MAAjB0a,cACF,+BAAuB,CAACA,cAAc;gBACpC,mBAAmB,iBAAW,YAAY,CAAC,iBAAW,OAAO;gBAC7D,mBAAmB,iBAAW,YAAY,CAAC,iBAAW,OAAO;gBAC7D,qBAAqB,iBAAW,YAAY,CAAC,iBAAW,OAAO;YACjE,GAAG;YAGL,IAAI6T,AAAoB,QAApBA;gBACF,IAAItX,MAAM,UAAU,CAACsX,mBACnBvX,OAAO,gBAAgB,GAAG;oBACxB,WAAWuX;gBACb;qBAEA,+BAAuB,CAACA,kBAAkB;oBACxC,QAAQ,iBAAW,QAAQ;oBAC3B,WAAW,iBAAW,QAAQ;gBAChC,GAAG;;YAIP,+BAAuB,CAACvX,QAAQ;gBAC9B,SAAS,iBAAW,QAAQ,CAAC;gBAC7B,eAAe,iBAAW,QAAQ,CAAC;YACrC,GAAG;YAGHA,OAAO,MAAM,GAAG,AAACA,CAAAA,OAAO,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAI,EAAG,WAAW;YAG5E,IAAIwX,iBAAiB3uB,WAAWoX,MAAM,KAAK,CACzCpX,QAAQ,MAAM,EACdA,OAAO,CAACmX,OAAO,MAAM,CAAC;YAGxBnX,WAAWoX,MAAM,OAAO,CACtB;gBAAC;gBAAU;gBAAO;gBAAQ;gBAAQ;gBAAO;gBAAS;aAAS,EAC3D,CAAC9Z;gBACC,OAAO0C,OAAO,CAAC1C,OAAO;YACxB;YAGF6Z,OAAO,OAAO,GAAGwG,aAAa,MAAM,CAACgR,gBAAgB3uB;YAGrD,MAAM4uB,0BAA0B,EAAE;YAClC,IAAIC,iCAAiC;YACrC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAoCC,WAAW;gBAC/E,IAAI,AAA+B,cAA/B,OAAOA,YAAY,OAAO,IAAmBA,AAAgC,UAAhCA,YAAY,OAAO,CAAC3X,SACnE;gBAGF0X,iCAAiCA,kCAAkCC,YAAY,WAAW;gBAE1FF,wBAAwB,OAAO,CAACE,YAAY,SAAS,EAAEA,YAAY,QAAQ;YAC7E;YAEA,MAAMC,2BAA2B,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAkCD,WAAW;gBAC9EC,yBAAyB,IAAI,CAACD,YAAY,SAAS,EAAEA,YAAY,QAAQ;YAC3E;YAEA,IAAIE;YACJ,IAAI72B,IAAI;YACR,IAAImB;YAEJ,IAAI,CAACu1B,gCAAgC;gBACnC,MAAMI,QAAQ;oBAACrB,gBAAgB,IAAI,CAAC,IAAI;oBAAGztB,KAAAA;iBAAU;gBACrD8uB,MAAM,OAAO,CAAC,KAAK,CAACA,OAAOL;gBAC3BK,MAAM,IAAI,CAAC,KAAK,CAACA,OAAOF;gBACxBz1B,MAAM21B,MAAM,MAAM;gBAElBD,UAAUnK,QAAQ,OAAO,CAAC1N;gBAE1B,MAAOhf,IAAImB,IACT01B,UAAUA,QAAQ,IAAI,CAACC,KAAK,CAAC92B,IAAI,EAAE82B,KAAK,CAAC92B,IAAI;gBAG/C,OAAO62B;YACT;YAEA11B,MAAMs1B,wBAAwB,MAAM;YAEpC,IAAI1F,YAAY/R;YAEhBhf,IAAI;YAEJ,MAAOA,IAAImB,IAAK;gBACd,MAAM41B,cAAcN,uBAAuB,CAACz2B,IAAI;gBAChD,MAAMg3B,aAAaP,uBAAuB,CAACz2B,IAAI;gBAC/C,IAAI;oBACF+wB,YAAYgG,YAAYhG;gBAC1B,EAAE,OAAOt1B,OAAO;oBACdu7B,WAAW,IAAI,CAAC,IAAI,EAAEv7B;oBACtB;gBACF;YACF;YAEA,IAAI;gBACFo7B,UAAUpB,gBAAgB,IAAI,CAAC,IAAI,EAAE1E;YACvC,EAAE,OAAOt1B,OAAO;gBACd,OAAOixB,QAAQ,MAAM,CAACjxB;YACxB;YAEAuE,IAAI;YACJmB,MAAMy1B,yBAAyB,MAAM;YAErC,MAAO52B,IAAImB,IACT01B,UAAUA,QAAQ,IAAI,CAACD,wBAAwB,CAAC52B,IAAI,EAAE42B,wBAAwB,CAAC52B,IAAI;YAGrF,OAAO62B;QACT;QAEA,OAAO7X,MAAM,EAAE;YACbA,SAASoR,YAAY,IAAI,CAAC,QAAQ,EAAEpR;YACpC,MAAMiP,WAAW9H,cAAcnH,OAAO,OAAO,EAAEA,OAAO,GAAG;YACzD,OAAO6B,SAASoN,UAAUjP,OAAO,MAAM,EAAEA,OAAO,gBAAgB;QAClE;IACF;IAGAC,MAAM,OAAO,CAAC;QAAC;QAAU;QAAO;QAAQ;KAAU,EAAE,SAA6B9Z,MAAM;QAErFgxB,MAAM,SAAS,CAAChxB,OAAO,GAAG,SAASzC,GAAG,EAAEsc,MAAM;YAC5C,OAAO,IAAI,CAAC,OAAO,CAACoR,YAAYpR,UAAU,CAAC,GAAG;gBAC5C7Z;gBACAzC;gBACA,MAAM,AAACsc,CAAAA,UAAU,CAAC,GAAG,IAAI;YAC3B;QACF;IACF;IAEAC,MAAM,OAAO,CAAC;QAAC;QAAQ;QAAO;KAAQ,EAAE,SAA+B9Z,MAAM;QAG3E,SAAS8xB,mBAAmBC,MAAM;YAChC,OAAO,SAAoBx0B,GAAG,EAAEhF,IAAI,EAAEshB,MAAM;gBAC1C,OAAO,IAAI,CAAC,OAAO,CAACoR,YAAYpR,UAAU,CAAC,GAAG;oBAC5C7Z;oBACA,SAAS+xB,SAAS;wBAChB,gBAAgB;oBAClB,IAAI,CAAC;oBACLx0B;oBACAhF;gBACF;YACF;QACF;QAEAy4B,MAAM,SAAS,CAAChxB,OAAO,GAAG8xB;QAE1Bd,MAAM,SAAS,CAAChxB,SAAS,OAAO,GAAG8xB,mBAAmB;IACxD;IAEA,mBAAed;IC7Nf,MAAMgB;QACJ,YAAYC,QAAQ,CAAE;YACpB,IAAI,AAAoB,cAApB,OAAOA,UACT,MAAM,IAAItzB,UAAU;YAGtB,IAAIuzB;YAEJ,IAAI,CAAC,OAAO,GAAG,IAAI3K,QAAQ,SAAyB9G,OAAO;gBACzDyR,iBAAiBzR;YACnB;YAEA,MAAMhH,QAAQ,IAAI;YAGlB,IAAI,CAAC,OAAO,CAAC,IAAI,CAACuT,CAAAA;gBAChB,IAAI,CAACvT,MAAM,UAAU,EAAE;gBAEvB,IAAI5e,IAAI4e,MAAM,UAAU,CAAC,MAAM;gBAE/B,MAAO5e,MAAM,EACX4e,MAAM,UAAU,CAAC5e,EAAE,CAACmyB;gBAEtBvT,MAAM,UAAU,GAAG;YACrB;YAGA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG0Y,CAAAA;gBAClB,IAAIvK;gBAEJ,MAAM8J,UAAU,IAAInK,QAAQ9G,CAAAA;oBAC1BhH,MAAM,SAAS,CAACgH;oBAChBmH,WAAWnH;gBACb,GAAG,IAAI,CAAC0R;gBAERT,QAAQ,MAAM,GAAG;oBACfjY,MAAM,WAAW,CAACmO;gBACpB;gBAEA,OAAO8J;YACT;YAEAO,SAAS,SAAgBz5B,OAAO,EAAEqhB,MAAM,EAAEvZ,OAAO;gBAC/C,IAAImZ,MAAM,MAAM,EAEd;gBAGFA,MAAM,MAAM,GAAG,IAAI,qBAAcjhB,SAASqhB,QAAQvZ;gBAClD4xB,eAAezY,MAAM,MAAM;YAC7B;QACF;QAKA,mBAAmB;YACjB,IAAI,IAAI,CAAC,MAAM,EACb,MAAM,IAAI,CAAC,MAAM;QAErB;QAMA,UAAU+L,QAAQ,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACfA,SAAS,IAAI,CAAC,MAAM;gBACpB;YACF;YAEA,IAAI,IAAI,CAAC,UAAU,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAACA;iBAErB,IAAI,CAAC,UAAU,GAAG;gBAACA;aAAS;QAEhC;QAMA,YAAYA,QAAQ,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAClB;YAEF,MAAM/rB,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC+rB;YACtC,IAAI/rB,AAAU,OAAVA,OACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAACA,OAAO;QAElC;QAEA,gBAAgB;YACd,MAAM0zB,aAAa,IAAIC;YAEvB,MAAMl4B,QAAQ,CAACS;gBACbw3B,WAAW,KAAK,CAACx3B;YACnB;YAEA,IAAI,CAAC,SAAS,CAACT;YAEfi4B,WAAW,MAAM,CAAC,WAAW,GAAG,IAAM,IAAI,CAAC,WAAW,CAACj4B;YAEvD,OAAOi4B,WAAW,MAAM;QAC1B;QAMA,OAAO,SAAS;YACd,IAAIH;YACJ,MAAMvT,QAAQ,IAAIuY,YAAY,SAAkBx4B,CAAC;gBAC/CwzB,SAASxzB;YACX;YACA,OAAO;gBACLigB;gBACAuT;YACF;QACF;IACF;IAEA,2BAAegF;IC/GA,SAASxvB,OAAO/M,QAAQ;QACrC,OAAO,SAAcqX,GAAG;YACtB,OAAOrX,SAAS,KAAK,CAAC,MAAMqX;QAC9B;IACF;IChBe,SAASslB,aAAaC,OAAO;QAC1C,OAAOvY,MAAM,QAAQ,CAACuY,YAAaA,AAAyB,SAAzBA,QAAQ,YAAY;IACzD;ICbA,MAAMC,iBAAiB;QACrB,UAAU;QACV,oBAAoB;QACpB,YAAY;QACZ,YAAY;QACZ,IAAI;QACJ,SAAS;QACT,UAAU;QACV,6BAA6B;QAC7B,WAAW;QACX,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,iBAAiB;QACjB,QAAQ;QACR,iBAAiB;QACjB,kBAAkB;QAClB,OAAO;QACP,UAAU;QACV,aAAa;QACb,UAAU;QACV,QAAQ;QACR,mBAAmB;QACnB,mBAAmB;QACnB,YAAY;QACZ,cAAc;QACd,iBAAiB;QACjB,WAAW;QACX,UAAU;QACV,kBAAkB;QAClB,eAAe;QACf,6BAA6B;QAC7B,gBAAgB;QAChB,UAAU;QACV,MAAM;QACN,gBAAgB;QAChB,oBAAoB;QACpB,iBAAiB;QACjB,YAAY;QACZ,sBAAsB;QACtB,qBAAqB;QACrB,mBAAmB;QACnB,WAAW;QACX,oBAAoB;QACpB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,UAAU;QACV,iBAAiB;QACjB,sBAAsB;QACtB,iBAAiB;QACjB,6BAA6B;QAC7B,4BAA4B;QAC5B,qBAAqB;QACrB,gBAAgB;QAChB,YAAY;QACZ,oBAAoB;QACpB,gBAAgB;QAChB,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,cAAc;QACd,aAAa;QACb,+BAA+B;IACjC;IAEAl9B,OAAO,OAAO,CAACk9B,gBAAgB,OAAO,CAAC,CAAC,CAACh9B,KAAK+C,MAAM;QAClDi6B,cAAc,CAACj6B,MAAM,GAAG/C;IAC1B;IAEA,+BAAeg9B;IC3Cf,SAASC,eAAeC,aAAa;QACnC,MAAM3c,UAAU,IAAI,WAAM2c;QAC1B,MAAMC,WAAWlf,KAAK,4BAAuB,EAAEsC;QAG/CiE,MAAM,MAAM,CAAC2Y,UAAU,oBAAe,EAAE5c,SAAS;YAAC,YAAY;QAAI;QAGlEiE,MAAM,MAAM,CAAC2Y,UAAU5c,SAAS,MAAM;YAAC,YAAY;QAAI;QAGvD4c,SAAS,MAAM,GAAG,SAAgBxB,cAAc;YAC9C,OAAOsB,eAAetH,YAAYuH,eAAevB;QACnD;QAEA,OAAOwB;IACT;IAGA,MAAMC,QAAQH,eAAe;IAG7BG,MAAM,KAAK,GAAG;IAGdA,MAAM,aAAa,GAAG;IACtBA,MAAM,WAAW,GAAG;IACpBA,MAAM,QAAQ,GAAGpS;IACjBoS,MAAM,OAAO,GAAGxR;IAChBwR,MAAM,UAAU,GAAG;IAGnBA,MAAM,UAAU,GAAGzX;IAGnByX,MAAM,MAAM,GAAGA,MAAM,aAAa;IAGlCA,MAAM,GAAG,GAAG,SAAaC,QAAQ;QAC/B,OAAOpL,QAAQ,GAAG,CAACoL;IACrB;IAEAD,MAAM,MAAM,GAAGlwB;IAGfkwB,MAAM,YAAY,GAAGN;IAGrBM,MAAM,WAAW,GAAGzH;IAEpByH,MAAM,YAAY,GAAGrS;IAErBqS,MAAM,UAAU,GAAG9e,CAAAA,QAAS,uBAAekG,MAAM,UAAU,CAAClG,SAAS,IAAIjQ,SAASiQ,SAASA;IAE3F8e,MAAM,UAAU,GAAG,4BAAmB;IAEtCA,MAAM,cAAc,GAAG;IAEvBA,MAAM,OAAO,GAAGA;IAGhB,kBAAeA;IC/ER,MAAME;QAGZ,OAAO,eAAet8B,KAAc,EAAgB;YAEnD,IAAIA,SAAS,AAAiB,YAAjB,OAAOA,SAAsB,UAAUA,SAAS,aAAaA,OACzE,OAAOA;YAIR,OAAO;gBACN,MAAM;gBACN,SAAS;gBACT,MAAMA;YACP;QACD;QAEA,YAAYujB,MAA4B,CAAE;YACzC,IAAI,CAAC,SAAS,GAAG6Y,UAAAA,MAAY,CAAC7Y;QAC/B;QAIO,uBAAgCgZ,SAAmE,EAAE;YAC3G,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACvC,CAAC1zB;gBAEA,MAAM7I,QAAQu8B,UAAU1zB;gBAExB,IAAI7I,OACH,OAAOixB,QAAQ,MAAM,CACpBnyB,OAAO,MAAM,CAACkB,OAAO;oBACpB,OAAO;wBACN,QAAQ6I,SAAS,MAAM,CAAC,MAAM;wBAC9B,KAAKA,SAAS,MAAM,CAAC,GAAG;oBACzB;gBACD;gBAIF,OAAOA;YACR,GACA,CAAC7I;gBAEA,MAAMw8B,gBAA8B;oBACnC,MAAMx8B,MAAM,QAAQ,EAAE,UAAU;oBAChC,SAASA,MAAM,OAAO,IAAI;oBAC1B,MAAMA,MAAM,QAAQ,EAAE;oBACtB,OAAO;wBACN,QAAQA,MAAM,MAAM,EAAE;wBACtB,KAAKA,MAAM,MAAM,EAAE;oBACpB;gBACD;gBAGA,IAAIA,MAAM,QAAQ,EAAE,MACnB;oBAAA,IAAI,AAA+B,YAA/B,OAAOA,MAAM,QAAQ,CAAC,IAAI,EAAe;wBAG5C,MAAMy8B,cAAcz8B,MAAM,QAAQ,CAAC,IAAI;wBACvC,IAAIy8B,YAAY,OAAO,EACtBD,cAAc,OAAO,GAAGC,YAAY,OAAO;wBAG5CD,cAAc,IAAI,GAAGC;oBACtB;gBAAA;gBAID,OAAOxL,QAAQ,MAAM,CAACuL;YACvB;QAEF;QAGA,MAAa,IAAajZ,MAA0B,EAAc;YACjE,IAAI;gBACH,MAAM1a,WAAW,MAAM,IAAI,CAAC,SAAS,CAAI0a;gBACzC,OAAO1a,SAAS,IAAI;YACrB,EAAE,OAAO7I,OAAO;gBACf,OAAOixB,QAAQ,MAAM,CAACqL,KAAK,cAAc,CAACt8B;YAC3C;QACD;IACD;IC5EO,SAAS08B,iBAAiB/pB,GAAW,EAAEgqB,GAAW;QACxD,OAAOn4B,KAAK,KAAK,CAACA,KAAK,MAAM,KAAMm4B,CAAAA,MAAMhqB,MAAM,MAAMA;IACtD;IAEO,MAAMiqB,eAAe,CAACC;QAE5B,MAAM9uB,WAAWf,6BAAAA,QAAa,CAAC6vB;QAE/B,MAAMC,WAAW5vB,WAAAA,MAAW,CAAC2vB;QAC7B,MAAME,QAAQ9vB,2BAAAA,QAAW,CAAC4vB;QAE1B,MAAMlvB,WAAWovB,MAAM,IAAI;QAE3B,MAAMC,mBAAmBD,MAAM,KAAK;QAEpC,OAAO;YACN,MAAMhvB;YACN,MAAM+uB;YACN,MAAMnvB;YACN,kBAAkBqvB,iBAAiB,QAAQ;QAC5C;IACD;IAiBO,MAAMC,2BAA2B,CAACC,OAAeC,QAAgBC;QACvE,MAAMC,cAAcD,WAAW,CAAC,EAAE,GAAGA,WAAW,CAAC,EAAE;QACnD,IAAIE;QACJ,IAAIC;QAEJ,IAAIL,QAAQC,SAASE,aAAa;YAEjCE,aAAaJ;YACbG,YAAYH,SAASE;QACtB,OAAO;YAENC,YAAYJ;YACZK,aAAaL,QAAQG;QACtB;QAEA,MAAMG,KAAMN,AAAAA,CAAAA,QAAQI,SAAQ,IAAK;QACjC,MAAMG,KAAMN,AAAAA,CAAAA,SAASI,UAAS,IAAK;QACnC,MAAMG,KAAKF,KAAKF;QAChB,MAAMK,KAAKF,KAAKF;QAGhB,OAAO;YACN,IAAIC,KAAKN;YACT,IAAIO,KAAKN;YACT,IAAIO,KAAKR;YACT,IAAIS,KAAKR;QACV;IACD;IAGO,MAAMS,gBAAgB,CAACC;QAC7B,MAAMC,UAAoB,EAAE;QAE5B,MAAM/jB,SAAS,IAAIgkB,cAAO;YACzB,WAAUl4B,IAAI,EAAEwR,UAAU;gBACzB,IAAIxR,AAAS,UAATA,QAAmBwR,CAAAA,WAAW,GAAG,CAAC,IAAI,MAAMA,WAAW,UAAU,CAAC,IAAI,EAAC,GAC1EymB,QAAQ,IAAI,CAACzmB,WAAW,GAAG,CAAC,IAAI,MAAMA,WAAW,UAAU,CAAC,IAAI;YAElE;QACD;QAEA0C,OAAO,KAAK,CAAC8jB;QACb9jB,OAAO,GAAG;QAEV,OAAO+jB;IACR;IAEO,MAAME,gBAAgB,CAACH,MAAc1+B;QAC3C,IAAI8+B,aAAaJ;QAEjB,MAAMK,aAAa,CAACvmB,OAAqCA,AAAc,UAAdA,KAAK,IAAI,IAAcA,AAAc,UAAdA,KAAK,IAAI;QAEzF,MAAMwmB,cAAc,CAACxmB;YACpB,IAAIymB,YAAqBzmB,OACxB,KAAK,MAAM+B,SAAS/B,KAAK,QAAQ,CAAE;gBAClC,IAAIumB,WAAWxkB,QACdva,SAASua;gBAEVykB,YAAYzkB;YACb;QAEF;QAEA,MAAM2kB,UAAU,IAAIC,eAAW,CAACt+B,OAAOu+B;YACtC,IAAIv+B,OACH2C,QAAQ,GAAG,CAAC3C;iBAGZu+B,IAAI,OAAO,CAACJ;YAGbF,aAAaO,IAAcD,KAAK;gBAAE,gBAAgB;YAAM;QACzD;QAEA,MAAMxkB,SAAS,IAAIgkB,cAAOM,SAAS;YAAE,gBAAgB;QAAM;QAC3DtkB,OAAO,KAAK,CAAC8jB;QACb9jB,OAAO,GAAG;QAEV,OAAOkkB;IACR;IAEO,MAAMQ,iBAAiB,CAACz+B;QAC9B,IAAIA,iBAAiBmC,OACpB,OAAOnC,MAAM,QAAQ;QAGtB,IAAI,AAAiB,YAAjB,OAAOA,OACV,OAAO2D,KAAK,SAAS,CAAC3D;QAGvB,OAAOA;IACR;IAkCO,MAAM0+B,gBAAgB,CAAO,GAAGC,UAC/B,OAAOC,MAAMjwB;YACnB,IAAIrP,SAA0B;gBAC7B,MAAM;gBACN,SAAS;gBAET,MAAM;YACP;YAEA,IAAK,IAAI6D,QAAQ,GAAGA,QAAQw7B,QAAQ,MAAM,EAAEx7B,QAAS;gBACpD,MAAM07B,SAASF,OAAO,CAACx7B,MAAM;gBAE7B,IAAI;oBACH7D,SAAS,MAAMu/B,OAAOD,MAAMjwB;gBAC7B,EAAE,OAAO3O,OAAO;oBACfV,SAASg9B,KAAK,cAAc,CAACt8B;gBAC9B;gBAGA,IAAIV,AAAgB,MAAhBA,OAAO,IAAI,IAAUA,AAAgB,QAAhBA,OAAO,IAAI,EACnC;gBAID,IAAI6D,UAAUw7B,QAAQ,MAAM,GAAG,GAC9BC,KAAK,MAAM,CAAC,KAAK,CAACt/B,OAAO,OAAO,EAAEm/B,eAAen/B,OAAO,IAAI,GAAGA,OAAO,KAAK;YAE7E;YAGA,OAAOA;QACR;IAUM,eAAew/B,oBAAoBC,IAAU,EAAElB,IAAY,EAAEx8B,UAAU;QAAE,QAAQ;QAAa,UAAU;IAAK,CAAC;QACpH,IAAI;YAEH,MAAM09B,KAAK,QAAQ,CAClB,OAAO,EAAEC,WAAW,EAAE95B,MAAM,EAAE;gBAC7B,MAAMwnB,OAAO,IAAIlI,KAAK;oBAACwa;iBAAY,EAAE;oBAAE,MAAM95B;gBAAO;gBACpD,MAAMrC,UAAU,SAAS,CAAC,KAAK,CAAC;oBAAC,IAAIo8B,cAAc;wBAAE,CAAC/5B,OAAO,EAAEwnB;oBAAK;iBAAG;YACxE,GACA;gBAAE,aAAamR;gBAAM,QAAQx8B,QAAQ,MAAM;YAAC;QAE9C,EAAE,OAAOrB,OAAO;YACf,IAAIqB,QAAQ,QAAQ,EAEnB,MAAM09B,KAAK,QAAQ,CAAC,CAACC;gBACpB,MAAME,MAAMn8B,SAAS,aAAa,CAAC;gBACnCm8B,IAAI,eAAe,GAAG;gBACtBA,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;;;;;QAKjB,CAAC;gBAELA,IAAI,SAAS,GAAGF;gBAChBj8B,SAAS,IAAI,CAAC,WAAW,CAACm8B;gBAE1B,MAAMC,QAAQp8B,SAAS,WAAW;gBAClCo8B,MAAM,kBAAkB,CAACD;gBAGzB,MAAME,YAAYx8B,OAAO,YAAY;gBACrCw8B,UAAU,eAAe;gBACzBA,UAAU,QAAQ,CAACD;gBAEnBp8B,SAAS,WAAW,CAAC;gBACrBA,SAAS,IAAI,CAAC,WAAW,CAACm8B;gBAC1BE,UAAU,eAAe;YAC1B,GAAGvB;QAEL;IACD;IAUO,SAASwB,cACfN,IAAU,EACVO,aAAqB,EACrBC,MAAc,EACdC,cAAsB,EACtBn+B,UAGI,CAAC,CAAC;QACN,MAAM,EACLo+B,gBAAgB,IAAI,EACpBC,iBAAiB,KAAK,EACtB,GAAGr+B;QAEJ,MAAMs+B,QAAQZ,KAAK,OAAO,CAACO;QAC3B,MAAMM,SAASb,KAAK,OAAO,CAACS;QAE5B,MAAMK,aAAaC,YAAY;YAC9B,IAAI;gBACH,IAAI,MAAMH,MAAM,KAAK,KAAK,KAAK,MAAMA,MAAM,SAAS,MAAO,OAAMA,MAAM,WAAW,MAAI,EAAC,EAAG,QAAQ,CAACJ,SAAS;oBAC3G,MAAMK,OAAO,KAAK,CAAC;wBAAE,OAAO;oBAAK;oBAEjC,IAAIF,gBACHK,cAAcF;gBAEhB;YACD,EAAE,OAAOxgC,KAAK,CAAE;QACjB,GAAGogC;QAEH,OAAO;YACNM,cAAcF;QACf;IACD;IAGO,MAAMG,sBAAsB,CAAC/4B;QACnC,MAAMg5B,oBAA4C,CAAC;QAGnD,IAAI,CAACh5B,OAAO,CAACA,IAAI,QAAQ,CAAC,MACzB,OAAOg5B;QAIR,MAAMC,cAAcj5B,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;QAGrC,IAAI,CAACi5B,aACJ,OAAOD;QAIR,MAAME,mBAAmBD,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE;QAGlD,MAAME,mBAAmBD,iBAAiB,KAAK,CAAC;QAEhD,KAAK,MAAMjgC,QAAQkgC,iBAAkB;YAEpC,IAAI,CAAClgC,MAAM;YAEX,MAAMmgC,aAAangC,KAAK,OAAO,CAAC;YAGhC,IAAImgC,AAAe,OAAfA,YACHJ,iBAAiB,CAAC//B,KAAK,GAAG;iBACpB;gBACN,MAAMlB,MAAMkB,KAAK,KAAK,CAAC,GAAGmgC;gBAC1B,MAAMt+B,QAAQ7B,KAAK,KAAK,CAACmgC,aAAa;gBAGtC,IAAI;oBACHJ,iBAAiB,CAACjhC,IAAI,GAAGosB,mBAAmBrpB;gBAC7C,EAAE,OAAO4kB,GAAG;oBACXsZ,iBAAiB,CAACjhC,IAAI,GAAG+C;gBAC1B;YACD;QACD;QAEA,OAAOk+B;IACR;IAQO,MAAMK,gBAAgB,CAA8B3xB,QAAWC,WAC9D9P,OAAO,MAAM,CAAC,CAAC,GAAG8P,UAAUD;;IC5RpC,SAAS4xB,WAAW1D,QAAQ;QACxB,OAAO,IAAI5L,QAAQ,CAAC9G,SAASC;YACzB,MAAMoW,UAAU,0CAAiE,CAAC3D;YAClF,qCAA4D,CAAC2D,SAAS,CAACnhC,KAAK09B;gBACxE,IAAI19B,KAAK;oBACL,IAAI,aAAaA,IAAI,IAAI,EAAE,OAAO+qB,OAAO/qB;oBACzC,sCAA6D,CAACmhC,SAAS;wBACnE,WAAW;oBACf,GAAG,CAACnhC;wBACA,IAAIA,KAAK,OAAO+qB,OAAO/qB;wBACvBohC;oBACJ;gBACJ,OAAO,IAAI1D,MAAM,WAAW,IAAI2D;qBAC3BtW,OAAO,IAAIjoB,MAAM,GAAGq+B,QAAQ,mBAAmB,CAAC;YACzD;YACA,SAASE;gBACL,qCAA4D,CAAC7D,UAAU,CAACx9B,KAAK09B;oBACzE,IAAI19B;wBACA,IAAI,aAAaA,IAAI,IAAI,EAAEohC;6BACtBrW,OAAO/qB;2BACT,IAAI09B,MAAM,MAAM,IAAI5S;yBACtBC,OAAO,IAAIjoB,MAAM,GAAG06B,SAAS,cAAc,CAAC;gBACrD;YACJ;YACA,SAAS4D;gBACL,0CAAiE,CAAC5D,UAAU,IAAI,CAACx9B;oBAC7E,IAAIA,KAAK+qB,OAAO/qB;yBACX8qB;gBACT;YACJ;QACJ;IACJ;IACA,eAAewW,cAAc15B,GAAG,EAAE25B,QAAQ;QACtC,MAAML,WAAWK;QACjB,OAAO,IAAI3P,QAAQ,CAAC9G,SAASC;YACzB,uCAA8D,CAACnjB,KAAK,CAAC4B;gBACjE,IAAI,QAAQA,SAAS,UAAU,EAAE;oBAC7B,MAAMg4B,aAAa,kDAAyE,CAACD;oBAC7F/3B,SAAS,IAAI,CAACg4B;oBACdA,WAAW,EAAE,CAAC,UAAU;wBACpBA,WAAW,KAAK;wBAChBl+B,QAAQ,GAAG,CAAC,gBAAgBi+B;wBAC5BzW,QAAQyW;oBACZ;gBACJ,OAAO;oBACHj+B,QAAQ,GAAG,CAAC,WAAWkG,SAAS,UAAU;oBAC1CA,SAAS,MAAM;oBACfuhB;gBACJ;YACJ,GAAG,EAAE,CAAC,SAAS,CAACpqB;gBACZ2C,QAAQ,KAAK,CAAC,cAAc3C,MAAM,OAAO;gBACzCoqB;YACJ;QACJ;IACJ;IACA,SAAS0W,mBAAmBC,QAAQ;QAChC,MAAM1vB,YAAY,IAAInK,IAAI65B;QAC1B,OAAO,2CAAkE,CAAC1vB,UAAU,QAAQ;IAChG;IACA,MAAM2vB,QAAQ,CAAC/7B,KAAK,IAAIgsB,QAAQ,CAAC9G,UAAUxqB,WAAWwqB,SAASllB;IAC/D,MAAMg8B,UAAU,CAACh/B,MAAMC,UAAW;YAC1B,MAAM;YACN,SAASA,WAAW;YACpBD;QACJ;IACJ,MAAMi/B,eAAe,CAACxyB;QAClB,IAAIyyB,IAAI;QACR,MAAMC,IAAI;QACV,IAAI,IAAIC,KAAK,GAAGA,KAAK3yB,QAAQ2yB,KAAKF,KAAKC,EAAE,MAAM,CAAC58B,KAAK,KAAK,CAACA,KAAK,MAAM,KAAK48B,EAAE,MAAM;QACnF,OAAOD;IACX;IC3HA,MAAMG,WAAmC;QACxC,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,YAAY;QACZ,WAAW;QACX,UAAU;QACV,UAAU;IACX;IAEO,MAAMC,aAA4B,OAAO3C,MAAMjwB;QACrD,MAAM,EAAE6yB,oBAAoB,EAAEC,kBAAkB,EAAEC,kBAAkB,EAAE,GAAG/yB,OAAO,WAAW;QAC3F,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAMz3B,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,OAAOjzB,OAAO,KAAK;YACpB;QACD;QAGAxH,KAAK,sBAAsB,CAAiB,CAAC0B;YAC5C,MAAMg5B,UAAUlzB,AAAoB,YAApBA,OAAO,QAAQ,GAAe,OAAO;YAGrD,IAAI9F,AAAwB,MAAxBA,SAAS,IAAI,CAAC,KAAK,EAAQ;gBAC9B,IAAIi5B,SAASj5B,SAAS,MAAM,CAAC,eAAe,IAAI,CAAC,EAAE,EAAEg5B,QAAQ,SAAS,CAAC;gBAEvE,IAAIh5B,AAAwB,aAAxBA,SAAS,IAAI,CAAC,KAAK,EACtBi5B,SAASD,UAAUP,QAAQ,CAACz4B,SAAS,IAAI,CAAC,KAAK,CAAC;gBAEjD,IAAIA,AAAwB,cAAxBA,SAAS,IAAI,CAAC,KAAK,EACtBi5B,SAAS,CAAC,EAAE,EAAED,UAAUP,QAAQ,CAACz4B,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE;qBACjD,IAAIy4B,QAAQ,CAACz4B,SAAS,IAAI,CAAC,KAAK,CAAC,EACvCi5B,SAASR,QAAQ,CAACz4B,SAAS,IAAI,CAAC,KAAK,CAAC;gBAGvC,OAAO;oBACN,MAAMy4B,QAAQ,CAACz4B,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM;oBAC5C,SAASi5B;oBACT,MAAMj5B,SAAS,IAAI;gBACpB;YACD;QACD;QAGA,MAAM1B,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,iBAAiB,CAAC,kBAAkB,EAAEwH,AAAoB,YAApBA,OAAO,QAAQ,GAAe,OAAO,KAAK,CAAC,CAAC;QACnF;QAGA,MAAMozB,YAAY,MAAM56B,KAAK,GAAG,CAA+C;YAC9E,QAAQ;YACR,KAAK;YACL,iBAAiB;QAClB;QAEA,MAAM66B,QAAQD,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM;QAExC,MAAME,eAAe,OAAOC;YAE3B,MAAMC,SAASD,QAAQ,MAAM,CAAC,CAACj7B,MAAQ,CAAC,CAACA,OAAOA,AAAe,OAAfA,IAAI,IAAI;YAGxD,OAAO,MAAMgqB,QAAQ,GAAG,CACvBkR,OAAO,GAAG,CAAC,OAAOl7B;gBACjB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,MAAMo7B,QAAQ,MAAM1B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;gBAC/D,MAAMle,WAAW,IAAI7W,CAAAA,mBAAAA;gBACrB6W,SAAS,MAAM,CAAC,iBAAiBke;gBACjCle,SAAS,MAAM,CAAC,QAAQ;gBACxBA,SAAS,MAAM,CAAC,UAAU8d;gBAC1B9d,SAAS,MAAM,CAAC,eAAe;gBAC/BA,SAAS,MAAM,CAAC,iBAAiB;gBACjCA,SAAS,MAAM,CAAC,eAAe;gBAC/BA,SAAS,MAAM,CAAC,gBAAgB;gBAChCA,SAAS,MAAM,CAAC,SAASjX,2BAAAA,gBAAmB,CAACo1B;gBAE7C,MAAM9O,MAAM,MAAMpsB,KAAK,GAAG,CAA4B;oBACrD,QAAQ;oBACR,KAAK;oBACL,MAAM+c;oBACN,iBACCvV,AAAoB,YAApBA,OAAO,QAAQ,GAAe,oBAAoB;gBACpD;gBAEA,OAAO4kB,IAAI,GAAG;YACf;QAEF;QAGA,MAAM+O,sBAAsB1E,cAAcjvB,OAAO,OAAO;QACxD,MAAM4zB,sBAAsB,MAAMN,aAAaK;QAE/C,MAAM1iB,UAAUoe,cAAcrvB,OAAO,OAAO,EAAE,CAAC4vB;YAC9C,IAAIA,IAAI,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAMiE,MAAMF,oBAAoB,SAAS,CAAC,CAACV,KAAOA,OAAOrD,IAAI,OAAO,CAAC,GAAG;gBACxEA,IAAI,OAAO,CAAC,GAAG,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,OAAO;gBAClDjE,IAAI,OAAO,CAAC,sBAAsB,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,OAAO;gBACrEjE,IAAI,OAAO,CAAC,kBAAkB,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,OAAO;gBACjEjE,IAAI,OAAO,CAAC,gBAAgB,GAAG;YAChC;YAEA,OAAOA;QACR;QAGA,IAAIkE,iBAAiB9zB,OAAO,WAAW,CAAC,sBAAsB;QAC9D,IAAI8zB,gBACHA,iBAAkB,OAAMR,aAAa;YAACQ;SAAe,EAAE,CAAC,EAAE,CAAC,OAAO;QAInE,MAAMC,qBAAqBhB,AAAuB,aAAvBA,qBAAkC;YAACF;SAAqB,GAAGC;QACtF,MAAMkB,qBAAqB,MAAMV,aAAaS;QAC9C,MAAME,eAAeD,mBAAmB,GAAG,CAAC,CAACziC,OAAU;gBACtD,KAAKA,KAAK,OAAO;gBACjB,mBAAmB;gBACnB,SAAS;YACV;QACA,MAAM2iC,oBAAoBF,mBAAmB,GAAG,CAAC,CAACziC,OAAU;gBAC3D,KAAKA,MAAM;gBACX,YAAYA,MAAM;YACnB;QAGA,MAAM4iC,OAAOn0B,OAAO,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;QACvD,MAAMo0B,eAAep0B,OAAO,WAAW,CAAC,4BAA4B;QACpE,MAAMq0B,eAAetB,AAAuB,aAAvBA,qBAAkC,QAAQ;QAE/D,MAAMuB,gBAAgB;eACjBF,aAAa,MAAM,GAAG,IAAI;gBAAC;oBAAE,IAAI,CAAC,KAAK,EAAEA,YAAY,CAAC,EAAE,EAAE;oBAAE,YAAY;gBAAE;aAAE,GAAG,EAAE;eACjFD,OAAO;gBAAC;oBAAE,IAAI;oBAAmB,YAAY;gBAAE;aAAE,GAAG,EAAE;SAC1D;QAED,MAAMI,cAAc;YACnB,OAAOv0B,OAAO,WAAW,CAAC,cAAc;YACxCiR;YACA6iB;YACA,UAAU9zB,OAAO,WAAW,CAAC,iBAAiB;YAC9Cq0B;YACA,cAAcr/B,KAAK,SAAS,CAACi/B;YAC7B,mBAAmBj/B,KAAK,SAAS,CAACk/B;YAClC,MAAM;YACN,wBAAwB;YACxB,eAAe;YACf,YAAY;YACZ,gBAAgB;YAChB,QAAQ;YACR,cAAc;YACdI;QACD;QAEA,MAAME,UAAUx0B,AAAoB,YAApBA,OAAO,QAAQ;QAE/B,MAAMy0B,UAAUD,UACb,oEACA;QAEH,MAAM5P,MAAM,MAAMpsB,KAAK,GAAG,CAAkC;YAC3D,QAAQ;YACR,KAAKi8B;YACL,MAAMF;YACN,SAAS;gBACR,gBAAgB;gBAChB,QAAQ;gBACR,SAAS;YACV;YACA,iBAAiBC,UAAU,oBAAoB;QAChD;QAEA,OAAOlC,QAAQ1N,IAAI,GAAG,CAAC,UAAU,EAAE;IACpC;ICpMO,MAAM8P,YAA2B,OAAOzE,MAAMjwB;QACpD,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAM0E,gBAAmC;YACxC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMvE,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KAAKjwB,OAAO,GAAG,IAAI;YACnB,SAASA,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAGA,IAAI;YACH,MAAM7C,KAAK,eAAe,CAAC,oBAAoB;gBAAE,OAAO;YAAU;QACnE,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAQ,MAAM++B,KAAK,GAAG;YAAG;QACvD;QAGA,MAAMA,KAAK,eAAe,CAAC,2BAA2B;YAAE,OAAO;QAAU;QAIzE,IAAI,MAAMA,KAAK,OAAO,CAAC,iCAAiC,SAAS,IAChE,MAAMA,KAAK,OAAO,CAAC,0CAA0C,KAAK;QAGnE,IAAI,MAAMA,KAAK,OAAO,CAAC,gFAAgF,SAAS,IAC/G,MAAMA,KAAK,OAAO,CAAC,gFAAgF,KAAK;QAIzG,MAAMwE,gBAAgBxE,KAAK,OAAO,CAAC;QACnC,MAAMwE,cAAc,KAAK;QACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,KAAK;QAGrC,MAAMmwB,oBAAoBC,MAAMpwB,OAAO,OAAO;QAE9C,MAAMowB,KAAK,KAAK,CAAC;QAEjB,MAAMA,KAAK,QAAQ,CAAC,KAAK,CAAC;QAE1B,MAAMA,KAAK,QAAQ,CAAC,KAAK,CAAC;QAG1B,MAAMA,KAAK,cAAc,CAAC;QAG1B,MAAMyE,gBAAgBzE,KAAK,OAAO,CAAC,yCAAyC,GAAG,CAAC;QAChF,MAAM0E,gBAAgB90B,AAA0C,aAA1CA,OAAO,WAAW,CAAC,kBAAkB;QAC3D,IAAI80B,eAEH,MAAMD,cACJ,OAAO,CAAC,0DACR,MAAM,CAAC;YAAE,SAAS;QAAK,GACvB,KAAK;aAGP,MAAMA,cACJ,OAAO,CAAC,0DACR,MAAM,CAAC;YAAE,SAAS;QAAK,GACvB,KAAK;QAGR,MAAMrB,SAAS,MAAMlR,QAAQ,GAAG,CAC9BwS,AAAAA,CAAAA,gBAAgB;YAAC90B,OAAO,WAAW,CAAC,oBAAoB;SAAC,GAAGA,OAAO,WAAW,CAAC,kBAAiB,EAAG,GAAG,CAAC,CAAC1H;YACxG,MAAMm7B,WAAWtB,mBAAmB75B;YACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;QACnD;QAED,MAAMsB,gBAAgB3E,KAAK,OAAO,CACjC;QAED,MAAM4E,aAAa,MAAMD,cAAc,KAAK;QAE5C,IAAK,IAAIn/B,IAAI,GAAGA,IAAIo/B,YAAYp/B,IAAK;YACpC,MAAMrE,OAAOwjC,cAAc,GAAG,CAACn/B;YAC/B,MAAM89B,QAAQF,MAAM,CAAC59B,EAAE;YAGvB,MAAMrE,KAAK,QAAQ,CAAC,CAACyX,OAASA,KAAK,cAAc;YAGjD,IAAI,MAAMzX,KAAK,OAAO,CAAC,iBAAiB,SAAS,IAChD,MAAMA,KAAK,OAAO,CAAC,yBAAyB,MAAM,CAAC;gBAAE,SAAS;YAAK,GAAG,KAAK;iBAE3E,MAAMA,KAAK,KAAK;YAIjB,MAAM6+B,KAAK,eAAe,CAAC,mDAAmD;gBAAE,OAAO;YAAU;YAEjG,MAAMA,KACJ,OAAO,CAAC,4FACR,MAAM,CAAC;gBAAE,SAAS;YAAO,GACzB,KAAK;YACP,MAAM6E,qBAAqB7E,KAAK,YAAY,CAAC;YAC7C,MAAMA,KACJ,OAAO,CAAC,wGACR,KAAK;YACP,MAAM8E,cAAc,MAAMD;YAC1B,MAAMC,YAAY,QAAQ,CAAC;gBAACxB;aAAM;YAGlC,MAAMtD,KAAK,eAAe,CACzB,4GACA;gBAAE,OAAO;YAAW;YAGrB,MAAMA,KACJ,OAAO,CAAC,gFACR,MAAM,CAAC;gBAAE,SAAS;YAAK,GACvB,KAAK;YAEP,MAAMA,KAAK,cAAc,CAAC;QAC3B;QAGA,MAAM+E,mBAAmB/E,KACvB,OAAO,CAAC,yCACR,GAAG,CAAC,GACJ,OAAO,CAAC;QACV,MAAM+E,iBAAiB,KAAK;QAC5B,MAAMA,iBAAiB,IAAI,CAACn1B,OAAO,WAAW,CAAC,iBAAiB;QAGhE,MAAMm0B,OAAOn0B,OAAO,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;QACvD,IAAIm0B,MAAM;YACT,MAAMiB,kBAAkBhF,KAAK,OAAO,CAAC,yCAAyC,GAAG,CAAC;YAClF,MAAMgF,gBAAgB,OAAO,CAAC,kCAAkC,MAAM,CAAC;gBAAE,SAAS;YAAS,GAAG,KAAK;QACpG;QAGA,IAAIp1B,OAAO,WAAW,CAAC,iBAAiB,CAAC,MAAM,GAAG,KAAKA,OAAO,WAAW,CAAC,4BAA4B,CAAC,MAAM,GAAG,GAAG;YAClH,MAAMq1B,WAAWr1B,OAAO,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAACizB,KAC7DjzB,OAAO,WAAW,CAAC,4BAA4B,CAAC,QAAQ,CAACizB,GAAG,EAAE;YAE/D,IAAIoC,SAAS,MAAM,GAAG,GAAG;gBACxB,MAAMC,mBAAmBlF,KAAK,OAAO,CAAC,yCAAyC,GAAG,CAAC;gBACnF,MAAMl5B,OAAOm+B,QAAQ,CAAC,EAAE,CAAC,SAAS;gBAClC,MAAME,eAAeD,iBAAiB,OAAO,CAAC,8BAA8B,SAAS,CAACp+B,MAAM;oBAAE,OAAO;gBAAK;gBAC1G,IAAK,MAAMq+B,aAAa,KAAK,KAAM,GAClCA,aAAa,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK;YAE1C;QACD;QAGA,MAAMC,YAAY,MAAM,IAAIlT,QAAgB,CAAC9G;YAE5C,MAAMia,iBAAiB,OAAOv7B;gBAC7B,MAAM5B,MAAM4B,SAAS,GAAG;gBACxB,IAAI5B,IAAI,QAAQ,CAAC,yBAAyBA,IAAI,QAAQ,CAAC,0BAA0B;oBAChF,MAAMo9B,eAAe,MAAMx7B,SAAS,IAAI;oBACxCk2B,KAAK,GAAG,CAAC,YAAYqF;oBACrBja,QAAQka,cAAc,KAAK;gBAC5B;YACD;YAGAtF,KAAK,EAAE,CAAC,YAAYqF;YAEpB,MAAME,oBAAoBvF,KAAK,OAAO,CAAC;YACvC,IAAIpwB,AAAoB,YAApBA,OAAO,QAAQ,EAClB21B,kBAAkB,OAAO,CAAC,0BAA0B,MAAM,CAAC;gBAAE,SAAS;YAAM,GAAG,OAAO,CAAC,UAAU,KAAK;iBAEtGA,kBAAkB,OAAO,CAAC,0BAA0B,MAAM,CAAC;gBAAE,SAAS;YAAK,GAAG,OAAO,CAAC,UAAU,KAAK;QAEvG;QAGA,MAAMvF,KAAK,KAAK;QAEhB,OAAOkC,QAAQkD;IAChB;IC3JO,MAAMI,mBAAkC,OAAO3F,MAAMjwB;QAC3D,IAAIA,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,UAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,WAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,YAAY8B,WAAWzE,MAAMjwB;IACnD;IC5BO,MAAM61B,uBAAsC,OAAOC,OAAO91B;QAChE,MAAM+1B,UAAU/1B,OAAO,OAAO,IAAI,EAAE;QAEpC,MAAMxH,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQoI,QAAQ,GAAG,CAAC,CAAC9C,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAC3D,OAAOjzB,OAAO,KAAK;YACpB;QACD;QAEA,MAAM4kB,MAAM,MAAMpsB,KAAK,GAAG,CAAqC;YAC9D,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,SAAS;gBACT,WAAW;gBACX,cAAc;gBACd,aAAa;gBACb,aAAa;gBACb,WAAW;YACZ;QACD;QAEA,OAAO85B,QAAQ1N,KAAK,MAAM,QAAQ,EAAE;IACrC;ICzBO,MAAMoR,mBAAkC,OAAOF,OAAO91B;QAC5D,MAAM+1B,UAAU/1B,OAAO,OAAO,IAAI,EAAE;QAEpC,MAAMxH,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQoI,QAAQ,GAAG,CAAC,CAAC9C,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAC3D,SAAS;YACV;QACD;QAEA,MAAMgD,kBAAkB;YACvB,IAAI;gBACH,MAAMrR,MAAM,MAAMpsB,KAAK,GAAG,CAA0C;oBACnE,QAAQ;oBACR,KAAK;oBACL,QAAQ;wBAAE,MAAM;wBAAG,OAAO;oBAAG;gBAC9B;gBAEA,OAAOosB,AAAa,MAAbA,IAAI,IAAI,GAASA,IAAI,IAAI,GAAG,EAAE;YACtC,EAAE,OAAOvzB,OAAO;gBACf,OAAO,EAAE;YACV;QACD;QAEA,MAAM6kC,kBAAkB;YACvB,IAAI;gBACH,MAAMtR,MAAM,MAAMpsB,KAAK,GAAG,CAAiD;oBAC1E,QAAQ;oBACR,KAAK;gBACN;gBACA,OAAOosB,AAAe,MAAfA,IAAI,MAAM,GAASA,IAAI,IAAI,GAAG;YACtC,EAAE,OAAOvzB,OAAO;gBACf,OAAO;YACR;QACD;QAEA,MAAM8kC,gBAAgB;YACrB,IAAI;gBACH,MAAMvR,MAAM,MAAMpsB,KAAK,GAAG,CAA2E;oBACpG,QAAQ;oBACR,KAAK;gBACN;gBACA,OAAOosB,AAAa,MAAbA,IAAI,IAAI,GAASA,IAAI,IAAI,CAAC,uBAAuB,GAAG,EAAE;YAC9D,EAAE,OAAOvzB,OAAO;gBACf,OAAO,EAAE;YACV;QACD;QAEA,MAAM,CAAC+kC,cAAcC,cAAcC,WAAW,GAAG,MAAMhU,QAAQ,GAAG,CAAC;YAClE2T;YACAC;YACAC;SACA;QAED,OAAO7D,QAAQ;YAAE8D;YAAcC;YAAcC;QAAW;IACzD;IC3DO,MAAMC,yBAAwC,OAAOT,OAAO91B;QAClE,MAAMxH,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,SAAS;YACV;QACD;QAEA,IAAI;YACH,MAAMrO,MAAM,MAAMpsB,KAAK,GAAG,CAAoE;gBAC7F,QAAQ;gBACR,KAAK;gBACL,QAAQ;oBAAE,MAAM;oBAAG,OAAOwH,OAAO,WAAW;gBAAC;YAC9C;YAEA,IAAI4kB,AAAa,MAAbA,IAAI,IAAI,EACX,OAAO0N,QAAQtyB,OAAO,WAAW,GAAG4kB,IAAI,OAAO,GAAGA,IAAI,IAAI;YAG3D,OAAO0N,QAAQ,EAAE;QAClB,EAAE,OAAOjhC,OAAO;YACf,OAAOihC,QAAQ,EAAE;QAClB;IACD;ICnBO,MAAMkE,4BAA2C,OAAOV,OAAO91B;QACrE,MAAMxH,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,SAAS;gBACT,QAAQ;YACT;QACD;QAEA,IAAI;YACH,MAAMtiC,SAAS,MAAM6H,KAAK,GAAG,CAA+D;gBAC3F,QAAQ;gBACR,KAAK;gBACL,MAAM;oBACL,SAASwH,OAAO,WAAW;oBAC3B,UAAUA,OAAO,QAAQ,IAAI;oBAC7B,WAAWA,OAAO,SAAS,IAAI;oBAC/B,MAAMA,OAAO,IAAI,IAAI;oBACrB,MAAMA,OAAO,IAAI,IAAI;oBACrB,QAAQ;oBACR,MAAM;gBACP;YACD;YAEA,OAAOsyB,QAAQ3hC,AAAgB,MAAhBA,OAAO,IAAI,GAASA,OAAO,IAAI,CAAC,QAAQ,GAAG,EAAE;QAC7D,EAAE,OAAOU,OAAO;YACf,OAAOihC,QAAQ,EAAE;QAClB;IACD;IChCO,MAAMmE,6BAA4C,OAAOX,OAAO91B;QACtE,MAAMxH,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,SAAS;gBACT,QAAQ;YACT;QACD;QAEG,IAAI;YACN,MAAMtiC,SAAS,MAAM6H,KAAK,GAAG,CAAmE;gBAC/F,QAAQ;gBACR,KAAK;gBACL,MAAM;oBACL,SAASwH,OAAO,WAAW;oBAC3B,uBAAuB;wBACrB,OAAO;wBACP,MAAM,CAAC,CAAC,EAAEA,OAAO,WAAW,EAAE;oBAChC;oBACA,MAAM;wBACJ,WAAW;wBACX,MAAM;oBACR;gBACC;gBACF,iBAAiB;YAClB;YAEA,OAAOsyB,QAAQ3hC,AAAgB,MAAhBA,OAAO,IAAI,GAASA,OAAO,IAAI,CAAC,eAAe,GAAG,EAAE,EAAC;QACrE,EAAE,OAAOU,OAAO;YACf,OAAOihC,QAAQ,EAAE;QAClB;IAED;IC1BA,MAAMK,gBAA8C;QACnD,UAAU;QACV,MAAM;QACN,QAAQ;QACR,MAAM;YACL;YACA;YACA;SACA;QACD,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;IACT;IAEA,MAAM+D,qBAAqB,CAACC,WAAqBpjC,SAAiBqjC;QACjE,IAAIvlC,QAAQ;QACZ,IAAIkC,SAAS,SAAS,SACrBlC,QAAQslC,SAAS,CAAC,EAAE;aACd,IAAIpjC,SAAS,SAAS,SAC5BlC,QAAQslC,SAAS,CAAC,EAAE;aACd,IAAIpjC,SAAS,SAAS,SAC5BlC,QAAQslC,SAAS,CAAC,EAAE;QAErB,OAAOtlC,SAAUulC,CAAAA,AAAa,YAAbA,WAAuB,kBAAkB,eAAc;IACzE;IAEO,MAAMhE,kBAA4B,OAAO3C,MAAMjwB;QACrD,MAAM,EAAE62B,kBAAkB,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,GAAGh3B,OAAO,WAAW;QACtG,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAMz3B,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,QAAQ;gBACR,SAAS;YACV;QACD;QAGAz6B,KAAK,sBAAsB,CAAiB,CAAC0B;YAE5C,IAAIA,SAAS,IAAI,EAAE,SAAS,GAAG;gBAC9B,IAAIi5B,SAAS;gBAGZA,SADGxhC,MAAM,OAAO,CAACghC,aAAQ,CAACz4B,SAAS,IAAI,CAAC,IAAI,CAAC,IACpCw8B,mBAAmB/D,aAAQ,CAACz4B,SAAS,IAAI,CAAC,IAAI,CAAC,EAAcA,SAAS,IAAI,CAAC,OAAO,EAAE8F,OAAO,QAAQ,IAG1G2yB,aAAQ,CAACz4B,SAAS,IAAI,CAAC,IAAI,CAAC,IAC7BA,SAAS,MAAM,CAAC,eAAe,IAC9B8F,CAAAA,AAAoB,YAApBA,OAAO,QAAQ,GAAe,kBAAkB,eAAc;gBAGjE,OAAO;oBACN,MAAM2yB,aAAQ,CAACz4B,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM;oBAC3C,SAASi5B;oBACT,MAAMj5B,SAAS,IAAI;gBACpB;YACD;QACD;QAGA,MAAM1B,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,iBAAiB,CAAC,kBAAkB,EAAEwH,AAAoB,YAApBA,OAAO,QAAQ,GAAe,OAAO,KAAK,CAAC,CAAC;QACnF;QAEA,MAAMszB,eAAe,OAAOE,SAEpB,MAAMlR,QAAQ,GAAG,CACvBkR,OAAO,GAAG,CAAC,OAAOl7B;gBACjB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,MAAMo7B,QAAQ,MAAM1B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;gBAC/D,MAAMle,WAAW,IAAI7W,CAAAA,mBAAAA;gBACrB6W,SAAS,MAAM,CAAC,SAASjX,2BAAAA,gBAAmB,CAACo1B;gBAE7C,MAAMx5B,WAAW,MAAM1B,KAAK,GAAG,CAAoC;oBAClE,QAAQ;oBACR,KAAK;oBACL,MAAM+c;oBACN,iBACCvV,AAAoB,YAApBA,OAAO,QAAQ,GAAe,oBAAoB;gBACpD;gBAEA,OAAO9F,SAAS,IAAI;YACrB;QAKF,MAAMy5B,sBAAsB1E,cAAcjvB,OAAO,OAAO;QACxD,MAAM4zB,sBAAsB,MAAMN,aAAaK;QAE/C,MAAM1iB,UAAUoe,cAAcrvB,OAAO,OAAO,EAAE,CAAC4vB;YAC9C,IAAIA,IAAI,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAMiE,MAAMF,oBAAoB,SAAS,CAAC,CAACV,KAAOA,OAAOrD,IAAI,OAAO,CAAC,GAAG;gBACxEA,IAAI,OAAO,CAAC,GAAG,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,SAAS;gBACpDjE,IAAI,OAAO,CAAC,OAAO,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,SAAS;gBACxDjE,IAAI,OAAO,CAAC,SAAS,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,WAAW,CAAC,QAAQ;gBACrEjE,IAAI,OAAO,CAAC,YAAY,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,YAAY,CAAC,QAAQ;gBACzEjE,IAAI,OAAO,CAAC,UAAU,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,UAAU,CAAC,QAAQ;gBACrEjE,IAAI,OAAO,CAAC,SAAS,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,eAAe;YACjE;YACA,OAAOjE;QACR;QAGA,MAAMqH,WACLF,AAAqB,aAArBA,mBAAgC;YAACF;SAAmB,GAAGE,AAAqB,eAArBA,mBAAkCD,mBAAmB,EAAE;QAC/G,MAAMI,WAAW,MAAM5D,aAAa2D;QAGpC,MAAME,gBAAgBn3B,AAAwC,aAAxCA,OAAO,WAAW,CAAC,gBAAgB;QACzD,MAAMtE,WAAWsE,OAAO,WAAW,CAAC,eAAe;QACnD,MAAMo3B,SAASp3B,OAAO,WAAW,CAAC,YAAY,IAAI,EAAE;QAEpD,MAAMq3B,iBAAiBr3B,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAACs3B,QAAW;gBACnE,IAAI;gBACJ,kBAAkB;gBAClB,QAAQ;gBACR,YAAY;gBACZ,MAAMA;gBACN,SAAS;gBACT,UAAU;YACX;QAEA,MAAMC,eAAeH,OACnB,GAAG,CACH,CAACI,QACA,CAAC,wCAAwC,EAAEA,MAAM,IAAI,CAAC,WAAW,EAAEA,MAAM,EAAE,CAAC,mBAAmB,EAAEA,MAAM,EAAE,CAAC,GAAG,EAAEA,MAAM,IAAI,CAAC,WAAW,CAAC,EAEvI,IAAI,CAAC;QAEP,MAAMC,YAAY;YACjB,kBAAkBz3B,OAAO,WAAW,CAAC,OAAO;YAC5C,gBAAgBm3B,gBAAgB,IAAI;YACpC,YAAYA,gBAAgB,EAAE,GAAGE;YACjC,QAAQ;gBACP,UAAU;gBACV,WAAW;gBACX,YAAY;gBACZ,iBAAiB;gBACjB,YAAY;YACb;YACA,sBAAsB;YACtB,aAAa;gBACZ,aAAa;gBACb,aAAa;gBACb,aAAa;gBACb,UAAU,CAAC;YACZ;YACA,GAAI37B,WAAW;gBAAE,MAAMA,SAAS,KAAK;gBAAE,WAAWA,SAAS,KAAK;YAAC,IAAI,IAAI;QAC1E;QAEA,MAAM64B,cAAc;YACnB,cAAc;YACd,QAAQ;YACR,sBAAsB;YACtB,UAAU;YACV,aAAa;YACb,+BAA+B;YAC/B,iBAAiB;YACjB,gBAAgB;YAChB,QAAQ;YACR,gBAAgB;YAChB,mBAAmB;YACnB,eAAe;YACf,iBAAiB;YACjB,oBAAoB;YACpB,cAAc;YACd,oBAAoB;YACpB,iBAAiB;YACjB,MAAMv0B,AAAoB,cAApBA,OAAO,QAAQ,GAAiB,IAAI;YAC1C,cAAc;YACd,YAAY;YACZ,OAAOA,OAAO,KAAK;YACnB,SAASiR,UAAUsmB;YACnB,OAAOviC,KAAK,SAAS,CAACyiC;YACtB,gBAAgBV,AAAqB,SAArBA,mBAA4B,OAAO;YACnD,iBAAiB/hC,KAAK,SAAS,CAAC;gBAC/B,WAAW0iC,UAAU,CAACX,iBAAiB;YACxC;YACA,iBAAiB/hC,KAAK,SAAS,CAC9BkiC,SAAS,GAAG,CAAC,CAAC3lC,OAAU;oBACvB,IAAI;oBACJ,KAAKA,KAAK,SAAS;oBACnB,KAAKA,KAAK,SAAS;oBACnB,QAAQ;oBACR,YAAYA,KAAK,WAAW;oBAC5B,aAAaA,KAAK,YAAY;oBAC9B,OAAO;wBACN,kBAAkB;wBAClB,cAAc;oBACf;gBACD;YAED,iBAAiBomC,gBAAgB33B,OAAO,WAAW,CAAC,SAAS;YAC7D,cAAcg3B,gBAAgB,QAAQ,CAAC,cAAc,IAAI;YACzD,iBAAiBA,gBAAgB,QAAQ,CAAC,eAAe,IAAI;QAC9D;QAEA,MAAMY,gBAAgB,MAAMp/B,KAAK,GAAG,CAAqC;YACxE,QAAQ;YACR,KAAK;YACL,MAAM+7B;YACN,SAAS;gBACR,gBAAgB;YACjB;YACA,iBAAiBv0B,AAAoB,YAApBA,OAAO,QAAQ,GAAe,kBAAkB;QAClE;QAEA,OAAOsyB,QAAQsF,cAAc,IAAI,CAAC,MAAM;IACzC;ICjOO,MAAMlD,gBAA2B,OAAOzE,MAAMjwB;QACpD,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAM0E,gBAAmC;YACxC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMvE,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KAAKjwB,OAAO,GAAG,IAAI;YACnB,SAASA,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAGA,IAAI;YACH,MAAM7C,KAAK,eAAe,CAAC,mBAAmB;gBAAE,OAAO;YAAU;QAClE,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBACN,MAAM;gBACN,SAAS,CAAC,kBAAkB,EAAE2O,AAAoB,YAApBA,OAAO,QAAQ,GAAe,OAAO,KAAK,CAAC,CAAC;gBAC1E,MAAMowB,KAAK,GAAG;YACf;QACD;QAEA,MAAMyH,gBAAgB;YACrB;SACA;QAED,MAAMzH,KAAK,KAAK,CAAC,MAAM,OAAO0H,OAAOz8B;YACpC,MAAM/C,MAAM,IAAIC,IAAI8C,QAAQ,GAAG;YAC/B,IAAIw8B,cAAc,IAAI,CAACE,CAAAA,UAAWz/B,IAAI,QAAQ,CAAC,QAAQ,CAACy/B,WAAW;gBAClEz/B,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO;gBAE5B,MAAMw/B,MAAM,QAAQ,CAAC;oBAAE,KAAKx/B,IAAI,QAAQ;gBAAG;YAC5C,OACC,MAAMw/B,MAAM,QAAQ;QAEtB;QAGApH,cAAcN,MAAK,8CAA6C,MAAM,0BACtE;YACC,eAAe;YACf,gBAAgB;QACjB;QAGA,MAAMwE,gBAAgBxE,KAAK,OAAO,CAAC;QACnC,MAAMwE,cAAc,KAAK;QACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,KAAK;QAGrC,MAAMmwB,oBAAoBC,MAAMpwB,OAAO,OAAO;QAE9C,MAAMowB,KAAK,KAAK,CAAC;QAEjB,MAAMA,KAAK,QAAQ,CAAC,KAAK,CAAC;QAG1B,MAAM4H,iBAAiBN,UAAU,CAAC13B,OAAO,WAAW,CAAC,gBAAgB,CAAC;QACtE,MAAMi4B,iBAAiB7H,KAAK,OAAO,CAAC,8BAA8B,MAAM,CAAC;YAAE,SAAS;QAAO;QAE3F,MAAM6H,eAAe,QAAQ,CAAC,CAACjvB,OAASA,KAAK,cAAc;QAC3D,MAAMivB,eAAe,OAAO,CAAC,CAAC,iDAAiD,EAAED,eAAe,GAAG,CAAC,EAAE,KAAK;QAE3G,IAAIE,YAAsB,EAAE;QAC5B,IAAIl4B,AAAwC,aAAxCA,OAAO,WAAW,CAAC,gBAAgB,EACtCk4B,YAAY;YAACl4B,OAAO,WAAW,CAAC,kBAAkB;SAAC;aAC7C,IAAIA,AAAwC,eAAxCA,OAAO,WAAW,CAAC,gBAAgB,EAC7Ck4B,YAAYl4B,OAAO,WAAW,CAAC,gBAAgB;QAGhD,MAAMwzB,SAAS,MAAMlR,QAAQ,GAAG,CAC/B4V,UAAU,GAAG,CAAC,CAAC5/B;YACd,MAAMm7B,WAAWtB,mBAAmB75B;YACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;QACnD;QAGD,MAAM0E,iBAAiBF,eACrB,OAAO,CAAC,wCACR,OAAO,CAAC;QACV,MAAMG,mBAAmB,MAAMD,eAAe,KAAK;QAEnD,IAAK,IAAIviC,IAAI,GAAGA,IAAIwiC,kBAAkBxiC,IAAK;YAC1C,IAAI,CAAC49B,MAAM,CAAC59B,EAAE,EACb;YAGD,MAAMyiC,MAAMF,eAAe,GAAG,CAACviC;YAE/B,IAAK,MAAMyiC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAM,GACxC,MAAMA,IAAI,OAAO,CAAC,6BAA6B,MAAM,CAAC;gBAAE,SAAS;YAAK,GAAG,KAAK;iBAG9E,MAAMA,IAAI,KAAK;YAIhB,MAAMC,kBAAkBlI,KAAK,OAAO,CAAC;YACrC,MAAMkI,gBAAgB,OAAO,CAAC,6CAA6C,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,KAAK;YAC5G,MAAMrD,qBAAqB7E,KAAK,YAAY,CAAC;YAC7C,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMkI,gBAAgB,OAAO,CAAC,uCAAuC,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,KAAK;YACtG,MAAMpD,cAAc,MAAMD;YAC1B,MAAMC,YAAY,QAAQ,CAAC;gBAAC1B,MAAM,CAAC59B,EAAE;aAAC;YAGtC,MAAM2iC,aAAaD,gBACjB,OAAO,CAAC,wDACR,MAAM,CAAC;gBAAE,SAAS;YAAK;YACzB,MAAMC,WAAW,OAAO,CAAC;gBAAE,OAAO;YAAU;YAC5C,MAAMA,WAAW,KAAK;YAEtB,MAAMnI,KAAK,cAAc,CAACrC,iBAAiB,KAAK;QACjD;QAGA,IAAI/tB,OAAO,WAAW,CAAC,eAAe,EAAE;YACvC,MAAMw4B,oBAAoBpI,KAAK,OAAO,CAAC,8BAA8B,MAAM,CAAC;gBAAE,SAAS;YAAO;YAC9F,MAAMoI,kBAAkB,OAAO,CAAC,oBAAoB,KAAK;YACzD,MAAMA,kBACJ,OAAO,CAAC,mDACR,IAAI,CAACx4B,OAAO,WAAW,CAAC,eAAe,CAAC,KAAK;YAC/C,MAAMy4B,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMqI,cAAc,KAAK,GAAG,OAAO;YACnC,MAAMA,cAAc,KAAK,GAAG,KAAK;QAClC;QAGA,MAAMC,cAActI,KAClB,OAAO,CAAC,0CACR,MAAM,CAAC;YAAE,SAAS;QAAO,GACzB,OAAO,CAAC;QAGV,MAAMuI,oBAAoB,MAAMD,YAAY,SAAS;QAErD,IAAIC,mBAEH,MAAMD,YACJ,OAAO,CAAC,CAAC,kCAAkC,EAAEf,gBAAgB33B,OAAO,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,EAC/F,KAAK;QAIR,IAAIA,OAAO,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc;YAC7D,MAAM44B,qBAAqBxI,KACzB,OAAO,CAAC,0CACR,MAAM,CAAC;gBAAE,SAAS;YAAO,GACzB,OAAO,CAAC;YACVwI,mBAAmB,OAAO,CAAC,wDAAwD,KAAK;QACzF;QAGA,MAAMpD,YAAY,MAAM,IAAIlT,QAAgB,CAAC9G;YAE5C,MAAMia,iBAAiB,OAAOv7B;gBAC7B,MAAM5B,MAAM4B,SAAS,GAAG;gBACxB,IAAI5B,IAAI,QAAQ,CAAC,4BAA4B;oBAC5C,MAAMo9B,eAAe,MAAMx7B,SAAS,IAAI;oBACxCk2B,KAAK,GAAG,CAAC,YAAYqF;oBACrBja,QAAQka,aAAa,IAAI,CAAC,MAAM;gBAEjC;YACD;YAGAtF,KAAK,EAAE,CAAC,YAAYqF;YAEpBrF,KAAK,OAAO,CAAC,0BAA0B,MAAM,CAAC;gBAAE,SAAS;YAAQ,GAAG,KAAK;QAC1E;QAEA,IAAGpwB,AAAgC,QAAhCA,OAAO,WAAW,CAAC,SAAS,EAAS;YACvC,MAAMowB,KAAK,cAAc,CAAC;YAC1B,MAAMmI,aAAanI,KAAK,OAAO,CAAC;YAChC,IAAI,MAAMmI,WAAW,SAAS,IAC5B,MAAMA,WAAW,KAAK;QAEzB;QAEA,IAAIv4B,AAAoB,cAApBA,OAAO,QAAQ,EAAgB;YAClC,MAAMowB,KAAK,OAAO,CAAC,0BAA0B,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,OAAO,CAAC;gBAAE,OAAO;YAAU;YACpG,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMA,KAAK,OAAO,CAAC,0BAA0B,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,KAAK;QAC/E;QAGA,MAAMA,KAAK,KAAK;QAEhB,OAAOkC,QAAQkD;IAChB;IC/KO,MAAMkC,aAAwC;QACpD,IAAI;QACJ,QAAQ;QACR,UAAU;IACX;IAEO,MAAMC,kBAAkB,CAACkB,YAC/BA,AAAc,UAAdA,YAAsB,IAAI;IAIpB,MAAMC,iBAAgC,OAAO7I,MAAMjwB;QACzD,IAAIA,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,cAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,gBAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,iBAAY8B,eAAWzE,MAAMjwB;IACnD;ICvCO,MAAM4yB,oCAA4B,OAAO3C,MAAMjwB;QACrD,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAMz3B,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,QAAQ;gBACR,SAAS;YACV;QACD;QAGA,MAAM8F,cAAc,MAAMvgC,KAAK,GAAG,CAAmB;YAClD,QAAQ;YACR,KAAK;QACP;QAED,IAAIugC,AAAqB,MAArBA,YAAY,IAAI,EACjB,OAAO;YAAE,MAAM;YAAG,SAAS;YAAQ,MAAMA;QAAY;QAIxD,MAAMC,YAAsB,EAAE;QAC9B,IAAIh5B,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG;YAChD,MAAMwzB,SAAS,MAAMlR,QAAQ,GAAG,CAC/BtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC1H;gBACnB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YACnD;YAGD,MAAM7O,MAAM,MAAMtC,QAAQ,GAAG,CAC5BkR,OAAO,GAAG,CAAC,OAAOP;gBACjB,MAAM1d,WAAW,IAAI7W,CAAAA,mBAAAA;gBACrB6W,SAAS,MAAM,CAAC,SAASjX,2BAAAA,gBAAmB,CAAC20B;gBAE7C,MAAM/4B,WAAW,MAAM1B,KAAK,GAAG,CAA8B;oBAC5D,QAAQ;oBACR,KAAK;oBACL,MAAM+c;gBACP;gBAEA,OAAOrb,SAAS,IAAI;YACrB;YAGD8+B,UAAU,IAAI,IAAIpU,IAAI,GAAG,CAAC,CAACqO,KAAOA,GAAG,SAAS;QAC/C;QAGA,MAAMgG,QAAQ;YACb,2BAA2B;YAC3B,iBAAiB;YACjB,sBAAsB;YACtB,aAAajkC,KAAK,SAAS,CAAC;gBAC3B,aAAa;gBACb,mBAAmB;gBACnB,aAAa;gBACb,UAAU,CAAC;YACZ;YACA,cAAcA,KAAK,SAAS,CAAC;gBAC5B,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,WAAW;gBACX,UAAU;gBACV,eAAe;gBACf,QAAQ;YACT;QACD;QAEA,MAAMkkC,WAAW;YAChB,SAASl5B,OAAO,OAAO;YACvB,YAAYg5B;YACZ,iBAAiB;YACjB,YAAY;YACZ,cAAc;YACd,OAAOhkC,KAAK,SAAS,CAACikC;QACvB;QAEC,MAAMrU,MAAM,MAAMpsB,KAAK,GAAG,CAAM;YAC9B,QAAQ;YACR,KAAK;YACL,MAAM0gC;QACR;QAEA,OAAO5G,QAAQ1N,IAAI,IAAI;IACzB;IC1FO,MAAM8P,kCAA2B,OAAOzE,MAAMjwB;QACpD,MAAM20B,gBAAmC;YACxC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMvE,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KAAKjwB,OAAO,GAAG,IAAI;YACnB,SAASA,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAEA,MAAMD,eAAe/C,KAAK,UAAU;QAGpC,IAAI;YACH,MAAMG,KAAK,eAAe,CAAC;QAC5B,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBAAE,MAAM;gBAAG,SAAS;gBAAQ,MAAM++B,KAAK,GAAG;YAAG;QACrD;QAGA,MAAM+I,eAAe/I,KAAK,OAAO,CAAC;QAClC,MAAM+I,aAAa,KAAK;QACxB,MAAMA,aAAa,IAAI,CAACn5B,OAAO,OAAO;QAGtC,IAAIA,OAAO,OAAO,IAAIA,OAAO,OAAO,EAAE,SAAS,GAAG;YACjD,MAAMwzB,SAAS,MAAMlR,QAAQ,GAAG,CAC/BtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC1H;gBACnB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YACnD;YAGD,MAAMwB,qBAAqB7E,KAAK,YAAY,CAAC;YAC7C,MAAMA,KAAK,OAAO,CAAC,sDAAsD,KAAK;YAC9E,MAAMA,KAAK,OAAO,CAAC,iDAAiD,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,KAAK;YACrG,MAAM8E,cAAc,MAAMD;YAC1B,MAAMC,YAAY,QAAQ,CAAC1B;YAE3B,MAAMpD,KAAK,OAAO,CAAC,yDAAyD,MAAM,CAAC;gBAAE,SAAS;YAAK,GAAG,KAAK;QAC5G;QAGA,MAAMA,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG;QAG1B,IAAIpwB,OAAO,OAAO,EAAE;YACnB,MAAMo5B,kBAAkBhJ,KAAK,OAAO,CAAC,6CAA6C,MAAM,CAAC;gBAAE,SAAS;YAAO;YAC3G,MAAMgJ,gBAAgB,OAAO,CAAC,gBAAgB,KAAK;YACnD,MAAMA,gBAAgB,OAAO,CAAC,kCAAkC,IAAI,CAACp5B,OAAO,OAAO;YACnF,MAAMy4B,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMqI,cAAc,KAAK,GAAG,OAAO;YACnC,MAAMA,cAAc,KAAK,GAAG,KAAK;QAClC;QAGA,IAAIz4B,OAAO,WAAW,EAAE;YACvB,MAAMq5B,sBAAsBjJ,KAC1B,OAAO,CAAC,6CACR,MAAM,CAAC;gBAAE,SAAS;YAAO,GACzB,OAAO,CAAC;YACV,MAAMiJ,oBAAoB,OAAO,CAAC,CAAC,gCAAgC,EAAEr5B,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK;QACpG;QAGA,MAAMowB,KAAK,OAAO,CAAC,uCAAuC,KAAK;QAE/D,OAAOkC,QAAQ;IAChB;ICnDO,MAAMgH,oBAAmC,OAAOrJ,MAAMjwB;QAC5D,IAAIA,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,gCAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,kCAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,mCAAY8B,iCAAWzE,MAAMjwB;IACnD;ICtCO,MAAMu5B,oBAAoB;IAE1B,MAAMC,YAAY;QACxB,QAAQ;QACR,iBAAiB;IAClB;ICUA,MAAMC,2BAA2B;IAEjC,MAAM9G,8BAA0C;QAC/C,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;IACR;IAGA,MAAM+G,cAAc;QAAC;KAAO;IAG5B,MAAMC,cAAyC;QAC9C,MAAQ;QACR,QAAU;QACV,aAAe;IACd;IAEF,MAAMC,oBAAoB,CAACtmC;QAC1B,MAAMiiB,WAAW,IAAIskB;QAErB,KAAK,MAAM,CAACxpC,KAAK+C,MAAM,IAAIjD,OAAO,OAAO,CAACmD,MACzCiiB,SAAS,MAAM,CAACllB,KAAKwN,OAAOzK;QAG7B,OAAOmiB,SAAS,QAAQ;IACzB;IAEO,MAAMukB,qBAAqB,OAAUthC,MAAYwH,QAA6B1M;QACpF,IAAIymC;QAEJ,IAAI;YACHA,UAAU,MAAMvhC,KAAK,GAAG,CAAC;gBACxB,QAAQ;gBACR,KAAK;gBACL,QAAQ;oBACP,QAAQ;oBACR,OAAOwH,OAAO,KAAK;oBACnB,MAAM;gBACP;gBACA,MAAM45B,kBAAkBtmC;YACzB;QACD,EAAE,OAAOjC,OAAO;YACf0oC,UAAW1oC,OAAwB;QACpC;QAEA,OAAO0oC;IACR;IAEO,MAAMnH,gCAA4B,OAAO3C,MAAMjwB;QACrD,MAAMg6B,cAAc;QACpB,MAAMC,mBAAmB7jC,CAAAA,OAAO,gBAAoBP,KAAK,KAAK,CAAC,IAAIQ,OAAO,OAAO,KAAK;QAEtF,MAAM28B,eAAe/C,KAAK,UAAU;QAEpC,MAAMz3B,OAAO,IAAIm1B,KAAK;YAOrB,SAAS;gBACR,cACC;gBACD,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,QAAQ;gBACR,SAAS,CAAC,2GAA2G,EAAEjzB,OAAO,KAAK,CAAC,sBAAsB,EAAE3J,KAAK,GAAG,IAAI;YACzK;QACD;QAGAmC,KAAK,sBAAsB,CAAiB,CAAC0B;YAC5C,MAAMmrB,eAAenrB,SAAS,IAAI;YAClC,MAAMg5B,UAAUlzB,AAAoB,YAApBA,OAAO,QAAQ,GAAe,OAAO;YAGrD,IACCqlB,cAAc,aACdA,AAA+B,MAA/BA,aAAa,SAAS,CAAC,GAAG,IAC1B,CAACqU,YAAY,QAAQ,CAACrU,aAAa,SAAS,CAAC,GAAG,GAC/C;gBACD,MAAM8N,SACLR,2BAAQ,CAACtN,aAAa,SAAS,CAAC,GAAG,CAAC,IACpCnrB,SAAS,MAAM,CAAC,eAAe,IAC/BmrB,aAAa,SAAS,CAAC,OAAO,IAC9B,CAAC,EAAE,EAAE6N,QAAQ,SAAS,CAAC;gBAExB,OAAO;oBACN,MAAMP,2BAAQ,CAACtN,aAAa,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM;oBACnD,SAAS8N;oBACT,MAAM9N;gBACP;YACD;QACD;QAGA,MAAM7sB,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;gBACPwhC;gBACA,KAAK;gBACL,OAAO;gBACP,OAAO;gBACP,OAAO;gBACP,MAAM;gBACN,WAAW;gBACX,mBAAmB;gBACnB,YAAY;gBACZ,aAAa;gBACb,OAAOh6B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;YACP;QACD;QAGA,MAAMszB,eAAe,OAAOE;YAC3B,MAAM0G,cAA2D,EAAE;YAGnE,MAAMC,cAAc,MAAM7X,QAAQ,GAAG,CACpCkR,OAAO,GAAG,CAAC,CAACl7B;gBACX,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YACnD;YAGD,IAAK,IAAIj/B,QAAQ,GAAGA,QAAQg/B,OAAO,MAAM,EAAEh/B,QAAS;gBACnD,MAAMk/B,QAAQyG,WAAW,CAAC3lC,MAAM;gBAChC,MAAM4lC,YAAYnM,aAAayF;gBAE/B,MAAMne,WAAW,IAAI7W,CAAAA,mBAAAA;gBACrB6W,SAAS,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE/gB,QAAQ,GAAG;gBAC5C+gB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,oBAAoB6kB,UAAU,gBAAgB;gBAC9D7kB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,QAAQjX,2BAAAA,gBAAmB,CAACo1B;gBAE5C,MAAMx5B,WAAW,MAAM1B,KAAK,GAAG,CAA0B;oBACxD,QAAQ;oBACR,KAAK,CAAC,wGAAwG,EAAEwH,OAAO,KAAK,CAAC,WAAW,CAAC;oBACzI,MAAMuV;oBACN,iBAAiB;gBAClB;gBAEA2kB,YAAY,IAAI,CAAChgC;YAClB;YAEA,OAAOggC;QACR;QAEA,MAAMvG,sBAAsB1E,cAAcjvB,OAAO,OAAO;QACxD,MAAM4zB,sBAAsB,MAAMN,aAAaK;QAE/C,MAAM1iB,UAAUoe,cAAcrvB,OAAO,OAAO,EAAE,CAAC4vB;YAC9C,IAAIA,IAAI,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAMiE,MAAMF,oBAAoB,SAAS,CAAC,CAACV,KAAOA,OAAOrD,IAAI,OAAO,CAAC,GAAG;gBACxEA,IAAI,OAAO,CAAC,GAAG,GAAGgE,mBAAmB,CAACC,IAAI,CAAC,OAAO;gBAClDjE,IAAI,OAAO,CAAC,KAAK,GAAG;gBACpBA,IAAI,OAAO,CAAC,KAAK,GAAG;YACrB;YACA,OAAOA;QACR;QAGA,MAAMsH,WAAW,MAAM5D,aAAa;YAACtzB,OAAO,WAAW,CAAC,OAAO;SAAC;QAGhE,IAAIq6B,eAAe;QAEnB,IAAIr6B,OAAO,WAAW,EAAE,eAAeA,OAAO,WAAW,EAAE,aAAa;YACvE,MAAMs6B,gBAAgBt6B,OAAO,WAAW,CAAC,WAAW;YAEpD,IAAIs6B,iBAAiBA,cAAc,MAAM,GAAG,GAAG;gBAC9C,MAAMC,aAAa,EAAE;gBAErB,MAAMC,kBAAkB;oBACvB,UAAU;oBACV,OAAO;oBACP,QAAQ;oBACR,SAAS;oBACT,UAAU;oBACV,QAAQ;oBACR,YAAY;oBACZ,iBAAiB;oBACjB,YAAY;gBACb;gBAEA,KAAK,MAAMC,SAASH,cAAe;oBAClC,MAAMI,eAAe,MAAMliC,KAAK,GAAG,CAAyC;wBAC3E,QAAQ;wBACR,KAAK;wBACL,QAAQ;4BACP,QAAQ;wBACT;wBACA,MAAMohC,kBAAkB;4BACvB,MAAM;4BACN,GAAG;4BACH,MAAM;4BACN,OAAO55B,OAAO,KAAK;4BACnB,QAAQnK,KAAK,MAAM,GAAG,QAAQ;4BAC9B,UAAU4kC;wBACX;wBACA,iBAAiB;oBAClB;oBAEA,KAAGC,CAAAA,aAAa,WAAW,CAAC,MAAM,GAAC,IASlC,OAAO;wBAAE,MAAM;wBAAK,SAAS,CAAC,MAAM,EAAED,MAAM,gBAAgB,CAAC;wBAAE,MAAM;oBAAG;oBATpC;wBACpC,IAAIE,mBAAmBD,aAAa,WAAW,CAAC,EAAE;wBAClDF,gBAAgB,QAAQ,GAAGG,iBAAiB,QAAQ;wBACpDH,gBAAgB,MAAM,GAAGG,iBAAiB,MAAM;wBAChDH,gBAAgB,MAAM,GAAGG,iBAAiB,OAAO;wBACjDH,gBAAgB,QAAQ,GAAGG,iBAAiB,QAAQ;wBACpDH,gBAAgB,OAAO,GAAGG,iBAAiB,OAAO;wBAClDJ,WAAW,IAAI,CAAC;4BAAE,GAAGC,eAAe;wBAAC;oBACtC;gBAGD;gBACAH,eAAeE,WAAW,MAAM,GAAG,IAAIvlC,KAAK,SAAS,CAAC;oBAAE,YAAeulC;gBAAW,KAAK;YACxF;QACD;QAGA,IAAIK,WAAW;QACf,IAAIC,WAAW;QACf,IAAI76B,OAAO,WAAW,CAAC,WAAW,IAAIA,OAAO,WAAW,CAAC,cAAc,EAAC;YACvE,eAAe86B;gBACd,MAAMlW,MAAM,MAAMpsB,KAAK,GAAG,CAAC;oBACzB,QAAQ;oBACR,KAAK;oBACL,QAAQ;wBACT,QAAQ;wBACRwhC;wBACA,OAAOh6B,OAAO,KAAK;wBACnB,MAAM;wBACN,GAAG;wBACH,MAAM;oBACL;gBACF;gBAEA,OAAO4kB,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE;YACnC;YAEA,eAAemW;gBAChB,MAAMnW,MAAM,MAAMpsB,KAAK,GAAG,CAAC;oBAC1B,QAAQ;oBACR,KAAK;oBACL,QAAQ;wBACR,QAAQ;wBACRwhC;wBACA,OAAOh6B,OAAO,KAAK;wBACnB,MAAM;wBACN,GAAG;wBACH,MAAM;oBACN;gBACD;gBAEA,OAAO4kB,IAAI,WAAW;YACvB;YAGA,IAAK,IAAIoW,SAASh7B,OAAO,WAAW,CAAC,cAAc,CAClD,IAAIg7B,AAAU,aAAVA,OAAmB;gBAEtB,IAAK,AAAiC,KAAjC,OAAMF,eAAc,EAAG,MAAM,EAAM;oBAEvC,MAAMG,aAAa,MAAMziC,KAAK,GAAG,CAAC;wBACjC,QAAQ;wBACR,KAAK;wBACL,QAAQ;4BACP,QAAQ;4BACR,QAAQ3C,KAAK,MAAM,GAAG,QAAQ;4BAC9BmkC;4BACA,OAAOh6B,OAAO,KAAK;4BACnB,MAAM;4BACN,GAAG;4BACH,MAAM;wBACP;wBACA,iBAAiBy5B;oBAClB;oBAEA,MAAMyB,eAAepoC,OAAO,IAAI,CAACmoC,WAAW,aAAa,EAAE;oBAC3D,MAAME,iBAAiB98B,6BAAAA,IAAS,CAAC20B,cAAc;oBAC/C10B,2BAAAA,aAAgB,CAAC68B,gBAAgB,IAAIpvB,WAAWmvB;oBAEhDl7B,OAAO,kBAAkB,GAAGm7B;oBAE5B,MAAMC,UAAUH,WAAW,OAAO;oBAElC,IAAIn9B,OAAO;oBAEX,IAAK,IAAIlI,IAAI,GAAGA,IAAI2jC,mBAAmB3jC,IAAK;wBAC3C,MAAMy8B,MAAM;wBAEZ,MAAMgJ,kBAAkB,MAAM7iC,KAAK,GAAG,CAA6B;4BAClE,QAAQ;4BACR,KAAK;4BACL,QAAQ;gCACP,QAAQ;gCACR,SAAS4iC;gCACTpB;gCACA,MAAM;gCACN,GAAG;gCACH,MAAM;gCACN,OAAOh6B,OAAO,KAAK;gCACnB,UAAU3J,KAAK,GAAG;4BACnB;wBACD;wBAEAyH,OAAOu9B,gBAAgB,aAAa;wBAEpC,IAAKv9B,AAAQ,KAARA,QAAc,OAAMg9B,eAAc,EAAG,MAAM,GAAG,GAClD;wBAGD,IAAIllC,MAAM2jC,oBAAoB,GAC7B,OAAO;4BAAE,MAAM;4BAAK,SAAS;4BAAiB,MAAM;wBAAG;oBAEzD;gBAED;gBAGA,IAAI+B,UAAU,MAAMR;gBACpB,KAAK,IAAIS,gBAAgBD,QACxB,IAAIC,aAAa,QAAQ,KAAKv7B,OAAO,WAAW,CAAC,cAAc,CAACg7B,MAAM,EACrEJ,WAAWW,aAAa,QAAQ;gBAGlC,IAAI,CAACX,UAEJ,OAAO;oBAAE,MAAM;oBAAK,SAAS;oBAA6B,MAAM;gBAAG;gBAGpE,IAAI56B,OAAO,WAAW,EAAE,cAAa;oBAEpC,IAAIw7B,aAAa,MAAMT;oBAEvB,IAAIU,WAAWD,WAAW,IAAI,CAC7BE,CAAAA,SAAUA,OAAO,IAAI,KAAK17B,OAAO,WAAW,CAAC,YAAY,GACvD,YAAY;oBAEf,IAAIw7B,AAAqB,KAArBA,WAAW,MAAM,IAAUC,UAkB9BZ,WAAWY;yBAjBX,MAAMjjC,KAAK,GAAG,CAAC;wBACd,QAAQ;wBACR,KAAK;wBACL,QAAQ;4BACL,QAAQ;wBACX;wBACA,MAAMohC,kBAAkB;4BACvB,MAAM;4BACNI;4BACA,OAAOh6B,OAAO,KAAK;4BACnB,MAAM;4BACN,GAAG;4BACH,MAAM;4BACN,MAAMA,OAAO,WAAW,CAAC,YAAY;wBACrC;oBACF;oBAKD,IAAI,CAACy7B,UAAU;wBACd,KAAK,IAAIE,eAAgB,OAAMZ,eAAc,EAC5CF,WAAa,OAAME,eAAc,EAAG,IAAI,CACvCW,CAAAA,SAAUA,OAAO,IAAI,KAAK17B,OAAO,WAAW,CAAC,YAAY,GACvD;wBAEJ,IAAI,CAAC66B,UACJ,OAAO;4BAAC,MAAK;4BAAK,SAAQ;4BAAkB,MAAK;wBAAE;oBAErD;gBAED;YAED;QAKF;QAEA,MAAMe,oBAAqB,AAAC;YAC3B,MAAMC,iBAAiB;gBACtB,oBAAoB;gBACpB,wBAAwB;gBACxB,6BAA6B;gBAC7B,aAAa;gBACb,qBAAqB;gBACrB,mBAAmB;gBACnB,eAAe;YAChB;YAEA,MAAM36B,OAAOlB,QAAQ,aAAa,eAAe,QAAQ;YACzD,IAAIkB,AAAS,aAATA,MAAmB;gBACtB,MAAM46B,OAAO97B,QAAQ,aAAa,eAAe;gBACjD,IAAI,CAAC87B,QAAQ,CAACA,KAAK,OAAO,IAAI,CAACA,KAAK,KAAK,IAAIA,AAAsB,QAAtBA,KAAK,aAAa,IAAYA,AAAoB,QAApBA,KAAK,WAAW,EAAU,OAAO;gBAE5G,MAAMC,cAAcpC,WAAW,CAACmC,KAAK,OAAO,CAAC;gBAC7C,MAAME,YAAYrC,WAAW,CAACmC,KAAK,KAAK,CAAC,GAAG;gBAG5CD,eAAe,kBAAkB,GAAG;gBACpC,OAAQE;oBACP,KAAK;wBACJF,eAAe,sBAAsB,GAAG;wBACxCA,eAAe,2BAA2B,GAAG;wBAC7C;oBACD,KAAK;wBACJA,eAAe,sBAAsB,GAAG;wBACxCA,eAAe,2BAA2B,GAAG;wBAC7C;oBACD,KAAK;wBACJA,eAAe,sBAAsB,GAAG;wBACxCA,eAAe,2BAA2B,GAAG;wBAC7C;gBACF;gBAGAA,eAAe,WAAW,GAAGG;gBAG7BH,eAAe,mBAAmB,GAAGC,KAAK,aAAa,GAAGnC,WAAW,CAACmC,KAAK,OAAO,CAAC,GAAG;gBACtFD,eAAe,iBAAiB,GAAGC,KAAK,WAAW,GAAInC,WAAW,CAACmC,KAAK,KAAK,CAAC,GAAG;gBAEjF,OAAOD;YACR;YAEA,IAAI36B,AAAS,cAATA,MACH26B,eAAe,aAAa,GAAG;YAKhC,OAAOA;QACR;QAEA,IAAI,CAACD,mBAAmB,OAAO;YAAE,MAAM;YAAK,SAAS;YAAqB,MAAM;QAAG;QAInF,MAAMK,YAAY;YACjB,MAAM;YACN,GAAG;YACH,MAAM;YACN,OAAO;YACP,cAAc;YACd,OAAO;YACP,YAAY;YACZ,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;YAClB,WAAW;YACX,aAAarB,WAAW,IAAI;YAC5B,kBAAkB;YAClB,qBAAqB;YACrB,WAAWA,WAAWA,WAAW;YACjC,kBAAkB;YAClB,yBAAyB;YACzB,oBAAoBgB,kBAAkB,kBAAkB;YACxD,wBAAwBA,kBAAkB,sBAAsB;YAChE,6BAA6BA,kBAAkB,2BAA2B;YAC1E,aAAaA,kBAAkB,WAAW;YAC1C,qBAAqBA,kBAAkB,mBAAmB;YAC1D,mBAAmBA,kBAAkB,iBAAiB;YACtD,kBAAiB57B,OAAO,WAAW,EAAE,eAAc66B,WAAWA,WAAW,IAAI;YAC7E,sBAAsB;YACtB,UAAU;YACV,eAAe;YAEf,OAAO76B,OAAO,KAAK;YACnB,UAAUA,OAAO,QAAQ,IAAI;YAC7B,QAAQA,OAAO,KAAK;YACpB,SAASA,QAAQ,aAAa,YAAY;YAC1C,SAASA,QAAQ,aAAa,cAAc;YAC5C,UAAUiR,WAAW;YACrB,YAAYjR,QAAQ,aAAa,kBAAkB;YACnD,UAAUk3B,QAAQ,CAAC,EAAE,CAAC,OAAO,IAAI;YACjC,iBAAiBl3B,QAAQ,aAAa,cAAa,IAAI;YACvD,gBAAgBA,QAAQ,aAAa,cAAa,IAAI;YACtD,uBAAuBA,QAAQ,aAAa,cAAa,IAAI;YAC7D,iBAAiBA,QAAQ,aAAa,cAAaq6B,eAAc;YACjE,eAAeuB,kBAAkB,aAAa;YAC9C,qBAAqB57B,QAAQ,aAAa,iBAAiB,IAAI;YAC/D,oBAAoBA,QAAQ,aAAa,sBAAsB,IAAI;YACnE,oBAAoBA,QAAQ,aAAa,kBAAkB,CAAC,EAAE,IAAI;YAElE,gBAAgB;YAChB,aAAa;QACd;QAEA,MAAM,EAAEk8B,QAAQ,EAAE,GAAG,MAAM1jC,KAAK,GAAG,CAAuB;YACzD,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,OAAOwH,OAAO,KAAK;gBACnB,GAAG;gBACH,KAAK;gBACL,MAAM;gBACN,MAAM;YACP;YACA,MAAM45B,kBAAkBqC;YACxB,iBAAiB;QAClB;QAGA,IAAIj8B,AAAoB,YAApBA,OAAO,QAAQ,EAClB,OAAO;YAAE,MAAM;YAAG,MAAMk8B;YAAU,SAAS;QAAe;QAG3D,MAAMC,eAAe,IACb3jC,KAAK,GAAG,CAA8E;gBAC5F,QAAQ;gBACR,KAAK;gBACL,QAAQ;oBACP,OAAOwH,OAAO,KAAK;oBACnB,MAAM;oBACN,GAAG;oBACH,MAAM;oBACN,kBAAkBk8B;oBAClBlC;oBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;gBAC/B;gBACA,iBAAiB;YAClB;QAID,IAAIumC,cAAc,MAAMD;QAExB,IAAIC,YAAY,SAAS,EAAE,QAAQ,QAAQ;YAC1CnM,KAAK,MAAM,CAAC,IAAI,CAAC;YACjB,MAAMz3B,KAAK,GAAG,CAAC;gBACd,QAAQ;gBACR,KAAK;gBACL,QAAQ;oBACP,KAAK;oBACL,MAAM;oBACN,OAAOwH,OAAO,KAAK;gBACpB;gBACA,MAAM45B,kBAAkB;oBACvB,OAAO55B,OAAO,KAAK;oBACnB,MAAM;oBACN,GAAG;oBACH,MAAM;oBACNg6B;oBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;oBAC9B,UAAU;gBACX;YACD;YACAumC,cAAc,MAAMD;QACrB;QAGA,MAAM,EAAEE,aAAa,EAAEC,oBAAoB,EAAE,EAAE,GAAGF;QAGlD,IAAIp8B,OAAO,QAAQ,EAAE;YACpB,MAAMu8B,cAAcD,kBAAkB,IAAI,CAAC,CAACrJ,KAAOA,GAAG,UAAU,KAAKuG,UAAU,MAAM;YACrF,IAAI,CAAC+C,aAAa,eAAe,CAAC,EAAE,EAAE,OACrC,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAmB,MAAM;YAAG;QAE3D;QAGA,IAAI,CAACv8B,OAAO,QAAQ,EACnB,MAAMxH,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,GAAG;gBACH,WAAW;gBACX,yBAAyB;gBACzB,OAAOwH,OAAO,KAAK;gBACnB,MAAM;YACP;YACA,MAAM45B,kBAAkB;gBACvB,UAAUsC;gBACVlC;gBACA,OAAOh6B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;YACP;QACD;QAID,MAAMxH,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,MAAMohC,kBAAkB;gBACvB,OAAOsC;gBACPlC;gBACA,OAAOh6B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,QAAQnK,KAAK,MAAM,GAAG,QAAQ;YAC/B;QACD;QAEA,MAAM2mC,oBAAoB;YACzB,OAAOx8B,OAAO,KAAK;YACnB,MAAM;YACN,GAAG;YACH,MAAM;YACN,QAAQnK,KAAK,MAAM,GAAG,QAAQ;YAC9BmkC;YACA,aAAa;YACb,MAAM;YACN,UAAUkC;QACX;QACA,IAAK,IAAItmC,IAAI,GAAGA,IAAI,IAAIA,IAAK;YAC5B,MAAMy8B,MAAM;YACZ,MAAMoK,WAAW;gBAAE,GAAGD,iBAAiB;gBAAE,aAAa5mC,AAAM,MAANA,IAAU,IAAI;YAAE;YACtE,MAAM8mC,wBAAwB,MAAM5C,mBAAwDthC,MAAMwH,QAAQy8B;YAC1G,IAAIC,sBAAsB,sBAAsB,EAC/C;QAEF;QAEA,MAAMrK,MAAM;QAEZ,MAAM75B,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,QAAQ;gBACR,OAAOwH,OAAO,KAAK;gBACnB,MAAM;YACP;YACA,MAAM45B,kBAAkB;gBACvB,WAAWsC;gBACXlC;gBACA,OAAOh6B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,yBAAyBA,OAAO,QAAQ,GAAG,IAAI;gBAC/C,WAAW;gBACX,QAAQnK,KAAK,MAAM,GAAG,QAAQ;YAC/B;QACD;QAEA,MAAMw8B,MAAM;QAEZ,MAAM75B,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,QAAQ;YACT;YACA,MAAMohC,kBAAkB;gBACvB,UAAUsC;gBACV,gBAAgB;gBAChBlC;gBACA,OAAOh6B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,QAAQnK,KAAK,MAAM,GAAG,QAAQ;YAC/B;QACD;QAEA,MAAMw8B,MAAM;QAGZ,MAAMsK,kBAAkB,MAAMnkC,KAAK,GAAG,CAA4C;YACjF,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,OAAOwH,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;YACJ;YACA,MAAM45B,kBAAkB;gBACvB,OAAO55B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,QAAQ;gBACRg6B;gBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;YAC/B;YACA,iBAAiB4jC;QAClB;QAEA,MAAMpH,MAAM;QAGZ,MAAMuK,gBAAgB,MAAMpkC,KAAK,GAAG,CAAwC;YAC3E,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,OAAOwH,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;YACJ;YACA,MAAM45B,kBAAkB;gBACvB,OAAO55B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACN,OAAO;gBACP,YAAY;gBACZ,MAAM;gBACN,QAAQ28B,gBAAgB,MAAM;gBAC9B3C;gBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;YAC/B;YACA,iBAAiB4jC;QAClB;QACA,MAAMpH,MAAM;QAEZ,IAAIuK,AAA8B,MAA9BA,cAAc,WAAW,EAC5B,OAAO;YAAE,MAAM;YAAK,SAASnD;YAA0B,MAAM;QAAG;QAEjE,MAAMoD,OAAOD,cAAc,IAAI;QAC/B,MAAMvK,MAAM;QAGZ,MAAMyK,eAAe,MAAMtkC,KAAK,GAAG,CAAC;YACnC,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,QAAQ;gBACR,MAAM;gBACN,cAAc;gBACd,QAAQmkC,gBAAgB,MAAM;gBAC9BE;gBACA,OAAOR;gBACP,GAAIr8B,OAAO,QAAQ,GAAG,CAAC,IAAI;oBAAE,cAAc;gBAAE,CAAC;YAC/C;YACA,iBAAiBy5B;YACjB,cAAc;QACf;QAEA,MAAMsD,eAAejqC,OAAO,IAAI,CAACgqC;QACjC,MAAME,iBAAiB3+B,6BAAAA,IAAS,CAAC20B,cAAc;QAC/C10B,2BAAAA,aAAgB,CAAC0+B,gBAAgB,IAAIjxB,WAAWgxB;QAEhD/8B,OAAO,kBAAkB,GAAGg9B;QAG5B,IAAIl/B,OAAO;QACX,IAAK,IAAIlI,IAAI,GAAGA,IAAI2jC,mBAAmB3jC,IAAK;YAC3C,MAAMy8B,MAAM;YAEZ,MAAMgJ,kBAAkB,MAAM7iC,KAAK,GAAG,CAAoC;gBACzE,QAAQ;gBACR,KAAK;gBACL,QAAQ;oBACP,OAAOwH,OAAO,KAAK;oBACnB,MAAM;oBACN,UAAU3J,KAAK,GAAG;gBACnB;gBACA,MAAMujC,kBAAkB;oBACvB,OAAO55B,OAAO,KAAK;oBACnB,MAAM;oBACN,GAAG;oBACH,MAAM;oBACN68B;oBACA,QAAQ;oBACR,MAAM;oBACN7C;oBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;gBAC/B;YACD;YAEA,IAAIwlC,AAA4B,QAA5BA,gBAAgB,OAAO,IAAYA,gBAAgB,IAAI,EAAE;gBAC5Dv9B,OAAOu9B,gBAAgB,IAAI;gBAC3B;YACD;YAEA,IAAIzlC,MAAM2jC,oBAAoB,GAC7B,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAiB,MAAM;YAAG;QAEzD;QAGA,IAAI,CAACv5B,OAAO,QAAQ,EACnB,MAAMxH,KAAK,GAAG,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,OAAOwH,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;YACJ;YACA,MAAM45B,kBAAkB;gBACvB,OAAO55B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACNg6B;gBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;gBAC9B,QAAQ;gBACRgnC;YACD;QACD;QAID,MAAMrkC,KAAK,GAAG,CAAoC;YACjD,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,GAAG;gBACH,OAAOwH,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAIA,OAAO,QAAQ,GAAG,CAAC,IAAI;oBAAE,yBAAyB;gBAAE,CAAC;YAC1D;YACA,MAAM45B,kBAAkB;gBACvB,OAAO55B,OAAO,KAAK;gBACnB,MAAM;gBACN,GAAG;gBACH,MAAM;gBACNg6B;gBACA,QAAQnkC,KAAK,MAAM,GAAG,QAAQ;gBAC9B,KAAK;gBACLiI;gBACA,cAAc;gBACd,iBAAiB;gBACjB,MAAM;gBACN,SAAS;gBACT,KAAK;gBACL,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,WAAW;gBACX,MAAM;gBACN,YAAY;gBACZ,aAAa;gBACbu+B;gBACA,QAAQ9J,aAAa;gBACrB,UAAU,IAAIl8B,OAAO,OAAO,KAAK4jC,AAAmB,MAAnBA;gBACjC,cAAc;gBACd,eAAej6B,OAAO,QAAQ,GAAG,UAAU;gBAC3C,UAAUk8B;gBACV,SAAS;gBACT,aAAa;gBACb,YAAY;gBACZ,UAAU;YACX;YACA,iBAAiBl8B,OAAO,QAAQ,GAAG,yBAAyB;QAC7D;QAEA,OAAOsyB,QAAQ4J,UAAU;IAC1B;ICn2BA,MAAMe,0BAA0B1D,OAAAA;IAEzB,MAAM7E,8BAA2B,OAAOzE,MAAMjwB;QACpD,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAM0E,gBAAmC;YACxC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMuI,YAAY;YACjB,QAAQ;YACR,MAAM;YACN,OAAOl9B,OAAO,KAAK;YACnB,MAAM;YACN,WAAW3J,KAAK,GAAG;YACnB,UAAU2J,OAAO,QAAQ;QAC1B;QAEA,IAAIA,OAAO,WAAW,EAAE,gBAAe;YACtC,MAAMm9B,kBAAkB;gBACvB,QAAQ;gBACR,OAAOn9B,OAAO,KAAK;gBACnB,MAAM;YACP;YACA,MAAMo9B,eAAe,MAAMnN,KAAK,UAAU,CAAC;gBAC1C,MAAMA,KAAK,KAAK;gBAChB,KACCjwB,OAAO,GAAG,IACV,CAAC,kDAAkD,EAAE7P,OAAO,OAAO,CAACgtC,iBAClE,GAAG,CAAC,CAAClK,KAAOA,GAAG,IAAI,CAAC,MACpB,IAAI,CAAC,MAAM;gBACd,SAASjzB,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;wBAAE,GAAG0B,aAAa;wBAAE,GAAG1B,EAAE;oBAAC,OAAO,EAAE;YAC1E;YAEA,MAAMoK,cAAcD,aAAa,OAAO,CAAC;YACzC,MAAME,gBAAgBD,YAAY,OAAO,CAAC,2CAA2C,MAAM,CAAC;gBAAC,SAASr9B,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM;YAAA,GAAG,KAAK;YACtJ,IAAG,MAAMs9B,iBAAiB,GAAE;gBAC3B,MAAMD,YAAY,OAAO,CAAC,iCAAiC,KAAK;gBAChE,IAAI;oBACH,IAAI;wBACH,MAAMD,aAAa,eAAe,CAAC,kBAAkB;4BAAE,OAAO;4BAAW,SAAS;wBAAM;wBACxF,MAAMG,YAAY,MAAMF,YAAY,OAAO,CAAC,kBAAkB,YAAY,CAAC;wBAE3E,IAAIE,WAAW;4BACd,MAAMrC,eAAepoC,OAAO,IAAI,CAACyqC,UAAU,OAAO,CAAC,4BAA4B,KAAK;4BACpF,MAAMpC,iBAAiB98B,6BAAAA,IAAS,CAAC20B,cAAc;4BAC/C10B,2BAAAA,aAAgB,CAAC68B,gBAAgB,IAAIpvB,WAAWmvB;4BAEhDl7B,OAAO,kBAAkB,GAAGm7B;wBAC7B;oBAID,EAAE,OAAO9pC,OAAO;wBACf,MAAM,IAAImC,MAAM;oBACjB;oBAEA,IAAK,IAAIoC,IAAI,GAAGA,IAAI2jC,mBAAmB3jC,IAAK;wBAC3C,MAAM0sB,QAAQ,GAAG,CAAC;4BACjB8a,aAAa,MAAM;4BACnBA,aAAa,gBAAgB,CAAC;yBAC9B;wBAGD,IAAI;4BACH,MAAMA,aAAa,eAAe,CAAC,CAAC,kDAAkD,EAAEp9B,OAAO,WAAW,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE;gCAAE,SAAS;4BAAK;4BACvJ;wBACD,EAAE,OAAO3O,OAAO,CAAC;wBAEjB,IAAIuE,MAAM2jC,oBAAoB,GAAG,MAAM,IAAI/lC,MAAM;oBAClD;gBAED,EAAE,OAAOnC,OAAO;oBACf,IAAImsC,eAAe;oBACnB,IAAInsC,iBAAiBmC,OACpBgqC,eAAensC,MAAM,OAAO;yBACtB,IAAI,AAAiB,YAAjB,OAAOA,OACjBmsC,eAAensC;oBAEhB,MAAM+rC,aAAa,KAAK;oBACxB,OAAO;wBAAE,MAAM;wBAAK,SAASI;wBAAe,MAAM;oBAAG;gBACtD;YACD;YAEA,IAAGx9B,OAAO,WAAW,CAAC,YAAY,EAAC;gBAClC,MAAMo9B,aAAa,OAAO,CAAC,iDAAiD,KAAK;gBACjF,MAAMA,aAAa,gBAAgB,CAAC;gBAEpC,MAAMK,YAAYJ,YAAY,OAAO,CAAC,4DAA4D,MAAM,CAAC;oBAAC,SAAS,IAAIrmC,OAAO,CAAC,CAAC,EAAEgJ,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;gBAAE,GAAG,KAAK;gBAE9K,IAAG,MAAMy9B,aAAa,GAAE;oBACvB,MAAMJ,YAAY,OAAO,CAAC,8BAA8B,IAAI,CAACr9B,OAAO,WAAW,CAAC,YAAY;oBAC5F,MAAMq9B,YAAY,OAAO,CAAC,8BAA8B,KAAK;oBAC7D,MAAMA,YAAY,OAAO,CAAC,8DAA8D,KAAK;gBAC9F;YACD;YACA,MAAMD,aAAa,KAAK;QAEzB;QAEA,MAAMhN,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KACCjwB,OAAO,GAAG,IACV,CAAC,wCAAwC,EAAE7P,OAAO,OAAO,CAAC+sC,WACxD,GAAG,CAAC,CAACjK,KAAOA,GAAG,IAAI,CAAC,MACpB,IAAI,CAAC,MAAM;YACd,SAASjzB,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAGA,IAAI;YACH,MAAM7C,KAAK,eAAe,CAAC,sBAAsB;gBAAE,OAAO;YAAU;QACrE,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAQ,MAAM++B,KAAK,GAAG;YAAG;QACvD;QAGA,MAAMA,KAAK,eAAe,CAAC,kBAAkB;YAAE,OAAO;QAAU;QAGhEM,cAAcN,MAAK,oDAAmD,MAAM,qFAC5E;YACC,eAAe;YACf,gBAAgB;QACjB;QAEAM,cAAcN,MAAK,gEAA+D,MAAM,iGACxF;YACC,eAAe;YACf,gBAAgB;QACjB;QAGA,MAAMwE,gBAAgBxE,KAAK,OAAO,CAAC;QACnC,MAAMwE,cAAc,KAAK;QACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,KAAK;QAGrC,IAAIA,OAAO,WAAW,CAAC,QAAQ,EAAE;YAChC,MAAM40B,gBAAgBxE,KAAK,OAAO,CAAC;YACnC,MAAMwE,cAAc,KAAK;YACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,WAAW,CAAC,QAAQ;QACrD;QAGA,MAAMmwB,oBAAoBC,MAAMpwB,OAAO,OAAO;QAE9C,MAAMowB,KAAK,KAAK,CAAC;QAEjB,MAAMA,KAAK,QAAQ,CAAC,KAAK,CAAC;QAG1B,MAAMA,KAAK,OAAO,CAAC,yBAAyB,QAAQ,CAAC,CAACpnB,OAASA,KAAK,cAAc;QAGlF,IAAIhJ,OAAO,WAAW,CAAC,UAAU,EAAE;YAClC,MAAM40B,gBAAgBxE,KAAK,OAAO,CAAC;YACnC,MAAMwE,cAAc,KAAK;YACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,WAAW,CAAC,UAAU;QACvD;QAGA,IAAIA,OAAO,WAAW,CAAC,OAAO,EAAE;YAC/B,MAAMyzB,WAAWtB,mBAAmBnyB,OAAO,WAAW,CAAC,OAAO;YAC9D,MAAM09B,QAAQ,MAAM1L,cAAchyB,OAAO,WAAW,CAAC,OAAO,EAAE3B,6BAAAA,IAAS,CAAC20B,cAAcS;YAGtF,MAAMrD,KAAK,OAAO,CAAC,2DAA2D,KAAK;YACnF,MAAMA,KACJ,OAAO,CAAC,mGACR,MAAM,CAAC;gBAAE,SAAS;YAAS,GAC3B,KAAK;YAIP,MAAMA,KAAK,eAAe,CAAC,iCAAiC;gBAAE,OAAO;YAAU;YAC/E,MAAMuN,SAASvN,KAAK,OAAO,CAAC;YAE5B,MAAMuN,OAAO,OAAO,CAAC,+CAA+C,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,KAAK;YACrG,MAAMvN,KAAK,cAAc,CAAC;YAE1B,MAAM6E,qBAAqB7E,KAAK,YAAY,CAAC;YAC7C,MAAMuN,OAAO,OAAO,CAAC,iEAAiE,KAAK;YAC3F,MAAMzI,cAAc,MAAMD;YAC1B,MAAMC,YAAY,QAAQ,CAAC;gBAACwI;aAAM;YAGlC,MAAMtN,KAAK,eAAe,CAAC,0EAA0E;gBACpG,OAAO;YACR;YACA,MAAMA,KAAK,eAAe,CAAC,wCAAwC;gBAAE,OAAO;YAAW;YAEvF,MAAMwN,UAAUxN,KAAK,OAAO,CAAC;YAC7B,IAAG,MAAMwN,QAAQ,KAAK,KAAK,GAAG,OAAO;gBAAC,MAAM;gBAAK,SAAS,YAAW,OAAMA,QAAQ,WAAW,MAAI,WAAU;gBAAI,MAAM;YAAE;YAGxH,MAAMD,OACJ,OAAO,CAAC,8EACR,MAAM,CAAC;gBAAE,SAAS;YAAM,GACxB,KAAK;YAEP,MAAMA,OACJ,OAAO,CAAC,8CACR,MAAM,CAAC;gBAAE,SAAS;YAAK,GACvB,OAAO,CAAC;gBAAE,OAAO;YAAU;YAC7B,MAAMA,OAAO,OAAO,CAAC,8CAA8C,MAAM,CAAC;gBAAE,SAAS;YAAK,GAAG,KAAK;QACnG;QAGA,IAAG39B,OAAO,WAAW,CAAC,WAAW,EAAC;YACjC,MAAMowB,KAAK,OAAO,CAAC,gBAAgB,KAAK;YAExC,MAAMyN,aAAazN,KAAK,OAAO,CAAC;YAChC,MAAM0N,gBAAgBD,WAAW,OAAO,CAAC;YACzC,MAAME,gBAAgBF,WAAW,OAAO,CAAC;YAEzC,MAAMC,cAAc,OAAO,CAAC,qCAAqC,MAAM,CAAC;gBAAC,SAAS;YAAM,GAAG,KAAK;YAEhG,IAAG99B,OAAO,WAAW,EAAE,aAEtB,KAAK,IAAIg+B,WAAWh+B,OAAO,WAAW,CAAC,WAAW,CAAC;gBAElD,MAAM89B,cAAc,OAAO,CAAC,gCAAgC,IAAI,CAACE;gBACjE,MAAMF,cAAc,OAAO,CAAC,cAAc,KAAK;gBAC/C,MAAMG,aAAaH,cAAc,OAAO,CAAC;gBAEzC,MAAM1N,KAAK,cAAc,CAAC;gBAE1B,IAAI,MAAM6N,WAAW,YAAY,CAAC,aAAa,2CAW9C,OAAO;oBAAE,MAAM;oBAAK,SAAS,CAAC,MAAM,EAAED,QAAQ,gBAAgB,CAAC;oBAAE,MAAM;gBAAG;gBAXc;oBAExF,MAAME,kBAAkB,MAAMD,WAAW,OAAO,CAAC,4BAA4B,WAAW,MAAMrgC,KAAAA;oBAC9F,MAAMqgC,WAAW,KAAK;oBACtB,MAAME,cAAcL,cAAc,OAAO,CAAC;oBAC1C,MAAMM,iBAAiB,MAAMD,YAAY,OAAO,CAAC,kBAAkB,MAAM,CAAC;wBAAC,SAASD;oBAAe,GAAG,KAAK;oBAE3G,IAAI,CAACE,gBACJ,OAAO;wBAAC,MAAM;wBAAM,SAAQ;wBAAgB,MAAM;oBAAE;gBAEtD;YAGD;YAKD,IAAGp+B,OAAO,WAAW,EAAE,gBAAe;gBACrC,MAAMq+B,gBAAgB,MAAMP,cAAc,OAAO,CAAC,6BAA6B,MAAM,CAAC;oBAAE,SAAS;gBAAM,GAAG,KAAK,MAAM;gBACrH,IAAG,CAACO,eAAe,MAAMP,cAAc,OAAO,CAAC,0DAA0D,KAAK;YAC/G;YAEA,MAAMQ,WAAWP,cAAc,OAAO,CAAC;YACvC,IAAI,CAAC,MAAMO,SAAS,SAAS,IAAI,MAAMA,SAAS,KAAK;YACrD,MAAMP,cAAc,OAAO,CAAC,8CAA8C,KAAK;YAE/E,IAAI/9B,OAAO,WAAW,EAAE,gBAAe;gBAEtC,MAAMowB,KAAK,OAAO,CAAC,2BAA2B,KAAK;gBAEnD,MAAMmO,iBAAiBnO,KAAK,OAAO,CAAC;gBACpC,MAAMoO,oBAAoBD,eAAe,OAAO,CAAC;gBACjD,MAAME,oBAAoBF,eAAe,OAAO,CAAC;gBAGjD,IAAK,IAAIvD,SAASh7B,OAAO,WAAW,CAAC,cAAc,CAClD,IAAIg7B,AAAU,aAAVA,OAAmB;oBACtB,IAAI0D,WAAW1+B,OAAO,WAAW,CAAC,cAAc,CAACg7B,MAAM;oBAEvD,MAAMwD,kBAAkB,OAAO,CAAC,mCAAmC;wBAAE,SAAS;oBAAO,GAAG,KAAK;oBAC7F,MAAMA,kBAAkB,OAAO,CAAC,6BAA6B,IAAI,CAACE;oBAGlE,IAAG1+B,OAAO,WAAW,CAAC,YAAY,EAAE;wBACnC,MAAM2+B,wBAAwBvO,KAAK,OAAO,CAAC;wBAC3C,MAAMwO,aAAaD,sBAAsB,OAAO,CAAC;wBAEjD,MAAME,cAAc;wBACpB,MAAMC,UAAU;wBAChB,IAAIC,eAAe;wBAEnB,IAAK,IAAIC,UAAU,GAAGA,UAAUH,aAAaG,UAAW;4BACvD,MAAMC,aAAa,MAAML,WAAW,UAAU;4BAC9C,IAAI,CAACK,YAAW;gCACf,MAAML,WAAW,SAAS,MAAKG;gCAC/B,IAAIA,AAAgB,KAAhBA,cAAmB;4BACxB;4BAEA,IAAIC,YAAYH,cAAc,GAAG,MAAM,IAAIrrC,MAAM;4BACjD,MAAM,IAAI8uB,QAAQ9G,CAAAA,UAAWxqB,WAAWwqB,SAASsjB;wBAClD;wBAGA,MAAMI,cAAc,MAAMP,sBAAsB,OAAO,CAAC,yDAAyD,WAAW,MAAM;wBAClI,MAAMQ,kBAAkB,MAAMR,sBAAsB,OAAO,CAAC,qEAAqE,MAAM,CAAC;4BAAC,SAAS,IAAI3nC,OAAO,CAAC,CAAC,EAAE;gCAACgJ,OAAO,WAAW,CAAC,YAAY;6BAAC,CAAC,CAAC,CAAC;wBAAC,GAAG,KAAK,MAAM;wBAEpN,IAAI,CAACk/B,eAAe,CAACC,iBAAiB;4BACrC,MAAMR,sBAAsB,OAAO,CAAC,yDAAyD,KAAK;4BAClG,MAAMA,sBAAsB,OAAO,CAAC,qDAAqD,MAAM,CAAC;gCAAC,SAAS,IAAI3nC,OAAO,CAAC,CAAC,EAAE;oCAACgJ,OAAO,WAAW,CAAC,YAAY;iCAAC,CAAC,CAAC,CAAC;4BAAC,GAAG,KAAK;wBACvK;oBACD,OACC,MAAMw+B,kBAAkB,OAAO,CAAC,qDAAqD,SAAS,MAAKA,kBAAkB,OAAO,CAAC,mDAAmD,OAAO;gBAGzL;gBAID,MAAMF,WAAWG,kBAAkB,OAAO,CAAC;gBAC3C,IAAI,CAAC,MAAMH,SAAS,SAAS,IAAI,MAAMA,SAAS,KAAK;gBACrD,MAAMG,kBAAkB,OAAO,CAAC,8CAA8C,KAAK;YAEpF;QAED;QAGA,IAAGz+B,OAAO,WAAW,EAAE,eAAc;YACpC,MAAMowB,KAAK,OAAO,CAAC,qDAAqD,KAAK;YAC7E,MAAMgP,wBAAwBhP,KAAK,OAAO,CAAC;YAC3C,MAAMiP,mBAAmBD,sBAAsB,OAAO,CAAC;YACvD,MAAME,mBAAmBF,sBAAsB,OAAO,CAAC;YAEvD,IAAGp/B,AAAyC,YAAzCA,OAAO,WAAW,CAAC,aAAa,CAAC,IAAI,EAAa;gBACpD,MAAMq/B,iBAAiB,OAAO,CAAC,wCAAwC;oBAAE,SAAS;gBAAa,GAAG,KAAK;gBAEvG,MAAME,eAAeF,iBAAiB,OAAO,CAAC;gBAC9C,MAAMG,aAAaH,iBAAiB,OAAO,CAAC;gBAC5C,MAAMI,mBAAmBrP,KAAK,OAAO,CAAC;gBAEtC,MAAMmP,aAAa,OAAO,CAAC,kCAAkC,KAAK;gBAClE,MAAME,iBAAiB,OAAO,CAAC,mCAAmC;oBAAE,SAASz/B,OAAO,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;gBAAQ,GAAG,KAAK;gBAEtI,IAAGA,OAAO,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,eAC3C,MAAMu/B,aAAa,OAAO,CAAC,6BAA6B,KAAK;qBAE7D,MAAMA,aAAa,OAAO,CAAC,+BAA+B,SAAS,MAAKA,aAAa,OAAO,CAAC,6BAA6B,OAAO;gBAGlI,MAAMnP,KAAK,cAAc,CAAC;gBAE1B,MAAMoP,WAAW,OAAO,CAAC,kCAAkC,KAAK;gBAChE,MAAMC,iBAAiB,OAAO,CAAC,mCAAmC;oBAAE,SAASz/B,OAAO,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;gBAAM,GAAG,KAAK;gBAEpI,IAAGA,OAAO,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,aAC3C,MAAMw/B,WAAW,OAAO,CAAC,6BAA6B,KAAK;qBAE3D,MAAMA,WAAW,OAAO,CAAC,+BAA+B,SAAS,MAAKA,WAAW,OAAO,CAAC,6BAA6B,OAAO;YAE/H,OAAM,IAAGx/B,AAAyC,aAAzCA,OAAO,WAAW,CAAC,aAAa,CAAC,IAAI,EAC7C,MAAMq/B,iBAAiB,OAAO,CAAC,wCAAwC;gBAAE,SAAS;YAAgB,GAAG,KAAK;YAG3G,MAAMC,iBAAiB,OAAO,CAAC,8CAA8C,KAAK;QACnF;QAGA,IAAIt/B,OAAO,WAAW,CAAC,cAAc,EAAE;YACtC,MAAMowB,KAAK,OAAO,CAAC,yCAAyC,KAAK;YACjE,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMqI,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMsP,aAAajH,cAAc,OAAO,CAAC;YACzC,MAAMiH,WAAW,IAAI,CAAC1/B,OAAO,WAAW,CAAC,cAAc;YACvD,MAAMy4B,cAAc,OAAO,CAAC,6BAA6B,KAAK;QAC/D;QAGA,IAAIz4B,OAAO,WAAW,CAAC,gBAAgB,IAAIA,OAAO,WAAW,CAAC,gBAAgB,CAAC,MAAM,GAAG,GAAG;YAC1F,MAAM9H,SAAS8H,OAAO,WAAW,CAAC,gBAAgB,CAAC,EAAE;YACrD,MAAMowB,KAAK,OAAO,CAAC,0CAA0C,KAAK;YAClE,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMqI,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMqI,cAAc,OAAO,CAAC,CAAC,2BAA2B,EAAEvgC,OAAO,EAAE,CAAC,EAAE,KAAK;QAC5E;QAGA,IAAI8H,AAA2C,SAA3CA,OAAO,WAAW,CAAC,mBAAmB,EAAW;YACpD,MAAMowB,KAAK,OAAO,CAAC,2CAA2C,KAAK;YACnE,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMqI,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMqI,cAAc,OAAO,CAAC,gDAAgD,KAAK;QAClF;QAEA,MAAMrI,KAAK,cAAc,CAAC;QAG1B,MAAMoF,YAAY,MAAM,IAAIlT,QAAgB,CAAC9G;YAE5C,MAAMia,iBAAiB,OAAOv7B;gBAC7B,MAAM5B,MAAM4B,SAAS,GAAG;gBACxB,MAAMylC,QAAQtO,oBAAoB/4B;gBAClC,IAAIA,IAAI,QAAQ,CAAC,8BAA8BqnC,OAAO,MAAM,iBAAiB;oBAC5E,MAAMjK,eAAe,MAAMx7B,SAAS,IAAI;oBACxCk2B,KAAK,GAAG,CAAC,YAAYqF;oBACrBja,QAAQka,cAAc;gBACvB;YACD;YAGAtF,KAAK,EAAE,CAAC,YAAYqF;YAGpBrF,KAAK,OAAO,CAAC,gEAAgE,KAAK;QACnF;QAGA,MAAMA,KAAK,eAAe,CAAC,iFAAiF;YAC3G,OAAO;QACR;QACA,MAAMA,KACJ,OAAO,CAAC,uGACR,KAAK;QAGP,MAAMA,KAAK,eAAe,CAAC,gFAAgF;YAC1G,OAAO;QACR;QACA,MAAMA,KACJ,OAAO,CAAC,sGACR,KAAK;QAEP,IAAI;YACH,MAAMwP,YAAYvpC,KAAK,GAAG;YAG1B,MAAM,IAAIisB,QAAc,OAAO9G,SAASC;gBAEvC,MAAMga,iBAAiB,OAAOv7B;oBAC7B,IAAIA,SAAS,GAAG,GAAG,QAAQ,CAAC,mBAAmB;wBAC9C,MAAMw7B,eAAe,MAAMx7B,SAAS,IAAI;wBACxC,IAAIw7B,AAAyB,QAAzBA,aAAa,OAAO,EAAU;4BACjCla;4BACA4U,KAAK,GAAG,CAAC,YAAYqF;wBACtB,OAAO,IAAIp/B,KAAK,GAAG,KAAKupC,YAAY3C,yBAAyB;4BAC5DxhB;4BACA2U,KAAK,GAAG,CAAC,YAAYqF;wBACtB;oBACD;gBACD;gBAGArF,KAAK,EAAE,CAAC,YAAYqF;gBAGpB,MAAMrF,KAAK,eAAe,CAAC,wDAAwD;oBAClF,OAAO;gBACR;gBACA,MAAMmN,YAAY,MAAMnN,KACtB,OAAO,CAAC,wDACR,KAAK,GACL,YAAY,CAAC;gBACf,IAAImN,WAAW;oBACd,MAAMsC,SAAS,IAAItnC,IAAIglC,WAAWnN,KAAK,GAAG,IAAI,IAAI;oBAClD,MAAMl2B,WAAW,MAAMuzB,UAAM;wBAC5B,QAAQ;wBACR,KAAKoS;wBACL,cAAc;oBACf;oBAEA,MAAM7C,iBAAiB3+B,6BAAAA,IAAS,CAAC20B,cAAc;oBAC/C10B,2BAAAA,aAAgB,CAAC0+B,gBAAgB9iC,SAAS,IAAI;oBAC9C8F,OAAO,kBAAkB,GAAGg9B;gBAC7B,OACC,MAAM,IAAIxpC,MAAM;YAElB;QACD,EAAE,OAAOnC,OAAO;YACf,MAAM++B,KAAK,KAAK;YAChB,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAmB,MAAM;YAAG;QAC1D;QAEA,MAAMA,KAAK,cAAc,CAAC;QAC1B,MAAMA,KAAK,KAAK;QAEhB,OAAOkC,QAAQkD;IAChB;ICrbO,MAAMsK,gBAA+B,OAAO7P,MAAM8P;QACxD,MAAM//B,SAAS2xB,cAAcoO,SAAS;YAAE,UAAU;QAAK;QAEvD,IAAI//B,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,4BAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,8BAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,+BAAY8B,6BAAWzE,MAAMjwB;IACnD;ICtCA,MAAMggC,YAAY,CACjBxnC,MACAwH,QACA1M;QAEA,MAAMiiB,WAAW,IAAI7W,CAAAA,mBAAAA;QAErB,KAAK,MAAM,CAACrO,KAAK+C,MAAM,IAAIjD,OAAO,OAAO,CAACmD,MACzCiiB,SAAS,MAAM,CAACllB,KAAK+C;QAGtB,OAAOoF,KAAK,GAAG,CAAC;YACf,QAAQ;YACR,KAAK;YACL,QAAQ;gBACP,OAAOwH,OAAO,KAAK;gBACnB,GAAG;gBACH,KAAK;gBACL,MAAM;gBACN,MAAM;YACP;YACA,MAAMuV;QACP;IACD;IAEO,MAAMqd,kCAA4B,OAAO3C,MAAMjwB;QACrD,MAAMgzB,eAAe/C,KAAK,UAAU;QACpC,MAAMz3B,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,QAAQ;gBACR,SAAS,CAAC,8CAA8C,EAAEjzB,OAAO,KAAK,CAAC,WAAW,CAAC;YACpF;QACD;QAGA,MAAMigC,kBAAqC,EAAE;QAC7C,MAAMC,aAAqC,CAAC;QAE5C,IAAIlgC,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG;YAEhD,MAAMwzB,SAAS,MAAMlR,QAAQ,GAAG,CAC/BtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC1H;gBACnB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YACnD;YAGD,IAAK,IAAIj/B,QAAQ,GAAGA,QAAQg/B,OAAO,MAAM,EAAEh/B,QAAS;gBACnD,MAAMk/B,QAAQF,MAAM,CAACh/B,MAAM;gBAC3B,MAAM4lC,YAAYnM,aAAayF;gBAE/B,MAAMne,WAAW,IAAI7W,CAAAA,mBAAAA;gBACrB6W,SAAS,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE/gB,QAAQ,GAAG;gBAC5C+gB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,oBAAoB6kB,UAAU,gBAAgB;gBAC9D7kB,SAAS,MAAM,CAAC,QAAQ6kB,UAAU,IAAI;gBACtC7kB,SAAS,MAAM,CAAC,QAAQjX,2BAAAA,gBAAmB,CAACo1B;gBAE5C,MAAMx5B,WAAW,MAAM1B,KAAK,GAAG,CAAuC;oBACrE,QAAQ;oBACR,KAAK,CAAC,wGAAwG,EAAEwH,OAAO,KAAK,CAAC,WAAW,CAAC;oBACzI,MAAMuV;gBACP;gBAGA,MAAM4qB,oBAAoB,MAAM3nC,KAAK,GAAG,CAAgB;oBACvD,QAAQ;oBACR,KAAK;oBACL,QAAQ;wBACP,QAAQ;wBACR,QAAQ0B,SAAS,OAAO;wBACxB,OAAO8F,OAAO,KAAK;wBACnB,MAAM;wBACN,GAAG;wBACH,MAAM;oBACP;gBACD;gBAEA,MAAMogC,aAAaD,kBAAkB,WAAW;gBAEhDF,gBAAgB,IAAI,CAAC;oBACpB,SAAS/lC,SAAS,OAAO;oBACzB,cAAc;oBACd,eAAe;oBACf,SAAS9D,OAAO8D,SAAS,OAAO;oBAChC,OAAOimC,kBAAkB,KAAK;oBAC9B,QAAQA,kBAAkB,MAAM;oBAChC,aAAa,CAAC,IAAI,EAAEC,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAC;oBACnE,KAAKlmC,SAAS,OAAO;gBACtB;gBAGA,IAAI1F,AAAU,MAAVA,OAAa;oBAChB,MAAM6rC,eAAe,IAAI3hC,CAAAA,mBAAAA;oBACzB2hC,aAAa,MAAM,CAAC,UAAUnmC,SAAS,OAAO;oBAG9C,MAAMomC,aAA4B;wBACjC;4BAAC;4BAAI;yBAAE;wBACP;4BAAC;4BAAG;yBAAE;wBACN;4BAAC;4BAAG;yBAAE;qBACN;oBACDD,aAAa,MAAM,CAAC,cAAcC,WAAW,MAAM;oBACnD,MAAMC,kBAAkBD,WAAW,GAAG,CAAC,CAAC1rC,GAAGi/B;wBAC1C,MAAM2M,iBAAiBlS,yBACtB6R,kBAAkB,KAAK,EACvBA,kBAAkB,MAAM,EACxBvrC;wBAEDyrC,aAAa,MAAM,CAAC,CAAC,IAAI,EAAExM,IAAI,GAAG,CAAC,EAAE2M,eAAe,EAAE;wBACtDH,aAAa,MAAM,CAAC,CAAC,IAAI,EAAExM,IAAI,GAAG,CAAC,EAAE2M,eAAe,EAAE;wBACtDH,aAAa,MAAM,CAAC,CAAC,IAAI,EAAExM,IAAI,GAAG,CAAC,EAAE2M,eAAe,EAAE;wBACtDH,aAAa,MAAM,CAAC,CAAC,IAAI,EAAExM,IAAI,GAAG,CAAC,EAAE2M,eAAe,EAAE;wBAEtD,OAAO;4BAAE,OAAO,GAAG5rC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAE,EAAE;4BAAE,GAAG4rC,cAAc;wBAAC;oBACtD;oBAEAH,aAAa,MAAM,CAAC,SAASrgC,OAAO,KAAK;oBACzCqgC,aAAa,MAAM,CAAC,QAAQ;oBAC5BA,aAAa,MAAM,CAAC,KAAK;oBACzBA,aAAa,MAAM,CAAC,QAAQ;oBAE5B,MAAMI,eAAe,MAAMjoC,KAAK,GAAG,CAAiC;wBAC9D,QAAQ;wBACR,KAAK;wBACL,MAAM6nC;oBACR;oBAEJH,WAAW,aAAa,GAAGhmC,SAAS,OAAO;oBAC3CgmC,WAAW,QAAQ,GAAGO,aAAa,MAAM,CAAC,EAAE,CAAC,MAAM;oBACnDP,WAAW,cAAc,GAAGO,aAAa,MAAM,CAAC,EAAE,CAAC,MAAM;oBACzDP,WAAW,aAAa,GAAGO,aAAa,MAAM,CAAC,EAAE,CAAC,MAAM;oBACxDP,WAAW,YAAY,GAAGO,aAAa,MAAM,CAAC,EAAE,CAAC,MAAM;oBACvDP,WAAW,YAAY,GAAGO,aAAa,MAAM,CAAC,EAAE,CAAC,MAAM;oBACvDP,WAAW,UAAU,GAAGlrC,KAAK,SAAS,CAAC;wBACtC,WAAWurC,gBAAgB,GAAG,CAAC,CAACtN,IAAIY,MAAS;gCAC5C,SAAS4M,aAAa,MAAM,CAAC5M,IAAI,CAAC,OAAO;gCACzC,OAAOZ,GAAG,KAAK;gCACf,IAAI;gCACJ,IAAI;gCACJ,IAAI;gCACJ,IAAI;4BACL;wBACA,mBAAmBsN,gBAAgB,GAAG,CAAC,CAACtN,IAAIY,MAAS;gCACpD,GAAGZ,EAAE;gCACL,SAASwN,aAAa,MAAM,CAAC5M,IAAI,CAAC,OAAO;4BAC1C;oBACD;gBACD;YACD;QACD;QAGA,MAAMjP,MAAM,MAAMob,UAAUxnC,MAAMwH,QAAQ;YACzC,GAAGkgC,UAAU;YACb,OAAOlgC,OAAO,KAAK;YACnB,MAAM;YACN,GAAG;YACH,MAAM;YACN,cAAc;YACd,QAAQA,OAAO,KAAK;YACpB,UAAUA,OAAO,OAAO;YACxB,kBAAkBhL,KAAK,SAAS,CAACirC;QAClC;QAEC,OAAO3N,QAAQ1N;IACjB;IC7LA,MAAM8b,aAAqC;QAC1C,IAAI;QACJ,UAAU;QACV,WAAW;QACX,UAAU;IACX;IAEO,MAAMhM,gCAA2B,OAAOzE,MAAMjwB;QACpD,MAAM20B,gBAAmC;YACxC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMvE,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KACCjwB,OAAO,GAAG,IACV,CAAC,8GAA8G,EAAEA,OAAO,KAAK,CAAC,WAAW,CAAC;YAC3I,SAASA,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAEA,MAAMD,eAAe/C,KAAK,UAAU;QAGpC,IAAI;YACH,MAAMG,KAAK,eAAe,CAAC;QAC5B,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAQ,MAAM++B,KAAK,GAAG;YAAG;QACvD;QAEA,MAAMuQ,YAAYvQ,KAAK,OAAO,CAAC;QAG/B,IAAIpwB,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG;YAChD,MAAMwzB,SAAS,MAAMlR,QAAQ,GAAG,CAC/BtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC1H;gBACnB,MAAMm7B,WAAWtB,mBAAmB75B;gBACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YACnD;YAID,MAAMwB,qBAAqB7E,KAAK,YAAY,CAAC;YAC7C,MAAMuQ,UAAU,OAAO,CAAC,wBAAwB,KAAK;YACrD,MAAMA,UACJ,OAAO,CAAC,sDACR,MAAM,CAAC;gBAAE,SAAS;YAAO,GACzB,KAAK;YACP,MAAMzL,cAAc,MAAMD;YAC1B,MAAMC,YAAY,QAAQ,CAAC1B;QAC5B;QAGA,MAAMoB,gBAAgBxE,KAAK,OAAO,CAAC;QACnC,MAAMwE,cAAc,KAAK;QACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,KAAK;QAGrC,MAAMm5B,eAAe/I,KAAK,OAAO,CAAC;QAClC,MAAM+I,aAAa,KAAK;QACxB,MAAMA,aAAa,IAAI,CAACn5B,OAAO,OAAO;QAGtC,IAAIA,OAAO,MAAM,EAAE;YAClB,MAAM2gC,UAAU,OAAO,CAAC,+CAA+C,KAAK;YAC5E,MAAMvQ,KACJ,OAAO,CAAC,uDACR,MAAM,CAAC;gBAAE,SAASsQ,UAAU,CAAC1gC,OAAO,MAAM,CAAC;YAAC,GAC5C,KAAK;QACR;QAGA,IAAIA,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,MAAM,GAAG,GAC7C,MAAMowB,KAAK,eAAe,CAAC;QAI5B,IAAIpwB,OAAO,KAAK,EACf,MAAM2gC,UAAU,OAAO,CAAC,kCAAkC,KAAK;aAE/D,MAAMA,UAAU,OAAO,CAAC,gCAAgC,KAAK;QAG9D,OAAOrO,QAAQ;IAChB;ICnEO,MAAMsO,kBAAiC,OAAO3Q,MAAMjwB;QAC1D,IAAIA,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,8BAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,gCAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,iCAAY8B,+BAAWzE,MAAMjwB;IACnD;;;;IC9BO,MAAM6gC;QAgBZ,MAAM,WAAWvoC,GAAW,EAAmB;YAC9C,OAAOwoC,+BAAAA,UAAiB,CAAC,OAAO,MAAM,CAACxoC,KAAK,QAAQ,MAAM,CAAC;QAC5D;QAQA,MAAM,YAAYiT,IAAY,EAAmB;YAEhD,MAAMw1B,cAAcjuC,qCAAAA,MAAAA,CAAAA,IAAW,CAACyY,MAAM,QAAQ,CAAC;YAE/C,MAAMy1B,SAASF,+BAAAA,cAAqB,CAAC,eAAe,IAAI/0B,WAAW,IAAI,CAAC,QAAQ,GAAG,IAAIA,WAAW,IAAI,CAAC,EAAE;YAEzG,MAAMk1B,aAAaD,OAAO,MAAM,CAACD,aAAa,QAAQ;YACtD,OAAOE,aAAaD,OAAO,KAAK,CAAC;QAClC;QAQA,MAAM,YAAYE,WAAmB,EAAmB;YAEvD,MAAMC,cAAcruC,qCAAAA,MAAAA,CAAAA,IAAW,CAACouC,aAAa;YAE7C,OAAOC,YAAY,QAAQ,CAAC;QAC7B;QASA,MAAM,eAAe/T,OAAe,EAAEgU,QAAgB,EAAmB;YAExE,MAAMC,aAAa,MAAM,IAAI,CAAC,WAAW,CAACjU;YAG1C,MAAM51B,MAAM;gBACX,SAAS;gBACT,UAAU;gBACV,OAAO4pC;gBACP,aAAa;gBACb,SAASC;YACV;YAGA,MAAMC,aAAatsC,KAAK,SAAS,CAACwC,KAAK,MAAM;YAG7C,OAAO1E,qCAAAA,MAAAA,CAAAA,IAAW,CAACwuC,YAAY,QAAQ,CAAC;QACzC;QAWA,MAAM,UAAUhpC,GAAW,EAAEipC,EAAU,EAAEC,EAAU,EAAEJ,WAAW,YAAY,EAAmB;YAC9F,MAAM71B,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAEjT,KAAK,EAAE,6CAA6C,EAAEipC,GAAG,IAAI,EAAEC,GAAG,CAAC,CAAC;YACpH,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,CAACj2B,OAAO61B,WAAW;QAClF;QAEA,MAAM,GAAGK,IAAuC,EAAU;YACzD,MAAM,CAACnuC,MAAMouC,WAAW,IAAI,EAAEC,QAAQ,CAAC,CAAC,GAAGF;YAC3C,OAAOzsC,KAAK,SAAS,CAAC1B,MAAMouC,UAAUC,OACpC,OAAO,CAAC,OAAO,IACf,OAAO,CAAC,WAAW;QACtB;;iBA9FQ,KAAK,GAAG;gBAAC;gBAAW;gBAAY;gBAAW;aAAU;iBACrD,QAAQ,GAAG7uC,qCAAAA,MAAAA,CAAAA,MAAa,CAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CACb,CAAC8uC,OACA,IAAI71B,WAAWjZ,qCAAAA,MAAAA,CAAAA,IAAW,CAAC;oBAAE8uC,QAAQ,KAAM;oBAAOA,QAAQ,KAAM;oBAAOA,QAAQ,IAAK;oBAAa,OAAPA;iBAAY;iBAGjG,EAAE,GAAG9uC,qCAAAA,MAAAA,CAAAA,IAAW,CAAC,oBAAoB;;IAwF9C;ICnFA,MAAM6/B,mCAAmC;QACxC,KAAK;QACL,KAAK;QACL,KAAK;IACN;IAGA,MAAMkP,YAAY,IAAIhB;IAEf,MAAMjO,qCAA4B,OAAO3C,MAAMjwB;QACrD,MAAMgzB,eAAe/C,KAAK,UAAU;QAEpC,MAAM6R,WAAW9hC,OAAO,OAAO,CAAC,IAAI,CAAC,CAACizB,KAAOA,AAAY,SAAZA,GAAG,IAAI,GAAY;QAChE,IAAI,CAAC6O,UACJ,OAAO;YAAE,MAAM;YAAK,SAAS;YAAsB,MAAM;QAAG;QAG7D,MAAMtpC,OAAO,IAAIm1B,KAAK;YACrB,SAAS;gBACR,QAAQ3tB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,KAAO,GAAGA,GAAG,IAAI,CAAC,CAAC,EAAEA,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC;gBAClE,QAAQ;gBACR,SAAS;gBACT,cACC;YACF;QACD;QAGAz6B,KAAK,sBAAsB,CAAiB,CAAC0B;YAC5C,MAAMmrB,eAAenrB,SAAS,IAAI;YAGlC,IAAImrB,cAAc,QAAQA,AAAsB,MAAtBA,aAAa,IAAI,EAAQ;gBAClD,MAAM8N,SAASR,gCAAQ,CAACtN,aAAa,IAAI,CAAC,IAAInrB,SAAS,MAAM,CAAC,eAAe,IAAI;gBAEjF,OAAO;oBACN,MAAMy4B,gCAAQ,CAACtN,aAAa,IAAI,CAAC,GAAG,MAAM;oBAC1C,SAAS8N;oBACT,MAAM9N;gBACP;YACD;QACD;QAGA,MAAM0c,gBAAgB,CAAC,6EAA6E,EAAE/hC,OAAO,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC;QAClJ,MAAMgiC,KAAK3rC,KAAK,GAAG,GAAG,QAAQ;QAC9B,MAAM4rC,KAAK,MAAMJ,UAAU,SAAS,CAACE,eAAeD,UAAUE;QAC9D,MAAME,cAAc,MAAM1pC,KAAK,GAAG,CAA4D;YAC7F,QAAQ;YACR,SAAS;YACT,KAAKupC;YACL,iBAAiB;YACjB,SAAS;gBAAE,OAAOE;gBAAI,OAAOD;YAAG;QACjC;QAEA,MAAMG,WAAWD,YAAY,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO;QAC9D,MAAME,WAAWF,YAAY,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK;QAC5D,IAAG,CAACC,YAAY,CAACC,UAAU,OAAO;YAAE,MAAM;YAAK,SAAS;YAAiB,MAAM;QAAG;QAGlF,MAAMC,aAAa,OAAO/pC,KAAa9D;YACtC,MAAMi/B,WAAWtB,mBAAmB75B;YACpC,MAAMgqC,WAAW,MAAMtQ,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;YAElE,MAAM8O,YAAYJ,QAAQ,CAAC3tC,MAAM;YAEjC,MAAMguC,aAAalkC,2BAAAA,YAAe,CAACgkC;YAEnC,MAAM9pC,KAAK,GAAG,CAAC;gBACd,QAAQ;gBACR,KAAK,CAAC,mCAAmC,EAAE+pC,WAAW;gBACtD,MAAMC;gBACN,SAAS;oBACR,wBAAwBJ;gBACzB;gBACA,iBAAiB;YAClB;YAEA,OAAO;gBAAEG;gBAAWH;YAAS;QAC9B;QAEA,MAAMK,aAAa,MAAMngB,QAAQ,GAAG,CAACtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAACizB,IAAIY,MAAQwO,WAAWpP,IAAIY;QAEpF,IAAG7zB,OAAO,KAAK,IAAIA,OAAO,KAAK,CAAC,MAAM,GAAE,GACvC,MAAMsiB,QAAQ,GAAG,CAACtiB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAOw3B;YACzC,IAAG,CAACA,KAAK,CAAC,KAAK,EAAC;gBACf,MAAMkL,YAAY;oBAAC,aAAalL,KAAK,CAAC,OAAO;gBAAA;gBAC7C,MAAMmL,eAAed,UAAU,KAAK,CAACa;gBACrC,MAAME,YAAYvsC,KAAK,GAAG,GAAG,QAAQ;gBACrC,MAAMwsC,YAAY,MAAMhB,UAAU,SAAS,CAAC,CAAC,+CAA+C,EAAEc,cAAc,EAAEb,UAAUc;gBAExH,IAAIE,cAAc,MAAMtqC,KAAK,GAAG,CAAC;oBAChC,QAAQ;oBACR,KAAK;oBACL,SAAS;wBACR,OAAOqqC;wBACP,OAAOD;oBACR;oBACA,MAAMF;oBACN,iBAAiB;gBAClB;gBACAvyC,OAAO,MAAM,CAACqnC,OAAQsL,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE;YACtD;QACD;QAGD,MAAMvO,cAAc;YACnB,QAAQ;gBACP,KAAK,EAAE;gBACP,eAAe,EAAE;gBACjB,MAAMv0B,QAAQ;gBACd,YAAY,CAAC;gBACb,UAAUA,OAAO,KAAK,IAAI,EAAE;gBAC5B,SAAS;gBACT,QAAQhL,KAAK,SAAS,CAAC;oBACtB,MAAM;oBACN,KAAK;oBACL,WAAW;gBACZ;gBACA,OAAOgL,QAAQ;gBACf,MAAM;gBACN,cAAc;oBACb,SAAS;oBACT,MAAMA,AAAwB,aAAxBA,OAAO,YAAY,GAAgB,IAAI;gBAC9C;gBACA,UAAUA,OAAO,OAAO,GACrB;oBACA,MAAMA,OAAO,OAAO,EAAE;oBACtB,QAAQA,OAAO,OAAO,EAAE;oBACxB,UAAUA,OAAO,OAAO,EAAE;oBAC1B,SAASA,OAAO,OAAO,EAAE;gBAC1B,IACC;gBACH,gBAAgB;YACjB;YACA,YAAY;gBACX,QAAQyiC,WAAW,GAAG,CAAC,CAACxP,KAAQ;wBAC/B,iBAAiB;wBACjB,SAASA,GAAG,SAAS;wBACrB,UAAU;4BAAE,QAAQ;wBAAG;wBACvB,UAAU;4BAAE,UAAU,EAAE;4BAAE,SAAS;wBAAE;oBACtC;YACD;YACA,YAAY;QACb;QAGA,MAAM8P,sBAAsB;YAC3B,QAAQ;YACR,WAAW,CAAC;YACZ,YAAY,CAAC;QACd;QAEA,IAAI/iC,OAAO,eAAe,EAAE,SAAS,uBAEpC+iC,oBAAoB,MAAM,GAAG;aACvB,IAAI/iC,OAAO,eAAe,EAAE,SAAS,gBAE3C+iC,oBAAoB,MAAM,GAAG;aACvB,IAAI/iC,OAAO,eAAe,EAAE,SAAS;YAE3C,IAAIA,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EAEnC+iC,oBAAoB,MAAM,GAAG;iBACvB,IAAI/iC,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EAAsB;gBAEhE+iC,oBAAoB,MAAM,GAAG;gBAC7B,MAAMC,YAA0D,CAAC;gBAEjE,IAAIhjC,OAAO,eAAe,CAAC,gBAAgB,EAE1CgjC,UAAU,UAAU,GAAG;oBACtB,MAAMhjC,OAAO,eAAe,CAAC,gBAAgB,CAAC,IAAI;oBAClD,OAAOA,OAAO,eAAe,CAAC,gBAAgB,CAAC,MAAM;oBACrD,SAASA,OAAO,eAAe,CAAC,gBAAgB,CAAC,QAAQ;oBACzD,SAASA,OAAO,eAAe,CAAC,gBAAgB,CAAC,YAAY;gBAC9D;gBAGD,IAAIA,OAAO,eAAe,CAAC,YAAY,EAEtCgjC,UAAU,SAAS,GAAGhjC,OAAO,eAAe,CAAC,YAAY;gBAG1D+iC,oBAAoB,SAAS,GAAGC;YACjC,OAAO,IAAIhjC,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EAAsB;gBAEhE+iC,oBAAoB,MAAM,GAAG;gBAE7B,IAAI/iC,OAAO,eAAe,CAAC,WAAW,EAErC+iC,oBAAoB,UAAU,GAAG;oBAChC,QAAQ/iC,OAAO,eAAe,CAAC,WAAW;gBAC3C;YAEF;;QAGD,MAAMijC,iBAAiB;YACtB,SAAS;YACT,SAAS;YACT,QAAQ;YACR,eAAe,CAAC;YAEhB,gBAAgBjjC,OAAO,oBAAoB,GAAG,CAAC,IAAI;gBAAE,UAAUA,OAAO,gBAAgB;YAAC;YACvF,oBAAoB;gBAAE,IAAI;YAAG;YAC7B,GAAIA,OAAO,eAAe,GAAG;gBAAE+iC;YAAoB,IAAI,CAAC,CAAC;QAC1D;QAEAxO,YAAY,MAAM,CAAC,cAAc,GAAGv/B,KAAK,SAAS,CAACiuC;QAEnD,MAAMC,iBAAiBrB,UAAU,KAAK,CAACtN;QACvC,MAAMqO,YAAYvsC,KAAK,GAAG,GAAG,QAAQ;QACrC,MAAMwsC,YAAY,MAAMhB,UAAU,SAAS,CAAC,CAAC,oBAAoB,EAAEqB,gBAAgB,EAAEpB,UAAUc;QAG/F,MAAMhL,gBAAgB,MAAMp/B,KAAK,GAAG,CAAiC;YACpE,QAAQ;YACR,KAAK;YACL,MAAM+7B;YACN,SAAS;gBACR,OAAOsO;gBACP,OAAOD;YACR;YACA,iBAAiB;QAClB;QAEA,OAAOtQ,QAAQsF,cAAc,IAAI,EAAE;IACpC;IChPA,MAAMiK,gBAAY,IAAIhB;IAEf,MAAMnM,mCAA2B,OAAOzE,MAAMjwB;QACpD,MAAM20B,gBAAmC;YACxC,MAAM;YACN,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,UAAU;QACX;QAEA,MAAMvE,OAAO,MAAMH,KAAK,UAAU,CAAC;YAClC,MAAMA,KAAK,KAAK;YAChB,KAAKjwB,OAAO,GAAG,IAAI;YACnB,SAASA,OAAO,OAAO,EAAE,IAAI,CAACizB,KAAQ;oBAAE,GAAG0B,aAAa;oBAAE,GAAG1B,EAAE;gBAAC,OAAO,EAAE;QAC1E;QAEA,MAAMD,eAAe/C,KAAK,UAAU;QAEpC,MAAM4H,gBAAgB;YACrB;YACA;YACA;YACA;YACA;YACA;SACA;QAED,MAAMzH,KAAK,KAAK,CAAC,MAAM,OAAO0H,OAAOz8B;YACpC,MAAM/C,MAAM+C,QAAQ,GAAG;YACvB,IAAIw8B,cAAc,IAAI,CAACE,CAAAA,UAAWz/B,IAAI,QAAQ,CAACy/B,WAAW;gBACzD,MAAMoL,SAAS,IAAI5qC,IAAID;gBACvB,MAAMypC,gBAAgBoB,OAAO,QAAQ,GAAGA,OAAO,MAAM;gBACrD,MAAMnB,KAAK3rC,KAAK,GAAG,GAAG,QAAQ;gBAE9B,MAAMyrC,WAAW9hC,OAAO,OAAO,CAAC,IAAI,CAAC,CAACizB,KAAOA,AAAY,SAAZA,GAAG,IAAI,GAAY;gBAChE,IAAI,CAAC6O,UAAU;oBACd,MAAMhK,MAAM,OAAO,CAAC;wBACnB,QAAQ;wBACR,aAAa;wBACb,MAAM9iC,KAAK,SAAS,CAAC;4BAAE,MAAM;4BAAK,SAAS;4BAAsB,MAAM;wBAAG;oBAC3E;oBACA;gBACD;gBAEA,MAAMouC,gBAAgBD,OAAO,QAAQ,CAAC,QAAQ,CAACtL,aAAa,CAAC,EAAE;gBAE/D,MAAMoK,KAAK,MAAOmB,CAAAA,gBACd;oBACF,MAAM7O,cAAcv/B,KAAK,KAAK,CAACqG,QAAQ,QAAQ,MAAM;oBACrD,MAAM6nC,iBAAiBrB,cAAU,KAAK,CAACtN;oBAEvC,OAAOsN,cAAU,SAAS,CAAChK,aAAa,CAAC,EAAE,GAACqL,gBAAgBpB,UAAUE;gBACrE,OAAMH,cAAU,SAAS,CAACE,eAAeD,UAAUE,GAAE;gBAGxD,MAAMqB,aAAa;oBAClB,GAAGhoC,QAAQ,OAAO,EAAE;oBACpB,OAAO4mC;gBACR;gBAEA,MAAMnK,MAAM,QAAQ,CAAC;oBAAE,SAASuL;gBAAW;YAC5C,OACC,MAAMvL,MAAM,QAAQ;QAEtB;QAIA,MAAMwL,gBAAgB,OAAOC,UAAmBvgB;YAC/C,MAAMwK,WAAW,AAAoB,YAApB,OAAO+V,WAAwBnT,KAAK,OAAO,CAACmT,YAAYA;YACzE,MAAM/V,SAAS,KAAK;YACpB,MAAMA,SAAS,OAAO,CAAC,SAAS,IAAI,CAACxK;YACrC,MAAMyV,gBAAgBrI,KAAK,OAAO,CAAC;YACnC,MAAMqI,cAAc,KAAK,GAAG,OAAO;YACnC,MAAMA,cAAc,KAAK,GAAG,KAAK;QAClC;QAGA,MAAM+K,aAAa,OAAOD,UAA4BE;YACrD,MAAMjW,WAAW,AAAoB,YAApB,OAAO+V,WAAwBnT,KAAK,OAAO,CAACmT,YAAYA;YACzE,MAAM/V,SAAS,KAAK;YACpB,MAAMA,SAAS,IAAI,CAACiW;YACpB,MAAMjW,SAAS,IAAI;QACpB;QAGA,MAAMkW,mBAAmB;YACxB,MAAMtT,KAAK,cAAc,CAAC;YAC1B,MAAMuT,WAAWvT,KAAK,OAAO,CAAC;YAC9B,MAAMwT,QAAQ,MAAMD,SAAS,KAAK;YAClC,MAAME,kBAAuC,EAAE;YAE/C,IAAK,IAAIjuC,IAAI,GAAGA,IAAIguC,OAAOhuC,IAAK;gBAC/B,MAAMyV,UAAUs4B,SAAS,GAAG,CAAC/tC;gBAC7B,MAAMkuC,QAAQ,MAAMz4B,QAAQ,YAAY,CAAC;gBACzC,IAAIy4B,SAAS,CAACA,MAAM,QAAQ,CAAC,kBAC5BD,gBAAgB,IAAI,CAACx4B;YAEvB;YAEA,IAAIw4B,gBAAgB,MAAM,GAAG,GAC5B,OAAOA,eAAe,CAACA,gBAAgB,MAAM,GAAG,EAAE;YAGnD,MAAM,IAAIrwC,MAAM;QACjB;QAGA,MAAMuwC,oBAAoB;YACzB,MAAM3T,KAAK,cAAc,CAAC;YAC1B,MAAMuT,WAAWvT,KAAK,OAAO,CAAC;YAC9B,OAAOuT,SAAS,IAAI;QACrB;QAMA,IAAI;YACH,MAAMvT,KAAK,eAAe,CAAC,oBAAoB;gBAAE,OAAO;YAAU;QACnE,EAAE,OAAO/+B,OAAO;YACf,OAAO;gBAAE,MAAM;gBAAK,SAAS;gBAAQ,MAAM++B,KAAK,GAAG;YAAG;QACvD;QAGA,MAAMA,KAAK,OAAO,CAAC,qDAAqD,KAAK;QAG7E,MAAMA,KACJ,OAAO,CAAC,0EACR,MAAM,CAAC;YAAE,SAAS;QAAS,GAC3B,KAAK;QAGP,MAAMoD,SAAS,MAAMlR,QAAQ,GAAG,CAC/BtiB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC1H;YACnB,MAAMm7B,WAAWtB,mBAAmB75B;YACpC,OAAO05B,cAAc15B,KAAK+F,6BAAAA,IAAS,CAAC20B,cAAcS;QACnD;QAID,MAAMwB,qBAAqB7E,KAAK,YAAY,CAAC;QAC7C,MAAMA,KAAK,SAAS,CAAC,WAAW,KAAK;QACrC,MAAM8E,cAAc,MAAMD;QAC1B,MAAMC,YAAY,QAAQ,CAAC1B;QAG3B,MAAMoB,gBAAgBxE,KAAK,OAAO,CAAC;QACnC,MAAMwE,cAAc,KAAK;QACzB,MAAMA,cAAc,IAAI,CAAC50B,OAAO,KAAK;QAGrC,MAAMm5B,eAAe/I,KAAK,OAAO,CAAC;QAClC,MAAM+I,aAAa,KAAK;QACxB,MAAMA,aAAa,iBAAiB,CAACn5B,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAgB;QAG5E,IAAGA,OAAO,KAAK,IAAIA,OAAO,KAAK,CAAC,MAAM,GAAG,GACxC,KAAK,MAAMizB,MAAMjzB,OAAO,KAAK,CAAE;YAC9B,MAAMm5B,aAAa,iBAAiB,CAAC,CAAC,CAAC,EAAElG,EAAE,CAAC,OAAO,EAAE;YACrD,MAAM7C,KAAK,OAAO,CAAC,uBAAuB,OAAO,CAAC;gBAAE,OAAO;YAAW;YACtE,MAAMA,KAAK,cAAc,CAAC;YAC1B,MAAMA,KAAK,OAAO,CAAC,wCAAwC,KAAK;QACjE;QAID,MAAMuQ,YAAYvQ,KAAK,OAAO,CAAC;QAC/B,MAAMuQ,UAAU,KAAK;QACrB,MAAMvQ,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG;QAE1B,IAAIpwB,OAAO,OAAO,EAEjB,MAAMsjC,cACLlT,KAAK,OAAO,CAAC,mCAAmC,MAAM,CAAC;YAAE,SAAS;QAAO,IACzEpwB,OAAO,OAAO,CAAC,IAAI;QAIrB,IAAIA,OAAO,eAAe,EAAE;YAE3B,MAAMowB,KAAK,OAAO,CAAC,4BAA4B,MAAM,CAAC;gBAAE,SAAS;YAAS,GAAG,OAAO,CAAC,yBAAyB,KAAK;YACnH,MAAMqI,gBAAgB,MAAMiL;YAC5B,MAAMM,0BAA0BvL,cAAc,OAAO,CAAC;YACtD,IAAIz4B,AAAgC,0BAAhCA,OAAO,eAAe,CAAC,IAAI,EAC9B,MAAMgkC,wBAAwB,MAAM,CAAC;gBAAE,SAAS;YAAY,GAAG,KAAK;iBAC9D,IAAIhkC,AAAgC,mBAAhCA,OAAO,eAAe,CAAC,IAAI,EACrC,MAAMgkC,wBAAwB,MAAM,CAAC;gBAAE,SAAS;YAAY,GAAG,KAAK;iBAC9D,IAAIhkC,AAAgC,uBAAhCA,OAAO,eAAe,CAAC,IAAI,EAAyB;gBAC9D,MAAMgkC,wBAAwB,MAAM,CAAC;oBAAE,SAAS;gBAAS,GAAG,KAAK;gBAEjE,MAAMC,uCAAwC,OAAMP,kBAAiB,EAAG,OAAO,CAAC;gBAEhF,MAAMO,qCAAqC,KAAK,GAAG,OAAO;gBAC1D,IAAIjkC,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EACnC,MAAMikC,qCAAqC,MAAM,CAAC;oBAAE,SAAS;gBAAY,GAAG,KAAK;qBAC3E,IAAIjkC,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EAAsB;oBAChE,MAAM,EAAEkkC,YAAY,EAAEC,gBAAgB,EAAE,GAAGnkC,OAAO,eAAe;oBACjE,MAAMikC,qCAAqC,MAAM,CAAC;wBAAE,SAAS;oBAAO,GAAG,KAAK;oBAE5E,MAAMG,oBAAoB,MAAML;oBAChC,MAAMM,mBAAmBH,gBAAgBC;oBAGzC,IAAIA,kBACH,MAAMb,cAAcc,kBAAkB,OAAO,CAAC,mBAAmBD,iBAAiB,IAAI;oBAGvF,IAAID,cACH,MAAMV,WAAWY,kBAAkB,OAAO,CAAC,uBAAuBF;oBAGnE,MAAME,kBACJ,OAAO,CAAC,iBACR,MAAM,CAAC;wBAAE,SAASC,mBAAmB,OAAO;oBAAK,GACjD,KAAK;gBACR,OAAO,IAAIrkC,AAAqC,oBAArCA,OAAO,eAAe,CAAC,SAAS,EAAsB;oBAChE,MAAMikC,qCAAqC,MAAM,CAAC;wBAAE,SAAS;oBAAO,GAAG,KAAK;oBAE5E,MAAMG,oBAAoB,MAAML;oBAEhC,MAAMO,cAActkC,OAAO,eAAe,CAAC,WAAW;oBACtD,IAAIskC,aACH,MAAMF,kBAAkB,OAAO,CAAC,mBAAmB,IAAI,CAACE;oBAGzD,MAAMF,kBACJ,OAAO,CAAC,iBACR,MAAM,CAAC;wBAAE,SAASE,cAAc,OAAO;oBAAK,GAC5C,KAAK;gBACR;YACD;QACD;QAGA,IAAItkC,AAAwB,cAAxBA,OAAO,YAAY,EAAgB;YACtC,MAAMowB,KAAK,OAAO,CAAC,4BAA4B,MAAM,CAAC;gBAAE,SAAS;YAAO,GAAG,OAAO,CAAC,qBAAqB,KAAK;YAC7G,MAAMqI,gBAAgB,MAAMiL;YAC5B,MAAMjL,cAAc,OAAO,CAAC,6BAA6B,MAAM,CAAC;gBAAE,SAAS;YAAQ,GAAG,KAAK;QAC5F;QAEA,MAAM8L,sBAAsBnU,KAC1B,OAAO,CAAC,SACR,MAAM,CAAC;YAAE,SAASpwB,OAAO,oBAAoB,GAAG,SAAS;QAAO;QAClE,MAAMukC,oBAAoB,KAAK;QAE/B,IAAIvkC,OAAO,gBAAgB,EAE1B,MAAMwjC,WAAW,sBAAsBxjC,OAAO,gBAAgB;QAG/D,MAAM9F,WAAW,MAAM,IAAIooB,QAAgB,CAAC9G;YAE3C,MAAMia,iBAAiB,OAAOv7B;gBAC7B,IAAIA,SAAS,GAAG,GAAG,QAAQ,CAAC,yBAAyB;oBACpD,MAAMw7B,eAAe,MAAMx7B,SAAS,IAAI;oBACxCk2B,KAAK,GAAG,CAAC,YAAYqF;oBACrBja,QAAQka,cAAc,MAAM;gBAC7B;YACD;YAGAtF,KAAK,EAAE,CAAC,YAAYqF;YAEpBrF,KAAK,OAAO,CAAC,uBAAuB,KAAK;QAC1C;QAGA,MAAMA,KAAK,KAAK;QAEhB,OAAOkC,QAAQp4B;IAChB;IClPO,MAAMsqC,qBAAoC,OAAOvU,MAAMjwB;QAC7D,IAAIA,AAAsB,UAAtBA,OAAO,UAAU,EACpB,OAAO00B,iCAAUzE,MAAMjwB;QAGxB,IAAIA,AAAsB,cAAtBA,OAAO,UAAU,EACpB,OAAO4yB,mCAAW3C,MAAMjwB;QAGzB,OAAO+vB,cAAc6C,oCAAY8B,kCAAWzE,MAAMjwB;IACnD;;;;IChCO,MAAMykC;QACZ,YAAoBxU,IAAkB,CAAE;iBAApBA,IAAI,GAAJA;QAAqB;QAGzC,MAAc,SAA0CyU,IAAwB,EAAE1kC,MAAS,EAAE;YAC5F,IAAIqlB;YAEJ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAEzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAACrlB,OAAO,SAAS,IAAI;YAG5C,IAAI,AAAkB,YAAlB,OAAOA,UAAuBA,AAAW,SAAXA,QAEjCA,OAAO,OAAO,GAAGA,QAAQ,WAAW,EAAE;YAGvC,IAAI;gBACHqlB,eAAe,MAAMqf,KAAK,IAAI,CAAC,IAAI,EAAE1kC;YACtC,EAAE,OAAO3O,OAAO;gBACfg0B,eAAesI,KAAK,cAAc,CAACt8B;YACpC;YAEA,IAAIg0B,AAAsB,QAAtBA,aAAa,IAAI,EAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGqf,KAAK,IAAI,CAAC,oBAAoB,CAAC,EAAErf;iBACpD,IAAIA,AAAsB,MAAtBA,aAAa,IAAI,EAAQ;gBACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACrBA,aAAa,OAAO,IAAI,GAAGqf,KAAK,IAAI,CAAC,KAAK,CAAC,EAC3C5U,eAAezK,aAAa,IAAI,GAChCA,aAAa,KAAK;gBAEnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGqf,KAAK,IAAI,CAAC,cAAc,CAAC;YACnD,OACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGA,KAAK,IAAI,CAAC,eAAe,CAAC;YAGpD,OAAOrf;QACR;QAGA,uBAAuBrlB,MAAoC,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAACu2B,wBAAwBv2B;QAC9C;QAGA,iBAAiBA,MAA8B,EAAE;YAChD,OAAO,IAAI,CAAC,QAAQ,CAACg2B,kBAAkBh2B;QACxC;QAGA,iBAAiBA,MAA8B,EAAE;YAChD,OAAO,IAAI,CAAC,QAAQ,CAAC41B,kBAAkB51B;QACxC;QAGA,qBAAqBA,MAAkC,EAAE;YACxD,OAAO,IAAI,CAAC,QAAQ,CAAC61B,sBAAsB71B;QAC5C;QAGA,mBAAmBA,MAAgC,EAAE;YACpD,OAAO,IAAI,CAAC,QAAQ,CAACwkC,oBAAoBxkC;QAC1C;QAGA,2BAA2BA,MAAwC,EAAE;YACpE,OAAO,IAAI,CAAC,QAAQ,CAACy2B,4BAA4Bz2B;QAClD;QAEA,0BAA0BA,MAAuC,EAAE;YAClE,OAAO,IAAI,CAAC,QAAQ,CAACw2B,2BAA2Bx2B;QACjD;QAGA,gBAAgBA,MAA6B,EAAE;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC4gC,iBAAiB5gC;QACvC;QAGA,kBAAkBA,MAA+B,EAAE;YAClD,OAAO,IAAI,CAAC,QAAQ,CAACs5B,mBAAmBt5B;QACzC;QAGA,eAAeA,MAA4B,EAAE;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC84B,gBAAgB94B;QACtC;QAGA,cAAcA,MAA2B,EAAE;YAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC8/B,eAAe9/B;QACrC;IACD"}
|
|
1
|
+
{"version":3,"file":"bundle.js","sources":["webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/browser.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/common.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/node.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/follow-redirects@1.15.9/node_modules/follow-redirects/debug.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/follow-redirects@1.15.9/node_modules/follow-redirects/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/form_data.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/populate.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js","webpack://@iflyrpa/actions/./src/utils/ttABEncrypt.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/encode-html.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Tokenizer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/esm/Parser.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/helpers.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/bind.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/utils.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/AxiosError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/classes/FormData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/toFormData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/buildURL.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/InterceptorManager.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/defaults/transitional.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/classes/URLSearchParams.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/node/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/common/utils.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/platform/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/defaults/index.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/parseHeaders.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/AxiosHeaders.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/transformData.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/isCancel.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/CanceledError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/settle.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/combineURLs.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/buildFullPath.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/env/data.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/parseProtocol.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/fromDataURI.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/AxiosTransformStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/readBlob.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/formDataToStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/callbackify.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/speedometer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/throttle.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/http.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/cookies.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/mergeConfig.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/resolveConfig.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/xhr.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/composeSignals.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/trackStream.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/fetch.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/adapters/adapters.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/dispatchRequest.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/validator.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/core/Axios.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/cancel/CancelToken.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/spread.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/isAxiosError.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://@iflyrpa/actions/../../node_modules/.pnpm/axios@1.7.8/node_modules/axios/lib/axios.js","webpack://@iflyrpa/actions/./src/utils/http.ts","webpack://@iflyrpa/actions/./src/utils/index.ts","webpack://@iflyrpa/actions/../share/dist/index.mjs","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/baijiahaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/getBaijiahaoActivity/index.ts","webpack://@iflyrpa/actions/./src/actions/getToutiaoConfig/index.ts","webpack://@iflyrpa/actions/./src/actions/getBaijiaohaoConfig/index.ts","webpack://@iflyrpa/actions/./src/actions/searchToutiaoTopicList/index.ts","webpack://@iflyrpa/actions/./src/actions/searchToutiaoLocation/index.ts","webpack://@iflyrpa/actions/./src/actions/searchToutiaoUserID/index.ts","webpack://@iflyrpa/actions/./src/actions/searchXiaohongshuLocation/index.ts","webpack://@iflyrpa/actions/./src/actions/searchXiaohongshuTopicList/index.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/toutiaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/common/FansTool/index.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weitoutiaoPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/utils.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weixinPublish/index.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/weixinmpPublish/index.ts","webpack://@iflyrpa/actions/./src/utils/xhsXsEncrypt.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/mock.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/rpa.ts","webpack://@iflyrpa/actions/./src/actions/xiaohongshuPublish/index.ts","webpack://@iflyrpa/actions/./src/index.ts"],"sourcesContent":["module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\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\tlet m;\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 && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[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.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...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","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","'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","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\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","/**\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","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet flagForceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tflagForceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.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, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m') ||\n\t\t\thasFlag('color=full') ||\n\t\t\thasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\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', 'DRONE'].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 = Number.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, options = {}) {\n\tconst level = supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options\n\t});\n\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel({isTTY: tty.isatty(1)}),\n\tstderr: getSupportLevel({isTTY: tty.isatty(2)})\n};\n","const a0_0x45db08=a0_0x4b0d;function a0_0x4b0d(_0x2bd218,_0x316d6){const _0x165410=a0_0x1654();return a0_0x4b0d=function(_0x4b0d73,_0x5794db){_0x4b0d73=_0x4b0d73-0x84;let _0x1859e3=_0x165410[_0x4b0d73];return _0x1859e3;},a0_0x4b0d(_0x2bd218,_0x316d6);}(function(_0x1b2596,_0x16c0e0){const _0x1227f1=a0_0x4b0d,_0x46fb59=_0x1b2596();while(!![]){try{const _0x383dd4=parseInt(_0x1227f1(0x85))/0x1+-parseInt(_0x1227f1(0xb0))/0x2*(-parseInt(_0x1227f1(0x9b))/0x3)+parseInt(_0x1227f1(0xaa))/0x4+-parseInt(_0x1227f1(0xa0))/0x5*(parseInt(_0x1227f1(0x9d))/0x6)+parseInt(_0x1227f1(0x86))/0x7+-parseInt(_0x1227f1(0xab))/0x8*(parseInt(_0x1227f1(0x8d))/0x9)+parseInt(_0x1227f1(0x91))/0xa;if(_0x383dd4===_0x16c0e0)break;else _0x46fb59['push'](_0x46fb59['shift']());}catch(_0x4fc071){_0x46fb59['push'](_0x46fb59['shift']());}}}(a0_0x1654,0x807f8));const Random=Math['random'](),Ts=Date['now'](),Sm3DoneTs=Ts+0x30,xhrParaDoneTs=Ts+0x109,xhrReqDoneTs=Ts+0x10af0;function a0_0x1654(){const _0x46e031=['floor','dhzx','map','_compress','charCodeAt','min','invalid\\x20j\\x20for\\x20constant\\x20Tj','reset','662|856|1920|977|1920|977|1920|1080|Linux\\x20x86_64','6GqxJwW','error','1578UVUSyW','fromCharCode','replace','17445vhaSjq','isNaN','toString','push','length','write','reduce','charAt','reg','split','2475936ufrFMu','2137592VTpBSF','join','Dkdpgh2ZmsQB80/MfvV36XI1R45-WUAlEixNLwoqYTOPuzKFjJnry79HbGcaStCe','exports','fmUmtNjj1OfTrR716RULEyQaLPrOG1jpZz0/4Tyzr7/IbcOXs8PxVxHmrAIsIMm6IfTserj+JgCbPHUssUmedGKwCrIziubgSU0FT1MmqPOZXcPDGB3xUyq+vaM7HZyYgJtKyMR=','48064qVwnFy','concat','prototype','167524mhzzJE','5968354Oyyfma','chunk','string','forEach','size','slice','sort','9BjSPrC','sum','repeat','splice','239400JtRPVl'];a0_0x1654=function(){return _0x46e031;};return a0_0x1654();}class SM3Hasher{constructor(){const _0x468533=a0_0x4b0d;this[_0x468533(0xa8)]=new Array(0x8),this[_0x468533(0x87)]=[],this[_0x468533(0x8a)]=0x0,this[_0x468533(0x99)]();}[a0_0x45db08(0x99)](){const _0x11e792=a0_0x45db08;this[_0x11e792(0xa8)][0x0]=0x7380166f,this[_0x11e792(0xa8)][0x1]=0x4914b2b9,this['reg'][0x2]=0x172442d7,this[_0x11e792(0xa8)][0x3]=0xda8a0600,this['reg'][0x4]=0xa96f30bc,this[_0x11e792(0xa8)][0x5]=0x163138aa,this[_0x11e792(0xa8)][0x6]=0xe38dee4d,this[_0x11e792(0xa8)][0x7]=0xb0fb0e4e,this[_0x11e792(0x87)]=[],this[_0x11e792(0x8a)]=0x0;}[a0_0x45db08(0xa5)](_0x22d1ef){const _0x182388=a0_0x45db08;var _0x2ded18=_0x182388(0x88)==typeof _0x22d1ef?function(_0x5e491d){const _0x12d911=_0x182388;var _0x5795ab=encodeURIComponent(_0x5e491d)[_0x12d911(0x9f)](/%([0-9A-F]{2})/g,function(_0x22d98b,_0x5659da){const _0x357908=_0x12d911;return String[_0x357908(0x9e)]('0x'+_0x5659da);}),_0x5c0d1c=new Array(_0x5795ab['length']);return Array[_0x12d911(0x84)][_0x12d911(0x89)]['call'](_0x5795ab,function(_0x2e8583,_0x28f42f){const _0x4b2a85=_0x12d911;_0x5c0d1c[_0x28f42f]=_0x2e8583[_0x4b2a85(0x96)](0x0);}),_0x5c0d1c;}(_0x22d1ef):_0x22d1ef;this['size']+=_0x2ded18['length'];var _0xffe4ea=0x40-this[_0x182388(0x87)][_0x182388(0xa4)];if(_0x2ded18[_0x182388(0xa4)]<_0xffe4ea)this['chunk']=this[_0x182388(0x87)][_0x182388(0xb1)](_0x2ded18);else{for(this['chunk']=this[_0x182388(0x87)][_0x182388(0xb1)](_0x2ded18[_0x182388(0x8b)](0x0,_0xffe4ea));this[_0x182388(0x87)]['length']>=0x40;)this['_compress'](this[_0x182388(0x87)]),_0xffe4ea<_0x2ded18[_0x182388(0xa4)]?this['chunk']=_0x2ded18[_0x182388(0x8b)](_0xffe4ea,Math[_0x182388(0x97)](_0xffe4ea+0x40,_0x2ded18['length'])):this[_0x182388(0x87)]=[],_0xffe4ea+=0x40;}}[a0_0x45db08(0x8e)](_0x34ff8d,_0xecf9f6){const _0x3ddb20=a0_0x45db08;_0x34ff8d&&(this[_0x3ddb20(0x99)](),this[_0x3ddb20(0xa5)](_0x34ff8d)),this['_fill']();for(var _0x28ac8a=0x0;_0x28ac8a<this[_0x3ddb20(0x87)][_0x3ddb20(0xa4)];_0x28ac8a+=0x40)this[_0x3ddb20(0x95)](this[_0x3ddb20(0x87)]['slice'](_0x28ac8a,_0x28ac8a+0x40));var _0x117621,_0x335539,_0x450e58,_0x5b1ad8=null;if('hex'==_0xecf9f6){_0x5b1ad8='';for(_0x28ac8a=0x0;_0x28ac8a<0x8;_0x28ac8a++)_0x5b1ad8+=(_0x117621=this[_0x3ddb20(0xa8)][_0x28ac8a][_0x3ddb20(0xa2)](0x10),_0x335539=0x8,_0x450e58='0',_0x117621[_0x3ddb20(0xa4)]>=_0x335539?_0x117621:_0x450e58[_0x3ddb20(0x8f)](_0x335539-_0x117621[_0x3ddb20(0xa4)])+_0x117621);}else for(_0x5b1ad8=new Array(0x20),_0x28ac8a=0x0;_0x28ac8a<0x8;_0x28ac8a++){var _0x46ad66=this[_0x3ddb20(0xa8)][_0x28ac8a];_0x5b1ad8[0x4*_0x28ac8a+0x3]=(0xff&_0x46ad66)>>>0x0,_0x46ad66>>>=0x8,_0x5b1ad8[0x4*_0x28ac8a+0x2]=(0xff&_0x46ad66)>>>0x0,_0x46ad66>>>=0x8,_0x5b1ad8[0x4*_0x28ac8a+0x1]=(0xff&_0x46ad66)>>>0x0,_0x46ad66>>>=0x8,_0x5b1ad8[0x4*_0x28ac8a]=(0xff&_0x46ad66)>>>0x0;}return this[_0x3ddb20(0x99)](),_0x5b1ad8;}['_fill'](){const _0xa844a0=a0_0x45db08;var _0x15bc36=0x8*this[_0xa844a0(0x8a)],_0x4a32f3=this['chunk'][_0xa844a0(0xa3)](0x80)%0x40;for(0x40-_0x4a32f3<0x8&&(_0x4a32f3-=0x40);_0x4a32f3<0x38;_0x4a32f3++)this[_0xa844a0(0x87)][_0xa844a0(0xa3)](0x0);for(var _0x36cc0b=0x0;_0x36cc0b<0x4;_0x36cc0b++){var _0xd7dcfe=Math[_0xa844a0(0x92)](_0x15bc36/0x100000000);this['chunk'][_0xa844a0(0xa3)](_0xd7dcfe>>>0x8*(0x3-_0x36cc0b)&0xff);}for(_0x36cc0b=0x0;_0x36cc0b<0x4;_0x36cc0b++)this[_0xa844a0(0x87)][_0xa844a0(0xa3)](_0x15bc36>>>0x8*(0x3-_0x36cc0b)&0xff);}[a0_0x45db08(0x95)](_0x1e530c){const _0x3c50af=a0_0x45db08;function _0x3da582(_0x14b06e,_0x4ec82e){return(_0x14b06e<<(_0x4ec82e%=0x20)|_0x14b06e>>>0x20-_0x4ec82e)>>>0x0;}function _0x489962(_0x5dd43e){const _0x744660=a0_0x4b0d;return 0x0<=_0x5dd43e&&_0x5dd43e<0x10?0x79cc4519:0x10<=_0x5dd43e&&_0x5dd43e<0x40?0x7a879d8a:void console[_0x744660(0x9c)](_0x744660(0x98));}function _0x197f71(_0x5e22dd,_0xfc800b,_0x1300f1,_0xed8891){const _0x3414cb=a0_0x4b0d;return 0x0<=_0x5e22dd&&_0x5e22dd<0x10?(_0xfc800b^_0x1300f1^_0xed8891)>>>0x0:0x10<=_0x5e22dd&&_0x5e22dd<0x40?(_0xfc800b&_0x1300f1|_0xfc800b&_0xed8891|_0x1300f1&_0xed8891)>>>0x0:(console[_0x3414cb(0x9c)]('invalid\\x20j\\x20for\\x20bool\\x20function\\x20FF'),0x0);}function _0x2f42fb(_0x326645,_0x2c63af,_0x558c0d,_0x4a902b){const _0x493bba=a0_0x4b0d;return 0x0<=_0x326645&&_0x326645<0x10?(_0x2c63af^_0x558c0d^_0x4a902b)>>>0x0:0x10<=_0x326645&&_0x326645<0x40?(_0x2c63af&_0x558c0d|~_0x2c63af&_0x4a902b)>>>0x0:(console[_0x493bba(0x9c)]('invalid\\x20j\\x20for\\x20bool\\x20function\\x20GG'),0x0);}if(_0x1e530c[_0x3c50af(0xa4)]<0x40){console[_0x3c50af(0x9c)]('compress\\x20error:\\x20not\\x20enough\\x20data');return;}else{for(var _0x23a9bd=function(_0x7114f5){for(var _0x49cf1f=new Array(0x84),_0x698c70=0x0;_0x698c70<0x10;_0x698c70++)_0x49cf1f[_0x698c70]=_0x7114f5[0x4*_0x698c70]<<0x18,_0x49cf1f[_0x698c70]|=_0x7114f5[0x4*_0x698c70+0x1]<<0x10,_0x49cf1f[_0x698c70]|=_0x7114f5[0x4*_0x698c70+0x2]<<0x8,_0x49cf1f[_0x698c70]|=_0x7114f5[0x4*_0x698c70+0x3],_0x49cf1f[_0x698c70]>>>=0x0;for(var _0xe5328=0x10;_0xe5328<0x44;_0xe5328++){var _0x2b58f2=_0x49cf1f[_0xe5328-0x10]^_0x49cf1f[_0xe5328-0x9]^_0x3da582(_0x49cf1f[_0xe5328-0x3],0xf);_0x2b58f2=_0x2b58f2^_0x3da582(_0x2b58f2,0xf)^_0x3da582(_0x2b58f2,0x17),_0x49cf1f[_0xe5328]=(_0x2b58f2^_0x3da582(_0x49cf1f[_0xe5328-0xd],0x7)^_0x49cf1f[_0xe5328-0x6])>>>0x0;}for(_0xe5328=0x0;_0xe5328<0x40;_0xe5328++)_0x49cf1f[_0xe5328+0x44]=(_0x49cf1f[_0xe5328]^_0x49cf1f[_0xe5328+0x4])>>>0x0;return _0x49cf1f;}(_0x1e530c),_0x17c086=this[_0x3c50af(0xa8)][_0x3c50af(0x8b)](0x0),_0x3621a2=0x0;_0x3621a2<0x40;_0x3621a2++){var _0x5959b9=_0x3da582(_0x17c086[0x0],0xc)+_0x17c086[0x4]+_0x3da582(_0x489962(_0x3621a2),_0x3621a2),_0x3b42ff=((_0x5959b9=_0x3da582(_0x5959b9=(0xffffffff&_0x5959b9)>>>0x0,0x7))^_0x3da582(_0x17c086[0x0],0xc))>>>0x0,_0x50d411=_0x197f71(_0x3621a2,_0x17c086[0x0],_0x17c086[0x1],_0x17c086[0x2]);_0x50d411=(0xffffffff&(_0x50d411=_0x50d411+_0x17c086[0x3]+_0x3b42ff+_0x23a9bd[_0x3621a2+0x44]))>>>0x0;var _0x910e21=_0x2f42fb(_0x3621a2,_0x17c086[0x4],_0x17c086[0x5],_0x17c086[0x6]);_0x910e21=(0xffffffff&(_0x910e21=_0x910e21+_0x17c086[0x7]+_0x5959b9+_0x23a9bd[_0x3621a2]))>>>0x0,_0x17c086[0x3]=_0x17c086[0x2],_0x17c086[0x2]=_0x3da582(_0x17c086[0x1],0x9),_0x17c086[0x1]=_0x17c086[0x0],_0x17c086[0x0]=_0x50d411,_0x17c086[0x7]=_0x17c086[0x6],_0x17c086[0x6]=_0x3da582(_0x17c086[0x5],0x13),_0x17c086[0x5]=_0x17c086[0x4],_0x17c086[0x4]=(_0x910e21^_0x3da582(_0x910e21,0x9)^_0x3da582(_0x910e21,0x11))>>>0x0;}for(var _0x459622=0x0;_0x459622<0x8;_0x459622++)this['reg'][_0x459622]=(this[_0x3c50af(0xa8)][_0x459622]^_0x17c086[_0x459622])>>>0x0;}}}function EnvData2CharCode(_0x58cd97,_0x23e1e0,_0x3ca6b2){const _0x56cb93=a0_0x45db08;let _0x2d49d4=Random*0xf0>>0x0>0x6d?(Random*0xf0>>0x0)+0x2:Random*0xf0>>0x0,_0x3f2013=Random*0xff>>0x0&0x4d|0x2|0x10|0x20|0x80,_0x4b8ded=[Random*0xffff&0xff&0xaa|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x0,0x2)[0x0]&0x55,Random*0xffff&0xff&0x55|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x0,0x2)[0x0]&0xaa,Random*0xffff>>0x8&0xaa|[0x1,0x0,0x1,0xf]['slice'](0x0,0x2)[0x1]&0x55,Random*0xffff>>0x8&0x55|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x0,0x2)[0x1]&0xaa,_0x2d49d4&0xaa|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x2,0x4)[0x0]&0x55,_0x2d49d4&0x55|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x2,0x4)[0x0]&0xaa,_0x3f2013&0xaa|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x2,0x4)[0x1]&0x55,_0x3f2013&0x55|[0x1,0x0,0x1,0xf][_0x56cb93(0x8b)](0x2,0x4)[0x1]&0xaa],_0x5bb315=_0x56cb93(0x9a)['split']('')[_0x56cb93(0x94)](_0x42b4c4=>_0x42b4c4[_0x56cb93(0x96)](0x0)),_0x1cdc95=((String(xhrParaDoneTs+0x3)&0xff)+',')[_0x56cb93(0xa9)]('')[_0x56cb93(0x94)](_0x58aa5d=>_0x58aa5d[_0x56cb93(0x96)](0x0));const _0x26ee7a=new SM3Hasher(),_0xe2d586=_0x26ee7a[_0x56cb93(0x8e)](_0x26ee7a['sum'](_0x58cd97+_0x56cb93(0x93))),_0x571095=_0x26ee7a[_0x56cb93(0x8e)](_0x26ee7a[_0x56cb93(0x8e)](_0x23e1e0+'dhzx')),_0x4dabdb=_0x26ee7a[_0x56cb93(0x8e)](_0x3ca6b2);let _0x4139e6=[0x29,(xhrReqDoneTs-0x190e5788800)/0x3e8/0x3c/0x3c/0x18/0xe>>0x0,0x6,xhrParaDoneTs-Ts+0x3&0xff,xhrParaDoneTs&0xff,xhrParaDoneTs>>0x8&0xff,xhrParaDoneTs>>0x10&0xff,xhrParaDoneTs>>0x18&0xff,xhrParaDoneTs/0x100/0x100/0x100/0x100&0xff,xhrParaDoneTs/0x100/0x100/0x100/0x100/0x100&0xff,xhrParaDoneTs/0x100/0x100/0x100/0x100/0x100&0xff%0x100&0xff,xhrParaDoneTs/0x100/0x100/0x100/0x100/0x100&0xff%0x100&0xff/0x100&0xff,[0xa,0x4,0x4,0x0,0x1][0x4]&0xff,[0xa,0x4,0x4,0x0,0x1][0x4]>>0x8&0xff,[0xa,0x4,0x4,0x0,0x1][0x0],[0xa,0x4,0x4,0x0,0x1][0x1],[0xa,0x4,0x4,0x0,0x1][0x2],[0xa,0x4,0x4,0x0,0x1][0x3],0x8&0xff,0x8>>0x8&0xff,0x8>>0x10&0xff,0x8>>0x18&0xff,_0xe2d586[0x9],_0xe2d586[0x12],0x3,_0xe2d586[0x3],_0x571095[0xa],_0x571095[0x13],0x4,_0x571095[0x4],_0x4dabdb[0xb],_0x4dabdb[0x15],0x5,_0x4dabdb[0x5],Sm3DoneTs&0xff,Sm3DoneTs>>0x8&0xff,Sm3DoneTs>>0x10&0xff,Sm3DoneTs>>0x18&0xff,Sm3DoneTs/0x100/0x100/0x100/0x100&0xff,Sm3DoneTs/0x100/0x100/0x100/0x100/0x100&0xff,0x3,0x6529&0xff,0x6529>>0x8&0xff,0x6529>>0x10&0xff,0x6529>>0x18&0xff,0x4cf&0xff,0x4cf>>0x8&0xff,0x4cf>>0x10&0xff,0x4cf>>0x18&0xff,_0x5bb315['length'],_0x5bb315['length'],0x0,_0x1cdc95[_0x56cb93(0xa4)],_0x1cdc95[_0x56cb93(0xa4)],0x0],_0x339170=[_0x4139e6[0x9],_0x4139e6[0x12],_0x4139e6[0x1e],_0x4139e6[0x23],_0x4139e6[0x2f],_0x4139e6[0x4],_0x4139e6[0x2c],_0x4139e6[0x13],_0x4139e6[0xa],_0x4139e6[0x17],_0x4139e6[0xc],_0x4139e6[0x28],_0x4139e6[0x19],_0x4139e6[0x2a],_0x4139e6[0x3],_0x4139e6[0x16],_0x4139e6[0x26],_0x4139e6[0x15],_0x4139e6[0x5],_0x4139e6[0x2d],_0x4139e6[0x1],_0x4139e6[0x1d],_0x4139e6[0x6],_0x4139e6[0x2b],_0x4139e6[0x21],_0x4139e6[0xe],_0x4139e6[0x24],_0x4139e6[0x25],_0x4139e6[0x2],_0x4139e6[0x2e],_0x4139e6[0xf],_0x4139e6[0x30],_0x4139e6[0x1f],_0x4139e6[0x1a],_0x4139e6[0x10],_0x4139e6[0xd],_0x4139e6[0x8],_0x4139e6[0x29],_0x4139e6[0x1b],_0x4139e6[0x11],_0x4139e6[0x27],_0x4139e6[0x14],_0x4139e6[0xb],_0x4139e6[0x0],_0x4139e6[0x22],_0x4139e6[0x7],_0x4139e6[0x32],_0x4139e6[0x33],_0x4139e6[0x35],_0x4139e6[0x36]];function _0x56e1cd(_0x24b6d5,_0x196cf7){const _0x2eb1f3=_0x56cb93;return _0x196cf7[_0x2eb1f3(0x8c)]((_0x2171ba,_0x925e58)=>_0x925e58-_0x2171ba)[_0x2eb1f3(0x89)](_0x540dbd=>{const _0x2fbb10=_0x2eb1f3;_0x540dbd>=0x0&&_0x540dbd<_0x24b6d5[_0x2fbb10(0xa4)]&&_0x24b6d5[_0x2fbb10(0x90)](_0x540dbd,0x1);}),_0x24b6d5;}let _0x41ebdd=_0x4b8ded[_0x56cb93(0xb1)](_0x56e1cd(_0x4139e6,[0x18,0x1c,0x20,0x31,0x34])),_0x42a240=_0x41ebdd[_0x56cb93(0xa6)]((_0x49ec53,_0x3d9ba0)=>_0x49ec53^_0x3d9ba0),_0xeaa831=_0x339170['concat'](_0x5bb315,_0x1cdc95,_0x42a240),_0x477e24=[],_0x3bd924=0x0;for(let _0xa7bf19=0x0;_0xa7bf19+0x2<_0xeaa831[_0x56cb93(0xa4)];){_0x477e24[_0x56cb93(0xa3)](Random*0x3e8&0xff&0x91|_0xeaa831[_0xa7bf19++]&0x6e),_0x477e24['push'](Random*0x3e8&0xff&0x42|_0xeaa831[_0xa7bf19++]&0xbd),_0x477e24[_0x56cb93(0xa3)](Random*0x3e8&0xff&0x2c|_0xeaa831[_0xa7bf19++]&0xd3),_0x477e24[_0x56cb93(0xa3)](_0xeaa831[_0xa7bf19-0x3]&0x91|_0xeaa831[_0xa7bf19-0x2]&0x42|_0xeaa831[_0xa7bf19-0x1]&0x2c),_0x3bd924+=0x3;}let _0x23c273=_0x4b8ded[_0x56cb93(0xb1)](_0x477e24,_0xeaa831[_0x56cb93(0x8b)](_0x3bd924,_0xeaa831[_0x56cb93(0xa4)]));return _0x23c273[_0x56cb93(0x94)](_0x4d13ab=>String['fromCharCode'](_0x4d13ab))[_0x56cb93(0xac)]('');}function Base2Data(_0x348aa6){const _0x2bc7c7=a0_0x45db08;let _0x874207=[Random*0xffff&0xff&0xaa|[0x3,0x52][0x0]&0x55,Random*0xffff&0xff&0x55|[0x3,0x52][0x0]&0xaa,Random*0x28>>0x0&0xaa|[0x3,0x52][0x1]&0x55,Random*0x28>>0x0&0x55|[0x3,0x52][0x1]&0xaa][_0x2bc7c7(0x94)](_0x224d00=>{const _0x31697c=_0x2bc7c7;return String[_0x31697c(0x9e)](_0x224d00);})[_0x2bc7c7(0xac)](''),_0x235e4f=[0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0];const _0x29dde1='Ó'[_0x2bc7c7(0x96)](0x0);let _0x4a74f1=0x0;for(let _0xef36c2=0x0;_0xef36c2<_0x235e4f[_0x2bc7c7(0xa4)];_0xef36c2++){let _0x4120e4=_0x235e4f[_0xef36c2];_0x4a74f1=(_0x4a74f1*_0x4120e4+_0x4a74f1+_0x29dde1)%0x100,[_0x235e4f[_0xef36c2],_0x235e4f[_0x4a74f1]]=[_0x235e4f[_0x4a74f1],_0x235e4f[_0xef36c2]];}let _0x39cb62=0x0,_0x5cbaf6='';for(let _0x29a672=0x0;_0x29a672<_0x348aa6[_0x2bc7c7(0xa4)];_0x29a672++){let _0x96c5ae=_0x348aa6[_0x2bc7c7(0x96)](_0x29a672),_0x46c34b=_0x29a672+0x1,_0x5d4cb4=_0x235e4f[_0x46c34b];[_0x235e4f[_0x46c34b],_0x235e4f[(_0x39cb62+_0x5d4cb4)%0x100]]=[_0x235e4f[(_0x39cb62+_0x5d4cb4)%0x100],_0x235e4f[_0x46c34b]];let _0x506f4f=_0x235e4f[(_0x235e4f[_0x46c34b]+_0x5d4cb4)%0x100];_0x39cb62=(_0x39cb62+_0x5d4cb4)%0x100,_0x5cbaf6+=String['fromCharCode'](_0x96c5ae^_0x506f4f);}return _0x874207+_0x5cbaf6;}function Data2A_B(_0x19ca6d){const _0x5d8d72=a0_0x45db08;let _0x225e7d=_0x5d8d72(0xad),_0x4f0a28='',_0x251d62=[0x3e,0x12a,0x10,0x0,0x4,0x9,0x10,0x0,0x5,0x36,0x0,0x5,0x3e,0x12b,0x1a,0x12c,0x36,0x0,0x5,0x3e,0x12d,0x1a,0x12e,0x36,0x0,0x5,0x3e,0x12f,0x1a,0x130,0x36,0x0,0x5,0x3e,0x131,0x1a,0x10c,0x36,0x0,0x5,0x3e,0x132,0x1a,0x128,0x36,0x0,0x5,0x36,0x0,0x3,0x4c,0x10,0x0,0x6,0x3e,0x24,0x10,0x0,0x7,0x17,0x0,0x10,0x0,0x9,0x36,0x0,0x2,0x4,0x19,0x36,0x0,0x9,0x17,0x3,0x31,0x43,0xe,0x9f,0x36,0x0,0x2,0x16,0x4,0xf7,0x22,0x0,0x9,0x3c,0xc,0x1,0x17,0xff,0x32,0x17,0x10,0x1f,0x36,0x0,0x2,0x16,0x4,0xf7,0x22,0x0,0x9,0x3c,0xc,0x1,0x17,0xff,0x32,0x17,0x8,0x1f,0x20,0x36,0x0,0x2,0x16,0x4,0xf7,0x22,0x0,0x9,0x3c,0xc,0x1,0x17,0xff,0x32,0x20,0x10,0x0,0x8,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0xfc0000,0x32,0x17,0x12,0x33,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0x3f000,0x32,0x17,0xc,0x33,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0xfc0,0x32,0x17,0x6,0x33,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0x3f,0x32,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x12,-0xad,0x36,0x0,0x2,0x4,0x19,0x36,0x0,0x9,0x0,0x17,0x0,0x13,0xe,0xa0,0x36,0x0,0x2,0x16,0x4,0xf7,0x22,0x0,0x9,0x3c,0xc,0x1,0x17,0xff,0x32,0x17,0x10,0x1f,0x36,0x0,0x2,0x4,0x19,0x36,0x0,0x9,0x13,0xe,0x13,0x36,0x0,0x2,0x16,0x4,0xf7,0x36,0x0,0x9,0xc,0x1,0x17,0xff,0x32,0x17,0x8,0x1f,0x12,0x2,0x17,0x0,0x20,0x10,0x0,0x8,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0xfc0000,0x32,0x17,0x12,0x33,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0x3f000,0x32,0x17,0xc,0x33,0xc,0x1,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x2,0x4,0x19,0x36,0x0,0x9,0x13,0xe,0x13,0x36,0x0,0x6,0x16,0x4,0x67,0x36,0x0,0x8,0x17,0xfc0,0x32,0x17,0x6,0x33,0xc,0x1,0x12,0x3,0x36,0x0,0x4,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x36,0x0,0x4,0x31,0x22,0x0,0x7,0x48,0x2b,0x36,0x0,0x7,0x41];for(let _0x2b8eea=0x0;_0x2b8eea<_0x19ca6d['length'];_0x2b8eea+=0x3){const _0x3fca04=_0x19ca6d[_0x5d8d72(0x96)](_0x2b8eea),_0xb85a46=_0x19ca6d[_0x5d8d72(0x96)](_0x2b8eea+0x1),_0x4e702d=_0x19ca6d[_0x5d8d72(0x96)](_0x2b8eea+0x2),_0x4382e1=_0x3fca04<<_0x251d62[0x5e]|_0xb85a46<<_0x251d62[0x70]|_0x4e702d,_0x225aa0=(_0x4382e1&_0x251d62[0x93])>>_0x251d62[0x96];_0x4f0a28+=_0x225e7d[_0x5d8d72(0xa7)](_0x225aa0);const _0x5607b9=(_0x4382e1&_0x251d62[0xad])>>_0x251d62[0xb0];_0x4f0a28+=!Number[_0x5d8d72(0xa1)](_0x3fca04)?_0x225e7d[_0x5d8d72(0xa7)](_0x5607b9):'=';const _0x3fb7b7=(_0x4382e1&_0x251d62[0xc7])>>_0x251d62[0xca];_0x4f0a28+=!Number[_0x5d8d72(0xa1)](_0xb85a46)?_0x225e7d[_0x5d8d72(0xa7)](_0x3fb7b7):'=';const _0x425784=_0x4382e1&_0x251d62[0xe1];_0x4f0a28+=!Number[_0x5d8d72(0xa1)](_0x4e702d)?_0x225e7d[_0x5d8d72(0xa7)](_0x425784):'=';}return _0x4f0a28;}function GenAB(_0x315138,_0x1c32b3){const _0x206982=a0_0x45db08,_0x56536b=_0x206982(0xaf);return Data2A_B(Base2Data(EnvData2CharCode(_0x315138,_0x1c32b3,_0x56536b)));}module[a0_0x45db08(0xae)]=GenAB;","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map","import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map","// Generated using scripts/write-encode-map.ts\nfunction restoreDiff(arr) {\n for (let i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexport default new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [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, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [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, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [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, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [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, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [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, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [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, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [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, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nexport function decode(data, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(data, mode);\n }\n return decodeXML(data);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(data, options = EntityLevel.XML) {\n var _a;\n const opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);\n return decode(data, opts);\n}\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nexport function encode(data, options = EntityLevel.XML) {\n const opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return escapeUTF8(data);\n if (opts.mode === EncodingMode.Attribute)\n return escapeAttribute(data);\n if (opts.mode === EncodingMode.Text)\n return escapeText(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return encodeNonAsciiHTML(data);\n }\n return encodeHTML(data);\n }\n // ASCII and Extensive are equivalent\n return encodeXML(data);\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","export const elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map((val) => [val.toLowerCase(), val]));\nexport const attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map((val) => [val.toLowerCase(), val]));\n","/*\n * Module dependencies\n */\nimport * as ElementType from \"domelementtype\";\nimport { encodeXML, escapeAttribute, escapeText } from \"entities\";\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nimport { elementNames, attributeNames } from \"./foreignNames.js\";\nconst unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML\n : escapeAttribute;\n return Object.keys(attributes)\n .map((key) => {\n var _a, _b;\n const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return `${key}=\"${encode(value)}\"`;\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nconst singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nexport function render(node, options = {}) {\n const nodes = \"length\" in node ? node : [node];\n let output = \"\";\n for (let i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexport default render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nconst foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = { ...opts, xmlMode: false };\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = { ...opts, xmlMode: \"foreign\" };\n }\n let tag = `<${elem.name}`;\n const attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += ` ${attribs}`;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += `</${elem.name}>`;\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return `<${elem.data}>`;\n}\nfunction renderText(elem, opts) {\n var _a;\n let data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML(data)\n : escapeText(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return `<![CDATA[${elem.children[0].data}]]>`;\n}\nfunction renderComment(elem) {\n return `<!--${elem.data}-->`;\n}\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","import { EntityDecoder, DecodingMode, htmlDecodeTree, xmlDecodeTree, } from \"entities/lib/decode.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"BeforeSpecialT\"] = 23] = \"BeforeSpecialT\";\n State[State[\"SpecialStartSequence\"] = 24] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 25] = \"InSpecialTag\";\n State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (this.xmlMode) {\n this.state = State.InTagName;\n }\n else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n }\n else if (lower === Sequences.TitleEnd[2]) {\n this.state = State.BeforeSpecialT;\n }\n else {\n this.state = State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index + 1);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeSpecialT(c) {\n const lower = c | 0x20;\n if (lower === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n }\n else if (lower === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute);\n }\n stateInEntity() {\n const length = this.entityDecoder.write(this.buffer, this.index - this.offset);\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n }\n else {\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.BeforeSpecialT: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(cp);\n }\n else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/lib/decode.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e, _f;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : this.htmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;\n this.recognizeSelfClosing =\n (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;\n this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer)(this.options, this);\n this.foreignContext = [!this.htmlMode];\n (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp, endIndex) {\n var _a, _b;\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n */\n isVoidElement(name) {\n return this.htmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))) {\n this.foreignContext.shift();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index <= pos; index++) {\n const element = this.stack.shift();\n // We know the stack has sufficient elements.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, index !== pos);\n }\n }\n else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\");\n (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", {}, true);\n (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.shift();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (!this.htmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(!this.htmlMode);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map","import { hasChildren } from \"domhandler\";\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nexport function removeSubsets(nodes) {\n let idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n const node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nexport var DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nexport function compareDocumentPosition(nodeA, nodeB) {\n const aParents = [];\n const bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n let current = hasChildren(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = hasChildren(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n const maxIdx = Math.min(aParents.length, bParents.length);\n let idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n const sharedParent = aParents[idx - 1];\n const siblings = sharedParent.children;\n const aSibling = aParents[idx];\n const bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nexport function uniqueSort(nodes) {\n nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1));\n nodes.sort((a, b) => {\n const relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","export const VERSION = \"1.7.8\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import util from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport proxyFromEnv from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import type { ResponseData } from \"@iflyrpa/share\";\nimport axios, {\n\ttype AxiosError,\n\ttype AxiosInstance,\n\ttype AxiosResponse,\n\ttype CreateAxiosDefaults,\n\ttype AxiosRequestConfig,\n} from \"axios\";\n\nexport class Http {\n\tprivate apiClient: AxiosInstance;\n\n\tstatic handleApiError(error: unknown): ResponseData {\n\t\t// 如果错误已经是 ResponseData 格式,直接抛出\n\t\tif (error && typeof error === \"object\" && \"code\" in error && \"message\" in error) {\n\t\t\treturn error as ResponseData;\n\t\t}\n\n\t\t// 处理其他类型的错误\n\t\treturn {\n\t\t\tcode: 500,\n\t\t\tmessage: \"\",\n\t\t\tdata: error,\n\t\t};\n\t}\n\n\tconstructor(config?: CreateAxiosDefaults) {\n\t\tthis.apiClient = axios.create(config);\n\t}\n\n\t// 添加响应拦截器\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\tpublic addResponseInterceptor<T = any>(findError: (response: AxiosResponse<T>) => ResponseData | undefined) {\n\t\tthis.apiClient.interceptors.response.use(\n\t\t\t(response) => {\n\t\t\t\t// 检查响应中的 errno 字段\n\t\t\t\tconst error = findError(response);\n\n\t\t\t\tif (error) {\n\t\t\t\t\treturn Promise.reject(\n\t\t\t\t\t\tObject.assign(error, {\n\t\t\t\t\t\t\textra: {\n\t\t\t\t\t\t\t\tmethod: response.config.method,\n\t\t\t\t\t\t\t\turl: response.config.url,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t},\n\t\t\t(error: AxiosError) => {\n\t\t\t\t// 创建标准错误响应格式\n\t\t\t\tconst errorResponse: ResponseData = {\n\t\t\t\t\tcode: error.response?.status || 500,\n\t\t\t\t\tmessage: error.message || \"\",\n\t\t\t\t\tdata: error.response?.data,\n\t\t\t\t\textra: {\n\t\t\t\t\t\tmethod: error.config?.method,\n\t\t\t\t\t\turl: error.config?.url,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\t// 如果服务端返回了详细错误信息,可以使用服务端的错误信息\n\t\t\t\tif (error.response?.data) {\n\t\t\t\t\tif (typeof error.response.data === \"object\") {\n\t\t\t\t\t\t// 如果服务端返回的是对象,可以尝试提取错误信息\n\t\t\t\t\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\t\t\t\t\tconst serverError = error.response.data as any;\n\t\t\t\t\t\tif (serverError.message) {\n\t\t\t\t\t\t\terrorResponse.message = serverError.message;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// 可以保留原始错误数据\n\t\t\t\t\t\terrorResponse.data = serverError;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 返回标准化的错误响应\n\t\t\t\treturn Promise.reject(errorResponse);\n\t\t\t},\n\t\t);\n\t}\n\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\tpublic async api<T = any>(config: AxiosRequestConfig): Promise<T> {\n\t\ttry {\n\t\t\tconst response = await this.apiClient<T>(config);\n\t\t\treturn response.data;\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(Http.handleApiError(error));\n\t\t}\n\t}\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport type { CommonAction, Page, ResponseData } from \"@iflyrpa/share\";\nimport domSerializer from \"dom-serializer\";\nimport { type ChildNode, DomHandler, type Element } from \"domhandler\";\nimport { DomUtils, Parser } from \"htmlparser2\";\nimport mime from \"mime-types\";\n\nimport { Http } from \"./http\";\n\n/**\n * 生成两数之间的随机整数\n * @param min\n * @param max\n * @returns\n */\nexport function getRandomInRange(min: number, max: number) {\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nexport const getFileState = (filePath: string) => {\n\t// 获取文件名\n\tconst filename = path.basename(filePath);\n\t// 获取文件类型\n\tconst fileType = mime.lookup(filePath);\n\tconst stats = fs.statSync(filePath);\n\t// 获取文件大小\n\tconst fileSize = stats.size;\n\t// 获取最后修改时间\n\tconst lastModifiedDate = stats.mtime;\n\n\treturn {\n\t\tname: filename,\n\t\ttype: fileType,\n\t\tsize: fileSize,\n\t\tlastModifiedDate: lastModifiedDate.toString(),\n\t};\n};\n\nexport type AspectRatio = [number, number];\nexport type CropCoordinates = {\n\tx1: number;\n\ty1: number;\n\tx2: number;\n\ty2: number;\n};\n\n/**\n * 获取特定的比例切割图片,获取切割的坐标\n * @param width 图片长度\n * @param height 图片高度\n * @param aspectRatio 切割比例:[宽度,高度]\n * @returns\n */\nexport const calculateCropCoordinates = (width: number, height: number, aspectRatio: AspectRatio): CropCoordinates => {\n\tconst targetRatio = aspectRatio[0] / aspectRatio[1];\n\tlet cropWidth: number;\n\tlet cropHeight: number;\n\n\tif (width / height > targetRatio) {\n\t\t// 图片过宽,需要裁切宽度\n\t\tcropHeight = height;\n\t\tcropWidth = height * targetRatio;\n\t} else {\n\t\t// 图片过高,需要裁切高度\n\t\tcropWidth = width;\n\t\tcropHeight = width / targetRatio;\n\t}\n\n\tconst x1 = (width - cropWidth) / 2;\n\tconst y1 = (height - cropHeight) / 2;\n\tconst x2 = x1 + cropWidth;\n\tconst y2 = y1 + cropHeight;\n\n\t// 返回百分比坐标\n\treturn {\n\t\tx1: x1 / width,\n\t\ty1: y1 / height,\n\t\tx2: x2 / width,\n\t\ty2: y2 / height,\n\t};\n};\n\n// 提取 html 中的 img 标签\nexport const extractImgTag = (html: string) => {\n\tconst srcList: string[] = [];\n\n\tconst parser = new Parser({\n\t\tonopentag(name, attributes) {\n\t\t\tif (name === \"img\" && (attributes.src.trim() || attributes.currentSrc.trim())) {\n\t\t\t\tsrcList.push(attributes.src.trim() || attributes.currentSrc.trim());\n\t\t\t}\n\t\t},\n\t});\n\n\tparser.write(html);\n\tparser.end();\n\n\treturn srcList;\n};\n\n/**\n * 时间格式化\n * @param time\n * @param format 默认 yyyy-MM-dd HH:mm\n * @returns 时间字符串\n */\nexport class TimeFormatter {\n\tstatic format(timestamp: number, formatStr: String = 'yyyy-MM-dd hh:mm') {\n\t // 自动判断:如果是10位(秒),就转为毫秒\n\t if (typeof timestamp === 'number' && timestamp.toString().length === 10) {\n\t\ttimestamp *= 1000;\n\t }\n \n\t const date = new Date(timestamp);\n \n\t const map: Record<string, string> = {\n\t\t\"yyyy\": String(date.getFullYear()),\n\t\t\"yy\": String(date.getFullYear()).slice(-2),\n\t\t\"MM\": String(date.getMonth() + 1).padStart(2, '0'),\n\t\t\"dd\": String(date.getDate()).padStart(2, '0'),\n\t\t\"hh\": String(date.getHours()).padStart(2, '0'),\n\t\t\"mm\": String(date.getMinutes()).padStart(2, '0'),\n\t\t\"ss\": String(date.getSeconds()).padStart(2, '0'),\n\t\t\"M\": String(date.getMonth() + 1), // 月不带前导零\n \t\t\"d\": String(date.getDate()), // 日不带前导零\n\t\t\"h\": String(date.getHours()), // 不带前导零\n\t\t\"m\": String(date.getMinutes()), // 不带前导零\n\t\t\"s\": String(date.getSeconds()) // 不带前导零\n\t };\n \n\t return formatStr.replace(/yyyy|yy|MM|dd|hh|mm|ss|M|d|h|m|s/g, key => map[key]);\n\t}\n }\nexport const replaceImgSrc = (html: string, callback: (dom: Element) => Element) => {\n\tlet lastedHtml = html;\n\n\tconst isImageTag = (node: ChildNode): node is Element => node.type === \"tag\" && node.name === \"img\";\n\n\tconst traverseDom = (node: ChildNode) => {\n\t\tif (DomUtils.hasChildren(node)) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tif (isImageTag(child)) {\n\t\t\t\t\tcallback(child);\n\t\t\t\t}\n\t\t\t\ttraverseDom(child);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handler = new DomHandler((error, dom) => {\n\t\tif (error) {\n\t\t\tconsole.log(error);\n\t\t} else {\n\t\t\t// 处理 DOM 节点的函数\n\t\t\tdom.forEach(traverseDom);\n\t\t}\n\n\t\tlastedHtml = domSerializer(dom, { decodeEntities: false });\n\t});\n\n\tconst parser = new Parser(handler, { decodeEntities: false });\n\tparser.write(html);\n\tparser.end();\n\n\treturn lastedHtml;\n};\n\nexport const stringifyError = (error: unknown) => {\n\tif (error instanceof Error) {\n\t\treturn error.toString();\n\t}\n\n\tif (typeof error === \"object\") {\n\t\treturn JSON.stringify(error);\n\t}\n\n\treturn error;\n};\n\n/**\n * 创建一个函数,该函数会依次执行传入的函数列表,直到有一个函数成功或所有函数都失败。\n *\n * @template P - 函数的参数类型,为一个任意长度的数组。\n * @template T - 函数的返回类型,为一个 Promise 的解析值类型。\n * @param {CommonAction<P, T>[]} actions - 一个函数列表,每个函数的类型为 `(...p: P) => Promise<T>`。\n * @returns {CommonAction<P, T>} - 返回一个新的函数,其类型与传入的函数列表中的函数类型相同。\n * 当调用该函数时,会依次执行 `actions` 中的函数,直到有一个函数成功(即返回一个解析的 Promise),\n * 或者所有函数都失败(即抛出异常)。如果所有函数都失败,则抛出最后一个错误。\n *\n * @example\n * const action1 = async (num) => {\n * if (num > 0) return \"Action 1 succeeded\";\n * throw new Error(\"Action 1 failed\");\n * };\n *\n * const action2 = async (num) => {\n * if (num > 1) return \"Action 2 succeeded\";\n * throw new Error(\"Action 2 failed\");\n * };\n *\n * const combinedAction = executeAction(action1, action2);\n *\n * (async () => {\n * try {\n * const result = await combinedAction(1);\n * console.log(result); // 输出: \"Action 2 succeeded\"\n * } catch (error) {\n * console.error(error.message);\n * }\n * })();\n */\nexport const executeAction = <P, T>(...actions: CommonAction<P, T>[]): CommonAction<P, T> => {\n\treturn async (task, params) => {\n\t\tlet result: ResponseData<T> = {\n\t\t\tcode: 500,\n\t\t\tmessage: \"\",\n\t\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\t\tdata: null as any,\n\t\t};\n\n\t\tfor (let index = 0; index < actions.length; index++) {\n\t\t\tconst action = actions[index];\n\n\t\t\ttry {\n\t\t\t\tresult = await action(task, params);\n\t\t\t} catch (error) {\n\t\t\t\tresult = Http.handleApiError(error);\n\t\t\t}\n\n\t\t\t// code === 0 表示成功, code === 200 虽然表示失败,但是不需要继续执行后续的 action\n\t\t\tif (result.code === 0 || result.code === 200) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\t// 不是最后一个 action,上报错误信息\n\t\t\tif (index !== actions.length - 1) {\n\t\t\t\ttask.logger.error(result.message, stringifyError(result.data), result.extra);\n\t\t\t}\n\t\t}\n\n\t\t// 所有 action 都执行完毕但都失败了,返回最后一个失败结果\n\t\treturn result;\n\t};\n};\n\n/**\n * 将 HTML 内容复制到剪贴板\n * @param page - 页面对象\n * @param html - HTML 内容\n * @param options - 选项,包括格式和回退\n * @returns 无返回值\n */\nexport async function copyHtmlToClipboard(page: Page, html: string, options = { format: \"text/html\", fallback: true }) {\n\ttry {\n\t\t// 尝试使用原生 API\n\t\tawait page.evaluate(\n\t\t\tasync ({ htmlContent, format }) => {\n\t\t\t\tconst blob = new Blob([htmlContent], { type: format });\n\t\t\t\tawait navigator.clipboard.write([new ClipboardItem({ [format]: blob })]);\n\t\t\t},\n\t\t\t{ htmlContent: html, format: options.format },\n\t\t);\n\t} catch (error) {\n\t\tif (options.fallback) {\n\t\t\t// 回退到 DOM 操作\n\t\t\tawait page.evaluate((htmlContent) => {\n\t\t\t\tconst div = document.createElement(\"div\");\n\t\t\t\tdiv.contentEditable = \"true\";\n\t\t\t\tdiv.style.cssText = `\n position: fixed;\n left: -9999px;\n opacity: 0;\n pointer-events: none;\n `;\n\n\t\t\t\tdiv.innerHTML = htmlContent;\n\t\t\t\tdocument.body.appendChild(div);\n\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(div);\n\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: <忽略错误>\n\t\t\t\tconst selection = window.getSelection()!;\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\tdocument.body.removeChild(div);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t}, html);\n\t\t}\n\t}\n}\n\n/**\n * 通用弹窗监听处理器\n * @param page - Playwright 页面对象\n * @param popupSelector - 弹窗的选择器(字符串或 Locator)\n * @param popKey - 弹窗中的唯一键(字符串)\n * @param buttonSelector - 弹窗中需要点击的按钮选择器\n * @param options - 可选配置项\n */\nexport function PopupListener(\n\tpage: Page, \n\tpopupSelector: string, \n\tpopKey: string, \n\tbuttonSelector: string, \n\toptions:{\n\t\tcheckInterval?: number;\n\t\tstopAfterClick?: boolean;\n\t} = {}) {\n\tconst {\n\t\tcheckInterval = 1000,\n\t\tstopAfterClick = false\n\t} = options;\n\n\tconst popup = page.locator(popupSelector);\n\tconst button = page.locator(buttonSelector);\n\n\tconst intervalId = setInterval(async () => {\n\t\ttry {\n\t\t\tif (await popup.count() > 0 && await popup.isVisible() && (await popup.textContent()||\"\").includes(popKey)) {\n\t\t\t\tawait button.click({ force: true });\n\n\t\t\t\tif (stopAfterClick) {\n\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) { }\n\t}, checkInterval);\n\n\treturn () => {\n\t\tclearInterval(intervalId);\n\t};\n}\n\n// 将 url 的 queryString 解析成对象\nexport const parseUrlQueryString = (url: string) => {\n\tconst queryStringObject: Record<string, string> = {};\n\n\t// 检查 URL 是否包含查询参数\n\tif (!url || !url.includes(\"?\")) {\n\t\treturn queryStringObject;\n\t}\n\n\t// 提取查询字符串部分\n\tconst queryString = url.split(\"?\")[1];\n\n\t// 检查查询字符串是否为空\n\tif (!queryString) {\n\t\treturn queryStringObject;\n\t}\n\n\t// 处理 hash 部分\n\tconst queryWithoutHash = queryString.split(\"#\")[0];\n\n\t// 分割查询参数\n\tconst queryStringArray = queryWithoutHash.split(\"&\");\n\n\tfor (const item of queryStringArray) {\n\t\t// 跳过空参数\n\t\tif (!item) continue;\n\n\t\tconst equalIndex = item.indexOf(\"=\");\n\n\t\t// 处理没有值的参数 (如 ?param)\n\t\tif (equalIndex === -1) {\n\t\t\tqueryStringObject[item] = \"\";\n\t\t} else {\n\t\t\tconst key = item.slice(0, equalIndex);\n\t\t\tconst value = item.slice(equalIndex + 1);\n\n\t\t\t// 尝试解码,如果解码失败则使用原始值\n\t\t\ttry {\n\t\t\t\tqueryStringObject[key] = decodeURIComponent(value);\n\t\t\t} catch (e) {\n\t\t\t\tqueryStringObject[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn queryStringObject;\n};\n\n/**\n * 合并默认参数\n * @param params\n * @param defaults\n * @returns\n */\nexport const defaultParams = <P = Record<string, unknown>>(params: P, defaults: Partial<P>): P => {\n\treturn Object.assign({}, defaults, params);\n};\n","import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from \"node:fs\";\nimport * as __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__ from \"node:https\";\nimport * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from \"node:path\";\nfunction pathExists(path) {\n return new Promise((resolve)=>{\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(path, (err)=>{\n resolve(!err);\n });\n });\n}\nfunction ensureFileSync(filePath) {\n const dirPath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].dirname(filePath);\n try {\n if (!__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].existsSync(dirPath)) __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].mkdirSync(dirPath, {\n recursive: true\n });\n } catch (err) {\n if (err instanceof Error) throw new Error(`Error creating directory: ${err.message}`);\n }\n try {\n if (!__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].existsSync(filePath)) __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFileSync(filePath, \"\");\n } catch (err) {\n if (err instanceof Error) throw new Error(`Error creating file: ${err.message}`);\n }\n}\nfunction writeFile(filePath, data) {\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFile(filePath, data, (err)=>{\n if (err) {\n console.error(\"Error writing file:\", err);\n reject();\n } else {\n console.log(\"File written successfully\");\n resolve();\n }\n });\n });\n}\nfunction compareVersions(v1, v2) {\n const parts1 = v1.split(\".\").map(Number);\n const parts2 = v2.split(\".\").map(Number);\n for(let i = 0; i < Math.max(parts1.length, parts2.length); i++){\n const num1 = i < parts1.length ? parts1[i] : 0;\n const num2 = i < parts2.length ? parts2[i] : 0;\n if (num1 > num2) return 1;\n if (num1 < num2) return -1;\n }\n return 0;\n}\nconst semver = {\n gt: (v1, v2)=>1 === compareVersions(v1, v2)\n};\nfunction fetchJSON(url) {\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__[\"default\"].get(url, (res)=>{\n let data = \"\";\n res.on(\"data\", (chunk)=>{\n data += chunk;\n });\n res.on(\"end\", ()=>{\n try {\n const parsedData = JSON.parse(data);\n resolve(parsedData);\n } catch (e) {\n if (e instanceof Error) reject(new Error(`Error parsing JSON: ${e.message}`));\n }\n });\n }).on(\"error\", (err)=>{\n reject(new Error(`Request failed: ${err.message}`));\n });\n });\n}\nfunction isNil(value) {\n return null == value;\n}\nfunction ensureFile(filePath) {\n return new Promise((resolve, reject)=>{\n const dirPath = __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].dirname(filePath);\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(dirPath, (err, stats)=>{\n if (err) {\n if (\"ENOENT\" !== err.code) return reject(err);\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].mkdir(dirPath, {\n recursive: true\n }, (err)=>{\n if (err) return reject(err);\n createFile();\n });\n } else if (stats.isDirectory()) checkFile();\n else reject(new Error(`${dirPath} is not a directory`));\n });\n function checkFile() {\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].stat(filePath, (err, stats)=>{\n if (err) {\n if (\"ENOENT\" === err.code) createFile();\n else reject(err);\n } else if (stats.isFile()) resolve();\n else reject(new Error(`${filePath} is not a file`));\n });\n }\n function createFile() {\n __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].writeFile(filePath, \"\", (err)=>{\n if (err) reject(err);\n else resolve();\n });\n }\n });\n}\nasync function downloadImage(url, savePath) {\n await ensureFile(savePath);\n return new Promise((resolve, reject)=>{\n __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__[\"default\"].get(url, (response)=>{\n if (200 === response.statusCode) {\n const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__[\"default\"].createWriteStream(savePath);\n response.pipe(fileStream);\n fileStream.on(\"finish\", ()=>{\n fileStream.close();\n console.log(\"下载完成,文件已保存至:\", savePath);\n resolve(savePath);\n });\n } else {\n console.log(\"图片下载失败:\", response.statusCode);\n response.resume();\n reject();\n }\n }).on(\"error\", (error)=>{\n console.error(\"请求图片时发生错误:\", error.message);\n reject();\n });\n });\n}\nfunction getFilenameFromUrl(imageUrl) {\n const parsedUrl = new URL(imageUrl);\n return __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__[\"default\"].basename(parsedUrl.pathname);\n}\nconst sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));\nconst success = (data, message)=>({\n code: 0,\n message: message || \"发布成功\",\n data\n });\nconst randomString = (length)=>{\n let T = \"\";\n const H = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n for(let de = 0; de < length; de++)T += H.charAt(Math.floor(Math.random() * H.length));\n return T;\n};\nexport { downloadImage, ensureFile, ensureFileSync, fetchJSON, getFilenameFromUrl, isNil, pathExists, randomString, semver, sleep, success, writeFile };\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { PublishAction } from \".\";\nimport { extractImgTag, replaceImgSrc } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\terrmsg: string;\n\terrno: number;\n}\n\ninterface ImageRetResponse {\n\tbos_url: string;\n\thttps_url: string;\n\tno_waterlog_bos_url: string;\n\torg_url: string;\n}\n\nconst errnoMap: Record<number, string> = {\n\t20040706: \"正文图片和封面图片推荐jpg、png格式。\",\n\t20040084: \"正文图片和封面图片推荐jpg、png格式。\",\n\t20050004: \"今日百家号发布次数已达上限,请明天再试。\",\n\t10000015: \"账号存在异常,需前往百家号平台完成发文验证后可激活使用。\",\n\t20050000: \"操作太频繁,请稍后再试\",\n\t20040027: \"你的账号状态异常,请到百家号平台检查账号状态。\",\n\t10000017: \"账号存在异常,需前往百家号平台完成发文验证后可激活使用。\",\n\t20040033: \"封面图片推荐 jpg、png格式,宽高在372×284-5000×5000 范围内。\",\n\t2004005714: \"网络环境异常,请检查网络后重试发布。\",\n\t401100032: \"异常,请检查图片(如:格式、版权、合规性等)。\",\n\t20040034: \"封面图片推荐jpg、png格式,不支持gif格式。\",\n\t20040124: \"服务器异常,请稍后重试!\"\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst { baijiahaoSingleCover, baijiahaoMultCover, baijiahaoCoverType } = params.settingInfo;\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\ttoken: params.token,\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst msgType = params.saveType === \"draft\" ? \"同步\" : \"发布\";\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (response.data.errno !== 0) {\n\t\t\tlet errmsg = response.config.defaultErrorMsg || `文章${msgType}异常,请稍后重试。`;\n\n\t\t\tif (response.data.errno === 20050000) {\n\t\t\t\terrmsg = msgType + errnoMap[response.data.errno];\n\t\t\t}\n\t\t\tif (response.data.errno === 401100032) {\n\t\t\t\terrmsg = `图片${msgType}${errnoMap[response.data.errno]}`;\n\t\t\t} else if (errnoMap[response.data.errno]) {\n\t\t\t\terrmsg = errnoMap[response.data.errno];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[response.data.errno] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: response.data,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://baijiahao.baidu.com/pcui/home/index\",\n\t\tdefaultErrorMsg: `百家号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t});\n\n\t// 1. 获取用户 appId\n\tconst appIdInfo = await http.api<CommonResponse<{ user: { app_id: number } }>>({\n\t\tmethod: \"post\",\n\t\turl: \"https://baijiahao.baidu.com/builder/app/appinfo\",\n\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试。\",\n\t});\n\n\tconst appId = appIdInfo.data.user.app_id;\n\n\tconst uploadImages = async (_images: string[]) => {\n\t\t// 过滤掉空字符串\n\t\tconst images = _images.filter((url) => !!url && url.trim() !== \"\");\n\n\t\t// 下载图片到本地\n\t\treturn await Promise.all(\n\t\t\timages.map(async (url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\tconst image = await downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"org_file_name\", fileName);\n\t\t\t\tformData.append(\"type\", \"image\");\n\t\t\t\tformData.append(\"app_id\", appId);\n\t\t\t\tformData.append(\"is_waterlog\", \"1\");\n\t\t\t\tformData.append(\"save_material\", \"1\");\n\t\t\t\tformData.append(\"no_compress\", \"0\");\n\t\t\t\tformData.append(\"article_type\", \"news\");\n\t\t\t\tformData.append(\"media\", fs.createReadStream(image));\n\n\t\t\t\tconst res = await http.api<{ ret: ImageRetResponse }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://baijiahao.baidu.com/materialui/picture/uploadProxy\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t\tdefaultErrorMsg:\n\t\t\t\t\t\tparams.saveType === \"draft\" ? \"图片上传异常,请稍后重试同步。\" : \"图片上传异常,请稍后重试发布。\",\n\t\t\t\t});\n\n\t\t\t\treturn res.ret;\n\t\t\t}),\n\t\t);\n\t};\n\n\t// 2. 提取并上传正文中的图片\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].bos_url;\n\t\t\tdom.attribs[\"data-bjh-origin-src\"] = targetContentImages[idx].org_url;\n\t\t\tdom.attribs[\"data-bjh-params\"] = targetContentImages[idx].org_url;\n\t\t\tdom.attribs[\"data-bjh-type\"] = \"IMG\";\n\t\t}\n\n\t\treturn dom;\n\t});\n\n\t// 3. 上传竖版封面\n\t// let vertical_cover = params.settingInfo.baijiahaoVerticalCover;\n\t// if (vertical_cover) {\n\t// \tvertical_cover = (await uploadImages([vertical_cover]))[0].bos_url;\n\t// }\n\n\t// 4. 上传横版封面\n\tconst horizontalCoverUrl = baijiahaoCoverType === \"single\" ? [baijiahaoSingleCover] : baijiahaoMultCover;\n\tconst horizontalCoverRes = await uploadImages(horizontalCoverUrl);\n\tconst cover_images = horizontalCoverRes.map((item) => ({\n\t\tsrc: item.bos_url,\n\t\tmachine_chooseimg: 0,\n\t\tisLegal: 0,\n\t}));\n\tconst _cover_images_map = horizontalCoverRes.map((item) => ({\n\t\tsrc: item?.bos_url,\n\t\torigin_src: item?.org_url,\n\t}));\n\n\t// 5. 构造发布数据\n\tconst isAi = params.settingInfo.baijiahaoIsAi.includes(\"isAi\");\n\tconst activityList = params.settingInfo.baijiahaoSelectActivityCache;\n\tconst cover_layout = baijiahaoCoverType === \"single\" ? \"one\" : \"three\";\n\n\tconst activity_list = [\n\t\t...(activityList.length > 0 ? [{ id: `task_${activityList[0]}`, is_checked: 1 }] : []),\n\t\t...(params.settingInfo.baijiahaoPublishConf?.map( item => ({ id : item.confName, is_checked : item.isChecked? 1 : 0 })) || [])\n\t];\n\n\tif(isAi && !activity_list.some(item => 'aigc_bjh_status' in item)){ activity_list.push({ id : 'aigc_bjh_status', is_checked : 1 })} // 兼容旧版配置\n\n\tconst publishData: Record<string, any> = {\n\t\ttitle: params.settingInfo.baijiahaoTitle,\n\t\tcontent,\n\t\t// vertical_cover,\n\t\tabstract: params.settingInfo.baijiahaoAbstract,\n\t\tcover_layout,\n\t\tcover_images: JSON.stringify(cover_images),\n\t\t_cover_images_map: JSON.stringify(_cover_images_map),\n\t\ttype: \"news\",\n\t\tsource_reprinted_allow: 0,\n\t\tabstract_from: 1,\n\t\tisBeautify: \"false\",\n\t\tusingImgFilter: \"false\",\n\t\tsource: \"upload\",\n\t\tcover_source: \"upload\",\n\t\tevent2news: params.settingInfo?.baijiahaoEvent2News ? 2 : 0,\n\t\tactivity_list,\n\t\t...(params.settingInfo.timer ? { timer_time: params.settingInfo.timer } : {}),\n\t};\n\n\tconst isDraft = params.saveType === \"draft\";\n\n\tconst saveUrl = isDraft\n\t\t? \"https://baijiahao.baidu.com/pcui/article/save?callback=bjhdraft\"\n\t\t: \"https://baijiahao.baidu.com/pcui/article/publish?callback=bjhpublish\";\n\n\tconst res = await http.api<{ ret: { article_id: string } }>({\n\t\tmethod: \"post\",\n\t\turl: saveUrl,\n\t\tdata: publishData,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\torigin: \"https://baijiahao.baidu.com\",\n\t\t\treferer: \"https://baijiahao.baidu.com/builder/rc/edit?type=news\",\n\t\t},\n\t\tdefaultErrorMsg: isDraft ? \"文章同步出现异常,请稍后重试。\" : \"文章发布出现异常,请稍后重试。\",\n\t});\n\n\treturn success(res.ret.article_id, \"百家号发布完成。\");\n};\n","import path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport { copyHtmlToClipboard, TimeFormatter} from \"../../utils\";\nimport type { PublishAction } from \"./index\";\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"baijiahao.baidu.com\",\n\t\turl: \"https://baijiahao.baidu.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://baijiahao.baidu.com/builder/rc/edit?type=news&is_from_cms=1\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".bjh-edit-header\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 等待编辑器加载出来\n\tawait page.waitForSelector(\".edui-editor-toolbarbox\", { state: \"visible\" });\n\n\t// 2. 关闭纯文本粘贴\n\t// 有个默认开启纯文本粘贴的提示,先关闭\n\tif (await page.locator(\"#_onceTip-news_pasteplain_tip\").isVisible()) {\n\t\tawait page.locator(\"#_onceTip-news_pasteplain_tip .confirm\").click();\n\t}\n\t// 判断是否开启纯文本粘贴,如果开启,点击关闭\n\tif (await page.locator(\".edui-editor-toolbarbox .edui-button.edui-for-pasteplain .edui-state-checked\").isVisible()) {\n\t\tawait page.locator(\".edui-editor-toolbarbox .edui-button.edui-for-pasteplain .edui-state-checked\").click();\n\t}\n\n\t// 3. 填写标题\n\tconst titleInstance = page.locator(\"#ueditor #bjhNewsTitle .input-box textarea\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 4. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\"#ueditor .edui-editor-iframeholder iframe\");\n\t// 模拟Ctrl+A全选\n\tawait page.keyboard.press(\"Control+A\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 等待 1 秒钟(让正文中的图片上传上去)\n\tawait page.waitForTimeout(1000);\n\n\t// 5. 设置封面\n\tconst coverFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(0);\n\tconst isSingleCover = params.settingInfo.baijiahaoCoverType === \"single\";\n\tif (isSingleCover) {\n\t\t// 单图\n\t\tawait coverFormItem\n\t\t\t.locator(\".cheetah-form-item-control label.cheetah-radio-wrapper\")\n\t\t\t.filter({ hasText: \"单图\" })\n\t\t\t.click();\n\t} else {\n\t\t// 多图\n\t\tawait coverFormItem\n\t\t\t.locator(\".cheetah-form-item-control label.cheetah-radio-wrapper\")\n\t\t\t.filter({ hasText: \"三图\" })\n\t\t\t.click();\n\t}\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\t(isSingleCover ? [params.settingInfo.baijiahaoSingleCover] : params.settingInfo.baijiahaoMultCover).map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\tconst coverSelector = page.locator(\n\t\t\".cheetah-form-item-control .edit-cover-container .cover-list .DraggableTags-tag-drag .coverUploaderView\",\n\t);\n\tconst coverCount = await coverSelector.count();\n\n\tfor (let i = 0; i < coverCount; i++) {\n\t\tconst item = coverSelector.nth(i);\n\t\tconst image = images[i];\n\n\t\t// 滚动到可视区域\n\t\tawait item.evaluate((node) => node.scrollIntoView());\n\n\t\t// 如果已经存在图片,选择更换\n\t\tif (await item.locator(\".actions-wrap\").isVisible()) {\n\t\t\tawait item.locator(\".actions-wrap .action\").filter({ hasText: \"更换\" }).click();\n\t\t} else {\n\t\t\tawait item.click();\n\t\t}\n\n\t\t// 等待弹窗出现\n\t\tawait page.waitForSelector(\".cheetah-modal-root .cheetah-ui-pro-image-modal\", { state: \"visible\" });\n\t\t// 选择本地图片 tab\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-tabs-nav-list .cheetah-tabs-tab\")\n\t\t\t.filter({ hasText: \"本地图片\" })\n\t\t\t.click();\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-tabs-tabpane-active .cheetah-upload-wrapper\")\n\t\t\t.click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([image]);\n\t\t// 等待上传完成(可以用去编辑是否可点击来判断)\n\t\t// 等待 button 元素上面的 disabled 属性消失\n\t\tawait page.waitForSelector(\n\t\t\t\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-modal-footer button#imageModalEditBtn[disabled]\",\n\t\t\t{ state: \"detached\" },\n\t\t);\n\t\t// 点击确认关闭弹窗\n\t\tawait page\n\t\t\t.locator(\".cheetah-modal-root .cheetah-ui-pro-image-modal .cheetah-modal-footer button\")\n\t\t\t.filter({ hasText: \"确认\" })\n\t\t\t.click();\n\t\t// 等待 2 秒\n\t\tawait page.waitForTimeout(1000);\n\t}\n\n\t// 6. 摘要\n\tconst abstractFormItem = page\n\t\t.locator(\".bjh-edit-wrap-set .cheetah-form-item\")\n\t\t.nth(1)\n\t\t.locator(\"textarea.cheetah-input\");\n\tawait abstractFormItem.click();\n\tawait abstractFormItem.fill(params.settingInfo.baijiahaoAbstract);\n\n\t// 7. 设置\n\tconst isAi = params.settingInfo.baijiahaoIsAi.includes(\"isAi\");\n\tconst settingFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(5);\n\tif (isAi) {\n\t\tawait settingFormItem.locator(\"label.cheetah-checkbox-wrapper\").filter({ hasText: \"AI创作声明\" }).click();\n\t}\n\tif(params.settingInfo.baijiahaoPublishConf){\n\t\tfor (const item of params.settingInfo.baijiahaoPublishConf) {\n\t\t\tconst _settingFormItem = settingFormItem.locator(\"label.cheetah-checkbox-wrapper\").locator(`span.${item.confName}`)\n\t\t\tif((await _settingFormItem.isChecked()) !== item.isChecked ) await _settingFormItem.click();\n\t\t\tawait page.waitForTimeout(200);\n\t\t};\n\t}\n\n\tconst enent2NewsBtn = page.locator(\"input#event2news\")\n\tif((await enent2NewsBtn.isVisible()) && params.settingInfo.baijiahaoEvent2News) await enent2NewsBtn.click()\n\n\t// 8. 活动投稿\n\tif (params.settingInfo.baijiahaoActivity.length > 0 && params.settingInfo.baijiahaoSelectActivityCache.length > 0) {\n\t\tconst activity = params.settingInfo.baijiahaoActivity.filter((it) =>\n\t\t\tparams.settingInfo.baijiahaoSelectActivityCache.includes(it.id),\n\t\t);\n\t\tif (activity.length > 0) {\n\t\t\tconst activityFormItem = page.locator(\".bjh-edit-wrap-set .cheetah-form-item\").nth(3);\n\t\t\tconst name = activity[0].task_name;\n\t\t\tconst findActivity = activityFormItem.locator(\".cheetah-form-item-control\").getByText(name, { exact: true });\n\t\t\tif ((await findActivity.count()) > 0) {\n\t\t\t\tfindActivity.first().locator(\"..\").click();\n\t\t\t}\n\t\t}\n\t}\n\n\t// 9. 保存草稿 / 发布\n\tconst {articleId, message}= await new Promise<{articleId: string, message:string}>(async (resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tconst url = response.url();\n\t\t\tif (url.includes(\"/pcui/article/save\") || url.includes(\"/pcui/article/publish\")) {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve({articleId:jsonResponse?.ret?.article_id, message: jsonResponse?.errmsg});\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\tconst operatorContainer = page.locator(\".editor-component-operator\");\n\t\tif (params.saveType === \"draft\") {\n\t\t\toperatorContainer.locator(\".op-btn-outter-content\").filter({ hasText: \"存草稿\" }).locator(\"button\").click();\n\t\t} else {\n\t\t\tif (params.settingInfo.timer) {\n\t\t\t\t// 点击“定时发布”按钮\n\t\t\t\tawait operatorContainer.locator(\".op-btn-outter-content\").filter({ hasText: \"定时发布\" }).locator(\"button\").click();\n\t\t\t\n\t\t\t\t// 选择日期\n\t\t\t\tawait page.locator(\".timepublish-wrap-select .select-wrap\",{hasText: \"日\"}).click();\n\t\t\t\tawait page.locator('#select-date_list + * .cheetah-select-item-option', { hasText: TimeFormatter.format(params.settingInfo.timer, \"M月dd日\") }).click();\n\t\t\t\tawait page.waitForTimeout(200);\n\t\t\t\n\t\t\t\t// 选择小时\n\t\t\t\tawait page.locator(\".timepublish-wrap-select .select-wrap\",{hasText: \"点\"}).click();\n\t\t\t\tawait page.locator('#select-hour_list +div.rc-virtual-list').hover();\n\n\t\t\t\tconst scrollHourInfo = await page.evaluate(() => {\n\t\t\t\t\tconst hourInner = document.querySelector('#select-hour_list + * .rc-virtual-list-holder-inner');\n\t\t\t\t\tconst hourElementHeight = hourInner?.children[0].clientHeight || 36; \n\t\t\t\t\tconst hourMapsElem = Array.from(document.querySelectorAll('#select-hour_list + * .cheetah-select-item-option .cheetah-select-item-option-content'));\n\t\t\t\t\tconst hourMap = hourMapsElem.map(item => item.textContent?.trim());\n\n\t\t\t\t\treturn {elementHeight: hourElementHeight, elementItem : hourMap};\n\t\t\t\t});\n\t\t\t\tconst fistHourElem = scrollHourInfo.elementItem[0];\n\t\t\t\tlet fistHourElemH = Number(fistHourElem?.split(\"点\")[0]); // 列表渲染的第一个时间\n\n\t\t\t\tconst lastHourElem = scrollHourInfo.elementItem[scrollHourInfo.elementItem.length - 1];\n\t\t\t\tlet lastHourElemH = Number(lastHourElem?.split(\"点\")[0]); // 列表渲染的最后一个时间\n\n\t\t\t\tlet targetTimeH = Number(TimeFormatter.format(params.settingInfo.timer, 'h')); // 目标时间\n\t\t\t\tawait page.mouse.wheel(0, targetTimeH > lastHourElemH ? (targetTimeH-lastHourElemH)*scrollHourInfo.elementHeight : targetTimeH < fistHourElemH ? -(fistHourElemH - targetTimeH)*scrollHourInfo.elementHeight : 0 );\n\t\t\t\tawait page.locator(\"#select-hour_list + * .cheetah-select-item-option \",{ hasText: targetTimeH + \"点\"}).click()\n\t\t\t\tawait page.waitForTimeout(200);\n\n\n\t\t\t\t// 选择分钟\n\t\t\t\tawait page.locator(\".timepublish-wrap-select .select-wrap\",{hasText: \"分\"}).click();\n\t\t\t\tawait page.locator('#select-minute_list +div.rc-virtual-list').hover();\n\n\t\t\t\tconst scrollMinuteInfo = await page.evaluate(() => {\n\t\t\t\t\tconst hourInner = document.querySelector('#select-minute_list + * .rc-virtual-list-holder-inner');\n\t\t\t\t\tconst hourElementHeight = hourInner?.children[0].clientHeight || 36; \n\t\t\t\t\tconst hourMapsElem = Array.from(document.querySelectorAll('#select-minute_list + * .cheetah-select-item-option .cheetah-select-item-option-content'));\n\t\t\t\t\tconst hourMap = hourMapsElem.map(item => item.textContent?.trim());\n\n\t\t\t\t\treturn {elementHeight: hourElementHeight, elementItem : hourMap};\n\t\t\t\t});\n\t\t\t\tconst fistMinuteElem = scrollMinuteInfo.elementItem[0];\n\t\t\t\tlet fistMinuteElemH = Number(fistMinuteElem?.split(\"分\")[0]); // 列表渲染的第一个时间\n\n\t\t\t\tconst lastMinuteElem = scrollMinuteInfo.elementItem[scrollMinuteInfo.elementItem.length - 1];\n\t\t\t\tlet lastMinuteElemH = Number(lastMinuteElem?.split(\"分\")[0]); // 列表渲染的最后一个时间\n\n\t\t\t\tlet targetTimeM = Number(TimeFormatter.format(params.settingInfo.timer, 'm')); // 目标时间\n\t\t\t\tawait page.mouse.wheel(0, targetTimeM > lastMinuteElemH ? (targetTimeM-lastMinuteElemH)*scrollMinuteInfo.elementHeight : targetTimeM < fistMinuteElemH ? -(fistMinuteElemH - targetTimeM)*scrollMinuteInfo.elementHeight : 0 );\n\t\t\t\tawait page.locator(\"#select-minute_list + * .cheetah-select-item-option \",{ hasText: targetTimeM + \"分\"}).click()\n\t\t\t\tawait page.waitForTimeout(200);\n\t\n\t \n\t\t\t\tawait page.locator(\".cheetah-modal-confirm-btns button\").filter({ hasText:\"定时发布\" }).click()\n\t\t\t}else{\n\t\t\t\toperatorContainer.locator(\".op-btn-outter-content\").filter({ hasText: /^发布/ }).locator(\"button\").click();\n\t\t\t}\n\t\t}\n\t});\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(articleId, articleId? \"发布成功\" : message);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ninterface ActivityData {\n\tid: string;\n\ttask_name: string;\n\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t[key: string]: any;\n}\n\nexport interface BaijiahaoPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\ttoken: string;\n\ttitle: string;\n\tcontent: string;\n\tsettingInfo: {\n\t\tbaijiahaoTitle: string; // 标题\n\t\tbaijiahaoCoverType: \"single\" | \"multiple\"; // 封面设置:单图 | 三图\n\t\tbaijiahaoAbstract: string; // 摘要\n\t\tbaijiahaoIsAi: string[]; // 设置-由配置项取代\n\t\tbaijiahaoSingleCover: string; // 单图封面\n\t\tbaijiahaoMultCover: string[]; // 三图封面\n\t\tbaijiahaoVerticalCover?: string; // 竖版封面-下版本删除\n\t\tbaijiahaoActivity: ActivityData[]; // 活动投稿\n\t\tbaijiahaoPublishConf?: {\n\t\t\tconfName: string;\n\t\t\tisChecked: boolean;\n\t\t}[]; // 发布配置项\n\t\tbaijiahaoEvent2News: boolean; // 图文转动态\n\t\tbaijiahaoSelectActivityCache: string[]; // 选中的活动标签\n\t\ttimer?: number;\n\t};\n}\n\nexport type PublishAction = CommonAction<BaijiahaoPublishParams, string>;\n\nexport const baijiahaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface GetBaijiahaoActivityParams extends ActiomCommonParams {\n\ttoken: string;\n}\n\nexport interface ActivityData {\n\tid: string;\n\ttask_name: string;\n}\n\nexport type PublishAction = CommonAction<GetBaijiahaoActivityParams, ActivityData[]>;\n\nexport const getBaijiahaoActivity: PublishAction = async (_task, params) => {\n\tconst cookies = params.cookies ?? [];\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\ttoken: params.token,\n\t\t},\n\t});\n\n\tconst res = await http.api<{ data: { list: ActivityData[] } }>({\n\t\tmethod: \"get\",\n\t\turl: \"https://baijiahao.baidu.com/author/eco/tasksystem/getSquareMissionList\",\n\t\tparams: {\n\t\t\tpage_no: 1,\n\t\t\tpage_size: 18,\n\t\t\tarticle_type: 1,\n\t\t\ttask_attend: 1,\n\t\t\ttask_origin: \"market\",\n\t\t\ttask_type: -1,\n\t\t},\n\t});\n\n\treturn success(res?.data?.list ?? []);\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface GetToutiaoConfigParams extends ActiomCommonParams {}\n\nexport interface GetToutiaoConfigResult {\n\tsuggestWords: Toutiao.Topic[];\n\tcityDistrict: Toutiao.CityDistrict | null;\n\tuserRights: Toutiao.UserRight[];\n}\n\nexport type PublishAction = CommonAction<GetToutiaoConfigParams, GetToutiaoConfigResult>;\n\nexport const getToutiaoConfig: PublishAction = async (_task, params) => {\n\tconst cookies = params.cookies ?? [];\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\tconst getSuggestWords = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ code: number; hots: Toutiao.Topic[] }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_helper/suggest_words\",\n\t\t\t\tparams: { type: 2, words: \"\" },\n\t\t\t});\n\n\t\t\treturn res.code === 0 ? res.hots : [];\n\t\t} catch (error) {\n\t\t\treturn [];\n\t\t}\n\t};\n\n\tconst getCityDistrict = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ status: number; data: Toutiao.CityDistrict }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/toutiao/normandy/mp/city_district/\",\n\t\t\t});\n\t\t\treturn res.status === 0 ? res.data : null;\n\t\t} catch (error) {\n\t\t\treturn null;\n\t\t}\n\t};\n\n\tconst getUserRights = async () => {\n\t\ttry {\n\t\t\tconst res = await http.api<{ code: number; data: { benefit_level_info_list: Toutiao.UserRight[] } }>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_project/get_benefit_page_info\",\n\t\t\t});\n\t\t\treturn res.code === 0 ? res.data.benefit_level_info_list : [];\n\t\t} catch (error) {\n\t\t\treturn [];\n\t\t}\n\t};\n\n\tconst [suggestWords, cityDistrict, userRights] = await Promise.all([\n\t\tgetSuggestWords(),\n\t\tgetCityDistrict(),\n\t\tgetUserRights(),\n\t]);\n\n\treturn success({ suggestWords, cityDistrict, userRights });\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface GetBaijiahaoConfigParams extends ActiomCommonParams {\n\ttoken: string;\n}\n\nexport interface ConfigData {\n\tid: string;\n\tname: string;\n detail: string;\n is_enable: number;\n}\n\nexport type PublishAction = CommonAction<GetBaijiahaoConfigParams, ConfigData[]>;\n\nexport const getBaijiahaoConfig: PublishAction = async (_task, params) => {\n\tconst cookies = params.cookies ?? [];\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\ttoken: params.token,\n\t\t},\n\t});\n\n\tconst res = await http.api<{ data: { article: { activity_list: ConfigData[]} } }>({\n\t\tmethod: \"get\",\n\t\turl: \"https://baijiahao.baidu.com/pcui/article/edit\",\n\t\tparams: {\n\t\t\ttype: \"news\"\n\t\t},\n\t});\n\n\treturn success(res?.data?.article.activity_list.map((_item) =>{ return {\n id: _item.id,\n name: _item.name,\n detail: _item.detail,\n is_enable: _item.is_enable\n }}) ?? [], \"获取头条发布配置项成功\");\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchToutiaoTopicListParams extends ActiomCommonParams {\n\tsearchValue: string;\n}\n\nexport type PublishAction = CommonAction<SearchToutiaoTopicListParams, Toutiao.Topic[]>;\n\nexport const searchToutiaoTopicList: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\ttry {\n\t\tconst res = await http.api<{ code: number; recents: Toutiao.Topic[]; hots: Toutiao.Topic[] }>({\n\t\t\tmethod: \"get\",\n\t\t\turl: \"https://mp.toutiao.com/mp/agw/creator_helper/suggest_words\",\n\t\t\tparams: { type: 2, words: params.searchValue },\n\t\t});\n\n\t\tif (res.code === 0) {\n\t\t\treturn success(params.searchValue ? res.recents : res.hots);\n\t\t}\n\n\t\treturn success([]);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchToutiaoLocationParams extends ActiomCommonParams {\n\tplaceName: string;\n}\n\nexport type PublishAction = CommonAction<SearchToutiaoLocationParams, Toutiao.CityPoi[]>;\n\nexport const searchToutiaoLocation: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n biz: 1231\n\t\t},\n\t});\n\n\ttry {\n\t\tconst res = await http.api<{ code: number; data: {poi: Array<any>}}>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.toutiao.com/poi/api/searchplace\",\n\t\t\tdata: {\n appid: 1231,\n device: 2,\n keywords: params.placeName,\n language: \"zh-CN\",\n location: \"-1,-1\",\n offset: 20,\n page: 1,\n region: \"CN\",\n scenario: \"TIPS\",\n timestamp: Math.floor(Date.now() / 1000)\n },\n\t\t});\n \n\t\tif (res.code === 200) {\n\t\t\treturn success(res.data.poi.map(item => ({ \n position: item.name,\n city: item.city,\n longitude: item.longitude,\n latitude: item.latitude,\n type_code: item.type_code,\n poi_id: item.id,\n })));\n\t\t}\n\n\t\treturn success([]);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchToutiaoUserIDParams extends ActiomCommonParams {\n\tUserName: string;\n}\n\nexport type PublishAction = CommonAction<SearchToutiaoUserIDParams, Toutiao.SuggestWords[]>;\n\nexport const searchToutiaoUserInfo: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\ttry {\n\t\tconst res = await http.api<{ err_no: number; data: {suggest: Array<any>}}>({\n\t\t\tmethod: \"get\",\n\t\t\turl: \"https://mp.toutiao.com/ugc/publish/post/v1/suggest/\",\n\t\t\tparams: { \n words: params.UserName,\n language: \"zh\",\n app_name: \"toutiao_mp\"\n },\n\t\t});\n\n\t\tif (res.err_no === 0) {\n\t\t\treturn success(res.data.suggest.map(item => ({ \n user_id: item.user.info.user_id,\n name: item.user.info.name,\n avatar_url: item.user.info.avatar_url,\n followers_count: item.user.relation_count.followers_count\n })), '搜索成功');\n\t\t}\n\n\t\treturn success([]);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface searchXiaohongshuLocationParams extends ActiomCommonParams {\n\tsearchValue: string;\n\tlatitude?: number;\n\tlongitude?: number;\n\tsize?: number;\n\tpage?: number;\n}\n\nexport type PublishAction = CommonAction<searchXiaohongshuLocationParams, Xiaohongshu.Location[]>;\n\nexport const searchXiaohongshuLocation: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://creator.xiaohongshu.com\",\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t},\n\t});\n\n\ttry {\n\t\tconst result = await http.api<{ code: number; data: { poi_list: Xiaohongshu.Location[] } }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v1/local/poi/creator/search\",\n\t\t\tdata: {\n\t\t\t\tkeyword: params.searchValue,\n\t\t\t\tlatitude: params.latitude ?? 0,\n\t\t\t\tlongitude: params.longitude ?? 0,\n\t\t\t\tpage: params.page ?? 1,\n\t\t\t\tsize: params.size ?? 10,\n\t\t\t\tsource: \"WEB\",\n\t\t\t\ttype: 3,\n\t\t\t},\n\t\t});\n\n\t\treturn success(result.code === 0 ? result.data.poi_list : []);\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { Http } from \"../../utils/http\";\n\nexport interface SearchXiaohongshuTopicListParams extends ActiomCommonParams {\n\tsearchValue: string;\n}\n\nexport type PublishAction = CommonAction<SearchXiaohongshuTopicListParams, Xiaohongshu.Topic[]>;\n\nexport const searchXiaohongshuTopicList: PublishAction = async (_task, params) => {\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://creator.xiaohongshu.com\",\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t},\n\t});\n\n try {\n\t\tconst result = await http.api<{ code: number; data: { topic_info_dtos: Xiaohongshu.Topic[] } }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v1/search/topic\",\n\t\t\tdata: {\n\t\t\t\tkeyword: params.searchValue,\n\t\t\t\tsuggest_topic_request: {\n\t\t\t\t title: \"\",\n\t\t\t\t desc: `#${params.searchValue}`\n\t\t\t\t},\n\t\t\t\tpage: {\n\t\t\t\t page_size: 20,\n\t\t\t\t page: 1\n\t\t\t\t}\n\t\t\t },\n\t\t\tdefaultErrorMsg: \"话题搜索异常,请稍后重试。\",\n\t\t});\n\n\t\treturn success(result.code === 0 ? result.data.topic_info_dtos : [],'获取话题成功');\n\t} catch (error) {\n\t\treturn success([]);\n\t}\n\n}","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { Toutiao } from \"../../types\";\nimport { extractImgTag, replaceImgSrc, TimeFormatter } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\nimport { COVER_TYPE, type PublishAction, getAddTypeValue } from \"./index\";\nconst GenAB = require(\"../../utils/ttABEncrypt\") as (headers: string, data: string) => string;\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\tcode: number;\n\tmessage: string;\n}\n\nconst errnoMap: Record<number, string | string[]> = {\n\t20004020: \"图片上传异常,请重新绑定账号后同步。\",\n\t7115: \"正文图片和封面图片推荐jpg、png格式。\",\n\t100006: \"文章同步异常,请重新绑定账号后重试。\",\n\t3101: [\n\t\t\"今日头条号发布次数已达上限,请明天再试。\",\n\t\t\"头条账号状态异常,需前往头条号完成实名认证。\",\n\t\t\"头条账号状态异常,资料审核未通过,请前往头条号查看。\",\n\t],\n\t2007: \"文章发布失败,声明原创要求正文字数不少于 300 字,请修改后重试。\",\n\t2010: \"无头条广告权限,请修改后重试。\",\n\t3103: \"今日头条号发布次数已达上限,请明天再试。\",\n\t1053: \"正文图片和封面图片推荐jpg、png格式。\",\n\t2005: \"账号无【申明原创】权限,请关闭申明后重试。\",\n\t100004: \"用户未登录或登陆已过期,请重新登陆后重试。\"\n};\nconst generatorFormData = (data: Record<string, unknown>) => {\n\treturn Object.entries(data)\n\t\t.map(([key, value]) => {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\tconst encodedValue = encodeURIComponent(String(value));\n\t\t\treturn `${encodedKey}=${encodedValue}`;\n\t\t})\n\t\t.join('&');\n};\nconst get3101DetailError = (errorList: string[], message: string, saveType: string) => {\n\tlet error = \"\";\n\tif (message?.includes(\"当日发文\")) {\n\t\terror = errorList[0];\n\t} else if (message?.includes(\"实名认证\")) {\n\t\terror = errorList[1];\n\t} else if (message?.includes(\"资料审核\")) {\n\t\terror = errorList[2];\n\t}\n\treturn error || (saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\");\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst { toutiaoSingleCover, toutiaoMultCover, toutiaoCoverType, toutiaoOriginal, toutiaoExclusive, toutiaoClaim } = params.settingInfo;\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.toutiao.com\",\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\t// 检查响应中的 errno 字段\n\t\tif (response.data?.code !== 0) {\n\t\t\tlet errmsg = \"\";\n\n\t\t\tif (Array.isArray(errnoMap[response.data.code])) {\n\t\t\t\terrmsg = get3101DetailError(errnoMap[response.data.code] as string[], response.data.message, params.saveType);\n\t\t\t} else {\n\t\t\t\terrmsg =\n\t\t\t\t\t(errnoMap[response.data.code] as string) ||\n\t\t\t\t\tresponse.config.defaultErrorMsg ||\n\t\t\t\t\t(params.saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\");\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[response.data.code] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: response.data,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.toutiao.com/mp/agw/creator_center/user_info\",\n\t\tdefaultErrorMsg: `头条号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t});\n\n\tconst uploadImages = async (images: string[]) => {\n\t\t// 下载图片到本地\n\t\treturn await Promise.all(\n\t\t\timages.map(async (url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\tconst image = await downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"image\", fs.createReadStream(image));\n\n\t\t\t\tconst response = await http.api<CommonResponse<Toutiao.ImageData>>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.toutiao.com/spice/image?upload_source=20020002&aid=1231&device_platform=web\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t\tdefaultErrorMsg:\n\t\t\t\t\t\tparams.saveType === \"draft\" ? \"图片上传异常,请稍后重试同步。\" : \"图片上传异常,请稍后重试发布。\",\n\t\t\t\t});\n\n\t\t\t\treturn response.data;\n\t\t\t}),\n\t\t);\n\t};\n\n\t// 1. 提取并上传正文中的图片\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 2. 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].image_url;\n\t\t\tdom.attribs.web_uri = targetContentImages[idx].image_uri;\n\t\t\tdom.attribs.img_width = targetContentImages[idx].image_width.toString();\n\t\t\tdom.attribs.image_height = targetContentImages[idx].image_height.toString();\n\t\t\tdom.attribs.image_type = targetContentImages[idx].image_type.toString();\n\t\t\tdom.attribs.mime_type = targetContentImages[idx].image_mime_type;\n\t\t}\n\t\treturn dom;\n\t});\n\n\t// 3. 上传横版封面\n\tconst coverUrl =\n\t\ttoutiaoCoverType === \"single\" ? [toutiaoSingleCover] : toutiaoCoverType === \"multiple\" ? toutiaoMultCover : [];\n\tconst coverRes = await uploadImages(coverUrl);\n\n\t// 4. 构造发布数据\n\t// const isSingleTitle = params.settingInfo.toutiaoTitleType === \"single\";\n\tconst location = params.settingInfo.toutiaoLocation;\n\tconst topics = params.settingInfo.toutiaoTopic || [];\n\n\t// const multiTitleData = params.settingInfo.subTitles.map((title) => ({\n\t// \tid: \"0\",\n\t// \tvisibility_level: 0,\n\t// \tsource: \"author\",\n\t// \told_source: \"author\",\n\t// \ttext: title,\n\t// \tversion: \"author\",\n\t// \tai_title: \"\",\n\t// }));\n\n\tconst topicContent = topics\n\t\t.map(\n\t\t\t(topic) =>\n\t\t\t\t`<p><a class=\"tteditor-forum\" data-name=\"${topic.word}\" data-id=\"${topic.id}\" data-concern-id=\"${topic.id}\">#${topic.word}#</a ></p >`,\n\t\t)\n\t\t.join(\"\");\n\n\tlet sourceData : Record<string, any> = {\n\t\tsource_type: toutiaoClaim ? toutiaoClaim.type : 5 // 老用户默认为:个人观点,仅供参考\n\t}\n\tif (toutiaoClaim && toutiaoClaim.type === 1) {\n\t\tif( !toutiaoClaim?.source_author_uid) return { code: 500, message: \"请填写作者ID\", data: \"\" }\n\t\tsourceData = {\n\t\t\t...sourceData,\n\t\t\tsource_author_uid: toutiaoClaim.source_author_uid,\n\t\t\ttime_format: toutiaoClaim.time_format,\n\t\t\tposition: toutiaoClaim.position\n\t\t}\n\t}\n\tconst extraData = {\n\t\tcontent_word_cnt: params.settingInfo.cntWord,\n\t\t// is_multi_title: isSingleTitle ? 0 : 1,\n\t\t// sub_titles: isSingleTitle ? [] : multiTitleData,\n\t\tgd_ext: {\n\t\t\tentrance: \"\",\n\t\t\tfrom_page: \"publisher_mp\",\n\t\t\tenter_from: \"PC\",\n\t\t\tdevice_platform: \"mp\",\n\t\t\tis_message: 0,\n\t\t},\n\t\ttuwen_wtt_trans_flag: \"0\",\n\t\tinfo_source: sourceData,\n\t\t...(location ? { city: location.label, city_code: location.value } : null),\n\t};\n\n\tconst publishData = {\n\t\tarticle_type: 0,\n\t\tsource: 0,\n\t\tsearch_creation_info: '{\"searchTopOne\": 0, \"abstract\": \"\", \"clue_id\": \"\"}',\n\t\ttitle_id: \"\",\n\t\teducluecard: \"\",\n\t\torigin_debut_check_pgc_normal: 1,\n\t\tis_fans_article: 0,\n\t\tgovern_forward: 0,\n\t\tpraise: 0,\n\t\tdisable_praise: 0,\n\t\ttree_plan_article: 0,\n\t\tstar_order_id: \"\",\n\t\tstar_order_name: \"\",\n\t\tcustomer_nick_name: \"\",\n\t\tactivity_tag: 0,\n\t\ttrends_writing_tag: 0,\n\t\tis_refute_rumor: 0,\n\t\tsave: params.saveType === \"publish\" ? 1 : 0,\n\t\ttimer_status: params.settingInfo.timer? 1 : 0,\n\t\ttimer_time: params.settingInfo.timer? TimeFormatter.format(params.settingInfo.timer):\"\",\n\t\ttitle: params.title,\n\t\tcontent: content + topicContent,\n\t\textra: JSON.stringify(extraData),\n\t\tmp_editor_stat: toutiaoCoverType === \"no\" ? \"{}\" : '{\"image\": %d}',\n\t\tdraft_form_data: JSON.stringify({\n\t\t\tcoverType: COVER_TYPE[toutiaoCoverType],\n\t\t}),\n\t\tpgc_feed_covers: JSON.stringify(\n\t\t\tcoverRes.map((item) => ({\n\t\t\t\tid: \"\",\n\t\t\t\turl: item.image_url,\n\t\t\t\turi: item.image_uri,\n\t\t\t\tic_uri: \"\",\n\t\t\t\tthumb_widt: item.image_width,\n\t\t\t\tthumb_heigh: item.image_height,\n\t\t\t\textra: {\n\t\t\t\t\tfrom_content_uri: \"\",\n\t\t\t\t\tfrom_content: \"0\",\n\t\t\t\t},\n\t\t\t})),\n\t\t),\n\t\tarticle_ad_type: getAddTypeValue(params.settingInfo.toutiaoAd),\n\t\t// claim_origin: toutiaoOriginal.includes(\"original\") ? 1 : 0,\n\t\tclaim_exclusive: toutiaoExclusive ? toutiaoExclusive : toutiaoOriginal.includes(\"exclusive\") ? 1 : 0, // 首发声明兼容老用户字段\n\t};\n\n\tconst msToken = params.cookies.find((it) => it.name === \"msToken\")?.value;\n\tlet publishOption = {}\n\tif (!msToken) {\n\t\tpublishOption = {\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1\",\n\t\t\tdata: publishData,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t},\n\t\t\tdefaultErrorMsg: params.saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\",\n\t\t};\n\t}else{\n\t\tconst postHeaders = generatorFormData({\n\t\t\tsource: \"mp\",\n\t\t\ttype: \"article\",\n\t\t\taid: 1231,\n\t\t\tmp_publish_ab_val: 0,\n\t\t\tmsToken: msToken\n\t\t})\n\t\tconst postData = generatorFormData(publishData)\n\t\tlet a_bogus = GenAB(postHeaders,postData)\n\t\n\t\tpublishOption = {\n\t\t\tmethod: \"post\",\n\t\t\turl: `https://mp.toutiao.com/mp/agw/article/publish?${postHeaders}&a_bogus=${a_bogus}`,\n\t\t\tdata: postData,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\"\n\t\t\t},\n\t\t\tdefaultErrorMsg: params.saveType === \"draft\" ? \"文章同步异常,请稍后重试。\" : \"文章发布异常,请稍后重试。\",\n\t\t};\n\t}\n\tconst publishResult = await http.api<CommonResponse<{ pgc_id: string }>>(publishOption)\n\n\treturn success(publishResult.data.pgc_id);\n};\n","import path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport { copyHtmlToClipboard, getRandomInRange, PopupListener, TimeFormatter } from \"../../utils\";\nimport { COVER_TYPE, type PublishAction, getAddTypeValue } from \"./index\";\nconst GenAB = require(\"../../utils/ttABEncrypt\") as (headers: string, data: string) => string;\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \".toutiao.com\",\n\t\turl: \"https://mp.toutiao.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".publish-editor\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn {\n\t\t\tcode: 400,\n\t\t\tmessage: `头条号登录状态失效,请重新绑定账号后${params.saveType === \"draft\" ? \"同步\" : \"发布\"}。`,\n\t\t\tdata: page.url(),\n\t\t};\n\t}\n\n\tconst interceptUrls = [\n\t\t'/mp/agw/article/publish'\n\t];\n\t \n\tawait page.route('**', async (route, request) => {\n\t\tconst url = new URL(request.url()); \n\t\tif (interceptUrls.some(pattern => url.pathname.includes(pattern))) {\n\t\t\tconst headers = {\n\t\t\t\t...request.headers(),\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36\" //ua参数固定,不可修改\n\t\t\t};\n\n\t\t\tconst generatorFormData = (data: Record<string, unknown>) => {\n\t\t\t\treturn Object.entries(data)\n\t\t\t\t\t.map(([key, value]) => {\n\t\t\t\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\t\t\t\tconst encodedValue = encodeURIComponent(String(value));\n\t\t\t\t\t\treturn `${encodedKey}=${encodedValue}`;\n\t\t\t\t\t})\n\t\t\t\t\t.join('&');\n\t\t\t};\n\n\t\t\tconst postHeaders = generatorFormData({\n\t\t\t\tsource: \"mp\",\n\t\t\t\ttype: \"article\",\n\t\t\t\taid: 1231,\n\t\t\t\tmp_publish_ab_val: 0,\n\t\t\t\tmsToken: url.searchParams.get('msToken')\n\t\t\t})\n\t\t\tconst postData = request.postData() || \"\";\n\t\t\tlet a_bogus = GenAB(postHeaders,postData)\n\n\t\t\turl.searchParams.set('aid', \"1231\"); \n\t\t\turl.searchParams.set('mp_publish_ab_val', \"0\"); \n\t\t\turl.searchParams.set('a_bogus', a_bogus); \n\n\t\t\tawait route.continue({ url: url.toString() , headers: headers});\n\n\t\t} else {\n\t\t\tawait route.continue();\n\t\t}\n\t});\n\n\t//弹窗监听检测\n\tPopupListener(page,'.byte-modal.publish-exclusive-modal .title',\"激励\", '.byte-modal-close-icon', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: false\n\t})\n\t\n\t// 1. 填写标题\n\tconst titleInstance = page.locator(\".publish-editor-title-wrapper .publish-editor-title textarea\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 2. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\".publish-editor .syl-editor-wrap .ProseMirror\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 3. 封面\n\tconst coverTypeValue = COVER_TYPE[params.settingInfo.toutiaoCoverType];\n\tconst coverContainer = page.locator(\".form-container .edit-cell\").filter({ hasText: \"展示封面\" });\n\t// 滚动到可视区域\n\tawait coverContainer.evaluate((node) => node.scrollIntoView());\n\tawait coverContainer.locator(`.article-cover label.byte-radio:has(input[value=\"${coverTypeValue}\"])`).click();\n\n\tlet coverUrls: string[] = [];\n\tif (params.settingInfo.toutiaoCoverType === \"single\") {\n\t\tcoverUrls = [params.settingInfo.toutiaoSingleCover];\n\t} else if (params.settingInfo.toutiaoCoverType === \"multiple\") {\n\t\tcoverUrls = params.settingInfo.toutiaoMultCover;\n\t}\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\tcoverUrls.map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\n\tconst coverUploadEle = coverContainer\n\t\t.locator(\".article-cover .article-cover-images\")\n\t\t.locator(\".article-cover-img-wrap, .article-cover-add\");\n\tconst coverUploadCount = await coverUploadEle.count();\n\n\tfor (let i = 0; i < coverUploadCount; i++) {\n\t\tif (!images[i]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst ele = coverUploadEle.nth(i);\n\t\t// 如果存在图片则替换\n\t\tif ((await ele.locator(\"img\").count()) > 0) {\n\t\t\tawait ele.locator(\".article-cover-img-menu a\").filter({ hasText: \"替换\" }).click();\n\t\t} else {\n\t\t\t// 如果不存在图片则点击上传\n\t\t\tawait ele.click();\n\t\t}\n\n\t\t// 上传图片\n\t\tconst drawerContainer = page.locator(\".byte-drawer-wrapper:not(.byte-drawer-wrapper-hide)\");\n\t\tawait drawerContainer.locator(\".byte-tabs-header .byte-tabs-header-title\").filter({ hasText: \"上传图片\" }).click();\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page.waitForTimeout(200);\n\t\tawait drawerContainer.locator(\".upload-image-panel button.byte-btn\").filter({ hasText: \"本地上传\" }).click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([images[i]]);\n\n\t\t// 等待上传完成\n\t\tconst confirmBtn = drawerContainer\n\t\t\t.locator(\".footer .confirm-btns button:not(.byte-btn-disabled)\")\n\t\t\t.filter({ hasText: \"确定\" });\n\t\tawait confirmBtn.waitFor({ state: \"visible\" });\n\t\tawait confirmBtn.click();\n\n\t\tawait page.waitForTimeout(getRandomInRange(500, 1000));\n\t}\n\n\t// 4. 添加位置\n\tif (params.settingInfo.toutiaoLocation) {\n\t\tconst locationContainer = page.locator(\".form-container .edit-cell\").filter({ hasText: \"添加位置\" });\n\t\tawait locationContainer.locator(\".position-select\").click();\n\t\tawait locationContainer\n\t\t\t.locator(\".position-select .byte-select-view-search input\")\n\t\t\t.fill(params.settingInfo.toutiaoLocation.label);\n\t\tconst poperInstance = page.locator(\".byte-trigger .byte-select-popup .byte-select-option\");\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t}\n\n\t// 5. 投放广告\n\tconst adContainer = page\n\t\t.locator(\".form-container .edit-cell .edit-label\")\n\t\t.filter({ hasText: \"投放广告\" })\n\t\t.locator(\"xpath=..\");\n\n\t// 判断是否存在投放广告的选项\n\tconst isAdOptionVisible = await adContainer.isVisible();\n\n\tif (isAdOptionVisible) {\n\t\t// 获取元素的父元素句柄并点击\n\t\tawait adContainer\n\t\t\t.locator(`label.byte-radio:has(input[value=\"${getAddTypeValue(params.settingInfo.toutiaoAd)}\"])`)\n\t\t\t.click();\n\t}\n\n\t// 6. 声明首发\n\tconst exclusiveContainer = page.locator(\".form-container .edit-cell .edit-label\").filter({ hasText: \"声明首发\" }).locator(\"xpath=..\");\n\tif (params.settingInfo.toutiaoOriginal.includes(\"exclusive\") || params.settingInfo.toutiaoExclusive ) {\n\n\t\texclusiveContainer.locator(\".exclusive .exclusive-checkbox-wraper .byte-checkbox\").check();\n\t}else{\n\t\texclusiveContainer.locator(\".exclusive .exclusive-checkbox-wraper .byte-checkbox\").uncheck();\n\t}\n\n\t// 作品声明\n\tlet claim = params.settingInfo.toutiaoClaim ? params.settingInfo.toutiaoClaim.type : 5;\n\tswitch (claim) {\n\t\t// case 1:\n\t\t// \tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"引用站内\"}).locator(\".byte-checkbox-mask\").check();\n\t\t// \tif(!params.settingInfo.toutiaoClaim?.source_author_name) return{ code: 500, message: \"请填写作者账户名\", data: \"\" };\n\t\t// \tawait page.locator(\".source-form-item\",{hasText: \"账号\"}).locator(\".byte-select-view-search input\").fill(params.settingInfo.toutiaoClaim.source_author_name)\n\t\t// \tbreak;\n\t\tcase 3:\n\t\t\tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"引用AI\"}).locator(\".byte-checkbox-mask\").check();\n\t\t\t\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"取材网络\"}).locator(\".byte-checkbox-mask\").check();\n\t\t\t\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"个人观点,仅供参考\"}).locator(\".byte-checkbox-mask\").check();\n\t\t\t\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"虚构演绎,故事经历\"}).locator(\".byte-checkbox-mask\").check();\n\t\t\t\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tawait page.locator(\".source-wrap .byte-checkbox\",{hasText: \"个人观点,仅供参考\"}).locator(\".byte-checkbox-mask\").check();\n\n\t\t\tbreak;\n\t}\n\n\t// 7. 保存草稿 / 发布\n\tconst articleId = await new Promise<string>(async (resolve) => {\n\t\tconst handleResponse = async (response: Response) => {\n\t\t const url = response.url();\n\t\t if (url.includes(\"/mp/agw/article/publish\")) {\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tpage.off(\"response\", handleResponse);\n\t\t\tresolve(jsonResponse.data.pgc_id);\n\t\t }\n\t\t};\n\t \n\t\tpage.on(\"response\", handleResponse);\n\t \n\t\tif (params.settingInfo.timer && params.saveType == \"publish\") {\n\t\t // 点击“定时发布”按钮\n\t\t await page.locator(\".publish-footer button\").filter({ hasText: \"定时发布\" }).click();\n\t\t await page.waitForSelector('button.publish-btn:not(.byte-btn-loading) >> nth=1', { state: 'attached' });\n\t \n\t\t // 选择日期\n\t\t await page.locator(\".byte-modal-content .day-select .byte-select-view-value\").click();\n\t\t await page.locator('li.byte-select-option', { hasText: TimeFormatter.format(params.settingInfo.timer, \"MM月dd日\") }).click();\n\t\t await page.waitForTimeout(200);\n\t \n\t\t // 选择小时\n\t\t await page.locator(\".byte-modal-content .hour-select .byte-select-view-value\").click();\n\t\t await page.locator('li.byte-select-option', { hasText: TimeFormatter.format(params.settingInfo.timer, \"h\") }).click();\n\t\t await page.waitForTimeout(200);\n\t \n\t\t // 选择分钟\n\t\t await page.locator(\".byte-modal-content .minute-select .byte-select-view-value\").click();\n\t\t await page.locator('li.byte-select-option', { hasText: TimeFormatter.format(params.settingInfo.timer, \"m\") }).click();\n\t\t await page.waitForTimeout(200);\n\n\t\t await page.locator(\".byte-modal-footer button\").filter({ hasText:\"预览并定时发布\" }).click()\n\t\t}else{\n\t\t\tawait page.locator(\".publish-footer button\").filter({ hasText:\"预览并发布\" }).click();\n\t\t}\n\t \n\t });\n\n\tif(params.settingInfo.toutiaoAd == 'no'){\n\t\tawait page.waitForTimeout(200);\n\t\tconst confirmBtn = page.locator('div.byte-modal-footer button.byte-btn-primary:has-text(\"确定\")');\n\t\tif (await confirmBtn.isVisible()) {\n\t\t await confirmBtn.click();\n\t\t}\n\t}\n\t\n\tif (params.saveType === \"publish\") {\n\t\tawait page.locator(\".publish-footer button\").filter({ hasText: params.settingInfo.timer? \"定时发布\" : \"确认发布\" }).waitFor({ state: \"visible\" });\n\t\tawait page.waitForTimeout(200);\n\t\tawait page.locator(\".publish-footer button\").filter({ hasText: params.settingInfo.timer? \"定时发布\" : \"确认发布\" }).click();\n\t}\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(articleId, params.saveType === \"publish\" ? \"发布成功\" : \"保存草稿成功\");\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ntype CoverType = \"single\" | \"multiple\" | \"no\";\n\nexport interface ToutiaoPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\ttitle: string;\n\tcontent: string;\n\tsettingInfo: {\n\t\ttoutiaoCoverType: CoverType;\n\t\ttoutiaoTitleType: \"single\" | \"multiple\"; // 已关闭对应功能,保留参数,兼容老版本\n\t\ttoutiaoSingleCover: string;\n\t\ttoutiaoMultCover: string[];\n\t\ttoutiaoAd: string; // 广告配置 - 投放广告/不投放广告\n\t\ttoutiaoOriginal: string; // 原创声明-已修改为首发声明,兼容老用户\n\t\ttoutiaoExclusive?: number; // 头条首发 0 - 声明非首发 - 声明首发\n\t\ttoutiaoClaim?: {\n\t\t\ttype: number// 作品声明 -1 - 不声明,4 - 取材网络,1 - 引用站内(该选项必须传入下方两个参数,否则会错误),5 - 个人观点,仅供参考,3 - 引用AI,6 - 虚构演绎,故事经历\n\t\t\tsource_author_uid?: string;\n\t\t\tsource_author_name?: string;\n\t\t\ttime_format?: string;\n\t\t\tposition?: {\n\t\t\t\tposition: string;\n\t\t\t\tcity: string;\n\t\t\t\tlongitude: number;\n\t\t\t\tlatitude: number;\n\t\t\t\ttype_code: string;\n\t\t\t\tpoi_id: string;\n\t\t\t}\n\n\t\t}; \n\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\ttoutiaoLocation?: { label: string; value: string; [key: string]: any }; // 位置\n\t\ttoutiaoTopic: { id: string; word: string }[]; // 话题\n\t\tcntWord: number;\n\t\tsubTitles: string[]; // 多标题\n\t\ttimer?: number;\n\t};\n}\n\nexport const COVER_TYPE: Record<CoverType, number> = {\n\tno: 1,\n\tsingle: 2,\n\tmultiple: 3,\n};\n\nexport const getAddTypeValue = (toutiaoAd: ToutiaoPublishParams[\"settingInfo\"][\"toutiaoAd\"]) =>\n\ttoutiaoAd === \"yes\" ? 3 : 2;\n\nexport type PublishAction = CommonAction<ToutiaoPublishParams, string>;\n\nexport const toutiaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import { type CommonAction, success } from \"@iflyrpa/share\";\nimport type { ActiomCommonParams, Toutiao, Xiaohongshu, Weixin, BaiJiaHao} from \"../../../types\";\nimport { Http } from \"../../../utils/http\";\n\n\nexport interface GetTTFansSearchParams extends ActiomCommonParams {}\nexport type ttSearchAction = CommonAction<GetTTFansSearchParams, Toutiao.FansCount>;\n\nexport interface GetXhsFansSearchParams extends ActiomCommonParams {}\nexport type xhsSearchAction = CommonAction<GetXhsFansSearchParams, Xiaohongshu.FansCount>;\n\nexport interface GetWxFansSearchParams extends ActiomCommonParams {\n token: string| number;\n}\nexport type wxSearchAction = CommonAction<GetWxFansSearchParams, Weixin.FansCount>;\n\nexport interface GetBjhFansSearchParams extends ActiomCommonParams {}\nexport type bjhSearchAction = CommonAction<GetBjhFansSearchParams, BaiJiaHao.FansCount>;\n\n\nexport const TTFansExport: ttSearchAction = async (_task, params) => {\n const http = new Http({\n headers: {\n cookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n referer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n },\n });\n\n try {\n const res = await http.api<{ code: number; total_fans_count: number }>({\n method: \"get\",\n url: \"https://mp.toutiao.com/mp/agw/creator_center/user_info?app_id=1231\",\n params: { app_id: 1231},\n });\n\n return success(res.code === 0 ? { fans_count: res.total_fans_count } : { fans_count: null }, \"获取粉丝数成功!\");\n } catch (error) {\n return success({ fans_count: null }, \"获取粉丝数失败,请检查登陆有效性!\");\n }\n\n};\n\nexport const XhsFansExport: xhsSearchAction = async (_task, params) => { \n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://creator.xiaohongshu.com/new/home?source=official\",\n\t\t},\n\t});\n\n try {\n const res = await http.api<{ result: number; data: Xiaohongshu.FansCount }>({\n method: \"get\",\n url: \"https://creator.xiaohongshu.com/api/galaxy/creator/home/personal_info\",\n });\n\n return success(res.result === 0 ? { fans_count: res.data.fans_count } : { fans_count: null }, \"获取粉丝数成功!\");\n } catch (error) {\n return success({ fans_count: null }, \"获取粉丝数失败,请检查登陆有效性!\");\n }\n\n};\n\nexport const WxFansExport: wxSearchAction = async (_task, params) => { \n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t},\n\t});\n\n try {\n const htmlStr = await http.api<string>({\n method: \"get\",\n url: \"https://mp.weixin.qq.com/cgi-bin/home\",\n params: {\n t: \"home/index\",\n token: params.token,\n lang: \"zh_CN\",\n },\n });\n\n const match = htmlStr.match(/总用户数[\\s\\S]*?<mp-thousandth>(\\d+)<\\/mp-thousandth>/);\n \n return success(match ? { fans_count: Number(match[1]) }: {fans_count: null},\"获取粉丝数成功!\");\n } catch (error) {\n return success({ fans_count: null }, \"获取粉丝数失败,请检查登陆有效性!\");\n }\n\n};\n\nexport const BjhFansExport: bjhSearchAction = async (_task, params) => { \n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\treferer: \"https://baijiahao.baidu.com/builder/rc/home\",\n\t\t},\n\t});\n\n try {\n const res = await http.api<{ errno: number; data: {total_fans: number} }>({\n method: \"get\",\n url: \"https://baijiahao.baidu.com/cms-ui/rights/growth/get_info\",\n });\n\n return success(res.errno === 0 ? { fans_count: res.data.total_fans } : { fans_count: null }, \"获取粉丝数成功!\");\n } catch (error) {\n return success({ fans_count: null }, \"获取粉丝数失败,请检查登陆有效性!\");\n }\n\n};","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\nimport { Http } from \"../../utils/http\"\n\nimport type { PublishAction } from \".\";\nimport type { Toutiao } from \"../../types\";\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.toutiao.com\",\n\t\t\treferer: \"https://mp.toutiao.com/profile_v4/graphic/publish\",\n\t\t},\n\t});\n\n\t// 0. 校验登录\n\tconst userInfoRes = await http.api<{ code: number }>({\n method: \"get\",\n url: \"https://mp.toutiao.com/mp/agw/creator_center/user_info\",\n });\n\n\tif (userInfoRes.code !== 0) {\n return { code: 0, message: \"登录失效\", data: userInfoRes };\n\t}\n\n\t// 1. 上传图片\n\tconst imageList: string[] = [];\n\tif (params.banners && params.banners.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tconst res = await Promise.all(\n\t\t\timages.map(async (it) => {\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"image\", fs.createReadStream(it));\n\n\t\t\t\tconst response = await http.api<{ data: Toutiao.ImageData }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.toutiao.com/spice/image?upload_source=20020003&aid=1231&device_platform=web\",\n\t\t\t\t\tdata: formData,\n\t\t\t\t});\n\n\t\t\t\treturn response.data;\n\t\t\t}),\n\t\t);\n\n\t\timageList.push(...res.map((it) => it.image_uri));\n\t}\n\n\t// 2. 构造发布数据\n\tconst extra = {\n\t\tadd_music_to_article_flag: \"0\", // 开启配乐\n\t\tclaim_exclusive: \"0\", // 原创&首发声明\n\t\ttuwen_wtt_trans_flag: \"0\",\n\t\tinfo_source: JSON.stringify({\n\t\t\tsource_type: 5,\n\t\t\tsource_author_uid: \"\",\n\t\t\ttime_format: \"\",\n\t\t\tposition: {},\n\t\t}),\n\t\tugc_position: JSON.stringify({\n\t\t\taddress: \"\",\n\t\t\tposition: \"合肥市\",\n\t\t\tcity: \"合肥市\",\n\t\t\tlongitude: 117.227289,\n\t\t\tlatitude: 31.82057,\n\t\t\tpoi_type_code: \"190104\",\n\t\t\tpoi_id: \"22535659123306003\",\n\t\t}),\n\t};\n\n\tconst syncData = {\n\t\tcontent: params.content, // 正文,\n\t\timage_list: imageList, // 图片列表\n\t\tis_fans_article: 2,\n\t\tpre_upload: 1,\n\t\twelfare_card: \"\",\n\t\textra: JSON.stringify(extra),\n\t};\n\n const res = await http.api<any>({\n method: \"post\",\n url: \"https://mp.toutiao.com/mp/agw/article/wtt\",\n data: syncData,\n });\n\n return success(res.data)\n};\n","import path from \"node:path\";\nimport type { CookieMap } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport type { PublishAction } from \"./index\";\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.toutiao.com\",\n\t\turl: \"https://mp.toutiao.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://mp.toutiao.com/profile_v4/weitoutiao/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\t// 0. 判断是否登录\n\ttry {\n\t\tawait page.waitForSelector(\".publish-box\");\n\t} catch (error) {\n\t\treturn { code: 0, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 添加正文\n\tconst descInstance = page.locator(\".syl-editor .ProseMirror\");\n\tawait descInstance.click();\n\tawait descInstance.fill(params.content);\n\n\t// 2. 添加图片\n\tif (params.banners && params.banners?.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait page.locator(\".toolbar .syl-toolbar-tool.weitoutiao-image-plugin\").click();\n\t\tawait page.locator(\".byte-drawer.mp-ic-img-drawer button.byte-btn\").filter({ hasText: \"本地上传\" }).click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles(images);\n\n\t\tawait page.locator(\".byte-drawer.mp-ic-img-drawer .footer button.byte-btn\").filter({ hasText: \"确定\" }).click();\n\t}\n\n\t// 滚动到底部\n\tawait page.mouse.wheel(0, 500); // 向下滚动 500 像素\n\n\t// 3. 添加位置\n\tif (params.address) {\n\t\tconst addressFormItem = page.locator(\".img-form-wrap .form-item-wrap .form-item\").filter({ hasText: \"添加位置\" });\n\t\tawait addressFormItem.locator(\".byte-select\").click();\n\t\tawait addressFormItem.locator(\".byte-select-view-search input\").fill(params.address);\n\t\tconst poperInstance = page.locator(\".byte-trigger .byte-select-popup .byte-select-option\");\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t}\n\n\t// 4. 作品声明\n\tif (params.declaration) {\n\t\tconst declarationFormItem = page\n\t\t\t.locator(\".img-form-wrap .form-item-wrap .form-item\")\n\t\t\t.filter({ hasText: \"作品声明\" })\n\t\t\t.locator(\".source-info-wrap\");\n\t\tawait declarationFormItem.locator(`.byte-checkbox:has(input[value=\"${params.declaration}\"])`).click();\n\t}\n\n\t// 5. 发布\n\tawait page.locator(\".footer-wrap button.publish-content\").click();\n\n\treturn success(\"\");\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\n/**\n * 作品声明\n * 1:引用站内\n * 3:引用AI\n * 4:取材网络\n * 5:个人观点,仅供参考\n * 6:虚构演绎,故事经历\n * 7:投资观点,仅供参考\n * 8:健康医疗分享,仅供参考\n */\ntype DeclarationType = 1 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport interface WeitoutiaoPublishParams extends ActiomCommonParams {\n\tcontent: string;\n\tbanners?: string[];\n\taddress?: string;\n\tdeclaration?: DeclarationType;\n}\n\nexport type PublishAction = CommonAction<WeitoutiaoPublishParams>;\n\nexport const weitoutiaoPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","export const scanRetryMaxCount = 30;\n\nexport const QuotaType = {\n\tNormal: \"kQuotaTypeMassSendNormal\",\n\tProductActivity: \"kQuotaTypeMassSendProductActivity\",\n};\n\nexport interface QuotaItem {\n\toriginal_quota: number;\n\tquota: number;\n\tstr_date: string;\n}\n\nexport interface QuotaDetail {\n\tquota_item_list: QuotaItem[];\n\tquota_type: string;\n}\n","import fs, { write } from \"node:fs\";\n// import https from \"node:https\";\nimport path from \"node:path\";\nimport { type ResponseData, downloadImage, getFilenameFromUrl, randomString, sleep, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\nimport { extractImgTag, getFileState, replaceImgSrc } from \"../../utils\";\nimport { Http } from \"../../utils/http\";\nimport type { PublishAction, WeixinPublishParams , WxWhitelistUserInfo, WxInteraction} from \"./index\";\nimport { type QuotaDetail, QuotaType, scanRetryMaxCount } from \"./utils\";\nimport { match } from \"node:assert\";\n\ntype CommonResponse<T = unknown> = T & {\n\tbase_resp?: { err_msg: string; ret: number };\n};\n\nconst GET_QRCODE_DEFAULT_ERROR = \"二维码获取异常,请稍后重试。\";\n\nconst errnoMap: Record<number|string, string> = {\n\t200003: \"微信公众号号登录状态失效,请重新绑定账号后重试。\",\n\t420001: \"封面图不支持GIF,请更换后重试。\",\n\t200002: \"上传图片参数错误,请检查后重试。\",\n\t200039: \"上传图片高度(像素)与宽度(像素)的乘积不能超过600万,请更换后重试。\",\n\t153201: \"不支持发布审核中或转码中的视频\",\n\t200007: \"登陆失败,请重新登陆账户后重试。\",\n\t64703: \"摘要超出120字长度限制,请修改摘要后重试。\",\n\t\"-4\": \"不支持发布审核中或转码中的视频\",\n\t\"-2\": \"不支持发布审核中或转码中的视频\",\n\t770001: \"不支持发布审核中或转码中的视频\",\n\t200074: \"系统繁忙,请稍后重试!\",\n\t64702: \"标题超出64字长度限制,请修改标题后重试。\"\n};\n\n// 不需要直接抛出的异常码,如 154019\nconst ignoreErrno = [154019];\n\n// 用户互动类型表\nconst userTypeMap: Record<string, 1 | 2 | 3> = {\n\t\"所有用户\": 1,\n\t\"已关注的用户\": 2,\n\t\"已关注7天及以上的用户\": 3,\n };\n\nconst generatorFormData = (data: Record<string, unknown>) => {\n\tconst formData = new URLSearchParams();\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tformData.append(key, String(value));\n\t}\n\n\treturn formData.toString();\n};\n\nexport const checkCopyrightStat = async <T>(http: Http, params: WeixinPublishParams, data: Record<string, unknown>) => {\n\tlet resData: T;\n\n\ttry {\n\t\tresData = await http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\t\tparams: {\n\t\t\t\taction: \"get_appmsg_copyright_stat\",\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t},\n\t\t\tdata: generatorFormData(data),\n\t\t});\n\t} catch (error) {\n\t\tresData = (error as ResponseData)?.data;\n\t}\n\n\treturn resData;\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst fingerprint = \"4695500bc93ab4ce8fb2692da6564e04\";\n\tconst client_time_diff = Number(\"1743488763\") * 1 - Math.floor(new Date().getTime() / 1000);\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst http = new Http({\n\t\t// 接口代理,特意保留,作为测试使用\n\t\t// httpsAgent: new https.Agent({\n\t\t// \trejectUnauthorized: false,\n\t\t// \thost: \"127.0.0.1\",\n\t\t// \tport: 9000,\n\t\t// }),\n\t\theaders: {\n\t\t\t\"User-Agent\":\n\t\t\t\t\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0\",\n\t\t\tCookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.weixin.qq.com\",\n\t\t\treferer: `https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=edit&isNew=1&type=77&createType=0&token=${params.token}&lang=zh_CN×tamp=${Date.now()}`,\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst responseData = response.data;\n\t\tconst msgType = params.saveType === \"draft\" ? \"同步\" : \"发布\";\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (\n\t\t\tresponseData?.base_resp &&\n\t\t\tresponseData.base_resp.ret !== 0 &&\n\t\t\t!ignoreErrno.includes(responseData.base_resp.ret)\n\t\t) {\n\t\t\tconst errmsg =\n\t\t\t\terrnoMap[responseData.base_resp.ret] ||\n\t\t\t\tresponse.config.defaultErrorMsg ||\n\t\t\t\tresponseData.base_resp.err_msg ||\n\t\t\t\t`文章${msgType}异常,请稍后重试。`;\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[responseData.base_resp.ret] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: responseData,\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 校验登录\n\tawait http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/appmsgpublish\",\n\t\tparams: {\n\t\t\tfingerprint,\n\t\t\tsub: \"list\",\n\t\t\tbegin: 0,\n\t\t\tcount: 10,\n\t\t\tquery: \"\",\n\t\t\ttype: 101_1_102_103,\n\t\t\tshow_type: \"\",\n\t\t\tfree_publish_type: 1_102_103,\n\t\t\tsub_action: \"list_ex\",\n\t\t\tsearch_card: 0,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t},\n\t});\n\n\t// 1. 提取并上传正文中的图片\n\tconst uploadImages = async (images: string[]) => {\n\t\tconst cloudImages: Array<{ cdn_url: string; content: string }> = [];\n\n\t\t// 下载图片到本地\n\t\tconst localImages = await Promise.all(\n\t\t\timages.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tfor (let index = 0; index < images.length; index++) {\n\t\t\tconst image = localImages[index];\n\t\t\tconst fileState = getFileState(image);\n\n\t\t\tconst formData = new FormData();\n\t\t\tformData.append(\"id\", `WU_FILE_${index + 1}`);\n\t\t\tformData.append(\"name\", fileState.name);\n\t\t\tformData.append(\"type\", fileState.type);\n\t\t\tformData.append(\"lastModifiedDate\", fileState.lastModifiedDate);\n\t\t\tformData.append(\"size\", fileState.size);\n\t\t\tformData.append(\"file\", fs.createReadStream(image));\n\n\t\t\tconst response = await http.api<(typeof cloudImages)[0]>({\n\t\t\t\tmethod: \"post\",\n\t\t\t\turl: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,\n\t\t\t\tdata: formData,\n\t\t\t\tdefaultErrorMsg: \"图片上传异常,请稍后重试发布。\",\n\t\t\t});\n\n\t\t\tcloudImages.push(response);\n\t\t}\n\n\t\treturn cloudImages;\n\t};\n\n\tconst originContentImages = extractImgTag(params.content);\n\tconst targetContentImages = await uploadImages(originContentImages);\n\t// 2. 替换正文中的图片\n\tconst content = replaceImgSrc(params.content, (dom) => {\n\t\tif (dom.attribs.src) {\n\t\t\tconst idx = originContentImages.findIndex((it) => it === dom.attribs.src);\n\t\t\tdom.attribs.src = targetContentImages[idx].cdn_url;\n\t\t\tdom.attribs.class = \"rich_pass wxw-img js_insertlocalimg\";\n\t\t\tdom.attribs.style = \"\";\n\t\t}\n\t\treturn dom;\n\t});\n\n\t// 3. 上传封面图片\n\tconst coverRes = await uploadImages([params.settingInfo.wxCover]);\n\n\t// 4. 原创声明白名单有效性判断与生成转载白名单\n\tlet oriWhitelist = null;\n\t\n\tif (params.settingInfo?.wxCopyright && params.settingInfo?.wxWhitelist) {\n\t\tconst _oriWhitelist = params.settingInfo.wxWhitelist;\n\t\n\t\tif (_oriWhitelist && _oriWhitelist.length > 0) {\n\t\t\tconst white_list = [];\n\n\t\t\tconst white_list_user = {\n\t\t\t\tnickname: \"\",\n\t\t\t\ttitle: \"可修改文章\",\n\t\t\t\topenid: \"\",\n\t\t\t\twx_name: \"\",\n\t\t\t\tusername: \"\",\n\t\t\t\tavatar: \"\",\n\t\t\t\tcan_modify: \"1\",\n\t\t\t\tcan_hide_source: \"0\",\n\t\t\t\tcan_reward: \"0\",\n\t\t\t};\n\t\n\t\t\tfor (const _user of _oriWhitelist) {\n\t\t\t\tconst userInfo_res = await http.api<{ search_list: WxWhitelistUserInfo[] }>({\n\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/appmsgcopyright?action=searchacct\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\taction: \"searchacct\",\n\t\t\t\t\t},\n\t\t\t\t\tdata: generatorFormData({\n\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\trandom: Math.random().toString(),\n\t\t\t\t\t\tusername: _user,\n\t\t\t\t\t}),\n\t\t\t\t\tdefaultErrorMsg: \"搜索用户信息失败\",\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif(userInfo_res.search_list.length>0){\n\t\t\t\t\tlet userInfo_resJson = userInfo_res.search_list[0];\n\t\t\t\t\twhite_list_user.nickname = userInfo_resJson.nickname;\n\t\t\t\t\twhite_list_user.openid = userInfo_resJson.openid;\n\t\t\t\t\twhite_list_user.avatar = userInfo_resJson.pic_url;\n\t\t\t\t\twhite_list_user.username = userInfo_resJson.username;\n\t\t\t\t\twhite_list_user.wx_name = userInfo_resJson.wx_name;\n\t\t\t\t\twhite_list.push({ ...white_list_user });\n\t\t\t\t}else{\n\t\t\t\t\treturn { code: 200, message: `白名单用户:${_user} 未搜索到,请确定输入是否正确!`, data: '' }\n\t\t\t\t}\n\t\t\t}\n\t\t\toriWhitelist = white_list.length > 0 ? JSON.stringify({ \"white_list\" : white_list }) : \"\"; \n\t\t}\n\t}\n\n\t// 5. 赞赏设置\n\tlet writerid = null;\n\tlet reply_id = null\n\tif (params.settingInfo.wxCopyright && params.settingInfo.wxRewardTarget){\n\t\tasync function getWriterList() {\n\t\t\tconst res = await http.api({\n\t\t\t method: \"get\",\n\t\t\t url: 'https://mp.weixin.qq.com/acct/writermgr',\n\t\t\t params: {\n\t\t\t\taction: 'get_writer_list',\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t }\n\t\t\t});\n\t\t \n\t\t\treturn res.pageinfo.writerlist || [];\n\t\t }\n\n\t\t async function getRewardText(): Promise<{ text: string , reply_id: string}[]> {\n\t\t\tconst res = await http.api({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: 'https://mp.weixin.qq.com/merchant/reward',\n\t\t\t\tparams: {\n\t\t\t\taction: 'getautoreply',\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\t},\n\t\t\t});\n\t\t\t\n\t\t\treturn res.reply_infos;\n\t\t}\n\n\t\t//遍历绑定信息\n\t\tfor (var _type in params.settingInfo.wxRewardTarget){\n\t\t\tif (_type === \"author\"){\n\n\t\t\t\tif( (await getWriterList()).length == 0){\n\t\t\t\t\t// 获取二维码等待用户绑定\n\t\t\t\t\tconst rewardbind = await http.api({\n\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\turl: \"https://mp.weixin.qq.com/acct/writermgr\",\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\taction: \"get_rewardbind_qrcode\",\n\t\t\t\t\t\t\trandom: Math.random().toString(),\n\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t\t\t\t\t});\n\t\t\n\t\t\t\t\tconst rewardBuffer = Buffer.from(rewardbind.qrcode_base64, 'base64');\n\t\t\t\t\tconst rewardFilePath = path.join(tmpCachePath, \"weixin_reward.jpg\");\n\t\t\t\t\tfs.writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));\n\t\t\t\t\n\t\t\t\t\tparams.safeQrcodeCallback?.(rewardFilePath);\n\t\t\n\t\t\t\t\tconst task_id = rewardbind.task_id\n\t\t\n\t\t\t\t\tlet code = null\n\t\t\n\t\t\t\t\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\t\t\t\t\tawait sleep(2000);\n\t\t\t\t\n\t\t\t\t\t\tconst checkScanResult = await http.api<{ qrcode_status: number; }>({\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\turl: \"https://mp.weixin.qq.com/acct/writermgr\",\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\taction: \"query_rewardbind_qrcode_status\",\n\t\t\t\t\t\t\t\ttask_id: task_id,\n\t\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\t\ttimespam: Date.now(),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\tcode = checkScanResult.qrcode_status\n\t\t\t\t\n\t\t\t\t\t\tif ( code == 2 && (await getWriterList()).length > 0 ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif (i === scanRetryMaxCount - 1) {\n\t\t\t\t\t\t\treturn { code: 200, message: \"二维码已过期,请重试绑定。\", data: \"\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\n\t\t\t\t// 判断为赞赏作者\n\t\t\t\tlet _writer = await getWriterList()\n\t\t\t\tfor (var _writer_item of _writer){\n\t\t\t\t\tif (_writer_item.nickname === params.settingInfo.wxRewardTarget[_type]){\n\t\t\t\t\t\twriterid = _writer_item.writerid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!writerid){\n\t\t\t\t\t// 没找到作者id\n\t\t\t\t\treturn { code: 200, message: \"未匹配到赞赏绑定用户,请确认用户名与绑定是否正常!\", data: \"\" };\n\t\t\t\t}\n\n\t\t\t\tif (params.settingInfo?.wxRewardText){\n\t\t\t\t\t// 判断文案是否已添加\n\t\t\t\t\tlet rewardList = await getRewardText()\n\t\t\t\t\t\n\t\t\t\t\tlet matchdID = rewardList.find(\n\t\t\t\t\t\treward => reward.text === params.settingInfo.wxRewardText\n\t\t\t\t\t)?.reply_id ?? null;\n\t\n\t\t\t\t\tif (rewardList.length == 0 || !matchdID ){\n\t\t\t\t\t\tawait http.api({\n\t\t\t\t\t\t\tmethod: \"post\",\n\t\t\t\t\t\t\turl: 'https://mp.weixin.qq.com/merchant/reward',\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t \taction: 'addautoreply',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: generatorFormData({\n\t\t\t\t\t\t\t\ttype: 1,\n\t\t\t\t\t\t\t\tfingerprint,\n\t\t\t\t\t\t\t\ttoken: params.token,\n\t\t\t\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\t\t\t\tf: \"json\",\n\t\t\t\t\t\t\t\tajax: 1,\n\t\t\t\t\t\t\t\ttext: params.settingInfo.wxRewardText\n\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\treply_id = matchdID\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!matchdID) {\n\t\t\t\t\t\tfor (var _reply_item of (await getRewardText())){\n\t\t\t\t\t\t\treply_id = (await getRewardText()).find(\n\t\t\t\t\t\t\t\treward => reward.text === params.settingInfo.wxRewardText\n\t\t\t\t\t\t\t)?.reply_id ;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!reply_id) {\n\t\t\t\t\t\t\treturn {code:200, message:\"赞赏文案添加失败,请重新检查\", data:\"\"}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}else if(_type === \"project\"){\n\t\t\t\t// 判断为公益捐赠\n\t\t\t}\n\t\t}\n\n\t}\n\t// 留言设置\n\tconst wxInteractionInfo = (() => {\n\t\tconst _wxInteraction = {\n\t\t\tneed_open_comment0: 0,\n\t\t\tonly_fans_can_comment0: 0,\n\t\t\tonly_fans_days_can_comment0: 0,\n\t\t\treply_flag0: 2,\n\t\t\tauto_elect_comment0: 0,\n\t\t\tauto_elect_reply0: 1,\n\t\t\topen_fansmsg0: 0\n\t\t};\n\t\n\t\tconst type = params?.settingInfo?.wxInteraction?.Type ?? \"\";\n\t\tif (type === \"public\") {\n\t\t\tconst _opt = params?.settingInfo?.wxInteraction?.Option;\n\t\t\tif (!_opt || !_opt.Comment || !_opt.reply || _opt.elect_comment == null || _opt.elect_reply == null) return null;\n\t\n\t\t\tconst commentType = userTypeMap[_opt.Comment];\n\t\t\tconst replyType = userTypeMap[_opt.reply] + 1;\n\n\t\t\t// 设置评论权限\n\t\t\t_wxInteraction.need_open_comment0 = 1;\n\t\t\tswitch (commentType) {\n\t\t\t\tcase 1:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 0;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 1;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\t_wxInteraction.only_fans_can_comment0 = 0;\n\t\t\t\t\t_wxInteraction.only_fans_days_can_comment0 = 1;\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t\t// 设置回复权限等级\n\t\t\t_wxInteraction.reply_flag0 = replyType;\n\t\n\t\t\t// 精选功能\n\t\t\t_wxInteraction.auto_elect_comment0 = _opt.elect_comment ? userTypeMap[_opt.Comment] : 0;\n\t\t\t_wxInteraction.auto_elect_reply0 = _opt.elect_reply ? userTypeMap[_opt.reply] : 1;\n\t\n\t\t\treturn _wxInteraction;\n\t\t}\n\t\n\t\tif (type === \"private\") {\n\t\t\t_wxInteraction.open_fansmsg0 = 1;\n\t\t\treturn _wxInteraction;\n\t\t}\n\t\n\t\t// 其他未启用评论功能的情形\n\t\treturn _wxInteraction;\n\t})();\n\n\tif (!wxInteractionInfo) return { code: 200, message: \"互动参数设置错误,请检查参数设置!\", data: \"\" }\n\t\n\t\n\t// 4. 保存为草稿\n\tconst draftData = {\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\tcount: 1,\n\t\toperate_from: \"Chrome\",\n\t\tisnew: 0,\n\t\tarticlenum: 1,\n\t\tpre_timesend_set: 0,\n\t\tis_finder_video0: 0,\n\t\tfinder_draft_id0: 0,\n\t\tapplyori0: 0,\n\t\tcan_reward0: writerid ? 1 : 0,\n\t\tpay_gifts_count0: 0,\n\t\tis_video_recommend0: -1,\n\t\twriterid0: writerid ? writerid : 0,\n\t\tauto_gen_digest0: 0,\n\t\tlast_choose_cover_from0: 0,\n\t\tneed_open_comment0: wxInteractionInfo.need_open_comment0 ,\n\t\tonly_fans_can_comment0: wxInteractionInfo.only_fans_can_comment0,\n\t\tonly_fans_days_can_comment0: wxInteractionInfo.only_fans_days_can_comment0,\n\t\treply_flag0: wxInteractionInfo.reply_flag0,\n\t\tauto_elect_comment0: wxInteractionInfo.auto_elect_comment0,\n\t\tauto_elect_reply0: wxInteractionInfo.auto_elect_reply0,\n\t\treward_reply_id0:params.settingInfo?.wxRewardText? reply_id ? reply_id : 0 : 0,\n\t\tnot_pay_can_comment0: 0,\n\t\tdata_seq: 0,\n\t\tmsg_index_id0: \"\",\n\n\t\ttoken: params.token,\n\t\tAppMsgId: params.appMsgId || \"\",\n\t\ttitle0: params.title,\n\t\tauthor0: params?.settingInfo?.wxAuthor || \"\" ,\n\t\tdigest0: params?.settingInfo?.wxAbstract || \"\",\n\t\tcontent0: content || \"\",\n\t\tsourceurl0: params?.settingInfo?.wxOriginalText || \"\",\n\t\tcdn_url0: coverRes[0].cdn_url || \"\",\n\t\tcopyright_type0: params?.settingInfo?.wxCopyright? 1 : 0,\n\t\tallow_reprint0: params?.settingInfo?.wxCopyright? 0 : '',\n\t\tallow_reprint_modify0: params?.settingInfo?.wxCopyright? 0 : '',\n\t\tori_white_list0: params?.settingInfo?.wxCopyright? oriWhitelist: '',\n\t\topen_fansmsg0: wxInteractionInfo.open_fansmsg0,\n\t\tallow_fast_reprint0: params?.settingInfo?.wxQuickReprint ? 1 : 0,\n\t\tdisable_recommend0: params?.settingInfo?.wxNotAllowRecommend ? 1 : 0,\n\t\tclaim_source_type0: params?.settingInfo?.wxCreationSource?.[0] || \"\",\n\n\t\tmasssend_check: 1,\n\t\tis_masssend: 1,\n\t};\n\n\tconst { appMsgId } = await http.api<{ appMsgId: string }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/operate_appmsg\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tt: \"ajax-response\",\n\t\t\tsub: \"create\",\n\t\t\ttype: 77,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: generatorFormData(draftData),\n\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试发布。\",\n\t});\n\n\t// 如果只需要保存为草稿,直接返回 appMsgId\n\tif (params.saveType === \"draft\") {\n\t\treturn { code: 0, data: appMsgId, message: \"微信公众号保存草稿成功。\" };\n\t}\n\n\tconst masssendpage = () => {\n\t\treturn http.api<CommonResponse<{ operation_seq: string; quota_detail_list: QuotaDetail[] }>>({\n\t\t\tmethod: \"get\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssendpage\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tpreview_appmsgid: appMsgId,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t},\n\t\t\tdefaultErrorMsg: \"创建草稿失败,请稍后重试发布。\",\n\t\t});\n\t};\n\n\t// 4. 预览\n\tlet massSendRes = await masssendpage();\n\t// 判断是否需要同意群发声明\n\tif (massSendRes.base_resp?.ret === 154019) {\n\t\ttask.logger.info(\"需要同意群发声明\");\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/setprotocolsign\",\n\t\t\tparams: {\n\t\t\t\tcgi: \"setprotocolsign\",\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\ttoken: params.token,\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t\tissigned: 1,\n\t\t\t}),\n\t\t});\n\t\tmassSendRes = await masssendpage();\n\t}\n\n\t// 判断是否还有群发次数\n\tconst { operation_seq, quota_detail_list = [] } = massSendRes;\n\n\t// 群发时需要判断是否还有群发次数\n\tif (params.masssend) {\n\t\tconst quotaDetail = quota_detail_list.find((it) => it.quota_type === QuotaType.Normal);\n\t\tif (!quotaDetail?.quota_item_list[0]?.quota) {\n\t\t\treturn { code: 200, message: \"今日群发次数用尽,请明天再试。\", data: \"\" };\n\t\t}\n\t}\n\n\t// 非群发时会多一个接口\n\tif (!params.masssend) {\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\t\tparams: {\n\t\t\t\tt: \"ajax-response\",\n\t\t\t\tfor_check: 1,\n\t\t\t\tis_release_publish_page: 1,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\tappmsgid: appMsgId,\n\t\t\t\tfingerprint,\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t}),\n\t\t});\n\t}\n\n\t// check\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend?action=check_same_material\",\n\t\tdata: generatorFormData({\n\t\t\tmsgid: appMsgId,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tconst copyrightStatData = {\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\trandom: Math.random().toString(),\n\t\tfingerprint,\n\t\tfirst_check: 1,\n\t\ttype: 10,\n\t\tappmsgid: appMsgId,\n\t};\n\tfor (let i = 0; i < 10; i++) {\n\t\tawait sleep(1000);\n\t\tconst lastData = { ...copyrightStatData, first_check: i === 0 ? 1 : 0 };\n\t\tconst checkCopyrightStatRes = await checkCopyrightStat<{ open_ad_reprint_status?: string }>(http, params, lastData);\n\t\tif (checkCopyrightStatRes.open_ad_reprint_status) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tawait sleep(300);\n\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\taction: \"check_ad\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\tappmsg_id: appMsgId,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\tis_release_publish_page: params.masssend ? 0 : 1, // 群发时为 0,否则为 1\n\t\t\tsend_time: params.settingInfo.timer ? params.settingInfo.timer : 0 ,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tawait sleep(300);\n\n\tawait http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\taction: \"check_music\",\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\tappmsgid: appMsgId,\n\t\t\tmasssend_check: 1,\n\t\t\tfingerprint,\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t});\n\n\tawait sleep(300);\n\n\t// 5. 获取群发文章ticket接口\n\tconst getTicketResult = await http.api<{ ticket: string; operation_seq: string }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/misc/safeassistant\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t1: 1,\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\taction: \"get_ticket\",\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t});\n\n\tawait sleep(300);\n\n\t// 6. 获取群发文章 uuid\n\tconst getUuidResult = await http.api<{ uuid: string; genuuid_res: number }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/safe/safeqrconnect\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t1: 1,\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: 1,\n\t\t\tstate: 0,\n\t\t\tlogin_type: \"safe_center\",\n\t\t\ttype: \"json\",\n\t\t\tticket: getTicketResult.ticket,\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t}),\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t});\n\tawait sleep(1000);\n\n\tif (getUuidResult.genuuid_res !== 0) {\n\t\treturn { code: 200, message: GET_QRCODE_DEFAULT_ERROR, data: \"\" };\n\t}\n\tconst uuid = getUuidResult.uuid;\n\tawait sleep(1000);\n\n\t// 7. 获取验证二维码\n\tconst qrcodeResult = await http.api({\n\t\tmethod: \"get\",\n\t\turl: \"https://mp.weixin.qq.com/safe/safeqrcode\",\n\t\tparams: {\n\t\t\taction: \"check\",\n\t\t\ttype: \"msgs\",\n\t\t\tservice_type: 1,\n\t\t\tticket: getTicketResult.ticket,\n\t\t\tuuid,\n\t\t\tmsgid: operation_seq,\n\t\t\topen_email: params.settingInfo.timer ? true : false,\n\t\t\t...(params.masssend ? {} : { publish_type: 1 }),\n\t\t},\n\t\tdefaultErrorMsg: GET_QRCODE_DEFAULT_ERROR,\n\t\tresponseType: \"arraybuffer\",\n\t});\n\n\tconst qrcodeBuffer = Buffer.from(qrcodeResult);\n\tconst qrcodeFilePath = path.join(tmpCachePath, \"weixin_qrcode.jpg\");\n\tfs.writeFileSync(qrcodeFilePath, new Uint8Array(qrcodeBuffer));\n\n\tparams.safeQrcodeCallback?.(qrcodeFilePath);\n\n\t// 8. 验证二维码结果\n\tlet code = \"\";\n\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\tawait sleep(2000);\n\n\t\tconst checkScanResult = await http.api<{ code: string; errcode: number }>({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/safe/safeuuid\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\ttimespam: Date.now(),\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tuuid,\n\t\t\t\taction: \"json\",\n\t\t\t\ttype: \"json\",\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t}),\n\t\t});\n\n\t\tif (checkScanResult.errcode === 405 && checkScanResult.code) {\n\t\t\tcode = checkScanResult.code;\n\t\t\tbreak;\n\t\t}\n\n\t\tif (i === scanRetryMaxCount - 1) {\n\t\t\treturn { code: 200, message: \"二维码已过期,请重试发布。\", data: \"\" };\n\t\t}\n\t}\n\n\t// 非群发时会多一个接口\n\tif (!params.masssend) {\n\t\tawait http.api({\n\t\t\tmethod: \"post\",\n\t\t\turl: \"https://mp.weixin.qq.com/misc/safeassistant\",\n\t\t\tparams: {\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t1: 1,\n\t\t\t},\n\t\t\tdata: generatorFormData({\n\t\t\t\ttoken: params.token,\n\t\t\t\tlang: \"zh_CN\",\n\t\t\t\tf: \"json\",\n\t\t\t\tajax: 1,\n\t\t\t\tfingerprint,\n\t\t\t\trandom: Math.random().toString(),\n\t\t\t\taction: \"get_uuid\",\n\t\t\t\tuuid,\n\t\t\t}),\n\t\t});\n\t}\n\n\t// 9. 发送群发通知\n\tawait http.api<{ code: string; errcode: number }>({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/masssend\",\n\t\tparams: {\n\t\t\tt: \"ajax-response\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\t...(params.masssend ? {\n\t\t\t\t...(params.settingInfo.timer ? { \n\t\t\t\t\taction: \"time_send\" \n\t\t\t\t}: {})\n\t\t\t} : { is_release_publish_page: 1 }),\n\t\t},\n\t\tdata: generatorFormData({\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t\tf: \"json\",\n\t\t\tajax: \"1\",\n\t\t\tfingerprint,\n\t\t\trandom: Math.random().toString(),\n\t\t\tack: \"\",\n\t\t\tcode,\n\t\t\treprint_info: \"\",\n\t\t\treprint_confirm: \"0\",\n\t\t\tlist: \"\",\n\t\t\tgroupid: \"\",\n\t\t\tsex: \"0\",\n\t\t\tcountry: \"\",\n\t\t\tprovince: \"\",\n\t\t\tcity: \"\",\n\t\t\tsend_time: params.settingInfo.timer ? params.settingInfo.timer : \"0\",\n\t\t\ttype: \"10\",\n\t\t\tshare_page: \"1\",\n\t\t\tsynctxweibo: \"0\",\n\t\t\toperation_seq,\n\t\t\treq_id: randomString(32),\n\t\t\treq_time: new Date().getTime() + client_time_diff * 1e3,\n\t\t\tsync_version: \"1\",\n\t\t\tisFreePublish: params.masssend ? \"false\" : \"true\",\n\t\t\tappmsgid: appMsgId,\n\t\t\tisMulti: \"0\",\n\t\t\tdirect_send: \"1\",\n\t\t\tisNeedCode: \"true\",\n\t\t\tuserType: \"1\",\n\t\t}),\n\t\tdefaultErrorMsg: params.masssend ? \"文章群发异常,请尝试关闭群发或稍后重试。\" : \"文章发布异常,请稍后重试。\",\n\t});\n\n\treturn success(appMsgId, params.settingInfo.timer ? \"微信公众号文章定时发布成功。\" : \"微信公众号发布完成。\");\n};\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport type { CookieMap, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport axios from \"axios\";\n\nimport { copyHtmlToClipboard, parseUrlQueryString, PopupListener, TimeFormatter } from \"../../utils\";\nimport type { PublishAction } from \"./index\";\nimport { scanRetryMaxCount } from \"./utils\";\n\n// 等待二维码验证结果最长时间\nconst waitQrcodeResultMaxTime = scanRetryMaxCount * 2 * 1000;\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.weixin.qq.com\",\n\t\turl: \"https://mp.weixin.qq.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst urlParams = {\n\t\taction: \"edit\",\n\t\ttype: 77,\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\ttimestamp: Date.now(),\n\t\tappmsgid: params.appMsgId,\n\t};\n\n\tif (params.settingInfo?.wxRewardTarget){\n\t\tconst urlRewardParams = {\n\t\t\taction: \"inviteauthor\",\n\t\t\ttoken: params.token,\n\t\t\tlang: \"zh_CN\",\n\t\t};\n\t\tconst wxRewardPage = await task.createPage({\n\t\t\tshow: task.debug,\n\t\t\turl:\n\t\t\t\tparams.url ||\n\t\t\t\t`https://mp.weixin.qq.com/cgi-bin/safecenterstatus?${Object.entries(urlRewardParams)\n\t\t\t\t\t.map((it) => it.join(\"=\"))\n\t\t\t\t\t.join(\"&\")}`,\n\t\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t\t});\n\n\t\tconst reward_page = wxRewardPage.locator(\"#app\")\n\t\tconst isAddRewarder = reward_page.locator('.author_card_bd.weui-desktop-vm_primary').filter({hasText: params.settingInfo.wxRewardTarget.author}).count()\n\t\tif(await isAddRewarder == 0){\n\t\t\tawait reward_page.locator('.weui-desktop-panel__hd-right').click()\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tawait wxRewardPage.waitForSelector('.invite-qrcode', { state: 'visible', timeout: 20000 });\n\t\t\t\t\tconst qrcodeSrc = await reward_page.locator(\".invite-qrcode\").getAttribute('src')\n\t\t\t\t\t\n\t\t\t\t\tif (qrcodeSrc) {\n\t\t\t\t\t\tconst rewardBuffer = Buffer.from(qrcodeSrc.replace(/^data:image\\/\\w+;base64,/, ''), 'base64');\n\t\t\t\t\t\tconst rewardFilePath = path.join(tmpCachePath, \"weixin_reward.jpg\");\n\t\t\t\t\t\tfs.writeFileSync(rewardFilePath, new Uint8Array(rewardBuffer));\n\t\t\t\t\t\n\t\t\t\t\t\tparams.safeQrcodeCallback?.(rewardFilePath);\n\t\t\t\t\t}\n\n\t\t\t\t\t// await wxRewardPage.waitForSelector('[data-transfer=\"true\"]:not([weui=\"true\"])', { state: 'detached', timeout: 30000 });\n\t\t\t\t\t\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new Error(\"二维码已过期,请重试绑定。\");\n\t\t\t\t}\n\n\t\t\t\tfor (let i = 0; i < scanRetryMaxCount; i++) {\n\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\twxRewardPage.reload(),\n\t\t\t\t\t\twxRewardPage.waitForLoadState('domcontentloaded')\n\t\t\t\t\t]);\n\t\t\t\t\t\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait wxRewardPage.waitForSelector(`.author_card_bd.weui-desktop-vm_primary:has-text(\"${params.settingInfo.wxRewardTarget?.author}\")`, { timeout: 1000 });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} catch (error) {}\n\n\t\t\t\t\tif (i === scanRetryMaxCount - 1) throw new Error(\"未确认绑定账户,请在手机端确认绑定并重试\");\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tlet errorMessage = \"发生未知错误\";\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\terrorMessage = error.message;\n\t\t\t\t} else if (typeof error === \"string\") {\n\t\t\t\t\terrorMessage = error;\n\t\t\t\t}\n\t\t\t\tawait wxRewardPage.close();\n\t\t\t\treturn { code: 200, message: errorMessage , data: \"\" };\n\t\t\t}\n\t\t}\n\n\t\tif(params.settingInfo.wxRewardText){\n\t\t\tawait wxRewardPage.locator('[href=\"/merchant/reward?action=getautoreply\"]').click()\n\t\t\tawait wxRewardPage.waitForLoadState('networkidle');\n\t\t\t\n\t\t\tconst isAddWord = reward_page.locator(\".auto-reply__list.edit .auto-reply__hd .auto-reply__text\").filter({hasText: new RegExp(`^${params.settingInfo.wxRewardText}$`) }).count()\n\t\t\t\n\t\t\tif(await isAddWord == 0){\n\t\t\t\tawait reward_page.locator(\".emotion_editor .edit_area\").fill(params.settingInfo.wxRewardText)\n\t\t\t\tawait reward_page.locator(\".emotion_editor .edit_area\").click()\n\t\t\t\tawait reward_page.locator(\".editor_toolbar .weui-desktop-btn.weui-desktop-btn_primary\").click()\n\t\t\t}\n\t\t}\n\t\tawait wxRewardPage.close();\n\n\t}\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl:\n\t\t\tparams.url ||\n\t\t\t`https://mp.weixin.qq.com/cgi-bin/appmsg?${Object.entries(urlParams)\n\t\t\t\t.map((it) => it.join(\"=\"))\n\t\t\t\t.join(\"&\")}`,\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\t// 0. 校验登录\n\ttry {\n\t\tawait page.waitForSelector(\".weui-desktop-head\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 1. 等待编辑器加载出来\n\tawait page.waitForSelector(\"#editor_pannel\", { state: \"visible\" });\n\n\t//新功能更新监听\n\tPopupListener(page,'[v-transfer-dom=\"#vue_app\"] .weui-desktop-dialog',\"更新\", '[v-transfer-dom=\"#vue_app\"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: false\n\t})\n\t//小店功能开通监听\n\tPopupListener(page,'[extclass=\"weui-desktop-dialog_simple\"] .weui-desktop-dialog',\"小店\", '[extclass=\"weui-desktop-dialog_simple\"] .weui-desktop-icon-btn.weui-desktop-dialog__close-btn', \n\t{\n\t\tcheckInterval: 1000,\n\t\tstopAfterClick: true\n\t})\n\n\t// 2. 填写标题\n\tconst titleInstance = page.locator(\"#js_title_main textarea#title\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 3. 填写作者\n\tif (params.settingInfo.wxAuthor) {\n\t\tconst titleInstance = page.locator(\"#js_author_area input#author\");\n\t\tawait titleInstance.click();\n\t\tawait titleInstance.fill(params.settingInfo.wxAuthor);\n\t}\n\n\t// 4. 填写正文\n\tawait copyHtmlToClipboard(page, params.content);\n\t// 定位目标元素并聚焦\n\tawait page.click(\".js_editor_area .ProseMirror\");\n\t// 模拟Ctrl+V粘贴\n\tawait page.keyboard.press(\"Control+V\");\n\n\t// 将设置区域滚动到可见区域\n\tawait page.locator(\"#article_setting_area\").evaluate((node) => node.scrollIntoView());\n\n\t// 5. 填写摘要\n\tif (params.settingInfo.wxAbstract) {\n\t\tconst titleInstance = page.locator(\"#article_setting_area #js_description_area textarea\");\n\t\tawait titleInstance.click();\n\t\tawait titleInstance.fill(params.settingInfo.wxAbstract);\n\t}\n\n\t// 6. 设置封面\n\tif (params.settingInfo.wxCover) {\n\t\tconst fileName = getFilenameFromUrl(params.settingInfo.wxCover);\n\t\tconst cover = await downloadImage(params.settingInfo.wxCover, path.join(tmpCachePath, fileName));\n\n\t\t// 从图片库选择\n\t\tawait page.locator(\"#article_setting_area #js_cover_area .select-cover__btn\").hover();\n\t\tawait page\n\t\t\t.locator(\"#article_setting_area #js_cover_area .pop-opr__group-select-cover .pop-opr__list .pop-opr__item\")\n\t\t\t.filter({ hasText: \"从图片库选择\" })\n\t\t\t.click();\n\n\t\t// 在弹窗内选择「我的图片」- 「上传文件」\n\t\t// 等待弹窗出现\n\t\tawait page.waitForSelector(\"#vue_app .weui-desktop-dialog\", { state: \"visible\" });\n\t\tconst dialog = page.locator(\"#vue_app .weui-desktop-dialog\");\n\t\t// 点击「我的图片」\n\t\tawait dialog.locator(\".weui-desktop-menu .weui-desktop-menu__item\").filter({ hasText: \"我的图片\" }).click();\n\t\tawait page.waitForTimeout(300);\n\t\t// 点击「上传文件」\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait dialog.locator(\".weui-desktop-img-picker__list__area .js_upload_btn_container\").click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles([cover]);\n\n\t\t// 等待图片上传完成\n\t\tawait page.waitForSelector(\".weui-desktop-img-picker__list .weui-desktop-img-picker__item.selected\", {\n\t\t\tstate: \"visible\",\n\t\t});\n\t\tawait page.waitForSelector('.weui-desktop-upload__file__progress', { state: 'detached' });\n\n\t\tconst pic_msg = page.locator('.weui-desktop-img-picker__list .weui-desktop-img-picker__item.selected .weui-desktop-upload__file__msg')\n\t\tif(await pic_msg.count() > 0) return {code: 200, message: \"图片上传错误:\"+(await pic_msg.textContent()||\"未知错误,请重试!\"), data: \"\"}\n\n\t\t// 选择下一步\n\t\tawait dialog\n\t\t\t.locator(\".weui-desktop-dialog__ft .weui-desktop-btn:not(.weui-desktop-btn_disabled)\")\n\t\t\t.filter({ hasText: \"下一步\" })\n\t\t\t.click();\n\t\t// 等待第二步的确认按钮出来\n\t\tawait dialog\n\t\t\t.locator(\".weui-desktop-dialog__ft .weui-desktop-btn\")\n\t\t\t.filter({ hasText: \"确认\" })\n\t\t\t.waitFor({ state: \"visible\" });\n\t\tawait dialog.locator(\".weui-desktop-dialog__ft .weui-desktop-btn\").filter({ hasText: \"确认\" }).click();\n\t}\n\n\t// 7. 原创与赞赏设置\n\tif(params.settingInfo.wxCopyright){\n\t\tawait page.locator('#js_original').click()\n\n\t\tconst ori_dialog = page.locator('.claim__original-dialog.original_dialog')\n\t\tconst ori_dialog_bd = ori_dialog.locator('.weui-desktop-dialog__bd')\n\t\tconst ori_dialog_ft = ori_dialog.locator('.weui-desktop-dialog__ft')\n\n\t\tawait ori_dialog_bd.locator('.weui-desktop-form__check-content').filter({hasText: \"文字原创\"}).click()\n\n\t\tif(params.settingInfo?.wxWhitelist){\n\t\t\t\n\t\t\tfor (var _target of params.settingInfo.wxWhitelist){\n\t\t\t\t\n\t\t\t\tawait ori_dialog_bd.locator('#js_article_whitelist_search').fill(_target)\n\t\t\t\tawait ori_dialog_bd.locator('.js_search').click()\n\t\t\t\tconst search_res = ori_dialog_bd.locator('#js_article_whitelist_search_result > div')\n\n\t\t\t\tawait page.waitForTimeout(1000);\n\n\t\t\t\tif( await search_res.getAttribute('class') !== 'search-result-title search-result-empty'){\n\n\t\t\t\t\tconst search_res_name = await search_res.locator('.search-result-name-left').textContent() || undefined\n\t\t\t\t\tawait search_res.click()\n\t\t\t\t\tconst whrite_list = ori_dialog_bd.locator('#js_article_whitelist_added tbody')\n\t\t\t\t\tconst white_td_isadd = await whrite_list.locator('.table-td-name').filter({hasText: search_res_name}).count()\n\n\t\t\t\t\tif (!white_td_isadd) {\n\t\t\t\t\t\treturn {code: 200 , message:'白名单添加失败,请重试!', data: ''}\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\treturn { code: 200, message: `白名单用户:${_target} 未搜索到,请确定输入是否正确!`, data: '' }\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\n\t\tif(params.settingInfo?.wxQuickReprint){\n\t\t\tconst btn_isChecked = await ori_dialog_bd.locator('//span[@class=\"frm_tips\"]').filter({ hasText: '已开启' }).count() == 1 ? true : false; \n\t\t\tif(!btn_isChecked) await ori_dialog_bd.locator('.weui-desktop-switch_loading .weui-desktop-switch__box').click()\n\t\t}\n\n\t\tconst checkbox = ori_dialog_ft.locator('.weui-desktop-icon-checkbox')\n\t\tif( !await checkbox.isChecked()) await checkbox.check() \n\t\tawait ori_dialog_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\n\t\tif (params.settingInfo?.wxRewardTarget){\n\n\t\t\tawait page.locator('#js_reward_setting_area').click()\n\n\t\t\tconst reward_setting = page.locator('.reward-setting-dialog')\n\t\t\tconst reward_setting_bd = reward_setting.locator('.weui-desktop-dialog__bd')\n\t\t\tconst reward_setting_ft = reward_setting.locator('.weui-desktop-dialog__ft')\n\n\t\t\t//遍历绑定信息\n\t\t\tfor (var _type in params.settingInfo.wxRewardTarget){\n\t\t\t\tif (_type === \"author\"){\n\t\t\t\t\tlet userName = params.settingInfo.wxRewardTarget[_type]\n\n\t\t\t\t\tawait reward_setting_bd.locator('.weui-desktop-form__check-label', { hasText: '赞赏作者' }).click()\n\t\t\t\t\tawait reward_setting_bd.locator('.weui-desktop-form__input').fill(userName)\n\n\n\t\t\t\t\tif(params.settingInfo.wxRewardText) {\n\t\t\t\t\t\tconst reward_setting_replay = page.locator('.reward-reply-setting')\n\t\t\t\t\t\tconst switchAuto = reward_setting_replay.locator('.weui-desktop-switch__box')\n\n\t\t\t\t\t\tconst maxAttempts = 5;\n\t\t\t\t\t\tconst delayMs = 500;\n\t\t\t\t\t\tlet nowCheckTime = 0 \n\n\t\t\t\t\t\tfor (let attempt = 0; attempt < maxAttempts; attempt++) {\n\t\t\t\t\t\t\tconst isDisabled = await switchAuto.isDisabled();\n\t\t\t\t\t\t\tif (!isDisabled){\n\t\t\t\t\t\t\t\tawait switchAuto.isChecked() ? nowCheckTime++ : null\n\t\t\t\t\t\t\t\tif (nowCheckTime == 2) break\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (attempt === maxAttempts - 1) throw new Error('Checkbox did not become enabled within the timeout.');\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, delayMs)); \n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\n\t\t\t\t\t\tconst isOneReplay = await reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__tips').textContent() == \"添加新的回复\"\n\t\t\t\t\t\tconst isCurrentReplay = await reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__display .wording').filter({hasText: new RegExp(`^${[params.settingInfo.wxRewardText]}$`)}).count() == 1\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (!isOneReplay && !isCurrentReplay) {\n\t\t\t\t\t\t\tawait reward_setting_replay.locator('.reward-reply-select__wrp >.reward-reply-select__tips').click()\n\t\t\t\t\t\t\tawait reward_setting_replay.locator('.reward-reply-select__display.can-select .wording').filter({hasText: new RegExp(`^${[params.settingInfo.wxRewardText]}$`)}).click()\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\tawait reward_setting_bd.locator('.reward-reply-setting .weui-desktop-switch__input').isChecked() ? reward_setting_bd.locator('.reward-reply-setting .weui-desktop-switch__box').uncheck(): 0\n\t\t\t\t\t}\n\t\n\t\t\t\t}\n\t\t\t\telse if (_type === \"project\"){}\n\t\t\t}\n\n\t\t\tconst checkbox = reward_setting_ft.locator('.weui-desktop-icon-checkbox')\n\t\t\tif( !await checkbox.isChecked()) await checkbox.check() \n\t\t\tawait reward_setting_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\n\t\t}\n\n\t}\n\n\t// 8. 互动设置\n\tif(params.settingInfo?.wxInteraction){\n\t\tawait page.locator('.appmsg-editor__setting-group.js_interaction_cell').click()\n\t\tconst wxInteraction_setting = page.locator('.interaction-dialog')\n\t\tconst wxInteraction_bd = wxInteraction_setting.locator('.weui-desktop-dialog__bd')\n\t\tconst wxInteraction_ft = wxInteraction_setting.locator('.weui-desktop-dialog__ft')\n\n\t\tif(params.settingInfo.wxInteraction.Type == \"public\"){\n\t\t\tawait wxInteraction_bd.locator('.weui-desktop-form__check-label span', { hasText: /^(开启|留言)$/ }).click();\n\t\t\t\n\t\t\tconst comment_area = wxInteraction_bd.locator('.comment-options-block.pt0')\n\t\t\tconst reply_area = wxInteraction_bd.locator('.comment-options-block.bb0.pb0')\n\t\t\tconst commont_rply_opt = page.locator('.weui-desktop-popper.options-popover[x-placement=\"bottom\"]')\n\n\t\t\tawait comment_area.locator('.comment-options__selector-btn').click();\n\t\t\tawait commont_rply_opt.locator('.weui-desktop-form__check-label', { hasText: params.settingInfo.wxInteraction.Option?.Comment }).click();\n\n\t\t\tif(params.settingInfo.wxInteraction.Option?.elect_comment) {\n\t\t\t\tawait comment_area.locator('.weui-desktop-switch__box').check()\n\t\t\t}else{\n\t\t\t\tawait comment_area.locator('.weui-desktop-switch__input').isChecked() ? comment_area.locator('.weui-desktop-switch__box').uncheck(): 0\n\t\t\t}\n\n\t\t\tawait page.waitForTimeout(1000);\n\n\t\t\tawait reply_area.locator('.comment-options__selector-btn').click();\n\t\t\tawait commont_rply_opt.locator('.weui-desktop-form__check-label', { hasText: params.settingInfo.wxInteraction.Option?.reply }).click();\n\t\t\t\n\t\t\tif(params.settingInfo.wxInteraction.Option?.elect_reply) {\n\t\t\t\tawait reply_area.locator('.weui-desktop-switch__box').check()\n\t\t\t}else{\n\t\t\t\tawait reply_area.locator('.weui-desktop-switch__input').isChecked() ? reply_area.locator('.weui-desktop-switch__box').uncheck(): 0\n\t\t\t}\n\t\t}else if(params.settingInfo.wxInteraction.Type == \"private\"){\n\t\t\tawait wxInteraction_bd.locator('.weui-desktop-form__check-label span', { hasText: /^(快捷私信|不开启)$/ }).click();\n\t\t}\n\n\t\tawait wxInteraction_ft.locator('.weui-desktop-btn.weui-desktop-btn_primary').click()\n\t}\n\n\t// 9. 原文链接\n\tif (params.settingInfo.wxOriginalText) {\n\t\tawait page.locator(\"#js_article_url_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tconst poperInput = poperInstance.locator(\"input.weui-desktop-form__input.js_url\");\n\t\tawait poperInput.fill(params.settingInfo.wxOriginalText);\n\t\tawait poperInstance.locator(\".popover_bar .btn_primary\").click();\n\t}\n\n\t// 10. 创作来源\n\tif (params.settingInfo.wxCreationSource && params.settingInfo.wxCreationSource.length > 0) {\n\t\tconst source = params.settingInfo.wxCreationSource[0];\n\t\tawait page.locator(\"#js_claim_source_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tawait poperInstance.locator(`.frm_radio_item label[for=\"${source}\"]`).click();\n\t}\n\n\t// 11. 关闭平台推荐\n\tif (params.settingInfo.wxNotAllowRecommend === true) {\n\t\tawait page.locator(\"#js_not_recommend_area .allow_click_opr\").click();\n\t\tawait page.waitForTimeout(200);\n\t\tconst poperInstance = page.locator('.popover:not([style*=\"display: none\"])');\n\t\tawait poperInstance.locator('.frm_radio_item label[for=\"not_recomment_0\"]').click();\n\t}\n\n\tawait page.waitForTimeout(1000);\n\n\t// 12. 发布\n\tconst articleId = await new Promise<string>(async (resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tconst url = response.url();\n\t\t\tconst query = parseUrlQueryString(url);\n\t\t\tif (url.includes(\"/cgi-bin/operate_appmsg\") && query?.t === \"ajax-response\") {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse?.appMsgId);\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\t// 点击发表\n\t\tpage.locator(\"#editor_pannel #bottom_main #js_button_area #js_send button\").click();\n\t\tawait page.waitForTimeout(200);\n\n\t\tif (params.settingInfo.timer) {\n\t\t\tawait page.locator(\".mass-send .mass-send__td-setting\", {hasText: \"定时发表\"}).locator(\".weui-desktop-switch__box\").check();\n\t\t\tlet dateD = Number(TimeFormatter.format(params.settingInfo.timer, \"d\"));\n\t\t\tlet nowD = Number(TimeFormatter.format(Date.now(), \"d\"));\n\n\t\t\tawait page.locator(\".mass-send__timer .weui-desktop-form__dropdown__dt\").click();\n\t\t\tconst dropMenu = page.locator(\".mass-send__timer .weui-desktop-dropdown-menu\").locator(\".weui-desktop-dropdown__list-ele\")\n\t\t\tawait dropMenu.filter({hasText: dateD == nowD ? \"今天\" : dateD == nowD + 1 ? \"明天\" : TimeFormatter.format(params.settingInfo.timer, \"M月d日\")}).click();\n\n\t\t\tconst timeDropMenu = page.locator(\".mass-send__timer .weui-desktop-picker__time:visible\")\n\t\t\tawait timeDropMenu.locator(\".weui-desktop-form__input\").fill(TimeFormatter.format(params.settingInfo.timer, \"hh:mm\"));\n\t\t\tawait timeDropMenu.locator(\"i.weui-desktop-icon__time\").click();\n\n\t\t}\n\t});\n\tawait page.waitForTimeout(200);\n\n\tif(params.masssend){\n\t\tconst times = Number(await page.locator(\".mass-send .multi-sent__notice_time\").locator('div[style=\"display: none;\"] div:not([style*=\"display: none\"]) span').textContent())\n\t\tif( times==0 ) return { code: 200, message: \"今日群发次数用尽,请明天再试。\", data: \"\" };\n\t\tawait page.locator(\".mass-send .mass_send__notify\").locator(\".weui-desktop-switch__box\").check();\n\t}else{\n\t\tawait page.locator(\".mass-send .mass_send__notify\").locator(\".weui-desktop-switch__box\").uncheck();\n\t}\n\n\tawait page.waitForTimeout(200);\n\n\t// 再次点击发表\n\tawait page.waitForSelector('.new_mass_send_dialog .weui-desktop-dialog__wrp:not([style*=\"display: none\"])', {state: \"visible\"});\n\tawait page.locator(\".new_mass_send_dialog .weui-desktop-dialog .weui-desktop-dialog__ft button.weui-desktop-btn_primary\").click();\n\n\t// 点击继续发表\n\tawait page.waitForSelector('.double_check_dialog .weui-desktop-dialog__wrp:not([style*=\"display: none\"])', {state: \"visible\",});\n\tawait page.locator(\".double_check_dialog .weui-desktop-dialog .weui-desktop-dialog__ft button.weui-desktop-btn_primary\").click();\n\n\tawait page.waitForTimeout(2000);\n\n\t// 原创校验弹窗\n\tconst originalCheckDialog = page.locator('div[data-transfer=\"true\"][width\\\\.number=\"800\"][height\\\\.number=\"800\"] .weui-desktop-dialog__title')\n\tif((await originalCheckDialog.count() > 0) ){\n\t\tif (await originalCheckDialog.textContent() === \"原创校验\"){\n\t\t\tconst popMassend = page.locator('div[data-transfer=\"true\"][width\\\\.number=\"800\"][height\\\\.number=\"800\"]')\n\t\t\tawait popMassend.locator(\".weui-desktop-btn_primary\",{hasText: \"下一步\"}).click();\n\t\t\tawait popMassend.locator(\".weui-desktop-btn_primary\",{hasText: \"继续\"}).click();\n\t\t}\n\t}\n\n\n\ttry {\n\t\tconst startTime = Date.now();\n\n\t\t// biome-ignore lint/suspicious/noAsyncPromiseExecutor: <explanation>\n\t\tawait new Promise<void>(async (resolve, reject) => {\n\t\t\t// 定义响应处理函数\n\t\t\tconst handleResponse = async (response: Response) => {\n\t\t\t\tif (response.url().includes(\"/safe/safeuuid\")) {\n\t\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\t\tif (jsonResponse.errcode === 405) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\t\t} else if (Date.now() - startTime > waitQrcodeResultMaxTime) {\n\t\t\t\t\t\treject();\n\t\t\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// 开始监听响应事件\n\t\t\tpage.on(\"response\", handleResponse);\n\n\t\t\t// 获取微信验证二维码\n\t\t\tawait page.waitForSelector(\".dialog .js_wxchecks.safe_check img.qrcode.js_qrcode\", {\n\t\t\t\tstate: \"visible\",\n\t\t\t});\n\t\t\tconst qrcodeSrc = await page\n\t\t\t\t.locator(\".dialog .js_wxchecks.safe_check img.qrcode.js_qrcode\")\n\t\t\t\t.first()\n\t\t\t\t.getAttribute(\"src\");\n\t\t\tif (qrcodeSrc) {\n\t\t\t\tconst imgUrl = new URL(qrcodeSrc, page.url()).href; // 处理相对路径\n\t\t\t\tconst response = await axios({\n\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\turl: imgUrl,\n\t\t\t\t\tresponseType: \"arraybuffer\", // 确保接收二进制数据\n\t\t\t\t});\n\t\t\t\t// 保存文件\n\t\t\t\tconst qrcodeFilePath = path.join(tmpCachePath, \"weixin_qrcode.jpg\");\n\t\t\t\tfs.writeFileSync(qrcodeFilePath, response.data);\n\t\t\t\tparams.safeQrcodeCallback?.(qrcodeFilePath);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"qrcodeSrc is empty\");\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tawait page.close();\n\t\treturn { code: 500, message: \"群发二维码已过期,请重试发布。\", data: \"\" };\n\t}\n\n\tawait page.waitForTimeout(3000);\n\tawait page.close();\n\n\treturn success(articleId);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { defaultParams, executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\nexport interface WxInteraction {\n\tType: \"public\" | \"private\" | \"off\"; // public:评论留言, priviate: 快捷私信, off: 不开启\n\tOption?: { // public下相关设置\n\t Comment: \"已关注7天及以上的用户\" | \"已关注的用户\" | \"所有用户\"; // 评论设置\n\t reply: \"已关注7天及以上的用户\" | \"已关注的用户\" | \"所有用户\"; // 回复设置\n\t elect_comment: boolean; // 是否开启精选评论\n\t elect_reply: boolean; // 是否开启精选回复\n\t};\n }\n\nexport interface WeixinPublishParams extends ActiomCommonParams {\n\tsaveType: \"draft\" | \"publish\"; // 保存成草稿 / 发布\n\tmasssend?: boolean; // 是否群发(默认开启群发)\n\ttoken: string | number;\n\ttitle: string; // 标题\n\tcontent: string; // 正文内容\n\tuuid?: string;\n\tappMsgId?: string;\n\toperation_seq?: string;\n\tsettingInfo: {\n\t\twxCover: string; // 封面\n\t\twxAuthor?: string; // 作者\n\t\twxAbstract?: string; // 摘要\n\t\twxOriginalText?: string; // 原文链接\n\t\twxCopyright?: boolean, // 版权声明\n\t\twxWhitelist?: string[]; // 转载白马名单\n\t\twxRewardTarget?: Record<string, string>; // 赞赏目标与ID\n\t\twxRewardText?: string; // 赞赏文案\n\t\twxQuickReprint?: boolean; // 快捷转载\n\t\twxNotAllowRecommend?: boolean; // 不允许被平台推荐\n\t\twxCreationSource?: string[]; // 创作来源\n\t\twxInteraction?: WxInteraction // 互动设置\n\t\ttimer?: number; // 定时发文时间\n\t};\n\tsafeQrcodeCallback?: (qrcodePath: string) => void; // 二维码验证回调\n}\n\nexport interface WxWhitelistUserInfo {\n\tnickname: string;\n\topenid: string; // 微信常用字段命名可能是 open_id\n\tusername: string;\n\twx_name: string;\n\tpic_url: string;\n}\n\nexport type PublishAction = CommonAction<WeixinPublishParams, string>;\n\nexport const weixinPublish: PublishAction = async (task, _params) => {\n\tconst params = defaultParams(_params, { masssend: true });\n\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport FormData from \"form-data\";\n\nimport type { PublishAction, WeixinmpPublishParams } from \".\";\nimport type { Weixin } from \"../../types\";\nimport type { AspectRatio } from \"../../utils\";\nimport { calculateCropCoordinates, getFileState } from \"../../utils\";\nimport { Http } from \"../../utils/http\"\n\ntype ColorResponse = {\n\twidth: number;\n\theight: number;\n\ttheme_color: { r: number; g: number; b: number };\n};\ntype ShareInamgeInfo = {\n\tcdn_url: string;\n\tdisable_live: 0;\n\tdisable_theme: 1;\n\tfile_id: number;\n\twidth: number;\n\theight: number;\n\ttheme_color: string;\n\turl: string;\n};\n\nconst saveDraft = (\n\thttp: Http,\n\tparams: WeixinmpPublishParams,\n\tdata: Record<string, unknown>,\n) => {\n\tconst formData = new FormData();\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tformData.append(key, value);\n\t}\n\n\treturn http.api({\n\t\tmethod: \"post\",\n\t\turl: \"https://mp.weixin.qq.com/cgi-bin/operate_appmsg\",\n\t\tparams: {\n\t\t\ttoken: params.token,\n\t\t\tt: \"ajax-response\",\n\t\t\tsub: \"update\",\n\t\t\ttype: 77,\n\t\t\tlang: \"zh_CN\",\n\t\t},\n\t\tdata: formData,\n\t});\n};\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://mp.weixin.qq.com\",\n\t\t\treferer: `https://mp.weixin.qq.com/cgi-bin/appmsg?token=${params.token}&lang=zh_CN`,\n\t\t},\n\t});\n\n\t// 1. 上传图片\n\tconst shareImageInfos: ShareInamgeInfo[] = [];\n\tconst cropResult: Record<string, string> = {};\n\n\tif (params.banners && params.banners.length > 0) {\n\t\t// 下载图片到本地\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\tfor (let index = 0; index < images.length; index++) {\n\t\t\tconst image = images[index];\n\t\t\tconst fileState = getFileState(image);\n\n\t\t\tconst formData = new FormData();\n\t\t\tformData.append(\"id\", `WU_FILE_${index + 1}`);\n\t\t\tformData.append(\"name\", fileState.name);\n\t\t\tformData.append(\"type\", fileState.type);\n\t\t\tformData.append(\"lastModifiedDate\", fileState.lastModifiedDate);\n\t\t\tformData.append(\"size\", fileState.size);\n\t\t\tformData.append(\"file\", fs.createReadStream(image));\n\n\t\t\tconst response = await http.api<{ cdn_url: string; content: string }>({\n\t\t\t\tmethod: \"post\",\n\t\t\t\turl: `https://mp.weixin.qq.com/cgi-bin/filetransfer?action=upload_material&f=json&writetype=doublewrite&token=${params.token}&lang=zh_CN`,\n\t\t\t\tdata: formData,\n\t\t\t});\n\n\t\t\t// 获取图片的主题色\n\t\t\tconst colorResponseData = await http.api<ColorResponse>({\n\t\t\t\tmethod: \"get\",\n\t\t\t\turl: \"https://mp.weixin.qq.com/cgi-bin/filepage\",\n\t\t\t\tparams: {\n\t\t\t\t\taction: \"getimgext\",\n\t\t\t\t\tfileid: response.content,\n\t\t\t\t\ttoken: params.token,\n\t\t\t\t\tlang: \"zh_CN\",\n\t\t\t\t\tf: \"json\",\n\t\t\t\t\tajax: 1,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst themeColor = colorResponseData.theme_color;\n\n\t\t\tshareImageInfos.push({\n\t\t\t\tcdn_url: response.cdn_url,\n\t\t\t\tdisable_live: 0,\n\t\t\t\tdisable_theme: 1,\n\t\t\t\tfile_id: Number(response.content),\n\t\t\t\twidth: colorResponseData.width,\n\t\t\t\theight: colorResponseData.height,\n\t\t\t\ttheme_color: `rgb(${themeColor.r},${themeColor.g},${themeColor.b})`,\n\t\t\t\turl: response.cdn_url,\n\t\t\t});\n\n\t\t\t// 第一张图片还需要添加头图裁切\n\t\t\tif (index === 0) {\n\t\t\t\tconst cropFormData = new FormData();\n\t\t\t\tcropFormData.append(\"imgurl\", response.cdn_url);\n\n\t\t\t\t// 需要裁切 16:9,3:4,1:1 三种尺寸的图片\n\t\t\t\tconst cropRatios: AspectRatio[] = [\n\t\t\t\t\t[16, 9],\n\t\t\t\t\t[1, 1],\n\t\t\t\t\t[3, 4],\n\t\t\t\t];\n\t\t\t\tcropFormData.append(\"size_count\", cropRatios.length);\n\t\t\t\tconst cropCoordinates = cropRatios.map((r, idx) => {\n\t\t\t\t\tconst cropCoordinate = calculateCropCoordinates(\n\t\t\t\t\t\tcolorResponseData.width,\n\t\t\t\t\t\tcolorResponseData.height,\n\t\t\t\t\t\tr,\n\t\t\t\t\t);\n\t\t\t\t\tcropFormData.append(`size${idx}_x1`, cropCoordinate.x1);\n\t\t\t\t\tcropFormData.append(`size${idx}_y1`, cropCoordinate.y1);\n\t\t\t\t\tcropFormData.append(`size${idx}_x2`, cropCoordinate.x2);\n\t\t\t\t\tcropFormData.append(`size${idx}_y2`, cropCoordinate.y2);\n\n\t\t\t\t\treturn { ratio: `${r[0]}_${r[1]}`, ...cropCoordinate };\n\t\t\t\t});\n\n\t\t\t\tcropFormData.append(\"token\", params.token);\n\t\t\t\tcropFormData.append(\"lang\", \"zh_CN\");\n\t\t\t\tcropFormData.append(\"f\", \"json\");\n\t\t\t\tcropFormData.append(\"ajax\", 1);\n\n\t\t\t\tconst cropResponse = await http.api<{ result: Weixin.WeiXinCropResult[] }>({\n method: \"post\",\n url: \"https://mp.weixin.qq.com/cgi-bin/cropimage?action=crop_multi\",\n data: cropFormData\n });\n\n\t\t\t\tcropResult.cdn_url_back0 = response.cdn_url; // 原图\n\t\t\t\tcropResult.cdn_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_235_1_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_16_9_url0 = cropResponse.result[0].cdnurl; // 16:9\n\t\t\t\tcropResult.cdn_1_1_url0 = cropResponse.result[1].cdnurl; // 1:1\n\t\t\t\tcropResult.cdn_3_4_url0 = cropResponse.result[2].cdnurl; // 3:4\n\t\t\t\tcropResult.crop_list0 = JSON.stringify({\n\t\t\t\t\tcrop_list: cropCoordinates.map((it, idx) => ({\n\t\t\t\t\t\tfile_id: cropResponse.result[idx].file_id,\n\t\t\t\t\t\tratio: it.ratio,\n\t\t\t\t\t\tx1: 0,\n\t\t\t\t\t\tx2: 0,\n\t\t\t\t\t\ty1: 0,\n\t\t\t\t\t\ty2: 0,\n\t\t\t\t\t})),\n\t\t\t\t\tcrop_list_percent: cropCoordinates.map((it, idx) => ({\n\t\t\t\t\t\t...it,\n\t\t\t\t\t\tfile_id: cropResponse.result[idx].file_id,\n\t\t\t\t\t})),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// 保存\n\tconst res = await saveDraft(http, params, {\n\t\t...cropResult,\n\t\ttoken: params.token,\n\t\tlang: \"zh_CN\",\n\t\tf: \"json\",\n\t\tajax: 1,\n\t\toperate_from: \"Chrome\",\n\t\ttitle0: params.title,\n\t\tcontent0: params.content,\n\t\tshare_imageinfo0: JSON.stringify(shareImageInfos),\n\t});\n\n return success(res)\n};\n","import path from \"node:path\";\nimport type { CookieMap } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\n\nimport type { PublishAction, Source } from \"./index\";\n\nconst sourceText: Record<Source, string> = {\n\tai: \"内容由AI生成\",\n\tofficial: \"素材来源官方媒体/网络新闻\",\n\tfictional: \"内容剧情演绎,仅供娱乐\",\n\tpersonal: \"个人观点,仅供参考\",\n};\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsecure: true,\n\t\tdomain: \"mp.weixin.qq.com\",\n\t\turl: \"https://mp.weixin.qq.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl:\n\t\t\tparams.url ||\n\t\t\t`https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=8&token=${params.token}&lang=zh_CN`,\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\t// 0. 判断是否登录\n\ttry {\n\t\tawait page.waitForSelector(\"#editor_pannel\");\n\t} catch (error) {\n\t\treturn { code: 500, message: \"登录失效\", data: page.url() };\n\t}\n\n\tconst container = page.locator(\"#editor_pannel\");\n\n\t// 1. 添加图片\n\tif (params.banners && params.banners.length > 0) {\n\t\tconst images = await Promise.all(\n\t\t\tparams.banners.map((url) => {\n\t\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t\t}),\n\t\t);\n\n\t\t// 选择文件\n\t\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\t\tawait container.locator(\".image-selector__add\").hover();\n\t\tawait container\n\t\t\t.locator(\".image-selector__add .pop-opr__list .pop-opr__item\")\n\t\t\t.filter({ hasText: \"本地上传\" })\n\t\t\t.click();\n\t\tconst fileChooser = await fileChooserPromise;\n\t\tawait fileChooser.setFiles(images);\n\t}\n\n\t// 2. 标题\n\tconst titleInstance = page.locator(\"#js_title_main textarea#title\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 3. 正文\n\tconst descInstance = page.locator(\"#guide_words_main .ProseMirror\");\n\tawait descInstance.click();\n\tawait descInstance.fill(params.content);\n\n\t// 4. 来源\n\tif (params.source) {\n\t\tawait container.locator(\"#js_claim_source_area .js_claim_source_desc\").click();\n\t\tawait page\n\t\t\t.locator(\".popover_article_claim_source .frm_radio_item label\")\n\t\t\t.filter({ hasText: sourceText[params.source] })\n\t\t\t.click();\n\t}\n\n\t// 5. 等待所有图片上传完成\n\tif (params.banners && params.banners.length > 0) {\n\t\tawait page.waitForSelector(\"#editor_pannel .image-selector .image-selector__preview\");\n\t}\n\n\t// 6. 保存\n\tif (params.draft) {\n\t\tawait container.locator(\"#bottom_main #js_submit button\").click();\n\t} else {\n\t\tawait container.locator(\"#bottom_main #js_send button\").click();\n\t}\n\n\treturn success(\"\");\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\nexport type Source = \"ai\" | \"official\" | \"fictional\" | \"personal\";\n\nexport interface WeixinmpPublishParams extends ActiomCommonParams {\n\ttoken: string | number;\n\tbanners?: string[];\n\ttitle: string; // 标题\n\tcontent: string; // 正文\n\t/**\n\t * 内容由AI生成 - ai\n\t * 素材来源官方媒体/网络新闻 - official\n\t * 内容剧情演绎,仅供娱乐 - fictional\n\t * 个人观点,仅供参考 - personal\n\t */\n\tsource?: Source; // 来源\n\tdraft?: boolean; // 是否为草稿\n}\n\nexport type PublishAction = CommonAction<WeixinmpPublishParams>;\n\nexport const weixinmpPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import { Buffer } from \"node:buffer\";\nimport crypto from \"node:crypto\";\n\n/**\n * 小红书加密参数逆向,代码来自:https://github.com/Cloxl/xhshow\n */\nexport class XsEncrypt {\n\tprivate words = [929260340, 1633971297, 895580464, 925905270];\n\tprivate keyBytes = Buffer.concat(\n\t\tthis.words.map(\n\t\t\t(word) =>\n\t\t\t\tnew Uint8Array(Buffer.from([(word >> 24) & 0xff, (word >> 16) & 0xff, (word >> 8) & 0xff, word & 0xff])),\n\t\t),\n\t);\n\tprivate iv = Buffer.from(\"4uzjr7mbsibcaldp\", \"utf8\");\n\n\t/**\n\t * 根据传入的url生成MD5摘要\n\t *\n\t * @param {string} url - API的url\n\t * @returns {string} MD5摘要\n\t */\n\tasync encryptMD5(url: string): Promise<string> {\n\t\treturn crypto.createHash(\"md5\").update(url, \"utf8\").digest(\"hex\");\n\t}\n\n\t/**\n\t * 根据传入的text生成AES加密后的内容,并将其转为base64编码\n\t *\n\t * @param {string} text - 需要加密的字符串\n\t * @returns {string} 加密后的base64编码字符串\n\t */\n\tasync encryptText(text: string): Promise<string> {\n\t\t// 将文本编码为 Base64\n\t\tconst textEncoded = Buffer.from(text).toString(\"base64\");\n\t\t// 创建 AES 加密器\n\t\tconst cipher = crypto.createCipheriv(\"aes-128-cbc\", new Uint8Array(this.keyBytes), new Uint8Array(this.iv));\n\t\t// 对数据进行填充\n\t\tconst ciphertext = cipher.update(textEncoded, \"utf8\", \"base64\");\n\t\treturn ciphertext + cipher.final(\"base64\");\n\t}\n\n\t/**\n\t * 把加密后的payload转为16进制\n\t *\n\t * @param {string} encodedData - 加密后的payload(Base64编码)\n\t * @returns {string} 十六进制字符串\n\t */\n\tasync base64ToHex(encodedData: string): Promise<string> {\n\t\t// 将 Base64 字符串解码为二进制数据\n\t\tconst decodedData = Buffer.from(encodedData, \"base64\");\n\t\t// 将二进制数据转换为十六进制字符串\n\t\treturn decodedData.toString(\"hex\");\n\t}\n\n\t/**\n\t * 把小红书加密参数payload转16进制 再使用base64编码\n\t *\n\t * @param {string} payload - 要加密处理的payload内容\n\t * @param {string} platform - 登录平台\n\t * @returns {string} 加密后并进行base64编码的字符串\n\t */\n\tasync encryptPayload(payload: string, platform: string): Promise<string> {\n\t\t// 将 payload 转换为十六进制\n\t\tconst hexPayload = await this.base64ToHex(payload);\n\n\t\t// 构造对象\n\t\tconst obj = {\n\t\t\tsignSvn: \"56\",\n\t\t\tsignType: \"x2\",\n\t\t\tappID: platform,\n\t\t\tsignVersion: \"1\",\n\t\t\tpayload: hexPayload,\n\t\t};\n\n\t\t// 将对象转换为 JSON 字符串(紧凑格式)\n\t\tconst jsonString = JSON.stringify(obj, null, 0);\n\n\t\t// 对 JSON 字符串进行 Base64 编码\n\t\treturn Buffer.from(jsonString).toString(\"base64\");\n\t}\n\n\t/**\n\t * 将传入的参数加密为小红书的xs\n\t * Args: url: API请求的URL\n\t * a1: 签名参数a1\n\t * ts: 时间戳\n\t * platform: 登录平台 默认为xhs-pc-web\n\t * Returns:\n\t * 最终的加密签名字符串,前缀为“XYW_”\n\t */\n\tasync encryptXs(url: string, a1: string, ts: string, platform = \"xhs-pc-web\"): Promise<string> {\n\t\tconst text = `x1=${await this.encryptMD5(`url=${url}`)};x2=0|0|0|1|0|0|1|0|0|0|1|0|0|0|0|1|0|0|0;x3=${a1};x4=${ts};`;\n\t\treturn `XYW_${await this.encryptPayload(await this.encryptText(text), platform)}`;\n\t}\n\n\tdumps(...rest: Parameters<typeof JSON.stringify>): string {\n\t\tconst [data, replacer = null, space = 0] = rest;\n\t\treturn JSON.stringify(data, replacer, space)\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/\":\\s+\"/g, '\":\"');\n\t}\n}\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport type { PublishAction } from \".\";\nimport { Http } from \"../../utils/http\";\nimport { XsEncrypt } from \"../../utils/xhsXsEncrypt\";\n\ninterface CommonResponse<T = unknown> {\n\tdata: T;\n\tcode: number;\n\tsuccess: boolean;\n}\n\ninterface UploadTempPermit {\n\tbucket: string;\n\tfileIds: string[];\n\ttoken: string;\n}\n\nconst errnoMap: Record<number, string> = {\n\t915: \"所属C端账号手机号被修改,请重新登录\",\n\t903: \"账户已登出,需重新登陆重试!\",\n\t902: \"登录已过期,请重新登录!\"\n};\n\n// 小红书参数加密器\nconst xsEncrypt = new XsEncrypt();\n\nexport const mockAction: PublishAction = async (task, params) => {\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst a1Cookie = params.cookies.find((it) => it.name === \"a1\")?.value;\n\tif (!a1Cookie) {\n\t\treturn { code: 200, message: \"账号数据异常,请重新绑定账号后重试。\", data: \"\" };\n\t}\n\n\tconst http = new Http({\n\t\theaders: {\n\t\t\tcookie: params.cookies.map((it) => `${it.name}=${it.value}`).join(\";\"),\n\t\t\torigin: \"https://creator.xiaohongshu.com\",\n\t\t\treferer: \"https://creator.xiaohongshu.com/\",\n\t\t\t\"user-agent\":\n\t\t\t\t\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36\",\n\t\t},\n\t});\n\n\t// 添加响应拦截器\n\thttp.addResponseInterceptor<CommonResponse>((response) => {\n\t\tconst responseData = response.data;\n\n\t\t// 检查响应中的 errno 字段\n\t\tif (responseData?.code && responseData.code !== 0) {\n\t\t\tconst errmsg = errnoMap[responseData.code] || response.config.defaultErrorMsg || \"文章发布异常,请稍后重试。\";\n\n\t\t\treturn {\n\t\t\t\tcode: errnoMap[responseData.code] ? 200 : 500,\n\t\t\t\tmessage: errmsg,\n\t\t\t\tdata: responseData\n\t\t\t};\n\t\t}\n\t});\n\n\t// 0. 获取上传 token\n\tconst fetchCoverUrl = `/api/media/v1/upload/creator/permit?biz_name=spectrum&scene=image&file_count=${params.banners.length}&version=1&source=web`;\n\tconst xt = Date.now().toString();\n\tconst xs = await xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt);\n\tconst coverIdInfo = await http.api<CommonResponse<{ uploadTempPermits: UploadTempPermit[] }>>({\n\t\tmethod: \"get\",\n\t\tbaseURL: \"https://creator.xiaohongshu.com\",\n\t\turl: fetchCoverUrl,\n\t\tdefaultErrorMsg: \"获取小红书用户信息失败,请稍后重试发布。\",\n\t\theaders: { \"x-s\": xs, \"x-t\": xt },\n\t});\n\n\tconst coverIds = coverIdInfo.data.uploadTempPermits[0].fileIds;\n\tconst ossToken = coverIdInfo.data.uploadTempPermits[0].token;\n\tif(!coverIds || !ossToken) return { code: 200, message: \"图片上传失败,请稍后重试!\", data: \"\" };\n\n\t// 1. 上传附件\n\tconst uploadFile = async (url: string, index: number) => {\n\t\tconst fileName = getFilenameFromUrl(url);\n\t\tconst localUrl = await downloadImage(url, path.join(tmpCachePath, fileName));\n\n\t\tconst ossFileId = coverIds[index];\n\t\t// 读取本地文件,转成 Buffer\n\t\tconst fileBuffer = fs.readFileSync(localUrl);\n\n\t\tawait http.api({\n\t\t\tmethod: \"put\",\n\t\t\turl: `https://ros-upload.xiaohongshu.com/${ossFileId}`,\n\t\t\tdata: fileBuffer,\n\t\t\theaders: {\n\t\t\t\t\"x-cos-security-token\": ossToken,\n\t\t\t},\n\t\t\tdefaultErrorMsg: \"图片上传异常,请稍后重试发布。\",\n\t\t});\n\n\t\treturn { ossFileId, ossToken };\n\t};\n\n\tconst coverInfos = await Promise.all(params.banners.map((it, idx) => uploadFile(it, idx)));\n\n\tif(params.topic && params.topic.length >0){\n\t\tawait Promise.all(params.topic.map(async (topic) => {\n\t\t\tif(!topic[\"id\"]){\n\t\t\t\tconst topicData = {topic_names: topic[\"name\"]}\n\t\t\t\tconst topicDataStr = xsEncrypt.dumps(topicData);\n\t\t\t\tconst publishXt = Date.now().toString();\n\t\t\t\tconst publishXs = await xsEncrypt.encryptXs(`/web_api/sns/capa/postgw/topic/batch_customized${topicDataStr}`, a1Cookie, publishXt);\n\t\n\t\t\t\tlet createTopic = await http.api({\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/capa/postgw/topic/batch_customized\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"x-s\": publishXs,\n\t\t\t\t\t\t\"x-t\": publishXt,\n\t\t\t\t\t},\n\t\t\t\t\tdata: topicData,\n\t\t\t\t\tdefaultErrorMsg: \"话题创建异常,请稍后重试。\",\n\t\t\t\t})\n\t\t\t\tObject.assign(topic , createTopic.data.topic_infos[0])\n\t\t\t}\n\t\t}))\n\t};\n\n\tconst publishData = {\n\t\tcommon: {\n\t\t\tats: [],\n\t\t\tbiz_relations: [],\n\t\t\tdesc: params?.content,\n\t\t\tgoods_info: {},\n\t\t\thash_tag: params.topic || [],\n\t\t\tnote_id: \"\",\n\t\t\tsource: JSON.stringify({\n\t\t\t\ttype: \"web\",\n\t\t\t\tids: \"\",\n\t\t\t\textraInfo: '{\"systemId\":\"web\"}',\n\t\t\t}),\n\t\t\ttitle: params?.title,\n\t\t\ttype: \"normal\",\n\t\t\tprivacy_info: {\n\t\t\t\top_type: 1,\n\t\t\t\ttype: params.visibleRange === \"public\" ? 0 : 1,\n\t\t\t},\n\t\t\tpost_loc: params.address\n\t\t\t\t? {\n\t\t\t\t\t\tname: params.address?.name,\n\t\t\t\t\t\tpoi_id: params.address?.poi_id,\n\t\t\t\t\t\tpoi_type: params.address?.poi_type,\n\t\t\t\t\t\tsubname: params.address?.full_address,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t\tbusiness_binds: \"\",\n\t\t},\n\t\timage_info: {\n\t\t\timages: coverInfos.map((it) => ({\n\t\t\t\textra_info_json: '{\"mimeType\":\"image/png\"}',\n\t\t\t\tfile_id: it.ossFileId,\n\t\t\t\tmetadata: { source: -1 },\n\t\t\t\tstickers: { floating: [], version: 2 },\n\t\t\t})),\n\t\t},\n\t\tvideo_info: null,\n\t};\n\n\t// 自主声明\n\tconst userDeclarationBind = {\n\t\torigin: 2,\n\t\tphotoInfo: {},\n\t\trepostInfo: {},\n\t};\n\n\tif (params.selfDeclaration?.type === \"fictional-rendition\") {\n\t\t// 虚拟演绎,仅供娱乐\n\t\tuserDeclarationBind.origin = 1;\n\t} else if (params.selfDeclaration?.type === \"ai-generated\") {\n\t\t// 笔记含AI合成内容\n\t\tuserDeclarationBind.origin = 2;\n\t} else if (params.selfDeclaration?.type === \"source-statement\") {\n\t\t// 内容来源声明\n\t\tif (params.selfDeclaration.childType === \"self-labeling\") {\n\t\t\t// 已自主标注\n\t\t\tuserDeclarationBind.origin = 3;\n\t\t} else if (params.selfDeclaration.childType === \"self-shooting\") {\n\t\t\t// 自主拍摄\n\t\t\tuserDeclarationBind.origin = 4;\n\t\t\tconst photoInfo: { photoPlace?: unknown; photoTime?: string } = {};\n\n\t\t\tif (params.selfDeclaration.shootingLocation) {\n\t\t\t\t// 拍摄地点\n\t\t\t\tphotoInfo.photoPlace = {\n\t\t\t\t\tname: params.selfDeclaration.shootingLocation.name,\n\t\t\t\t\tpoiId: params.selfDeclaration.shootingLocation.poi_id,\n\t\t\t\t\tpoiType: params.selfDeclaration.shootingLocation.poi_type,\n\t\t\t\t\tsubname: params.selfDeclaration.shootingLocation.full_address,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (params.selfDeclaration.shootingDate) {\n\t\t\t\t// 拍摄日期\n\t\t\t\tphotoInfo.photoTime = params.selfDeclaration.shootingDate;\n\t\t\t}\n\n\t\t\tuserDeclarationBind.photoInfo = photoInfo;\n\t\t} else if (params.selfDeclaration.childType === \"transshipment\") {\n\t\t\t// 来源转载\n\t\t\tuserDeclarationBind.origin = 5;\n\n\t\t\tif (params.selfDeclaration.sourceMedia) {\n\t\t\t\t// 来源媒体\n\t\t\t\tuserDeclarationBind.repostInfo = {\n\t\t\t\t\tsource: params.selfDeclaration.sourceMedia,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tconst business_binds = {\n\t\tversion: 1,\n\t\tbizType: \"\",\n\t\tnoteId: \"\",\n\t\tnoteOrderBind: {},\n\t\t// 发布时间 - 立即发布/定时发布\n\t\tnotePostTiming: params.isImmediatelyPublish ? {} : { postTime: params.scheduledPublish },\n\t\tnoteCollectionBind: { id: \"\" },\n\t\t...(params.selfDeclaration ? { userDeclarationBind } : {}),\n\t};\n\n\tpublishData.common.business_binds = JSON.stringify(business_binds);\n\n\tconst publishDataStr = xsEncrypt.dumps(publishData);\n\tconst publishXt = Date.now().toString();\n\tconst publishXs = await xsEncrypt.encryptXs(`/web_api/sns/v2/note${publishDataStr}`, a1Cookie, publishXt);\n\n\t// 发布\n\tconst publishResult = await http.api<CommonResponse<{ id: string }>>({\n\t\tmethod: \"post\",\n\t\turl: \"https://edith.xiaohongshu.com/web_api/sns/v2/note\",\n\t\tdata: publishData,\n\t\theaders: {\n\t\t\t\"x-s\": publishXs,\n\t\t\t\"x-t\": publishXt,\n\t\t},\n\t\tdefaultErrorMsg: \"文章发布异常,请稍后重试。\",\n\t});\n\n\treturn success(publishResult.data?.id);\n};\n","import path from \"node:path\";\nimport type { CookieMap, Locator, Response } from \"@iflyrpa/share\";\nimport { downloadImage, getFilenameFromUrl, success } from \"@iflyrpa/share\";\nimport { XsEncrypt } from \"../../utils/xhsXsEncrypt\";\nimport type { PublishAction } from \"./index\";\n\n// 小红书参数加密器\nconst xsEncrypt = new XsEncrypt();\n\nexport const rpaAction: PublishAction = async (task, params) => {\n\tconst commonCookies: CookieMap[number] = {\n\t\tpath: \"/\",\n\t\tsameSite: \"lax\",\n\t\tsecure: false,\n\t\tdomain: \"xiaohongshu.com\",\n\t\turl: \"https://creator.xiaohongshu.com\",\n\t\thttpOnly: true,\n\t};\n\n\tconst page = await task.createPage({\n\t\tshow: task.debug,\n\t\turl: params.url || \"https://creator.xiaohongshu.com/publish/publish\",\n\t\tcookies: params.cookies?.map((it) => ({ ...commonCookies, ...it })) || [],\n\t});\n\n\tconst tmpCachePath = task.getTmpPath();\n\n\tconst interceptUrls = [\n\t\t'/api/media/v1/upload/creator/permit',\n\t\t'/api/galaxy/v2/creator/activity_center/list',\n\t\t'/web_api/sns/v5/creator/topic/template/list',\n\t\t'/web_api/sns/v5/creator/file/encryption',\n\t\t'/web_api/sns/capa/postgw/topic/batch_customized',\n\t\t'/web_api/sns/v2/note'\n\t];\n\t \n\tawait page.route('**', async (route, request) => {\n\t\tconst url = request.url();\n\t\tif (interceptUrls.some(pattern => url.includes(pattern))) {\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst fetchCoverUrl = urlObj.pathname + urlObj.search;\n\t\t\tconst xt = Date.now().toString();\n\n\t\t\tconst a1Cookie = params.cookies.find((it) => it.name === \"a1\")?.value;\n\t\t\tif (!a1Cookie) {\n\t\t\t\tawait route.fulfill({\n\t\t\t\t\tstatus: 200,\n\t\t\t\t\tcontentType: 'application/json',\n\t\t\t\t\tbody: JSON.stringify({ code: 200, message: \"账号数据异常,请重新绑定账号后重试。\", data: \"\" })\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isNoteRequest = urlObj.pathname.includes(interceptUrls[5]);\n\n\t\t\tconst xs = await (isNoteRequest \n\t\t\t\t? (async () => {\n\t\t\t\t\tconst publishData = JSON.parse(request.postData() || \"\")\n\t\t\t\t\tconst publishDataStr = xsEncrypt.dumps(publishData);\n\t\t\t\t\t\n\t\t\t\t\treturn xsEncrypt.encryptXs(interceptUrls[5]+publishDataStr, a1Cookie, xt);\n\t\t\t\t })(): xsEncrypt.encryptXs(fetchCoverUrl, a1Cookie, xt))\n\n\t\t\n\t\t\tconst newHeaders = {\n\t\t\t\t...request.headers(),\n\t\t\t\t'x-s': xs\n\t\t\t};\n\t\t\n\t\t\tawait route.continue({ headers: newHeaders });\n\t\t}else {\n\t\t\tawait route.continue();\n\t\t}\n\t});\n\n\n\t// 通用的选择地点\n\tconst selectAddress = async (selector: Locator, address: string) => {\n\t\tconst instance = typeof selector === \"string\" ? page.locator(selector) : selector;\n\t\tawait instance.click();\n\t\tawait instance.locator(\"input\").fill(address);\n\t\tconst poperInstance = page.locator('.d-popover:not([style*=\"display: none\"]) .d-options .d-grid-item');\n\t\tawait poperInstance.first().waitFor();\n\t\tawait poperInstance.first().click();\n\t};\n\n\t// 通用的选择日期\n\tconst selectDate = async (selector: string | Locator, date: string) => {\n\t\tconst instance = typeof selector === \"string\" ? page.locator(selector) : selector;\n\t\tawait instance.click();\n\t\tawait instance.fill(date);\n\t\tawait instance.blur();\n\t};\n\n\t// 查找显示的 popover 弹窗\n\tconst getPoperInstance = async (): Promise<Locator> => {\n\t\tawait page.waitForTimeout(500);\n\t\tconst elements = page.locator(\".d-popover\");\n\t\tconst count = await elements.count();\n\t\tconst visibleElements: (typeof elements)[] = [];\n\n\t\tfor (let i = 0; i < count; i++) {\n\t\t\tconst element = elements.nth(i);\n\t\t\tconst style = await element.getAttribute(\"style\");\n\t\t\tif (style && !style.includes(\"display: none\")) {\n\t\t\t\tvisibleElements.push(element);\n\t\t\t}\n\t\t}\n\n\t\tif (visibleElements.length > 0) {\n\t\t\treturn visibleElements[visibleElements.length - 1];\n\t\t}\n\n\t\tthrow new Error(\"未找到 popover 弹窗\");\n\t};\n\n\t// 查找显示的 dialog 弹窗\n\tconst getDialogInstance = async (): Promise<Locator> => {\n\t\tawait page.waitForTimeout(1000);\n\t\tconst elements = page.locator(\".el-dialog\");\n\t\treturn elements.last();\n\t};\n\n\t// 自动化脚本\n\t// ----------------------------------------------------------------------------------\n\n\t// 等待登录成功\n\ttry {\n\t\tawait page.waitForSelector(\"#CreatorPlatform\", { state: \"visible\" });\n\t} catch (error) {\n\t\treturn { code: 400, message: \"登录失效\", data: page.url() };\n\t}\n\n\t// 跳转到发布页面\n\tawait page.locator(\"#content-area .menu-container .publish-video .btn\").click();\n\n\t// 点击上传图文\n\tawait page\n\t\t.locator('.creator-container .header .creator-tab:not([style*=\"-9999px\"]) .title')\n\t\t.filter({ hasText: /^上传图文$/ })\n\t\t.click();\n\n\t// 获取待上传图片的本地路径\n\tconst images = await Promise.all(\n\t\tparams.banners.map((url) => {\n\t\t\tconst fileName = getFilenameFromUrl(url);\n\t\t\treturn downloadImage(url, path.join(tmpCachePath, fileName));\n\t\t}),\n\t);\n\n\t// 选择文件\n\tconst fileChooserPromise = page.waitForEvent(\"filechooser\");\n\tawait page.getByRole(\"textbox\").click();\n\tconst fileChooser = await fileChooserPromise;\n\tawait fileChooser.setFiles(images);\n\n\t// 填写标题\n\tconst titleInstance = page.locator(\".input.titleInput input\");\n\tawait titleInstance.click();\n\tawait titleInstance.fill(params.title);\n\n\t// 填写正文\n\tconst descInstance = page.locator(\".editor-container #quillEditor .ql-editor\");\n\tawait descInstance.click();\n\tawait descInstance.pressSequentially(params.content.replace(/#.*?\\[.*?]\\#/g,\"\"));\n\n\t// 填写话题\n\tif(params.topic && params.topic.length > 0){\n\t\tfor (const it of params.topic) {\n\t\t\tawait descInstance.pressSequentially(`#${it[\"name\"]}`);\n\t\t\tawait page.locator('.ql-mention-loading').waitFor({ state: 'detached' });\n\t\t\tawait page.waitForTimeout(1000);\n\t\t\tawait page.locator('#quill-mention-item-0 .item-view-num').click();\n\t\t};\n\t}\n\n\t// 滚动到底部\n\tconst container = page.locator(\".creator-container .content .scroll-content\");\n\tawait container.focus();\n\tawait page.mouse.wheel(0, 500); // 向下滚动 500 像素\n\n\tif (params.address) {\n\t\t// 填写地点\n\t\tawait selectAddress(\n\t\t\tpage.locator(\".media-extension .address-input\").filter({ hasText: \"添加地点\" }),\n\t\t\tparams.address.name,\n\t\t);\n\t}\n\n\tif (params.selfDeclaration) {\n\t\t// 自主声明\n\t\tawait page.locator(\".media-settings .flexbox\").filter({ hasText: \"内容类型声明\" }).locator(\".d-select-placeholder\").click();\n\t\tconst poperInstance = await getPoperInstance();\n\t\tconst selfDeclarationInstance = poperInstance.locator(\".d-options .d-option\");\n\t\tif (params.selfDeclaration.type === \"fictional-rendition\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: \"虚构演绎,仅供娱乐\" }).click();\n\t\t} else if (params.selfDeclaration.type === \"ai-generated\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: \"笔记含AI合成内容\" }).click();\n\t\t} else if (params.selfDeclaration.type === \"source-statement\") {\n\t\t\tawait selfDeclarationInstance.filter({ hasText: /内容来源声明/ }).click();\n\t\t\t// 内容来源声明二级菜单\n\t\t\tconst selfDeclarationSecondaryMenuInstance = (await getPoperInstance()).locator(\".d-options .d-option\");\n\t\t\t// 等待元素出现\n\t\t\tawait selfDeclarationSecondaryMenuInstance.first().waitFor();\n\t\t\tif (params.selfDeclaration.childType === \"self-labeling\") {\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"已在正文中自主标注\" }).click();\n\t\t\t} else if (params.selfDeclaration.childType === \"self-shooting\") {\n\t\t\t\tconst { shootingDate, shootingLocation } = params.selfDeclaration;\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"自主拍摄\" }).click();\n\t\t\t\t// 自主拍摄弹窗\n\t\t\t\tconst selfShootingPopup = await getDialogInstance();\n\t\t\t\tconst hasCustomContent = shootingDate || shootingLocation;\n\n\t\t\t\t// 选择拍摄地点\n\t\t\t\tif (shootingLocation) {\n\t\t\t\t\tawait selectAddress(selfShootingPopup.locator(\".address-input\"), shootingLocation.name);\n\t\t\t\t}\n\t\t\t\t// 选择拍摄日期\n\t\t\t\tif (shootingDate) {\n\t\t\t\t\tawait selectDate(selfShootingPopup.locator(\".date-picker input\"), shootingDate);\n\t\t\t\t}\n\n\t\t\t\tawait selfShootingPopup\n\t\t\t\t\t.locator(\"footer button\")\n\t\t\t\t\t.filter({ hasText: hasCustomContent ? \"确认\" : \"取消\" })\n\t\t\t\t\t.click();\n\t\t\t} else if (params.selfDeclaration.childType === \"transshipment\") {\n\t\t\t\tawait selfDeclarationSecondaryMenuInstance.filter({ hasText: \"来源转载\" }).click();\n\t\t\t\t// 来源媒体弹窗\n\t\t\t\tconst selfShootingPopup = await getDialogInstance();\n\n\t\t\t\tconst sourceMedia = params.selfDeclaration.sourceMedia;\n\t\t\t\tif (sourceMedia) {\n\t\t\t\t\tawait selfShootingPopup.locator(\".el-input input\").fill(sourceMedia);\n\t\t\t\t}\n\n\t\t\t\tawait selfShootingPopup\n\t\t\t\t\t.locator(\"footer button\")\n\t\t\t\t\t.filter({ hasText: sourceMedia ? \"确认\" : \"取消\" })\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t}\n\n\t// 可见范围 - 仅自己可见\n\tif (params.visibleRange === \"private\") {\n\t\tawait page.locator(\".media-settings .flexbox\").filter({ hasText: \"可见范围\" }).locator(\".d-select-wrapper\").click();\n\t\tconst poperInstance = await getPoperInstance();\n\t\tawait poperInstance.locator(\".d-options .custom-option\").filter({ hasText: \"仅自己可见\" }).click();\n\t}\n\n\tconst releaseTimeInstance = page\n\t\t.locator(\"label\")\n\t\t.filter({ hasText: params.isImmediatelyPublish ? \"立即发布\" : \"定时发布\" });\n\tawait releaseTimeInstance.click();\n\n\tif (params.scheduledPublish) {\n\t\t// 自定义发布时间\n\t\tawait selectDate(\".date-picker input\", params.scheduledPublish);\n\t}\n\n\tconst response = await new Promise<string>((resolve) => {\n\t\t// 定义响应处理函数\n\t\tconst handleResponse = async (response: Response) => {\n\t\t\tif (response.url().includes(\"/web_api/sns/v2/note\")) {\n\t\t\t\tconst jsonResponse = await response.json();\n\t\t\t\tpage.off(\"response\", handleResponse);\n\t\t\t\tresolve(jsonResponse?.data?.id);\n\t\t\t}\n\t\t};\n\n\t\t// 开始监听响应事件\n\t\tpage.on(\"response\", handleResponse);\n\n\t\tpage.locator(\".submit .publishBtn\").click();\n\t});\n\n\t// 关闭页面\n\tawait page.close();\n\n\treturn success(response);\n};\n","import type { CommonAction } from \"@iflyrpa/share\";\n\nimport type { ActiomCommonParams, Xiaohongshu } from \"../../types\";\nimport { executeAction } from \"../../utils\";\nimport { mockAction } from \"./mock\";\nimport { rpaAction } from \"./rpa\";\n\ninterface FictionalRendition {\n\ttype: \"fictional-rendition\"; // 虚拟演绎,仅供娱乐\n}\n\ninterface AIGenerated {\n\ttype: \"ai-generated\"; // 笔记含AI合成内容\n}\n\ninterface SourceStatement {\n\ttype: \"source-statement\"; // 内容来源声明\n\tchildType: \"self-labeling\" | \"self-shooting\" | \"transshipment\"; // 已自主标注 / 自助拍摄 / 转载\n\tshootingLocation?: Xiaohongshu.Location; // 拍摄地点\n\tshootingDate?: string; // 拍摄日期\n\tsourceMedia?: string; // 来源媒体\n}\n\ntype SelfDeclaration = FictionalRendition | AIGenerated | SourceStatement;\n\nexport interface XiaohongshuPublishParams extends ActiomCommonParams {\n\tbanners: string[]; // 图片\n\ttitle: string; // 标题\n\tcontent: string; // 正文\n\taddress?: Xiaohongshu.Location; // 地点\n\tselfDeclaration?: SelfDeclaration; // 自主声明\n\ttopic?: Xiaohongshu.Topic[]; //话题\n\tvisibleRange: \"public\" | \"private\"; // 可见范围\n\tisImmediatelyPublish?: boolean; // 是否立即发布\n\tscheduledPublish?: string; // 定时发布时间\n}\n\nexport type PublishAction = CommonAction<XiaohongshuPublishParams, string>;\n\nexport const xiaohongshuPublish: PublishAction = async (task, params) => {\n\tif (params.actionType === \"rpa\") {\n\t\treturn rpaAction(task, params);\n\t}\n\n\tif (params.actionType === \"mockApi\") {\n\t\treturn mockAction(task, params);\n\t}\n\n\treturn executeAction(mockAction, rpaAction)(task, params);\n};\n","import type { AutomateTask, CommonAction, ResponseData } from \"@iflyrpa/share\";\nimport { type BaijiahaoPublishParams, baijiahaoPublish } from \"./actions/baijiahaoPublish\";\nimport { type GetBaijiahaoActivityParams, getBaijiahaoActivity } from \"./actions/getBaijiahaoActivity\";\nimport { type GetToutiaoConfigParams, getToutiaoConfig } from \"./actions/getToutiaoConfig\";\nimport { type GetBaijiahaoConfigParams, getBaijiahaoConfig } from \"./actions/getBaijiaohaoConfig\";\nimport { type SearchToutiaoTopicListParams, searchToutiaoTopicList } from \"./actions/searchToutiaoTopicList\";\nimport { type SearchToutiaoLocationParams, searchToutiaoLocation } from \"./actions/searchToutiaoLocation\";\nimport { type SearchToutiaoUserIDParams, searchToutiaoUserInfo } from \"./actions/searchToutiaoUserID\";\nimport { searchXiaohongshuLocation, type searchXiaohongshuLocationParams } from \"./actions/searchXiaohongshuLocation\";\nimport { searchXiaohongshuTopicList, type SearchXiaohongshuTopicListParams } from \"./actions/searchXiaohongshuTopicList\";\nimport { type ToutiaoPublishParams, toutiaoPublish } from \"./actions/toutiaoPublish\";\nimport { type GetTTFansSearchParams,TTFansExport } from \"./actions/common/FansTool\";\nimport { type GetBjhFansSearchParams, BjhFansExport } from \"./actions/common/FansTool\";\nimport { type GetWxFansSearchParams, WxFansExport } from \"./actions/common/FansTool\";\nimport { type GetXhsFansSearchParams, XhsFansExport } from \"./actions/common/FansTool\";\nimport { type WeitoutiaoPublishParams, weitoutiaoPublish } from \"./actions/weitoutiaoPublish\";\nimport { type WeixinPublishParams, weixinPublish } from \"./actions/weixinPublish\";\nimport { type WeixinmpPublishParams, weixinmpPublish } from \"./actions/weixinmpPublish\";\nimport { type XiaohongshuPublishParams, xiaohongshuPublish } from \"./actions/xiaohongshuPublish\";\n\nimport type { ActiomCommonParams } from \"./types\";\nimport { stringifyError } from \"./utils\";\nimport { Http } from \"./utils/http\";\n\nexport class Action {\n\tconstructor(private task: AutomateTask) {}\n\n\t// 绑定 task, 并处理异常\n\tprivate async bindTask<T extends ActiomCommonParams, R>(func: CommonAction<T, R>, params: T) {\n\t\tlet responseData: ResponseData<R>;\n\n\t\tif (this.task.setArticleId) {\n\t\t\t// 给所有的日志添加 articleId 标签\n\t\t\tthis.task.setArticleId(params.articleId ?? \"\");\n\t\t}\n\n\t\tif (typeof params === \"object\" && params !== null) {\n\t\t\t// 默认设置 cookies\n\t\t\tparams.cookies = params?.cookies ?? [];\n\t\t}\n\n\t\ttry {\n\t\t\tresponseData = await func(this.task, params);\n\t\t} catch (error) {\n\t\t\tresponseData = Http.handleApiError(error);\n\t\t}\n\n\t\tif (responseData.code === 200) {\n\t\t\t// 表示是由于脚本输入信息错误导致的失败,不是脚本问题\n\t\t\tthis.task.logger.info(`${func.name} action params error`, responseData);\n\t\t} else if (responseData.code !== 0) {\n\t\t\tthis.task.logger.error(\n\t\t\t\tresponseData.message || `${func.name} 执行失败`,\n\t\t\t\tstringifyError(responseData.data),\n\t\t\t\tresponseData.extra,\n\t\t\t);\n\t\t\tthis.task.logger.info(`${func.name} action failed`);\n\t\t} else {\n\t\t\tthis.task.logger.info(`${func.name} action success`);\n\t\t}\n\n\t\treturn responseData;\n\t}\n\n\t// 搜索头条话题列表\n\tsearchToutiaoTopicList(params: SearchToutiaoTopicListParams) {\n\t\treturn this.bindTask(searchToutiaoTopicList, params);\n\t}\n\n\t// 搜索头条粉丝\n\tTTFansExport(params: GetTTFansSearchParams) {\n\t\treturn this.bindTask(TTFansExport, params);\n\t}\n\n\t// 搜索小红书粉丝\n\tXhsFansExport(params: GetXhsFansSearchParams) {\n\t\treturn this.bindTask(XhsFansExport, params);\n\t}\n\n\t// 搜索微信粉丝\n\tWxFansExport(params: GetWxFansSearchParams) {\n\t\treturn this.bindTask(WxFansExport, params);\n\t}\n\t\n\t// 搜索百家号粉丝\n\tBjhFansExport(params: GetBjhFansSearchParams) {\n\t\treturn this.bindTask(BjhFansExport, params);\n\t}\n\n\t// 搜索头条用户ID\n\tsearchToutiaoUserID(params: SearchToutiaoUserIDParams) {\n\t\treturn this.bindTask(searchToutiaoUserInfo, params);\n\t}\n\n\t// 搜索头条Location\n\tsearchToutiaoLocation(params: SearchToutiaoLocationParams) {\n\t\treturn this.bindTask(searchToutiaoLocation, params);\n\t}\n\n\t// 获取头条配置\n\tgetToutiaoConfig(params: GetToutiaoConfigParams) {\n\t\treturn this.bindTask(getToutiaoConfig, params);\n\t}\n\n\n\t// 获取百家号配置\n\tgetBaijiahaoConfig(params: GetBaijiahaoConfigParams) {\n\t\treturn this.bindTask(getBaijiahaoConfig, params);\n\t}\n\t// 百家号发布\n\tbaijiahaoPublish(params: BaijiahaoPublishParams) {\n\t\treturn this.bindTask(baijiahaoPublish, params);\n\t}\n\n\t// 查询百家号活动投稿\n\tgetBaijiahaoActivity(params: GetBaijiahaoActivityParams) {\n\t\treturn this.bindTask(getBaijiahaoActivity, params);\n\t}\n\n\t// 小红书发布\n\txiaohongshuPublish(params: XiaohongshuPublishParams) {\n\t\treturn this.bindTask(xiaohongshuPublish, params);\n\t}\n\n\t// 搜索小红书话题\n\tsearchXiaohongshuTopicList(params: SearchXiaohongshuTopicListParams) {\n\t\treturn this.bindTask(searchXiaohongshuTopicList, params);\n\t}\n\t// 搜索小红书地址\n\tsearchXiaohongshuLocation(params: searchXiaohongshuLocationParams) {\n\t\treturn this.bindTask(searchXiaohongshuLocation, params);\n\t}\n\n\t// 小绿书发布\n\tweixinmpPublish(params: WeixinmpPublishParams) {\n\t\treturn this.bindTask(weixinmpPublish, params);\n\t}\n\n\t// 微头条发布\n\tweitoutiaoPublish(params: WeitoutiaoPublishParams) {\n\t\treturn this.bindTask(weitoutiaoPublish, params);\n\t}\n\n\t// 头条发布\n\ttoutiaoPublish(params: ToutiaoPublishParams) {\n\t\treturn this.bindTask(toutiaoPublish, params);\n\t}\n\n\t// 微信发布\n\tweixinPublish(params: WeixinPublishParams) {\n\t\treturn this.bindTask(weixinPublish, params);\n\t}\n}\n\ntype ActionInstance = InstanceType<typeof Action>;\n\n// 提取方法的参数类型\ntype MethodParams<T> = {\n\t// biome-ignore lint/suspicious/noExplicitAny: 有使用 any\n\t[K in keyof T]: T[K] extends (...args: any[]) => unknown ? Parameters<T[K]>[0] : never;\n};\n\n// 应用于 Action 类的实例\nexport type ActionMethodParams = MethodParams<ActionInstance>;\n\nexport { version } from \"../package.json\";\n"],"names":["module","abort","state","Object","clean","key","defer","async","callback","isAsync","err","result","fn","nextTick","setImmediate","process","setTimeout","iterate","list","iterator","runJob","error","output","item","aborter","sortMethod","isNamedList","Array","initState","a","b","terminator","parallel","serialOrdered","serial","ascending","descending","iteratorHandler","util","Stream","DelayedStream","CombinedStream","options","combinedStream","option","stream","Buffer","isStreamLike","newStream","Infinity","dest","getStream","value","self","data","message","Error","exports","formatArgs","save","load","useColors","localstorage","warned","console","window","navigator","m","document","parseInt","args","c","index","lastC","match","namespaces","r","localStorage","formatters","v","JSON","setup","env","createDebug","coerce","disable","enable","enabled","destroy","selectColor","namespace","hash","i","Math","prevTime","enableOverride","namespacesCache","enabledCache","debug","curr","Number","Date","ms","format","formatter","val","logFn","extend","delimiter","newDebug","split","len","RegExp","toNamespace","name","regexp","tty","init","log","supportsColor","obj","prop","_","k","Boolean","colorCode","prefix","getDate","keys","str","source","delayedStream","realEmit","arguments","url","URL","http","https","Writable","assert","looksLikeNode","looksLikeBrowser","looksLikeV8","isFunction","useNativeURL","preservedUrlFields","events","eventHandlers","event","arg1","arg2","arg3","InvalidUrlError","createErrorType","TypeError","RedirectionError","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","noop","RedirectableRequest","responseCallback","response","cause","destroyRequest","encoding","isString","isBuffer","currentRequest","msecs","destroyOnTimeout","socket","startTimer","clearTimeout","clearTimer","method","property","searchPos","protocol","nativeProtocol","scheme","request","buffers","writeNext","buffer","statusCode","location","requestHeaders","beforeRedirect","removeMatchingHeaders","currentHostHeader","currentUrlParts","parseUrl","currentHost","currentUrl","redirectUrl","resolveUrl","spreadUrlObject","isSubdomain","responseDetails","requestDetails","wrap","protocols","nativeProtocols","wrappedProtocol","input","isURL","validateUrl","get","wrappedRequest","parsed","relative","base","urlObject","target","spread","regex","headers","lastValue","header","undefined","String","code","baseClass","CustomError","properties","subdomain","domain","dot","path","fs","mime","asynckit","populate","FormData","field","append","footer","valueLength","stat","fileSize","contentDisposition","contentType","contents","filename","next","lastPart","userHeaders","formHeaders","boundary","dataBuffer","knownLength","hasKnownLength","cb","values","length","params","defaults","onResponse","responce","dst","src","flag","argv","position","terminatorPosition","db","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","extension","lookup","populateMaps","type","exts","extensions","types","preference","from","to","s","h","d","w","y","parse","isFinite","fmtLong","fmtShort","n","parseFloat","msAbs","plural","isPlural","DEFAULT_PORTS","stringEndsWith","getProxyForUrl","parsedUrl","proto","hostname","port","shouldProxy","proxy","getEnv","NO_PROXY","parsedProxy","parsedProxyHostname","parsedProxyPort","os","hasFlag","flagForceColor","envForceColor","translateLevel","level","haveStream","streamIsTTY","sniffFlags","noFlagForceColor","forceColor","min","osRelease","sign","version","getSupportLevel","a0_0x45db08","a0_0x4b0d","_0x2bd218","_0x316d6","_0x165410","a0_0x1654","_0x4b0d73","_0x5794db","_0x1859e3","_0x1b2596","_0x16c0e0","_0x1227f1","_0x46fb59","_0x383dd4","_0x4fc071","Random","Ts","Sm3DoneTs","xhrParaDoneTs","xhrReqDoneTs","_0x46e031","SM3Hasher","_0x468533","_0x11e792","_0x22d1ef","_0x182388","_0x2ded18","_0x5e491d","_0x12d911","_0x5795ab","encodeURIComponent","_0x22d98b","_0x5659da","_0x357908","_0x5c0d1c","_0x2e8583","_0x28f42f","_0x4b2a85","_0xffe4ea","_0x34ff8d","_0xecf9f6","_0x3ddb20","_0x28ac8a","_0x117621","_0x335539","_0x450e58","_0x5b1ad8","_0x46ad66","_0xa844a0","_0x15bc36","_0x4a32f3","_0x36cc0b","_0xd7dcfe","_0x1e530c","_0x3c50af","_0x3da582","_0x14b06e","_0x4ec82e","_0x489962","_0x5dd43e","_0x744660","_0x197f71","_0x5e22dd","_0xfc800b","_0x1300f1","_0xed8891","_0x3414cb","_0x2f42fb","_0x326645","_0x2c63af","_0x558c0d","_0x4a902b","_0x493bba","_0x23a9bd","_0x7114f5","_0x49cf1f","_0x698c70","_0xe5328","_0x2b58f2","_0x17c086","_0x3621a2","_0x5959b9","_0x3b42ff","_0x50d411","_0x910e21","_0x459622","EnvData2CharCode","_0x58cd97","_0x23e1e0","_0x3ca6b2","_0x56cb93","_0x2d49d4","_0x3f2013","_0x4b8ded","_0x5bb315","_0x42b4c4","_0x1cdc95","_0x58aa5d","_0x26ee7a","_0xe2d586","_0x571095","_0x4dabdb","_0x4139e6","_0x339170","_0x56e1cd","_0x24b6d5","_0x196cf7","_0x2eb1f3","_0x2171ba","_0x925e58","_0x540dbd","_0x2fbb10","_0x41ebdd","_0x42a240","_0x49ec53","_0x3d9ba0","_0xeaa831","_0x477e24","_0x3bd924","_0xa7bf19","_0x23c273","_0x4d13ab","Base2Data","_0x348aa6","_0x2bc7c7","_0x874207","_0x224d00","_0x31697c","_0x235e4f","_0x29dde1","_0x4a74f1","_0xef36c2","_0x4120e4","_0x39cb62","_0x5cbaf6","_0x29a672","_0x96c5ae","_0x46c34b","_0x5d4cb4","_0x506f4f","Data2A_B","_0x19ca6d","_0x5d8d72","_0x225e7d","_0x4f0a28","_0x251d62","_0x2b8eea","_0x3fca04","_0xb85a46","_0x4e702d","_0x4382e1","_0x225aa0","_0x5607b9","_0x3fb7b7","_0x425784","GenAB","_0x315138","_0x1c32b3","_0x206982","_0x56536b","ElementType","isTag","elem","Root","Text","Directive","Comment","Script","Style","Tag","CDATA","Doctype","Uint16Array","decodeMap","Map","fromCodePoint","codePoint","replaceCodePoint","_a","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","offset","start","end","digitCount","startIdx","char","lastCp","expectedLength","current","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","restoreDiff","arr","xmlCodeMap","lastIdx","getEscaper","map","EntityLevel","EncodingMode","elementNames","attributeNames","unencodedElements","Set","replaceQuotes","formatAttributes","attributes","opts","encode","_b","singleTag","render","node","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","attribs","Node","parent","prev","recursive","cloneNode","DataNode","ProcessingInstruction","NodeWithChildren","children","Document","Element","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone","child","instruction","childs","defaultOpts","elementCB","parser","element","lastNode","text","previousSibling","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","QuoteType","Sequences","Uint8Array","Tokenizer","xmlMode","decodeEntities","cbs","cp","chunk","isEnd","isMatch","endOfText","actualIndex","sequence","lower","quote","endIndex","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","_c","_d","_e","_f","impliesClose","isImplied","_g","_h","pos","isOpenImplied","_j","_k","slice","DocumentPosition","bind","thisArg","getPrototypeOf","kindOf","cache","thing","kindOfTest","typeOfTest","isArray","isUndefined","isArrayBuffer","isArrayBufferView","ArrayBuffer","isObject","isBoolean","isPlainObject","prototype","Symbol","isDate","isFile","isBlob","isStream","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","l","findKey","_key","_global","globalThis","global","isContextDefined","context","caseless","assignValue","targetKey","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","toArray","isTypedArray","TypedArray","forEachEntry","generator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","asap","queueMicrotask","config","utils","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","_Blob","Blob","useBlob","convertValue","AxiosError","el","exposedHelpers","build","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","e","hasJSONContentType","isObjectPayload","isFormData","isFileList","_FormData","transitional","forcedJSONParsing","JSONRequested","silentJSONParsing","strictJSONParsing","status","ignoreDuplicateOf","rawHeaders","line","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","methodName","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","matcher","deleted","deleteHeader","normalized","targets","asStrings","first","computed","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","AxiosHeaders","isCancel","CanceledError","settle","resolve","reject","validateStatus","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","VERSION","parseProtocol","DATA_URL_PATTERN","fromDataURI","uri","asBlob","isBase64","body","decodeURIComponent","kInternals","AxiosTransformStream","maxRate","readableHighWaterMark","timeWindow","divider","bytesThreshold","minChunkSize","pushChunk","_chunk","_callback","bytes","transformChunk","chunkSize","chunkRemainder","maxChunkSize","bytesLeft","passed","now","transformNextChunk","asyncIterator","blob","BOUNDARY_ALPHABET","textEncoder","TextEncoder","CRLF","CRLF_BYTES","CRLF_BYTES_COUNT","FormDataPart","escapeName","isStringValue","readBlob","formDataToStream","form","headersHandler","boundaryBytes","footerBytes","contentLength","parts","part","computedHeaders","ZlibHeaderTransformStream","callbackify","samplesCount","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","lengthComputable","asyncDecorator","zlibOptions","brotliOptions","isBrotliSupported","httpFollow","httpsFollow","isHttps","supportedProtocols","flushOnFinish","dispatchBeforeRedirect","setProxy","configProxy","proxyUrl","base64","proxyHost","redirectOptions","isHttpAdapterSupported","wrapAsync","asyncExecutor","Promise","onDone","isDone","done","isRejected","_resolve","_reject","reason","onDoneHandler","resolveFamily","address","family","buildAddressEntry","responseType","responseEncoding","req","_lookup","opt","arg0","addresses","addr","emitter","onFinished","fullPath","convertedData","onUploadProgress","onDownloadProgress","maxUploadRate","maxDownloadRate","userBoundary","auth","username","password","urlUsername","urlPassword","customErr","transport","isHttpsRequest","res","streams","responseLength","transformStream","responseStream","lastRequest","offListeners","responseBuffer","totalResponseBytes","responseData","timeout","timeoutErrorMessage","ended","errored","origin","isMSIE","expires","secure","cookie","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","merge","configValue","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","btoa","unescape","isURLSameOrigin","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","_config","resolveConfig","requestData","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","cancel","composeSignals","signals","controller","AbortController","aborted","onabort","unsubscribe","signal","streamChunk","readBytes","iterable","readStream","reader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","loadedBytes","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","_request","resolveBodyLength","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","knownAdapters","xhr","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","desc","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","Http","findError","errorResponse","serverError","getRandomInRange","max","getFileState","filePath","fileType","stats","lastModifiedDate","calculateCropCoordinates","width","height","aspectRatio","targetRatio","cropWidth","cropHeight","x1","y1","x2","y2","extractImgTag","html","srcList","Parser","TimeFormatter","formatStr","date","replaceImgSrc","lastedHtml","isImageTag","traverseDom","DomUtils","handler","DomHandler","dom","domSerializer","stringifyError","executeAction","actions","task","action","copyHtmlToClipboard","page","htmlContent","ClipboardItem","div","range","selection","PopupListener","popupSelector","popKey","buttonSelector","checkInterval","stopAfterClick","popup","button","intervalId","setInterval","clearInterval","parseUrlQueryString","queryStringObject","queryString","queryWithoutHash","queryStringArray","equalIndex","defaultParams","ensureFile","dirPath","createFile","checkFile","downloadImage","savePath","fileStream","getFilenameFromUrl","imageUrl","sleep","success","randomString","T","H","de","errnoMap","mockAction","baijiahaoSingleCover","baijiahaoMultCover","baijiahaoCoverType","tmpCachePath","it","msgType","errmsg","appIdInfo","appId","uploadImages","_images","images","fileName","image","originContentImages","targetContentImages","idx","horizontalCoverUrl","horizontalCoverRes","cover_images","_cover_images_map","isAi","activityList","cover_layout","activity_list","publishData","isDraft","saveUrl","rpaAction","commonCookies","titleInstance","coverFormItem","isSingleCover","coverSelector","coverCount","fileChooserPromise","fileChooser","abstractFormItem","settingFormItem","_settingFormItem","enent2NewsBtn","activity","activityFormItem","findActivity","articleId","handleResponse","jsonResponse","operatorContainer","scrollHourInfo","hourInner","hourElementHeight","hourMapsElem","hourMap","fistHourElem","fistHourElemH","lastHourElem","lastHourElemH","targetTimeH","scrollMinuteInfo","fistMinuteElem","fistMinuteElemH","lastMinuteElem","lastMinuteElemH","targetTimeM","baijiahaoPublish","getBaijiahaoActivity","_task","cookies","getToutiaoConfig","getSuggestWords","getCityDistrict","getUserRights","suggestWords","cityDistrict","userRights","getBaijiahaoConfig","_item","searchToutiaoTopicList","searchToutiaoLocation","searchToutiaoUserInfo","searchXiaohongshuLocation","searchXiaohongshuTopicList","require","generatorFormData","encodedKey","encodedValue","get3101DetailError","errorList","saveType","toutiaoSingleCover","toutiaoMultCover","toutiaoCoverType","toutiaoOriginal","toutiaoExclusive","toutiaoClaim","coverUrl","coverRes","topics","topicContent","topic","sourceData","extraData","COVER_TYPE","getAddTypeValue","msToken","publishOption","postHeaders","postData","a_bogus","publishResult","interceptUrls","route","pattern","coverTypeValue","coverContainer","coverUrls","coverUploadEle","coverUploadCount","ele","drawerContainer","confirmBtn","locationContainer","poperInstance","adContainer","isAdOptionVisible","exclusiveContainer","claim","toutiaoAd","toutiaoPublish","TTFansExport","XhsFansExport","WxFansExport","htmlStr","BjhFansExport","userInfoRes","imageList","extra","syncData","descInstance","addressFormItem","declarationFormItem","weitoutiaoPublish","scanRetryMaxCount","QuotaType","GET_QRCODE_DEFAULT_ERROR","ignoreErrno","userTypeMap","URLSearchParams","checkCopyrightStat","resData","fingerprint","client_time_diff","cloudImages","localImages","fileState","oriWhitelist","_oriWhitelist","white_list","white_list_user","_user","userInfo_res","userInfo_resJson","writerid","reply_id","getWriterList","getRewardText","_type","rewardbind","rewardBuffer","rewardFilePath","task_id","checkScanResult","_writer","_writer_item","rewardList","matchdID","reward","_reply_item","wxInteractionInfo","_wxInteraction","_opt","commentType","replyType","draftData","appMsgId","masssendpage","massSendRes","operation_seq","quota_detail_list","quotaDetail","copyrightStatData","lastData","checkCopyrightStatRes","getTicketResult","getUuidResult","uuid","qrcodeResult","qrcodeBuffer","qrcodeFilePath","waitQrcodeResultMaxTime","urlParams","urlRewardParams","wxRewardPage","reward_page","isAddRewarder","qrcodeSrc","errorMessage","isAddWord","cover","dialog","pic_msg","ori_dialog","ori_dialog_bd","ori_dialog_ft","_target","search_res","search_res_name","whrite_list","white_td_isadd","btn_isChecked","checkbox","reward_setting","reward_setting_bd","reward_setting_ft","userName","reward_setting_replay","switchAuto","maxAttempts","delayMs","nowCheckTime","attempt","isDisabled","isOneReplay","isCurrentReplay","wxInteraction_setting","wxInteraction_bd","wxInteraction_ft","comment_area","reply_area","commont_rply_opt","poperInput","query","dateD","nowD","dropMenu","timeDropMenu","times","originalCheckDialog","popMassend","startTime","imgUrl","weixinPublish","_params","saveDraft","shareImageInfos","cropResult","colorResponseData","themeColor","cropFormData","cropRatios","cropCoordinates","cropCoordinate","cropResponse","sourceText","container","weixinmpPublish","XsEncrypt","crypto","textEncoded","cipher","ciphertext","encodedData","decodedData","platform","hexPayload","jsonString","a1","ts","rest","replacer","space","word","xsEncrypt","a1Cookie","fetchCoverUrl","xt","xs","coverIdInfo","coverIds","ossToken","uploadFile","localUrl","ossFileId","fileBuffer","coverInfos","topicData","topicDataStr","publishXt","publishXs","createTopic","userDeclarationBind","photoInfo","business_binds","publishDataStr","urlObj","isNoteRequest","newHeaders","selectAddress","selector","selectDate","getPoperInstance","elements","count","visibleElements","style","getDialogInstance","selfDeclarationInstance","selfDeclarationSecondaryMenuInstance","shootingDate","shootingLocation","selfShootingPopup","hasCustomContent","sourceMedia","releaseTimeInstance","xiaohongshuPublish","Action","func"],"mappings":"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;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;gBAAI;aAAI;YAAC,MAAMC,YAAU,GAAG,CAACL,UAAU,MAAM,CAAC;YAAK,IAAIM,YAAU;YAAI,IAAI,IAAIC,YAAU,KAAIA,YAAUH,SAAS,CAACJ,UAAU,MAAM,EAACO,YAAY;gBAAC,IAAIC,YAAUJ,SAAS,CAACG,UAAU;gBAACD,YAAWA,AAAAA,CAAAA,YAAUE,YAAUF,YAAUD,SAAQ,IAAG,OAAM,CAACD,SAAS,CAACG,UAAU,EAACH,SAAS,CAACE,UAAU,CAAC,GAAC;oBAACF,SAAS,CAACE,UAAU;oBAACF,SAAS,CAACG,UAAU;iBAAC;YAAC;YAAC,IAAIE,YAAU,KAAIC,YAAU;YAAG,IAAI,IAAIC,YAAU,KAAIA,YAAUZ,SAAS,CAACC,UAAU,MAAM,EAACW,YAAY;gBAAC,IAAIC,YAAUb,SAAS,CAACC,UAAU,MAAM,CAACW,YAAWE,YAAUF,YAAU,KAAIG,YAAUV,SAAS,CAACS,UAAU;gBAAC,CAACT,SAAS,CAACS,UAAU,EAACT,SAAS,CAAEK,AAAAA,CAAAA,YAAUK,SAAQ,IAAG,MAAM,CAAC,GAAC;oBAACV,SAAS,CAAEK,AAAAA,CAAAA,YAAUK,SAAQ,IAAG,MAAM;oBAACV,SAAS,CAACS,UAAU;iBAAC;gBAAC,IAAIE,YAAUX,SAAS,CAAEA,AAAAA,CAAAA,SAAS,CAACS,UAAU,GAACC,SAAQ,IAAG,MAAM;gBAACL,YAAWA,AAAAA,CAAAA,YAAUK,SAAQ,IAAG,OAAMJ,aAAW9O,MAAM,CAAC,eAAe,CAACgP,YAAUG;YAAW;YAAC,OAAOd,YAAUS;QAAU;QAAC,SAASM,SAASC,SAAS;YAAE,MAAMC,YAAU9I;YAAY,IAAI+I,YAAUD,UAAU,OAAME,YAAU,IAAGC,YAAU;gBAAC;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAK;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAS;gBAAK;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAQ;gBAAK;gBAAK;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAM;gBAAK;gBAAK;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAI;gBAAK;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;gBAAI;gBAAK;gBAAK;gBAAK;gBAAM;gBAAK;gBAAI;gBAAI;gBAAI;gBAAK;gBAAK;gBAAI;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AW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SA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;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAU;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAW;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAQ;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG;SAAS;QAAE;YAAC;YAAG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BAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAI;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAQ;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;wBAAG;qBAAS;oBAAE;wBAAC;w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CA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH,CAAC,GAAG,CAAC,CAAC1Y,MAAQ;YAACA,IAAI,WAAW;YAAIA;SAAI;IAChC,MAAM4b,iBAAiB,IAAIlD,IAAI;QAClC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH,CAAC,GAAG,CAAC,CAAC1Y,MAAQ;YAACA,IAAI,WAAW;YAAIA;SAAI;ICvFvC,MAAM6b,oBAAoB,IAAIC,IAAI;QAC9B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACH;IACD,SAASC,cAAcpf,KAAK;QACxB,OAAOA,MAAM,OAAO,CAAC,MAAM;IAC/B;IAIA,SAASqf,iBAAiBC,UAAU,EAAEC,IAAI;QACtC,IAAIpD;QACJ,IAAI,CAACmD,YACD;QACJ,MAAME,SAAS,AAAC,CAA+B,SAA9BrD,CAAAA,KAAKoD,KAAK,cAAc,AAAD,KAAepD,AAAO,KAAK,MAAZA,KAAgBA,KAAKoD,KAAK,cAAc,AAAD,MAAO,QAC/FH,gBACAG,KAAK,OAAO,IAAIA,AAAwB,WAAxBA,KAAK,cAAc,GAC/B,mBACA;QACV,OAAOxiB,OAAO,IAAI,CAACuiB,YACd,GAAG,CAAC,CAACriB;YACN,IAAIkf,IAAIsD;YACR,MAAMzf,QAAQ,AAA2B,SAA1Bmc,CAAAA,KAAKmD,UAAU,CAACriB,IAAI,AAAD,KAAekf,AAAO,KAAK,MAAZA,KAAgBA,KAAK;YACtE,IAAIoD,AAAiB,cA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"}
|