testcafe 2.6.2 → 3.4.0

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.
Files changed (112) hide show
  1. package/lib/api/exportable-lib/index.js +5 -1
  2. package/lib/api/request-hooks/request-logger.js +6 -3
  3. package/lib/api/structure/fixture.js +6 -1
  4. package/lib/api/structure/interfaces.js +1 -1
  5. package/lib/api/structure/test-file.js +2 -2
  6. package/lib/api/structure/testing-unit.js +2 -1
  7. package/lib/api/test-controller/assertion.js +1 -1
  8. package/lib/api/test-controller/index.js +9 -19
  9. package/lib/api/test-page-url.js +2 -2
  10. package/lib/assertions/executor.js +1 -1
  11. package/lib/browser/connection/gateway/index.js +1 -4
  12. package/lib/browser/connection/index.js +6 -1
  13. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +4 -1
  14. package/lib/cli/argument-parser/index.js +3 -8
  15. package/lib/cli/remotes-wizard.js +3 -1
  16. package/lib/client/automation/index.js +153 -192
  17. package/lib/client/automation/index.min.js +1 -1
  18. package/lib/client/automation/playback/press/shortcut-type.js +24 -0
  19. package/lib/client/browser/idle-page/index.html.mustache +1 -1
  20. package/lib/client/browser/idle-page/index.js +5 -1
  21. package/lib/client/core/index.js +101 -330
  22. package/lib/client/core/index.min.js +1 -1
  23. package/lib/client/core/utils/array.js +3 -18
  24. package/lib/client/core/utils/dom.js +12 -32
  25. package/lib/client/driver/index.js +65 -77
  26. package/lib/client/driver/index.min.js +1 -1
  27. package/lib/client/driver/status.js +1 -2
  28. package/lib/client/test-run/index.js.mustache +1 -6
  29. package/lib/client/ui/index.js +77 -50
  30. package/lib/client/ui/index.min.js +1 -1
  31. package/lib/client/ui/styles.css +81 -3
  32. package/lib/client-functions/client-function-builder.js +7 -28
  33. package/lib/client-functions/selectors/add-api.js +3 -61
  34. package/lib/client-functions/selectors/selector-builder.js +3 -6
  35. package/lib/client-functions/selectors/selector-text-filter.js +1 -3
  36. package/lib/compiler/test-file/formats/dev-tools/compiler.js +8 -2
  37. package/lib/compiler/test-file/formats/typescript/compiler.js +2 -1
  38. package/lib/configuration/configuration-base.js +10 -8
  39. package/lib/configuration/default-values.js +3 -3
  40. package/lib/configuration/option-names.js +2 -3
  41. package/lib/configuration/run-option-names.js +2 -2
  42. package/lib/configuration/testcafe-configuration.js +4 -12
  43. package/lib/configuration/types.js +1 -1
  44. package/lib/custom-client-scripts/client-script.js +4 -1
  45. package/lib/custom-client-scripts/routing.js +3 -4
  46. package/lib/errors/get-callsite.js +3 -3
  47. package/lib/errors/runtime/index.js +64 -5
  48. package/lib/errors/runtime/templates.js +24 -15
  49. package/lib/errors/test-run/render-error-template/utils.js +2 -2
  50. package/lib/errors/test-run/templates.js +2 -2
  51. package/lib/errors/test-run/utils.js +2 -2
  52. package/lib/errors/types.js +5 -2
  53. package/lib/index.js +6 -4
  54. package/lib/native-automation/client/deps/hammerhead.js +25 -0
  55. package/lib/native-automation/client/event-descriptor.js +14 -1
  56. package/lib/native-automation/client/input.js +17 -5
  57. package/lib/native-automation/client/key-press/utils.js +13 -2
  58. package/lib/native-automation/cookie-provider.js +15 -4
  59. package/lib/native-automation/index.js +3 -2
  60. package/lib/native-automation/request-hooks/event-factory/request-paused-event-based.js +9 -5
  61. package/lib/native-automation/request-hooks/event-provider.js +14 -4
  62. package/lib/native-automation/request-pipeline/index.js +77 -48
  63. package/lib/native-automation/request-pipeline/safe-api.js +15 -10
  64. package/lib/native-automation/request-pipeline/test-run-bridge.js +13 -1
  65. package/lib/native-automation/resource-injector.js +3 -1
  66. package/lib/native-automation/types.js +1 -1
  67. package/lib/native-automation/utils/headers.js +2 -10
  68. package/lib/notifications/warning-message.js +3 -4
  69. package/lib/reporter/index.js +30 -21
  70. package/lib/reporter/module-prefix.js +6 -0
  71. package/lib/reporter/plugin-host.js +3 -12
  72. package/lib/role/index.js +1 -4
  73. package/lib/role/role.js +9 -1
  74. package/lib/runner/bootstrapper.js +45 -16
  75. package/lib/runner/browser-job.js +33 -5
  76. package/lib/runner/fixture-hook-controller.js +4 -3
  77. package/lib/runner/index.js +4 -19
  78. package/lib/runner/task/index.js +2 -4
  79. package/lib/runner/test-run-controller.js +24 -9
  80. package/lib/screenshots/capturer.js +8 -19
  81. package/lib/screenshots/index.js +4 -23
  82. package/lib/test-run/bookmark.js +1 -1
  83. package/lib/test-run/commands/observation.js +2 -10
  84. package/lib/test-run/commands/service.js +2 -9
  85. package/lib/test-run/commands/type.js +1 -2
  86. package/lib/test-run/index.js +10 -20
  87. package/lib/test-run/request/create-request-options.js +1 -1
  88. package/lib/test-run/request/interfaces.js +1 -1
  89. package/lib/test-run/request/send.js +2 -2
  90. package/lib/testcafe.js +3 -2
  91. package/lib/utils/debug-loggers.js +9 -2
  92. package/lib/utils/escape-unsafe-chars.js +13 -0
  93. package/lib/utils/get-browser.js +3 -2
  94. package/lib/utils/get-options/index.js +2 -4
  95. package/lib/utils/get-renderes.js +2 -2
  96. package/lib/utils/get-test-and-fixture-info.js +20 -0
  97. package/lib/utils/get-testcafe-version.js +3 -3
  98. package/lib/utils/lowercase-object-keys.js +12 -0
  99. package/lib/utils/match-collection.js +3 -3
  100. package/lib/utils/prerender-callsite.js +1 -1
  101. package/lib/utils/render-callsite-sync.js +2 -2
  102. package/lib/utils/reporter.js +8 -4
  103. package/lib/video-recorder/recorder.js +2 -2
  104. package/package.json +25 -27
  105. package/ts-defs/index.d.ts +49 -12
  106. package/ts-defs/selectors.d.ts +42 -8
  107. package/ts-defs/testcafe-scripts.d.ts +52 -8
  108. package/CHANGELOG.md +0 -4879
  109. package/lib/client/driver/command-executors/client-functions/selector-executor/check-element-delay.js +0 -5
  110. package/lib/client-functions/selector-api-execution-mode.js +0 -22
  111. package/lib/custom-client-scripts/get-url.js +0 -8
  112. package/lib/utils/is-repl.js +0 -12
