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
@@ -16,7 +16,7 @@ const guard_time_execution_1 = __importDefault(require("../../../../../../utils/
16
16
  const delay_1 = __importDefault(require("../../../../../../utils/delay"));
17
17
  const DEBUG_SCOPE = (id) => `testcafe:browser:provider:built-in:chrome:browser-client:${id}`;
18
18
  const DOWNLOADS_DIR = path_1.default.join(os_1.default.homedir(), 'Downloads');
19
- const debugLog = debug_1.default('testcafe:browser:provider:built-in:dedicated:chrome');
19
+ const debugLog = (0, debug_1.default)('testcafe:browser:provider:built-in:dedicated:chrome');
20
20
  class ProtocolApiInfo {
21
21
  constructor(client) {
22
22
  this.client = client;
@@ -32,7 +32,7 @@ class BrowserClient {
32
32
  this._clients = {};
33
33
  this._screencastFrameListenerAttached = false;
34
34
  this._runtimeInfo = runtimeInfo;
35
- this.debugLogger = debug_1.default(DEBUG_SCOPE(runtimeInfo.browserId));
35
+ this.debugLogger = (0, debug_1.default)(DEBUG_SCOPE(runtimeInfo.browserId));
36
36
  runtimeInfo.browserClient = this;
37
37
  this._videoFramesBuffer = [];
38
38
  this._lastFrame = null;
@@ -54,7 +54,7 @@ class BrowserClient {
54
54
  return tabs[0];
55
55
  }
56
56
  _checkDropOfPerformance(method, elapsedTime) {
57
- this.debugLogger(`CDP method '${method}' took ${pretty_hrtime_1.default(elapsedTime)}`);
57
+ this.debugLogger(`CDP method '${method}' took ${(0, pretty_hrtime_1.default)(elapsedTime)}`);
58
58
  const [elapsedSeconds] = elapsedTime;
59
59
  if (elapsedSeconds > elapsed_upperbounds_1.ELAPSED_TIME_UPPERBOUNDS[method]) {
60
60
  this._runtimeInfo.providerMethods.reportWarning(warning_message_1.default.browserProviderDropOfPerformance, this._runtimeInfo.browserName);
@@ -62,10 +62,10 @@ class BrowserClient {
62
62
  }
63
63
  async _createClient() {
64
64
  const target = await this._getActiveTab();
65
- const client = await chrome_remote_interface_1.default({ target, port: this._runtimeInfo.cdpPort });
65
+ const client = await (0, chrome_remote_interface_1.default)({ target, port: this._runtimeInfo.cdpPort });
66
66
  const { Page, Network, Runtime } = client;
67
67
  this._clients[this._clientKey] = new ProtocolApiInfo(client);
68
- await guard_time_execution_1.default(async () => await Page.enable(), elapsedTime => this._checkDropOfPerformance(elapsed_upperbounds_1.CheckedCDPMethod.PageEnable, elapsedTime));
68
+ await (0, guard_time_execution_1.default)(async () => await Page.enable(), elapsedTime => this._checkDropOfPerformance(elapsed_upperbounds_1.CheckedCDPMethod.PageEnable, elapsedTime));
69
69
  await Network.enable({});
70
70
  await Runtime.enable();
71
71
  return client;
@@ -77,7 +77,7 @@ class BrowserClient {
77
77
  await this._setupDownloads(client);
78
78
  }
79
79
  async _setDeviceMetricsOverride(client, width, height, deviceScaleFactor, mobile) {
80
- await guard_time_execution_1.default(async () => {
80
+ await (0, guard_time_execution_1.default)(async () => {
81
81
  await client.Emulation.setDeviceMetricsOverride({
82
82
  width,
83
83
  height,
@@ -143,7 +143,7 @@ class BrowserClient {
143
143
  const client = await this.getActiveClient();
144
144
  if (client && config.emulation) {
145
145
  await this._setDeviceMetricsOverride(client, viewportSize.width, viewportSize.height, emulatedDevicePixelRatio, config.mobile);
146
- await guard_time_execution_1.default(async () => {
146
+ await (0, guard_time_execution_1.default)(async () => {
147
147
  await client.Emulation.setVisibleSize({ width: viewportSize.width, height: viewportSize.height });
148
148
  }, elapsedTime => this._checkDropOfPerformance(elapsed_upperbounds_1.CheckedCDPMethod.SetVisibleSize, elapsedTime));
149
149
  }
@@ -195,7 +195,7 @@ class BrowserClient {
195
195
  const client = await this.getActiveClient();
196
196
  if (!client) {
197
197
  // NOTE: required for https://github.com/DevExpress/testcafe/issues/6037
198
- await delay_1.default(0);
198
+ await (0, delay_1.default)(0);
199
199
  return Buffer.alloc(0);
200
200
  }
201
201
  if (fullPage) {
@@ -230,7 +230,7 @@ class BrowserClient {
230
230
  async closeBrowserChildWindow() {
231
231
  await this.setClientInactive();
232
232
  // NOTE: delay browser window closing
233
- await delay_1.default(100);
233
+ await (0, delay_1.default)(100);
234
234
  }
235
235
  async startCapturingVideo() {
236
236
  const client = await this.getActiveClient();
@@ -269,4 +269,4 @@ class BrowserClient {
269
269
  }
270
270
  }
271
271
  exports.BrowserClient = BrowserClient;
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUNwQixzRkFBbUQ7QUFDbkQsa0RBQTBCO0FBQzFCLHlFQUF1RjtBQUN2RixzR0FBOEU7QUFROUUsa0VBQXVDO0FBQ3ZDLGdFQUFvRjtBQUNwRix3R0FBOEU7QUFDOUUsMEVBQWtEO0FBS2xELE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBVSxFQUFVLEVBQUUsQ0FBQyw0REFBNEQsRUFBRSxFQUFFLENBQUM7QUFDN0csTUFBTSxhQUFhLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFM0QsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFFOUUsTUFBTSxlQUFlO0lBSWpCLFlBQW9CLE1BQWdDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUssTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7Q0FDSjtBQUVELE1BQU0sa0JBQWtCLEdBQUc7SUFDdkIsTUFBTSxFQUFTLE1BQU07SUFDckIsYUFBYSxFQUFFLENBQUM7Q0FDbkIsQ0FBQztBQU9GLE1BQWEsYUFBYTtJQVN0QixZQUFvQixXQUF3QjtRQVJwQyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztRQU0zQyxxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFHN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBSSxlQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFD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b25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCByZW1vdGVDaHJvbWUgZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2NsaWVudC1mdW5jdGlvbnMnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cbmltcG9ydCB7XG4gICAgQ29uZmlnLFxuICAgIFJ1bnRpbWVJbmZvLFxuICAgIFRvdWNoQ29uZmlnT3B0aW9ucyxcbiAgICBTaXplLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCBwcmV0dHlUaW1lIGZyb20gJ3ByZXR0eS1ocnRpbWUnO1xuaW1wb3J0IHsgQ2hlY2tlZENEUE1ldGhvZCwgRUxBUFNFRF9USU1FX1VQUEVSQk9VTkRTIH0gZnJvbSAnLi4vZWxhcHNlZC11cHBlcmJvdW5kcyc7XG5pbXBvcnQgZ3VhcmRUaW1lRXhlY3V0aW9uIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3V0aWxzL2d1YXJkLXRpbWUtZXhlY3V0aW9uJztcbmltcG9ydCBkZWxheSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi91dGlscy9kZWxheSc7XG5cbmltcG9ydCBTdGFydFNjcmVlbmNhc3RSZXF1ZXN0ID0gUHJvdG9jb2wuUGFnZS5TdGFydFNjcmVlbmNhc3RSZXF1ZXN0O1xuaW1wb3J0IFNjcmVlbmNhc3RGcmFtZUV2ZW50ID0gUHJvdG9jb2wuUGFnZS5TY3JlZW5jYXN0RnJhbWVFdmVudDtcblxuY29uc3QgREVCVUdfU0NPUEUgPSAoaWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgdGVzdGNhZmU6YnJvd3Nlcjpwcm92aWRlcjpidWlsdC1pbjpjaHJvbWU6YnJvd3Nlci1jbGllbnQ6JHtpZH1gO1xuY29uc3QgRE9XTkxPQURTX0RJUiA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICdEb3dubG9hZHMnKTtcblxuY29uc3QgZGVidWdMb2cgPSBkZWJ1ZygndGVzdGNhZmU6YnJvd3Nlcjpwcm92aWRlcjpidWlsdC1pbjpkZWRpY2F0ZWQ6Y2hyb21lJyk7XG5cbmNsYXNzIFByb3RvY29sQXBpSW5mbyB7XG4gICAgcHVibGljIGluYWN0aXZlOiBib29sZWFuO1xuICAgIHB1YmxpYyBjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpIHtcbiAgICAgICAgdGhpcy5jbGllbnQgICA9IGNsaWVudDtcbiAgICAgICAgdGhpcy5pbmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbn1cblxuY29uc3QgU0NSRUVOQ0FTVF9PUFRJT05TID0ge1xuICAgIGZvcm1hdDogICAgICAgICdqcGVnJyxcbiAgICBldmVyeU50aEZyYW1lOiAxLFxufTtcblxuaW50ZXJmYWNlIFZpZGVvRnJhbWVEYXRhIHtcbiAgICBkYXRhOiBzdHJpbmc7XG4gICAgc2Vzc2lvbklkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBCcm93c2VyQ2xpZW50IHtcbiAgICBwcml2YXRlIF9jbGllbnRzOiBEaWN0aW9uYXJ5PFByb3RvY29sQXBpSW5mbz4gPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydW50aW1lSW5mbzogUnVudGltZUluZm87XG4gICAgcHJpdmF0ZSBfcGFyZW50VGFyZ2V0PzogcmVtb3RlQ2hyb21lLlRhcmdldEluZm87XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWJ1Z0xvZ2dlcjogZGVidWcuRGVidWdnZXI7XG4gICAgcHJpdmF0ZSBfdmlkZW9GcmFtZXNCdWZmZXI6IFZpZGVvRnJhbWVEYXRhW107XG4gICAgcHJpdmF0ZSBfbGFzdEZyYW1lOiBWaWRlb0ZyYW1lRGF0YSB8IG51bGw7XG4gICAgcHJpdmF0ZSBfc2NyZWVuY2FzdEZyYW1lTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChydW50aW1lSW5mbzogUnVudGltZUluZm8pIHtcbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8gPSBydW50aW1lSW5mbztcbiAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlciAgPSBkZWJ1ZyhERUJVR19TQ09QRShydW50aW1lSW5mby5icm93c2VySWQpKTtcblxuICAgICAgICBydW50aW1lSW5mby5icm93c2VyQ2xpZW50ID0gdGhpcztcblxuICAgICAgICB0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLl9sYXN0RnJhbWUgICAgICAgICA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgX2NsaWVudEtleSAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkIHx8IHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBfY29uZmlnICgpOiBDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2dldFRhYnMgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlRhcmdldEluZm9bXT4ge1xuICAgICAgICBjb25zdCB0YWJzID0gYXdhaXQgcmVtb3RlQ2hyb21lLkxpc3QoeyBwb3J0OiB0aGlzLl9ydW50aW1lSW5mby5jZHBQb3J0IH0pO1xuXG4gICAgICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRBY3RpdmVUYWIgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlRhcmdldEluZm8+IHtcbiAgICAgICAgbGV0IHRhYnMgPSBhd2FpdCB0aGlzLl9nZXRUYWJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkKVxuICAgICAgICAgICAgdGFicyA9IHRhYnMuZmlsdGVyKHQgPT4gdC50aXRsZS5pbmNsdWRlcyh0aGlzLl9ydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZCkpO1xuXG4gICAgICAgIHJldHVybiB0YWJzWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UgKG1ldGhvZDogQ2hlY2tlZENEUE1ldGhvZCwgZWxhcHNlZFRpbWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcihgQ0RQIG1ldGhvZCAnJHttZXRob2R9JyB0b29rICR7cHJldHR5VGltZShlbGFwc2VkVGltZSl9YCk7XG5cbiAgICAgICAgY29uc3QgWyBlbGFwc2VkU2Vjb25kcyBdID0gZWxhcHNlZFRpbWU7XG5cbiAgICAgICAgaWYgKGVsYXBzZWRTZWNvbmRzID4gRUxBUFNFRF9USU1FX1VQUEVSQk9VTkRTW21ldGhvZF0pIHtcbiAgICAgICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLnByb3ZpZGVyTWV0aG9kcy5yZXBvcnRXYXJuaW5nKFxuICAgICAgICAgICAgICAgIFdBUk5JTkdfTUVTU0FHRS5icm93c2VyUHJvdmlkZXJEcm9wT2ZQZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLl9ydW50aW1lSW5mby5icm93c2VyTmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NyZWF0ZUNsaWVudCAoKTogUHJvbWlzZTxyZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGk+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCB0aGlzLl9nZXRBY3RpdmVUYWIoKTtcbiAgICAgICAgY29uc3QgY2xpZW50ICAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCByZW1vdGVDaHJvbWUoeyB0YXJnZXQsIHBvcnQ6IHRoaXMuX3J1bnRpbWVJbmZvLmNkcFBvcnQgfSk7XG4gICAgICAgIGNvbnN0IHsgUGFnZSwgTmV0d29yaywgUnVudGltZSB9ID0gY2xpZW50O1xuXG4gICAgICAgIHRoaXMuX2NsaWVudHNbdGhpcy5fY2xpZW50S2V5XSA9IG5ldyBQcm90b2NvbEFwaUluZm8oY2xpZW50KTtcblxuICAgICAgICBhd2FpdCBndWFyZFRpbWVFeGVjdXRpb24oXG4gICAgICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCBQYWdlLmVuYWJsZSgpLFxuICAgICAgICAgICAgZWxhcHNlZFRpbWUgPT4gdGhpcy5fY2hlY2tEcm9wT2ZQZXJmb3JtYW5jZShDaGVja2VkQ0RQTWV0aG9kLlBhZ2VFbmFibGUsIGVsYXBzZWRUaW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIGF3YWl0IE5ldHdvcmsuZW5hYmxlKHt9KTtcbiAgICAgICAgYXdhaXQgUnVudGltZS5lbmFibGUoKTtcblxuICAgICAgICByZXR1cm4gY2xpZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwQ2xpZW50IChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmVtdWxhdGlvbilcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEVtdWxhdGlvbihjbGllbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuaGVhZGxlc3MpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXR1cERvd25sb2FkcyhjbGllbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldERldmljZU1ldHJpY3NPdmVycmlkZSAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGksIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBkZXZpY2VTY2FsZUZhY3RvcjogbnVtYmVyLCBtb2JpbGU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5FbXVsYXRpb24uc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIG1vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBmaXRXaW5kb3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5TZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUsIGVsYXBzZWRUaW1lKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldFVzZXJBZ2VudEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy51c2VyQWdlbnQgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCBjbGllbnQuTmV0d29yay5zZXRVc2VyQWdlbnRPdmVycmlkZSh7IHVzZXJBZ2VudDogdGhpcy5fY29uZmlnLnVzZXJBZ2VudCB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRUb3VjaEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy50b3VjaCA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHRvdWNoQ29uZmlnOiBUb3VjaENvbmZpZ09wdGlvbnMgPSB7XG4gICAgICAgICAgICBlbmFibGVkOiAgICAgICAgdGhpcy5fY29uZmlnLnRvdWNoLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjogIHRoaXMuX2NvbmZpZy5tb2JpbGUgPyAnbW9iaWxlJyA6ICdkZXNrdG9wJyxcbiAgICAgICAgICAgIG1heFRvdWNoUG9pbnRzOiAxLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChjbGllbnQuRW11bGF0aW9uLnNldEVtaXRUb3VjaEV2ZW50c0Zvck1vdXNlKVxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRFbWl0VG91Y2hFdmVudHNGb3JNb3VzZSh0b3VjaENvbmZpZyk7XG5cbiAgICAgICAgaWYgKGNsaWVudC5FbXVsYXRpb24uc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkKVxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRUb3VjaEVtdWxhdGlvbkVuYWJsZWQodG91Y2hDb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fc2V0VXNlckFnZW50RW11bGF0aW9uKGNsaWVudCk7XG4gICAgICAgIGF3YWl0IHRoaXMuX3NldFRvdWNoRW11bGF0aW9uKGNsaWVudCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coe1xuICAgICAgICAgICAgd2lkdGg6ICB0aGlzLl9jb25maWcud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuX2NvbmZpZy5oZWlnaHQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwRG93bmxvYWRzIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zZXREb3dubG9hZEJlaGF2aW9yKHtcbiAgICAgICAgICAgIGJlaGF2aW9yOiAgICAgJ2FsbG93JyxcbiAgICAgICAgICAgIGRvd25sb2FkUGF0aDogRE9XTkxPQURTX0RJUixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZXZhbHVhdGVSdW50aW1lIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSwgZXhwcmVzc2lvbjogc3RyaW5nLCByZXR1cm5CeVZhbHVlID0gZmFsc2UpOiBQcm9taXNlPFByb3RvY29sLlJ1bnRpbWUuRXZhbHVhdGVSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gY2xpZW50LlJ1bnRpbWUuZXZhbHVhdGUoeyBleHByZXNzaW9uLCByZXR1cm5CeVZhbHVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NhbGN1bGF0ZUVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbyAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFjbGllbnQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGV2aWNlUGl4ZWxSYXRpb1F1ZXJ5UmVzdWx0ID0gYXdhaXQgY2xpZW50LlJ1bnRpbWUuZXZhbHVhdGUoeyBleHByZXNzaW9uOiAnd2luZG93LmRldmljZVBpeGVsUmF0aW8nIH0pO1xuXG4gICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLm9yaWdpbmFsRGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW9RdWVyeVJlc3VsdC5yZXN1bHQudmFsdWU7XG4gICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLmVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbyA9IHRoaXMuX2NvbmZpZy5zY2FsZUZhY3RvciB8fCB0aGlzLl9ydW50aW1lSW5mby5vcmlnaW5hbERldmljZVBpeGVsUmF0aW87XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc2l6ZVdpbmRvdyAobmV3RGltZW5zaW9uczogU2l6ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJJZCwgY29uZmlnLCB2aWV3cG9ydFNpemUsIHByb3ZpZGVyTWV0aG9kcywgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvIH0gPSB0aGlzLl9ydW50aW1lSW5mbztcblxuICAgICAgICBjb25zdCBjdXJyZW50V2lkdGggPSB2aWV3cG9ydFNpemUud2lkdGg7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB2aWV3cG9ydFNpemUuaGVpZ2h0O1xuICAgICAgICBjb25zdCBuZXdXaWR0aCA9IG5ld0RpbWVuc2lvbnMud2lkdGggfHwgY3VycmVudFdpZHRoO1xuICAgICAgICBjb25zdCBuZXdIZWlnaHQgPSBuZXdEaW1lbnNpb25zLmhlaWdodCB8fCBjdXJyZW50SGVpZ2h0O1xuXG4gICAgICAgIGlmICghY29uZmlnLmhlYWRsZXNzKVxuICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXJNZXRob2RzLnJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdyhicm93c2VySWQsIG5ld1dpZHRoLCBuZXdIZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCk7XG5cbiAgICAgICAgdmlld3BvcnRTaXplLndpZHRoID0gbmV3V2lkdGg7XG4gICAgICAgIHZpZXdwb3J0U2l6ZS5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoY2xpZW50ICYmIGNvbmZpZy5lbXVsYXRpb24pIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShjbGllbnQsIHZpZXdwb3J0U2l6ZS53aWR0aCwgdmlld3BvcnRTaXplLmhlaWdodCwgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvLCBjb25maWcubW9iaWxlKTtcblxuICAgICAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRWaXNpYmxlU2l6ZSh7IHdpZHRoOiB2aWV3cG9ydFNpemUud2lkdGgsIGhlaWdodDogdmlld3BvcnRTaXplLmhlaWdodCB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5TZXRWaXNpYmxlU2l6ZSwgZWxhcHNlZFRpbWUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzSGVhZGxlc3NUYWIgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9wYXJlbnRUYXJnZXQgJiYgdGhpcy5fY29uZmlnLmhlYWRsZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDbGllbnRJbmFjdGl2ZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIE5PVEU6IGVuc3VyZSBjbGllbnQgZXhpc3RzXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5fY2xpZW50c1t0aGlzLl9jbGllbnRLZXldO1xuXG4gICAgICAgIGlmIChjbGllbnQpXG4gICAgICAgICAgICBjbGllbnQuaW5hY3RpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBY3RpdmVDbGllbnQgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlByb3RvY29sQXBpIHwgdm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV0pXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY3JlYXRlQ2xpZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZGVidWdMb2coZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV07XG5cbiAgICAgICAgaWYgKGluZm8uaW5hY3RpdmUpXG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgICAgIHJldHVybiBpbmZvLmNsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdCAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gYXdhaXQgdGhpcy5fZ2V0VGFicygpO1xuXG4gICAgICAgICAgICB0aGlzLl9wYXJlbnRUYXJnZXQgPSB0YWJzLmZpbmQodCA9PiB0LnVybC5pbmNsdWRlcyh0aGlzLl9ydW50aW1lSW5mby5icm93c2VySWQpKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgICAgICBpZiAoY2xpZW50KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY2FsY3VsYXRlRW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvKGNsaWVudCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBDbGllbnQoY2xpZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFNjcmVlbnNob3REYXRhIChmdWxsUGFnZT86IGJvb2xlYW4pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICBsZXQgdmlld3BvcnRXaWR0aCAgPSAwO1xuICAgICAgICBsZXQgdmlld3BvcnRIZWlnaHQgPSAwO1xuXG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBlbXVsYXRlZERldmljZVBpeGVsUmF0aW8gfSA9IHRoaXMuX3J1bnRpbWVJbmZvO1xuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IHJlcXVpcmVkIGZvciBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy90ZXN0Y2FmZS9pc3N1ZXMvNjAzN1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkoMCk7XG5cbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnVsbFBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udGVudFNpemUsIHZpc3VhbFZpZXdwb3J0IH0gPSBhd2FpdCBjbGllbnQuUGFnZS5nZXRMYXlvdXRNZXRyaWNzKCk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShcbiAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgTWF0aC5jZWlsKGNvbnRlbnRTaXplLndpZHRoKSxcbiAgICAgICAgICAgICAgICBNYXRoLmNlaWwoY29udGVudFNpemUuaGVpZ2h0KSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZERldmljZVBpeGVsUmF0aW8sXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vYmlsZSk7XG5cbiAgICAgICAgICAgIHZpZXdwb3J0V2lkdGggPSB2aXN1YWxWaWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2NyZWVuc2hvdERhdGEgPSBhd2FpdCBjbGllbnQuUGFnZS5jYXB0dXJlU2NyZWVuc2hvdCh7fSk7XG5cbiAgICAgICAgaWYgKGZ1bGxQYWdlKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmVtdWxhdGlvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWcud2lkdGggfHwgdmlld3BvcnRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmhlaWdodCB8fCB2aWV3cG9ydEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvLFxuICAgICAgICAgICAgICAgICAgICBjb25maWcubW9iaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQuRW11bGF0aW9uLmNsZWFyRGV2aWNlTWV0cmljc092ZXJyaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oc2NyZWVuc2hvdERhdGEuZGF0YSwgJ2Jhc2U2NCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjbG9zZVRhYiAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICBhd2FpdCByZW1vdGVDaHJvbWUuQ2xvc2UoeyBpZDogdGhpcy5fcGFyZW50VGFyZ2V0LmlkLCBwb3J0OiB0aGlzLl9ydW50aW1lSW5mby5jZHBQb3J0IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVNb2JpbGVWaWV3cG9ydFNpemUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdCA9IGF3YWl0IHRoaXMuX2V2YWx1YXRlUnVudGltZShjbGllbnQsIGAoJHtHRVRfV0lORE9XX0RJTUVOU0lPTlNfSU5GT19TQ1JJUFR9KSgpYCwgdHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgd2luZG93RGltZW5zaW9ucyA9IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdC5yZXN1bHQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8udmlld3BvcnRTaXplLndpZHRoID0gd2luZG93RGltZW5zaW9ucy5vdXRlcldpZHRoO1xuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby52aWV3cG9ydFNpemUuaGVpZ2h0ID0gd2luZG93RGltZW5zaW9ucy5vdXRlckhlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2xvc2VCcm93c2VyQ2hpbGRXaW5kb3cgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnNldENsaWVudEluYWN0aXZlKCk7XG5cbiAgICAgICAgLy8gTk9URTogZGVsYXkgYnJvd3NlciB3aW5kb3cgY2xvc2luZ1xuICAgICAgICBhd2FpdCBkZWxheSgxMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydENhcHR1cmluZ1ZpZGVvICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX3NjcmVlbmNhc3RGcmFtZUxpc3RlbmVyQXR0YWNoZWQpIHtcbiAgICAgICAgICAgIGNsaWVudC5QYWdlLm9uKCdzY3JlZW5jYXN0RnJhbWUnLCAoZXZlbnQ6IFNjcmVlbmNhc3RGcmFtZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6ICAgICAgZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkOiBldmVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuY2FzdEZyYW1lTGlzdGVuZXJBdHRhY2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zdGFydFNjcmVlbmNhc3QoU0NSRUVOQ0FTVF9PUFRJT05TIGFzIFN0YXJ0U2NyZWVuY2FzdFJlcXVlc3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdG9wQ2FwdHVyaW5nVmlkZW8gKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnN0b3BTY3JlZW5jYXN0KCk7XG5cbiAgICAgICAgdGhpcy5fbGFzdEZyYW1lICAgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlciA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRWaWRlb0ZyYW1lRGF0YSAoKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWaWRlb0ZyYW1lID0gdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIuc2hpZnQoKSB8fCB0aGlzLl9sYXN0RnJhbWU7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50VmlkZW9GcmFtZSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlci5sZW5ndGggPT09IDApXG4gICAgICAgICAgICB0aGlzLl9sYXN0RnJhbWUgPSBjdXJyZW50VmlkZW9GcmFtZTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgYXdhaXQgY2xpZW50LlBhZ2Uuc2NyZWVuY2FzdEZyYW1lQWNrKHsgc2Vzc2lvbklkOiBjdXJyZW50VmlkZW9GcmFtZS5zZXNzaW9uSWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGN1cnJlbnRWaWRlb0ZyYW1lLmRhdGEsICdiYXNlNjQnKTtcbiAgICB9XG59XG4iXX0=
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUNwQixzRkFBbUQ7QUFDbkQsa0RBQTBCO0FBQzFCLHlFQUF1RjtBQUN2RixzR0FBOEU7QUFROUUsa0VBQXVDO0FBQ3ZDLGdFQUFvRjtBQUNwRix3R0FBOEU7QUFDOUUsMEVBQWtEO0FBS2xELE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBVSxFQUFVLEVBQUUsQ0FBQyw0REFBNEQsRUFBRSxFQUFFLENBQUM7QUFDN0csTUFBTSxhQUFhLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFM0QsTUFBTSxRQUFRLEdBQUcsSUFBQSxlQUFLLEVBQUMscURBQXFELENBQUMsQ0FBQztBQUU5RSxNQUFNLGVBQWU7SUFJakIsWUFBb0IsTUFBZ0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBSyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztDQUNKO0FBRUQsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixNQUFNLEVBQVMsTUFBTTtJQUNyQixhQUFhLEVBQUUsQ0FBQztDQUNuQixDQUFDO0FBT0YsTUFBYSxhQUFhO0lBU3RCLFlBQW9CLFdBQXdCO1FBUnBDLGFBQVEsR0FBZ0MsRUFBRSxDQUFDO1FBTTNDLHFDQUFnQyxHQUFHLEtBQUssQ0FBQztRQUc3QyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFJLElBQUEsZUFBSyxFQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFD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cldELHNDQXFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCByZW1vdGVDaHJvbWUgZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2NsaWVudC1mdW5jdGlvbnMnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cbmltcG9ydCB7XG4gICAgQ29uZmlnLFxuICAgIFJ1bnRpbWVJbmZvLFxuICAgIFRvdWNoQ29uZmlnT3B0aW9ucyxcbiAgICBTaXplLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCBwcmV0dHlUaW1lIGZyb20gJ3ByZXR0eS1ocnRpbWUnO1xuaW1wb3J0IHsgQ2hlY2tlZENEUE1ldGhvZCwgRUxBUFNFRF9USU1FX1VQUEVSQk9VTkRTIH0gZnJvbSAnLi4vZWxhcHNlZC11cHBlcmJvdW5kcyc7XG5pbXBvcnQgZ3VhcmRUaW1lRXhlY3V0aW9uIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3V0aWxzL2d1YXJkLXRpbWUtZXhlY3V0aW9uJztcbmltcG9ydCBkZWxheSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi91dGlscy9kZWxheSc7XG5cbmltcG9ydCBTdGFydFNjcmVlbmNhc3RSZXF1ZXN0ID0gUHJvdG9jb2wuUGFnZS5TdGFydFNjcmVlbmNhc3RSZXF1ZXN0O1xuaW1wb3J0IFNjcmVlbmNhc3RGcmFtZUV2ZW50ID0gUHJvdG9jb2wuUGFnZS5TY3JlZW5jYXN0RnJhbWVFdmVudDtcblxuY29uc3QgREVCVUdfU0NPUEUgPSAoaWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgdGVzdGNhZmU6YnJvd3Nlcjpwcm92aWRlcjpidWlsdC1pbjpjaHJvbWU6YnJvd3Nlci1jbGllbnQ6JHtpZH1gO1xuY29uc3QgRE9XTkxPQURTX0RJUiA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICdEb3dubG9hZHMnKTtcblxuY29uc3QgZGVidWdMb2cgPSBkZWJ1ZygndGVzdGNhZmU6YnJvd3Nlcjpwcm92aWRlcjpidWlsdC1pbjpkZWRpY2F0ZWQ6Y2hyb21lJyk7XG5cbmNsYXNzIFByb3RvY29sQXBpSW5mbyB7XG4gICAgcHVibGljIGluYWN0aXZlOiBib29sZWFuO1xuICAgIHB1YmxpYyBjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpIHtcbiAgICAgICAgdGhpcy5jbGllbnQgICA9IGNsaWVudDtcbiAgICAgICAgdGhpcy5pbmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbn1cblxuY29uc3QgU0NSRUVOQ0FTVF9PUFRJT05TID0ge1xuICAgIGZvcm1hdDogICAgICAgICdqcGVnJyxcbiAgICBldmVyeU50aEZyYW1lOiAxLFxufTtcblxuaW50ZXJmYWNlIFZpZGVvRnJhbWVEYXRhIHtcbiAgICBkYXRhOiBzdHJpbmc7XG4gICAgc2Vzc2lvbklkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBCcm93c2VyQ2xpZW50IHtcbiAgICBwcml2YXRlIF9jbGllbnRzOiBEaWN0aW9uYXJ5PFByb3RvY29sQXBpSW5mbz4gPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydW50aW1lSW5mbzogUnVudGltZUluZm87XG4gICAgcHJpdmF0ZSBfcGFyZW50VGFyZ2V0PzogcmVtb3RlQ2hyb21lLlRhcmdldEluZm87XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWJ1Z0xvZ2dlcjogZGVidWcuRGVidWdnZXI7XG4gICAgcHJpdmF0ZSBfdmlkZW9GcmFtZXNCdWZmZXI6IFZpZGVvRnJhbWVEYXRhW107XG4gICAgcHJpdmF0ZSBfbGFzdEZyYW1lOiBWaWRlb0ZyYW1lRGF0YSB8IG51bGw7XG4gICAgcHJpdmF0ZSBfc2NyZWVuY2FzdEZyYW1lTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChydW50aW1lSW5mbzogUnVudGltZUluZm8pIHtcbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8gPSBydW50aW1lSW5mbztcbiAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlciAgPSBkZWJ1ZyhERUJVR19TQ09QRShydW50aW1lSW5mby5icm93c2VySWQpKTtcblxuICAgICAgICBydW50aW1lSW5mby5icm93c2VyQ2xpZW50ID0gdGhpcztcblxuICAgICAgICB0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLl9sYXN0RnJhbWUgICAgICAgICA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgX2NsaWVudEtleSAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkIHx8IHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBfY29uZmlnICgpOiBDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2dldFRhYnMgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlRhcmdldEluZm9bXT4ge1xuICAgICAgICBjb25zdCB0YWJzID0gYXdhaXQgcmVtb3RlQ2hyb21lLkxpc3QoeyBwb3J0OiB0aGlzLl9ydW50aW1lSW5mby5jZHBQb3J0IH0pO1xuXG4gICAgICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRBY3RpdmVUYWIgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlRhcmdldEluZm8+IHtcbiAgICAgICAgbGV0IHRhYnMgPSBhd2FpdCB0aGlzLl9nZXRUYWJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkKVxuICAgICAgICAgICAgdGFicyA9IHRhYnMuZmlsdGVyKHQgPT4gdC50aXRsZS5pbmNsdWRlcyh0aGlzLl9ydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZCkpO1xuXG4gICAgICAgIHJldHVybiB0YWJzWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UgKG1ldGhvZDogQ2hlY2tlZENEUE1ldGhvZCwgZWxhcHNlZFRpbWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcihgQ0RQIG1ldGhvZCAnJHttZXRob2R9JyB0b29rICR7cHJldHR5VGltZShlbGFwc2VkVGltZSl9YCk7XG5cbiAgICAgICAgY29uc3QgWyBlbGFwc2VkU2Vjb25kcyBdID0gZWxhcHNlZFRpbWU7XG5cbiAgICAgICAgaWYgKGVsYXBzZWRTZWNvbmRzID4gRUxBUFNFRF9USU1FX1VQUEVSQk9VTkRTW21ldGhvZF0pIHtcbiAgICAgICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLnByb3ZpZGVyTWV0aG9kcy5yZXBvcnRXYXJuaW5nKFxuICAgICAgICAgICAgICAgIFdBUk5JTkdfTUVTU0FHRS5icm93c2VyUHJvdmlkZXJEcm9wT2ZQZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLl9ydW50aW1lSW5mby5icm93c2VyTmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NyZWF0ZUNsaWVudCAoKTogUHJvbWlzZTxyZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGk+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCB0aGlzLl9nZXRBY3RpdmVUYWIoKTtcbiAgICAgICAgY29uc3QgY2xpZW50ICAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCByZW1vdGVDaHJvbWUoeyB0YXJnZXQsIHBvcnQ6IHRoaXMuX3J1bnRpbWVJbmZvLmNkcFBvcnQgfSk7XG4gICAgICAgIGNvbnN0IHsgUGFnZSwgTmV0d29yaywgUnVudGltZSB9ID0gY2xpZW50O1xuXG4gICAgICAgIHRoaXMuX2NsaWVudHNbdGhpcy5fY2xpZW50S2V5XSA9IG5ldyBQcm90b2NvbEFwaUluZm8oY2xpZW50KTtcblxuICAgICAgICBhd2FpdCBndWFyZFRpbWVFeGVjdXRpb24oXG4gICAgICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCBQYWdlLmVuYWJsZSgpLFxuICAgICAgICAgICAgZWxhcHNlZFRpbWUgPT4gdGhpcy5fY2hlY2tEcm9wT2ZQZXJmb3JtYW5jZShDaGVja2VkQ0RQTWV0aG9kLlBhZ2VFbmFibGUsIGVsYXBzZWRUaW1lKVxuICAgICAgICApO1xuXG4gICAgICAgIGF3YWl0IE5ldHdvcmsuZW5hYmxlKHt9KTtcbiAgICAgICAgYXdhaXQgUnVudGltZS5lbmFibGUoKTtcblxuICAgICAgICByZXR1cm4gY2xpZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwQ2xpZW50IChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmVtdWxhdGlvbilcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEVtdWxhdGlvbihjbGllbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuaGVhZGxlc3MpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXR1cERvd25sb2FkcyhjbGllbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldERldmljZU1ldHJpY3NPdmVycmlkZSAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGksIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBkZXZpY2VTY2FsZUZhY3RvcjogbnVtYmVyLCBtb2JpbGU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5FbXVsYXRpb24uc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIG1vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBmaXRXaW5kb3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5TZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUsIGVsYXBzZWRUaW1lKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldFVzZXJBZ2VudEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy51c2VyQWdlbnQgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCBjbGllbnQuTmV0d29yay5zZXRVc2VyQWdlbnRPdmVycmlkZSh7IHVzZXJBZ2VudDogdGhpcy5fY29uZmlnLnVzZXJBZ2VudCB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRUb3VjaEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy50b3VjaCA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHRvdWNoQ29uZmlnOiBUb3VjaENvbmZpZ09wdGlvbnMgPSB7XG4gICAgICAgICAgICBlbmFibGVkOiAgICAgICAgdGhpcy5fY29uZmlnLnRvdWNoLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjogIHRoaXMuX2NvbmZpZy5tb2JpbGUgPyAnbW9iaWxlJyA6ICdkZXNrdG9wJyxcbiAgICAgICAgICAgIG1heFRvdWNoUG9pbnRzOiAxLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChjbGllbnQuRW11bGF0aW9uLnNldEVtaXRUb3VjaEV2ZW50c0Zvck1vdXNlKVxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRFbWl0VG91Y2hFdmVudHNGb3JNb3VzZSh0b3VjaENvbmZpZyk7XG5cbiAgICAgICAgaWYgKGNsaWVudC5FbXVsYXRpb24uc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkKVxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRUb3VjaEVtdWxhdGlvbkVuYWJsZWQodG91Y2hDb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldEVtdWxhdGlvbiAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fc2V0VXNlckFnZW50RW11bGF0aW9uKGNsaWVudCk7XG4gICAgICAgIGF3YWl0IHRoaXMuX3NldFRvdWNoRW11bGF0aW9uKGNsaWVudCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coe1xuICAgICAgICAgICAgd2lkdGg6ICB0aGlzLl9jb25maWcud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuX2NvbmZpZy5oZWlnaHQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwRG93bmxvYWRzIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zZXREb3dubG9hZEJlaGF2aW9yKHtcbiAgICAgICAgICAgIGJlaGF2aW9yOiAgICAgJ2FsbG93JyxcbiAgICAgICAgICAgIGRvd25sb2FkUGF0aDogRE9XTkxPQURTX0RJUixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZXZhbHVhdGVSdW50aW1lIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSwgZXhwcmVzc2lvbjogc3RyaW5nLCByZXR1cm5CeVZhbHVlID0gZmFsc2UpOiBQcm9taXNlPFByb3RvY29sLlJ1bnRpbWUuRXZhbHVhdGVSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gY2xpZW50LlJ1bnRpbWUuZXZhbHVhdGUoeyBleHByZXNzaW9uLCByZXR1cm5CeVZhbHVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NhbGN1bGF0ZUVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbyAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFjbGllbnQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGV2aWNlUGl4ZWxSYXRpb1F1ZXJ5UmVzdWx0ID0gYXdhaXQgY2xpZW50LlJ1bnRpbWUuZXZhbHVhdGUoeyBleHByZXNzaW9uOiAnd2luZG93LmRldmljZVBpeGVsUmF0aW8nIH0pO1xuXG4gICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLm9yaWdpbmFsRGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW9RdWVyeVJlc3VsdC5yZXN1bHQudmFsdWU7XG4gICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLmVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbyA9IHRoaXMuX2NvbmZpZy5zY2FsZUZhY3RvciB8fCB0aGlzLl9ydW50aW1lSW5mby5vcmlnaW5hbERldmljZVBpeGVsUmF0aW87XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc2l6ZVdpbmRvdyAobmV3RGltZW5zaW9uczogU2l6ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJJZCwgY29uZmlnLCB2aWV3cG9ydFNpemUsIHByb3ZpZGVyTWV0aG9kcywgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvIH0gPSB0aGlzLl9ydW50aW1lSW5mbztcblxuICAgICAgICBjb25zdCBjdXJyZW50V2lkdGggPSB2aWV3cG9ydFNpemUud2lkdGg7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB2aWV3cG9ydFNpemUuaGVpZ2h0O1xuICAgICAgICBjb25zdCBuZXdXaWR0aCA9IG5ld0RpbWVuc2lvbnMud2lkdGggfHwgY3VycmVudFdpZHRoO1xuICAgICAgICBjb25zdCBuZXdIZWlnaHQgPSBuZXdEaW1lbnNpb25zLmhlaWdodCB8fCBjdXJyZW50SGVpZ2h0O1xuXG4gICAgICAgIGlmICghY29uZmlnLmhlYWRsZXNzKVxuICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXJNZXRob2RzLnJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdyhicm93c2VySWQsIG5ld1dpZHRoLCBuZXdIZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCk7XG5cbiAgICAgICAgdmlld3BvcnRTaXplLndpZHRoID0gbmV3V2lkdGg7XG4gICAgICAgIHZpZXdwb3J0U2l6ZS5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoY2xpZW50ICYmIGNvbmZpZy5lbXVsYXRpb24pIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShjbGllbnQsIHZpZXdwb3J0U2l6ZS53aWR0aCwgdmlld3BvcnRTaXplLmhlaWdodCwgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvLCBjb25maWcubW9iaWxlKTtcblxuICAgICAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRWaXNpYmxlU2l6ZSh7IHdpZHRoOiB2aWV3cG9ydFNpemUud2lkdGgsIGhlaWdodDogdmlld3BvcnRTaXplLmhlaWdodCB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5TZXRWaXNpYmxlU2l6ZSwgZWxhcHNlZFRpbWUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzSGVhZGxlc3NUYWIgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9wYXJlbnRUYXJnZXQgJiYgdGhpcy5fY29uZmlnLmhlYWRsZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDbGllbnRJbmFjdGl2ZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIE5PVEU6IGVuc3VyZSBjbGllbnQgZXhpc3RzXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5fY2xpZW50c1t0aGlzLl9jbGllbnRLZXldO1xuXG4gICAgICAgIGlmIChjbGllbnQpXG4gICAgICAgICAgICBjbGllbnQuaW5hY3RpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBY3RpdmVDbGllbnQgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlByb3RvY29sQXBpIHwgdm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV0pXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY3JlYXRlQ2xpZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZGVidWdMb2coZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV07XG5cbiAgICAgICAgaWYgKGluZm8uaW5hY3RpdmUpXG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgICAgIHJldHVybiBpbmZvLmNsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdCAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gYXdhaXQgdGhpcy5fZ2V0VGFicygpO1xuXG4gICAgICAgICAgICB0aGlzLl9wYXJlbnRUYXJnZXQgPSB0YWJzLmZpbmQodCA9PiB0LnVybC5pbmNsdWRlcyh0aGlzLl9ydW50aW1lSW5mby5icm93c2VySWQpKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgICAgICBpZiAoY2xpZW50KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY2FsY3VsYXRlRW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvKGNsaWVudCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBDbGllbnQoY2xpZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFNjcmVlbnNob3REYXRhIChmdWxsUGFnZT86IGJvb2xlYW4pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICBsZXQgdmlld3BvcnRXaWR0aCAgPSAwO1xuICAgICAgICBsZXQgdmlld3BvcnRIZWlnaHQgPSAwO1xuXG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBlbXVsYXRlZERldmljZVBpeGVsUmF0aW8gfSA9IHRoaXMuX3J1bnRpbWVJbmZvO1xuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IHJlcXVpcmVkIGZvciBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy90ZXN0Y2FmZS9pc3N1ZXMvNjAzN1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkoMCk7XG5cbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnVsbFBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udGVudFNpemUsIHZpc3VhbFZpZXdwb3J0IH0gPSBhd2FpdCBjbGllbnQuUGFnZS5nZXRMYXlvdXRNZXRyaWNzKCk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShcbiAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgTWF0aC5jZWlsKGNvbnRlbnRTaXplLndpZHRoKSxcbiAgICAgICAgICAgICAgICBNYXRoLmNlaWwoY29udGVudFNpemUuaGVpZ2h0KSxcbiAgICAgICAgICAgICAgICBlbXVsYXRlZERldmljZVBpeGVsUmF0aW8sXG4gICAgICAgICAgICAgICAgY29uZmlnLm1vYmlsZSk7XG5cbiAgICAgICAgICAgIHZpZXdwb3J0V2lkdGggPSB2aXN1YWxWaWV3cG9ydC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2NyZWVuc2hvdERhdGEgPSBhd2FpdCBjbGllbnQuUGFnZS5jYXB0dXJlU2NyZWVuc2hvdCh7fSk7XG5cbiAgICAgICAgaWYgKGZ1bGxQYWdlKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmVtdWxhdGlvbikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWcud2lkdGggfHwgdmlld3BvcnRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmhlaWdodCB8fCB2aWV3cG9ydEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvLFxuICAgICAgICAgICAgICAgICAgICBjb25maWcubW9iaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQuRW11bGF0aW9uLmNsZWFyRGV2aWNlTWV0cmljc092ZXJyaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oc2NyZWVuc2hvdERhdGEuZGF0YSwgJ2Jhc2U2NCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjbG9zZVRhYiAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICBhd2FpdCByZW1vdGVDaHJvbWUuQ2xvc2UoeyBpZDogdGhpcy5fcGFyZW50VGFyZ2V0LmlkLCBwb3J0OiB0aGlzLl9ydW50aW1lSW5mby5jZHBQb3J0IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVNb2JpbGVWaWV3cG9ydFNpemUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdCA9IGF3YWl0IHRoaXMuX2V2YWx1YXRlUnVudGltZShjbGllbnQsIGAoJHtHRVRfV0lORE9XX0RJTUVOU0lPTlNfSU5GT19TQ1JJUFR9KSgpYCwgdHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgd2luZG93RGltZW5zaW9ucyA9IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdC5yZXN1bHQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8udmlld3BvcnRTaXplLndpZHRoID0gd2luZG93RGltZW5zaW9ucy5vdXRlcldpZHRoO1xuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby52aWV3cG9ydFNpemUuaGVpZ2h0ID0gd2luZG93RGltZW5zaW9ucy5vdXRlckhlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2xvc2VCcm93c2VyQ2hpbGRXaW5kb3cgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnNldENsaWVudEluYWN0aXZlKCk7XG5cbiAgICAgICAgLy8gTk9URTogZGVsYXkgYnJvd3NlciB3aW5kb3cgY2xvc2luZ1xuICAgICAgICBhd2FpdCBkZWxheSgxMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydENhcHR1cmluZ1ZpZGVvICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX3NjcmVlbmNhc3RGcmFtZUxpc3RlbmVyQXR0YWNoZWQpIHtcbiAgICAgICAgICAgIGNsaWVudC5QYWdlLm9uKCdzY3JlZW5jYXN0RnJhbWUnLCAoZXZlbnQ6IFNjcmVlbmNhc3RGcmFtZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6ICAgICAgZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkOiBldmVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuY2FzdEZyYW1lTGlzdGVuZXJBdHRhY2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zdGFydFNjcmVlbmNhc3QoU0NSRUVOQ0FTVF9PUFRJT05TIGFzIFN0YXJ0U2NyZWVuY2FzdFJlcXVlc3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdG9wQ2FwdHVyaW5nVmlkZW8gKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnN0b3BTY3JlZW5jYXN0KCk7XG5cbiAgICAgICAgdGhpcy5fbGFzdEZyYW1lICAgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlciA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRWaWRlb0ZyYW1lRGF0YSAoKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWaWRlb0ZyYW1lID0gdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIuc2hpZnQoKSB8fCB0aGlzLl9sYXN0RnJhbWU7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50VmlkZW9GcmFtZSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlci5sZW5ndGggPT09IDApXG4gICAgICAgICAgICB0aGlzLl9sYXN0RnJhbWUgPSBjdXJyZW50VmlkZW9GcmFtZTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgYXdhaXQgY2xpZW50LlBhZ2Uuc2NyZWVuY2FzdEZyYW1lQWNrKHsgc2Vzc2lvbklkOiBjdXJyZW50VmlkZW9GcmFtZS5zZXNzaW9uSWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGN1cnJlbnRWaWRlb0ZyYW1lLmRhdGEsICdiYXNlNjQnKTtcbiAgICB9XG59XG4iXX0=
@@ -16,15 +16,15 @@ function parseUserArgs(userArgs) {
16
16
  const splittedArgs = userArgs.split(' ').filter(arg => !!arg);
17
17
  splittedArgs.forEach(arg => {
18
18
  const keyValuePair = arg.split('=');
19
- const key = lodash_1.camelCase(keyValuePair[0]);
19
+ const key = (0, lodash_1.camelCase)(keyValuePair[0]);
20
20
  parsedArgs[key] = parsedArgs[key] !== void 0;
21
21
  });
22
22
  return parsedArgs;
23
23
  }
24
24
  function parseModes(modesStr, userArgs) {
25
- const parsed = argument_parsing_1.splitEscaped(modesStr, ':');
26
- const path = argument_parsing_1.getPathFromParsedModes(parsed, AVAILABLE_MODES);
27
- const detectedModes = argument_parsing_1.getModes(parsed, AVAILABLE_MODES);
25
+ const parsed = (0, argument_parsing_1.splitEscaped)(modesStr, ':');
26
+ const path = (0, argument_parsing_1.getPathFromParsedModes)(parsed, AVAILABLE_MODES);
27
+ const detectedModes = (0, argument_parsing_1.getModes)(parsed, AVAILABLE_MODES);
28
28
  let optionsString = '';
29
29
  if (parsed.length)
30
30
  optionsString = parsed.shift();
@@ -69,33 +69,33 @@ function getDeviceBasedOptions(deviceName, orientation) {
69
69
  };
70
70
  }
71
71
  function parseOptions(str, useDefaultDimensions) {
72
- const parsed = argument_parsing_1.splitEscaped(str, ';');
72
+ const parsed = (0, argument_parsing_1.splitEscaped)(str, ';');
73
73
  const baseOptions = {
74
74
  width: useDefaultDimensions ? HEADLESS_DEFAULT_WIDTH : 0,
75
75
  height: useDefaultDimensions ? HEADLESS_DEFAULT_HEIGHT : 0,
76
76
  scaleFactor: 0,
77
77
  mobile: false,
78
- cdpPort: argument_parsing_1.findMatch(parsed, /^cdpPort=(.*)/),
78
+ cdpPort: (0, argument_parsing_1.findMatch)(parsed, /^cdpPort=(.*)/),
79
79
  };
80
- const deviceName = argument_parsing_1.findMatch(parsed, /^device=(.*)/);
81
- const orientation = argument_parsing_1.findMatch(parsed, /^orientation=(.*)/);
80
+ const deviceName = (0, argument_parsing_1.findMatch)(parsed, /^device=(.*)/);
81
+ const orientation = (0, argument_parsing_1.findMatch)(parsed, /^orientation=(.*)/);
82
82
  const deviceBasedOptions = getDeviceBasedOptions(deviceName, orientation);
83
83
  let specifiedDeviceOptions = {
84
84
  orientation: orientation,
85
- touch: argument_parsing_1.hasMatch(parsed, /^touch=/) ? argument_parsing_1.isMatchTrue(parsed, /^touch=(.*)/) : void 0,
86
- mobile: argument_parsing_1.isMatchTrue(parsed, /^mobile=(.*)/),
87
- width: Number(argument_parsing_1.findMatch(parsed, /^width=(.*)/) || NaN),
88
- height: Number(argument_parsing_1.findMatch(parsed, /^height=(.*)/) || NaN),
89
- scaleFactor: Number(argument_parsing_1.findMatch(parsed, /^scaleFactor=(.*)/) || NaN),
90
- userAgent: argument_parsing_1.findMatch(parsed, /^userAgent=(.*)/),
85
+ touch: (0, argument_parsing_1.hasMatch)(parsed, /^touch=/) ? (0, argument_parsing_1.isMatchTrue)(parsed, /^touch=(.*)/) : void 0,
86
+ mobile: (0, argument_parsing_1.isMatchTrue)(parsed, /^mobile=(.*)/),
87
+ width: Number((0, argument_parsing_1.findMatch)(parsed, /^width=(.*)/) || NaN),
88
+ height: Number((0, argument_parsing_1.findMatch)(parsed, /^height=(.*)/) || NaN),
89
+ scaleFactor: Number((0, argument_parsing_1.findMatch)(parsed, /^scaleFactor=(.*)/) || NaN),
90
+ userAgent: (0, argument_parsing_1.findMatch)(parsed, /^userAgent=(.*)/),
91
91
  };
92
- specifiedDeviceOptions = lodash_1.pickBy(specifiedDeviceOptions, optionValue => {
92
+ specifiedDeviceOptions = (0, lodash_1.pickBy)(specifiedDeviceOptions, optionValue => {
93
93
  return optionValue !== void 0 && optionValue !== '' && !Number.isNaN(optionValue);
94
94
  });
95
95
  return Object.assign(baseOptions, deviceBasedOptions, specifiedDeviceOptions);
96
96
  }
97
97
  function getNewConfig(configString) {
98
- const { userArgs, modesString } = argument_parsing_1.parseConfig(configString);
98
+ const { userArgs, modesString } = (0, argument_parsing_1.parseConfig)(configString);
99
99
  const parsedUserArgs = parseUserArgs(userArgs);
100
100
  const { modes, optionsString } = parseModes(modesString, parsedUserArgs);
101
101
  const useDefaultDimensions = modes.headless && !parsedUserArgs.windowSize;
@@ -109,4 +109,4 @@ function default_1(configString) {
109
109
  }
110
110
  exports.default = default_1;
111
111
  module.exports = exports.default;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBK0M7QUFDL0MsbUNBQStEO0FBQy9ELHNFQUV5QztBQUd6QyxNQUFNLHNCQUFzQixHQUFJLElBQUksQ0FBQztBQUNyQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUVwQyxNQUFNLGVBQWUsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFakUsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLFNBQVMsYUFBYSxDQUFFLFFBQVE7SUFDNUIsTUFBTSxVQUFVLEdBQUc7UUFDZixRQUFRLEVBQUssS0FBSztRQUNsQixXQUFXLEVBQUUsS0FBSztRQUNsQixVQUFVLEVBQUcsS0FBSztLQUNyQixDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxHQUFZLGtCQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBRSxRQUFRLEVBQUUs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Z0IsQ0FBQyxzQkFBc0IsRUFBRSxXQUFXLENBQUMsRUFBRTtRQUM1RSxPQUFPLFdBQVcsS0FBSyxLQUFLLENBQUMsSUFBSSxXQUFXLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBR0QsU0FBUyxZQUFZLENBQUUsWUFBWTtJQUMvQixNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLDhCQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsTUFBTSxjQUFjLEdBQWMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMxRSxNQUFNLG9CQUFvQixHQUFRLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO0lBQy9FLE1BQU0sT0FBTyxHQUFxQixZQUFZLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFFcEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxtQkFBeUIsWUFBWTtJQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUMxQixXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTNELE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFMRCw0QkFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVtdWxhdGVkRGV2aWNlcyB9IGZyb20gJ2RldmljZS1zcGVjcyc7XG5pbXBvcnQgeyBwaWNrQnkgYXMgZmlsdGVyUHJvcGVydGllcywgY2FtZWxDYXNlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gICAgaGFzTWF0Y2gsIGZpbmRNYXRjaCwgaXNNYXRjaFRydWUsIGdldE1vZGVzLCBzcGxpdEVzY2FwZWQsIGdldFBhdGhGcm9tUGFyc2VkTW9kZXMsIHBhcnNlQ29uZmlnLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9hcmd1bWVudC1wYXJzaW5nJztcblxuXG5jb25zdCBIRUFETEVTU19ERUZBVUxUX1dJRFRIICA9IDEyODA7XG5jb25zdCBIRUFETEVTU19ERUZBVUxUX0hFSUdIVCA9IDgwMDtcblxuY29uc3QgQVZBSUxBQkxFX01PREVTID0gWyd1c2VyUHJvZmlsZScsICdoZWFkbGVzcycsICdlbXVsYXRpb24nXTtcblxuY29uc3QgY29uZmlnQ2FjaGUgPSB7fTtcblxuZnVuY3Rpb24gcGFyc2VVc2VyQXJncyAodXNlckFyZ3MpIHtcbiAgICBjb25zdCBwYXJzZWRBcmdzID0ge1xuICAgICAgICBoZWFkbGVzczogICAgZmFsc2UsXG4gICAgICAgIHVzZXJEYXRhRGlyOiBmYWxzZSxcbiAgICAgICAgd2luZG93U2l6ZTogIGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdCBzcGxpdHRlZEFyZ3MgPSB1c2VyQXJncy5zcGxpdCgnICcpLmZpbHRlcihhcmcgPT4gISFhcmcpO1xuXG4gICAgc3BsaXR0ZWRBcmdzLmZvckVhY2goYXJnID0+IHtcbiAgICAgICAgY29uc3Qga2V5VmFsdWVQYWlyID0gYXJnLnNwbGl0KCc9Jyk7XG4gICAgICAgIGNvbnN0IGtleSAgICAgICAgICA9IGNhbWVsQ2FzZShrZXlWYWx1ZVBhaXJbMF0pO1xuXG4gICAgICAgIHBhcnNlZEFyZ3Nba2V5XSA9IHBhcnNlZEFyZ3Nba2V5XSAhPT0gdm9pZCAwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhcnNlZEFyZ3M7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTW9kZXMgKG1vZGVzU3RyLCB1c2VyQXJncykge1xuICAgIGNvbnN0IHBhcnNlZCAgICAgICAgPSBzcGxpdEVzY2FwZWQobW9kZXNTdHIsICc6Jyk7XG4gICAgY29uc3QgcGF0aCAgICAgICAgICA9IGdldFBhdGhGcm9tUGFyc2VkTW9kZXMocGFyc2VkLCBBVkFJTEFCTEVfTU9ERVMpO1xuICAgIGNvbnN0IGRldGVjdGVkTW9kZXMgPSBnZXRNb2RlcyhwYXJzZWQsIEFWQUlMQUJMRV9NT0RFUyk7XG4gICAgbGV0IG9wdGlvbnNTdHJpbmcgPSAnJztcblxuICAgIGlmIChwYXJzZWQubGVuZ3RoKVxuICAgICAgICBvcHRpb25zU3RyaW5nID0gcGFyc2VkLnNoaWZ0KCk7XG5cbiAgICB3aGlsZSAocGFyc2VkLmxlbmd0aClcbiAgICAgICAgb3B0aW9uc1N0cmluZyArPSAnOicgKyBwYXJzZWQuc2hpZnQoKTtcblxuICAgIGNvbnN0IHVzZXJQcm9maWxlID0gZGV0ZWN0ZWRNb2Rlcy51c2VyUHJvZmlsZSB8fCB1c2VyQXJncy51c2VyRGF0YURpcjtcbiAgICBjb25zdCBoZWFkbGVzcyAgICA9IGRldGVjdGVkTW9kZXMuaGVhZGxlc3MgfHwgdXNlckFyZ3MuaGVhZGxlc3M7XG4gICAgY29uc3QgZW11bGF0aW9uICAgPSBkZXRlY3RlZE1vZGVzLmVtdWxhdGlvbiB8fCBoZWFkbGVzcztcblxuICAgIGNvbnN0IG1vZGVzID0ge1xuICAgICAgICBwYXRoLFxuICAgICAgICB1c2VyUHJvZmlsZSxcbiAgICAgICAgaGVhZGxlc3MsXG4gICAgICAgIGVtdWxhdGlvbixcbiAgICB9O1xuXG4gICAgcmV0dXJuIHsgbW9kZXMsIG9wdGlvbnNTdHJpbmcgfTtcbn1cblxuZnVuY3Rpb24gc2ltcGxpZnlEZXZpY2VOYW1lIChkZXZpY2VOYW1lKSB7XG4gICAgcmV0dXJuIGRldmljZU5hbWUucmVwbGFjZSgvXFxzL2csICcnKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBmaW5kRGV2aWNlIChkZXZpY2VOYW1lKSB7XG4gICAgY29uc3Qgc2ltcGxlTmFtZSA9IHNpbXBsaWZ5RGV2aWNlTmFtZShkZXZpY2VOYW1lKTtcblxuICAgIHJldHVybiBlbXVsYXRlZERldmljZXMuZmlsdGVyKGRldmljZSA9PiBzaW1wbGlmeURldmljZU5hbWUoZGV2aWNlLnRpdGxlKS5pbmRleE9mKHNpbXBsZU5hbWUpID49IDApWzBdO1xufVxuXG5mdW5jdGlvbiBnZXREZXZpY2VCYXNlZE9wdGlvbnMgKGRldmljZU5hbWUsIG9yaWVudGF0aW9uKSB7XG4gICAgaWYgKCFkZXZpY2VOYW1lKVxuICAgICAgICByZXR1cm4ge307XG5cbiAgICBjb25zdCBkZXZpY2VEYXRhID0gZmluZERldmljZShkZXZpY2VOYW1lKTtcblxuICAgIGlmICghZGV2aWNlRGF0YSlcbiAgICAgICAgcmV0dXJuIHt9O1xuXG4gICAgY29uc3QgbW9iaWxlID0gZGV2aWNlRGF0YS5jYXBhYmlsaXRpZXMuaW5kZXhPZignbW9iaWxlJykgPj0gMDtcblxuICAgIGlmICghb3JpZW50YXRpb24pXG4gICAgICAgIG9yaWVudGF0aW9uID0gbW9iaWxlID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJztcblxuICAgIHJldHVybiB7XG4gICAgICAgIGRldmljZU5hbWU6ICBkZXZpY2VEYXRhLnRpdGxlLFxuICAgICAgICBtb2JpbGU6ICAgICAgbW9iaWxlLFxuICAgICAgICBvcmllbnRhdGlvbjogb3JpZW50YXRpb24sXG4gICAgICAgIHRvdWNoOiAgICAgICBkZXZpY2VEYXRhLmNhcGFiaWxpdGllcy5pbmRleE9mKCd0b3VjaCcpID49IDAsXG4gICAgICAgIHdpZHRoOiAgICAgICBkZXZpY2VEYXRhLnNjcmVlbltvcmllbnRhdGlvbl0ud2lkdGgsXG4gICAgICAgIGhlaWdodDogICAgICBkZXZpY2VEYXRhLnNjcmVlbltvcmllbnRhdGlvbl0uaGVpZ2h0LFxuICAgICAgICBzY2FsZUZhY3RvcjogZGV2aWNlRGF0YS5zY3JlZW5bJ2RldmljZS1waXhlbC1yYXRpbyddLFxuICAgICAgICB1c2VyQWdlbnQ6ICAgZGV2aWNlRGF0YVsndXNlci1hZ2VudCddLFxuICAgIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlT3B0aW9ucyAoc3RyLCB1c2VEZWZhdWx0RGltZW5zaW9ucykge1xuICAgIGNvbnN0IHBhcnNlZCA9IHNwbGl0RXNjYXBlZChzdHIsICc7Jyk7XG5cbiAgICBjb25zdCBiYXNlT3B0aW9ucyA9IHtcbiAgICAgICAgd2lkdGg6ICAgICAgIHVzZURlZmF1bHREaW1lbnNpb25zID8gSEVBRExFU1NfREVGQVVMVF9XSURUSCA6IDAsXG4gICAgICAgIGhlaWdodDogICAgICB1c2VEZWZhdWx0RGltZW5zaW9ucyA/IEhFQURMRVNTX0RFRkFVTFRfSEVJR0hUIDogMCxcbiAgICAgICAgc2NhbGVGYWN0b3I6IDAsXG4gICAgICAgIG1vYmlsZTogICAgICBmYWxzZSxcbiAgICAgICAgY2RwUG9ydDogICAgIGZpbmRNYXRjaChwYXJzZWQsIC9eY2RwUG9ydD0oLiopLyksXG4gICAgfTtcblxuICAgIGNvbnN0IGRldmljZU5hbWUgICAgICAgICA9IGZpbmRNYXRjaChwYXJzZWQsIC9eZGV2aWNlPSguKikvKTtcbiAgICBjb25zdCBvcmllbnRhdGlvbiAgICAgICAgPSBmaW5kTWF0Y2gocGFyc2VkLCAvXm9yaWVudGF0aW9uPSguKikvKTtcbiAgICBjb25zdCBkZXZpY2VCYXNlZE9wdGlvbnMgPSBnZXREZXZpY2VCYXNlZE9wdGlvbnMoZGV2aWNlTmFtZSwgb3JpZW50YXRpb24pO1xuXG4gICAgbGV0IHNwZWNpZmllZERldmljZU9wdGlvbnMgPSB7XG4gICAgICAgIG9yaWVudGF0aW9uOiBvcmllbnRhdGlvbixcbiAgICAgICAgdG91Y2g6ICAgICAgIGhhc01hdGNoKHBhcnNlZCwgL150b3VjaD0vKSA/IGlzTWF0Y2hUcnVlKHBhcnNlZCwgL150b3VjaD0oLiopLykgOiB2b2lkIDAsXG4gICAgICAgIG1vYmlsZTogICAgICBpc01hdGNoVHJ1ZShwYXJzZWQsIC9ebW9iaWxlPSguKikvKSxcbiAgICAgICAgd2lkdGg6ICAgICAgIE51bWJlcihmaW5kTWF0Y2gocGFyc2VkLCAvXndpZHRoPSguKikvKSB8fCBOYU4pLFxuICAgICAgICBoZWlnaHQ6ICAgICAgTnVtYmVyKGZpbmRNYXRjaChwYXJzZWQsIC9eaGVpZ2h0PSguKikvKSB8fCBOYU4pLFxuICAgICAgICBzY2FsZUZhY3RvcjogTnVtYmVyKGZpbmRNYXRjaChwYXJzZWQsIC9ec2NhbGVGYWN0b3I9KC4qKS8pIHx8IE5hTiksXG4gICAgICAgIHVzZXJBZ2VudDogICBmaW5kTWF0Y2gocGFyc2VkLCAvXnVzZXJBZ2VudD0oLiopLyksXG4gICAgfTtcblxuICAgIHNwZWNpZmllZERldmljZU9wdGlvbnMgPSBmaWx0ZXJQcm9wZXJ0aWVzKHNwZWNpZmllZERldmljZU9wdGlvbnMsIG9wdGlvblZhbHVlID0+IHtcbiAgICAgICAgcmV0dXJuIG9wdGlvblZhbHVlICE9PSB2b2lkIDAgJiYgb3B0aW9uVmFsdWUgIT09ICcnICYmICFOdW1iZXIuaXNOYU4ob3B0aW9uVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYmFzZU9wdGlvbnMsIGRldmljZUJhc2VkT3B0aW9ucywgc3BlY2lmaWVkRGV2aWNlT3B0aW9ucyk7XG59XG5cblxuZnVuY3Rpb24gZ2V0TmV3Q29uZmlnIChjb25maWdTdHJpbmcpIHtcbiAgICBjb25zdCB7IHVzZXJBcmdzLCBtb2Rlc1N0cmluZyB9ID0gcGFyc2VDb25maWcoY29uZmlnU3RyaW5nKTtcbiAgICBjb25zdCBwYXJzZWRVc2VyQXJncyAgICAgICAgICAgID0gcGFyc2VVc2VyQXJncyh1c2VyQXJncyk7XG4gICAgY29uc3QgeyBtb2Rlcywgb3B0aW9uc1N0cmluZyB9ICA9IHBhcnNlTW9kZXMobW9kZXNTdHJpbmcsIHBhcnNlZFVzZXJBcmdzKTtcbiAgICBjb25zdCB1c2VEZWZhdWx0RGltZW5zaW9ucyAgICAgID0gbW9kZXMuaGVhZGxlc3MgJiYgIXBhcnNlZFVzZXJBcmdzLndpbmRvd1NpemU7XG4gICAgY29uc3Qgb3B0aW9ucyAgICAgICAgICAgICAgICAgICA9IHBhcnNlT3B0aW9ucyhvcHRpb25zU3RyaW5nLCB1c2VEZWZhdWx0RGltZW5zaW9ucyk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IHVzZXJBcmdzIH0sIG1vZGVzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZ1N0cmluZykge1xuICAgIGlmICghY29uZmlnQ2FjaGVbY29uZmlnU3RyaW5nXSlcbiAgICAgICAgY29uZmlnQ2FjaGVbY29uZmlnU3RyaW5nXSA9IGdldE5ld0NvbmZpZyhjb25maWdTdHJpbmcpO1xuXG4gICAgcmV0dXJuIGNvbmZpZ0NhY2hlW2NvbmZpZ1N0cmluZ107XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBK0M7QUFDL0MsbUNBQStEO0FBQy9ELHNFQUV5QztBQUd6QyxNQUFNLHNCQUFzQixHQUFJLElBQUksQ0FBQztBQUNyQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUVwQyxNQUFNLGVBQWUsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFakUsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLFNBQVMsYUFBYSxDQUFFLFFBQVE7SUFDNUIsTUFBTSxVQUFVLEdBQUc7UUFDZixRQUFRLEVBQUssS0FBSztRQUNsQixXQUFXLEVBQUUsS0FBSztRQUNsQixVQUFVLEVBQUcsS0FBSztLQUNyQixDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxHQUFZLElBQUEsa0JBQVMsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFFLFFBQVEs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O0FBTEQsNEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbXVsYXRlZERldmljZXMgfSBmcm9tICdkZXZpY2Utc3BlY3MnO1xuaW1wb3J0IHsgcGlja0J5IGFzIGZpbHRlclByb3BlcnRpZXMsIGNhbWVsQ2FzZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICAgIGhhc01hdGNoLCBmaW5kTWF0Y2gsIGlzTWF0Y2hUcnVlLCBnZXRNb2Rlcywgc3BsaXRFc2NhcGVkLCBnZXRQYXRoRnJvbVBhcnNlZE1vZGVzLCBwYXJzZUNvbmZpZyxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYXJndW1lbnQtcGFyc2luZyc7XG5cblxuY29uc3QgSEVBRExFU1NfREVGQVVMVF9XSURUSCAgPSAxMjgwO1xuY29uc3QgSEVBRExFU1NfREVGQVVMVF9IRUlHSFQgPSA4MDA7XG5cbmNvbnN0IEFWQUlMQUJMRV9NT0RFUyA9IFsndXNlclByb2ZpbGUnLCAnaGVhZGxlc3MnLCAnZW11bGF0aW9uJ107XG5cbmNvbnN0IGNvbmZpZ0NhY2hlID0ge307XG5cbmZ1bmN0aW9uIHBhcnNlVXNlckFyZ3MgKHVzZXJBcmdzKSB7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHtcbiAgICAgICAgaGVhZGxlc3M6ICAgIGZhbHNlLFxuICAgICAgICB1c2VyRGF0YURpcjogZmFsc2UsXG4gICAgICAgIHdpbmRvd1NpemU6ICBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3BsaXR0ZWRBcmdzID0gdXNlckFyZ3Muc3BsaXQoJyAnKS5maWx0ZXIoYXJnID0+ICEhYXJnKTtcblxuICAgIHNwbGl0dGVkQXJncy5mb3JFYWNoKGFyZyA9PiB7XG4gICAgICAgIGNvbnN0IGtleVZhbHVlUGFpciA9IGFyZy5zcGxpdCgnPScpO1xuICAgICAgICBjb25zdCBrZXkgICAgICAgICAgPSBjYW1lbENhc2Uoa2V5VmFsdWVQYWlyWzBdKTtcblxuICAgICAgICBwYXJzZWRBcmdzW2tleV0gPSBwYXJzZWRBcmdzW2tleV0gIT09IHZvaWQgMDtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJzZWRBcmdzO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1vZGVzIChtb2Rlc1N0ciwgdXNlckFyZ3MpIHtcbiAgICBjb25zdCBwYXJzZWQgICAgICAgID0gc3BsaXRFc2NhcGVkKG1vZGVzU3RyLCAnOicpO1xuICAgIGNvbnN0IHBhdGggICAgICAgICAgPSBnZXRQYXRoRnJvbVBhcnNlZE1vZGVzKHBhcnNlZCwgQVZBSUxBQkxFX01PREVTKTtcbiAgICBjb25zdCBkZXRlY3RlZE1vZGVzID0gZ2V0TW9kZXMocGFyc2VkLCBBVkFJTEFCTEVfTU9ERVMpO1xuICAgIGxldCBvcHRpb25zU3RyaW5nID0gJyc7XG5cbiAgICBpZiAocGFyc2VkLmxlbmd0aClcbiAgICAgICAgb3B0aW9uc1N0cmluZyA9IHBhcnNlZC5zaGlmdCgpO1xuXG4gICAgd2hpbGUgKHBhcnNlZC5sZW5ndGgpXG4gICAgICAgIG9wdGlvbnNTdHJpbmcgKz0gJzonICsgcGFyc2VkLnNoaWZ0KCk7XG5cbiAgICBjb25zdCB1c2VyUHJvZmlsZSA9IGRldGVjdGVkTW9kZXMudXNlclByb2ZpbGUgfHwgdXNlckFyZ3MudXNlckRhdGFEaXI7XG4gICAgY29uc3QgaGVhZGxlc3MgICAgPSBkZXRlY3RlZE1vZGVzLmhlYWRsZXNzIHx8IHVzZXJBcmdzLmhlYWRsZXNzO1xuICAgIGNvbnN0IGVtdWxhdGlvbiAgID0gZGV0ZWN0ZWRNb2Rlcy5lbXVsYXRpb24gfHwgaGVhZGxlc3M7XG5cbiAgICBjb25zdCBtb2RlcyA9IHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdXNlclByb2ZpbGUsXG4gICAgICAgIGhlYWRsZXNzLFxuICAgICAgICBlbXVsYXRpb24sXG4gICAgfTtcblxuICAgIHJldHVybiB7IG1vZGVzLCBvcHRpb25zU3RyaW5nIH07XG59XG5cbmZ1bmN0aW9uIHNpbXBsaWZ5RGV2aWNlTmFtZSAoZGV2aWNlTmFtZSkge1xuICAgIHJldHVybiBkZXZpY2VOYW1lLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gZmluZERldmljZSAoZGV2aWNlTmFtZSkge1xuICAgIGNvbnN0IHNpbXBsZU5hbWUgPSBzaW1wbGlmeURldmljZU5hbWUoZGV2aWNlTmFtZSk7XG5cbiAgICByZXR1cm4gZW11bGF0ZWREZXZpY2VzLmZpbHRlcihkZXZpY2UgPT4gc2ltcGxpZnlEZXZpY2VOYW1lKGRldmljZS50aXRsZSkuaW5kZXhPZihzaW1wbGVOYW1lKSA+PSAwKVswXTtcbn1cblxuZnVuY3Rpb24gZ2V0RGV2aWNlQmFzZWRPcHRpb25zIChkZXZpY2VOYW1lLCBvcmllbnRhdGlvbikge1xuICAgIGlmICghZGV2aWNlTmFtZSlcbiAgICAgICAgcmV0dXJuIHt9O1xuXG4gICAgY29uc3QgZGV2aWNlRGF0YSA9IGZpbmREZXZpY2UoZGV2aWNlTmFtZSk7XG5cbiAgICBpZiAoIWRldmljZURhdGEpXG4gICAgICAgIHJldHVybiB7fTtcblxuICAgIGNvbnN0IG1vYmlsZSA9IGRldmljZURhdGEuY2FwYWJpbGl0aWVzLmluZGV4T2YoJ21vYmlsZScpID49IDA7XG5cbiAgICBpZiAoIW9yaWVudGF0aW9uKVxuICAgICAgICBvcmllbnRhdGlvbiA9IG1vYmlsZSA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXZpY2VOYW1lOiAgZGV2aWNlRGF0YS50aXRsZSxcbiAgICAgICAgbW9iaWxlOiAgICAgIG1vYmlsZSxcbiAgICAgICAgb3JpZW50YXRpb246IG9yaWVudGF0aW9uLFxuICAgICAgICB0b3VjaDogICAgICAgZGV2aWNlRGF0YS5jYXBhYmlsaXRpZXMuaW5kZXhPZigndG91Y2gnKSA+PSAwLFxuICAgICAgICB3aWR0aDogICAgICAgZGV2aWNlRGF0YS5zY3JlZW5bb3JpZW50YXRpb25dLndpZHRoLFxuICAgICAgICBoZWlnaHQ6ICAgICAgZGV2aWNlRGF0YS5zY3JlZW5bb3JpZW50YXRpb25dLmhlaWdodCxcbiAgICAgICAgc2NhbGVGYWN0b3I6IGRldmljZURhdGEuc2NyZWVuWydkZXZpY2UtcGl4ZWwtcmF0aW8nXSxcbiAgICAgICAgdXNlckFnZW50OiAgIGRldmljZURhdGFbJ3VzZXItYWdlbnQnXSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZU9wdGlvbnMgKHN0ciwgdXNlRGVmYXVsdERpbWVuc2lvbnMpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBzcGxpdEVzY2FwZWQoc3RyLCAnOycpO1xuXG4gICAgY29uc3QgYmFzZU9wdGlvbnMgPSB7XG4gICAgICAgIHdpZHRoOiAgICAgICB1c2VEZWZhdWx0RGltZW5zaW9ucyA/IEhFQURMRVNTX0RFRkFVTFRfV0lEVEggOiAwLFxuICAgICAgICBoZWlnaHQ6ICAgICAgdXNlRGVmYXVsdERpbWVuc2lvbnMgPyBIRUFETEVTU19ERUZBVUxUX0hFSUdIVCA6IDAsXG4gICAgICAgIHNjYWxlRmFjdG9yOiAwLFxuICAgICAgICBtb2JpbGU6ICAgICAgZmFsc2UsXG4gICAgICAgIGNkcFBvcnQ6ICAgICBmaW5kTWF0Y2gocGFyc2VkLCAvXmNkcFBvcnQ9KC4qKS8pLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXZpY2VOYW1lICAgICAgICAgPSBmaW5kTWF0Y2gocGFyc2VkLCAvXmRldmljZT0oLiopLyk7XG4gICAgY29uc3Qgb3JpZW50YXRpb24gICAgICAgID0gZmluZE1hdGNoKHBhcnNlZCwgL15vcmllbnRhdGlvbj0oLiopLyk7XG4gICAgY29uc3QgZGV2aWNlQmFzZWRPcHRpb25zID0gZ2V0RGV2aWNlQmFzZWRPcHRpb25zKGRldmljZU5hbWUsIG9yaWVudGF0aW9uKTtcblxuICAgIGxldCBzcGVjaWZpZWREZXZpY2VPcHRpb25zID0ge1xuICAgICAgICBvcmllbnRhdGlvbjogb3JpZW50YXRpb24sXG4gICAgICAgIHRvdWNoOiAgICAgICBoYXNNYXRjaChwYXJzZWQsIC9edG91Y2g9LykgPyBpc01hdGNoVHJ1ZShwYXJzZWQsIC9edG91Y2g9KC4qKS8pIDogdm9pZCAwLFxuICAgICAgICBtb2JpbGU6ICAgICAgaXNNYXRjaFRydWUocGFyc2VkLCAvXm1vYmlsZT0oLiopLyksXG4gICAgICAgIHdpZHRoOiAgICAgICBOdW1iZXIoZmluZE1hdGNoKHBhcnNlZCwgL153aWR0aD0oLiopLykgfHwgTmFOKSxcbiAgICAgICAgaGVpZ2h0OiAgICAgIE51bWJlcihmaW5kTWF0Y2gocGFyc2VkLCAvXmhlaWdodD0oLiopLykgfHwgTmFOKSxcbiAgICAgICAgc2NhbGVGYWN0b3I6IE51bWJlcihmaW5kTWF0Y2gocGFyc2VkLCAvXnNjYWxlRmFjdG9yPSguKikvKSB8fCBOYU4pLFxuICAgICAgICB1c2VyQWdlbnQ6ICAgZmluZE1hdGNoKHBhcnNlZCwgL151c2VyQWdlbnQ9KC4qKS8pLFxuICAgIH07XG5cbiAgICBzcGVjaWZpZWREZXZpY2VPcHRpb25zID0gZmlsdGVyUHJvcGVydGllcyhzcGVjaWZpZWREZXZpY2VPcHRpb25zLCBvcHRpb25WYWx1ZSA9PiB7XG4gICAgICAgIHJldHVybiBvcHRpb25WYWx1ZSAhPT0gdm9pZCAwICYmIG9wdGlvblZhbHVlICE9PSAnJyAmJiAhTnVtYmVyLmlzTmFOKG9wdGlvblZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGJhc2VPcHRpb25zLCBkZXZpY2VCYXNlZE9wdGlvbnMsIHNwZWNpZmllZERldmljZU9wdGlvbnMpO1xufVxuXG5cbmZ1bmN0aW9uIGdldE5ld0NvbmZpZyAoY29uZmlnU3RyaW5nKSB7XG4gICAgY29uc3QgeyB1c2VyQXJncywgbW9kZXNTdHJpbmcgfSA9IHBhcnNlQ29uZmlnKGNvbmZpZ1N0cmluZyk7XG4gICAgY29uc3QgcGFyc2VkVXNlckFyZ3MgICAgICAgICAgICA9IHBhcnNlVXNlckFyZ3ModXNlckFyZ3MpO1xuICAgIGNvbnN0IHsgbW9kZXMsIG9wdGlvbnNTdHJpbmcgfSAgPSBwYXJzZU1vZGVzKG1vZGVzU3RyaW5nLCBwYXJzZWRVc2VyQXJncyk7XG4gICAgY29uc3QgdXNlRGVmYXVsdERpbWVuc2lvbnMgICAgICA9IG1vZGVzLmhlYWRsZXNzICYmICFwYXJzZWRVc2VyQXJncy53aW5kb3dTaXplO1xuICAgIGNvbnN0IG9wdGlvbnMgICAgICAgICAgICAgICAgICAgPSBwYXJzZU9wdGlvbnMob3B0aW9uc1N0cmluZywgdXNlRGVmYXVsdERpbWVuc2lvbnMpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyB1c2VyQXJncyB9LCBtb2Rlcywgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb25maWdTdHJpbmcpIHtcbiAgICBpZiAoIWNvbmZpZ0NhY2hlW2NvbmZpZ1N0cmluZ10pXG4gICAgICAgIGNvbmZpZ0NhY2hlW2NvbmZpZ1N0cmluZ10gPSBnZXROZXdDb25maWcoY29uZmlnU3RyaW5nKTtcblxuICAgIHJldHVybiBjb25maWdDYWNoZVtjb25maWdTdHJpbmddO1xufVxuIl19
@@ -10,7 +10,7 @@ const promisified_functions_1 = require("../../../../../utils/promisified-functi
10
10
  async function default_1(proxyHostName, disableMultipleWindows) {
11
11
  const tempDir = await temp_directory_1.default.createDirectory('chrome-profile');
12
12
  const profileDirName = path_1.default.join(tempDir.path, 'Default');
13
- await make_dir_1.default(profileDirName);
13
+ await (0, make_dir_1.default)(profileDirName);
14
14
  const preferences = {
15
15
  'credentials_enable_service': false,
16
16
  'devtools': {
@@ -38,10 +38,10 @@ async function default_1(proxyHostName, disableMultipleWindows) {
38
38
  'enabled': false,
39
39
  },
40
40
  };
41
- await promisified_functions_1.writeFile(path_1.default.join(profileDirName, 'Preferences'), JSON.stringify(preferences));
42
- await promisified_functions_1.writeFile(path_1.default.join(tempDir.path, 'First Run'), '');
41
+ await (0, promisified_functions_1.writeFile)(path_1.default.join(profileDirName, 'Preferences'), JSON.stringify(preferences));
42
+ await (0, promisified_functions_1.writeFile)(path_1.default.join(tempDir.path, 'First Run'), '');
43
43
  return tempDir;
44
44
  }
45
45
  exports.default = default_1;
46
46
  module.exports = exports.default;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRlbXAtcHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9jaHJvbWUvY3JlYXRlLXRlbXAtcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix3REFBK0I7QUFDL0IseUZBQWdFO0FBQ2hFLHNGQUF1RTtBQUV4RCxLQUFLLG9CQUFXLGFBQXFCLEVBQUUsc0JBQStCO0lBQ2pGLE1BQU0sT0FBTyxHQUFVLE1BQU0sd0JBQWEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxNQUFNLGNBQWMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUQsTUFBTSxrQkFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sV0FBVyxHQUFHO1FBQ2hCLDRCQUE0QixFQUFFLEtBQUs7UUFFbkMsVUFBVSxFQUFFO1lBQ1IsYUFBYSxFQUFFO2dCQUNYLGtCQUFrQixFQUFFLFlBQVk7Z0JBQ2hDLGVBQWUsRUFBSyxVQUFVO2FBQ2pDO1NBQ0o7UUFDRCxTQUFTLEVBQUU7WUFDUCw0QkFBNEIsRUFBRSxJQUFJO1NBQ3JDO1FBQ0QsU0FBUyxFQUFFO1lBQ1Asa0JBQWtCLEVBQUU7Z0JBQ2hCLFlBQVksa0JBQ1IscUJBQXFCLEVBQUU7d0JBQ25CLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3FCQUNsQyxJQUNFLENBQUMsc0JBQXNCLElBQUk7b0JBQzFCLFFBQVEsRUFBRTt3QkFDTixDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtxQkFDbEM7aUJBQ0osQ0FDSjthQUNKO1lBRUQsMEJBQTBCLEVBQUUsS0FBSztTQUNwQztRQUVELFdBQVcsRUFBRTtZQUNULFNBQVMsRUFBRSxLQUFLO1NBQ25CO0tBQ0osQ0FBQztJQUVGLE1BQU0saUNBQVMsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkYsTUFBTSxpQ0FBUyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUxRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBNUNELDRCQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG1ha2VEaXIgZnJvbSAnbWFrZS1kaXInO1xuaW1wb3J0IFRlbXBEaXJlY3RvcnkgZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvdGVtcC1kaXJlY3RvcnknO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKHByb3h5SG9zdE5hbWU6IHN0cmluZywgZGlzYWJsZU11bHRpcGxlV2luZG93czogYm9vbGVhbik6IFByb21pc2U8VGVtcERpcmVjdG9yeT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgICAgICAgID0gYXdhaXQgVGVtcERpcmVjdG9yeS5jcmVhdGVEaXJlY3RvcnkoJ2Nocm9tZS1wcm9maWxlJyk7XG4gICAgY29uc3QgcHJvZmlsZURpck5hbWUgPSBwYXRoLmpvaW4odGVtcERpci5wYXRoLCAnRGVmYXVsdCcpO1xuXG4gICAgYXdhaXQgbWFrZURpcihwcm9maWxlRGlyTmFtZSk7XG5cbiAgICBjb25zdCBwcmVmZXJlbmNlcyA9IHtcbiAgICAgICAgJ2NyZWRlbnRpYWxzX2VuYWJsZV9zZXJ2aWNlJzogZmFsc2UsXG5cbiAgICAgICAgJ2RldnRvb2xzJzoge1xuICAgICAgICAgICAgJ3ByZWZlcmVuY2VzJzoge1xuICAgICAgICAgICAgICAgICdjdXJyZW50RG9ja1N0YXRlJzogJ1widW5kb2NrZWRcIicsXG4gICAgICAgICAgICAgICAgJ2xhc3REb2NrU3RhdGUnOiAgICAnXCJib3R0b21cIicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAncGx1Z2lucyc6IHtcbiAgICAgICAgICAgICdhbHdheXNfb3Blbl9wZGZfZXh0ZXJuYWxseSc6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgICdwcm9maWxlJzoge1xuICAgICAgICAgICAgJ2NvbnRlbnRfc2V0dGluZ3MnOiB7XG4gICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbnMnOiB7XG4gICAgICAgICAgICAgICAgICAgICdhdXRvbWF0aWNfZG93bmxvYWRzJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3h5SG9zdE5hbWVdOiB7IHNldHRpbmc6IDEgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uIWRpc2FibGVNdWx0aXBsZVdpbmRvd3MgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwcyc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJveHlIb3N0TmFtZV06IHsgc2V0dGluZzogMSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgJ3Bhc3N3b3JkX21hbmFnZXJfZW5hYmxlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuXG4gICAgICAgICd0cmFuc2xhdGUnOiB7XG4gICAgICAgICAgICAnZW5hYmxlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHByb2ZpbGVEaXJOYW1lLCAnUHJlZmVyZW5jZXMnKSwgSlNPTi5zdHJpbmdpZnkocHJlZmVyZW5jZXMpKTtcbiAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBEaXIucGF0aCwgJ0ZpcnN0IFJ1bicpLCAnJyk7XG5cbiAgICByZXR1cm4gdGVtcERpcjtcbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRlbXAtcHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9jaHJvbWUvY3JlYXRlLXRlbXAtcHJvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix3REFBK0I7QUFDL0IseUZBQWdFO0FBQ2hFLHNGQUF1RTtBQUV4RCxLQUFLLG9CQUFXLGFBQXFCLEVBQUUsc0JBQStCO0lBQ2pGLE1BQU0sT0FBTyxHQUFVLE1BQU0sd0JBQWEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxNQUFNLGNBQWMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUQsTUFBTSxJQUFBLGtCQUFPLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUIsTUFBTSxXQUFXLEdBQUc7UUFDaEIsNEJBQTRCLEVBQUUsS0FBSztRQUVuQyxVQUFVLEVBQUU7WUFDUixhQUFhLEVBQUU7Z0JBQ1gsa0JBQWtCLEVBQUUsWUFBWTtnQkFDaEMsZUFBZSxFQUFLLFVBQVU7YUFDakM7U0FDSjtRQUNELFNBQVMsRUFBRTtZQUNQLDRCQUE0QixFQUFFLElBQUk7U0FDckM7UUFDRCxTQUFTLEVBQUU7WUFDUCxrQkFBa0IsRUFBRTtnQkFDaEIsWUFBWSxrQkFDUixxQkFBcUIsRUFBRTt3QkFDbkIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7cUJBQ2xDLElBQ0UsQ0FBQyxzQkFBc0IsSUFBSTtvQkFDMUIsUUFBUSxFQUFFO3dCQUNOLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3FCQUNsQztpQkFDSixDQUNKO2FBQ0o7WUFFRCwwQkFBMEIsRUFBRSxLQUFLO1NBQ3BDO1FBRUQsV0FBVyxFQUFFO1lBQ1QsU0FBUyxFQUFFLEtBQUs7U0FDbkI7S0FDSixDQUFDO0lBRUYsTUFBTSxJQUFBLGlDQUFTLEVBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sSUFBQSxpQ0FBUyxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUxRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBNUNELDRCQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG1ha2VEaXIgZnJvbSAnbWFrZS1kaXInO1xuaW1wb3J0IFRlbXBEaXJlY3RvcnkgZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvdGVtcC1kaXJlY3RvcnknO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKHByb3h5SG9zdE5hbWU6IHN0cmluZywgZGlzYWJsZU11bHRpcGxlV2luZG93czogYm9vbGVhbik6IFByb21pc2U8VGVtcERpcmVjdG9yeT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgICAgICAgID0gYXdhaXQgVGVtcERpcmVjdG9yeS5jcmVhdGVEaXJlY3RvcnkoJ2Nocm9tZS1wcm9maWxlJyk7XG4gICAgY29uc3QgcHJvZmlsZURpck5hbWUgPSBwYXRoLmpvaW4odGVtcERpci5wYXRoLCAnRGVmYXVsdCcpO1xuXG4gICAgYXdhaXQgbWFrZURpcihwcm9maWxlRGlyTmFtZSk7XG5cbiAgICBjb25zdCBwcmVmZXJlbmNlcyA9IHtcbiAgICAgICAgJ2NyZWRlbnRpYWxzX2VuYWJsZV9zZXJ2aWNlJzogZmFsc2UsXG5cbiAgICAgICAgJ2RldnRvb2xzJzoge1xuICAgICAgICAgICAgJ3ByZWZlcmVuY2VzJzoge1xuICAgICAgICAgICAgICAgICdjdXJyZW50RG9ja1N0YXRlJzogJ1widW5kb2NrZWRcIicsXG4gICAgICAgICAgICAgICAgJ2xhc3REb2NrU3RhdGUnOiAgICAnXCJib3R0b21cIicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAncGx1Z2lucyc6IHtcbiAgICAgICAgICAgICdhbHdheXNfb3Blbl9wZGZfZXh0ZXJuYWxseSc6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgICdwcm9maWxlJzoge1xuICAgICAgICAgICAgJ2NvbnRlbnRfc2V0dGluZ3MnOiB7XG4gICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbnMnOiB7XG4gICAgICAgICAgICAgICAgICAgICdhdXRvbWF0aWNfZG93bmxvYWRzJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3h5SG9zdE5hbWVdOiB7IHNldHRpbmc6IDEgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uIWRpc2FibGVNdWx0aXBsZVdpbmRvd3MgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwcyc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJveHlIb3N0TmFtZV06IHsgc2V0dGluZzogMSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgJ3Bhc3N3b3JkX21hbmFnZXJfZW5hYmxlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuXG4gICAgICAgICd0cmFuc2xhdGUnOiB7XG4gICAgICAgICAgICAnZW5hYmxlZCc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHByb2ZpbGVEaXJOYW1lLCAnUHJlZmVyZW5jZXMnKSwgSlNPTi5zdHJpbmdpZnkocHJlZmVyZW5jZXMpKTtcbiAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBEaXIucGF0aCwgJ0ZpcnN0IFJ1bicpLCAnJyk7XG5cbiAgICByZXR1cm4gdGVtcERpcjtcbn1cbiJdfQ==
@@ -14,7 +14,7 @@ const cdp_client_1 = require("./cdp-client");
14
14
  const resource_injector_1 = __importDefault(require("../../../../../proxyless/resource-injector"));
15
15
  const MIN_AVAILABLE_DIMENSION = 50;
16
16
  exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(name) {
17
- return config_1.default(name);
17
+ return (0, config_1.default)(name);
18
18
  },
19
19
  _getBrowserProtocolClient(runtimeInfo) {
20
20
  return runtimeInfo.browserClient;
@@ -39,7 +39,7 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
39
39
  await resourceInjector.setup(cdpClient);
40
40
  },
41
41
  async openBrowser(browserId, pageUrl, config, disableMultipleWindows, proxyless) {
42
- const parsedPageUrl = url_1.parse(pageUrl);
42
+ const parsedPageUrl = (0, url_1.parse)(pageUrl);
43
43
  const runtimeInfo = await this._createRunTimeInfo(parsedPageUrl.hostname, config, disableMultipleWindows);
44
44
  runtimeInfo.browserName = this._getBrowserName();
45
45
  runtimeInfo.browserId = browserId;
@@ -49,9 +49,9 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
49
49
  };
50
50
  //NOTE: A not-working tab is opened when the browser start in the docker so we should create a new tab.
51
51
  if (runtimeInfo.inDocker)
52
- await local_chrome_1.startOnDocker(pageUrl, runtimeInfo);
52
+ await (0, local_chrome_1.startOnDocker)(pageUrl, runtimeInfo);
53
53
  else
54
- await local_chrome_1.start(pageUrl, runtimeInfo);
54
+ await (0, local_chrome_1.start)(pageUrl, runtimeInfo);
55
55
  await this.waitForConnectionReady(browserId);
56
56
  runtimeInfo.viewportSize = await this.runInitScript(browserId, client_functions_1.GET_WINDOW_DIMENSIONS_INFO_SCRIPT);
57
57
  runtimeInfo.activeWindowId = null;
@@ -73,7 +73,7 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
73
73
  else
74
74
  await this.closeLocalBrowser(browserId);
75
75
  if (os_family_1.default.mac || runtimeInfo.config.headless)
76
- await local_chrome_1.stop(runtimeInfo);
76
+ await (0, local_chrome_1.stop)(runtimeInfo);
77
77
  if (runtimeInfo.tempProfileDir && !closingInfo.isRestarting)
78
78
  await runtimeInfo.tempProfileDir.dispose();
79
79
  delete this.openedBrowsers[browserId];
@@ -121,4 +121,4 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
121
121
  }
122
122
  } });
123
123
  module.exports = exports.default;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLDZCQUF3QztBQUN4QyxtREFBNEM7QUFDNUMsa0VBQStDO0FBQy9DLHNEQUFpQztBQUNqQyxpREFJd0I7QUFDeEIsc0VBQW9GO0FBQ3BGLDZDQUE2QztBQUM3QyxtR0FBMEU7QUFFMUUsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsa0RBQ08sY0FBcUIsS0FFeEIsU0FBUyxDQUFFLElBQUk7UUFDWCxPQUFPLGdCQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELHlCQUF5QixDQUFFLFdBQVc7UUFDbEMsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxzQkFBc0I7UUFDOUQsT0FBTyxzQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCx1Q0FBdUMsQ0FBRSxTQUFTLEVBQUUsTUFBTTtRQUN0RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN6QyxNQUFNLGlCQUFpQixHQUFXLFNBQVMsSUFBSSxVQUFVLENBQUM7UUFFMUQsSUFBSSxDQUFDLGlCQUFpQjtZQUNsQixPQUFPO1FBRVgsTUFBTSxRQUFRLEdBQUcsYUFBYSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBSTtZQUNiLGlCQUFpQixFQUFFLElBQUk7U0FDMUIsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9B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LENBQUMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFFcEYsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNwRjtJQUNMLENBQUMsSUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VVcmwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IGRlZGljYXRlZFByb3ZpZGVyQmFzZSBmcm9tICcuLi9iYXNlJztcbmltcG9ydCBDaHJvbWVSdW5UaW1lSW5mbyBmcm9tICcuL3J1bnRpbWUtaW5mbyc7XG5pbXBvcnQgZ2V0Q29uZmlnIGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gICAgc3RhcnQgYXMgc3RhcnRMb2NhbENocm9tZSxcbiAgICBzdGFydE9uRG9ja2VyIGFzIHN0YXJ0TG9jYWxDaHJvbWVPbkRvY2tlcixcbiAgICBzdG9wIGFzIHN0b3BMb2NhbENocm9tZSxcbn0gZnJvbSAnLi9sb2NhbC1jaHJvbWUnO1xuaW1wb3J0IHsgR0VUX1dJTkRPV19ESU1FTlNJT05TX0lORk9fU0NSSVBUIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xpZW50LWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9jZHAtY2xpZW50JztcbmltcG9ydCBSZXNvdXJjZUluamVjdG9yIGZyb20gJy4uLy4uLy4uLy4uLy4uL3Byb3h5bGVzcy9yZXNvdXJjZS1pbmplY3Rvcic7XG5cbmNvbnN0IE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OID0gNTA7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICAuLi5kZWRpY2F0ZWRQcm92aWRlckJhc2UsXG5cbiAgICBnZXRDb25maWcgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbmZpZyhuYW1lKTtcbiAgICB9LFxuXG4gICAgX2dldEJyb3dzZXJQcm90b2NvbENsaWVudCAocnVudGltZUluZm8pIHtcbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQ7XG4gICAgfSxcblxuICAgIGFzeW5jIF9jcmVhdGVSdW5UaW1lSW5mbyAoaG9zdE5hbWUsIGNvbmZpZywgZGlzYWJsZU11bHRpcGxlV2luZG93cykge1xuICAgICAgICByZXR1cm4gQ2hyb21lUnVuVGltZUluZm8uY3JlYXRlKGhvc3ROYW1lLCBjb25maWcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuICAgIH0sXG5cbiAgICBfc2V0VXNlckFnZW50TWV0YUluZm9Gb3JFbXVsYXRpbmdEZXZpY2UgKGJyb3dzZXJJZCwgY29uZmlnKSB7XG4gICAgICAgIGNvbnN0IHsgZW11bGF0aW9uLCBkZXZpY2VOYW1lIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGlzRGV2aWNlRW11bGF0aW9uICAgICAgICAgPSBlbXVsYXRpb24gJiYgZGV2aWNlTmFtZTtcblxuICAgICAgICBpZiAoIWlzRGV2aWNlRW11bGF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IG1ldGFJbmZvID0gYEVtdWxhdGluZyAke2RldmljZU5hbWV9YDtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyAgPSB7XG4gICAgICAgICAgICBhcHBlbmRUb1VzZXJBZ2VudDogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnNldFVzZXJBZ2VudE1ldGFJbmZvKGJyb3dzZXJJZCwgbWV0YUluZm8sIG9wdGlvbnMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBfc2V0dXBQcm94eWxlc3MgKGJyb3dzZXJJZCwgYnJvd3NlckNsaWVudCkge1xuICAgICAgICBjb25zdCByZXNvdXJjZUluamVjdG9yID0gbmV3IFJlc291cmNlSW5qZWN0b3IoYnJvd3NlcklkKTtcbiAgICAgICAgY29uc3QgY2RwQ2xpZW50ICAgICAgICA9IGF3YWl0IGJyb3dzZXJDbGllbnQuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgYXdhaXQgcmVzb3VyY2VJbmplY3Rvci5zZXR1cChjZHBDbGllbnQpO1xuICAgIH0sXG5cbiAgICBhc3luYyBvcGVuQnJvd3NlciAoYnJvd3NlcklkLCBwYWdlVXJsLCBjb25maWcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MsIHByb3h5bGVzcykge1xuICAgICAgICBjb25zdCBwYXJzZWRQYWdlVXJsID0gcGFyc2VVcmwocGFnZVVybCk7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvICAgPSBhd2FpdCB0aGlzLl9jcmVhdGVSdW5UaW1lSW5mbyhwYXJzZWRQYWdlVXJsLmhvc3RuYW1lLCBjb25maWcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLmJyb3dzZXJOYW1lID0gdGhpcy5fZ2V0QnJvd3Nlck5hbWUoKTtcbiAgICAgICAgcnVudGltZUluZm8uYnJvd3NlcklkICAgPSBicm93c2VySWQ7XG5cbiAgICAgICAgcnVudGltZUluZm8ucHJvdmlkZXJNZXRob2RzID0ge1xuICAgICAgICAgICAgcmVzaXplTG9jYWxCcm93c2VyV2luZG93OiAoLi4uYXJncykgPT4gdGhpcy5yZXNpemVMb2NhbEJyb3dzZXJXaW5kb3coLi4uYXJncyksXG4gICAgICAgICAgICByZXBvcnRXYXJuaW5nOiAgICAgICAgICAgICguLi5hcmdzKSA9PiB0aGlzLnJlcG9ydFdhcm5pbmcoYnJvd3NlcklkLCAuLi5hcmdzKSxcbiAgICAgICAgfTtcblxuICAgICAgICAvL05PVEU6IEEgbm90LXdvcmtpbmcgdGFiIGlzIG9wZW5lZCB3aGVuIHRoZSBicm93c2VyIHN0YXJ0IGluIHRoZSBkb2NrZXIgc28gd2Ugc2hvdWxkIGNyZWF0ZSBhIG5ldyB0YWIuXG4gICAgICAgIGlmIChydW50aW1lSW5mby5pbkRvY2tlcilcbiAgICAgICAgICAgIGF3YWl0IHN0YXJ0TG9jYWxDaHJvbWVPbkRvY2tlcihwYWdlVXJsLCBydW50aW1lSW5mbyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IHN0YXJ0TG9jYWxDaHJvbWUocGFnZVVybCwgcnVudGltZUluZm8pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvckNvbm5lY3Rpb25SZWFkeShicm93c2VySWQpO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZSAgICAgID0gYXdhaXQgdGhpcy5ydW5Jbml0U2NyaXB0KGJyb3dzZXJJZCwgR0VUX1dJTkRPV19ESU1FTlNJT05TX0lORk9fU0NSSVBUKTtcbiAgICAgICAgcnVudGltZUluZm8uYWN0aXZlV2luZG93SWQgICAgPSBudWxsO1xuICAgICAgICBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9ycyA9IHt9O1xuXG4gICAgICAgIGlmICghZGlzYWJsZU11bHRpcGxlV2luZG93cylcbiAgICAgICAgICAgIHJ1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkID0gdGhpcy5jYWxjdWxhdGVXaW5kb3dJZCgpO1xuXG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgPSBuZXcgQnJvd3NlckNsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdID0gcnVudGltZUluZm87XG5cbiAgICAgICAgYXdhaXQgYnJvd3NlckNsaWVudC5pbml0KCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZW5zdXJlV2luZG93SXNFeHBhbmRlZChicm93c2VySWQsIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZSk7XG5cbiAgICAgICAgdGhpcy5fc2V0VXNlckFnZW50TWV0YUluZm9Gb3JFbXVsYXRpbmdEZXZpY2UoYnJvd3NlcklkLCBydW50aW1lSW5mby5jb25maWcpO1xuXG4gICAgICAgIGlmIChwcm94eWxlc3MpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXR1cFByb3h5bGVzcyhicm93c2VySWQsIGJyb3dzZXJDbGllbnQpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjbG9zZUJyb3dzZXIgKGJyb3dzZXJJZCwgY2xvc2luZ0luZm8gPSB7fSkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBpZiAocnVudGltZUluZm8uYnJvd3NlckNsaWVudC5pc0hlYWRsZXNzVGFiKCkpXG4gICAgICAgICAgICBhd2FpdCBydW50aW1lSW5mby5icm93c2VyQ2xpZW50LmNsb3NlVGFiKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xvc2VMb2NhbEJyb3dzZXIoYnJvd3NlcklkKTtcblxuICAgICAgICBpZiAoT1MubWFjIHx8IHJ1bnRpbWVJbmZvLmNvbmZpZy5oZWFkbGVzcylcbiAgICAgICAgICAgIGF3YWl0IHN0b3BMb2NhbENocm9tZShydW50aW1lSW5mbyk7XG5cbiAgICAgICAgaWYgKHJ1bnRpbWVJbmZvLnRlbXBQcm9maWxlRGlyICYmICFjbG9zaW5nSW5mby5pc1Jlc3RhcnRpbmcpXG4gICAgICAgICAgICBhd2FpdCBydW50aW1lSW5mby50ZW1wUHJvZmlsZURpci5kaXNwb3NlKCk7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmVzaXplV2luZG93IChicm93c2VySWQsIHdpZHRoLCBoZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBpZiAocnVudGltZUluZm8uY29uZmlnLm1vYmlsZSlcbiAgICAgICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQudXBkYXRlTW9iaWxlVmlld3BvcnRTaXplKCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcnVudGltZUluZm8udmlld3BvcnRTaXplLndpZHRoICA9IGN1cnJlbnRXaWR0aDtcbiAgICAgICAgICAgIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZS5oZWlnaHQgPSBjdXJyZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgcnVudGltZUluZm8uYnJvd3NlckNsaWVudC5yZXNpemVXaW5kb3coeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgIH0sXG5cbiAgICBhc3luYyBzdGFydENhcHR1cmluZ1ZpZGVvIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgYXdhaXQgYnJvd3NlckNsaWVudC5zdGFydENhcHR1cmluZ1ZpZGVvKCk7XG4gICAgfSxcblxuICAgIGFzeW5jIHN0b3BDYXB0dXJpbmdWaWRlbyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJDbGllbnQuc3RvcENhcHR1cmluZ1ZpZGVvKCk7XG4gICAgfSxcblxuICAgIGFzeW5jIGdldFZpZGVvRnJhbWVEYXRhIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgcmV0dXJuIGJyb3dzZXJDbGllbnQuZ2V0VmlkZW9GcmFtZURhdGEoKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaGFzQ3VzdG9tQWN0aW9uRm9yQnJvd3NlciAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgY29uZmlnLCBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGNsaWVudCAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoYXNDbG9zZUJyb3dzZXI6ICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBoYXNSZXNpemVXaW5kb3c6ICAgICAgICAgICAgICAgICEhY2xpZW50ICYmIChjb25maWcuZW11bGF0aW9uIHx8IGNvbmZpZy5oZWFkbGVzcyksXG4gICAgICAgICAgICBoYXNNYXhpbWl6ZVdpbmRvdzogICAgICAgICAgICAgICEhY2xpZW50ICYmIGNvbmZpZy5oZWFkbGVzcyxcbiAgICAgICAgICAgIGhhc1Rha2VTY3JlZW5zaG90OiAgICAgICAgICAgICAgISFjbGllbnQsXG4gICAgICAgICAgICBoYXNDaHJvbWVsZXNzU2NyZWVuc2hvdHM6ICAgICAgICEhY2xpZW50LFxuICAgICAgICAgICAgaGFzR2V0VmlkZW9GcmFtZURhdGE6ICAgICAgICAgICAhIWNsaWVudCxcbiAgICAgICAgICAgIGhhc0NhblJlc2l6ZVdpbmRvd1RvRGltZW5zaW9uczogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGFzeW5jIF9lbnN1cmVXaW5kb3dJc0V4cGFuZGVkIChicm93c2VySWQsIHsgaGVpZ2h0LCB3aWR0aCwgYXZhaWxhYmxlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgb3V0ZXJXaWR0aCwgb3V0ZXJIZWlnaHQgfSkge1xuICAgICAgICBpZiAoaGVpZ2h0IDwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04gfHwgd2lkdGggPCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTikge1xuICAgICAgICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgoYXZhaWxhYmxlSGVpZ2h0LCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTik7XG4gICAgICAgICAgICBjb25zdCBuZXdXaWR0aCAgPSBNYXRoLm1heChNYXRoLmZsb29yKGF2YWlsYWJsZVdpZHRoIC8gMiksIE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OKTtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coYnJvd3NlcklkLCBuZXdXaWR0aCwgbmV3SGVpZ2h0LCBvdXRlcldpZHRoLCBvdXRlckhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9LFxufTtcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLDZCQUF3QztBQUN4QyxtREFBNEM7QUFDNUMsa0VBQStDO0FBQy9DLHNEQUFpQztBQUNqQyxpREFJd0I7QUFDeEIsc0VBQW9GO0FBQ3BGLDZDQUE2QztBQUM3QyxtR0FBMEU7QUFFMUUsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsa0RBQ08sY0FBcUIsS0FFeEIsU0FBUyxDQUFFLElBQUk7UUFDWCxPQUFPLElBQUEsZ0JBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQseUJBQXlCLENBQUUsV0FBVztRQUNsQyxPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHNCQUFzQjtRQUM5RCxPQUFPLHNCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELHVDQUF1QyxDQUFFLFNBQVMsRUFBRSxNQUFNO1FBQ3RELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3pDLE1BQU0saUJBQWlCLEdBQVcsU0FBUyxJQUFJLFVBQVUsQ0FBQztRQUUxRCxJQUFJLENBQUMsaUJBQWlCO1lBQ2xCLE9BQU87UUFFWCxNQUFNLFFBQVEsR0FBRyxhQUFhLFVBQVUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFJO1lBQ2IsaUJBQWlCLEVBQUUsSUFBSTtTQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVB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LENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBRXBGLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDcEY7SUFDTCxDQUFDLElBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlVXJsIH0gZnJvbSAndXJsJztcbmltcG9ydCBkZWRpY2F0ZWRQcm92aWRlckJhc2UgZnJvbSAnLi4vYmFzZSc7XG5pbXBvcnQgQ2hyb21lUnVuVGltZUluZm8gZnJvbSAnLi9ydW50aW1lLWluZm8nO1xuaW1wb3J0IGdldENvbmZpZyBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICAgIHN0YXJ0IGFzIHN0YXJ0TG9jYWxDaHJvbWUsXG4gICAgc3RhcnRPbkRvY2tlciBhcyBzdGFydExvY2FsQ2hyb21lT25Eb2NrZXIsXG4gICAgc3RvcCBhcyBzdG9wTG9jYWxDaHJvbWUsXG59IGZyb20gJy4vbG9jYWwtY2hyb21lJztcbmltcG9ydCB7IEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsaWVudC1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vY2RwLWNsaWVudCc7XG5pbXBvcnQgUmVzb3VyY2VJbmplY3RvciBmcm9tICcuLi8uLi8uLi8uLi8uLi9wcm94eWxlc3MvcmVzb3VyY2UtaW5qZWN0b3InO1xuXG5jb25zdCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTiA9IDUwO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgLi4uZGVkaWNhdGVkUHJvdmlkZXJCYXNlLFxuXG4gICAgZ2V0Q29uZmlnIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBnZXRDb25maWcobmFtZSk7XG4gICAgfSxcblxuICAgIF9nZXRCcm93c2VyUHJvdG9jb2xDbGllbnQgKHJ1bnRpbWVJbmZvKSB7XG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby5icm93c2VyQ2xpZW50O1xuICAgIH0sXG5cbiAgICBhc3luYyBfY3JlYXRlUnVuVGltZUluZm8gKGhvc3ROYW1lLCBjb25maWcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpIHtcbiAgICAgICAgcmV0dXJuIENocm9tZVJ1blRpbWVJbmZvLmNyZWF0ZShob3N0TmFtZSwgY29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzKTtcbiAgICB9LFxuXG4gICAgX3NldFVzZXJBZ2VudE1ldGFJbmZvRm9yRW11bGF0aW5nRGV2aWNlIChicm93c2VySWQsIGNvbmZpZykge1xuICAgICAgICBjb25zdCB7IGVtdWxhdGlvbiwgZGV2aWNlTmFtZSB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBpc0RldmljZUVtdWxhdGlvbiAgICAgICAgID0gZW11bGF0aW9uICYmIGRldmljZU5hbWU7XG5cbiAgICAgICAgaWYgKCFpc0RldmljZUVtdWxhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBtZXRhSW5mbyA9IGBFbXVsYXRpbmcgJHtkZXZpY2VOYW1lfWA7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgID0ge1xuICAgICAgICAgICAgYXBwZW5kVG9Vc2VyQWdlbnQ6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5zZXRVc2VyQWdlbnRNZXRhSW5mbyhicm93c2VySWQsIG1ldGFJbmZvLCBvcHRpb25zKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgX3NldHVwUHJveHlsZXNzIChicm93c2VySWQsIGJyb3dzZXJDbGllbnQpIHtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VJbmplY3RvciA9IG5ldyBSZXNvdXJjZUluamVjdG9yKGJyb3dzZXJJZCk7XG4gICAgICAgIGNvbnN0IGNkcENsaWVudCAgICAgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGF3YWl0IHJlc291cmNlSW5qZWN0b3Iuc2V0dXAoY2RwQ2xpZW50KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgb3BlbkJyb3dzZXIgKGJyb3dzZXJJZCwgcGFnZVVybCwgY29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzLCBwcm94eWxlc3MpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkUGFnZVVybCA9IHBhcnNlVXJsKHBhZ2VVcmwpO1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgID0gYXdhaXQgdGhpcy5fY3JlYXRlUnVuVGltZUluZm8ocGFyc2VkUGFnZVVybC5ob3N0bmFtZSwgY29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzKTtcblxuICAgICAgICBydW50aW1lSW5mby5icm93c2VyTmFtZSA9IHRoaXMuX2dldEJyb3dzZXJOYW1lKCk7XG4gICAgICAgIHJ1bnRpbWVJbmZvLmJyb3dzZXJJZCAgID0gYnJvd3NlcklkO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLnByb3ZpZGVyTWV0aG9kcyA9IHtcbiAgICAgICAgICAgIHJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdzogKC4uLmFyZ3MpID0+IHRoaXMucmVzaXplTG9jYWxCcm93c2VyV2luZG93KC4uLmFyZ3MpLFxuICAgICAgICAgICAgcmVwb3J0V2FybmluZzogICAgICAgICAgICAoLi4uYXJncykgPT4gdGhpcy5yZXBvcnRXYXJuaW5nKGJyb3dzZXJJZCwgLi4uYXJncyksXG4gICAgICAgIH07XG5cbiAgICAgICAgLy9OT1RFOiBBIG5vdC13b3JraW5nIHRhYiBpcyBvcGVuZWQgd2hlbiB0aGUgYnJvd3NlciBzdGFydCBpbiB0aGUgZG9ja2VyIHNvIHdlIHNob3VsZCBjcmVhdGUgYSBuZXcgdGFiLlxuICAgICAgICBpZiAocnVudGltZUluZm8uaW5Eb2NrZXIpXG4gICAgICAgICAgICBhd2FpdCBzdGFydExvY2FsQ2hyb21lT25Eb2NrZXIocGFnZVVybCwgcnVudGltZUluZm8pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBhd2FpdCBzdGFydExvY2FsQ2hyb21lKHBhZ2VVcmwsIHJ1bnRpbWVJbmZvKTtcblxuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JDb25uZWN0aW9uUmVhZHkoYnJvd3NlcklkKTtcblxuICAgICAgICBydW50aW1lSW5mby52aWV3cG9ydFNpemUgICAgICA9IGF3YWl0IHRoaXMucnVuSW5pdFNjcmlwdChicm93c2VySWQsIEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCk7XG4gICAgICAgIHJ1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkICAgID0gbnVsbDtcbiAgICAgICAgcnVudGltZUluZm8ud2luZG93RGVzY3JpcHRvcnMgPSB7fTtcblxuICAgICAgICBpZiAoIWRpc2FibGVNdWx0aXBsZVdpbmRvd3MpXG4gICAgICAgICAgICBydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZCA9IHRoaXMuY2FsY3VsYXRlV2luZG93SWQoKTtcblxuICAgICAgICBjb25zdCBicm93c2VyQ2xpZW50ID0gbmV3IEJyb3dzZXJDbGllbnQocnVudGltZUluZm8pO1xuXG4gICAgICAgIHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXSA9IHJ1bnRpbWVJbmZvO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJDbGllbnQuaW5pdCgpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2Vuc3VyZVdpbmRvd0lzRXhwYW5kZWQoYnJvd3NlcklkLCBydW50aW1lSW5mby52aWV3cG9ydFNpemUpO1xuXG4gICAgICAgIHRoaXMuX3NldFVzZXJBZ2VudE1ldGFJbmZvRm9yRW11bGF0aW5nRGV2aWNlKGJyb3dzZXJJZCwgcnVudGltZUluZm8uY29uZmlnKTtcblxuICAgICAgICBpZiAocHJveHlsZXNzKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBQcm94eWxlc3MoYnJvd3NlcklkLCBicm93c2VyQ2xpZW50KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgY2xvc2VCcm93c2VyIChicm93c2VySWQsIGNsb3NpbmdJbmZvID0ge30pIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgaWYgKHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQuaXNIZWFkbGVzc1RhYigpKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8uYnJvd3NlckNsaWVudC5jbG9zZVRhYigpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNsb3NlTG9jYWxCcm93c2VyKGJyb3dzZXJJZCk7XG5cbiAgICAgICAgaWYgKE9TLm1hYyB8fCBydW50aW1lSW5mby5jb25maWcuaGVhZGxlc3MpXG4gICAgICAgICAgICBhd2FpdCBzdG9wTG9jYWxDaHJvbWUocnVudGltZUluZm8pO1xuXG4gICAgICAgIGlmIChydW50aW1lSW5mby50ZW1wUHJvZmlsZURpciAmJiAhY2xvc2luZ0luZm8uaXNSZXN0YXJ0aW5nKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8udGVtcFByb2ZpbGVEaXIuZGlzcG9zZSgpO1xuXG4gICAgICAgIGRlbGV0ZSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgfSxcblxuICAgIGFzeW5jIHJlc2l6ZVdpbmRvdyAoYnJvd3NlcklkLCB3aWR0aCwgaGVpZ2h0LCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgaWYgKHJ1bnRpbWVJbmZvLmNvbmZpZy5tb2JpbGUpXG4gICAgICAgICAgICBhd2FpdCBydW50aW1lSW5mby5icm93c2VyQ2xpZW50LnVwZGF0ZU1vYmlsZVZpZXdwb3J0U2l6ZSgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZS53aWR0aCAgPSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICBydW50aW1lSW5mby52aWV3cG9ydFNpemUuaGVpZ2h0ID0gY3VycmVudEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQucmVzaXplV2luZG93KHsgd2lkdGgsIGhlaWdodCB9KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgc3RhcnRDYXB0dXJpbmdWaWRlbyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJDbGllbnQuc3RhcnRDYXB0dXJpbmdWaWRlbygpO1xuICAgIH0sXG5cbiAgICBhc3luYyBzdG9wQ2FwdHVyaW5nVmlkZW8gKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBhd2FpdCBicm93c2VyQ2xpZW50LnN0b3BDYXB0dXJpbmdWaWRlbygpO1xuICAgIH0sXG5cbiAgICBhc3luYyBnZXRWaWRlb0ZyYW1lRGF0YSAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBicm93c2VyQ2xpZW50LmdldFZpZGVvRnJhbWVEYXRhKCk7XG4gICAgfSxcblxuICAgIGFzeW5jIGhhc0N1c3RvbUFjdGlvbkZvckJyb3dzZXIgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuICAgICAgICBjb25zdCBjbGllbnQgICAgICAgICAgICAgICAgICAgID0gYXdhaXQgYnJvd3NlckNsaWVudC5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGFzQ2xvc2VCcm93c2VyOiAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgaGFzUmVzaXplV2luZG93OiAgICAgICAgICAgICAgICAhIWNsaWVudCAmJiAoY29uZmlnLmVtdWxhdGlvbiB8fCBjb25maWcuaGVhZGxlc3MpLFxuICAgICAgICAgICAgaGFzTWF4aW1pemVXaW5kb3c6ICAgICAgICAgICAgICAhIWNsaWVudCAmJiBjb25maWcuaGVhZGxlc3MsXG4gICAgICAgICAgICBoYXNUYWtlU2NyZWVuc2hvdDogICAgICAgICAgICAgICEhY2xpZW50LFxuICAgICAgICAgICAgaGFzQ2hyb21lbGVzc1NjcmVlbnNob3RzOiAgICAgICAhIWNsaWVudCxcbiAgICAgICAgICAgIGhhc0dldFZpZGVvRnJhbWVEYXRhOiAgICAgICAgICAgISFjbGllbnQsXG4gICAgICAgICAgICBoYXNDYW5SZXNpemVXaW5kb3dUb0RpbWVuc2lvbnM6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBfZW5zdXJlV2luZG93SXNFeHBhbmRlZCAoYnJvd3NlcklkLCB7IGhlaWdodCwgd2lkdGgsIGF2YWlsYWJsZUhlaWdodCwgYXZhaWxhYmxlV2lkdGgsIG91dGVyV2lkdGgsIG91dGVySGVpZ2h0IH0pIHtcbiAgICAgICAgaWYgKGhlaWdodCA8IE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OIHx8IHdpZHRoIDwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04pIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KGF2YWlsYWJsZUhlaWdodCwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04pO1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggID0gTWF0aC5tYXgoTWF0aC5mbG9vcihhdmFpbGFibGVXaWR0aCAvIDIpLCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTik7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVzaXplV2luZG93KGJyb3dzZXJJZCwgbmV3V2lkdGgsIG5ld0hlaWdodCwgb3V0ZXJXaWR0aCwgb3V0ZXJIZWlnaHQpO1xuICAgICAgICB9XG4gICAgfSxcbn07XG4iXX0=
@@ -17,7 +17,7 @@ const LIST_TABS_DELAY = 500;
17
17
  async function start(pageUrl, { browserName, config, cdpPort, tempProfileDir, inDocker }) {
18
18
  const chromeInfo = await testcafe_browser_tools_1.default.getBrowserInfo(config.path || browserName);
19
19
  const chromeOpenParameters = Object.assign({}, chromeInfo);
20
- chromeOpenParameters.cmd = build_chrome_args_1.buildChromeArgs({ config, cdpPort, platformArgs: chromeOpenParameters.cmd, tempProfileDir, inDocker });
20
+ chromeOpenParameters.cmd = (0, build_chrome_args_1.buildChromeArgs)({ config, cdpPort, platformArgs: chromeOpenParameters.cmd, tempProfileDir, inDocker });
21
21
  await browserStarter.startBrowser(chromeOpenParameters, pageUrl);
22
22
  }
23
23
  exports.start = start;
@@ -35,21 +35,21 @@ async function startOnDocker(pageUrl, { browserName, config, cdpPort, tempProfil
35
35
  const timer = new timer_1.default(LIST_TABS_TIMEOUT);
36
36
  //NOTE: We should repeat getting 'List' after a while because we can get an error if the browser isn't ready.
37
37
  while ((error || !tabs.length) && !timer.expired) {
38
- await delay_1.default(LIST_TABS_DELAY);
38
+ await (0, delay_1.default)(LIST_TABS_DELAY);
39
39
  ({ tabs, error } = await tryListTabs(cdpPort));
40
40
  }
41
41
  if (error)
42
42
  throw error;
43
43
  const target = tabs.filter(t => t.type === 'page')[0];
44
- const { Target } = await chrome_remote_interface_1.default({ target, port: cdpPort });
44
+ const { Target } = await (0, chrome_remote_interface_1.default)({ target, port: cdpPort });
45
45
  await Target.createTarget({ url: pageUrl });
46
46
  await chrome_remote_interface_1.default.Close({ id: target.id, port: cdpPort });
47
47
  }
48
48
  exports.startOnDocker = startOnDocker;
49
49
  async function stop({ browserId }) {
50
50
  // NOTE: Chrome on Linux closes only after the second SIGTERM signall
51
- if (!await process_1.killBrowserProcess(browserId))
52
- await process_1.killBrowserProcess(browserId);
51
+ if (!await (0, process_1.killBrowserProcess)(browserId))
52
+ await (0, process_1.killBrowserProcess)(browserId);
53
53
  }
54
54
  exports.stop = stop;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtY2hyb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9sb2NhbC1jaHJvbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0ZBQWtEO0FBQ2xELDBEQUFrRTtBQUNsRSxxRkFBNEQ7QUFDNUQsMkRBQXNEO0FBQ3RELHNGQUFtRDtBQUNuRCx1RUFBK0M7QUFDL0MsdUVBQStDO0FBRS9DLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ2hDLE1BQU0sZUFBZSxHQUFLLEdBQUcsQ0FBQztBQUV2QixLQUFLLFVBQVUsS0FBSyxDQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUU7SUFDNUYsTUFBTSxVQUFVLEdBQWEsTUFBTSxnQ0FBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFM0Qsb0JBQW9CLENBQUMsR0FBRyxHQUFHLG1DQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFbEksTUFBTSxjQUFjLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFQRCxzQkFPQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUUsT0FBTztJQUMvQixJQUFJO1FBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlDQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztLQUMvRDtJQUNELE9BQU8sS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQUUsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRTtJQUNwRyxNQUFNLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUU1RSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sS0FBSyxHQUFXLElBQUksZUFBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFbkQsNkdBQTZHO0lBQzdHLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQzlDLE1BQU0sZUFBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTdCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNsRDtJQUVELElBQUksS0FBSztRQUNMLE1BQU0sS0FBSyxDQUFDO0lBRWhCLE1BQU0sTUFBTSxHQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLGlDQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFakUsTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxpQ0FBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFyQkQsc0NBcUJDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBRSxFQUFFLFNBQVMsRUFBRTtJQUNyQyxxRUFBcUU7SUFDckUsSUFBSSxDQUFDLE1BQU0sNEJBQWtCLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sNEJBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUpELG9CQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJyb3dzZXJUb29scyBmcm9tICd0ZXN0Y2FmZS1icm93c2VyLXRvb2xzJztcbmltcG9ydCB7IGtpbGxCcm93c2VyUHJvY2VzcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3Byb2Nlc3MnO1xuaW1wb3J0IEJyb3dzZXJTdGFydGVyIGZyb20gJy4uLy4uLy4uL3V0aWxzL2Jyb3dzZXItc3RhcnRlcic7XG5pbXBvcnQgeyBidWlsZENocm9tZUFyZ3MgfSBmcm9tICcuL2J1aWxkLWNocm9tZS1hcmdzJztcbmltcG9ydCByZW1vdGVDaHJvbWUgZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuaW1wb3J0IFRpbWVyIGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3RpbWVyJztcbmltcG9ydCBkZWxheSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscy9kZWxheSc7XG5cbmNvbnN0IGJyb3dzZXJTdGFydGVyID0gbmV3IEJyb3dzZXJTdGFydGVyKCk7XG5cbmNvbnN0IExJU1RfVEFCU19USU1FT1VUID0gMTAwMDA7XG5jb25zdCBMSVNUX1RBQlNfREVMQVkgICA9IDUwMDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0IChwYWdlVXJsLCB7IGJyb3dzZXJOYW1lLCBjb25maWcsIGNkcFBvcnQsIHRlbXBQcm9maWxlRGlyLCBpbkRvY2tlciB9KSB7XG4gICAgY29uc3QgY2hyb21lSW5mbyAgICAgICAgICAgPSBhd2FpdCBicm93c2VyVG9vbHMuZ2V0QnJvd3NlckluZm8oY29uZmlnLnBhdGggfHwgYnJvd3Nlck5hbWUpO1xuICAgIGNvbnN0IGNocm9tZU9wZW5QYXJhbWV0ZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgY2hyb21lSW5mbyk7XG5cbiAgICBjaHJvbWVPcGVuUGFyYW1ldGVycy5jbWQgPSBidWlsZENocm9tZUFyZ3MoeyBjb25maWcsIGNkcFBvcnQsIHBsYXRmb3JtQXJnczogY2hyb21lT3BlblBhcmFtZXRlcnMuY21kLCB0ZW1wUHJvZmlsZURpciwgaW5Eb2NrZXIgfSk7XG5cbiAgICBhd2FpdCBicm93c2VyU3RhcnRlci5zdGFydEJyb3dzZXIoY2hyb21lT3BlblBhcmFtZXRlcnMsIHBhZ2VVcmwpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0cnlMaXN0VGFicyAoY2RwUG9ydCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB7IHRhYnM6IGF3YWl0IHJlbW90ZUNocm9tZS5MaXN0KHsgcG9ydDogY2RwUG9ydCB9KSB9O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHsgZXJyb3IgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydE9uRG9ja2VyIChwYWdlVXJsLCB7IGJyb3dzZXJOYW1lLCBjb25maWcsIGNkcFBvcnQsIHRlbXBQcm9maWxlRGlyLCBpbkRvY2tlciB9KSB7XG4gICAgYXdhaXQgc3RhcnQoJycsIHsgYnJvd3Nlck5hbWUsIGNvbmZpZywgY2RwUG9ydCwgdGVtcFByb2ZpbGVEaXIsIGluRG9ja2VyIH0pO1xuXG4gICAgbGV0IHsgdGFicywgZXJyb3IgfSA9IGF3YWl0IHRyeUxpc3RUYWJzKGNkcFBvcnQpO1xuICAgIGNvbnN0IHRpbWVyICAgICAgICAgPSBuZXcgVGltZXIoTElTVF9UQUJTX1RJTUVPVVQpO1xuXG4gICAgLy9OT1RFOiBXZSBzaG91bGQgcmVwZWF0IGdldHRpbmcgJ0xpc3QnIGFmdGVyIGEgd2hpbGUgYmVjYXVzZSB3ZSBjYW4gZ2V0IGFuIGVycm9yIGlmIHRoZSBicm93c2VyIGlzbid0IHJlYWR5LlxuICAgIHdoaWxlICgoZXJyb3IgfHwgIXRhYnMubGVuZ3RoKSAmJiAhdGltZXIuZXhwaXJlZCkge1xuICAgICAgICBhd2FpdCBkZWxheShMSVNUX1RBQlNfREVMQVkpO1xuXG4gICAgICAgICh7IHRhYnMsIGVycm9yIH0gPSBhd2FpdCB0cnlMaXN0VGFicyhjZHBQb3J0KSk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvcjtcblxuICAgIGNvbnN0IHRhcmdldCAgICAgPSB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnKVswXTtcbiAgICBjb25zdCB7IFRhcmdldCB9ID0gYXdhaXQgcmVtb3RlQ2hyb21lKHsgdGFyZ2V0LCBwb3J0OiBjZHBQb3J0IH0pO1xuXG4gICAgYXdhaXQgVGFyZ2V0LmNyZWF0ZVRhcmdldCh7IHVybDogcGFnZVVybCB9KTtcbiAgICBhd2FpdCByZW1vdGVDaHJvbWUuQ2xvc2UoeyBpZDogdGFyZ2V0LmlkLCBwb3J0OiBjZHBQb3J0IH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RvcCAoeyBicm93c2VySWQgfSkge1xuICAgIC8vIE5PVEU6IENocm9tZSBvbiBMaW51eCBjbG9zZXMgb25seSBhZnRlciB0aGUgc2Vjb25kIFNJR1RFUk0gc2lnbmFsbFxuICAgIGlmICghYXdhaXQga2lsbEJyb3dzZXJQcm9jZXNzKGJyb3dzZXJJZCkpXG4gICAgICAgIGF3YWl0IGtpbGxCcm93c2VyUHJvY2Vzcyhicm93c2VySWQpO1xufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtY2hyb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9sb2NhbC1jaHJvbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0ZBQWtEO0FBQ2xELDBEQUFrRTtBQUNsRSxxRkFBNEQ7QUFDNUQsMkRBQXNEO0FBQ3RELHNGQUFtRDtBQUNuRCx1RUFBK0M7QUFDL0MsdUVBQStDO0FBRS9DLE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ2hDLE1BQU0sZUFBZSxHQUFLLEdBQUcsQ0FBQztBQUV2QixLQUFLLFVBQVUsS0FBSyxDQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUU7SUFDNUYsTUFBTSxVQUFVLEdBQWEsTUFBTSxnQ0FBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFM0Qsb0JBQW9CLENBQUMsR0FBRyxHQUFHLElBQUEsbUNBQWUsRUFBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUVsSSxNQUFNLGNBQWMsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQVBELHNCQU9DO0FBRUQsS0FBSyxVQUFVLFdBQVcsQ0FBRSxPQUFPO0lBQy9CLElBQUk7UUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUNBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0tBQy9EO0lBQ0QsT0FBTyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDcEI7QUFDTCxDQUFDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFO0lBQ3BHLE1BQU0sS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRTVFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxLQUFLLEdBQVcsSUFBSSxlQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVuRCw2R0FBNkc7SUFDN0csT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDOUMsTUFBTSxJQUFBLGVBQUssRUFBQyxlQUFlLENBQUMsQ0FBQztRQUU3QixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDbEQ7SUFFRCxJQUFJLEtBQUs7UUFDTCxNQUFNLEtBQUssQ0FBQztJQUVoQixNQUFNLE1BQU0sR0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGlDQUFZLEVBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFakUsTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxpQ0FBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFyQkQsc0NBcUJDO0FBRU0sS0FBSyxVQUFVLElBQUksQ0FBRSxFQUFFLFNBQVMsRUFBRTtJQUNyQyxxRUFBcUU7SUFDckUsSUFBSSxDQUFDLE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxTQUFTLENBQUM7UUFDcEMsTUFBTSxJQUFBLDRCQUFrQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFKRCxvQkFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBicm93c2VyVG9vbHMgZnJvbSAndGVzdGNhZmUtYnJvd3Nlci10b29scyc7XG5pbXBvcnQgeyBraWxsQnJvd3NlclByb2Nlc3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscy9wcm9jZXNzJztcbmltcG9ydCBCcm93c2VyU3RhcnRlciBmcm9tICcuLi8uLi8uLi91dGlscy9icm93c2VyLXN0YXJ0ZXInO1xuaW1wb3J0IHsgYnVpbGRDaHJvbWVBcmdzIH0gZnJvbSAnLi9idWlsZC1jaHJvbWUtYXJncyc7XG5pbXBvcnQgcmVtb3RlQ2hyb21lIGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCBUaW1lciBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscy90aW1lcic7XG5pbXBvcnQgZGVsYXkgZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvZGVsYXknO1xuXG5jb25zdCBicm93c2VyU3RhcnRlciA9IG5ldyBCcm93c2VyU3RhcnRlcigpO1xuXG5jb25zdCBMSVNUX1RBQlNfVElNRU9VVCA9IDEwMDAwO1xuY29uc3QgTElTVF9UQUJTX0RFTEFZICAgPSA1MDA7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydCAocGFnZVVybCwgeyBicm93c2VyTmFtZSwgY29uZmlnLCBjZHBQb3J0LCB0ZW1wUHJvZmlsZURpciwgaW5Eb2NrZXIgfSkge1xuICAgIGNvbnN0IGNocm9tZUluZm8gICAgICAgICAgID0gYXdhaXQgYnJvd3NlclRvb2xzLmdldEJyb3dzZXJJbmZvKGNvbmZpZy5wYXRoIHx8IGJyb3dzZXJOYW1lKTtcbiAgICBjb25zdCBjaHJvbWVPcGVuUGFyYW1ldGVycyA9IE9iamVjdC5hc3NpZ24oe30sIGNocm9tZUluZm8pO1xuXG4gICAgY2hyb21lT3BlblBhcmFtZXRlcnMuY21kID0gYnVpbGRDaHJvbWVBcmdzKHsgY29uZmlnLCBjZHBQb3J0LCBwbGF0Zm9ybUFyZ3M6IGNocm9tZU9wZW5QYXJhbWV0ZXJzLmNtZCwgdGVtcFByb2ZpbGVEaXIsIGluRG9ja2VyIH0pO1xuXG4gICAgYXdhaXQgYnJvd3NlclN0YXJ0ZXIuc3RhcnRCcm93c2VyKGNocm9tZU9wZW5QYXJhbWV0ZXJzLCBwYWdlVXJsKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdHJ5TGlzdFRhYnMgKGNkcFBvcnQpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4geyB0YWJzOiBhd2FpdCByZW1vdGVDaHJvbWUuTGlzdCh7IHBvcnQ6IGNkcFBvcnQgfSkgfTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiB7IGVycm9yIH07XG4gICAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRPbkRvY2tlciAocGFnZVVybCwgeyBicm93c2VyTmFtZSwgY29uZmlnLCBjZHBQb3J0LCB0ZW1wUHJvZmlsZURpciwgaW5Eb2NrZXIgfSkge1xuICAgIGF3YWl0IHN0YXJ0KCcnLCB7IGJyb3dzZXJOYW1lLCBjb25maWcsIGNkcFBvcnQsIHRlbXBQcm9maWxlRGlyLCBpbkRvY2tlciB9KTtcblxuICAgIGxldCB7IHRhYnMsIGVycm9yIH0gPSBhd2FpdCB0cnlMaXN0VGFicyhjZHBQb3J0KTtcbiAgICBjb25zdCB0aW1lciAgICAgICAgID0gbmV3IFRpbWVyKExJU1RfVEFCU19USU1FT1VUKTtcblxuICAgIC8vTk9URTogV2Ugc2hvdWxkIHJlcGVhdCBnZXR0aW5nICdMaXN0JyBhZnRlciBhIHdoaWxlIGJlY2F1c2Ugd2UgY2FuIGdldCBhbiBlcnJvciBpZiB0aGUgYnJvd3NlciBpc24ndCByZWFkeS5cbiAgICB3aGlsZSAoKGVycm9yIHx8ICF0YWJzLmxlbmd0aCkgJiYgIXRpbWVyLmV4cGlyZWQpIHtcbiAgICAgICAgYXdhaXQgZGVsYXkoTElTVF9UQUJTX0RFTEFZKTtcblxuICAgICAgICAoeyB0YWJzLCBlcnJvciB9ID0gYXdhaXQgdHJ5TGlzdFRhYnMoY2RwUG9ydCkpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcilcbiAgICAgICAgdGhyb3cgZXJyb3I7XG5cbiAgICBjb25zdCB0YXJnZXQgICAgID0gdGFicy5maWx0ZXIodCA9PiB0LnR5cGUgPT09ICdwYWdlJylbMF07XG4gICAgY29uc3QgeyBUYXJnZXQgfSA9IGF3YWl0IHJlbW90ZUNocm9tZSh7IHRhcmdldCwgcG9ydDogY2RwUG9ydCB9KTtcblxuICAgIGF3YWl0IFRhcmdldC5jcmVhdGVUYXJnZXQoeyB1cmw6IHBhZ2VVcmwgfSk7XG4gICAgYXdhaXQgcmVtb3RlQ2hyb21lLkNsb3NlKHsgaWQ6IHRhcmdldC5pZCwgcG9ydDogY2RwUG9ydCB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0b3AgKHsgYnJvd3NlcklkIH0pIHtcbiAgICAvLyBOT1RFOiBDaHJvbWUgb24gTGludXggY2xvc2VzIG9ubHkgYWZ0ZXIgdGhlIHNlY29uZCBTSUdURVJNIHNpZ25hbGxcbiAgICBpZiAoIWF3YWl0IGtpbGxCcm93c2VyUHJvY2Vzcyhicm93c2VySWQpKVxuICAgICAgICBhd2FpdCBraWxsQnJvd3NlclByb2Nlc3MoYnJvd3NlcklkKTtcbn1cbiJdfQ==
@@ -11,20 +11,20 @@ class ChromeRuntimeInfo {
11
11
  this.config = config;
12
12
  this.tempProfileDir = null;
13
13
  this.cdpPort = this.config.cdpPort;
14
- this.inDocker = is_docker_1.default();
14
+ this.inDocker = (0, is_docker_1.default)();
15
15
  }
16
16
  async createTempProfile(proxyHostName, disableMultipleWindows) {
17
- return await create_temp_profile_1.default(proxyHostName, disableMultipleWindows);
17
+ return await (0, create_temp_profile_1.default)(proxyHostName, disableMultipleWindows);
18
18
  }
19
19
  static async create(proxyHostName, config, disableMultipleWindows) {
20
20
  const runtimeInfo = new this(config);
21
21
  if (!runtimeInfo.config.userProfile)
22
22
  runtimeInfo.tempProfileDir = await runtimeInfo.createTempProfile(proxyHostName, disableMultipleWindows);
23
23
  if (!runtimeInfo.cdpPort && !runtimeInfo.config.userProfile)
24
- runtimeInfo.cdpPort = await endpoint_utils_1.getFreePort();
24
+ runtimeInfo.cdpPort = await (0, endpoint_utils_1.getFreePort)();
25
25
  return runtimeInfo;
26
26
  }
27
27
  }
28
28
  exports.default = ChromeRuntimeInfo;
29
29
  module.exports = exports.default;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9ydW50aW1lLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFBNkM7QUFDN0MsZ0ZBQXNEO0FBQ3RELDBEQUFpQztBQUlqQyxNQUFxQixpQkFBaUI7SUFPbEMsWUFBdUIsTUFBYztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFXLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQVMsbUJBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFUyxLQUFLLENBQUMsaUJBQWlCLENBQUUsYUFBcUIsRUFBRSxzQkFBK0I7UUFDckYsT0FBTyxNQUFNLDZCQUFpQixDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBRSxhQUFxQixFQUFFLE1BQWMsRUFBRSxzQkFBK0I7UUFDOUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUMvQixXQUFXLENBQUMsY0FBYyxHQUFHLE1BQU0sV0FBVyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ3ZELFdBQVcsQ0FBQyxPQUFPLEdBQUcsTUFBTSw0QkFBVyxFQUFFLENBQUM7UUFFOUMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKO0FBN0JELG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZyZWVQb3J0IH0gZnJvbSAnZW5kcG9pbnQtdXRpbHMnO1xuaW1wb3J0IGNyZWF0ZVRlbXBQcm9maWxlIGZyb20gJy4vY3JlYXRlLXRlbXAtcHJvZmlsZSc7XG5pbXBvcnQgaXNEb2NrZXIgZnJvbSAnaXMtZG9ja2VyJztcbmltcG9ydCBUZW1wRGlyZWN0b3J5IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3RlbXAtZGlyZWN0b3J5JztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENocm9tZVJ1bnRpbWVJbmZvIHtcbiAgICBwdWJsaWMgY29uZmlnOiBDb25maWc7XG4gICAgcHVibGljIHRlbXBQcm9maWxlRGlyOiBudWxsIHwgVGVtcERpcmVjdG9yeTtcbiAgICBwdWJsaWMgY2RwUG9ydDogbnVtYmVyO1xuICAgIHB1YmxpYyBpbkRvY2tlcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgYnJvd3Nlck5hbWU/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IgKGNvbmZpZzogQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnICAgICAgICAgPSBjb25maWc7XG4gICAgICAgIHRoaXMudGVtcFByb2ZpbGVEaXIgPSBudWxsO1xuICAgICAgICB0aGlzLmNkcFBvcnQgICAgICAgID0gdGhpcy5jb25maWcuY2RwUG9ydDtcbiAgICAgICAgdGhpcy5pbkRvY2tlciAgICAgICA9IGlzRG9ja2VyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVRlbXBQcm9maWxlIChwcm94eUhvc3ROYW1lOiBzdHJpbmcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3M6IGJvb2xlYW4pOiBQcm9taXNlPFRlbXBEaXJlY3Rvcnk+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVRlbXBQcm9maWxlKHByb3h5SG9zdE5hbWUsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlIChwcm94eUhvc3ROYW1lOiBzdHJpbmcsIGNvbmZpZzogQ29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzOiBib29sZWFuKTogUHJvbWlzZTxDaHJvbWVSdW50aW1lSW5mbz4ge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IG5ldyB0aGlzKGNvbmZpZyk7XG5cbiAgICAgICAgaWYgKCFydW50aW1lSW5mby5jb25maWcudXNlclByb2ZpbGUpXG4gICAgICAgICAgICBydW50aW1lSW5mby50ZW1wUHJvZmlsZURpciA9IGF3YWl0IHJ1bnRpbWVJbmZvLmNyZWF0ZVRlbXBQcm9maWxlKHByb3h5SG9zdE5hbWUsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuXG4gICAgICAgIGlmICghcnVudGltZUluZm8uY2RwUG9ydCAmJiAhcnVudGltZUluZm8uY29uZmlnLnVzZXJQcm9maWxlKVxuICAgICAgICAgICAgcnVudGltZUluZm8uY2RwUG9ydCA9IGF3YWl0IGdldEZyZWVQb3J0KCk7XG5cbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVJbmZvO1xuICAgIH1cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9ydW50aW1lLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFBNkM7QUFDN0MsZ0ZBQXNEO0FBQ3RELDBEQUFpQztBQUlqQyxNQUFxQixpQkFBaUI7SUFPbEMsWUFBdUIsTUFBYztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFXLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQVMsSUFBQSxtQkFBUSxHQUFFLENBQUM7SUFDckMsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBRSxhQUFxQixFQUFFLHNCQUErQjtRQUNyRixPQUFPLE1BQU0sSUFBQSw2QkFBaUIsRUFBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUUsYUFBcUIsRUFBRSxNQUFjLEVBQUUsc0JBQStCO1FBQzlGLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDL0IsV0FBVyxDQUFDLGNBQWMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUU1RyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUN2RCxXQUFXLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBQSw0QkFBVyxHQUFFLENBQUM7UUFFOUMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKO0FBN0JELG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZyZWVQb3J0IH0gZnJvbSAnZW5kcG9pbnQtdXRpbHMnO1xuaW1wb3J0IGNyZWF0ZVRlbXBQcm9maWxlIGZyb20gJy4vY3JlYXRlLXRlbXAtcHJvZmlsZSc7XG5pbXBvcnQgaXNEb2NrZXIgZnJvbSAnaXMtZG9ja2VyJztcbmltcG9ydCBUZW1wRGlyZWN0b3J5IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL3RlbXAtZGlyZWN0b3J5JztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENocm9tZVJ1bnRpbWVJbmZvIHtcbiAgICBwdWJsaWMgY29uZmlnOiBDb25maWc7XG4gICAgcHVibGljIHRlbXBQcm9maWxlRGlyOiBudWxsIHwgVGVtcERpcmVjdG9yeTtcbiAgICBwdWJsaWMgY2RwUG9ydDogbnVtYmVyO1xuICAgIHB1YmxpYyBpbkRvY2tlcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgYnJvd3Nlck5hbWU/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IgKGNvbmZpZzogQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnICAgICAgICAgPSBjb25maWc7XG4gICAgICAgIHRoaXMudGVtcFByb2ZpbGVEaXIgPSBudWxsO1xuICAgICAgICB0aGlzLmNkcFBvcnQgICAgICAgID0gdGhpcy5jb25maWcuY2RwUG9ydDtcbiAgICAgICAgdGhpcy5pbkRvY2tlciAgICAgICA9IGlzRG9ja2VyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVRlbXBQcm9maWxlIChwcm94eUhvc3ROYW1lOiBzdHJpbmcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3M6IGJvb2xlYW4pOiBQcm9taXNlPFRlbXBEaXJlY3Rvcnk+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVRlbXBQcm9maWxlKHByb3h5SG9zdE5hbWUsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlIChwcm94eUhvc3ROYW1lOiBzdHJpbmcsIGNvbmZpZzogQ29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzOiBib29sZWFuKTogUHJvbWlzZTxDaHJvbWVSdW50aW1lSW5mbz4ge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IG5ldyB0aGlzKGNvbmZpZyk7XG5cbiAgICAgICAgaWYgKCFydW50aW1lSW5mby5jb25maWcudXNlclByb2ZpbGUpXG4gICAgICAgICAgICBydW50aW1lSW5mby50ZW1wUHJvZmlsZURpciA9IGF3YWl0IHJ1bnRpbWVJbmZvLmNyZWF0ZVRlbXBQcm9maWxlKHByb3h5SG9zdE5hbWUsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpO1xuXG4gICAgICAgIGlmICghcnVudGltZUluZm8uY2RwUG9ydCAmJiAhcnVudGltZUluZm8uY29uZmlnLnVzZXJQcm9maWxlKVxuICAgICAgICAgICAgcnVudGltZUluZm8uY2RwUG9ydCA9IGF3YWl0IGdldEZyZWVQb3J0KCk7XG5cbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVJbmZvO1xuICAgIH1cbn1cbiJdfQ==