@appium/images-plugin 1.3.6 → 1.3.7
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/build/lib/compare.js +3 -3
- package/build/lib/compare.js.map +1 -0
- package/build/lib/finder.js +3 -3
- package/build/lib/finder.js.map +1 -0
- package/build/lib/image-element.d.ts +1 -1
- package/build/lib/image-element.d.ts.map +1 -1
- package/build/lib/image-element.js +3 -3
- package/build/lib/image-element.js.map +1 -0
- package/build/lib/logger.js.map +1 -0
- package/build/lib/plugin.js +3 -3
- package/build/lib/plugin.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -4
package/build/lib/compare.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -16,6 +14,8 @@ var _driver = require("appium/driver");
|
|
|
16
14
|
|
|
17
15
|
var _opencv = require("@appium/opencv");
|
|
18
16
|
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
|
|
19
19
|
const MATCH_FEATURES_MODE = 'matchFeatures';
|
|
20
20
|
exports.MATCH_FEATURES_MODE = MATCH_FEATURES_MODE;
|
|
21
21
|
const GET_SIMILARITY_MODE = 'getSimilarity';
|
|
@@ -69,4 +69,4 @@ function convertVisualizationToBase64(element) {
|
|
|
69
69
|
|
|
70
70
|
return element;
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVRDSF9GRUFUVVJFU19NT0RFIiwiR0VUX1NJTUlMQVJJVFlfTU9ERSIsIk1BVENIX1RFTVBMQVRFX01PREUiLCJERUZBVUxUX01BVENIX1RIUkVTSE9MRCIsImNvbXBhcmVJbWFnZXMiLCJtb2RlIiwiZmlyc3RJbWFnZSIsInNlY29uZEltYWdlIiwib3B0aW9ucyIsImltZzEiLCJCdWZmZXIiLCJmcm9tIiwiaW1nMiIsInJlc3VsdCIsIl8iLCJ0b0xvd2VyIiwidG9Mb3dlckNhc2UiLCJnZXRJbWFnZXNNYXRjaGVzIiwiZXJyIiwiY291bnQiLCJnZXRJbWFnZXNTaW1pbGFyaXR5IiwiZ2V0SW1hZ2VPY2N1cnJlbmNlIiwibXVsdGlwbGUiLCJtYXAiLCJjb252ZXJ0VmlzdWFsaXphdGlvblRvQmFzZTY0IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiZWxlbWVudCIsImlzRW1wdHkiLCJ2aXN1YWxpemF0aW9uIiwidG9TdHJpbmciXSwic291cmNlcyI6WyIuLi8uLi9saWIvY29tcGFyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtlcnJvcnN9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHtnZXRJbWFnZXNNYXRjaGVzLCBnZXRJbWFnZXNTaW1pbGFyaXR5LCBnZXRJbWFnZU9jY3VycmVuY2V9IGZyb20gJ0BhcHBpdW0vb3BlbmN2JztcblxuY29uc3QgTUFUQ0hfRkVBVFVSRVNfTU9ERSA9ICdtYXRjaEZlYXR1cmVzJztcbmNvbnN0IEdFVF9TSU1JTEFSSVRZX01PREUgPSAnZ2V0U2ltaWxhcml0eSc7XG5jb25zdCBNQVRDSF9URU1QTEFURV9NT0RFID0gJ21hdGNoVGVtcGxhdGUnO1xuXG5jb25zdCBERUZBVUxUX01BVENIX1RIUkVTSE9MRCA9IDAuNDtcblxuLyoqXG4gKiBQZXJmb3JtcyBpbWFnZXMgY29tcGFyaXNvbiB1c2luZyBPcGVuQ1YgZnJhbWV3b3JrIGZlYXR1cmVzLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhhdCBib3RoIE9wZW5DViBmcmFtZXdvcmsgYW5kIG9wZW5jdjRub2RlanNcbiAqIG1vZHVsZSBhcmUgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lIHdoZXJlIEFwcGl1bSBzZXJ2ZXIgaXMgcnVubmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kZSAtIE9uZSBvZiBwb3NzaWJsZSBjb21wYXJpc29uIG1vZGVzOlxuICogbWF0Y2hGZWF0dXJlcywgZ2V0U2ltaWxhcml0eSwgbWF0Y2hUZW1wbGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGZpcnN0SW1hZ2UgLSBCYXNlNjQtZW5jb2RlZCBpbWFnZSBmaWxlLlxuICogQWxsIGltYWdlIGZvcm1hdHMsIHRoYXQgT3BlbkNWIGxpYnJhcnkgaXRzZWxmIGFjY2VwdHMsIGFyZSBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2Vjb25kSW1hZ2UgLSBCYXNlNjQtZW5jb2RlZCBpbWFnZSBmaWxlLlxuICogQWxsIGltYWdlIGZvcm1hdHMsIHRoYXQgT3BlbkNWIGxpYnJhcnkgaXRzZWxmIGFjY2VwdHMsIGFyZSBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gVGhlIGNvbnRlbnQgb2YgdGhpcyBkaWN0aW9uYXJ5IGRlcGVuZHNcbiAqIG9uIHRoZSBhY3R1YWwgYG1vZGVgIHZhbHVlLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb24gYEBhcHBpdW0vc3VwcG9ydGBcbiAqIG1vZHVsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHJldHVybnMge1Byb21pc2U8b2JqZWN0fG9iamVjdFtdPn0gVGhlIGNvbnRlbnQgb2YgdGhlIHJlc3VsdGluZyBkaWN0aW9uYXJ5IGRlcGVuZHNcbiAqIG9uIHRoZSBhY3R1YWwgYG1vZGVgIGFuZCBgb3B0aW9uc2AgdmFsdWVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb25cbiAqIGBAYXBwaXVtL3N1cHBvcnRgIG1vZHVsZSBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHJlcXVpcmVkIE9wZW5DViBtb2R1bGVzIGFyZSBub3QgaW5zdGFsbGVkIG9yXG4gKiBpZiBgbW9kZWAgdmFsdWUgaXMgaW5jb3JyZWN0IG9yIGlmIHRoZXJlIHdhcyBhbiB1bmV4cGVjdGVkIGlzc3VlIHdoaWxlXG4gKiBtYXRjaGluZyB0aGUgaW1hZ2VzLlxuICovXG5hc3luYyBmdW5jdGlvbiBjb21wYXJlSW1hZ2VzKG1vZGUsIGZpcnN0SW1hZ2UsIHNlY29uZEltYWdlLCBvcHRpb25zID0ge30pIHtcbiAgY29uc3QgaW1nMSA9IEJ1ZmZlci5mcm9tKGZpcnN0SW1hZ2UsICdiYXNlNjQnKTtcbiAgY29uc3QgaW1nMiA9IEJ1ZmZlci5mcm9tKHNlY29uZEltYWdlLCAnYmFzZTY0Jyk7XG4gIGxldCByZXN1bHQgPSBudWxsO1xuICBzd2l0Y2ggKF8udG9Mb3dlcihtb2RlKSkge1xuICAgIGNhc2UgTUFUQ0hfRkVBVFVSRVNfTU9ERS50b0xvd2VyQ2FzZSgpOlxuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgZ2V0SW1hZ2VzTWF0Y2hlcyhpbWcxLCBpbWcyLCBvcHRpb25zKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBtaWdodCB0aHJvdyBpZiBubyBtYXRjaGVzXG4gICAgICAgIHJlc3VsdCA9IHtjb3VudDogMH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIEdFVF9TSU1JTEFSSVRZX01PREUudG9Mb3dlckNhc2UoKTpcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGdldEltYWdlc1NpbWlsYXJpdHkoaW1nMSwgaW1nMiwgb3B0aW9ucyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1BVENIX1RFTVBMQVRFX01PREUudG9Mb3dlckNhc2UoKTpcbiAgICAgIC8vIGZpcnN0SW1hZ2UvaW1nMSBpcyB0aGUgZnVsbCBpbWFnZSBhbmQgc2Vjb25kSW1hZ2UvaW1nMiBpcyB0aGUgcGFydGlhbCBvbmVcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGdldEltYWdlT2NjdXJyZW5jZShpbWcxLCBpbWcyLCBvcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLm11bHRpcGxlKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQubXVsdGlwbGUubWFwKGNvbnZlcnRWaXN1YWxpemF0aW9uVG9CYXNlNjQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGAnJHttb2RlfScgaW1hZ2VzIGNvbXBhcmlzb24gbW9kZSBpcyB1bmtub3duLiBgICtcbiAgICAgICAgICBgT25seSAke0pTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgIE1BVENIX0ZFQVRVUkVTX01PREUsXG4gICAgICAgICAgICBHRVRfU0lNSUxBUklUWV9NT0RFLFxuICAgICAgICAgICAgTUFUQ0hfVEVNUExBVEVfTU9ERSxcbiAgICAgICAgICBdKX0gbW9kZXMgYXJlIHN1cHBvcnRlZC5gXG4gICAgICApO1xuICB9XG4gIHJldHVybiBjb252ZXJ0VmlzdWFsaXphdGlvblRvQmFzZTY0KHJlc3VsdCk7XG59XG5cbi8qKlxuICogYmFzZTY0IGVuY29kZXMgdGhlIHZpc3VhbGl6YXRpb24gcGFydCBvZiB0aGUgcmVzdWx0XG4gKiAoaWYgbmVjZXNzYXJ5KVxuICpcbiAqIEBwYXJhbSB7T2NjdXJyZW5jZVJlc3VsdH0gZWxlbWVudCAtIG9jY3VycmVuY2UgcmVzdWx0XG4gKlxuICoqL1xuZnVuY3Rpb24gY29udmVydFZpc3VhbGl6YXRpb25Ub0Jhc2U2NChlbGVtZW50KSB7XG4gIGlmICghXy5pc0VtcHR5KGVsZW1lbnQudmlzdWFsaXphdGlvbikpIHtcbiAgICBlbGVtZW50LnZpc3VhbGl6YXRpb24gPSBlbGVtZW50LnZpc3VhbGl6YXRpb24udG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbmV4cG9ydCB7XG4gIGNvbXBhcmVJbWFnZXMsXG4gIERFRkFVTFRfTUFUQ0hfVEhSRVNIT0xELFxuICBNQVRDSF9URU1QTEFURV9NT0RFLFxuICBNQVRDSF9GRUFUVVJFU19NT0RFLFxuICBHRVRfU0lNSUxBUklUWV9NT0RFLFxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL29wZW5jdicpLk9jY3VycmVuY2VSZXN1bHR9IE9jY3VycmVuY2VSZXN1bHRcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxtQkFBbUIsR0FBRyxlQUE1Qjs7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxlQUE1Qjs7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxlQUE1Qjs7QUFFQSxNQUFNQyx1QkFBdUIsR0FBRyxHQUFoQzs7O0FBdUJBLGVBQWVDLGFBQWYsQ0FBNkJDLElBQTdCLEVBQW1DQyxVQUFuQyxFQUErQ0MsV0FBL0MsRUFBNERDLE9BQU8sR0FBRyxFQUF0RSxFQUEwRTtFQUN4RSxNQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTCxVQUFaLEVBQXdCLFFBQXhCLENBQWI7RUFDQSxNQUFNTSxJQUFJLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSixXQUFaLEVBQXlCLFFBQXpCLENBQWI7RUFDQSxJQUFJTSxNQUFNLEdBQUcsSUFBYjs7RUFDQSxRQUFRQyxlQUFBLENBQUVDLE9BQUYsQ0FBVVYsSUFBVixDQUFSO0lBQ0UsS0FBS0wsbUJBQW1CLENBQUNnQixXQUFwQixFQUFMO01BQ0UsSUFBSTtRQUNGSCxNQUFNLEdBQUcsTUFBTSxJQUFBSSx3QkFBQSxFQUFpQlIsSUFBakIsRUFBdUJHLElBQXZCLEVBQTZCSixPQUE3QixDQUFmO01BQ0QsQ0FGRCxDQUVFLE9BQU9VLEdBQVAsRUFBWTtRQUVaTCxNQUFNLEdBQUc7VUFBQ00sS0FBSyxFQUFFO1FBQVIsQ0FBVDtNQUNEOztNQUNEOztJQUNGLEtBQUtsQixtQkFBbUIsQ0FBQ2UsV0FBcEIsRUFBTDtNQUNFSCxNQUFNLEdBQUcsTUFBTSxJQUFBTywyQkFBQSxFQUFvQlgsSUFBcEIsRUFBMEJHLElBQTFCLEVBQWdDSixPQUFoQyxDQUFmO01BQ0E7O0lBQ0YsS0FBS04sbUJBQW1CLENBQUNjLFdBQXBCLEVBQUw7TUFFRUgsTUFBTSxHQUFHLE1BQU0sSUFBQVEsMEJBQUEsRUFBbUJaLElBQW5CLEVBQXlCRyxJQUF6QixFQUErQkosT0FBL0IsQ0FBZjs7TUFDQSxJQUFJQSxPQUFPLENBQUNjLFFBQVosRUFBc0I7UUFDcEIsT0FBT1QsTUFBTSxDQUFDUyxRQUFQLENBQWdCQyxHQUFoQixDQUFvQkMsNEJBQXBCLENBQVA7TUFDRDs7TUFDRDs7SUFDRjtNQUNFLE1BQU0sSUFBSUMsY0FBQSxDQUFPQyxvQkFBWCxDQUNILElBQUdyQixJQUFLLHVDQUFULEdBQ0csUUFBT3NCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLENBQ3JCNUIsbUJBRHFCLEVBRXJCQyxtQkFGcUIsRUFHckJDLG1CQUhxQixDQUFmLENBSUwsdUJBTkQsQ0FBTjtFQXBCSjs7RUE2QkEsT0FBT3NCLDRCQUE0QixDQUFDWCxNQUFELENBQW5DO0FBQ0Q7O0FBU0QsU0FBU1csNEJBQVQsQ0FBc0NLLE9BQXRDLEVBQStDO0VBQzdDLElBQUksQ0FBQ2YsZUFBQSxDQUFFZ0IsT0FBRixDQUFVRCxPQUFPLENBQUNFLGFBQWxCLENBQUwsRUFBdUM7SUFDckNGLE9BQU8sQ0FBQ0UsYUFBUixHQUF3QkYsT0FBTyxDQUFDRSxhQUFSLENBQXNCQyxRQUF0QixDQUErQixRQUEvQixDQUF4QjtFQUNEOztFQUVELE9BQU9ILE9BQVA7QUFDRCJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","names":["MATCH_FEATURES_MODE","GET_SIMILARITY_MODE","MATCH_TEMPLATE_MODE","DEFAULT_MATCH_THRESHOLD","compareImages","mode","firstImage","secondImage","options","img1","Buffer","from","img2","result","_","toLower","toLowerCase","getImagesMatches","err","count","getImagesSimilarity","getImageOccurrence","multiple","map","convertVisualizationToBase64","errors","InvalidArgumentError","JSON","stringify","element","isEmpty","visualization","toString"],"sources":["../../lib/compare.js"],"sourcesContent":["import _ from 'lodash';\nimport {errors} from 'appium/driver';\nimport {getImagesMatches, getImagesSimilarity, getImageOccurrence} from '@appium/opencv';\n\nconst MATCH_FEATURES_MODE = 'matchFeatures';\nconst GET_SIMILARITY_MODE = 'getSimilarity';\nconst MATCH_TEMPLATE_MODE = 'matchTemplate';\n\nconst DEFAULT_MATCH_THRESHOLD = 0.4;\n\n/**\n * Performs images comparison using OpenCV framework features.\n * It is expected that both OpenCV framework and opencv4nodejs\n * module are installed on the machine where Appium server is running.\n *\n * @param {string} mode - One of possible comparison modes:\n * matchFeatures, getSimilarity, matchTemplate\n * @param {string} firstImage - Base64-encoded image file.\n * All image formats, that OpenCV library itself accepts, are supported.\n * @param {string} secondImage - Base64-encoded image file.\n * All image formats, that OpenCV library itself accepts, are supported.\n * @param {object} [options] - The content of this dictionary depends\n * on the actual `mode` value. See the documentation on `@appium/support`\n * module for more details.\n * @returns {Promise<object|object[]>} The content of the resulting dictionary depends\n * on the actual `mode` and `options` values. See the documentation on\n * `@appium/support` module for more details.\n * @throws {Error} If required OpenCV modules are not installed or\n * if `mode` value is incorrect or if there was an unexpected issue while\n * matching the images.\n */\nasync function compareImages(mode, firstImage, secondImage, options = {}) {\n const img1 = Buffer.from(firstImage, 'base64');\n const img2 = Buffer.from(secondImage, 'base64');\n let result = null;\n switch (_.toLower(mode)) {\n case MATCH_FEATURES_MODE.toLowerCase():\n try {\n result = await getImagesMatches(img1, img2, options);\n } catch (err) {\n // might throw if no matches\n result = {count: 0};\n }\n break;\n case GET_SIMILARITY_MODE.toLowerCase():\n result = await getImagesSimilarity(img1, img2, options);\n break;\n case MATCH_TEMPLATE_MODE.toLowerCase():\n // firstImage/img1 is the full image and secondImage/img2 is the partial one\n result = await getImageOccurrence(img1, img2, options);\n if (options.multiple) {\n return result.multiple.map(convertVisualizationToBase64);\n }\n break;\n default:\n throw new errors.InvalidArgumentError(\n `'${mode}' images comparison mode is unknown. ` +\n `Only ${JSON.stringify([\n MATCH_FEATURES_MODE,\n GET_SIMILARITY_MODE,\n MATCH_TEMPLATE_MODE,\n ])} modes are supported.`\n );\n }\n return convertVisualizationToBase64(result);\n}\n\n/**\n * base64 encodes the visualization part of the result\n * (if necessary)\n *\n * @param {OccurrenceResult} element - occurrence result\n *\n **/\nfunction convertVisualizationToBase64(element) {\n if (!_.isEmpty(element.visualization)) {\n element.visualization = element.visualization.toString('base64');\n }\n\n return element;\n}\n\nexport {\n compareImages,\n DEFAULT_MATCH_THRESHOLD,\n MATCH_TEMPLATE_MODE,\n MATCH_FEATURES_MODE,\n GET_SIMILARITY_MODE,\n};\n\n/**\n * @typedef {import('@appium/opencv').OccurrenceResult} OccurrenceResult\n */\n"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,mBAAmB,GAAG,eAA5B;;AACA,MAAMC,mBAAmB,GAAG,eAA5B;;AACA,MAAMC,mBAAmB,GAAG,eAA5B;;AAEA,MAAMC,uBAAuB,GAAG,GAAhC;;;AAuBA,eAAeC,aAAf,CAA6BC,IAA7B,EAAmCC,UAAnC,EAA+CC,WAA/C,EAA4DC,OAAO,GAAG,EAAtE,EAA0E;EACxE,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAP,CAAYL,UAAZ,EAAwB,QAAxB,CAAb;EACA,MAAMM,IAAI,GAAGF,MAAM,CAACC,IAAP,CAAYJ,WAAZ,EAAyB,QAAzB,CAAb;EACA,IAAIM,MAAM,GAAG,IAAb;;EACA,QAAQC,eAAA,CAAEC,OAAF,CAAUV,IAAV,CAAR;IACE,KAAKL,mBAAmB,CAACgB,WAApB,EAAL;MACE,IAAI;QACFH,MAAM,GAAG,MAAM,IAAAI,wBAAA,EAAiBR,IAAjB,EAAuBG,IAAvB,EAA6BJ,OAA7B,CAAf;MACD,CAFD,CAEE,OAAOU,GAAP,EAAY;QAEZL,MAAM,GAAG;UAACM,KAAK,EAAE;QAAR,CAAT;MACD;;MACD;;IACF,KAAKlB,mBAAmB,CAACe,WAApB,EAAL;MACEH,MAAM,GAAG,MAAM,IAAAO,2BAAA,EAAoBX,IAApB,EAA0BG,IAA1B,EAAgCJ,OAAhC,CAAf;MACA;;IACF,KAAKN,mBAAmB,CAACc,WAApB,EAAL;MAEEH,MAAM,GAAG,MAAM,IAAAQ,0BAAA,EAAmBZ,IAAnB,EAAyBG,IAAzB,EAA+BJ,OAA/B,CAAf;;MACA,IAAIA,OAAO,CAACc,QAAZ,EAAsB;QACpB,OAAOT,MAAM,CAACS,QAAP,CAAgBC,GAAhB,CAAoBC,4BAApB,CAAP;MACD;;MACD;;IACF;MACE,MAAM,IAAIC,cAAA,CAAOC,oBAAX,CACH,IAAGrB,IAAK,uCAAT,GACG,QAAOsB,IAAI,CAACC,SAAL,CAAe,CACrB5B,mBADqB,EAErBC,mBAFqB,EAGrBC,mBAHqB,CAAf,CAIL,uBAND,CAAN;EApBJ;;EA6BA,OAAOsB,4BAA4B,CAACX,MAAD,CAAnC;AACD;;AASD,SAASW,4BAAT,CAAsCK,OAAtC,EAA+C;EAC7C,IAAI,CAACf,eAAA,CAAEgB,OAAF,CAAUD,OAAO,CAACE,aAAlB,CAAL,EAAuC;IACrCF,OAAO,CAACE,aAAR,GAAwBF,OAAO,CAACE,aAAR,CAAsBC,QAAtB,CAA+B,QAA/B,CAAxB;EACD;;EAED,OAAOH,OAAP;AACD"}
|
package/build/lib/finder.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -23,6 +21,8 @@ var _compare = require("./compare");
|
|
|
23
21
|
|
|
24
22
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
25
23
|
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
26
|
const MJSONWP_ELEMENT_KEY = 'ELEMENT';
|
|
27
27
|
exports.MJSONWP_ELEMENT_KEY = MJSONWP_ELEMENT_KEY;
|
|
28
28
|
const W3C_ELEMENT_KEY = _support.util.W3C_WEB_ELEMENT_IDENTIFIER;
|
|
@@ -344,4 +344,4 @@ class ImageElementFinder {
|
|
|
344
344
|
}
|
|
345
345
|
|
|
346
346
|
exports.default = ImageElementFinder;
|
|
347
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSlNPTldQX0VMRU1FTlRfS0VZIiwiVzNDX0VMRU1FTlRfS0VZIiwidXRpbCIsIlczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSIiwiREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUiLCJGTE9BVF9QUkVDSVNJT04iLCJNQVhfQ0FDSEVfSVRFTVMiLCJNQVhfQ0FDSEVfU0laRV9CWVRFUyIsIkRFRkFVTFRfU0VUVElOR1MiLCJpbWFnZU1hdGNoVGhyZXNob2xkIiwiREVGQVVMVF9NQVRDSF9USFJFU0hPTEQiLCJpbWFnZU1hdGNoTWV0aG9kIiwiZml4SW1hZ2VGaW5kU2NyZWVuc2hvdERpbXMiLCJmaXhJbWFnZVRlbXBsYXRlU2l6ZSIsImZpeEltYWdlVGVtcGxhdGVTY2FsZSIsImRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUiLCJERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFIiwiY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MiLCJhdXRvVXBkYXRlSW1hZ2VFbGVtZW50UG9zaXRpb24iLCJpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSIsIklNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MiLCJnZXRNYXRjaGVkSW1hZ2VSZXN1bHQiLCJJbWFnZUVsZW1lbnRGaW5kZXIiLCJkcml2ZXIiLCJpbWdFbENhY2hlIiwiY29uc3RydWN0b3IiLCJtYXhTaXplIiwiTFJVIiwibWF4Iiwic2l6ZUNhbGN1bGF0aW9uIiwiZWwiLCJ0ZW1wbGF0ZSIsImxlbmd0aCIsInNldERyaXZlciIsInJlZ2lzdGVySW1hZ2VFbGVtZW50IiwiaW1nRWwiLCJzZXQiLCJpZCIsInByb3RvS2V5IiwiaXNXM0NQcm90b2NvbCIsImFzRWxlbWVudCIsImZpbmRCeUltYWdlIiwiYjY0VGVtcGxhdGUiLCJzaG91bGRDaGVja1N0YWxlbmVzcyIsIm11bHRpcGxlIiwiaWdub3JlRGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSIsIkVycm9yIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInRocmVzaG9sZCIsInZpc3VhbGl6ZSIsImxvZyIsImluZm8iLCJnZXRXaW5kb3dTaXplIiwid2lkdGgiLCJzY3JlZW5XaWR0aCIsImhlaWdodCIsInNjcmVlbkhlaWdodCIsImVuc3VyZVRlbXBsYXRlU2l6ZSIsInJlc3VsdHMiLCJjb25kaXRpb24iLCJiNjRTY3JlZW5zaG90Iiwic2NhbGUiLCJnZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kIiwiY29tcGFyaXNvbk9wdHMiLCJtZXRob2QiLCJwdXNoIiwiY29tcGFyZUltYWdlcyIsIk1BVENIX1RFTVBMQVRFX01PREUiLCJlcnIiLCJtZXNzYWdlIiwibWF0Y2giLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJfIiwiaXNFbXB0eSIsImVycm9ycyIsIk5vU3VjaEVsZW1lbnRFcnJvciIsImVsZW1lbnRzIiwibWFwIiwicmVjdCIsInNjb3JlIiwidmlzdWFsaXphdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJJbWFnZUVsZW1lbnQiLCJyZWdpc3RlcmVkRWxlbWVudHMiLCJpbWdPYmoiLCJpbWFnZVV0aWwiLCJnZXRKaW1wSW1hZ2UiLCJ0cGxXaWR0aCIsInRwbEhlaWdodCIsImJpdG1hcCIsInNjYWxlVG9GaXQiLCJnZXRCdWZmZXIiLCJNSU1FX1BORyIsInRvU3RyaW5nIiwiZ2V0U2NyZWVuc2hvdCIsIk9iamVjdCIsImFzc2lnbiIsIndhcm4iLCJzaG90V2lkdGgiLCJzaG90SGVpZ2h0IiwieFNjYWxlIiwieVNjYWxlIiwic2NyZWVuQVIiLCJzaG90QVIiLCJNYXRoIiwicm91bmQiLCJzY2FsZUZhY3RvciIsInJlc2l6ZSIsIm9wdHMiLCJwYXJzZUZsb2F0IiwiU3RyaW5nIiwiTnVtYmVyIiwiaW1nVGVtcE9iaiIsImJhc2VUZW1wV2lkdGgiLCJiYXNlVGVtcEhlaWdoIiwic2NhbGVkV2lkdGgiLCJzY2FsZWRIZWlnaHQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvZmluZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgTFJVIGZyb20gJ2xydS1jYWNoZSc7XG5pbXBvcnQge2Vycm9yc30gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQge3V0aWwsIGltYWdlVXRpbH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHtcbiAgSW1hZ2VFbGVtZW50LFxuICBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuICBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDLFxufSBmcm9tICcuL2ltYWdlLWVsZW1lbnQnO1xuaW1wb3J0IHtNQVRDSF9URU1QTEFURV9NT0RFLCBjb21wYXJlSW1hZ2VzLCBERUZBVUxUX01BVENIX1RIUkVTSE9MRH0gZnJvbSAnLi9jb21wYXJlJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5jb25zdCBNSlNPTldQX0VMRU1FTlRfS0VZID0gJ0VMRU1FTlQnO1xuY29uc3QgVzNDX0VMRU1FTlRfS0VZID0gdXRpbC5XM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUjtcbmNvbnN0IERFRkFVTFRfRklYX0lNQUdFX1RFTVBMQVRFX1NDQUxFID0gMTtcbi8vIFVzZWQgdG8gY29tcGFyZSByYXRpbyBhbmQgc2NyZWVuIHdpZHRoXG4vLyBQaXhlbCBpcyBiYXNpY2FsbHkgdW5kZXIgMTA4MCBmb3IgZXhhbXBsZS4gMTAwSyBpcyBwcm9iYWJseSBlbm91Z2ggZm8gYSB3aGlsZS5cbmNvbnN0IEZMT0FUX1BSRUNJU0lPTiA9IDEwMDAwMDtcbmNvbnN0IE1BWF9DQUNIRV9JVEVNUyA9IDEwMDtcbmNvbnN0IE1BWF9DQUNIRV9TSVpFX0JZVEVTID0gMTAyNCAqIDEwMjQgKiA0MDsgLy8gNDBtYlxuXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTID0ge1xuICAvLyB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEgcmVwcmVzZW50aW5nIG1hdGNoIHN0cmVuZ3RoLCBiZWxvdyB3aGljaCBhbiBpbWFnZVxuICAvLyBlbGVtZW50IHdpbGwgbm90IGJlIGZvdW5kXG4gIGltYWdlTWF0Y2hUaHJlc2hvbGQ6IERFRkFVTFRfTUFUQ0hfVEhSRVNIT0xELFxuXG4gIC8vIE9uZSBvZiBwb3NzaWJsZSBpbWFnZSBtYXRjaGluZyBtZXRob2RzLlxuICAvLyBSZWFkIGh0dHBzOi8vZG9jcy5vcGVuY3Yub3JnLzMuMC1iZXRhL2RvYy9weV90dXRvcmlhbHMvcHlfaW1ncHJvYy9weV90ZW1wbGF0ZV9tYXRjaGluZy9weV90ZW1wbGF0ZV9tYXRjaGluZy5odG1sXG4gIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gIC8vIFRNX0NDT0VGRl9OT1JNRUQgYnkgZGVmYXVsdFxuICBpbWFnZU1hdGNoTWV0aG9kOiAnJyxcblxuICAvLyBpZiB0aGUgaW1hZ2UgcmV0dXJuZWQgYnkgZ2V0U2NyZWVuc2hvdCBkaWZmZXJzIGluIHNpemUgb3IgYXNwZWN0IHJhdGlvXG4gIC8vIGZyb20gdGhlIHNjcmVlbiwgYXR0ZW1wdCB0byBmaXggaXQgYXV0b21hdGljYWxseVxuICBmaXhJbWFnZUZpbmRTY3JlZW5zaG90RGltczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIEFwcGl1bSBzaG91bGQgZW5zdXJlIHRoYXQgYW4gaW1hZ2UgdGVtcGxhdGUgc2VudCBpbiBkdXJpbmcgaW1hZ2VcbiAgLy8gZWxlbWVudCBmaW5kIHNob3VsZCBoYXZlIGl0cyBzaXplIGFkanVzdGVkIHNvIHRoZSBtYXRjaCBhbGdvcml0aG0gd2lsbCBub3RcbiAgLy8gY29tcGxhaW5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNpemU6IGZhbHNlLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCBlbnN1cmUgdGhhdCBhbiBpbWFnZSB0ZW1wbGF0ZSBzZW50IGluIGR1cmluZyBpbWFnZVxuICAvLyBlbGVtZW50IGZpbmQgc2hvdWxkIGhhdmUgaXRzIHNjYWxlIGFkanVzdGVkIHRvIGRpc3BsYXkgc2l6ZSBzbyB0aGUgbWF0Y2hcbiAgLy8gYWxnb3JpdGhtIHdpbGwgbm90IGNvbXBsYWluLlxuICAvLyBlLmcuIGlPUyBoYXMgYHdpZHRoPTM3NSwgaGVpZ2h0PTY2N2Agd2luZG93IHJlY3QsIGJ1dCBpdHMgc2NyZWVuc2hvdCBpc1xuICAvLyAgICAgIGB3aWR0aD03NTAgw5cgaGVpZ2h0PTEzMzRgIHBpeGVscy4gVGhpcyBzZXR0aW5nIGhlbHAgdG8gYWRqdXN0IHRoZSBzY2FsZVxuICAvLyAgICAgIGlmIGEgdXNlciB1c2UgYHdpZHRoPTc1MCDDlyBoZWlnaHQ9MTMzNGAgcGl4ZWxzJ3MgYmFzZSB0ZW1wbGF0ZSBpbWFnZS5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNjYWxlOiBmYWxzZSxcblxuICAvLyBVc2VycyBtaWdodCBoYXZlIHNjYWxlZCB0ZW1wbGF0ZSBpbWFnZSB0byByZWR1Y2UgdGhlaXIgc3RvcmFnZSBzaXplLlxuICAvLyBUaGlzIHNldHRpbmcgYWxsb3dzIHVzZXJzIHRvIHNjYWxlIGEgdGVtcGxhdGUgaW1hZ2UgdGhleSBzZW5kIHRvIEFwcGl1bSBzZXJ2ZXJcbiAgLy8gc28gdGhhdCB0aGUgQXBwaXVtIHNlcnZlciBjb21wYXJlcyB0aGUgYWN0dWFsIHNjYWxlIHVzZXJzIG9yaWdpbmFsbHkgaGFkLlxuICAvLyBlLmcuIElmIGEgdXNlciBoYXMgYW4gaW1hZ2Ugb2YgMjcwIHggMzIgcGl4ZWxzIHdoaWNoIHdhcyBvcmlnaW5hbGx5IDEwODAgeCAxMjYgcGl4ZWxzLFxuICAvLyAgICAgIHRoZSB1c2VyIGNhbiBzZXQge2RlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU6IDQuMH0gdG8gc2NhbGUgdGhlIHNtYWxsIGltYWdlXG4gIC8vICAgICAgdG8gdGhlIG9yaWdpbmFsIG9uZSBzbyB0aGF0IEFwcGl1bSBjYW4gY29tcGFyZSBpdCBhcyB0aGUgb3JpZ2luYWwgb25lLlxuICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlOiBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCByZS1jaGVjayB0aGF0IGFuIGltYWdlIGVsZW1lbnQgY2FuIGJlIG1hdGNoZWRcbiAgLy8gYWdhaW5zdCB0aGUgY3VycmVudCBzY3JlZW5zaG90IGJlZm9yZSBjbGlja2luZyBpdFxuICBjaGVja0ZvckltYWdlRWxlbWVudFN0YWxlbmVzczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIGJlZm9yZSBjbGlja2luZyBvbiBhbiBpbWFnZSBlbGVtZW50IEFwcGl1bSBzaG91bGQgcmUtZGV0ZXJtaW5lIHRoZVxuICAvLyBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBvbiBzY3JlZW5cbiAgYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uOiBmYWxzZSxcblxuICAvLyB3aGljaCBtZXRob2QgdG8gdXNlIGZvciB0YXBwaW5nIGJ5IGNvb3JkaW5hdGUgZm9yIGltYWdlIGVsZW1lbnRzLiB0aGVcbiAgLy8gb3B0aW9ucyBhcmUgJ3czYycgb3IgJ21qc29ud3AnXG4gIGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5OiBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDLFxuXG4gIC8vIHdoaWNoIG1ldGhvZCB0byB1c2UgdG8gc2F2ZSB0aGUgbWF0Y2hlZCBpbWFnZSBhcmVhIGluIEltYWdlRWxlbWVudCBjbGFzcy5cbiAgLy8gSXQgaXMgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2UuXG4gIGdldE1hdGNoZWRJbWFnZVJlc3VsdDogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbWFnZUVsZW1lbnRGaW5kZXIge1xuICAvKiogQHR5cGUge0V4dGVybmFsRHJpdmVyfSAqL1xuICBkcml2ZXI7XG5cbiAgLyoqIEB0eXBlIHtMUlU8c3RyaW5nLEltYWdlRWxlbWVudD59ICovXG4gIGltZ0VsQ2FjaGU7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0ZXJuYWxEcml2ZXJ9IGRyaXZlclxuICAgKiBAcGFyYW0ge251bWJlcn0gW21heFNpemVdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihkcml2ZXIsIG1heFNpemUgPSBNQVhfQ0FDSEVfU0laRV9CWVRFUykge1xuICAgIHRoaXMuZHJpdmVyID0gZHJpdmVyO1xuICAgIHRoaXMuaW1nRWxDYWNoZSA9IG5ldyBMUlUoe1xuICAgICAgbWF4OiBNQVhfQ0FDSEVfSVRFTVMsXG4gICAgICBtYXhTaXplLFxuICAgICAgc2l6ZUNhbGN1bGF0aW9uOiAoZWwpID0+IGVsLnRlbXBsYXRlLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHNldERyaXZlcihkcml2ZXIpIHtcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0ltYWdlRWxlbWVudH0gaW1nRWxcbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqL1xuICByZWdpc3RlckltYWdlRWxlbWVudChpbWdFbCkge1xuICAgIHRoaXMuaW1nRWxDYWNoZS5zZXQoaW1nRWwuaWQsIGltZ0VsKTtcbiAgICBjb25zdCBwcm90b0tleSA9IHRoaXMuZHJpdmVyLmlzVzNDUHJvdG9jb2woKSA/IFczQ19FTEVNRU5UX0tFWSA6IE1KU09OV1BfRUxFTUVOVF9LRVk7XG4gICAgcmV0dXJuIGltZ0VsLmFzRWxlbWVudChwcm90b0tleSk7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGVkZWYgRmluZEJ5SW1hZ2VPcHRpb25zXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3Nob3VsZENoZWNrU3RhbGVuZXNzPWZhbHNlXSAtIHdoZXRoZXIgdGhpcyBjYWxsIHRvIGZpbmQgYW5cbiAgICogaW1hZ2UgaXMgbWVyZWx5IHRvIGNoZWNrIHN0YWxlbmVzcy4gSWYgc28gd2UgY2FuIGJ5cGFzcyBhIGxvdCBvZiBsb2dpY1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IFttdWx0aXBsZT1mYWxzZV0gLSBXaGV0aGVyIHdlIGFyZSBmaW5kaW5nIG9uZSBlbGVtZW50IG9yXG4gICAqIG11bHRpcGxlXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2lnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU9ZmFsc2VdIC0gV2hldGhlciB3ZVxuICAgKiBpZ25vcmUgZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZS4gSXQgY2FuIGJlIHVzZWQgd2hlbiB5b3Ugd291bGQgbGlrZSB0b1xuICAgKiBzY2FsZSBiNjRUZW1wbGF0ZSB3aXRoIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgc2V0dGluZy5cbiAgICovXG5cbiAgLyoqXG4gICAqIEZpbmQgYSBzY3JlZW4gcmVjdCByZXByZXNlbnRlZCBieSBhbiBJbWFnZUVsZW1lbnQgY29ycmVzcG9uZGluZyB0byBhbiBpbWFnZVxuICAgKiB0ZW1wbGF0ZSBzZW50IGluIGJ5IHRoZSBjbGllbnRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gYmFzZTY0LWVuY29kZWQgaW1hZ2UgdXNlZCBhcyBhIHRlbXBsYXRlIHRvIGJlXG4gICAqIG1hdGNoZWQgaW4gdGhlIHNjcmVlbnNob3RcbiAgICogQHBhcmFtIHtGaW5kQnlJbWFnZU9wdGlvbnN9IG9wdHMgLSBhZGRpdGlvbmFsIG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudHxFbGVtZW50W118SW1hZ2VFbGVtZW50Pn0gLSBXZWJEcml2ZXIgZWxlbWVudCB3aXRoIGEgc3BlY2lhbCBpZCBwcmVmaXhcbiAgICovXG4gIGFzeW5jIGZpbmRCeUltYWdlKFxuICAgIGI2NFRlbXBsYXRlLFxuICAgIHtzaG91bGRDaGVja1N0YWxlbmVzcyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlID0gZmFsc2V9XG4gICkge1xuICAgIGlmICghdGhpcy5kcml2ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgZmluZCB3aXRob3V0IGEgZHJpdmVyIWApO1xuICAgIH1cbiAgICBjb25zdCBzZXR0aW5ncyA9IHsuLi5ERUZBVUxUX1NFVFRJTkdTLCAuLi50aGlzLmRyaXZlci5zZXR0aW5ncy5nZXRTZXR0aW5ncygpfTtcbiAgICBjb25zdCB7XG4gICAgICBpbWFnZU1hdGNoVGhyZXNob2xkOiB0aHJlc2hvbGQsXG4gICAgICBpbWFnZU1hdGNoTWV0aG9kLFxuICAgICAgZml4SW1hZ2VUZW1wbGF0ZVNpemUsXG4gICAgICBmaXhJbWFnZVRlbXBsYXRlU2NhbGUsXG4gICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgZ2V0TWF0Y2hlZEltYWdlUmVzdWx0OiB2aXN1YWxpemUsXG4gICAgfSA9IHNldHRpbmdzO1xuXG4gICAgbG9nLmluZm8oYEZpbmRpbmcgaW1hZ2UgZWxlbWVudCB3aXRoIG1hdGNoIHRocmVzaG9sZCAke3RocmVzaG9sZH1gKTtcbiAgICBpZiAoIXRoaXMuZHJpdmVyLmdldFdpbmRvd1NpemUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkICdnZXRXaW5kb3dTaXplJyBjb21tYW5kXCIpO1xuICAgIH1cbiAgICBjb25zdCB7d2lkdGg6IHNjcmVlbldpZHRoLCBoZWlnaHQ6IHNjcmVlbkhlaWdodH0gPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRXaW5kb3dTaXplKCk7XG5cbiAgICAvLyBzb21lb25lIG1pZ2h0IGhhdmUgc2VudCBpbiBhIHRlbXBsYXRlIHRoYXQncyBsYXJnZXIgdGhhbiB0aGUgc2NyZWVuXG4gICAgLy8gZGltZW5zaW9ucy4gSWYgc28gbGV0J3MgY2hlY2sgYW5kIGN1dCBpdCBkb3duIHRvIHNpemUgc2luY2UgdGhlIGFsZ29yaXRobVxuICAgIC8vIHdpbGwgbm90IHdvcmsgdW5sZXNzIHdlIGRvLiBCdXQgYmVjYXVzZSBpdCByZXF1aXJlcyBzb21lIHBvdGVudGlhbGx5XG4gICAgLy8gZXhwZW5zaXZlIGNvbW1hbmRzLCBvbmx5IGRvIHRoaXMgaWYgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCBpdCBpbiBzZXR0aW5ncy5cbiAgICBpZiAoZml4SW1hZ2VUZW1wbGF0ZVNpemUpIHtcbiAgICAgIGI2NFRlbXBsYXRlID0gYXdhaXQgdGhpcy5lbnN1cmVUZW1wbGF0ZVNpemUoYjY0VGVtcGxhdGUsIHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBjb25kaXRpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7YjY0U2NyZWVuc2hvdCwgc2NhbGV9ID0gYXdhaXQgdGhpcy5nZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kKFxuICAgICAgICAgIHNjcmVlbldpZHRoLFxuICAgICAgICAgIHNjcmVlbkhlaWdodFxuICAgICAgICApO1xuXG4gICAgICAgIGI2NFRlbXBsYXRlID0gYXdhaXQgdGhpcy5maXhJbWFnZVRlbXBsYXRlU2NhbGUoYjY0VGVtcGxhdGUsIHtcbiAgICAgICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgICAgIGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUsXG4gICAgICAgICAgZml4SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgICAgIC4uLnNjYWxlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjb21wYXJpc29uT3B0cyA9IHtcbiAgICAgICAgICB0aHJlc2hvbGQsXG4gICAgICAgICAgdmlzdWFsaXplLFxuICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaW1hZ2VNYXRjaE1ldGhvZCkge1xuICAgICAgICAgIGNvbXBhcmlzb25PcHRzLm1ldGhvZCA9IGltYWdlTWF0Y2hNZXRob2Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKFxuICAgICAgICAgICAgLi4uKGF3YWl0IGNvbXBhcmVJbWFnZXMoXG4gICAgICAgICAgICAgIE1BVENIX1RFTVBMQVRFX01PREUsXG4gICAgICAgICAgICAgIGI2NFNjcmVlbnNob3QsXG4gICAgICAgICAgICAgIGI2NFRlbXBsYXRlLFxuICAgICAgICAgICAgICBjb21wYXJpc29uT3B0c1xuICAgICAgICAgICAgKSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgICAgIGF3YWl0IGNvbXBhcmVJbWFnZXMoTUFUQ0hfVEVNUExBVEVfTU9ERSwgYjY0U2NyZWVuc2hvdCwgYjY0VGVtcGxhdGUsIGNvbXBhcmlzb25PcHRzKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWYgY29tcGFyZUltYWdlcyBmYWlscywgd2UnbGwgZ2V0IGEgc3BlY2lmaWMgZXJyb3IsIGJ1dCB3ZSBzaG91bGRcbiAgICAgICAgLy8gcmV0cnksIHNvIHRyYXAgdGhhdCBhbmQganVzdCByZXR1cm4gZmFsc2UgdG8gdHJpZ2dlciB0aGUgbmV4dCByb3VuZCBvZlxuICAgICAgICAvLyBpbXBsaWNpdGx5IHdhaXRpbmcuIEZvciBvdGhlciBlcnJvcnMsIHRocm93IHRoZW0gdG8gZ2V0IG91dCBvZiB0aGVcbiAgICAgICAgLy8gaW1wbGljaXQgd2FpdCBsb29wXG4gICAgICAgIGlmIChlcnIubWVzc2FnZS5tYXRjaCgvQ2Fubm90IGZpbmQgYW55IG9jY3VycmVuY2VzLykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyB0aGlzIGBpbXBsaWNpdFdhaXRGb3JDb25kaXRpb25gIG1ldGhvZCB3aWxsIHRocm93IGEgJ0NvbmRpdGlvbiB1bm1ldCdcbiAgICAgIC8vIGVycm9yIGlmIGFuIGVsZW1lbnQgaXMgbm90IGZvdW5kIGV2ZW50dWFsbHkuIEluIHRoYXQgY2FzZSwgd2Ugd2lsbFxuICAgICAgLy8gaGFuZGxlIHRoZSBlbGVtZW50IG5vdCBmb3VuZCByZXNwb25zZSBiZWxvdy4gSW4gdGhlIGNhc2Ugd2hlcmUgZ2V0IHNvbWVcbiAgICAgIC8vIF9vdGhlcl8ga2luZCBvZiBlcnJvciwgaXQgbWVhbnMgc29tZXRoaW5nIGJsZXcgdXAgdG90YWxseSBhcGFydCBmcm9tIHRoZVxuICAgICAgLy8gaW1wbGljaXQgd2FpdCB0aW1lb3V0LiBXZSBzaG91bGQgbm90IG1hc2sgdGhhdCBlcnJvciBhbmQgaW5zdGVhZCB0aHJvd1xuICAgICAgLy8gaXQgc3RyYWlnaHRhd2F5XG4gICAgICBpZiAoIWVyci5tZXNzYWdlLm1hdGNoKC9Db25kaXRpb24gdW5tZXQvKSkge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNFbXB0eShyZXN1bHRzKSkge1xuICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRWxlbWVudEVycm9yKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudHMgPSByZXN1bHRzLm1hcCgoe3JlY3QsIHNjb3JlLCB2aXN1YWxpemF0aW9ufSkgPT4ge1xuICAgICAgbG9nLmluZm8oYEltYWdlIHRlbXBsYXRlIG1hdGNoZWQ6ICR7SlNPTi5zdHJpbmdpZnkocmVjdCl9YCk7XG4gICAgICByZXR1cm4gbmV3IEltYWdlRWxlbWVudChiNjRUZW1wbGF0ZSwgcmVjdCwgc2NvcmUsIHZpc3VhbGl6YXRpb24sIHRoaXMpO1xuICAgIH0pO1xuXG4gICAgLy8gaWYgd2UncmUganVzdCBjaGVja2luZyBzdGFsZW5lc3MsIHJldHVybiBzdHJhaWdodGF3YXkgc28gd2UgZG9uJ3QgYWRkXG4gICAgLy8gYSBuZXcgZWxlbWVudCB0byB0aGUgY2FjaGUuIHNob3VsZENoZWNrU3RhbGVuZXNzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGVcbiAgICAvLyBlbGVtZW50cywgc2luY2UgaXQgaXMgYSBwdXJlbHkgaW50ZXJuYWwgbWVjaGFuaXNtXG4gICAgaWYgKHNob3VsZENoZWNrU3RhbGVuZXNzKSB7XG4gICAgICByZXR1cm4gZWxlbWVudHNbMF07XG4gICAgfVxuXG4gICAgY29uc3QgcmVnaXN0ZXJlZEVsZW1lbnRzID0gZWxlbWVudHMubWFwKChpbWdFbCkgPT4gdGhpcy5yZWdpc3RlckltYWdlRWxlbWVudChpbWdFbCkpO1xuXG4gICAgcmV0dXJuIG11bHRpcGxlID8gcmVnaXN0ZXJlZEVsZW1lbnRzIDogcmVnaXN0ZXJlZEVsZW1lbnRzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IHRoZSBpbWFnZSB0ZW1wbGF0ZSBzZW50IGluIGZvciBhIGZpbmQgaXMgb2YgYSBzdWl0YWJsZSBzaXplXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiNjRUZW1wbGF0ZSAtIGJhc2U2NC1lbmNvZGVkIGltYWdlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY3JlZW5XaWR0aCAtIHdpZHRoIG9mIHNjcmVlblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2NyZWVuSGVpZ2h0IC0gaGVpZ2h0IG9mIHNjcmVlblxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBiYXNlNjQtZW5jb2RlZCBpbWFnZSwgcG90ZW50aWFsbHkgcmVzaXplZFxuICAgKi9cbiAgYXN5bmMgZW5zdXJlVGVtcGxhdGVTaXplKGI2NFRlbXBsYXRlLCBzY3JlZW5XaWR0aCwgc2NyZWVuSGVpZ2h0KSB7XG4gICAgbGV0IGltZ09iaiA9IGF3YWl0IGltYWdlVXRpbC5nZXRKaW1wSW1hZ2UoYjY0VGVtcGxhdGUpO1xuICAgIGxldCB7d2lkdGg6IHRwbFdpZHRoLCBoZWlnaHQ6IHRwbEhlaWdodH0gPSBpbWdPYmouYml0bWFwO1xuXG4gICAgbG9nLmluZm8oXG4gICAgICBgVGVtcGxhdGUgaW1hZ2UgaXMgJHt0cGxXaWR0aH14JHt0cGxIZWlnaHR9LiBTY3JlZW4gc2l6ZSBpcyAke3NjcmVlbldpZHRofXgke3NjcmVlbkhlaWdodH1gXG4gICAgKTtcbiAgICAvLyBpZiB0aGUgdGVtcGxhdGUgZml0cyBpbnNpZGUgdGhlIHNjcmVlbiBkaW1lbnNpb25zLCB3ZSdyZSBnb29kXG4gICAgaWYgKHRwbFdpZHRoIDw9IHNjcmVlbldpZHRoICYmIHRwbEhlaWdodCA8PSBzY3JlZW5IZWlnaHQpIHtcbiAgICAgIHJldHVybiBiNjRUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBTY2FsaW5nIHRlbXBsYXRlIGltYWdlIGZyb20gJHt0cGxXaWR0aH14JHt0cGxIZWlnaHR9IHRvIG1hdGNoIGAgK1xuICAgICAgICBgc2NyZWVuIGF0ICR7c2NyZWVuV2lkdGh9eCR7c2NyZWVuSGVpZ2h0fWBcbiAgICApO1xuICAgIC8vIG90aGVyd2lzZSwgc2NhbGUgaXQgdG8gZml0IGluc2lkZSB0aGUgc2NyZWVuIGRpbWVuc2lvbnNcbiAgICBpbWdPYmogPSBpbWdPYmouc2NhbGVUb0ZpdChzY3JlZW5XaWR0aCwgc2NyZWVuSGVpZ2h0KTtcbiAgICByZXR1cm4gKGF3YWl0IGltZ09iai5nZXRCdWZmZXIoaW1hZ2VVdGlsLk1JTUVfUE5HKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2NyZWVuc2hvdCBpbWFnZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgZmluZCBieSBlbGVtZW50LCBwb3RlbnRpYWxseVxuICAgKiBhbHRlcmluZyBpdCBpbiB2YXJpb3VzIHdheXMgYmFzZWQgb24gdXNlci1yZXF1ZXN0ZWQgc2V0dGluZ3NcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHNjcmVlbldpZHRoIC0gd2lkdGggb2Ygc2NyZWVuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY3JlZW5IZWlnaHQgLSBoZWlnaHQgb2Ygc2NyZWVuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNjcmVlbnNob3QgJiB7c2NhbGU/OiBTY3JlZW5zaG90U2NhbGV9Pn0gYmFzZTY0LWVuY29kZWQgc2NyZWVuc2hvdCBhbmQgU2NyZWVuc2hvdFNjYWxlXG4gICAqL1xuICBhc3luYyBnZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kKHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyLmdldFNjcmVlbnNob3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkICdnZXRTY3JlZW5zaG90JyBjb21tYW5kXCIpO1xuICAgIH1cbiAgICBjb25zdCBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIHRoaXMuZHJpdmVyLnNldHRpbmdzLmdldFNldHRpbmdzKCkpO1xuICAgIGNvbnN0IHtmaXhJbWFnZUZpbmRTY3JlZW5zaG90RGltc30gPSBzZXR0aW5ncztcblxuICAgIGxldCBiNjRTY3JlZW5zaG90ID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0U2NyZWVuc2hvdCgpO1xuXG4gICAgLy8gaWYgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCBub3QgdG8gY29ycmVjdCBmb3IgYXNwZWN0IG9yIHNpemUgZGlmZmVyZW5jZXNcbiAgICAvLyBiZXR3ZWVuIHRoZSBzY3JlZW5zaG90IGFuZCB0aGUgc2NyZWVuLCBqdXN0IHJldHVybiB0aGUgc2NyZWVuc2hvdCBub3dcbiAgICBpZiAoIWZpeEltYWdlRmluZFNjcmVlbnNob3REaW1zKSB7XG4gICAgICBsb2cuaW5mbyhgTm90IHZlcmlmeWluZyBzY3JlZW5zaG90IGRpbWVuc2lvbnMgbWF0Y2ggc2NyZWVuYCk7XG4gICAgICByZXR1cm4ge2I2NFNjcmVlbnNob3R9O1xuICAgIH1cblxuICAgIGlmIChzY3JlZW5XaWR0aCA8IDEgfHwgc2NyZWVuSGVpZ2h0IDwgMSkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgcmV0cmlldmVkIHNjcmVlbiBzaXplICR7c2NyZWVuV2lkdGh9eCR7c2NyZWVuSGVpZ2h0fSBkb2VzIGAgK1xuICAgICAgICAgIGBub3Qgc2VlbSB0byBiZSB2YWxpZC4gTm8gY2hhbmdlcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHNjcmVlbnNob3RgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtiNjRTY3JlZW5zaG90fTtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UsIGRvIHNvbWUgdmVyaWZpY2F0aW9uIG9uIHRoZSBzY3JlZW5zaG90IHRvIG1ha2Ugc3VyZSBpdCBtYXRjaGVzXG4gICAgLy8gdGhlIHNjcmVlbiBzaXplIGFuZCBhc3BlY3QgcmF0aW9cbiAgICBsb2cuaW5mbygnVmVyaWZ5aW5nIHNjcmVlbnNob3Qgc2l6ZSBhbmQgYXNwZWN0IHJhdGlvJyk7XG5cbiAgICBsZXQgaW1nT2JqID0gYXdhaXQgaW1hZ2VVdGlsLmdldEppbXBJbWFnZShiNjRTY3JlZW5zaG90KTtcbiAgICBsZXQge3dpZHRoOiBzaG90V2lkdGgsIGhlaWdodDogc2hvdEhlaWdodH0gPSBpbWdPYmouYml0bWFwO1xuXG4gICAgaWYgKHNob3RXaWR0aCA8IDEgfHwgc2hvdEhlaWdodCA8IDEpIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgVGhlIHJldHJpZXZlZCBzY3JlZW5zaG90IHNpemUgJHtzaG90V2lkdGh9eCR7c2hvdEhlaWdodH0gZG9lcyBgICtcbiAgICAgICAgICBgbm90IHNlZW0gdG8gYmUgdmFsaWQuIE5vIGNoYW5nZXMgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzY3JlZW5zaG90YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7YjY0U2NyZWVuc2hvdH07XG4gICAgfVxuXG4gICAgaWYgKHNjcmVlbldpZHRoID09PSBzaG90V2lkdGggJiYgc2NyZWVuSGVpZ2h0ID09PSBzaG90SGVpZ2h0KSB7XG4gICAgICAvLyB0aGUgaGVpZ2h0IGFuZCB3aWR0aCBvZiB0aGUgc2NyZWVuc2hvdCBhbmQgdGhlIGRldmljZSBzY3JlZW4gbWF0Y2gsIHdoaWNoXG4gICAgICAvLyBtZWFucyB3ZSBzaG91bGQgYmUgc2FmZSB3aGVuIGRvaW5nIHRlbXBsYXRlIG1hdGNoZXNcbiAgICAgIGxvZy5pbmZvKCdTY3JlZW5zaG90IHNpemUgbWF0Y2hlZCBzY3JlZW4gc2l6ZScpO1xuICAgICAgcmV0dXJuIHtiNjRTY3JlZW5zaG90fTtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UsIGlmIHRoZXkgZG9uJ3QgbWF0Y2gsIGl0IGNvdWxkIHNwZWxsIHByb2JsZW1zIGZvciB0aGUgYWNjdXJhY3lcbiAgICAvLyBvZiBjb29yZGluYXRlcyByZXR1cm5lZCBieSB0aGUgaW1hZ2UgbWF0Y2ggYWxnb3JpdGhtLCBzaW5jZSB3ZSBtYXRjaCBiYXNlZFxuICAgIC8vIG9uIHRoZSBzY3JlZW5zaG90IGNvb3JkaW5hdGVzIG5vdCB0aGUgZGV2aWNlIGNvb3JkaW5hdGVzIHRoZW1zZWx2ZXMuIFRoZXJlXG4gICAgLy8gYXJlIHR3byBwb3RlbnRpYWwgdHlwZXMgb2YgbWlzbWF0Y2g6IGFzcGVjdCByYXRpbyBtaXNtYXRjaCBhbmQgc2NhbGVcbiAgICAvLyBtaXNtYXRjaC4gV2UgbmVlZCB0byBkZXRlY3QgYW5kIGZpeCBib3RoXG5cbiAgICBjb25zdCBzY2FsZSA9IHt4U2NhbGU6IDEuMCwgeVNjYWxlOiAxLjB9O1xuXG4gICAgY29uc3Qgc2NyZWVuQVIgPSBzY3JlZW5XaWR0aCAvIHNjcmVlbkhlaWdodDtcbiAgICBjb25zdCBzaG90QVIgPSBzaG90V2lkdGggLyBzaG90SGVpZ2h0O1xuICAgIGlmIChNYXRoLnJvdW5kKHNjcmVlbkFSICogRkxPQVRfUFJFQ0lTSU9OKSA9PT0gTWF0aC5yb3VuZChzaG90QVIgKiBGTE9BVF9QUkVDSVNJT04pKSB7XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYFNjcmVlbnNob3QgYXNwZWN0IHJhdGlvICcke3Nob3RBUn0nICgke3Nob3RXaWR0aH14JHtzaG90SGVpZ2h0fSkgbWF0Y2hlZCBgICtcbiAgICAgICAgICBgc2NyZWVuIGFzcGVjdCByYXRpbyAnJHtzY3JlZW5BUn0nICgke3NjcmVlbldpZHRofXgke3NjcmVlbkhlaWdodH0pYFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBXaGVuIHRyeWluZyB0byBmaW5kIGFuIGVsZW1lbnQsIGRldGVybWluZWQgdGhhdCB0aGUgc2NyZWVuIGAgK1xuICAgICAgICAgIGBhc3BlY3QgcmF0aW8gYW5kIHNjcmVlbnNob3QgYXNwZWN0IHJhdGlvIGFyZSBkaWZmZXJlbnQuIFNjcmVlbiBgICtcbiAgICAgICAgICBgaXMgJHtzY3JlZW5XaWR0aH14JHtzY3JlZW5IZWlnaHR9IHdoZXJlYXMgc2NyZWVuc2hvdCBpcyBgICtcbiAgICAgICAgICBgJHtzaG90V2lkdGh9eCR7c2hvdEhlaWdodH0uYFxuICAgICAgKTtcblxuICAgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHgtc2NhbGUgYW5kIHktc2NhbGUgYXJlIGRpZmZlcmVudCwgd2UgbmVlZCB0byBkZWNpZGVcbiAgICAgIC8vIHdoaWNoIG9uZSB0byByZXNwZWN0LCBvdGhlcndpc2UgdGhlIHNjcmVlbnNob3QgYW5kIHRlbXBsYXRlIHdpbGwgZW5kIHVwXG4gICAgICAvLyBiZWluZyByZXNpemVkIGluIGEgd2F5IHRoYXQgY2hhbmdlcyBpdHMgYXNwZWN0IHJhdGlvIChkaXN0b3J0cyBpdCkuIEZvciBleGFtcGxlLCBsZXQncyBzYXk6XG4gICAgICAvLyB0aGlzLmdldFNjcmVlbnNob3Qoc2hvdFdpZHRoLCBzaG90SGVpZ2h0KSBpcyA1NDB4Mzk3LFxuICAgICAgLy8gdGhpcy5nZXREZXZpY2VTaXplKHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpIGlzIDEwODB4MTkyMC5cbiAgICAgIC8vIFRoZSByYXRpbyB3b3VsZCB0aGVuIGJlIHt4U2NhbGU6IDAuNSwgeVNjYWxlOiAwLjJ9LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBtdXN0IHNob3VsZCBgeVNjYWxlOiAwLjJgIGFzIHNjYWxlRmFjdG9yLCBiZWNhdXNlXG4gICAgICAvLyBpZiB3ZSBzZWxlY3QgdGhlIHhTY2FsZSwgdGhlIGhlaWdodCB3aWxsIGJlIGJpZ2dlciB0aGFuIHJlYWwgc2NyZWVuc2hvdCBzaXplXG4gICAgICAvLyB3aGljaCBpcyB1c2VkIHRvIGltYWdlIGNvbXBhcmlzb24gYnkgT3BlbkNWIGFzIGEgYmFzZSBpbWFnZS5cbiAgICAgIC8vIEFsbCBvZiB0aGlzIGlzIHByaW1hcmlseSB1c2VmdWwgd2hlbiB0aGUgc2NyZWVuc2hvdCBpcyBhIGhvcml6b250YWwgc2xpY2UgdGFrZW4gb3V0IG9mIHRoZVxuICAgICAgLy8gc2NyZWVuIChmb3IgZXhhbXBsZSBub3QgaW5jbHVkaW5nIHRvcC9ib3R0b20gbmF2IGJhcnMpXG4gICAgICBjb25zdCB4U2NhbGUgPSAoMS4wICogc2hvdFdpZHRoKSAvIHNjcmVlbldpZHRoO1xuICAgICAgY29uc3QgeVNjYWxlID0gKDEuMCAqIHNob3RIZWlnaHQpIC8gc2NyZWVuSGVpZ2h0O1xuICAgICAgY29uc3Qgc2NhbGVGYWN0b3IgPSB4U2NhbGUgPj0geVNjYWxlID8geVNjYWxlIDogeFNjYWxlO1xuXG4gICAgICBsb2cud2FybihcbiAgICAgICAgYFJlc2l6aW5nIHNjcmVlbnNob3QgdG8gJHtzaG90V2lkdGggKiBzY2FsZUZhY3Rvcn14JHtzaG90SGVpZ2h0ICogc2NhbGVGYWN0b3J9IHRvIG1hdGNoIGAgK1xuICAgICAgICAgIGBzY3JlZW4gYXNwZWN0IHJhdGlvIHNvIHRoYXQgaW1hZ2UgZWxlbWVudCBjb29yZGluYXRlcyBoYXZlIGEgYCArXG4gICAgICAgICAgYGdyZWF0ZXIgY2hhbmNlIG9mIGJlaW5nIGNvcnJlY3QuYFxuICAgICAgKTtcbiAgICAgIGltZ09iaiA9IGltZ09iai5yZXNpemUoc2hvdFdpZHRoICogc2NhbGVGYWN0b3IsIHNob3RIZWlnaHQgKiBzY2FsZUZhY3Rvcik7XG5cbiAgICAgIHNjYWxlLnhTY2FsZSAqPSBzY2FsZUZhY3RvcjtcbiAgICAgIHNjYWxlLnlTY2FsZSAqPSBzY2FsZUZhY3RvcjtcblxuICAgICAgc2hvdFdpZHRoID0gaW1nT2JqLmJpdG1hcC53aWR0aDtcbiAgICAgIHNob3RIZWlnaHQgPSBpbWdPYmouYml0bWFwLmhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBSZXNpemUgYmFzZWQgb24gdGhlIHNjcmVlbiBkaW1lbnNpb25zIG9ubHkgaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBtaXNtYXRjaGVkXG4gICAgLy8gc2luY2UgZXhjZXB0IGZvciB0aGF0LCBpdCBtaWdodCBiZSBhIHNpdHVhdGlvbiB3aGljaCBpcyBkaWZmZXJlbnQgd2luZG93IHJlY3QgYW5kXG4gICAgLy8gc2NyZWVuc2hvdCBzaXplIGxpa2UgYEBkcml2ZXIud2luZG93X3JlY3QgIz0+eD0wLCB5PTAsIHdpZHRoPTEwODAsIGhlaWdodD0xNzk0YCBhbmRcbiAgICAvLyBgXCJkZXZpY2VTY3JlZW5TaXplXCI9PlwiMTA4MHgxOTIwXCJgXG4gICAgaWYgKHNjcmVlbldpZHRoICE9PSBzaG90V2lkdGggJiYgc2NyZWVuSGVpZ2h0ICE9PSBzaG90SGVpZ2h0KSB7XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYFNjYWxpbmcgc2NyZWVuc2hvdCBmcm9tICR7c2hvdFdpZHRofXgke3Nob3RIZWlnaHR9IHRvIG1hdGNoIGAgK1xuICAgICAgICAgIGBzY3JlZW4gYXQgJHtzY3JlZW5XaWR0aH14JHtzY3JlZW5IZWlnaHR9YFxuICAgICAgKTtcbiAgICAgIGltZ09iaiA9IGltZ09iai5yZXNpemUoc2NyZWVuV2lkdGgsIHNjcmVlbkhlaWdodCk7XG5cbiAgICAgIHNjYWxlLnhTY2FsZSAqPSAoMS4wICogc2NyZWVuV2lkdGgpIC8gc2hvdFdpZHRoO1xuICAgICAgc2NhbGUueVNjYWxlICo9ICgxLjAgKiBzY3JlZW5IZWlnaHQpIC8gc2hvdEhlaWdodDtcbiAgICB9XG5cbiAgICBiNjRTY3JlZW5zaG90ID0gKGF3YWl0IGltZ09iai5nZXRCdWZmZXIoaW1hZ2VVdGlsLk1JTUVfUE5HKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIHJldHVybiB7YjY0U2NyZWVuc2hvdCwgc2NhbGV9O1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIEltYWdlVGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGZpeEltYWdlVGVtcGxhdGVTY2FsZSAtIGZpeEltYWdlVGVtcGxhdGVTY2FsZSBpbiBkZXZpY2Utc2V0dGluZ3NcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgLSBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIGluIGRldmljZS1zZXR0aW5nc1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgLSBJZ25vcmUgZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSBpZiBpdCBoYXMgdHJ1ZS5cbiAgICogSWYgYjY0VGVtcGxhdGUgaGFzIGJlZW4gc2NhbGVkIHRvIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgb3Igc2hvdWxkIGlnbm9yZSB0aGUgc2NhbGUsXG4gICAqIHRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSB0cnVlLiBlLmcuIGNsaWNrIGluIGltYWdlLWVsZW1lbnQgbW9kdWxlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4U2NhbGUgLSBTY2FsZSByYXRpbyBmb3Igd2lkdGhcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHlTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciBoZWlnaHRcblxuICAgKi9cbiAgLyoqXG4gICAqIEdldCBhIGltYWdlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0ZW1wbGF0ZSBtYWNoaW5nLlxuICAgKiBSZXR1cm5zIHNjYWxlZCBpbWFnZSBpZiBzY2FsZSByYXRpbyBpcyBwcm92aWRlZC5cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gYmFzZTY0LWVuY29kZWQgaW1hZ2UgdXNlZCBhcyBhIHRlbXBsYXRlIHRvIGJlXG4gICAqIG1hdGNoZWQgaW4gdGhlIHNjcmVlbnNob3RcbiAgICogQHBhcmFtIHtJbWFnZVRlbXBsYXRlU2V0dGluZ3N9IG9wdHMgLSBJbWFnZSB0ZW1wbGF0ZSBzY2FsZSByZWxhdGVkIG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gYmFzZTY0LWVuY29kZWQgc2NhbGVkIHRlbXBsYXRlIHNjcmVlbnNob3RcbiAgICovXG4gIGFzeW5jIGZpeEltYWdlVGVtcGxhdGVTY2FsZShiNjRUZW1wbGF0ZSwgb3B0cykge1xuICAgIGlmICghb3B0cykge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIGxldCB7XG4gICAgICBmaXhJbWFnZVRlbXBsYXRlU2NhbGUgPSBmYWxzZSxcbiAgICAgIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgPSBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuICAgICAgaWdub3JlRGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSA9IGZhbHNlLFxuICAgICAgeFNjYWxlID0gREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUsXG4gICAgICB5U2NhbGUgPSBERUZBVUxUX0ZJWF9JTUFHRV9URU1QTEFURV9TQ0FMRSxcbiAgICB9ID0gb3B0cztcblxuICAgIGlmIChpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlKSB7XG4gICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlID0gREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0XG4gICAgaWYgKGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgPT09IERFRkFVTFRfVEVNUExBVEVfSU1BR0VfU0NBTEUgJiYgIWZpeEltYWdlVGVtcGxhdGVTY2FsZSkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIC8vIENhbGN1bGF0ZSB4U2NhbGUgYW5kIHlTY2FsZSBBcHBpdW0gc2hvdWxkIHNjYWxlXG4gICAgaWYgKGZpeEltYWdlVGVtcGxhdGVTY2FsZSkge1xuICAgICAgeFNjYWxlICo9IGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU7XG4gICAgICB5U2NhbGUgKj0gZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgeFNjYWxlID0geVNjYWxlID0gMSAqIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU7XG4gICAgfVxuXG4gICAgLy8geFNjYWxlIGFuZCB5U2NhbGUgY2FuIGJlIE5hTiBpZiBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIGlzIHN0cmluZywgZm9yIGV4YW1wbGVcbiAgICBpZiAoIXBhcnNlRmxvYXQoU3RyaW5nKHhTY2FsZSkpIHx8ICFwYXJzZUZsb2F0KFN0cmluZyh5U2NhbGUpKSkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBpZiB0aGUgc2NhbGUgaXMgZGVmYXVsdCwgMSwgdmFsdWVcbiAgICBpZiAoXG4gICAgICBNYXRoLnJvdW5kKHhTY2FsZSAqIEZMT0FUX1BSRUNJU0lPTikgPT09XG4gICAgICAgIE1hdGgucm91bmQoREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUgKiBGTE9BVF9QUkVDSVNJT04pICYmXG4gICAgICBNYXRoLnJvdW5kKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgeVNjYWxlICogRkxPQVRfUFJFQ0lTSU9OID09PVxuICAgICAgICAgICAgTWF0aC5yb3VuZChERUZBVUxUX0ZJWF9JTUFHRV9URU1QTEFURV9TQ0FMRSAqIEZMT0FUX1BSRUNJU0lPTilcbiAgICAgICAgKVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIGxldCBpbWdUZW1wT2JqID0gYXdhaXQgaW1hZ2VVdGlsLmdldEppbXBJbWFnZShiNjRUZW1wbGF0ZSk7XG4gICAgbGV0IHt3aWR0aDogYmFzZVRlbXBXaWR0aCwgaGVpZ2h0OiBiYXNlVGVtcEhlaWdofSA9IGltZ1RlbXBPYmouYml0bWFwO1xuXG4gICAgY29uc3Qgc2NhbGVkV2lkdGggPSBiYXNlVGVtcFdpZHRoICogeFNjYWxlO1xuICAgIGNvbnN0IHNjYWxlZEhlaWdodCA9IGJhc2VUZW1wSGVpZ2ggKiB5U2NhbGU7XG4gICAgbG9nLmluZm8oXG4gICAgICBgU2NhbGluZyB0ZW1wbGF0ZSBpbWFnZSBmcm9tICR7YmFzZVRlbXBXaWR0aH14JHtiYXNlVGVtcEhlaWdofWAgK1xuICAgICAgICBgIHRvICR7c2NhbGVkV2lkdGh9eCR7c2NhbGVkSGVpZ2h0fWBcbiAgICApO1xuICAgIGxvZy5pbmZvKGBUaGUgcmF0aW8gaXMgJHt4U2NhbGV9IGFuZCAke3lTY2FsZX1gKTtcbiAgICBpbWdUZW1wT2JqID0gYXdhaXQgaW1nVGVtcE9iai5yZXNpemUoc2NhbGVkV2lkdGgsIHNjYWxlZEhlaWdodCk7XG4gICAgcmV0dXJuIChhd2FpdCBpbWdUZW1wT2JqLmdldEJ1ZmZlcihpbWFnZVV0aWwuTUlNRV9QTkcpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cbn1cblxuZXhwb3J0IHtXM0NfRUxFTUVOVF9LRVksIE1KU09OV1BfRUxFTUVOVF9LRVksIERFRkFVTFRfU0VUVElOR1MsIERFRkFVTFRfRklYX0lNQUdFX1RFTVBMQVRFX1NDQUxFfTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXh0ZXJuYWxEcml2ZXJ9IEV4dGVybmFsRHJpdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2NyZWVuc2hvdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGI2NFNjcmVlbnNob3QgLSBiYXNlNjQgYmFzZWQgc2NyZWVuc2hvdCBzdHJpbmdcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNjcmVlbnNob3RTY2FsZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IHhTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciB3aWR0aFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHlTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciBoZWlnaHRcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUVBLE1BQU1BLG1CQUFtQixHQUFHLFNBQTVCOztBQUNBLE1BQU1DLGVBQWUsR0FBR0MsYUFBQSxDQUFLQywwQkFBN0I7O0FBQ0EsTUFBTUMsZ0NBQWdDLEdBQUcsQ0FBekM7O0FBR0EsTUFBTUMsZUFBZSxHQUFHLE1BQXhCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEdBQXhCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsT0FBTyxJQUFQLEdBQWMsRUFBM0M7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRztFQUd2QkMsbUJBQW1CLEVBQUVDLGdDQUhFO0VBU3ZCQyxnQkFBZ0IsRUFBRSxFQVRLO0VBYXZCQywwQkFBMEIsRUFBRSxJQWJMO0VBa0J2QkMsb0JBQW9CLEVBQUUsS0FsQkM7RUEwQnZCQyxxQkFBcUIsRUFBRSxLQTFCQTtFQWtDdkJDLHlCQUF5QixFQUFFQywwQ0FsQ0o7RUFzQ3ZCQyw2QkFBNkIsRUFBRSxJQXRDUjtFQTBDdkJDLDhCQUE4QixFQUFFLEtBMUNUO0VBOEN2QkMsdUJBQXVCLEVBQUVDLHVDQTlDRjtFQWtEdkJDLHFCQUFxQixFQUFFO0FBbERBLENBQXpCOzs7QUFxRGUsTUFBTUMsa0JBQU4sQ0FBeUI7RUFFdENDLE1BQU07RUFHTkMsVUFBVTs7RUFPVkMsV0FBVyxDQUFDRixNQUFELEVBQVNHLE9BQU8sR0FBR25CLG9CQUFuQixFQUF5QztJQUNsRCxLQUFLZ0IsTUFBTCxHQUFjQSxNQUFkO0lBQ0EsS0FBS0MsVUFBTCxHQUFrQixJQUFJRyxpQkFBSixDQUFRO01BQ3hCQyxHQUFHLEVBQUV0QixlQURtQjtNQUV4Qm9CLE9BRndCO01BR3hCRyxlQUFlLEVBQUdDLEVBQUQsSUFB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
|
|
347
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSlNPTldQX0VMRU1FTlRfS0VZIiwiVzNDX0VMRU1FTlRfS0VZIiwidXRpbCIsIlczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSIiwiREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUiLCJGTE9BVF9QUkVDSVNJT04iLCJNQVhfQ0FDSEVfSVRFTVMiLCJNQVhfQ0FDSEVfU0laRV9CWVRFUyIsIkRFRkFVTFRfU0VUVElOR1MiLCJpbWFnZU1hdGNoVGhyZXNob2xkIiwiREVGQVVMVF9NQVRDSF9USFJFU0hPTEQiLCJpbWFnZU1hdGNoTWV0aG9kIiwiZml4SW1hZ2VGaW5kU2NyZWVuc2hvdERpbXMiLCJmaXhJbWFnZVRlbXBsYXRlU2l6ZSIsImZpeEltYWdlVGVtcGxhdGVTY2FsZSIsImRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUiLCJERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFIiwiY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MiLCJhdXRvVXBkYXRlSW1hZ2VFbGVtZW50UG9zaXRpb24iLCJpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSIsIklNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MiLCJnZXRNYXRjaGVkSW1hZ2VSZXN1bHQiLCJJbWFnZUVsZW1lbnRGaW5kZXIiLCJkcml2ZXIiLCJpbWdFbENhY2hlIiwiY29uc3RydWN0b3IiLCJtYXhTaXplIiwiTFJVIiwibWF4Iiwic2l6ZUNhbGN1bGF0aW9uIiwiZWwiLCJ0ZW1wbGF0ZSIsImxlbmd0aCIsInNldERyaXZlciIsInJlZ2lzdGVySW1hZ2VFbGVtZW50IiwiaW1nRWwiLCJzZXQiLCJpZCIsInByb3RvS2V5IiwiaXNXM0NQcm90b2NvbCIsImFzRWxlbWVudCIsImZpbmRCeUltYWdlIiwiYjY0VGVtcGxhdGUiLCJzaG91bGRDaGVja1N0YWxlbmVzcyIsIm11bHRpcGxlIiwiaWdub3JlRGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSIsIkVycm9yIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInRocmVzaG9sZCIsInZpc3VhbGl6ZSIsImxvZyIsImluZm8iLCJnZXRXaW5kb3dTaXplIiwid2lkdGgiLCJzY3JlZW5XaWR0aCIsImhlaWdodCIsInNjcmVlbkhlaWdodCIsImVuc3VyZVRlbXBsYXRlU2l6ZSIsInJlc3VsdHMiLCJjb25kaXRpb24iLCJiNjRTY3JlZW5zaG90Iiwic2NhbGUiLCJnZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kIiwiY29tcGFyaXNvbk9wdHMiLCJtZXRob2QiLCJwdXNoIiwiY29tcGFyZUltYWdlcyIsIk1BVENIX1RFTVBMQVRFX01PREUiLCJlcnIiLCJtZXNzYWdlIiwibWF0Y2giLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJfIiwiaXNFbXB0eSIsImVycm9ycyIsIk5vU3VjaEVsZW1lbnRFcnJvciIsImVsZW1lbnRzIiwibWFwIiwicmVjdCIsInNjb3JlIiwidmlzdWFsaXphdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJJbWFnZUVsZW1lbnQiLCJyZWdpc3RlcmVkRWxlbWVudHMiLCJpbWdPYmoiLCJpbWFnZVV0aWwiLCJnZXRKaW1wSW1hZ2UiLCJ0cGxXaWR0aCIsInRwbEhlaWdodCIsImJpdG1hcCIsInNjYWxlVG9GaXQiLCJnZXRCdWZmZXIiLCJNSU1FX1BORyIsInRvU3RyaW5nIiwiZ2V0U2NyZWVuc2hvdCIsIk9iamVjdCIsImFzc2lnbiIsIndhcm4iLCJzaG90V2lkdGgiLCJzaG90SGVpZ2h0IiwieFNjYWxlIiwieVNjYWxlIiwic2NyZWVuQVIiLCJzaG90QVIiLCJNYXRoIiwicm91bmQiLCJzY2FsZUZhY3RvciIsInJlc2l6ZSIsIm9wdHMiLCJwYXJzZUZsb2F0IiwiU3RyaW5nIiwiTnVtYmVyIiwiaW1nVGVtcE9iaiIsImJhc2VUZW1wV2lkdGgiLCJiYXNlVGVtcEhlaWdoIiwic2NhbGVkV2lkdGgiLCJzY2FsZWRIZWlnaHQiXSwic291cmNlcyI6WyIuLi8uLi9saWIvZmluZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgTFJVIGZyb20gJ2xydS1jYWNoZSc7XG5pbXBvcnQge2Vycm9yc30gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQge3V0aWwsIGltYWdlVXRpbH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHtcbiAgSW1hZ2VFbGVtZW50LFxuICBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuICBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDLFxufSBmcm9tICcuL2ltYWdlLWVsZW1lbnQnO1xuaW1wb3J0IHtNQVRDSF9URU1QTEFURV9NT0RFLCBjb21wYXJlSW1hZ2VzLCBERUZBVUxUX01BVENIX1RIUkVTSE9MRH0gZnJvbSAnLi9jb21wYXJlJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5jb25zdCBNSlNPTldQX0VMRU1FTlRfS0VZID0gJ0VMRU1FTlQnO1xuY29uc3QgVzNDX0VMRU1FTlRfS0VZID0gdXRpbC5XM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUjtcbmNvbnN0IERFRkFVTFRfRklYX0lNQUdFX1RFTVBMQVRFX1NDQUxFID0gMTtcbi8vIFVzZWQgdG8gY29tcGFyZSByYXRpbyBhbmQgc2NyZWVuIHdpZHRoXG4vLyBQaXhlbCBpcyBiYXNpY2FsbHkgdW5kZXIgMTA4MCBmb3IgZXhhbXBsZS4gMTAwSyBpcyBwcm9iYWJseSBlbm91Z2ggZm8gYSB3aGlsZS5cbmNvbnN0IEZMT0FUX1BSRUNJU0lPTiA9IDEwMDAwMDtcbmNvbnN0IE1BWF9DQUNIRV9JVEVNUyA9IDEwMDtcbmNvbnN0IE1BWF9DQUNIRV9TSVpFX0JZVEVTID0gMTAyNCAqIDEwMjQgKiA0MDsgLy8gNDBtYlxuXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTID0ge1xuICAvLyB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEgcmVwcmVzZW50aW5nIG1hdGNoIHN0cmVuZ3RoLCBiZWxvdyB3aGljaCBhbiBpbWFnZVxuICAvLyBlbGVtZW50IHdpbGwgbm90IGJlIGZvdW5kXG4gIGltYWdlTWF0Y2hUaHJlc2hvbGQ6IERFRkFVTFRfTUFUQ0hfVEhSRVNIT0xELFxuXG4gIC8vIE9uZSBvZiBwb3NzaWJsZSBpbWFnZSBtYXRjaGluZyBtZXRob2RzLlxuICAvLyBSZWFkIGh0dHBzOi8vZG9jcy5vcGVuY3Yub3JnLzMuMC1iZXRhL2RvYy9weV90dXRvcmlhbHMvcHlfaW1ncHJvYy9weV90ZW1wbGF0ZV9tYXRjaGluZy9weV90ZW1wbGF0ZV9tYXRjaGluZy5odG1sXG4gIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gIC8vIFRNX0NDT0VGRl9OT1JNRUQgYnkgZGVmYXVsdFxuICBpbWFnZU1hdGNoTWV0aG9kOiAnJyxcblxuICAvLyBpZiB0aGUgaW1hZ2UgcmV0dXJuZWQgYnkgZ2V0U2NyZWVuc2hvdCBkaWZmZXJzIGluIHNpemUgb3IgYXNwZWN0IHJhdGlvXG4gIC8vIGZyb20gdGhlIHNjcmVlbiwgYXR0ZW1wdCB0byBmaXggaXQgYXV0b21hdGljYWxseVxuICBmaXhJbWFnZUZpbmRTY3JlZW5zaG90RGltczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIEFwcGl1bSBzaG91bGQgZW5zdXJlIHRoYXQgYW4gaW1hZ2UgdGVtcGxhdGUgc2VudCBpbiBkdXJpbmcgaW1hZ2VcbiAgLy8gZWxlbWVudCBmaW5kIHNob3VsZCBoYXZlIGl0cyBzaXplIGFkanVzdGVkIHNvIHRoZSBtYXRjaCBhbGdvcml0aG0gd2lsbCBub3RcbiAgLy8gY29tcGxhaW5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNpemU6IGZhbHNlLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCBlbnN1cmUgdGhhdCBhbiBpbWFnZSB0ZW1wbGF0ZSBzZW50IGluIGR1cmluZyBpbWFnZVxuICAvLyBlbGVtZW50IGZpbmQgc2hvdWxkIGhhdmUgaXRzIHNjYWxlIGFkanVzdGVkIHRvIGRpc3BsYXkgc2l6ZSBzbyB0aGUgbWF0Y2hcbiAgLy8gYWxnb3JpdGhtIHdpbGwgbm90IGNvbXBsYWluLlxuICAvLyBlLmcuIGlPUyBoYXMgYHdpZHRoPTM3NSwgaGVpZ2h0PTY2N2Agd2luZG93IHJlY3QsIGJ1dCBpdHMgc2NyZWVuc2hvdCBpc1xuICAvLyAgICAgIGB3aWR0aD03NTAgw5cgaGVpZ2h0PTEzMzRgIHBpeGVscy4gVGhpcyBzZXR0aW5nIGhlbHAgdG8gYWRqdXN0IHRoZSBzY2FsZVxuICAvLyAgICAgIGlmIGEgdXNlciB1c2UgYHdpZHRoPTc1MCDDlyBoZWlnaHQ9MTMzNGAgcGl4ZWxzJ3MgYmFzZSB0ZW1wbGF0ZSBpbWFnZS5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNjYWxlOiBmYWxzZSxcblxuICAvLyBVc2VycyBtaWdodCBoYXZlIHNjYWxlZCB0ZW1wbGF0ZSBpbWFnZSB0byByZWR1Y2UgdGhlaXIgc3RvcmFnZSBzaXplLlxuICAvLyBUaGlzIHNldHRpbmcgYWxsb3dzIHVzZXJzIHRvIHNjYWxlIGEgdGVtcGxhdGUgaW1hZ2UgdGhleSBzZW5kIHRvIEFwcGl1bSBzZXJ2ZXJcbiAgLy8gc28gdGhhdCB0aGUgQXBwaXVtIHNlcnZlciBjb21wYXJlcyB0aGUgYWN0dWFsIHNjYWxlIHVzZXJzIG9yaWdpbmFsbHkgaGFkLlxuICAvLyBlLmcuIElmIGEgdXNlciBoYXMgYW4gaW1hZ2Ugb2YgMjcwIHggMzIgcGl4ZWxzIHdoaWNoIHdhcyBvcmlnaW5hbGx5IDEwODAgeCAxMjYgcGl4ZWxzLFxuICAvLyAgICAgIHRoZSB1c2VyIGNhbiBzZXQge2RlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU6IDQuMH0gdG8gc2NhbGUgdGhlIHNtYWxsIGltYWdlXG4gIC8vICAgICAgdG8gdGhlIG9yaWdpbmFsIG9uZSBzbyB0aGF0IEFwcGl1bSBjYW4gY29tcGFyZSBpdCBhcyB0aGUgb3JpZ2luYWwgb25lLlxuICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlOiBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCByZS1jaGVjayB0aGF0IGFuIGltYWdlIGVsZW1lbnQgY2FuIGJlIG1hdGNoZWRcbiAgLy8gYWdhaW5zdCB0aGUgY3VycmVudCBzY3JlZW5zaG90IGJlZm9yZSBjbGlja2luZyBpdFxuICBjaGVja0ZvckltYWdlRWxlbWVudFN0YWxlbmVzczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIGJlZm9yZSBjbGlja2luZyBvbiBhbiBpbWFnZSBlbGVtZW50IEFwcGl1bSBzaG91bGQgcmUtZGV0ZXJtaW5lIHRoZVxuICAvLyBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBvbiBzY3JlZW5cbiAgYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uOiBmYWxzZSxcblxuICAvLyB3aGljaCBtZXRob2QgdG8gdXNlIGZvciB0YXBwaW5nIGJ5IGNvb3JkaW5hdGUgZm9yIGltYWdlIGVsZW1lbnRzLiB0aGVcbiAgLy8gb3B0aW9ucyBhcmUgJ3czYycgb3IgJ21qc29ud3AnXG4gIGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5OiBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDLFxuXG4gIC8vIHdoaWNoIG1ldGhvZCB0byB1c2UgdG8gc2F2ZSB0aGUgbWF0Y2hlZCBpbWFnZSBhcmVhIGluIEltYWdlRWxlbWVudCBjbGFzcy5cbiAgLy8gSXQgaXMgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2UuXG4gIGdldE1hdGNoZWRJbWFnZVJlc3VsdDogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbWFnZUVsZW1lbnRGaW5kZXIge1xuICAvKiogQHR5cGUge0V4dGVybmFsRHJpdmVyfSAqL1xuICBkcml2ZXI7XG5cbiAgLyoqIEB0eXBlIHtMUlU8c3RyaW5nLEltYWdlRWxlbWVudD59ICovXG4gIGltZ0VsQ2FjaGU7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0ZXJuYWxEcml2ZXJ9IGRyaXZlclxuICAgKiBAcGFyYW0ge251bWJlcn0gW21heFNpemVdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihkcml2ZXIsIG1heFNpemUgPSBNQVhfQ0FDSEVfU0laRV9CWVRFUykge1xuICAgIHRoaXMuZHJpdmVyID0gZHJpdmVyO1xuICAgIHRoaXMuaW1nRWxDYWNoZSA9IG5ldyBMUlUoe1xuICAgICAgbWF4OiBNQVhfQ0FDSEVfSVRFTVMsXG4gICAgICBtYXhTaXplLFxuICAgICAgc2l6ZUNhbGN1bGF0aW9uOiAoZWwpID0+IGVsLnRlbXBsYXRlLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHNldERyaXZlcihkcml2ZXIpIHtcbiAgICB0aGlzLmRyaXZlciA9IGRyaXZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0ltYWdlRWxlbWVudH0gaW1nRWxcbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqL1xuICByZWdpc3RlckltYWdlRWxlbWVudChpbWdFbCkge1xuICAgIHRoaXMuaW1nRWxDYWNoZS5zZXQoaW1nRWwuaWQsIGltZ0VsKTtcbiAgICBjb25zdCBwcm90b0tleSA9IHRoaXMuZHJpdmVyLmlzVzNDUHJvdG9jb2woKSA/IFczQ19FTEVNRU5UX0tFWSA6IE1KU09OV1BfRUxFTUVOVF9LRVk7XG4gICAgcmV0dXJuIGltZ0VsLmFzRWxlbWVudChwcm90b0tleSk7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGVkZWYgRmluZEJ5SW1hZ2VPcHRpb25zXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3Nob3VsZENoZWNrU3RhbGVuZXNzPWZhbHNlXSAtIHdoZXRoZXIgdGhpcyBjYWxsIHRvIGZpbmQgYW5cbiAgICogaW1hZ2UgaXMgbWVyZWx5IHRvIGNoZWNrIHN0YWxlbmVzcy4gSWYgc28gd2UgY2FuIGJ5cGFzcyBhIGxvdCBvZiBsb2dpY1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IFttdWx0aXBsZT1mYWxzZV0gLSBXaGV0aGVyIHdlIGFyZSBmaW5kaW5nIG9uZSBlbGVtZW50IG9yXG4gICAqIG11bHRpcGxlXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2lnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU9ZmFsc2VdIC0gV2hldGhlciB3ZVxuICAgKiBpZ25vcmUgZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZS4gSXQgY2FuIGJlIHVzZWQgd2hlbiB5b3Ugd291bGQgbGlrZSB0b1xuICAgKiBzY2FsZSBiNjRUZW1wbGF0ZSB3aXRoIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgc2V0dGluZy5cbiAgICovXG5cbiAgLyoqXG4gICAqIEZpbmQgYSBzY3JlZW4gcmVjdCByZXByZXNlbnRlZCBieSBhbiBJbWFnZUVsZW1lbnQgY29ycmVzcG9uZGluZyB0byBhbiBpbWFnZVxuICAgKiB0ZW1wbGF0ZSBzZW50IGluIGJ5IHRoZSBjbGllbnRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gYmFzZTY0LWVuY29kZWQgaW1hZ2UgdXNlZCBhcyBhIHRlbXBsYXRlIHRvIGJlXG4gICAqIG1hdGNoZWQgaW4gdGhlIHNjcmVlbnNob3RcbiAgICogQHBhcmFtIHtGaW5kQnlJbWFnZU9wdGlvbnN9IG9wdHMgLSBhZGRpdGlvbmFsIG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudHxFbGVtZW50W118SW1hZ2VFbGVtZW50Pn0gLSBXZWJEcml2ZXIgZWxlbWVudCB3aXRoIGEgc3BlY2lhbCBpZCBwcmVmaXhcbiAgICovXG4gIGFzeW5jIGZpbmRCeUltYWdlKFxuICAgIGI2NFRlbXBsYXRlLFxuICAgIHtzaG91bGRDaGVja1N0YWxlbmVzcyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlID0gZmFsc2V9XG4gICkge1xuICAgIGlmICghdGhpcy5kcml2ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgZmluZCB3aXRob3V0IGEgZHJpdmVyIWApO1xuICAgIH1cbiAgICBjb25zdCBzZXR0aW5ncyA9IHsuLi5ERUZBVUxUX1NFVFRJTkdTLCAuLi50aGlzLmRyaXZlci5zZXR0aW5ncy5nZXRTZXR0aW5ncygpfTtcbiAgICBjb25zdCB7XG4gICAgICBpbWFnZU1hdGNoVGhyZXNob2xkOiB0aHJlc2hvbGQsXG4gICAgICBpbWFnZU1hdGNoTWV0aG9kLFxuICAgICAgZml4SW1hZ2VUZW1wbGF0ZVNpemUsXG4gICAgICBmaXhJbWFnZVRlbXBsYXRlU2NhbGUsXG4gICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgZ2V0TWF0Y2hlZEltYWdlUmVzdWx0OiB2aXN1YWxpemUsXG4gICAgfSA9IHNldHRpbmdzO1xuXG4gICAgbG9nLmluZm8oYEZpbmRpbmcgaW1hZ2UgZWxlbWVudCB3aXRoIG1hdGNoIHRocmVzaG9sZCAke3RocmVzaG9sZH1gKTtcbiAgICBpZiAoIXRoaXMuZHJpdmVyLmdldFdpbmRvd1NpemUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkICdnZXRXaW5kb3dTaXplJyBjb21tYW5kXCIpO1xuICAgIH1cbiAgICBjb25zdCB7d2lkdGg6IHNjcmVlbldpZHRoLCBoZWlnaHQ6IHNjcmVlbkhlaWdodH0gPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRXaW5kb3dTaXplKCk7XG5cbiAgICAvLyBzb21lb25lIG1pZ2h0IGhhdmUgc2VudCBpbiBhIHRlbXBsYXRlIHRoYXQncyBsYXJnZXIgdGhhbiB0aGUgc2NyZWVuXG4gICAgLy8gZGltZW5zaW9ucy4gSWYgc28gbGV0J3MgY2hlY2sgYW5kIGN1dCBpdCBkb3duIHRvIHNpemUgc2luY2UgdGhlIGFsZ29yaXRobVxuICAgIC8vIHdpbGwgbm90IHdvcmsgdW5sZXNzIHdlIGRvLiBCdXQgYmVjYXVzZSBpdCByZXF1aXJlcyBzb21lIHBvdGVudGlhbGx5XG4gICAgLy8gZXhwZW5zaXZlIGNvbW1hbmRzLCBvbmx5IGRvIHRoaXMgaWYgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCBpdCBpbiBzZXR0aW5ncy5cbiAgICBpZiAoZml4SW1hZ2VUZW1wbGF0ZVNpemUpIHtcbiAgICAgIGI2NFRlbXBsYXRlID0gYXdhaXQgdGhpcy5lbnN1cmVUZW1wbGF0ZVNpemUoYjY0VGVtcGxhdGUsIHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBjb25kaXRpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7YjY0U2NyZWVuc2hvdCwgc2NhbGV9ID0gYXdhaXQgdGhpcy5nZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kKFxuICAgICAgICAgIHNjcmVlbldpZHRoLFxuICAgICAgICAgIHNjcmVlbkhlaWdodFxuICAgICAgICApO1xuXG4gICAgICAgIGI2NFRlbXBsYXRlID0gYXdhaXQgdGhpcy5maXhJbWFnZVRlbXBsYXRlU2NhbGUoYjY0VGVtcGxhdGUsIHtcbiAgICAgICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgICAgIGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUsXG4gICAgICAgICAgZml4SW1hZ2VUZW1wbGF0ZVNjYWxlLFxuICAgICAgICAgIC4uLnNjYWxlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjb21wYXJpc29uT3B0cyA9IHtcbiAgICAgICAgICB0aHJlc2hvbGQsXG4gICAgICAgICAgdmlzdWFsaXplLFxuICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaW1hZ2VNYXRjaE1ldGhvZCkge1xuICAgICAgICAgIGNvbXBhcmlzb25PcHRzLm1ldGhvZCA9IGltYWdlTWF0Y2hNZXRob2Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKFxuICAgICAgICAgICAgLi4uKGF3YWl0IGNvbXBhcmVJbWFnZXMoXG4gICAgICAgICAgICAgIE1BVENIX1RFTVBMQVRFX01PREUsXG4gICAgICAgICAgICAgIGI2NFNjcmVlbnNob3QsXG4gICAgICAgICAgICAgIGI2NFRlbXBsYXRlLFxuICAgICAgICAgICAgICBjb21wYXJpc29uT3B0c1xuICAgICAgICAgICAgKSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgICAgIGF3YWl0IGNvbXBhcmVJbWFnZXMoTUFUQ0hfVEVNUExBVEVfTU9ERSwgYjY0U2NyZWVuc2hvdCwgYjY0VGVtcGxhdGUsIGNvbXBhcmlzb25PcHRzKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWYgY29tcGFyZUltYWdlcyBmYWlscywgd2UnbGwgZ2V0IGEgc3BlY2lmaWMgZXJyb3IsIGJ1dCB3ZSBzaG91bGRcbiAgICAgICAgLy8gcmV0cnksIHNvIHRyYXAgdGhhdCBhbmQganVzdCByZXR1cm4gZmFsc2UgdG8gdHJpZ2dlciB0aGUgbmV4dCByb3VuZCBvZlxuICAgICAgICAvLyBpbXBsaWNpdGx5IHdhaXRpbmcuIEZvciBvdGhlciBlcnJvcnMsIHRocm93IHRoZW0gdG8gZ2V0IG91dCBvZiB0aGVcbiAgICAgICAgLy8gaW1wbGljaXQgd2FpdCBsb29wXG4gICAgICAgIGlmIChlcnIubWVzc2FnZS5tYXRjaCgvQ2Fubm90IGZpbmQgYW55IG9jY3VycmVuY2VzLykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyB0aGlzIGBpbXBsaWNpdFdhaXRGb3JDb25kaXRpb25gIG1ldGhvZCB3aWxsIHRocm93IGEgJ0NvbmRpdGlvbiB1bm1ldCdcbiAgICAgIC8vIGVycm9yIGlmIGFuIGVsZW1lbnQgaXMgbm90IGZvdW5kIGV2ZW50dWFsbHkuIEluIHRoYXQgY2FzZSwgd2Ugd2lsbFxuICAgICAgLy8gaGFuZGxlIHRoZSBlbGVtZW50IG5vdCBmb3VuZCByZXNwb25zZSBiZWxvdy4gSW4gdGhlIGNhc2Ugd2hlcmUgZ2V0IHNvbWVcbiAgICAgIC8vIF9vdGhlcl8ga2luZCBvZiBlcnJvciwgaXQgbWVhbnMgc29tZXRoaW5nIGJsZXcgdXAgdG90YWxseSBhcGFydCBmcm9tIHRoZVxuICAgICAgLy8gaW1wbGljaXQgd2FpdCB0aW1lb3V0LiBXZSBzaG91bGQgbm90IG1hc2sgdGhhdCBlcnJvciBhbmQgaW5zdGVhZCB0aHJvd1xuICAgICAgLy8gaXQgc3RyYWlnaHRhd2F5XG4gICAgICBpZiAoIWVyci5tZXNzYWdlLm1hdGNoKC9Db25kaXRpb24gdW5tZXQvKSkge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNFbXB0eShyZXN1bHRzKSkge1xuICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRWxlbWVudEVycm9yKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudHMgPSByZXN1bHRzLm1hcCgoe3JlY3QsIHNjb3JlLCB2aXN1YWxpemF0aW9ufSkgPT4ge1xuICAgICAgbG9nLmluZm8oYEltYWdlIHRlbXBsYXRlIG1hdGNoZWQ6ICR7SlNPTi5zdHJpbmdpZnkocmVjdCl9YCk7XG4gICAgICByZXR1cm4gbmV3IEltYWdlRWxlbWVudChiNjRUZW1wbGF0ZSwgcmVjdCwgc2NvcmUsIHZpc3VhbGl6YXRpb24sIHRoaXMpO1xuICAgIH0pO1xuXG4gICAgLy8gaWYgd2UncmUganVzdCBjaGVja2luZyBzdGFsZW5lc3MsIHJldHVybiBzdHJhaWdodGF3YXkgc28gd2UgZG9uJ3QgYWRkXG4gICAgLy8gYSBuZXcgZWxlbWVudCB0byB0aGUgY2FjaGUuIHNob3VsZENoZWNrU3RhbGVuZXNzIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGVcbiAgICAvLyBlbGVtZW50cywgc2luY2UgaXQgaXMgYSBwdXJlbHkgaW50ZXJuYWwgbWVjaGFuaXNtXG4gICAgaWYgKHNob3VsZENoZWNrU3RhbGVuZXNzKSB7XG4gICAgICByZXR1cm4gZWxlbWVudHNbMF07XG4gICAgfVxuXG4gICAgY29uc3QgcmVnaXN0ZXJlZEVsZW1lbnRzID0gZWxlbWVudHMubWFwKChpbWdFbCkgPT4gdGhpcy5yZWdpc3RlckltYWdlRWxlbWVudChpbWdFbCkpO1xuXG4gICAgcmV0dXJuIG11bHRpcGxlID8gcmVnaXN0ZXJlZEVsZW1lbnRzIDogcmVnaXN0ZXJlZEVsZW1lbnRzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IHRoZSBpbWFnZSB0ZW1wbGF0ZSBzZW50IGluIGZvciBhIGZpbmQgaXMgb2YgYSBzdWl0YWJsZSBzaXplXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiNjRUZW1wbGF0ZSAtIGJhc2U2NC1lbmNvZGVkIGltYWdlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY3JlZW5XaWR0aCAtIHdpZHRoIG9mIHNjcmVlblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2NyZWVuSGVpZ2h0IC0gaGVpZ2h0IG9mIHNjcmVlblxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBiYXNlNjQtZW5jb2RlZCBpbWFnZSwgcG90ZW50aWFsbHkgcmVzaXplZFxuICAgKi9cbiAgYXN5bmMgZW5zdXJlVGVtcGxhdGVTaXplKGI2NFRlbXBsYXRlLCBzY3JlZW5XaWR0aCwgc2NyZWVuSGVpZ2h0KSB7XG4gICAgbGV0IGltZ09iaiA9IGF3YWl0IGltYWdlVXRpbC5nZXRKaW1wSW1hZ2UoYjY0VGVtcGxhdGUpO1xuICAgIGxldCB7d2lkdGg6IHRwbFdpZHRoLCBoZWlnaHQ6IHRwbEhlaWdodH0gPSBpbWdPYmouYml0bWFwO1xuXG4gICAgbG9nLmluZm8oXG4gICAgICBgVGVtcGxhdGUgaW1hZ2UgaXMgJHt0cGxXaWR0aH14JHt0cGxIZWlnaHR9LiBTY3JlZW4gc2l6ZSBpcyAke3NjcmVlbldpZHRofXgke3NjcmVlbkhlaWdodH1gXG4gICAgKTtcbiAgICAvLyBpZiB0aGUgdGVtcGxhdGUgZml0cyBpbnNpZGUgdGhlIHNjcmVlbiBkaW1lbnNpb25zLCB3ZSdyZSBnb29kXG4gICAgaWYgKHRwbFdpZHRoIDw9IHNjcmVlbldpZHRoICYmIHRwbEhlaWdodCA8PSBzY3JlZW5IZWlnaHQpIHtcbiAgICAgIHJldHVybiBiNjRUZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBTY2FsaW5nIHRlbXBsYXRlIGltYWdlIGZyb20gJHt0cGxXaWR0aH14JHt0cGxIZWlnaHR9IHRvIG1hdGNoIGAgK1xuICAgICAgICBgc2NyZWVuIGF0ICR7c2NyZWVuV2lkdGh9eCR7c2NyZWVuSGVpZ2h0fWBcbiAgICApO1xuICAgIC8vIG90aGVyd2lzZSwgc2NhbGUgaXQgdG8gZml0IGluc2lkZSB0aGUgc2NyZWVuIGRpbWVuc2lvbnNcbiAgICBpbWdPYmogPSBpbWdPYmouc2NhbGVUb0ZpdChzY3JlZW5XaWR0aCwgc2NyZWVuSGVpZ2h0KTtcbiAgICByZXR1cm4gKGF3YWl0IGltZ09iai5nZXRCdWZmZXIoaW1hZ2VVdGlsLk1JTUVfUE5HKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2NyZWVuc2hvdCBpbWFnZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgZmluZCBieSBlbGVtZW50LCBwb3RlbnRpYWxseVxuICAgKiBhbHRlcmluZyBpdCBpbiB2YXJpb3VzIHdheXMgYmFzZWQgb24gdXNlci1yZXF1ZXN0ZWQgc2V0dGluZ3NcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHNjcmVlbldpZHRoIC0gd2lkdGggb2Ygc2NyZWVuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY3JlZW5IZWlnaHQgLSBoZWlnaHQgb2Ygc2NyZWVuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNjcmVlbnNob3QgJiB7c2NhbGU/OiBTY3JlZW5zaG90U2NhbGV9Pn0gYmFzZTY0LWVuY29kZWQgc2NyZWVuc2hvdCBhbmQgU2NyZWVuc2hvdFNjYWxlXG4gICAqL1xuICBhc3luYyBnZXRTY3JlZW5zaG90Rm9ySW1hZ2VGaW5kKHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyLmdldFNjcmVlbnNob3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkICdnZXRTY3JlZW5zaG90JyBjb21tYW5kXCIpO1xuICAgIH1cbiAgICBjb25zdCBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIHRoaXMuZHJpdmVyLnNldHRpbmdzLmdldFNldHRpbmdzKCkpO1xuICAgIGNvbnN0IHtmaXhJbWFnZUZpbmRTY3JlZW5zaG90RGltc30gPSBzZXR0aW5ncztcblxuICAgIGxldCBiNjRTY3JlZW5zaG90ID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0U2NyZWVuc2hvdCgpO1xuXG4gICAgLy8gaWYgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCBub3QgdG8gY29ycmVjdCBmb3IgYXNwZWN0IG9yIHNpemUgZGlmZmVyZW5jZXNcbiAgICAvLyBiZXR3ZWVuIHRoZSBzY3JlZW5zaG90IGFuZCB0aGUgc2NyZWVuLCBqdXN0IHJldHVybiB0aGUgc2NyZWVuc2hvdCBub3dcbiAgICBpZiAoIWZpeEltYWdlRmluZFNjcmVlbnNob3REaW1zKSB7XG4gICAgICBsb2cuaW5mbyhgTm90IHZlcmlmeWluZyBzY3JlZW5zaG90IGRpbWVuc2lvbnMgbWF0Y2ggc2NyZWVuYCk7XG4gICAgICByZXR1cm4ge2I2NFNjcmVlbnNob3R9O1xuICAgIH1cblxuICAgIGlmIChzY3JlZW5XaWR0aCA8IDEgfHwgc2NyZWVuSGVpZ2h0IDwgMSkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgcmV0cmlldmVkIHNjcmVlbiBzaXplICR7c2NyZWVuV2lkdGh9eCR7c2NyZWVuSGVpZ2h0fSBkb2VzIGAgK1xuICAgICAgICAgIGBub3Qgc2VlbSB0byBiZSB2YWxpZC4gTm8gY2hhbmdlcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHNjcmVlbnNob3RgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtiNjRTY3JlZW5zaG90fTtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UsIGRvIHNvbWUgdmVyaWZpY2F0aW9uIG9uIHRoZSBzY3JlZW5zaG90IHRvIG1ha2Ugc3VyZSBpdCBtYXRjaGVzXG4gICAgLy8gdGhlIHNjcmVlbiBzaXplIGFuZCBhc3BlY3QgcmF0aW9cbiAgICBsb2cuaW5mbygnVmVyaWZ5aW5nIHNjcmVlbnNob3Qgc2l6ZSBhbmQgYXNwZWN0IHJhdGlvJyk7XG5cbiAgICBsZXQgaW1nT2JqID0gYXdhaXQgaW1hZ2VVdGlsLmdldEppbXBJbWFnZShiNjRTY3JlZW5zaG90KTtcbiAgICBsZXQge3dpZHRoOiBzaG90V2lkdGgsIGhlaWdodDogc2hvdEhlaWdodH0gPSBpbWdPYmouYml0bWFwO1xuXG4gICAgaWYgKHNob3RXaWR0aCA8IDEgfHwgc2hvdEhlaWdodCA8IDEpIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgVGhlIHJldHJpZXZlZCBzY3JlZW5zaG90IHNpemUgJHtzaG90V2lkdGh9eCR7c2hvdEhlaWdodH0gZG9lcyBgICtcbiAgICAgICAgICBgbm90IHNlZW0gdG8gYmUgdmFsaWQuIE5vIGNoYW5nZXMgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzY3JlZW5zaG90YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7YjY0U2NyZWVuc2hvdH07XG4gICAgfVxuXG4gICAgaWYgKHNjcmVlbldpZHRoID09PSBzaG90V2lkdGggJiYgc2NyZWVuSGVpZ2h0ID09PSBzaG90SGVpZ2h0KSB7XG4gICAgICAvLyB0aGUgaGVpZ2h0IGFuZCB3aWR0aCBvZiB0aGUgc2NyZWVuc2hvdCBhbmQgdGhlIGRldmljZSBzY3JlZW4gbWF0Y2gsIHdoaWNoXG4gICAgICAvLyBtZWFucyB3ZSBzaG91bGQgYmUgc2FmZSB3aGVuIGRvaW5nIHRlbXBsYXRlIG1hdGNoZXNcbiAgICAgIGxvZy5pbmZvKCdTY3JlZW5zaG90IHNpemUgbWF0Y2hlZCBzY3JlZW4gc2l6ZScpO1xuICAgICAgcmV0dXJuIHtiNjRTY3JlZW5zaG90fTtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UsIGlmIHRoZXkgZG9uJ3QgbWF0Y2gsIGl0IGNvdWxkIHNwZWxsIHByb2JsZW1zIGZvciB0aGUgYWNjdXJhY3lcbiAgICAvLyBvZiBjb29yZGluYXRlcyByZXR1cm5lZCBieSB0aGUgaW1hZ2UgbWF0Y2ggYWxnb3JpdGhtLCBzaW5jZSB3ZSBtYXRjaCBiYXNlZFxuICAgIC8vIG9uIHRoZSBzY3JlZW5zaG90IGNvb3JkaW5hdGVzIG5vdCB0aGUgZGV2aWNlIGNvb3JkaW5hdGVzIHRoZW1zZWx2ZXMuIFRoZXJlXG4gICAgLy8gYXJlIHR3byBwb3RlbnRpYWwgdHlwZXMgb2YgbWlzbWF0Y2g6IGFzcGVjdCByYXRpbyBtaXNtYXRjaCBhbmQgc2NhbGVcbiAgICAvLyBtaXNtYXRjaC4gV2UgbmVlZCB0byBkZXRlY3QgYW5kIGZpeCBib3RoXG5cbiAgICBjb25zdCBzY2FsZSA9IHt4U2NhbGU6IDEuMCwgeVNjYWxlOiAxLjB9O1xuXG4gICAgY29uc3Qgc2NyZWVuQVIgPSBzY3JlZW5XaWR0aCAvIHNjcmVlbkhlaWdodDtcbiAgICBjb25zdCBzaG90QVIgPSBzaG90V2lkdGggLyBzaG90SGVpZ2h0O1xuICAgIGlmIChNYXRoLnJvdW5kKHNjcmVlbkFSICogRkxPQVRfUFJFQ0lTSU9OKSA9PT0gTWF0aC5yb3VuZChzaG90QVIgKiBGTE9BVF9QUkVDSVNJT04pKSB7XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYFNjcmVlbnNob3QgYXNwZWN0IHJhdGlvICcke3Nob3RBUn0nICgke3Nob3RXaWR0aH14JHtzaG90SGVpZ2h0fSkgbWF0Y2hlZCBgICtcbiAgICAgICAgICBgc2NyZWVuIGFzcGVjdCByYXRpbyAnJHtzY3JlZW5BUn0nICgke3NjcmVlbldpZHRofXgke3NjcmVlbkhlaWdodH0pYFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBXaGVuIHRyeWluZyB0byBmaW5kIGFuIGVsZW1lbnQsIGRldGVybWluZWQgdGhhdCB0aGUgc2NyZWVuIGAgK1xuICAgICAgICAgIGBhc3BlY3QgcmF0aW8gYW5kIHNjcmVlbnNob3QgYXNwZWN0IHJhdGlvIGFyZSBkaWZmZXJlbnQuIFNjcmVlbiBgICtcbiAgICAgICAgICBgaXMgJHtzY3JlZW5XaWR0aH14JHtzY3JlZW5IZWlnaHR9IHdoZXJlYXMgc2NyZWVuc2hvdCBpcyBgICtcbiAgICAgICAgICBgJHtzaG90V2lkdGh9eCR7c2hvdEhlaWdodH0uYFxuICAgICAgKTtcblxuICAgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHgtc2NhbGUgYW5kIHktc2NhbGUgYXJlIGRpZmZlcmVudCwgd2UgbmVlZCB0byBkZWNpZGVcbiAgICAgIC8vIHdoaWNoIG9uZSB0byByZXNwZWN0LCBvdGhlcndpc2UgdGhlIHNjcmVlbnNob3QgYW5kIHRlbXBsYXRlIHdpbGwgZW5kIHVwXG4gICAgICAvLyBiZWluZyByZXNpemVkIGluIGEgd2F5IHRoYXQgY2hhbmdlcyBpdHMgYXNwZWN0IHJhdGlvIChkaXN0b3J0cyBpdCkuIEZvciBleGFtcGxlLCBsZXQncyBzYXk6XG4gICAgICAvLyB0aGlzLmdldFNjcmVlbnNob3Qoc2hvdFdpZHRoLCBzaG90SGVpZ2h0KSBpcyA1NDB4Mzk3LFxuICAgICAgLy8gdGhpcy5nZXREZXZpY2VTaXplKHNjcmVlbldpZHRoLCBzY3JlZW5IZWlnaHQpIGlzIDEwODB4MTkyMC5cbiAgICAgIC8vIFRoZSByYXRpbyB3b3VsZCB0aGVuIGJlIHt4U2NhbGU6IDAuNSwgeVNjYWxlOiAwLjJ9LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBtdXN0IHNob3VsZCBgeVNjYWxlOiAwLjJgIGFzIHNjYWxlRmFjdG9yLCBiZWNhdXNlXG4gICAgICAvLyBpZiB3ZSBzZWxlY3QgdGhlIHhTY2FsZSwgdGhlIGhlaWdodCB3aWxsIGJlIGJpZ2dlciB0aGFuIHJlYWwgc2NyZWVuc2hvdCBzaXplXG4gICAgICAvLyB3aGljaCBpcyB1c2VkIHRvIGltYWdlIGNvbXBhcmlzb24gYnkgT3BlbkNWIGFzIGEgYmFzZSBpbWFnZS5cbiAgICAgIC8vIEFsbCBvZiB0aGlzIGlzIHByaW1hcmlseSB1c2VmdWwgd2hlbiB0aGUgc2NyZWVuc2hvdCBpcyBhIGhvcml6b250YWwgc2xpY2UgdGFrZW4gb3V0IG9mIHRoZVxuICAgICAgLy8gc2NyZWVuIChmb3IgZXhhbXBsZSBub3QgaW5jbHVkaW5nIHRvcC9ib3R0b20gbmF2IGJhcnMpXG4gICAgICBjb25zdCB4U2NhbGUgPSAoMS4wICogc2hvdFdpZHRoKSAvIHNjcmVlbldpZHRoO1xuICAgICAgY29uc3QgeVNjYWxlID0gKDEuMCAqIHNob3RIZWlnaHQpIC8gc2NyZWVuSGVpZ2h0O1xuICAgICAgY29uc3Qgc2NhbGVGYWN0b3IgPSB4U2NhbGUgPj0geVNjYWxlID8geVNjYWxlIDogeFNjYWxlO1xuXG4gICAgICBsb2cud2FybihcbiAgICAgICAgYFJlc2l6aW5nIHNjcmVlbnNob3QgdG8gJHtzaG90V2lkdGggKiBzY2FsZUZhY3Rvcn14JHtzaG90SGVpZ2h0ICogc2NhbGVGYWN0b3J9IHRvIG1hdGNoIGAgK1xuICAgICAgICAgIGBzY3JlZW4gYXNwZWN0IHJhdGlvIHNvIHRoYXQgaW1hZ2UgZWxlbWVudCBjb29yZGluYXRlcyBoYXZlIGEgYCArXG4gICAgICAgICAgYGdyZWF0ZXIgY2hhbmNlIG9mIGJlaW5nIGNvcnJlY3QuYFxuICAgICAgKTtcbiAgICAgIGltZ09iaiA9IGltZ09iai5yZXNpemUoc2hvdFdpZHRoICogc2NhbGVGYWN0b3IsIHNob3RIZWlnaHQgKiBzY2FsZUZhY3Rvcik7XG5cbiAgICAgIHNjYWxlLnhTY2FsZSAqPSBzY2FsZUZhY3RvcjtcbiAgICAgIHNjYWxlLnlTY2FsZSAqPSBzY2FsZUZhY3RvcjtcblxuICAgICAgc2hvdFdpZHRoID0gaW1nT2JqLmJpdG1hcC53aWR0aDtcbiAgICAgIHNob3RIZWlnaHQgPSBpbWdPYmouYml0bWFwLmhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBSZXNpemUgYmFzZWQgb24gdGhlIHNjcmVlbiBkaW1lbnNpb25zIG9ubHkgaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBtaXNtYXRjaGVkXG4gICAgLy8gc2luY2UgZXhjZXB0IGZvciB0aGF0LCBpdCBtaWdodCBiZSBhIHNpdHVhdGlvbiB3aGljaCBpcyBkaWZmZXJlbnQgd2luZG93IHJlY3QgYW5kXG4gICAgLy8gc2NyZWVuc2hvdCBzaXplIGxpa2UgYEBkcml2ZXIud2luZG93X3JlY3QgIz0+eD0wLCB5PTAsIHdpZHRoPTEwODAsIGhlaWdodD0xNzk0YCBhbmRcbiAgICAvLyBgXCJkZXZpY2VTY3JlZW5TaXplXCI9PlwiMTA4MHgxOTIwXCJgXG4gICAgaWYgKHNjcmVlbldpZHRoICE9PSBzaG90V2lkdGggJiYgc2NyZWVuSGVpZ2h0ICE9PSBzaG90SGVpZ2h0KSB7XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYFNjYWxpbmcgc2NyZWVuc2hvdCBmcm9tICR7c2hvdFdpZHRofXgke3Nob3RIZWlnaHR9IHRvIG1hdGNoIGAgK1xuICAgICAgICAgIGBzY3JlZW4gYXQgJHtzY3JlZW5XaWR0aH14JHtzY3JlZW5IZWlnaHR9YFxuICAgICAgKTtcbiAgICAgIGltZ09iaiA9IGltZ09iai5yZXNpemUoc2NyZWVuV2lkdGgsIHNjcmVlbkhlaWdodCk7XG5cbiAgICAgIHNjYWxlLnhTY2FsZSAqPSAoMS4wICogc2NyZWVuV2lkdGgpIC8gc2hvdFdpZHRoO1xuICAgICAgc2NhbGUueVNjYWxlICo9ICgxLjAgKiBzY3JlZW5IZWlnaHQpIC8gc2hvdEhlaWdodDtcbiAgICB9XG5cbiAgICBiNjRTY3JlZW5zaG90ID0gKGF3YWl0IGltZ09iai5nZXRCdWZmZXIoaW1hZ2VVdGlsLk1JTUVfUE5HKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIHJldHVybiB7YjY0U2NyZWVuc2hvdCwgc2NhbGV9O1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIEltYWdlVGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGZpeEltYWdlVGVtcGxhdGVTY2FsZSAtIGZpeEltYWdlVGVtcGxhdGVTY2FsZSBpbiBkZXZpY2Utc2V0dGluZ3NcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgLSBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIGluIGRldmljZS1zZXR0aW5nc1xuICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgLSBJZ25vcmUgZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSBpZiBpdCBoYXMgdHJ1ZS5cbiAgICogSWYgYjY0VGVtcGxhdGUgaGFzIGJlZW4gc2NhbGVkIHRvIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgb3Igc2hvdWxkIGlnbm9yZSB0aGUgc2NhbGUsXG4gICAqIHRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSB0cnVlLiBlLmcuIGNsaWNrIGluIGltYWdlLWVsZW1lbnQgbW9kdWxlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4U2NhbGUgLSBTY2FsZSByYXRpbyBmb3Igd2lkdGhcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHlTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciBoZWlnaHRcblxuICAgKi9cbiAgLyoqXG4gICAqIEdldCBhIGltYWdlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0ZW1wbGF0ZSBtYWNoaW5nLlxuICAgKiBSZXR1cm5zIHNjYWxlZCBpbWFnZSBpZiBzY2FsZSByYXRpbyBpcyBwcm92aWRlZC5cbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gYmFzZTY0LWVuY29kZWQgaW1hZ2UgdXNlZCBhcyBhIHRlbXBsYXRlIHRvIGJlXG4gICAqIG1hdGNoZWQgaW4gdGhlIHNjcmVlbnNob3RcbiAgICogQHBhcmFtIHtJbWFnZVRlbXBsYXRlU2V0dGluZ3N9IG9wdHMgLSBJbWFnZSB0ZW1wbGF0ZSBzY2FsZSByZWxhdGVkIG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gYmFzZTY0LWVuY29kZWQgc2NhbGVkIHRlbXBsYXRlIHNjcmVlbnNob3RcbiAgICovXG4gIGFzeW5jIGZpeEltYWdlVGVtcGxhdGVTY2FsZShiNjRUZW1wbGF0ZSwgb3B0cykge1xuICAgIGlmICghb3B0cykge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIGxldCB7XG4gICAgICBmaXhJbWFnZVRlbXBsYXRlU2NhbGUgPSBmYWxzZSxcbiAgICAgIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgPSBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuICAgICAgaWdub3JlRGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZSA9IGZhbHNlLFxuICAgICAgeFNjYWxlID0gREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUsXG4gICAgICB5U2NhbGUgPSBERUZBVUxUX0ZJWF9JTUFHRV9URU1QTEFURV9TQ0FMRSxcbiAgICB9ID0gb3B0cztcblxuICAgIGlmIChpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlKSB7XG4gICAgICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlID0gREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0XG4gICAgaWYgKGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgPT09IERFRkFVTFRfVEVNUExBVEVfSU1BR0VfU0NBTEUgJiYgIWZpeEltYWdlVGVtcGxhdGVTY2FsZSkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIC8vIENhbGN1bGF0ZSB4U2NhbGUgYW5kIHlTY2FsZSBBcHBpdW0gc2hvdWxkIHNjYWxlXG4gICAgaWYgKGZpeEltYWdlVGVtcGxhdGVTY2FsZSkge1xuICAgICAgeFNjYWxlICo9IGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU7XG4gICAgICB5U2NhbGUgKj0gZGVmYXVsdEltYWdlVGVtcGxhdGVTY2FsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgeFNjYWxlID0geVNjYWxlID0gMSAqIGRlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU7XG4gICAgfVxuXG4gICAgLy8geFNjYWxlIGFuZCB5U2NhbGUgY2FuIGJlIE5hTiBpZiBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIGlzIHN0cmluZywgZm9yIGV4YW1wbGVcbiAgICBpZiAoIXBhcnNlRmxvYXQoU3RyaW5nKHhTY2FsZSkpIHx8ICFwYXJzZUZsb2F0KFN0cmluZyh5U2NhbGUpKSkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBpZiB0aGUgc2NhbGUgaXMgZGVmYXVsdCwgMSwgdmFsdWVcbiAgICBpZiAoXG4gICAgICBNYXRoLnJvdW5kKHhTY2FsZSAqIEZMT0FUX1BSRUNJU0lPTikgPT09XG4gICAgICAgIE1hdGgucm91bmQoREVGQVVMVF9GSVhfSU1BR0VfVEVNUExBVEVfU0NBTEUgKiBGTE9BVF9QUkVDSVNJT04pICYmXG4gICAgICBNYXRoLnJvdW5kKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgeVNjYWxlICogRkxPQVRfUFJFQ0lTSU9OID09PVxuICAgICAgICAgICAgTWF0aC5yb3VuZChERUZBVUxUX0ZJWF9JTUFHRV9URU1QTEFURV9TQ0FMRSAqIEZMT0FUX1BSRUNJU0lPTilcbiAgICAgICAgKVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIGI2NFRlbXBsYXRlO1xuICAgIH1cblxuICAgIGxldCBpbWdUZW1wT2JqID0gYXdhaXQgaW1hZ2VVdGlsLmdldEppbXBJbWFnZShiNjRUZW1wbGF0ZSk7XG4gICAgbGV0IHt3aWR0aDogYmFzZVRlbXBXaWR0aCwgaGVpZ2h0OiBiYXNlVGVtcEhlaWdofSA9IGltZ1RlbXBPYmouYml0bWFwO1xuXG4gICAgY29uc3Qgc2NhbGVkV2lkdGggPSBiYXNlVGVtcFdpZHRoICogeFNjYWxlO1xuICAgIGNvbnN0IHNjYWxlZEhlaWdodCA9IGJhc2VUZW1wSGVpZ2ggKiB5U2NhbGU7XG4gICAgbG9nLmluZm8oXG4gICAgICBgU2NhbGluZyB0ZW1wbGF0ZSBpbWFnZSBmcm9tICR7YmFzZVRlbXBXaWR0aH14JHtiYXNlVGVtcEhlaWdofWAgK1xuICAgICAgICBgIHRvICR7c2NhbGVkV2lkdGh9eCR7c2NhbGVkSGVpZ2h0fWBcbiAgICApO1xuICAgIGxvZy5pbmZvKGBUaGUgcmF0aW8gaXMgJHt4U2NhbGV9IGFuZCAke3lTY2FsZX1gKTtcbiAgICBpbWdUZW1wT2JqID0gYXdhaXQgaW1nVGVtcE9iai5yZXNpemUoc2NhbGVkV2lkdGgsIHNjYWxlZEhlaWdodCk7XG4gICAgcmV0dXJuIChhd2FpdCBpbWdUZW1wT2JqLmdldEJ1ZmZlcihpbWFnZVV0aWwuTUlNRV9QTkcpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cbn1cblxuZXhwb3J0IHtXM0NfRUxFTUVOVF9LRVksIE1KU09OV1BfRUxFTUVOVF9LRVksIERFRkFVTFRfU0VUVElOR1MsIERFRkFVTFRfRklYX0lNQUdFX1RFTVBMQVRFX1NDQUxFfTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXh0ZXJuYWxEcml2ZXJ9IEV4dGVybmFsRHJpdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2NyZWVuc2hvdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGI2NFNjcmVlbnNob3QgLSBiYXNlNjQgYmFzZWQgc2NyZWVuc2hvdCBzdHJpbmdcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNjcmVlbnNob3RTY2FsZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IHhTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciB3aWR0aFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHlTY2FsZSAtIFNjYWxlIHJhdGlvIGZvciBoZWlnaHRcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7OztBQUVBLE1BQU1BLG1CQUFtQixHQUFHLFNBQTVCOztBQUNBLE1BQU1DLGVBQWUsR0FBR0MsYUFBQSxDQUFLQywwQkFBN0I7O0FBQ0EsTUFBTUMsZ0NBQWdDLEdBQUcsQ0FBekM7O0FBR0EsTUFBTUMsZUFBZSxHQUFHLE1BQXhCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEdBQXhCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsT0FBTyxJQUFQLEdBQWMsRUFBM0M7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRztFQUd2QkMsbUJBQW1CLEVBQUVDLGdDQUhFO0VBU3ZCQyxnQkFBZ0IsRUFBRSxFQVRLO0VBYXZCQywwQkFBMEIsRUFBRSxJQWJMO0VBa0J2QkMsb0JBQW9CLEVBQUUsS0FsQkM7RUEwQnZCQyxxQkFBcUIsRUFBRSxLQTFCQTtFQWtDdkJDLHlCQUF5QixFQUFFQywwQ0FsQ0o7RUFzQ3ZCQyw2QkFBNkIsRUFBRSxJQXRDUjtFQTBDdkJDLDhCQUE4QixFQUFFLEtBMUNUO0VBOEN2QkMsdUJBQXVCLEVBQUVDLHVDQTlDRjtFQWtEdkJDLHFCQUFxQixFQUFFO0FBbERBLENBQXpCOzs7QUFxRGUsTUFBTUMsa0JBQU4sQ0FBeUI7RUFFdENDLE1BQU07RUFHTkMsVUFBVTs7RUFPVkMsV0FBVyxDQUFDRixNQUFELEVBQVNHLE9BQU8sR0FBR25CLG9CQUFuQixFQUF5QztJQUNsRCxLQUFLZ0IsTUFBTCxHQUFjQSxNQUFkO0lBQ0EsS0FBS0MsVUFBTCxHQUFrQixJQUFJRyxpQkFBSixDQUFRO01BQ3hCQyxHQUFHLEVBQUV0QixlQURtQjtNQUV4Qm9CLE9BRndCO01BR3hCRyxlQUFlLEVBQUdDLEVBQUQsSUFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finder.js","names":["MJSONWP_ELEMENT_KEY","W3C_ELEMENT_KEY","util","W3C_WEB_ELEMENT_IDENTIFIER","DEFAULT_FIX_IMAGE_TEMPLATE_SCALE","FLOAT_PRECISION","MAX_CACHE_ITEMS","MAX_CACHE_SIZE_BYTES","DEFAULT_SETTINGS","imageMatchThreshold","DEFAULT_MATCH_THRESHOLD","imageMatchMethod","fixImageFindScreenshotDims","fixImageTemplateSize","fixImageTemplateScale","defaultImageTemplateScale","DEFAULT_TEMPLATE_IMAGE_SCALE","checkForImageElementStaleness","autoUpdateImageElementPosition","imageElementTapStrategy","IMAGE_EL_TAP_STRATEGY_W3C","getMatchedImageResult","ImageElementFinder","driver","imgElCache","constructor","maxSize","LRU","max","sizeCalculation","el","template","length","setDriver","registerImageElement","imgEl","set","id","protoKey","isW3CProtocol","asElement","findByImage","b64Template","shouldCheckStaleness","multiple","ignoreDefaultImageTemplateScale","Error","settings","getSettings","threshold","visualize","log","info","getWindowSize","width","screenWidth","height","screenHeight","ensureTemplateSize","results","condition","b64Screenshot","scale","getScreenshotForImageFind","comparisonOpts","method","push","compareImages","MATCH_TEMPLATE_MODE","err","message","match","implicitWaitForCondition","_","isEmpty","errors","NoSuchElementError","elements","map","rect","score","visualization","JSON","stringify","ImageElement","registeredElements","imgObj","imageUtil","getJimpImage","tplWidth","tplHeight","bitmap","scaleToFit","getBuffer","MIME_PNG","toString","getScreenshot","Object","assign","warn","shotWidth","shotHeight","xScale","yScale","screenAR","shotAR","Math","round","scaleFactor","resize","opts","parseFloat","String","Number","imgTempObj","baseTempWidth","baseTempHeigh","scaledWidth","scaledHeight"],"sources":["../../lib/finder.js"],"sourcesContent":["import _ from 'lodash';\nimport LRU from 'lru-cache';\nimport {errors} from 'appium/driver';\nimport {util, imageUtil} from 'appium/support';\nimport {\n ImageElement,\n DEFAULT_TEMPLATE_IMAGE_SCALE,\n IMAGE_EL_TAP_STRATEGY_W3C,\n} from './image-element';\nimport {MATCH_TEMPLATE_MODE, compareImages, DEFAULT_MATCH_THRESHOLD} from './compare';\nimport log from './logger';\n\nconst MJSONWP_ELEMENT_KEY = 'ELEMENT';\nconst W3C_ELEMENT_KEY = util.W3C_WEB_ELEMENT_IDENTIFIER;\nconst DEFAULT_FIX_IMAGE_TEMPLATE_SCALE = 1;\n// Used to compare ratio and screen width\n// Pixel is basically under 1080 for example. 100K is probably enough fo a while.\nconst FLOAT_PRECISION = 100000;\nconst MAX_CACHE_ITEMS = 100;\nconst MAX_CACHE_SIZE_BYTES = 1024 * 1024 * 40; // 40mb\n\nconst DEFAULT_SETTINGS = {\n // value between 0 and 1 representing match strength, below which an image\n // element will not be found\n imageMatchThreshold: DEFAULT_MATCH_THRESHOLD,\n\n // One of possible image matching methods.\n // Read https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_template_matching/py_template_matching.html\n // for more details.\n // TM_CCOEFF_NORMED by default\n imageMatchMethod: '',\n\n // if the image returned by getScreenshot differs in size or aspect ratio\n // from the screen, attempt to fix it automatically\n fixImageFindScreenshotDims: true,\n\n // whether Appium should ensure that an image template sent in during image\n // element find should have its size adjusted so the match algorithm will not\n // complain\n fixImageTemplateSize: false,\n\n // whether Appium should ensure that an image template sent in during image\n // element find should have its scale adjusted to display size so the match\n // algorithm will not complain.\n // e.g. iOS has `width=375, height=667` window rect, but its screenshot is\n // `width=750 × height=1334` pixels. This setting help to adjust the scale\n // if a user use `width=750 × height=1334` pixels's base template image.\n fixImageTemplateScale: false,\n\n // Users might have scaled template image to reduce their storage size.\n // This setting allows users to scale a template image they send to Appium server\n // so that the Appium server compares the actual scale users originally had.\n // e.g. If a user has an image of 270 x 32 pixels which was originally 1080 x 126 pixels,\n // the user can set {defaultImageTemplateScale: 4.0} to scale the small image\n // to the original one so that Appium can compare it as the original one.\n defaultImageTemplateScale: DEFAULT_TEMPLATE_IMAGE_SCALE,\n\n // whether Appium should re-check that an image element can be matched\n // against the current screenshot before clicking it\n checkForImageElementStaleness: true,\n\n // whether before clicking on an image element Appium should re-determine the\n // position of the element on screen\n autoUpdateImageElementPosition: false,\n\n // which method to use for tapping by coordinate for image elements. the\n // options are 'w3c' or 'mjsonwp'\n imageElementTapStrategy: IMAGE_EL_TAP_STRATEGY_W3C,\n\n // which method to use to save the matched image area in ImageElement class.\n // It is used for debugging purpose.\n getMatchedImageResult: false,\n};\n\nexport default class ImageElementFinder {\n /** @type {ExternalDriver} */\n driver;\n\n /** @type {LRU<string,ImageElement>} */\n imgElCache;\n\n /**\n *\n * @param {ExternalDriver} driver\n * @param {number} [maxSize]\n */\n constructor(driver, maxSize = MAX_CACHE_SIZE_BYTES) {\n this.driver = driver;\n this.imgElCache = new LRU({\n max: MAX_CACHE_ITEMS,\n maxSize,\n sizeCalculation: (el) => el.template.length,\n });\n }\n\n setDriver(driver) {\n this.driver = driver;\n }\n\n /**\n * @param {ImageElement} imgEl\n * @returns {Element}\n */\n registerImageElement(imgEl) {\n this.imgElCache.set(imgEl.id, imgEl);\n const protoKey = this.driver.isW3CProtocol() ? W3C_ELEMENT_KEY : MJSONWP_ELEMENT_KEY;\n return imgEl.asElement(protoKey);\n }\n\n /**\n * @typedef FindByImageOptions\n * @property {boolean} [shouldCheckStaleness=false] - whether this call to find an\n * image is merely to check staleness. If so we can bypass a lot of logic\n * @property {boolean} [multiple=false] - Whether we are finding one element or\n * multiple\n * @property {boolean} [ignoreDefaultImageTemplateScale=false] - Whether we\n * ignore defaultImageTemplateScale. It can be used when you would like to\n * scale b64Template with defaultImageTemplateScale setting.\n */\n\n /**\n * Find a screen rect represented by an ImageElement corresponding to an image\n * template sent in by the client\n *\n * @param {string} b64Template - base64-encoded image used as a template to be\n * matched in the screenshot\n * @param {FindByImageOptions} opts - additional options\n *\n * @returns {Promise<Element|Element[]|ImageElement>} - WebDriver element with a special id prefix\n */\n async findByImage(\n b64Template,\n {shouldCheckStaleness = false, multiple = false, ignoreDefaultImageTemplateScale = false}\n ) {\n if (!this.driver) {\n throw new Error(`Can't find without a driver!`);\n }\n const settings = {...DEFAULT_SETTINGS, ...this.driver.settings.getSettings()};\n const {\n imageMatchThreshold: threshold,\n imageMatchMethod,\n fixImageTemplateSize,\n fixImageTemplateScale,\n defaultImageTemplateScale,\n getMatchedImageResult: visualize,\n } = settings;\n\n log.info(`Finding image element with match threshold ${threshold}`);\n if (!this.driver.getWindowSize) {\n throw new Error(\"This driver does not support the required 'getWindowSize' command\");\n }\n const {width: screenWidth, height: screenHeight} = await this.driver.getWindowSize();\n\n // someone might have sent in a template that's larger than the screen\n // dimensions. If so let's check and cut it down to size since the algorithm\n // will not work unless we do. But because it requires some potentially\n // expensive commands, only do this if the user has requested it in settings.\n if (fixImageTemplateSize) {\n b64Template = await this.ensureTemplateSize(b64Template, screenWidth, screenHeight);\n }\n\n const results = [];\n const condition = async () => {\n try {\n const {b64Screenshot, scale} = await this.getScreenshotForImageFind(\n screenWidth,\n screenHeight\n );\n\n b64Template = await this.fixImageTemplateScale(b64Template, {\n defaultImageTemplateScale,\n ignoreDefaultImageTemplateScale,\n fixImageTemplateScale,\n ...scale,\n });\n\n const comparisonOpts = {\n threshold,\n visualize,\n multiple,\n };\n if (imageMatchMethod) {\n comparisonOpts.method = imageMatchMethod;\n }\n if (multiple) {\n results.push(\n ...(await compareImages(\n MATCH_TEMPLATE_MODE,\n b64Screenshot,\n b64Template,\n comparisonOpts\n ))\n );\n } else {\n results.push(\n await compareImages(MATCH_TEMPLATE_MODE, b64Screenshot, b64Template, comparisonOpts)\n );\n }\n return true;\n } catch (err) {\n // if compareImages fails, we'll get a specific error, but we should\n // retry, so trap that and just return false to trigger the next round of\n // implicitly waiting. For other errors, throw them to get out of the\n // implicit wait loop\n if (err.message.match(/Cannot find any occurrences/)) {\n return false;\n }\n throw err;\n }\n };\n\n try {\n await this.driver.implicitWaitForCondition(condition);\n } catch (err) {\n // this `implicitWaitForCondition` method will throw a 'Condition unmet'\n // error if an element is not found eventually. In that case, we will\n // handle the element not found response below. In the case where get some\n // _other_ kind of error, it means something blew up totally apart from the\n // implicit wait timeout. We should not mask that error and instead throw\n // it straightaway\n if (!err.message.match(/Condition unmet/)) {\n throw err;\n }\n }\n\n if (_.isEmpty(results)) {\n if (multiple) {\n return [];\n }\n throw new errors.NoSuchElementError();\n }\n\n const elements = results.map(({rect, score, visualization}) => {\n log.info(`Image template matched: ${JSON.stringify(rect)}`);\n return new ImageElement(b64Template, rect, score, visualization, this);\n });\n\n // if we're just checking staleness, return straightaway so we don't add\n // a new element to the cache. shouldCheckStaleness does not support multiple\n // elements, since it is a purely internal mechanism\n if (shouldCheckStaleness) {\n return elements[0];\n }\n\n const registeredElements = elements.map((imgEl) => this.registerImageElement(imgEl));\n\n return multiple ? registeredElements : registeredElements[0];\n }\n\n /**\n * Ensure that the image template sent in for a find is of a suitable size\n *\n * @param {string} b64Template - base64-encoded image\n * @param {number} screenWidth - width of screen\n * @param {number} screenHeight - height of screen\n *\n * @returns {Promise<string>} base64-encoded image, potentially resized\n */\n async ensureTemplateSize(b64Template, screenWidth, screenHeight) {\n let imgObj = await imageUtil.getJimpImage(b64Template);\n let {width: tplWidth, height: tplHeight} = imgObj.bitmap;\n\n log.info(\n `Template image is ${tplWidth}x${tplHeight}. Screen size is ${screenWidth}x${screenHeight}`\n );\n // if the template fits inside the screen dimensions, we're good\n if (tplWidth <= screenWidth && tplHeight <= screenHeight) {\n return b64Template;\n }\n\n log.info(\n `Scaling template image from ${tplWidth}x${tplHeight} to match ` +\n `screen at ${screenWidth}x${screenHeight}`\n );\n // otherwise, scale it to fit inside the screen dimensions\n imgObj = imgObj.scaleToFit(screenWidth, screenHeight);\n return (await imgObj.getBuffer(imageUtil.MIME_PNG)).toString('base64');\n }\n\n /**\n * Get the screenshot image that will be used for find by element, potentially\n * altering it in various ways based on user-requested settings\n *\n * @param {number} screenWidth - width of screen\n * @param {number} screenHeight - height of screen\n *\n * @returns {Promise<Screenshot & {scale?: ScreenshotScale}>} base64-encoded screenshot and ScreenshotScale\n */\n async getScreenshotForImageFind(screenWidth, screenHeight) {\n if (!this.driver.getScreenshot) {\n throw new Error(\"This driver does not support the required 'getScreenshot' command\");\n }\n const settings = Object.assign({}, DEFAULT_SETTINGS, this.driver.settings.getSettings());\n const {fixImageFindScreenshotDims} = settings;\n\n let b64Screenshot = await this.driver.getScreenshot();\n\n // if the user has requested not to correct for aspect or size differences\n // between the screenshot and the screen, just return the screenshot now\n if (!fixImageFindScreenshotDims) {\n log.info(`Not verifying screenshot dimensions match screen`);\n return {b64Screenshot};\n }\n\n if (screenWidth < 1 || screenHeight < 1) {\n log.warn(\n `The retrieved screen size ${screenWidth}x${screenHeight} does ` +\n `not seem to be valid. No changes will be applied to the screenshot`\n );\n return {b64Screenshot};\n }\n\n // otherwise, do some verification on the screenshot to make sure it matches\n // the screen size and aspect ratio\n log.info('Verifying screenshot size and aspect ratio');\n\n let imgObj = await imageUtil.getJimpImage(b64Screenshot);\n let {width: shotWidth, height: shotHeight} = imgObj.bitmap;\n\n if (shotWidth < 1 || shotHeight < 1) {\n log.warn(\n `The retrieved screenshot size ${shotWidth}x${shotHeight} does ` +\n `not seem to be valid. No changes will be applied to the screenshot`\n );\n return {b64Screenshot};\n }\n\n if (screenWidth === shotWidth && screenHeight === shotHeight) {\n // the height and width of the screenshot and the device screen match, which\n // means we should be safe when doing template matches\n log.info('Screenshot size matched screen size');\n return {b64Screenshot};\n }\n\n // otherwise, if they don't match, it could spell problems for the accuracy\n // of coordinates returned by the image match algorithm, since we match based\n // on the screenshot coordinates not the device coordinates themselves. There\n // are two potential types of mismatch: aspect ratio mismatch and scale\n // mismatch. We need to detect and fix both\n\n const scale = {xScale: 1.0, yScale: 1.0};\n\n const screenAR = screenWidth / screenHeight;\n const shotAR = shotWidth / shotHeight;\n if (Math.round(screenAR * FLOAT_PRECISION) === Math.round(shotAR * FLOAT_PRECISION)) {\n log.info(\n `Screenshot aspect ratio '${shotAR}' (${shotWidth}x${shotHeight}) matched ` +\n `screen aspect ratio '${screenAR}' (${screenWidth}x${screenHeight})`\n );\n } else {\n log.warn(\n `When trying to find an element, determined that the screen ` +\n `aspect ratio and screenshot aspect ratio are different. Screen ` +\n `is ${screenWidth}x${screenHeight} whereas screenshot is ` +\n `${shotWidth}x${shotHeight}.`\n );\n\n // In the case where the x-scale and y-scale are different, we need to decide\n // which one to respect, otherwise the screenshot and template will end up\n // being resized in a way that changes its aspect ratio (distorts it). For example, let's say:\n // this.getScreenshot(shotWidth, shotHeight) is 540x397,\n // this.getDeviceSize(screenWidth, screenHeight) is 1080x1920.\n // The ratio would then be {xScale: 0.5, yScale: 0.2}.\n // In this case, we must should `yScale: 0.2` as scaleFactor, because\n // if we select the xScale, the height will be bigger than real screenshot size\n // which is used to image comparison by OpenCV as a base image.\n // All of this is primarily useful when the screenshot is a horizontal slice taken out of the\n // screen (for example not including top/bottom nav bars)\n const xScale = (1.0 * shotWidth) / screenWidth;\n const yScale = (1.0 * shotHeight) / screenHeight;\n const scaleFactor = xScale >= yScale ? yScale : xScale;\n\n log.warn(\n `Resizing screenshot to ${shotWidth * scaleFactor}x${shotHeight * scaleFactor} to match ` +\n `screen aspect ratio so that image element coordinates have a ` +\n `greater chance of being correct.`\n );\n imgObj = imgObj.resize(shotWidth * scaleFactor, shotHeight * scaleFactor);\n\n scale.xScale *= scaleFactor;\n scale.yScale *= scaleFactor;\n\n shotWidth = imgObj.bitmap.width;\n shotHeight = imgObj.bitmap.height;\n }\n\n // Resize based on the screen dimensions only if both width and height are mismatched\n // since except for that, it might be a situation which is different window rect and\n // screenshot size like `@driver.window_rect #=>x=0, y=0, width=1080, height=1794` and\n // `\"deviceScreenSize\"=>\"1080x1920\"`\n if (screenWidth !== shotWidth && screenHeight !== shotHeight) {\n log.info(\n `Scaling screenshot from ${shotWidth}x${shotHeight} to match ` +\n `screen at ${screenWidth}x${screenHeight}`\n );\n imgObj = imgObj.resize(screenWidth, screenHeight);\n\n scale.xScale *= (1.0 * screenWidth) / shotWidth;\n scale.yScale *= (1.0 * screenHeight) / shotHeight;\n }\n\n b64Screenshot = (await imgObj.getBuffer(imageUtil.MIME_PNG)).toString('base64');\n return {b64Screenshot, scale};\n }\n\n /**\n * @typedef ImageTemplateSettings\n * @property {boolean} fixImageTemplateScale - fixImageTemplateScale in device-settings\n * @property {number} defaultImageTemplateScale - defaultImageTemplateScale in device-settings\n * @property {boolean} ignoreDefaultImageTemplateScale - Ignore defaultImageTemplateScale if it has true.\n * If b64Template has been scaled to defaultImageTemplateScale or should ignore the scale,\n * this parameter should be true. e.g. click in image-element module\n * @property {number} xScale - Scale ratio for width\n * @property {number} yScale - Scale ratio for height\n\n */\n /**\n * Get a image that will be used for template maching.\n * Returns scaled image if scale ratio is provided.\n *\n *\n * @param {string} b64Template - base64-encoded image used as a template to be\n * matched in the screenshot\n * @param {ImageTemplateSettings} opts - Image template scale related options\n *\n * @returns {Promise<string>} base64-encoded scaled template screenshot\n */\n async fixImageTemplateScale(b64Template, opts) {\n if (!opts) {\n return b64Template;\n }\n\n let {\n fixImageTemplateScale = false,\n defaultImageTemplateScale = DEFAULT_TEMPLATE_IMAGE_SCALE,\n ignoreDefaultImageTemplateScale = false,\n xScale = DEFAULT_FIX_IMAGE_TEMPLATE_SCALE,\n yScale = DEFAULT_FIX_IMAGE_TEMPLATE_SCALE,\n } = opts;\n\n if (ignoreDefaultImageTemplateScale) {\n defaultImageTemplateScale = DEFAULT_TEMPLATE_IMAGE_SCALE;\n }\n\n // Default\n if (defaultImageTemplateScale === DEFAULT_TEMPLATE_IMAGE_SCALE && !fixImageTemplateScale) {\n return b64Template;\n }\n\n // Calculate xScale and yScale Appium should scale\n if (fixImageTemplateScale) {\n xScale *= defaultImageTemplateScale;\n yScale *= defaultImageTemplateScale;\n } else {\n xScale = yScale = 1 * defaultImageTemplateScale;\n }\n\n // xScale and yScale can be NaN if defaultImageTemplateScale is string, for example\n if (!parseFloat(String(xScale)) || !parseFloat(String(yScale))) {\n return b64Template;\n }\n\n // Return if the scale is default, 1, value\n if (\n Math.round(xScale * FLOAT_PRECISION) ===\n Math.round(DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION) &&\n Math.round(\n Number(\n yScale * FLOAT_PRECISION ===\n Math.round(DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION)\n )\n )\n ) {\n return b64Template;\n }\n\n let imgTempObj = await imageUtil.getJimpImage(b64Template);\n let {width: baseTempWidth, height: baseTempHeigh} = imgTempObj.bitmap;\n\n const scaledWidth = baseTempWidth * xScale;\n const scaledHeight = baseTempHeigh * yScale;\n log.info(\n `Scaling template image from ${baseTempWidth}x${baseTempHeigh}` +\n ` to ${scaledWidth}x${scaledHeight}`\n );\n log.info(`The ratio is ${xScale} and ${yScale}`);\n imgTempObj = await imgTempObj.resize(scaledWidth, scaledHeight);\n return (await imgTempObj.getBuffer(imageUtil.MIME_PNG)).toString('base64');\n }\n}\n\nexport {W3C_ELEMENT_KEY, MJSONWP_ELEMENT_KEY, DEFAULT_SETTINGS, DEFAULT_FIX_IMAGE_TEMPLATE_SCALE};\n\n/**\n * @typedef {import('@appium/types').ExternalDriver} ExternalDriver\n * @typedef {import('@appium/types').Element} Element\n */\n\n/**\n * @typedef Screenshot\n * @property {string} b64Screenshot - base64 based screenshot string\n */\n\n/**\n * @typedef ScreenshotScale\n * @property {number} xScale - Scale ratio for width\n * @property {number} yScale - Scale ratio for height\n */\n"],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ export default class ImageElement {
|
|
|
23
23
|
*
|
|
24
24
|
* @returns {object} - the result of running a command
|
|
25
25
|
*/
|
|
26
|
-
static execute(driver: import(
|
|
26
|
+
static execute(driver: import('appium/driver').BaseDriver, imgEl: any, cmd: string, ...args: string[]): object;
|
|
27
27
|
/**
|
|
28
28
|
* @param {string} b64Template - the base64-encoded image which was used to
|
|
29
29
|
* find this ImageElement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-element.d.ts","sourceRoot":"","sources":["../../lib/image-element.js"],"names":[],"mappings":"AAaA;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH;IAsLE;;;;;;;;;OASG;IACH,
|
|
1
|
+
{"version":3,"file":"image-element.d.ts","sourceRoot":"","sources":["../../lib/image-element.js"],"names":[],"mappings":"AAaA;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH;IAsLE;;;;;;;;;OASG;IACH,uBAPW,OAAO,eAAe,EAAE,UAAU,mBAClC,MAAM,WAEN,MAAM,EAAE,GAEN,MAAM,CA8BlB;IA3ND;;;;;;;;;OASG;IACH,yBATW,MAAM,QAEN,IAAI,SACJ,MAAM,cAEN,MAAM,kBAEN,OAAO,UAAU,EAAE,OAAO,SASpC;IANC,iBAA2B;IAC3B,mCAAgB;IAChB,WAAmD;IACnD,+BAAgC;IAChC,cAAkB;IAClB,0CAAoB;IAGtB;;OAEG;IACH,sBAEC;IAED;;OAEG;IACH,yBAEC;IAED;;OAEG;IACH,uBAKC;IAED;;OAEG;IACH,kCAEC;IAED;;;;;OAKG;IACH,uBALW,MAAM,GAGJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,cALW,YAAY,GAEV,OAAO,CAUnB;IAED;;;;;OAKG;IACH,wCAkGC;CAyCF;;;;;WA3Oa,MAAM;;;;YACN,MAAM;;;;;;OAKN,MAAM;;;;OACN,MAAM;;mBA+OP,OAAO,eAAe,EAAE,IAAI;sBAC5B,OAAO,eAAe,EAAE,OAAO;AA7P5C,2DAAqD;AADrD,qDAA+C;AAG/C,6CAAyC;AALzC,2DAAqD"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -19,6 +17,8 @@ var _logger = _interopRequireDefault(require("./logger"));
|
|
|
19
17
|
|
|
20
18
|
var _finder = require("./finder");
|
|
21
19
|
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
22
|
const IMAGE_ELEMENT_PREFIX = 'appium-image-element-';
|
|
23
23
|
exports.IMAGE_ELEMENT_PREFIX = IMAGE_ELEMENT_PREFIX;
|
|
24
24
|
const TAP_DURATION_MS = 125;
|
|
@@ -208,4 +208,4 @@ class ImageElement {
|
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
exports.ImageElement = exports.default = ImageElement;
|
|
211
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTUFHRV9FTEVNRU5UX1BSRUZJWCIsIlRBUF9EVVJBVElPTl9NUyIsIklNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MiLCJJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCIsIklNQUdFX1RBUF9TVFJBVEVHSUVTIiwiREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSIsIkltYWdlRWxlbWVudCIsImNvbnN0cnVjdG9yIiwiYjY0VGVtcGxhdGUiLCJyZWN0Iiwic2NvcmUiLCJiNjRSZXN1bHQiLCJmaW5kZXIiLCJ0ZW1wbGF0ZSIsImlkIiwidXRpbCIsInV1aWRWNCIsImI2NE1hdGNoZWRJbWFnZSIsInNpemUiLCJ3aWR0aCIsImhlaWdodCIsImxvY2F0aW9uIiwieCIsInkiLCJjZW50ZXIiLCJtYXRjaGVkSW1hZ2UiLCJhc0VsZW1lbnQiLCJwcm90b2NvbEtleSIsImVxdWFscyIsIm90aGVyIiwiY2xpY2siLCJkcml2ZXIiLCJuZXdJbWdFbCIsInNldHRpbmdzIiwiT2JqZWN0IiwiYXNzaWduIiwiREVGQVVMVF9TRVRUSU5HUyIsImdldFNldHRpbmdzIiwiYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uIiwidXBkYXRlUG9zIiwiY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MiLCJpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSIsImluY2x1ZGVzIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwibG9nIiwiaW5mbyIsImZpbmRCeUltYWdlIiwic2hvdWxkQ2hlY2tTdGFsZW5lc3MiLCJpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIiwiZXJyIiwiZXJyb3JzIiwiU3RhbGVFbGVtZW50UmVmZXJlbmNlRXJyb3IiLCJ3YXJuIiwiXyIsImNsb25lIiwiYWN0aW9uIiwidHlwZSIsInBhcmFtZXRlcnMiLCJwb2ludGVyVHlwZSIsImFjdGlvbnMiLCJkdXJhdGlvbiIsImJ1dHRvbiIsInBlcmZvcm1BY3Rpb25zIiwib3B0aW9ucyIsInBlcmZvcm1Ub3VjaCIsImV4ZWN1dGUiLCJpbWdFbCIsImNtZCIsImFyZ3MiLCJOb3RZZXRJbXBsZW1lbnRlZEVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2ltYWdlLWVsZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQge0RFRkFVTFRfU0VUVElOR1N9IGZyb20gJy4vZmluZGVyJztcblxuY29uc3QgSU1BR0VfRUxFTUVOVF9QUkVGSVggPSAnYXBwaXVtLWltYWdlLWVsZW1lbnQtJztcbmNvbnN0IFRBUF9EVVJBVElPTl9NUyA9IDEyNTtcbmNvbnN0IElNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MgPSAndzNjQWN0aW9ucyc7XG5jb25zdCBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCA9ICd0b3VjaEFjdGlvbnMnO1xuY29uc3QgSU1BR0VfVEFQX1NUUkFURUdJRVMgPSBbSU1BR0VfRUxfVEFQX1NUUkFURUdZX01KU09OV1AsIElNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0NdO1xuY29uc3QgREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSA9IDEuMDtcblxuLyoqXG4gKiBAdHlwZWRlZiBEaW1lbnNpb25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWR0aCAtIHdpZHRoIG9mIHJlY3RcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgLSBoZWlnaHQgb2YgcmVjdFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgUG9zaXRpb25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4IC0geCBjb29yZGluYXRlXG4gKiBAcHJvcGVydHkge251bWJlcn0geSAtIHkgY29vcmRpbmF0ZVxuICovXG5cbi8qKlxuICogUmVwcmVzZW50YXRpb24gb2YgYW4gXCJpbWFnZSBlbGVtZW50XCIsIHdoaWNoIGlzIHNpbXBseSBhIHNldCBvZiBjb29yZGluYXRlc1xuICogYW5kIG1ldGhvZHMgdGhhdCBjYW4gYmUgdXNlZCBvbiB0aGF0IHNldCBvZiBjb29yZGluYXRlcyB2aWEgdGhlIGRyaXZlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbWFnZUVsZW1lbnQge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gdGhlIGJhc2U2NC1lbmNvZGVkIGltYWdlIHdoaWNoIHdhcyB1c2VkIHRvXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdGhpcyBJbWFnZUVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWN0fSByZWN0IC0gYm91bmRzIG9mIG1hdGNoZWQgaW1hZ2UgZWxlbWVudFxuICAgKiBAcGFyYW0ge251bWJlcn0gc2NvcmUgVGhlIHNpbWlsYXJpdHkgc2NvcmUgYXMgYSBmbG9hdCBudW1iZXIgaW4gcmFuZ2UgWzAuMCwgMS4wXS5cbiAgICogMS4wIGlzIHRoZSBoaWdoZXN0IHNjb3JlIChtZWFucyBib3RoIGltYWdlcyBhcmUgdG90YWxseSBlcXVhbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nP30gYjY0UmVzdWx0IC0gdGhlIGJhc2U2NC1lbmNvZGVkIGltYWdlIHdoaWNoIGhhcyBtYXRjaGVkIG1hcmtzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIG51bGwuXG4gICAqIEBwYXJhbSB7aW1wb3J0KCcuL2ZpbmRlcicpLmRlZmF1bHQ/fSBmaW5kZXIgLSB0aGUgZmluZGVyIHdlIGNhbiB1c2UgdG8gcmUtY2hlY2sgc3RhbGUgZWxlbWVudHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKGI2NFRlbXBsYXRlLCByZWN0LCBzY29yZSwgYjY0UmVzdWx0ID0gbnVsbCwgZmluZGVyID0gbnVsbCkge1xuICAgIHRoaXMudGVtcGxhdGUgPSBiNjRUZW1wbGF0ZTtcbiAgICB0aGlzLnJlY3QgPSByZWN0O1xuICAgIHRoaXMuaWQgPSBgJHtJTUFHRV9FTEVNRU5UX1BSRUZJWH0ke3V0aWwudXVpZFY0KCl9YDtcbiAgICB0aGlzLmI2NE1hdGNoZWRJbWFnZSA9IGI2NFJlc3VsdDtcbiAgICB0aGlzLnNjb3JlID0gc2NvcmU7XG4gICAgdGhpcy5maW5kZXIgPSBmaW5kZXI7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0RpbWVuc2lvbn0gLSBkaW1lbnNpb24gb2YgZWxlbWVudFxuICAgKi9cbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHt3aWR0aDogdGhpcy5yZWN0LndpZHRoLCBoZWlnaHQ6IHRoaXMucmVjdC5oZWlnaHR9O1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQb3NpdGlvbn0gLSBjb29yZGluYXRlcyBvZiB0b3AtbGVmdCBjb3JuZXIgb2YgZWxlbWVudFxuICAgKi9cbiAgZ2V0IGxvY2F0aW9uKCkge1xuICAgIHJldHVybiB7eDogdGhpcy5yZWN0LngsIHk6IHRoaXMucmVjdC55fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UG9zaXRpb259IC0gY29vcmRpbmF0ZXMgb2YgY2VudGVyIG9mIGVsZW1lbnRcbiAgICovXG4gIGdldCBjZW50ZXIoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucmVjdC54ICsgdGhpcy5yZWN0LndpZHRoIC8gMixcbiAgICAgIHk6IHRoaXMucmVjdC55ICsgdGhpcy5yZWN0LmhlaWdodCAvIDIsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7P3N0cmluZ30gLSB0aGUgYmFzZTY0LWVuY29kZWQgaW1hZ2Ugd2hpY2ggaGFzIG1hdGNoZWQgbWFya3NcbiAgICovXG4gIGdldCBtYXRjaGVkSW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuYjY0TWF0Y2hlZEltYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm90b2NvbEtleSAtIHRoZSBwcm90b2NvbC1zcGVjaWZpYyBKU09OIGtleSBmb3JcbiAgICogYSBXZWJFbGVtZW50XG4gICAqXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fSAtIHRoaXMgaW1hZ2UgZWxlbWVudCBhcyBhIFdlYkVsZW1lbnRcbiAgICovXG4gIGFzRWxlbWVudChwcm90b2NvbEtleSkge1xuICAgIHJldHVybiB7W3Byb3RvY29sS2V5XTogdGhpcy5pZH07XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtJbWFnZUVsZW1lbnR9IG90aGVyIC0gYW4gSW1hZ2VFbGVtZW50IHRvIGNvbXBhcmUgd2l0aCB0aGlzIG9uZVxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB3aGV0aGVyIHRoZSBvdGhlciBlbGVtZW50IGFuZCB0aGlzIG9uZSBoYXZlIHRoZSBzYW1lXG4gICAqIHByb3BlcnRpZXNcbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlY3QueCA9PT0gb3RoZXIucmVjdC54ICYmXG4gICAgICB0aGlzLnJlY3QueSA9PT0gb3RoZXIucmVjdC55ICYmXG4gICAgICB0aGlzLnJlY3Qud2lkdGggPT09IG90aGVyLnJlY3Qud2lkdGggJiZcbiAgICAgIHRoaXMucmVjdC5oZWlnaHQgPT09IG90aGVyLnJlY3QuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBkcml2ZXIgdG8gdGFwIHRoZSBzY3JlZW4gYXQgdGhlIGNlbnRlciBvZiB0aGlzIEltYWdlRWxlbWVudCdzXG4gICAqIHBvc2l0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZURyaXZlcn0gZHJpdmVyIC0gZHJpdmVyIGZvciBjYWxsaW5nIGFjdGlvbnMgd2l0aFxuICAgKi9cbiAgYXN5bmMgY2xpY2soZHJpdmVyKSB7XG4gICAgLy8gYmVmb3JlIHdlIGNsaWNrIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IHN0aWxsIHRoZXJlXG4gICAgLy8gd2hlcmUgd2UgZXhwZWN0IGl0IHRvIGJlXG4gICAgbGV0IG5ld0ltZ0VsO1xuICAgIGNvbnN0IHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgZHJpdmVyLnNldHRpbmdzLmdldFNldHRpbmdzKCkpO1xuICAgIGNvbnN0IHtcbiAgICAgIGF1dG9VcGRhdGVJbWFnZUVsZW1lbnRQb3NpdGlvbjogdXBkYXRlUG9zLFxuICAgICAgY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MsXG4gICAgICBpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSxcbiAgICB9ID0gc2V0dGluZ3M7XG5cbiAgICAvLyB2YWxpZGF0ZSB0YXAgc3RyYXRlZ3lcbiAgICBpZiAoIUlNQUdFX1RBUF9TVFJBVEVHSUVTLmluY2x1ZGVzKGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW5jb3JyZWN0IGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5IHNldHRpbmcgYCArXG4gICAgICAgICAgYCcke2ltYWdlRWxlbWVudFRhcFN0cmF0ZWd5fScuIE11c3QgYmUgb25lIG9mIGAgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KElNQUdFX1RBUF9TVFJBVEVHSUVTKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MgfHwgdXBkYXRlUG9zKSB7XG4gICAgICBsb2cuaW5mbygnQ2hlY2tpbmcgaW1hZ2UgZWxlbWVudCBmb3Igc3RhbGVuZXNzIGJlZm9yZSBjbGlja2luZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbmV3SW1nRWwgPSBhd2FpdCB0aGlzLmZpbmRlci5maW5kQnlJbWFnZSh0aGlzLnRlbXBsYXRlLCB7XG4gICAgICAgICAgc2hvdWxkQ2hlY2tTdGFsZW5lc3M6IHRydWUsXG4gICAgICAgICAgLy8gU2V0IGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgYmVjYXVzZSB0aGlzLnRlbXBsYXRlIGlzIGRldmljZSBzY3JlZW5zaG90IGJhc2VkIGltYWdlXG4gICAgICAgICAgLy8gbWFuYWdlZCBpbnNpZGUgQXBwaXVtIGFmdGVyIGZpbmlkbmcgaW1hZ2UgYnkgdGVtcGxhdGUgd2hpY2ggbWFuYWdlZCBieSBhIHVzZXJcbiAgICAgICAgICBpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLlN0YWxlRWxlbWVudFJlZmVyZW5jZUVycm9yKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5lcXVhbHMobmV3SW1nRWwpKSB7XG4gICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgIGBXaGVuIHRyeWluZyB0byBjbGljayBvbiBhbiBpbWFnZSBlbGVtZW50LCB0aGUgaW1hZ2UgY2hhbmdlZCBgICtcbiAgICAgICAgICAgIGBwb3NpdGlvbiBmcm9tIHdoZXJlIGl0IHdhcyBvcmlnaW5hbGx5IGZvdW5kLiBJdCBpcyBub3cgYXQgYCArXG4gICAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShuZXdJbWdFbC5yZWN0KX0gYW5kIHdhcyBvcmlnaW5hbGx5IGF0IGAgK1xuICAgICAgICAgICAgYCR7SlNPTi5zdHJpbmdpZnkodGhpcy5yZWN0KX0uYFxuICAgICAgICApO1xuICAgICAgICBpZiAodXBkYXRlUG9zKSB7XG4gICAgICAgICAgbG9nLndhcm4oJ0NsaWNrIHdpbGwgcHJvY2VlZCBhdCBuZXcgY29vcmRpbmF0ZXMnKTtcbiAgICAgICAgICB0aGlzLnJlY3QgPSBfLmNsb25lKG5ld0ltZ0VsLnJlY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgICAgJ0NsaWNrIHdpbGwgdGFrZSBwbGFjZSBhdCBvcmlnaW5hbCBjb29yZGluYXRlcy4gSWYgeW91ICcgK1xuICAgICAgICAgICAgICAnd291bGQgbGlrZSBBcHBpdW0gdG8gYXV0b21hdGljYWxseSBjbGljayB0aGUgbmV3ICcgK1xuICAgICAgICAgICAgICBcImNvb3JkaW5hdGVzLCBzZXQgdGhlICdhdXRvVXBkYXRlSW1hZ2VFbGVtZW50UG9zaXRpb24nIFwiICtcbiAgICAgICAgICAgICAgJ3NldHRpbmcgdG8gdHJ1ZSdcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qge3gsIHl9ID0gdGhpcy5jZW50ZXI7XG4gICAgbG9nLmluZm8oYFdpbGwgdGFwIG9uIGltYWdlIGVsZW1lbnQgYXQgY29vcmRpbmF0ZSBbJHt4fSwgJHt5fV1gKTtcblxuICAgIGlmIChpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSA9PT0gSU1BR0VfRUxfVEFQX1NUUkFURUdZX1czQykge1xuICAgICAgLy8gc2V0IHVwIGEgVzNDIGFjdGlvbiB0byBjbGljayBvbiB0aGUgaW1hZ2UgYnkgcG9zaXRpb25cbiAgICAgIGxvZy5pbmZvKCdXaWxsIHRhcCB1c2luZyBXM0MgYWN0aW9ucycpO1xuICAgICAgY29uc3QgYWN0aW9uID0ge1xuICAgICAgICB0eXBlOiAncG9pbnRlcicsXG4gICAgICAgIGlkOiAnbW91c2UnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7cG9pbnRlclR5cGU6ICd0b3VjaCd9LFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge3R5cGU6ICdwb2ludGVyTW92ZScsIHgsIHksIGR1cmF0aW9uOiAwfSxcbiAgICAgICAgICB7dHlwZTogJ3BvaW50ZXJEb3duJywgYnV0dG9uOiAwfSxcbiAgICAgICAgICB7dHlwZTogJ3BhdXNlJywgZHVyYXRpb246IFRBUF9EVVJBVElPTl9NU30sXG4gICAgICAgICAge3R5cGU6ICdwb2ludGVyVXAnLCBidXR0b246IDB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGRyaXZlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHBlcmZvcm1BY3Rpb25zIG1ldGhvZFxuICAgICAgaWYgKGRyaXZlci5wZXJmb3JtQWN0aW9ucykge1xuICAgICAgICByZXR1cm4gYXdhaXQgZHJpdmVyLnBlcmZvcm1BY3Rpb25zKFthY3Rpb25dKTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgbm90LCB3YXJuIGFuZCBmYWxsIGJhY2sgdG8gdGhlIG90aGVyIG1ldGhvZFxuICAgICAgbG9nLndhcm4oJ0RyaXZlciBkb2VzIG5vdCBzZWVtIHRvIGltcGxlbWVudCBXM0MgYWN0aW9ucywgZmFsbGluZyBiYWNrICcgKyAndG8gVG91Y2hBY3Rpb25zJyk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHczYyBzdHJhdGVneSB3YXMgbm90IHJlcXVlc3RlZCwgZG8gdGhlIG9ubHkgb3RoZXIgb3B0aW9uIChtanNvbndwXG4gICAgLy8gdG91Y2ggYWN0aW9ucylcbiAgICBsb2cuaW5mbygnV2lsbCB0YXAgdXNpbmcgTUpTT05XUCBUb3VjaEFjdGlvbnMnKTtcbiAgICBjb25zdCBhY3Rpb24gPSB7XG4gICAgICBhY3Rpb246ICd0YXAnLFxuICAgICAgb3B0aW9uczoge3gsIHl9LFxuICAgIH07XG5cbiAgICBpZiAoZHJpdmVyLnBlcmZvcm1Ub3VjaCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGRyaXZlci5wZXJmb3JtVG91Y2goW2FjdGlvbl0pO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiRHJpdmVyIGRpZCBub3QgaW1wbGVtZW50IHRoZSAncGVyZm9ybVRvdWNoJyBjb21tYW5kLiBcIiArXG4gICAgICAgICdGb3IgZHJpdmVycyB0byBzdXBwb3J0IGZpbmRpbmcgaW1hZ2UgZWxlbWVudHMsIHRoZXkgJyArXG4gICAgICAgIFwic2hvdWxkIHN1cHBvcnQgJ3BlcmZvcm1Ub3VjaCcgYW5kICdwZXJmb3JtQWN0aW9ucydcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHZhcmlvdXMgQXBwaXVtIGNvbW1hbmRzIHRoYXQgaW52b2x2ZSBhbiBpbWFnZSBlbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSB7aW1wb3J0KCdhcHBpdW0vZHJpdmVyJykuQmFzZURyaXZlcn0gZHJpdmVyIC0gdGhlIGRyaXZlciB0byB1c2UgZm9yIGNvbW1hbmRzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbWQgLSB0aGUgbmFtZSBvZiB0aGUgZHJpdmVyIGNvbW1hbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGltZ0VsSWQgLSB0aGUgaWQgb2YgdGhlIEltYWdlRWxlbWVudCB0byB3b3JrIHdpdGhcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIFJlc3Qgb2YgYXJndW1lbnRzIGZvciBleGVjdXRlU2NyaXB0c1xuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSAtIHRoZSByZXN1bHQgb2YgcnVubmluZyBhIGNvbW1hbmRcbiAgICovXG4gIHN0YXRpYyBhc3luYyBleGVjdXRlKGRyaXZlciwgaW1nRWwsIGNtZCwgLi4uYXJncykge1xuICAgIHN3aXRjaCAoY21kKSB7XG4gICAgICBjYXNlICdjbGljayc6XG4gICAgICAgIHJldHVybiBhd2FpdCBpbWdFbC5jbGljayhkcml2ZXIpO1xuICAgICAgY2FzZSAnZWxlbWVudERpc3BsYXllZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnZ2V0U2l6ZSc6XG4gICAgICAgIHJldHVybiBpbWdFbC5zaXplO1xuICAgICAgY2FzZSAnZ2V0TG9jYXRpb24nOlxuICAgICAgY2FzZSAnZ2V0TG9jYXRpb25JblZpZXcnOlxuICAgICAgICByZXR1cm4gaW1nRWwubG9jYXRpb247XG4gICAgICBjYXNlICdnZXRFbGVtZW50UmVjdCc6XG4gICAgICAgIHJldHVybiBpbWdFbC5yZWN0O1xuICAgICAgY2FzZSAnZ2V0QXR0cmlidXRlJzpcbiAgICAgICAgLy8gL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvYXR0cmlidXRlLzpuYW1lXG4gICAgICAgIC8vIC9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS92aXN1YWwgc2hvdWxkIHJldHVuIHRoZSB2aXN1YWwgZGF0YVxuICAgICAgICAvLyBlLmcuIFtcImNvbnRlbnQtZGVzY1wiLFwiYXBwaXVtLWltYWdlLWVsZW1lbnQteHh4eHhcIixcInh4eHh4XCJdLCBbXCJ2aXN1YWxcIixcImFwcGl1bS1pbWFnZS1lbGVtZW50LXh4eHh4XCIsXCJ4eHh4eFwiXVxuICAgICAgICBzd2l0Y2ggKGFyZ3NbMF0pIHtcbiAgICAgICAgICBjYXNlICd2aXN1YWwnOlxuICAgICAgICAgICAgcmV0dXJuIGltZ0VsLm1hdGNoZWRJbWFnZTtcbiAgICAgICAgICBjYXNlICdzY29yZSc6XG4gICAgICAgICAgICByZXR1cm4gaW1nRWwuc2NvcmU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdFlldEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgSW1hZ2VFbGVtZW50LFxuICBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCxcbiAgSU1BR0VfRUxfVEFQX1NUUkFURUdZX1czQyxcbiAgREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSxcbiAgSU1BR0VfRUxFTUVOVF9QUkVGSVgsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5SZWN0fSBSZWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsb0JBQW9CLEdBQUcsdUJBQTdCOztBQUNBLE1BQU1DLGVBQWUsR0FBRyxHQUF4QjtBQUNB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
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTUFHRV9FTEVNRU5UX1BSRUZJWCIsIlRBUF9EVVJBVElPTl9NUyIsIklNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MiLCJJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCIsIklNQUdFX1RBUF9TVFJBVEVHSUVTIiwiREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSIsIkltYWdlRWxlbWVudCIsImNvbnN0cnVjdG9yIiwiYjY0VGVtcGxhdGUiLCJyZWN0Iiwic2NvcmUiLCJiNjRSZXN1bHQiLCJmaW5kZXIiLCJ0ZW1wbGF0ZSIsImlkIiwidXRpbCIsInV1aWRWNCIsImI2NE1hdGNoZWRJbWFnZSIsInNpemUiLCJ3aWR0aCIsImhlaWdodCIsImxvY2F0aW9uIiwieCIsInkiLCJjZW50ZXIiLCJtYXRjaGVkSW1hZ2UiLCJhc0VsZW1lbnQiLCJwcm90b2NvbEtleSIsImVxdWFscyIsIm90aGVyIiwiY2xpY2siLCJkcml2ZXIiLCJuZXdJbWdFbCIsInNldHRpbmdzIiwiT2JqZWN0IiwiYXNzaWduIiwiREVGQVVMVF9TRVRUSU5HUyIsImdldFNldHRpbmdzIiwiYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uIiwidXBkYXRlUG9zIiwiY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MiLCJpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSIsImluY2x1ZGVzIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwibG9nIiwiaW5mbyIsImZpbmRCeUltYWdlIiwic2hvdWxkQ2hlY2tTdGFsZW5lc3MiLCJpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIiwiZXJyIiwiZXJyb3JzIiwiU3RhbGVFbGVtZW50UmVmZXJlbmNlRXJyb3IiLCJ3YXJuIiwiXyIsImNsb25lIiwiYWN0aW9uIiwidHlwZSIsInBhcmFtZXRlcnMiLCJwb2ludGVyVHlwZSIsImFjdGlvbnMiLCJkdXJhdGlvbiIsImJ1dHRvbiIsInBlcmZvcm1BY3Rpb25zIiwib3B0aW9ucyIsInBlcmZvcm1Ub3VjaCIsImV4ZWN1dGUiLCJpbWdFbCIsImNtZCIsImFyZ3MiLCJOb3RZZXRJbXBsZW1lbnRlZEVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2ltYWdlLWVsZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQge0RFRkFVTFRfU0VUVElOR1N9IGZyb20gJy4vZmluZGVyJztcblxuY29uc3QgSU1BR0VfRUxFTUVOVF9QUkVGSVggPSAnYXBwaXVtLWltYWdlLWVsZW1lbnQtJztcbmNvbnN0IFRBUF9EVVJBVElPTl9NUyA9IDEyNTtcbmNvbnN0IElNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MgPSAndzNjQWN0aW9ucyc7XG5jb25zdCBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCA9ICd0b3VjaEFjdGlvbnMnO1xuY29uc3QgSU1BR0VfVEFQX1NUUkFURUdJRVMgPSBbSU1BR0VfRUxfVEFQX1NUUkFURUdZX01KU09OV1AsIElNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0NdO1xuY29uc3QgREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSA9IDEuMDtcblxuLyoqXG4gKiBAdHlwZWRlZiBEaW1lbnNpb25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWR0aCAtIHdpZHRoIG9mIHJlY3RcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgLSBoZWlnaHQgb2YgcmVjdFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgUG9zaXRpb25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4IC0geCBjb29yZGluYXRlXG4gKiBAcHJvcGVydHkge251bWJlcn0geSAtIHkgY29vcmRpbmF0ZVxuICovXG5cbi8qKlxuICogUmVwcmVzZW50YXRpb24gb2YgYW4gXCJpbWFnZSBlbGVtZW50XCIsIHdoaWNoIGlzIHNpbXBseSBhIHNldCBvZiBjb29yZGluYXRlc1xuICogYW5kIG1ldGhvZHMgdGhhdCBjYW4gYmUgdXNlZCBvbiB0aGF0IHNldCBvZiBjb29yZGluYXRlcyB2aWEgdGhlIGRyaXZlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbWFnZUVsZW1lbnQge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGI2NFRlbXBsYXRlIC0gdGhlIGJhc2U2NC1lbmNvZGVkIGltYWdlIHdoaWNoIHdhcyB1c2VkIHRvXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQgdGhpcyBJbWFnZUVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWN0fSByZWN0IC0gYm91bmRzIG9mIG1hdGNoZWQgaW1hZ2UgZWxlbWVudFxuICAgKiBAcGFyYW0ge251bWJlcn0gc2NvcmUgVGhlIHNpbWlsYXJpdHkgc2NvcmUgYXMgYSBmbG9hdCBudW1iZXIgaW4gcmFuZ2UgWzAuMCwgMS4wXS5cbiAgICogMS4wIGlzIHRoZSBoaWdoZXN0IHNjb3JlIChtZWFucyBib3RoIGltYWdlcyBhcmUgdG90YWxseSBlcXVhbCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nP30gYjY0UmVzdWx0IC0gdGhlIGJhc2U2NC1lbmNvZGVkIGltYWdlIHdoaWNoIGhhcyBtYXRjaGVkIG1hcmtzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIG51bGwuXG4gICAqIEBwYXJhbSB7aW1wb3J0KCcuL2ZpbmRlcicpLmRlZmF1bHQ/fSBmaW5kZXIgLSB0aGUgZmluZGVyIHdlIGNhbiB1c2UgdG8gcmUtY2hlY2sgc3RhbGUgZWxlbWVudHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKGI2NFRlbXBsYXRlLCByZWN0LCBzY29yZSwgYjY0UmVzdWx0ID0gbnVsbCwgZmluZGVyID0gbnVsbCkge1xuICAgIHRoaXMudGVtcGxhdGUgPSBiNjRUZW1wbGF0ZTtcbiAgICB0aGlzLnJlY3QgPSByZWN0O1xuICAgIHRoaXMuaWQgPSBgJHtJTUFHRV9FTEVNRU5UX1BSRUZJWH0ke3V0aWwudXVpZFY0KCl9YDtcbiAgICB0aGlzLmI2NE1hdGNoZWRJbWFnZSA9IGI2NFJlc3VsdDtcbiAgICB0aGlzLnNjb3JlID0gc2NvcmU7XG4gICAgdGhpcy5maW5kZXIgPSBmaW5kZXI7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0RpbWVuc2lvbn0gLSBkaW1lbnNpb24gb2YgZWxlbWVudFxuICAgKi9cbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHt3aWR0aDogdGhpcy5yZWN0LndpZHRoLCBoZWlnaHQ6IHRoaXMucmVjdC5oZWlnaHR9O1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQb3NpdGlvbn0gLSBjb29yZGluYXRlcyBvZiB0b3AtbGVmdCBjb3JuZXIgb2YgZWxlbWVudFxuICAgKi9cbiAgZ2V0IGxvY2F0aW9uKCkge1xuICAgIHJldHVybiB7eDogdGhpcy5yZWN0LngsIHk6IHRoaXMucmVjdC55fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UG9zaXRpb259IC0gY29vcmRpbmF0ZXMgb2YgY2VudGVyIG9mIGVsZW1lbnRcbiAgICovXG4gIGdldCBjZW50ZXIoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucmVjdC54ICsgdGhpcy5yZWN0LndpZHRoIC8gMixcbiAgICAgIHk6IHRoaXMucmVjdC55ICsgdGhpcy5yZWN0LmhlaWdodCAvIDIsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7P3N0cmluZ30gLSB0aGUgYmFzZTY0LWVuY29kZWQgaW1hZ2Ugd2hpY2ggaGFzIG1hdGNoZWQgbWFya3NcbiAgICovXG4gIGdldCBtYXRjaGVkSW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuYjY0TWF0Y2hlZEltYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm90b2NvbEtleSAtIHRoZSBwcm90b2NvbC1zcGVjaWZpYyBKU09OIGtleSBmb3JcbiAgICogYSBXZWJFbGVtZW50XG4gICAqXG4gICAqIEByZXR1cm5zIHtFbGVtZW50fSAtIHRoaXMgaW1hZ2UgZWxlbWVudCBhcyBhIFdlYkVsZW1lbnRcbiAgICovXG4gIGFzRWxlbWVudChwcm90b2NvbEtleSkge1xuICAgIHJldHVybiB7W3Byb3RvY29sS2V5XTogdGhpcy5pZH07XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtJbWFnZUVsZW1lbnR9IG90aGVyIC0gYW4gSW1hZ2VFbGVtZW50IHRvIGNvbXBhcmUgd2l0aCB0aGlzIG9uZVxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB3aGV0aGVyIHRoZSBvdGhlciBlbGVtZW50IGFuZCB0aGlzIG9uZSBoYXZlIHRoZSBzYW1lXG4gICAqIHByb3BlcnRpZXNcbiAgICovXG4gIGVxdWFscyhvdGhlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlY3QueCA9PT0gb3RoZXIucmVjdC54ICYmXG4gICAgICB0aGlzLnJlY3QueSA9PT0gb3RoZXIucmVjdC55ICYmXG4gICAgICB0aGlzLnJlY3Qud2lkdGggPT09IG90aGVyLnJlY3Qud2lkdGggJiZcbiAgICAgIHRoaXMucmVjdC5oZWlnaHQgPT09IG90aGVyLnJlY3QuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBkcml2ZXIgdG8gdGFwIHRoZSBzY3JlZW4gYXQgdGhlIGNlbnRlciBvZiB0aGlzIEltYWdlRWxlbWVudCdzXG4gICAqIHBvc2l0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZURyaXZlcn0gZHJpdmVyIC0gZHJpdmVyIGZvciBjYWxsaW5nIGFjdGlvbnMgd2l0aFxuICAgKi9cbiAgYXN5bmMgY2xpY2soZHJpdmVyKSB7XG4gICAgLy8gYmVmb3JlIHdlIGNsaWNrIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IHN0aWxsIHRoZXJlXG4gICAgLy8gd2hlcmUgd2UgZXhwZWN0IGl0IHRvIGJlXG4gICAgbGV0IG5ld0ltZ0VsO1xuICAgIGNvbnN0IHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgZHJpdmVyLnNldHRpbmdzLmdldFNldHRpbmdzKCkpO1xuICAgIGNvbnN0IHtcbiAgICAgIGF1dG9VcGRhdGVJbWFnZUVsZW1lbnRQb3NpdGlvbjogdXBkYXRlUG9zLFxuICAgICAgY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MsXG4gICAgICBpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSxcbiAgICB9ID0gc2V0dGluZ3M7XG5cbiAgICAvLyB2YWxpZGF0ZSB0YXAgc3RyYXRlZ3lcbiAgICBpZiAoIUlNQUdFX1RBUF9TVFJBVEVHSUVTLmluY2x1ZGVzKGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW5jb3JyZWN0IGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5IHNldHRpbmcgYCArXG4gICAgICAgICAgYCcke2ltYWdlRWxlbWVudFRhcFN0cmF0ZWd5fScuIE11c3QgYmUgb25lIG9mIGAgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KElNQUdFX1RBUF9TVFJBVEVHSUVTKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tGb3JJbWFnZUVsZW1lbnRTdGFsZW5lc3MgfHwgdXBkYXRlUG9zKSB7XG4gICAgICBsb2cuaW5mbygnQ2hlY2tpbmcgaW1hZ2UgZWxlbWVudCBmb3Igc3RhbGVuZXNzIGJlZm9yZSBjbGlja2luZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbmV3SW1nRWwgPSBhd2FpdCB0aGlzLmZpbmRlci5maW5kQnlJbWFnZSh0aGlzLnRlbXBsYXRlLCB7XG4gICAgICAgICAgc2hvdWxkQ2hlY2tTdGFsZW5lc3M6IHRydWUsXG4gICAgICAgICAgLy8gU2V0IGlnbm9yZURlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGUgYmVjYXVzZSB0aGlzLnRlbXBsYXRlIGlzIGRldmljZSBzY3JlZW5zaG90IGJhc2VkIGltYWdlXG4gICAgICAgICAgLy8gbWFuYWdlZCBpbnNpZGUgQXBwaXVtIGFmdGVyIGZpbmlkbmcgaW1hZ2UgYnkgdGVtcGxhdGUgd2hpY2ggbWFuYWdlZCBieSBhIHVzZXJcbiAgICAgICAgICBpZ25vcmVEZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLlN0YWxlRWxlbWVudFJlZmVyZW5jZUVycm9yKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5lcXVhbHMobmV3SW1nRWwpKSB7XG4gICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgIGBXaGVuIHRyeWluZyB0byBjbGljayBvbiBhbiBpbWFnZSBlbGVtZW50LCB0aGUgaW1hZ2UgY2hhbmdlZCBgICtcbiAgICAgICAgICAgIGBwb3NpdGlvbiBmcm9tIHdoZXJlIGl0IHdhcyBvcmlnaW5hbGx5IGZvdW5kLiBJdCBpcyBub3cgYXQgYCArXG4gICAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShuZXdJbWdFbC5yZWN0KX0gYW5kIHdhcyBvcmlnaW5hbGx5IGF0IGAgK1xuICAgICAgICAgICAgYCR7SlNPTi5zdHJpbmdpZnkodGhpcy5yZWN0KX0uYFxuICAgICAgICApO1xuICAgICAgICBpZiAodXBkYXRlUG9zKSB7XG4gICAgICAgICAgbG9nLndhcm4oJ0NsaWNrIHdpbGwgcHJvY2VlZCBhdCBuZXcgY29vcmRpbmF0ZXMnKTtcbiAgICAgICAgICB0aGlzLnJlY3QgPSBfLmNsb25lKG5ld0ltZ0VsLnJlY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgICAgJ0NsaWNrIHdpbGwgdGFrZSBwbGFjZSBhdCBvcmlnaW5hbCBjb29yZGluYXRlcy4gSWYgeW91ICcgK1xuICAgICAgICAgICAgICAnd291bGQgbGlrZSBBcHBpdW0gdG8gYXV0b21hdGljYWxseSBjbGljayB0aGUgbmV3ICcgK1xuICAgICAgICAgICAgICBcImNvb3JkaW5hdGVzLCBzZXQgdGhlICdhdXRvVXBkYXRlSW1hZ2VFbGVtZW50UG9zaXRpb24nIFwiICtcbiAgICAgICAgICAgICAgJ3NldHRpbmcgdG8gdHJ1ZSdcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qge3gsIHl9ID0gdGhpcy5jZW50ZXI7XG4gICAgbG9nLmluZm8oYFdpbGwgdGFwIG9uIGltYWdlIGVsZW1lbnQgYXQgY29vcmRpbmF0ZSBbJHt4fSwgJHt5fV1gKTtcblxuICAgIGlmIChpbWFnZUVsZW1lbnRUYXBTdHJhdGVneSA9PT0gSU1BR0VfRUxfVEFQX1NUUkFURUdZX1czQykge1xuICAgICAgLy8gc2V0IHVwIGEgVzNDIGFjdGlvbiB0byBjbGljayBvbiB0aGUgaW1hZ2UgYnkgcG9zaXRpb25cbiAgICAgIGxvZy5pbmZvKCdXaWxsIHRhcCB1c2luZyBXM0MgYWN0aW9ucycpO1xuICAgICAgY29uc3QgYWN0aW9uID0ge1xuICAgICAgICB0eXBlOiAncG9pbnRlcicsXG4gICAgICAgIGlkOiAnbW91c2UnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7cG9pbnRlclR5cGU6ICd0b3VjaCd9LFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge3R5cGU6ICdwb2ludGVyTW92ZScsIHgsIHksIGR1cmF0aW9uOiAwfSxcbiAgICAgICAgICB7dHlwZTogJ3BvaW50ZXJEb3duJywgYnV0dG9uOiAwfSxcbiAgICAgICAgICB7dHlwZTogJ3BhdXNlJywgZHVyYXRpb246IFRBUF9EVVJBVElPTl9NU30sXG4gICAgICAgICAge3R5cGU6ICdwb2ludGVyVXAnLCBidXR0b246IDB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGRyaXZlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHBlcmZvcm1BY3Rpb25zIG1ldGhvZFxuICAgICAgaWYgKGRyaXZlci5wZXJmb3JtQWN0aW9ucykge1xuICAgICAgICByZXR1cm4gYXdhaXQgZHJpdmVyLnBlcmZvcm1BY3Rpb25zKFthY3Rpb25dKTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgbm90LCB3YXJuIGFuZCBmYWxsIGJhY2sgdG8gdGhlIG90aGVyIG1ldGhvZFxuICAgICAgbG9nLndhcm4oJ0RyaXZlciBkb2VzIG5vdCBzZWVtIHRvIGltcGxlbWVudCBXM0MgYWN0aW9ucywgZmFsbGluZyBiYWNrICcgKyAndG8gVG91Y2hBY3Rpb25zJyk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHczYyBzdHJhdGVneSB3YXMgbm90IHJlcXVlc3RlZCwgZG8gdGhlIG9ubHkgb3RoZXIgb3B0aW9uIChtanNvbndwXG4gICAgLy8gdG91Y2ggYWN0aW9ucylcbiAgICBsb2cuaW5mbygnV2lsbCB0YXAgdXNpbmcgTUpTT05XUCBUb3VjaEFjdGlvbnMnKTtcbiAgICBjb25zdCBhY3Rpb24gPSB7XG4gICAgICBhY3Rpb246ICd0YXAnLFxuICAgICAgb3B0aW9uczoge3gsIHl9LFxuICAgIH07XG5cbiAgICBpZiAoZHJpdmVyLnBlcmZvcm1Ub3VjaCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGRyaXZlci5wZXJmb3JtVG91Y2goW2FjdGlvbl0pO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiRHJpdmVyIGRpZCBub3QgaW1wbGVtZW50IHRoZSAncGVyZm9ybVRvdWNoJyBjb21tYW5kLiBcIiArXG4gICAgICAgICdGb3IgZHJpdmVycyB0byBzdXBwb3J0IGZpbmRpbmcgaW1hZ2UgZWxlbWVudHMsIHRoZXkgJyArXG4gICAgICAgIFwic2hvdWxkIHN1cHBvcnQgJ3BlcmZvcm1Ub3VjaCcgYW5kICdwZXJmb3JtQWN0aW9ucydcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHZhcmlvdXMgQXBwaXVtIGNvbW1hbmRzIHRoYXQgaW52b2x2ZSBhbiBpbWFnZSBlbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSB7aW1wb3J0KCdhcHBpdW0vZHJpdmVyJykuQmFzZURyaXZlcn0gZHJpdmVyIC0gdGhlIGRyaXZlciB0byB1c2UgZm9yIGNvbW1hbmRzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbWQgLSB0aGUgbmFtZSBvZiB0aGUgZHJpdmVyIGNvbW1hbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGltZ0VsSWQgLSB0aGUgaWQgb2YgdGhlIEltYWdlRWxlbWVudCB0byB3b3JrIHdpdGhcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIFJlc3Qgb2YgYXJndW1lbnRzIGZvciBleGVjdXRlU2NyaXB0c1xuICAgKlxuICAgKiBAcmV0dXJucyB7b2JqZWN0fSAtIHRoZSByZXN1bHQgb2YgcnVubmluZyBhIGNvbW1hbmRcbiAgICovXG4gIHN0YXRpYyBhc3luYyBleGVjdXRlKGRyaXZlciwgaW1nRWwsIGNtZCwgLi4uYXJncykge1xuICAgIHN3aXRjaCAoY21kKSB7XG4gICAgICBjYXNlICdjbGljayc6XG4gICAgICAgIHJldHVybiBhd2FpdCBpbWdFbC5jbGljayhkcml2ZXIpO1xuICAgICAgY2FzZSAnZWxlbWVudERpc3BsYXllZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnZ2V0U2l6ZSc6XG4gICAgICAgIHJldHVybiBpbWdFbC5zaXplO1xuICAgICAgY2FzZSAnZ2V0TG9jYXRpb24nOlxuICAgICAgY2FzZSAnZ2V0TG9jYXRpb25JblZpZXcnOlxuICAgICAgICByZXR1cm4gaW1nRWwubG9jYXRpb247XG4gICAgICBjYXNlICdnZXRFbGVtZW50UmVjdCc6XG4gICAgICAgIHJldHVybiBpbWdFbC5yZWN0O1xuICAgICAgY2FzZSAnZ2V0QXR0cmlidXRlJzpcbiAgICAgICAgLy8gL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvYXR0cmlidXRlLzpuYW1lXG4gICAgICAgIC8vIC9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS92aXN1YWwgc2hvdWxkIHJldHVuIHRoZSB2aXN1YWwgZGF0YVxuICAgICAgICAvLyBlLmcuIFtcImNvbnRlbnQtZGVzY1wiLFwiYXBwaXVtLWltYWdlLWVsZW1lbnQteHh4eHhcIixcInh4eHh4XCJdLCBbXCJ2aXN1YWxcIixcImFwcGl1bS1pbWFnZS1lbGVtZW50LXh4eHh4XCIsXCJ4eHh4eFwiXVxuICAgICAgICBzd2l0Y2ggKGFyZ3NbMF0pIHtcbiAgICAgICAgICBjYXNlICd2aXN1YWwnOlxuICAgICAgICAgICAgcmV0dXJuIGltZ0VsLm1hdGNoZWRJbWFnZTtcbiAgICAgICAgICBjYXNlICdzY29yZSc6XG4gICAgICAgICAgICByZXR1cm4gaW1nRWwuc2NvcmU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdFlldEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgSW1hZ2VFbGVtZW50LFxuICBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfTUpTT05XUCxcbiAgSU1BR0VfRUxfVEFQX1NUUkFURUdZX1czQyxcbiAgREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSxcbiAgSU1BR0VfRUxFTUVOVF9QUkVGSVgsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5SZWN0fSBSZWN0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsb0JBQW9CLEdBQUcsdUJBQTdCOztBQUNBLE1BQU1DLGVBQWUsR0FBRyxHQUF4QjtBQUNB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-element.js","names":["IMAGE_ELEMENT_PREFIX","TAP_DURATION_MS","IMAGE_EL_TAP_STRATEGY_W3C","IMAGE_EL_TAP_STRATEGY_MJSONWP","IMAGE_TAP_STRATEGIES","DEFAULT_TEMPLATE_IMAGE_SCALE","ImageElement","constructor","b64Template","rect","score","b64Result","finder","template","id","util","uuidV4","b64MatchedImage","size","width","height","location","x","y","center","matchedImage","asElement","protocolKey","equals","other","click","driver","newImgEl","settings","Object","assign","DEFAULT_SETTINGS","getSettings","autoUpdateImageElementPosition","updatePos","checkForImageElementStaleness","imageElementTapStrategy","includes","Error","JSON","stringify","log","info","findByImage","shouldCheckStaleness","ignoreDefaultImageTemplateScale","err","errors","StaleElementReferenceError","warn","_","clone","action","type","parameters","pointerType","actions","duration","button","performActions","options","performTouch","execute","imgEl","cmd","args","NotYetImplementedError"],"sources":["../../lib/image-element.js"],"sourcesContent":["import _ from 'lodash';\nimport {errors} from 'appium/driver';\nimport {util} from 'appium/support';\nimport log from './logger';\nimport {DEFAULT_SETTINGS} from './finder';\n\nconst IMAGE_ELEMENT_PREFIX = 'appium-image-element-';\nconst TAP_DURATION_MS = 125;\nconst IMAGE_EL_TAP_STRATEGY_W3C = 'w3cActions';\nconst IMAGE_EL_TAP_STRATEGY_MJSONWP = 'touchActions';\nconst IMAGE_TAP_STRATEGIES = [IMAGE_EL_TAP_STRATEGY_MJSONWP, IMAGE_EL_TAP_STRATEGY_W3C];\nconst DEFAULT_TEMPLATE_IMAGE_SCALE = 1.0;\n\n/**\n * @typedef Dimension\n * @property {number} width - width of rect\n * @property {number} height - height of rect\n */\n\n/**\n * @typedef Position\n * @property {number} x - x coordinate\n * @property {number} y - y coordinate\n */\n\n/**\n * Representation of an \"image element\", which is simply a set of coordinates\n * and methods that can be used on that set of coordinates via the driver\n */\nexport default class ImageElement {\n /**\n * @param {string} b64Template - the base64-encoded image which was used to\n * find this ImageElement\n * @param {Rect} rect - bounds of matched image element\n * @param {number} score The similarity score as a float number in range [0.0, 1.0].\n * 1.0 is the highest score (means both images are totally equal).\n * @param {string?} b64Result - the base64-encoded image which has matched marks.\n * Defaults to null.\n * @param {import('./finder').default?} finder - the finder we can use to re-check stale elements\n */\n constructor(b64Template, rect, score, b64Result = null, finder = null) {\n this.template = b64Template;\n this.rect = rect;\n this.id = `${IMAGE_ELEMENT_PREFIX}${util.uuidV4()}`;\n this.b64MatchedImage = b64Result;\n this.score = score;\n this.finder = finder;\n }\n\n /**\n * @returns {Dimension} - dimension of element\n */\n get size() {\n return {width: this.rect.width, height: this.rect.height};\n }\n\n /**\n * @returns {Position} - coordinates of top-left corner of element\n */\n get location() {\n return {x: this.rect.x, y: this.rect.y};\n }\n\n /**\n * @returns {Position} - coordinates of center of element\n */\n get center() {\n return {\n x: this.rect.x + this.rect.width / 2,\n y: this.rect.y + this.rect.height / 2,\n };\n }\n\n /**\n * @returns {?string} - the base64-encoded image which has matched marks\n */\n get matchedImage() {\n return this.b64MatchedImage;\n }\n\n /**\n * @param {string} protocolKey - the protocol-specific JSON key for\n * a WebElement\n *\n * @returns {Element} - this image element as a WebElement\n */\n asElement(protocolKey) {\n return {[protocolKey]: this.id};\n }\n\n /**\n * @param {ImageElement} other - an ImageElement to compare with this one\n *\n * @returns {boolean} - whether the other element and this one have the same\n * properties\n */\n equals(other) {\n return (\n this.rect.x === other.rect.x &&\n this.rect.y === other.rect.y &&\n this.rect.width === other.rect.width &&\n this.rect.height === other.rect.height\n );\n }\n\n /**\n * Use a driver to tap the screen at the center of this ImageElement's\n * position\n *\n * @param {BaseDriver} driver - driver for calling actions with\n */\n async click(driver) {\n // before we click we need to make sure the element is actually still there\n // where we expect it to be\n let newImgEl;\n const settings = Object.assign({}, DEFAULT_SETTINGS, driver.settings.getSettings());\n const {\n autoUpdateImageElementPosition: updatePos,\n checkForImageElementStaleness,\n imageElementTapStrategy,\n } = settings;\n\n // validate tap strategy\n if (!IMAGE_TAP_STRATEGIES.includes(imageElementTapStrategy)) {\n throw new Error(\n `Incorrect imageElementTapStrategy setting ` +\n `'${imageElementTapStrategy}'. Must be one of ` +\n JSON.stringify(IMAGE_TAP_STRATEGIES)\n );\n }\n\n if (checkForImageElementStaleness || updatePos) {\n log.info('Checking image element for staleness before clicking');\n try {\n newImgEl = await this.finder.findByImage(this.template, {\n shouldCheckStaleness: true,\n // Set ignoreDefaultImageTemplateScale because this.template is device screenshot based image\n // managed inside Appium after finidng image by template which managed by a user\n ignoreDefaultImageTemplateScale: true,\n });\n } catch (err) {\n throw new errors.StaleElementReferenceError();\n }\n\n if (!this.equals(newImgEl)) {\n log.warn(\n `When trying to click on an image element, the image changed ` +\n `position from where it was originally found. It is now at ` +\n `${JSON.stringify(newImgEl.rect)} and was originally at ` +\n `${JSON.stringify(this.rect)}.`\n );\n if (updatePos) {\n log.warn('Click will proceed at new coordinates');\n this.rect = _.clone(newImgEl.rect);\n } else {\n log.warn(\n 'Click will take place at original coordinates. If you ' +\n 'would like Appium to automatically click the new ' +\n \"coordinates, set the 'autoUpdateImageElementPosition' \" +\n 'setting to true'\n );\n }\n }\n }\n\n const {x, y} = this.center;\n log.info(`Will tap on image element at coordinate [${x}, ${y}]`);\n\n if (imageElementTapStrategy === IMAGE_EL_TAP_STRATEGY_W3C) {\n // set up a W3C action to click on the image by position\n log.info('Will tap using W3C actions');\n const action = {\n type: 'pointer',\n id: 'mouse',\n parameters: {pointerType: 'touch'},\n actions: [\n {type: 'pointerMove', x, y, duration: 0},\n {type: 'pointerDown', button: 0},\n {type: 'pause', duration: TAP_DURATION_MS},\n {type: 'pointerUp', button: 0},\n ],\n };\n\n // check if the driver has the appropriate performActions method\n if (driver.performActions) {\n return await driver.performActions([action]);\n }\n\n // if not, warn and fall back to the other method\n log.warn('Driver does not seem to implement W3C actions, falling back ' + 'to TouchActions');\n }\n\n // if the w3c strategy was not requested, do the only other option (mjsonwp\n // touch actions)\n log.info('Will tap using MJSONWP TouchActions');\n const action = {\n action: 'tap',\n options: {x, y},\n };\n\n if (driver.performTouch) {\n return await driver.performTouch([action]);\n }\n\n throw new Error(\n \"Driver did not implement the 'performTouch' command. \" +\n 'For drivers to support finding image elements, they ' +\n \"should support 'performTouch' and 'performActions'\"\n );\n }\n\n /**\n * Handle various Appium commands that involve an image element\n *\n * @param {import('appium/driver').BaseDriver} driver - the driver to use for commands\n * @param {string} cmd - the name of the driver command\n * @param {string} imgElId - the id of the ImageElement to work with\n * @param {string[]} args - Rest of arguments for executeScripts\n *\n * @returns {object} - the result of running a command\n */\n static async execute(driver, imgEl, cmd, ...args) {\n switch (cmd) {\n case 'click':\n return await imgEl.click(driver);\n case 'elementDisplayed':\n return true;\n case 'getSize':\n return imgEl.size;\n case 'getLocation':\n case 'getLocationInView':\n return imgEl.location;\n case 'getElementRect':\n return imgEl.rect;\n case 'getAttribute':\n // /session/:sessionId/element/:elementId/attribute/:name\n // /session/:sessionId/element/:elementId/attribute/visual should retun the visual data\n // e.g. [\"content-desc\",\"appium-image-element-xxxxx\",\"xxxxx\"], [\"visual\",\"appium-image-element-xxxxx\",\"xxxxx\"]\n switch (args[0]) {\n case 'visual':\n return imgEl.matchedImage;\n case 'score':\n return imgEl.score;\n default:\n throw new errors.NotYetImplementedError();\n }\n default:\n throw new errors.NotYetImplementedError();\n }\n }\n}\n\nexport {\n ImageElement,\n IMAGE_EL_TAP_STRATEGY_MJSONWP,\n IMAGE_EL_TAP_STRATEGY_W3C,\n DEFAULT_TEMPLATE_IMAGE_SCALE,\n IMAGE_ELEMENT_PREFIX,\n};\n\n/**\n * @typedef {import('@appium/types').Rect} Rect\n * @typedef {import('@appium/types').Element} Element\n */\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","names":["log","logger","getLogger"],"sources":["../../lib/logger.js"],"sourcesContent":["import {logger} from 'appium/support';\n\nconst log = logger.getLogger('ImageElementPlugin');\n\nexport default log;\n"],"mappings":";;;;;;;;;AAAA;;AAEA,MAAMA,GAAG,GAAGC,eAAA,CAAOC,SAAP,CAAiB,oBAAjB,CAAZ;;eAEeF,G"}
|
package/build/lib/plugin.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -22,6 +20,8 @@ var _finder = _interopRequireDefault(require("./finder"));
|
|
|
22
20
|
|
|
23
21
|
var _imageElement = require("./image-element");
|
|
24
22
|
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
|
|
25
25
|
const IMAGE_STRATEGY = '-image';
|
|
26
26
|
exports.IMAGE_STRATEGY = IMAGE_STRATEGY;
|
|
27
27
|
|
|
@@ -95,4 +95,4 @@ class ImageElementPlugin extends _plugin.default {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
exports.ImageElementPlugin = exports.default = ImageElementPlugin;
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTUFHRV9TVFJBVEVHWSIsImdldEltZ0VsRnJvbUFyZ3MiLCJhcmdzIiwiYXJnIiwiXyIsImlzU3RyaW5nIiwic3RhcnRzV2l0aCIsIklNQUdFX0VMRU1FTlRfUFJFRklYIiwiSW1hZ2VFbGVtZW50UGx1Z2luIiwiQmFzZVBsdWdpbiIsImNvbnN0cnVjdG9yIiwicGx1Z2luTmFtZSIsImZpbmRlciIsIkltYWdlRWxlbWVudEZpbmRlciIsIm5ld01ldGhvZE1hcCIsIlBPU1QiLCJjb21tYW5kIiwicGF5bG9hZFBhcmFtcyIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJuZXZlclByb3h5IiwiY29tcGFyZUltYWdlcyIsIm5leHQiLCJkcml2ZXIiLCJmaW5kRWxlbWVudCIsIl9maW5kIiwiZmluZEVsZW1lbnRzIiwibXVsdGlwbGUiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwic2V0RHJpdmVyIiwiZmluZEJ5SW1hZ2UiLCJoYW5kbGUiLCJjbWROYW1lIiwiaW1nRWxJZCIsImltZ0VsQ2FjaGUiLCJoYXMiLCJlcnJvcnMiLCJOb1N1Y2hFbGVtZW50RXJyb3IiLCJpbWdFbCIsImdldCIsIkltYWdlRWxlbWVudCIsImV4ZWN1dGUiXSwic291cmNlcyI6WyIuLi8uLi9saWIvcGx1Z2luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNhc2UtZGVjbGFyYXRpb25zICovXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2Vycm9yc30gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgQmFzZVBsdWdpbiBmcm9tICdhcHBpdW0vcGx1Z2luJztcbmltcG9ydCB7Y29tcGFyZUltYWdlc30gZnJvbSAnLi9jb21wYXJlJztcbmltcG9ydCBJbWFnZUVsZW1lbnRGaW5kZXIgZnJvbSAnLi9maW5kZXInO1xuaW1wb3J0IHtJbWFnZUVsZW1lbnQsIElNQUdFX0VMRU1FTlRfUFJFRklYfSBmcm9tICcuL2ltYWdlLWVsZW1lbnQnO1xuXG5jb25zdCBJTUFHRV9TVFJBVEVHWSA9ICctaW1hZ2UnO1xuXG5mdW5jdGlvbiBnZXRJbWdFbEZyb21BcmdzKGFyZ3MpIHtcbiAgZm9yIChsZXQgYXJnIG9mIGFyZ3MpIHtcbiAgICBpZiAoXy5pc1N0cmluZyhhcmcpICYmIGFyZy5zdGFydHNXaXRoKElNQUdFX0VMRU1FTlRfUFJFRklYKSkge1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW1hZ2VFbGVtZW50UGx1Z2luIGV4dGVuZHMgQmFzZVBsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHBsdWdpbk5hbWUpIHtcbiAgICBzdXBlcihwbHVnaW5OYW1lKTtcbiAgICB0aGlzLmZpbmRlciA9IG5ldyBJbWFnZUVsZW1lbnRGaW5kZXIoKTtcbiAgfVxuXG4gIC8vIHRoaXMgcGx1Z2luIHN1cHBvcnRzIGEgbm9uLXN0YW5kYXJkICdjb21wYXJlIGltYWdlcycgY29tbWFuZFxuICBzdGF0aWMgbmV3TWV0aG9kTWFwID0ge1xuICAgICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9jb21wYXJlX2ltYWdlcyc6IHtcbiAgICAgIFBPU1Q6IHtcbiAgICAgICAgY29tbWFuZDogJ2NvbXBhcmVJbWFnZXMnLFxuICAgICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgICAgcmVxdWlyZWQ6IFsnbW9kZScsICdmaXJzdEltYWdlJywgJ3NlY29uZEltYWdlJ10sXG4gICAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddLFxuICAgICAgICB9LFxuICAgICAgICBuZXZlclByb3h5OiB0cnVlLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGFzeW5jIGNvbXBhcmVJbWFnZXMobmV4dCwgZHJpdmVyLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvbXBhcmVJbWFnZXMoLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBmaW5kRWxlbWVudChuZXh0LCBkcml2ZXIsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fZmluZChmYWxzZSwgbmV4dCwgZHJpdmVyLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRFbGVtZW50cyhuZXh0LCBkcml2ZXIsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fZmluZCh0cnVlLCBuZXh0LCBkcml2ZXIsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgX2ZpbmQobXVsdGlwbGUsIG5leHQsIGRyaXZlciwgLi4uYXJncykge1xuICAgIGNvbnN0IFtzdHJhdGVneSwgc2VsZWN0b3JdID0gYXJncztcblxuICAgIC8vIGlmIHdlJ3JlIG5vdCBhY3R1YWxseSBmaW5kaW5nIGJ5IGltYWdlLCBqdXN0IGRvIHRoZSBub3JtYWwgdGhpbmdcbiAgICBpZiAoc3RyYXRlZ3kgIT09IElNQUdFX1NUUkFURUdZKSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV4dCgpO1xuICAgIH1cblxuICAgIHRoaXMuZmluZGVyLnNldERyaXZlcihkcml2ZXIpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbmRlci5maW5kQnlJbWFnZShzZWxlY3Rvciwge211bHRpcGxlfSk7XG4gIH1cblxuICBhc3luYyBoYW5kbGUobmV4dCwgZHJpdmVyLCBjbWROYW1lLCAuLi5hcmdzKSB7XG4gICAgLy8gaWYgd2UgaGF2ZSBhIGNvbW1hbmQgdGhhdCBpbnZvbHZlcyBhbiBpbWFnZSBlbGVtZW50IGlkLCBhdHRlbXB0IHRvIGZpbmQgdGhlIGltYWdlIGVsZW1lbnRcbiAgICAvLyBhbmQgZXhlY3V0ZSB0aGUgY29tbWFuZCBvbiBpdFxuICAgIGNvbnN0IGltZ0VsSWQgPSBnZXRJbWdFbEZyb21BcmdzKGFyZ3MpO1xuICAgIGlmIChpbWdFbElkKSB7XG4gICAgICBpZiAoIXRoaXMuZmluZGVyLmltZ0VsQ2FjaGUuaGFzKGltZ0VsSWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRWxlbWVudEVycm9yKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBpbWdFbCA9IHRoaXMuZmluZGVyLmltZ0VsQ2FjaGUuZ2V0KGltZ0VsSWQpO1xuICAgICAgcmV0dXJuIGF3YWl0IEltYWdlRWxlbWVudC5leGVjdXRlKGRyaXZlciwgaW1nRWwsIGNtZE5hbWUsIC4uLmFyZ3MpO1xuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSBqdXN0IGRvIHRoZSBub3JtYWwgdGhpbmdcbiAgICByZXR1cm4gYXdhaXQgbmV4dCgpO1xuICB9XG59XG5cbmV4cG9ydCB7SW1hZ2VFbGVtZW50UGx1Z2luLCBnZXRJbWdFbEZyb21BcmdzLCBJTUFHRV9TVFJBVEVHWX07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLGNBQWMsR0FBRyxRQUF2Qjs7O0FBRUEsU0FBU0MsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDO0VBQzlCLEtBQUssSUFBSUMsR0FBVCxJQUFnQkQsSUFBaEIsRUFBc0I7SUFDcEIsSUFBSUUsZUFBQSxDQUFFQyxRQUFGLENBQVdGLEdBQVgsS0FBbUJBLEdBQUcsQ0FBQ0csVUFBSixDQUFlQyxrQ0FBZixDQUF2QixFQUE2RDtNQUMzRCxPQUFPSixHQUFQO0lBQ0Q7RUFDRjtBQUNGOztBQUVjLE1BQU1LLGtCQUFOLFNBQWlDQyxlQUFqQyxDQUE0QztFQUN6REMsV0FBVyxDQUFDQyxVQUFELEVBQWE7SUFDdEIsTUFBTUEsVUFBTjtJQUNBLEtBQUtDLE1BQUwsR0FBYyxJQUFJQyxlQUFKLEVBQWQ7RUFDRDs7RUFHa0IsT0FBWkMsWUFBWSxHQUFHO0lBQ3BCLDZDQUE2QztNQUMzQ0MsSUFBSSxFQUFFO1FBQ0pDLE9BQU8sRUFBRSxlQURMO1FBRUpDLGFBQWEsRUFBRTtVQUNiQyxRQUFRLEVBQUUsQ0FBQyxNQUFELEVBQVMsWUFBVCxFQUF1QixhQUF2QixDQURHO1VBRWJDLFFBQVEsRUFBRSxDQUFDLFNBQUQ7UUFGRyxDQUZYO1FBTUpDLFVBQVUsRUFBRTtNQU5SO0lBRHFDO0VBRHpCLENBQUg7O0VBYUEsTUFBYkMsYUFBYSxDQUFDQyxJQUFELEVBQU9DLE1BQVAsRUFBZSxHQUFHckIsSUFBbEIsRUFBd0I7SUFDekMsT0FBTyxNQUFNLElBQUFtQixzQkFBQSxFQUFjLEdBQUduQixJQUFqQixDQUFiO0VBQ0Q7O0VBRWdCLE1BQVhzQixXQUFXLENBQUNGLElBQUQsRUFBT0MsTUFBUCxFQUFlLEdBQUdyQixJQUFsQixFQUF3QjtJQUN2QyxPQUFPLE1BQU0sS0FBS3VCLEtBQUwsQ0FBVyxLQUFYLEVBQWtCSCxJQUFsQixFQUF3QkMsTUFBeEIsRUFBZ0MsR0FBR3JCLElBQW5DLENBQWI7RUFDRDs7RUFFaUIsTUFBWndCLFlBQVksQ0FBQ0osSUFBRCxFQUFPQyxNQUFQLEVBQWUsR0FBR3JCLElBQWxCLEVBQXdCO0lBQ3hDLE9BQU8sTUFBTSxLQUFLdUIsS0FBTCxDQUFXLElBQVgsRUFBaUJILElBQWpCLEVBQXVCQyxNQUF2QixFQUErQixHQUFHckIsSUFBbEMsQ0FBYjtFQUNEOztFQUVVLE1BQUx1QixLQUFLLENBQUNFLFFBQUQsRUFBV0wsSUFBWCxFQUFpQkMsTUFBakIsRUFBeUIsR0FBR3JCLElBQTVCLEVBQWtDO0lBQzNDLE1BQU0sQ0FBQzBCLFFBQUQsRUFBV0MsUUFBWCxJQUF1QjNCLElBQTdCOztJQUdBLElBQUkwQixRQUFRLEtBQUs1QixjQUFqQixFQUFpQztNQUMvQixPQUFPLE1BQU1zQixJQUFJLEVBQWpCO0lBQ0Q7O0lBRUQsS0FBS1YsTUFBTCxDQUFZa0IsU0FBWixDQUFzQlAsTUFBdEI7SUFDQSxPQUFPLE1BQU0sS0FBS1gsTUFBTCxDQUFZbUIsV0FBWixDQUF3QkYsUUFBeEIsRUFBa0M7TUFBQ0Y7SUFBRCxDQUFsQyxDQUFiO0VBQ0Q7O0VBRVcsTUFBTkssTUFBTSxDQUFDVixJQUFELEVBQU9DLE1BQVAsRUFBZVUsT0FBZixFQUF3QixHQUFHL0IsSUFBM0IsRUFBaUM7SUFHM0MsTUFBTWdDLE9BQU8sR0FBR2pDLGdCQUFnQixDQUFDQyxJQUFELENBQWhDOztJQUNBLElBQUlnQyxPQUFKLEVBQWE7TUFDWCxJQUFJLENBQUMsS0FBS3RCLE1BQUwsQ0FBWXVCLFVBQVosQ0FBdUJDLEdBQXZCLENBQTJCRixPQUEzQixDQUFMLEVBQTBDO1FBQ3hDLE1BQU0sSUFBSUcsY0FBQSxDQUFPQyxrQkFBWCxFQUFOO01BQ0Q7O01BQ0QsTUFBTUMsS0FBSyxHQUFHLEtBQUszQixNQUFMLENBQVl1QixVQUFaLENBQXVCSyxHQUF2QixDQUEyQk4sT0FBM0IsQ0FBZDtNQUNBLE9BQU8sTUFBTU8sMEJBQUEsQ0FBYUMsT0FBYixDQUFxQm5CLE1BQXJCLEVBQTZCZ0IsS0FBN0IsRUFBb0NOLE9BQXBDLEVBQTZDLEdBQUcvQixJQUFoRCxDQUFiO0lBQ0Q7O0lBR0QsT0FBTyxNQUFNb0IsSUFBSSxFQUFqQjtFQUNEOztBQTFEd0QifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","names":["IMAGE_STRATEGY","getImgElFromArgs","args","arg","_","isString","startsWith","IMAGE_ELEMENT_PREFIX","ImageElementPlugin","BasePlugin","constructor","pluginName","finder","ImageElementFinder","newMethodMap","POST","command","payloadParams","required","optional","neverProxy","compareImages","next","driver","findElement","_find","findElements","multiple","strategy","selector","setDriver","findByImage","handle","cmdName","imgElId","imgElCache","has","errors","NoSuchElementError","imgEl","get","ImageElement","execute"],"sources":["../../lib/plugin.js"],"sourcesContent":["/* eslint-disable no-case-declarations */\n\nimport _ from 'lodash';\nimport {errors} from 'appium/driver';\nimport BasePlugin from 'appium/plugin';\nimport {compareImages} from './compare';\nimport ImageElementFinder from './finder';\nimport {ImageElement, IMAGE_ELEMENT_PREFIX} from './image-element';\n\nconst IMAGE_STRATEGY = '-image';\n\nfunction getImgElFromArgs(args) {\n for (let arg of args) {\n if (_.isString(arg) && arg.startsWith(IMAGE_ELEMENT_PREFIX)) {\n return arg;\n }\n }\n}\n\nexport default class ImageElementPlugin extends BasePlugin {\n constructor(pluginName) {\n super(pluginName);\n this.finder = new ImageElementFinder();\n }\n\n // this plugin supports a non-standard 'compare images' command\n static newMethodMap = {\n '/session/:sessionId/appium/compare_images': {\n POST: {\n command: 'compareImages',\n payloadParams: {\n required: ['mode', 'firstImage', 'secondImage'],\n optional: ['options'],\n },\n neverProxy: true,\n },\n },\n };\n\n async compareImages(next, driver, ...args) {\n return await compareImages(...args);\n }\n\n async findElement(next, driver, ...args) {\n return await this._find(false, next, driver, ...args);\n }\n\n async findElements(next, driver, ...args) {\n return await this._find(true, next, driver, ...args);\n }\n\n async _find(multiple, next, driver, ...args) {\n const [strategy, selector] = args;\n\n // if we're not actually finding by image, just do the normal thing\n if (strategy !== IMAGE_STRATEGY) {\n return await next();\n }\n\n this.finder.setDriver(driver);\n return await this.finder.findByImage(selector, {multiple});\n }\n\n async handle(next, driver, cmdName, ...args) {\n // if we have a command that involves an image element id, attempt to find the image element\n // and execute the command on it\n const imgElId = getImgElFromArgs(args);\n if (imgElId) {\n if (!this.finder.imgElCache.has(imgElId)) {\n throw new errors.NoSuchElementError();\n }\n const imgEl = this.finder.imgElCache.get(imgElId);\n return await ImageElement.execute(driver, imgEl, cmdName, ...args);\n }\n\n // otherwise just do the normal thing\n return await next();\n }\n}\n\nexport {ImageElementPlugin, getImgElFromArgs, IMAGE_STRATEGY};\n"],"mappings":";;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,cAAc,GAAG,QAAvB;;;AAEA,SAASC,gBAAT,CAA0BC,IAA1B,EAAgC;EAC9B,KAAK,IAAIC,GAAT,IAAgBD,IAAhB,EAAsB;IACpB,IAAIE,eAAA,CAAEC,QAAF,CAAWF,GAAX,KAAmBA,GAAG,CAACG,UAAJ,CAAeC,kCAAf,CAAvB,EAA6D;MAC3D,OAAOJ,GAAP;IACD;EACF;AACF;;AAEc,MAAMK,kBAAN,SAAiCC,eAAjC,CAA4C;EACzDC,WAAW,CAACC,UAAD,EAAa;IACtB,MAAMA,UAAN;IACA,KAAKC,MAAL,GAAc,IAAIC,eAAJ,EAAd;EACD;;EAGkB,OAAZC,YAAY,GAAG;IACpB,6CAA6C;MAC3CC,IAAI,EAAE;QACJC,OAAO,EAAE,eADL;QAEJC,aAAa,EAAE;UACbC,QAAQ,EAAE,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CADG;UAEbC,QAAQ,EAAE,CAAC,SAAD;QAFG,CAFX;QAMJC,UAAU,EAAE;MANR;IADqC;EADzB,CAAH;;EAaA,MAAbC,aAAa,CAACC,IAAD,EAAOC,MAAP,EAAe,GAAGrB,IAAlB,EAAwB;IACzC,OAAO,MAAM,IAAAmB,sBAAA,EAAc,GAAGnB,IAAjB,CAAb;EACD;;EAEgB,MAAXsB,WAAW,CAACF,IAAD,EAAOC,MAAP,EAAe,GAAGrB,IAAlB,EAAwB;IACvC,OAAO,MAAM,KAAKuB,KAAL,CAAW,KAAX,EAAkBH,IAAlB,EAAwBC,MAAxB,EAAgC,GAAGrB,IAAnC,CAAb;EACD;;EAEiB,MAAZwB,YAAY,CAACJ,IAAD,EAAOC,MAAP,EAAe,GAAGrB,IAAlB,EAAwB;IACxC,OAAO,MAAM,KAAKuB,KAAL,CAAW,IAAX,EAAiBH,IAAjB,EAAuBC,MAAvB,EAA+B,GAAGrB,IAAlC,CAAb;EACD;;EAEU,MAALuB,KAAK,CAACE,QAAD,EAAWL,IAAX,EAAiBC,MAAjB,EAAyB,GAAGrB,IAA5B,EAAkC;IAC3C,MAAM,CAAC0B,QAAD,EAAWC,QAAX,IAAuB3B,IAA7B;;IAGA,IAAI0B,QAAQ,KAAK5B,cAAjB,EAAiC;MAC/B,OAAO,MAAMsB,IAAI,EAAjB;IACD;;IAED,KAAKV,MAAL,CAAYkB,SAAZ,CAAsBP,MAAtB;IACA,OAAO,MAAM,KAAKX,MAAL,CAAYmB,WAAZ,CAAwBF,QAAxB,EAAkC;MAACF;IAAD,CAAlC,CAAb;EACD;;EAEW,MAANK,MAAM,CAACV,IAAD,EAAOC,MAAP,EAAeU,OAAf,EAAwB,GAAG/B,IAA3B,EAAiC;IAG3C,MAAMgC,OAAO,GAAGjC,gBAAgB,CAACC,IAAD,CAAhC;;IACA,IAAIgC,OAAJ,EAAa;MACX,IAAI,CAAC,KAAKtB,MAAL,CAAYuB,UAAZ,CAAuBC,GAAvB,CAA2BF,OAA3B,CAAL,EAA0C;QACxC,MAAM,IAAIG,cAAA,CAAOC,kBAAX,EAAN;MACD;;MACD,MAAMC,KAAK,GAAG,KAAK3B,MAAL,CAAYuB,UAAZ,CAAuBK,GAAvB,CAA2BN,OAA3B,CAAd;MACA,OAAO,MAAMO,0BAAA,CAAaC,OAAb,CAAqBnB,MAArB,EAA6BgB,KAA7B,EAAoCN,OAApC,EAA6C,GAAG/B,IAAhD,CAAb;IACD;;IAGD,OAAO,MAAMoB,IAAI,EAAjB;EACD;;AA1DwD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/async-lock/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/writable.d.ts","../../../node_modules/type-fest/source/mutable.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/remove-index-signature.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/promise-value.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/exact.d.ts","../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/type-fest/source/spread.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/replace.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/capabilities.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../types/build/action.d.ts","../../types/build/driver.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../types/build/plugin.d.ts","../../types/build/index.d.ts","../../base-driver/build/lib/basedriver/device-settings.d.ts","../../base-driver/build/lib/basedriver/core.d.ts","../../base-driver/build/lib/express/server.d.ts","../../base-driver/build/lib/protocol/protocol.d.ts","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../../base-driver/build/lib/protocol/errors.d.ts","../../base-driver/build/lib/protocol/routes.d.ts","../../base-driver/build/lib/protocol/index.d.ts","../../base-driver/build/lib/express/static.d.ts","../../base-driver/build/lib/jsonwp-proxy/protocol-converter.d.ts","../../base-driver/build/lib/jsonwp-proxy/proxy.d.ts","../../base-driver/build/lib/express/websocket.d.ts","../../base-driver/build/lib/basedriver/driver.d.ts","../../base-driver/build/lib/constants.d.ts","../../base-driver/build/lib/jsonwp-status/status.d.ts","../../base-driver/build/lib/basedriver/capabilities.d.ts","../../base-driver/build/lib/index.d.ts","../../appium/driver.d.ts","../../../node_modules/buffer/index.d.ts","../../opencv/build/lib/index.d.ts","../lib/compare.js","../../../node_modules/lru-cache/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../support/build/lib/log-internal.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../support/build/lib/image-util.d.ts","../../../node_modules/axios/index.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../support/build/lib/env.d.ts","../../../node_modules/log-symbols/index.d.ts","../../../node_modules/@colors/colors/index.d.ts","../../support/build/lib/console.d.ts","../../support/build/lib/index.d.ts","../../appium/support.d.ts","../lib/logger.js","../lib/image-element.js","../lib/finder.js","../../base-plugin/build/lib/plugin.d.ts","../../appium/plugin.d.ts","../lib/plugin.js","../../../node_modules/devtools/build/constants.d.ts","../../../node_modules/@wdio/protocols/build/types.d.ts","../../../node_modules/@wdio/protocols/build/commands/appium.d.ts","../../../node_modules/@wdio/protocols/build/commands/chromium.d.ts","../../../node_modules/@wdio/protocols/build/commands/gecko.d.ts","../../../node_modules/@wdio/protocols/build/commands/jsonwp.d.ts","../../../node_modules/@wdio/protocols/build/commands/mjsonwp.d.ts","../../../node_modules/@wdio/protocols/build/commands/saucelabs.d.ts","../../../node_modules/@wdio/protocols/build/commands/selenium.d.ts","../../../node_modules/@wdio/protocols/build/commands/webdriver.d.ts","../../../node_modules/@wdio/protocols/build/index.d.ts","../../../node_modules/puppeteer-core/node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/puppeteer-core/node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/puppeteer-core/lib/types.d.ts","../../../node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/eventemitter.d.ts","../../../node_modules/devtools/build/types.d.ts","../../../node_modules/devtools/build/index.d.ts","../../../node_modules/webdriver/build/request/index.d.ts","../../../node_modules/webdriver/build/types.d.ts","../../../node_modules/webdriver/build/command.d.ts","../../../node_modules/webdriver/build/constants.d.ts","../../../node_modules/webdriver/build/utils.d.ts","../../../node_modules/webdriver/build/index.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/connectiontransport.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/errors.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/connection.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/dialog.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/uskeyboardlayout.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/evaltypes.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/input.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/jshandle.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/helper.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/securitydetails.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/httpresponse.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/httprequest.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/lifecyclewatcher.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/timeoutsettings.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/domworld.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/executioncontext.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/networkeventmanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/networkmanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/framemanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/tracing.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/coverage.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/webworker.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/puppeteerviewport.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/accessibility.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/filechooser.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/consolemessage.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/pdfoptions.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/taskqueue.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/page.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/target.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/browser.d.ts","../../../node_modules/webdriverio/build/commands/browser/$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/$.d.ts","../../../node_modules/webdriverio/build/commands/browser/call.d.ts","../../../node_modules/webdriverio/build/commands/browser/custom$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/custom$.d.ts","../../../node_modules/webdriverio/build/commands/browser/debug.d.ts","../../../node_modules/webdriverio/build/commands/browser/deletecookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/execute.d.ts","../../../node_modules/webdriverio/build/commands/browser/executeasync.d.ts","../../../node_modules/webdriverio/build/commands/browser/getcookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/getpuppeteer.d.ts","../../../node_modules/webdriverio/build/commands/browser/getwindowsize.d.ts","../../../node_modules/webdriverio/build/commands/browser/keys.d.ts","../../../node_modules/webdriverio/build/utils/interception/types.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/webdriverio/build/utils/interception/index.d.ts","../../../node_modules/webdriverio/build/commands/browser/mock.d.ts","../../../node_modules/webdriverio/build/commands/browser/mockclearall.d.ts","../../../node_modules/webdriverio/build/commands/browser/mockrestoreall.d.ts","../../../node_modules/webdriverio/build/commands/browser/newwindow.d.ts","../../../node_modules/webdriverio/build/commands/browser/pause.d.ts","../../../node_modules/webdriverio/build/commands/browser/react$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/react$.d.ts","../../../node_modules/webdriverio/build/commands/browser/reloadsession.d.ts","../../../node_modules/webdriverio/build/commands/browser/savepdf.d.ts","../../../node_modules/webdriverio/build/commands/browser/saverecordingscreen.d.ts","../../../node_modules/webdriverio/build/commands/browser/savescreenshot.d.ts","../../../node_modules/webdriverio/build/commands/browser/setcookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/settimeout.d.ts","../../../node_modules/webdriverio/build/commands/browser/setwindowsize.d.ts","../../../node_modules/webdriverio/build/commands/browser/switchwindow.d.ts","../../../node_modules/webdriverio/build/commands/browser/throttle.d.ts","../../../node_modules/webdriverio/build/commands/browser/touchaction.d.ts","../../../node_modules/webdriverio/build/commands/browser/uploadfile.d.ts","../../../node_modules/webdriverio/build/commands/browser/url.d.ts","../../../node_modules/webdriverio/build/commands/browser/waituntil.d.ts","../../../node_modules/webdriverio/build/commands/browser.d.ts","../../../node_modules/webdriverio/build/commands/element/$$.d.ts","../../../node_modules/webdriverio/build/commands/element/$.d.ts","../../../node_modules/webdriverio/build/commands/element/addvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/clearvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/click.d.ts","../../../node_modules/webdriverio/build/commands/element/custom$$.d.ts","../../../node_modules/webdriverio/build/commands/element/custom$.d.ts","../../../node_modules/webdriverio/build/commands/element/doubleclick.d.ts","../../../node_modules/webdriverio/build/commands/element/draganddrop.d.ts","../../../node_modules/webdriverio/build/commands/element/getattribute.d.ts","../../../node_modules/webdriverio/build/utils/severeserviceerror.d.ts","../../../node_modules/webdriverio/build/index.d.ts","../../../node_modules/webdriverio/build/commands/element/getcssproperty.d.ts","../../../node_modules/webdriverio/build/commands/element/getcomputedrole.d.ts","../../../node_modules/webdriverio/build/commands/element/getcomputedlabel.d.ts","../../../node_modules/webdriverio/build/commands/element/gethtml.d.ts","../../../node_modules/webdriverio/build/commands/element/getlocation.d.ts","../../../node_modules/webdriverio/build/commands/element/getproperty.d.ts","../../../node_modules/webdriverio/build/commands/element/getsize.d.ts","../../../node_modules/webdriverio/build/commands/element/gettagname.d.ts","../../../node_modules/webdriverio/build/commands/element/gettext.d.ts","../../../node_modules/webdriverio/build/commands/element/getvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/isclickable.d.ts","../../../node_modules/webdriverio/build/commands/element/isdisplayed.d.ts","../../../node_modules/webdriverio/build/commands/element/isdisplayedinviewport.d.ts","../../../node_modules/webdriverio/build/commands/element/isenabled.d.ts","../../../node_modules/webdriverio/build/commands/element/isequal.d.ts","../../../node_modules/webdriverio/build/commands/element/isexisting.d.ts","../../../node_modules/webdriverio/build/commands/element/isfocused.d.ts","../../../node_modules/webdriverio/build/commands/element/isselected.d.ts","../../../node_modules/webdriverio/build/commands/element/moveto.d.ts","../../../node_modules/webdriverio/build/commands/element/nextelement.d.ts","../../../node_modules/webdriverio/build/commands/element/parentelement.d.ts","../../../node_modules/webdriverio/build/commands/element/previouselement.d.ts","../../../node_modules/webdriverio/build/commands/element/react$$.d.ts","../../../node_modules/webdriverio/build/commands/element/react$.d.ts","../../../node_modules/webdriverio/build/commands/element/savescreenshot.d.ts","../../../node_modules/webdriverio/build/commands/element/scrollintoview.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyattribute.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyindex.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyvisibletext.d.ts","../../../node_modules/webdriverio/build/commands/element/setvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/shadow$$.d.ts","../../../node_modules/webdriverio/build/commands/element/shadow$.d.ts","../../../node_modules/webdriverio/build/commands/element/touchaction.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforclickable.d.ts","../../../node_modules/webdriverio/build/commands/element/waitfordisplayed.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforenabled.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforexist.d.ts","../../../node_modules/webdriverio/build/commands/element/waituntil.d.ts","../../../node_modules/webdriverio/build/commands/element.d.ts","../../../node_modules/webdriverio/build/utils/interception/devtools.d.ts","../../../node_modules/webdriverio/build/types.d.ts","../../../node_modules/webdriverio/async.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","3eb679a56cab01203a1ba7edeade937f6a2a4c718513b2cd930b579807fa9359","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"ff667ee99e5a28c3dc5063a3cfd4d3436699e3fb035d4451037da7f567da542a","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6702a1cd8818cb22ee95c85dcf2c31c117bde892e1afd2bc254bd720f4c6263c","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"a53ba2a104ae0e58b2791f9cdf3ddafd747d1a0ccb5e6363c2b0ce2eb5e0e67c","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3a0c45fe95e8f0e2c5247d48acf3a522d2ef29f1ab0effb3c59a9c4fdd5edbcd","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","0fac2b483246d890f74e4050c8651f43b4569519c386082d4c3838cd42f39a7c","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"11c8be5993cd30dbb5310d95ba6c54dbb8724221eed0c4b2e4a7d6a4f9a032dd","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","0e1b73efb8ce3afd418f04f59e26134f46418d2033dff332446fe0ee762b884a","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","02b3239cf1b1ff8737e383ed5557f0247499d15f5bd21ab849b1a24687b6100c","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"3a4c859c27b2aaedcd27173220d66590fa7da27ee45d84e365fb0fe7f2c2f72c","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"c05dcfbd5bd0abcefa3ad7d2931424d4d8090bc55bbe4f5c8acb8d2ca5886b2e","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","90748076a143bbeb455f8d5e8ad1cc451424c4856d41410e491268a496165256","76e3f3a30c533bf20840d4185ce2d143dc18ca955b64400ac09670a89d388198","144dfcee38ebc38aae93a85bc47211c9268d529b099127b74d61242ec5c17f35","2cf38989b23031694f04308b6797877534a49818b2f5257f4a5d824e7ea82a5a","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","e4ace1cf5316aa7720e58c8dd511ba86bab1c981336996fb694fa64b8231d5f0","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","f35a727758da36dd885a70dd13a74d9167691aaff662d50eaaf66ed591957702","116205156fb819f2afe33f9c6378ea11b6123fa3090f858211c23f667fff75da","8fe68442c15f8952b8816fa4e7e6bd8d5c45542832206bd7bcf3ebdc77d1c3f3","3add9402f56a60e9b379593f69729831ac0fc9eae604b6fafde5fa86d2f8a4b9","cc28c8b188905e790de427f3cd00b96734c9c662fb849d68ff9d5f0327165c0d","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","cec67731fce8577b0a90aa67ef0522ddb9f1fd681bece50cdcb80a833b4ed06f","a14679c24962a81ef24b6f4e95bbc31601551f150d91af2dc0bce51f7961f223","3f4d43bb3f61d173a4646c19557e090a06e9a2ec9415313a6d84af388df64923","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","d5a5025f04e7a3264ecfa3030ca9a3cb0353450f1915a26d5b84f596240a11cd","03f4449c691dd9c51e42efd51155b63c8b89a5f56b5cf3015062e2f818be8959","23b213ec3af677b3d33ec17d9526a88d5f226506e1b50e28ce4090fb7e4050a8","f0abf96437a6e57b9751a792ba2ebb765729a40d0d573f7f6800b305691b1afb","7d30aee3d35e64b4f49c235d17a09e7a7ce2961bebb3996ee1db5aa192f3feba","eb1625bab70cfed00931a1e09ecb7834b61a666b0011913b0ec24a8e219023ef","1a923815c127b27f7f375c143bb0d9313ccf3c66478d5d2965375eeb7da72a4c","4f92df9d64e5413d4b34020ae6b382edda84347daec97099e7c008a9d5c0910b","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","7086cca41a87b3bf52c6abfc37cda0a0ec86bb7e8e5ef166b07976abec73fa5e","4571a6886b4414403eacdd1b4cdbd854453626900ece196a173e15fb2b795155","c122227064c2ebf6a5bd2800383181395b56bb71fd6683d5e92add550302e45f","60f476f1c4de44a08d6a566c6f1e1b7de6cbe53d9153c9cc2284ca0022e21fba","84315d5153613eeb4b34990fb3bc3a1261879a06812ee7ae481141e30876d8dc","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","8fefaef4be2d484cdfc35a1b514ee7e7bb51680ef998fb9f651f532c0b169e6b","8be5c5be3dbf0003a628f99ad870e31bebc2364c28ea3b96231089a94e09f7a6","6626bbc69c25a92f6d32e6d2f25038f156b4c2380cbf29a420f7084fb1d2f7d7","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","5126032fe6e999f333827ee8e67f7ca1d5f3d6418025878aa5ebf13b499c2024","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","1573cae51ae8a5b889ec55ecb58e88978fe251fd3962efa5c4fdb69ce00b23ba","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","f2d1ac34b05bb6ce326ea1702befb0216363f1d5eccdd1b4b0b2f5a7e953ed8a","789665f0cd78bc675a31140d8f133ec6a482d753a514012fe1bb7f86d0a21040","bb30fb0534dceb2e41a884c1e4e2bb7a0c668dadd148092bba9ff15aafb94790","6ef829366514e4a8f75ce55fa390ebe080810b347e6f4a87bbeecb41e612c079","8f313aa8055158f08bd75e3a57161fa473a50884c20142f3318f89f19bfc0373","e789eb929b46299187312a01ff71905222f67907e546e491952c384b6f956a63","a0147b607f8c88a5433a5313cdc10443c6a45ed430e1b0a335a413dc2b099fd5","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","6b1071c06abcbe1c9f60638d570fdbfe944b6768f95d9f28ebc06c7eec9b4087","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","1285ddb279c6d0bc5fe46162a893855078ae5b708d804cd93bfc4a23d1e903d9","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","a14371dc39f95c27264f8eb02ce2f80fd84ac693a2750983ac422877f0ae586d","755bcc456b4dd032244b51a8b4fe68ee3b2d2e463cf795f3fde970bb3f269fb1","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","a1d1e49ccd2ac07ed8a49a3f98dfd2f7357cf03649b9e348b58b97bb75116f18","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","8e7653c13989dca094412bc4de20d5c449457fc92735546331d5e9cdd79ac16e","189dedb255e41c8556d0d61d7f1c18506501896354d0925cbd47060bcddccab1","48f0819c2e14214770232f1ab0058125bafdde1d04c4be84339d5533098bf60a","2641aff32336e35a5b702aa2d870a0891da29dc1c19ae48602678e2050614041","e133066d15e9e860ca96220a548dee28640039a8ac33a9130d0f83c814a78605","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","8f55068da250ce5c00ce636f4c33b7e50fb15a75a84bf6092595e419e678dc2a","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","2e97e912e078f6cea483fb096d9c49eb2b7285f9e4748e2f7723c7b55817b90b","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","4d18894e559ba0ddde5d544c718dc71683f770f70b881dc697afeb0ea37ca292","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"10487580175f86d0789473002b4b6e6606f9a4d7d3965f91066361aa8629297a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","b7e64651c85c710d82161ad78be0ff7c95e9ecc82b23ea21244b62753d549ea3","f7648bb46cef0cfd5dfad2050b96699d604e45639c95448814a1342bf3369853","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","6f36e68c339aea454afcdd2387ed71411d727a612f1412d84530e05f74d3e963","bc26951c777570d6480caae896eb50339d87f24c5f6b267c1dc1751a5507cbb2","d0c3f69853b08d50e442522622c52e1c80fd1150eb22b96e78290f0faf8ab346","2f4094ef7d7d55ddedd0758a3d46f2c8c653e91161217bea1b772cb8350b2632","4cbe65178b3e292e082c6baafff84e98552b67b43321c2fe42ed47cbf342e6b0","1f1a1d0609e7514b711768295528b3b9b0fd67d7f2ba3f1730d2f135e6f58069","87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f","3516415029e294ca20490e6795dabfa219dea3fdcb3d1907a1526025f457e1ab","db0305dce175dd75214f12f534fd4fe9805a320530a08f080323c24fd490f5a6","3dcfe6b1a091adfef5bf2e3eec522083f4ff042ddb83416953c06fa1ce50e359","4947905cda1cd79956a972a2eb6844e364d5204396732bf3831a1176e08742be","d7da4a1744d9516461b0301a70f5ff5a4d9372e5dfbcb95cbb55c45ca316efa0","c8a667992ef6ad695e4ca8e2831786deb95875a49f495e1bdba4a38341fe9935","3cf55b882e251da3fac1c15ab2f02bf981c633733080b39ce7d9490f9d2a6066","55e3fa6a6c5dd25e7f255fb107026b517f8adfd616f2da3cb96f20f33f6c4bfe","7ca56e4c578c8688979ac94aaed8ee4815c9406db9b5970de232f9a99e550366","c8865994df8b62fcd7a50c958ecc8dc949240bdb5b8a9e6b99e633df587da94f","ce09862a18df8c6bccaf65ef790abe8ba1769e45b4bf0871f066cd15ef632cb0","f4488f48b65ff16aac6bfa4cff45cfdf192e78d19db661fd296dddf14ded72c8","97f1c46ac3e27c7d6c4e07b3c27ab60e952e1c5d21cd51f282258f2ab87a620b","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","33a163af7e0aa1f95cde4c85a0d7025566e874927c209c0a2d5c80f4134bbba0",{"version":"2b4874c181d766e8f27838e5ece214bff5842508b4289dbb8c63704d1d034d89","signature":"499f3b65634578b12c61682f91f8ecab5746f2833ff2a046d82680263c5f5dd3"},"a83e11b6800c50b4d361fc997551dad8a95c817298e91cdff00e17b18a883418","85ca0c94bcc3d2fb62cfe8dfc1e649b77611118a77fde72915ebbcff71da5656","72f8b24415b650a67ef570e3a532b3203a339277af81cd44530738d521acd6d4","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","b7b3958e1ccccecf9992c09c3f70f6a37a4559d73858f36777cd2fdbf174af7b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","2dfe19de498444b172b62f86063f4a075203f023c35b860aa6a0e9e84ea901fe","b05b48274c318121533dee4ff3d104ca6e89389e4963bfd8148389790102a638","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","d7fcddcd30ce28e95d3492b204a4ca7f0f1e83e36f475f6d0e8bf4d43ca582a6","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","0e2e948c4ad3184567fcae2684c360d2de35db86a021652386646ea6d235f43c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a24c550713b0c89c592210e3ed105d31b28c32ad771822aabd4fc218a7bfcde9","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","8158988aa420c707b0b8c83478da67f1ca846f861440371489c6921f8a519ae2","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","1365a8626ff81189ea28b9ad9f360a5729475066cde4932dfcf1a622778c353d","d1d46acba7d3b3f9abe50982dcdddb536c184371d84746bfe5076ee95358095b",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"21c26e8b205b22ce0fc6b4a71dff51461339c88699b3c9bd1ba6a24cb1781820","a4380443e2595fb9a78b9dbe5f99556c54cabd40e86fba6c6e75335d6cab485e","395441b10f28820c2096e1f1b502e97abc65c848873dd6250af151787eaff088",{"version":"715fcb6eaa674cbe8e39d405f77cc56f22630a2e3d7073dea6b780595cbecff4","signature":"2af4c9c58ca43602ed6f597c786397454e905d3a5a784a46f5e15e8447643969"},{"version":"0a3dfc31c86fa5a8ec68eb865e29909a19cdf0c67d4665bfd041da2196046d4d","signature":"28854ab311cb22992684586b4bbf869eb516579a33358c3a96fa033fda44b176"},{"version":"1829137810a77346334a33f2cd46709a2d3bf675d81256a3f1f4e04eee5740c3","signature":"f65863ab45de007f1881247088f2f3a5586d2de0f0768d9eda4f315f2dfa19bc"},"d329afb889faf26b434a0fd0b294a911289a5a2db01e9a7937cf6915e9d78606","a09c6973ec4773cf1ed5bac082469854b1de7c1c75e5353e904370c5d1231e07",{"version":"1b349def6b5e294e186befc57ac75f2a80e439422585fff4cf39cce2b384c2f5","signature":"5a95182c41093c6575a5c2e62753c3e0c40b5d6c0c7c8061bba821f60c60bc41"},"625e5bc32aa08bbbe91b618d373b621434f0ae10c3f4a956f79f685a34211d3c","73125cbbbf91655d992f8a7e877e34e42bbade7914bd91a93340a6d5ea86802d","42864fc9a6f7cd4a32b8a039c5aa8fcfe104e44d44ae56e0c1a09176abbeb562","14cebd75a4eb2c7bfddfc34f39e871219a4fe252e7f677bfd2a8f3513fa468a0","f14e53c947ac3f48b87cfdac17e3f2894c5b035dfe6d9c4354367f2fb584b50b","412953af5a2c116c7d21638260980db2ff5e27d8cb3c7a2ae2a57edd74eb5944","b914d2beb2f50b9d395a884a2bab7aba85bdfac63778e848edc071e621e44269","91943331db391f5e695bd92c52e53e314e65b987e205e90b4eb4b2d7b4719a97","c03ca22b4601cfcbdbd469337b2b039d818c9156c3b106c6faf49401766a2f54","044e2e9a705977ddf6d52263dbc329711a26e05e83d5cd2f2470c85f2de805b4","d2895fbf4ab9a7c2e6d95c43ccdc94a146377fe2e3bae65f2a05c78fc8a3b686","5e82c491b0995bb42e41a86c86fc30721a71fb9af22478b2a9c82cf6160cf970","13a7b0847883cadf7bd6d8df067bd6b6f8e55daa53b7df480048c90bb603e2a1","10fc14b4e441528c8aac75db5deeb06a00f1dc4265b98724052149e9db2f5eeb","64ecb47b652529b7859c48d1d8f690ac516cc7e5e47cafb68d59f86b807cdee0","bdecd4f44d964969b22cea27c49b90d664f3866955af93c4bfc2450864b49d6b","5b298ed18d77a049d6e08f958b0a7fe9bc68391a537d9490bbf91ccba251fe27",{"version":"93ff305ef87c1324afcad66bcfd74c89b60195716901281551097a7013125f7d","affectsGlobalScope":true},"f50da3d363044e48d9522802682a82892edbe2f2514c5e4e946865b280aae5ce","a9799ce2b5f4b675db7e4a55cefb02b00ac2c3131d4779cfc06c79100d158779","84cba6cfcb7c71cdbb4afdfa9008ff6b1b1de794bdd2799244512c06625cc5f2","6875cf9af390abf7a7b8189b366efcb937876ab46ada75e697890ebd861e9086","fc53ce1bb4f84a22cb87bf6d7f2ae6f696ff8f53ad3ccf346d7b52eaa1554f1d","031da4cd5404883fa92d26250150333f0ff4c3c301c02c484f2b517908cdf46e","a9d9775d0710c2c16cd1d513c6665fb15853f4f1fefa4cea76f6297198eb9c77","dab463b4e04b94ba09e8d64f604af579cc00494eca37e5833d95d4196721c900","61ee5ac56dd7b9f5505d9807e4da9742d33f13feaaf0f486461e415d33714a10","1224f4f7c32b3ef446723e7b03b3b7e382169799601e1ac31b33f800e3e41e98","62f6923e19ad850b8b28114be19fa44ec03ab0e6d0cc3b19eefe518240fe3f4e","5777de012f3b776535a35d0c5aec20923629abc8a3fec41bc4d231f85bc8d73a","4e404fc456852318559eafa24f82c0a64460eaf4c7ba336e53eb7769a1e4abae","7340037e7f06e9d0fc0a9cdff51a9a3f8f66f08d2624cf70ab56d933480ffc5e","1448f4e82422a44aba7e3ca0938ed09b0a84b38c9dc226bd1780b2abbd300263","cbab8ec46a142d79596e6682a1a22a0057f63a6da6e85bad170bedb164486f16","fc6aecc1ad16097bf79aa7cd98a40d4362e1742457ee251cabad2c1eb13d45fd","083823dbfdde2397a3b47c3962c4a0ef3e68da7e67972f893222ca3ccc0fce0f","3346fddfeca6e4bae2dee30b816c144d7c0d4d75f6b07a31d14494c84c7ea1d0","a4540bf83d0c760705c08033d0274d218c833eeb230774d1d6627e918272bd7f","b1bf32649f9ebf02f9a5f5f0a4ad84d677f40fd28909a586208f94a331970017","ac0b2cc44f709491d62056b15f247d5b2551197a60a3aa58d03133ca8be128a0","44a379b89c79b1b061557e0b43be1629741fc31b9297257410c91258bc3589e9","f20fbe219c03b89db4db3e312d10d7bb1748c4a9ca63283880620ce1a44e75b8","6f9f04baa2387498a1e3972b0266eabcce436c039254ca642c12afcc267a3118","cfdae345f54854cb536dfaaa927c0bf8c9d3bdcb0ae83da31833e95191a7e6ee","09c5b4b0ceb95c84856fb6e879753012a1dd576e0b6538bdb05a1fd9812bb8da","c54cdebe42c57ddb2fcd67805e63390d6e0535a8f53f58f10624bdf69f0aa267","f8ae59fdb3d989b4abc7cb9438a2ca38f7a162d198b894c9199df1771424f167","89df45dffa1d8402cc17ed702eb316b33e9154f40a9c5cefe211e94be73819e1","a86ff5d57a5fb772b00ec066e2647db63814956de4270be36e0667d84ce9920f","9789ca2b724331c7ae1d74f1cb22bbffa8f46af6a38d431d34cf5e1a42bd4303","f44035a4974aa30cc14c88561398a4113942e57c85bc4d5adaaa919bf25170e3","21f9931bc56f7c6b785050d21fd98e7e0544d2b08cbe763439d5dcb6bbfe9e31","4a3ada3027654c2cd4c48f4a3cdc8648cef598e0ba5acfbc521b8b175d5e4abf","c3351f7ebb324b9abaab58013f3cd1046490ce89a40670a558108f3085bac44f","6f78d0c6881a8d8087cc5c192d875454f25b54ad50552fc91e8411a6b02f678c","5057b83214c0636c4a41d1eff9d55f32444396027e44898069391b1fe493bdd0","ca89637e3622344bcf312b5b5e21d7e8b3556a5744b080bfc0e5889f903c4098","84f75d06d4513bc88d5864a69d20ca000a281c362e51f2e6da125ffd67245c70","46cfd51265795d50209d8f8d1979b5601c37ce1bb3ce0f5233698ba03d7db893","cf7453bbe846071123741fe6ab76f6c00dff8b71656800de830e82915fa4d1d8","d1cdba32f4c3987f1dc51e53cfc2a08e8a356cd30069127c570270f6d1cf2a44","af06f5da43477f3ab9f5a5a01c06945877af3203e69e6a769a173523890a8ca0","0e51671306b0c2250371eb82decaa0836cdc3ebe59b62e8a57642c204db8bbf3","7ffef9bccb69de03440fffaffb671b39efc8e6bcbdd13f3f53d4c15284000236","6dfc48bbb9fe02e504e9546e9c52447bef7c10834f91104de5a2e55a9fa92ea1","8707996ed413ef56f947e5a41fbc61b6260dd9d0b5521de1d0933de8b4910f63","8e1907dbf07e0f199526d8c2597494cdb409890ea07229502cd04bd35199e237","4afb25e6753d5ca92493c8befcb72e94dab3c548007c2a7b722ccbcb57eb1a4b","79875e4a5347143e90a1b111bbd04c88ec8c3840619243617d92ba3e94c9bcd6","7ed4976680a7d9956d1458f3d38e5be320e9397aa000e9ed7769436d33a3ca5c","41aedaa1567e9ae7b3ae03febc98ef52382589fbac97772ef08dd80362965cac","9a6abce2647a191fe305ff36cd777d724af96cc627c4c518ad05c50570d5d806","5682be1a4c5e9c04421a5754bcae81d0a4b08a2c2996ac69ea6d4c2084416ac2","e22847c4711885e83f107f1aedab987cec7cac51431f2ac620ba0261a8b47c53","9ae519fca32f74c4310a843e5f85e22f030b5d896a89a1a85d8f8949e4b8ccc3","1a243d627115a222d53fa61ce56382513c5357e78c49e9b8cff2a9f0fc2b20c7","e3284cd3da983a703a0fa091403bb54084a4fa312c25df580ae89bb6d54557bf","d1e40ce6fffe96e3e9b92dccbae1e4779a644d892f573e227829f09791058d45","d53517c1c8060b75a5b0dc81afe58a25e07a36665716f717f58a1ecf3f8a02c6","31d92eda0a871bd8c4d4f8f757ab90c64b8ba36962c0e2a5aa42bbfc23f31a62","c20f9c1a60f2d3e83fe28e576c0ada94bc7407c4766e13e60dfdb8e0419dea69","cdab838868f8ee2b00b2a5f8edbd15bea64fd1b777435a350ed284659527ad14","014299e8a6d52eafc8b06f98615dac731f687ca08058c0d272f5b16f516a7bce","2c6f1fa26d001af948c754dd6f3e6d04a3d90d2287897791d1f64fe555c90f8d","a2c9b31324f3a369d0416231e5f82bc7a3b654700e28ff15f51288b3b82ab74e","f5013aa644fac783db3b08d48ce1e93a652fb1e85ce0eda1f7b04af3a3a7493f","6e97c7bda89461a3c5cc053fe703c5d775b0abef54b53fe94f91da5c42175baa","4b3bbde332af169bbe17dfe56985a658a48b05d1faa12449fb2a5a04fda24d8b","46556b5def1e509d3b5c2f8a8d0356f3c7ced24c140234c9794630f4e126d226","e094c14795bc59875d02868dd26529263578e5498d1806421b84dbeb707f8870","c3e8235474f05430d207d7a3561764667592158dcdf0f590dbaf7be1fc0a0a1b","8f91717e23337eafce11012ac13ffb5a2b221f31ff4920f17088697cf09d03a8","e448b11835f06a3753149bcc4c800733c572825a6d5f3fe8df66b37d17553710","8d62fa383efbbe787e1ad2521c6ab42b6d2ef8f39fc0043e0110d10b87818068","1f85fab1c7871bea5bef60e655f357660e259bcb900a3161b47492d653ad0723","a3a0b1577ac939e586452994dd4eb901b2717a681e6d14cbb11b4bc92079624d","7478b63a334aea17186abca5705882cf3b41fd949fffa4262151f1c6695db34d","26a2c2fdcfe35a2c9aa9cfd4109181e33699b37d67de89126b5ab64ab3657f30","c0d471a3f70ef6bd08c7e49260099d215be8ad7d86979563c5c06dc14b0a27b9","b943b6b36b1227bb31bb2617d2c19a9880d9118fe8210569c5ee716164335aef","d324aa8ca50030c493f5026e6a40b70e63d26796554e83fd27e95fd60dfa0990","53e2a4df328f4ec268f9bfb484934ced605a33abf255a0d5a16a412a122fab63","61e8d97d995fc12d08b0db14799e91c0a849da510a3f488bbf2ab4ec463ee08e","f1eaf74a6c50ebe29f5725d151deb69bf92974381ad172625a3bdcc7c1a0bc6b","cfe0959c225e0fa03b2297c4642363efb99c162ed2d811782872fb0b4f0b39b9","33cc1a45b89e4eb2c8db7e94014066d5664ae6327a7657c62602fe9915abad7f","22b973f19791a479bc7794b7781e4b68915ca9bda3fece2e2d23f56e3d434d0b","682ab91fdcc1cfc31bc955d9c5600611662a025eb6748bedc4e02eee49f5a457","f2b70d69c82d8edfdc7b0e94b798554f282ada06021a38a5451f2c387261c0ab","49011967a2d1226eb9f3782d8d7c5d2336c68e9250f1d2d2fb8c493b423d7376","82e82cbd42108ee51548d21bfb461348743b85e460ebb4abef896eddc32f9094","722d88ff44f6031f0695fa46a171162b93183afe7c15855a9006b322b582cf55","94cc5eda3fd786dbd14c476c4bba1e062e98a0d4e333cb0fece656113a2de059","b9e97f43a96bb0f115b6e6a8ae3b108708ba42e077493b638f11e9db48527b58","65bba93acfd0cca3d26a3d816c8ffb23b28371d0bcb2ff8e21d7b25cba180d0e","4312414959d49ecd3571f6bbf26e9d57058eba69063e2bc25999167f3147298c","2b4b385517bf66c2fbe309f4535e3c95f2504117c9871e31c8b82fedc6265b26","6c7311c2bed8c762d6071bdeefb42aa425919a971e37c71505325b59d4a32340","266c897d5b61efad26adc7944b6a7449d75255caf8022e904bcde4256cc5f65f","389ebbbbf2e118f84d7a36e02a82d323ad30f0961f8d986a31db722a5730f536","679d5f0f36ecc6487b7a1dc5c19ce284331cde2ad8f770a605baa71db4aed8fe","2b560fb79e5ac4f5da8a12092bc0e9567e6c0eeea29c82c25887764a1ffb64d5","18b8e4fd79ebe8bd02e1119ecdb2275ed42e20dc274f9122ac3b0c0f166ebb8d","89f798bfa55bce57051261c6d4896a47b13adab4e647beb58d7b8cc132ee0221","c027014ab3d87ddf7ddc0471b2db89d1da61f0980f036342aaef8a733e54255c","41f97c420586385b78bb700305f3c6c745dbeb2fb1bf5d993f16c63cdaab5b93","d2736842b549acc3333e8587998fff952e1a2a9cf3b5305e1b23daf2528d1512","cbe2118fa4e26f0a60e256198ac9d75ab26e9160f947de8a231a87976087450f","4b0375a95d3ef34be6b72dc755042fac88e7b4b8da20ac3815a98f6390e04187","2274213717bfbf587bb0a5934c040878c5643e1e89ca8b0db6abd392b5ed7656","0702615a9779b1aa63f92bc3c5a5d811c56f9848b2616198b5fb72be44a3729b","a1bea30b13fb004eb705f16577d20a30ddd0579de2329d84ff175cf9cb2aa5b9","9e188ba1ebb788fde8d436b7be308121e57e64c81a411401ca497b7ef70085c1","7afbf8a689d37babe14bfdeab924f9d9f46434518df263a57d70db44d9a67848","efe164cbf8d6f50bb6aef78b9e71092046fbfd9275bda7b1791be9020d2f55a2","312b414e8d4bc1c6f0e4d95aac230c29270ee9eab15a3110e22cbe1862256c6c","3423b1f95dd5e2c83a26aa371adff6bd22607d5514681432c77f4732d004308d","ba675c7a67ba1e214e140f4e0bd4d7063d6d54f798fb6dc1975ebf5f564c3c1d","39bccbbf704903e77fbe80b94f17f89320490710e55e1c2b39d0943ad0309226","49d37caaf3485e5fc97731e9899ca979b5d34a74c5b0edb3c27b89be2194fbdf","572a49ace5734391ced070d0743fc904d9dfdc5f3f4382fc2ccb23c6751a6cbb","4573a79babbc296705c8bff397ec610040b113d373b6da0e103b9d289fcf1af5","58fd970ab1c2b165529bba0948b9c02637ab7a833c862bcd6dd85ea46621b6be","4c3dd72177c981806827744de7b234bc9bed2cc742728a76d02652a6274ec657","ac85ac8ceb5a80c427cea2cbc2a07c3c8a72419edaf2eb068496b4a51c279d66",{"version":"b361e9e2d293622f9a9c0ef0a4bb2dd59f13fdfe1f5fea109c5fe75bbd1d0a2f","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":5,"outDir":"./","removeComments":false,"strictNullChecks":true,"target":2},"fileIdsList":[[116],[116,302],[116,297],[116,297,298,299,300,301],[116,298],[116,298,300],[116,301],[116,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329],[116,303,304,305,306,307],[90,116,123,225],[90,116,123],[87,90,116,123,220,221],[116,221,222,224,226],[87,88,116,123,268],[88,104,116,123],[58,60,61,62,63,64,65,66,67,68,69,70,116],[58,59,61,62,63,64,65,66,67,68,69,70,116],[59,60,61,62,63,64,65,66,67,68,69,70,116],[58,59,60,62,63,64,65,66,67,68,69,70,116],[58,59,60,61,63,64,65,66,67,68,69,70,116],[58,59,60,61,62,64,65,66,67,68,69,70,116],[58,59,60,61,62,63,65,66,67,68,69,70,116],[58,59,60,61,62,63,64,66,67,68,69,70,116],[58,59,60,61,62,63,64,65,67,68,69,70,116],[58,59,60,61,62,63,64,65,66,68,69,70,116],[58,59,60,61,62,63,64,65,66,67,69,70,116],[58,59,60,61,62,63,64,65,66,67,68,70,116],[58,59,60,61,62,63,64,65,66,67,68,69,116],[88,116,123],[72,116],[75,116],[76,81,116],[77,87,88,95,104,115,116],[77,78,87,95,116],[79,116],[80,81,88,96,116],[81,104,112,116],[82,84,87,95,116],[83,116],[84,85,116],[86,87,116],[87,116],[87,88,89,104,115,116],[87,88,89,104,116],[90,95,104,115,116],[87,88,90,91,95,104,112,115,116],[90,92,104,112,115,116],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],[87,93,116],[94,115,116],[84,87,95,104,116],[96,116],[97,116],[75,98,116],[99,114,116,120],[100,116],[101,116],[87,102,116],[102,103,116,118],[87,104,105,106,116],[104,106,116],[104,105,116],[107,116],[108,116],[87,110,111,116],[110,111,116],[81,95,112,116],[113,116],[95,114,116],[76,90,101,115,116],[81,116],[104,116,117],[116,118],[116,119],[76,81,87,89,98,104,115,116,118,120],[104,116,121],[104,116,121,123],[88,116,123,269],[90,116,123,223],[77,87,115,116,123],[87,90,92,104,112,115,116,121,123],[87,104,116,123],[116,352],[116,352,353,354,355,356,357,358,359,360],[116,214],[116,215],[116,209],[116,211,212,213,214,215,216,217],[90,92,115,116,123,210,212,213,215],[87,88,116,123],[116,123,211,214,215],[87,116,123,214,215],[116,218],[116,218,351,367],[87,116,123,218,361,364,366],[116,238,239,240,241],[116,302,308,330],[116,377,382],[77,116,123,362,366,377,397,403,404],[116,362,363,366,375,376],[116,382],[116,362,377,383],[116,362,377],[116,123,377,380,381,382,387,388,390,393],[116,365],[116,362,377,380,382,389,393],[116,362,382],[116,362,366,377,380,381,382,385,387,388,389,390,392,403],[88,104,116,123,362,366,377],[116,123,362,363,366,385,393],[116,123,362,363,366,384,386,393],[116,362,377,379,382],[116,123,362,377,379,380,381,390,393,403],[116,123,376,383,385,386,393],[116,362,386],[116,362,363,366,386,391,393],[104,116,123,362,366,377,378,380,381,382,385,386,387,392,393,394,395,396,397,398,399,400,401,402,404,405],[116,362],[116,362,377,396,397,402,403,405],[116,123,377],[116,362,366,377,380,382,390],[77,104,116,123,362,363],[116,286,287],[116,276,277,278,279,280,281,282,283,284,285],[116,276],[116,277],[116,286],[116,125,126,127,128,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202],[116,151],[116,151,164],[116,129,178],[116,179],[116,130,153],[116,153],[116,129],[116,182],[116,162],[116,129,170,178],[116,173],[116,175],[116,125],[116,145],[116,126,127,166],[116,186],[116,184],[116,130,131],[116,132],[116,143],[116,129,134],[116,188],[116,130],[116,182,191,194],[116,130,131,175],[116,361,369,370],[116,218,370,371,372,373],[87,115,116,123,218],[87,116,123,218,361],[116,218,369,370],[116,495],[116,406,407,408,409,410,411,412,413,414,415,416,417,418,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441],[116,361,495],[116,361],[116,405],[116,419,421,495],[116,123],[116,419],[116,443,444,445,446,447,448,449,450,451,452,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492],[116,406],[116,407],[116,454],[116,445],[116,441],[116,218,419,453,495],[87,116,123,218,361,368,374,405,442,459,461,493,494],[116,123,377,419,420,421],[116,419,420,495],[116,123,218,377],[116,254],[116,348],[116,343],[116,215,232],[71,87,116,232,233],[116,232],[116,203,215,227,232,234],[90,116,227,232],[116,124,232],[116,233,234,235,245,246,248,249,250,251,252,253],[90,92,116,123,203,232,242,247],[116,237,242],[116,236,243,244],[116,232,235],[70,116,255,257],[70,116,232,255,258,259,344,345,346],[70,116,232,255,344,345,347],[116,344],[70,116,255,258,346,347,349],[76,116,123,232],[116,204],[116,205],[116,123,203,340,341],[70,116,288],[88,116,123,266,269,270,271,272,273,274,275,288],[76,116,123,331,332],[116,261,262,263,267,289,290,291,293,294,296,333,335,336,337,338,339,342],[116,230,232,292],[104,116],[116,334],[116,203,260],[116,264,265,266],[116,295],[116,206,207],[87,116,123,208,219,228,232],[90,95,116,123,124,203,207,208,219,227,228,229,230,231],[116,229,232],[257],[232],[232,347]],"referencedMap":[[341,1],[305,2],[298,3],[299,3],[302,4],[297,5],[301,6],[300,7],[307,2],[303,2],[309,2],[310,2],[311,2],[312,2],[313,2],[314,2],[315,2],[316,2],[317,2],[318,2],[319,2],[320,2],[321,2],[322,2],[323,2],[324,2],[325,2],[326,2],[327,2],[328,2],[329,2],[330,8],[304,2],[306,2],[308,9],[71,1],[266,1],[226,10],[225,11],[222,12],[227,13],[269,14],[204,1],[275,15],[59,16],[60,17],[58,18],[61,19],[62,20],[63,21],[64,22],[65,23],[66,24],[67,25],[68,26],[69,27],[70,28],[223,1],[268,1],[270,1],[272,29],[72,30],[73,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[88,43],[89,44],[74,1],[122,1],[90,45],[91,46],[92,47],[123,48],[93,49],[94,50],[95,51],[96,52],[97,53],[98,54],[99,55],[100,56],[101,57],[102,58],[103,59],[104,60],[106,61],[105,62],[107,63],[108,64],[109,1],[110,65],[111,66],[112,67],[113,68],[114,69],[115,70],[116,71],[117,72],[118,73],[119,74],[120,75],[121,76],[287,1],[230,42],[332,77],[221,1],[220,1],[271,78],[224,79],[265,1],[260,80],[264,1],[273,1],[124,81],[295,82],[353,83],[354,83],[355,1],[356,83],[357,83],[358,83],[359,83],[360,83],[361,84],[352,1],[215,85],[216,86],[210,87],[211,1],[218,88],[214,89],[213,90],[212,91],[217,92],[334,1],[256,1],[420,1],[351,93],[368,94],[367,95],[237,1],[242,96],[241,1],[240,1],[239,1],[238,1],[331,97],[340,1],[259,1],[398,98],[405,99],[377,100],[375,1],[400,101],[395,102],[378,103],[389,104],[376,1],[380,101],[366,105],[390,106],[399,107],[393,108],[383,109],[386,110],[385,111],[381,112],[382,113],[387,114],[391,115],[392,116],[403,117],[401,1],[397,1],[384,118],[404,119],[402,1],[388,1],[394,120],[379,1],[396,121],[365,1],[364,122],[363,118],[362,1],[288,123],[286,124],[276,1],[277,1],[283,125],[280,1],[279,126],[278,1],[285,127],[284,1],[282,125],[281,126],[274,1],[203,128],[152,129],[165,130],[127,1],[179,131],[181,132],[180,132],[154,133],[153,1],[155,134],[182,135],[186,136],[184,136],[163,137],[162,1],[171,135],[130,135],[158,1],[199,138],[174,139],[176,140],[194,135],[129,141],[146,142],[161,1],[196,1],[167,143],[183,136],[187,144],[185,145],[200,1],[169,1],[143,141],[135,1],[134,146],[159,135],[160,135],[133,147],[166,1],[128,1],[145,1],[173,1],[201,148],[140,135],[141,149],[188,132],[190,150],[189,150],[125,1],[144,1],[151,1],[142,135],[172,1],[139,1],[198,1],[138,1],[136,151],[137,1],[175,1],[168,1],[195,152],[149,146],[147,146],[148,146],[164,1],[131,1],[191,136],[193,144],[192,145],[178,1],[177,153],[170,1],[157,1],[197,1],[202,1],[126,1],[156,1],[150,1],[132,146],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[209,1],[371,154],[372,93],[374,155],[369,156],[370,157],[373,158],[496,159],[442,160],[406,161],[407,159],[408,1],[409,159],[410,1],[411,1],[412,1],[413,1],[414,1],[415,162],[416,163],[417,1],[418,1],[422,164],[423,1],[424,1],[425,159],[426,1],[427,159],[428,159],[429,1],[430,165],[431,165],[432,165],[433,162],[434,162],[435,1],[436,1],[437,166],[438,159],[439,1],[440,1],[441,159],[493,167],[443,168],[444,169],[445,1],[446,1],[447,159],[448,159],[449,1],[450,1],[451,1],[452,1],[457,1],[456,1],[455,170],[458,1],[459,162],[460,1],[461,162],[462,1],[463,1],[464,1],[465,1],[466,1],[467,1],[468,1],[469,1],[470,1],[471,1],[472,1],[473,1],[474,170],[475,170],[476,170],[477,159],[478,159],[479,165],[480,1],[481,1],[482,1],[483,1],[484,171],[485,170],[486,1],[487,159],[488,159],[489,159],[490,159],[491,159],[492,172],[454,173],[495,174],[494,175],[421,176],[419,177],[453,1],[255,178],[349,179],[344,180],[253,181],[234,182],[233,183],[250,184],[251,1],[235,185],[246,1],[249,186],[254,187],[247,1],[248,188],[252,1],[243,189],[245,190],[236,191],[244,183],[348,183],[258,192],[347,193],[346,194],[345,195],[350,196],[257,197],[205,198],[206,199],[342,200],[339,201],[289,202],[333,203],[343,204],[292,1],[293,205],[336,206],[291,29],[335,207],[337,1],[261,208],[290,1],[294,1],[263,1],[262,1],[338,1],[267,209],[296,210],[228,1],[207,1],[219,93],[208,211],[229,212],[232,213],[231,214]],"exportedModulesMap":[[341,1],[305,2],[298,3],[299,3],[302,4],[297,5],[301,6],[300,7],[307,2],[303,2],[309,2],[310,2],[311,2],[312,2],[313,2],[314,2],[315,2],[316,2],[317,2],[318,2],[319,2],[320,2],[321,2],[322,2],[323,2],[324,2],[325,2],[326,2],[327,2],[328,2],[329,2],[330,8],[304,2],[306,2],[308,9],[71,1],[266,1],[226,10],[225,11],[222,12],[227,13],[269,14],[204,1],[275,15],[59,16],[60,17],[58,18],[61,19],[62,20],[63,21],[64,22],[65,23],[66,24],[67,25],[68,26],[69,27],[70,28],[223,1],[268,1],[270,1],[272,29],[72,30],[73,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[88,43],[89,44],[74,1],[122,1],[90,45],[91,46],[92,47],[123,48],[93,49],[94,50],[95,51],[96,52],[97,53],[98,54],[99,55],[100,56],[101,57],[102,58],[103,59],[104,60],[106,61],[105,62],[107,63],[108,64],[109,1],[110,65],[111,66],[112,67],[113,68],[114,69],[115,70],[116,71],[117,72],[118,73],[119,74],[120,75],[121,76],[287,1],[230,42],[332,77],[221,1],[220,1],[271,78],[224,79],[265,1],[260,80],[264,1],[273,1],[124,81],[295,82],[353,83],[354,83],[355,1],[356,83],[357,83],[358,83],[359,83],[360,83],[361,84],[352,1],[215,85],[216,86],[210,87],[211,1],[218,88],[214,89],[213,90],[212,91],[217,92],[334,1],[256,1],[420,1],[351,93],[368,94],[367,95],[237,1],[242,96],[241,1],[240,1],[239,1],[238,1],[331,97],[340,1],[259,1],[398,98],[405,99],[377,100],[375,1],[400,101],[395,102],[378,103],[389,104],[376,1],[380,101],[366,105],[390,106],[399,107],[393,108],[383,109],[386,110],[385,111],[381,112],[382,113],[387,114],[391,115],[392,116],[403,117],[401,1],[397,1],[384,118],[404,119],[402,1],[388,1],[394,120],[379,1],[396,121],[365,1],[364,122],[363,118],[362,1],[288,123],[286,124],[276,1],[277,1],[283,125],[280,1],[279,126],[278,1],[285,127],[284,1],[282,125],[281,126],[274,1],[203,128],[152,129],[165,130],[127,1],[179,131],[181,132],[180,132],[154,133],[153,1],[155,134],[182,135],[186,136],[184,136],[163,137],[162,1],[171,135],[130,135],[158,1],[199,138],[174,139],[176,140],[194,135],[129,141],[146,142],[161,1],[196,1],[167,143],[183,136],[187,144],[185,145],[200,1],[169,1],[143,141],[135,1],[134,146],[159,135],[160,135],[133,147],[166,1],[128,1],[145,1],[173,1],[201,148],[140,135],[141,149],[188,132],[190,150],[189,150],[125,1],[144,1],[151,1],[142,135],[172,1],[139,1],[198,1],[138,1],[136,151],[137,1],[175,1],[168,1],[195,152],[149,146],[147,146],[148,146],[164,1],[131,1],[191,136],[193,144],[192,145],[178,1],[177,153],[170,1],[157,1],[197,1],[202,1],[126,1],[156,1],[150,1],[132,146],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[209,1],[371,154],[372,93],[374,155],[369,156],[370,157],[373,158],[496,159],[442,160],[406,161],[407,159],[408,1],[409,159],[410,1],[411,1],[412,1],[413,1],[414,1],[415,162],[416,163],[417,1],[418,1],[422,164],[423,1],[424,1],[425,159],[426,1],[427,159],[428,159],[429,1],[430,165],[431,165],[432,165],[433,162],[434,162],[435,1],[436,1],[437,166],[438,159],[439,1],[440,1],[441,159],[493,167],[443,168],[444,169],[445,1],[446,1],[447,159],[448,159],[449,1],[450,1],[451,1],[452,1],[457,1],[456,1],[455,170],[458,1],[459,162],[460,1],[461,162],[462,1],[463,1],[464,1],[465,1],[466,1],[467,1],[468,1],[469,1],[470,1],[471,1],[472,1],[473,1],[474,170],[475,170],[476,170],[477,159],[478,159],[479,165],[480,1],[481,1],[482,1],[483,1],[484,171],[485,170],[486,1],[487,159],[488,159],[489,159],[490,159],[491,159],[492,172],[454,173],[495,174],[494,175],[421,176],[419,177],[453,1],[255,178],[349,179],[344,180],[253,181],[234,182],[233,183],[250,184],[251,1],[235,185],[246,1],[249,186],[254,187],[247,1],[248,188],[252,1],[243,189],[245,190],[236,191],[244,183],[348,183],[258,215],[347,216],[346,217],[345,216],[257,197],[205,198],[206,199],[342,200],[339,201],[289,202],[333,203],[343,204],[292,1],[293,205],[336,206],[291,29],[335,207],[337,1],[261,208],[290,1],[294,1],[263,1],[262,1],[338,1],[267,209],[296,210],[228,1],[207,1],[219,93],[208,211],[229,212],[232,213],[231,214]],"semanticDiagnosticsPerFile":[341,305,298,299,302,297,301,300,307,303,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,304,306,308,71,266,226,225,222,227,269,204,275,59,60,58,61,62,63,64,65,66,67,68,69,70,223,268,270,272,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,74,122,90,91,92,123,93,94,95,96,97,98,99,100,101,102,103,104,106,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,287,230,332,221,220,271,224,265,260,264,273,124,295,353,354,355,356,357,358,359,360,361,352,215,216,210,211,218,214,213,212,217,334,256,420,351,368,367,237,242,241,240,239,238,331,340,259,398,405,377,375,400,395,378,389,376,380,366,390,399,393,383,386,385,381,382,387,391,392,403,401,397,384,404,402,388,394,379,396,365,364,363,362,288,286,276,277,283,280,279,278,285,284,282,281,274,203,152,165,127,179,181,180,154,153,155,182,186,184,163,162,171,130,158,199,174,176,194,129,146,161,196,167,183,187,185,200,169,143,135,134,159,160,133,166,128,145,173,201,140,141,188,190,189,125,144,151,142,172,139,198,138,136,137,175,168,195,149,147,148,164,131,191,193,192,178,177,170,157,197,202,126,156,150,132,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,41,46,47,42,43,44,45,9,51,48,49,50,52,10,53,54,55,56,2,1,11,57,15,14,209,371,372,374,369,370,373,496,442,406,407,408,409,410,411,412,413,414,415,416,417,418,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,493,443,444,445,446,447,448,449,450,451,452,457,456,455,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,454,495,494,421,419,453,255,349,344,253,234,233,250,251,235,246,249,254,247,248,252,243,245,236,244,348,258,347,346,345,350,257,205,206,342,339,289,333,343,292,293,336,291,335,337,261,290,294,263,262,338,267,296,228,207,219,208,229,232,231]},"version":"4.7.4"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/async-lock/index.d.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/empty-object.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/writable.d.ts","../../../node_modules/type-fest/source/omit-index-signature.d.ts","../../../node_modules/type-fest/source/pick-index-signature.d.ts","../../../node_modules/type-fest/source/enforce-optional.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/conditional-simplify.d.ts","../../../node_modules/type-fest/source/merge-deep.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/exact.d.ts","../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/type-fest/source/spread.d.ts","../../../node_modules/type-fest/source/tuple-to-union.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/replace.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../types/build/action.d.ts","../../types/build/driver.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../types/build/plugin.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/constraints.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../base-driver/build/lib/basedriver/device-settings.d.ts","../../base-driver/build/lib/basedriver/core.d.ts","../../base-driver/build/lib/express/server.d.ts","../../base-driver/build/lib/protocol/protocol.d.ts","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../../base-driver/build/lib/protocol/errors.d.ts","../../base-driver/build/lib/protocol/routes.d.ts","../../base-driver/build/lib/protocol/index.d.ts","../../base-driver/build/lib/express/static.d.ts","../../base-driver/build/lib/jsonwp-proxy/protocol-converter.d.ts","../../base-driver/build/lib/jsonwp-proxy/proxy.d.ts","../../base-driver/build/lib/express/websocket.d.ts","../../base-driver/build/lib/basedriver/commands/timeout.d.ts","../../base-driver/build/lib/basedriver/commands/event.d.ts","../../base-driver/build/lib/basedriver/commands/find.d.ts","../../base-driver/build/lib/basedriver/commands/log.d.ts","../../base-driver/build/lib/basedriver/commands/settings.d.ts","../../base-driver/build/lib/basedriver/commands/session.d.ts","../../base-driver/build/lib/basedriver/commands/execute.d.ts","../../base-driver/build/lib/basedriver/driver.d.ts","../../base-driver/build/lib/constants.d.ts","../../base-driver/build/lib/jsonwp-status/status.d.ts","../../base-driver/build/lib/basedriver/capabilities.d.ts","../../base-driver/build/lib/index.d.ts","../../appium/driver.d.ts","../../../node_modules/buffer/index.d.ts","../../opencv/build/lib/index.d.ts","../lib/compare.js","../../../node_modules/lru-cache/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../support/build/lib/log-internal.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../support/build/lib/image-util.d.ts","../../../node_modules/axios/index.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../support/build/lib/env.d.ts","../../../node_modules/log-symbols/index.d.ts","../../../node_modules/@colors/colors/index.d.ts","../../support/build/lib/console.d.ts","../../support/build/lib/index.d.ts","../../appium/support.d.ts","../lib/logger.js","../lib/image-element.js","../lib/finder.js","../../base-plugin/build/lib/plugin.d.ts","../../appium/plugin.d.ts","../lib/plugin.js","../../../node_modules/devtools/build/constants.d.ts","../../../node_modules/@wdio/protocols/build/types.d.ts","../../../node_modules/@wdio/protocols/build/commands/appium.d.ts","../../../node_modules/@wdio/protocols/build/commands/chromium.d.ts","../../../node_modules/@wdio/protocols/build/commands/gecko.d.ts","../../../node_modules/@wdio/protocols/build/commands/jsonwp.d.ts","../../../node_modules/@wdio/protocols/build/commands/mjsonwp.d.ts","../../../node_modules/@wdio/protocols/build/commands/saucelabs.d.ts","../../../node_modules/@wdio/protocols/build/commands/selenium.d.ts","../../../node_modules/@wdio/protocols/build/commands/webdriver.d.ts","../../../node_modules/@wdio/protocols/build/index.d.ts","../../../node_modules/puppeteer-core/node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/puppeteer-core/node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/puppeteer-core/lib/types.d.ts","../../../node_modules/puppeteer-core/lib/cjs/vendor/mitt/src/index.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/eventemitter.d.ts","../../../node_modules/devtools/build/types.d.ts","../../../node_modules/devtools/build/index.d.ts","../../../node_modules/webdriver/build/request/index.d.ts","../../../node_modules/webdriver/build/types.d.ts","../../../node_modules/webdriver/build/command.d.ts","../../../node_modules/webdriver/build/constants.d.ts","../../../node_modules/webdriver/build/utils.d.ts","../../../node_modules/webdriver/build/index.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/connectiontransport.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/errors.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/connection.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/dialog.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/uskeyboardlayout.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/evaltypes.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/input.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/jshandle.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/helper.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/securitydetails.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/httpresponse.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/httprequest.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/lifecyclewatcher.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/timeoutsettings.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/domworld.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/executioncontext.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/networkeventmanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/networkmanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/framemanager.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/tracing.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/coverage.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/webworker.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/puppeteerviewport.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/accessibility.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/filechooser.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/consolemessage.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/pdfoptions.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/taskqueue.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/page.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/target.d.ts","../../../node_modules/puppeteer-core/lib/cjs/puppeteer/common/browser.d.ts","../../../node_modules/webdriverio/build/commands/browser/$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/$.d.ts","../../../node_modules/webdriverio/build/commands/browser/call.d.ts","../../../node_modules/webdriverio/build/commands/browser/custom$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/custom$.d.ts","../../../node_modules/webdriverio/build/commands/browser/debug.d.ts","../../../node_modules/webdriverio/build/commands/browser/deletecookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/execute.d.ts","../../../node_modules/webdriverio/build/commands/browser/executeasync.d.ts","../../../node_modules/webdriverio/build/commands/browser/getcookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/getpuppeteer.d.ts","../../../node_modules/webdriverio/build/commands/browser/getwindowsize.d.ts","../../../node_modules/webdriverio/build/commands/browser/keys.d.ts","../../../node_modules/webdriverio/build/utils/interception/types.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/webdriverio/build/utils/interception/index.d.ts","../../../node_modules/webdriverio/build/commands/browser/mock.d.ts","../../../node_modules/webdriverio/build/commands/browser/mockclearall.d.ts","../../../node_modules/webdriverio/build/commands/browser/mockrestoreall.d.ts","../../../node_modules/webdriverio/build/commands/browser/newwindow.d.ts","../../../node_modules/webdriverio/build/commands/browser/pause.d.ts","../../../node_modules/webdriverio/build/commands/browser/react$$.d.ts","../../../node_modules/webdriverio/build/commands/browser/react$.d.ts","../../../node_modules/webdriverio/build/commands/browser/reloadsession.d.ts","../../../node_modules/webdriverio/build/commands/browser/savepdf.d.ts","../../../node_modules/webdriverio/build/commands/browser/saverecordingscreen.d.ts","../../../node_modules/webdriverio/build/commands/browser/savescreenshot.d.ts","../../../node_modules/webdriverio/build/commands/browser/setcookies.d.ts","../../../node_modules/webdriverio/build/commands/browser/settimeout.d.ts","../../../node_modules/webdriverio/build/commands/browser/setwindowsize.d.ts","../../../node_modules/webdriverio/build/commands/browser/switchwindow.d.ts","../../../node_modules/webdriverio/build/commands/browser/throttle.d.ts","../../../node_modules/webdriverio/build/commands/browser/touchaction.d.ts","../../../node_modules/webdriverio/build/commands/browser/uploadfile.d.ts","../../../node_modules/webdriverio/build/commands/browser/url.d.ts","../../../node_modules/webdriverio/build/commands/browser/waituntil.d.ts","../../../node_modules/webdriverio/build/commands/browser.d.ts","../../../node_modules/webdriverio/build/commands/element/$$.d.ts","../../../node_modules/webdriverio/build/commands/element/$.d.ts","../../../node_modules/webdriverio/build/commands/element/addvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/clearvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/click.d.ts","../../../node_modules/webdriverio/build/commands/element/custom$$.d.ts","../../../node_modules/webdriverio/build/commands/element/custom$.d.ts","../../../node_modules/webdriverio/build/commands/element/doubleclick.d.ts","../../../node_modules/webdriverio/build/commands/element/draganddrop.d.ts","../../../node_modules/webdriverio/build/commands/element/getattribute.d.ts","../../../node_modules/webdriverio/build/utils/severeserviceerror.d.ts","../../../node_modules/webdriverio/build/index.d.ts","../../../node_modules/webdriverio/build/commands/element/getcssproperty.d.ts","../../../node_modules/webdriverio/build/commands/element/getcomputedrole.d.ts","../../../node_modules/webdriverio/build/commands/element/getcomputedlabel.d.ts","../../../node_modules/webdriverio/build/commands/element/gethtml.d.ts","../../../node_modules/webdriverio/build/commands/element/getlocation.d.ts","../../../node_modules/webdriverio/build/commands/element/getproperty.d.ts","../../../node_modules/webdriverio/build/commands/element/getsize.d.ts","../../../node_modules/webdriverio/build/commands/element/gettagname.d.ts","../../../node_modules/webdriverio/build/commands/element/gettext.d.ts","../../../node_modules/webdriverio/build/commands/element/getvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/isclickable.d.ts","../../../node_modules/webdriverio/build/commands/element/isdisplayed.d.ts","../../../node_modules/webdriverio/build/commands/element/isdisplayedinviewport.d.ts","../../../node_modules/webdriverio/build/commands/element/isenabled.d.ts","../../../node_modules/webdriverio/build/commands/element/isequal.d.ts","../../../node_modules/webdriverio/build/commands/element/isexisting.d.ts","../../../node_modules/webdriverio/build/commands/element/isfocused.d.ts","../../../node_modules/webdriverio/build/commands/element/isselected.d.ts","../../../node_modules/webdriverio/build/commands/element/moveto.d.ts","../../../node_modules/webdriverio/build/commands/element/nextelement.d.ts","../../../node_modules/webdriverio/build/commands/element/parentelement.d.ts","../../../node_modules/webdriverio/build/commands/element/previouselement.d.ts","../../../node_modules/webdriverio/build/commands/element/react$$.d.ts","../../../node_modules/webdriverio/build/commands/element/react$.d.ts","../../../node_modules/webdriverio/build/commands/element/savescreenshot.d.ts","../../../node_modules/webdriverio/build/commands/element/scrollintoview.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyattribute.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyindex.d.ts","../../../node_modules/webdriverio/build/commands/element/selectbyvisibletext.d.ts","../../../node_modules/webdriverio/build/commands/element/setvalue.d.ts","../../../node_modules/webdriverio/build/commands/element/shadow$$.d.ts","../../../node_modules/webdriverio/build/commands/element/shadow$.d.ts","../../../node_modules/webdriverio/build/commands/element/touchaction.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforclickable.d.ts","../../../node_modules/webdriverio/build/commands/element/waitfordisplayed.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforenabled.d.ts","../../../node_modules/webdriverio/build/commands/element/waitforexist.d.ts","../../../node_modules/webdriverio/build/commands/element/waituntil.d.ts","../../../node_modules/webdriverio/build/commands/element.d.ts","../../../node_modules/webdriverio/build/utils/interception/devtools.d.ts","../../../node_modules/webdriverio/build/types.d.ts","../../../node_modules/webdriverio/async.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","3eb679a56cab01203a1ba7edeade937f6a2a4c718513b2cd930b579807fa9359","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"ff667ee99e5a28c3dc5063a3cfd4d3436699e3fb035d4451037da7f567da542a","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","7a79ca84e4370ed2e1afaa99ff7d25194901916b7672e977d16f77af3b71342f","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"72978f1a73910441c6d0f39bd3f9f77d430764df6b51c47c93a0e37e84ab5ef6","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3a0c45fe95e8f0e2c5247d48acf3a522d2ef29f1ab0effb3c59a9c4fdd5edbcd","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","a5f6d22760eef0178bebc5b5b5664a403109615a9c49da879ccd84438bd55223","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1dbccafbca82a60fdfb0fb3c28e2493ff76d06647a512dcf72a086022e8b6f91","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","02b3239cf1b1ff8737e383ed5557f0247499d15f5bd21ab849b1a24687b6100c","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","f1f0ab91eacf5fe45d4b9c0fc67b7510f490bd292505bc4baeba3bb43d17ec68",{"version":"2d32bbdbd53e80a4d05607716e7861e3fca9e846fd8a970dcc4890c439d54aa4","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","fcaf4736b812dae6fc9de8f6b44c2d1e5faed66c1c58e022db39a292980b167e","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","cb26f195564ee703a68161f88e57e33e6e76e630b999e582d0a4328435d7f84e","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","e5da2b7a4f643f017ffb444c2218217dbf76f096632af01a1d6c68d3fb2b14fb","ce01848c6682d9e7653bfa653b28ca9294beeabb85cf99bcc6168f10c6e3f436","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","755bb3d307b8892706fc8b2bdbd4129f85b8fa40d54704eb4fa4b08fa88fbf52","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","9392e1e62ee32e9b9334fa9bf93c27be2d7227ded895a984532cb155dc776f95","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","1e86d750ab0d4fbde7213aa28174f8838e38fe755bc75d8ab05795c58164082c","2581e202c26cdcb937bce677f26e5c150c6e63c73f3745fa050a026835e6efc3","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","1e2c2a147cc887a3903d243aecb9be8d00f8701dd44a9668cc6f74a3559c8c1d","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","bfe7df6fcf991120bbaceee4349879cb61cc1818ca7861fbeb325d9fbc72010d","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","746cb07f9dd17c219aaa9acbb1547bae40ad802cf98ee503a82f9be04e7d1da5","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","60f476f1c4de44a08d6a566c6f1e1b7de6cbe53d9153c9cc2284ca0022e21fba","9e4891d8c1d8de97893a062b68c543b3a77cfab40e1a4cf70db0be3c79a03b32","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","dcce1f3a3f016215125083f1b375167442b83a7bb205d60208f88e5038da7171","6d5ca4a24664e2abda6ca5268b35c98f3b51c24bfe2ea78e69474c33a00c70cf","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","21fa5e89751e3004538ade8a86e892fdf107f183aa8ae07b205d10bd80d33156","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","9550769b302bcd2675b6ebbc1bcc3babd47f5a4fdae6324eb5a4d3bdeddd4d19","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","f9c8e417b2c65e81f1af4837e8a525d44541c673906c891e10210b89aa273bc2","32568bfb6a4cc613a280821cb6d040cdb9f59002b94649b572ff56367d95acb0","3614116d0f47b274b9b771d45e06ef9bea3287295db0bafaecbaa592850328d0","92e35e09c72adfd70c14910c36e8edd659385822bb306d1a7ecf7cc45d87c2b7","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","c0722c1915db9c489ddbece99e3cac757b961e945974c60574ca38c488f88c49","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","5eafc2fbbb2d978fca6a14812632b117ea539964e773301327d1a3c194ebc572","f734063a854b2402e89de037fd7289e31685248c0d8ca0f80ff4fe657364dd61","72990795adebe4cbaa941875a2c984e9d10272fddab506703e09cc48193cc5fa","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","8f55068da250ce5c00ce636f4c33b7e50fb15a75a84bf6092595e419e678dc2a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","b7e64651c85c710d82161ad78be0ff7c95e9ecc82b23ea21244b62753d549ea3","9505d603322c220b8b7d66d0a0ca163d895a1b679ea623d46a56b67c00f6219d","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","6f36e68c339aea454afcdd2387ed71411d727a612f1412d84530e05f74d3e963","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","2e97e912e078f6cea483fb096d9c49eb2b7285f9e4748e2f7723c7b55817b90b","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","de723bc82cf4066cad42425e303fade98c8840f41a6ed51ac20da0ce4fff09e2","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"e23921a9a56b94e03c638fe7709cff6e24ff5dbb673500f39549555ca8481e6d","537519754d03076deac4b04781d600e1dff67adc72c00189d411e9eb917d50d5","5a4c22b5fbebb9c0c8f34d8c94aaf3c3ea12941ae09f3794f1983b9aca568513","d0c3f69853b08d50e442522622c52e1c80fd1150eb22b96e78290f0faf8ab346","b6b74b20ab6c5893c976815b7f50e0be40d87294df6e45752c43a8c092d1023e","4cbe65178b3e292e082c6baafff84e98552b67b43321c2fe42ed47cbf342e6b0","1f1a1d0609e7514b711768295528b3b9b0fd67d7f2ba3f1730d2f135e6f58069","87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f","3516415029e294ca20490e6795dabfa219dea3fdcb3d1907a1526025f457e1ab","db0305dce175dd75214f12f534fd4fe9805a320530a08f080323c24fd490f5a6","3dcfe6b1a091adfef5bf2e3eec522083f4ff042ddb83416953c06fa1ce50e359","4947905cda1cd79956a972a2eb6844e364d5204396732bf3831a1176e08742be","d7da4a1744d9516461b0301a70f5ff5a4d9372e5dfbcb95cbb55c45ca316efa0","c8a667992ef6ad695e4ca8e2831786deb95875a49f495e1bdba4a38341fe9935","3cf55b882e251da3fac1c15ab2f02bf981c633733080b39ce7d9490f9d2a6066","32998d5cda7a051b767de6fb34e1585adab73428172e56058cd8ac2d26314330","f0d7fd669e7c3c95a74f570f07b0d791dd9ccdc5b87e1dbb235ae9c9b4487bb3","b23c97e28b07bfdc4bab2df23268bfd4364130b6b9389436c2f4c296302d48b0","30248bd938cf5c970fa05276fa16f75ed645b967e49fb626a40a3198ff427cac","c52b3e2c50afb37edf529e43d28efaec0044af89ee885ddedd937d353942200b","ff495ee22655f5b8d28d88bdb11ed9999d04a963cc3b71d9bf44feb15c0d7d7a","aaf805cf591619d54d3a9cb2b964405f3d522d545c0023cb0256ade8e4548300","cc00d006bce557bef702bfe42c165d1eb0090b21447723910abdfdb1c9cda0c9","7ca56e4c578c8688979ac94aaed8ee4815c9406db9b5970de232f9a99e550366","c8865994df8b62fcd7a50c958ecc8dc949240bdb5b8a9e6b99e633df587da94f","7c96c813eaffe7f26db558bb51ef6552c788e4800314688fdd470e5f7cec6086","8bcb2bfa54c60a8f6886e5a03b892ebadd2d041fb53380a862f7a03b6098ac94","97f1c46ac3e27c7d6c4e07b3c27ab60e952e1c5d21cd51f282258f2ab87a620b","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","33a163af7e0aa1f95cde4c85a0d7025566e874927c209c0a2d5c80f4134bbba0",{"version":"2b4874c181d766e8f27838e5ece214bff5842508b4289dbb8c63704d1d034d89","signature":"499f3b65634578b12c61682f91f8ecab5746f2833ff2a046d82680263c5f5dd3"},"a83e11b6800c50b4d361fc997551dad8a95c817298e91cdff00e17b18a883418","85ca0c94bcc3d2fb62cfe8dfc1e649b77611118a77fde72915ebbcff71da5656","72f8b24415b650a67ef570e3a532b3203a339277af81cd44530738d521acd6d4","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","b7b3958e1ccccecf9992c09c3f70f6a37a4559d73858f36777cd2fdbf174af7b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","1f5d54d716e2983942fa3e96c10b9a134975cacfd4d0a6d60b64569b0badc937","b05b48274c318121533dee4ff3d104ca6e89389e4963bfd8148389790102a638","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","d7fcddcd30ce28e95d3492b204a4ca7f0f1e83e36f475f6d0e8bf4d43ca582a6","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","0e2e948c4ad3184567fcae2684c360d2de35db86a021652386646ea6d235f43c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a24c550713b0c89c592210e3ed105d31b28c32ad771822aabd4fc218a7bfcde9","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","8158988aa420c707b0b8c83478da67f1ca846f861440371489c6921f8a519ae2","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","c0ab662b2062f0153ca133720fc005ab7c1540f4f43f5010fc188a37c4d6ad4b","d1d46acba7d3b3f9abe50982dcdddb536c184371d84746bfe5076ee95358095b",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"21c26e8b205b22ce0fc6b4a71dff51461339c88699b3c9bd1ba6a24cb1781820","a4380443e2595fb9a78b9dbe5f99556c54cabd40e86fba6c6e75335d6cab485e","395441b10f28820c2096e1f1b502e97abc65c848873dd6250af151787eaff088",{"version":"715fcb6eaa674cbe8e39d405f77cc56f22630a2e3d7073dea6b780595cbecff4","signature":"2af4c9c58ca43602ed6f597c786397454e905d3a5a784a46f5e15e8447643969"},{"version":"0a3dfc31c86fa5a8ec68eb865e29909a19cdf0c67d4665bfd041da2196046d4d","signature":"c3412251a1f83ab65b910a3dd2abfa31c5488c1aa5a586eb88983ed4f376a496"},{"version":"1829137810a77346334a33f2cd46709a2d3bf675d81256a3f1f4e04eee5740c3","signature":"f65863ab45de007f1881247088f2f3a5586d2de0f0768d9eda4f315f2dfa19bc"},"d329afb889faf26b434a0fd0b294a911289a5a2db01e9a7937cf6915e9d78606","a09c6973ec4773cf1ed5bac082469854b1de7c1c75e5353e904370c5d1231e07",{"version":"1b349def6b5e294e186befc57ac75f2a80e439422585fff4cf39cce2b384c2f5","signature":"5a95182c41093c6575a5c2e62753c3e0c40b5d6c0c7c8061bba821f60c60bc41"},"625e5bc32aa08bbbe91b618d373b621434f0ae10c3f4a956f79f685a34211d3c","73125cbbbf91655d992f8a7e877e34e42bbade7914bd91a93340a6d5ea86802d","42864fc9a6f7cd4a32b8a039c5aa8fcfe104e44d44ae56e0c1a09176abbeb562","14cebd75a4eb2c7bfddfc34f39e871219a4fe252e7f677bfd2a8f3513fa468a0","f14e53c947ac3f48b87cfdac17e3f2894c5b035dfe6d9c4354367f2fb584b50b","412953af5a2c116c7d21638260980db2ff5e27d8cb3c7a2ae2a57edd74eb5944","b914d2beb2f50b9d395a884a2bab7aba85bdfac63778e848edc071e621e44269","91943331db391f5e695bd92c52e53e314e65b987e205e90b4eb4b2d7b4719a97","c03ca22b4601cfcbdbd469337b2b039d818c9156c3b106c6faf49401766a2f54","044e2e9a705977ddf6d52263dbc329711a26e05e83d5cd2f2470c85f2de805b4","d2895fbf4ab9a7c2e6d95c43ccdc94a146377fe2e3bae65f2a05c78fc8a3b686","5e82c491b0995bb42e41a86c86fc30721a71fb9af22478b2a9c82cf6160cf970","13a7b0847883cadf7bd6d8df067bd6b6f8e55daa53b7df480048c90bb603e2a1","10fc14b4e441528c8aac75db5deeb06a00f1dc4265b98724052149e9db2f5eeb","64ecb47b652529b7859c48d1d8f690ac516cc7e5e47cafb68d59f86b807cdee0","bdecd4f44d964969b22cea27c49b90d664f3866955af93c4bfc2450864b49d6b","5b298ed18d77a049d6e08f958b0a7fe9bc68391a537d9490bbf91ccba251fe27",{"version":"93ff305ef87c1324afcad66bcfd74c89b60195716901281551097a7013125f7d","affectsGlobalScope":true},"f50da3d363044e48d9522802682a82892edbe2f2514c5e4e946865b280aae5ce","a9799ce2b5f4b675db7e4a55cefb02b00ac2c3131d4779cfc06c79100d158779","84cba6cfcb7c71cdbb4afdfa9008ff6b1b1de794bdd2799244512c06625cc5f2","6875cf9af390abf7a7b8189b366efcb937876ab46ada75e697890ebd861e9086","fc53ce1bb4f84a22cb87bf6d7f2ae6f696ff8f53ad3ccf346d7b52eaa1554f1d","031da4cd5404883fa92d26250150333f0ff4c3c301c02c484f2b517908cdf46e","a9d9775d0710c2c16cd1d513c6665fb15853f4f1fefa4cea76f6297198eb9c77","dab463b4e04b94ba09e8d64f604af579cc00494eca37e5833d95d4196721c900","61ee5ac56dd7b9f5505d9807e4da9742d33f13feaaf0f486461e415d33714a10","1224f4f7c32b3ef446723e7b03b3b7e382169799601e1ac31b33f800e3e41e98","62f6923e19ad850b8b28114be19fa44ec03ab0e6d0cc3b19eefe518240fe3f4e","5777de012f3b776535a35d0c5aec20923629abc8a3fec41bc4d231f85bc8d73a","4e404fc456852318559eafa24f82c0a64460eaf4c7ba336e53eb7769a1e4abae","7340037e7f06e9d0fc0a9cdff51a9a3f8f66f08d2624cf70ab56d933480ffc5e","1448f4e82422a44aba7e3ca0938ed09b0a84b38c9dc226bd1780b2abbd300263","cbab8ec46a142d79596e6682a1a22a0057f63a6da6e85bad170bedb164486f16","fc6aecc1ad16097bf79aa7cd98a40d4362e1742457ee251cabad2c1eb13d45fd","083823dbfdde2397a3b47c3962c4a0ef3e68da7e67972f893222ca3ccc0fce0f","3346fddfeca6e4bae2dee30b816c144d7c0d4d75f6b07a31d14494c84c7ea1d0","a4540bf83d0c760705c08033d0274d218c833eeb230774d1d6627e918272bd7f","b1bf32649f9ebf02f9a5f5f0a4ad84d677f40fd28909a586208f94a331970017","ac0b2cc44f709491d62056b15f247d5b2551197a60a3aa58d03133ca8be128a0","44a379b89c79b1b061557e0b43be1629741fc31b9297257410c91258bc3589e9","f20fbe219c03b89db4db3e312d10d7bb1748c4a9ca63283880620ce1a44e75b8","6f9f04baa2387498a1e3972b0266eabcce436c039254ca642c12afcc267a3118","cfdae345f54854cb536dfaaa927c0bf8c9d3bdcb0ae83da31833e95191a7e6ee","09c5b4b0ceb95c84856fb6e879753012a1dd576e0b6538bdb05a1fd9812bb8da","c54cdebe42c57ddb2fcd67805e63390d6e0535a8f53f58f10624bdf69f0aa267","f8ae59fdb3d989b4abc7cb9438a2ca38f7a162d198b894c9199df1771424f167","89df45dffa1d8402cc17ed702eb316b33e9154f40a9c5cefe211e94be73819e1","a86ff5d57a5fb772b00ec066e2647db63814956de4270be36e0667d84ce9920f","9789ca2b724331c7ae1d74f1cb22bbffa8f46af6a38d431d34cf5e1a42bd4303","f44035a4974aa30cc14c88561398a4113942e57c85bc4d5adaaa919bf25170e3","21f9931bc56f7c6b785050d21fd98e7e0544d2b08cbe763439d5dcb6bbfe9e31","4a3ada3027654c2cd4c48f4a3cdc8648cef598e0ba5acfbc521b8b175d5e4abf","c3351f7ebb324b9abaab58013f3cd1046490ce89a40670a558108f3085bac44f","6f78d0c6881a8d8087cc5c192d875454f25b54ad50552fc91e8411a6b02f678c","5057b83214c0636c4a41d1eff9d55f32444396027e44898069391b1fe493bdd0","ca89637e3622344bcf312b5b5e21d7e8b3556a5744b080bfc0e5889f903c4098","84f75d06d4513bc88d5864a69d20ca000a281c362e51f2e6da125ffd67245c70","46cfd51265795d50209d8f8d1979b5601c37ce1bb3ce0f5233698ba03d7db893","cf7453bbe846071123741fe6ab76f6c00dff8b71656800de830e82915fa4d1d8","d1cdba32f4c3987f1dc51e53cfc2a08e8a356cd30069127c570270f6d1cf2a44","af06f5da43477f3ab9f5a5a01c06945877af3203e69e6a769a173523890a8ca0","0e51671306b0c2250371eb82decaa0836cdc3ebe59b62e8a57642c204db8bbf3","7ffef9bccb69de03440fffaffb671b39efc8e6bcbdd13f3f53d4c15284000236","6dfc48bbb9fe02e504e9546e9c52447bef7c10834f91104de5a2e55a9fa92ea1","8707996ed413ef56f947e5a41fbc61b6260dd9d0b5521de1d0933de8b4910f63","8e1907dbf07e0f199526d8c2597494cdb409890ea07229502cd04bd35199e237","4afb25e6753d5ca92493c8befcb72e94dab3c548007c2a7b722ccbcb57eb1a4b","79875e4a5347143e90a1b111bbd04c88ec8c3840619243617d92ba3e94c9bcd6","b450e07861609520402493c49c815e24e0999cc839db32186318555a31f877d3","41aedaa1567e9ae7b3ae03febc98ef52382589fbac97772ef08dd80362965cac","9a6abce2647a191fe305ff36cd777d724af96cc627c4c518ad05c50570d5d806","5682be1a4c5e9c04421a5754bcae81d0a4b08a2c2996ac69ea6d4c2084416ac2","e22847c4711885e83f107f1aedab987cec7cac51431f2ac620ba0261a8b47c53","9ae519fca32f74c4310a843e5f85e22f030b5d896a89a1a85d8f8949e4b8ccc3","1a243d627115a222d53fa61ce56382513c5357e78c49e9b8cff2a9f0fc2b20c7","e3284cd3da983a703a0fa091403bb54084a4fa312c25df580ae89bb6d54557bf","d1e40ce6fffe96e3e9b92dccbae1e4779a644d892f573e227829f09791058d45","d53517c1c8060b75a5b0dc81afe58a25e07a36665716f717f58a1ecf3f8a02c6","31d92eda0a871bd8c4d4f8f757ab90c64b8ba36962c0e2a5aa42bbfc23f31a62","c20f9c1a60f2d3e83fe28e576c0ada94bc7407c4766e13e60dfdb8e0419dea69","cdab838868f8ee2b00b2a5f8edbd15bea64fd1b777435a350ed284659527ad14","014299e8a6d52eafc8b06f98615dac731f687ca08058c0d272f5b16f516a7bce","2c6f1fa26d001af948c754dd6f3e6d04a3d90d2287897791d1f64fe555c90f8d","a2c9b31324f3a369d0416231e5f82bc7a3b654700e28ff15f51288b3b82ab74e","f5013aa644fac783db3b08d48ce1e93a652fb1e85ce0eda1f7b04af3a3a7493f","6e97c7bda89461a3c5cc053fe703c5d775b0abef54b53fe94f91da5c42175baa","4b3bbde332af169bbe17dfe56985a658a48b05d1faa12449fb2a5a04fda24d8b","46556b5def1e509d3b5c2f8a8d0356f3c7ced24c140234c9794630f4e126d226","e094c14795bc59875d02868dd26529263578e5498d1806421b84dbeb707f8870","c3e8235474f05430d207d7a3561764667592158dcdf0f590dbaf7be1fc0a0a1b","8f91717e23337eafce11012ac13ffb5a2b221f31ff4920f17088697cf09d03a8","e448b11835f06a3753149bcc4c800733c572825a6d5f3fe8df66b37d17553710","8d62fa383efbbe787e1ad2521c6ab42b6d2ef8f39fc0043e0110d10b87818068","1f85fab1c7871bea5bef60e655f357660e259bcb900a3161b47492d653ad0723","a3a0b1577ac939e586452994dd4eb901b2717a681e6d14cbb11b4bc92079624d","7478b63a334aea17186abca5705882cf3b41fd949fffa4262151f1c6695db34d","26a2c2fdcfe35a2c9aa9cfd4109181e33699b37d67de89126b5ab64ab3657f30","c0d471a3f70ef6bd08c7e49260099d215be8ad7d86979563c5c06dc14b0a27b9","b943b6b36b1227bb31bb2617d2c19a9880d9118fe8210569c5ee716164335aef","d324aa8ca50030c493f5026e6a40b70e63d26796554e83fd27e95fd60dfa0990","53e2a4df328f4ec268f9bfb484934ced605a33abf255a0d5a16a412a122fab63","61e8d97d995fc12d08b0db14799e91c0a849da510a3f488bbf2ab4ec463ee08e","f1eaf74a6c50ebe29f5725d151deb69bf92974381ad172625a3bdcc7c1a0bc6b","cfe0959c225e0fa03b2297c4642363efb99c162ed2d811782872fb0b4f0b39b9","33cc1a45b89e4eb2c8db7e94014066d5664ae6327a7657c62602fe9915abad7f","22b973f19791a479bc7794b7781e4b68915ca9bda3fece2e2d23f56e3d434d0b","682ab91fdcc1cfc31bc955d9c5600611662a025eb6748bedc4e02eee49f5a457","f2b70d69c82d8edfdc7b0e94b798554f282ada06021a38a5451f2c387261c0ab","49011967a2d1226eb9f3782d8d7c5d2336c68e9250f1d2d2fb8c493b423d7376","82e82cbd42108ee51548d21bfb461348743b85e460ebb4abef896eddc32f9094","722d88ff44f6031f0695fa46a171162b93183afe7c15855a9006b322b582cf55","94cc5eda3fd786dbd14c476c4bba1e062e98a0d4e333cb0fece656113a2de059","b9e97f43a96bb0f115b6e6a8ae3b108708ba42e077493b638f11e9db48527b58","65bba93acfd0cca3d26a3d816c8ffb23b28371d0bcb2ff8e21d7b25cba180d0e","4312414959d49ecd3571f6bbf26e9d57058eba69063e2bc25999167f3147298c","2b4b385517bf66c2fbe309f4535e3c95f2504117c9871e31c8b82fedc6265b26","6c7311c2bed8c762d6071bdeefb42aa425919a971e37c71505325b59d4a32340","266c897d5b61efad26adc7944b6a7449d75255caf8022e904bcde4256cc5f65f","389ebbbbf2e118f84d7a36e02a82d323ad30f0961f8d986a31db722a5730f536","679d5f0f36ecc6487b7a1dc5c19ce284331cde2ad8f770a605baa71db4aed8fe","2b560fb79e5ac4f5da8a12092bc0e9567e6c0eeea29c82c25887764a1ffb64d5","18b8e4fd79ebe8bd02e1119ecdb2275ed42e20dc274f9122ac3b0c0f166ebb8d","89f798bfa55bce57051261c6d4896a47b13adab4e647beb58d7b8cc132ee0221","c027014ab3d87ddf7ddc0471b2db89d1da61f0980f036342aaef8a733e54255c","41f97c420586385b78bb700305f3c6c745dbeb2fb1bf5d993f16c63cdaab5b93","d2736842b549acc3333e8587998fff952e1a2a9cf3b5305e1b23daf2528d1512","cbe2118fa4e26f0a60e256198ac9d75ab26e9160f947de8a231a87976087450f","4b0375a95d3ef34be6b72dc755042fac88e7b4b8da20ac3815a98f6390e04187","2274213717bfbf587bb0a5934c040878c5643e1e89ca8b0db6abd392b5ed7656","0702615a9779b1aa63f92bc3c5a5d811c56f9848b2616198b5fb72be44a3729b","a1bea30b13fb004eb705f16577d20a30ddd0579de2329d84ff175cf9cb2aa5b9","9e188ba1ebb788fde8d436b7be308121e57e64c81a411401ca497b7ef70085c1","7afbf8a689d37babe14bfdeab924f9d9f46434518df263a57d70db44d9a67848","efe164cbf8d6f50bb6aef78b9e71092046fbfd9275bda7b1791be9020d2f55a2","312b414e8d4bc1c6f0e4d95aac230c29270ee9eab15a3110e22cbe1862256c6c","3423b1f95dd5e2c83a26aa371adff6bd22607d5514681432c77f4732d004308d","ba675c7a67ba1e214e140f4e0bd4d7063d6d54f798fb6dc1975ebf5f564c3c1d","39bccbbf704903e77fbe80b94f17f89320490710e55e1c2b39d0943ad0309226","49d37caaf3485e5fc97731e9899ca979b5d34a74c5b0edb3c27b89be2194fbdf","572a49ace5734391ced070d0743fc904d9dfdc5f3f4382fc2ccb23c6751a6cbb","4573a79babbc296705c8bff397ec610040b113d373b6da0e103b9d289fcf1af5","58fd970ab1c2b165529bba0948b9c02637ab7a833c862bcd6dd85ea46621b6be","4c3dd72177c981806827744de7b234bc9bed2cc742728a76d02652a6274ec657","ac85ac8ceb5a80c427cea2cbc2a07c3c8a72419edaf2eb068496b4a51c279d66",{"version":"b361e9e2d293622f9a9c0ef0a4bb2dd59f13fdfe1f5fea109c5fe75bbd1d0a2f","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":5,"outDir":"./","removeComments":false,"strictNullChecks":true,"target":2},"fileIdsList":[[116],[116,315],[116,310],[116,310,311,312,313,314],[116,311],[116,311,313],[116,314],[116,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342],[116,316,317,318,319,320],[90,116,123,219],[90,116,123],[87,90,116,123,214,215],[116,215,216,218,220],[87,88,116,123,281],[88,104,116,123],[58,60,61,62,63,64,65,66,67,68,69,70,116],[58,59,61,62,63,64,65,66,67,68,69,70,116],[59,60,61,62,63,64,65,66,67,68,69,70,116],[58,59,60,62,63,64,65,66,67,68,69,70,116],[58,59,60,61,63,64,65,66,67,68,69,70,116],[58,59,60,61,62,64,65,66,67,68,69,70,116],[58,59,60,61,62,63,65,66,67,68,69,70,116],[58,59,60,61,62,63,64,66,67,68,69,70,116],[58,59,60,61,62,63,64,65,67,68,69,70,116],[58,59,60,61,62,63,64,65,66,68,69,70,116],[58,59,60,61,62,63,64,65,66,67,69,70,116],[58,59,60,61,62,63,64,65,66,67,68,70,116],[58,59,60,61,62,63,64,65,66,67,68,69,116],[88,116,123],[72,116],[75,116],[76,81,116],[77,87,88,95,104,115,116],[77,78,87,95,116],[79,116],[80,81,88,96,116],[81,104,112,116],[82,84,87,95,116],[83,116],[84,85,116],[86,87,116],[87,116],[87,88,89,104,115,116],[87,88,89,104,116],[90,95,104,115,116],[87,88,90,91,95,104,112,115,116],[90,92,104,112,115,116],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],[87,93,116],[94,115,116],[84,87,95,104,116],[96,116],[97,116],[75,98,116],[99,114,116,120],[100,116],[101,116],[87,102,116],[102,103,116,118],[87,104,105,106,116],[104,106,116],[104,105,116],[107,116],[108,116],[87,110,111,116],[110,111,116],[81,95,112,116],[113,116],[95,114,116],[76,90,101,115,116],[81,116],[104,116,117],[116,118],[116,119],[76,81,87,89,98,104,115,116,118,120],[104,116,121],[104,116,121,123],[88,116,123,282],[90,116,123,217],[77,87,115,116,123],[87,90,92,104,112,115,116,121,123],[87,104,116,123],[116,365],[116,365,366,367,368,369,370,371,372,373],[116,231],[116,232],[116,226],[116,228,229,230,231,232,233,234],[90,92,115,116,123,227,229,230,232],[87,88,116,123],[116,123,228,231,232],[87,116,123,231,232],[116,235],[116,235,364,380],[87,116,123,235,374,377,379],[116,244,245,246,247],[116,315,321,343],[116,390,395],[77,116,123,375,379,390,410,416,417],[116,375,376,379,388,389],[116,395],[116,375,390,396],[116,375,390],[116,123,390,393,394,395,400,401,403,406],[116,378],[116,375,390,393,395,402,406],[116,375,395],[116,375,379,390,393,394,395,398,400,401,402,403,405,416],[88,104,116,123,375,379,390],[116,123,375,376,379,398,406],[116,123,375,376,379,397,399,406],[116,375,390,392,395],[116,123,375,390,392,393,394,403,406,416],[116,123,389,396,398,399,406],[116,375,399],[116,375,376,379,399,404,406],[104,116,123,375,379,390,391,393,394,395,398,399,400,405,406,407,408,409,410,411,412,413,414,415,417,418],[116,375],[116,375,390,409,410,415,416,418],[116,123,390],[116,375,379,390,393,395,403],[77,104,116,123,375,376],[116,299,300],[116,289,290,291,292,293,294,295,296,297,298],[116,289],[116,290],[116,299],[116,125,126,127,128,129,131,132,133,134,135,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207],[116,168],[116,130,183],[116,184],[116,131,156],[116,130,138,149,157],[116,156],[116,130],[116,187],[116,132],[116,166],[116,130,174,183],[116,177],[116,179],[116,125],[116,149],[116,126,127,137,170],[116,191],[116,189],[116,130,134,135,136,137,138],[116,134,135,136],[116,127,147],[116,130,137],[116,193],[116,131],[116,187,196,199],[116,131,132],[116,131,132,179],[116,374,382,383],[116,235,383,384,385,386],[87,115,116,123,235],[87,116,123,235,374],[116,235,382,383],[116,508],[116,419,420,421,422,423,424,425,426,427,428,429,430,431,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454],[116,374,508],[116,374],[116,418],[116,432,434,508],[116,123],[116,432],[116,456,457,458,459,460,461,462,463,464,465,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505],[116,419],[116,420],[116,467],[116,458],[116,454],[116,235,432,466,508],[87,116,123,235,374,381,387,418,455,472,474,506,507],[116,123,390,432,433,434],[116,432,433,508],[116,123,235,390],[116,267],[116,361],[116,356],[116,136,137,208,232,238],[116,238,256,263],[116,238,261,263],[116,238,257,263],[116,238,258,263],[116,238,260,263],[116,238,259,263],[116,238,263],[71,87,116,238,239],[116,238],[116,208,221,238,240,249,262],[90,116,221,238],[116,124,238],[116,239,240,241,251,252,254,255,263,264,265,266],[90,92,116,123,208,238,248,253],[116,243,248],[116,242,249,250],[116,238,241],[70,116,268,270],[70,116,238,268,271,272,357,358,359],[70,116,238,268,357,358,360],[116,357],[70,116,268,271,359,360,362],[76,116,123,238],[116,209],[116,210],[116,123,208,353,354],[70,116,301],[88,116,123,279,282,283,284,285,286,287,288,301],[76,116,123,344,345],[116,274,275,276,280,302,303,304,306,307,309,346,348,349,350,351,352,355],[116,224,238,305],[104,116],[116,347],[116,208,273],[116,277,278,279],[116,308],[116,235,236,238],[116,211,212],[87,116,123,213,222,238],[90,95,116,123,124,208,212,213,221,222,223,224,225,236,237],[116,223,238],[270],[238],[238,268,360]],"referencedMap":[[354,1],[318,2],[311,3],[312,3],[315,4],[310,5],[314,6],[313,7],[320,2],[316,2],[322,2],[323,2],[324,2],[325,2],[326,2],[327,2],[328,2],[329,2],[330,2],[331,2],[332,2],[333,2],[334,2],[335,2],[336,2],[337,2],[338,2],[339,2],[340,2],[341,2],[342,2],[343,8],[317,2],[319,2],[321,9],[71,1],[279,1],[220,10],[219,11],[216,12],[221,13],[282,14],[209,1],[288,15],[59,16],[60,17],[58,18],[61,19],[62,20],[63,21],[64,22],[65,23],[66,24],[67,25],[68,26],[69,27],[70,28],[217,1],[281,1],[283,1],[285,29],[72,30],[73,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[88,43],[89,44],[74,1],[122,1],[90,45],[91,46],[92,47],[123,48],[93,49],[94,50],[95,51],[96,52],[97,53],[98,54],[99,55],[100,56],[101,57],[102,58],[103,59],[104,60],[106,61],[105,62],[107,63],[108,64],[109,1],[110,65],[111,66],[112,67],[113,68],[114,69],[115,70],[116,71],[117,72],[118,73],[119,74],[120,75],[121,76],[300,1],[224,42],[345,77],[215,1],[214,1],[284,78],[218,79],[278,1],[273,80],[277,1],[286,1],[124,81],[308,82],[366,83],[367,83],[368,1],[369,83],[370,83],[371,83],[372,83],[373,83],[374,84],[365,1],[232,85],[233,86],[227,87],[228,1],[235,88],[231,89],[230,90],[229,91],[234,92],[347,1],[269,1],[433,1],[364,93],[381,94],[380,95],[243,1],[248,96],[247,1],[246,1],[245,1],[244,1],[344,97],[353,1],[272,1],[411,98],[418,99],[390,100],[388,1],[413,101],[408,102],[391,103],[402,104],[389,1],[393,101],[379,105],[403,106],[412,107],[406,108],[396,109],[399,110],[398,111],[394,112],[395,113],[400,114],[404,115],[405,116],[416,117],[414,1],[410,1],[397,118],[417,119],[415,1],[401,1],[407,120],[392,1],[409,121],[378,1],[377,122],[376,118],[375,1],[301,123],[299,124],[289,1],[290,1],[296,125],[293,1],[292,126],[291,1],[298,127],[297,1],[295,125],[294,126],[287,1],[208,128],[155,1],[169,129],[127,1],[184,130],[186,131],[185,131],[157,132],[156,1],[159,133],[158,134],[138,1],[187,135],[191,136],[189,136],[129,1],[136,137],[167,138],[166,1],[175,135],[131,135],[162,1],[204,139],[178,140],[180,141],[199,135],[130,142],[150,143],[165,1],[201,1],[171,144],[188,136],[192,145],[190,146],[205,1],[173,1],[147,142],[139,147],[140,1],[137,148],[163,135],[164,135],[170,1],[128,1],[134,1],[149,1],[177,1],[206,149],[144,135],[145,150],[193,131],[195,151],[194,151],[135,1],[125,1],[148,1],[146,135],[176,1],[203,1],[143,1],[141,152],[142,1],[179,1],[172,1],[200,153],[153,154],[151,154],[152,154],[168,1],[132,1],[196,136],[198,145],[197,146],[183,1],[181,155],[174,1],[161,1],[202,1],[207,1],[182,1],[126,1],[160,1],[154,1],[133,154],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[226,1],[384,156],[385,93],[387,157],[382,158],[383,159],[386,160],[509,161],[455,162],[419,163],[420,161],[421,1],[422,161],[423,1],[424,1],[425,1],[426,1],[427,1],[428,164],[429,165],[430,1],[431,1],[435,166],[436,1],[437,1],[438,161],[439,1],[440,161],[441,161],[442,1],[443,167],[444,167],[445,167],[446,164],[447,164],[448,1],[449,1],[450,168],[451,161],[452,1],[453,1],[454,161],[506,169],[456,170],[457,171],[458,1],[459,1],[460,161],[461,161],[462,1],[463,1],[464,1],[465,1],[470,1],[469,1],[468,172],[471,1],[472,164],[473,1],[474,164],[475,1],[476,1],[477,1],[478,1],[479,1],[480,1],[481,1],[482,1],[483,1],[484,1],[485,1],[486,1],[487,172],[488,172],[489,172],[490,161],[491,161],[492,167],[493,1],[494,1],[495,1],[496,1],[497,173],[498,172],[499,1],[500,161],[501,161],[502,161],[503,161],[504,161],[505,174],[467,175],[508,176],[507,177],[434,178],[432,179],[466,1],[268,180],[362,181],[357,182],[266,183],[257,184],[262,185],[258,186],[259,187],[261,188],[260,189],[256,190],[240,191],[239,192],[263,193],[264,1],[241,194],[252,1],[255,195],[267,196],[253,1],[254,197],[265,1],[249,198],[251,199],[242,200],[250,192],[361,192],[271,201],[360,202],[359,203],[358,204],[363,205],[270,206],[210,207],[211,208],[355,209],[352,210],[302,211],[346,212],[356,213],[305,1],[306,214],[349,215],[304,29],[348,216],[350,1],[274,217],[303,1],[307,1],[276,1],[275,1],[351,1],[280,218],[309,219],[222,1],[212,1],[237,220],[213,221],[236,1],[223,222],[238,223],[225,224]],"exportedModulesMap":[[354,1],[318,2],[311,3],[312,3],[315,4],[310,5],[314,6],[313,7],[320,2],[316,2],[322,2],[323,2],[324,2],[325,2],[326,2],[327,2],[328,2],[329,2],[330,2],[331,2],[332,2],[333,2],[334,2],[335,2],[336,2],[337,2],[338,2],[339,2],[340,2],[341,2],[342,2],[343,8],[317,2],[319,2],[321,9],[71,1],[279,1],[220,10],[219,11],[216,12],[221,13],[282,14],[209,1],[288,15],[59,16],[60,17],[58,18],[61,19],[62,20],[63,21],[64,22],[65,23],[66,24],[67,25],[68,26],[69,27],[70,28],[217,1],[281,1],[283,1],[285,29],[72,30],[73,30],[75,31],[76,32],[77,33],[78,34],[79,35],[80,36],[81,37],[82,38],[83,39],[84,40],[85,40],[86,41],[87,42],[88,43],[89,44],[74,1],[122,1],[90,45],[91,46],[92,47],[123,48],[93,49],[94,50],[95,51],[96,52],[97,53],[98,54],[99,55],[100,56],[101,57],[102,58],[103,59],[104,60],[106,61],[105,62],[107,63],[108,64],[109,1],[110,65],[111,66],[112,67],[113,68],[114,69],[115,70],[116,71],[117,72],[118,73],[119,74],[120,75],[121,76],[300,1],[224,42],[345,77],[215,1],[214,1],[284,78],[218,79],[278,1],[273,80],[277,1],[286,1],[124,81],[308,82],[366,83],[367,83],[368,1],[369,83],[370,83],[371,83],[372,83],[373,83],[374,84],[365,1],[232,85],[233,86],[227,87],[228,1],[235,88],[231,89],[230,90],[229,91],[234,92],[347,1],[269,1],[433,1],[364,93],[381,94],[380,95],[243,1],[248,96],[247,1],[246,1],[245,1],[244,1],[344,97],[353,1],[272,1],[411,98],[418,99],[390,100],[388,1],[413,101],[408,102],[391,103],[402,104],[389,1],[393,101],[379,105],[403,106],[412,107],[406,108],[396,109],[399,110],[398,111],[394,112],[395,113],[400,114],[404,115],[405,116],[416,117],[414,1],[410,1],[397,118],[417,119],[415,1],[401,1],[407,120],[392,1],[409,121],[378,1],[377,122],[376,118],[375,1],[301,123],[299,124],[289,1],[290,1],[296,125],[293,1],[292,126],[291,1],[298,127],[297,1],[295,125],[294,126],[287,1],[208,128],[155,1],[169,129],[127,1],[184,130],[186,131],[185,131],[157,132],[156,1],[159,133],[158,134],[138,1],[187,135],[191,136],[189,136],[129,1],[136,137],[167,138],[166,1],[175,135],[131,135],[162,1],[204,139],[178,140],[180,141],[199,135],[130,142],[150,143],[165,1],[201,1],[171,144],[188,136],[192,145],[190,146],[205,1],[173,1],[147,142],[139,147],[140,1],[137,148],[163,135],[164,135],[170,1],[128,1],[134,1],[149,1],[177,1],[206,149],[144,135],[145,150],[193,131],[195,151],[194,151],[135,1],[125,1],[148,1],[146,135],[176,1],[203,1],[143,1],[141,152],[142,1],[179,1],[172,1],[200,153],[153,154],[151,154],[152,154],[168,1],[132,1],[196,136],[198,145],[197,146],[183,1],[181,155],[174,1],[161,1],[202,1],[207,1],[182,1],[126,1],[160,1],[154,1],[133,154],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[9,1],[51,1],[48,1],[49,1],[50,1],[52,1],[10,1],[53,1],[54,1],[55,1],[56,1],[2,1],[1,1],[11,1],[57,1],[15,1],[14,1],[226,1],[384,156],[385,93],[387,157],[382,158],[383,159],[386,160],[509,161],[455,162],[419,163],[420,161],[421,1],[422,161],[423,1],[424,1],[425,1],[426,1],[427,1],[428,164],[429,165],[430,1],[431,1],[435,166],[436,1],[437,1],[438,161],[439,1],[440,161],[441,161],[442,1],[443,167],[444,167],[445,167],[446,164],[447,164],[448,1],[449,1],[450,168],[451,161],[452,1],[453,1],[454,161],[506,169],[456,170],[457,171],[458,1],[459,1],[460,161],[461,161],[462,1],[463,1],[464,1],[465,1],[470,1],[469,1],[468,172],[471,1],[472,164],[473,1],[474,164],[475,1],[476,1],[477,1],[478,1],[479,1],[480,1],[481,1],[482,1],[483,1],[484,1],[485,1],[486,1],[487,172],[488,172],[489,172],[490,161],[491,161],[492,167],[493,1],[494,1],[495,1],[496,1],[497,173],[498,172],[499,1],[500,161],[501,161],[502,161],[503,161],[504,161],[505,174],[467,175],[508,176],[507,177],[434,178],[432,179],[466,1],[268,180],[362,181],[357,182],[266,183],[257,184],[262,185],[258,186],[259,187],[261,188],[260,189],[256,190],[240,191],[239,192],[263,193],[264,1],[241,194],[252,1],[255,195],[267,196],[253,1],[254,197],[265,1],[249,198],[251,199],[242,200],[250,192],[361,192],[271,225],[360,226],[359,227],[358,226],[270,206],[210,207],[211,208],[355,209],[352,210],[302,211],[346,212],[356,213],[305,1],[306,214],[349,215],[304,29],[348,216],[350,1],[274,217],[303,1],[307,1],[276,1],[275,1],[351,1],[280,218],[309,219],[222,1],[212,1],[237,220],[213,221],[236,1],[223,222],[238,223],[225,224]],"semanticDiagnosticsPerFile":[354,318,311,312,315,310,314,313,320,316,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,317,319,321,71,279,220,219,216,221,282,209,288,59,60,58,61,62,63,64,65,66,67,68,69,70,217,281,283,285,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,74,122,90,91,92,123,93,94,95,96,97,98,99,100,101,102,103,104,106,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,300,224,345,215,214,284,218,278,273,277,286,124,308,366,367,368,369,370,371,372,373,374,365,232,233,227,228,235,231,230,229,234,347,269,433,364,381,380,243,248,247,246,245,244,344,353,272,411,418,390,388,413,408,391,402,389,393,379,403,412,406,396,399,398,394,395,400,404,405,416,414,410,397,417,415,401,407,392,409,378,377,376,375,301,299,289,290,296,293,292,291,298,297,295,294,287,208,155,169,127,184,186,185,157,156,159,158,138,187,191,189,129,136,167,166,175,131,162,204,178,180,199,130,150,165,201,171,188,192,190,205,173,147,139,140,137,163,164,170,128,134,149,177,206,144,145,193,195,194,135,125,148,146,176,203,143,141,142,179,172,200,153,151,152,168,132,196,198,197,183,181,174,161,202,207,182,126,160,154,133,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,41,46,47,42,43,44,45,9,51,48,49,50,52,10,53,54,55,56,2,1,11,57,15,14,226,384,385,387,382,383,386,509,455,419,420,421,422,423,424,425,426,427,428,429,430,431,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,506,456,457,458,459,460,461,462,463,464,465,470,469,468,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,467,508,507,434,432,466,268,362,357,266,257,262,258,259,261,260,256,240,239,263,264,241,252,255,267,253,254,265,249,251,242,250,361,271,360,359,358,363,270,210,211,355,352,302,346,356,305,306,349,304,348,350,274,303,307,276,275,351,280,309,222,212,237,213,236,223,238,225]},"version":"4.7.4"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/images-plugin",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Plugin for working with images and image elements in Appium",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -40,8 +40,7 @@
|
|
|
40
40
|
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@appium/opencv": "^1.0.
|
|
44
|
-
"@babel/runtime": "7.19.0",
|
|
43
|
+
"@appium/opencv": "^1.0.13",
|
|
45
44
|
"lru-cache": "7.14.0",
|
|
46
45
|
"source-map-support": "0.5.21"
|
|
47
46
|
},
|
|
@@ -53,7 +52,7 @@
|
|
|
53
52
|
"mainClass": "ImageElementPlugin"
|
|
54
53
|
},
|
|
55
54
|
"types": "./build/lib/plugin.d.ts",
|
|
56
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "f545a6cde58d83f3289072f8957468793947ba66",
|
|
57
56
|
"homepage": "https://appium.io",
|
|
58
57
|
"engines": {
|
|
59
58
|
"node": ">=14",
|