@@ -31,13 +31,13 @@ const async_event_emitter_1 = __importDefault(require("../utils/async-event-emit
31
31
  const testcafe_legacy_api_1 = require("testcafe-legacy-api");
32
32
  const test_run_1 = __importDefault(require("../test-run"));
33
33
  const session_controller_1 = __importDefault(require("../test-run/session-controller"));
34
+ const testcafe_hammerhead_1 = require("testcafe-hammerhead");
34
35
  const quarantine_1 = require("../utils/get-options/quarantine");
35
36
  const clientScriptsRouting = __importStar(require("../custom-client-scripts/routing"));
36
- const debug_1 = __importDefault(require("debug"));
37
37
  const types_1 = require("../errors/types");
38
38
  const runtime_1 = require("../errors/runtime");
39
+ const debug_loggers_1 = require("../utils/debug-loggers");
39
40
  const DISCONNECT_THRESHOLD = 3;
40
- const debugLogger = (0, debug_1.default)('testcafe:runner:test-run-controller');
41
41
  class TestRunController extends async_event_emitter_1.default {
42
42
  constructor({ test, index, proxy, screenshots, warningLog, fixtureHookController, opts, testRunHook, messageBus, }) {
43
43
  super();
@@ -46,6 +46,7 @@ class TestRunController extends async_event_emitter_1.default {
46
46
  this.test = test;
47
47
  this.index = index;
48
48
  this._opts = opts;
49
+ this.id = (0, testcafe_hammerhead_1.generateUniqueId)();
49
50
  this._proxy = proxy;
50
51
  this._screenshots = screenshots;
51
52
  this._warningLog = warningLog;
@@ -76,7 +77,12 @@ class TestRunController extends async_event_emitter_1.default {
76
77
  screenshotCapturer,
77
78
  startRunExecutionTime,
78
79
  });
79
- this.clientScriptRoutes = clientScriptsRouting.register(this._proxy, this.test, this.isNativeAutomation);
80
+ this.clientScriptRoutes = clientScriptsRouting.register({
81
+ proxy: this._proxy,
82
+ test: this.test,
83
+ nativeAutomation: this.isNativeAutomation,
84
+ folderName: this.testRun.id,
85
+ });
80
86
  await this.testRun.initialize();
81
87
  this._screenshots.addTestRun(this.test, this.testRun);
82
88
  if (this.testRun.addQuarantineInfo)
@@ -144,7 +150,7 @@ class TestRunController extends async_event_emitter_1.default {
144
150
  clientScriptsRouting.unRegister(this._proxy, this.clientScriptRoutes);
145
151
  this.done = true;
146
152
  await this.emit('test-run-done');
147
- debugLogger('done');
153
+ (0, debug_loggers_1.testRunControllerLogger)('done %s', this.id);
148
154
  }
149
155
  async _emitTestRunStart() {
150
156
  await this._messageBus.emit('test-run-start', this.testRun);
@@ -161,9 +167,9 @@ class TestRunController extends async_event_emitter_1.default {
161
167
  }
162
168
  _testRunDisconnected(connection) {
163
169
  this._disconnectionCount++;
164
- const disconnectionThresholdExceedeed = this._disconnectionCount >= DISCONNECT_THRESHOLD;
170
+ const disconnectionThresholdExceeded = this._disconnectionCount >= DISCONNECT_THRESHOLD;
165
171
  return connection
166
- .processDisconnection(disconnectionThresholdExceedeed)
172
+ .processDisconnection(disconnectionThresholdExceeded)
167
173
  .then(() => {
168
174
  return this._restartTest();
169
175
  });
@@ -184,7 +190,7 @@ class TestRunController extends async_event_emitter_1.default {
184
190
  return this._fixtureHookController.isTestBlocked(this.test);
185
191
  }
186
192
  async _handleNativeAutomationMode(connection) {
187
- this.isNativeAutomation = !!this._opts.nativeAutomation;
193
+ this.isNativeAutomation = !this._opts.disableNativeAutomation;
188
194
  const supportNativeAutomation = connection.supportNativeAutomation();
189
195
  if (!this.isNativeAutomation || supportNativeAutomation)
190
196
  return;
@@ -192,7 +198,16 @@ class TestRunController extends async_event_emitter_1.default {
192
198
  throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.setNativeAutomationForUnsupportedBrowsers, connection.browserInfo.providerName);
193
199
  }
194
200
  async start(connection, startRunExecutionTime) {
195
- debugLogger('start');
201
+ (0, debug_loggers_1.testRunControllerLogger)('start %s %O %O', this.id, {
202
+ test: {
203
+ name: this.test.name,
204
+ id: this.test.id,
205
+ },
206
+ connection: {
207
+ userAgent: connection.userAgent,
208
+ id: connection.id,
209
+ },
210
+ });
196
211
  await this._handleNativeAutomationMode(connection);
197
212
  const testRun = await this._createTestRun(connection, startRunExecutionTime);
198
213
  const hookOk = await this._testRunHook.runTestRunBeforeHookIfNecessary(testRun)
@@ -210,4 +225,4 @@ class TestRunController extends async_event_emitter_1.default {
210
225
  }
211
226
  exports.default = TestRunController;
212
227
  module.exports = exports.default;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4tY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW5uZXIvdGVzdC1ydW4tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUZBQTZEO0FBQzdELFlBQVk7QUFDWiw2REFBK0Q7QUFDL0QsMkRBQWtDO0FBQ2xDLHdGQUErRDtBQVMvRCxnRUFBNkQ7QUFHN0QsdUZBQXlFO0FBQ3pFLGtEQUEwQjtBQUMxQiwyQ0FBaUQ7QUFDakQsK0NBQWlEO0FBRWpELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLE1BQU0sV0FBVyxHQUFHLElBQUEsZUFBSyxFQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFakUsTUFBcUIsaUJBQWtCLFNBQVEsNkJBQWlCO0lBa0I1RCxZQUFvQixFQUNoQixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixJQUFJLEVBQ0osV0FBVyxFQUNYLFVBQVUsR0FDVTtRQUNwQixLQUFLLEVBQUUsQ0FBQztRQWRKLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFlL0IsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsSUFBSSxDQUFDLE1BQU0sR0FBbUIsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQWEsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQWMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFhLFdBQVcsQ0FBQztRQUUxQyxJQUFJ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QUFDLEtBQUssRUFBRSxDQUFDO1FBRWhCLE9BQU8sNEJBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNKO0FBNVBELG9DQTRQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBc3luY0V2ZW50RW1pdHRlciBmcm9tICcuLi91dGlscy9hc3luYy1ldmVudC1lbWl0dGVyJztcbi8vQHRzLWlnbm9yZVxuaW1wb3J0IHsgVGVzdFJ1biBhcyBMZWdhY3lUZXN0UnVuIH0gZnJvbSAndGVzdGNhZmUtbGVnYWN5LWFwaSc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi90ZXN0LXJ1bic7XG5pbXBvcnQgU2Vzc2lvbkNvbnRyb2xsZXIgZnJvbSAnLi4vdGVzdC1ydW4vc2Vzc2lvbi1jb250cm9sbGVyJztcbmltcG9ydCBCcm93c2VyQ29ubmVjdGlvbiBmcm9tICcuLi9icm93c2VyL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgUHJveHkgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCBUZXN0IGZyb20gJy4uL2FwaS9zdHJ1Y3R1cmUvdGVzdCc7XG5pbXBvcnQgU2NyZWVuc2hvdHMgZnJvbSAnLi4vc2NyZWVuc2hvdHMnO1xuaW1wb3J0IFdhcm5pbmdMb2cgZnJvbSAnLi4vbm90aWZpY2F0aW9ucy93YXJuaW5nLWxvZyc7XG5pbXBvcnQgRml4dHVyZUhvb2tDb250cm9sbGVyIGZyb20gJy4vZml4dHVyZS1ob29rLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3Rpb25FdmVudEFyZywgVGVzdFJ1bkNvbnRyb2xsZXJJbml0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFF1YXJhbnRpbmUgfSBmcm9tICcuLi91dGlscy9nZXQtb3B0aW9ucy9xdWFyYW50aW5lJztcbmltcG9ydCBNZXNzYWdlQnVzIGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtYnVzJztcbmltcG9ydCBUZXN0UnVuSG9va0NvbnRyb2xsZXIgZnJvbSAnLi90ZXN0LXJ1bi1ob29rLWNvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgY2xpZW50U2NyaXB0c1JvdXRpbmcgZnJvbSAnLi4vY3VzdG9tLWNsaWVudC1zY3JpcHRzL3JvdXRpbmcnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vZXJyb3JzL3R5cGVzJztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lJztcblxuY29uc3QgRElTQ09OTkVDVF9USFJFU0hPTEQgPSAzO1xuXG5jb25zdCBkZWJ1Z0xvZ2dlciA9IGRlYnVnKCd0ZXN0Y2FmZTpydW5uZXI6dGVzdC1ydW4tY29udHJvbGxlcicpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0UnVuQ29udHJvbGxlciBleHRlbmRzIEFzeW5jRXZlbnRFbWl0dGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9xdWFyYW50aW5lOiBudWxsIHwgUXVhcmFudGluZTtcbiAgICBwcml2YXRlIF9kaXNjb25uZWN0aW9uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm94eTogUHJveHk7XG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHRlc3Q6IFRlc3Q7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3B0czogRGljdGlvbmFyeTxPcHRpb25WYWx1ZT47XG4gICAgcHJpdmF0ZSBfc2NyZWVuc2hvdHM6IFNjcmVlbnNob3RzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3dhcm5pbmdMb2c6IFdhcm5pbmdMb2c7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZml4dHVyZUhvb2tDb250cm9sbGVyOiBGaXh0dXJlSG9va0NvbnRyb2xsZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGVzdFJ1bkN0b3I6IExlZ2FjeVRlc3RSdW5bJ2NvbnN0cnVjdG9yJ10gfCBUZXN0UnVuWydjb25zdHJ1Y3RvciddO1xuICAgIHB1YmxpYyB0ZXN0UnVuOiBudWxsIHwgTGVnYWN5VGVzdFJ1biB8IFRlc3RSdW47XG4gICAgcHVibGljIGRvbmU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZUJ1czogTWVzc2FnZUJ1cztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90ZXN0UnVuSG9vazogVGVzdFJ1bkhvb2tDb250cm9sbGVyO1xuICAgIHByaXZhdGUgY2xpZW50U2NyaXB0Um91dGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgaXNOYXRpdmVBdXRvbWF0aW9uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHtcbiAgICAgICAgdGVzdCxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHByb3h5LFxuICAgICAgICBzY3JlZW5zaG90cyxcbiAgICAgICAgd2FybmluZ0xvZyxcbiAgICAgICAgZml4dHVyZUhvb2tDb250cm9sbGVyLFxuICAgICAgICBvcHRzLFxuICAgICAgICB0ZXN0UnVuSG9vayxcbiAgICAgICAgbWVzc2FnZUJ1cyxcbiAgICB9OiBUZXN0UnVuQ29udHJvbGxlckluaXQpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnRlc3QgID0gdGVzdDtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLl9vcHRzID0gb3B0cztcblxuICAgICAgICB0aGlzLl9wcm94eSAgICAgICAgICAgICAgICAgPSBwcm94eTtcbiAgICAgICAgdGhpcy5fc2NyZWVuc2hvdHMgICAgICAgICAgID0gc2NyZWVuc2hvdHM7XG4gICAgICAgIHRoaXMuX3dhcm5pbmdMb2cgICAgICAgICAgICA9IHdhcm5pbmdMb2c7XG4gICAgICAgIHRoaXMuX2ZpeHR1cmVIb29rQ29udHJvbGxlciA9IGZpeHR1cmVIb29rQ29udHJvbGxlcjtcbiAgICAgICAgdGhpcy5fdGVzdFJ1bkhvb2sgICAgICAgICAgID0gdGVzdFJ1bkhvb2s7XG5cbiAgICAgICAgdGhpcy5fdGVzdFJ1bkN0b3IgPSBUZXN0UnVuQ29udHJvbGxlci5fZ2V0VGVzdFJ1bkN0b3IodGVzdCwgb3B0cyk7XG5cbiAgICAgICAgdGhpcy50ZXN0UnVuICAgICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5kb25lICAgICAgICAgICAgICAgID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3F1YXJhbnRpbmUgICAgICAgICA9IHRoaXMuX29wdHMucXVhcmFudGluZU1vZGUgPyBuZXcgUXVhcmFudGluZSgpIDogbnVsbDtcbiAgICAgICAgdGhpcy5fZGlzY29ubmVjdGlvbkNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5fbWVzc2FnZUJ1cyAgICAgICAgID0gbWVzc2FnZUJ1cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfZ2V0VGVzdFJ1bkN0b3IgKHRlc3Q6IFRlc3QsIG9wdHM6IERpY3Rpb25hcnk8T3B0aW9uVmFsdWU+KTogTGVnYWN5VGVzdFJ1biB8IFRlc3RSdW4ge1xuICAgICAgICBpZiAob3B0cy5UZXN0UnVuQ3RvcilcbiAgICAgICAgICAgIHJldHVybiBvcHRzLlRlc3RSdW5DdG9yO1xuXG4gICAgICAgIHJldHVybiAodGVzdCBhcyBMZWdhY3lUZXN0UnVuKS5pc0xlZ2FjeSA/IExlZ2FjeVRlc3RSdW4gOiBUZXN0UnVuO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NyZWF0ZVRlc3RSdW4gKGNvbm5lY3Rpb246IEJyb3dzZXJDb25uZWN0aW9uLCBzdGFydFJ1bkV4ZWN1dGlvblRpbWU/OiBEYXRlKTogUHJvbWlzZTxUZXN0UnVuIHwgTGVnYWN5VGVzdFJ1bj4ge1xuICAgICAgICBjb25zdCBzY3JlZW5zaG90Q2FwdHVyZXIgPSB0aGlzLl9zY3JlZW5zaG90cy5jcmVhdGVDYXB0dXJlckZvcih0aGlzLnRlc3QsIHRoaXMuaW5kZXgsIHRoaXMuX3F1YXJhbnRpbmUsIGNvbm5lY3Rpb24sIHRoaXMuX3dhcm5pbmdMb2cpO1xuICAgICAgICBjb25zdCBUZXN0UnVuQ3RvciAgICAgICAgPSB0aGlzLl90ZXN0UnVuQ3RvcjtcblxuICAgICAgICB0aGlzLnRlc3RSdW4gPSBuZXcgVGVzdFJ1bkN0b3Ioe1xuICAgICAgICAgICAgdGVzdDogICAgICAgICAgICAgIHRoaXMudGVzdCxcbiAgICAgICAgICAgIGJyb3dzZXJDb25uZWN0aW9uOiBjb25uZWN0aW9uLFxuICAgICAgICAgICAgZ2xvYmFsV2FybmluZ0xvZzogIHRoaXMuX3dhcm5pbmdMb2csXG4gICAgICAgICAgICBvcHRzOiAgICAgICAgICAgICAgdGhpcy5fb3B0cyxcbiAgICAgICAgICAgIG1lc3NhZ2VCdXM6ICAgICAgICB0aGlzLl9tZXNzYWdlQnVzLFxuICAgICAgICAgICAgbmF0aXZlQXV0b21hdGlvbjogIHRoaXMuaXNOYXRpdmVBdXRvbWF0aW9uLFxuICAgICAgICAgICAgc2NyZWVuc2hvdENhcHR1cmVyLFxuICAgICAgICAgICAgc3RhcnRSdW5FeGVjdXRpb25UaW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNsaWVudFNjcmlwdFJvdXRlcyA9IGNsaWVudFNjcmlwdHNSb3V0aW5nLnJlZ2lzdGVyKHRoaXMuX3Byb3h5LCB0aGlzLnRlc3QsIHRoaXMuaXNOYXRpdmVBdXRvbWF0aW9uKTtcblxuICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4uaW5pdGlhbGl6ZSgpO1xuXG4gICAgICAgIHRoaXMuX3NjcmVlbnNob3RzLmFkZFRlc3RSdW4odGhpcy50ZXN0LCB0aGlzLnRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLnRlc3RSdW4uYWRkUXVhcmFudGluZUluZm8pXG4gICAgICAgICAgICB0aGlzLnRlc3RSdW4uYWRkUXVhcmFudGluZUluZm8odGhpcy5fcXVhcmFudGluZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3F1YXJhbnRpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3VjY2Vzc1RocmVzaG9sZCwgYXR0ZW1wdExpbWl0IH0gPSB0aGlzLl9vcHRzLnF1YXJhbnRpbmVNb2RlIGFzIFF1YXJhbnRpbmVPcHRpb25WYWx1ZTtcblxuICAgICAgICAgICAgdGhpcy5fcXVhcmFudGluZS5zZXRDdXN0b21QYXJhbWV0ZXJzKGF0dGVtcHRMaW1pdCwgc3VjY2Vzc1RocmVzaG9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3F1YXJhbnRpbmUgfHwgdGhpcy5faXNGaXJzdFF1YXJhbnRpbmVBdHRlbXB0KCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdCgndGVzdC1ydW4tY3JlYXRlJywge1xuICAgICAgICAgICAgICAgIHRlc3RSdW46ICAgIHRoaXMudGVzdFJ1bixcbiAgICAgICAgICAgICAgICBsZWdhY3k6ICAgICBUZXN0UnVuQ3RvciA9PT0gTGVnYWN5VGVzdFJ1bixcbiAgICAgICAgICAgICAgICB0ZXN0OiAgICAgICB0aGlzLnRlc3QsXG4gICAgICAgICAgICAgICAgaW5kZXg6ICAgICAgdGhpcy5pbmRleCxcbiAgICAgICAgICAgICAgICBxdWFyYW50aW5lOiB0aGlzLl9xdWFyYW50aW5lLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50ZXN0UnVuO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2VuZFF1YXJhbnRpbmUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoKHRoaXMuX3F1YXJhbnRpbmUgYXMgUXVhcmFudGluZSkuYXR0ZW1wdHMubGVuZ3RoID4gMSlcbiAgICAgICAgICAgIHRoaXMudGVzdFJ1bi51bnN0YWJsZSA9ICh0aGlzLl9xdWFyYW50aW5lIGFzIFF1YXJhbnRpbmUpLmdldFBhc3NlZEF0dGVtcHRzKCkubGVuZ3RoID4gMDtcblxuICAgICAgICBhd2FpdCB0aGlzLl9lbWl0VGVzdFJ1bkRvbmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaG91bGRLZWVwSW5RdWFyYW50aW5lICgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZXJyb3JzICAgICAgICAgPSB0aGlzLnRlc3RSdW4uZXJycztcbiAgICAgICAgY29uc3QgaGFzRXJyb3JzICAgICAgPSAhIWVycm9ycy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGF0dGVtcHRzICAgICAgID0gKHRoaXMuX3F1YXJhbnRpbmUgYXMgUXVhcmFudGluZSkuYXR0ZW1wdHM7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBdHRlbXB0ID0gdGhpcy5faXNGaXJzdFF1YXJhbnRpbmVBdHRlbXB0KCk7XG5cbiAgICAgICAgYXR0ZW1wdHMucHVzaCh7IHRlc3RSdW5JZDogdGhpcy50ZXN0UnVuLmlkLCBlcnJvcnMgfSk7XG5cbiAgICAgICAgcmV0dXJuIGlzRmlyc3RBdHRlbXB0ID8gaGFzRXJyb3JzIDogISh0aGlzLl9xdWFyYW50aW5lIGFzIFF1YXJhbnRpbmUpLmlzVGhyZXNob2xkUmVhY2hlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzRmlyc3RRdWFyYW50aW5lQXR0ZW1wdCAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3F1YXJhbnRpbmUgJiYgIXRoaXMuX3F1YXJhbnRpbmUuYXR0ZW1wdHMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2tlZXBJblF1YXJhbnRpbmUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl9yZXN0YXJ0VGVzdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RhcnRUZXN0ICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbWl0KCd0ZXN0LXJ1bi1yZXN0YXJ0Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfdGVzdFJ1bkRvbmVJblF1YXJhbnRpbmVNb2RlICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEtlZXBJblF1YXJhbnRpbmUoKSlcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2tlZXBJblF1YXJhbnRpbmUoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZW5kUXVhcmFudGluZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Rlc3RSdW5Eb25lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX3F1YXJhbnRpbmUpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl90ZXN0UnVuRG9uZUluUXVhcmFudGluZU1vZGUoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZW1pdFRlc3RSdW5Eb25lKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZW1pdEFjdGlvblN0YXJ0IChhcmdzOiBBY3Rpb25FdmVudEFyZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl9tZXNzYWdlQnVzLmVtaXQoJ3Rlc3QtYWN0aW9uLXN0YXJ0JywgYXJncyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZW1pdEFjdGlvbkRvbmUgKGFyZ3M6IEFjdGlvbkV2ZW50QXJnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZW1pdCgndGVzdC1hY3Rpb24tZG9uZScsIGFyZ3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2VtaXRUZXN0UnVuRG9uZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIE5PVEU6IHdlIHNob3VsZCByZXBvcnQgdGVzdCBydW4gY29tcGxldGlvbiBpbiBvcmRlciB0aGV5IHdlcmUgY29tcGxldGVkIGluIGJyb3dzZXIuXG4gICAgICAgIC8vIFRvIGtlZXAgYSBzZXF1ZW5jZSBhZnRlciBmaXh0dXJlIGhvb2sgZXhlY3V0aW9uIHdlIHVzZSBjb21wbGV0aW9uIHF1ZXVlLlxuICAgICAgICBhd2FpdCB0aGlzLl9maXh0dXJlSG9va0NvbnRyb2xsZXIucnVuRml4dHVyZUFmdGVySG9va0lmTmVjZXNzYXJ5KHRoaXMudGVzdFJ1bik7XG4gICAgICAgIGF3YWl0IHRoaXMuX3Rlc3RSdW5Ib29rLnJ1blRlc3RSdW5BZnRlckhvb2tJZk5lY2Vzc2FyeSh0aGlzLnRlc3RSdW4pO1xuXG4gICAgICAgIGNsaWVudFNjcmlwdHNSb3V0aW5nLnVuUmVnaXN0ZXIodGhpcy5fcHJveHksIHRoaXMuY2xpZW50U2NyaXB0Um91dGVzKTtcblxuICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuZW1pdCgndGVzdC1ydW4tZG9uZScpO1xuXG4gICAgICAgIGRlYnVnTG9nZ2VyKCdkb25lJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZW1pdFRlc3RSdW5TdGFydCAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgndGVzdC1ydW4tc3RhcnQnLCB0aGlzLnRlc3RSdW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Rlc3RSdW5CZWZvcmVEb25lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgbGV0IHJhaXNlRXZlbnQgPSAhdGhpcy5fcXVhcmFudGluZTtcblxuICAgICAgICBpZiAoIXJhaXNlRXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzU3VjY2Vzc2Z1bFF1YXJhbnRpbmVGaXJzdEF0dGVtcHQgPSB0aGlzLl9pc0ZpcnN0UXVhcmFudGluZUF0dGVtcHQoKSAmJiAhdGhpcy50ZXN0UnVuLmVycnMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgaXNBdHRlbXB0c1RocmVzaG9sZFJlYWNoZWQgICAgICAgICA9ICh0aGlzLl9xdWFyYW50aW5lIGFzIFF1YXJhbnRpbmUpLmlzVGhyZXNob2xkUmVhY2hlZCh0aGlzLnRlc3RSdW4uZXJycyk7XG5cbiAgICAgICAgICAgIHJhaXNlRXZlbnQgPSBpc1N1Y2Nlc3NmdWxRdWFyYW50aW5lRmlyc3RBdHRlbXB0IHx8IGlzQXR0ZW1wdHNUaHJlc2hvbGRSZWFjaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJhaXNlRXZlbnQpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtcnVuLWJlZm9yZS1kb25lJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGVzdFJ1bkRpc2Nvbm5lY3RlZCAoY29ubmVjdGlvbjogQnJvd3NlckNvbm5lY3Rpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fZGlzY29ubmVjdGlvbkNvdW50Kys7XG5cbiAgICAgICAgY29uc3QgZGlzY29ubmVjdGlvblRocmVzaG9sZEV4Y2VlZGVlZCA9IHRoaXMuX2Rpc2Nvbm5lY3Rpb25Db3VudCA+PSBESVNDT05ORUNUX1RIUkVTSE9MRDtcblxuICAgICAgICByZXR1cm4gY29ubmVjdGlvblxuICAgICAgICAgICAgLnByb2Nlc3NEaXNjb25uZWN0aW9uKGRpc2Nvbm5lY3Rpb25UaHJlc2hvbGRFeGNlZWRlZWQpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3RhcnRUZXN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25UZXN0UnVuRXZlbnRzICh0ZXN0UnVuOiBUZXN0UnVuIHwgTGVnYWN5VGVzdFJ1biwgY29ubmVjdGlvbjogQnJvd3NlckNvbm5lY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGVzdFJ1bi5vbignYWN0aW9uLXN0YXJ0JywgYXN5bmMgKGFyZ3M6IEFjdGlvbkV2ZW50QXJnKSA9PiB0aGlzLl9lbWl0QWN0aW9uU3RhcnQoT2JqZWN0LmFzc2lnbihhcmdzLCB7IHRlc3RSdW4gfSkpKTtcbiAgICAgICAgdGVzdFJ1bi5vbignYWN0aW9uLWRvbmUnLCBhc3luYyAoYXJnczogQWN0aW9uRXZlbnRBcmcpID0+IHRoaXMuX2VtaXRBY3Rpb25Eb25lKE9iamVjdC5hc3NpZ24oYXJncywgeyB0ZXN0UnVuIH0pKSk7XG5cbiAgICAgICAgdGVzdFJ1bi5vbmNlKCdzdGFydCcsIGFzeW5jICgpID0+IHRoaXMuX2VtaXRUZXN0UnVuU3RhcnQoKSk7XG4gICAgICAgIHRlc3RSdW4ub25jZSgncmVhZHknLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3F1YXJhbnRpbmUgfHwgdGhpcy5faXNGaXJzdFF1YXJhbnRpbmVBdHRlbXB0KCkpXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0KCd0ZXN0LXJ1bi1yZWFkeScpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGVzdFJ1bi5vbmNlKCdiZWZvcmUtZG9uZScsICgpID0+IHRoaXMuX3Rlc3RSdW5CZWZvcmVEb25lKCkpO1xuICAgICAgICB0ZXN0UnVuLm9uY2UoJ2RvbmUnLCAoKSA9PiB0aGlzLl90ZXN0UnVuRG9uZSgpKTtcbiAgICAgICAgdGVzdFJ1bi5vbmNlKCdkaXNjb25uZWN0ZWQnLCAoKSA9PiB0aGlzLl90ZXN0UnVuRGlzY29ubmVjdGVkKGNvbm5lY3Rpb24pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJsb2NrZWQgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZml4dHVyZUhvb2tDb250cm9sbGVyLmlzVGVzdEJsb2NrZWQodGhpcy50ZXN0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVOYXRpdmVBdXRvbWF0aW9uTW9kZSAoY29ubmVjdGlvbjogQnJvd3NlckNvbm5lY3Rpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5pc05hdGl2ZUF1dG9tYXRpb24gPSAhIXRoaXMuX29wdHMubmF0aXZlQXV0b21hdGlvbjtcblxuICAgICAgICBjb25zdCBzdXBwb3J0TmF0aXZlQXV0b21hdGlvbiA9IGNvbm5lY3Rpb24uc3VwcG9ydE5hdGl2ZUF1dG9tYXRpb24oKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNOYXRpdmVBdXRvbWF0aW9uIHx8IHN1cHBvcnROYXRpdmVBdXRvbWF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgnYmVmb3JlLXRlc3QtcnVuLWNyZWF0ZWQtZXJyb3InKTtcblxuICAgICAgICB0aHJvdyBuZXcgR2VuZXJhbEVycm9yKFJVTlRJTUVfRVJST1JTLnNldE5hdGl2ZUF1dG9tYXRpb25Gb3JVbnN1cHBvcnRlZEJyb3dzZXJzLCBjb25uZWN0aW9uLmJyb3dzZXJJbmZvLnByb3ZpZGVyTmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0IChjb25uZWN0aW9uOiBCcm93c2VyQ29ubmVjdGlvbiwgc3RhcnRSdW5FeGVjdXRpb25UaW1lPzogRGF0ZSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICBkZWJ1Z0xvZ2dlcignc3RhcnQnKTtcblxuICAgICAgICBhd2FpdCB0aGlzLl9oYW5kbGVOYXRpdmVBdXRvbWF0aW9uTW9kZShjb25uZWN0aW9uKTtcblxuICAgICAgICBjb25zdCB0ZXN0UnVuID0gYXdhaXQgdGhpcy5fY3JlYXRlVGVzdFJ1bihjb25uZWN0aW9uLCBzdGFydFJ1bkV4ZWN1dGlvblRpbWUpO1xuXG4gICAgICAgIGNvbnN0IGhvb2tPayA9IGF3YWl0IHRoaXMuX3Rlc3RSdW5Ib29rLnJ1blRlc3RSdW5CZWZvcmVIb29rSWZOZWNlc3NhcnkodGVzdFJ1bilcbiAgICAgICAgICAgICAgICAgICAgICAgJiYgYXdhaXQgdGhpcy5fZml4dHVyZUhvb2tDb250cm9sbGVyLnJ1bkZpeHR1cmVCZWZvcmVIb29rSWZOZWNlc3NhcnkodGVzdFJ1bik7XG5cbiAgICAgICAgaWYgKHRoaXMudGVzdC5za2lwIHx8ICFob29rT2spIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2VtaXRUZXN0UnVuU3RhcnQoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdCgndGVzdC1ydW4tYmVmb3JlLWRvbmUnKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2VtaXRUZXN0UnVuRG9uZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Fzc2lnblRlc3RSdW5FdmVudHModGVzdFJ1biwgY29ubmVjdGlvbik7XG5cbiAgICAgICAgdGVzdFJ1bi5zdGFydCgpO1xuXG4gICAgICAgIHJldHVybiBTZXNzaW9uQ29udHJvbGxlci5nZXRTZXNzaW9uVXJsKHRlc3RSdW4sIHRoaXMuX3Byb3h5KTtcbiAgICB9XG59XG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4tY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW5uZXIvdGVzdC1ydW4tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUZBQTZEO0FBQzdELFlBQVk7QUFDWiw2REFBK0Q7QUFDL0QsMkRBQWtDO0FBQ2xDLHdGQUErRDtBQUUvRCw2REFBOEQ7QUFPOUQsZ0VBQTZEO0FBRzdELHVGQUF5RTtBQUN6RSwyQ0FBaUQ7QUFDakQsK0NBQWlEO0FBQ2pELDBEQUFpRTtBQUVqRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUUvQixNQUFxQixpQkFBa0IsU0FBUSw2QkFBaUI7SUFtQjVELFlBQW9CLEVBQ2hCLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLElBQUksRUFDSixXQUFXLEVBQ1gsVUFBVSxHQUNVO1FBQ3BCLEtBQUssRUFBRSxDQUFDO1FBZkosdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQWdCL0IsSUFBSSxDQUFDLElBQUksR0FBSSxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEVBQUUsR0FBTSxJQUFBLHNDQUFnQixHQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLE1BQU0sR0FBbUIsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQWEsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQWMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFhLFdBQVcsQ0FBQztR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QUFDLE9BQU8sQ0FBQztlQUM3RCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3RixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUU5QixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFaEIsT0FBTyw0QkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0o7QUE1UUQsb0NBNFFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFzeW5jRXZlbnRFbWl0dGVyIGZyb20gJy4uL3V0aWxzL2FzeW5jLWV2ZW50LWVtaXR0ZXInO1xuLy9AdHMtaWdub3JlXG5pbXBvcnQgeyBUZXN0UnVuIGFzIExlZ2FjeVRlc3RSdW4gfSBmcm9tICd0ZXN0Y2FmZS1sZWdhY3ktYXBpJztcbmltcG9ydCBUZXN0UnVuIGZyb20gJy4uL3Rlc3QtcnVuJztcbmltcG9ydCBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuLi90ZXN0LXJ1bi9zZXNzaW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IEJyb3dzZXJDb25uZWN0aW9uIGZyb20gJy4uL2Jyb3dzZXIvY29ubmVjdGlvbic7XG5pbXBvcnQgeyBQcm94eSwgZ2VuZXJhdGVVbmlxdWVJZCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IFRlc3QgZnJvbSAnLi4vYXBpL3N0cnVjdHVyZS90ZXN0JztcbmltcG9ydCBTY3JlZW5zaG90cyBmcm9tICcuLi9zY3JlZW5zaG90cyc7XG5pbXBvcnQgV2FybmluZ0xvZyBmcm9tICcuLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbG9nJztcbmltcG9ydCBGaXh0dXJlSG9va0NvbnRyb2xsZXIgZnJvbSAnLi9maXh0dXJlLWhvb2stY29udHJvbGxlcic7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjdGlvbkV2ZW50QXJnLCBUZXN0UnVuQ29udHJvbGxlckluaXQgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUXVhcmFudGluZSB9IGZyb20gJy4uL3V0aWxzL2dldC1vcHRpb25zL3F1YXJhbnRpbmUnO1xuaW1wb3J0IE1lc3NhZ2VCdXMgZnJvbSAnLi4vdXRpbHMvbWVzc2FnZS1idXMnO1xuaW1wb3J0IFRlc3RSdW5Ib29rQ29udHJvbGxlciBmcm9tICcuL3Rlc3QtcnVuLWhvb2stY29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBjbGllbnRTY3JpcHRzUm91dGluZyBmcm9tICcuLi9jdXN0b20tY2xpZW50LXNjcmlwdHMvcm91dGluZyc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uL2Vycm9ycy90eXBlcyc7XG5pbXBvcnQgeyBHZW5lcmFsRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyB0ZXN0UnVuQ29udHJvbGxlckxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2RlYnVnLWxvZ2dlcnMnO1xuXG5jb25zdCBESVNDT05ORUNUX1RIUkVTSE9MRCA9IDM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RSdW5Db250cm9sbGVyIGV4dGVuZHMgQXN5bmNFdmVudEVtaXR0ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3F1YXJhbnRpbmU6IG51bGwgfCBRdWFyYW50aW5lO1xuICAgIHByaXZhdGUgX2Rpc2Nvbm5lY3Rpb25Db3VudDogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb3h5OiBQcm94eTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcbiAgICBwdWJsaWMgdGVzdDogVGVzdDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcHRzOiBEaWN0aW9uYXJ5PE9wdGlvblZhbHVlPjtcbiAgICBwcml2YXRlIF9zY3JlZW5zaG90czogU2NyZWVuc2hvdHM7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfd2FybmluZ0xvZzogV2FybmluZ0xvZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9maXh0dXJlSG9va0NvbnRyb2xsZXI6IEZpeHR1cmVIb29rQ29udHJvbGxlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90ZXN0UnVuQ3RvcjogTGVnYWN5VGVzdFJ1blsnY29uc3RydWN0b3InXSB8IFRlc3RSdW5bJ2NvbnN0cnVjdG9yJ107XG4gICAgcHVibGljIHRlc3RSdW46IG51bGwgfCBMZWdhY3lUZXN0UnVuIHwgVGVzdFJ1bjtcbiAgICBwdWJsaWMgZG9uZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlQnVzOiBNZXNzYWdlQnVzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Rlc3RSdW5Ib29rOiBUZXN0UnVuSG9va0NvbnRyb2xsZXI7XG4gICAgcHJpdmF0ZSBjbGllbnRTY3JpcHRSb3V0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBpc05hdGl2ZUF1dG9tYXRpb24gPSBmYWxzZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoe1xuICAgICAgICB0ZXN0LFxuICAgICAgICBpbmRleCxcbiAgICAgICAgcHJveHksXG4gICAgICAgIHNjcmVlbnNob3RzLFxuICAgICAgICB3YXJuaW5nTG9nLFxuICAgICAgICBmaXh0dXJlSG9va0NvbnRyb2xsZXIsXG4gICAgICAgIG9wdHMsXG4gICAgICAgIHRlc3RSdW5Ib29rLFxuICAgICAgICBtZXNzYWdlQnVzLFxuICAgIH06IFRlc3RSdW5Db250cm9sbGVySW5pdCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMudGVzdCAgPSB0ZXN0O1xuICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuX29wdHMgPSBvcHRzO1xuICAgICAgICB0aGlzLmlkICAgID0gZ2VuZXJhdGVVbmlxdWVJZCgpO1xuXG4gICAgICAgIHRoaXMuX3Byb3h5ICAgICAgICAgICAgICAgICA9IHByb3h5O1xuICAgICAgICB0aGlzLl9zY3JlZW5zaG90cyAgICAgICAgICAgPSBzY3JlZW5zaG90cztcbiAgICAgICAgdGhpcy5fd2FybmluZ0xvZyAgICAgICAgICAgID0gd2FybmluZ0xvZztcbiAgICAgICAgdGhpcy5fZml4dHVyZUhvb2tDb250cm9sbGVyID0gZml4dHVyZUhvb2tDb250cm9sbGVyO1xuICAgICAgICB0aGlzLl90ZXN0UnVuSG9vayAgICAgICAgICAgPSB0ZXN0UnVuSG9vaztcblxuICAgICAgICB0aGlzLl90ZXN0UnVuQ3RvciA9IFRlc3RSdW5Db250cm9sbGVyLl9nZXRUZXN0UnVuQ3Rvcih0ZXN0LCBvcHRzKTtcblxuICAgICAgICB0aGlzLnRlc3RSdW4gICAgICAgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLmRvbmUgICAgICAgICAgICAgICAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcXVhcmFudGluZSAgICAgICAgID0gdGhpcy5fb3B0cy5xdWFyYW50aW5lTW9kZSA/IG5ldyBRdWFyYW50aW5lKCkgOiBudWxsO1xuICAgICAgICB0aGlzLl9kaXNjb25uZWN0aW9uQ291bnQgPSAwO1xuICAgICAgICB0aGlzLl9tZXNzYWdlQnVzICAgICAgICAgPSBtZXNzYWdlQnVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRUZXN0UnVuQ3RvciAodGVzdDogVGVzdCwgb3B0czogRGljdGlvbmFyeTxPcHRpb25WYWx1ZT4pOiBMZWdhY3lUZXN0UnVuIHwgVGVzdFJ1biB7XG4gICAgICAgIGlmIChvcHRzLlRlc3RSdW5DdG9yKVxuICAgICAgICAgICAgcmV0dXJuIG9wdHMuVGVzdFJ1bkN0b3I7XG5cbiAgICAgICAgcmV0dXJuICh0ZXN0IGFzIExlZ2FjeVRlc3RSdW4pLmlzTGVnYWN5ID8gTGVnYWN5VGVzdFJ1biA6IFRlc3RSdW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfY3JlYXRlVGVzdFJ1biAoY29ubmVjdGlvbjogQnJvd3NlckNvbm5lY3Rpb24sIHN0YXJ0UnVuRXhlY3V0aW9uVGltZT86IERhdGUpOiBQcm9taXNlPFRlc3RSdW4gfCBMZWdhY3lUZXN0UnVuPiB7XG4gICAgICAgIGNvbnN0IHNjcmVlbnNob3RDYXB0dXJlciA9IHRoaXMuX3NjcmVlbnNob3RzLmNyZWF0ZUNhcHR1cmVyRm9yKHRoaXMudGVzdCwgdGhpcy5pbmRleCwgdGhpcy5fcXVhcmFudGluZSwgY29ubmVjdGlvbiwgdGhpcy5fd2FybmluZ0xvZyk7XG4gICAgICAgIGNvbnN0IFRlc3RSdW5DdG9yICAgICAgICA9IHRoaXMuX3Rlc3RSdW5DdG9yO1xuXG4gICAgICAgIHRoaXMudGVzdFJ1biA9IG5ldyBUZXN0UnVuQ3Rvcih7XG4gICAgICAgICAgICB0ZXN0OiAgICAgICAgICAgICAgdGhpcy50ZXN0LFxuICAgICAgICAgICAgYnJvd3NlckNvbm5lY3Rpb246IGNvbm5lY3Rpb24sXG4gICAgICAgICAgICBnbG9iYWxXYXJuaW5nTG9nOiAgdGhpcy5fd2FybmluZ0xvZyxcbiAgICAgICAgICAgIG9wdHM6ICAgICAgICAgICAgICB0aGlzLl9vcHRzLFxuICAgICAgICAgICAgbWVzc2FnZUJ1czogICAgICAgIHRoaXMuX21lc3NhZ2VCdXMsXG4gICAgICAgICAgICBuYXRpdmVBdXRvbWF0aW9uOiAgdGhpcy5pc05hdGl2ZUF1dG9tYXRpb24sXG4gICAgICAgICAgICBzY3JlZW5zaG90Q2FwdHVyZXIsXG4gICAgICAgICAgICBzdGFydFJ1bkV4ZWN1dGlvblRpbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2xpZW50U2NyaXB0Um91dGVzID0gY2xpZW50U2NyaXB0c1JvdXRpbmcucmVnaXN0ZXIoe1xuICAgICAgICAgICAgcHJveHk6ICAgICAgICAgICAgdGhpcy5fcHJveHksXG4gICAgICAgICAgICB0ZXN0OiAgICAgICAgICAgICB0aGlzLnRlc3QsXG4gICAgICAgICAgICBuYXRpdmVBdXRvbWF0aW9uOiB0aGlzLmlzTmF0aXZlQXV0b21hdGlvbixcbiAgICAgICAgICAgIGZvbGRlck5hbWU6ICAgICAgIHRoaXMudGVzdFJ1bi5pZCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy50ZXN0UnVuLmluaXRpYWxpemUoKTtcblxuICAgICAgICB0aGlzLl9zY3JlZW5zaG90cy5hZGRUZXN0UnVuKHRoaXMudGVzdCwgdGhpcy50ZXN0UnVuKTtcblxuICAgICAgICBpZiAodGhpcy50ZXN0UnVuLmFkZFF1YXJhbnRpbmVJbmZvKVxuICAgICAgICAgICAgdGhpcy50ZXN0UnVuLmFkZFF1YXJhbnRpbmVJbmZvKHRoaXMuX3F1YXJhbnRpbmUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9xdWFyYW50aW5lKSB7XG4gICAgICAgICAgICBjb25zdCB7IHN1Y2Nlc3NUaHJlc2hvbGQsIGF0dGVtcHRMaW1pdCB9ID0gdGhpcy5fb3B0cy5xdWFyYW50aW5lTW9kZSBhcyBRdWFyYW50aW5lT3B0aW9uVmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMuX3F1YXJhbnRpbmUuc2V0Q3VzdG9tUGFyYW1ldGVycyhhdHRlbXB0TGltaXQsIHN1Y2Nlc3NUaHJlc2hvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9xdWFyYW50aW5lIHx8IHRoaXMuX2lzRmlyc3RRdWFyYW50aW5lQXR0ZW1wdCgpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtcnVuLWNyZWF0ZScsIHtcbiAgICAgICAgICAgICAgICB0ZXN0UnVuOiAgICB0aGlzLnRlc3RSdW4sXG4gICAgICAgICAgICAgICAgbGVnYWN5OiAgICAgVGVzdFJ1bkN0b3IgPT09IExlZ2FjeVRlc3RSdW4sXG4gICAgICAgICAgICAgICAgdGVzdDogICAgICAgdGhpcy50ZXN0LFxuICAgICAgICAgICAgICAgIGluZGV4OiAgICAgIHRoaXMuaW5kZXgsXG4gICAgICAgICAgICAgICAgcXVhcmFudGluZTogdGhpcy5fcXVhcmFudGluZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudGVzdFJ1bjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9lbmRRdWFyYW50aW5lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCh0aGlzLl9xdWFyYW50aW5lIGFzIFF1YXJhbnRpbmUpLmF0dGVtcHRzLmxlbmd0aCA+IDEpXG4gICAgICAgICAgICB0aGlzLnRlc3RSdW4udW5zdGFibGUgPSAodGhpcy5fcXVhcmFudGluZSBhcyBRdWFyYW50aW5lKS5nZXRQYXNzZWRBdHRlbXB0cygpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZW1pdFRlc3RSdW5Eb25lKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvdWxkS2VlcEluUXVhcmFudGluZSAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVycm9ycyAgICAgICAgID0gdGhpcy50ZXN0UnVuLmVycnM7XG4gICAgICAgIGNvbnN0IGhhc0Vycm9ycyAgICAgID0gISFlcnJvcnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBhdHRlbXB0cyAgICAgICA9ICh0aGlzLl9xdWFyYW50aW5lIGFzIFF1YXJhbnRpbmUpLmF0dGVtcHRzO1xuICAgICAgICBjb25zdCBpc0ZpcnN0QXR0ZW1wdCA9IHRoaXMuX2lzRmlyc3RRdWFyYW50aW5lQXR0ZW1wdCgpO1xuXG4gICAgICAgIGF0dGVtcHRzLnB1c2goeyB0ZXN0UnVuSWQ6IHRoaXMudGVzdFJ1bi5pZCwgZXJyb3JzIH0pO1xuXG4gICAgICAgIHJldHVybiBpc0ZpcnN0QXR0ZW1wdCA/IGhhc0Vycm9ycyA6ICEodGhpcy5fcXVhcmFudGluZSBhcyBRdWFyYW50aW5lKS5pc1RocmVzaG9sZFJlYWNoZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0ZpcnN0UXVhcmFudGluZUF0dGVtcHQgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9xdWFyYW50aW5lICYmICF0aGlzLl9xdWFyYW50aW5lLmF0dGVtcHRzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9rZWVwSW5RdWFyYW50aW5lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcmVzdGFydFRlc3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZXN0YXJ0VGVzdCAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZW1pdCgndGVzdC1ydW4tcmVzdGFydCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Rlc3RSdW5Eb25lSW5RdWFyYW50aW5lTW9kZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRLZWVwSW5RdWFyYW50aW5lKCkpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9rZWVwSW5RdWFyYW50aW5lKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2VuZFF1YXJhbnRpbmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF90ZXN0UnVuRG9uZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9xdWFyYW50aW5lKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fdGVzdFJ1bkRvbmVJblF1YXJhbnRpbmVNb2RlKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2VtaXRUZXN0UnVuRG9uZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2VtaXRBY3Rpb25TdGFydCAoYXJnczogQWN0aW9uRXZlbnRBcmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCd0ZXN0LWFjdGlvbi1zdGFydCcsIGFyZ3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2VtaXRBY3Rpb25Eb25lIChhcmdzOiBBY3Rpb25FdmVudEFyZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtYWN0aW9uLWRvbmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9lbWl0VGVzdFJ1bkRvbmUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBOT1RFOiB3ZSBzaG91bGQgcmVwb3J0IHRlc3QgcnVuIGNvbXBsZXRpb24gaW4gb3JkZXIgdGhleSB3ZXJlIGNvbXBsZXRlZCBpbiBicm93c2VyLlxuICAgICAgICAvLyBUbyBrZWVwIGEgc2VxdWVuY2UgYWZ0ZXIgZml4dHVyZSBob29rIGV4ZWN1dGlvbiB3ZSB1c2UgY29tcGxldGlvbiBxdWV1ZS5cbiAgICAgICAgYXdhaXQgdGhpcy5fZml4dHVyZUhvb2tDb250cm9sbGVyLnJ1bkZpeHR1cmVBZnRlckhvb2tJZk5lY2Vzc2FyeSh0aGlzLnRlc3RSdW4pO1xuICAgICAgICBhd2FpdCB0aGlzLl90ZXN0UnVuSG9vay5ydW5UZXN0UnVuQWZ0ZXJIb29rSWZOZWNlc3NhcnkodGhpcy50ZXN0UnVuKTtcblxuICAgICAgICBjbGllbnRTY3JpcHRzUm91dGluZy51blJlZ2lzdGVyKHRoaXMuX3Byb3h5LCB0aGlzLmNsaWVudFNjcmlwdFJvdXRlcyk7XG5cbiAgICAgICAgdGhpcy5kb25lID0gdHJ1ZTtcblxuICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtcnVuLWRvbmUnKTtcblxuICAgICAgICB0ZXN0UnVuQ29udHJvbGxlckxvZ2dlcignZG9uZSAlcycsIHRoaXMuaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2VtaXRUZXN0UnVuU3RhcnQgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl9tZXNzYWdlQnVzLmVtaXQoJ3Rlc3QtcnVuLXN0YXJ0JywgdGhpcy50ZXN0UnVuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF90ZXN0UnVuQmVmb3JlRG9uZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCByYWlzZUV2ZW50ID0gIXRoaXMuX3F1YXJhbnRpbmU7XG5cbiAgICAgICAgaWYgKCFyYWlzZUV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpc1N1Y2Nlc3NmdWxRdWFyYW50aW5lRmlyc3RBdHRlbXB0ID0gdGhpcy5faXNGaXJzdFF1YXJhbnRpbmVBdHRlbXB0KCkgJiYgIXRoaXMudGVzdFJ1bi5lcnJzLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGlzQXR0ZW1wdHNUaHJlc2hvbGRSZWFjaGVkICAgICAgICAgPSAodGhpcy5fcXVhcmFudGluZSBhcyBRdWFyYW50aW5lKS5pc1RocmVzaG9sZFJlYWNoZWQodGhpcy50ZXN0UnVuLmVycnMpO1xuXG4gICAgICAgICAgICByYWlzZUV2ZW50ID0gaXNTdWNjZXNzZnVsUXVhcmFudGluZUZpcnN0QXR0ZW1wdCB8fCBpc0F0dGVtcHRzVGhyZXNob2xkUmVhY2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyYWlzZUV2ZW50KVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0KCd0ZXN0LXJ1bi1iZWZvcmUtZG9uZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rlc3RSdW5EaXNjb25uZWN0ZWQgKGNvbm5lY3Rpb246IEJyb3dzZXJDb25uZWN0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2Rpc2Nvbm5lY3Rpb25Db3VudCsrO1xuXG4gICAgICAgIGNvbnN0IGRpc2Nvbm5lY3Rpb25UaHJlc2hvbGRFeGNlZWRlZCA9IHRoaXMuX2Rpc2Nvbm5lY3Rpb25Db3VudCA+PSBESVNDT05ORUNUX1RIUkVTSE9MRDtcblxuICAgICAgICByZXR1cm4gY29ubmVjdGlvblxuICAgICAgICAgICAgLnByb2Nlc3NEaXNjb25uZWN0aW9uKGRpc2Nvbm5lY3Rpb25UaHJlc2hvbGRFeGNlZWRlZClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzdGFydFRlc3QoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnblRlc3RSdW5FdmVudHMgKHRlc3RSdW46IFRlc3RSdW4gfCBMZWdhY3lUZXN0UnVuLCBjb25uZWN0aW9uOiBCcm93c2VyQ29ubmVjdGlvbik6IHZvaWQge1xuICAgICAgICB0ZXN0UnVuLm9uKCdhY3Rpb24tc3RhcnQnLCBhc3luYyAoYXJnczogQWN0aW9uRXZlbnRBcmcpID0+IHRoaXMuX2VtaXRBY3Rpb25TdGFydChPYmplY3QuYXNzaWduKGFyZ3MsIHsgdGVzdFJ1biB9KSkpO1xuICAgICAgICB0ZXN0UnVuLm9uKCdhY3Rpb24tZG9uZScsIGFzeW5jIChhcmdzOiBBY3Rpb25FdmVudEFyZykgPT4gdGhpcy5fZW1pdEFjdGlvbkRvbmUoT2JqZWN0LmFzc2lnbihhcmdzLCB7IHRlc3RSdW4gfSkpKTtcblxuICAgICAgICB0ZXN0UnVuLm9uY2UoJ3N0YXJ0JywgYXN5bmMgKCkgPT4gdGhpcy5fZW1pdFRlc3RSdW5TdGFydCgpKTtcbiAgICAgICAgdGVzdFJ1bi5vbmNlKCdyZWFkeScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fcXVhcmFudGluZSB8fCB0aGlzLl9pc0ZpcnN0UXVhcmFudGluZUF0dGVtcHQoKSlcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtcnVuLXJlYWR5Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0ZXN0UnVuLm9uY2UoJ2JlZm9yZS1kb25lJywgKCkgPT4gdGhpcy5fdGVzdFJ1bkJlZm9yZURvbmUoKSk7XG4gICAgICAgIHRlc3RSdW4ub25jZSgnZG9uZScsICgpID0+IHRoaXMuX3Rlc3RSdW5Eb25lKCkpO1xuICAgICAgICB0ZXN0UnVuLm9uY2UoJ2Rpc2Nvbm5lY3RlZCcsICgpID0+IHRoaXMuX3Rlc3RSdW5EaXNjb25uZWN0ZWQoY29ubmVjdGlvbikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmxvY2tlZCAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maXh0dXJlSG9va0NvbnRyb2xsZXIuaXNUZXN0QmxvY2tlZCh0aGlzLnRlc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2hhbmRsZU5hdGl2ZUF1dG9tYXRpb25Nb2RlIChjb25uZWN0aW9uOiBCcm93c2VyQ29ubmVjdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmlzTmF0aXZlQXV0b21hdGlvbiA9ICF0aGlzLl9vcHRzLmRpc2FibGVOYXRpdmVBdXRvbWF0aW9uO1xuXG4gICAgICAgIGNvbnN0IHN1cHBvcnROYXRpdmVBdXRvbWF0aW9uID0gY29ubmVjdGlvbi5zdXBwb3J0TmF0aXZlQXV0b21hdGlvbigpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc05hdGl2ZUF1dG9tYXRpb24gfHwgc3VwcG9ydE5hdGl2ZUF1dG9tYXRpb24pXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCdiZWZvcmUtdGVzdC1ydW4tY3JlYXRlZC1lcnJvcicpO1xuXG4gICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMuc2V0TmF0aXZlQXV0b21hdGlvbkZvclVuc3VwcG9ydGVkQnJvd3NlcnMsIGNvbm5lY3Rpb24uYnJvd3NlckluZm8ucHJvdmlkZXJOYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RhcnQgKGNvbm5lY3Rpb246IEJyb3dzZXJDb25uZWN0aW9uLCBzdGFydFJ1bkV4ZWN1dGlvblRpbWU/OiBEYXRlKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIHRlc3RSdW5Db250cm9sbGVyTG9nZ2VyKCdzdGFydCAlcyAlTyAlTycsIHRoaXMuaWQsIHtcbiAgICAgICAgICAgIHRlc3Q6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnRlc3QubmFtZSxcbiAgICAgICAgICAgICAgICBpZDogICB0aGlzLnRlc3QuaWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgICAgIHVzZXJBZ2VudDogY29ubmVjdGlvbi51c2VyQWdlbnQsXG4gICAgICAgICAgICAgICAgaWQ6ICAgICAgICBjb25uZWN0aW9uLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5faGFuZGxlTmF0aXZlQXV0b21hdGlvbk1vZGUoY29ubmVjdGlvbik7XG5cbiAgICAgICAgY29uc3QgdGVzdFJ1biA9IGF3YWl0IHRoaXMuX2NyZWF0ZVRlc3RSdW4oY29ubmVjdGlvbiwgc3RhcnRSdW5FeGVjdXRpb25UaW1lKTtcblxuICAgICAgICBjb25zdCBob29rT2sgPSBhd2FpdCB0aGlzLl90ZXN0UnVuSG9vay5ydW5UZXN0UnVuQmVmb3JlSG9va0lmTmVjZXNzYXJ5KHRlc3RSdW4pXG4gICAgICAgICAgICAgICAgICAgICAgICYmIGF3YWl0IHRoaXMuX2ZpeHR1cmVIb29rQ29udHJvbGxlci5ydW5GaXh0dXJlQmVmb3JlSG9va0lmTmVjZXNzYXJ5KHRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLnRlc3Quc2tpcCB8fCAhaG9va09rKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9lbWl0VGVzdFJ1blN0YXJ0KCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ3Rlc3QtcnVuLWJlZm9yZS1kb25lJyk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9lbWl0VGVzdFJ1bkRvbmUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hc3NpZ25UZXN0UnVuRXZlbnRzKHRlc3RSdW4sIGNvbm5lY3Rpb24pO1xuXG4gICAgICAgIHRlc3RSdW4uc3RhcnQoKTtcblxuICAgICAgICByZXR1cm4gU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0U2Vzc2lvblVybCh0ZXN0UnVuLCB0aGlzLl9wcm94eSk7XG4gICAgfVxufVxuIl19
@@ -12,10 +12,9 @@ const escape_user_agent_1 = __importDefault(require("../utils/escape-user-agent"
12
12
  const correct_file_path_1 = __importDefault(require("../utils/correct-file-path"));
13
13
  const promisified_functions_1 = require("../utils/promisified-functions");
14
14
  const default_extension_1 = __importDefault(require("./default-extension"));
15
- const make_dir_1 = __importDefault(require("make-dir"));
16
15
  class Capturer {
17
16
  // TODO: refactor to use dictionary
18
- constructor(baseScreenshotsPath, testEntry, connection, pathPattern, fullPage, thumbnails, warningLog, tempDirectoryPath, autoTakeOnFails) {
17
+ constructor(baseScreenshotsPath, testEntry, connection, pathPattern, fullPage, thumbnails, warningLog) {
19
18
  this.enabled = !!baseScreenshotsPath;
20
19
  this.baseScreenshotsPath = baseScreenshotsPath;
21
20
  this.testEntry = testEntry;
@@ -25,8 +24,6 @@ class Capturer {
25
24
  this.pathPattern = pathPattern;
26
25
  this.fullPage = fullPage;
27
26
  this.thumbnails = thumbnails;
28
- this.tempDirectoryPath = tempDirectoryPath;
29
- this.autoTakeOnFails = autoTakeOnFails;
30
27
  }
31
28
  static _getDimensionWithoutScrollbar(fullDimension, documentDimension, bodyDimension) {
32
29
  if (bodyDimension > fullDimension)
@@ -97,39 +94,32 @@ class Capturer {
97
94
  thumbnails = thumbnails === void 0 ? this.thumbnails : thumbnails;
98
95
  const screenshotPath = customPath ? this._getCustomScreenshotPath(customPath) : this._getScreenshotPath(forError);
99
96
  const thumbnailPath = this._getThumbnailPath(screenshotPath);
100
- const tempPath = screenshotPath.replace(this.baseScreenshotsPath, this.tempDirectoryPath);
101
- let screenshotData;
102
97
  if ((0, async_queue_1.isInQueue)(screenshotPath))
103
98
  this.warningLog.addWarning(warning_message_1.default.screenshotRewritingError, screenshotPath);
104
99
  await (0, async_queue_1.addToQueue)(screenshotPath, async () => {
105
100
  const clientAreaDimensions = Capturer._getClientAreaDimensions(pageDimensions);
106
101
  const { width: pageWidth, height: pageHeight } = clientAreaDimensions || {};
107
102
  const takeScreenshotOptions = {
108
- filePath: tempPath,
103
+ filePath: screenshotPath,
109
104
  pageWidth,
110
105
  pageHeight,
111
106
  fullPage,
112
107
  };
113
108
  await this._takeScreenshot(takeScreenshotOptions);
114
- if (!await Capturer._isScreenshotCaptured(tempPath))
109
+ if (!await Capturer._isScreenshotCaptured(screenshotPath))
115
110
  return;
116
- const image = await (0, promisified_functions_1.readPngFile)(tempPath);
111
+ const image = await (0, promisified_functions_1.readPngFile)(screenshotPath);
117
112
  const markSeedPosition = markSeed ? (0, crop_1.calculateMarkPosition)(image, markSeed) : null;
118
113
  if (markSeed && !markSeedPosition)
119
- this.warningLog.addWarning(warning_message_1.default.screenshotMarkNotFound, tempPath, (0, crop_1.markSeedToId)(markSeed));
114
+ this.warningLog.addWarning(warning_message_1.default.screenshotMarkNotFound, screenshotPath, (0, crop_1.markSeedToId)(markSeed));
120
115
  const croppedImage = await (0, crop_1.cropScreenshot)(image, {
121
116
  markSeedPosition,
122
117
  clientAreaDimensions,
123
- path: tempPath,
118
+ path: screenshotPath,
124
119
  cropDimensions: Capturer._getCropDimensions(cropDimensions, pageDimensions),
125
120
  });
126
121
  if (croppedImage)
127
- await (0, promisified_functions_1.writePng)(tempPath, croppedImage);
128
- screenshotData = await (0, promisified_functions_1.readFile)(tempPath);
129
- if (forError && this.autoTakeOnFails)
130
- return;
131
- await (0, make_dir_1.default)((0, path_1.dirname)(screenshotPath));
132
- await (0, promisified_functions_1.writeFile)(screenshotPath, screenshotData);
122
+ await (0, promisified_functions_1.writePng)(screenshotPath, croppedImage);
133
123
  if (thumbnails)
134
124
  await (0, testcafe_browser_tools_1.generateThumbnail)(screenshotPath, thumbnailPath);
135
125
  });
@@ -140,7 +130,6 @@ class Capturer {
140
130
  const screenshot = {
141
131
  testRunId,
142
132
  screenshotPath,
143
- screenshotData,
144
133
  thumbnailPath,
145
134
  userAgent,
146
135
  quarantineAttempt,
@@ -159,4 +148,4 @@ class Capturer {
159
148
  }
160
149
  exports.default = Capturer;
161
150
  module.exports = exports.default;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvY2FwdHVyZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFJYztBQUVkLG1FQUEyRDtBQUMzRCxpQ0FJZ0I7QUFDaEIsc0RBQTZEO0FBQzdELHVGQUErRDtBQUMvRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELDBFQU13QztBQUV4Qyw0RUFBK0Q7QUFDL0Qsd0RBQStCO0FBRy9CLE1BQXFCLFFBQVE7SUFDekIsbUNBQW1DO0lBQ25DLFlBQWEsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZUFBZTtRQUN0SSxJQUFJLENBQUMsT0FBTyxHQUFlLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBYSxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBYyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQWEsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFXLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFjLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUssaUJBQWlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBTyxlQUFlLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTtRQUNqRixJQUFJLGFBQWEs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O1lBQ2pCLFdBQVc7WUFDWCxRQUFRLEVBQUUsY0FBYyxJQUFJLFFBQVE7U0FDdkMsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1QyxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBRSxPQUFPO1FBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBRSxPQUFPO1FBQ3ZCLE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUE3TEQsMkJBNkxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBqb2luIGFzIGpvaW5QYXRoLFxuICAgIGRpcm5hbWUsXG4gICAgYmFzZW5hbWUsXG59IGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBnZW5lcmF0ZVRodW1ibmFpbCB9IGZyb20gJ3Rlc3RjYWZlLWJyb3dzZXItdG9vbHMnO1xuaW1wb3J0IHtcbiAgICBjcm9wU2NyZWVuc2hvdCxcbiAgICBjYWxjdWxhdGVNYXJrUG9zaXRpb24sXG4gICAgbWFya1NlZWRUb0lkLFxufSBmcm9tICcuL2Nyb3AnO1xuaW1wb3J0IHsgaXNJblF1ZXVlLCBhZGRUb1F1ZXVlIH0gZnJvbSAnLi4vdXRpbHMvYXN5bmMtcXVldWUnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5pbXBvcnQgZXNjYXBlVXNlckFnZW50IGZyb20gJy4uL3V0aWxzL2VzY2FwZS11c2VyLWFnZW50JztcbmltcG9ydCBjb3JyZWN0RmlsZVBhdGggZnJvbSAnLi4vdXRpbHMvY29ycmVjdC1maWxlLXBhdGgnO1xuaW1wb3J0IHtcbiAgICByZWFkRmlsZSxcbiAgICByZWFkUG5nRmlsZSxcbiAgICBzdGF0LFxuICAgIHdyaXRlRmlsZSxcbiAgICB3cml0ZVBuZyxcbn0gZnJvbSAnLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcblxuaW1wb3J0IERFRkFVTFRfU0NSRUVOU0hPVF9FWFRFTlNJT04gZnJvbSAnLi9kZWZhdWx0LWV4dGVuc2lvbic7XG5pbXBvcnQgbWFrZURpciBmcm9tICdtYWtlLWRpcic7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2FwdHVyZXIge1xuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRvIHVzZSBkaWN0aW9uYXJ5XG4gICAgY29uc3RydWN0b3IgKGJhc2VTY3JlZW5zaG90c1BhdGgsIHRlc3RFbnRyeSwgY29ubmVjdGlvbiwgcGF0aFBhdHRlcm4sIGZ1bGxQYWdlLCB0aHVtYm5haWxzLCB3YXJuaW5nTG9nLCB0ZW1wRGlyZWN0b3J5UGF0aCwgYXV0b1Rha2VPbkZhaWxzKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlZCAgICAgICAgICAgICA9ICEhYmFzZVNjcmVlbnNob3RzUGF0aDtcbiAgICAgICAgdGhpcy5iYXNlU2NyZWVuc2hvdHNQYXRoID0gYmFzZVNjcmVlbnNob3RzUGF0aDtcbiAgICAgICAgdGhpcy50ZXN0RW50cnkgICAgICAgICAgID0gdGVzdEVudHJ5O1xuICAgICAgICB0aGlzLnByb3ZpZGVyICAgICAgICAgICAgPSBjb25uZWN0aW9uLnByb3ZpZGVyO1xuICAgICAgICB0aGlzLmJyb3dzZXJJZCAgICAgICAgICAgPSBjb25uZWN0aW9uLmlkO1xuICAgICAgICB0aGlzLndhcm5pbmdMb2cgICAgICAgICAgPSB3YXJuaW5nTG9nO1xuICAgICAgICB0aGlzLnBhdGhQYXR0ZXJuICAgICAgICAgPSBwYXRoUGF0dGVybjtcbiAgICAgICAgdGhpcy5mdWxsUGFnZSAgICAgICAgICAgID0gZnVsbFBhZ2U7XG4gICAgICAgIHRoaXMudGh1bWJuYWlscyAgICAgICAgICA9IHRodW1ibmFpbHM7XG4gICAgICAgIHRoaXMudGVtcERpcmVjdG9yeVBhdGggICA9IHRlbXBEaXJlY3RvcnlQYXRoO1xuICAgICAgICB0aGlzLmF1dG9UYWtlT25GYWlscyAgICAgPSBhdXRvVGFrZU9uRmFpbHM7XG4gICAgfVxuXG4gICAgc3RhdGljIF9nZXREaW1lbnNpb25XaXRob3V0U2Nyb2xsYmFyIChmdWxsRGltZW5zaW9uLCBkb2N1bWVudERpbWVuc2lvbiwgYm9keURpbWVuc2lvbikge1xuICAgICAgICBpZiAoYm9keURpbWVuc2lvbiA+IGZ1bGxEaW1lbnNpb24pXG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnREaW1lbnNpb247XG5cbiAgICAgICAgaWYgKGRvY3VtZW50RGltZW5zaW9uID4gZnVsbERpbWVuc2lvbilcbiAgICAgICAgICAgIHJldHVybiBib2R5RGltZW5zaW9uO1xuXG4gICAgICAgIHJldHVybiBNYXRoLm1heChkb2N1bWVudERpbWVuc2lvbiwgYm9keURpbWVuc2lvbik7XG4gICAgfVxuXG4gICAgc3RhdGljIF9nZXRDcm9wRGltZW5zaW9ucyAoY3JvcERpbWVuc2lvbnMsIHBhZ2VEaW1lbnNpb25zKSB7XG4gICAgICAgIGlmICghY3JvcERpbWVuc2lvbnMgfHwgIXBhZ2VEaW1lbnNpb25zKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgeyBkcHIgfSAgICAgICAgICAgICAgICAgICAgICA9IHBhZ2VEaW1lbnNpb25zO1xuICAgICAgICBjb25zdCB7IHRvcCwgbGVmdCwgYm90dG9tLCByaWdodCB9ID0gY3JvcERpbWVuc2lvbnM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogICAgTWF0aC5yb3VuZCh0b3AgKiBkcHIpLFxuICAgICAgICAgICAgbGVmdDogICBNYXRoLnJvdW5kKGxlZnQgKiBkcHIpLFxuICAgICAgICAgICAgYm90dG9tOiBNYXRoLnJvdW5kKGJvdHRvbSAqIGRwciksXG4gICAgICAgICAgICByaWdodDogIE1hdGgucm91bmQocmlnaHQgKiBkcHIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBfZ2V0Q2xpZW50QXJlYURpbWVuc2lvbnMgKHBhZ2VEaW1lbnNpb25zKSB7XG4gICAgICAgIGlmICghcGFnZURpbWVuc2lvbnMpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCB7IGlubmVyV2lkdGgsIGRvY3VtZW50V2lkdGgsIGJvZHlXaWR0aCwgaW5uZXJIZWlnaHQsIGRvY3VtZW50SGVpZ2h0LCBib2R5SGVpZ2h0LCBkcHIgfSA9IHBhZ2VEaW1lbnNpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aDogIE1hdGguZmxvb3IoQ2FwdHVyZXIuX2dldERpbWVuc2lvbldpdGhvdXRTY3JvbGxiYXIoaW5uZXJXaWR0aCwgZG9jdW1lbnRXaWR0aCwgYm9keVdpZHRoKSAqIGRwciksXG4gICAgICAgICAgICBoZWlnaHQ6IE1hdGguZmxvb3IoQ2FwdHVyZXIuX2dldERpbWVuc2lvbldpdGhvdXRTY3JvbGxiYXIoaW5uZXJIZWlnaHQsIGRvY3VtZW50SGVpZ2h0LCBib2R5SGVpZ2h0KSAqIGRwciksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIF9pc1NjcmVlbnNob3RDYXB0dXJlZCAoc2NyZWVuc2hvdFBhdGgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdChzY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0cy5pc0ZpbGUoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2pvaW5XaXRoQmFzZVNjcmVlbnNob3RQYXRoIChwYXRoKSB7XG4gICAgICAgIHJldHVybiBqb2luUGF0aCh0aGlzLmJhc2VTY3JlZW5zaG90c1BhdGgsIHBhdGgpO1xuICAgIH1cblxuICAgIF9pbmNyZW1lbnRGaWxlSW5kZXhlcyAoZm9yRXJyb3IpIHtcbiAgICAgICAgaWYgKGZvckVycm9yKVxuICAgICAgICAgICAgdGhpcy5wYXRoUGF0dGVybi5kYXRhLmVycm9yRmlsZUluZGV4Kys7XG5cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5wYXRoUGF0dGVybi5kYXRhLmZpbGVJbmRleCsrO1xuICAgIH1cblxuICAgIF9nZXRDdXN0b21TY3JlZW5zaG90UGF0aCAoY3VzdG9tUGF0aCkge1xuICAgICAgICBjb25zdCBjb3JyZWN0ZWRDdXN0b21QYXRoID0gY29ycmVjdEZpbGVQYXRoKGN1c3RvbVBhdGgsIERFRkFVTFRfU0NSRUVOU0hPVF9FWFRFTlNJT04pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9qb2luV2l0aEJhc2VTY3JlZW5zaG90UGF0aChjb3JyZWN0ZWRDdXN0b21QYXRoKTtcbiAgICB9XG5cbiAgICBfZ2V0U2NyZWVuc2hvdFBhdGggKGZvckVycm9yKSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLnBhdGhQYXR0ZXJuLmdldFBhdGgoZm9yRXJyb3IpO1xuXG4gICAgICAgIHRoaXMuX2luY3JlbWVudEZpbGVJbmRleGVzKGZvckVycm9yKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fam9pbldpdGhCYXNlU2NyZWVuc2hvdFBhdGgocGF0aCk7XG4gICAgfVxuXG4gICAgX2dldFRodW1ibmFpbFBhdGggKHNjcmVlbnNob3RQYXRoKSB7XG4gICAgICAgIGNvbnN0IGltYWdlTmFtZSA9IGJhc2VuYW1lKHNjcmVlbnNob3RQYXRoKTtcbiAgICAgICAgY29uc3QgaW1hZ2VEaXIgID0gZGlybmFtZShzY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIGpvaW5QYXRoKGltYWdlRGlyLCAndGh1bWJuYWlscycsIGltYWdlTmFtZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX3Rha2VTY3JlZW5zaG90ICh7IGZpbGVQYXRoLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQsIGZ1bGxQYWdlID0gdGhpcy5mdWxsUGFnZSB9KSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvdmlkZXIudGFrZVNjcmVlbnNob3QodGhpcy5icm93c2VySWQsIGZpbGVQYXRoLCBwYWdlV2lkdGgsIHBhZ2VIZWlnaHQsIGZ1bGxQYWdlKTtcbiAgICB9XG5cbiAgICBhc3luYyBfY2FwdHVyZSAoZm9yRXJyb3IsIHsgYWN0aW9uSWQsIGZhaWxlZEFjdGlvbklkLCBwYWdlRGltZW5zaW9ucywgY3JvcERpbWVuc2lvbnMsIG1hcmtTZWVkLCBjdXN0b21QYXRoLCBmdWxsUGFnZSwgdGh1bWJuYWlscyB9ID0ge30pIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICB0aHVtYm5haWxzID0gdGh1bWJuYWlscyA9PT0gdm9pZCAwID8gdGhpcy50aHVtYm5haWxzIDogdGh1bWJuYWlscztcblxuICAgICAgICBjb25zdCBzY3JlZW5zaG90UGF0aCA9IGN1c3RvbVBhdGggPyB0aGlzLl9nZXRDdXN0b21TY3JlZW5zaG90UGF0aChjdXN0b21QYXRoKSA6IHRoaXMuX2dldFNjcmVlbnNob3RQYXRoKGZvckVycm9yKTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsUGF0aCAgPSB0aGlzLl9nZXRUaHVtYm5haWxQYXRoKHNjcmVlbnNob3RQYXRoKTtcbiAgICAgICAgY29uc3QgdGVtcFBhdGggICAgICAgPSBzY3JlZW5zaG90UGF0aC5yZXBsYWNlKHRoaXMuYmFzZVNjcmVlbnNob3RzUGF0aCwgdGhpcy50ZW1wRGlyZWN0b3J5UGF0aCk7XG4gICAgICAgIGxldCBzY3JlZW5zaG90RGF0YTtcblxuICAgICAgICBpZiAoaXNJblF1ZXVlKHNjcmVlbnNob3RQYXRoKSlcbiAgICAgICAgICAgIHRoaXMud2FybmluZ0xvZy5hZGRXYXJuaW5nKFdBUk5JTkdfTUVTU0FHRS5zY3JlZW5zaG90UmV3cml0aW5nRXJyb3IsIHNjcmVlbnNob3RQYXRoKTtcblxuICAgICAgICBhd2FpdCBhZGRUb1F1ZXVlKHNjcmVlbnNob3RQYXRoLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnRBcmVhRGltZW5zaW9ucyA9IENhcHR1cmVyLl9nZXRDbGllbnRBcmVhRGltZW5zaW9ucyhwYWdlRGltZW5zaW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IHBhZ2VXaWR0aCwgaGVpZ2h0OiBwYWdlSGVpZ2h0IH0gPSBjbGllbnRBcmVhRGltZW5zaW9ucyB8fCB7fTtcblxuICAgICAgICAgICAgY29uc3QgdGFrZVNjcmVlbnNob3RPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIGZpbGVQYXRoOiB0ZW1wUGF0aCxcbiAgICAgICAgICAgICAgICBwYWdlV2lkdGgsXG4gICAgICAgICAgICAgICAgcGFnZUhlaWdodCxcbiAgICAgICAgICAgICAgICBmdWxsUGFnZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Rha2VTY3JlZW5zaG90KHRha2VTY3JlZW5zaG90T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGlmICghYXdhaXQgQ2FwdHVyZXIuX2lzU2NyZWVuc2hvdENhcHR1cmVkKHRlbXBQYXRoKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgcmVhZFBuZ0ZpbGUodGVtcFBhdGgpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXJrU2VlZFBvc2l0aW9uID0gbWFya1NlZWQgPyBjYWxjdWxhdGVNYXJrUG9zaXRpb24oaW1hZ2UsIG1hcmtTZWVkKSA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmIChtYXJrU2VlZCAmJiAhbWFya1NlZWRQb3NpdGlvbilcbiAgICAgICAgICAgICAgICB0aGlzLndhcm5pbmdMb2cuYWRkV2FybmluZyhXQVJOSU5HX01FU1NBR0Uuc2NyZWVuc2hvdE1hcmtOb3RGb3VuZCwgdGVtcFBhdGgsIG1hcmtTZWVkVG9JZChtYXJrU2VlZCkpO1xuXG4gICAgICAgICAgICBjb25zdCBjcm9wcGVkSW1hZ2UgPSBhd2FpdCBjcm9wU2NyZWVuc2hvdChpbWFnZSwge1xuICAgICAgICAgICAgICAgIG1hcmtTZWVkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgY2xpZW50QXJlYURpbWVuc2lvbnMsXG4gICAgICAgICAgICAgICAgcGF0aDogICAgICAgICAgIHRlbXBQYXRoLFxuICAgICAgICAgICAgICAgIGNyb3BEaW1lbnNpb25zOiBDYXB0dXJlci5fZ2V0Q3JvcERpbWVuc2lvbnMoY3JvcERpbWVuc2lvbnMsIHBhZ2VEaW1lbnNpb25zKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY3JvcHBlZEltYWdlKVxuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlUG5nKHRlbXBQYXRoLCBjcm9wcGVkSW1hZ2UpO1xuXG4gICAgICAgICAgICBzY3JlZW5zaG90RGF0YSA9IGF3YWl0IHJlYWRGaWxlKHRlbXBQYXRoKTtcblxuICAgICAgICAgICAgaWYgKGZvckVycm9yICYmIHRoaXMuYXV0b1Rha2VPbkZhaWxzKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgYXdhaXQgbWFrZURpcihkaXJuYW1lKHNjcmVlbnNob3RQYXRoKSk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2NyZWVuc2hvdFBhdGgsIHNjcmVlbnNob3REYXRhKTtcblxuICAgICAgICAgICAgaWYgKHRodW1ibmFpbHMpXG4gICAgICAgICAgICAgICAgYXdhaXQgZ2VuZXJhdGVUaHVtYm5haWwoc2NyZWVuc2hvdFBhdGgsIHRodW1ibmFpbFBhdGgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0ZXN0UnVuSWQgICAgICAgICA9IHRoaXMudGVzdEVudHJ5LnRlc3RSdW5zW3RoaXMuYnJvd3NlcklkXS5pZDtcbiAgICAgICAgY29uc3QgdXNlckFnZW50ICAgICAgICAgPSBlc2NhcGVVc2VyQWdlbnQodGhpcy5wYXRoUGF0dGVybi5kYXRhLnBhcnNlZFVzZXJBZ2VudC5wcmV0dHlVc2VyQWdlbnQpO1xuICAgICAgICBjb25zdCBxdWFyYW50aW5lQXR0ZW1wdCA9IHRoaXMucGF0aFBhdHRlcm4uZGF0YS5xdWFyYW50aW5lQXR0ZW1wdDtcbiAgICAgICAgY29uc3QgdGFrZW5PbkZhaWwgICAgICAgPSBmb3JFcnJvcjtcblxuICAgICAgICBjb25zdCBzY3JlZW5zaG90ID0ge1xuICAgICAgICAgICAgdGVzdFJ1bklkLFxuICAgICAgICAgICAgc2NyZWVuc2hvdFBhdGgsXG4gICAgICAgICAgICBzY3JlZW5zaG90RGF0YSxcbiAgICAgICAgICAgIHRodW1ibmFpbFBhdGgsXG4gICAgICAgICAgICB1c2VyQWdlbnQsXG4gICAgICAgICAgICBxdWFyYW50aW5lQXR0ZW1wdCxcbiAgICAgICAgICAgIHRha2VuT25GYWlsLFxuICAgICAgICAgICAgYWN0aW9uSWQ6IGZhaWxlZEFjdGlvbklkIHx8IGFjdGlvbklkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudGVzdEVudHJ5LnNjcmVlbnNob3RzLnB1c2goc2NyZWVuc2hvdCk7XG5cbiAgICAgICAgcmV0dXJuIHNjcmVlbnNob3RQYXRoO1xuICAgIH1cblxuICAgIGFzeW5jIGNhcHR1cmVBY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NhcHR1cmUoZmFsc2UsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGFzeW5jIGNhcHR1cmVFcnJvciAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2FwdHVyZSh0cnVlLCBvcHRpb25zKTtcbiAgICB9XG59XG5cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvY2FwdHVyZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFJYztBQUVkLG1FQUEyRDtBQUMzRCxpQ0FJZ0I7QUFDaEIsc0RBQTZEO0FBQzdELHVGQUErRDtBQUMvRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELDBFQUl3QztBQUV4Qyw0RUFBK0Q7QUFHL0QsTUFBcUIsUUFBUTtJQUN6QixtQ0FBbUM7SUFDbkMsWUFBYSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDbEcsSUFBSSxDQUFDLE9BQU8sR0FBZSxDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQWEsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQWMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFhLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBWSxVQUFVLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBVyxXQUFXLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBYyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBWSxVQUFVLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTtRQUNqRixJQUFJLGFBQWEsR0FBRyxhQUFhO1lBQzdCLE9BQU8saUJBQWlCLENBQUM7UUFFN0IsSUFBSSxpQkFBaUIsR0FBRyxhQUFhO1lBQ2pDLE9BQU8sYUFBYSxDQUFDO1FBRXpCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FB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RUFBRSxZQUFZLENBQUMsQ0FBQztZQUVqRCxJQUFJLFVBQVU7Z0JBQ1YsTUFBTSxJQUFBLDBDQUFpQixFQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsTUFBTSxTQUFTLEdBQVcsSUFBQSwyQkFBZSxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xFLE1BQU0sV0FBVyxHQUFTLFFBQVEsQ0FBQztRQUVuQyxNQUFNLFVBQVUsR0FBRztZQUNmLFNBQVM7WUFDVCxjQUFjO1lBQ2QsYUFBYTtZQUNiLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIsV0FBVztZQUNYLFFBQVEsRUFBRSxjQUFjLElBQUksUUFBUTtTQUN2QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTVDLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFFLE9BQU87UUFDeEIsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFFLE9BQU87UUFDdkIsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQWhMRCwyQkFnTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGpvaW4gYXMgam9pblBhdGgsXG4gICAgZGlybmFtZSxcbiAgICBiYXNlbmFtZSxcbn0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGdlbmVyYXRlVGh1bWJuYWlsIH0gZnJvbSAndGVzdGNhZmUtYnJvd3Nlci10b29scyc7XG5pbXBvcnQge1xuICAgIGNyb3BTY3JlZW5zaG90LFxuICAgIGNhbGN1bGF0ZU1hcmtQb3NpdGlvbixcbiAgICBtYXJrU2VlZFRvSWQsXG59IGZyb20gJy4vY3JvcCc7XG5pbXBvcnQgeyBpc0luUXVldWUsIGFkZFRvUXVldWUgfSBmcm9tICcuLi91dGlscy9hc3luYy1xdWV1ZSc7XG5pbXBvcnQgV0FSTklOR19NRVNTQUdFIGZyb20gJy4uL25vdGlmaWNhdGlvbnMvd2FybmluZy1tZXNzYWdlJztcbmltcG9ydCBlc2NhcGVVc2VyQWdlbnQgZnJvbSAnLi4vdXRpbHMvZXNjYXBlLXVzZXItYWdlbnQnO1xuaW1wb3J0IGNvcnJlY3RGaWxlUGF0aCBmcm9tICcuLi91dGlscy9jb3JyZWN0LWZpbGUtcGF0aCc7XG5pbXBvcnQge1xuICAgIHJlYWRQbmdGaWxlLFxuICAgIHN0YXQsXG4gICAgd3JpdGVQbmcsXG59IGZyb20gJy4uL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5cbmltcG9ydCBERUZBVUxUX1NDUkVFTlNIT1RfRVhURU5TSU9OIGZyb20gJy4vZGVmYXVsdC1leHRlbnNpb24nO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhcHR1cmVyIHtcbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byB1c2UgZGljdGlvbmFyeVxuICAgIGNvbnN0cnVjdG9yIChiYXNlU2NyZWVuc2hvdHNQYXRoLCB0ZXN0RW50cnksIGNvbm5lY3Rpb24sIHBhdGhQYXR0ZXJuLCBmdWxsUGFnZSwgdGh1bWJuYWlscywgd2FybmluZ0xvZykge1xuICAgICAgICB0aGlzLmVuYWJsZWQgICAgICAgICAgICAgPSAhIWJhc2VTY3JlZW5zaG90c1BhdGg7XG4gICAgICAgIHRoaXMuYmFzZVNjcmVlbnNob3RzUGF0aCA9IGJhc2VTY3JlZW5zaG90c1BhdGg7XG4gICAgICAgIHRoaXMudGVzdEVudHJ5ICAgICAgICAgICA9IHRlc3RFbnRyeTtcbiAgICAgICAgdGhpcy5wcm92aWRlciAgICAgICAgICAgID0gY29ubmVjdGlvbi5wcm92aWRlcjtcbiAgICAgICAgdGhpcy5icm93c2VySWQgICAgICAgICAgID0gY29ubmVjdGlvbi5pZDtcbiAgICAgICAgdGhpcy53YXJuaW5nTG9nICAgICAgICAgID0gd2FybmluZ0xvZztcbiAgICAgICAgdGhpcy5wYXRoUGF0dGVybiAgICAgICAgID0gcGF0aFBhdHRlcm47XG4gICAgICAgIHRoaXMuZnVsbFBhZ2UgICAgICAgICAgICA9IGZ1bGxQYWdlO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHMgICAgICAgICAgPSB0aHVtYm5haWxzO1xuICAgIH1cblxuICAgIHN0YXRpYyBfZ2V0RGltZW5zaW9uV2l0aG91dFNjcm9sbGJhciAoZnVsbERpbWVuc2lvbiwgZG9jdW1lbnREaW1lbnNpb24sIGJvZHlEaW1lbnNpb24pIHtcbiAgICAgICAgaWYgKGJvZHlEaW1lbnNpb24gPiBmdWxsRGltZW5zaW9uKVxuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RGltZW5zaW9uO1xuXG4gICAgICAgIGlmIChkb2N1bWVudERpbWVuc2lvbiA+IGZ1bGxEaW1lbnNpb24pXG4gICAgICAgICAgICByZXR1cm4gYm9keURpbWVuc2lvbjtcblxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnREaW1lbnNpb24sIGJvZHlEaW1lbnNpb24pO1xuICAgIH1cblxuICAgIHN0YXRpYyBfZ2V0Q3JvcERpbWVuc2lvbnMgKGNyb3BEaW1lbnNpb25zLCBwYWdlRGltZW5zaW9ucykge1xuICAgICAgICBpZiAoIWNyb3BEaW1lbnNpb25zIHx8ICFwYWdlRGltZW5zaW9ucylcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHsgZHByIH0gICAgICAgICAgICAgICAgICAgICAgPSBwYWdlRGltZW5zaW9ucztcbiAgICAgICAgY29uc3QgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSA9IGNyb3BEaW1lbnNpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6ICAgIE1hdGgucm91bmQodG9wICogZHByKSxcbiAgICAgICAgICAgIGxlZnQ6ICAgTWF0aC5yb3VuZChsZWZ0ICogZHByKSxcbiAgICAgICAgICAgIGJvdHRvbTogTWF0aC5yb3VuZChib3R0b20gKiBkcHIpLFxuICAgICAgICAgICAgcmlnaHQ6ICBNYXRoLnJvdW5kKHJpZ2h0ICogZHByKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2dldENsaWVudEFyZWFEaW1lbnNpb25zIChwYWdlRGltZW5zaW9ucykge1xuICAgICAgICBpZiAoIXBhZ2VEaW1lbnNpb25zKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgeyBpbm5lcldpZHRoLCBkb2N1bWVudFdpZHRoLCBib2R5V2lkdGgsIGlubmVySGVpZ2h0LCBkb2N1bWVudEhlaWdodCwgYm9keUhlaWdodCwgZHByIH0gPSBwYWdlRGltZW5zaW9ucztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6ICBNYXRoLmZsb29yKENhcHR1cmVyLl9nZXREaW1lbnNpb25XaXRob3V0U2Nyb2xsYmFyKGlubmVyV2lkdGgsIGRvY3VtZW50V2lkdGgsIGJvZHlXaWR0aCkgKiBkcHIpLFxuICAgICAgICAgICAgaGVpZ2h0OiBNYXRoLmZsb29yKENhcHR1cmVyLl9nZXREaW1lbnNpb25XaXRob3V0U2Nyb2xsYmFyKGlubmVySGVpZ2h0LCBkb2N1bWVudEhlaWdodCwgYm9keUhlaWdodCkgKiBkcHIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBfaXNTY3JlZW5zaG90Q2FwdHVyZWQgKHNjcmVlbnNob3RQYXRoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXQoc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3RhdHMuaXNGaWxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9qb2luV2l0aEJhc2VTY3JlZW5zaG90UGF0aCAocGF0aCkge1xuICAgICAgICByZXR1cm4gam9pblBhdGgodGhpcy5iYXNlU2NyZWVuc2hvdHNQYXRoLCBwYXRoKTtcbiAgICB9XG5cbiAgICBfaW5jcmVtZW50RmlsZUluZGV4ZXMgKGZvckVycm9yKSB7XG4gICAgICAgIGlmIChmb3JFcnJvcilcbiAgICAgICAgICAgIHRoaXMucGF0aFBhdHRlcm4uZGF0YS5lcnJvckZpbGVJbmRleCsrO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMucGF0aFBhdHRlcm4uZGF0YS5maWxlSW5kZXgrKztcbiAgICB9XG5cbiAgICBfZ2V0Q3VzdG9tU2NyZWVuc2hvdFBhdGggKGN1c3RvbVBhdGgpIHtcbiAgICAgICAgY29uc3QgY29ycmVjdGVkQ3VzdG9tUGF0aCA9IGNvcnJlY3RGaWxlUGF0aChjdXN0b21QYXRoLCBERUZBVUxUX1NDUkVFTlNIT1RfRVhURU5TSU9OKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fam9pbldpdGhCYXNlU2NyZWVuc2hvdFBhdGgoY29ycmVjdGVkQ3VzdG9tUGF0aCk7XG4gICAgfVxuXG4gICAgX2dldFNjcmVlbnNob3RQYXRoIChmb3JFcnJvcikge1xuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoUGF0dGVybi5nZXRQYXRoKGZvckVycm9yKTtcblxuICAgICAgICB0aGlzLl9pbmNyZW1lbnRGaWxlSW5kZXhlcyhmb3JFcnJvcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2pvaW5XaXRoQmFzZVNjcmVlbnNob3RQYXRoKHBhdGgpO1xuICAgIH1cblxuICAgIF9nZXRUaHVtYm5haWxQYXRoIChzY3JlZW5zaG90UGF0aCkge1xuICAgICAgICBjb25zdCBpbWFnZU5hbWUgPSBiYXNlbmFtZShzY3JlZW5zaG90UGF0aCk7XG4gICAgICAgIGNvbnN0IGltYWdlRGlyICA9IGRpcm5hbWUoc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgIHJldHVybiBqb2luUGF0aChpbWFnZURpciwgJ3RodW1ibmFpbHMnLCBpbWFnZU5hbWUpO1xuICAgIH1cblxuICAgIGFzeW5jIF90YWtlU2NyZWVuc2hvdCAoeyBmaWxlUGF0aCwgcGFnZVdpZHRoLCBwYWdlSGVpZ2h0LCBmdWxsUGFnZSA9IHRoaXMuZnVsbFBhZ2UgfSkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb3ZpZGVyLnRha2VTY3JlZW5zaG90KHRoaXMuYnJvd3NlcklkLCBmaWxlUGF0aCwgcGFnZVdpZHRoLCBwYWdlSGVpZ2h0LCBmdWxsUGFnZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX2NhcHR1cmUgKGZvckVycm9yLCB7IGFjdGlvbklkLCBmYWlsZWRBY3Rpb25JZCwgcGFnZURpbWVuc2lvbnMsIGNyb3BEaW1lbnNpb25zLCBtYXJrU2VlZCwgY3VzdG9tUGF0aCwgZnVsbFBhZ2UsIHRodW1ibmFpbHMgfSA9IHt9KSB7XG4gICAgICAgIGlmICghdGhpcy5lbmFibGVkKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgdGh1bWJuYWlscyA9IHRodW1ibmFpbHMgPT09IHZvaWQgMCA/IHRoaXMudGh1bWJuYWlscyA6IHRodW1ibmFpbHM7XG5cbiAgICAgICAgY29uc3Qgc2NyZWVuc2hvdFBhdGggPSBjdXN0b21QYXRoID8gdGhpcy5fZ2V0Q3VzdG9tU2NyZWVuc2hvdFBhdGgoY3VzdG9tUGF0aCkgOiB0aGlzLl9nZXRTY3JlZW5zaG90UGF0aChmb3JFcnJvcik7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbFBhdGggID0gdGhpcy5fZ2V0VGh1bWJuYWlsUGF0aChzY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgaWYgKGlzSW5RdWV1ZShzY3JlZW5zaG90UGF0aCkpXG4gICAgICAgICAgICB0aGlzLndhcm5pbmdMb2cuYWRkV2FybmluZyhXQVJOSU5HX01FU1NBR0Uuc2NyZWVuc2hvdFJld3JpdGluZ0Vycm9yLCBzY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgYXdhaXQgYWRkVG9RdWV1ZShzY3JlZW5zaG90UGF0aCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50QXJlYURpbWVuc2lvbnMgPSBDYXB0dXJlci5fZ2V0Q2xpZW50QXJlYURpbWVuc2lvbnMocGFnZURpbWVuc2lvbnMpO1xuXG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBwYWdlV2lkdGgsIGhlaWdodDogcGFnZUhlaWdodCB9ID0gY2xpZW50QXJlYURpbWVuc2lvbnMgfHwge307XG5cbiAgICAgICAgICAgIGNvbnN0IHRha2VTY3JlZW5zaG90T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWxlUGF0aDogc2NyZWVuc2hvdFBhdGgsXG4gICAgICAgICAgICAgICAgcGFnZVdpZHRoLFxuICAgICAgICAgICAgICAgIHBhZ2VIZWlnaHQsXG4gICAgICAgICAgICAgICAgZnVsbFBhZ2UsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl90YWtlU2NyZWVuc2hvdCh0YWtlU2NyZWVuc2hvdE9wdGlvbnMpO1xuXG4gICAgICAgICAgICBpZiAoIWF3YWl0IENhcHR1cmVyLl9pc1NjcmVlbnNob3RDYXB0dXJlZChzY3JlZW5zaG90UGF0aCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IHJlYWRQbmdGaWxlKHNjcmVlbnNob3RQYXRoKTtcblxuICAgICAgICAgICAgY29uc3QgbWFya1NlZWRQb3NpdGlvbiA9IG1hcmtTZWVkID8gY2FsY3VsYXRlTWFya1Bvc2l0aW9uKGltYWdlLCBtYXJrU2VlZCkgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAobWFya1NlZWQgJiYgIW1hcmtTZWVkUG9zaXRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFLnNjcmVlbnNob3RNYXJrTm90Rm91bmQsIHNjcmVlbnNob3RQYXRoLCBtYXJrU2VlZFRvSWQobWFya1NlZWQpKTtcblxuICAgICAgICAgICAgY29uc3QgY3JvcHBlZEltYWdlID0gYXdhaXQgY3JvcFNjcmVlbnNob3QoaW1hZ2UsIHtcbiAgICAgICAgICAgICAgICBtYXJrU2VlZFBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIGNsaWVudEFyZWFEaW1lbnNpb25zLFxuICAgICAgICAgICAgICAgIHBhdGg6ICAgICAgICAgICBzY3JlZW5zaG90UGF0aCxcbiAgICAgICAgICAgICAgICBjcm9wRGltZW5zaW9uczogQ2FwdHVyZXIuX2dldENyb3BEaW1lbnNpb25zKGNyb3BEaW1lbnNpb25zLCBwYWdlRGltZW5zaW9ucyksXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGNyb3BwZWRJbWFnZSlcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZVBuZyhzY3JlZW5zaG90UGF0aCwgY3JvcHBlZEltYWdlKTtcblxuICAgICAgICAgICAgaWYgKHRodW1ibmFpbHMpXG4gICAgICAgICAgICAgICAgYXdhaXQgZ2VuZXJhdGVUaHVtYm5haWwoc2NyZWVuc2hvdFBhdGgsIHRodW1ibmFpbFBhdGgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0ZXN0UnVuSWQgICAgICAgICA9IHRoaXMudGVzdEVudHJ5LnRlc3RSdW5zW3RoaXMuYnJvd3NlcklkXS5pZDtcbiAgICAgICAgY29uc3QgdXNlckFnZW50ICAgICAgICAgPSBlc2NhcGVVc2VyQWdlbnQodGhpcy5wYXRoUGF0dGVybi5kYXRhLnBhcnNlZFVzZXJBZ2VudC5wcmV0dHlVc2VyQWdlbnQpO1xuICAgICAgICBjb25zdCBxdWFyYW50aW5lQXR0ZW1wdCA9IHRoaXMucGF0aFBhdHRlcm4uZGF0YS5xdWFyYW50aW5lQXR0ZW1wdDtcbiAgICAgICAgY29uc3QgdGFrZW5PbkZhaWwgICAgICAgPSBmb3JFcnJvcjtcblxuICAgICAgICBjb25zdCBzY3JlZW5zaG90ID0ge1xuICAgICAgICAgICAgdGVzdFJ1bklkLFxuICAgICAgICAgICAgc2NyZWVuc2hvdFBhdGgsXG4gICAgICAgICAgICB0aHVtYm5haWxQYXRoLFxuICAgICAgICAgICAgdXNlckFnZW50LFxuICAgICAgICAgICAgcXVhcmFudGluZUF0dGVtcHQsXG4gICAgICAgICAgICB0YWtlbk9uRmFpbCxcbiAgICAgICAgICAgIGFjdGlvbklkOiBmYWlsZWRBY3Rpb25JZCB8fCBhY3Rpb25JZCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnRlc3RFbnRyeS5zY3JlZW5zaG90cy5wdXNoKHNjcmVlbnNob3QpO1xuXG4gICAgICAgIHJldHVybiBzY3JlZW5zaG90UGF0aDtcbiAgICB9XG5cbiAgICBhc3luYyBjYXB0dXJlQWN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jYXB0dXJlKGZhbHNlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBhc3luYyBjYXB0dXJlRXJyb3IgKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NhcHR1cmUodHJ1ZSwgb3B0aW9ucyk7XG4gICAgfVxufVxuXG4iXX0=
@@ -9,15 +9,8 @@ const capturer_1 = __importDefault(require("./capturer"));
9
9
  const path_pattern_1 = __importDefault(require("../utils/path-pattern"));
10
10
  const get_common_path_1 = __importDefault(require("../utils/get-common-path"));
11
11
  const default_extension_1 = __importDefault(require("./default-extension"));
12
- const temp_directory_1 = __importDefault(require("../utils/temp-directory"));
13
- const create_safe_listener_1 = __importDefault(require("../utils/create-safe-listener"));
14
- const debug_1 = __importDefault(require("debug"));
15
- const events_1 = require("events");
16
- const DEBUG_LOGGER = (0, debug_1.default)('testcafe:screenshots');
17
- const TEMP_DIR_PREFIX = 'screenshots';
18
- class Screenshots extends events_1.EventEmitter {
19
- constructor({ enabled, path, pathPattern, fullPage, thumbnails, autoTakeOnFails, messageBus }) {
20
- super();
12
+ class Screenshots {
13
+ constructor({ enabled, path, pathPattern, fullPage, thumbnails }) {
21
14
  this.enabled = enabled;
22
15
  this.screenshotsPath = path;
23
16
  this.screenshotsPattern = pathPattern;
@@ -25,18 +18,6 @@ class Screenshots extends events_1.EventEmitter {
25
18
  this.thumbnails = thumbnails;
26
19
  this.testEntries = [];
27
20
  this.now = (0, moment_1.default)();
28
- this.tempDirectory = new temp_directory_1.default(TEMP_DIR_PREFIX);
29
- this.autoTakeOnFails = autoTakeOnFails;
30
- this._assignEventHandlers(messageBus);
31
- }
32
- _createSafeListener(listener) {
33
- return (0, create_safe_listener_1.default)(this, listener, DEBUG_LOGGER);
34
- }
35
- _assignEventHandlers(messageBus) {
36
- messageBus.once('start', this._createSafeListener(this._onMessageBusStart));
37
- }
38
- async _onMessageBusStart() {
39
- await this.tempDirectory.init();
40
21
  }
41
22
  _addTestEntry(test) {
42
23
  const testEntry = {
@@ -77,7 +58,7 @@ class Screenshots extends events_1.EventEmitter {
77
58
  test: test.name,
78
59
  parsedUserAgent: connection.browserInfo.parsedUserAgent,
79
60
  });
80
- return new capturer_1.default(this.screenshotsPath, testEntry, connection, pathPattern, this.fullPage, this.thumbnails, warningLog, this.tempDirectory.path, this.autoTakeOnFails);
61
+ return new capturer_1.default(this.screenshotsPath, testEntry, connection, pathPattern, this.fullPage, this.thumbnails, warningLog);
81
62
  }
82
63
  addTestRun(test, testRun) {
83
64
  const testEntry = this._getTestEntry(test);
@@ -86,4 +67,4 @@ class Screenshots extends events_1.EventEmitter {
86
67
  }
87
68
  exports.default = Screenshots;
88
69
  module.exports = exports.default;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBOEI7QUFDOUIsb0RBQTRCO0FBQzVCLDBEQUFrQztBQUNsQyx5RUFBZ0Q7QUFDaEQsK0VBQXFEO0FBQ3JELDRFQUErRDtBQUMvRCw2RUFBb0Q7QUFDcEQseUZBQStEO0FBQy9ELGtEQUEwQjtBQUMxQixtQ0FBc0M7QUFFdEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUVuRCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUM7QUFFdEMsTUFBcUIsV0FBWSxTQUFRLHFCQUFZO0lBQ2pELFlBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUU7UUFDMUYsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsT0FBTyxHQUFjLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFNLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQWEsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQVcsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQWtCLElBQUEsZ0JBQU0sR0FBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQVEsSUFBSSx3QkFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxlQUFlLEdBQU0sZUFBZSxDQUFDO1FBRTFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUUsUUFBUTtRQUN6QixPQUFPLElBQUEsOEJBQWtCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsb0JBQW9CLENBQUUsVUFBVTtRQUM1QixVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQjtRQUNwQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBRSxJQUFJO1FBQ2YsTUFBTSxTQUFTLEdBQUc7WUFDZCxJQUFJLEVBQVMsSUFBSTtZQUNqQixRQUFRLEVBQUssRUFBRTtZQUNmLFdBQVcsRUFBRSxFQUFFO1NBQ2xCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFFLElBQUk7UUFDZixPQUFPLElBQUEsYUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxJQUFJO1FBQ2xCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFNBQVM7WUFDVixTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCLENBQUUsSUFBSTtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjLENBQUUsSUFBSTtRQUNoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUUsSUFBSTtRQUNaLE1BQU0sU0FBUyxHQUFTLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0YsT0FBTyxJQUFBLHlCQUFhLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGlCQUFpQixDQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO1FBQ2xFLE1BQU0sU0FBUyxHQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLHNCQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLDJCQUE0QixFQUFFO1lBQ3ZGLFNBQVM7WUFDVCxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hFLEdBQUcsRUFBZ0IsSUFBSSxDQUFDLEdBQUc7WUFDM0IsT0FBTyxFQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQyxJQUFJLEVBQWUsSUFBSSxDQUFDLElBQUk7WUFDNUIsZUFBZSxFQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsZUFBZTtTQUM1RCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksa0JBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdLLENBQUM7SUFFRCxVQUFVLENBQUUsSUFBSSxFQUFFLE9BQU87UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDL0QsQ0FBQztDQUNKO0FBeEZELDhCQXdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IENhcHR1cmVyIGZyb20gJy4vY2FwdHVyZXInO1xuaW1wb3J0IFBhdGhQYXR0ZXJuIGZyb20gJy4uL3V0aWxzL3BhdGgtcGF0dGVybic7XG5pbXBvcnQgZ2V0Q29tbW9uUGF0aCBmcm9tICcuLi91dGlscy9nZXQtY29tbW9uLXBhdGgnO1xuaW1wb3J0IERFRkFVTFRfU0NSRUVOU0hPVF9FWFRFTlNJT04gZnJvbSAnLi9kZWZhdWx0LWV4dGVuc2lvbic7XG5pbXBvcnQgVGVtcERpcmVjdG9yeSBmcm9tICcuLi91dGlscy90ZW1wLWRpcmVjdG9yeSc7XG5pbXBvcnQgY3JlYXRlU2FmZUxpc3RlbmVyIGZyb20gJy4uL3V0aWxzL2NyZWF0ZS1zYWZlLWxpc3RlbmVyJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG5jb25zdCBERUJVR19MT0dHRVIgPSBkZWJ1ZygndGVzdGNhZmU6c2NyZWVuc2hvdHMnKTtcblxuY29uc3QgVEVNUF9ESVJfUFJFRklYID0gJ3NjcmVlbnNob3RzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NyZWVuc2hvdHMgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yICh7IGVuYWJsZWQsIHBhdGgsIHBhdGhQYXR0ZXJuLCBmdWxsUGFnZSwgdGh1bWJuYWlscywgYXV0b1Rha2VPbkZhaWxzLCBtZXNzYWdlQnVzIH0pIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmVuYWJsZWQgICAgICAgICAgICA9IGVuYWJsZWQ7XG4gICAgICAgIHRoaXMuc2NyZWVuc2hvdHNQYXRoICAgID0gcGF0aDtcbiAgICAgICAgdGhpcy5zY3JlZW5zaG90c1BhdHRlcm4gPSBwYXRoUGF0dGVybjtcbiAgICAgICAgdGhpcy5mdWxsUGFnZSAgICAgICAgICAgPSBmdWxsUGFnZTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxzICAgICAgICAgPSB0aHVtYm5haWxzO1xuICAgICAgICB0aGlzLnRlc3RFbnRyaWVzICAgICAgICA9IFtdO1xuICAgICAgICB0aGlzLm5vdyAgICAgICAgICAgICAgICA9IG1vbWVudCgpO1xuICAgICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgICAgICA9IG5ldyBUZW1wRGlyZWN0b3J5KFRFTVBfRElSX1BSRUZJWCk7XG4gICAgICAgIHRoaXMuYXV0b1Rha2VPbkZhaWxzICAgID0gYXV0b1Rha2VPbkZhaWxzO1xuXG4gICAgICAgIHRoaXMuX2Fzc2lnbkV2ZW50SGFuZGxlcnMobWVzc2FnZUJ1cyk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZVNhZmVMaXN0ZW5lciAobGlzdGVuZXIpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNhZmVMaXN0ZW5lcih0aGlzLCBsaXN0ZW5lciwgREVCVUdfTE9HR0VSKTtcbiAgICB9XG5cbiAgICBfYXNzaWduRXZlbnRIYW5kbGVycyAobWVzc2FnZUJ1cykge1xuICAgICAgICBtZXNzYWdlQnVzLm9uY2UoJ3N0YXJ0JywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKHRoaXMuX29uTWVzc2FnZUJ1c1N0YXJ0KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uTWVzc2FnZUJ1c1N0YXJ0ICgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50ZW1wRGlyZWN0b3J5LmluaXQoKTtcbiAgICB9XG5cbiAgICBfYWRkVGVzdEVudHJ5ICh0ZXN0KSB7XG4gICAgICAgIGNvbnN0IHRlc3RFbnRyeSA9IHtcbiAgICAgICAgICAgIHRlc3Q6ICAgICAgICB0ZXN0LFxuICAgICAgICAgICAgdGVzdFJ1bnM6ICAgIHt9LFxuICAgICAgICAgICAgc2NyZWVuc2hvdHM6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudGVzdEVudHJpZXMucHVzaCh0ZXN0RW50cnkpO1xuXG4gICAgICAgIHJldHVybiB0ZXN0RW50cnk7XG4gICAgfVxuXG4gICAgX2dldFRlc3RFbnRyeSAodGVzdCkge1xuICAgICAgICByZXR1cm4gZmluZCh0aGlzLnRlc3RFbnRyaWVzLCBlbnRyeSA9PiBlbnRyeS50ZXN0ID09PSB0ZXN0KTtcbiAgICB9XG5cbiAgICBfZW5zdXJlVGVzdEVudHJ5ICh0ZXN0KSB7XG4gICAgICAgIGxldCB0ZXN0RW50cnkgPSB0aGlzLl9nZXRUZXN0RW50cnkodGVzdCk7XG5cbiAgICAgICAgaWYgKCF0ZXN0RW50cnkpXG4gICAgICAgICAgICB0ZXN0RW50cnkgPSB0aGlzLl9hZGRUZXN0RW50cnkodGVzdCk7XG5cbiAgICAgICAgcmV0dXJuIHRlc3RFbnRyeTtcbiAgICB9XG5cbiAgICBnZXRTY3JlZW5zaG90c0luZm8gKHRlc3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFRlc3RFbnRyeSh0ZXN0KS5zY3JlZW5zaG90cztcbiAgICB9XG5cbiAgICBoYXNDYXB0dXJlZEZvciAodGVzdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTY3JlZW5zaG90c0luZm8odGVzdCkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRQYXRoRm9yICh0ZXN0KSB7XG4gICAgICAgIGNvbnN0IHRlc3RFbnRyeSAgICAgICA9IHRoaXMuX2dldFRlc3RFbnRyeSh0ZXN0KTtcbiAgICAgICAgY29uc3Qgc2NyZWVuc2hvdFBhdGhzID0gdGVzdEVudHJ5LnNjcmVlbnNob3RzLm1hcChzY3JlZW5zaG90ID0+IHNjcmVlbnNob3Quc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgIHJldHVybiBnZXRDb21tb25QYXRoKHNjcmVlbnNob3RQYXRocyk7XG4gICAgfVxuXG4gICAgY3JlYXRlQ2FwdHVyZXJGb3IgKHRlc3QsIHRlc3RJbmRleCwgcXVhcmFudGluZSwgY29ubmVjdGlvbiwgd2FybmluZ0xvZykge1xuICAgICAgICBjb25zdCB0ZXN0RW50cnkgICA9IHRoaXMuX2Vuc3VyZVRlc3RFbnRyeSh0ZXN0KTtcbiAgICAgICAgY29uc3QgcGF0aFBhdHRlcm4gPSBuZXcgUGF0aFBhdHRlcm4odGhpcy5zY3JlZW5zaG90c1BhdHRlcm4sIERFRkFVTFRfU0NSRUVOU0hPVF9FWFRFTlNJT04sIHtcbiAgICAgICAgICAgIHRlc3RJbmRleCxcbiAgICAgICAgICAgIHF1YXJhbnRpbmVBdHRlbXB0OiBxdWFyYW50aW5lID8gcXVhcmFudGluZS5nZXROZXh0QXR0ZW1wdE51bWJlcigpIDogbnVsbCxcbiAgICAgICAgICAgIG5vdzogICAgICAgICAgICAgICB0aGlzLm5vdyxcbiAgICAgICAgICAgIGZpeHR1cmU6ICAgICAgICAgICB0ZXN0LmZpeHR1cmUubmFtZSxcbiAgICAgICAgICAgIHRlc3Q6ICAgICAgICAgICAgICB0ZXN0Lm5hbWUsXG4gICAgICAgICAgICBwYXJzZWRVc2VyQWdlbnQ6ICAgY29ubmVjdGlvbi5icm93c2VySW5mby5wYXJzZWRVc2VyQWdlbnQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgQ2FwdHVyZXIodGhpcy5zY3JlZW5zaG90c1BhdGgsIHRlc3RFbnRyeSwgY29ubmVjdGlvbiwgcGF0aFBhdHRlcm4sIHRoaXMuZnVsbFBhZ2UsIHRoaXMudGh1bWJuYWlscywgd2FybmluZ0xvZywgdGhpcy50ZW1wRGlyZWN0b3J5LnBhdGgsIHRoaXMuYXV0b1Rha2VPbkZhaWxzKTtcbiAgICB9XG5cbiAgICBhZGRUZXN0UnVuICh0ZXN0LCB0ZXN0UnVuKSB7XG4gICAgICAgIGNvbnN0IHRlc3RFbnRyeSA9IHRoaXMuX2dldFRlc3RFbnRyeSh0ZXN0KTtcblxuICAgICAgICB0ZXN0RW50cnkudGVzdFJ1bnNbdGVzdFJ1bi5icm93c2VyQ29ubmVjdGlvbi5pZF0gPSB0ZXN0UnVuO1xuICAgIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBOEI7QUFDOUIsb0RBQTRCO0FBQzVCLDBEQUFrQztBQUNsQyx5RUFBZ0Q7QUFDaEQsK0VBQXFEO0FBQ3JELDRFQUErRDtBQUcvRCxNQUFxQixXQUFXO0lBQzVCLFlBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQWMsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQU0sSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBYSxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBVyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBa0IsSUFBQSxnQkFBTSxHQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBRSxJQUFJO1FBQ2YsTUFBTSxTQUFTLEdBQUc7WUFDZCxJQUFJLEVBQVMsSUFBSTtZQUNqQixRQUFRLEVBQUssRUFBRTtZQUNmLFdBQVcsRUFBRSxFQUFFO1NBQ2xCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFFLElBQUk7UUFDZixPQUFPLElBQUEsYUFBSSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxJQUFJO1FBQ2xCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFNBQVM7WUFDVixTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCLENBQUUsSUFBSTtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjLENBQUUsSUFBSTtRQUNoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUUsSUFBSTtRQUNaLE1BQU0sU0FBUyxHQUFTLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0YsT0FBTyxJQUFBLHlCQUFhLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGlCQUFpQixDQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO1FBQ2xFLE1BQU0sU0FBUyxHQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLHNCQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLDJCQUE0QixFQUFFO1lBQ3ZGLFNBQVM7WUFDVCxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hFLEdBQUcsRUFBZ0IsSUFBSSxDQUFDLEdBQUc7WUFDM0IsT0FBTyxFQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNwQyxJQUFJLEVBQWUsSUFBSSxDQUFDLElBQUk7WUFDNUIsZUFBZSxFQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsZUFBZTtTQUM1RCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksa0JBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRUQsVUFBVSxDQUFFLElBQUksRUFBRSxPQUFPO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQy9ELENBQUM7Q0FDSjtBQXRFRCw4QkFzRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCBDYXB0dXJlciBmcm9tICcuL2NhcHR1cmVyJztcbmltcG9ydCBQYXRoUGF0dGVybiBmcm9tICcuLi91dGlscy9wYXRoLXBhdHRlcm4nO1xuaW1wb3J0IGdldENvbW1vblBhdGggZnJvbSAnLi4vdXRpbHMvZ2V0LWNvbW1vbi1wYXRoJztcbmltcG9ydCBERUZBVUxUX1NDUkVFTlNIT1RfRVhURU5TSU9OIGZyb20gJy4vZGVmYXVsdC1leHRlbnNpb24nO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjcmVlbnNob3RzIHtcbiAgICBjb25zdHJ1Y3RvciAoeyBlbmFibGVkLCBwYXRoLCBwYXRoUGF0dGVybiwgZnVsbFBhZ2UsIHRodW1ibmFpbHMgfSkge1xuICAgICAgICB0aGlzLmVuYWJsZWQgICAgICAgICAgICA9IGVuYWJsZWQ7XG4gICAgICAgIHRoaXMuc2NyZWVuc2hvdHNQYXRoICAgID0gcGF0aDtcbiAgICAgICAgdGhpcy5zY3JlZW5zaG90c1BhdHRlcm4gPSBwYXRoUGF0dGVybjtcbiAgICAgICAgdGhpcy5mdWxsUGFnZSAgICAgICAgICAgPSBmdWxsUGFnZTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxzICAgICAgICAgPSB0aHVtYm5haWxzO1xuICAgICAgICB0aGlzLnRlc3RFbnRyaWVzICAgICAgICA9IFtdO1xuICAgICAgICB0aGlzLm5vdyAgICAgICAgICAgICAgICA9IG1vbWVudCgpO1xuICAgIH1cblxuICAgIF9hZGRUZXN0RW50cnkgKHRlc3QpIHtcbiAgICAgICAgY29uc3QgdGVzdEVudHJ5ID0ge1xuICAgICAgICAgICAgdGVzdDogICAgICAgIHRlc3QsXG4gICAgICAgICAgICB0ZXN0UnVuczogICAge30sXG4gICAgICAgICAgICBzY3JlZW5zaG90czogW10sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy50ZXN0RW50cmllcy5wdXNoKHRlc3RFbnRyeSk7XG5cbiAgICAgICAgcmV0dXJuIHRlc3RFbnRyeTtcbiAgICB9XG5cbiAgICBfZ2V0VGVzdEVudHJ5ICh0ZXN0KSB7XG4gICAgICAgIHJldHVybiBmaW5kKHRoaXMudGVzdEVudHJpZXMsIGVudHJ5ID0+IGVudHJ5LnRlc3QgPT09IHRlc3QpO1xuICAgIH1cblxuICAgIF9lbnN1cmVUZXN0RW50cnkgKHRlc3QpIHtcbiAgICAgICAgbGV0IHRlc3RFbnRyeSA9IHRoaXMuX2dldFRlc3RFbnRyeSh0ZXN0KTtcblxuICAgICAgICBpZiAoIXRlc3RFbnRyeSlcbiAgICAgICAgICAgIHRlc3RFbnRyeSA9IHRoaXMuX2FkZFRlc3RFbnRyeSh0ZXN0KTtcblxuICAgICAgICByZXR1cm4gdGVzdEVudHJ5O1xuICAgIH1cblxuICAgIGdldFNjcmVlbnNob3RzSW5mbyAodGVzdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGVzdEVudHJ5KHRlc3QpLnNjcmVlbnNob3RzO1xuICAgIH1cblxuICAgIGhhc0NhcHR1cmVkRm9yICh0ZXN0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNjcmVlbnNob3RzSW5mbyh0ZXN0KS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldFBhdGhGb3IgKHRlc3QpIHtcbiAgICAgICAgY29uc3QgdGVzdEVudHJ5ICAgICAgID0gdGhpcy5fZ2V0VGVzdEVudHJ5KHRlc3QpO1xuICAgICAgICBjb25zdCBzY3JlZW5zaG90UGF0aHMgPSB0ZXN0RW50cnkuc2NyZWVuc2hvdHMubWFwKHNjcmVlbnNob3QgPT4gc2NyZWVuc2hvdC5zY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIGdldENvbW1vblBhdGgoc2NyZWVuc2hvdFBhdGhzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVDYXB0dXJlckZvciAodGVzdCwgdGVzdEluZGV4LCBxdWFyYW50aW5lLCBjb25uZWN0aW9uLCB3YXJuaW5nTG9nKSB7XG4gICAgICAgIGNvbnN0IHRlc3RFbnRyeSAgID0gdGhpcy5fZW5zdXJlVGVzdEVudHJ5KHRlc3QpO1xuICAgICAgICBjb25zdCBwYXRoUGF0dGVybiA9IG5ldyBQYXRoUGF0dGVybih0aGlzLnNjcmVlbnNob3RzUGF0dGVybiwgREVGQVVMVF9TQ1JFRU5TSE9UX0VYVEVOU0lPTiwge1xuICAgICAgICAgICAgdGVzdEluZGV4LFxuICAgICAgICAgICAgcXVhcmFudGluZUF0dGVtcHQ6IHF1YXJhbnRpbmUgPyBxdWFyYW50aW5lLmdldE5leHRBdHRlbXB0TnVtYmVyKCkgOiBudWxsLFxuICAgICAgICAgICAgbm93OiAgICAgICAgICAgICAgIHRoaXMubm93LFxuICAgICAgICAgICAgZml4dHVyZTogICAgICAgICAgIHRlc3QuZml4dHVyZS5uYW1lLFxuICAgICAgICAgICAgdGVzdDogICAgICAgICAgICAgIHRlc3QubmFtZSxcbiAgICAgICAgICAgIHBhcnNlZFVzZXJBZ2VudDogICBjb25uZWN0aW9uLmJyb3dzZXJJbmZvLnBhcnNlZFVzZXJBZ2VudCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBDYXB0dXJlcih0aGlzLnNjcmVlbnNob3RzUGF0aCwgdGVzdEVudHJ5LCBjb25uZWN0aW9uLCBwYXRoUGF0dGVybiwgdGhpcy5mdWxsUGFnZSwgdGhpcy50aHVtYm5haWxzLCB3YXJuaW5nTG9nKTtcbiAgICB9XG5cbiAgICBhZGRUZXN0UnVuICh0ZXN0LCB0ZXN0UnVuKSB7XG4gICAgICAgIGNvbnN0IHRlc3RFbnRyeSA9IHRoaXMuX2dldFRlc3RFbnRyeSh0ZXN0KTtcblxuICAgICAgICB0ZXN0RW50cnkudGVzdFJ1bnNbdGVzdFJ1bi5icm93c2VyQ29ubmVjdGlvbi5pZF0gPSB0ZXN0UnVuO1xuICAgIH1cbn1cbiJdfQ==
@@ -112,4 +112,4 @@ class TestRunBookmark {
112
112
  }
113
113
  exports.default = TestRunBookmark;
114
114
  module.exports = exports.default;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1ydW4vYm9va21hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBK0M7QUFDL0MsMkNBQWtEO0FBQ2xELDZEQUF3RTtBQUV4RSxnREFNNEI7QUFFNUIsaURBQStGO0FBSS9GLG9FQUFzRTtBQUt0RSxNQUFxQixlQUFlO0lBWWhDLFlBQW9CLE9BQWdCLEVBQUUsSUFBVTtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFXLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFjLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFlLHdDQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQWUsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQVEsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUssSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUksSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQWEsb0NBQW1CLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQXlDLENBQUM7SUFDbEYsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFTO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQW9CLENBQUM7SUFDeEQsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFVLElBQUksQ0FBQyxHQUFhLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDYixNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxtQ0FBeUIsRUFBaUIsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQzNCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQkFBcUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDekQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLHVDQUE2QixDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFOUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzNEO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQyxNQUFNLG1CQUFtQixHQUFHLElBQUksNkJBQW1CLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFM0UsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUI7UUFDakMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxtQ0FBeUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUV4RyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEU7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLG9CQUFvQjtRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzRCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDbkQsSUFBSSwrQkFBcUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLG1DQUF5QixFQUFFLENBQUM7WUFFcEMsSUFBSTtnQkFDQSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUF3QyxDQUFDLENBQUM7YUFDL0U7WUFDRCxPQUFPLEdBQVEsRUFBRTtnQkFDYixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssdUJBQWUsQ0FBQywwQkFBMEI7b0JBQ3ZELE1BQU0sSUFBSSxxQ0FBMEIsRUFBRSxDQUFDO2dCQUUzQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssdUJBQWUsQ0FBQyw0QkFBNEI7b0JBQ3pELE1BQU0sSUFBSSx3Q0FBNkIsRUFBRSxDQUFDO2dCQUU5QyxNQUFNLEdBQUcsQ0FBQzthQUNiO1NBQ0o7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FBRSxHQUFXLEVBQUUsYUFBNEI7UUFDakUsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUF5QyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxTQUFTLENBQUUsS0FBcUI7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFFLFFBQXdCLEVBQUUsYUFBNEI7UUFDeEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUUzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLElBQUk7WUFDQSxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFFbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBRS9DLE1BQU0sV0FBVyxHQUFHLFdBQVc7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQXFCO2dCQUNqQyxDQUFDLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUEyQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFcEQsSUFBSSxDQUFDLFdBQVc7Z0JBQ1osTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUN6QztRQUNELE9BQU8sR0FBUSxFQUFFO1lBQ2IsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFFeEIsTUFBTSxHQUFHLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNKO0FBMUlELGtDQTBJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBURVNUX1JVTl9QSEFTRSBmcm9tICcuLi90ZXN0LXJ1bi9waGFzZSc7XG5pbXBvcnQgeyBURVNUX1JVTl9FUlJPUlMgfSBmcm9tICcuLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IHsgU1BFQ0lBTF9CTEFOS19QQUdFLCBTdGF0ZVNuYXBzaG90IH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5cbmltcG9ydCB7XG4gICAgU3dpdGNoVG9NYWluV2luZG93Q29tbWFuZCxcbiAgICBTd2l0Y2hUb0lmcmFtZUNvbW1hbmQsXG4gICAgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvbW1hbmQsXG4gICAgU2V0VGVzdFNwZWVkQ29tbWFuZCxcbiAgICBTZXRQYWdlTG9hZFRpbWVvdXRDb21tYW5kLFxufSBmcm9tICcuL2NvbW1hbmRzL2FjdGlvbnMnO1xuXG5pbXBvcnQgeyBDdXJyZW50SWZyYW1lTm90Rm91bmRFcnJvciwgQ3VycmVudElmcmFtZUlzTm90TG9hZGVkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kLCBFeGVjdXRlU2VsZWN0b3JDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9vYnNlcnZhdGlvbic7XG5pbXBvcnQgUm9sZSwgeyBSZWRpcmVjdFVybCB9IGZyb20gJy4uL3JvbGUvcm9sZSc7XG5pbXBvcnQgeyBERUZBVUxUX1NQRUVEX1ZBTFVFIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9kZWZhdWx0LXZhbHVlcyc7XG5pbXBvcnQgQnJvd3NlckNvbnNvbGVNZXNzYWdlcyBmcm9tICcuL2Jyb3dzZXItY29uc29sZS1tZXNzYWdlcyc7XG5pbXBvcnQgeyBDb21tYW5kQmFzZSB9IGZyb20gJy4vY29tbWFuZHMvYmFzZSc7XG5pbXBvcnQgeyBDYWxsc2l0ZVJlY29yZCB9IGZyb20gJ2NhbGxzaXRlLXJlY29yZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RSdW5Cb29rbWFyayB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXN0UnVuOiBUZXN0UnVuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9sZTogUm9sZTtcbiAgICBwcml2YXRlIHVybDogc3RyaW5nO1xuICAgIHByaXZhdGUgY3R4OiBvYmplY3QgfCBudWxsO1xuICAgIHByaXZhdGUgZml4dHVyZUN0eDogb2JqZWN0IHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ0hhbmRsZXI6IEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaWZyYW1lU2VsZWN0b3I6IEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3BlZWQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VMb2FkVGltZW91dDogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uc29sZU1lc3NhZ2VzOiBCcm93c2VyQ29uc29sZU1lc3NhZ2VzIHwgbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdFJ1bjogVGVzdFJ1biwgcm9sZTogUm9sZSkge1xuICAgICAgICB0aGlzLnRlc3RSdW4gICAgICAgICA9IHRlc3RSdW47XG4gICAgICAgIHRoaXMucm9sZSAgICAgICAgICAgID0gcm9sZTtcbiAgICAgICAgdGhpcy51cmwgICAgICAgICAgICAgPSBTUEVDSUFMX0JMQU5LX1BBR0U7XG4gICAgICAgIHRoaXMuY3R4ICAgICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5maXh0dXJlQ3R4ICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLmRpYWxvZ0hhbmRsZXIgICA9IG51bGw7XG4gICAgICAgIHRoaXMuaWZyYW1lU2VsZWN0b3IgID0gbnVsbDtcbiAgICAgICAgdGhpcy5zcGVlZCAgICAgICAgICAgPSBERUZBVUxUX1NQRUVEX1ZBTFVFO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkVGltZW91dCA9IDA7XG4gICAgICAgIHRoaXMuY29uc29sZU1lc3NhZ2VzID0gbnVsbDtcbiAgICAgICAgdGhpcy5kaWFsb2dIYW5kbGVyICAgPSB0aGlzLnRlc3RSdW4uYWN0aXZlRGlhbG9nSGFuZGxlcjtcbiAgICAgICAgdGhpcy5pZnJhbWVTZWxlY3RvciAgPSB0aGlzLnRlc3RSdW4uYWN0aXZlSWZyYW1lU2VsZWN0b3I7XG4gICAgICAgIHRoaXMuc3BlZWQgICAgICAgICAgID0gdGhpcy50ZXN0UnVuLnNwZWVkO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkVGltZW91dCA9IHRoaXMudGVzdFJ1bi5wYWdlTG9hZFRpbWVvdXQ7XG4gICAgICAgIHRoaXMuY29uc29sZU1lc3NhZ2VzID0gdGhpcy50ZXN0UnVuLmNvbnNvbGVNZXNzYWdlcyBhcyBCcm93c2VyQ29uc29sZU1lc3NhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2luaXRDdHhzICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5jdHggICAgICAgID0gdGhpcy50ZXN0UnVuLmN0eDtcbiAgICAgICAgdGhpcy5maXh0dXJlQ3R4ID0gdGhpcy50ZXN0UnVuLmZpeHR1cmVDdHggYXMgb2JqZWN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVDdHhzICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy50ZXN0UnVuLmN0eCAgICAgICAgPSB0aGlzLmN0eCBhcyBvYmplY3Q7XG4gICAgICAgIHRoaXMudGVzdFJ1bi5maXh0dXJlQ3R4ID0gdGhpcy5maXh0dXJlQ3R4O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0ICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5faW5pdEN0eHMoKTtcblxuICAgICAgICBpZiAodGhpcy50ZXN0UnVuLmFjdGl2ZUlmcmFtZVNlbGVjdG9yKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy50ZXN0UnVuLmV4ZWN1dGVDb21tYW5kKG5ldyBTd2l0Y2hUb01haW5XaW5kb3dDb21tYW5kKCkgYXMgQ29tbWFuZEJhc2UpO1xuXG4gICAgICAgIGlmICghdGhpcy5yb2xlLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJvbGUuc2V0Q3VycmVudFVybEFzUmVkaXJlY3RVcmwodGhpcy50ZXN0UnVuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZXN0b3JlRGlhbG9nSGFuZGxlciAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLnRlc3RSdW4uYWN0aXZlRGlhbG9nSGFuZGxlciAhPT0gdGhpcy5kaWFsb2dIYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlRGlhbG9nQ29tbWFuZCA9IG5ldyBTZXROYXRpdmVEaWFsb2dIYW5kbGVyQ29tbWFuZCh7IGRpYWxvZ0hhbmRsZXI6IHsgZm46IHRoaXMuZGlhbG9nSGFuZGxlciB9IH0pO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4uZXhlY3V0ZUNvbW1hbmQocmVzdG9yZURpYWxvZ0NvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfcmVzdG9yZVNwZWVkICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMudGVzdFJ1bi5zcGVlZCAhPT0gdGhpcy5zcGVlZCkge1xuICAgICAgICAgICAgY29uc3QgcmVzdG9yZVNwZWVkQ29tbWFuZCA9IG5ldyBTZXRUZXN0U3BlZWRDb21tYW5kKHsgc3BlZWQ6IHRoaXMuc3BlZWQgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGVzdFJ1bi5leGVjdXRlQ29tbWFuZChyZXN0b3JlU3BlZWRDb21tYW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVQYWdlTG9hZFRpbWVvdXQgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy50ZXN0UnVuLnBhZ2VMb2FkVGltZW91dCAhPT0gdGhpcy5wYWdlTG9hZFRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVQYWdlTG9hZFRpbWVvdXRDb21tYW5kID0gbmV3IFNldFBhZ2VMb2FkVGltZW91dENvbW1hbmQoeyBkdXJhdGlvbjogdGhpcy5wYWdlTG9hZFRpbWVvdXQgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGVzdFJ1bi5leGVjdXRlQ29tbWFuZChyZXN0b3JlUGFnZUxvYWRUaW1lb3V0Q29tbWFuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZXN0b3JlV29ya2luZ0ZyYW1lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMudGVzdFJ1bi5hY3RpdmVJZnJhbWVTZWxlY3RvciAhPT0gdGhpcy5pZnJhbWVTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc3Qgc3dpdGNoV29ya2luZ0ZyYW1lQ29tbWFuZCA9IHRoaXMuaWZyYW1lU2VsZWN0b3IgP1xuICAgICAgICAgICAgICAgIG5ldyBTd2l0Y2hUb0lmcmFtZUNvbW1hbmQoeyBzZWxlY3RvcjogdGhpcy5pZnJhbWVTZWxlY3RvciB9KSA6XG4gICAgICAgICAgICAgICAgbmV3IFN3aXRjaFRvTWFpbldpbmRvd0NvbW1hbmQoKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4uZXhlY3V0ZUNvbW1hbmQoc3dpdGNoV29ya2luZ0ZyYW1lQ29tbWFuZCBhcyBDb21tYW5kQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgPT09IFRFU1RfUlVOX0VSUk9SUy5hY3Rpb25FbGVtZW50Tm90Rm91bmRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEN1cnJlbnRJZnJhbWVOb3RGb3VuZEVycm9yKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgPT09IFRFU1RfUlVOX0VSUk9SUy5hY3Rpb25JZnJhbWVJc05vdExvYWRlZEVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ3VycmVudElmcmFtZUlzTm90TG9hZGVkRXJyb3IoKTtcblxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVQYWdlICh1cmw6IHN0cmluZywgc3RhdGVTbmFwc2hvdDogU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4ubmF2aWdhdGVUb1VybCh1cmwsIHRydWUsIEpTT04uc3RyaW5naWZ5KHN0YXRlU25hcHNob3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDb25zb2xlTWVzc2FnZXMgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRlc3RSdW4uY29uc29sZU1lc3NhZ2VzID0gdGhpcy5jb25zb2xlTWVzc2FnZXMgYXMgQnJvd3NlckNvbnNvbGVNZXNzYWdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRQaGFzZSAodmFsdWU6IFRFU1RfUlVOX1BIQVNFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVzdFJ1bi5waGFzZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZXN0b3JlIChjYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQsIHN0YXRlU25hcHNob3Q6IFN0YXRlU25hcHNob3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJldlBoYXNlID0gYXdhaXQgdGhpcy50ZXN0UnVuLnBoYXNlO1xuXG4gICAgICAgIHRoaXMuX3NldFBoYXNlKFRFU1RfUlVOX1BIQVNFLmluQm9va21hcmtSZXN0b3JlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZUN0eHMoKTtcbiAgICAgICAgdGhpcy5fc2V0Q29uc29sZU1lc3NhZ2VzKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Jlc3RvcmVTcGVlZCgpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZVBhZ2VMb2FkVGltZW91dCgpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZURpYWxvZ0hhbmRsZXIoKTtcblxuICAgICAgICAgICAgY29uc3QgcHJlc2VydmVVcmwgPSB0aGlzLnJvbGUub3B0cy5wcmVzZXJ2ZVVybDtcblxuICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSBwcmVzZXJ2ZVVybFxuICAgICAgICAgICAgICAgID8gdGhpcy5yb2xlLnJlZGlyZWN0VXJsIGFzIHN0cmluZ1xuICAgICAgICAgICAgICAgIDogKHRoaXMucm9sZS5yZWRpcmVjdFVybCBhcyBSZWRpcmVjdFVybClbdGhpcy50ZXN0UnVuLnRlc3QuaWRdO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9yZXN0b3JlUGFnZShyZWRpcmVjdFVybCwgc3RhdGVTbmFwc2hvdCk7XG5cbiAgICAgICAgICAgIGlmICghcHJlc2VydmVVcmwpXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZVdvcmtpbmdGcmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgZXJyLmNhbGxzaXRlID0gY2FsbHNpdGU7XG5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldFBoYXNlKHByZXZQaGFzZSk7XG4gICAgfVxufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1ydW4vYm9va21hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBK0M7QUFDL0MsMkNBQWtEO0FBQ2xELDZEQUF3RTtBQUV4RSxnREFNNEI7QUFFNUIsaURBQStGO0FBSS9GLG9FQUFzRTtBQUt0RSxNQUFxQixlQUFlO0lBWWhDLFlBQW9CLE9BQWdCLEVBQUUsSUFBVTtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFXLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFjLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFlLHdDQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQWUsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQVEsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUssSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUksSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQWEsb0NBQW1CLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQXlDLENBQUM7SUFDbEYs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LElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFcEQsSUFBSSxDQUFDLFdBQVc7Z0JBQ1osTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUN6QztRQUNELE9BQU8sR0FBUSxFQUFFO1lBQ2IsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFFeEIsTUFBTSxHQUFHLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNKO0FBMUlELGtDQTBJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBURVNUX1JVTl9QSEFTRSBmcm9tICcuLi90ZXN0LXJ1bi9waGFzZSc7XG5pbXBvcnQgeyBURVNUX1JVTl9FUlJPUlMgfSBmcm9tICcuLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IHsgU1BFQ0lBTF9CTEFOS19QQUdFLCBTdGF0ZVNuYXBzaG90IH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5cbmltcG9ydCB7XG4gICAgU3dpdGNoVG9NYWluV2luZG93Q29tbWFuZCxcbiAgICBTd2l0Y2hUb0lmcmFtZUNvbW1hbmQsXG4gICAgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvbW1hbmQsXG4gICAgU2V0VGVzdFNwZWVkQ29tbWFuZCxcbiAgICBTZXRQYWdlTG9hZFRpbWVvdXRDb21tYW5kLFxufSBmcm9tICcuL2NvbW1hbmRzL2FjdGlvbnMnO1xuXG5pbXBvcnQgeyBDdXJyZW50SWZyYW1lTm90Rm91bmRFcnJvciwgQ3VycmVudElmcmFtZUlzTm90TG9hZGVkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kLCBFeGVjdXRlU2VsZWN0b3JDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9vYnNlcnZhdGlvbic7XG5pbXBvcnQgUm9sZSwgeyBSZWRpcmVjdFVybCB9IGZyb20gJy4uL3JvbGUvcm9sZSc7XG5pbXBvcnQgeyBERUZBVUxUX1NQRUVEX1ZBTFVFIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9kZWZhdWx0LXZhbHVlcyc7XG5pbXBvcnQgQnJvd3NlckNvbnNvbGVNZXNzYWdlcyBmcm9tICcuL2Jyb3dzZXItY29uc29sZS1tZXNzYWdlcyc7XG5pbXBvcnQgeyBDb21tYW5kQmFzZSB9IGZyb20gJy4vY29tbWFuZHMvYmFzZSc7XG5pbXBvcnQgeyBDYWxsc2l0ZVJlY29yZCB9IGZyb20gJ0BkZXZleHByZXNzL2NhbGxzaXRlLXJlY29yZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RSdW5Cb29rbWFyayB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXN0UnVuOiBUZXN0UnVuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9sZTogUm9sZTtcbiAgICBwcml2YXRlIHVybDogc3RyaW5nO1xuICAgIHByaXZhdGUgY3R4OiBvYmplY3QgfCBudWxsO1xuICAgIHByaXZhdGUgZml4dHVyZUN0eDogb2JqZWN0IHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ0hhbmRsZXI6IEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaWZyYW1lU2VsZWN0b3I6IEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3BlZWQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VMb2FkVGltZW91dDogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uc29sZU1lc3NhZ2VzOiBCcm93c2VyQ29uc29sZU1lc3NhZ2VzIHwgbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdFJ1bjogVGVzdFJ1biwgcm9sZTogUm9sZSkge1xuICAgICAgICB0aGlzLnRlc3RSdW4gICAgICAgICA9IHRlc3RSdW47XG4gICAgICAgIHRoaXMucm9sZSAgICAgICAgICAgID0gcm9sZTtcbiAgICAgICAgdGhpcy51cmwgICAgICAgICAgICAgPSBTUEVDSUFMX0JMQU5LX1BBR0U7XG4gICAgICAgIHRoaXMuY3R4ICAgICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5maXh0dXJlQ3R4ICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLmRpYWxvZ0hhbmRsZXIgICA9IG51bGw7XG4gICAgICAgIHRoaXMuaWZyYW1lU2VsZWN0b3IgID0gbnVsbDtcbiAgICAgICAgdGhpcy5zcGVlZCAgICAgICAgICAgPSBERUZBVUxUX1NQRUVEX1ZBTFVFO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkVGltZW91dCA9IDA7XG4gICAgICAgIHRoaXMuY29uc29sZU1lc3NhZ2VzID0gbnVsbDtcbiAgICAgICAgdGhpcy5kaWFsb2dIYW5kbGVyICAgPSB0aGlzLnRlc3RSdW4uYWN0aXZlRGlhbG9nSGFuZGxlcjtcbiAgICAgICAgdGhpcy5pZnJhbWVTZWxlY3RvciAgPSB0aGlzLnRlc3RSdW4uYWN0aXZlSWZyYW1lU2VsZWN0b3I7XG4gICAgICAgIHRoaXMuc3BlZWQgICAgICAgICAgID0gdGhpcy50ZXN0UnVuLnNwZWVkO1xuICAgICAgICB0aGlzLnBhZ2VMb2FkVGltZW91dCA9IHRoaXMudGVzdFJ1bi5wYWdlTG9hZFRpbWVvdXQ7XG4gICAgICAgIHRoaXMuY29uc29sZU1lc3NhZ2VzID0gdGhpcy50ZXN0UnVuLmNvbnNvbGVNZXNzYWdlcyBhcyBCcm93c2VyQ29uc29sZU1lc3NhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2luaXRDdHhzICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5jdHggICAgICAgID0gdGhpcy50ZXN0UnVuLmN0eDtcbiAgICAgICAgdGhpcy5maXh0dXJlQ3R4ID0gdGhpcy50ZXN0UnVuLmZpeHR1cmVDdHggYXMgb2JqZWN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVDdHhzICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy50ZXN0UnVuLmN0eCAgICAgICAgPSB0aGlzLmN0eCBhcyBvYmplY3Q7XG4gICAgICAgIHRoaXMudGVzdFJ1bi5maXh0dXJlQ3R4ID0gdGhpcy5maXh0dXJlQ3R4O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0ICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5faW5pdEN0eHMoKTtcblxuICAgICAgICBpZiAodGhpcy50ZXN0UnVuLmFjdGl2ZUlmcmFtZVNlbGVjdG9yKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy50ZXN0UnVuLmV4ZWN1dGVDb21tYW5kKG5ldyBTd2l0Y2hUb01haW5XaW5kb3dDb21tYW5kKCkgYXMgQ29tbWFuZEJhc2UpO1xuXG4gICAgICAgIGlmICghdGhpcy5yb2xlLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJvbGUuc2V0Q3VycmVudFVybEFzUmVkaXJlY3RVcmwodGhpcy50ZXN0UnVuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZXN0b3JlRGlhbG9nSGFuZGxlciAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLnRlc3RSdW4uYWN0aXZlRGlhbG9nSGFuZGxlciAhPT0gdGhpcy5kaWFsb2dIYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlRGlhbG9nQ29tbWFuZCA9IG5ldyBTZXROYXRpdmVEaWFsb2dIYW5kbGVyQ29tbWFuZCh7IGRpYWxvZ0hhbmRsZXI6IHsgZm46IHRoaXMuZGlhbG9nSGFuZGxlciB9IH0pO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4uZXhlY3V0ZUNvbW1hbmQocmVzdG9yZURpYWxvZ0NvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfcmVzdG9yZVNwZWVkICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMudGVzdFJ1bi5zcGVlZCAhPT0gdGhpcy5zcGVlZCkge1xuICAgICAgICAgICAgY29uc3QgcmVzdG9yZVNwZWVkQ29tbWFuZCA9IG5ldyBTZXRUZXN0U3BlZWRDb21tYW5kKHsgc3BlZWQ6IHRoaXMuc3BlZWQgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGVzdFJ1bi5leGVjdXRlQ29tbWFuZChyZXN0b3JlU3BlZWRDb21tYW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVQYWdlTG9hZFRpbWVvdXQgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy50ZXN0UnVuLnBhZ2VMb2FkVGltZW91dCAhPT0gdGhpcy5wYWdlTG9hZFRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVQYWdlTG9hZFRpbWVvdXRDb21tYW5kID0gbmV3IFNldFBhZ2VMb2FkVGltZW91dENvbW1hbmQoeyBkdXJhdGlvbjogdGhpcy5wYWdlTG9hZFRpbWVvdXQgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGVzdFJ1bi5leGVjdXRlQ29tbWFuZChyZXN0b3JlUGFnZUxvYWRUaW1lb3V0Q29tbWFuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZXN0b3JlV29ya2luZ0ZyYW1lICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMudGVzdFJ1bi5hY3RpdmVJZnJhbWVTZWxlY3RvciAhPT0gdGhpcy5pZnJhbWVTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc3Qgc3dpdGNoV29ya2luZ0ZyYW1lQ29tbWFuZCA9IHRoaXMuaWZyYW1lU2VsZWN0b3IgP1xuICAgICAgICAgICAgICAgIG5ldyBTd2l0Y2hUb0lmcmFtZUNvbW1hbmQoeyBzZWxlY3RvcjogdGhpcy5pZnJhbWVTZWxlY3RvciB9KSA6XG4gICAgICAgICAgICAgICAgbmV3IFN3aXRjaFRvTWFpbldpbmRvd0NvbW1hbmQoKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4uZXhlY3V0ZUNvbW1hbmQoc3dpdGNoV29ya2luZ0ZyYW1lQ29tbWFuZCBhcyBDb21tYW5kQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgPT09IFRFU1RfUlVOX0VSUk9SUy5hY3Rpb25FbGVtZW50Tm90Rm91bmRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEN1cnJlbnRJZnJhbWVOb3RGb3VuZEVycm9yKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgPT09IFRFU1RfUlVOX0VSUk9SUy5hY3Rpb25JZnJhbWVJc05vdExvYWRlZEVycm9yKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ3VycmVudElmcmFtZUlzTm90TG9hZGVkRXJyb3IoKTtcblxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3Jlc3RvcmVQYWdlICh1cmw6IHN0cmluZywgc3RhdGVTbmFwc2hvdDogU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnRlc3RSdW4ubmF2aWdhdGVUb1VybCh1cmwsIHRydWUsIEpTT04uc3RyaW5naWZ5KHN0YXRlU25hcHNob3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDb25zb2xlTWVzc2FnZXMgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRlc3RSdW4uY29uc29sZU1lc3NhZ2VzID0gdGhpcy5jb25zb2xlTWVzc2FnZXMgYXMgQnJvd3NlckNvbnNvbGVNZXNzYWdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRQaGFzZSAodmFsdWU6IFRFU1RfUlVOX1BIQVNFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVzdFJ1bi5waGFzZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZXN0b3JlIChjYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQsIHN0YXRlU25hcHNob3Q6IFN0YXRlU25hcHNob3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJldlBoYXNlID0gYXdhaXQgdGhpcy50ZXN0UnVuLnBoYXNlO1xuXG4gICAgICAgIHRoaXMuX3NldFBoYXNlKFRFU1RfUlVOX1BIQVNFLmluQm9va21hcmtSZXN0b3JlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZUN0eHMoKTtcbiAgICAgICAgdGhpcy5fc2V0Q29uc29sZU1lc3NhZ2VzKCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Jlc3RvcmVTcGVlZCgpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZVBhZ2VMb2FkVGltZW91dCgpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZURpYWxvZ0hhbmRsZXIoKTtcblxuICAgICAgICAgICAgY29uc3QgcHJlc2VydmVVcmwgPSB0aGlzLnJvbGUub3B0cy5wcmVzZXJ2ZVVybDtcblxuICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSBwcmVzZXJ2ZVVybFxuICAgICAgICAgICAgICAgID8gdGhpcy5yb2xlLnJlZGlyZWN0VXJsIGFzIHN0cmluZ1xuICAgICAgICAgICAgICAgIDogKHRoaXMucm9sZS5yZWRpcmVjdFVybCBhcyBSZWRpcmVjdFVybClbdGhpcy50ZXN0UnVuLnRlc3QuaWRdO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9yZXN0b3JlUGFnZShyZWRpcmVjdFVybCwgc3RhdGVTbmFwc2hvdCk7XG5cbiAgICAgICAgICAgIGlmICghcHJlc2VydmVVcmwpXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fcmVzdG9yZVdvcmtpbmdGcmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgZXJyLmNhbGxzaXRlID0gY2FsbHNpdGU7XG5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldFBoYXNlKHByZXZQaGFzZSk7XG4gICAgfVxufVxuIl19
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DisableDebugCommand = exports.DebugCommand = exports.ExecuteSelectorCommand = exports.ExecuteClientFunctionCommand = exports.ExecuteClientFunctionCommandBase = exports.WaitCommand = void 0;
6
+ exports.DebugCommand = exports.ExecuteSelectorCommand = exports.ExecuteClientFunctionCommand = exports.ExecuteClientFunctionCommandBase = exports.WaitCommand = void 0;
7
7
  const type_1 = __importDefault(require("./type"));
8
8
  const base_1 = require("./base");
9
9
  const argument_1 = require("./validations/argument");
@@ -31,7 +31,6 @@ class ExecuteClientFunctionCommandBase extends base_1.ActionCommandBase {
31
31
  { name: 'fnCode', defaultValue: '' },
32
32
  { name: 'args', defaultValue: [] },
33
33
  { name: 'dependencies', defaultValue: [] },
34
- { name: 'esmRuntime', defaultValue: null },
35
34
  ];
36
35
  }
37
36
  }
@@ -67,11 +66,4 @@ class DebugCommand extends base_1.ActionCommandBase {
67
66
  }
68
67
  exports.DebugCommand = DebugCommand;
69
68
  DebugCommand.methodName = (0, lodash_1.camelCase)(type_1.default.debug);
70
- class DisableDebugCommand extends base_1.ActionCommandBase {
71
- constructor() {
72
- super(null, null, type_1.default.disableDebug);
73
- }
74
- }
75
- exports.DisableDebugCommand = DisableDebugCommand;
76
- DisableDebugCommand.methodName = (0, lodash_1.camelCase)(type_1.default.disableDebug);
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvb2JzZXJ2YXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLGlDQUEyQztBQUMzQyxxREFBaUU7QUFDakUsbUNBQW1DO0FBRW5DLFdBQVc7QUFDWCxNQUFhLFdBQVksU0FBUSx3QkFBaUI7SUFHOUMsWUFBYSxHQUFHLEVBQUUsT0FBTztRQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixPQUFPO1lBQ0gsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxrQ0FBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ3JFLENBQUM7SUFDTixDQUFDOztBQVhMLGtDQVlDO0FBWFUsc0JBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBYTdDLE1BQWEsZ0NBQWlDLFNBQVEsd0JBQWlCO0lBQ25FLFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQzNCLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE9BQU87WUFDSCxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ2xDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQzFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO1NBQzdDLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFkRCw0RUFjQztBQUVELE1BQWEsNEJBQTZCLFNBQVEsZ0NBQWdDO0lBRzlFLFlBQWEsR0FBRyxFQUFFLE9BQU87UUFDckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEQsQ0FBQzs7QUFMTCxvRUFNQztBQUxVLHVDQUFVLEdBQUcsY0FBSSxDQUFDLHFCQUFxQixDQUFDO0FBT25ELE1BQWEsc0JBQXVCLFNBQVEsZ0NBQWdDO0lBR3hFLFlBQWEsR0FBRyxFQUFFLE9BQU87UUFDckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTztZQUNILEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3RCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNyQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRTtZQUNsQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7U0FDMUIsQ0FBQztJQUNOLENBQUM7O0FBaEJMLHdEQWlCQztBQWhCVSxpQ0FBVSxHQUFHLGNBQUksQ0FBQyxlQUFlLENBQUM7QUFrQjdDLE1BQWEsWUFBYSxTQUFRLHdCQUFpQjtJQUcvQztRQUNJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztBQUxMLG9DQU1DO0FBTFUsdUJBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBTzlDLE1BQWEsbUJBQW9CLFNBQVEsd0JBQWlCO0lBR3REO1FBQ0ksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O0FBTEwsa0RBTUM7QUFMVSw4QkFBVSxHQUFHLElBQUEsa0JBQVMsRUFBQyxjQUFJLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVFlQRSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHsgQWN0aW9uQ29tbWFuZEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQgfSBmcm9tICcuL3ZhbGlkYXRpb25zL2FyZ3VtZW50JztcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ2xvZGFzaCc7XG5cbi8vIENvbW1hbmRzXG5leHBvcnQgY2xhc3MgV2FpdENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS53YWl0KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4pIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLndhaXQpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3RpbWVvdXQnLCB0eXBlOiBwb3NpdGl2ZUludGVnZXJBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kQmFzZSBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB0eXBlKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgdHlwZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2luc3RhbnRpYXRpb25DYWxsc2l0ZU5hbWUnLCBkZWZhdWx0VmFsdWU6ICcnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdmbkNvZGUnLCBkZWZhdWx0VmFsdWU6ICcnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdhcmdzJywgZGVmYXVsdFZhbHVlOiBbXSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZGVwZW5kZW5jaWVzJywgZGVmYXVsdFZhbHVlOiBbXSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZXNtUnVudGltZScsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQgZXh0ZW5kcyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBUWVBFLmV4ZWN1dGVDbGllbnRGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4pIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmV4ZWN1dGVDbGllbnRGdW5jdGlvbik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZCBleHRlbmRzIEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IFRZUEUuZXhlY3V0ZVNlbGVjdG9yO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1bikge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZXhlY3V0ZVNlbGVjdG9yKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd2aXNpYmlsaXR5Q2hlY2snLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICd0aW1lb3V0JywgZGVmYXVsdFZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdhcGlGbkNoYWluJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnbmVlZEVycm9yJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaW5kZXgnLCBkZWZhdWx0VmFsdWU6IDAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0cmljdEVycm9yJyB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlYnVnQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmRlYnVnKTtcblxuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIobnVsbCwgbnVsbCwgVFlQRS5kZWJ1Zyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGlzYWJsZURlYnVnQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmRpc2FibGVEZWJ1Zyk7XG5cbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKG51bGwsIG51bGwsIFRZUEUuZGlzYWJsZURlYnVnKTtcbiAgICB9XG59XG5cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvb2JzZXJ2YXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLGlDQUEyQztBQUMzQyxxREFBaUU7QUFDakUsbUNBQW1DO0FBRW5DLFdBQVc7QUFDWCxNQUFhLFdBQVksU0FBUSx3QkFBaUI7SUFHOUMsWUFBYSxHQUFHLEVBQUUsT0FBTztRQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixPQUFPO1lBQ0gsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxrQ0FBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ3JFLENBQUM7SUFDTixDQUFDOztBQVhMLGtDQVlDO0FBWFUsc0JBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBYTdDLE1BQWEsZ0NBQWlDLFNBQVEsd0JBQWlCO0lBQ25FLFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJO1FBQzNCLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE9BQU87WUFDSCxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQ2xDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1NBQzdDLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFiRCw0RUFhQztBQUVELE1BQWEsNEJBQTZCLFNBQVEsZ0NBQWdDO0lBRzlFLFlBQWEsR0FBRyxFQUFFLE9BQU87UUFDckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEQsQ0FBQzs7QUFMTCxvRUFNQztBQUxVLHVDQUFVLEdBQUcsY0FBSSxDQUFDLHFCQUFxQixDQUFDO0FBT25ELE1BQWEsc0JBQXVCLFNBQVEsZ0NBQWdDO0lBR3hFLFlBQWEsR0FBRyxFQUFFLE9BQU87UUFDckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTztZQUNILEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3RCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNyQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRTtZQUNsQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7U0FDMUIsQ0FBQztJQUNOLENBQUM7O0FBaEJMLHdEQWlCQztBQWhCVSxpQ0FBVSxHQUFHLGNBQUksQ0FBQyxlQUFlLENBQUM7QUFrQjdDLE1BQWEsWUFBYSxTQUFRLHdCQUFpQjtJQUcvQztRQUNJLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztBQUxMLG9DQU1DO0FBTFUsdUJBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcbmltcG9ydCB7IEFjdGlvbkNvbW1hbmRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IHBvc2l0aXZlSW50ZWdlckFyZ3VtZW50IH0gZnJvbSAnLi92YWxpZGF0aW9ucy9hcmd1bWVudCc7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tICdsb2Rhc2gnO1xuXG4vLyBDb21tYW5kc1xuZXhwb3J0IGNsYXNzIFdhaXRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUud2FpdCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS53YWl0KTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd0aW1lb3V0JywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZEJhc2UgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdHlwZSkge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIHR5cGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdpbnN0YW50aWF0aW9uQ2FsbHNpdGVOYW1lJywgZGVmYXVsdFZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZm5Db2RlJywgZGVmYXVsdFZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnYXJncycsIGRlZmF1bHRWYWx1ZTogW10gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2RlcGVuZGVuY2llcycsIGRlZmF1bHRWYWx1ZTogW10gfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kIGV4dGVuZHMgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gVFlQRS5leGVjdXRlQ2xpZW50RnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5leGVjdXRlQ2xpZW50RnVuY3Rpb24pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVTZWxlY3RvckNvbW1hbmQgZXh0ZW5kcyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBUWVBFLmV4ZWN1dGVTZWxlY3RvcjtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4pIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmV4ZWN1dGVTZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndmlzaWJpbGl0eUNoZWNrJywgZGVmYXVsdFZhbHVlOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAndGltZW91dCcsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnYXBpRm5DaGFpbicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25lZWRFcnJvcicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2luZGV4JywgZGVmYXVsdFZhbHVlOiAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdzdHJpY3RFcnJvcicgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWJ1Z0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5kZWJ1Zyk7XG5cbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKG51bGwsIG51bGwsIFRZUEUuZGVidWcpO1xuICAgIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PrepareClientEnvironmentInDebugMode = exports.GetActiveElementCommand = exports.UnlockPageCommand = exports.BackupStoragesCommand = exports.TestDoneCommand = exports.SetBreakpointCommand = exports.HideAssertionRetriesStatusCommand = exports.ShowAssertionRetriesStatusCommand = void 0;
6
+ exports.GetActiveElementCommand = exports.UnlockPageCommand = exports.BackupStoragesCommand = exports.TestDoneCommand = exports.SetBreakpointCommand = exports.HideAssertionRetriesStatusCommand = exports.ShowAssertionRetriesStatusCommand = void 0;
7
7
  const type_1 = __importDefault(require("./type"));
8
8
  // Commands
9
9
  class ShowAssertionRetriesStatusCommand {
@@ -51,11 +51,4 @@ class GetActiveElementCommand {
51
51
  }
52
52
  }
53
53
  exports.GetActiveElementCommand = GetActiveElementCommand;
54
- class PrepareClientEnvironmentInDebugMode {
55
- constructor(esmRuntime) {
56
- this.type = type_1.default.prepareClientEnvironmentInDebugMode;
57
- this.esmRuntime = esmRuntime;
58
- }
59
- }
60
- exports.PrepareClientEnvironmentInDebugMode = PrepareClientEnvironmentInDebugMode;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0LXJ1bi9jb21tYW5kcy9zZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUUxQixXQUFXO0FBQ1gsTUFBYSxpQ0FBaUM7SUFDMUMsWUFBYSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQU0sY0FBSSxDQUFDLDBCQUEwQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUxELDhFQUtDO0FBRUQsTUFBYSxpQ0FBaUM7SUFDMUMsWUFBYSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQU0sY0FBSSxDQUFDLDBCQUEwQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUxELDhFQUtDO0FBRUQsTUFBYSxvQkFBb0I7SUFDN0IsWUFBYSxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQVUsY0FBSSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFMRCxvREFLQztBQUVELE1BQWEsZUFBZTtJQUN4QjtRQUNJLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUFKRCwwQ0FJQztBQUVELE1BQWEscUJBQXFCO0lBQzlCO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQUpELHNEQUlDO0FBRUQsTUFBYSxpQkFBaUI7SUFDMUI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQztDQUNKO0FBSkQsOENBSUM7QUFFRCxNQUFhLHVCQUF1QjtJQUNoQztRQUNJLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUpELDBEQUlDO0FBRUQsTUFBYSxtQ0FBbUM7SUFDNUMsWUFBYSxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQVMsY0FBSSxDQUFDLG1DQUFtQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQUxELGtGQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcblxuLy8gQ29tbWFuZHNcbmV4cG9ydCBjbGFzcyBTaG93QXNzZXJ0aW9uUmV0cmllc1N0YXR1c0NvbW1hbmQge1xuICAgIGNvbnN0cnVjdG9yICh0aW1lb3V0KSB7XG4gICAgICAgIHRoaXMudHlwZSAgICA9IFRZUEUuc2hvd0Fzc2VydGlvblJldHJpZXNTdGF0dXM7XG4gICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGlkZUFzc2VydGlvblJldHJpZXNTdGF0dXNDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnR5cGUgICAgPSBUWVBFLmhpZGVBc3NlcnRpb25SZXRyaWVzU3RhdHVzO1xuICAgICAgICB0aGlzLnN1Y2Nlc3MgPSBzdWNjZXNzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldEJyZWFrcG9pbnRDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoaXNUZXN0RXJyb3IpIHtcbiAgICAgICAgdGhpcy50eXBlICAgICAgICA9IFRZUEUuc2V0QnJlYWtwb2ludDtcbiAgICAgICAgdGhpcy5pc1Rlc3RFcnJvciA9IGlzVGVzdEVycm9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlc3REb25lQ29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLnRlc3REb25lO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJhY2t1cFN0b3JhZ2VzQ29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLmJhY2t1cFN0b3JhZ2VzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVubG9ja1BhZ2VDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IFRZUEUudW5sb2NrUGFnZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRBY3RpdmVFbGVtZW50Q29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLmdldEFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJlcGFyZUNsaWVudEVudmlyb25tZW50SW5EZWJ1Z01vZGUge1xuICAgIGNvbnN0cnVjdG9yIChlc21SdW50aW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSAgICAgICA9IFRZUEUucHJlcGFyZUNsaWVudEVudmlyb25tZW50SW5EZWJ1Z01vZGU7XG4gICAgICAgIHRoaXMuZXNtUnVudGltZSA9IGVzbVJ1bnRpbWU7XG4gICAgfVxufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0LXJ1bi9jb21tYW5kcy9zZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUUxQixXQUFXO0FBQ1gsTUFBYSxpQ0FBaUM7SUFDMUMsWUFBYSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQU0sY0FBSSxDQUFDLDBCQUEwQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUxELDhFQUtDO0FBRUQsTUFBYSxpQ0FBaUM7SUFDMUMsWUFBYSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQU0sY0FBSSxDQUFDLDBCQUEwQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUxELDhFQUtDO0FBRUQsTUFBYSxvQkFBb0I7SUFDN0IsWUFBYSxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQVUsY0FBSSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFMRCxvREFLQztBQUVELE1BQWEsZUFBZTtJQUN4QjtRQUNJLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUFKRCwwQ0FJQztBQUVELE1BQWEscUJBQXFCO0lBQzlCO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQUpELHNEQUlDO0FBRUQsTUFBYSxpQkFBaUI7SUFDMUI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQztDQUNKO0FBSkQsOENBSUM7QUFFRCxNQUFhLHVCQUF1QjtJQUNoQztRQUNJLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUpELDBEQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcblxuLy8gQ29tbWFuZHNcbmV4cG9ydCBjbGFzcyBTaG93QXNzZXJ0aW9uUmV0cmllc1N0YXR1c0NvbW1hbmQge1xuICAgIGNvbnN0cnVjdG9yICh0aW1lb3V0KSB7XG4gICAgICAgIHRoaXMudHlwZSAgICA9IFRZUEUuc2hvd0Fzc2VydGlvblJldHJpZXNTdGF0dXM7XG4gICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGlkZUFzc2VydGlvblJldHJpZXNTdGF0dXNDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnR5cGUgICAgPSBUWVBFLmhpZGVBc3NlcnRpb25SZXRyaWVzU3RhdHVzO1xuICAgICAgICB0aGlzLnN1Y2Nlc3MgPSBzdWNjZXNzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldEJyZWFrcG9pbnRDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoaXNUZXN0RXJyb3IpIHtcbiAgICAgICAgdGhpcy50eXBlICAgICAgICA9IFRZUEUuc2V0QnJlYWtwb2ludDtcbiAgICAgICAgdGhpcy5pc1Rlc3RFcnJvciA9IGlzVGVzdEVycm9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlc3REb25lQ29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLnRlc3REb25lO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJhY2t1cFN0b3JhZ2VzQ29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLmJhY2t1cFN0b3JhZ2VzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVubG9ja1BhZ2VDb21tYW5kIHtcbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IFRZUEUudW5sb2NrUGFnZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRBY3RpdmVFbGVtZW50Q29tbWFuZCB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLmdldEFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxufVxuIl19