testcafe 1.20.2-alpha.1 → 2.0.0-rc.3

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 (231) hide show
  1. package/lib/api/request-hooks/assert-type.js +2 -2
  2. package/lib/api/request-hooks/hook.js +2 -2
  3. package/lib/api/request-hooks/request-logger.js +2 -2
  4. package/lib/api/skip-js-errors/index.js +62 -0
  5. package/lib/api/structure/base-unit.js +2 -2
  6. package/lib/api/structure/fixture.js +13 -13
  7. package/lib/api/structure/test.js +18 -17
  8. package/lib/api/structure/testing-unit.js +26 -16
  9. package/lib/api/test-controller/assertion.js +5 -5
  10. package/lib/api/test-controller/execution-context.js +2 -2
  11. package/lib/api/test-controller/index.js +33 -30
  12. package/lib/api/test-controller/proxy.js +2 -2
  13. package/lib/api/test-page-url.js +4 -4
  14. package/lib/api/test-run-tracker.js +2 -2
  15. package/lib/api/wrap-test-function.js +3 -3
  16. package/lib/assertions/executor.js +4 -4
  17. package/lib/assertions/get-fn.js +3 -3
  18. package/lib/browser/connection/gateway.js +18 -18
  19. package/lib/browser/connection/get-hints.js +8 -8
  20. package/lib/browser/connection/index.js +11 -11
  21. package/lib/browser/connection/remotes-queue.js +4 -4
  22. package/lib/browser/provider/built-in/dedicated/base.js +6 -6
  23. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +10 -10
  24. package/lib/browser/provider/built-in/dedicated/chrome/config.js +17 -17
  25. package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +4 -4
  26. package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
  27. package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +6 -6
  28. package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +4 -4
  29. package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +2 -2
  30. package/lib/browser/provider/built-in/dedicated/firefox/config.js +8 -8
  31. package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +3 -3
  32. package/lib/browser/provider/built-in/dedicated/firefox/index.js +5 -5
  33. package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +2 -2
  34. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +7 -7
  35. package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +3 -3
  36. package/lib/browser/provider/built-in/path.js +2 -2
  37. package/lib/browser/provider/built-in/remote.js +3 -3
  38. package/lib/browser/provider/index.js +5 -5
  39. package/lib/browser/provider/plugin-host.js +5 -6
  40. package/lib/browser/provider/pool.js +4 -4
  41. package/lib/browser/provider/utils/argument-parsing.js +3 -3
  42. package/lib/browser/provider/utils/browser-starter.js +2 -2
  43. package/lib/cli/argument-parser/index.js +52 -41
  44. package/lib/cli/argument-parser/parse-utils.js +2 -2
  45. package/lib/cli/authentication-helper.js +3 -3
  46. package/lib/cli/cli.js +8 -8
  47. package/lib/cli/correct-browsers-and-sources.js +2 -2
  48. package/lib/cli/index.js +2 -2
  49. package/lib/cli/log.js +3 -3
  50. package/lib/cli/remotes-wizard.js +3 -3
  51. package/lib/client/automation/index.js +120 -34
  52. package/lib/client/automation/index.min.js +1 -1
  53. package/lib/client/browser/idle-page/index.js +321 -317
  54. package/lib/client/browser/service-worker.js +244 -290
  55. package/lib/client/core/deps/hammerhead.js +12 -4
  56. package/lib/client/core/index.js +145 -55
  57. package/lib/client/core/index.min.js +1 -1
  58. package/lib/client/core/utils/dom.js +33 -28
  59. package/lib/client/core/utils/position.js +18 -14
  60. package/lib/client/core/utils/style.js +8 -4
  61. package/lib/client/driver/command-executors/client-functions/selector-executor/filter.js +5 -5
  62. package/lib/client/driver/command-executors/client-functions/selector-executor/utils.js +3 -3
  63. package/lib/client/driver/deps/hammerhead.js +12 -4
  64. package/lib/client/driver/deps/testcafe-core.js +12 -4
  65. package/lib/client/driver/deps/testcafe-ui.js +12 -4
  66. package/lib/client/driver/index.js +654 -630
  67. package/lib/client/driver/index.min.js +1 -1
  68. package/lib/client/driver/status.js +2 -2
  69. package/lib/client/ui/index.js +10 -8
  70. package/lib/client/ui/index.min.js +1 -1
  71. package/lib/client-functions/builder-symbol.js +1 -2
  72. package/lib/client-functions/client-function-builder.js +12 -12
  73. package/lib/client-functions/replicator.js +2 -2
  74. package/lib/client-functions/selector-api-execution-mode.js +2 -2
  75. package/lib/client-functions/selectors/add-api.js +48 -48
  76. package/lib/client-functions/selectors/selector-builder.js +17 -17
  77. package/lib/compiler/compile-client-function.js +6 -6
  78. package/lib/compiler/index.js +9 -9
  79. package/lib/compiler/test-file/api-based.js +8 -8
  80. package/lib/compiler/test-file/base.js +6 -6
  81. package/lib/compiler/test-file/exportble-lib-path.js +2 -2
  82. package/lib/compiler/test-file/formats/coffeescript/compiler.js +2 -2
  83. package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +2 -2
  84. package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
  85. package/lib/compiler/test-file/formats/es-next/get-test-list.js +4 -4
  86. package/lib/compiler/test-file/formats/raw.js +2 -2
  87. package/lib/compiler/test-file/formats/typescript/compiler.js +11 -11
  88. package/lib/compiler/test-file/formats/typescript/get-test-list.js +3 -3
  89. package/lib/compiler/test-file/test-file-parser-base.js +3 -3
  90. package/lib/configuration/configuration-base.js +15 -15
  91. package/lib/configuration/interfaces.js +1 -1
  92. package/lib/configuration/skip-js-errors-option-names.js +11 -0
  93. package/lib/configuration/testcafe-configuration.js +21 -16
  94. package/lib/configuration/types.js +1 -1
  95. package/lib/configuration/typescript-configuration.js +4 -4
  96. package/lib/custom-client-scripts/assert-type.js +2 -2
  97. package/lib/custom-client-scripts/client-script.js +6 -6
  98. package/lib/custom-client-scripts/get-code.js +2 -2
  99. package/lib/custom-client-scripts/routing.js +3 -3
  100. package/lib/custom-client-scripts/utils.js +3 -3
  101. package/lib/dashboard/connector.js +4 -4
  102. package/lib/dashboard/get-default-project-link.js +2 -2
  103. package/lib/dashboard/index.js +26 -26
  104. package/lib/errors/create-stack-filter.js +2 -2
  105. package/lib/errors/error-list.js +2 -2
  106. package/lib/errors/get-callsite.js +2 -2
  107. package/lib/errors/is-internal-stack-frame.js +5 -5
  108. package/lib/errors/process-test-fn-error.js +2 -2
  109. package/lib/errors/runtime/index.js +10 -10
  110. package/lib/errors/runtime/templates.js +5 -2
  111. package/lib/errors/runtime/type-assertions.js +6 -6
  112. package/lib/errors/stack-cleaning-hook.js +2 -2
  113. package/lib/errors/test-run/formattable-adapter.js +7 -7
  114. package/lib/errors/test-run/index.js +25 -5
  115. package/lib/errors/test-run/render-error-template/index.js +6 -6
  116. package/lib/errors/test-run/render-error-template/utils.js +2 -2
  117. package/lib/errors/test-run/templates.js +40 -31
  118. package/lib/errors/test-run/utils.js +7 -7
  119. package/lib/errors/types.js +5 -1
  120. package/lib/index.js +1 -1
  121. package/lib/live/file-watcher/index.js +2 -2
  122. package/lib/live/keyboard-observer.js +3 -3
  123. package/lib/live/test-run-controller.js +3 -3
  124. package/lib/live/test-run.js +3 -2
  125. package/lib/live/test-runner.js +2 -2
  126. package/lib/load-assets.js +2 -2
  127. package/lib/notifications/add-rendered-warning.js +4 -4
  128. package/lib/notifications/debug-logger.js +6 -6
  129. package/lib/notifications/deprecated.js +2 -2
  130. package/lib/notifications/information-message.js +4 -3
  131. package/lib/proxyless/resource-injector.js +4 -4
  132. package/lib/reporter/command/command-formatter.js +4 -4
  133. package/lib/reporter/index.js +10 -10
  134. package/lib/reporter/plugin-host.js +7 -7
  135. package/lib/role/index.js +8 -8
  136. package/lib/role/role.js +2 -2
  137. package/lib/runner/bootstrapper.js +20 -20
  138. package/lib/runner/browser-job.js +3 -3
  139. package/lib/runner/browser-set.js +12 -12
  140. package/lib/runner/fixture-hook-controller.js +5 -5
  141. package/lib/runner/index.js +43 -33
  142. package/lib/runner/task/index.js +10 -6
  143. package/lib/runner/test-run-hook-controller.js +5 -5
  144. package/lib/runner/tested-app.js +7 -7
  145. package/lib/screenshots/capturer.js +17 -17
  146. package/lib/screenshots/crop.js +8 -8
  147. package/lib/screenshots/index.js +6 -10
  148. package/lib/screenshots/utils.js +4 -4
  149. package/lib/services/compiler/host.js +8 -8
  150. package/lib/services/compiler/service.js +13 -13
  151. package/lib/services/compiler/test-run-proxy.js +8 -8
  152. package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +2 -2
  153. package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
  154. package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +3 -3
  155. package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +2 -2
  156. package/lib/services/serialization/test-structure.js +4 -4
  157. package/lib/services/utils/ipc/interfaces.js +1 -3
  158. package/lib/services/utils/ipc/io.js +3 -3
  159. package/lib/services/utils/ipc/message.js +2 -2
  160. package/lib/services/utils/ipc/proxy.js +4 -4
  161. package/lib/services/utils/ipc/transport.js +2 -2
  162. package/lib/shared/errors/index.js +9 -2
  163. package/lib/shared/errors/selector-error-ctor-callback.js +7 -3
  164. package/lib/test-run/bookmark.js +1 -1
  165. package/lib/test-run/browser-manipulation-queue.js +3 -3
  166. package/lib/test-run/commands/actions.js +66 -46
  167. package/lib/test-run/commands/assertion.js +3 -3
  168. package/lib/test-run/commands/base.js +2 -2
  169. package/lib/test-run/commands/browser-manipulation.js +8 -8
  170. package/lib/test-run/commands/observation.js +4 -4
  171. package/lib/test-run/commands/options.js +27 -12
  172. package/lib/test-run/commands/type.js +2 -1
  173. package/lib/test-run/commands/utils.js +3 -2
  174. package/lib/test-run/commands/validations/argument.js +19 -10
  175. package/lib/test-run/commands/validations/factories.js +10 -2
  176. package/lib/test-run/commands/validations/initializers.js +4 -4
  177. package/lib/test-run/debug-log.js +4 -4
  178. package/lib/test-run/execute-js-expression/index.js +4 -4
  179. package/lib/test-run/index.js +48 -41
  180. package/lib/test-run/request/create-request-options.js +9 -9
  181. package/lib/test-run/request/process-response-data.js +2 -2
  182. package/lib/test-run/request/send.js +5 -5
  183. package/lib/testcafe.js +8 -4
  184. package/lib/utils/check-file-path.js +2 -2
  185. package/lib/utils/check-url.js +2 -2
  186. package/lib/utils/correct-file-path.js +4 -4
  187. package/lib/utils/delegated-api.js +1 -1
  188. package/lib/utils/detect-ffmpeg.js +3 -3
  189. package/lib/utils/diff/colors.js +2 -2
  190. package/lib/utils/diff/index.js +11 -7
  191. package/lib/utils/diff/util.js +5 -5
  192. package/lib/utils/diff.js +4 -4
  193. package/lib/utils/escape-user-agent.js +2 -2
  194. package/lib/utils/execute-fn-with-timeout.js +2 -2
  195. package/lib/utils/get-browser.js +2 -2
  196. package/lib/utils/get-filter-fn.js +4 -4
  197. package/lib/utils/get-options/base.js +2 -2
  198. package/lib/utils/get-options/compiler.js +2 -2
  199. package/lib/utils/get-options/dashboard.js +2 -2
  200. package/lib/utils/get-options/get-assertion-timeout.js +1 -1
  201. package/lib/utils/get-options/index.js +4 -2
  202. package/lib/utils/get-options/meta.js +2 -2
  203. package/lib/utils/get-options/quarantine.js +8 -6
  204. package/lib/utils/get-options/screenshot.js +2 -2
  205. package/lib/utils/get-options/skip-js-errors.js +35 -0
  206. package/lib/utils/get-options/ssl.js +6 -6
  207. package/lib/utils/get-options/video.js +2 -2
  208. package/lib/utils/is-password-input.js +1 -1
  209. package/lib/utils/log-entry.js +2 -2
  210. package/lib/utils/make-reg-exp.js +19 -6
  211. package/lib/utils/moment-loader.js +2 -2
  212. package/lib/utils/parse-file-list.js +7 -7
  213. package/lib/utils/path-pattern.js +4 -4
  214. package/lib/utils/prepare-reporters.js +2 -2
  215. package/lib/utils/prerender-callsite.js +6 -6
  216. package/lib/utils/process.js +7 -7
  217. package/lib/utils/promisified-functions.js +14 -14
  218. package/lib/utils/raw-command-callsite-record.js +2 -2
  219. package/lib/utils/resolve-path-relatively-cwd.js +2 -2
  220. package/lib/utils/string.js +3 -3
  221. package/lib/utils/temp-directory/cleanup-process/index.js +6 -6
  222. package/lib/utils/temp-directory/cleanup-process/worker.js +4 -4
  223. package/lib/utils/temp-directory/index.js +6 -6
  224. package/lib/utils/temp-directory/lockfile.js +2 -2
  225. package/lib/video-recorder/process.js +6 -6
  226. package/lib/video-recorder/recorder.js +9 -9
  227. package/lib/video-recorder/test-run-video-recorder.js +2 -2
  228. package/package.json +8 -7
  229. package/ts-defs/index.d.ts +46 -7
  230. package/ts-defs/selectors.d.ts +39 -0
  231. package/ts-defs/testcafe-scripts.d.ts +39 -0
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
18
  var __importStar = (this && this.__importStar) || function (mod) {
15
19
  if (mod && mod.__esModule) return mod;
16
20
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
22
  __setModuleDefault(result, mod);
19
23
  return result;
20
24
  };
