appium 2.0.0-beta.2 → 2.0.0-beta.20
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/README.md +9 -9
- package/build/lib/appium-config.schema.json +0 -0
- package/build/lib/appium.js +157 -53
- package/build/lib/cli/argparse-actions.js +104 -0
- package/build/lib/cli/args.js +115 -279
- package/build/lib/cli/driver-command.js +11 -1
- package/build/lib/cli/extension-command.js +60 -8
- package/build/lib/cli/extension.js +30 -7
- package/build/lib/cli/npm.js +17 -14
- package/build/lib/cli/parser.js +152 -89
- package/build/lib/cli/plugin-command.js +11 -1
- package/build/lib/cli/utils.js +29 -3
- package/build/lib/config-file.js +141 -0
- package/build/lib/config.js +76 -61
- package/build/lib/driver-config.js +42 -19
- package/build/lib/drivers.js +8 -4
- package/build/lib/ext-config-io.js +165 -0
- package/build/lib/extension-config.js +130 -61
- package/build/lib/grid-register.js +22 -24
- package/build/lib/logger.js +3 -3
- package/build/lib/logsink.js +11 -13
- package/build/lib/main.js +197 -77
- package/build/lib/plugin-config.js +20 -10
- package/build/lib/plugins.js +4 -2
- package/build/lib/schema/appium-config-schema.js +252 -0
- package/build/lib/schema/arg-spec.js +120 -0
- package/build/lib/schema/cli-args.js +173 -0
- package/build/lib/schema/cli-transformers.js +76 -0
- package/build/lib/schema/index.js +36 -0
- package/build/lib/schema/keywords.js +62 -0
- package/build/lib/schema/schema.js +357 -0
- package/build/lib/utils.js +44 -99
- package/lib/appium-config.schema.json +277 -0
- package/lib/appium.js +201 -65
- package/lib/cli/argparse-actions.js +77 -0
- package/lib/cli/args.js +174 -375
- package/lib/cli/driver-command.js +4 -0
- package/lib/cli/extension-command.js +70 -5
- package/lib/cli/extension.js +25 -5
- package/lib/cli/npm.js +18 -12
- package/lib/cli/parser.js +254 -79
- package/lib/cli/plugin-command.js +4 -0
- package/lib/cli/utils.js +21 -1
- package/lib/config-file.js +227 -0
- package/lib/config.js +109 -62
- package/lib/driver-config.js +66 -11
- package/lib/drivers.js +4 -1
- package/lib/ext-config-io.js +287 -0
- package/lib/extension-config.js +225 -67
- package/lib/grid-register.js +27 -24
- package/lib/logger.js +1 -1
- package/lib/logsink.js +10 -7
- package/lib/main.js +211 -77
- package/lib/plugin-config.js +34 -5
- package/lib/plugins.js +1 -0
- package/lib/schema/appium-config-schema.js +286 -0
- package/lib/schema/arg-spec.js +218 -0
- package/lib/schema/cli-args.js +273 -0
- package/lib/schema/cli-transformers.js +123 -0
- package/lib/schema/index.js +2 -0
- package/lib/schema/keywords.js +119 -0
- package/lib/schema/schema.js +577 -0
- package/lib/utils.js +42 -88
- package/package.json +55 -80
- package/postinstall.js +71 -0
- package/types/appium-config.d.ts +197 -0
- package/types/types.d.ts +201 -0
- package/CHANGELOG.md +0 -3515
- package/build/lib/cli/parser-helpers.js +0 -82
- package/lib/cli/parser-helpers.js +0 -79
|
@@ -11,7 +11,7 @@ require("source-map-support/register");
|
|
|
11
11
|
|
|
12
12
|
var _axios = _interopRequireDefault(require("axios"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _support = require("@appium/support");
|
|
15
15
|
|
|
16
16
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
17
17
|
|
|
@@ -22,24 +22,30 @@ const hubUri = config => {
|
|
|
22
22
|
return `${protocol}://${config.hubHost}:${config.hubPort}`;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
async function registerNode(
|
|
26
|
-
let
|
|
25
|
+
async function registerNode(data, addr, port, basePath) {
|
|
26
|
+
let configFilePath;
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} catch (err) {
|
|
31
|
-
_logger.default.error(`Unable to load node configuration file to register with grid: ${err.message}`);
|
|
28
|
+
if (_lodash.default.isString(data)) {
|
|
29
|
+
configFilePath = data;
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
try {
|
|
32
|
+
data = await _support.fs.readFile(data, 'utf-8');
|
|
33
|
+
} catch (err) {
|
|
34
|
+
_logger.default.error(`Unable to load node configuration file ${configFilePath} to register with grid: ${err.message}`);
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
try {
|
|
40
|
+
data = JSON.parse(data);
|
|
41
|
+
} catch (err) {
|
|
42
|
+
_logger.default.errorAndThrow(`Syntax error in node configuration file ${configFilePath}: ${err.message}`);
|
|
43
|
+
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
postRequest(data, addr, port);
|
|
48
|
+
postRequest(data, addr, port, basePath);
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
async function registerToGrid(postOptions, configHolder) {
|
|
@@ -58,15 +64,7 @@ async function registerToGrid(postOptions, configHolder) {
|
|
|
58
64
|
}
|
|
59
65
|
}
|
|
60
66
|
|
|
61
|
-
function postRequest(
|
|
62
|
-
let configHolder;
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
configHolder = JSON.parse(data);
|
|
66
|
-
} catch (err) {
|
|
67
|
-
_logger.default.errorAndThrow(`Syntax error in node configuration file: ${err.message}`);
|
|
68
|
-
}
|
|
69
|
-
|
|
67
|
+
function postRequest(configHolder, addr, port, basePath) {
|
|
70
68
|
if (!_lodash.default.has(configHolder, 'configuration')) {
|
|
71
69
|
let configuration = {};
|
|
72
70
|
|
|
@@ -81,7 +79,7 @@ function postRequest(data, addr, port) {
|
|
|
81
79
|
}
|
|
82
80
|
|
|
83
81
|
if (!configHolder.configuration.url || !configHolder.configuration.host || !configHolder.configuration.port) {
|
|
84
|
-
configHolder.configuration.url = `http://${addr}:${port}
|
|
82
|
+
configHolder.configuration.url = `http://${addr}:${port}${basePath}`;
|
|
85
83
|
configHolder.configuration.host = addr;
|
|
86
84
|
configHolder.configuration.port = port;
|
|
87
85
|
}
|
|
@@ -154,4 +152,4 @@ var _default = registerNode;
|
|
|
154
152
|
exports.default = _default;require('source-map-support').install();
|
|
155
153
|
|
|
156
154
|
|
|
157
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ncmlkLXJlZ2lzdGVyLmpzIl0sIm5hbWVzIjpbImh1YlVyaSIsImNvbmZpZyIsInByb3RvY29sIiwiaHViUHJvdG9jb2wiLCJodWJIb3N0IiwiaHViUG9ydCIsInJlZ2lzdGVyTm9kZSIsImNvbmZpZ0ZpbGUiLCJhZGRyIiwicG9ydCIsImRhdGEiLCJmcyIsInJlYWRGaWxlIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJtZXNzYWdlIiwicG9zdFJlcXVlc3QiLCJyZWdpc3RlclRvR3JpZCIsInBvc3RPcHRpb25zIiwiY29uZmlnSG9sZGVyIiwic3RhdHVzIiwiRXJyb3IiLCJkZWJ1ZyIsImNvbmZpZ3VyYXRpb24iLCJKU09OIiwicGFyc2UiLCJlcnJvckFuZFRocm93IiwiXyIsImhhcyIsInByb3BlcnR5IiwidXJsIiwiaG9zdCIsImlkIiwicmVnUmVxdWVzdCIsIm1ldGhvZCIsInJlZ2lzdGVyIiwicmVnaXN0ZXJDeWNsZUludGVydmFsIiwicmVnaXN0ZXJDeWNsZSIsImlzTmFOIiwid2FybiIsImZpcnN0Iiwic2V0SW50ZXJ2YWwiLCJyZWdpc3RlclJldHJ5IiwiaXNBbHJlYWR5UmVnaXN0ZXJlZCIsInRpbWVvdXQiLCJzdWNjZXNzIiwibXNnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLE1BQU0sR0FBSUMsTUFBRCxJQUFZO0FBQ3pCLFFBQU1DLFFBQVEsR0FBR0QsTUFBTSxDQUFDRSxXQUFQLElBQXNCLE1BQXZDO0FBQ0EsU0FBUSxHQUFFRCxRQUFTLE1BQUtELE1BQU0sQ0FBQ0csT0FBUSxJQUFHSCxNQUFNLENBQUNJLE9BQVEsRUFBekQ7QUFDRCxDQUhEOztBQUtBLGVBQWVDLFlBQWYsQ0FBNkJDLFVBQTdCLEVBQXlDQyxJQUF6QyxFQUErQ0MsSUFBL0MsRUFBcUQ7QUFDbkQsTUFBSUMsSUFBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFBLElBQUksR0FBRyxNQUFNQyxrQkFBR0MsUUFBSCxDQUFZTCxVQUFaLEVBQXdCLE9BQXhCLENBQWI7QUFDRCxHQUZELENBRUUsT0FBT00sR0FBUCxFQUFZO0FBQ1pDLG9CQUFPQyxLQUFQLENBQWMsaUVBQWdFRixHQUFHLENBQUNHLE9BQVEsRUFBMUY7O0FBQ0E7QUFDRDs7QUFHRCxNQUFJLENBQUNOLElBQUwsRUFBVztBQUNUSSxvQkFBT0MsS0FBUCxDQUFhLGtFQUFiOztBQUNBO0FBQ0Q7O0FBQ0RFLEVBQUFBLFdBQVcsQ0FBQ1AsSUFBRCxFQUFPRixJQUFQLEVBQWFDLElBQWIsQ0FBWDtBQUNEOztBQUVELGVBQWVTLGNBQWYsQ0FBK0JDLFdBQS9CLEVBQTRDQyxZQUE1QyxFQUEwRDtBQUN4RCxNQUFJO0FBQ0YsVUFBTTtBQUFDQyxNQUFBQTtBQUFELFFBQVcsTUFBTSxvQkFBTUYsV0FBTixDQUF2Qjs7QUFDQSxRQUFJRSxNQUFNLEtBQUssR0FBZixFQUFvQjtBQUNsQixZQUFNLElBQUlDLEtBQUosQ0FBVyw0QkFBMkJELE1BQU8sRUFBN0MsQ0FBTjtBQUNEOztBQUNEUCxvQkFBT1MsS0FBUCxDQUFjLHNEQUFELEdBQ1h2QixNQUFNLENBQUNvQixZQUFZLENBQUNJLGFBQWQsQ0FEUjtBQUVELEdBUEQsQ0FPRSxPQUFPWCxHQUFQLEVBQVk7QUFDWkMsb0JBQU9DLEtBQVAsQ0FBYywwREFBeURGLEdBQUcsQ0FBQ0csT0FBUSxFQUFuRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBU0MsV0FBVCxDQUFzQlAsSUFBdEIsRUFBNEJGLElBQTVCLEVBQWtDQyxJQUFsQyxFQUF3QztBQUV0QyxNQUFJVyxZQUFKOztBQUNBLE1BQUk7QUFDRkEsSUFBQUEsWUFBWSxHQUFHSyxJQUFJLENBQUNDLEtBQUwsQ0FBV2hCLElBQVgsQ0FBZjtBQUNELEdBRkQsQ0FFRSxPQUFPRyxHQUFQLEVBQVk7QUFDWkMsb0JBQU9hLGFBQVAsQ0FBc0IsNENBQTJDZCxHQUFHLENBQUNHLE9BQVEsRUFBN0U7QUFDRDs7QUFHRCxNQUFJLENBQUNZLGdCQUFFQyxHQUFGLENBQU1ULFlBQU4sRUFBb0IsZUFBcEIsQ0FBTCxFQUEyQztBQUN6QyxRQUFJSSxhQUFhLEdBQUcsRUFBcEI7O0FBQ0EsU0FBSyxNQUFNTSxRQUFYLElBQXVCVixZQUF2QixFQUFxQztBQUNuQyxVQUFJUSxnQkFBRUMsR0FBRixDQUFNVCxZQUFOLEVBQW9CVSxRQUFwQixLQUFpQ0EsUUFBUSxLQUFLLGNBQWxELEVBQWtFO0FBQ2hFTixRQUFBQSxhQUFhLENBQUNNLFFBQUQsQ0FBYixHQUEwQlYsWUFBWSxDQUFDVSxRQUFELENBQXRDO0FBQ0EsZUFBT1YsWUFBWSxDQUFDVSxRQUFELENBQW5CO0FBQ0Q7QUFDRjs7QUFDRFYsSUFBQUEsWUFBWSxDQUFDSSxhQUFiLEdBQTZCQSxhQUE3QjtBQUNEOztBQU9ELE1BQUksQ0FBQ0osWUFBWSxDQUFDSSxhQUFiLENBQTJCTyxHQUE1QixJQUFtQyxDQUFDWCxZQUFZLENBQUNJLGFBQWIsQ0FBMkJRLElBQS9ELElBQXVFLENBQUNaLFlBQVksQ0FBQ0ksYUFBYixDQUEyQmYsSUFBdkcsRUFBNkc7QUFDM0dXLElBQUFBLFlBQVksQ0FBQ0ksYUFBYixDQUEyQk8sR0FBM0IsR0FBa0MsVUFBU3ZCLElBQUssSUFBR0MsSUFBSyxTQUF4RDtBQUNBVyxJQUFBQSxZQUFZLENBQUNJLGFBQWIsQ0FBMkJRLElBQTNCLEdBQWtDeEIsSUFBbEM7QUFDQVksSUFBQUEsWUFBWSxDQUFDSSxhQUFiLENBQTJCZixJQUEzQixHQUFrQ0EsSUFBbEM7QUFDRDs7QUFFRCxNQUFJLENBQUNXLFlBQVksQ0FBQ0ksYUFBYixDQUEyQlMsRUFBaEMsRUFBb0M7QUFDbENiLElBQUFBLFlBQVksQ0FBQ0ksYUFBYixDQUEyQlMsRUFBM0IsR0FBaUMsVUFBU2IsWUFBWSxDQUFDSSxhQUFiLENBQTJCUSxJQUFLLElBQUdaLFlBQVksQ0FBQ0ksYUFBYixDQUEyQmYsSUFBSyxFQUE3RztBQUNEOztBQUdELFFBQU15QixVQUFVLEdBQUc7QUFDakJILElBQUFBLEdBQUcsRUFBRyxHQUFFL0IsTUFBTSxDQUFDb0IsWUFBWSxDQUFDSSxhQUFkLENBQTZCLGdCQUQxQjtBQUVqQlcsSUFBQUEsTUFBTSxFQUFFLE1BRlM7QUFHakJ6QixJQUFBQSxJQUFJLEVBQUVVO0FBSFcsR0FBbkI7O0FBTUEsTUFBSUEsWUFBWSxDQUFDSSxhQUFiLENBQTJCWSxRQUEzQixLQUF3QyxJQUE1QyxFQUFrRDtBQUNoRHRCLG9CQUFPUyxLQUFQLENBQWMseUJBQXdCSCxZQUFZLENBQUNJLGFBQWIsQ0FBMkJZLFFBQVMsV0FBMUU7O0FBQ0E7QUFDRDs7QUFFRCxRQUFNQyxxQkFBcUIsR0FBR2pCLFlBQVksQ0FBQ0ksYUFBYixDQUEyQmMsYUFBekQ7O0FBQ0EsTUFBSUMsS0FBSyxDQUFDRixxQkFBRCxDQUFMLElBQWdDQSxxQkFBcUIsSUFBSSxDQUE3RCxFQUFnRTtBQUM5RHZCLG9CQUFPMEIsSUFBUCxDQUFhLGtEQUFELEdBQ1QsbURBREg7O0FBRUE7QUFDRDs7QUFFRCxNQUFJQyxLQUFLLEdBQUcsSUFBWjs7QUFDQTNCLGtCQUFPUyxLQUFQLENBQWMsOENBQUQsR0FDViw4QkFBNkJjLHFCQUFzQixNQUR0RDs7QUFFQUssRUFBQUEsV0FBVyxDQUFDLGVBQWVDLGFBQWYsR0FBZ0M7QUFDMUMsUUFBSUYsS0FBSixFQUFXO0FBQ1RBLE1BQUFBLEtBQUssR0FBRyxLQUFSO0FBQ0EsWUFBTXZCLGNBQWMsQ0FBQ2dCLFVBQUQsRUFBYWQsWUFBYixDQUFwQjtBQUNELEtBSEQsTUFHTyxJQUFJLEVBQUMsTUFBTXdCLG1CQUFtQixDQUFDeEIsWUFBRCxDQUExQixDQUFKLEVBQThDO0FBRW5ELFlBQU1GLGNBQWMsQ0FBQ2dCLFVBQUQsRUFBYWQsWUFBYixDQUFwQjtBQUNEO0FBQ0YsR0FSVSxFQVFSaUIscUJBUlEsQ0FBWDtBQVNEOztBQUVELGVBQWVPLG1CQUFmLENBQW9DeEIsWUFBcEMsRUFBa0Q7QUFFaEQsUUFBTWEsRUFBRSxHQUFHYixZQUFZLENBQUNJLGFBQWIsQ0FBMkJTLEVBQXRDOztBQUNBLE1BQUk7QUFDRixVQUFNO0FBQUN2QixNQUFBQSxJQUFEO0FBQU9XLE1BQUFBO0FBQVAsUUFBaUIsTUFBTSxvQkFBTTtBQUNqQ1UsTUFBQUEsR0FBRyxFQUFHLEdBQUUvQixNQUFNLENBQUNvQixZQUFZLENBQUNJLGFBQWQsQ0FBNkIsc0JBQXFCUyxFQUFHLEVBRGxDO0FBRWpDWSxNQUFBQSxPQUFPLEVBQUU7QUFGd0IsS0FBTixDQUE3Qjs7QUFJQSxRQUFJeEIsTUFBTSxLQUFLLEdBQWYsRUFBb0I7QUFDbEIsWUFBTSxJQUFJQyxLQUFKLENBQVcsNEJBQTJCRCxNQUFPLEVBQTdDLENBQU47QUFDRDs7QUFDRCxRQUFJLENBQUNYLElBQUksQ0FBQ29DLE9BQVYsRUFBbUI7QUFFakJoQyxzQkFBT1MsS0FBUCxDQUFjLDRCQUEyQmIsSUFBSSxDQUFDcUMsR0FBSSxFQUFsRDtBQUNEOztBQUNELFdBQU9yQyxJQUFJLENBQUNvQyxPQUFaO0FBQ0QsR0FiRCxDQWFFLE9BQU9qQyxHQUFQLEVBQVk7QUFDWkMsb0JBQU9TLEtBQVAsQ0FBYywrQkFBOEJWLEdBQUcsQ0FBQ0csT0FBUSxFQUF4RDtBQUNEO0FBQ0Y7O2VBR2NWLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgaHViVXJpID0gKGNvbmZpZykgPT4ge1xuICBjb25zdCBwcm90b2NvbCA9IGNvbmZpZy5odWJQcm90b2NvbCB8fCAnaHR0cCc7XG4gIHJldHVybiBgJHtwcm90b2NvbH06Ly8ke2NvbmZpZy5odWJIb3N0fToke2NvbmZpZy5odWJQb3J0fWA7XG59O1xuXG5hc3luYyBmdW5jdGlvbiByZWdpc3Rlck5vZGUgKGNvbmZpZ0ZpbGUsIGFkZHIsIHBvcnQpIHtcbiAgbGV0IGRhdGE7XG4gIHRyeSB7XG4gICAgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGNvbmZpZ0ZpbGUsICd1dGYtOCcpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZXJyb3IoYFVuYWJsZSB0byBsb2FkIG5vZGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIHJlZ2lzdGVyIHdpdGggZ3JpZDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBDaGVjayBwcmVzZW5jZSBvZiBkYXRhIGJlZm9yZSBwb3N0aW5nICBpdCB0byB0aGUgc2VsZW5pdW0gZ3JpZFxuICBpZiAoIWRhdGEpIHtcbiAgICBsb2dnZXIuZXJyb3IoJ05vIGRhdGEgZm91bmQgaW4gdGhlIG5vZGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIHNlbmQgdG8gdGhlIGdyaWQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcG9zdFJlcXVlc3QoZGF0YSwgYWRkciwgcG9ydCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyVG9HcmlkIChwb3N0T3B0aW9ucywgY29uZmlnSG9sZGVyKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0YXR1c30gPSBhd2FpdCBheGlvcyhwb3N0T3B0aW9ucyk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKGBBcHBpdW0gc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgdGhlIGdyaWQgb24gYCArXG4gICAgICBodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBBbiBhdHRlbXB0IHRvIHJlZ2lzdGVyIHdpdGggdGhlIGdyaWQgd2FzIHVuc3VjY2Vzc2Z1bDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3N0UmVxdWVzdCAoZGF0YSwgYWRkciwgcG9ydCkge1xuICAvLyBwYXJzZSBqc29uIHRvIGdldCBodWIgaG9zdCBhbmQgcG9ydFxuICBsZXQgY29uZmlnSG9sZGVyO1xuICB0cnkge1xuICAgIGNvbmZpZ0hvbGRlciA9IEpTT04ucGFyc2UoZGF0YSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvckFuZFRocm93KGBTeW50YXggZXJyb3IgaW4gbm9kZSBjb25maWd1cmF0aW9uIGZpbGU6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyBNb3ZlIFNlbGVuaXVtIDMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gIGlmICghXy5oYXMoY29uZmlnSG9sZGVyLCAnY29uZmlndXJhdGlvbicpKSB7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGNvbmZpZ0hvbGRlcikge1xuICAgICAgaWYgKF8uaGFzKGNvbmZpZ0hvbGRlciwgcHJvcGVydHkpICYmIHByb3BlcnR5ICE9PSAnY2FwYWJpbGl0aWVzJykge1xuICAgICAgICBjb25maWd1cmF0aW9uW3Byb3BlcnR5XSA9IGNvbmZpZ0hvbGRlcltwcm9wZXJ0eV07XG4gICAgICAgIGRlbGV0ZSBjb25maWdIb2xkZXJbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gIH1cblxuICAvLyBpZiB0aGUgbm9kZSBjb25maWcgZG9lcyBub3QgaGF2ZSB0aGUgYXBwaXVtL3dlYmRyaXZlciB1cmwsIGhvc3QsIGFuZCBwb3J0LFxuICAvLyBhdXRvbWF0aWNhbGx5IGFkZCBpdCBiYXNlZCBvbiBob3cgYXBwaXVtIHdhcyBpbml0aWFsaXplZFxuICAvLyBvdGhlcndpc2UsIHdlIHdpbGwgdGFrZSB3aGF0ZXZlciB0aGUgdXNlciBzZXR1cFxuICAvLyBiZWNhdXNlIHdlIHdpbGwgYWx3YXlzIHNldCBsb2NhbGhvc3QvMTI3LjAuMC4xLiB0aGlzIHdvbid0IHdvcmsgaWYgeW91clxuICAvLyBub2RlIGFuZCBncmlkIGFyZW4ndCBpbiB0aGUgc2FtZSBwbGFjZVxuICBpZiAoIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnVybCB8fCAhY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdCB8fCAhY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydCkge1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnVybCA9IGBodHRwOi8vJHthZGRyfToke3BvcnR9L3dkL2h1YmA7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdCA9IGFkZHI7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydCA9IHBvcnQ7XG4gIH1cbiAgLy8gaWYgdGhlIG5vZGUgY29uZmlnIGRvZXMgbm90IGhhdmUgaWQgYXV0b21hdGljYWxseSBhZGQgaXRcbiAgaWYgKCFjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5pZCkge1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkID0gYGh0dHA6Ly8ke2NvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmhvc3R9OiR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydH1gO1xuICB9XG5cbiAgLy8gdGhlIHBvc3Qgb3B0aW9uc1xuICBjb25zdCByZWdSZXF1ZXN0ID0ge1xuICAgIHVybDogYCR7aHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKX0vZ3JpZC9yZWdpc3RlcmAsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgZGF0YTogY29uZmlnSG9sZGVyLFxuICB9O1xuXG4gIGlmIChjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3RlciAhPT0gdHJ1ZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgTm8gcmVnaXN0cmF0aW9uIHNlbnQgKCR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXJ9ID0gZmFsc2UpYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVnaXN0ZXJDeWNsZUludGVydmFsID0gY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXJDeWNsZTtcbiAgaWYgKGlzTmFOKHJlZ2lzdGVyQ3ljbGVJbnRlcnZhbCkgfHwgcmVnaXN0ZXJDeWNsZUludGVydmFsIDw9IDApIHtcbiAgICBsb2dnZXIud2FybihgJ3JlZ2lzdGVyQ3ljbGUnIGlzIG5vdCBhIHZhbGlkIHBvc2l0aXZlIG51bWJlci4gYCArXG4gICAgICBgTm8gcmVnaXN0cmF0aW9uIHJlcXVlc3Qgd2lsbCBiZSBzZW50IHRvIHRoZSBncmlkLmApO1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBpbml0aWF0ZSBhIG5ldyBUaHJlYWRcbiAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydGluZyBhdXRvIHJlZ2lzdGVyIHRocmVhZCBmb3IgdGhlIGdyaWQuIGAgK1xuICAgIGBXaWxsIHRyeSB0byByZWdpc3RlciBldmVyeSAke3JlZ2lzdGVyQ3ljbGVJbnRlcnZhbH0gbXMuYCk7XG4gIHNldEludGVydmFsKGFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyUmV0cnkgKCkge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgIGF3YWl0IHJlZ2lzdGVyVG9HcmlkKHJlZ1JlcXVlc3QsIGNvbmZpZ0hvbGRlcik7XG4gICAgfSBlbHNlIGlmICghYXdhaXQgaXNBbHJlYWR5UmVnaXN0ZXJlZChjb25maWdIb2xkZXIpKSB7XG4gICAgICAvLyBtYWtlIHRoZSBodHRwIFBPU1QgdG8gdGhlIGdyaWQgZm9yIHJlZ2lzdHJhdGlvblxuICAgICAgYXdhaXQgcmVnaXN0ZXJUb0dyaWQocmVnUmVxdWVzdCwgY29uZmlnSG9sZGVyKTtcbiAgICB9XG4gIH0sIHJlZ2lzdGVyQ3ljbGVJbnRlcnZhbCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlzQWxyZWFkeVJlZ2lzdGVyZWQgKGNvbmZpZ0hvbGRlcikge1xuICAvL2NoZWNrIGlmIG5vZGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkXG4gIGNvbnN0IGlkID0gY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaWQ7XG4gIHRyeSB7XG4gICAgY29uc3Qge2RhdGEsIHN0YXR1c30gPSBhd2FpdCBheGlvcyh7XG4gICAgICB1cmw6IGAke2h1YlVyaShjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbil9L2dyaWQvYXBpL3Byb3h5P2lkPSR7aWR9YCxcbiAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgIH0pO1xuICAgIGlmIChzdGF0dXMgIT09IDIwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIGNvZGUgJHtzdGF0dXN9YCk7XG4gICAgfVxuICAgIGlmICghZGF0YS5zdWNjZXNzKSB7XG4gICAgICAvLyBpZiByZWdpc3RlciBmYWlsLCBwcmludCB0aGUgZGVidWcgbXNnXG4gICAgICBsb2dnZXIuZGVidWcoYEdyaWQgcmVnaXN0cmF0aW9uIGVycm9yOiAke2RhdGEubXNnfWApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YS5zdWNjZXNzO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZGVidWcoYEh1YiBkb3duIG9yIG5vdCByZXNwb25kaW5nOiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgcmVnaXN0ZXJOb2RlO1xuIl0sImZpbGUiOiJsaWIvZ3JpZC1yZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
|
155
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ncmlkLXJlZ2lzdGVyLmpzIl0sIm5hbWVzIjpbImh1YlVyaSIsImNvbmZpZyIsInByb3RvY29sIiwiaHViUHJvdG9jb2wiLCJodWJIb3N0IiwiaHViUG9ydCIsInJlZ2lzdGVyTm9kZSIsImRhdGEiLCJhZGRyIiwicG9ydCIsImJhc2VQYXRoIiwiY29uZmlnRmlsZVBhdGgiLCJfIiwiaXNTdHJpbmciLCJmcyIsInJlYWRGaWxlIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJtZXNzYWdlIiwiSlNPTiIsInBhcnNlIiwiZXJyb3JBbmRUaHJvdyIsInBvc3RSZXF1ZXN0IiwicmVnaXN0ZXJUb0dyaWQiLCJwb3N0T3B0aW9ucyIsImNvbmZpZ0hvbGRlciIsInN0YXR1cyIsIkVycm9yIiwiZGVidWciLCJjb25maWd1cmF0aW9uIiwiaGFzIiwicHJvcGVydHkiLCJ1cmwiLCJob3N0IiwiaWQiLCJyZWdSZXF1ZXN0IiwibWV0aG9kIiwicmVnaXN0ZXIiLCJyZWdpc3RlckN5Y2xlSW50ZXJ2YWwiLCJyZWdpc3RlckN5Y2xlIiwiaXNOYU4iLCJ3YXJuIiwiZmlyc3QiLCJzZXRJbnRlcnZhbCIsInJlZ2lzdGVyUmV0cnkiLCJpc0FscmVhZHlSZWdpc3RlcmVkIiwidGltZW91dCIsInN1Y2Nlc3MiLCJtc2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsTUFBTSxHQUFJQyxNQUFELElBQVk7QUFDekIsUUFBTUMsUUFBUSxHQUFHRCxNQUFNLENBQUNFLFdBQVAsSUFBc0IsTUFBdkM7QUFDQSxTQUFRLEdBQUVELFFBQVMsTUFBS0QsTUFBTSxDQUFDRyxPQUFRLElBQUdILE1BQU0sQ0FBQ0ksT0FBUSxFQUF6RDtBQUNELENBSEQ7O0FBWUEsZUFBZUMsWUFBZixDQUE2QkMsSUFBN0IsRUFBbUNDLElBQW5DLEVBQXlDQyxJQUF6QyxFQUErQ0MsUUFBL0MsRUFBeUQ7QUFDdkQsTUFBSUMsY0FBSjs7QUFDQSxN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LFlBQXBDLEVBQWtEO0FBRWhELFFBQU1TLEVBQUUsR0FBR1QsWUFBWSxDQUFDSSxhQUFiLENBQTJCSyxFQUF0Qzs7QUFDQSxNQUFJO0FBQ0YsVUFBTTtBQUFDNUIsTUFBQUEsSUFBRDtBQUFPb0IsTUFBQUE7QUFBUCxRQUFpQixNQUFNLG9CQUFNO0FBQ2pDTSxNQUFBQSxHQUFHLEVBQUcsR0FBRWpDLE1BQU0sQ0FBQzBCLFlBQVksQ0FBQ0ksYUFBZCxDQUE2QixzQkFBcUJLLEVBQUcsRUFEbEM7QUFFakNZLE1BQUFBLE9BQU8sRUFBRTtBQUZ3QixLQUFOLENBQTdCOztBQUlBLFFBQUlwQixNQUFNLEtBQUssR0FBZixFQUFvQjtBQUNsQixZQUFNLElBQUlDLEtBQUosQ0FBVyw0QkFBMkJELE1BQU8sRUFBN0MsQ0FBTjtBQUNEOztBQUNELFFBQUksQ0FBQ3BCLElBQUksQ0FBQ3lDLE9BQVYsRUFBbUI7QUFFakIvQixzQkFBT1ksS0FBUCxDQUFjLDRCQUEyQnRCLElBQUksQ0FBQzBDLEdBQUksRUFBbEQ7QUFDRDs7QUFDRCxXQUFPMUMsSUFBSSxDQUFDeUMsT0FBWjtBQUNELEdBYkQsQ0FhRSxPQUFPaEMsR0FBUCxFQUFZO0FBQ1pDLG9CQUFPWSxLQUFQLENBQWMsK0JBQThCYixHQUFHLENBQUNHLE9BQVEsRUFBeEQ7QUFDRDtBQUNGOztlQUdjYixZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBodWJVcmkgPSAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IHByb3RvY29sID0gY29uZmlnLmh1YlByb3RvY29sIHx8ICdodHRwJztcbiAgcmV0dXJuIGAke3Byb3RvY29sfTovLyR7Y29uZmlnLmh1Ykhvc3R9OiR7Y29uZmlnLmh1YlBvcnR9YDtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgbmV3IG5vZGUgd2l0aCBhIHNlbGVuaXVtIGdyaWRcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gZGF0YSAtIFBhdGggb3Igb2JqZWN0IHJlcHJlc2VudGluZyBzZWxlbml1bSBncmlkIG5vZGUgY29uZmlnIGZpbGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyIC0gQmluZCB0byB0aGlzIGFkZHJlc3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IC0gQmluZCB0byB0aGlzIHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlUGF0aCAtIEJhc2UgcGF0aCBmb3IgdGhlIGdyaWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVnaXN0ZXJOb2RlIChkYXRhLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCkge1xuICBsZXQgY29uZmlnRmlsZVBhdGg7XG4gIGlmIChfLmlzU3RyaW5nKGRhdGEpKSB7XG4gICAgY29uZmlnRmlsZVBhdGggPSBkYXRhO1xuICAgIHRyeSB7XG4gICAgICBkYXRhID0gYXdhaXQgZnMucmVhZEZpbGUoZGF0YSwgJ3V0Zi04Jyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoYFVuYWJsZSB0byBsb2FkIG5vZGUgY29uZmlndXJhdGlvbiBmaWxlICR7Y29uZmlnRmlsZVBhdGh9IHRvIHJlZ2lzdGVyIHdpdGggZ3JpZDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yQW5kVGhyb3coYFN5bnRheCBlcnJvciBpbiBub2RlIGNvbmZpZ3VyYXRpb24gZmlsZSAke2NvbmZpZ0ZpbGVQYXRofTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwb3N0UmVxdWVzdChkYXRhLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyVG9HcmlkIChwb3N0T3B0aW9ucywgY29uZmlnSG9sZGVyKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0YXR1c30gPSBhd2FpdCBheGlvcyhwb3N0T3B0aW9ucyk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKGBBcHBpdW0gc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgdGhlIGdyaWQgb24gYCArXG4gICAgICBodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBBbiBhdHRlbXB0IHRvIHJlZ2lzdGVyIHdpdGggdGhlIGdyaWQgd2FzIHVuc3VjY2Vzc2Z1bDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3N0UmVxdWVzdCAoY29uZmlnSG9sZGVyLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCkge1xuICAvLyBNb3ZlIFNlbGVuaXVtIDMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gIGlmICghXy5oYXMoY29uZmlnSG9sZGVyLCAnY29uZmlndXJhdGlvbicpKSB7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGNvbmZpZ0hvbGRlcikge1xuICAgICAgaWYgKF8uaGFzKGNvbmZpZ0hvbGRlciwgcHJvcGVydHkpICYmIHByb3BlcnR5ICE9PSAnY2FwYWJpbGl0aWVzJykge1xuICAgICAgICBjb25maWd1cmF0aW9uW3Byb3BlcnR5XSA9IGNvbmZpZ0hvbGRlcltwcm9wZXJ0eV07XG4gICAgICAgIGRlbGV0ZSBjb25maWdIb2xkZXJbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gIH1cblxuICAvLyBpZiB0aGUgbm9kZSBjb25maWcgZG9lcyBub3QgaGF2ZSB0aGUgYXBwaXVtL3dlYmRyaXZlciB1cmwsIGhvc3QsIGFuZCBwb3J0LFxuICAvLyBhdXRvbWF0aWNhbGx5IGFkZCBpdCBiYXNlZCBvbiBob3cgYXBwaXVtIHdhcyBpbml0aWFsaXplZFxuICAvLyBvdGhlcndpc2UsIHdlIHdpbGwgdGFrZSB3aGF0ZXZlciB0aGUgdXNlciBzZXR1cFxuICAvLyBiZWNhdXNlIHdlIHdpbGwgYWx3YXlzIHNldCBsb2NhbGhvc3QvMTI3LjAuMC4xLiB0aGlzIHdvbid0IHdvcmsgaWYgeW91clxuICAvLyBub2RlIGFuZCBncmlkIGFyZW4ndCBpbiB0aGUgc2FtZSBwbGFjZVxuICBpZiAoIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnVybCB8fCAhY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdCB8fCAhY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydCkge1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnVybCA9IGBodHRwOi8vJHthZGRyfToke3BvcnR9JHtiYXNlUGF0aH1gO1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmhvc3QgPSBhZGRyO1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnBvcnQgPSBwb3J0O1xuICB9XG4gIC8vIGlmIHRoZSBub2RlIGNvbmZpZyBkb2VzIG5vdCBoYXZlIGlkIGF1dG9tYXRpY2FsbHkgYWRkIGl0XG4gIGlmICghY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaWQpIHtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5pZCA9IGBodHRwOi8vJHtjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5ob3N0fToke2NvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnBvcnR9YDtcbiAgfVxuXG4gIC8vIHRoZSBwb3N0IG9wdGlvbnNcbiAgY29uc3QgcmVnUmVxdWVzdCA9IHtcbiAgICB1cmw6IGAke2h1YlVyaShjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbil9L2dyaWQvcmVnaXN0ZXJgLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGRhdGE6IGNvbmZpZ0hvbGRlcixcbiAgfTtcblxuICBpZiAoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXIgIT09IHRydWUpIHtcbiAgICBsb2dnZXIuZGVidWcoYE5vIHJlZ2lzdHJhdGlvbiBzZW50ICgke2NvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnJlZ2lzdGVyfSA9IGZhbHNlKWApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlZ2lzdGVyQ3ljbGVJbnRlcnZhbCA9IGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnJlZ2lzdGVyQ3ljbGU7XG4gIGlmIChpc05hTihyZWdpc3RlckN5Y2xlSW50ZXJ2YWwpIHx8IHJlZ2lzdGVyQ3ljbGVJbnRlcnZhbCA8PSAwKSB7XG4gICAgbG9nZ2VyLndhcm4oYCdyZWdpc3RlckN5Y2xlJyBpcyBub3QgYSB2YWxpZCBwb3NpdGl2ZSBudW1iZXIuIGAgK1xuICAgICAgYE5vIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IHdpbGwgYmUgc2VudCB0byB0aGUgZ3JpZC5gKTtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gaW5pdGlhdGUgYSBuZXcgVGhyZWFkXG4gIGxldCBmaXJzdCA9IHRydWU7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnRpbmcgYXV0byByZWdpc3RlciB0aHJlYWQgZm9yIHRoZSBncmlkLiBgICtcbiAgICBgV2lsbCB0cnkgdG8gcmVnaXN0ZXIgZXZlcnkgJHtyZWdpc3RlckN5Y2xlSW50ZXJ2YWx9IG1zLmApO1xuICBzZXRJbnRlcnZhbChhc3luYyBmdW5jdGlvbiByZWdpc3RlclJldHJ5ICgpIHtcbiAgICBpZiAoZmlyc3QpIHtcbiAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICBhd2FpdCByZWdpc3RlclRvR3JpZChyZWdSZXF1ZXN0LCBjb25maWdIb2xkZXIpO1xuICAgIH0gZWxzZSBpZiAoIWF3YWl0IGlzQWxyZWFkeVJlZ2lzdGVyZWQoY29uZmlnSG9sZGVyKSkge1xuICAgICAgLy8gbWFrZSB0aGUgaHR0cCBQT1NUIHRvIHRoZSBncmlkIGZvciByZWdpc3RyYXRpb25cbiAgICAgIGF3YWl0IHJlZ2lzdGVyVG9HcmlkKHJlZ1JlcXVlc3QsIGNvbmZpZ0hvbGRlcik7XG4gICAgfVxuICB9LCByZWdpc3RlckN5Y2xlSW50ZXJ2YWwpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc0FscmVhZHlSZWdpc3RlcmVkIChjb25maWdIb2xkZXIpIHtcbiAgLy9jaGVjayBpZiBub2RlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZFxuICBjb25zdCBpZCA9IGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkO1xuICB0cnkge1xuICAgIGNvbnN0IHtkYXRhLCBzdGF0dXN9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgdXJsOiBgJHtodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pfS9ncmlkL2FwaS9wcm94eT9pZD0ke2lkfWAsXG4gICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICB9KTtcbiAgICBpZiAoc3RhdHVzICE9PSAyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBjb2RlICR7c3RhdHVzfWApO1xuICAgIH1cbiAgICBpZiAoIWRhdGEuc3VjY2Vzcykge1xuICAgICAgLy8gaWYgcmVnaXN0ZXIgZmFpbCwgcHJpbnQgdGhlIGRlYnVnIG1zZ1xuICAgICAgbG9nZ2VyLmRlYnVnKGBHcmlkIHJlZ2lzdHJhdGlvbiBlcnJvcjogJHtkYXRhLm1zZ31gKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGEuc3VjY2VzcztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBIdWIgZG93biBvciBub3QgcmVzcG9uZGluZzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IHJlZ2lzdGVyTm9kZTtcbiJdLCJmaWxlIjoibGliL2dyaWQtcmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
package/build/lib/logger.js
CHANGED
|
@@ -7,12 +7,12 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _support = require("@appium/support");
|
|
11
11
|
|
|
12
|
-
let log =
|
|
12
|
+
let log = _support.logger.getLogger('Appium');
|
|
13
13
|
|
|
14
14
|
var _default = log;
|
|
15
15
|
exports.default = _default;require('source-map-support').install();
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxJQUFJQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVY7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmxldCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdBcHBpdW0nKTtcblxuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sImZpbGUiOiJsaWIvbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
package/build/lib/logsink.js
CHANGED
|
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.init = init;
|
|
9
8
|
exports.clear = clear;
|
|
10
9
|
exports.default = void 0;
|
|
10
|
+
exports.init = init;
|
|
11
11
|
|
|
12
12
|
require("source-map-support/register");
|
|
13
13
|
|
|
@@ -15,13 +15,11 @@ var _npmlog = _interopRequireDefault(require("npmlog"));
|
|
|
15
15
|
|
|
16
16
|
var _winston = require("winston");
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _dateformat = _interopRequireDefault(require("dateformat"));
|
|
18
|
+
var _support = require("@appium/support");
|
|
21
19
|
|
|
22
20
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
_support.logger.patchLogger(_npmlog.default);
|
|
25
23
|
|
|
26
24
|
global._global_npmlog = _npmlog.default;
|
|
27
25
|
_npmlog.default.level = 'silent';
|
|
@@ -47,17 +45,17 @@ const npmToWinstonLevels = {
|
|
|
47
45
|
error: 'error'
|
|
48
46
|
};
|
|
49
47
|
let log = null;
|
|
50
|
-
let
|
|
48
|
+
let useLocalTimeZone = false;
|
|
51
49
|
|
|
52
50
|
const timestampFormat = _winston.format.timestamp({
|
|
53
51
|
format() {
|
|
54
52
|
let date = new Date();
|
|
55
53
|
|
|
56
|
-
if (
|
|
57
|
-
date = new Date(date.valueOf()
|
|
54
|
+
if (useLocalTimeZone) {
|
|
55
|
+
date = new Date(date.valueOf() - date.getTimezoneOffset() * 60000);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
return (
|
|
58
|
+
return date.toISOString().replace(/[TZ]/g, ' ').replace(/\./g, ':').trim();
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
});
|
|
@@ -150,8 +148,8 @@ async function createTransports(args) {
|
|
|
150
148
|
|
|
151
149
|
if (args.logFile) {
|
|
152
150
|
try {
|
|
153
|
-
if (await
|
|
154
|
-
await
|
|
151
|
+
if (await _support.fs.exists(args.logFile)) {
|
|
152
|
+
await _support.fs.unlink(args.logFile);
|
|
155
153
|
}
|
|
156
154
|
|
|
157
155
|
transports.push(createFileTransport(args, fileLogLevel));
|
|
@@ -172,7 +170,7 @@ async function createTransports(args) {
|
|
|
172
170
|
}
|
|
173
171
|
|
|
174
172
|
async function init(args) {
|
|
175
|
-
|
|
173
|
+
useLocalTimeZone = args.localTimezone;
|
|
176
174
|
clear();
|
|
177
175
|
log = (0, _winston.createLogger)({
|
|
178
176
|
transports: await createTransports(args),
|
|
@@ -210,4 +208,4 @@ var _default = init;
|
|
|
210
208
|
exports.default = _default;require('source-map-support').install();
|
|
211
209
|
|
|
212
210
|
|
|
213
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dzaW5rLmpzIl0sIm5hbWVzIjpbImxvZ2dlciIsInBhdGNoTG9nZ2VyIiwibnBtbG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJsZXZlbCIsImxldmVscyIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsImNvbG9ycyIsIm5wbVRvV2luc3RvbkxldmVscyIsInNpbGx5IiwidmVyYm9zZSIsImh0dHAiLCJsb2ciLCJ0aW1lWm9uZSIsInRpbWVzdGFtcEZvcm1hdCIsImZvcm1hdCIsInRpbWVzdGFtcCIsImRhdGUiLCJEYXRlIiwidmFsdWVPZiIsImdldFRpbWV6b25lT2Zmc2V0IiwiY29sb3JpemVGb3JtYXQiLCJjb2xvcml6ZSIsInN0cmlwQ29sb3JGb3JtYXQiLCJzdHJpcENvbG9yIiwiY29kZSIsIm1lc3NhZ2UiLCJyZXBsYWNlIiwiY3JlYXRlQ29uc29sZVRyYW5zcG9ydCIsImFyZ3MiLCJsb2dMdmwiLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsIm5hbWUiLCJoYW5kbGVFeGNlcHRpb25zIiwiZXhpdE9uRXJyb3IiLCJqc29uIiwic3RkZXJyTGV2ZWxzIiwiY29tYmluZSIsImFkanVzdERlYnVnIiwibG9nTm9Db2xvcnMiLCJwcmludGYiLCJwcmludEluZm8iLCJsb2dUaW1lc3RhbXAiLCJjcmVhdGVGaWxlVHJhbnNwb3J0IiwiRmlsZSIsImZpbGVuYW1lIiwibG9nRmlsZSIsIm1heEZpbGVzIiwiY3JlYXRlSHR0cFRyYW5zcG9ydCIsImhvc3QiLCJwb3J0Iiwid2ViaG9vayIsIm1hdGNoIiwiaG9zdEFuZFBvcnQiLCJzcGxpdCIsInBhcnNlSW50IiwiSHR0cCIsInBhdGgiLCJjcmVhdGVUcmFuc3BvcnRzIiwiY29uc29sZUxvZ0xldmVsIiwiZmlsZUxvZ0xldmVsIiwibG9nbGV2ZWwiLCJsdmxQYWlyIiwicHVzaCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwiZSIsImNvbnNvbGUiLCJpbml0IiwibG9jYWxUaW1lem9uZSIsImNsZWFyIiwib24iLCJsb2dPYmoiLCJ3aW5zdG9uTGV2ZWwiLCJtc2ciLCJwcmVmaXgiLCJtYWdlbnRhIiwibG9nSGFuZGxlciIsIl8iLCJpc0Z1bmN0aW9uIiwidHJhbnNwb3J0Iiwia2V5cyIsInJlbW92ZSIsInJlbW92ZUFsbExpc3RlbmVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUlBQSxzQkFBT0MsV0FBUCxDQUFtQkMsZUFBbkI7O0FBQ0FDLE1BQU0sQ0FBQ0MsY0FBUCxHQUF3QkYsZUFBeEI7QUFHQUEsZ0JBQU9HLEtBQVAsR0FBZSxRQUFmO0FBQ0EsTUFBTUMsTUFBTSxHQUFHO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxDQURNO0FBRWJDLEVBQUFBLElBQUksRUFBRSxDQUZPO0FBR2JDLEVBQUFBLElBQUksRUFBRSxDQUhPO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWY7QUFPQSxNQUFNQyxNQUFNLEdBQUc7QUFDYkgsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkQsRUFBQUEsS0FBSyxFQUFFLE1BRk07QUFHYkUsRUFBQUEsSUFBSSxFQUFFLFFBSE87QUFJYkMsRUFBQUEsS0FBSyxFQUFFO0FBSk0sQ0FBZjtBQU9BLE1BQU1FLGtCQUFrQixHQUFHO0FBQ3pCQyxFQUFBQSxLQUFLLEVBQUUsT0FEa0I7QUFFekJDLEVBQUFBLE9BQU8sRUFBRSxPQUZnQjtBQUd6QlAsRUFBQUEsS0FBSyxFQUFFLE9BSGtCO0FBSXpCQyxFQUFBQSxJQUFJLEVBQUUsTUFKbUI7QUFLekJPLEVBQUFBLElBQUksRUFBRSxNQUxtQjtBQU16Qk4sRUFBQUEsSUFBSSxFQUFFLE1BTm1CO0FBT3pCQyxFQUFBQSxLQUFLLEVBQUU7QUFQa0IsQ0FBM0I7QUFVQSxJQUFJTSxHQUFHLEdBQUcsSUFBVjtBQUNBLElBQUlDLFFBQVEsR0FBRyxJQUFmOztBQUdBLE1BQU1DLGVBQWUsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUI7QUFDdkNELEVBQUFBLE1B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bEI7O0FBQ0EsUUFBSS9DLElBQUksQ0FBQ2tELFVBQUwsSUFBbUJDLGdCQUFFQyxVQUFGLENBQWFwRCxJQUFJLENBQUNrRCxVQUFsQixDQUF2QixFQUFzRDtBQUNwRGxELE1BQUFBLElBQUksQ0FBQ2tELFVBQUwsQ0FBZ0JMLE1BQU0sQ0FBQ3pFLEtBQXZCLEVBQThCMkUsR0FBOUI7QUFDRDtBQUVGLEdBWkQ7QUFhRDs7QUFFRCxTQUFTSixLQUFULEdBQWtCO0FBQ2hCLE1BQUk1RCxHQUFKLEVBQVM7QUFDUCxTQUFLLElBQUlzRSxTQUFULElBQXNCRixnQkFBRUcsSUFBRixDQUFPdkUsR0FBRyxDQUFDbUIsVUFBWCxDQUF0QixFQUE4QztBQUM1Q25CLE1BQUFBLEdBQUcsQ0FBQ3dFLE1BQUosQ0FBV0YsU0FBWDtBQUNEO0FBQ0Y7O0FBQ0RwRixrQkFBT3VGLGtCQUFQLENBQTBCLEtBQTFCO0FBQ0Q7O2VBSWNmLEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbnBtbG9nIGZyb20gJ25wbWxvZyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIGZvcm1hdCwgdHJhbnNwb3J0cyB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBkYXRlZm9ybWF0IGZyb20gJ2RhdGVmb3JtYXQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG4vLyBzZXQgdXAgZGlzdHJpYnV0ZWQgbG9nZ2luZyBiZWZvcmUgZXZlcnl0aGluZyBlbHNlXG5sb2dnZXIucGF0Y2hMb2dnZXIobnBtbG9nKTtcbmdsb2JhbC5fZ2xvYmFsX25wbWxvZyA9IG5wbWxvZztcblxuLy8gbnBtbG9nIGlzIHVzZWQgb25seSBmb3IgZW1pdHRpbmcsIHdlIHVzZSB3aW5zdG9uIGZvciBvdXRwdXRcbm5wbWxvZy5sZXZlbCA9ICdzaWxlbnQnO1xuY29uc3QgbGV2ZWxzID0ge1xuICBkZWJ1ZzogNCxcbiAgaW5mbzogMyxcbiAgd2FybjogMixcbiAgZXJyb3I6IDEsXG59O1xuXG5jb25zdCBjb2xvcnMgPSB7XG4gIGluZm86ICdjeWFuJyxcbiAgZGVidWc6ICdncmV5JyxcbiAgd2FybjogJ3llbGxvdycsXG4gIGVycm9yOiAncmVkJyxcbn07XG5cbmNvbnN0IG5wbVRvV2luc3RvbkxldmVscyA9IHtcbiAgc2lsbHk6ICdkZWJ1ZycsXG4gIHZlcmJvc2U6ICdkZWJ1ZycsXG4gIGRlYnVnOiAnZGVidWcnLFxuICBpbmZvOiAnaW5mbycsXG4gIGh0dHA6ICdpbmZvJyxcbiAgd2FybjogJ3dhcm4nLFxuICBlcnJvcjogJ2Vycm9yJyxcbn07XG5cbmxldCBsb2cgPSBudWxsO1xubGV0IHRpbWVab25lID0gbnVsbDtcblxuLy8gYWRkIHRoZSB0aW1lc3RhbXAgaW4gdGhlIGNvcnJlY3QgZm9ybWF0IHRvIHRoZSBsb2cgaW5mbyBvYmplY3RcbmNvbnN0IHRpbWVzdGFtcEZvcm1hdCA9IGZvcm1hdC50aW1lc3RhbXAoe1xuICBmb3JtYXQgKCkge1xuICAgIGxldCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBpZiAoIXRpbWVab25lKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkgKyBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlZm9ybWF0KGRhdGUsICd5eXl5LW1tLWRkIEhIOk1NOnNzOmwnKTtcbiAgfSxcbn0pO1xuXG4vLyBzZXQgdGhlIGN1c3RvbSBjb2xvcnNcbmNvbnN0IGNvbG9yaXplRm9ybWF0ID0gZm9ybWF0LmNvbG9yaXplKHtcbiAgY29sb3JzLFxufSk7XG5cbi8vIFN0cmlwIHRoZSBjb2xvciBtYXJraW5nIHdpdGhpbiBtZXNzYWdlc1xuY29uc3Qgc3RyaXBDb2xvckZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiBzdHJpcENvbG9yIChpbmZvKSB7XG4gIGNvbnN0IGNvZGUgPSAvXFx1MDAxYlxcWyhcXGQrKDtcXGQrKSopP20vZzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZS5yZXBsYWNlKGNvZGUsICcnKTtcbiAgcmV0dXJuIGluZm87XG59KSgpO1xuXG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5Db25zb2xlKSh7XG4gICAgbmFtZTogJ2NvbnNvbGUnLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgc3RkZXJyTGV2ZWxzOiBbJ2Vycm9yJ10sXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIGZvcm1hdChmdW5jdGlvbiBhZGp1c3REZWJ1ZyAoaW5mbykge1xuICAgICAgICAvLyBwcmVwZW5kIGRlYnVnIG1hcmtlciwgYW5kIHNoaWZ0IHRvIGBpbmZvYCBsb2cgbGV2ZWxcbiAgICAgICAgaWYgKGluZm8ubGV2ZWwgPT09ICdkZWJ1ZycpIHtcbiAgICAgICAgICBpbmZvLmxldmVsID0gJ2luZm8nO1xuICAgICAgICAgIGluZm8ubWVzc2FnZSA9IGBbZGVidWddICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9KSgpLFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgYXJncy5sb2dOb0NvbG9ycyA/IHN0cmlwQ29sb3JGb3JtYXQgOiBjb2xvcml6ZUZvcm1hdCxcbiAgICAgIGZvcm1hdC5wcmludGYoZnVuY3Rpb24gcHJpbnRJbmZvIChpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHthcmdzLmxvZ1RpbWVzdGFtcCA/IGAke2luZm8udGltZXN0YW1wfSAtIGAgOiAnJ30ke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVRyYW5zcG9ydCAoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgKHRyYW5zcG9ydHMuRmlsZSkoe1xuICAgIG5hbWU6ICdmaWxlJyxcbiAgICBmaWxlbmFtZTogYXJncy5sb2dGaWxlLFxuICAgIG1heEZpbGVzOiAxLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIHN0cmlwQ29sb3JGb3JtYXQsXG4gICAgICB0aW1lc3RhbXBGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyAoaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7aW5mby50aW1lc3RhbXB9ICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICB9KVxuICAgIClcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUh0dHBUcmFuc3BvcnQgKGFyZ3MsIGxvZ0x2bCkge1xuICBsZXQgaG9zdCA9ICcxMjcuMC4wLjEnO1xuICBsZXQgcG9ydCA9IDkwMDM7XG5cbiAgaWYgKGFyZ3Mud2ViaG9vay5tYXRjaCgnOicpKSB7XG4gICAgY29uc3QgaG9zdEFuZFBvcnQgPSBhcmdzLndlYmhvb2suc3BsaXQoJzonKTtcbiAgICBob3N0ID0gaG9zdEFuZFBvcnRbMF07XG4gICAgcG9ydCA9IHBhcnNlSW50KGhvc3RBbmRQb3J0WzFdLCAxMCk7XG4gIH1cblxuICByZXR1cm4gbmV3ICh0cmFuc3BvcnRzLkh0dHApKHtcbiAgICBuYW1lOiAnaHR0cCcsXG4gICAgaG9zdCxcbiAgICBwb3J0LFxuICAgIHBhdGg6ICcvJyxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8gKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVHJhbnNwb3J0cyAoYXJncykge1xuICBsZXQgdHJhbnNwb3J0cyA9IFtdO1xuICBsZXQgY29uc29sZUxvZ0xldmVsID0gbnVsbDtcbiAgbGV0IGZpbGVMb2dMZXZlbCA9IG51bGw7XG5cbiAgaWYgKGFyZ3MubG9nbGV2ZWwgJiYgYXJncy5sb2dsZXZlbC5tYXRjaCgnOicpKSB7XG4gICAgLy8gLS1sb2ctbGV2ZWwgYXJnIGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgZGlmZiBsb2dnaW5nIGxldmVscyBmb3IgY29uc29sZSBhbmQgZmlsZSwgc2VwYXJhdGVkIGJ5IGEgY29sb25cbiAgICBjb25zdCBsdmxQYWlyID0gYXJncy5sb2dsZXZlbC5zcGxpdCgnOicpO1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGx2bFBhaXJbMF0gfHwgY29uc29sZUxvZ0xldmVsO1xuICAgIGZpbGVMb2dMZXZlbCA9IGx2bFBhaXJbMV0gfHwgZmlsZUxvZ0xldmVsO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGZpbGVMb2dMZXZlbCA9IGFyZ3MubG9nbGV2ZWw7XG4gIH1cblxuICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlQ29uc29sZVRyYW5zcG9ydChhcmdzLCBjb25zb2xlTG9nTGV2ZWwpKTtcblxuICBpZiAoYXJncy5sb2dGaWxlKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGlmIHdlIGRvbid0IGRlbGV0ZSB0aGUgbG9nIGZpbGUsIHdpbnN0b24gd2lsbCBhbHdheXMgYXBwZW5kIGFuZCBpdCB3aWxsIGdyb3cgaW5maW5pdGVseSBsYXJnZTtcbiAgICAgIC8vIHdpbnN0b24gYWxsb3dzIGZvciBsaW1pdGluZyBsb2cgZmlsZSBzaXplLCBidXQgYXMgb2YgOS4yLjE0IHRoZXJlJ3MgYSBzZXJpb3VzIGJ1ZyB3aGVuIHVzaW5nXG4gICAgICAvLyBtYXhGaWxlcyBhbmQgbWF4U2l6ZSB0b2dldGhlci4gaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRpcm9uL3dpbnN0b24vaXNzdWVzLzM5N1xuICAgICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhhcmdzLmxvZ0ZpbGUpKSB7XG4gICAgICAgIGF3YWl0IGZzLnVubGluayhhcmdzLmxvZ0ZpbGUpO1xuICAgICAgfVxuXG4gICAgICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlRmlsZVRyYW5zcG9ydChhcmdzLCBmaWxlTG9nTGV2ZWwpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYFRyaWVkIHRvIGF0dGFjaCBsb2dnaW5nIHRvIGZpbGUgJyR7YXJncy5sb2dGaWxlfScgYnV0IGFuIGVycm9yIGAgK1xuICAgICAgICAgICAgICAgICAgYG9jY3VycmVkOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoYXJncy53ZWJob29rKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zcG9ydHMucHVzaChjcmVhdGVIdHRwVHJhbnNwb3J0KGFyZ3MsIGZpbGVMb2dMZXZlbCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhgVHJpZWQgdG8gYXR0YWNoIGxvZ2dpbmcgdG8gSHR0cCBhdCAke2FyZ3Mud2ViaG9va30gYnV0IGAgK1xuICAgICAgICAgICAgICAgICAgYGFuIGVycm9yIG9jY3VycmVkOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNwb3J0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdCAoYXJncykge1xuICAvLyBzZXQgZGUgZmFjdG8gcGFyYW0gcGFzc2VkIHRvIHRpbWVzdGFtcCBmdW5jdGlvblxuICB0aW1lWm9uZSA9IGFyZ3MubG9jYWxUaW1lem9uZTtcblxuICAvLyBjbGVhbiB1cCBpbiBjYXNlIHdlIGhhdmUgaW5pdGlhdGVkIGJlZm9yZSBzaW5jZSBucG1sb2cgaXMgYSBnbG9iYWwgb2JqZWN0XG4gIGNsZWFyKCk7XG5cbiAgbG9nID0gY3JlYXRlTG9nZ2VyKHtcbiAgICB0cmFuc3BvcnRzOiBhd2FpdCBjcmVhdGVUcmFuc3BvcnRzKGFyZ3MpLFxuICAgIGxldmVscyxcbiAgfSk7XG5cbiAgLy8gQ2FwdHVyZSBsb2dzIGVtaXR0ZWQgdmlhIG5wbWxvZyBhbmQgcGFzcyB0aGVtIHRocm91Z2ggd2luc3RvblxuICBucG1sb2cub24oJ2xvZycsIChsb2dPYmopID0+IHtcbiAgICBjb25zdCB3aW5zdG9uTGV2ZWwgPSBucG1Ub1dpbnN0b25MZXZlbHNbbG9nT2JqLmxldmVsXSB8fCAnaW5mbyc7XG4gICAgbGV0IG1zZyA9IGxvZ09iai5tZXNzYWdlO1xuICAgIGlmIChsb2dPYmoucHJlZml4KSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBgWyR7bG9nT2JqLnByZWZpeH1dYDtcbiAgICAgIG1zZyA9IGAke2FyZ3MubG9nTm9Db2xvcnMgPyBwcmVmaXggOiBwcmVmaXgubWFnZW50YX0gJHttc2d9YDtcbiAgICB9XG4gICAgbG9nW3dpbnN0b25MZXZlbF0obXNnKTtcbiAgICBpZiAoYXJncy5sb2dIYW5kbGVyICYmIF8uaXNGdW5jdGlvbihhcmdzLmxvZ0hhbmRsZXIpKSB7XG4gICAgICBhcmdzLmxvZ0hhbmRsZXIobG9nT2JqLmxldmVsLCBtc2cpO1xuICAgIH1cblxuICB9KTtcbn1cblxuZnVuY3Rpb24gY2xlYXIgKCkge1xuICBpZiAobG9nKSB7XG4gICAgZm9yIChsZXQgdHJhbnNwb3J0IG9mIF8ua2V5cyhsb2cudHJhbnNwb3J0cykpIHtcbiAgICAgIGxvZy5yZW1vdmUodHJhbnNwb3J0KTtcbiAgICB9XG4gIH1cbiAgbnBtbG9nLnJlbW92ZUFsbExpc3RlbmVycygnbG9nJyk7XG59XG5cblxuZXhwb3J0IHsgaW5pdCwgY2xlYXIgfTtcbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG4iXSwiZmlsZSI6ImxpYi9sb2dzaW5rLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dzaW5rLmpzIl0sIm5hbWVzIjpbImxvZ2dlciIsInBhdGNoTG9nZ2VyIiwibnBtbG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJsZXZlbCIsImxldmVscyIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsImNvbG9ycyIsIm5wbVRvV2luc3RvbkxldmVscyIsInNpbGx5IiwidmVyYm9zZSIsImh0dHAiLCJsb2ciLCJ1c2VMb2NhbFRpbWVab25lIiwidGltZXN0YW1wRm9ybWF0IiwiZm9ybWF0IiwidGltZXN0YW1wIiwiZGF0ZSIsIkRhdGUiLCJ2YWx1ZU9mIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJ0b0lTT1N0cmluZyIsInJlcGxhY2UiLCJ0cmltIiwiY29sb3JpemVGb3JtYXQiLCJjb2xvcml6ZSIsInN0cmlwQ29sb3JGb3JtYXQiLCJzdHJpcENvbG9yIiwiY29kZSIsIm1lc3NhZ2UiLCJjcmVhdGVDb25zb2xlVHJhbnNwb3J0IiwiYXJncyIsImxvZ0x2bCIsInRyYW5zcG9ydHMiLCJDb25zb2xlIiwibmFtZSIsImhhbmRsZUV4Y2VwdGlvbnMiLCJleGl0T25FcnJvciIsImpzb24iLCJzdGRlcnJMZXZlbHMiLCJjb21iaW5lIiwiYWRqdXN0RGVidWciLCJsb2dOb0NvbG9ycyIsInByaW50ZiIsInByaW50SW5mbyIsImxvZ1RpbWVzdGFtcCIsImNyZWF0ZUZpbGVUcmFuc3BvcnQiLCJGaWxlIiwiZmlsZW5hbWUiLCJsb2dGaWxlIiwibWF4RmlsZXMiLCJjcmVhdGVIdHRwVHJhbnNwb3J0IiwiaG9zdCIsInBvcnQiLCJ3ZWJob29rIiwibWF0Y2giLCJob3N0QW5kUG9ydCIsInNwbGl0IiwicGFyc2VJbnQiLCJIdHRwIiwicGF0aCIsImNyZWF0ZVRyYW5zcG9ydHMiLCJjb25zb2xlTG9nTGV2ZWwiLCJmaWxlTG9nTGV2ZWwiLCJsb2dsZXZlbCIsImx2bFBhaXIiLCJwdXNoIiwiZnMiLCJleGlzdHMiLCJ1bmxpbmsiLCJlIiwiY29uc29sZSIsImluaXQiLCJsb2NhbFRpbWV6b25lIiwiY2xlYXIiLCJvbiIsImxvZ09iaiIsIndpbnN0b25MZXZlbCIsIm1zZyIsInByZWZpeCIsIm1hZ2VudGEiLCJsb2dIYW5kbGVyIiwiXyIsImlzRnVuY3Rpb24iLCJ0cmFuc3BvcnQiLCJrZXlzIiwicmVtb3ZlIiwicmVtb3ZlQWxsTGlzdGVuZXJzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUFBLGdCQUFPQyxXQUFQLENBQW1CQyxlQUFuQjs7QUFDQUMsTUFBTSxDQUFDQyxjQUFQLEdBQXdCRixlQUF4QjtBQUdBQSxnQkFBT0csS0FBUCxHQUFlLFFBQWY7QUFDQSxNQUFNQyxNQUFNLEdBQUc7QUFDYkMsRUFBQUEsS0FBSyxFQUFFLENBRE07QUFFYkMsRUFBQUEsSUFBSSxFQUFFLENBRk87QUFHYkMsRUFBQUEsSUFBSSxFQUFFLENBSE87QUFJYkMsRUFBQUEsS0FBSyxFQUFFO0FBSk0sQ0FBZjtBQU9BLE1BQU1DLE1BQU0sR0FBRztBQUNiSCxFQUFBQSxJQUFJLEVBQUUsTUFETztBQUViRCxFQUFBQSxLQUFLLEVBQUUsTUFGTTtBQUdiRSxFQUFBQSxJQUFJLEVBQUUsUUFITztBQUliQyxFQUFBQSxLQUFLLEVBQUU7QUFKTSxDQUFmO0FBT0EsTUFBTUUsa0JBQWtCLEdBQUc7QUFDekJDLEVBQUFBLEtBQUssRUFBRSxPQURrQjtBQUV6QkMsRUFBQUEsT0FBTyxFQUFFLE9BRmdCO0FBR3pCUCxFQUFBQSxLQUFLLEVBQUUsT0FIa0I7QUFJekJDLEVBQUFBLElBQUksRUFBRSxNQUptQjtBQUt6Qk8sRUFBQUEsSUFBSSxFQUFFLE1BTG1CO0FBTXpCTixFQUFBQSxJQUFJLEVBQUUsTUFObUI7QUFPekJDLEVBQUFBLEtBQUssRUFBRTtBQVBrQixDQUEzQjtBQVVBLElBQUlNLEdBQUcsR0FBRyxJQUFWO0FBQ0EsSUFBSUMsZ0JBQWdCLEdBQUcsS0FBdkI7O0FBR0EsTUFBTUMsZUFBZSxHQUFHQyxnQkFBT0Ms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QixHQUE0QkEsTUFBTSxDQUFDQyxPQUFRLElBQUdGLEdBQUksRUFBM0Q7QUFDRDs7QUFDRGxFLElBQUFBLEdBQUcsQ0FBQ2lFLFlBQUQsQ0FBSCxDQUFrQkMsR0FBbEI7O0FBQ0EsUUFBSS9DLElBQUksQ0FBQ2tELFVBQUwsSUFBbUJDLGdCQUFFQyxVQUFGLENBQWFwRCxJQUFJLENBQUNrRCxVQUFsQixDQUF2QixFQUFzRDtBQUNwRGxELE1BQUFBLElBQUksQ0FBQ2tELFVBQUwsQ0FBZ0JMLE1BQU0sQ0FBQzNFLEtBQXZCLEVBQThCNkUsR0FBOUI7QUFDRDtBQUVGLEdBWkQ7QUFhRDs7QUFFRCxTQUFTSixLQUFULEdBQWtCO0FBQ2hCLE1BQUk5RCxHQUFKLEVBQVM7QUFDUCxTQUFLLElBQUl3RSxTQUFULElBQXNCRixnQkFBRUcsSUFBRixDQUFPekUsR0FBRyxDQUFDcUIsVUFBWCxDQUF0QixFQUE4QztBQUM1Q3JCLE1BQUFBLEdBQUcsQ0FBQzBFLE1BQUosQ0FBV0YsU0FBWDtBQUNEO0FBQ0Y7O0FBQ0R0RixrQkFBT3lGLGtCQUFQLENBQTBCLEtBQTFCO0FBQ0Q7O2VBSWNmLEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbnBtbG9nIGZyb20gJ25wbWxvZyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIGZvcm1hdCwgdHJhbnNwb3J0cyB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbi8vIHNldCB1cCBkaXN0cmlidXRlZCBsb2dnaW5nIGJlZm9yZSBldmVyeXRoaW5nIGVsc2VcbmxvZ2dlci5wYXRjaExvZ2dlcihucG1sb2cpO1xuZ2xvYmFsLl9nbG9iYWxfbnBtbG9nID0gbnBtbG9nO1xuXG4vLyBucG1sb2cgaXMgdXNlZCBvbmx5IGZvciBlbWl0dGluZywgd2UgdXNlIHdpbnN0b24gZm9yIG91dHB1dFxubnBtbG9nLmxldmVsID0gJ3NpbGVudCc7XG5jb25zdCBsZXZlbHMgPSB7XG4gIGRlYnVnOiA0LFxuICBpbmZvOiAzLFxuICB3YXJuOiAyLFxuICBlcnJvcjogMSxcbn07XG5cbmNvbnN0IGNvbG9ycyA9IHtcbiAgaW5mbzogJ2N5YW4nLFxuICBkZWJ1ZzogJ2dyZXknLFxuICB3YXJuOiAneWVsbG93JyxcbiAgZXJyb3I6ICdyZWQnLFxufTtcblxuY29uc3QgbnBtVG9XaW5zdG9uTGV2ZWxzID0ge1xuICBzaWxseTogJ2RlYnVnJyxcbiAgdmVyYm9zZTogJ2RlYnVnJyxcbiAgZGVidWc6ICdkZWJ1ZycsXG4gIGluZm86ICdpbmZvJyxcbiAgaHR0cDogJ2luZm8nLFxuICB3YXJuOiAnd2FybicsXG4gIGVycm9yOiAnZXJyb3InLFxufTtcblxubGV0IGxvZyA9IG51bGw7XG5sZXQgdXNlTG9jYWxUaW1lWm9uZSA9IGZhbHNlO1xuXG4vLyBhZGQgdGhlIHRpbWVzdGFtcCBpbiB0aGUgY29ycmVjdCBmb3JtYXQgdG8gdGhlIGxvZyBpbmZvIG9iamVjdFxuY29uc3QgdGltZXN0YW1wRm9ybWF0ID0gZm9ybWF0LnRpbWVzdGFtcCh7XG4gIGZvcm1hdCAoKSB7XG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGlmICh1c2VMb2NhbFRpbWVab25lKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XG4gICAgfVxuICAgIC8vICcyMDEyLTExLTA0VDE0OjUxOjA2LjE1N1onIC0+ICcyMDEyLTExLTA0IDE0OjUxOjA2OjE1NydcbiAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpXG4gICAgICAucmVwbGFjZSgvW1RaXS9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFwuL2csICc6JylcbiAgICAgIC50cmltKCk7XG4gIH0sXG59KTtcblxuLy8gc2V0IHRoZSBjdXN0b20gY29sb3JzXG5jb25zdCBjb2xvcml6ZUZvcm1hdCA9IGZvcm1hdC5jb2xvcml6ZSh7XG4gIGNvbG9ycyxcbn0pO1xuXG4vLyBTdHJpcCB0aGUgY29sb3IgbWFya2luZyB3aXRoaW4gbWVzc2FnZXNcbmNvbnN0IHN0cmlwQ29sb3JGb3JtYXQgPSBmb3JtYXQoZnVuY3Rpb24gc3RyaXBDb2xvciAoaW5mbykge1xuICBjb25zdCBjb2RlID0gL1xcdTAwMWJcXFsoXFxkKyg7XFxkKykqKT9tL2c7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICBpbmZvLm1lc3NhZ2UgPSBpbmZvLm1lc3NhZ2UucmVwbGFjZShjb2RlLCAnJyk7XG4gIHJldHVybiBpbmZvO1xufSkoKTtcblxuZnVuY3Rpb24gY3JlYXRlQ29uc29sZVRyYW5zcG9ydCAoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgKHRyYW5zcG9ydHMuQ29uc29sZSkoe1xuICAgIG5hbWU6ICdjb25zb2xlJyxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIHN0ZGVyckxldmVsczogWydlcnJvciddLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBmb3JtYXQoZnVuY3Rpb24gYWRqdXN0RGVidWcgKGluZm8pIHtcbiAgICAgICAgLy8gcHJlcGVuZCBkZWJ1ZyBtYXJrZXIsIGFuZCBzaGlmdCB0byBgaW5mb2AgbG9nIGxldmVsXG4gICAgICAgIGlmIChpbmZvLmxldmVsID09PSAnZGVidWcnKSB7XG4gICAgICAgICAgaW5mby5sZXZlbCA9ICdpbmZvJztcbiAgICAgICAgICBpbmZvLm1lc3NhZ2UgPSBgW2RlYnVnXSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmZvO1xuICAgICAgfSkoKSxcbiAgICAgIHRpbWVzdGFtcEZvcm1hdCxcbiAgICAgIGFyZ3MubG9nTm9Db2xvcnMgPyBzdHJpcENvbG9yRm9ybWF0IDogY29sb3JpemVGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyAoaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7YXJncy5sb2dUaW1lc3RhbXAgPyBgJHtpbmZvLnRpbWVzdGFtcH0gLSBgIDogJyd9JHtpbmZvLm1lc3NhZ2V9YDtcbiAgICAgIH0pXG4gICAgKSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpbGVUcmFuc3BvcnQgKGFyZ3MsIGxvZ0x2bCkge1xuICByZXR1cm4gbmV3ICh0cmFuc3BvcnRzLkZpbGUpKHtcbiAgICBuYW1lOiAnZmlsZScsXG4gICAgZmlsZW5hbWU6IGFyZ3MubG9nRmlsZSxcbiAgICBtYXhGaWxlczogMSxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8gKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIdHRwVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgbGV0IGhvc3QgPSAnMTI3LjAuMC4xJztcbiAgbGV0IHBvcnQgPSA5MDAzO1xuXG4gIGlmIChhcmdzLndlYmhvb2subWF0Y2goJzonKSkge1xuICAgIGNvbnN0IGhvc3RBbmRQb3J0ID0gYXJncy53ZWJob29rLnNwbGl0KCc6Jyk7XG4gICAgaG9zdCA9IGhvc3RBbmRQb3J0WzBdO1xuICAgIHBvcnQgPSBwYXJzZUludChob3N0QW5kUG9ydFsxXSwgMTApO1xuICB9XG5cbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5IdHRwKSh7XG4gICAgbmFtZTogJ2h0dHAnLFxuICAgIGhvc3QsXG4gICAgcG9ydCxcbiAgICBwYXRoOiAnLycsXG4gICAgaGFuZGxlRXhjZXB0aW9uczogdHJ1ZSxcbiAgICBleGl0T25FcnJvcjogZmFsc2UsXG4gICAganNvbjogZmFsc2UsXG4gICAgbGV2ZWw6IGxvZ0x2bCxcbiAgICBmb3JtYXQ6IGZvcm1hdC5jb21iaW5lKFxuICAgICAgc3RyaXBDb2xvckZvcm1hdCxcbiAgICAgIGZvcm1hdC5wcmludGYoZnVuY3Rpb24gcHJpbnRJbmZvIChpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHtpbmZvLnRpbWVzdGFtcH0gJHtpbmZvLm1lc3NhZ2V9YDtcbiAgICAgIH0pXG4gICAgKSxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRyYW5zcG9ydHMgKGFyZ3MpIHtcbiAgbGV0IHRyYW5zcG9ydHMgPSBbXTtcbiAgbGV0IGNvbnNvbGVMb2dMZXZlbCA9IG51bGw7XG4gIGxldCBmaWxlTG9nTGV2ZWwgPSBudWxsO1xuXG4gIGlmIChhcmdzLmxvZ2xldmVsICYmIGFyZ3MubG9nbGV2ZWwubWF0Y2goJzonKSkge1xuICAgIC8vIC0tbG9nLWxldmVsIGFyZyBjYW4gb3B0aW9uYWxseSBwcm92aWRlIGRpZmYgbG9nZ2luZyBsZXZlbHMgZm9yIGNvbnNvbGUgYW5kIGZpbGUsIHNlcGFyYXRlZCBieSBhIGNvbG9uXG4gICAgY29uc3QgbHZsUGFpciA9IGFyZ3MubG9nbGV2ZWwuc3BsaXQoJzonKTtcbiAgICBjb25zb2xlTG9nTGV2ZWwgPSBsdmxQYWlyWzBdIHx8IGNvbnNvbGVMb2dMZXZlbDtcbiAgICBmaWxlTG9nTGV2ZWwgPSBsdmxQYWlyWzFdIHx8IGZpbGVMb2dMZXZlbDtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlTG9nTGV2ZWwgPSBmaWxlTG9nTGV2ZWwgPSBhcmdzLmxvZ2xldmVsO1xuICB9XG5cbiAgdHJhbnNwb3J0cy5wdXNoKGNyZWF0ZUNvbnNvbGVUcmFuc3BvcnQoYXJncywgY29uc29sZUxvZ0xldmVsKSk7XG5cbiAgaWYgKGFyZ3MubG9nRmlsZSkge1xuICAgIHRyeSB7XG4gICAgICAvLyBpZiB3ZSBkb24ndCBkZWxldGUgdGhlIGxvZyBmaWxlLCB3aW5zdG9uIHdpbGwgYWx3YXlzIGFwcGVuZCBhbmQgaXQgd2lsbCBncm93IGluZmluaXRlbHkgbGFyZ2U7XG4gICAgICAvLyB3aW5zdG9uIGFsbG93cyBmb3IgbGltaXRpbmcgbG9nIGZpbGUgc2l6ZSwgYnV0IGFzIG9mIDkuMi4xNCB0aGVyZSdzIGEgc2VyaW91cyBidWcgd2hlbiB1c2luZ1xuICAgICAgLy8gbWF4RmlsZXMgYW5kIG1heFNpemUgdG9nZXRoZXIuIGh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0aXJvbi93aW5zdG9uL2lzc3Vlcy8zOTdcbiAgICAgIGlmIChhd2FpdCBmcy5leGlzdHMoYXJncy5sb2dGaWxlKSkge1xuICAgICAgICBhd2FpdCBmcy51bmxpbmsoYXJncy5sb2dGaWxlKTtcbiAgICAgIH1cblxuICAgICAgdHJhbnNwb3J0cy5wdXNoKGNyZWF0ZUZpbGVUcmFuc3BvcnQoYXJncywgZmlsZUxvZ0xldmVsKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGBUcmllZCB0byBhdHRhY2ggbG9nZ2luZyB0byBmaWxlICcke2FyZ3MubG9nRmlsZX0nIGJ1dCBhbiBlcnJvciBgICtcbiAgICAgICAgICAgICAgICAgIGBvY2N1cnJlZDogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGFyZ3Mud2ViaG9vaykge1xuICAgIHRyeSB7XG4gICAgICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlSHR0cFRyYW5zcG9ydChhcmdzLCBmaWxlTG9nTGV2ZWwpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYFRyaWVkIHRvIGF0dGFjaCBsb2dnaW5nIHRvIEh0dHAgYXQgJHthcmdzLndlYmhvb2t9IGJ1dCBgICtcbiAgICAgICAgICAgICAgICAgIGBhbiBlcnJvciBvY2N1cnJlZDogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zcG9ydHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXQgKGFyZ3MpIHtcbiAgLy8gc2V0IGRlIGZhY3RvIHBhcmFtIHBhc3NlZCB0byB0aW1lc3RhbXAgZnVuY3Rpb25cbiAgdXNlTG9jYWxUaW1lWm9uZSA9IGFyZ3MubG9jYWxUaW1lem9uZTtcblxuICAvLyBjbGVhbiB1cCBpbiBjYXNlIHdlIGhhdmUgaW5pdGlhdGVkIGJlZm9yZSBzaW5jZSBucG1sb2cgaXMgYSBnbG9iYWwgb2JqZWN0XG4gIGNsZWFyKCk7XG5cbiAgbG9nID0gY3JlYXRlTG9nZ2VyKHtcbiAgICB0cmFuc3BvcnRzOiBhd2FpdCBjcmVhdGVUcmFuc3BvcnRzKGFyZ3MpLFxuICAgIGxldmVscyxcbiAgfSk7XG5cbiAgLy8gQ2FwdHVyZSBsb2dzIGVtaXR0ZWQgdmlhIG5wbWxvZyBhbmQgcGFzcyB0aGVtIHRocm91Z2ggd2luc3RvblxuICBucG1sb2cub24oJ2xvZycsIChsb2dPYmopID0+IHtcbiAgICBjb25zdCB3aW5zdG9uTGV2ZWwgPSBucG1Ub1dpbnN0b25MZXZlbHNbbG9nT2JqLmxldmVsXSB8fCAnaW5mbyc7XG4gICAgbGV0IG1zZyA9IGxvZ09iai5tZXNzYWdlO1xuICAgIGlmIChsb2dPYmoucHJlZml4KSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBgWyR7bG9nT2JqLnByZWZpeH1dYDtcbiAgICAgIG1zZyA9IGAke2FyZ3MubG9nTm9Db2xvcnMgPyBwcmVmaXggOiBwcmVmaXgubWFnZW50YX0gJHttc2d9YDtcbiAgICB9XG4gICAgbG9nW3dpbnN0b25MZXZlbF0obXNnKTtcbiAgICBpZiAoYXJncy5sb2dIYW5kbGVyICYmIF8uaXNGdW5jdGlvbihhcmdzLmxvZ0hhbmRsZXIpKSB7XG4gICAgICBhcmdzLmxvZ0hhbmRsZXIobG9nT2JqLmxldmVsLCBtc2cpO1xuICAgIH1cblxuICB9KTtcbn1cblxuZnVuY3Rpb24gY2xlYXIgKCkge1xuICBpZiAobG9nKSB7XG4gICAgZm9yIChsZXQgdHJhbnNwb3J0IG9mIF8ua2V5cyhsb2cudHJhbnNwb3J0cykpIHtcbiAgICAgIGxvZy5yZW1vdmUodHJhbnNwb3J0KTtcbiAgICB9XG4gIH1cbiAgbnBtbG9nLnJlbW92ZUFsbExpc3RlbmVycygnbG9nJyk7XG59XG5cblxuZXhwb3J0IHsgaW5pdCwgY2xlYXIgfTtcbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG4iXSwiZmlsZSI6ImxpYi9sb2dzaW5rLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|