appium-safari-driver 3.1.3 → 3.2.2

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.
@@ -1,10 +1,10 @@
1
1
  # https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/macos/
2
2
  variables:
3
- VM_IMAGE: macOS-10.15
4
- XCODE_VERSION: 12.1
5
- PLATFORM_VERSION: 14.1
6
- DEVICE_NAME: iPhone 11 Pro Max
7
- DEFAULT_NODE_VERSION: "12.x"
3
+ VM_IMAGE: macOS-12
4
+ XCODE_VERSION: 13.4
5
+ PLATFORM_VERSION: 15.5
6
+ DEVICE_NAME: iPhone 12
7
+ DEFAULT_NODE_VERSION: "16.x"
8
8
 
9
9
  pool:
10
10
  vmImage: "$(VM_IMAGE)"
@@ -15,7 +15,9 @@ stages:
15
15
  - job: Node_Unit_Tests
16
16
  steps:
17
17
  - template: azure-templates/node_setup_steps.yml
18
- - script: npm install
18
+ - script: |
19
+ npm install -g appium@next
20
+ npm install
19
21
  - script: npm run test
20
22
 
21
23
  - stage: Integration_Tests
@@ -26,5 +28,26 @@ stages:
26
28
  _FORCE_LOGS: 1
27
29
  steps:
28
30
  - template: azure-templates/node_setup_steps.yml
29
- - script: npm install
30
- - script: npm run e2e-test
31
+ - script: |
32
+ npm install -g appium@next
33
+ npm install
34
+ - script: |
35
+ export APPIUM_TEST_SERVER_PORT=4567
36
+ export APPIUM_TEST_SERVER_HOST=127.0.0.1
37
+ export cwd=$(pwd)
38
+ pushd "$cwd"
39
+ cd ~
40
+ appium driver install --source=local "$cwd"
41
+ appium server --port=$APPIUM_TEST_SERVER_PORT --address=$APPIUM_TEST_SERVER_HOST &
42
+ popd
43
+ secondsStarted=$(date +%s)
44
+ while ! nc -z $APPIUM_TEST_SERVER_HOST $APPIUM_TEST_SERVER_PORT; do
45
+ sleep 0.1
46
+ secondsElapsed=$(( $(date +%s) - secondsStarted ))
47
+ if [[ $secondsElapsed -gt 30 ]]; then
48
+ echo "Appium server was unable to start within 30 seconds timeout"
49
+ exit 1
50
+ fi
51
+ done
52
+
53
+ npm run e2e-test
@@ -10,18 +10,25 @@ jobs:
10
10
  runs-on: macos-latest
11
11
  steps:
12
12
  - uses: actions/checkout@v2
13
- - name: Use Node.js 14.x
13
+ - name: Use Node.js 16.x
14
14
  uses: actions/setup-node@v1
15
15
  with:
16
- node-version: 14.x
17
- - run: npm install --production
18
- name: Install prod dependencies
19
- - run: rm -rf package-lock.json
20
- - run: npm shrinkwrap
21
- - run: npm install --no-package-lock
22
- name: Install dev dependencies
16
+ node-version: 16.x
17
+ - name: install newer npm
18
+ run: npm install -g npm
19
+ - run: npm install
20
+ name: Install dependencies
23
21
  - run: npm test
24
22
  name: Run NPM Test
23
+ - run: |
24
+ rm -rf package-lock.json
25
+ npm prune --production
26
+ rm -rf node_modules/appium
27
+ name: Remove dev dependencies and appium peer dependencies
28
+ - run: npm shrinkwrap
29
+ name: Create shrinkwrap
30
+ - run: npm install --only=dev
31
+ name: Install dev dependencies for the release
25
32
  - run: npx semantic-release
26
33
  env:
27
34
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/README.md CHANGED
@@ -49,43 +49,40 @@ import pytest
49
49
  import time
50
50
 
51
51
  from appium import webdriver
52
+ # Options are available in Python client since v2.6.0
53
+ from appium.options.ios import SafariOptions
52
54
  from selenium.webdriver.common.by import By
53
55
 
54
56
 
55
- def generate_caps():
57
+ def generate_options():
56
58
  common_caps = {
57
59
  # It does not really matter what to put there, although setting 'Safari' might cause a failure
58
60
  # depending on the particular client library
59
61
  'browserName': 'AppiumSafari',
60
- # automationName capability presence is mandatory for this Safari Driver to be selected
61
- 'automationName': 'Safari',
62
62
  }
63
- real_device_caps = {
64
- **common_caps,
65
- 'platformName': 'iOS',
66
- # This capability is optional
67
- 'safari:deviceType': 'iPhone',
68
- # Do not forget to verify that Remote Automation is enabled for this device
69
- 'safari:deviceUDID': '<MyDeviceUDID>',
70
- 'safari:useSimulator': False,
71
- }
72
- simulator_caps = {
73
- **common_caps,
74
- 'platformName': 'iOS',
75
- 'safari:platformVersion': '14.1',
76
- 'safari:deviceName': 'iPad Air 2',
77
- 'safari:useSimulator': True,
78
- }
79
- desktop_browser_caps = {
63
+ real_device_opts = SafariOptions().load_capabilities(common_caps)
64
+ # This is optional
65
+ real_device_opts.device_type = 'iPhone'
66
+ # Do not forget to verify that Remote Automation is enabled for this device
67
+ real_device_opts.device_udid = '<MyDeviceUDID>'
68
+ real_device_opts.use_simulator = False
69
+
70
+ simulator_opts = SafariOptions().load_capabilities(common_caps)
71
+ simulator_opts.platform_version = '14.1'
72
+ simulator_opts.device_name = 'iPad Air 2'
73
+ simulator_opts.use_simulator = True
74
+
75
+ desktop_browser_opts = SafariOptions().load_capabilities({
80
76
  **common_caps,
81
77
  'platformName': 'Mac',
82
- }
83
- return [real_device_caps, simulator_caps, desktop_browser_caps]
78
+ })
79
+ return [real_device_opts, simulator_opts, desktop_browser_opts]
84
80
 
85
81
 
86
- @pytest.fixture(params=generate_caps())
82
+ @pytest.fixture(params=generate_options())
87
83
  def driver(request):
88
- drv = webdriver.Remote('http://localhost:4723/wd/hub', request.param)
84
+ # The default URL is http://127.0.0.1:4723/wd/hub in Appium1
85
+ drv = webdriver.Remote('http://127.0.0.1:4723', options=request.param)
89
86
  yield drv
90
87
  drv.quit()
91
88
 
package/build/index.js CHANGED
@@ -12,41 +12,13 @@ Object.defineProperty(exports, "SafariDriver", {
12
12
  }
13
13
  });
14
14
  exports.default = void 0;
15
- Object.defineProperty(exports, "startServer", {
16
- enumerable: true,
17
- get: function () {
18
- return _server.startServer;
19
- }
20
- });
21
15
 
22
16
  require("source-map-support/register");
23
17
 
24
18
  var _driver = _interopRequireDefault(require("./lib/driver"));
25
19
 
26
- var _server = require("./lib/server");
27
-
28
- var _asyncbox = require("asyncbox");
29
-
30
- const DEFAULT_HOST = 'localhost';
31
- const DEFAULT_PORT = 4797;
32
-
33
- async function main() {
34
- const getArgValue = argName => {
35
- const argIndex = process.argv.indexOf(argName);
36
- return argIndex > 0 ? process.argv[argIndex + 1] : null;
37
- };
38
-
39
- const port = parseInt(getArgValue('--port'), 10) || DEFAULT_PORT;
40
- const host = getArgValue('--host') || DEFAULT_HOST;
41
- return await (0, _server.startServer)(port, host);
42
- }
43
-
44
- if (require.main === module) {
45
- (0, _asyncbox.asyncify)(main);
46
- }
47
-
48
20
  var _default = _driver.default;
49
21
  exports.default = _default;require('source-map-support').install();
50
22
 
51
23
 
52
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJERUZBVUxUX0hPU1QiLCJERUZBVUxUX1BPUlQiLCJtYWluIiwiZ2V0QXJnVmFsdWUiLCJhcmdOYW1lIiwiYXJnSW5kZXgiLCJwcm9jZXNzIiwiYXJndiIsImluZGV4T2YiLCJwb3J0IiwicGFyc2VJbnQiLCJob3N0IiwicmVxdWlyZSIsIm1vZHVsZSIsIlNhZmFyaURyaXZlciJdLCJzb3VyY2VSb290IjoiLi4iLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTYWZhcmlEcml2ZXIgZnJvbSAnLi9saWIvZHJpdmVyJztcbmltcG9ydCB7IHN0YXJ0U2VydmVyIH0gZnJvbSAnLi9saWIvc2VydmVyJztcbmltcG9ydCB7IGFzeW5jaWZ5IH0gZnJvbSAnYXN5bmNib3gnO1xuXG5jb25zdCBERUZBVUxUX0hPU1QgPSAnbG9jYWxob3N0JztcbmNvbnN0IERFRkFVTFRfUE9SVCA9IDQ3OTc7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4gKCkge1xuICBjb25zdCBnZXRBcmdWYWx1ZSA9IChhcmdOYW1lKSA9PiB7XG4gICAgY29uc3QgYXJnSW5kZXggPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZihhcmdOYW1lKTtcbiAgICByZXR1cm4gYXJnSW5kZXggPiAwID8gcHJvY2Vzcy5hcmd2W2FyZ0luZGV4ICsgMV0gOiBudWxsO1xuICB9O1xuICBjb25zdCBwb3J0ID0gcGFyc2VJbnQoZ2V0QXJnVmFsdWUoJy0tcG9ydCcpLCAxMCkgfHwgREVGQVVMVF9QT1JUO1xuICBjb25zdCBob3N0ID0gZ2V0QXJnVmFsdWUoJy0taG9zdCcpIHx8IERFRkFVTFRfSE9TVDtcbiAgcmV0dXJuIGF3YWl0IHN0YXJ0U2VydmVyKHBvcnQsIGhvc3QpO1xufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgYXN5bmNpZnkobWFpbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlcjtcbmV4cG9ydCB7IFNhZmFyaURyaXZlciwgc3RhcnRTZXJ2ZXIgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxZQUFZLEdBQUcsV0FBckI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsSUFBckI7O0FBRUEsZUFBZUMsSUFBZixHQUF1QjtFQUNyQixNQUFNQyxXQUFXLEdBQUlDLE9BQUQsSUFBYTtJQUMvQixNQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxPQUFiLENBQXFCSixPQUFyQixDQUFqQjtJQUNBLE9BQU9DLFFBQVEsR0FBRyxDQUFYLEdBQWVDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhRixRQUFRLEdBQUcsQ0FBeEIsQ0FBZixHQUE0QyxJQUFuRDtFQUNELENBSEQ7O0VBSUEsTUFBTUksSUFBSSxHQUFHQyxRQUFRLENBQUNQLFdBQVcsQ0FBQyxRQUFELENBQVosRUFBd0IsRUFBeEIsQ0FBUixJQUF1Q0YsWUFBcEQ7RUFDQSxNQUFNVSxJQUFJLEdBQUdSLFdBQVcsQ0FBQyxRQUFELENBQVgsSUFBeUJILFlBQXRDO0VBQ0EsT0FBTyxNQUFNLHlCQUFZUyxJQUFaLEVBQWtCRSxJQUFsQixDQUFiO0FBQ0Q7O0FBRUQsSUFBSUMsT0FBTyxDQUFDVixJQUFSLEtBQWlCVyxNQUFyQixFQUE2QjtFQUMzQix3QkFBU1gsSUFBVDtBQUNEOztlQUVjWSxlIn0=
24
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJTYWZhcmlEcml2ZXIiXSwic291cmNlUm9vdCI6Ii4uIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU2FmYXJpRHJpdmVyIGZyb20gJy4vbGliL2RyaXZlcic7XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlcjtcbmV4cG9ydCB7IFNhZmFyaURyaXZlciB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztlQUVlQSxlIn0=
@@ -7,7 +7,7 @@ exports.default = exports.commands = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _support = require("@appium/support");
10
+ var _support = require("appium/support");
11
11
 
12
12
  const commands = {};
13
13
  exports.commands = commands;
@@ -25,4 +25,4 @@ var _default = commands;
25
25
  exports.default = _default;require('source-map-support').install();
26
26
 
27
27
 
28
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbmQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImZpbmRFbE9yRWxzIiwic3RyYXRlZ3kiLCJzZWxlY3RvciIsIm11bHQiLCJjb250ZXh0IiwidXRpbCIsInVud3JhcEVsZW1lbnQiLCJlbmRwb2ludCIsInNhZmFyaSIsInByb3h5IiwiY29tbWFuZCIsInVzaW5nIiwidmFsdWUiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZmluZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vLyBUaGlzIGlzIG5lZWRlZCB0byBtYWtlIGxvb2t1cCBieSBpbWFnZSB3b3JraW5nXG5jb21tYW5kcy5maW5kRWxPckVscyA9IGFzeW5jIGZ1bmN0aW9uIGZpbmRFbE9yRWxzIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IHV0aWwudW53cmFwRWxlbWVudChjb250ZXh0KTtcbiAgY29uc3QgZW5kcG9pbnQgPSBgL2VsZW1lbnQke2NvbnRleHQgPyBgLyR7Y29udGV4dH0vZWxlbWVudGAgOiAnJ30ke211bHQgPyAncycgOiAnJ31gO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLnNhZmFyaS5wcm94eS5jb21tYW5kKGVuZHBvaW50LCAnUE9TVCcsIHtcbiAgICB1c2luZzogc3RyYXRlZ3ksXG4gICAgdmFsdWU6IHNlbGVjdG9yLFxuICB9KTtcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQUdBQSxRQUFRLENBQUNDLFdBQVQsR0FBdUIsZUFBZUEsV0FBZixDQUE0QkMsUUFBNUIsRUFBc0NDLFFBQXRDLEVBQWdEQyxJQUFoRCxFQUFzREMsT0FBdEQsRUFBK0Q7RUFDcEZBLE9BQU8sR0FBR0MsY0FBS0MsYUFBTCxDQUFtQkYsT0FBbkIsQ0FBVjtFQUNBLE1BQU1HLFFBQVEsR0FBSSxXQUFVSCxPQUFPLEdBQUksSUFBR0EsT0FBUSxVQUFmLEdBQTJCLEVBQUcsR0FBRUQsSUFBSSxHQUFHLEdBQUgsR0FBUyxFQUFHLEVBQW5GO0VBRUEsT0FBTyxNQUFNLEtBQUtLLE1BQUwsQ0FBWUMsS0FBWixDQUFrQkMsT0FBbEIsQ0FBMEJILFFBQTFCLEVBQW9DLE1BQXBDLEVBQTRDO0lBQ3ZESSxLQUFLLEVBQUVWLFFBRGdEO0lBRXZEVyxLQUFLLEVBQUVWO0VBRmdELENBQTVDLENBQWI7QUFJRCxDQVJEOztlQVllSCxRIn0=
28
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbmQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImZpbmRFbE9yRWxzIiwic3RyYXRlZ3kiLCJzZWxlY3RvciIsIm11bHQiLCJjb250ZXh0IiwidXRpbCIsInVud3JhcEVsZW1lbnQiLCJlbmRwb2ludCIsInNhZmFyaSIsInByb3h5IiwiY29tbWFuZCIsInVzaW5nIiwidmFsdWUiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZmluZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8vIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgbG9va3VwIGJ5IGltYWdlIHdvcmtpbmdcbmNvbW1hbmRzLmZpbmRFbE9yRWxzID0gYXN5bmMgZnVuY3Rpb24gZmluZEVsT3JFbHMgKHN0cmF0ZWd5LCBzZWxlY3RvciwgbXVsdCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gdXRpbC51bndyYXBFbGVtZW50KGNvbnRleHQpO1xuICBjb25zdCBlbmRwb2ludCA9IGAvZWxlbWVudCR7Y29udGV4dCA/IGAvJHtjb250ZXh0fS9lbGVtZW50YCA6ICcnfSR7bXVsdCA/ICdzJyA6ICcnfWA7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuc2FmYXJpLnByb3h5LmNvbW1hbmQoZW5kcG9pbnQsICdQT1NUJywge1xuICAgIHVzaW5nOiBzdHJhdGVneSxcbiAgICB2YWx1ZTogc2VsZWN0b3IsXG4gIH0pO1xufTtcblxuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7O0FBR0FBLFFBQVEsQ0FBQ0MsV0FBVCxHQUF1QixlQUFlQSxXQUFmLENBQTRCQyxRQUE1QixFQUFzQ0MsUUFBdEMsRUFBZ0RDLElBQWhELEVBQXNEQyxPQUF0RCxFQUErRDtFQUNwRkEsT0FBTyxHQUFHQyxhQUFBLENBQUtDLGFBQUwsQ0FBbUJGLE9BQW5CLENBQVY7RUFDQSxNQUFNRyxRQUFRLEdBQUksV0FBVUgsT0FBTyxHQUFJLElBQUdBLE9BQVEsVUFBZixHQUEyQixFQUFHLEdBQUVELElBQUksR0FBRyxHQUFILEdBQVMsRUFBRyxFQUFuRjtFQUVBLE9BQU8sTUFBTSxLQUFLSyxNQUFMLENBQVlDLEtBQVosQ0FBa0JDLE9BQWxCLENBQTBCSCxRQUExQixFQUFvQyxNQUFwQyxFQUE0QztJQUN2REksS0FBSyxFQUFFVixRQURnRDtJQUV2RFcsS0FBSyxFQUFFVjtFQUZnRCxDQUE1QyxDQUFiO0FBSUQsQ0FSRDs7ZUFZZUgsUSJ9
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _support = require("@appium/support");
14
+ var _support = require("appium/support");
15
15
 
16
16
  var _asyncbox = require("asyncbox");
17
17
 
@@ -316,4 +316,4 @@ var _default = commands;
316
316
  exports.default = _default;require('source-map-support').install();
317
317
 
318
318
 
319
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3JlY29yZC1zY3JlZW4uanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsIlNUQVJUVVBfSU5URVJWQUxfTVMiLCJTVEFSVFVQX1RJTUVPVVRfTVMiLCJERUZBVUxUX1RJTUVfTElNSVRfTVMiLCJQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMiLCJERUZBVUxUX0VYVCIsInVwbG9hZFJlY29yZGVkTWVkaWEiLCJsb2NhbEZpbGUiLCJyZW1vdGVQYXRoIiwidXBsb2FkT3B0aW9ucyIsIl8iLCJpc0VtcHR5IiwidXRpbCIsInRvSW5NZW1vcnlCYXNlNjQiLCJ0b1N0cmluZyIsInVzZXIiLCJwYXNzIiwibWV0aG9kIiwiaGVhZGVycyIsImZpbGVGaWVsZE5hbWUiLCJmb3JtRmllbGRzIiwib3B0aW9ucyIsImF1dGgiLCJuZXQiLCJ1cGxvYWRGaWxlIiwiVklERU9fRklMRVMiLCJTZXQiLCJwcm9jZXNzIiwib24iLCJ2aWRlb0ZpbGUiLCJmcyIsInJpbXJhZlN5bmMiLCJpZ24iLCJTY3JlZW5SZWNvcmRlciIsImNvbnN0cnVjdG9yIiwidWRpZCIsInZpZGVvUGF0aCIsImxvZyIsIm9wdHMiLCJfcHJvY2VzcyIsIl91ZGlkIiwiX3ZpZGVvUGF0aCIsIl9jb2RlYyIsImNvZGVjIiwiX2Rpc3BsYXkiLCJkaXNwbGF5IiwiX21hc2siLCJtYXNrIiwiX3RpbWVMaW1pdE1zIiwidGltZUxpbWl0IiwiX3RpbWVyIiwiZ2V0VmlkZW9QYXRoIiwiZXhpc3RzIiwiYWRkIiwiaXNSdW5uaW5nIiwiX2VuZm9yY2VUZXJtaW5hdGlvbiIsImRlYnVnIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIkVycm9yIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImUiLCJlcnJvckFuZFRocm93Iiwic2V0VGltZW91dCIsImVycm9yIiwiaW5mbyIsImZvcmNlIiwiY2xlYXJUaW1lb3V0IiwiZXh0cmFjdFNpbXVsYXRvclVkaWQiLCJjYXBzIiwiYWxsRGV2aWNlcyIsImZsYXRNYXAiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwibmFtZSIsInN0YXRlIiwic2RrIiwidG9Mb3dlciIsInN0YXJ0UmVjb3JkaW5nU2NyZWVuIiwiZm9yY2VSZXN0YXJ0IiwiX3NjcmVlblJlY29yZGVyIiwidGVtcERpciIsInBhdGgiLCJwcmVmaXgiLCJ1dWlkVjQiLCJzdWZmaXgiLCJwYXJzZUludCIsInN0b3BSZWNvcmRpbmdTY3JlZW4iLCJzaXplIiwic3RhdCIsInRvUmVhZGFibGVTaXplU3RyaW5nIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL3JlY29yZC1zY3JlZW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwsIGZzLCBuZXQsIHRlbXBEaXIgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBTaW1jdGwgZnJvbSAnbm9kZS1zaW1jdGwnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmNvbnN0IFNUQVJUVVBfSU5URVJWQUxfTVMgPSAzMDA7XG5jb25zdCBTVEFSVFVQX1RJTUVPVVRfTVMgPSAxMCAqIDEwMDA7XG5jb25zdCBERUZBVUxUX1RJTUVfTElNSVRfTVMgPSA2MCAqIDEwICogMTAwMDsgLy8gMTAgbWludXRlc1xuY29uc3QgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9FWFQgPSAnLm1wNCc7XG5cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkUmVjb3JkZWRNZWRpYSAobG9jYWxGaWxlLCByZW1vdGVQYXRoID0gbnVsbCwgdXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gIGlmIChfLmlzRW1wdHkocmVtb3RlUGF0aCkpIHtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qge3VzZXIsIHBhc3MsIG1ldGhvZCwgaGVhZGVycywgZmlsZUZpZWxkTmFtZSwgZm9ybUZpZWxkc30gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogbWV0aG9kIHx8ICdQVVQnLFxuICAgIGhlYWRlcnMsXG4gICAgZmlsZUZpZWxkTmFtZSxcbiAgICBmb3JtRmllbGRzLFxuICB9O1xuICBpZiAodXNlciAmJiBwYXNzKSB7XG4gICAgb3B0aW9ucy5hdXRoID0ge3VzZXIsIHBhc3N9O1xuICB9XG4gIGF3YWl0IG5ldC51cGxvYWRGaWxlKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCwgb3B0aW9ucyk7XG4gIHJldHVybiAnJztcbn1cblxuY29uc3QgVklERU9fRklMRVMgPSBuZXcgU2V0KCk7XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHZpZGVvRmlsZSBvZiBWSURFT19GSUxFUykge1xuICAgIHRyeSB7XG4gICAgICBmcy5yaW1yYWZTeW5jKHZpZGVvRmlsZSk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2NyZWVuUmVjb3JkZXIge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgdmlkZW9QYXRoLCBsb2csIG9wdHMgPSB7fSkge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIHRoaXMuX3VkaWQgPSB1ZGlkO1xuICAgIHRoaXMuX3ZpZGVvUGF0aCA9IHZpZGVvUGF0aDtcbiAgICB0aGlzLl9jb2RlYyA9IG9wdHMuY29kZWM7XG4gICAgdGhpcy5fZGlzcGxheSA9IG9wdHMuZGlzcGxheTtcbiAgICB0aGlzLl9tYXNrID0gb3B0cy5tYXNrO1xuICAgIHRoaXMuX3RpbWVMaW1pdE1zID0gb3B0cy50aW1lTGltaXQgPiAwID8gb3B0cy50aW1lTGltaXQgKiAxMDAwIDogREVGQVVMVF9USU1FX0xJTUlUX01TO1xuICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldFZpZGVvUGF0aCAoKSB7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyh0aGlzLl92aWRlb1BhdGgpKSB7XG4gICAgICBWSURFT19GSUxFUy5hZGQodGhpcy5fdmlkZW9QYXRoKTtcbiAgICAgIHJldHVybiB0aGlzLl92aWRlb1BhdGg7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhISh0aGlzLl9wcm9jZXNzPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgX2VuZm9yY2VUZXJtaW5hdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnRm9yY2Utc3RvcHBpbmcgdGhlIGN1cnJlbnRseSBydW5uaW5nIHZpZGVvIHJlY29yZGluZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgaWYgKHZpZGVvUGF0aCkge1xuICAgICAgYXdhaXQgZnMucmltcmFmKHZpZGVvUGF0aCk7XG4gICAgICBWSURFT19GSUxFUy5kZWxldGUodmlkZW9QYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQgKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICB0aGlzLl91ZGlkLCAncmVjb3JkVmlkZW8nXG4gICAgXTtcbiAgICBpZiAodGhpcy5fZGlzcGxheSkge1xuICAgICAgYXJncy5wdXNoKCctLWRpc3BsYXknLCB0aGlzLl9kaXNwbGF5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvZGVjKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY29kZWMnLCB0aGlzLl9jb2RlYyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXNrKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbWFzaycsIHRoaXMuX21hc2spO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tZm9yY2UnLCB0aGlzLl92aWRlb1BhdGgpO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBhd2FpdCBuZXcgU2ltY3RsKCkuZXhlYygnaW8nLCB7XG4gICAgICBhcmdzLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyB2aWRlbyByZWNvcmRpbmcgd2l0aCBhcmd1bWVudHM6ICR7dXRpbC5xdW90ZShhcmdzKX1gKTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAobGluZSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgW3JlY29yZFZpZGVvQCR7dGhpcy5fdWRpZC5zdWJzdHJpbmcoMCwgOCl9XSAke2xpbmV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fcHJvY2Vzcy5vbmNlKCdleGl0JywgYXN5bmMgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aG91dCBlcnJvcnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgICB0aGlzLmxvZy53YXJuKGBTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RhcnQoMCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCkpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgICAgaW50ZXJ2YWxNczogU1RBUlRVUF9JTlRFUlZBTF9NUyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGV4cGVjdGVkIHNjcmVlbiByZWNvcmQgZmlsZSAnJHt0aGlzLl92aWRlb1BhdGh9JyBkb2VzIG5vdCBleGlzdCBhZnRlciAke1NUQVJUVVBfVElNRU9VVF9NU31tcy4gYCArXG4gICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgfVxuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgdGhpcy5fdGltZUxpbWl0TXMpO1xuICAgIHRoaXMubG9nLmluZm8oYFRoZSB2aWRlbyByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuIFdpbGwgdGltZW91dCBpbiAke3RoaXMuX3RpbWVMaW1pdE1zfW1zYCk7XG4gIH1cblxuICBhc3luYyBzdG9wIChmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdTY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBydW5uaW5nLiBSZXR1cm5pbmcgdGhlIHJlY2VudGx5IHJlY29yZGVkIHZpZGVvJyk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdJTlQnLCBQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY3JlZW4gcmVjb3JkaW5nIGhhcyBmYWlsZWQgdG8gc3RvcCBhZnRlciAke1BST0NFU1NfU0hVVERPV05fVElNRU9VVF9NU31tc2ApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTaW11bGF0b3JVZGlkIChjYXBzKSB7XG4gIGlmIChjYXBzWydzYWZhcmk6dXNlU2ltdWxhdG9yJ10gPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhbGxEZXZpY2VzID0gXy5mbGF0TWFwKF8udmFsdWVzKGF3YWl0IG5ldyBTaW1jdGwoKS5nZXREZXZpY2VzKG51bGwsICdpT1MnKSkpO1xuICBmb3IgKGNvbnN0IHtuYW1lLCB1ZGlkLCBzdGF0ZSwgc2RrfSBvZiBhbGxEZXZpY2VzKSB7XG4gICAgaWYgKHN0YXRlICE9PSAnQm9vdGVkJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlVURJRCddKSA9PT0gXy50b0xvd2VyKHVkaWQpKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlTmFtZSddKSA9PT0gXy50b0xvd2VyKG5hbWUpICYmXG4gICAgICAoY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddICYmIGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSA9PT0gc2RrXG4gICAgICAgIHx8ICFjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10pKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0UmVjb3JkaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29kZWMgW2hldmNdIC0gU3BlY2lmaWVzIHRoZSBjb2RlYyB0eXBlOiBcImgyNjRcIiBvciBcImhldmNcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBkaXNwbGF5IFtpbnRlcm5hbF0gLSBTdXBwb3J0cyBcImludGVybmFsXCIgb3IgXCJleHRlcm5hbFwiLiBEZWZhdWx0IGlzIFwiaW50ZXJuYWxcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtYXNrIC0gRm9yIG5vbi1yZWN0YW5ndWxhciBkaXNwbGF5cywgaGFuZGxlIHRoZSBtYXNrIGJ5IHBvbGljeTpcbiAqIC0gaWdub3JlZDogVGhlIG1hc2sgaXMgaWdub3JlZCBhbmQgdGhlIHVubWFza2VkIGZyYW1lYnVmZmVyIGlzIHNhdmVkLlxuICogLSBhbHBoYTogTm90IHN1cHBvcnRlZCwgYnV0IHJldGFpbmVkIGZvciBjb21wYXRpYmlsaXR5OyB0aGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIC0gYmxhY2s6IFRoZSBtYXNrIGlzIHJlbmRlcmVkIGJsYWNrLlxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB0aW1lTGltaXQgWzYwMF0gLSBUaGUgbWF4aW11bSByZWNvcmRpbmcgdGltZSwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHRcbiAqIHZhbHVlIGlzIDYwMCBzZWNvbmRzICgxMCBtaW51dGVzKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZm9yY2VSZXN0YXJ0IFt0cnVlXSAtIFdoZXRoZXIgdG8gaWdub3JlIHRoZSBjYWxsIGlmIGEgc2NyZWVuIHJlY29yZGluZyBpcyBjdXJyZW50bHkgcnVubmluZ1xuICogKGBmYWxzZWApIG9yIHRvIHN0YXJ0IGEgbmV3IHJlY29yZGluZyBpbW1lZGlhdGVseSBhbmQgdGVybWluYXRlIHRoZSBleGlzdGluZyBvbmUgaWYgcnVubmluZyAoYHRydWVgKS5cbiAqL1xuXG4vKipcbiAqIFJlY29yZCB0aGUgU2ltdWxhdG9yJ3MgZGlzcGxheSBpbiBiYWNrZ3JvdW5kIHdoaWxlIHRoZSBhdXRvbWF0ZWQgdGVzdCBpcyBydW5uaW5nLlxuICogVGhpcyBtZXRob2QgdXNlcyBgeGNydW4gc2ltY3RsIGlvIHJlY29yZFZpZGVvYCBoZWxwZXIgdW5kZXIgdGhlIGhvb2QuXG4gKiBDaGVjayB0aGUgb3V0cHV0IG9mIGB4Y3J1biBzaW1jdGwgaW9gIGNvbW1hbmQgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0gez9TdGFydFJlY29yZGluZ09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgc2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0YXJ0IG9yIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuXG4gKi9cbmNvbW1hbmRzLnN0YXJ0UmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRSZWNvcmRpbmdTY3JlZW4gKG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZUxpbWl0LFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgICBmb3JjZVJlc3RhcnQgPSB0cnVlLFxuICB9ID0gb3B0aW9ucztcbiAgaWYgKHRoaXMuX3NjcmVlblJlY29yZGVyPy5pc1J1bm5pbmcpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdUaGUgc2NyZWVuIHJlY29yZGluZyBpcyBhbHJlYWR5IHJ1bm5pbmcnKTtcbiAgICBpZiAoIWZvcmNlUmVzdGFydCkge1xuICAgICAgdGhpcy5sb2cuaW5mbygnRG9pbmcgbm90aGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvZy5pbmZvKCdGb3JjaW5nIHRoZSBhY3RpdmUgc2NyZWVuIHJlY29yZGluZyB0byBzdG9wJyk7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCh0cnVlKTtcbiAgfVxuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG5cbiAgY29uc3QgdWRpZCA9IGF3YWl0IGV4dHJhY3RTaW11bGF0b3JVZGlkKHRoaXMuY2Fwcyk7XG4gIGlmICghdWRpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRldGVybWluZSBTaW11bGF0b3IgVURJRCB0byByZWNvcmQgdGhlIHZpZGVvIGZyb20uICcgK1xuICAgICAgJ0RvdWJsZSBjaGVjayB5b3VyIHNlc3Npb24gY2FwYWJpbGl0aWVzJyk7XG4gIH1cblxuICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe1xuICAgIHByZWZpeDogdXRpbC51dWlkVjQoKS5zdWJzdHJpbmcoMCwgOCksXG4gICAgc3VmZml4OiBERUZBVUxUX0VYVCxcbiAgfSk7XG4gIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbmV3IFNjcmVlblJlY29yZGVyKHVkaWQsIHZpZGVvUGF0aCwgdGhpcy5sb2csIHtcbiAgICB0aW1lTGltaXQ6IHBhcnNlSW50KHRpbWVMaW1pdCwgMTApLFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RhcnQoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSByZW1vdGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIHJlbW90ZSBsb2NhdGlvbiwgd2hlcmUgdGhlIHJlc3VsdGluZyB2aWRlbyBzaG91bGQgYmUgdXBsb2FkZWQuXG4gKiBUaGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBodHRwL2h0dHBzLCBmdHAuXG4gKiBOdWxsIG9yIGVtcHR5IHN0cmluZyB2YWx1ZSAodGhlIGRlZmF1bHQgc2V0dGluZykgbWVhbnMgdGhlIGNvbnRlbnQgb2YgcmVzdWx0aW5nXG4gKiBmaWxlIHNob3VsZCBiZSBlbmNvZGVkIGFzIEJhc2U2NCBhbmQgcGFzc2VkIGFzIHRoZSBlbmRwb2ludCByZXNwb25zZSB2YWx1ZS5cbiAqIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgZ2VuZXJhdGVkIG1lZGlhIGZpbGUgaXMgdG9vIGJpZyB0b1xuICogZml0IGludG8gdGhlIGF2YWlsYWJsZSBwcm9jZXNzIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXNlciAtIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXNzIC0gVGhlIHBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtZXRob2QgLSBUaGUgaHR0cCBtdWx0aXBhcnQgdXBsb2FkIG1ldGhvZCBuYW1lLiBUaGUgJ1BVVCcgb25lIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgaGVhZGVycyBtYXBwaW5nIGZvciBtdWx0aXBhcnQgaHR0cChzKSB1cGxvYWRzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQsIHdoZXJlIHRoZSBmaWxlIGNvbnRlbnQgQkxPQiBzaG91bGQgYmUgc3RvcmVkIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/T2JqZWN0fEFycmF5PFBhaXI+fSBmb3JtRmllbGRzIC0gQWRkaXRpb25hbCBmb3JtIGZpZWxkcyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICovXG5cbi8qKlxuICogU3RvcCByZWNvcmRpbmcgdGhlIHNjcmVlbi5cbiAqIElmIG5vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUgdGhlbiB0aGUgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7P1N0b3BSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcmVjb3JkZWQgbWVkaWEgZmlsZSBpZiAncmVtb3RlUGF0aCdcbiAqIHBhcmFtZXRlciBpcyBmYWxzeSBvciBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGdldHRpbmcgdGhlIG5hbWUgb2YgYSBtZWRpYSBmaWxlXG4gKiBvciB0aGUgZmlsZSBjb250ZW50IGNhbm5vdCBiZSB1cGxvYWRlZCB0byB0aGUgcmVtb3RlIGxvY2F0aW9uXG4gKiBvciBzY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICovXG5jb21tYW5kcy5zdG9wUmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RvcFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGlmICghdGhpcy5fc2NyZWVuUmVjb3JkZXIpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdObyBzY3JlZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHN0YXJ0ZWQuIERvaW5nIG5vdGhpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyB0aGUgcmVzdWx0aW5nIHZpZGVvIGRhdGEnKTtcbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCgpO1xuICBpZiAoIXZpZGVvUGF0aCkge1xuICAgIHRoaXMubG9nLmluZm8oJ05vIHZpZGVvIGRhdGEgaXMgZm91bmQuIFJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKF8uaXNFbXB0eShvcHRpb25zLnJlbW90ZVBhdGgpKSB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdCh2aWRlb1BhdGgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgc2l6ZSBvZiB0aGUgcmVzdWx0aW5nIHNjcmVlbiByZWNvcmRpbmcgaXMgJHt1dGlsLnRvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB1cGxvYWRSZWNvcmRlZE1lZGlhKHZpZGVvUGF0aCwgb3B0aW9ucy5yZW1vdGVQYXRoLCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUVBLE1BQU1DLG1CQUFtQixHQUFHLEdBQTVCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsS0FBSyxJQUFoQztBQUNBLE1BQU1DLHFCQUFxQixHQUFHLEtBQUssRUFBTCxHQUFVLElBQXhDO0FBQ0EsTUFBTUMsMkJBQTJCLEdBQUcsS0FBSyxJQUF6QztBQUNBLE1BQU1DLFdBQVcsR0FBRyxNQUFwQjs7QUFHQSxlQUFlQyxtQkFBZixDQUFvQ0MsU0FBcEMsRUFBK0NDLFVBQVUsR0FBRyxJQUE1RCxFQUFrRUMsYUFBYSxHQUFHLEVBQWxGLEVBQXNGO0VBQ3BGLElBQUlDLGdCQUFFQyxPQUFGLENBQVVILFVBQVYsQ0FBSixFQUEyQjtJQUN6QixPQUFPLENBQUMsTUFBTUksY0FBS0MsZ0JBQUwsQ0FBc0JOLFNBQXRCLENBQVAsRUFBeUNPLFFBQXpDLEVBQVA7RUFDRDs7RUFFRCxNQUFNO0lBQUNDLElBQUQ7SUFBT0MsSUFBUDtJQUFhQyxNQUFiO0lBQXFCQyxPQUFyQjtJQUE4QkMsYUFBOUI7SUFBNkNDO0VBQTdDLElBQTJEWCxhQUFqRTtFQUNBLE1BQU1ZLE9BQU8sR0FBRztJQUNkSixNQUFNLEVBQUVBLE1BQU0sSUFBSSxLQURKO0lBRWRDLE9BRmM7SUFHZEMsYUFIYztJQUlkQztFQUpjLENBQWhCOztFQU1BLElBQUlMLElBQUksSUFBSUMsSUFBWixFQUFrQjtJQUNoQkssT0FBTyxDQUFDQyxJQUFSLEdBQWU7TUFBQ1AsSUFBRDtNQUFPQztJQUFQLENBQWY7RUFDRDs7RUFDRCxNQUFNTyxhQUFJQyxVQUFKLENBQWVqQixTQUFmLEVBQTBCQyxVQUExQixFQUFzQ2EsT0FBdEMsQ0FBTjtF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
319
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3JlY29yZC1zY3JlZW4uanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsIlNUQVJUVVBfSU5URVJWQUxfTVMiLCJTVEFSVFVQX1RJTUVPVVRfTVMiLCJERUZBVUxUX1RJTUVfTElNSVRfTVMiLCJQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMiLCJERUZBVUxUX0VYVCIsInVwbG9hZFJlY29yZGVkTWVkaWEiLCJsb2NhbEZpbGUiLCJyZW1vdGVQYXRoIiwidXBsb2FkT3B0aW9ucyIsIl8iLCJpc0VtcHR5IiwidXRpbCIsInRvSW5NZW1vcnlCYXNlNjQiLCJ0b1N0cmluZyIsInVzZXIiLCJwYXNzIiwibWV0aG9kIiwiaGVhZGVycyIsImZpbGVGaWVsZE5hbWUiLCJmb3JtRmllbGRzIiwib3B0aW9ucyIsImF1dGgiLCJuZXQiLCJ1cGxvYWRGaWxlIiwiVklERU9fRklMRVMiLCJTZXQiLCJwcm9jZXNzIiwib24iLCJ2aWRlb0ZpbGUiLCJmcyIsInJpbXJhZlN5bmMiLCJpZ24iLCJTY3JlZW5SZWNvcmRlciIsImNvbnN0cnVjdG9yIiwidWRpZCIsInZpZGVvUGF0aCIsImxvZyIsIm9wdHMiLCJfcHJvY2VzcyIsIl91ZGlkIiwiX3ZpZGVvUGF0aCIsIl9jb2RlYyIsImNvZGVjIiwiX2Rpc3BsYXkiLCJkaXNwbGF5IiwiX21hc2siLCJtYXNrIiwiX3RpbWVMaW1pdE1zIiwidGltZUxpbWl0IiwiX3RpbWVyIiwiZ2V0VmlkZW9QYXRoIiwiZXhpc3RzIiwiYWRkIiwiaXNSdW5uaW5nIiwiX2VuZm9yY2VUZXJtaW5hdGlvbiIsImRlYnVnIiwic3RvcCIsInJpbXJhZiIsImRlbGV0ZSIsInN0YXJ0IiwiYXJncyIsInB1c2giLCJTaW1jdGwiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwicXVvdGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJsaW5lIiwidHJpbSIsInN1YnN0cmluZyIsIm9uY2UiLCJjb2RlIiwic2lnbmFsIiwid2FybiIsIndhaXRGb3JDb25kaXRpb24iLCJFcnJvciIsIndhaXRNcyIsImludGVydmFsTXMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsInNldFRpbWVvdXQiLCJlcnJvciIsImluZm8iLCJmb3JjZSIsImNsZWFyVGltZW91dCIsImV4dHJhY3RTaW11bGF0b3JVZGlkIiwiY2FwcyIsImFsbERldmljZXMiLCJmbGF0TWFwIiwidmFsdWVzIiwiZ2V0RGV2aWNlcyIsIm5hbWUiLCJzdGF0ZSIsInNkayIsInRvTG93ZXIiLCJzdGFydFJlY29yZGluZ1NjcmVlbiIsImZvcmNlUmVzdGFydCIsIl9zY3JlZW5SZWNvcmRlciIsInRlbXBEaXIiLCJwYXRoIiwicHJlZml4IiwidXVpZFY0Iiwic3VmZml4IiwicGFyc2VJbnQiLCJzdG9wUmVjb3JkaW5nU2NyZWVuIiwic2l6ZSIsInN0YXQiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9yZWNvcmQtc2NyZWVuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsLCBmcywgbmV0LCB0ZW1wRGlyIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBTaW1jdGwgZnJvbSAnbm9kZS1zaW1jdGwnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmNvbnN0IFNUQVJUVVBfSU5URVJWQUxfTVMgPSAzMDA7XG5jb25zdCBTVEFSVFVQX1RJTUVPVVRfTVMgPSAxMCAqIDEwMDA7XG5jb25zdCBERUZBVUxUX1RJTUVfTElNSVRfTVMgPSA2MCAqIDEwICogMTAwMDsgLy8gMTAgbWludXRlc1xuY29uc3QgUFJPQ0VTU19TSFVURE9XTl9USU1FT1VUX01TID0gMTAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9FWFQgPSAnLm1wNCc7XG5cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkUmVjb3JkZWRNZWRpYSAobG9jYWxGaWxlLCByZW1vdGVQYXRoID0gbnVsbCwgdXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gIGlmIChfLmlzRW1wdHkocmVtb3RlUGF0aCkpIHtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qge3VzZXIsIHBhc3MsIG1ldGhvZCwgaGVhZGVycywgZmlsZUZpZWxkTmFtZSwgZm9ybUZpZWxkc30gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogbWV0aG9kIHx8ICdQVVQnLFxuICAgIGhlYWRlcnMsXG4gICAgZmlsZUZpZWxkTmFtZSxcbiAgICBmb3JtRmllbGRzLFxuICB9O1xuICBpZiAodXNlciAmJiBwYXNzKSB7XG4gICAgb3B0aW9ucy5hdXRoID0ge3VzZXIsIHBhc3N9O1xuICB9XG4gIGF3YWl0IG5ldC51cGxvYWRGaWxlKGxvY2FsRmlsZSwgcmVtb3RlUGF0aCwgb3B0aW9ucyk7XG4gIHJldHVybiAnJztcbn1cblxuY29uc3QgVklERU9fRklMRVMgPSBuZXcgU2V0KCk7XG5wcm9jZXNzLm9uKCdleGl0JywgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHZpZGVvRmlsZSBvZiBWSURFT19GSUxFUykge1xuICAgIHRyeSB7XG4gICAgICBmcy5yaW1yYWZTeW5jKHZpZGVvRmlsZSk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2NyZWVuUmVjb3JkZXIge1xuICBjb25zdHJ1Y3RvciAodWRpZCwgdmlkZW9QYXRoLCBsb2csIG9wdHMgPSB7fSkge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIHRoaXMuX3VkaWQgPSB1ZGlkO1xuICAgIHRoaXMuX3ZpZGVvUGF0aCA9IHZpZGVvUGF0aDtcbiAgICB0aGlzLl9jb2RlYyA9IG9wdHMuY29kZWM7XG4gICAgdGhpcy5fZGlzcGxheSA9IG9wdHMuZGlzcGxheTtcbiAgICB0aGlzLl9tYXNrID0gb3B0cy5tYXNrO1xuICAgIHRoaXMuX3RpbWVMaW1pdE1zID0gb3B0cy50aW1lTGltaXQgPiAwID8gb3B0cy50aW1lTGltaXQgKiAxMDAwIDogREVGQVVMVF9USU1FX0xJTUlUX01TO1xuICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldFZpZGVvUGF0aCAoKSB7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyh0aGlzLl92aWRlb1BhdGgpKSB7XG4gICAgICBWSURFT19GSUxFUy5hZGQodGhpcy5fdmlkZW9QYXRoKTtcbiAgICAgIHJldHVybiB0aGlzLl92aWRlb1BhdGg7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhISh0aGlzLl9wcm9jZXNzPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgX2VuZm9yY2VUZXJtaW5hdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnRm9yY2Utc3RvcHBpbmcgdGhlIGN1cnJlbnRseSBydW5uaW5nIHZpZGVvIHJlY29yZGluZycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfVxuICAgIHRoaXMuX3Byb2Nlc3MgPSBudWxsO1xuICAgIGNvbnN0IHZpZGVvUGF0aCA9IGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCk7XG4gICAgaWYgKHZpZGVvUGF0aCkge1xuICAgICAgYXdhaXQgZnMucmltcmFmKHZpZGVvUGF0aCk7XG4gICAgICBWSURFT19GSUxFUy5kZWxldGUodmlkZW9QYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQgKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICB0aGlzLl91ZGlkLCAncmVjb3JkVmlkZW8nXG4gICAgXTtcbiAgICBpZiAodGhpcy5fZGlzcGxheSkge1xuICAgICAgYXJncy5wdXNoKCctLWRpc3BsYXknLCB0aGlzLl9kaXNwbGF5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvZGVjKSB7XG4gICAgICBhcmdzLnB1c2goJy0tY29kZWMnLCB0aGlzLl9jb2RlYyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9tYXNrKSB7XG4gICAgICBhcmdzLnB1c2goJy0tbWFzaycsIHRoaXMuX21hc2spO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJy0tZm9yY2UnLCB0aGlzLl92aWRlb1BhdGgpO1xuICAgIHRoaXMuX3Byb2Nlc3MgPSBhd2FpdCBuZXcgU2ltY3RsKCkuZXhlYygnaW8nLCB7XG4gICAgICBhcmdzLFxuICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyB2aWRlbyByZWNvcmRpbmcgd2l0aCBhcmd1bWVudHM6ICR7dXRpbC5xdW90ZShhcmdzKX1gKTtcbiAgICB0aGlzLl9wcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAobGluZSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgW3JlY29yZFZpZGVvQCR7dGhpcy5fdWRpZC5zdWJzdHJpbmcoMCwgOCl9XSAke2xpbmV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5fcHJvY2Vzcy5vbmNlKCdleGl0JywgYXN5bmMgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZygnU2NyZWVuIHJlY29yZGluZyBleGl0ZWQgd2l0aG91dCBlcnJvcnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgICB0aGlzLmxvZy53YXJuKGBTY3JlZW4gcmVjb3JkaW5nIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX3Byb2Nlc3Muc3RhcnQoMCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuZ2V0VmlkZW9QYXRoKCkpO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgICAgaW50ZXJ2YWxNczogU1RBUlRVUF9JTlRFUlZBTF9NUyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGV4cGVjdGVkIHNjcmVlbiByZWNvcmQgZmlsZSAnJHt0aGlzLl92aWRlb1BhdGh9JyBkb2VzIG5vdCBleGlzdCBhZnRlciAke1NUQVJUVVBfVElNRU9VVF9NU31tcy4gYCArXG4gICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgfVxuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgdGhpcy5fdGltZUxpbWl0TXMpO1xuICAgIHRoaXMubG9nLmluZm8oYFRoZSB2aWRlbyByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuIFdpbGwgdGltZW91dCBpbiAke3RoaXMuX3RpbWVMaW1pdE1zfW1zYCk7XG4gIH1cblxuICBhc3luYyBzdG9wIChmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuX3RpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JjZSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdTY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBydW5uaW5nLiBSZXR1cm5pbmcgdGhlIHJlY2VudGx5IHJlY29yZGVkIHZpZGVvJyk7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRWaWRlb1BhdGgoKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fcHJvY2Vzcy5zdG9wKCdTSUdJTlQnLCBQUk9DRVNTX1NIVVRET1dOX1RJTUVPVVRfTVMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2VuZm9yY2VUZXJtaW5hdGlvbigpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY3JlZW4gcmVjb3JkaW5nIGhhcyBmYWlsZWQgdG8gc3RvcCBhZnRlciAke1BST0NFU1NfU0hVVERPV05fVElNRU9VVF9NU31tc2ApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFZpZGVvUGF0aCgpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTaW11bGF0b3JVZGlkIChjYXBzKSB7XG4gIGlmIChjYXBzWydzYWZhcmk6dXNlU2ltdWxhdG9yJ10gPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhbGxEZXZpY2VzID0gXy5mbGF0TWFwKF8udmFsdWVzKGF3YWl0IG5ldyBTaW1jdGwoKS5nZXREZXZpY2VzKG51bGwsICdpT1MnKSkpO1xuICBmb3IgKGNvbnN0IHtuYW1lLCB1ZGlkLCBzdGF0ZSwgc2RrfSBvZiBhbGxEZXZpY2VzKSB7XG4gICAgaWYgKHN0YXRlICE9PSAnQm9vdGVkJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlVURJRCddKSA9PT0gXy50b0xvd2VyKHVkaWQpKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gICAgaWYgKF8udG9Mb3dlcihjYXBzWydzYWZhcmk6ZGV2aWNlTmFtZSddKSA9PT0gXy50b0xvd2VyKG5hbWUpICYmXG4gICAgICAoY2Fwc1snc2FmYXJpOnBsYXRmb3JtVmVyc2lvbiddICYmIGNhcHNbJ3NhZmFyaTpwbGF0Zm9ybVZlcnNpb24nXSA9PT0gc2RrXG4gICAgICAgIHx8ICFjYXBzWydzYWZhcmk6cGxhdGZvcm1WZXJzaW9uJ10pKSB7XG4gICAgICByZXR1cm4gdWRpZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0UmVjb3JkaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29kZWMgW2hldmNdIC0gU3BlY2lmaWVzIHRoZSBjb2RlYyB0eXBlOiBcImgyNjRcIiBvciBcImhldmNcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBkaXNwbGF5IFtpbnRlcm5hbF0gLSBTdXBwb3J0cyBcImludGVybmFsXCIgb3IgXCJleHRlcm5hbFwiLiBEZWZhdWx0IGlzIFwiaW50ZXJuYWxcIlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtYXNrIC0gRm9yIG5vbi1yZWN0YW5ndWxhciBkaXNwbGF5cywgaGFuZGxlIHRoZSBtYXNrIGJ5IHBvbGljeTpcbiAqIC0gaWdub3JlZDogVGhlIG1hc2sgaXMgaWdub3JlZCBhbmQgdGhlIHVubWFza2VkIGZyYW1lYnVmZmVyIGlzIHNhdmVkLlxuICogLSBhbHBoYTogTm90IHN1cHBvcnRlZCwgYnV0IHJldGFpbmVkIGZvciBjb21wYXRpYmlsaXR5OyB0aGUgbWFzayBpcyByZW5kZXJlZCBibGFjay5cbiAqIC0gYmxhY2s6IFRoZSBtYXNrIGlzIHJlbmRlcmVkIGJsYWNrLlxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB0aW1lTGltaXQgWzYwMF0gLSBUaGUgbWF4aW11bSByZWNvcmRpbmcgdGltZSwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHRcbiAqIHZhbHVlIGlzIDYwMCBzZWNvbmRzICgxMCBtaW51dGVzKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZm9yY2VSZXN0YXJ0IFt0cnVlXSAtIFdoZXRoZXIgdG8gaWdub3JlIHRoZSBjYWxsIGlmIGEgc2NyZWVuIHJlY29yZGluZyBpcyBjdXJyZW50bHkgcnVubmluZ1xuICogKGBmYWxzZWApIG9yIHRvIHN0YXJ0IGEgbmV3IHJlY29yZGluZyBpbW1lZGlhdGVseSBhbmQgdGVybWluYXRlIHRoZSBleGlzdGluZyBvbmUgaWYgcnVubmluZyAoYHRydWVgKS5cbiAqL1xuXG4vKipcbiAqIFJlY29yZCB0aGUgU2ltdWxhdG9yJ3MgZGlzcGxheSBpbiBiYWNrZ3JvdW5kIHdoaWxlIHRoZSBhdXRvbWF0ZWQgdGVzdCBpcyBydW5uaW5nLlxuICogVGhpcyBtZXRob2QgdXNlcyBgeGNydW4gc2ltY3RsIGlvIHJlY29yZFZpZGVvYCBoZWxwZXIgdW5kZXIgdGhlIGhvb2QuXG4gKiBDaGVjayB0aGUgb3V0cHV0IG9mIGB4Y3J1biBzaW1jdGwgaW9gIGNvbW1hbmQgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0gez9TdGFydFJlY29yZGluZ09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgc2NyZWVuIHJlY29yZGluZyBoYXMgZmFpbGVkIHRvIHN0YXJ0IG9yIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuXG4gKi9cbmNvbW1hbmRzLnN0YXJ0UmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRSZWNvcmRpbmdTY3JlZW4gKG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZUxpbWl0LFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgICBmb3JjZVJlc3RhcnQgPSB0cnVlLFxuICB9ID0gb3B0aW9ucztcbiAgaWYgKHRoaXMuX3NjcmVlblJlY29yZGVyPy5pc1J1bm5pbmcpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdUaGUgc2NyZWVuIHJlY29yZGluZyBpcyBhbHJlYWR5IHJ1bm5pbmcnKTtcbiAgICBpZiAoIWZvcmNlUmVzdGFydCkge1xuICAgICAgdGhpcy5sb2cuaW5mbygnRG9pbmcgbm90aGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvZy5pbmZvKCdGb3JjaW5nIHRoZSBhY3RpdmUgc2NyZWVuIHJlY29yZGluZyB0byBzdG9wJyk7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCh0cnVlKTtcbiAgfVxuICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG5cbiAgY29uc3QgdWRpZCA9IGF3YWl0IGV4dHJhY3RTaW11bGF0b3JVZGlkKHRoaXMuY2Fwcyk7XG4gIGlmICghdWRpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRldGVybWluZSBTaW11bGF0b3IgVURJRCB0byByZWNvcmQgdGhlIHZpZGVvIGZyb20uICcgK1xuICAgICAgJ0RvdWJsZSBjaGVjayB5b3VyIHNlc3Npb24gY2FwYWJpbGl0aWVzJyk7XG4gIH1cblxuICBjb25zdCB2aWRlb1BhdGggPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe1xuICAgIHByZWZpeDogdXRpbC51dWlkVjQoKS5zdWJzdHJpbmcoMCwgOCksXG4gICAgc3VmZml4OiBERUZBVUxUX0VYVCxcbiAgfSk7XG4gIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbmV3IFNjcmVlblJlY29yZGVyKHVkaWQsIHZpZGVvUGF0aCwgdGhpcy5sb2csIHtcbiAgICB0aW1lTGltaXQ6IHBhcnNlSW50KHRpbWVMaW1pdCwgMTApLFxuICAgIGNvZGVjLFxuICAgIGRpc3BsYXksXG4gICAgbWFzayxcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RhcnQoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMuX3NjcmVlblJlY29yZGVyID0gbnVsbDtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BSZWNvcmRpbmdPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSByZW1vdGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIHJlbW90ZSBsb2NhdGlvbiwgd2hlcmUgdGhlIHJlc3VsdGluZyB2aWRlbyBzaG91bGQgYmUgdXBsb2FkZWQuXG4gKiBUaGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBodHRwL2h0dHBzLCBmdHAuXG4gKiBOdWxsIG9yIGVtcHR5IHN0cmluZyB2YWx1ZSAodGhlIGRlZmF1bHQgc2V0dGluZykgbWVhbnMgdGhlIGNvbnRlbnQgb2YgcmVzdWx0aW5nXG4gKiBmaWxlIHNob3VsZCBiZSBlbmNvZGVkIGFzIEJhc2U2NCBhbmQgcGFzc2VkIGFzIHRoZSBlbmRwb2ludCByZXNwb25zZSB2YWx1ZS5cbiAqIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgZ2VuZXJhdGVkIG1lZGlhIGZpbGUgaXMgdG9vIGJpZyB0b1xuICogZml0IGludG8gdGhlIGF2YWlsYWJsZSBwcm9jZXNzIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXNlciAtIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXNzIC0gVGhlIHBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIGF1dGhlbnRpY2F0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtZXRob2QgLSBUaGUgaHR0cCBtdWx0aXBhcnQgdXBsb2FkIG1ldGhvZCBuYW1lLiBUaGUgJ1BVVCcgb25lIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgaGVhZGVycyBtYXBwaW5nIGZvciBtdWx0aXBhcnQgaHR0cChzKSB1cGxvYWRzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQsIHdoZXJlIHRoZSBmaWxlIGNvbnRlbnQgQkxPQiBzaG91bGQgYmUgc3RvcmVkIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHAocykgdXBsb2Fkc1xuICogQHByb3BlcnR5IHs/T2JqZWN0fEFycmF5PFBhaXI+fSBmb3JtRmllbGRzIC0gQWRkaXRpb25hbCBmb3JtIGZpZWxkcyBmb3IgbXVsdGlwYXJ0IGh0dHAocykgdXBsb2Fkc1xuICovXG5cbi8qKlxuICogU3RvcCByZWNvcmRpbmcgdGhlIHNjcmVlbi5cbiAqIElmIG5vIHNjcmVlbiByZWNvcmRpbmcgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUgdGhlbiB0aGUgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7P1N0b3BSZWNvcmRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIGF2YWlsYWJsZSBvcHRpb25zLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcmVjb3JkZWQgbWVkaWEgZmlsZSBpZiAncmVtb3RlUGF0aCdcbiAqIHBhcmFtZXRlciBpcyBmYWxzeSBvciBhbiBlbXB0eSBzdHJpbmcuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGdldHRpbmcgdGhlIG5hbWUgb2YgYSBtZWRpYSBmaWxlXG4gKiBvciB0aGUgZmlsZSBjb250ZW50IGNhbm5vdCBiZSB1cGxvYWRlZCB0byB0aGUgcmVtb3RlIGxvY2F0aW9uXG4gKiBvciBzY3JlZW4gcmVjb3JkaW5nIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICovXG5jb21tYW5kcy5zdG9wUmVjb3JkaW5nU2NyZWVuID0gYXN5bmMgZnVuY3Rpb24gc3RvcFJlY29yZGluZ1NjcmVlbiAob3B0aW9ucyA9IHt9KSB7XG4gIGlmICghdGhpcy5fc2NyZWVuUmVjb3JkZXIpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdObyBzY3JlZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHN0YXJ0ZWQuIERvaW5nIG5vdGhpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyB0aGUgcmVzdWx0aW5nIHZpZGVvIGRhdGEnKTtcbiAgY29uc3QgdmlkZW9QYXRoID0gYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXIuc3RvcCgpO1xuICBpZiAoIXZpZGVvUGF0aCkge1xuICAgIHRoaXMubG9nLmluZm8oJ05vIHZpZGVvIGRhdGEgaXMgZm91bmQuIFJldHVybmluZyBhbiBlbXB0eSBzdHJpbmcnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKF8uaXNFbXB0eShvcHRpb25zLnJlbW90ZVBhdGgpKSB7XG4gICAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdCh2aWRlb1BhdGgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgc2l6ZSBvZiB0aGUgcmVzdWx0aW5nIHNjcmVlbiByZWNvcmRpbmcgaXMgJHt1dGlsLnRvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB1cGxvYWRSZWNvcmRlZE1lZGlhKHZpZGVvUGF0aCwgb3B0aW9ucy5yZW1vdGVQYXRoLCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUVBLE1BQU1DLG1CQUFtQixHQUFHLEdBQTVCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsS0FBSyxJQUFoQztBQUNBLE1BQU1DLHFCQUFxQixHQUFHLEtBQUssRUFBTCxHQUFVLElBQXhDO0FBQ0EsTUFBTUMsMkJBQTJCLEdBQUcsS0FBSyxJQUF6QztBQUNBLE1BQU1DLFdBQVcsR0FBRyxNQUFwQjs7QUFHQSxlQUFlQyxtQkFBZixDQUFvQ0MsU0FBcEMsRUFBK0NDLFVBQVUsR0FBRyxJQUE1RCxFQUFrRUMsYUFBYSxHQUFHLEVBQWxGLEVBQXNGO0VBQ3BGLElBQUlDLGVBQUEsQ0FBRUMsT0FBRixDQUFVSCxVQUFWLENBQUosRUFBMkI7SUFDekIsT0FBTyxDQUFDLE1BQU1JLGFBQUEsQ0FBS0MsZ0JBQUwsQ0FBc0JOLFNBQXRCLENBQVAsRUFBeUNPLFFBQXpDLEVBQVA7RUFDRDs7RUFFRCxNQUFNO0lBQUNDLElBQUQ7SUFBT0MsSUFBUDtJQUFhQyxNQUFiO0lBQXFCQyxPQUFyQjtJQUE4QkMsYUFBOUI7SUFBNkNDO0VBQTdDLElBQTJEWCxhQUFqRTtFQUNBLE1BQU1ZLE9BQU8sR0FBRztJQUNkSixNQUFNLEVBQUVBLE1BQU0sSUFBSSxLQURKO0lBRWRDLE9BRmM7SUFHZEMsYUFIYztJQUlkQztFQUpjLENBQWhCOztFQU1BLElBQUlMLElBQUksSUFBSUMsSUFBWixFQUFrQjtJQUNoQkssT0FBTyxDQUFDQyxJQUFSLEdBQWU7TUFBQ1AsSUFBRDtNQUFPQztJQUFQLENBQWY7RUFDRDs7RUFDRCxNQUFNTyxZQUFBLENBQUlDLFVBQUosQ0FBZWpCLFNBQWYs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
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _baseDriver = require("@appium/base-driver");
14
+ var _driver = require("appium/driver");
15
15
 
16
16
  var _safari = _interopRequireDefault(require("./safari"));
17
17
 
@@ -23,7 +23,7 @@ var _utils = require("./utils");
23
23
 
24
24
  const NO_PROXY = [['GET', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/appium')], ['POST', new RegExp('^/session/[^/]+/element/[^/]+/elements?$')], ['POST', new RegExp('^/session/[^/]+/elements?$')], ['DELETE', new RegExp('^/session/[^/]+/cookie$')]];
25
25
 
26
- class SafariDriver extends _baseDriver.BaseDriver {
26
+ class SafariDriver extends _driver.BaseDriver {
27
27
  constructor(opts = {}) {
28
28
  super(opts);
29
29
  this.desiredCapConstraints = _desiredCaps.desiredCapConstraints;
@@ -86,4 +86,4 @@ var _default = SafariDriver;
86
86
  exports.default = _default;require('source-map-support').install();
87
87
 
88
88
 
89
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2RyaXZlci5qcyIsIm5hbWVzIjpbIk5PX1BST1hZIiwiUmVnRXhwIiwiU2FmYXJpRHJpdmVyIiwiQmFzZURyaXZlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsImxvY2F0b3JTdHJhdGVnaWVzIiwicmVzZXRTdGF0ZSIsImNtZCIsImZuIiwiXyIsInRvUGFpcnMiLCJjb21tYW5kcyIsInByb3RvdHlwZSIsInNhZmFyaSIsInByb3h5UmVxUmVzIiwiaXNQcm94eUFjdGl2ZSIsIl9zY3JlZW5SZWNvcmRlciIsInByb3h5QWN0aXZlIiwiZ2V0UHJveHlBdm9pZExpc3QiLCJjYW5Qcm94eSIsImNyZWF0ZVNlc3Npb24iLCJhcmdzIiwic2Vzc2lvbklkIiwiY2FwcyIsIlNhZmFyaURyaXZlclNlcnZlciIsImxvZyIsInN0YXJ0IiwiZSIsImRlbGV0ZVNlc3Npb24iLCJwcm94eSIsImJpbmQiLCJpbmZvIiwic3RvcCJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9kcml2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIgZnJvbSAnLi9zYWZhcmknO1xuaW1wb3J0IHsgZGVzaXJlZENhcENvbnN0cmFpbnRzIH0gZnJvbSAnLi9kZXNpcmVkLWNhcHMnO1xuaW1wb3J0IGNvbW1hbmRzIGZyb20gJy4vY29tbWFuZHMvaW5kZXgnO1xuaW1wb3J0IHsgZm9ybWF0Q2Fwc0ZvclNlcnZlciB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBOT19QUk9YWSA9IFtcbiAgWydHRVQnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvYXBwaXVtJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvYXBwaXVtJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvZWxlbWVudC9bXi9dKy9lbGVtZW50cz8kJyldLFxuICBbJ1BPU1QnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvZWxlbWVudHM/JCcpXSxcblxuICBbJ0RFTEVURScsIG5ldyBSZWdFeHAoJ14vc2Vzc2lvbi9bXi9dKy9jb29raWUkJyldLFxuXTtcblxuY2xhc3MgU2FmYXJpRHJpdmVyIGV4dGVuZHMgQmFzZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihvcHRzKTtcbiAgICB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cyA9IGRlc2lyZWRDYXBDb25zdHJhaW50cztcbiAgICB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzID0gW1xuICAgICAgJ3hwYXRoJyxcbiAgICAgICd0YWcgbmFtZScsXG4gICAgICAnbGluayB0ZXh0JyxcbiAgICAgICdwYXJ0aWFsIGxpbmsgdGV4dCcsXG4gICAgICAnY3NzIHNlbGVjdG9yJyxcbiAgICAgIC8vIExldCB0aGVzZSB0d28gcmVhY2ggU2FmYXJpIERyaXZlciBhbmQgZmFpbCB0aGVyZSB3aXRoIGEgcHJvcGVyIGVycm9yIG1lc3NhZ2VcbiAgICAgICdpZCcsXG4gICAgICAnbmFtZScsXG4gICAgXTtcbiAgICB0aGlzLnJlc2V0U3RhdGUoKTtcblxuICAgIGZvciAoY29uc3QgW2NtZCwgZm5dIG9mIF8udG9QYWlycyhjb21tYW5kcykpIHtcbiAgICAgIFNhZmFyaURyaXZlci5wcm90b3R5cGVbY21kXSA9IGZuO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0U3RhdGUgKCkge1xuICAgIHRoaXMuc2FmYXJpID0gbnVsbDtcbiAgICB0aGlzLnByb3h5UmVxUmVzID0gbnVsbDtcbiAgICB0aGlzLmlzUHJveHlBY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLl9zY3JlZW5SZWNvcmRlciA9IG51bGw7XG4gIH1cblxuICBwcm94eUFjdGl2ZSAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNQcm94eUFjdGl2ZTtcbiAgfVxuXG4gIGdldFByb3h5QXZvaWRMaXN0ICgpIHtcbiAgICByZXR1cm4gTk9fUFJPWFk7XG4gIH1cblxuICBjYW5Qcm94eSAoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBjcmVhdGVTZXNzaW9uICguLi5hcmdzKSB7XG4gICAgY29uc3QgW3Nlc3Npb25JZCwgY2Fwc10gPSBhd2FpdCBzdXBlci5jcmVhdGVTZXNzaW9uKC4uLmFyZ3MpO1xuICAgIHRoaXMuc2FmYXJpID0gbmV3IFNhZmFyaURyaXZlclNlcnZlcih0aGlzLmxvZyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2FmYXJpLnN0YXJ0KGZvcm1hdENhcHNGb3JTZXJ2ZXIoY2FwcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuc2FmYXJpLnByb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5zYWZhcmkucHJveHkpO1xuICAgIHRoaXMuaXNQcm94eUFjdGl2ZSA9IHRydWU7XG4gICAgcmV0dXJuIFtzZXNzaW9uSWQsIGNhcHNdO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoKSB7XG4gICAgdGhpcy5sb2cuaW5mbygnRW5kaW5nIFNhZmFyaSBzZXNzaW9uJyk7XG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuUmVjb3JkZXI/LnN0b3AodHJ1ZSk7XG4gICAgYXdhaXQgdGhpcy5zYWZhcmk/LnN0b3AoKTtcbiAgICB0aGlzLnJlc2V0U3RhdGUoKTtcblxuICAgIGF3YWl0IHN1cGVyLmRlbGV0ZVNlc3Npb24oKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTYWZhcmlEcml2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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
89
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2RyaXZlci5qcyIsIm5hbWVzIjpbIk5PX1BST1hZIiwiUmVnRXhwIiwiU2FmYXJpRHJpdmVyIiwiQmFzZURyaXZlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsImxvY2F0b3JTdHJhdGVnaWVzIiwicmVzZXRTdGF0ZSIsImNtZCIsImZuIiwiXyIsInRvUGFpcnMiLCJjb21tYW5kcyIsInByb3RvdHlwZSIsInNhZmFyaSIsInByb3h5UmVxUmVzIiwiaXNQcm94eUFjdGl2ZSIsIl9zY3JlZW5SZWNvcmRlciIsInByb3h5QWN0aXZlIiwiZ2V0UHJveHlBdm9pZExpc3QiLCJjYW5Qcm94eSIsImNyZWF0ZVNlc3Npb24iLCJhcmdzIiwic2Vzc2lvbklkIiwiY2FwcyIsIlNhZmFyaURyaXZlclNlcnZlciIsImxvZyIsInN0YXJ0IiwiZm9ybWF0Q2Fwc0ZvclNlcnZlciIsImUiLCJkZWxldGVTZXNzaW9uIiwicHJveHkiLCJiaW5kIiwiaW5mbyIsInN0b3AiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvZHJpdmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCYXNlRHJpdmVyIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgU2FmYXJpRHJpdmVyU2VydmVyIGZyb20gJy4vc2FmYXJpJztcbmltcG9ydCB7IGRlc2lyZWRDYXBDb25zdHJhaW50cyB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCBjb21tYW5kcyBmcm9tICcuL2NvbW1hbmRzL2luZGV4JztcbmltcG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgTk9fUFJPWFkgPSBbXG4gIFsnR0VUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2FwcGl1bScpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnQvW14vXSsvZWxlbWVudHM/JCcpXSxcbiAgWydQT1NUJywgbmV3IFJlZ0V4cCgnXi9zZXNzaW9uL1teL10rL2VsZW1lbnRzPyQnKV0sXG5cbiAgWydERUxFVEUnLCBuZXcgUmVnRXhwKCdeL3Nlc3Npb24vW14vXSsvY29va2llJCcpXSxcbl07XG5cbmNsYXNzIFNhZmFyaURyaXZlciBleHRlbmRzIEJhc2VEcml2ZXIge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMgPSBkZXNpcmVkQ2FwQ29uc3RyYWludHM7XG4gICAgdGhpcy5sb2NhdG9yU3RyYXRlZ2llcyA9IFtcbiAgICAgICd4cGF0aCcsXG4gICAgICAndGFnIG5hbWUnLFxuICAgICAgJ2xpbmsgdGV4dCcsXG4gICAgICAncGFydGlhbCBsaW5rIHRleHQnLFxuICAgICAgJ2NzcyBzZWxlY3RvcicsXG4gICAgICAvLyBMZXQgdGhlc2UgdHdvIHJlYWNoIFNhZmFyaSBEcml2ZXIgYW5kIGZhaWwgdGhlcmUgd2l0aCBhIHByb3BlciBlcnJvciBtZXNzYWdlXG4gICAgICAnaWQnLFxuICAgICAgJ25hbWUnLFxuICAgIF07XG4gICAgdGhpcy5yZXNldFN0YXRlKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtjbWQsIGZuXSBvZiBfLnRvUGFpcnMoY29tbWFuZHMpKSB7XG4gICAgICBTYWZhcmlEcml2ZXIucHJvdG90eXBlW2NtZF0gPSBmbjtcbiAgICB9XG4gIH1cblxuICByZXNldFN0YXRlICgpIHtcbiAgICB0aGlzLnNhZmFyaSA9IG51bGw7XG4gICAgdGhpcy5wcm94eVJlcVJlcyA9IG51bGw7XG4gICAgdGhpcy5pc1Byb3h5QWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy5fc2NyZWVuUmVjb3JkZXIgPSBudWxsO1xuICB9XG5cbiAgcHJveHlBY3RpdmUgKCkge1xuICAgIHJldHVybiB0aGlzLmlzUHJveHlBY3RpdmU7XG4gIH1cblxuICBnZXRQcm94eUF2b2lkTGlzdCAoKSB7XG4gICAgcmV0dXJuIE5PX1BST1hZO1xuICB9XG5cbiAgY2FuUHJveHkgKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlU2Vzc2lvbiAoLi4uYXJncykge1xuICAgIGNvbnN0IFtzZXNzaW9uSWQsIGNhcHNdID0gYXdhaXQgc3VwZXIuY3JlYXRlU2Vzc2lvbiguLi5hcmdzKTtcbiAgICB0aGlzLnNhZmFyaSA9IG5ldyBTYWZhcmlEcml2ZXJTZXJ2ZXIodGhpcy5sb2cpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNhZmFyaS5zdGFydChmb3JtYXRDYXBzRm9yU2VydmVyKGNhcHMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24oKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHRoaXMucHJveHlSZXFSZXMgPSB0aGlzLnNhZmFyaS5wcm94eS5wcm94eVJlcVJlcy5iaW5kKHRoaXMuc2FmYXJpLnByb3h5KTtcbiAgICB0aGlzLmlzUHJveHlBY3RpdmUgPSB0cnVlO1xuICAgIHJldHVybiBbc2Vzc2lvbklkLCBjYXBzXTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVNlc3Npb24gKCkge1xuICAgIHRoaXMubG9nLmluZm8oJ0VuZGluZyBTYWZhcmkgc2Vzc2lvbicpO1xuICAgIGF3YWl0IHRoaXMuX3NjcmVlblJlY29yZGVyPy5zdG9wKHRydWUpO1xuICAgIGF3YWl0IHRoaXMuc2FmYXJpPy5zdG9wKCk7XG4gICAgdGhpcy5yZXNldFN0YXRlKCk7XG5cbiAgICBhd2FpdCBzdXBlci5kZWxldGVTZXNzaW9uKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2FmYXJpRHJpdmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxDQUNmLENBQUMsS0FBRCxFQUFRLElBQUlDLE1BQUosQ0FBVyx3QkFBWCxDQUFSLENBRGUsRUFFZixDQUFDLE1BQUQsRUFBUyxJQUFJQSxNQUFKLENBQVcsd0JBQVgsQ0FBVCxDQUZlLEVBR2YsQ0FBQyxNQUFELEVBQVMsSUFBSUEsTUFBSixDQUFXLDBDQUFYLENBQVQsQ0FIZSxFQUlmLENBQUMsTUFBRCxFQUFTLElBQUlBLE1BQUosQ0FBVyw0QkFBWCxDQUFULENBSmUsRUFNZixDQUFDLFFBQUQsRUFBVyxJQUFJQSxNQUFKLENBQVcseUJBQVgsQ0FBWCxDQU5lLENBQWpCOztBQVNBLE1BQU1DLFlBQU4sU0FBMkJDLGtCQUEzQixDQUFzQztFQUNwQ0MsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCLE1BQU1BLElBQU47SUFDQSxLQUFLQyxxQkFBTCxHQUE2QkEsa0NBQTdCO0lBQ0EsS0FBS0MsaUJBQUwsR0FBeUIsQ0FDdkIsT0FEdUIsRUFFdkIsVUFGdUIsRUFHdkIsV0FIdUIsRUFJdkIsbUJBSnVCLEVBS3ZCLGNBTHVCLEVBT3ZCLElBUHVCLEVBUXZCLE1BUnVCLENBQXpCO0lBVUEsS0FBS0MsVUFBTDs7SUFFQSxLQUFLLE1BQU0sQ0FBQ0MsR0FBRCxFQUFNQyxFQUFOLENBQVgsSUFBd0JDLGVBQUEsQ0FBRUMsT0FBRixDQUFVQyxjQUFWLENBQXhCLEVBQTZDO01BQzNDWCxZQUFZLENBQUNZLFNBQWIsQ0FBdUJMLEdBQXZCLElBQThCQyxFQUE5QjtJQUNEO0VBQ0Y7O0VBRURGLFVBQVUsR0FBSTtJQUNaLEtBQUtPLE1BQUwsR0FBYyxJQUFkO0lBQ0EsS0FBS0MsV0FBTCxHQUFtQixJQUFuQjtJQUNBLEtBQUtDLGFBQUwsR0FBcUIsS0FBckI7SUFDQSxLQUFLQyxlQUFMLEdBQXVCLElBQXZCO0VBQ0Q7O0VBRURDLFdBQVcsR0FBSTtJQUNiLE9BQU8sS0FBS0YsYUFBWjtFQUNEOztFQUVERyxpQkFBaUIsR0FBSTtJQUNuQixPQUFPcEIsUUFBUDtFQUNEOztFQUVEcUIsUUFBUSxHQUFJO0lBQ1YsT0FBTyxJQUFQO0VBQ0Q7O0VBRWtCLE1BQWJDLGFBQWEsQ0FBRSxHQUFHQyxJQUFMLEVBQVc7SUFDNUIsTUFBTSxDQUFDQyxTQUFELEVBQVlDLElBQVosSUFBb0IsTUFBTSxNQUFNSCxhQUFOLENBQW9CLEdBQUdDLElBQXZCLENBQWhDO0lBQ0EsS0FBS1IsTUFBTCxHQUFjLElBQUlXLGVBQUosQ0FBdUIsS0FBS0MsR0FBNUIsQ0FBZDs7SUFDQSxJQUFJO01BQ0YsTUFBTSxLQUFLWixNQUFMLENBQVlhLEtBQVosQ0FBa0IsSUFBQUMsMEJBQUEsRUFBb0JKLElBQXBCLENBQWxCLENBQU47SUFDRCxDQUZELENBRUUsT0FBT0ssQ0FBUCxFQUFVO01BQ1YsTUFBTSxLQUFLQyxhQUFMLEVBQU47TUFDQSxNQUFNRCxDQUFOO0lBQ0Q7O0lBQ0QsS0FBS2QsV0FBTCxHQUFtQixLQUFLRCxNQUFMLENBQVlpQixLQUFaLENBQWtCaEIsV0FBbEIsQ0FBOEJpQixJQUE5QixDQUFtQyxLQUFLbEIsTUFBTCxDQUFZaUIsS0FBL0MsQ0FBbkI7SUFDQSxLQUFLZixhQUFMLEdBQXFCLElBQXJCO0lBQ0EsT0FBTyxDQUFDTyxTQUFELEVBQVlDLElBQVosQ0FBUDtFQUNEOztFQUVrQixNQUFiTSxhQUFhLEdBQUk7SUFBQTs7SUFDckIsS0FBS0osR0FBTCxDQUFTTyxJQUFULENBQWMsdUJBQWQ7SUFDQSxnQ0FBTSxLQUFLaEIsZUFBWCwwREFBTSxzQkFBc0JpQixJQUF0QixDQUEyQixJQUEzQixDQUFOO0lBQ0EsdUJBQU0sS0FBS3BCLE1BQVgsaURBQU0sYUFBYW9CLElBQWIsRUFBTjtJQUNBLEtBQUszQixVQUFMO0lBRUEsTUFBTSxNQUFNdUIsYUFBTixFQUFOO0VBQ0Q7O0FBN0RtQzs7ZUFnRXZCN0IsWSJ9
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _support = require("@appium/support");
10
+ var _support = require("appium/support");
11
11
 
12
12
  const log = _support.logger.getLogger('Safari');
13
13
 
@@ -15,4 +15,4 @@ var _default = log;
15
15
  exports.default = _default;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignU2FmYXJpJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsR0FBRyxHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQixRQUFqQixDQUFaOztlQUVlRixHIn0=
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsIm5hbWVzIjpbImxvZyIsImxvZ2dlciIsImdldExvZ2dlciJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdTYWZhcmknKTtcblxuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxHQUFHLEdBQUdDLGVBQUEsQ0FBT0MsU0FBUCxDQUFpQixRQUFqQixDQUFaOztlQUVlRixHIn0=
@@ -13,9 +13,9 @@ var _os = _interopRequireDefault(require("os"));
13
13
 
14
14
  var _path = _interopRequireDefault(require("path"));
15
15
 
16
- var _baseDriver = require("@appium/base-driver");
16
+ var _driver = require("appium/driver");
17
17
 
18
- var _support = require("@appium/support");
18
+ var _support = require("appium/support");
19
19
 
20
20
  var _teen_process = require("teen_process");
21
21
 
@@ -34,10 +34,10 @@ const SAFARI_SERVER_GUARD = _support.util.getLockFileGuard(_path.default.resolve
34
34
  tryRecovery: true
35
35
  });
36
36
 
37
- class SafariProxy extends _baseDriver.JWProxy {
37
+ class SafariProxy extends _driver.JWProxy {
38
38
  async proxyCommand(url, method, body = null) {
39
39
  if (this.didProcessExit) {
40
- throw new _baseDriver.errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Safari Driver server because ` + 'the process is not running (probably crashed). Check the server log for more details');
40
+ throw new _driver.errors.InvalidContextError(`'${method} ${url}' cannot be proxied to Safari Driver server because ` + 'the process is not running (probably crashed). Check the server log for more details');
41
41
  }
42
42
 
43
43
  return await super.proxyCommand(url, method, body);
@@ -195,4 +195,4 @@ var _default = SafariDriverServer;
195
195
  exports.default = _default;require('source-map-support').install();
196
196
 
197
197
 
198
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NhZmFyaS5qcyIsIm5hbWVzIjpbIlNEX0JJTkFSWSIsIlNUQVJUVVBfVElNRU9VVCIsIlNBRkFSSV9QT1JUX1JBTkdFIiwiU0FGQVJJX1NFUlZFUl9HVUFSRCIsInV0aWwiLCJnZXRMb2NrRmlsZUd1YXJkIiwicGF0aCIsInJlc29sdmUiLCJvcyIsInRtcGRpciIsInRpbWVvdXQiLCJ0cnlSZWNvdmVyeSIsIlNhZmFyaVByb3h5IiwiSldQcm94eSIsInByb3h5Q29tbWFuZCIsInVybCIsIm1ldGhvZCIsImJvZHkiLCJkaWRQcm9jZXNzRXhpdCIsImVycm9ycyIsIkludmFsaWRDb250ZXh0RXJyb3IiLCJTYWZhcmlEcml2ZXJQcm9jZXNzIiwiY29uc3RydWN0b3IiLCJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJwb3J0IiwicHJvYyIsImlzUnVubmluZyIsImluaXQiLCJzdGFydFBvcnQiLCJlbmRQb3J0IiwiZSIsIkVycm9yIiwic2FmYXJpQmluIiwiZnMiLCJ3aGljaCIsIlN1YlByb2Nlc3MiLCJvbiIsInN0ZG91dCIsInN0ZGVyciIsImxpbmUiLCJkZWJ1ZyIsImNvZGUiLCJzaWduYWwiLCJpbmZvIiwic3RhcnQiLCJraWxsIiwic3RvcCIsImlnbiIsIlNBRkFSSV9EUklWRVJfUFJPQ0VTUyIsInByb2Nlc3MiLCJvbmNlIiwicGlkIiwiU2FmYXJpRHJpdmVyU2VydmVyIiwicHJveHkiLCJjYXBzIiwic2VydmVyIiwiYmFzZSIsImtlZXBBbGl2ZSIsImNvbW1hbmQiLCJlcnIiLCJtZXNzYWdlIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsInRlc3QiLCJjYXBhYmlsaXRpZXMiLCJmaXJzdE1hdGNoIiwiYWx3YXlzTWF0Y2giLCJzZXNzaW9uSWQiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvc2FmYXJpLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEpXUHJveHksIGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciwgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmaW5kQVBvcnROb3RJblVzZSB9IGZyb20gJ3BvcnRzY2FubmVyJztcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IFNEX0JJTkFSWSA9ICdzYWZhcmlkcml2ZXInO1xuY29uc3QgU1RBUlRVUF9USU1FT1VUID0gMTAwMDA7IC8vIHNlY29uZHNcbmNvbnN0IFNBRkFSSV9QT1JUX1JBTkdFID0gWzUxMDAsIDUyMDBdO1xuLy8gVGhpcyBndWFyZCBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlXG4vLyB3ZSBuZXZlciBydW4gbXVsdGlwbGUgU2FmYXJpIGRyaXZlciBwcm9jZXNzZXMgZm9yIHRoZSBzYW1lIEFwcGl1bSBwcm9jZXNzXG5jb25zdCBTQUZBUklfU0VSVkVSX0dVQVJEID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKFxuICBwYXRoLnJlc29sdmUob3MudG1wZGlyKCksICdzYWZhcmlfc2VydmVyX2d1YXJkLmxvY2snKSxcbiAge3RpbWVvdXQ6IDUsIHRyeVJlY292ZXJ5OiB0cnVlfVxuKTtcblxuXG5jbGFzcyBTYWZhcmlQcm94eSBleHRlbmRzIEpXUHJveHkge1xuICBhc3luYyBwcm94eUNvbW1hbmQgKHVybCwgbWV0aG9kLCBib2R5ID0gbnVsbCkge1xuICAgIGlmICh0aGlzLmRpZFByb2Nlc3NFeGl0KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRDb250ZXh0RXJyb3IoXG4gICAgICAgIGAnJHttZXRob2R9ICR7dXJsfScgY2Fubm90IGJlIHByb3hpZWQgdG8gU2FmYXJpIERyaXZlciBzZXJ2ZXIgYmVjYXVzZSBgICtcbiAgICAgICAgJ3RoZSBwcm9jZXNzIGlzIG5vdCBydW5uaW5nIChwcm9iYWJseSBjcmFzaGVkKS4gQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlscycpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIucHJveHlDb21tYW5kKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5jbGFzcyBTYWZhcmlEcml2ZXJQcm9jZXNzIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMubG9nID0gbG9nZ2VyLmdldExvZ2dlcignU2FmYXJpRHJpdmVyUHJvY2VzcycpO1xuICAgIHRoaXMucG9ydCA9IG51bGw7XG4gICAgdGhpcy5wcm9jID0gbnVsbDtcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhISh0aGlzLnByb2M/LmlzUnVubmluZyk7XG4gIH1cblxuICBhc3luYyBpbml0ICgpIHtcbiAgICBhd2FpdCBTQUZBUklfU0VSVkVSX0dVQVJEKGFzeW5jICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtzdGFydFBvcnQsIGVuZFBvcnRdID0gU0FGQVJJX1BPUlRfUkFOR0U7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnBvcnQgPSBhd2FpdCBmaW5kQVBvcnROb3RJblVzZShzdGFydFBvcnQsIGVuZFBvcnQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENhbm5vdCBmaW5kIGFueSBmcmVlIHBvcnQgaW4gcmFuZ2UgJHtzdGFydFBvcnR9Li4ke2VuZFBvcnR9LiBgICtcbiAgICAgICAgICBgRG91YmxlIGNoZWNrIHRoZSBwcm9jZXNzZXMgdGhhdCBhcmUgbG9ja2luZyBwb3J0cyB3aXRoaW4gdGhpcyByYW5nZSBhbmQgdGVybWluYXRlIGAgK1xuICAgICAgICAgIGB0aGVzZSB3aGljaCBhcmUgbm90IG5lZWRlZCBhbnltb3JlYCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzYWZhcmlCaW47XG4gICAgICB0cnkge1xuICAgICAgICBzYWZhcmlCaW4gPSBhd2FpdCBmcy53aGljaChTRF9CSU5BUlkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7U0RfQklOQVJZfSBiaW5hcnkgY2Fubm90IGJlIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIHByZXNlbnQgb24geW91ciBzeXN0ZW1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvYyA9IG5ldyBTdWJQcm9jZXNzKHNhZmFyaUJpbiwgWyctcCcsIHRoaXMucG9ydCwgJy0tZGlhZ25vc2UnXSk7XG4gICAgICB0aGlzLnByb2Mub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICBjb25zdCBsaW5lID0gc3Rkb3V0IHx8IHN0ZGVycjtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYFske1NEX0JJTkFSWX1dICR7bGluZX1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGAke1NEX0JJTkFSWX0gaGFzIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBTdGFydGluZyAnJHtzYWZhcmlCaW59JyBvbiBwb3J0ICR7dGhpcy5wb3J0fWApO1xuICAgICAgYXdhaXQgdGhpcy5wcm9jLnN0YXJ0KDApO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMga2lsbCAoKSB7XG4gICAgaWYgKHRoaXMuaXNSdW5uaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Muc3RvcCgnU0lHS0lMTCcpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH1cbiAgfVxufVxuXG4vLyBTaW5nbGUgc2VydmVyIHByb2Nlc3MgcGVyIEFwcGl1bSBpbnN0YW5jZVxuY29uc3QgU0FGQVJJX0RSSVZFUl9QUk9DRVNTID0gbmV3IFNhZmFyaURyaXZlclByb2Nlc3MoKTtcbnByb2Nlc3Mub25jZSgnZXhpdCcsICgpID0+IHtcbiAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoYGtpbGwgJHtTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5waWR9YCk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG59KTtcblxuY2xhc3MgU2FmYXJpRHJpdmVyU2VydmVyIHtcbiAgY29uc3RydWN0b3IgKGxvZykge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMucHJveHkgPSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUnVubmluZyAoKSB7XG4gICAgcmV0dXJuICEhKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQgKGNhcHMpIHtcbiAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1MuaW5pdCgpO1xuXG4gICAgdGhpcy5wcm94eSA9IG5ldyBTYWZhcmlQcm94eSh7XG4gICAgICBzZXJ2ZXI6ICcxMjcuMC4wLjEnLFxuICAgICAgcG9ydDogU0FGQVJJX0RSSVZFUl9QUk9DRVNTLnBvcnQsXG4gICAgICBiYXNlOiAnJyxcbiAgICAgIGxvZzogdGhpcy5sb2csXG4gICAgICBrZWVwQWxpdmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5wcm94eS5kaWRQcm9jZXNzRXhpdCA9IGZhbHNlO1xuICAgIFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5wcm9jLm9uKCdleGl0JywgKCkgPT4ge1xuICAgICAgdGhpcy5wcm94eS5kaWRQcm9jZXNzRXhpdCA9IHRydWU7XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKCcvc3RhdHVzJywgJ0dFVCcpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAodGhpcy5wcm94eS5kaWRQcm9jZXNzRXhpdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyci5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LCB7XG4gICAgICAgIHdhaXRNczogU1RBUlRVUF9USU1FT1VULFxuICAgICAgICBpbnRlcnZhbE1zOiAxMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKC9Db25kaXRpb24gdW5tZXQvLnRlc3QoZS5tZXNzYWdlKSkge1xuICAgICAgICBpZiAoU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmlzUnVubmluZykge1xuICAgICAgICAgIC8vIGF2b2lkIFwiZnJvemVuXCIgcHJvY2Vzc2VzLFxuICAgICAgICAgIGF3YWl0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5raWxsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTYWZhcmkgRHJpdmVyIHNlcnZlciBpcyBub3QgbGlzdGVuaW5nIHdpdGhpbiAke1NUQVJUVVBfVElNRU9VVH1tcyB0aW1lb3V0LiBgICtcbiAgICAgICAgICBgTWFrZSBzdXJlIGl0IGhhcyBiZWVuIGV4ZWN1dGVkIG1hbnVhbGx5IGF0IGxlYXN0IG9uY2Ugd2l0aCAnLS1lbmFibGUnIGNvbW1hbmQgbGluZSBhcmd1bWVudC4gYCArXG4gICAgICAgICAgYENoZWNrIHRoZSBzZXJ2ZXIgbG9nIGZvciBtb3JlIGRldGFpbHNgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5wcm94eS5jb21tYW5kKCcvc2Vzc2lvbicsICdQT1NUJywge1xuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIGZpcnN0TWF0Y2g6IFt7fV0sXG4gICAgICAgIGFsd2F5c01hdGNoOiBjYXBzLFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3RvcCAoKSB7XG4gICAgaWYgKCF0aGlzLmlzUnVubmluZykge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgJHtTRF9CSU5BUll9IHNlc3Npb24gY2Fubm90IGJlIHN0b3BwZWQsIGJlY2F1c2UgdGhlIHNlcnZlciBpcyBub3QgcnVubmluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3h5Py5zZXNzaW9uSWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZChgL3Nlc3Npb24vJHt0aGlzLnByb3h5LnNlc3Npb25JZH1gLCAnREVMRVRFJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBkZWxldGVkLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmFyaURyaXZlclNlcnZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUcsY0FBbEI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsS0FBeEI7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxDQUFDLElBQUQsRUFBTyxJQUFQLENBQTFCOztBQUdBLE1BQU1DLG1CQUFtQixHQUFHQyxjQUFLQyxnQkFBTCxDQUMxQkMsY0FBS0MsT0FBTCxDQUFhQyxZQUFHQyxNQUFILEVBQWIs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
198
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NhZmFyaS5qcyIsIm5hbWVzIjpbIlNEX0JJTkFSWSIsIlNUQVJUVVBfVElNRU9VVCIsIlNBRkFSSV9QT1JUX1JBTkdFIiwiU0FGQVJJX1NFUlZFUl9HVUFSRCIsInV0aWwiLCJnZXRMb2NrRmlsZUd1YXJkIiwicGF0aCIsInJlc29sdmUiLCJvcyIsInRtcGRpciIsInRpbWVvdXQiLCJ0cnlSZWNvdmVyeSIsIlNhZmFyaVByb3h5IiwiSldQcm94eSIsInByb3h5Q29tbWFuZCIsInVybCIsIm1ldGhvZCIsImJvZHkiLCJkaWRQcm9jZXNzRXhpdCIsImVycm9ycyIsIkludmFsaWRDb250ZXh0RXJyb3IiLCJTYWZhcmlEcml2ZXJQcm9jZXNzIiwiY29uc3RydWN0b3IiLCJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJwb3J0IiwicHJvYyIsImlzUnVubmluZyIsImluaXQiLCJzdGFydFBvcnQiLCJlbmRQb3J0IiwiZmluZEFQb3J0Tm90SW5Vc2UiLCJlIiwiRXJyb3IiLCJzYWZhcmlCaW4iLCJmcyIsIndoaWNoIiwiU3ViUHJvY2VzcyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwibGluZSIsImRlYnVnIiwiY29kZSIsInNpZ25hbCIsImluZm8iLCJzdGFydCIsImtpbGwiLCJzdG9wIiwiaWduIiwiU0FGQVJJX0RSSVZFUl9QUk9DRVNTIiwicHJvY2VzcyIsIm9uY2UiLCJleGVjU3luYyIsInBpZCIsIlNhZmFyaURyaXZlclNlcnZlciIsInByb3h5IiwiY2FwcyIsInNlcnZlciIsImJhc2UiLCJrZWVwQWxpdmUiLCJ3YWl0Rm9yQ29uZGl0aW9uIiwiY29tbWFuZCIsImVyciIsIm1lc3NhZ2UiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwidGVzdCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsInNlc3Npb25JZCJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9zYWZhcmkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSldQcm94eSwgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyLCB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgZmluZEFQb3J0Tm90SW5Vc2UgfSBmcm9tICdwb3J0c2Nhbm5lcic7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5jb25zdCBTRF9CSU5BUlkgPSAnc2FmYXJpZHJpdmVyJztcbmNvbnN0IFNUQVJUVVBfVElNRU9VVCA9IDEwMDAwOyAvLyBzZWNvbmRzXG5jb25zdCBTQUZBUklfUE9SVF9SQU5HRSA9IFs1MTAwLCA1MjAwXTtcbi8vIFRoaXMgZ3VhcmQgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZVxuLy8gd2UgbmV2ZXIgcnVuIG11bHRpcGxlIFNhZmFyaSBkcml2ZXIgcHJvY2Vzc2VzIGZvciB0aGUgc2FtZSBBcHBpdW0gcHJvY2Vzc1xuY29uc3QgU0FGQVJJX1NFUlZFUl9HVUFSRCA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChcbiAgcGF0aC5yZXNvbHZlKG9zLnRtcGRpcigpLCAnc2FmYXJpX3NlcnZlcl9ndWFyZC5sb2NrJyksXG4gIHt0aW1lb3V0OiA1LCB0cnlSZWNvdmVyeTogdHJ1ZX1cbik7XG5cblxuY2xhc3MgU2FmYXJpUHJveHkgZXh0ZW5kcyBKV1Byb3h5IHtcbiAgYXN5bmMgcHJveHlDb21tYW5kICh1cmwsIG1ldGhvZCwgYm9keSA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5kaWRQcm9jZXNzRXhpdCkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQ29udGV4dEVycm9yKFxuICAgICAgICBgJyR7bWV0aG9kfSAke3VybH0nIGNhbm5vdCBiZSBwcm94aWVkIHRvIFNhZmFyaSBEcml2ZXIgc2VydmVyIGJlY2F1c2UgYCArXG4gICAgICAgICd0aGUgcHJvY2VzcyBpcyBub3QgcnVubmluZyAocHJvYmFibHkgY3Jhc2hlZCkuIENoZWNrIHRoZSBzZXJ2ZXIgbG9nIGZvciBtb3JlIGRldGFpbHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnByb3h5Q29tbWFuZCh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cbn1cblxuY2xhc3MgU2FmYXJpRHJpdmVyUHJvY2VzcyB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLmxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1NhZmFyaURyaXZlclByb2Nlc3MnKTtcbiAgICB0aGlzLnBvcnQgPSBudWxsO1xuICAgIHRoaXMucHJvYyA9IG51bGw7XG4gIH1cblxuICBnZXQgaXNSdW5uaW5nICgpIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9jPy5pc1J1bm5pbmcpO1xuICB9XG5cbiAgYXN5bmMgaW5pdCAoKSB7XG4gICAgYXdhaXQgU0FGQVJJX1NFUlZFUl9HVUFSRChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBbc3RhcnRQb3J0LCBlbmRQb3J0XSA9IFNBRkFSSV9QT1JUX1JBTkdFO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5wb3J0ID0gYXdhaXQgZmluZEFQb3J0Tm90SW5Vc2Uoc3RhcnRQb3J0LCBlbmRQb3J0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDYW5ub3QgZmluZCBhbnkgZnJlZSBwb3J0IGluIHJhbmdlICR7c3RhcnRQb3J0fS4uJHtlbmRQb3J0fS4gYCArXG4gICAgICAgICAgYERvdWJsZSBjaGVjayB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGxvY2tpbmcgcG9ydHMgd2l0aGluIHRoaXMgcmFuZ2UgYW5kIHRlcm1pbmF0ZSBgICtcbiAgICAgICAgICBgdGhlc2Ugd2hpY2ggYXJlIG5vdCBuZWVkZWQgYW55bW9yZWApO1xuICAgICAgfVxuXG4gICAgICBsZXQgc2FmYXJpQmluO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2FmYXJpQmluID0gYXdhaXQgZnMud2hpY2goU0RfQklOQVJZKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke1NEX0JJTkFSWX0gYmluYXJ5IGNhbm5vdCBiZSBmb3VuZCBpbiBQQVRILiBgICtcbiAgICAgICAgICBgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBwcmVzZW50IG9uIHlvdXIgc3lzdGVtYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnByb2MgPSBuZXcgU3ViUHJvY2VzcyhzYWZhcmlCaW4sIFsnLXAnLCB0aGlzLnBvcnQsICctLWRpYWdub3NlJ10pO1xuICAgICAgdGhpcy5wcm9jLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgY29uc3QgbGluZSA9IHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBbJHtTRF9CSU5BUll9XSAke2xpbmV9YCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgJHtTRF9CSU5BUll9IGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2cuaW5mbyhgU3RhcnRpbmcgJyR7c2FmYXJpQmlufScgb24gcG9ydCAke3RoaXMucG9ydH1gKTtcbiAgICAgIGF3YWl0IHRoaXMucHJvYy5zdGFydCgwKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGtpbGwgKCkge1xuICAgIGlmICh0aGlzLmlzUnVubmluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcm9jLnN0b3AoJ1NJR0tJTEwnKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9XG4gIH1cbn1cblxuLy8gU2luZ2xlIHNlcnZlciBwcm9jZXNzIHBlciBBcHBpdW0gaW5zdGFuY2VcbmNvbnN0IFNBRkFSSV9EUklWRVJfUFJPQ0VTUyA9IG5ldyBTYWZhcmlEcml2ZXJQcm9jZXNzKCk7XG5wcm9jZXNzLm9uY2UoJ2V4aXQnLCAoKSA9PiB7XG4gIGlmIChTQUZBUklfRFJJVkVSX1BST0NFU1MuaXNSdW5uaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGV4ZWNTeW5jKGBraWxsICR7U0FGQVJJX0RSSVZFUl9QUk9DRVNTLnByb2MucGlkfWApO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxufSk7XG5cbmNsYXNzIFNhZmFyaURyaXZlclNlcnZlciB7XG4gIGNvbnN0cnVjdG9yIChsb2cpIHtcbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLnByb3h5ID0gbnVsbDtcbiAgfVxuXG4gIGdldCBpc1J1bm5pbmcgKCkge1xuICAgIHJldHVybiAhIShTQUZBUklfRFJJVkVSX1BST0NFU1MuaXNSdW5uaW5nKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0IChjYXBzKSB7XG4gICAgYXdhaXQgU0FGQVJJX0RSSVZFUl9QUk9DRVNTLmluaXQoKTtcblxuICAgIHRoaXMucHJveHkgPSBuZXcgU2FmYXJpUHJveHkoe1xuICAgICAgc2VydmVyOiAnMTI3LjAuMC4xJyxcbiAgICAgIHBvcnQ6IFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5wb3J0LFxuICAgICAgYmFzZTogJycsXG4gICAgICBsb2c6IHRoaXMubG9nLFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSBmYWxzZTtcbiAgICBTQUZBUklfRFJJVkVSX1BST0NFU1MucHJvYy5vbignZXhpdCcsICgpID0+IHtcbiAgICAgIHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQgPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMucHJveHkuZGlkUHJvY2Vzc0V4aXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNUQVJUVVBfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgvQ29uZGl0aW9uIHVubWV0Ly50ZXN0KGUubWVzc2FnZSkpIHtcbiAgICAgICAgaWYgKFNBRkFSSV9EUklWRVJfUFJPQ0VTUy5pc1J1bm5pbmcpIHtcbiAgICAgICAgICAvLyBhdm9pZCBcImZyb3plblwiIHByb2Nlc3NlcyxcbiAgICAgICAgICBhd2FpdCBTQUZBUklfRFJJVkVSX1BST0NFU1Mua2lsbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2FmYXJpIERyaXZlciBzZXJ2ZXIgaXMgbm90IGxpc3RlbmluZyB3aXRoaW4gJHtTVEFSVFVQX1RJTUVPVVR9bXMgdGltZW91dC4gYCArXG4gICAgICAgICAgYE1ha2Ugc3VyZSBpdCBoYXMgYmVlbiBleGVjdXRlZCBtYW51YWxseSBhdCBsZWFzdCBvbmNlIHdpdGggJy0tZW5hYmxlJyBjb21tYW5kIGxpbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgIGBDaGVjayB0aGUgc2VydmVyIGxvZyBmb3IgbW9yZSBkZXRhaWxzYCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbe31dLFxuICAgICAgICBhbHdheXNNYXRjaDogY2FwcyxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AgKCkge1xuICAgIGlmICghdGhpcy5pc1J1bm5pbmcpIHtcbiAgICAgIHRoaXMubG9nLmluZm8oYCR7U0RfQklOQVJZfSBzZXNzaW9uIGNhbm5vdCBiZSBzdG9wcGVkLCBiZWNhdXNlIHRoZSBzZXJ2ZXIgaXMgbm90IHJ1bm5pbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm94eT8uc2Vzc2lvbklkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnByb3h5LmNvbW1hbmQoYC9zZXNzaW9uLyR7dGhpcy5wcm94eS5zZXNzaW9uSWR9YCwgJ0RFTEVURScpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGAke1NEX0JJTkFSWX0gc2Vzc2lvbiBjYW5ub3QgYmUgZGVsZXRlZC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTYWZhcmlEcml2ZXJTZXJ2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLGNBQWxCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEtBQXhCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFELEVBQU8sSUFBUCxDQUExQjs7QUFHQSxNQUFNQyxtQkFBbUIsR0FBR0MsYUFBQSxDQUFL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
@@ -30,4 +30,4 @@ function formatCapsForServer(caps) {
30
30
  }require('source-map-support').install();
31
31
 
32
32
 
33
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsiU0FGQVJJX0NBUF9QUkVGSVhFUyIsImZvcm1hdENhcHNGb3JTZXJ2ZXIiLCJjYXBzIiwicmVzdWx0IiwiYnJvd3Nlck5hbWUiLCJicm93c2VyVmVyc2lvbiIsInBsYXRmb3JtTmFtZSIsIm5hbWUiLCJ2YWx1ZSIsIl8iLCJ0b1BhaXJzIiwic29tZSIsInByZWZpeCIsInN0YXJ0c1dpdGgiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgU0FGQVJJX0NBUF9QUkVGSVhFUyA9IFsnc2FmYXJpOicsICd3ZWJraXQ6J107XG5cbmZ1bmN0aW9uIGZvcm1hdENhcHNGb3JTZXJ2ZXIgKGNhcHMpIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIGJyb3dzZXJOYW1lOiAnU2FmYXJpJyxcbiAgICBicm93c2VyVmVyc2lvbjogY2Fwcy5icm93c2VyVmVyc2lvbixcbiAgICBwbGF0Zm9ybU5hbWU6IGNhcHMucGxhdGZvcm1OYW1lIHx8ICdpT1MnLFxuICB9O1xuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgXy50b1BhaXJzKGNhcHMpKSB7XG4gICAgaWYgKFNBRkFSSV9DQVBfUFJFRklYRVMuc29tZSgocHJlZml4KSA9PiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkpIHtcbiAgICAgIHJlc3VsdFtuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgeyBmb3JtYXRDYXBzRm9yU2VydmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsbUJBQW1CLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixDQUE1Qjs7QUFFQSxTQUFTQyxtQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7RUFDbEMsTUFBTUMsTUFBTSxHQUFHO0lBQ2JDLFdBQVcsRUFBRSxRQURBO0lBRWJDLGNBQWMsRUFBRUgsSUFBSSxDQUFDRyxjQUZSO0lBR2JDLFlBQVksRUFBRUosSUFBSSxDQUFDSSxZQUFMLElBQXFCO0VBSHRCLENBQWY7O0VBS0EsS0FBSyxNQUFNLENBQUNDLElBQUQsRUFBT0MsS0FBUCxDQUFYLElBQTRCQyxnQkFBRUMsT0FBRixDQUFVUixJQUFWLENBQTVCLEVBQTZDO0lBQzNDLElBQUlGLG1CQUFtQixDQUFDVyxJQUFwQixDQUEwQkMsTUFBRCxJQUFZTCxJQUFJLENBQUNNLFVBQUwsQ0FBZ0JELE1BQWhCLENBQXJDLENBQUosRUFBbUU7TUFDakVULE1BQU0sQ0FBQ0ksSUFBRCxDQUFOLEdBQWVDLEtBQWY7SUFDRDtFQUNGOztFQUNELE9BQU9MLE1BQVA7QUFDRCJ9
33
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsiU0FGQVJJX0NBUF9QUkVGSVhFUyIsImZvcm1hdENhcHNGb3JTZXJ2ZXIiLCJjYXBzIiwicmVzdWx0IiwiYnJvd3Nlck5hbWUiLCJicm93c2VyVmVyc2lvbiIsInBsYXRmb3JtTmFtZSIsIm5hbWUiLCJ2YWx1ZSIsIl8iLCJ0b1BhaXJzIiwic29tZSIsInByZWZpeCIsInN0YXJ0c1dpdGgiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgU0FGQVJJX0NBUF9QUkVGSVhFUyA9IFsnc2FmYXJpOicsICd3ZWJraXQ6J107XG5cbmZ1bmN0aW9uIGZvcm1hdENhcHNGb3JTZXJ2ZXIgKGNhcHMpIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIGJyb3dzZXJOYW1lOiAnU2FmYXJpJyxcbiAgICBicm93c2VyVmVyc2lvbjogY2Fwcy5icm93c2VyVmVyc2lvbixcbiAgICBwbGF0Zm9ybU5hbWU6IGNhcHMucGxhdGZvcm1OYW1lIHx8ICdpT1MnLFxuICB9O1xuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgXy50b1BhaXJzKGNhcHMpKSB7XG4gICAgaWYgKFNBRkFSSV9DQVBfUFJFRklYRVMuc29tZSgocHJlZml4KSA9PiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkpIHtcbiAgICAgIHJlc3VsdFtuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgeyBmb3JtYXRDYXBzRm9yU2VydmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsbUJBQW1CLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixDQUE1Qjs7QUFFQSxTQUFTQyxtQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7RUFDbEMsTUFBTUMsTUFBTSxHQUFHO0lBQ2JDLFdBQVcsRUFBRSxRQURBO0lBRWJDLGNBQWMsRUFBRUgsSUFBSSxDQUFDRyxjQUZSO0lBR2JDLFlBQVksRUFBRUosSUFBSSxDQUFDSSxZQUFMLElBQXFCO0VBSHRCLENBQWY7O0VBS0EsS0FBSyxNQUFNLENBQUNDLElBQUQsRUFBT0MsS0FBUCxDQUFYLElBQTRCQyxlQUFBLENBQUVDLE9BQUYsQ0FBVVIsSUFBVixDQUE1QixFQUE2QztJQUMzQyxJQUFJRixtQkFBbUIsQ0FBQ1csSUFBcEIsQ0FBMEJDLE1BQUQsSUFBWUwsSUFBSSxDQUFDTSxVQUFMLENBQWdCRCxNQUFoQixDQUFyQyxDQUFKLEVBQW1FO01BQ2pFVCxNQUFNLENBQUNJLElBQUQsQ0FBTixHQUFlQyxLQUFmO0lBQ0Q7RUFDRjs7RUFDRCxPQUFPTCxNQUFQO0FBQ0QifQ==
@@ -6,8 +6,6 @@ require("source-map-support/register");
6
6
 
7
7
  var _webdriverio = require("webdriverio");
8
8
 
9
- var _ = require("../..");
10
-
11
9
  var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised"));
12
10
 
13
11
  var _chai = _interopRequireDefault(require("chai"));
@@ -20,21 +18,12 @@ _chai.default.use(_chaiAsPromised.default);
20
18
 
21
19
  const CAPS = {
22
20
  browserName: 'AppiumSafari',
23
- platformName: 'mac'
21
+ platformName: 'mac',
22
+ 'appium:automationName': 'safari'
24
23
  };
25
24
  describe('Desktop SafariDriver', function () {
26
25
  this.timeout(_utils.MOCHA_TIMEOUT);
27
- let server;
28
26
  let driver;
29
- before(async function () {
30
- server = await (0, _.startServer)(_utils.PORT, _utils.HOST);
31
- });
32
- after(async function () {
33
- if (server) {
34
- await server.close();
35
- server = null;
36
- }
37
- });
38
27
  beforeEach(async function () {
39
28
  driver = await (0, _webdriverio.remote)({
40
29
  hostname: _utils.HOST,
@@ -56,4 +45,4 @@ describe('Desktop SafariDriver', function () {
56
45
  });require('source-map-support').install();
57
46
 
58
47
 
59
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC9mdW5jdGlvbmFsL2Rlc2t0b3AtZHJpdmVyLWUyZS1zcGVjcy5qcyIsIm5hbWVzIjpbImNoYWkiLCJzaG91bGQiLCJ1c2UiLCJjaGFpQXNQcm9taXNlZCIsIkNBUFMiLCJicm93c2VyTmFtZSIsInBsYXRmb3JtTmFtZSIsImRlc2NyaWJlIiwidGltZW91dCIsIk1PQ0hBX1RJTUVPVVQiLCJzZXJ2ZXIiLCJkcml2ZXIiLCJiZWZvcmUiLCJQT1JUIiwiSE9TVCIsImFmdGVyIiwiY2xvc2UiLCJiZWZvcmVFYWNoIiwiaG9zdG5hbWUiLCJwb3J0IiwiY2FwYWJpbGl0aWVzIiwiYWZ0ZXJFYWNoIiwiZGVsZXRlU2Vzc2lvbiIsIml0IiwidXJsIiwiYnV0dG9uIiwiJCIsImdldFRleHQiLCJldmVudHVhbGx5IiwiZXFsIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsidGVzdC9mdW5jdGlvbmFsL2Rlc2t0b3AtZHJpdmVyLWUyZS1zcGVjcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdGUgfSBmcm9tICd3ZWJkcml2ZXJpbyc7XG5pbXBvcnQgeyBzdGFydFNlcnZlciB9IGZyb20gJy4uLy4uJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IHsgSE9TVCwgUE9SVCwgTU9DSEFfVElNRU9VVCB9IGZyb20gJy4uL3V0aWxzJztcblxuY2hhaS5zaG91bGQoKTtcbmNoYWkudXNlKGNoYWlBc1Byb21pc2VkKTtcblxuXG5jb25zdCBDQVBTID0ge1xuICBicm93c2VyTmFtZTogJ0FwcGl1bVNhZmFyaScsXG4gIHBsYXRmb3JtTmFtZTogJ21hYycsXG59O1xuXG5kZXNjcmliZSgnRGVza3RvcCBTYWZhcmlEcml2ZXInLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMudGltZW91dChNT0NIQV9USU1FT1VUKTtcblxuICBsZXQgc2VydmVyO1xuICBsZXQgZHJpdmVyO1xuICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIHNlcnZlciA9IGF3YWl0IHN0YXJ0U2VydmVyKFBPUlQsIEhPU1QpO1xuICB9KTtcbiAgYWZ0ZXIoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXIpIHtcbiAgICAgIGF3YWl0IHNlcnZlci5jbG9zZSgpO1xuICAgICAgc2VydmVyID0gbnVsbDtcbiAgICB9XG4gIH0pO1xuICBiZWZvcmVFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBkcml2ZXIgPSBhd2FpdCByZW1vdGUoe1xuICAgICAgaG9zdG5hbWU6IEhPU1QsXG4gICAgICBwb3J0OiBQT1JULFxuICAgICAgY2FwYWJpbGl0aWVzOiBDQVBTLFxuICAgIH0pO1xuICB9KTtcbiAgYWZ0ZXJFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZHJpdmVyKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuZGVsZXRlU2Vzc2lvbigpO1xuICAgICAgZHJpdmVyID0gbnVsbDtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc3RhcnQgYW5kIHN0b3AgYSBzZXNzaW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGF3YWl0IGRyaXZlci51cmwoJ2h0dHBzOi8vYXBwaXVtLmlvLycpO1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IGRyaXZlci4kKCcjZG93bmxvYWRMaW5rJyk7XG4gICAgYXdhaXQgYnV0dG9uLmdldFRleHQoKS5zaG91bGQuZXZlbnR1YWxseS5lcWwoJ0Rvd25sb2FkIEFwcGl1bScpO1xuICB9KTtcbn0pO1xuXG5cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLGNBQUtDLE1BQUw7O0FBQ0FELGNBQUtFLEdBQUwsQ0FBU0MsdUJBQVQ7O0FBR0EsTUFBTUMsSUFBSSxHQUFHO0VBQ1hDLFdBQVcsRUFBRSxjQURGO0VBRVhDLFlBQVksRUFBRTtBQUZILENBQWI7QUFLQUMsUUFBUSxDQUFDLHNCQUFELEVBQXlCLFlBQVk7RUFDM0MsS0FBS0MsT0FBTCxDQUFhQyxvQkFBYjtFQUVBLElBQUlDLE1BQUo7RUFDQSxJQUFJQyxNQUFKO0VBQ0FDLE1BQU0sQ0FBQyxrQkFBa0I7SUFDdkJGLE1BQU0sR0FBRyxNQUFNLG1CQUFZRyxXQUFaLEVBQWtCQyxXQUFsQixDQUFmO0VBQ0QsQ0FGSyxDQUFOO0VBR0FDLEtBQUssQ0FBQyxrQkFBa0I7SUFDdEIsSUFBSUwsTUFBSixFQUFZO01BQ1YsTUFBTUEsTUFBTSxDQUFDTSxLQUFQLEVBQU47TUFDQU4sTUFBTSxHQUFHLElBQVQ7SUFDRDtFQUNGLENBTEksQ0FBTDtFQU1BTyxVQUFVLENBQUMsa0JBQWtCO0lBQzNCTixNQUFNLEdBQUcsTUFBTSx5QkFBTztNQUNwQk8sUUFBUSxFQUFFSixXQURVO01BRXBCSyxJQUFJLEVBQUVOLFdBRmM7TUFHcEJPLFlBQVksRUFBRWhCO0lBSE0sQ0FBUCxDQUFmO0VBS0QsQ0FOUyxDQUFWO0VBT0FpQixTQUFTLENBQUMsa0JBQWtCO0lBQzFCLElBQUlWLE1BQUosRUFBWTtNQUNWLE1BQU1BLE1BQU0sQ0FBQ1csYUFBUCxFQUFOO01BQ0FYLE1BQU0sR0FBRyxJQUFUO0lBQ0Q7RUFDRixDQUxRLENBQVQ7RUFPQVksRUFBRSxDQUFDLGlDQUFELEVBQW9DLGtCQUFrQjtJQUN0RCxNQUFNWixNQUFNLENBQUNhLEdBQVAsQ0FBVyxvQkFBWCxDQUFOO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLE1BQU1kLE1BQU0sQ0FBQ2UsQ0FBUCxDQUFTLGVBQVQsQ0FBckI7SUFDQSxNQUFNRCxNQUFNLENBQUNFLE9BQVAsR0FBaUIxQixNQUFqQixDQUF3QjJCLFVBQXhCLENBQW1DQyxHQUFuQyxDQUF1QyxpQkFBdkMsQ0FBTjtFQUNELENBSkMsQ0FBRjtBQUtELENBakNPLENBQVIifQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC9mdW5jdGlvbmFsL2Rlc2t0b3AtZHJpdmVyLWUyZS1zcGVjcy5qcyIsIm5hbWVzIjpbImNoYWkiLCJzaG91bGQiLCJ1c2UiLCJjaGFpQXNQcm9taXNlZCIsIkNBUFMiLCJicm93c2VyTmFtZSIsInBsYXRmb3JtTmFtZSIsImRlc2NyaWJlIiwidGltZW91dCIsIk1PQ0hBX1RJTUVPVVQiLCJkcml2ZXIiLCJiZWZvcmVFYWNoIiwicmVtb3RlIiwiaG9zdG5hbWUiLCJIT1NUIiwicG9ydCIsIlBPUlQiLCJjYXBhYmlsaXRpZXMiLCJhZnRlckVhY2giLCJkZWxldGVTZXNzaW9uIiwiaXQiLCJ1cmwiLCJidXR0b24iLCIkIiwiZ2V0VGV4dCIsImV2ZW50dWFsbHkiLCJlcWwiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJ0ZXN0L2Z1bmN0aW9uYWwvZGVza3RvcC1kcml2ZXItZTJlLXNwZWNzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW90ZSB9IGZyb20gJ3dlYmRyaXZlcmlvJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IHsgSE9TVCwgUE9SVCwgTU9DSEFfVElNRU9VVCB9IGZyb20gJy4uL3V0aWxzJztcblxuY2hhaS5zaG91bGQoKTtcbmNoYWkudXNlKGNoYWlBc1Byb21pc2VkKTtcblxuXG5jb25zdCBDQVBTID0ge1xuICBicm93c2VyTmFtZTogJ0FwcGl1bVNhZmFyaScsXG4gIHBsYXRmb3JtTmFtZTogJ21hYycsXG4gICdhcHBpdW06YXV0b21hdGlvbk5hbWUnOiAnc2FmYXJpJyxcbn07XG5cbmRlc2NyaWJlKCdEZXNrdG9wIFNhZmFyaURyaXZlcicsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy50aW1lb3V0KE1PQ0hBX1RJTUVPVVQpO1xuXG4gIGxldCBkcml2ZXI7XG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGRyaXZlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgICBob3N0bmFtZTogSE9TVCxcbiAgICAgIHBvcnQ6IFBPUlQsXG4gICAgICBjYXBhYmlsaXRpZXM6IENBUFMsXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChkcml2ZXIpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5kZWxldGVTZXNzaW9uKCk7XG4gICAgICBkcml2ZXIgPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdGFydCBhbmQgc3RvcCBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgZHJpdmVyLnVybCgnaHR0cHM6Ly9hcHBpdW0uaW8vJyk7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgZHJpdmVyLiQoJyNkb3dubG9hZExpbmsnKTtcbiAgICBhd2FpdCBidXR0b24uZ2V0VGV4dCgpLnNob3VsZC5ldmVudHVhbGx5LmVxbCgnRG93bmxvYWQgQXBwaXVtJyk7XG4gIH0pO1xufSk7XG5cblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQUEsYUFBQSxDQUFLQyxNQUFMOztBQUNBRCxhQUFBLENBQUtFLEdBQUwsQ0FBU0MsdUJBQVQ7O0FBR0EsTUFBTUMsSUFBSSxHQUFHO0VBQ1hDLFdBQVcsRUFBRSxjQURGO0VBRVhDLFlBQVksRUFBRSxLQUZIO0VBR1gseUJBQXlCO0FBSGQsQ0FBYjtBQU1BQyxRQUFRLENBQUMsc0JBQUQsRUFBeUIsWUFBWTtFQUMzQyxLQUFLQyxPQUFMLENBQWFDLG9CQUFiO0VBRUEsSUFBSUMsTUFBSjtFQUNBQyxVQUFVLENBQUMsa0JBQWtCO0lBQzNCRCxNQUFNLEdBQUcsTUFBTSxJQUFBRSxtQkFBQSxFQUFPO01BQ3BCQyxRQUFRLEVBQUVDLFdBRFU7TUFFcEJDLElBQUksRUFBRUMsV0FGYztNQUdwQkMsWUFBWSxFQUFFYjtJQUhNLENBQVAsQ0FBZjtFQUtELENBTlMsQ0FBVjtFQU9BYyxTQUFTLENBQUMsa0JBQWtCO0lBQzFCLElBQUlSLE1BQUosRUFBWTtNQUNWLE1BQU1BLE1BQU0sQ0FBQ1MsYUFBUCxFQUFOO01BQ0FULE1BQU0sR0FBRyxJQUFUO0lBQ0Q7RUFDRixDQUxRLENBQVQ7RUFPQVUsRUFBRSxDQUFDLGlDQUFELEVBQW9DLGtCQUFrQjtJQUN0RCxNQUFNVixNQUFNLENBQUNXLEdBQVAsQ0FBVyxvQkFBWCxDQUFOO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLE1BQU1aLE1BQU0sQ0FBQ2EsQ0FBUCxDQUFTLGVBQVQsQ0FBckI7SUFDQSxNQUFNRCxNQUFNLENBQUNFLE9BQVAsR0FBaUJ2QixNQUFqQixDQUF3QndCLFVBQXhCLENBQW1DQyxHQUFuQyxDQUF1QyxpQkFBdkMsQ0FBTjtFQUNELENBSkMsQ0FBRjtBQUtELENBdkJPLENBQVIifQ==