@@ -35,7 +39,7 @@ const phase_1 = __importDefault(require("./phase"));
35
39
  class Task extends async_event_emitter_1.default {
36
40
  constructor({ tests, browserConnectionGroups, proxy, opts, runnerWarningLog, compilerService, messageBus, }) {
37
41
  super({ captureRejections: true });
38
- this._timeStamp = moment_1.default();
42
+ this._timeStamp = (0, moment_1.default)();
39
43
  this._phase = phase_1.default.initialized;
40
44
  this.browserConnectionGroups = browserConnectionGroups;
41
45
  this.tests = tests;
@@ -81,7 +85,7 @@ class Task extends async_event_emitter_1.default {
81
85
  });
82
86
  job.once('done', async () => {
83
87
  await this.emit('browser-job-done', job);
84
- lodash_1.pull(this._pendingBrowserJobs, job);
88
+ (0, lodash_1.pull)(this._pendingBrowserJobs, job);
85
89
  if (!this._pendingBrowserJobs.length) {
86
90
  this._phase = phase_1.default.done;
87
91
  await this._messageBus.emit('done');
@@ -94,7 +98,7 @@ class Task extends async_event_emitter_1.default {
94
98
  });
95
99
  }
96
100
  _prepareTestStructure(tests) {
97
- const groups = lodash_1.groupBy(tests, 'fixture.id');
101
+ const groups = (0, lodash_1.groupBy)(tests, 'fixture.id');
98
102
  return Object.keys(groups).map(fixtureId => {
99
103
  const testsByGroup = groups[fixtureId];
100
104
  const fixture = testsByGroup[0].fixture;
@@ -141,4 +145,4 @@ class Task extends async_event_emitter_1.default {
141
145
  }
142
146
  exports.default = Task;
143
147
  module.exports = exports.default;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVubmVyL3Rhc2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQWlEO0FBQ2pELG9EQUE0QjtBQUM1QiwwRkFBZ0U7QUFDaEUsaUVBQXdDO0FBQ3hDLG9FQUE0QztBQUM1QyxrRkFBeUQ7QUFDekQseUZBQStEO0FBQy9ELDBGQUE0RTtBQUM1RSx5RUFBaUQ7QUFhakQsb0RBQWdDO0FBS2hDLE1BQXFCLElBQUssU0FBUSw2QkFBaUI7SUFrQi9DLFlBQW9CLEVBQ2hCLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLElBQUksRUFDSixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFVBQVUsR0FDSDtRQUNQLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLFVBQVUsR0FBZ0IsZ0JBQU0sRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQW9CLGVBQVMsQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQXFCLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFzQixJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBb0IsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQWdCLElBQUkscUJBQVUsQ0FBQyxJQUFJLEVBQUUscUJBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxnQkFBZ0IsR0FBVSxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBZSxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdC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QUFzQixDQUFDLEVBQUU7WUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxxQkFBVSxDQUFDO2dCQUN2QixLQUFLLEVBQWtCLElBQUksQ0FBQyxLQUFLO2dCQUNqQyxrQkFBa0IsRUFBSyxzQkFBc0I7Z0JBQzdDLFdBQVcsRUFBWSxJQUFJLENBQUMsV0FBVztnQkFDdkMsVUFBVSxFQUFhLElBQUksQ0FBQyxVQUFVO2dCQUN0QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO2dCQUNqRCxlQUFlLEVBQVEsSUFBSSxDQUFDLGdCQUFnQjtnQkFDNUMsVUFBVSxFQUFhLElBQUksQ0FBQyxXQUFXO2dCQUN2QyxLQUFLO2dCQUNMLElBQUk7YUFDUCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWpELE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sNkJBQTZCO1FBQ2hDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxNQUFNO0lBQ0MsS0FBSztRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0o7QUE5SkQsdUJBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXBCeSwgcHVsbCBhcyByZW1vdmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IEFzeW5jRXZlbnRFbWl0dGVyIGZyb20gJy4uLy4uL3V0aWxzL2FzeW5jLWV2ZW50LWVtaXR0ZXInO1xuaW1wb3J0IEJyb3dzZXJKb2IgZnJvbSAnLi4vYnJvd3Nlci1qb2InO1xuaW1wb3J0IFNjcmVlbnNob3RzIGZyb20gJy4uLy4uL3NjcmVlbnNob3RzJztcbmltcG9ydCBXYXJuaW5nTG9nIGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbnMvd2FybmluZy1sb2cnO1xuaW1wb3J0IEZpeHR1cmVIb29rQ29udHJvbGxlciBmcm9tICcuLi9maXh0dXJlLWhvb2stY29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBjbGllbnRTY3JpcHRzUm91dGluZyBmcm9tICcuLi8uLi9jdXN0b20tY2xpZW50LXNjcmlwdHMvcm91dGluZyc7XG5pbXBvcnQgVmlkZW9zIGZyb20gJy4uLy4uL3ZpZGVvLXJlY29yZGVyL3ZpZGVvcyc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi8uLi90ZXN0LXJ1bic7XG5pbXBvcnQgeyBQcm94eSB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbkV2ZW50QXJnLFxuICAgIFJlcG9ydGVkVGVzdFN0cnVjdHVyZUl0ZW0sXG4gICAgVGFza0luaXQsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgQnJvd3NlckNvbm5lY3Rpb24gZnJvbSAnLi4vLi4vYnJvd3Nlci9jb25uZWN0aW9uJztcbmltcG9ydCBUZXN0IGZyb20gJy4uLy4uL2FwaS9zdHJ1Y3R1cmUvdGVzdCc7XG5pbXBvcnQgeyBWaWRlb09wdGlvbnMgfSBmcm9tICcuLi8uLi92aWRlby1yZWNvcmRlci9pbnRlcmZhY2VzJztcbmltcG9ydCBUYXNrUGhhc2UgZnJvbSAnLi9waGFzZSc7XG5pbXBvcnQgQ29tcGlsZXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbXBpbGVyL2hvc3QnO1xuaW1wb3J0IEZpeHR1cmUgZnJvbSAnLi4vLi4vYXBpL3N0cnVjdHVyZS9maXh0dXJlJztcbmltcG9ydCBNZXNzYWdlQnVzIGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2UtYnVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFzayBleHRlbmRzIEFzeW5jRXZlbnRFbWl0dGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90aW1lU3RhbXA6IG1vbWVudC5Nb21lbnQ7XG4gICAgcHJpdmF0ZSBfcGhhc2U6IFRhc2tQaGFzZTtcbiAgICBwdWJsaWMgYnJvd3NlckNvbm5lY3Rpb25Hcm91cHM6IEJyb3dzZXJDb25uZWN0aW9uW11bXTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVzdHM6IFRlc3RbXTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0czogRGljdGlvbmFyeTxPcHRpb25WYWx1ZT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJveHk6IFByb3h5O1xuICAgIHB1YmxpYyByZWFkb25seSB3YXJuaW5nTG9nOiBXYXJuaW5nTG9nO1xuICAgIHB1YmxpYyByZWFkb25seSBzY3JlZW5zaG90czogU2NyZWVuc2hvdHM7XG4gICAgcHVibGljIHJlYWRvbmx5IGZpeHR1cmVIb29rQ29udHJvbGxlcjogRml4dHVyZUhvb2tDb250cm9sbGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmdCcm93c2VySm9iczogQnJvd3NlckpvYltdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsaWVudFNjcmlwdFJvdXRlczogc3RyaW5nW107XG4gICAgcHVibGljIHJlYWRvbmx5IHRlc3RTdHJ1Y3R1cmU6IFJlcG9ydGVkVGVzdFN0cnVjdHVyZUl0ZW1bXTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlkZW9zPzogVmlkZW9zO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBpbGVyU2VydmljZT86IENvbXBpbGVyU2VydmljZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlQnVzOiBNZXNzYWdlQnVzO1xuICAgIHB1YmxpYyBzdGFydFRpbWU/OiBEYXRlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yICh7XG4gICAgICAgIHRlc3RzLFxuICAgICAgICBicm93c2VyQ29ubmVjdGlvbkdyb3VwcyxcbiAgICAgICAgcHJveHksXG4gICAgICAgIG9wdHMsXG4gICAgICAgIHJ1bm5lcldhcm5pbmdMb2csXG4gICAgICAgIGNvbXBpbGVyU2VydmljZSxcbiAgICAgICAgbWVzc2FnZUJ1cyxcbiAgICB9OiBUYXNrSW5pdCkge1xuICAgICAgICBzdXBlcih7IGNhcHR1cmVSZWplY3Rpb25zOiB0cnVlIH0pO1xuXG4gICAgICAgIHRoaXMuX3RpbWVTdGFtcCAgICAgICAgICAgICAgPSBtb21lbnQoKTtcbiAgICAgICAgdGhpcy5fcGhhc2UgICAgICAgICAgICAgICAgICA9IFRhc2tQaGFzZS5pbml0aWFsaXplZDtcbiAgICAgICAgdGhpcy5icm93c2VyQ29ubmVjdGlvbkdyb3VwcyA9IGJyb3dzZXJDb25uZWN0aW9uR3JvdXBzO1xuICAgICAgICB0aGlzLnRlc3RzICAgICAgICAgICAgICAgICAgID0gdGVzdHM7XG4gICAgICAgIHRoaXMub3B0cyAgICAgICAgICAgICAgICAgICAgPSBvcHRzO1xuICAgICAgICB0aGlzLl9wcm94eSAgICAgICAgICAgICAgICAgID0gcHJveHk7XG4gICAgICAgIHRoaXMud2FybmluZ0xvZyAgICAgICAgICAgICAgPSBuZXcgV2FybmluZ0xvZyhudWxsLCBXYXJuaW5nTG9nLmNyZWF0ZUFkZFdhcm5pbmdDYWxsYmFjayhtZXNzYWdlQnVzKSk7XG4gICAgICAgIHRoaXMuX2NvbXBpbGVyU2VydmljZSAgICAgICAgPSBjb21waWxlclNlcnZpY2U7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VCdXMgICAgICAgICAgICAgPSBtZXNzYWdlQnVzO1xuXG4gICAgICAgIHRoaXMud2FybmluZ0xvZy5jb3B5RnJvbShydW5uZXJXYXJuaW5nTG9nKTtcblxuICAgICAgICBjb25zdCB7IHBhdGgsIHBhdGhQYXR0ZXJuLCBmdWxsUGFnZSwgdGh1bWJuYWlscywgYXV0b1Rha2VPbkZhaWxzIH0gPSB0aGlzLm9wdHMuc2NyZWVuc2hvdHMgYXMgU2NyZWVuc2hvdE9wdGlvblZhbHVlO1xuXG4gICAgICAgIHRoaXMuc2NyZWVuc2hvdHMgPSBuZXcgU2NyZWVuc2hvdHMoe1xuICAgICAgICAgICAgZW5hYmxlZDogIXRoaXMub3B0cy5kaXNhYmxlU2NyZWVuc2hvdHMsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGF0aFBhdHRlcm4sXG4gICAgICAgICAgICBmdWxsUGFnZSxcbiAgICAgICAgICAgIHRodW1ibmFpbHMsXG4gICAgICAgICAgICBtZXNzYWdlQnVzLFxuICAgICAgICAgICAgYXV0b1Rha2VPbkZhaWxzLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpeHR1cmVIb29rQ29udHJvbGxlciA9IG5ldyBGaXh0dXJlSG9va0NvbnRyb2xsZXIodGVzdHMsIGJyb3dzZXJDb25uZWN0aW9uR3JvdXBzLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuX3BlbmRpbmdCcm93c2VySm9icyAgID0gdGhpcy5fY3JlYXRlQnJvd3NlckpvYnMocHJveHksIHRoaXMub3B0cyk7XG4gICAgICAgIHRoaXMuX2NsaWVudFNjcmlwdFJvdXRlcyAgID0gY2xpZW50U2NyaXB0c1JvdXRpbmcucmVnaXN0ZXIocHJveHksIHRlc3RzKTtcbiAgICAgICAgdGhpcy50ZXN0U3RydWN0dXJlICAgICAgICAgPSB0aGlzLl9wcmVwYXJlVGVzdFN0cnVjdHVyZSh0ZXN0cyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy52aWRlb1BhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlkZW9QYXRoLCB2aWRlb09wdGlvbnMsIHZpZGVvRW5jb2RpbmdPcHRpb25zIH0gPSB0aGlzLm9wdHM7XG5cbiAgICAgICAgICAgIHRoaXMudmlkZW9zID0gbmV3IFZpZGVvcyh0aGlzLl9wZW5kaW5nQnJvd3NlckpvYnMsIHsgdmlkZW9QYXRoLCB2aWRlb09wdGlvbnMsIHZpZGVvRW5jb2RpbmdPcHRpb25zIH0gYXMgdW5rbm93biBhcyBWaWRlb09wdGlvbnMsIHRoaXMud2FybmluZ0xvZywgdGhpcy5fdGltZVN0YW1wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnbkJyb3dzZXJKb2JFdmVudEhhbmRsZXJzIChqb2I6IEJyb3dzZXJKb2IpOiB2b2lkIHtcbiAgICAgICAgam9iLm9uKCd0ZXN0LXJ1bi1kb25lJywgYXN5bmMgKHRlc3RSdW46IFRlc3RSdW4pID0+IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgndGVzdC1ydW4tZG9uZScsIHRlc3RSdW4pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRzLnN0b3BPbkZpcnN0RmFpbCAmJiB0ZXN0UnVuLmVycnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hYm9ydCgpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCdkb25lJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGpvYi5vbmNlKCdzdGFydCcsIGFzeW5jIChzdGFydFRpbWU6IERhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9waGFzZSAhPT0gVGFza1BoYXNlLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9waGFzZSAgICA9IFRhc2tQaGFzZS5zdGFydGVkO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gc3RhcnRUaW1lO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCdzdGFydCcsIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBqb2Iub25jZSgnZG9uZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdCgnYnJvd3Nlci1qb2ItZG9uZScsIGpvYik7XG5cbiAgICAgICAgICAgIHJlbW92ZSh0aGlzLl9wZW5kaW5nQnJvd3NlckpvYnMsIGpvYik7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fcGVuZGluZ0Jyb3dzZXJKb2JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BoYXNlID0gVGFza1BoYXNlLmRvbmU7XG5cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9tZXNzYWdlQnVzLmVtaXQoJ2RvbmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgam9iLm9uKCd0ZXN0LWFjdGlvbi1kb25lJywgYXN5bmMgKGFyZ3M6IEFjdGlvbkV2ZW50QXJnKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGhhc2UgPT09IFRhc2tQaGFzZS5kb25lKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCd0ZXN0LWFjdGlvbi1kb25lJywgYXJncyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVRlc3RTdHJ1Y3R1cmUgKHRlc3RzOiBUZXN0W10pOiBSZXBvcnRlZFRlc3RTdHJ1Y3R1cmVJdGVtW10ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBncm91cEJ5KHRlc3RzLCAnZml4dHVyZS5pZCcpO1xuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhncm91cHMpLm1hcChmaXh0dXJlSWQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVzdHNCeUdyb3VwID0gZ3JvdXBzW2ZpeHR1cmVJZF07XG4gICAgICAgICAgICBjb25zdCBmaXh0dXJlICAgICAgPSB0ZXN0c0J5R3JvdXBbMF0uZml4dHVyZSBhcyBGaXh0dXJlO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZpeHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICAgIGZpeHR1cmUuaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICBmaXh0dXJlLm5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICB0ZXN0czogdGVzdHNCeUdyb3VwLm1hcCh0ZXN0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICAgdGVzdC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0ZXN0Lm5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXA6IHRlc3Quc2tpcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVCcm93c2VySm9icyAocHJveHk6IFByb3h5LCBvcHRzOiBEaWN0aW9uYXJ5PE9wdGlvblZhbHVlPik6IEJyb3dzZXJKb2JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJyb3dzZXJDb25uZWN0aW9uR3JvdXBzLm1hcChicm93c2VyQ29ubmVjdGlvbkdyb3VwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGpvYiA9IG5ldyBCcm93c2VySm9iKHtcbiAgICAgICAgICAgICAgICB0ZXN0czogICAgICAgICAgICAgICAgIHRoaXMudGVzdHMsXG4gICAgICAgICAgICAgICAgYnJvd3NlckNvbm5lY3Rpb25zOiAgICBicm93c2VyQ29ubmVjdGlvbkdyb3VwLFxuICAgICAgICAgICAgICAgIHNjcmVlbnNob3RzOiAgICAgICAgICAgdGhpcy5zY3JlZW5zaG90cyxcbiAgICAgICAgICAgICAgICB3YXJuaW5nTG9nOiAgICAgICAgICAgIHRoaXMud2FybmluZ0xvZyxcbiAgICAgICAgICAgICAgICBmaXh0dXJlSG9va0NvbnRyb2xsZXI6IHRoaXMuZml4dHVyZUhvb2tDb250cm9sbGVyLFxuICAgICAgICAgICAgICAgIGNvbXBpbGVyU2VydmljZTogICAgICAgdGhpcy5fY29tcGlsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VCdXM6ICAgICAgICAgICAgdGhpcy5fbWVzc2FnZUJ1cyxcbiAgICAgICAgICAgICAgICBwcm94eSxcbiAgICAgICAgICAgICAgICBvcHRzLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkJyb3dzZXJKb2JFdmVudEhhbmRsZXJzKGpvYik7XG4gICAgICAgICAgICBicm93c2VyQ29ubmVjdGlvbkdyb3VwLm1hcChiYyA9PiBiYy5hZGRKb2Ioam9iKSk7XG5cbiAgICAgICAgICAgIHJldHVybiBqb2I7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1blJlZ2lzdGVyQ2xpZW50U2NyaXB0Um91dGluZyAoKTogdm9pZCB7XG4gICAgICAgIGNsaWVudFNjcmlwdHNSb3V0aW5nLnVuUmVnaXN0ZXIodGhpcy5fcHJveHksIHRoaXMuX2NsaWVudFNjcmlwdFJvdXRlcyk7XG4gICAgfVxuXG4gICAgLy8gQVBJXG4gICAgcHVibGljIGFib3J0ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGVuZGluZ0Jyb3dzZXJKb2JzLmZvckVhY2goam9iID0+IGpvYi5hYm9ydCgpKTtcbiAgICB9XG59XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVubmVyL3Rhc2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFpRDtBQUNqRCxvREFBNEI7QUFDNUIsMEZBQWdFO0FBQ2hFLGlFQUF3QztBQUN4QyxvRUFBNEM7QUFDNUMsa0ZBQXlEO0FBQ3pELHlGQUErRDtBQUMvRCwwRkFBNEU7QUFDNUUseUVBQWlEO0FBYWpELG9EQUFnQztBQUtoQyxNQUFxQixJQUFLLFNBQVEsNkJBQWlCO0lBa0IvQyxZQUFvQixFQUNoQixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixVQUFVLEdBQ0g7UUFDUCxLQUFLLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxVQUFVLEdBQWdCLElBQUEsZ0JBQU0sR0FBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQW9CLGVBQVMsQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQXFCLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFzQixJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBb0IsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQWdCLElBQUkscUJBQVUsQ0FBQyxJQUFJLEVBQUUscUJBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxnQkFBZ0IsR0FBVSxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBZSxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENB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QixDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQzdELE1BQU0sR0FBRyxHQUFHLElBQUkscUJBQVUsQ0FBQztnQkFDdkIsS0FBSyxFQUFrQixJQUFJLENBQUMsS0FBSztnQkFDakMsa0JBQWtCLEVBQUssc0JBQXNCO2dCQUM3QyxXQUFXLEVBQVksSUFBSSxDQUFDLFdBQVc7Z0JBQ3ZDLFVBQVUsRUFBYSxJQUFJLENBQUMsVUFBVTtnQkFDdEMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDakQsZUFBZSxFQUFRLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQzVDLFVBQVUsRUFBYSxJQUFJLENBQUMsV0FBVztnQkFDdkMsS0FBSztnQkFDTCxJQUFJO2FBQ1AsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVqRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLDZCQUE2QjtRQUNoQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsTUFBTTtJQUNDLEtBQUs7UUFDUixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNKO0FBOUpELHVCQThKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdyb3VwQnksIHB1bGwgYXMgcmVtb3ZlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCBBc3luY0V2ZW50RW1pdHRlciBmcm9tICcuLi8uLi91dGlscy9hc3luYy1ldmVudC1lbWl0dGVyJztcbmltcG9ydCBCcm93c2VySm9iIGZyb20gJy4uL2Jyb3dzZXItam9iJztcbmltcG9ydCBTY3JlZW5zaG90cyBmcm9tICcuLi8uLi9zY3JlZW5zaG90cyc7XG5pbXBvcnQgV2FybmluZ0xvZyBmcm9tICcuLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbG9nJztcbmltcG9ydCBGaXh0dXJlSG9va0NvbnRyb2xsZXIgZnJvbSAnLi4vZml4dHVyZS1ob29rLWNvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgY2xpZW50U2NyaXB0c1JvdXRpbmcgZnJvbSAnLi4vLi4vY3VzdG9tLWNsaWVudC1zY3JpcHRzL3JvdXRpbmcnO1xuaW1wb3J0IFZpZGVvcyBmcm9tICcuLi8uLi92aWRlby1yZWNvcmRlci92aWRlb3MnO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi4vLi4vdGVzdC1ydW4nO1xuaW1wb3J0IHsgUHJveHkgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25FdmVudEFyZyxcbiAgICBSZXBvcnRlZFRlc3RTdHJ1Y3R1cmVJdGVtLFxuICAgIFRhc2tJbml0LFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IEJyb3dzZXJDb25uZWN0aW9uIGZyb20gJy4uLy4uL2Jyb3dzZXIvY29ubmVjdGlvbic7XG5pbXBvcnQgVGVzdCBmcm9tICcuLi8uLi9hcGkvc3RydWN0dXJlL3Rlc3QnO1xuaW1wb3J0IHsgVmlkZW9PcHRpb25zIH0gZnJvbSAnLi4vLi4vdmlkZW8tcmVjb3JkZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgVGFza1BoYXNlIGZyb20gJy4vcGhhc2UnO1xuaW1wb3J0IENvbXBpbGVyU2VydmljZSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21waWxlci9ob3N0JztcbmltcG9ydCBGaXh0dXJlIGZyb20gJy4uLy4uL2FwaS9zdHJ1Y3R1cmUvZml4dHVyZSc7XG5pbXBvcnQgTWVzc2FnZUJ1cyBmcm9tICcuLi8uLi91dGlscy9tZXNzYWdlLWJ1cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhc2sgZXh0ZW5kcyBBc3luY0V2ZW50RW1pdHRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGltZVN0YW1wOiBtb21lbnQuTW9tZW50O1xuICAgIHByaXZhdGUgX3BoYXNlOiBUYXNrUGhhc2U7XG4gICAgcHVibGljIGJyb3dzZXJDb25uZWN0aW9uR3JvdXBzOiBCcm93c2VyQ29ubmVjdGlvbltdW107XG4gICAgcHVibGljIHJlYWRvbmx5IHRlc3RzOiBUZXN0W107XG4gICAgcHVibGljIHJlYWRvbmx5IG9wdHM6IERpY3Rpb25hcnk8T3B0aW9uVmFsdWU+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Byb3h5OiBQcm94eTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ0xvZzogV2FybmluZ0xvZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2NyZWVuc2hvdHM6IFNjcmVlbnNob3RzO1xuICAgIHB1YmxpYyByZWFkb25seSBmaXh0dXJlSG9va0NvbnRyb2xsZXI6IEZpeHR1cmVIb29rQ29udHJvbGxlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wZW5kaW5nQnJvd3NlckpvYnM6IEJyb3dzZXJKb2JbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jbGllbnRTY3JpcHRSb3V0ZXM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyByZWFkb25seSB0ZXN0U3RydWN0dXJlOiBSZXBvcnRlZFRlc3RTdHJ1Y3R1cmVJdGVtW107XG4gICAgcHVibGljIHJlYWRvbmx5IHZpZGVvcz86IFZpZGVvcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21waWxlclNlcnZpY2U/OiBDb21waWxlclNlcnZpY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZUJ1czogTWVzc2FnZUJ1cztcbiAgICBwdWJsaWMgc3RhcnRUaW1lPzogRGF0ZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoe1xuICAgICAgICB0ZXN0cyxcbiAgICAgICAgYnJvd3NlckNvbm5lY3Rpb25Hcm91cHMsXG4gICAgICAgIHByb3h5LFxuICAgICAgICBvcHRzLFxuICAgICAgICBydW5uZXJXYXJuaW5nTG9nLFxuICAgICAgICBjb21waWxlclNlcnZpY2UsXG4gICAgICAgIG1lc3NhZ2VCdXMsXG4gICAgfTogVGFza0luaXQpIHtcbiAgICAgICAgc3VwZXIoeyBjYXB0dXJlUmVqZWN0aW9uczogdHJ1ZSB9KTtcblxuICAgICAgICB0aGlzLl90aW1lU3RhbXAgICAgICAgICAgICAgID0gbW9tZW50KCk7XG4gICAgICAgIHRoaXMuX3BoYXNlICAgICAgICAgICAgICAgICAgPSBUYXNrUGhhc2UuaW5pdGlhbGl6ZWQ7XG4gICAgICAgIHRoaXMuYnJvd3NlckNvbm5lY3Rpb25Hcm91cHMgPSBicm93c2VyQ29ubmVjdGlvbkdyb3VwcztcbiAgICAgICAgdGhpcy50ZXN0cyAgICAgICAgICAgICAgICAgICA9IHRlc3RzO1xuICAgICAgICB0aGlzLm9wdHMgICAgICAgICAgICAgICAgICAgID0gb3B0cztcbiAgICAgICAgdGhpcy5fcHJveHkgICAgICAgICAgICAgICAgICA9IHByb3h5O1xuICAgICAgICB0aGlzLndhcm5pbmdMb2cgICAgICAgICAgICAgID0gbmV3IFdhcm5pbmdMb2cobnVsbCwgV2FybmluZ0xvZy5jcmVhdGVBZGRXYXJuaW5nQ2FsbGJhY2sobWVzc2FnZUJ1cykpO1xuICAgICAgICB0aGlzLl9jb21waWxlclNlcnZpY2UgICAgICAgID0gY29tcGlsZXJTZXJ2aWNlO1xuICAgICAgICB0aGlzLl9tZXNzYWdlQnVzICAgICAgICAgICAgID0gbWVzc2FnZUJ1cztcblxuICAgICAgICB0aGlzLndhcm5pbmdMb2cuY29weUZyb20ocnVubmVyV2FybmluZ0xvZyk7XG5cbiAgICAgICAgY29uc3QgeyBwYXRoLCBwYXRoUGF0dGVybiwgZnVsbFBhZ2UsIHRodW1ibmFpbHMsIGF1dG9UYWtlT25GYWlscyB9ID0gdGhpcy5vcHRzLnNjcmVlbnNob3RzIGFzIFNjcmVlbnNob3RPcHRpb25WYWx1ZTtcblxuICAgICAgICB0aGlzLnNjcmVlbnNob3RzID0gbmV3IFNjcmVlbnNob3RzKHtcbiAgICAgICAgICAgIGVuYWJsZWQ6ICF0aGlzLm9wdHMuZGlzYWJsZVNjcmVlbnNob3RzLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhdGhQYXR0ZXJuLFxuICAgICAgICAgICAgZnVsbFBhZ2UsXG4gICAgICAgICAgICB0aHVtYm5haWxzLFxuICAgICAgICAgICAgbWVzc2FnZUJ1cyxcbiAgICAgICAgICAgIGF1dG9UYWtlT25GYWlscyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maXh0dXJlSG9va0NvbnRyb2xsZXIgPSBuZXcgRml4dHVyZUhvb2tDb250cm9sbGVyKHRlc3RzLCBicm93c2VyQ29ubmVjdGlvbkdyb3Vwcy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl9wZW5kaW5nQnJvd3NlckpvYnMgICA9IHRoaXMuX2NyZWF0ZUJyb3dzZXJKb2JzKHByb3h5LCB0aGlzLm9wdHMpO1xuICAgICAgICB0aGlzLl9jbGllbnRTY3JpcHRSb3V0ZXMgICA9IGNsaWVudFNjcmlwdHNSb3V0aW5nLnJlZ2lzdGVyKHByb3h5LCB0ZXN0cyk7XG4gICAgICAgIHRoaXMudGVzdFN0cnVjdHVyZSAgICAgICAgID0gdGhpcy5fcHJlcGFyZVRlc3RTdHJ1Y3R1cmUodGVzdHMpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMudmlkZW9QYXRoKSB7XG4gICAgICAgICAgICBjb25zdCB7IHZpZGVvUGF0aCwgdmlkZW9PcHRpb25zLCB2aWRlb0VuY29kaW5nT3B0aW9ucyB9ID0gdGhpcy5vcHRzO1xuXG4gICAgICAgICAgICB0aGlzLnZpZGVvcyA9IG5ldyBWaWRlb3ModGhpcy5fcGVuZGluZ0Jyb3dzZXJKb2JzLCB7IHZpZGVvUGF0aCwgdmlkZW9PcHRpb25zLCB2aWRlb0VuY29kaW5nT3B0aW9ucyB9IGFzIHVua25vd24gYXMgVmlkZW9PcHRpb25zLCB0aGlzLndhcm5pbmdMb2csIHRoaXMuX3RpbWVTdGFtcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25Ccm93c2VySm9iRXZlbnRIYW5kbGVycyAoam9iOiBCcm93c2VySm9iKTogdm9pZCB7XG4gICAgICAgIGpvYi5vbigndGVzdC1ydW4tZG9uZScsIGFzeW5jICh0ZXN0UnVuOiBUZXN0UnVuKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9tZXNzYWdlQnVzLmVtaXQoJ3Rlc3QtcnVuLWRvbmUnLCB0ZXN0UnVuKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5zdG9wT25GaXJzdEZhaWwgJiYgdGVzdFJ1bi5lcnJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWJvcnQoKTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgnZG9uZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBqb2Iub25jZSgnc3RhcnQnLCBhc3luYyAoc3RhcnRUaW1lOiBEYXRlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGhhc2UgIT09IFRhc2tQaGFzZS5zdGFydGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGhhc2UgICAgPSBUYXNrUGhhc2Uuc3RhcnRlZDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHN0YXJ0VGltZTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgnc3RhcnQnLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgam9iLm9uY2UoJ2RvbmUnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVtaXQoJ2Jyb3dzZXItam9iLWRvbmUnLCBqb2IpO1xuXG4gICAgICAgICAgICByZW1vdmUodGhpcy5fcGVuZGluZ0Jyb3dzZXJKb2JzLCBqb2IpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3BlbmRpbmdCcm93c2VySm9icy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9waGFzZSA9IFRhc2tQaGFzZS5kb25lO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbWVzc2FnZUJ1cy5lbWl0KCdkb25lJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGpvYi5vbigndGVzdC1hY3Rpb24tZG9uZScsIGFzeW5jIChhcmdzOiBBY3Rpb25FdmVudEFyZykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BoYXNlID09PSBUYXNrUGhhc2UuZG9uZSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX21lc3NhZ2VCdXMuZW1pdCgndGVzdC1hY3Rpb24tZG9uZScsIGFyZ3MpO1xuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVUZXN0U3RydWN0dXJlICh0ZXN0czogVGVzdFtdKTogUmVwb3J0ZWRUZXN0U3RydWN0dXJlSXRlbVtdIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeSh0ZXN0cywgJ2ZpeHR1cmUuaWQnKTtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZ3JvdXBzKS5tYXAoZml4dHVyZUlkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RzQnlHcm91cCA9IGdyb3Vwc1tmaXh0dXJlSWRdO1xuICAgICAgICAgICAgY29uc3QgZml4dHVyZSAgICAgID0gdGVzdHNCeUdyb3VwWzBdLmZpeHR1cmUgYXMgRml4dHVyZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmaXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAgICBmaXh0dXJlLmlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAgZml4dHVyZS5uYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgdGVzdHM6IHRlc3RzQnlHcm91cC5tYXAodGVzdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAgIHRlc3QuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGVzdC5uYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwOiB0ZXN0LnNraXAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlQnJvd3NlckpvYnMgKHByb3h5OiBQcm94eSwgb3B0czogRGljdGlvbmFyeTxPcHRpb25WYWx1ZT4pOiBCcm93c2VySm9iW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5icm93c2VyQ29ubmVjdGlvbkdyb3Vwcy5tYXAoYnJvd3NlckNvbm5lY3Rpb25Hcm91cCA9PiB7XG4gICAgICAgICAgICBjb25zdCBqb2IgPSBuZXcgQnJvd3NlckpvYih7XG4gICAgICAgICAgICAgICAgdGVzdHM6ICAgICAgICAgICAgICAgICB0aGlzLnRlc3RzLFxuICAgICAgICAgICAgICAgIGJyb3dzZXJDb25uZWN0aW9uczogICAgYnJvd3NlckNvbm5lY3Rpb25Hcm91cCxcbiAgICAgICAgICAgICAgICBzY3JlZW5zaG90czogICAgICAgICAgIHRoaXMuc2NyZWVuc2hvdHMsXG4gICAgICAgICAgICAgICAgd2FybmluZ0xvZzogICAgICAgICAgICB0aGlzLndhcm5pbmdMb2csXG4gICAgICAgICAgICAgICAgZml4dHVyZUhvb2tDb250cm9sbGVyOiB0aGlzLmZpeHR1cmVIb29rQ29udHJvbGxlcixcbiAgICAgICAgICAgICAgICBjb21waWxlclNlcnZpY2U6ICAgICAgIHRoaXMuX2NvbXBpbGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlQnVzOiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VCdXMsXG4gICAgICAgICAgICAgICAgcHJveHksXG4gICAgICAgICAgICAgICAgb3B0cyxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25Ccm93c2VySm9iRXZlbnRIYW5kbGVycyhqb2IpO1xuICAgICAgICAgICAgYnJvd3NlckNvbm5lY3Rpb25Hcm91cC5tYXAoYmMgPT4gYmMuYWRkSm9iKGpvYikpO1xuXG4gICAgICAgICAgICByZXR1cm4gam9iO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5SZWdpc3RlckNsaWVudFNjcmlwdFJvdXRpbmcgKCk6IHZvaWQge1xuICAgICAgICBjbGllbnRTY3JpcHRzUm91dGluZy51blJlZ2lzdGVyKHRoaXMuX3Byb3h5LCB0aGlzLl9jbGllbnRTY3JpcHRSb3V0ZXMpO1xuICAgIH1cblxuICAgIC8vIEFQSVxuICAgIHB1YmxpYyBhYm9ydCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BlbmRpbmdCcm93c2VySm9icy5mb3JFYWNoKGpvYiA9PiBqb2IuYWJvcnQoKSk7XG4gICAgfVxufVxuIl19
@@ -19,9 +19,9 @@ class TestRunHookController {
19
19
  }
20
20
  _assertHooks() {
21
21
  if (this.beforeFn)
22
- type_assertions_1.assertType(type_assertions_1.is.function, 'globalBefore', 'The testRun.globalBefore hook', this.beforeFn);
22
+ (0, type_assertions_1.assertType)(type_assertions_1.is.function, 'globalBefore', 'The testRun.globalBefore hook', this.beforeFn);
23
23
  if (this.afterFn)
24
- type_assertions_1.assertType(type_assertions_1.is.function, 'globalAfter', 'The testRun.globalAfter hook', this.afterFn);
24
+ (0, type_assertions_1.assertType)(type_assertions_1.is.function, 'globalAfter', 'The testRun.globalAfter hook', this.afterFn);
25
25
  }
26
26
  isTestBlocked() {
27
27
  return this.runningBeforeHook;
@@ -35,7 +35,7 @@ class TestRunHookController {
35
35
  await this.beforeFn(this.testRunCtx);
36
36
  }
37
37
  catch (err) {
38
- this.beforeHookErr = process_test_fn_error_1.default(err);
38
+ this.beforeHookErr = (0, process_test_fn_error_1.default)(err);
39
39
  }
40
40
  this.runningBeforeHook = false;
41
41
  }
@@ -56,11 +56,11 @@ class TestRunHookController {
56
56
  await this.afterFn(this.testRunCtx);
57
57
  }
58
58
  catch (err) {
59
- testRun.addError(process_test_fn_error_1.default(err));
59
+ testRun.addError((0, process_test_fn_error_1.default)(err));
60
60
  }
61
61
  }
62
62
  }
63
63
  }
64
64
  exports.default = TestRunHookController;
65
65
  module.exports = exports.default;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4taG9vay1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bm5lci90ZXN0LXJ1bi1ob29rLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBaUU7QUFFakUsOERBQStDO0FBRS9DLHVFQUFtRTtBQUVuRSxNQUFxQixxQkFBcUI7SUFTdEMsWUFBb0IsS0FBYSxFQUFFLElBQXdCO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQWMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFlLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBZSxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFLLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFTLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFZLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDYiw0QkFBVSxDQUFDLG9CQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUYsSUFBSSxJQUFJLENBQUMsT0FBTztZQUNaLDRCQUFVLENBQUMsb0JBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLCtCQUErQixDQUFFLE9BQWdCO1FBQzFELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBRTlCLElBQUk7Z0JBQ0EsTUFBTyxJQUFJLENBQUMsUUFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdEQ7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsYUFBYSxHQUFHLCtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hEO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUNsQztRQUVELHdEQUF3RDtRQUN4RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEtBQUssR0FBRyxlQUFjLENBQUMsbUJBQW1CLENBQUM7WUFFbkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBRSxPQUFnQjtRQUN6RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPLENBQUMsS0FBSyxHQUFHLGVBQWMsQ0FBQyxrQkFBa0IsQ0FBQztZQUVsRCxJQUFJO2dCQUNBLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdkM7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDUixPQUFPLENBQUMsUUFBUSxDQUFDLCtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDN0M7U0FDSjtJQUNMLENBQUM7Q0FDSjtBQS9FRCx3Q0ErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvY2Vzc1Rlc3RGbkVycm9yIGZyb20gJy4uL2Vycm9ycy9wcm9jZXNzLXRlc3QtZm4tZXJyb3InO1xuaW1wb3J0IFRlc3QgZnJvbSAnLi4vYXBpL3N0cnVjdHVyZS90ZXN0JztcbmltcG9ydCBURVNUX1JVTl9QSEFTRSBmcm9tICcuLi90ZXN0LXJ1bi9waGFzZSc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi90ZXN0LXJ1bic7XG5pbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RSdW5Ib29rQ29udHJvbGxlciB7XG4gICAgcHVibGljIGJlZm9yZUZuPzogRnVuY3Rpb247XG4gICAgcHVibGljIGFmdGVyRm4/OiBGdW5jdGlvbjtcbiAgICBwdWJsaWMgc3RhcnRlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcnVubmluZ0JlZm9yZUhvb2s6IGJvb2xlYW47XG4gICAgcHVibGljIGJlZm9yZUhvb2tFcnI6IG51bGwgfCBFcnJvcjtcbiAgICBwdWJsaWMgcGVuZGluZ1Rlc3RSdW5Db3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyB0ZXN0UnVuQ3R4OiBvYmplY3Q7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHRlc3RzOiBUZXN0W10sIGhvb2s/OiBUZXN0aW5nRW50cnlIb29rcykge1xuICAgICAgICB0aGlzLmJlZm9yZUZuICAgICAgICAgICAgPSBob29rPy5iZWZvcmU7XG4gICAgICAgIHRoaXMuYWZ0ZXJGbiAgICAgICAgICAgICA9IGhvb2s/LmFmdGVyO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgICAgICAgICAgICAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ydW5uaW5nQmVmb3JlSG9vayAgID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmVmb3JlSG9va0VyciAgICAgICA9IG51bGw7XG4gICAgICAgIHRoaXMucGVuZGluZ1Rlc3RSdW5Db3VudCA9IHRlc3RzLmxlbmd0aDtcbiAgICAgICAgdGhpcy50ZXN0UnVuQ3R4ICAgICAgICAgID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgICAgICB0aGlzLl9hc3NlcnRIb29rcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2VydEhvb2tzICgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmVmb3JlRm4pXG4gICAgICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnZ2xvYmFsQmVmb3JlJywgJ1RoZSB0ZXN0UnVuLmdsb2JhbEJlZm9yZSBob29rJywgdGhpcy5iZWZvcmVGbik7XG5cbiAgICAgICAgaWYgKHRoaXMuYWZ0ZXJGbilcbiAgICAgICAgICAgIGFzc2VydFR5cGUoaXMuZnVuY3Rpb24sICdnbG9iYWxBZnRlcicsICdUaGUgdGVzdFJ1bi5nbG9iYWxBZnRlciBob29rJywgdGhpcy5hZnRlckZuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUZXN0QmxvY2tlZCAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdCZWZvcmVIb29rO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBydW5UZXN0UnVuQmVmb3JlSG9va0lmTmVjZXNzYXJ5ICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IHNob3VsZFJ1bkJlZm9yZUhvb2sgPSAhdGhpcy5zdGFydGVkICYmIHRoaXMuYmVmb3JlRm47XG5cbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoc2hvdWxkUnVuQmVmb3JlSG9vaykge1xuICAgICAgICAgICAgdGhpcy5ydW5uaW5nQmVmb3JlSG9vayA9IHRydWU7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgKHRoaXMuYmVmb3JlRm4gYXMgRnVuY3Rpb24pKHRoaXMudGVzdFJ1bkN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWZvcmVIb29rRXJyID0gcHJvY2Vzc1Rlc3RGbkVycm9yKGVycik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucnVubmluZ0JlZm9yZUhvb2sgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5PVEU6IGZhaWwgYWxsIHRlc3RzIGlmIHRlc3RSdW4uYmVmb3JlIGhvb2sgaGFzIGVycm9yXG4gICAgICAgIGlmICh0aGlzLmJlZm9yZUhvb2tFcnIpIHtcbiAgICAgICAgICAgIHRlc3RSdW4ucGhhc2UgPSBURVNUX1JVTl9QSEFTRS5pblRlc3RSdW5CZWZvcmVIb29rO1xuXG4gICAgICAgICAgICB0ZXN0UnVuLmFkZEVycm9yKHRoaXMuYmVmb3JlSG9va0Vycik7XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRlc3RSdW4udGVzdFJ1bkN0eCA9IHRoaXMudGVzdFJ1bkN0eDtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcnVuVGVzdFJ1bkFmdGVySG9va0lmTmVjZXNzYXJ5ICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMucGVuZGluZ1Rlc3RSdW5Db3VudC0tO1xuXG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdUZXN0UnVuQ291bnQgPT09IDAgJiYgdGhpcy5hZnRlckZuKSB7XG4gICAgICAgICAgICB0ZXN0UnVuLnBoYXNlID0gVEVTVF9SVU5fUEhBU0UuaW5UZXN0UnVuQWZ0ZXJIb29rO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuYWZ0ZXJGbih0aGlzLnRlc3RSdW5DdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHRlc3RSdW4uYWRkRXJyb3IocHJvY2Vzc1Rlc3RGbkVycm9yKGVycikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4taG9vay1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bm5lci90ZXN0LXJ1bi1ob29rLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBaUU7QUFFakUsOERBQStDO0FBRS9DLHVFQUFtRTtBQUVuRSxNQUFxQixxQkFBcUI7SUFTdEMsWUFBb0IsS0FBYSxFQUFFLElBQXdCO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQWMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFlLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBZSxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFLLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFTLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFZLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFBLDRCQUFVLEVBQUMsb0JBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLCtCQUErQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1RixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osSUFBQSw0QkFBVSxFQUFDLG9CQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSw4QkFBOEIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQywrQkFBK0IsQ0FBRSxPQUFnQjtRQUMxRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRTNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksbUJBQW1CLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUU5QixJQUFJO2dCQUNBLE1BQU8sSUFBSSxDQUFDLFFBQXFCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3REO1lBQ0QsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFBLCtCQUFrQixFQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hEO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUNsQztRQUVELHdEQUF3RDtRQUN4RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEtBQUssR0FBRyxlQUFjLENBQUMsbUJBQW1CLENBQUM7WUFFbkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBRSxPQUFnQjtRQUN6RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPLENBQUMsS0FBSyxHQUFHLGVBQWMsQ0FBQyxrQkFBa0IsQ0FBQztZQUVsRCxJQUFJO2dCQUNBLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdkM7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDUixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUEsK0JBQWtCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM3QztTQUNKO0lBQ0wsQ0FBQztDQUNKO0FBL0VELHdDQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9jZXNzVGVzdEZuRXJyb3IgZnJvbSAnLi4vZXJyb3JzL3Byb2Nlc3MtdGVzdC1mbi1lcnJvcic7XG5pbXBvcnQgVGVzdCBmcm9tICcuLi9hcGkvc3RydWN0dXJlL3Rlc3QnO1xuaW1wb3J0IFRFU1RfUlVOX1BIQVNFIGZyb20gJy4uL3Rlc3QtcnVuL3BoYXNlJztcbmltcG9ydCBUZXN0UnVuIGZyb20gJy4uL3Rlc3QtcnVuJztcbmltcG9ydCB7IGFzc2VydFR5cGUsIGlzIH0gZnJvbSAnLi4vZXJyb3JzL3J1bnRpbWUvdHlwZS1hc3NlcnRpb25zJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdFJ1bkhvb2tDb250cm9sbGVyIHtcbiAgICBwdWJsaWMgYmVmb3JlRm4/OiBGdW5jdGlvbjtcbiAgICBwdWJsaWMgYWZ0ZXJGbj86IEZ1bmN0aW9uO1xuICAgIHB1YmxpYyBzdGFydGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBydW5uaW5nQmVmb3JlSG9vazogYm9vbGVhbjtcbiAgICBwdWJsaWMgYmVmb3JlSG9va0VycjogbnVsbCB8IEVycm9yO1xuICAgIHB1YmxpYyBwZW5kaW5nVGVzdFJ1bkNvdW50OiBudW1iZXI7XG4gICAgcHVibGljIHRlc3RSdW5DdHg6IG9iamVjdDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdHM6IFRlc3RbXSwgaG9vaz86IFRlc3RpbmdFbnRyeUhvb2tzKSB7XG4gICAgICAgIHRoaXMuYmVmb3JlRm4gICAgICAgICAgICA9IGhvb2s/LmJlZm9yZTtcbiAgICAgICAgdGhpcy5hZnRlckZuICAgICAgICAgICAgID0gaG9vaz8uYWZ0ZXI7XG4gICAgICAgIHRoaXMuc3RhcnRlZCAgICAgICAgICAgICA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJ1bm5pbmdCZWZvcmVIb29rICAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5iZWZvcmVIb29rRXJyICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5wZW5kaW5nVGVzdFJ1bkNvdW50ID0gdGVzdHMubGVuZ3RoO1xuICAgICAgICB0aGlzLnRlc3RSdW5DdHggICAgICAgICAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gICAgICAgIHRoaXMuX2Fzc2VydEhvb2tzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzZXJ0SG9va3MgKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5iZWZvcmVGbilcbiAgICAgICAgICAgIGFzc2VydFR5cGUoaXMuZnVuY3Rpb24sICdnbG9iYWxCZWZvcmUnLCAnVGhlIHRlc3RSdW4uZ2xvYmFsQmVmb3JlIGhvb2snLCB0aGlzLmJlZm9yZUZuKTtcblxuICAgICAgICBpZiAodGhpcy5hZnRlckZuKVxuICAgICAgICAgICAgYXNzZXJ0VHlwZShpcy5mdW5jdGlvbiwgJ2dsb2JhbEFmdGVyJywgJ1RoZSB0ZXN0UnVuLmdsb2JhbEFmdGVyIGhvb2snLCB0aGlzLmFmdGVyRm4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Rlc3RCbG9ja2VkICgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnVubmluZ0JlZm9yZUhvb2s7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJ1blRlc3RSdW5CZWZvcmVIb29rSWZOZWNlc3NhcnkgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgc2hvdWxkUnVuQmVmb3JlSG9vayA9ICF0aGlzLnN0YXJ0ZWQgJiYgdGhpcy5iZWZvcmVGbjtcblxuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmIChzaG91bGRSdW5CZWZvcmVIb29rKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bm5pbmdCZWZvcmVIb29rID0gdHJ1ZTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCAodGhpcy5iZWZvcmVGbiBhcyBGdW5jdGlvbikodGhpcy50ZXN0UnVuQ3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZUhvb2tFcnIgPSBwcm9jZXNzVGVzdEZuRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5ydW5uaW5nQmVmb3JlSG9vayA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTk9URTogZmFpbCBhbGwgdGVzdHMgaWYgdGVzdFJ1bi5iZWZvcmUgaG9vayBoYXMgZXJyb3JcbiAgICAgICAgaWYgKHRoaXMuYmVmb3JlSG9va0Vycikge1xuICAgICAgICAgICAgdGVzdFJ1bi5waGFzZSA9IFRFU1RfUlVOX1BIQVNFLmluVGVzdFJ1bkJlZm9yZUhvb2s7XG5cbiAgICAgICAgICAgIHRlc3RSdW4uYWRkRXJyb3IodGhpcy5iZWZvcmVIb29rRXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGVzdFJ1bi50ZXN0UnVuQ3R4ID0gdGhpcy50ZXN0UnVuQ3R4O1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBydW5UZXN0UnVuQWZ0ZXJIb29rSWZOZWNlc3NhcnkgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nVGVzdFJ1bkNvdW50LS07XG5cbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ1Rlc3RSdW5Db3VudCA9PT0gMCAmJiB0aGlzLmFmdGVyRm4pIHtcbiAgICAgICAgICAgIHRlc3RSdW4ucGhhc2UgPSBURVNUX1JVTl9QSEFTRS5pblRlc3RSdW5BZnRlckhvb2s7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5hZnRlckZuKHRoaXMudGVzdFJ1bkN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdGVzdFJ1bi5hZGRFcnJvcihwcm9jZXNzVGVzdEZuRXJyb3IoZXJyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -13,7 +13,7 @@ const runtime_1 = require("../errors/runtime");
13
13
  const types_1 = require("../errors/types");
14
14
  const resolve_path_relatively_cwd_1 = __importDefault(require("../utils/resolve-path-relatively-cwd"));
15
15
  const debug_1 = __importDefault(require("debug"));
16
- const MODULES_BIN_DIR = resolve_path_relatively_cwd_1.default('./node_modules/.bin');
16
+ const MODULES_BIN_DIR = (0, resolve_path_relatively_cwd_1.default)('./node_modules/.bin');
17
17
  const ENV_PATH_KEY = (function () {
18
18
  if (os_family_1.default.win) {
19
19
  let pathKey = 'Path';
@@ -29,8 +29,8 @@ class TestedApp {
29
29
  constructor() {
30
30
  this._process = null;
31
31
  this._killed = false;
32
- this._stdoutLogger = debug_1.default('testcafe:tested-app:stdout');
33
- this._stderrLogger = debug_1.default('testcafe:tested-app:stderr');
32
+ this._stdoutLogger = (0, debug_1.default)('testcafe:tested-app:stdout');
33
+ this._stderrLogger = (0, debug_1.default)('testcafe:tested-app:stderr');
34
34
  this.errorPromise = null;
35
35
  }
36
36
  async _run(command) {
@@ -39,7 +39,7 @@ class TestedApp {
39
39
  const pathParts = path.split(path_1.delimiter);
40
40
  pathParts.unshift(MODULES_BIN_DIR);
41
41
  env[ENV_PATH_KEY] = pathParts.join(path_1.delimiter);
42
- this._process = execa_1.command(command, { shell: true, env });
42
+ this._process = (0, execa_1.command)(command, { shell: true, env });
43
43
  if (this._process.stdout)
44
44
  this._process.stdout.on('data', data => this._stdoutLogger(String(data)));
45
45
  if (this._process.stderr)
@@ -60,16 +60,16 @@ class TestedApp {
60
60
  ._run(command)
61
61
  .then(() => new Promise(lodash_1.noop));
62
62
  await Promise.race([
63
- delay_1.default(initDelay),
63
+ (0, delay_1.default)(initDelay),
64
64
  this.errorPromise,
65
65
  ]);
66
66
  }
67
67
  async kill() {
68
68
  this._killed = true;
69
- const killPromise = new Promise(resolve => tree_kill_1.default(this._process.pid, 'SIGTERM', resolve));
69
+ const killPromise = new Promise(resolve => (0, tree_kill_1.default)(this._process.pid, 'SIGTERM', resolve));
70
70
  await killPromise;
71
71
  }
72
72
  }
73
73
  exports.default = TestedApp;
74
74
  module.exports = exports.default;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGVkLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW5uZXIvdGVzdGVkLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFrRDtBQUNsRCxpQ0FBZ0Q7QUFDaEQsbUNBQThCO0FBQzlCLDBEQUE2QjtBQUM3QiwwREFBMkI7QUFDM0IsMkRBQW1DO0FBQ25DLCtDQUFpRDtBQUNqRCwyQ0FBaUQ7QUFDakQsdUdBQTRFO0FBQzVFLGtEQUFnQztBQUVoQyxNQUFNLGVBQWUsR0FBRyxxQ0FBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXhFLE1BQU0sWUFBWSxHQUFHLENBQUM7SUFDbEIsSUFBSSxtQkFBRSxDQUFDLEdBQUcsRUFBRTtRQUNSLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUVyQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTTtnQkFDNUIsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUdMLE1BQXFCLFNBQVM7SUFRMUI7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFZLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFhLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFPLGVBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLEdBQU8sZUFBVyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFlBQVksR0FBUSxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJLENBQUUsT0FBZTtRQUMvQixNQUFNLEdBQUcsR0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQVEsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFhLENBQUMsQ0FBQztRQUU1QyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRW5DLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFhLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFNUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUk7WUFDQSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkI7UUFDRCxPQUFPLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQ1osT0FBTztZQUVYLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLE1BQU0sSUFBSSxzQkFBWSxDQUFDLHNCQUFjLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUU7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBRSxPQUFlLEVBQUUsU0FBaUI7UUFDbEQsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSTthQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQUksQ0FBQyxDQUFDLENBQUM7UUFFbkMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2YsZUFBSyxDQUFDLFNBQVMsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWTtTQUNwQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFJLENBQUUsSUFBSSxDQUFDLFFBQXlCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTFHLE1BQU0sV0FBVyxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQWxFRCw0QkFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZFByb2Nlc3MgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IGRlbGltaXRlciBhcyBwYXRoRGVsaW1pdGVyIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjb21tYW5kIGFzIHNwYXduQ29tbWFuZCB9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGtpbGwgZnJvbSAndHJlZS1raWxsJztcbmltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uL3V0aWxzL2RlbGF5JztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vZXJyb3JzL3R5cGVzJztcbmltcG9ydCByZXNvbHZlUGF0aFJlbGF0aXZlbHlDd2QgZnJvbSAnLi4vdXRpbHMvcmVzb2x2ZS1wYXRoLXJlbGF0aXZlbHktY3dkJztcbmltcG9ydCBkZWJ1Z0xvZ2dlciBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IE1PRFVMRVNfQklOX0RJUiA9IHJlc29sdmVQYXRoUmVsYXRpdmVseUN3ZCgnLi9ub2RlX21vZHVsZXMvLmJpbicpO1xuXG5jb25zdCBFTlZfUEFUSF9LRVkgPSAoZnVuY3Rpb24gKCkge1xuICAgIGlmIChPUy53aW4pIHtcbiAgICAgICAgbGV0IHBhdGhLZXkgPSAnUGF0aCc7XG5cbiAgICAgICAgT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdGgnKVxuICAgICAgICAgICAgICAgIHBhdGhLZXkgPSBrZXk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwYXRoS2V5O1xuICAgIH1cblxuICAgIHJldHVybiAnUEFUSCc7XG59KSgpO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RlZEFwcCB7XG4gICAgcHJpdmF0ZSBfa2lsbGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX3Byb2Nlc3M6IG51bGwgfCBDaGlsZFByb2Nlc3M7XG4gICAgcHJpdmF0ZSBfc3Rkb3V0TG9nZ2VyOiBkZWJ1Zy5EZWJ1Z2dlcjtcbiAgICBwcml2YXRlIF9zdGRlcnJMb2dnZXI6IGRlYnVnLkRlYnVnZ2VyO1xuXG4gICAgcHVibGljIGVycm9yUHJvbWlzZTogbnVsbCB8IFByb21pc2U8dm9pZD47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLl9wcm9jZXNzICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5fa2lsbGVkICAgICAgICAgICA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGRvdXRMb2dnZXIgICAgID0gZGVidWdMb2dnZXIoJ3Rlc3RjYWZlOnRlc3RlZC1hcHA6c3Rkb3V0Jyk7XG4gICAgICAgIHRoaXMuX3N0ZGVyckxvZ2dlciAgICAgPSBkZWJ1Z0xvZ2dlcigndGVzdGNhZmU6dGVzdGVkLWFwcDpzdGRlcnInKTtcblxuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSAgICAgID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9ydW4gKGNvbW1hbmQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBlbnYgICAgICAgPSBPYmplY3QuYXNzaWduKHt9LCBwcm9jZXNzLmVudik7XG4gICAgICAgIGNvbnN0IHBhdGggICAgICA9IGVudltFTlZfUEFUSF9LRVldIHx8ICcnO1xuICAgICAgICBjb25zdCBwYXRoUGFydHMgPSBwYXRoLnNwbGl0KHBhdGhEZWxpbWl0ZXIpO1xuXG4gICAgICAgIHBhdGhQYXJ0cy51bnNoaWZ0KE1PRFVMRVNfQklOX0RJUik7XG5cbiAgICAgICAgZW52W0VOVl9QQVRIX0tFWV0gPSBwYXRoUGFydHMuam9pbihwYXRoRGVsaW1pdGVyKTtcblxuICAgICAgICB0aGlzLl9wcm9jZXNzID0gc3Bhd25Db21tYW5kKGNvbW1hbmQsIHsgc2hlbGw6IHRydWUsIGVudiB9KTtcblxuICAgICAgICBpZiAodGhpcy5fcHJvY2Vzcy5zdGRvdXQpXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzLnN0ZG91dC5vbignZGF0YScsIGRhdGEgPT4gdGhpcy5fc3Rkb3V0TG9nZ2VyKFN0cmluZyhkYXRhKSkpO1xuXG4gICAgICAgIGlmICh0aGlzLl9wcm9jZXNzLnN0ZGVycilcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3Muc3RkZXJyLm9uKCdkYXRhJywgZGF0YSA9PiB0aGlzLl9zdGRlcnJMb2dnZXIoU3RyaW5nKGRhdGEpKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3M7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2tpbGxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIuc3RhY2sgfHwgU3RyaW5nKGVycik7XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMudGVzdGVkQXBwRmFpbGVkV2l0aEVycm9yLCBtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydCAoY29tbWFuZDogc3RyaW5nLCBpbml0RGVsYXk6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBOT1RFOiBXZSBzaG91bGQgbm90IHJlc29sdmUgaXQgaWYgbm8gZXJyb3Igd2FzIHRocm93blxuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSA9IHRoaXNcbiAgICAgICAgICAgIC5fcnVuKGNvbW1hbmQpXG4gICAgICAgICAgICAudGhlbigoKSA9PiBuZXcgUHJvbWlzZShub29wKSk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgICAgIGRlbGF5KGluaXREZWxheSksXG4gICAgICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSxcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGtpbGwgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9raWxsZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGtpbGxQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBraWxsKCh0aGlzLl9wcm9jZXNzIGFzIENoaWxkUHJvY2VzcykucGlkLCAnU0lHVEVSTScsIHJlc29sdmUpKTtcblxuICAgICAgICBhd2FpdCBraWxsUHJvbWlzZTtcbiAgICB9XG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGVkLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW5uZXIvdGVzdGVkLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFrRDtBQUNsRCxpQ0FBZ0Q7QUFDaEQsbUNBQThCO0FBQzlCLDBEQUE2QjtBQUM3QiwwREFBMkI7QUFDM0IsMkRBQW1DO0FBQ25DLCtDQUFpRDtBQUNqRCwyQ0FBaUQ7QUFDakQsdUdBQTRFO0FBQzVFLGtEQUFnQztBQUVoQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHFDQUF3QixFQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFeEUsTUFBTSxZQUFZLEdBQUcsQ0FBQztJQUNsQixJQUFJLG1CQUFFLENBQUMsR0FBRyxFQUFFO1FBQ1IsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRXJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNO2dCQUM1QixPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7S0FDbEI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMsRUFBRSxDQUFDO0FBR0wsTUFBcUIsU0FBUztJQVExQjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQVksSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQWEsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQU8sSUFBQSxlQUFXLEVBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxHQUFPLElBQUEsZUFBVyxFQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFlBQVksR0FBUSxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxJQUFJLENBQUUsT0FBZTtRQUMvQixNQUFNLEdBQUcsR0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQVEsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFhLENBQUMsQ0FBQztRQUU1QyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRW5DLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFhLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsZUFBWSxFQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUU1RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUUsSUFBSTtZQUNBLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2QjtRQUNELE9BQU8sR0FBUSxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTztnQkFDWixPQUFPO1lBRVgsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekMsTUFBTSxJQUFJLHNCQUFZLENBQUMsc0JBQWMsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RTtJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFFLE9BQWUsRUFBRSxTQUFpQjtRQUNsRCx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJO2FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDYixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBSSxDQUFDLENBQUMsQ0FBQztRQUVuQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDZixJQUFBLGVBQUssRUFBQyxTQUFTLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVk7U0FDcEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFBLG1CQUFJLEVBQUUsSUFBSSxDQUFDLFFBQXlCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTFHLE1BQU0sV0FBVyxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQWxFRCw0QkFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZFByb2Nlc3MgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IGRlbGltaXRlciBhcyBwYXRoRGVsaW1pdGVyIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjb21tYW5kIGFzIHNwYXduQ29tbWFuZCB9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGtpbGwgZnJvbSAndHJlZS1raWxsJztcbmltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uL3V0aWxzL2RlbGF5JztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vZXJyb3JzL3R5cGVzJztcbmltcG9ydCByZXNvbHZlUGF0aFJlbGF0aXZlbHlDd2QgZnJvbSAnLi4vdXRpbHMvcmVzb2x2ZS1wYXRoLXJlbGF0aXZlbHktY3dkJztcbmltcG9ydCBkZWJ1Z0xvZ2dlciBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IE1PRFVMRVNfQklOX0RJUiA9IHJlc29sdmVQYXRoUmVsYXRpdmVseUN3ZCgnLi9ub2RlX21vZHVsZXMvLmJpbicpO1xuXG5jb25zdCBFTlZfUEFUSF9LRVkgPSAoZnVuY3Rpb24gKCkge1xuICAgIGlmIChPUy53aW4pIHtcbiAgICAgICAgbGV0IHBhdGhLZXkgPSAnUGF0aCc7XG5cbiAgICAgICAgT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdGgnKVxuICAgICAgICAgICAgICAgIHBhdGhLZXkgPSBrZXk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwYXRoS2V5O1xuICAgIH1cblxuICAgIHJldHVybiAnUEFUSCc7XG59KSgpO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RlZEFwcCB7XG4gICAgcHJpdmF0ZSBfa2lsbGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX3Byb2Nlc3M6IG51bGwgfCBDaGlsZFByb2Nlc3M7XG4gICAgcHJpdmF0ZSBfc3Rkb3V0TG9nZ2VyOiBkZWJ1Zy5EZWJ1Z2dlcjtcbiAgICBwcml2YXRlIF9zdGRlcnJMb2dnZXI6IGRlYnVnLkRlYnVnZ2VyO1xuXG4gICAgcHVibGljIGVycm9yUHJvbWlzZTogbnVsbCB8IFByb21pc2U8dm9pZD47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLl9wcm9jZXNzICAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5fa2lsbGVkICAgICAgICAgICA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zdGRvdXRMb2dnZXIgICAgID0gZGVidWdMb2dnZXIoJ3Rlc3RjYWZlOnRlc3RlZC1hcHA6c3Rkb3V0Jyk7XG4gICAgICAgIHRoaXMuX3N0ZGVyckxvZ2dlciAgICAgPSBkZWJ1Z0xvZ2dlcigndGVzdGNhZmU6dGVzdGVkLWFwcDpzdGRlcnInKTtcblxuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSAgICAgID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9ydW4gKGNvbW1hbmQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBlbnYgICAgICAgPSBPYmplY3QuYXNzaWduKHt9LCBwcm9jZXNzLmVudik7XG4gICAgICAgIGNvbnN0IHBhdGggICAgICA9IGVudltFTlZfUEFUSF9LRVldIHx8ICcnO1xuICAgICAgICBjb25zdCBwYXRoUGFydHMgPSBwYXRoLnNwbGl0KHBhdGhEZWxpbWl0ZXIpO1xuXG4gICAgICAgIHBhdGhQYXJ0cy51bnNoaWZ0KE1PRFVMRVNfQklOX0RJUik7XG5cbiAgICAgICAgZW52W0VOVl9QQVRIX0tFWV0gPSBwYXRoUGFydHMuam9pbihwYXRoRGVsaW1pdGVyKTtcblxuICAgICAgICB0aGlzLl9wcm9jZXNzID0gc3Bhd25Db21tYW5kKGNvbW1hbmQsIHsgc2hlbGw6IHRydWUsIGVudiB9KTtcblxuICAgICAgICBpZiAodGhpcy5fcHJvY2Vzcy5zdGRvdXQpXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzLnN0ZG91dC5vbignZGF0YScsIGRhdGEgPT4gdGhpcy5fc3Rkb3V0TG9nZ2VyKFN0cmluZyhkYXRhKSkpO1xuXG4gICAgICAgIGlmICh0aGlzLl9wcm9jZXNzLnN0ZGVycilcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3Muc3RkZXJyLm9uKCdkYXRhJywgZGF0YSA9PiB0aGlzLl9zdGRlcnJMb2dnZXIoU3RyaW5nKGRhdGEpKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3M7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fa2lsbGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyci5zdGFjayB8fCBTdHJpbmcoZXJyKTtcblxuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy50ZXN0ZWRBcHBGYWlsZWRXaXRoRXJyb3IsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0IChjb21tYW5kOiBzdHJpbmcsIGluaXREZWxheTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIE5PVEU6IFdlIHNob3VsZCBub3QgcmVzb2x2ZSBpdCBpZiBubyBlcnJvciB3YXMgdGhyb3duXG4gICAgICAgIHRoaXMuZXJyb3JQcm9taXNlID0gdGhpc1xuICAgICAgICAgICAgLl9ydW4oY29tbWFuZClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IG5ldyBQcm9taXNlKG5vb3ApKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgZGVsYXkoaW5pdERlbGF5KSxcbiAgICAgICAgICAgIHRoaXMuZXJyb3JQcm9taXNlLFxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMga2lsbCAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2tpbGxlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qga2lsbFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGtpbGwoKHRoaXMuX3Byb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5waWQsICdTSUdURVJNJywgcmVzb2x2ZSkpO1xuXG4gICAgICAgIGF3YWl0IGtpbGxQcm9taXNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -58,7 +58,7 @@ class Capturer {
58
58
  }
59
59
  static async _isScreenshotCaptured(screenshotPath) {
60
60
  try {
61
- const stats = await promisified_functions_1.stat(screenshotPath);
61
+ const stats = await (0, promisified_functions_1.stat)(screenshotPath);
62
62
  return stats.isFile();
63
63
  }
64
64
  catch (e) {
@@ -66,7 +66,7 @@ class Capturer {
66
66
  }
67
67
  }
68
68
  _joinWithBaseScreenshotPath(path) {
69
- return path_1.join(this.baseScreenshotsPath, path);
69
+ return (0, path_1.join)(this.baseScreenshotsPath, path);
70
70
  }
71
71
  _incrementFileIndexes(forError) {
72
72
  if (forError)
@@ -75,7 +75,7 @@ class Capturer {
75
75
  this.pathPattern.data.fileIndex++;
76
76
  }
77
77
  _getCustomScreenshotPath(customPath) {
78
- const correctedCustomPath = correct_file_path_1.default(customPath, default_extension_1.default);
78
+ const correctedCustomPath = (0, correct_file_path_1.default)(customPath, default_extension_1.default);
79
79
  return this._joinWithBaseScreenshotPath(correctedCustomPath);
80
80
  }
81
81
  _getScreenshotPath(forError) {
@@ -84,9 +84,9 @@ class Capturer {
84
84
  return this._joinWithBaseScreenshotPath(path);
85
85
  }
86
86
  _getThumbnailPath(screenshotPath) {
87
- const imageName = path_1.basename(screenshotPath);
88
- const imageDir = path_1.dirname(screenshotPath);
89
- return path_1.join(imageDir, 'thumbnails', imageName);
87
+ const imageName = (0, path_1.basename)(screenshotPath);
88
+ const imageDir = (0, path_1.dirname)(screenshotPath);
89
+ return (0, path_1.join)(imageDir, 'thumbnails', imageName);
90
90
  }
91
91
  async _takeScreenshot({ filePath, pageWidth, pageHeight, fullPage = this.fullPage }) {
92
92
  await this.provider.takeScreenshot(this.browserId, filePath, pageWidth, pageHeight, fullPage);
@@ -99,9 +99,9 @@ class Capturer {
99
99
  const thumbnailPath = this._getThumbnailPath(screenshotPath);
100
100
  const tempPath = screenshotPath.replace(this.baseScreenshotsPath, this.tempDirectoryPath);
101
101
  let screenshotData;
102
- if (async_queue_1.isInQueue(screenshotPath))
102
+ if ((0, async_queue_1.isInQueue)(screenshotPath))
103
103
  this.warningLog.addWarning(warning_message_1.default.screenshotRewritingError, screenshotPath);
104
- await async_queue_1.addToQueue(screenshotPath, async () => {
104
+ await (0, async_queue_1.addToQueue)(screenshotPath, async () => {
105
105
  const clientAreaDimensions = Capturer._getClientAreaDimensions(pageDimensions);
106
106
  const { width: pageWidth, height: pageHeight } = clientAreaDimensions || {};
107
107
  const takeScreenshotOptions = {
@@ -113,25 +113,25 @@ class Capturer {
113
113
  await this._takeScreenshot(takeScreenshotOptions);
114
114
  if (!await Capturer._isScreenshotCaptured(tempPath))
115
115
  return;
116
- const image = await promisified_functions_1.readPngFile(tempPath);
117
- const croppedImage = await crop_1.cropScreenshot(image, {
116
+ const image = await (0, promisified_functions_1.readPngFile)(tempPath);
117
+ const croppedImage = await (0, crop_1.cropScreenshot)(image, {
118
118
  markSeed,
119
119
  clientAreaDimensions,
120
120
  path: tempPath,
121
121
  cropDimensions: Capturer._getCropDimensions(cropDimensions, pageDimensions),
122
122
  });
123
123
  if (croppedImage)
124
- await promisified_functions_1.writePng(tempPath, croppedImage);
125
- screenshotData = await promisified_functions_1.readFile(tempPath);
124
+ await (0, promisified_functions_1.writePng)(tempPath, croppedImage);
125
+ screenshotData = await (0, promisified_functions_1.readFile)(tempPath);
126
126
  if (forError && this.autoTakeOnFails)
127
127
  return;
128
- await make_dir_1.default(path_1.dirname(screenshotPath));
129
- await promisified_functions_1.writeFile(screenshotPath, screenshotData);
128
+ await (0, make_dir_1.default)((0, path_1.dirname)(screenshotPath));
129
+ await (0, promisified_functions_1.writeFile)(screenshotPath, screenshotData);
130
130
  if (thumbnails)
131
- await testcafe_browser_tools_1.generateThumbnail(screenshotPath, thumbnailPath);
131
+ await (0, testcafe_browser_tools_1.generateThumbnail)(screenshotPath, thumbnailPath);
132
132
  });
133
133
  const testRunId = this.testEntry.testRuns[this.browserId].id;
134
- const userAgent = escape_user_agent_1.default(this.pathPattern.data.parsedUserAgent.prettyUserAgent);
134
+ const userAgent = (0, escape_user_agent_1.default)(this.pathPattern.data.parsedUserAgent.prettyUserAgent);
135
135
  const quarantineAttempt = this.pathPattern.data.quarantineAttempt;
136
136
  const takenOnFail = forError;
137
137
  const screenshot = {
@@ -156,4 +156,4 @@ class Capturer {
156
156
  }
157
157
  exports.default = Capturer;
158
158
  module.exports = exports.default;
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvY2FwdHVyZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFJYztBQUVkLG1FQUEyRDtBQUMzRCxpQ0FBd0M7QUFDeEMsc0RBQTZEO0FBQzdELHVGQUErRDtBQUMvRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELDBFQU13QztBQUV4Qyw0RUFBK0Q7QUFDL0Qsd0RBQStCO0FBRy9CLE1BQXFCLFFBQVE7SUFDekIsbUNBQW1DO0lBQ25DLFlBQWEsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZUFBZTtRQUN0SSxJQUFJLENBQUMsT0FBTyxHQUFlLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBYSxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBYyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQWEsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFXLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFjLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUssaUJBQWlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBTyxlQUFlLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTtRQUNqRixJQUFJLGFBQWEs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LENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBeExELDJCQXdMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgam9pbiBhcyBqb2luUGF0aCxcbiAgICBkaXJuYW1lLFxuICAgIGJhc2VuYW1lLFxufSBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgZ2VuZXJhdGVUaHVtYm5haWwgfSBmcm9tICd0ZXN0Y2FmZS1icm93c2VyLXRvb2xzJztcbmltcG9ydCB7IGNyb3BTY3JlZW5zaG90IH0gZnJvbSAnLi9jcm9wJztcbmltcG9ydCB7IGlzSW5RdWV1ZSwgYWRkVG9RdWV1ZSB9IGZyb20gJy4uL3V0aWxzL2FzeW5jLXF1ZXVlJztcbmltcG9ydCBXQVJOSU5HX01FU1NBR0UgZnJvbSAnLi4vbm90aWZpY2F0aW9ucy93YXJuaW5nLW1lc3NhZ2UnO1xuaW1wb3J0IGVzY2FwZVVzZXJBZ2VudCBmcm9tICcuLi91dGlscy9lc2NhcGUtdXNlci1hZ2VudCc7XG5pbXBvcnQgY29ycmVjdEZpbGVQYXRoIGZyb20gJy4uL3V0aWxzL2NvcnJlY3QtZmlsZS1wYXRoJztcbmltcG9ydCB7XG4gICAgcmVhZEZpbGUsXG4gICAgcmVhZFBuZ0ZpbGUsXG4gICAgc3RhdCxcbiAgICB3cml0ZUZpbGUsXG4gICAgd3JpdGVQbmcsXG59IGZyb20gJy4uL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5cbmltcG9ydCBERUZBVUxUX1NDUkVFTlNIT1RfRVhURU5TSU9OIGZyb20gJy4vZGVmYXVsdC1leHRlbnNpb24nO1xuaW1wb3J0IG1ha2VEaXIgZnJvbSAnbWFrZS1kaXInO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhcHR1cmVyIHtcbiAgICAvLyBUT0RPOiByZWZhY3RvciB0byB1c2UgZGljdGlvbmFyeVxuICAgIGNvbnN0cnVjdG9yIChiYXNlU2NyZWVuc2hvdHNQYXRoLCB0ZXN0RW50cnksIGNvbm5lY3Rpb24sIHBhdGhQYXR0ZXJuLCBmdWxsUGFnZSwgdGh1bWJuYWlscywgd2FybmluZ0xvZywgdGVtcERpcmVjdG9yeVBhdGgsIGF1dG9UYWtlT25GYWlscykge1xuICAgICAgICB0aGlzLmVuYWJsZWQgICAgICAgICAgICAgPSAhIWJhc2VTY3JlZW5zaG90c1BhdGg7XG4gICAgICAgIHRoaXMuYmFzZVNjcmVlbnNob3RzUGF0aCA9IGJhc2VTY3JlZW5zaG90c1BhdGg7XG4gICAgICAgIHRoaXMudGVzdEVudHJ5ICAgICAgICAgICA9IHRlc3RFbnRyeTtcbiAgICAgICAgdGhpcy5wcm92aWRlciAgICAgICAgICAgID0gY29ubmVjdGlvbi5wcm92aWRlcjtcbiAgICAgICAgdGhpcy5icm93c2VySWQgICAgICAgICAgID0gY29ubmVjdGlvbi5pZDtcbiAgICAgICAgdGhpcy53YXJuaW5nTG9nICAgICAgICAgID0gd2FybmluZ0xvZztcbiAgICAgICAgdGhpcy5wYXRoUGF0dGVybiAgICAgICAgID0gcGF0aFBhdHRlcm47XG4gICAgICAgIHRoaXMuZnVsbFBhZ2UgICAgICAgICAgICA9IGZ1bGxQYWdlO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHMgICAgICAgICAgPSB0aHVtYm5haWxzO1xuICAgICAgICB0aGlzLnRlbXBEaXJlY3RvcnlQYXRoICAgPSB0ZW1wRGlyZWN0b3J5UGF0aDtcbiAgICAgICAgdGhpcy5hdXRvVGFrZU9uRmFpbHMgICAgID0gYXV0b1Rha2VPbkZhaWxzO1xuICAgIH1cblxuICAgIHN0YXRpYyBfZ2V0RGltZW5zaW9uV2l0aG91dFNjcm9sbGJhciAoZnVsbERpbWVuc2lvbiwgZG9jdW1lbnREaW1lbnNpb24sIGJvZHlEaW1lbnNpb24pIHtcbiAgICAgICAgaWYgKGJvZHlEaW1lbnNpb24gPiBmdWxsRGltZW5zaW9uKVxuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RGltZW5zaW9uO1xuXG4gICAgICAgIGlmIChkb2N1bWVudERpbWVuc2lvbiA+IGZ1bGxEaW1lbnNpb24pXG4gICAgICAgICAgICByZXR1cm4gYm9keURpbWVuc2lvbjtcblxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoZG9jdW1lbnREaW1lbnNpb24sIGJvZHlEaW1lbnNpb24pO1xuICAgIH1cblxuICAgIHN0YXRpYyBfZ2V0Q3JvcERpbWVuc2lvbnMgKGNyb3BEaW1lbnNpb25zLCBwYWdlRGltZW5zaW9ucykge1xuICAgICAgICBpZiAoIWNyb3BEaW1lbnNpb25zIHx8ICFwYWdlRGltZW5zaW9ucylcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHsgZHByIH0gICAgICAgICAgICAgICAgICAgICAgPSBwYWdlRGltZW5zaW9ucztcbiAgICAgICAgY29uc3QgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSA9IGNyb3BEaW1lbnNpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6ICAgIE1hdGgucm91bmQodG9wICogZHByKSxcbiAgICAgICAgICAgIGxlZnQ6ICAgTWF0aC5yb3VuZChsZWZ0ICogZHByKSxcbiAgICAgICAgICAgIGJvdHRvbTogTWF0aC5yb3VuZChib3R0b20gKiBkcHIpLFxuICAgICAgICAgICAgcmlnaHQ6ICBNYXRoLnJvdW5kKHJpZ2h0ICogZHByKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2dldENsaWVudEFyZWFEaW1lbnNpb25zIChwYWdlRGltZW5zaW9ucykge1xuICAgICAgICBpZiAoIXBhZ2VEaW1lbnNpb25zKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgeyBpbm5lcldpZHRoLCBkb2N1bWVudFdpZHRoLCBib2R5V2lkdGgsIGlubmVySGVpZ2h0LCBkb2N1bWVudEhlaWdodCwgYm9keUhlaWdodCwgZHByIH0gPSBwYWdlRGltZW5zaW9ucztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6ICBNYXRoLmZsb29yKENhcHR1cmVyLl9nZXREaW1lbnNpb25XaXRob3V0U2Nyb2xsYmFyKGlubmVyV2lkdGgsIGRvY3VtZW50V2lkdGgsIGJvZHlXaWR0aCkgKiBkcHIpLFxuICAgICAgICAgICAgaGVpZ2h0OiBNYXRoLmZsb29yKENhcHR1cmVyLl9nZXREaW1lbnNpb25XaXRob3V0U2Nyb2xsYmFyKGlubmVySGVpZ2h0LCBkb2N1bWVudEhlaWdodCwgYm9keUhlaWdodCkgKiBkcHIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBfaXNTY3JlZW5zaG90Q2FwdHVyZWQgKHNjcmVlbnNob3RQYXRoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXQoc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3RhdHMuaXNGaWxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9qb2luV2l0aEJhc2VTY3JlZW5zaG90UGF0aCAocGF0aCkge1xuICAgICAgICByZXR1cm4gam9pblBhdGgodGhpcy5iYXNlU2NyZWVuc2hvdHNQYXRoLCBwYXRoKTtcbiAgICB9XG5cbiAgICBfaW5jcmVtZW50RmlsZUluZGV4ZXMgKGZvckVycm9yKSB7XG4gICAgICAgIGlmIChmb3JFcnJvcilcbiAgICAgICAgICAgIHRoaXMucGF0aFBhdHRlcm4uZGF0YS5lcnJvckZpbGVJbmRleCsrO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMucGF0aFBhdHRlcm4uZGF0YS5maWxlSW5kZXgrKztcbiAgICB9XG5cbiAgICBfZ2V0Q3VzdG9tU2NyZWVuc2hvdFBhdGggKGN1c3RvbVBhdGgpIHtcbiAgICAgICAgY29uc3QgY29ycmVjdGVkQ3VzdG9tUGF0aCA9IGNvcnJlY3RGaWxlUGF0aChjdXN0b21QYXRoLCBERUZBVUxUX1NDUkVFTlNIT1RfRVhURU5TSU9OKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fam9pbldpdGhCYXNlU2NyZWVuc2hvdFBhdGgoY29ycmVjdGVkQ3VzdG9tUGF0aCk7XG4gICAgfVxuXG4gICAgX2dldFNjcmVlbnNob3RQYXRoIChmb3JFcnJvcikge1xuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoUGF0dGVybi5nZXRQYXRoKGZvckVycm9yKTtcblxuICAgICAgICB0aGlzLl9pbmNyZW1lbnRGaWxlSW5kZXhlcyhmb3JFcnJvcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2pvaW5XaXRoQmFzZVNjcmVlbnNob3RQYXRoKHBhdGgpO1xuICAgIH1cblxuICAgIF9nZXRUaHVtYm5haWxQYXRoIChzY3JlZW5zaG90UGF0aCkge1xuICAgICAgICBjb25zdCBpbWFnZU5hbWUgPSBiYXNlbmFtZShzY3JlZW5zaG90UGF0aCk7XG4gICAgICAgIGNvbnN0IGltYWdlRGlyICA9IGRpcm5hbWUoc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgIHJldHVybiBqb2luUGF0aChpbWFnZURpciwgJ3RodW1ibmFpbHMnLCBpbWFnZU5hbWUpO1xuICAgIH1cblxuICAgIGFzeW5jIF90YWtlU2NyZWVuc2hvdCAoeyBmaWxlUGF0aCwgcGFnZVdpZHRoLCBwYWdlSGVpZ2h0LCBmdWxsUGFnZSA9IHRoaXMuZnVsbFBhZ2UgfSkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb3ZpZGVyLnRha2VTY3JlZW5zaG90KHRoaXMuYnJvd3NlcklkLCBmaWxlUGF0aCwgcGFnZVdpZHRoLCBwYWdlSGVpZ2h0LCBmdWxsUGFnZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX2NhcHR1cmUgKGZvckVycm9yLCB7IGFjdGlvbklkLCBmYWlsZWRBY3Rpb25JZCwgcGFnZURpbWVuc2lvbnMsIGNyb3BEaW1lbnNpb25zLCBtYXJrU2VlZCwgY3VzdG9tUGF0aCwgZnVsbFBhZ2UsIHRodW1ibmFpbHMgfSA9IHt9KSB7XG4gICAgICAgIGlmICghdGhpcy5lbmFibGVkKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgdGh1bWJuYWlscyA9IHRodW1ibmFpbHMgPT09IHZvaWQgMCA/IHRoaXMudGh1bWJuYWlscyA6IHRodW1ibmFpbHM7XG5cbiAgICAgICAgY29uc3Qgc2NyZWVuc2hvdFBhdGggPSBjdXN0b21QYXRoID8gdGhpcy5fZ2V0Q3VzdG9tU2NyZWVuc2hvdFBhdGgoY3VzdG9tUGF0aCkgOiB0aGlzLl9nZXRTY3JlZW5zaG90UGF0aChmb3JFcnJvcik7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbFBhdGggID0gdGhpcy5fZ2V0VGh1bWJuYWlsUGF0aChzY3JlZW5zaG90UGF0aCk7XG4gICAgICAgIGNvbnN0IHRlbXBQYXRoICAgICAgID0gc2NyZWVuc2hvdFBhdGgucmVwbGFjZSh0aGlzLmJhc2VTY3JlZW5zaG90c1BhdGgsIHRoaXMudGVtcERpcmVjdG9yeVBhdGgpO1xuICAgICAgICBsZXQgc2NyZWVuc2hvdERhdGE7XG5cbiAgICAgICAgaWYgKGlzSW5RdWV1ZShzY3JlZW5zaG90UGF0aCkpXG4gICAgICAgICAgICB0aGlzLndhcm5pbmdMb2cuYWRkV2FybmluZyhXQVJOSU5HX01FU1NBR0Uuc2NyZWVuc2hvdFJld3JpdGluZ0Vycm9yLCBzY3JlZW5zaG90UGF0aCk7XG5cbiAgICAgICAgYXdhaXQgYWRkVG9RdWV1ZShzY3JlZW5zaG90UGF0aCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50QXJlYURpbWVuc2lvbnMgPSBDYXB0dXJlci5fZ2V0Q2xpZW50QXJlYURpbWVuc2lvbnMocGFnZURpbWVuc2lvbnMpO1xuXG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBwYWdlV2lkdGgsIGhlaWdodDogcGFnZUhlaWdodCB9ID0gY2xpZW50QXJlYURpbWVuc2lvbnMgfHwge307XG5cbiAgICAgICAgICAgIGNvbnN0IHRha2VTY3JlZW5zaG90T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWxlUGF0aDogdGVtcFBhdGgsXG4gICAgICAgICAgICAgICAgcGFnZVdpZHRoLFxuICAgICAgICAgICAgICAgIHBhZ2VIZWlnaHQsXG4gICAgICAgICAgICAgICAgZnVsbFBhZ2UsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl90YWtlU2NyZWVuc2hvdCh0YWtlU2NyZWVuc2hvdE9wdGlvbnMpO1xuXG4gICAgICAgICAgICBpZiAoIWF3YWl0IENhcHR1cmVyLl9pc1NjcmVlbnNob3RDYXB0dXJlZCh0ZW1wUGF0aCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IHJlYWRQbmdGaWxlKHRlbXBQYXRoKTtcblxuICAgICAgICAgICAgY29uc3QgY3JvcHBlZEltYWdlID0gYXdhaXQgY3JvcFNjcmVlbnNob3QoaW1hZ2UsIHtcbiAgICAgICAgICAgICAgICBtYXJrU2VlZCxcbiAgICAgICAgICAgICAgICBjbGllbnRBcmVhRGltZW5zaW9ucyxcbiAgICAgICAgICAgICAgICBwYXRoOiAgICAgICAgICAgdGVtcFBhdGgsXG4gICAgICAgICAgICAgICAgY3JvcERpbWVuc2lvbnM6IENhcHR1cmVyLl9nZXRDcm9wRGltZW5zaW9ucyhjcm9wRGltZW5zaW9ucywgcGFnZURpbWVuc2lvbnMpLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChjcm9wcGVkSW1hZ2UpXG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVQbmcodGVtcFBhdGgsIGNyb3BwZWRJbWFnZSk7XG5cbiAgICAgICAgICAgIHNjcmVlbnNob3REYXRhID0gYXdhaXQgcmVhZEZpbGUodGVtcFBhdGgpO1xuXG4gICAgICAgICAgICBpZiAoZm9yRXJyb3IgJiYgdGhpcy5hdXRvVGFrZU9uRmFpbHMpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBhd2FpdCBtYWtlRGlyKGRpcm5hbWUoc2NyZWVuc2hvdFBhdGgpKTtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShzY3JlZW5zaG90UGF0aCwgc2NyZWVuc2hvdERhdGEpO1xuXG4gICAgICAgICAgICBpZiAodGh1bWJuYWlscylcbiAgICAgICAgICAgICAgICBhd2FpdCBnZW5lcmF0ZVRodW1ibmFpbChzY3JlZW5zaG90UGF0aCwgdGh1bWJuYWlsUGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRlc3RSdW5JZCAgICAgICAgID0gdGhpcy50ZXN0RW50cnkudGVzdFJ1bnNbdGhpcy5icm93c2VySWRdLmlkO1xuICAgICAgICBjb25zdCB1c2VyQWdlbnQgICAgICAgICA9IGVzY2FwZVVzZXJBZ2VudCh0aGlzLnBhdGhQYXR0ZXJuLmRhdGEucGFyc2VkVXNlckFnZW50LnByZXR0eVVzZXJBZ2VudCk7XG4gICAgICAgIGNvbnN0IHF1YXJhbnRpbmVBdHRlbXB0ID0gdGhpcy5wYXRoUGF0dGVybi5kYXRhLnF1YXJhbnRpbmVBdHRlbXB0O1xuICAgICAgICBjb25zdCB0YWtlbk9uRmFpbCAgICAgICA9IGZvckVycm9yO1xuXG4gICAgICAgIGNvbnN0IHNjcmVlbnNob3QgPSB7XG4gICAgICAgICAgICB0ZXN0UnVuSWQsXG4gICAgICAgICAgICBzY3JlZW5zaG90UGF0aCxcbiAgICAgICAgICAgIHNjcmVlbnNob3REYXRhLFxuICAgICAgICAgICAgdGh1bWJuYWlsUGF0aCxcbiAgICAgICAgICAgIHVzZXJBZ2VudCxcbiAgICAgICAgICAgIHF1YXJhbnRpbmVBdHRlbXB0LFxuICAgICAgICAgICAgdGFrZW5PbkZhaWwsXG4gICAgICAgICAgICBhY3Rpb25JZDogZmFpbGVkQWN0aW9uSWQgfHwgYWN0aW9uSWQsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy50ZXN0RW50cnkuc2NyZWVuc2hvdHMucHVzaChzY3JlZW5zaG90KTtcblxuICAgICAgICByZXR1cm4gc2NyZWVuc2hvdFBhdGg7XG4gICAgfVxuXG4gICAgYXN5bmMgY2FwdHVyZUFjdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2FwdHVyZShmYWxzZSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2FwdHVyZUVycm9yIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jYXB0dXJlKHRydWUsIG9wdGlvbnMpO1xuICAgIH1cbn1cblxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvY2FwdHVyZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFJYztBQUVkLG1FQUEyRDtBQUMzRCxpQ0FBd0M7QUFDeEMsc0RBQTZEO0FBQzdELHVGQUErRDtBQUMvRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELDBFQU13QztBQUV4Qyw0RUFBK0Q7QUFDL0Qsd0RBQStCO0FBRy9CLE1BQXFCLFFBQVE7SUFDekIsbUNBQW1DO0lBQ25DLFlBQWEsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZUFBZTtRQUN0SSxJQUFJLENBQUMsT0FBTyxHQUFlLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBYSxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBYyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQWEsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFXLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFjLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFZLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUssaUJBQWlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBTyxlQUFlLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsYUFBYTtRQUNqRixJQUFJLGFBQWEs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SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFFLE9BQU87UUFDdkIsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQXhMRCwyQkF3TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGpvaW4gYXMgam9pblBhdGgsXG4gICAgZGlybmFtZSxcbiAgICBiYXNlbmFtZSxcbn0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGdlbmVyYXRlVGh1bWJuYWlsIH0gZnJvbSAndGVzdGNhZmUtYnJvd3Nlci10b29scyc7XG5pbXBvcnQgeyBjcm9wU2NyZWVuc2hvdCB9IGZyb20gJy4vY3JvcCc7XG5pbXBvcnQgeyBpc0luUXVldWUsIGFkZFRvUXVldWUgfSBmcm9tICcuLi91dGlscy9hc3luYy1xdWV1ZSc7XG5pbXBvcnQgV0FSTklOR19NRVNTQUdFIGZyb20gJy4uL25vdGlmaWNhdGlvbnMvd2FybmluZy1tZXNzYWdlJztcbmltcG9ydCBlc2NhcGVVc2VyQWdlbnQgZnJvbSAnLi4vdXRpbHMvZXNjYXBlLXVzZXItYWdlbnQnO1xuaW1wb3J0IGNvcnJlY3RGaWxlUGF0aCBmcm9tICcuLi91dGlscy9jb3JyZWN0LWZpbGUtcGF0aCc7XG5pbXBvcnQge1xuICAgIHJlYWRGaWxlLFxuICAgIHJlYWRQbmdGaWxlLFxuICAgIHN0YXQsXG4gICAgd3JpdGVGaWxlLFxuICAgIHdyaXRlUG5nLFxufSBmcm9tICcuLi91dGlscy9wcm9taXNpZmllZC1mdW5jdGlvbnMnO1xuXG5pbXBvcnQgREVGQVVMVF9TQ1JFRU5TSE9UX0VYVEVOU0lPTiBmcm9tICcuL2RlZmF1bHQtZXh0ZW5zaW9uJztcbmltcG9ydCBtYWtlRGlyIGZyb20gJ21ha2UtZGlyJztcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDYXB0dXJlciB7XG4gICAgLy8gVE9ETzogcmVmYWN0b3IgdG8gdXNlIGRpY3Rpb25hcnlcbiAgICBjb25zdHJ1Y3RvciAoYmFzZVNjcmVlbnNob3RzUGF0aCwgdGVzdEVudHJ5LCBjb25uZWN0aW9uLCBwYXRoUGF0dGVybiwgZnVsbFBhZ2UsIHRodW1ibmFpbHMsIHdhcm5pbmdMb2csIHRlbXBEaXJlY3RvcnlQYXRoLCBhdXRvVGFrZU9uRmFpbHMpIHtcbiAgICAgICAgdGhpcy5lbmFibGVkICAgICAgICAgICAgID0gISFiYXNlU2NyZWVuc2hvdHNQYXRoO1xuICAgICAgICB0aGlzLmJhc2VTY3JlZW5zaG90c1BhdGggPSBiYXNlU2NyZWVuc2hvdHNQYXRoO1xuICAgICAgICB0aGlzLnRlc3RFbnRyeSAgICAgICAgICAgPSB0ZXN0RW50cnk7XG4gICAgICAgIHRoaXMucHJvdmlkZXIgICAgICAgICAgICA9IGNvbm5lY3Rpb24ucHJvdmlkZXI7XG4gICAgICAgIHRoaXMuYnJvd3NlcklkICAgICAgICAgICA9IGNvbm5lY3Rpb24uaWQ7XG4gICAgICAgIHRoaXMud2FybmluZ0xvZyAgICAgICAgICA9IHdhcm5pbmdMb2c7XG4gICAgICAgIHRoaXMucGF0aFBhdHRlcm4gICAgICAgICA9IHBhdGhQYXR0ZXJuO1xuICAgICAgICB0aGlzLmZ1bGxQYWdlICAgICAgICAgICAgPSBmdWxsUGFnZTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxzICAgICAgICAgID0gdGh1bWJuYWlscztcbiAgICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5UGF0aCAgID0gdGVtcERpcmVjdG9yeVBhdGg7XG4gICAgICAgIHRoaXMuYXV0b1Rha2VPbkZhaWxzICAgICA9IGF1dG9UYWtlT25GYWlscztcbiAgICB9XG5cbiAgICBzdGF0aWMgX2dldERpbWVuc2lvbldpdGhvdXRTY3JvbGxiYXIgKGZ1bGxEaW1lbnNpb24sIGRvY3VtZW50RGltZW5zaW9uLCBib2R5RGltZW5zaW9uKSB7XG4gICAgICAgIGlmIChib2R5RGltZW5zaW9uID4gZnVsbERpbWVuc2lvbilcbiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudERpbWVuc2lvbjtcblxuICAgICAgICBpZiAoZG9jdW1lbnREaW1lbnNpb24gPiBmdWxsRGltZW5zaW9uKVxuICAgICAgICAgICAgcmV0dXJuIGJvZHlEaW1lbnNpb247XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGRvY3VtZW50RGltZW5zaW9uLCBib2R5RGltZW5zaW9uKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2dldENyb3BEaW1lbnNpb25zIChjcm9wRGltZW5zaW9ucywgcGFnZURpbWVuc2lvbnMpIHtcbiAgICAgICAgaWYgKCFjcm9wRGltZW5zaW9ucyB8fCAhcGFnZURpbWVuc2lvbnMpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCB7IGRwciB9ICAgICAgICAgICAgICAgICAgICAgID0gcGFnZURpbWVuc2lvbnM7XG4gICAgICAgIGNvbnN0IHsgdG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0IH0gPSBjcm9wRGltZW5zaW9ucztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiAgICBNYXRoLnJvdW5kKHRvcCAqIGRwciksXG4gICAgICAgICAgICBsZWZ0OiAgIE1hdGgucm91bmQobGVmdCAqIGRwciksXG4gICAgICAgICAgICBib3R0b206IE1hdGgucm91bmQoYm90dG9tICogZHByKSxcbiAgICAgICAgICAgIHJpZ2h0OiAgTWF0aC5yb3VuZChyaWdodCAqIGRwciksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIF9nZXRDbGllbnRBcmVhRGltZW5zaW9ucyAocGFnZURpbWVuc2lvbnMpIHtcbiAgICAgICAgaWYgKCFwYWdlRGltZW5zaW9ucylcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHsgaW5uZXJXaWR0aCwgZG9jdW1lbnRXaWR0aCwgYm9keVdpZHRoLCBpbm5lckhlaWdodCwgZG9jdW1lbnRIZWlnaHQsIGJvZHlIZWlnaHQsIGRwciB9ID0gcGFnZURpbWVuc2lvbnM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiAgTWF0aC5mbG9vcihDYXB0dXJlci5fZ2V0RGltZW5zaW9uV2l0aG91dFNjcm9sbGJhcihpbm5lcldpZHRoLCBkb2N1bWVudFdpZHRoLCBib2R5V2lkdGgpICogZHByKSxcbiAgICAgICAgICAgIGhlaWdodDogTWF0aC5mbG9vcihDYXB0dXJlci5fZ2V0RGltZW5zaW9uV2l0aG91dFNjcm9sbGJhcihpbm5lckhlaWdodCwgZG9jdW1lbnRIZWlnaHQsIGJvZHlIZWlnaHQpICogZHByKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgX2lzU2NyZWVuc2hvdENhcHR1cmVkIChzY3JlZW5zaG90UGF0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBzdGF0KHNjcmVlbnNob3RQYXRoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHN0YXRzLmlzRmlsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfam9pbldpdGhCYXNlU2NyZWVuc2hvdFBhdGggKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGpvaW5QYXRoKHRoaXMuYmFzZVNjcmVlbnNob3RzUGF0aCwgcGF0aCk7XG4gICAgfVxuXG4gICAgX2luY3JlbWVudEZpbGVJbmRleGVzIChmb3JFcnJvcikge1xuICAgICAgICBpZiAoZm9yRXJyb3IpXG4gICAgICAgICAgICB0aGlzLnBhdGhQYXR0ZXJuLmRhdGEuZXJyb3JGaWxlSW5kZXgrKztcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLnBhdGhQYXR0ZXJuLmRhdGEuZmlsZUluZGV4Kys7XG4gICAgfVxuXG4gICAgX2dldEN1c3RvbVNjcmVlbnNob3RQYXRoIChjdXN0b21QYXRoKSB7XG4gICAgICAgIGNvbnN0IGNvcnJlY3RlZEN1c3RvbVBhdGggPSBjb3JyZWN0RmlsZVBhdGgoY3VzdG9tUGF0aCwgREVGQVVMVF9TQ1JFRU5TSE9UX0VYVEVOU0lPTik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2pvaW5XaXRoQmFzZVNjcmVlbnNob3RQYXRoKGNvcnJlY3RlZEN1c3RvbVBhdGgpO1xuICAgIH1cblxuICAgIF9nZXRTY3JlZW5zaG90UGF0aCAoZm9yRXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aFBhdHRlcm4uZ2V0UGF0aChmb3JFcnJvcik7XG5cbiAgICAgICAgdGhpcy5faW5jcmVtZW50RmlsZUluZGV4ZXMoZm9yRXJyb3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9qb2luV2l0aEJhc2VTY3JlZW5zaG90UGF0aChwYXRoKTtcbiAgICB9XG5cbiAgICBfZ2V0VGh1bWJuYWlsUGF0aCAoc2NyZWVuc2hvdFBhdGgpIHtcbiAgICAgICAgY29uc3QgaW1hZ2VOYW1lID0gYmFzZW5hbWUoc2NyZWVuc2hvdFBhdGgpO1xuICAgICAgICBjb25zdCBpbWFnZURpciAgPSBkaXJuYW1lKHNjcmVlbnNob3RQYXRoKTtcblxuICAgICAgICByZXR1cm4gam9pblBhdGgoaW1hZ2VEaXIsICd0aHVtYm5haWxzJywgaW1hZ2VOYW1lKTtcbiAgICB9XG5cbiAgICBhc3luYyBfdGFrZVNjcmVlbnNob3QgKHsgZmlsZVBhdGgsIHBhZ2VXaWR0aCwgcGFnZUhlaWdodCwgZnVsbFBhZ2UgPSB0aGlzLmZ1bGxQYWdlIH0pIHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm92aWRlci50YWtlU2NyZWVuc2hvdCh0aGlzLmJyb3dzZXJJZCwgZmlsZVBhdGgsIHBhZ2VXaWR0aCwgcGFnZUhlaWdodCwgZnVsbFBhZ2UpO1xuICAgIH1cblxuICAgIGFzeW5jIF9jYXB0dXJlIChmb3JFcnJvciwgeyBhY3Rpb25JZCwgZmFpbGVkQWN0aW9uSWQsIHBhZ2VEaW1lbnNpb25zLCBjcm9wRGltZW5zaW9ucywgbWFya1NlZWQsIGN1c3RvbVBhdGgsIGZ1bGxQYWdlLCB0aHVtYm5haWxzIH0gPSB7fSkge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIHRodW1ibmFpbHMgPSB0aHVtYm5haWxzID09PSB2b2lkIDAgPyB0aGlzLnRodW1ibmFpbHMgOiB0aHVtYm5haWxzO1xuXG4gICAgICAgIGNvbnN0IHNjcmVlbnNob3RQYXRoID0gY3VzdG9tUGF0aCA/IHRoaXMuX2dldEN1c3RvbVNjcmVlbnNob3RQYXRoKGN1c3RvbVBhdGgpIDogdGhpcy5fZ2V0U2NyZWVuc2hvdFBhdGgoZm9yRXJyb3IpO1xuICAgICAgICBjb25zdCB0aHVtYm5haWxQYXRoICA9IHRoaXMuX2dldFRodW1ibmFpbFBhdGgoc2NyZWVuc2hvdFBhdGgpO1xuICAgICAgICBjb25zdCB0ZW1wUGF0aCAgICAgICA9IHNjcmVlbnNob3RQYXRoLnJlcGxhY2UodGhpcy5iYXNlU2NyZWVuc2hvdHNQYXRoLCB0aGlzLnRlbXBEaXJlY3RvcnlQYXRoKTtcbiAgICAgICAgbGV0IHNjcmVlbnNob3REYXRhO1xuXG4gICAgICAgIGlmIChpc0luUXVldWUoc2NyZWVuc2hvdFBhdGgpKVxuICAgICAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFLnNjcmVlbnNob3RSZXdyaXRpbmdFcnJvciwgc2NyZWVuc2hvdFBhdGgpO1xuXG4gICAgICAgIGF3YWl0IGFkZFRvUXVldWUoc2NyZWVuc2hvdFBhdGgsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudEFyZWFEaW1lbnNpb25zID0gQ2FwdHVyZXIuX2dldENsaWVudEFyZWFEaW1lbnNpb25zKHBhZ2VEaW1lbnNpb25zKTtcblxuICAgICAgICAgICAgY29uc3QgeyB3aWR0aDogcGFnZVdpZHRoLCBoZWlnaHQ6IHBhZ2VIZWlnaHQgfSA9IGNsaWVudEFyZWFEaW1lbnNpb25zIHx8IHt9O1xuXG4gICAgICAgICAgICBjb25zdCB0YWtlU2NyZWVuc2hvdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgZmlsZVBhdGg6IHRlbXBQYXRoLFxuICAgICAgICAgICAgICAgIHBhZ2VXaWR0aCxcbiAgICAgICAgICAgICAgICBwYWdlSGVpZ2h0LFxuICAgICAgICAgICAgICAgIGZ1bGxQYWdlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fdGFrZVNjcmVlbnNob3QodGFrZVNjcmVlbnNob3RPcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKCFhd2FpdCBDYXB0dXJlci5faXNTY3JlZW5zaG90Q2FwdHVyZWQodGVtcFBhdGgpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCByZWFkUG5nRmlsZSh0ZW1wUGF0aCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyb3BwZWRJbWFnZSA9IGF3YWl0IGNyb3BTY3JlZW5zaG90KGltYWdlLCB7XG4gICAgICAgICAgICAgICAgbWFya1NlZWQsXG4gICAgICAgICAgICAgICAgY2xpZW50QXJlYURpbWVuc2lvbnMsXG4gICAgICAgICAgICAgICAgcGF0aDogICAgICAgICAgIHRlbXBQYXRoLFxuICAgICAgICAgICAgICAgIGNyb3BEaW1lbnNpb25zOiBDYXB0dXJlci5fZ2V0Q3JvcERpbWVuc2lvbnMoY3JvcERpbWVuc2lvbnMsIHBhZ2VEaW1lbnNpb25zKSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY3JvcHBlZEltYWdlKVxuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlUG5nKHRlbXBQYXRoLCBjcm9wcGVkSW1hZ2UpO1xuXG4gICAgICAgICAgICBzY3JlZW5zaG90RGF0YSA9IGF3YWl0IHJlYWRGaWxlKHRlbXBQYXRoKTtcblxuICAgICAgICAgICAgaWYgKGZvckVycm9yICYmIHRoaXMuYXV0b1Rha2VPbkZhaWxzKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgYXdhaXQgbWFrZURpcihkaXJuYW1lKHNjcmVlbnNob3RQYXRoKSk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoc2NyZWVuc2hvdFBhdGgsIHNjcmVlbnNob3REYXRhKTtcblxuICAgICAgICAgICAgaWYgKHRodW1ibmFpbHMpXG4gICAgICAgICAgICAgICAgYXdhaXQgZ2VuZXJhdGVUaHVtYm5haWwoc2NyZWVuc2hvdFBhdGgsIHRodW1ibmFpbFBhdGgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0ZXN0UnVuSWQgICAgICAgICA9IHRoaXMudGVzdEVudHJ5LnRlc3RSdW5zW3RoaXMuYnJvd3NlcklkXS5pZDtcbiAgICAgICAgY29uc3QgdXNlckFnZW50ICAgICAgICAgPSBlc2NhcGVVc2VyQWdlbnQodGhpcy5wYXRoUGF0dGVybi5kYXRhLnBhcnNlZFVzZXJBZ2VudC5wcmV0dHlVc2VyQWdlbnQpO1xuICAgICAgICBjb25zdCBxdWFyYW50aW5lQXR0ZW1wdCA9IHRoaXMucGF0aFBhdHRlcm4uZGF0YS5xdWFyYW50aW5lQXR0ZW1wdDtcbiAgICAgICAgY29uc3QgdGFrZW5PbkZhaWwgICAgICAgPSBmb3JFcnJvcjtcblxuICAgICAgICBjb25zdCBzY3JlZW5zaG90ID0ge1xuICAgICAgICAgICAgdGVzdFJ1bklkLFxuICAgICAgICAgICAgc2NyZWVuc2hvdFBhdGgsXG4gICAgICAgICAgICBzY3JlZW5zaG90RGF0YSxcbiAgICAgICAgICAgIHRodW1ibmFpbFBhdGgsXG4gICAgICAgICAgICB1c2VyQWdlbnQsXG4gICAgICAgICAgICBxdWFyYW50aW5lQXR0ZW1wdCxcbiAgICAgICAgICAgIHRha2VuT25GYWlsLFxuICAgICAgICAgICAgYWN0aW9uSWQ6IGZhaWxlZEFjdGlvbklkIHx8IGFjdGlvbklkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudGVzdEVudHJ5LnNjcmVlbnNob3RzLnB1c2goc2NyZWVuc2hvdCk7XG5cbiAgICAgICAgcmV0dXJuIHNjcmVlbnNob3RQYXRoO1xuICAgIH1cblxuICAgIGFzeW5jIGNhcHR1cmVBY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NhcHR1cmUoZmFsc2UsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGFzeW5jIGNhcHR1cmVFcnJvciAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY2FwdHVyZSh0cnVlLCBvcHRpb25zKTtcbiAgICB9XG59XG5cbiJdfQ==
@@ -33,7 +33,7 @@ async function validateClipInfo(clipInfo, path) {
33
33
  const clipWidth = clipInfo.clipRight - clipInfo.clipLeft;
34
34
  const clipHeight = clipInfo.clipBottom - clipInfo.clipTop;
35
35
  if (clipWidth <= 0 || clipHeight <= 0) {
36
- await promisified_functions_1.deleteFile(path);
36
+ await (0, promisified_functions_1.deleteFile)(path);
37
37
  throw new test_run_1.InvalidElementScreenshotDimensionsError(clipWidth, clipHeight);
38
38
  }
39
39
  }
@@ -68,10 +68,10 @@ exports.getClipInfoByMarkPosition = getClipInfoByMarkPosition;
68
68
  function getClipInfoByCropDimensions({ clipRight, clipLeft, clipBottom, clipTop }, cropDimensions) {
69
69
  if (cropDimensions) {
70
70
  const { right, top, bottom, left } = cropDimensions;
71
- clipRight = limit_number_1.default(clipLeft + right, clipLeft, clipRight);
72
- clipBottom = limit_number_1.default(clipTop + bottom, clipTop, clipBottom);
73
- clipLeft = limit_number_1.default(clipLeft + left, clipLeft, clipRight);
74
- clipTop = limit_number_1.default(clipTop + top, clipTop, clipBottom);
71
+ clipRight = (0, limit_number_1.default)(clipLeft + right, clipLeft, clipRight);
72
+ clipBottom = (0, limit_number_1.default)(clipTop + bottom, clipTop, clipBottom);
73
+ clipLeft = (0, limit_number_1.default)(clipLeft + left, clipLeft, clipRight);
74
+ clipTop = (0, limit_number_1.default)(clipTop + top, clipTop, clipBottom);
75
75
  }
76
76
  return {
77
77
  clipLeft,
@@ -92,7 +92,7 @@ function calculateClipInfo(pngImage, path, markSeed, clientAreaDimensions, cropD
92
92
  if (markSeed && clientAreaDimensions) {
93
93
  markPosition = calculateMarkPosition(pngImage, markSeed);
94
94
  if (!markPosition)
95
- throw new Error(render_template_1.default(warning_message_1.default.screenshotMarkNotFound, path, markSeedToId(markSeed)));
95
+ throw new Error((0, render_template_1.default)(warning_message_1.default.screenshotMarkNotFound, path, markSeedToId(markSeed)));
96
96
  clipInfo = getClipInfoByMarkPosition(markPosition, clientAreaDimensions);
97
97
  }
98
98
  clipInfo = getClipInfoByCropDimensions(clipInfo, cropDimensions);
@@ -106,7 +106,7 @@ async function cropScreenshot(image, { path, markSeed, clientAreaDimensions, cro
106
106
  return null;
107
107
  const clip = calculateClipInfo(image, path, markSeed, clientAreaDimensions, cropDimensions);
108
108
  await validateClipInfo(clip, path);
109
- return utils_1.copyImagePart(image, clip);
109
+ return (0, utils_1.copyImagePart)(image, clip);
110
110
  }
111
111
  exports.cropScreenshot = cropScreenshot;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JlZW5zaG90cy9jcm9wLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQUF3QztBQUN4Qyx5RUFBZ0Q7QUFDaEQsK0VBQXNEO0FBQ3RELDBFQUE0RDtBQUM1RCxrREFBOEU7QUFDOUUsMkNBSXFCO0FBRXJCLHVGQUFnRTtBQUVoRSxNQUFNLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztBQUNyQyxNQUFNLGdCQUFnQixHQUFZLEdBQUcsQ0FBQztBQUN0QyxNQUFNLGdCQUFnQixHQUFZLENBQUMsQ0FBQztBQUVwQyxTQUFTLFlBQVksQ0FBRSxRQUFRO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyx1QkFBVyxFQUFFLENBQUMsRUFBRTtRQUNoQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsZ0NBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRCxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFFLFNBQVM7SUFDckMsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixDQUFDO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztJQUV0RCxJQUFJLE9BQU87UUFDUCxPQUFPLGdCQUFnQixDQUFDO0lBRTVCLElBQUksT0FBTztRQUNQLE9BQU8sZ0JBQWdCLENBQUM7SUFFNUIsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0IsQ0FBRSxRQUFRLEVBQUUsSUFBSTtJQUMzQyxNQUFNLFNBQVMsR0FBSSxRQUFRLENBQUMsU0FBUyxHQUFH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QVEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUU1RixNQUFNLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVuQyxPQUFPLHFCQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFURCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcHlJbWFnZVBhcnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBsaW1pdE51bWJlciBmcm9tICcuLi91dGlscy9saW1pdC1udW1iZXInO1xuaW1wb3J0IHJlbmRlclRlbXBsYXRlIGZyb20gJy4uL3V0aWxzL3JlbmRlci10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBkZWxldGVGaWxlIH0gZnJvbSAnLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcbmltcG9ydCB7IEludmFsaWRFbGVtZW50U2NyZWVuc2hvdERpbWVuc2lvbnNFcnJvciB9IGZyb20gJy4uL2Vycm9ycy90ZXN0LXJ1bi8nO1xuaW1wb3J0IHtcbiAgICBNQVJLX0xFTkdUSCxcbiAgICBNQVJLX1JJR0hUX01BUkdJTixcbiAgICBNQVJLX0JZVEVTX1BFUl9QSVhFTCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgV0FSTklOR19NRVNTQUdFUyBmcm9tICcuLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cbmNvbnN0IE1BUktfU0VFRF9FUlJPUl9USFJFU0hPTEQgPSAxMDtcbmNvbnN0IFdISVRFX0NPTE9SX1BBUlQgICAgICAgICAgPSAyNTU7XG5jb25zdCBCTEFDS19DT0xPUl9QQVJUICAgICAgICAgID0gMDtcblxuZnVuY3Rpb24gbWFya1NlZWRUb0lkIChtYXJrU2VlZCkge1xuICAgIGxldCBpZCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1BUktfTEVOR1RIOyBpKyspXG4gICAgICAgIGlkID0gaWQgKiAyICsgKG1hcmtTZWVkW2kgKiBNQVJLX0JZVEVTX1BFUl9QSVhFTF0gPyAxIDogMCk7XG5cbiAgICByZXR1cm4gaWQ7XG59XG5cbmZ1bmN0aW9uIGdldENvcnJlY3RlZENvbG9yUGFydCAoY29sb3JQYXJ0KSB7XG4gICAgY29uc3QgaXNXaGl0ZSA9IGNvbG9yUGFydCA+IFdISVRFX0NPTE9SX1BBUlQgLSBNQVJLX1NFRURfRVJST1JfVEhSRVNIT0xEO1xuICAgIGNvbnN0IGlzQmxhY2sgPSBjb2xvclBhcnQgPCBNQVJLX1NFRURfRVJST1JfVEhSRVNIT0xEO1xuXG4gICAgaWYgKGlzQmxhY2spXG4gICAgICAgIHJldHVybiBCTEFDS19DT0xPUl9QQVJUO1xuXG4gICAgaWYgKGlzV2hpdGUpXG4gICAgICAgIHJldHVybiBXSElURV9DT0xPUl9QQVJUO1xuXG4gICAgcmV0dXJuIGNvbG9yUGFydDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVDbGlwSW5mbyAoY2xpcEluZm8sIHBhdGgpIHtcbiAgICBjb25zdCBjbGlwV2lkdGggID0gY2xpcEluZm8uY2xpcFJpZ2h0IC0gY2xpcEluZm8uY2xpcExlZnQ7XG4gICAgY29uc3QgY2xpcEhlaWdodCA9IGNsaXBJbmZvLmNsaXBCb3R0b20gLSBjbGlwSW5mby5jbGlwVG9wO1xuXG4gICAgaWYgKGNsaXBXaWR0aCA8PSAwIHx8IGNsaXBIZWlnaHQgPD0gMCkge1xuICAgICAgICBhd2FpdCBkZWxldGVGaWxlKHBhdGgpO1xuXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkRWxlbWVudFNjcmVlbnNob3REaW1lbnNpb25zRXJyb3IoY2xpcFdpZHRoLCBjbGlwSGVpZ2h0KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVNYXJrUG9zaXRpb24gKHBuZ0ltYWdlLCBtYXJrU2VlZCkge1xuICAgIGNvbnN0IG1hcmsgICAgPSBCdWZmZXIuZnJvbShtYXJrU2VlZCk7XG4gICAgY29uc3QgZmlsdEltZyA9IEJ1ZmZlci5mcm9tKHBuZ0ltYWdlLmRhdGEpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0SW1nLmxlbmd0aDsgaSsrKVxuICAgICAgICBmaWx0SW1nW2ldID0gZ2V0Q29ycmVjdGVkQ29sb3JQYXJ0KGZpbHRJbWdbaV0pO1xuXG4gICAgY29uc3QgbWFya0luZGV4ID0gZmlsdEltZy5pbmRleE9mKG1hcmspO1xuXG4gICAgaWYgKG1hcmtJbmRleCA8IDApXG4gICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZW5kUG9zaXRpb24gPSBtYXJrSW5kZXggLyBNQVJLX0JZVEVTX1BFUl9QSVhFTCArIE1BUktfTEVOR1RIICsgTUFSS19SSUdIVF9NQVJHSU47XG5cbiAgICBjb25zdCB4ID0gZW5kUG9zaXRpb24gJSBwbmdJbWFnZS53aWR0aCB8fCBwbmdJbWFnZS53aWR0aDtcbiAgICBjb25zdCB5ID0gKGVuZFBvc2l0aW9uIC0geCkgLyBwbmdJbWFnZS53aWR0aCArIDE7XG5cbiAgICByZXR1cm4geyB4LCB5IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGlwSW5mb0J5TWFya1Bvc2l0aW9uIChtYXJrUG9zaXRpb24sIHsgd2lkdGgsIGhlaWdodCB9KSB7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBtYXJrUG9zaXRpb247XG5cbiAgICBjb25zdCBjbGlwUmlnaHQgID0geDtcbiAgICBjb25zdCBjbGlwQm90dG9tID0geTtcbiAgICBjb25zdCBjbGlwTGVmdCAgID0gY2xpcFJpZ2h0IC0gd2lkdGg7XG4gICAgY29uc3QgY2xpcFRvcCAgICA9IGNsaXBCb3R0b20gLSBoZWlnaHQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjbGlwTGVmdCxcbiAgICAgICAgY2xpcFRvcCxcbiAgICAgICAgY2xpcFJpZ2h0LFxuICAgICAgICBjbGlwQm90dG9tLFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGlwSW5mb0J5Q3JvcERpbWVuc2lvbnMgKHsgY2xpcFJpZ2h0LCBjbGlwTGVmdCwgY2xpcEJvdHRvbSwgY2xpcFRvcCB9LCBjcm9wRGltZW5zaW9ucykge1xuICAgIGlmIChjcm9wRGltZW5zaW9ucykge1xuICAgICAgICBjb25zdCB7IHJpZ2h0LCB0b3AsIGJvdHRvbSwgbGVmdCB9ID0gY3JvcERpbWVuc2lvbnM7XG5cbiAgICAgICAgY2xpcFJpZ2h0ICA9IGxpbWl0TnVtYmVyKGNsaXBMZWZ0ICsgcmlnaHQsIGNsaXBMZWZ0LCBjbGlwUmlnaHQpO1xuICAgICAgICBjbGlwQm90dG9tID0gbGltaXROdW1iZXIoY2xpcFRvcCArIGJvdHRvbSwgY2xpcFRvcCwgY2xpcEJvdHRvbSk7XG4gICAgICAgIGNsaXBMZWZ0ICAgPSBsaW1pdE51bWJlcihjbGlwTGVmdCArIGxlZnQsIGNsaXBMZWZ0LCBjbGlwUmlnaHQpO1xuICAgICAgICBjbGlwVG9wICAgID0gbGltaXROdW1iZXIoY2xpcFRvcCArIHRvcCwgY2xpcFRvcCwgY2xpcEJvdHRvbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2xpcExlZnQsXG4gICAgICAgIGNsaXBUb3AsXG4gICAgICAgIGNsaXBSaWdodCxcbiAgICAgICAgY2xpcEJvdHRvbSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQ2xpcEluZm8gKHBuZ0ltYWdlLCBwYXRoLCBtYXJrU2VlZCwgY2xpZW50QXJlYURpbWVuc2lvbnMsIGNyb3BEaW1lbnNpb25zKSB7XG4gICAgbGV0IGNsaXBJbmZvID0ge1xuICAgICAgICBjbGlwUmlnaHQ6ICBwbmdJbWFnZS53aWR0aCxcbiAgICAgICAgY2xpcEJvdHRvbTogcG5nSW1hZ2UuaGVpZ2h0LFxuICAgICAgICBjbGlwTGVmdDogICAwLFxuICAgICAgICBjbGlwVG9wOiAgICAwLFxuICAgIH07XG5cbiAgICBsZXQgbWFya1Bvc2l0aW9uID0gbnVsbDtcblxuICAgIGlmIChtYXJrU2VlZCAmJiBjbGllbnRBcmVhRGltZW5zaW9ucykge1xuICAgICAgICBtYXJrUG9zaXRpb24gPSBjYWxjdWxhdGVNYXJrUG9zaXRpb24ocG5nSW1hZ2UsIG1hcmtTZWVkKTtcblxuICAgICAgICBpZiAoIW1hcmtQb3NpdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZW5kZXJUZW1wbGF0ZShXQVJOSU5HX01FU1NBR0VTLnNjcmVlbnNob3RNYXJrTm90Rm91bmQsIHBhdGgsIG1hcmtTZWVkVG9JZChtYXJrU2VlZCkpKTtcblxuICAgICAgICBjbGlwSW5mbyA9IGdldENsaXBJbmZvQnlNYXJrUG9zaXRpb24obWFya1Bvc2l0aW9uLCBjbGllbnRBcmVhRGltZW5zaW9ucyk7XG4gICAgfVxuXG4gICAgY2xpcEluZm8gPSBnZXRDbGlwSW5mb0J5Q3JvcERpbWVuc2lvbnMoY2xpcEluZm8sIGNyb3BEaW1lbnNpb25zKTtcblxuICAgIGlmIChtYXJrUG9zaXRpb24gJiYgbWFya1Bvc2l0aW9uLnkgPT09IGNsaXBJbmZvLmNsaXBCb3R0b20pXG4gICAgICAgIGNsaXBJbmZvLmNsaXBCb3R0b20tLTtcblxuICAgIHJldHVybiBjbGlwSW5mbztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyb3BTY3JlZW5zaG90IChpbWFnZSwgeyBwYXRoLCBtYXJrU2VlZCwgY2xpZW50QXJlYURpbWVuc2lvbnMsIGNyb3BEaW1lbnNpb25zIH0pIHtcbiAgICBpZiAoIW1hcmtTZWVkICYmICFjcm9wRGltZW5zaW9ucylcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBjbGlwID0gY2FsY3VsYXRlQ2xpcEluZm8oaW1hZ2UsIHBhdGgsIG1hcmtTZWVkLCBjbGllbnRBcmVhRGltZW5zaW9ucywgY3JvcERpbWVuc2lvbnMpO1xuXG4gICAgYXdhaXQgdmFsaWRhdGVDbGlwSW5mbyhjbGlwLCBwYXRoKTtcblxuICAgIHJldHVybiBjb3B5SW1hZ2VQYXJ0KGltYWdlLCBjbGlwKTtcbn1cbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JlZW5zaG90cy9jcm9wLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQUF3QztBQUN4Qyx5RUFBZ0Q7QUFDaEQsK0VBQXNEO0FBQ3RELDBFQUE0RDtBQUM1RCxrREFBOEU7QUFDOUUsMkNBSXFCO0FBRXJCLHVGQUFnRTtBQUVoRSxNQUFNLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztBQUNyQyxNQUFNLGdCQUFnQixHQUFZLEdBQUcsQ0FBQztBQUN0QyxNQUFNLGdCQUFnQixHQUFZLENBQUMsQ0FBQztBQUVwQyxTQUFTLFlBQVksQ0FBRSxRQUFRO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyx1QkFBVyxFQUFFLENBQUMsRUFBRTtRQUNoQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsZ0NBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRCxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFFLFNBQVM7SUFDckMsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLGdCQUFnQixHQUFHLHlCQUF5QixDQUFDO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztJQUV0RCxJQUFJLE9BQU87UUFDUCxPQUFPLGdCQUFnQixDQUFDO0lBRTVCLElBQUksT0FBTztRQUNQLE9BQU8sZ0JBQWdCLENBQUM7SUFFNUIsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0IsQ0FBRSxRQUFRLEVBQUUsSUFBSTtJQUMzQyxNQUFNLFNBQVMsR0FBSSxRQUFRLENBQUMsU0FBUyxHQUFH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aUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUU1RixNQUFNLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVuQyxPQUFPLElBQUEscUJBQWEsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQVRELHdDQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29weUltYWdlUGFydCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGxpbWl0TnVtYmVyIGZyb20gJy4uL3V0aWxzL2xpbWl0LW51bWJlcic7XG5pbXBvcnQgcmVuZGVyVGVtcGxhdGUgZnJvbSAnLi4vdXRpbHMvcmVuZGVyLXRlbXBsYXRlJztcbmltcG9ydCB7IGRlbGV0ZUZpbGUgfSBmcm9tICcuLi91dGlscy9wcm9taXNpZmllZC1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSW52YWxpZEVsZW1lbnRTY3JlZW5zaG90RGltZW5zaW9uc0Vycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3Rlc3QtcnVuLyc7XG5pbXBvcnQge1xuICAgIE1BUktfTEVOR1RILFxuICAgIE1BUktfUklHSFRfTUFSR0lOLFxuICAgIE1BUktfQllURVNfUEVSX1BJWEVMLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBXQVJOSU5HX01FU1NBR0VTIGZyb20gJy4uL25vdGlmaWNhdGlvbnMvd2FybmluZy1tZXNzYWdlJztcblxuY29uc3QgTUFSS19TRUVEX0VSUk9SX1RIUkVTSE9MRCA9IDEwO1xuY29uc3QgV0hJVEVfQ09MT1JfUEFSVCAgICAgICAgICA9IDI1NTtcbmNvbnN0IEJMQUNLX0NPTE9SX1BBUlQgICAgICAgICAgPSAwO1xuXG5mdW5jdGlvbiBtYXJrU2VlZFRvSWQgKG1hcmtTZWVkKSB7XG4gICAgbGV0IGlkID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTUFSS19MRU5HVEg7IGkrKylcbiAgICAgICAgaWQgPSBpZCAqIDIgKyAobWFya1NlZWRbaSAqIE1BUktfQllURVNfUEVSX1BJWEVMXSA/IDEgOiAwKTtcblxuICAgIHJldHVybiBpZDtcbn1cblxuZnVuY3Rpb24gZ2V0Q29ycmVjdGVkQ29sb3JQYXJ0IChjb2xvclBhcnQpIHtcbiAgICBjb25zdCBpc1doaXRlID0gY29sb3JQYXJ0ID4gV0hJVEVfQ09MT1JfUEFSVCAtIE1BUktfU0VFRF9FUlJPUl9USFJFU0hPTEQ7XG4gICAgY29uc3QgaXNCbGFjayA9IGNvbG9yUGFydCA8IE1BUktfU0VFRF9FUlJPUl9USFJFU0hPTEQ7XG5cbiAgICBpZiAoaXNCbGFjaylcbiAgICAgICAgcmV0dXJuIEJMQUNLX0NPTE9SX1BBUlQ7XG5cbiAgICBpZiAoaXNXaGl0ZSlcbiAgICAgICAgcmV0dXJuIFdISVRFX0NPTE9SX1BBUlQ7XG5cbiAgICByZXR1cm4gY29sb3JQYXJ0O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZUNsaXBJbmZvIChjbGlwSW5mbywgcGF0aCkge1xuICAgIGNvbnN0IGNsaXBXaWR0aCAgPSBjbGlwSW5mby5jbGlwUmlnaHQgLSBjbGlwSW5mby5jbGlwTGVmdDtcbiAgICBjb25zdCBjbGlwSGVpZ2h0ID0gY2xpcEluZm8uY2xpcEJvdHRvbSAtIGNsaXBJbmZvLmNsaXBUb3A7XG5cbiAgICBpZiAoY2xpcFdpZHRoIDw9IDAgfHwgY2xpcEhlaWdodCA8PSAwKSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZUZpbGUocGF0aCk7XG5cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRFbGVtZW50U2NyZWVuc2hvdERpbWVuc2lvbnNFcnJvcihjbGlwV2lkdGgsIGNsaXBIZWlnaHQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZU1hcmtQb3NpdGlvbiAocG5nSW1hZ2UsIG1hcmtTZWVkKSB7XG4gICAgY29uc3QgbWFyayAgICA9IEJ1ZmZlci5mcm9tKG1hcmtTZWVkKTtcbiAgICBjb25zdCBmaWx0SW1nID0gQnVmZmVyLmZyb20ocG5nSW1hZ2UuZGF0YSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRJbWcubGVuZ3RoOyBpKyspXG4gICAgICAgIGZpbHRJbWdbaV0gPSBnZXRDb3JyZWN0ZWRDb2xvclBhcnQoZmlsdEltZ1tpXSk7XG5cbiAgICBjb25zdCBtYXJrSW5kZXggPSBmaWx0SW1nLmluZGV4T2YobWFyayk7XG5cbiAgICBpZiAobWFya0luZGV4IDwgMClcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBlbmRQb3NpdGlvbiA9IG1hcmtJbmRleCAvIE1BUktfQllURVNfUEVSX1BJWEVMICsgTUFSS19MRU5HVEggKyBNQVJLX1JJR0hUX01BUkdJTjtcblxuICAgIGNvbnN0IHggPSBlbmRQb3NpdGlvbiAlIHBuZ0ltYWdlLndpZHRoIHx8IHBuZ0ltYWdlLndpZHRoO1xuICAgIGNvbnN0IHkgPSAoZW5kUG9zaXRpb24gLSB4KSAvIHBuZ0ltYWdlLndpZHRoICsgMTtcblxuICAgIHJldHVybiB7IHgsIHkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaXBJbmZvQnlNYXJrUG9zaXRpb24gKG1hcmtQb3NpdGlvbiwgeyB3aWR0aCwgaGVpZ2h0IH0pIHtcbiAgICBjb25zdCB7IHgsIHkgfSA9IG1hcmtQb3NpdGlvbjtcblxuICAgIGNvbnN0IGNsaXBSaWdodCAgPSB4O1xuICAgIGNvbnN0IGNsaXBCb3R0b20gPSB5O1xuICAgIGNvbnN0IGNsaXBMZWZ0ICAgPSBjbGlwUmlnaHQgLSB3aWR0aDtcbiAgICBjb25zdCBjbGlwVG9wICAgID0gY2xpcEJvdHRvbSAtIGhlaWdodDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGNsaXBMZWZ0LFxuICAgICAgICBjbGlwVG9wLFxuICAgICAgICBjbGlwUmlnaHQsXG4gICAgICAgIGNsaXBCb3R0b20sXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaXBJbmZvQnlDcm9wRGltZW5zaW9ucyAoeyBjbGlwUmlnaHQsIGNsaXBMZWZ0LCBjbGlwQm90dG9tLCBjbGlwVG9wIH0sIGNyb3BEaW1lbnNpb25zKSB7XG4gICAgaWYgKGNyb3BEaW1lbnNpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgcmlnaHQsIHRvcCwgYm90dG9tLCBsZWZ0IH0gPSBjcm9wRGltZW5zaW9ucztcblxuICAgICAgICBjbGlwUmlnaHQgID0gbGltaXROdW1iZXIoY2xpcExlZnQgKyByaWdodCwgY2xpcExlZnQsIGNsaXBSaWdodCk7XG4gICAgICAgIGNsaXBCb3R0b20gPSBsaW1pdE51bWJlcihjbGlwVG9wICsgYm90dG9tLCBjbGlwVG9wLCBjbGlwQm90dG9tKTtcbiAgICAgICAgY2xpcExlZnQgICA9IGxpbWl0TnVtYmVyKGNsaXBMZWZ0ICsgbGVmdCwgY2xpcExlZnQsIGNsaXBSaWdodCk7XG4gICAgICAgIGNsaXBUb3AgICAgPSBsaW1pdE51bWJlcihjbGlwVG9wICsgdG9wLCBjbGlwVG9wLCBjbGlwQm90dG9tKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjbGlwTGVmdCxcbiAgICAgICAgY2xpcFRvcCxcbiAgICAgICAgY2xpcFJpZ2h0LFxuICAgICAgICBjbGlwQm90dG9tLFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVDbGlwSW5mbyAocG5nSW1hZ2UsIHBhdGgsIG1hcmtTZWVkLCBjbGllbnRBcmVhRGltZW5zaW9ucywgY3JvcERpbWVuc2lvbnMpIHtcbiAgICBsZXQgY2xpcEluZm8gPSB7XG4gICAgICAgIGNsaXBSaWdodDogIHBuZ0ltYWdlLndpZHRoLFxuICAgICAgICBjbGlwQm90dG9tOiBwbmdJbWFnZS5oZWlnaHQsXG4gICAgICAgIGNsaXBMZWZ0OiAgIDAsXG4gICAgICAgIGNsaXBUb3A6ICAgIDAsXG4gICAgfTtcblxuICAgIGxldCBtYXJrUG9zaXRpb24gPSBudWxsO1xuXG4gICAgaWYgKG1hcmtTZWVkICYmIGNsaWVudEFyZWFEaW1lbnNpb25zKSB7XG4gICAgICAgIG1hcmtQb3NpdGlvbiA9IGNhbGN1bGF0ZU1hcmtQb3NpdGlvbihwbmdJbWFnZSwgbWFya1NlZWQpO1xuXG4gICAgICAgIGlmICghbWFya1Bvc2l0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlbmRlclRlbXBsYXRlKFdBUk5JTkdfTUVTU0FHRVMuc2NyZWVuc2hvdE1hcmtOb3RGb3VuZCwgcGF0aCwgbWFya1NlZWRUb0lkKG1hcmtTZWVkKSkpO1xuXG4gICAgICAgIGNsaXBJbmZvID0gZ2V0Q2xpcEluZm9CeU1hcmtQb3NpdGlvbihtYXJrUG9zaXRpb24sIGNsaWVudEFyZWFEaW1lbnNpb25zKTtcbiAgICB9XG5cbiAgICBjbGlwSW5mbyA9IGdldENsaXBJbmZvQnlDcm9wRGltZW5zaW9ucyhjbGlwSW5mbywgY3JvcERpbWVuc2lvbnMpO1xuXG4gICAgaWYgKG1hcmtQb3NpdGlvbiAmJiBtYXJrUG9zaXRpb24ueSA9PT0gY2xpcEluZm8uY2xpcEJvdHRvbSlcbiAgICAgICAgY2xpcEluZm8uY2xpcEJvdHRvbS0tO1xuXG4gICAgcmV0dXJuIGNsaXBJbmZvO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JvcFNjcmVlbnNob3QgKGltYWdlLCB7IHBhdGgsIG1hcmtTZWVkLCBjbGllbnRBcmVhRGltZW5zaW9ucywgY3JvcERpbWVuc2lvbnMgfSkge1xuICAgIGlmICghbWFya1NlZWQgJiYgIWNyb3BEaW1lbnNpb25zKVxuICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNsaXAgPSBjYWxjdWxhdGVDbGlwSW5mbyhpbWFnZSwgcGF0aCwgbWFya1NlZWQsIGNsaWVudEFyZWFEaW1lbnNpb25zLCBjcm9wRGltZW5zaW9ucyk7XG5cbiAgICBhd2FpdCB2YWxpZGF0ZUNsaXBJbmZvKGNsaXAsIHBhdGgpO1xuXG4gICAgcmV0dXJuIGNvcHlJbWFnZVBhcnQoaW1hZ2UsIGNsaXApO1xufVxuIl19