@appium/base-driver 8.7.1 → 8.7.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 (84) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +207 -42
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +39 -44
  4. package/build/lib/basedriver/capabilities.js.map +1 -0
  5. package/build/lib/basedriver/commands/event.js +3 -3
  6. package/build/lib/basedriver/commands/event.js.map +1 -0
  7. package/build/lib/basedriver/commands/execute.js +3 -3
  8. package/build/lib/basedriver/commands/execute.js.map +1 -0
  9. package/build/lib/basedriver/commands/find.js.map +1 -0
  10. package/build/lib/basedriver/commands/index.js.map +1 -0
  11. package/build/lib/basedriver/commands/log.js +3 -3
  12. package/build/lib/basedriver/commands/log.js.map +1 -0
  13. package/build/lib/basedriver/commands/session.js +3 -3
  14. package/build/lib/basedriver/commands/session.js.map +1 -0
  15. package/build/lib/basedriver/commands/settings.js.map +1 -0
  16. package/build/lib/basedriver/commands/timeout.js +3 -3
  17. package/build/lib/basedriver/commands/timeout.js.map +1 -0
  18. package/build/lib/basedriver/core.d.ts +171 -20
  19. package/build/lib/basedriver/core.d.ts.map +1 -1
  20. package/build/lib/basedriver/core.js +4 -6
  21. package/build/lib/basedriver/core.js.map +1 -0
  22. package/build/lib/basedriver/desired-caps.d.ts +0 -2
  23. package/build/lib/basedriver/desired-caps.d.ts.map +1 -1
  24. package/build/lib/basedriver/desired-caps.js +4 -53
  25. package/build/lib/basedriver/desired-caps.js.map +1 -0
  26. package/build/lib/basedriver/device-settings.js +3 -3
  27. package/build/lib/basedriver/device-settings.js.map +1 -0
  28. package/build/lib/basedriver/driver.d.ts +323 -28
  29. package/build/lib/basedriver/driver.d.ts.map +1 -1
  30. package/build/lib/basedriver/driver.js +27 -30
  31. package/build/lib/basedriver/driver.js.map +1 -0
  32. package/build/lib/basedriver/helpers.d.ts +1 -1
  33. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  34. package/build/lib/basedriver/helpers.js +3 -3
  35. package/build/lib/basedriver/helpers.js.map +1 -0
  36. package/build/lib/basedriver/logger.js.map +1 -0
  37. package/build/lib/constants.js.map +1 -0
  38. package/build/lib/express/crash.js.map +1 -0
  39. package/build/lib/express/express-logging.js +3 -3
  40. package/build/lib/express/express-logging.js.map +1 -0
  41. package/build/lib/express/idempotency.js +3 -3
  42. package/build/lib/express/idempotency.js.map +1 -0
  43. package/build/lib/express/logger.js.map +1 -0
  44. package/build/lib/express/middleware.js +3 -3
  45. package/build/lib/express/middleware.js.map +1 -0
  46. package/build/lib/express/server.js +3 -3
  47. package/build/lib/express/server.js.map +1 -0
  48. package/build/lib/express/static.js +3 -3
  49. package/build/lib/express/static.js.map +1 -0
  50. package/build/lib/express/websocket.js +3 -3
  51. package/build/lib/express/websocket.js.map +1 -0
  52. package/build/lib/helpers/capabilities.d.ts +66 -5
  53. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  54. package/build/lib/helpers/capabilities.js +7 -7
  55. package/build/lib/helpers/capabilities.js.map +1 -0
  56. package/build/lib/index.d.ts +1 -1
  57. package/build/lib/index.d.ts.map +1 -1
  58. package/build/lib/index.js +10 -3
  59. package/build/lib/index.js.map +1 -0
  60. package/build/lib/jsonwp-proxy/protocol-converter.js +3 -3
  61. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -0
  62. package/build/lib/jsonwp-proxy/proxy.js +3 -3
  63. package/build/lib/jsonwp-proxy/proxy.js.map +1 -0
  64. package/build/lib/jsonwp-status/status.js +3 -3
  65. package/build/lib/jsonwp-status/status.js.map +1 -0
  66. package/build/lib/protocol/errors.js +3 -3
  67. package/build/lib/protocol/errors.js.map +1 -0
  68. package/build/lib/protocol/helpers.js +3 -3
  69. package/build/lib/protocol/helpers.js.map +1 -0
  70. package/build/lib/protocol/index.js.map +1 -0
  71. package/build/lib/protocol/protocol.js +3 -3
  72. package/build/lib/protocol/protocol.js.map +1 -0
  73. package/build/lib/protocol/routes.js +3 -3
  74. package/build/lib/protocol/routes.js.map +1 -0
  75. package/build/lib/protocol/validators.js +3 -3
  76. package/build/lib/protocol/validators.js.map +1 -0
  77. package/build/tsconfig.tsbuildinfo +1 -1
  78. package/lib/basedriver/capabilities.js +151 -93
  79. package/lib/basedriver/core.js +34 -18
  80. package/lib/basedriver/desired-caps.js +1 -53
  81. package/lib/basedriver/driver.js +113 -51
  82. package/lib/helpers/capabilities.js +19 -9
  83. package/lib/index.js +1 -0
  84. package/package.json +9 -10
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -16,6 +14,8 @@ var _support = require("@appium/support");
16
14
 
17
15
  var _constants = require("../constants");
18
16
 
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
19
  const SET_ALERT_TEXT_PAYLOAD_PARAMS = {
20
20
  validate: jsonObj => !_support.util.hasValue(jsonObj.value) && !_support.util.hasValue(jsonObj.text) && 'either "text" or "value" must be set',
21
21
  optional: ['value', 'text'],
@@ -1348,4 +1348,4 @@ function routeToCommandName(endpoint, method, basePath = _constants.DEFAULT_BASE
1348
1348
 
1349
1349
  const NO_SESSION_ID_COMMANDS = ['createSession', 'getStatus', 'getSessions'];
1350
1350
  exports.NO_SESSION_ID_COMMANDS = NO_SESSION_ID_COMMANDS;
1351
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfQUxFUlRfVEVYVF9QQVlMT0FEX1BBUkFNUyIsInZhbGlkYXRlIiwianNvbk9iaiIsInV0aWwiLCJoYXNWYWx1ZSIsInZhbHVlIiwidGV4dCIsIm9wdGlvbmFsIiwibWFrZUFyZ3MiLCJNRVRIT0RfTUFQIiwiR0VUIiwiY29tbWFuZCIsIlBPU1QiLCJwYXlsb2FkUGFyYW1zIiwiY2FwYWJpbGl0aWVzIiwiZGVzaXJlZENhcGFiaWxpdGllcyIsIkRFTEVURSIsInByb3RvY29sTmFtZSIsIlBST1RPQ09MUyIsIlczQyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ0eXBlIiwibXMiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3Byb3RvY29sL3JvdXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7UFJPVE9DT0xTLCBERUZBVUxUX0JBU0VfUEFUSH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8qKlxuICogZGVmaW5lIHRoZSByb3V0ZXMsIG1hcHBpbmcgb2YgSFRUUCBtZXRob2RzIHRvIHBhcnRpY3VsYXIgZHJpdmVyIGNvbW1hbmRzLCBhbmRcbiAqIGFueSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGV4cGVjdGVkIGluIGEgcmVxdWVzdCBwYXJhbWV0ZXJzIGNhbiBiZSBgcmVxdWlyZWRgIG9yXG4gKiBgb3B0aW9uYWxgXG4gKiBAdHlwZSB7TWV0aG9kTWFwfVxuICovXG5jb25zdCBNRVRIT0RfTUFQID0ge1xuICAnL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U3RhdHVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnY3JlYXRlU2Vzc2lvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhanNvbk9iai5jYXBhYmlsaXRpZXMgJiZcbiAgICAgICAgICAhanNvbk9iai5kZXNpcmVkQ2FwYWJpbGl0aWVzICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwiZGVzaXJlZENhcGFiaWxpdGllc1wiIG9yIFwiY2FwYWJpbGl0aWVzXCIgb2JqZWN0JyxcbiAgICAgICAgb3B0aW9uYWw6IFsnZGVzaXJlZENhcGFiaWxpdGllcycsICdyZXF1aXJlZENhcGFiaWxpdGllcycsICdjYXBhYmlsaXRpZXMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9ucyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2Vzc2lvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNlc3Npb24nfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlU2Vzc2lvbid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGltZW91dHMnfSwgLy8gVzNDIHJvdXRlXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RpbWVvdXRzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqLCBwcm90b2NvbE5hbWUpID0+IHtcbiAgICAgICAgICBpZiAocHJvdG9jb2xOYW1lID09PSBQUk9UT0NPTFMuVzNDKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2NyaXB0KSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnBhZ2VMb2FkKSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmltcGxpY2l0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnVzNDIHByb3RvY29sIGV4cGVjdHMgYW55IG9mIHNjcmlwdCwgcGFnZUxvYWQgb3IgaW1wbGljaXQgdG8gYmUgc2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTUpTT05XUFxuICAgICAgICAgICAgaWYgKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudHlwZSkgfHwgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5tcykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICdNSlNPTldQIHByb3RvY29sIHJlcXVpcmVzIHR5cGUgYW5kIG1zJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2FzeW5jX3NjcmlwdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2FzeW5jU2NyaXB0VGltZW91dCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2ltcGxpY2l0X3dhaXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdpbXBsaWNpdFdhaXQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbXMnXX19LFxuICB9LFxuICAvLyBKU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93X2hhbmRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgfSxcbiAgLy8gSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvd19oYW5kbGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGVzJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC91cmwnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFVybCd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VXJsJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VybCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZvcndhcmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmb3J3YXJkJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JlZnJlc2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZWZyZXNoJ30sXG4gIH0sXG4gIC8vIE1KU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19LFxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGVfYXN5bmMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2V4ZWN1dGVBc3luYycsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYXZhaWxhYmxlX2VuZ2luZXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2F2YWlsYWJsZUlNRUVuZ2luZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2ZV9lbmdpbmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFjdGl2ZUlNRUVuZ2luZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYWN0aXZhdGVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0lNRUFjdGl2YXRlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvZGVhY3RpdmF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RlYWN0aXZhdGVJTUVFbmdpbmUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZhdGVJTUVFbmdpbmUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZW5naW5lJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZnJhbWUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRGcmFtZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpZCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZyYW1lL3BhcmVudCc6IHtcbiAgICBQT1NUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnbmFtZScsICdoYW5kbGUnXSxcbiAgICAgICAgLy8gUmV0dXJuIGJvdGggdmFsdWVzIHRvIG1hdGNoIFczQyBhbmQgSlNPTldQIHByb3RvY29sc1xuICAgICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IHtcbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLmhhbmRsZSwganNvbk9iai5oYW5kbGVdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouaGFuZGxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLm5hbWUsIGpzb25PYmoubmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbanNvbk9iai5uYW1lLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwibmFtZVwiIG9yIFwiaGFuZGxlXCIgdG8gYmUgc2V0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnY2xvc2VXaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Lzp3aW5kb3doYW5kbGUvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93U2l6ZSd9LFxuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9wb3NpdGlvbic6IHtcbiAgICBQT1NUOiB7fSxcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9tYXhpbWl6ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21heGltaXplV2luZG93J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2Nvb2tpZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q29va2llcyd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Q29va2llJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2Nvb2tpZSddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZUNvb2tpZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29va2llLzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb29raWUnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlQ29va2llJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NvdXJjZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0UGFnZVNvdXJjZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aXRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAndGl0bGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHMnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvYWN0aXZlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdhY3RpdmUnfSwgLy8gVzNDOiBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZGZuLWdldC1hY3RpdmUtZWxlbWVudFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZCc6IHtcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnRGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHNGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3N1Ym1pdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3N1Ym1pdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGV4dCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBhcmd1bWVudCBjb25zdHJ1Y3RvciBiZWNhdXNlIG9mIHRoZSBzcGVjaWFsXG4gICAgICAgIC8vIGxvZ2ljIGhlcmUuIEJhc2ljYWxseSB3ZSB3YW50IHRvIGFjY2VwdCBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUClcbiAgICAgICAgLy8gb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlXG4gICAgICAgIC8vIGNvbW1hbmQgKG5vdCBib3RoKS4gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlXG4gICAgICAgIC8vIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQva2V5cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleXMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndmFsdWUnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmFtZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xlYXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGVhcid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2VsZWN0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRTZWxlY3RlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZW5hYmxlZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudEVuYWJsZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS86bmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QXR0cmlidXRlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lcXVhbHMvOm90aGVySWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VxdWFsc0VsZW1lbnQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Rpc3BsYXllZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudERpc3BsYXllZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldExvY2F0aW9uJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9sb2NhdGlvbl9pbl92aWV3Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbkluVmlldyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2l6ZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2hhZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50U2hhZG93Um9vdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zaGFkb3cvOnNoYWRvd0lkL2VsZW1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbVNoYWRvd1Jvb3QnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NoYWRvdy86c2hhZG93SWQvZWxlbWVudHMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50c0Zyb21TaGFkb3dSb290JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY3NzLzpwcm9wZXJ0eU5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENzc1Byb3BlcnR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRPcmllbnRhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcm90YXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFJvdGF0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRSb3RhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knLCAneiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnbW92ZVRvJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NsaWNrQ3VycmVudCcsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b251cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2J1dHRvblVwJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2J1dHRvbiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZG91YmxlQ2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZG93bic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoRG93bicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC91cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoVXAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9zY3JvbGwnOiB7XG4gICAgUE9TVDoge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2xvbmdjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTG9uZ0NsaWNrJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2VsZW1lbnRzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZmxpY2snOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZsaWNrJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0R2VvTG9jYXRpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldEdlb0xvY2F0aW9uJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2xvY2F0aW9uJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhbF9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL2tleS86a2V5Jzoge1xuICAgIEdFVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZy90eXBlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TG9nVHlwZXMnfSxcbiAgfSxcbiAgLy8gbWpzb253aXJlLCBhcHBpdW0gY2xpZW50c1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2cnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2cnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndHlwZSddfX0sXG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBsaWNhdGlvbl9jYWNoZS9zdGF0dXMnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcblxuICAvL1xuICAvLyBtanNvbndpcmVcbiAgLy9cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29udGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudENvbnRleHQnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldENvbnRleHQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbmFtZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcGFnZUluZGV4Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQYWdlSW5kZXgnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbmV0d29ya19jb25uZWN0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXROZXR3b3JrQ29ubmVjdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXROZXR3b3JrQ29ubmVjdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7dW53cmFwOiAncGFyYW1ldGVycycsIHJlcXVpcmVkOiBbJ3R5cGUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybVRvdWNoJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHt3cmFwOiAnYWN0aW9ucycsIHJlcXVpcmVkOiBbJ2FjdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybU11bHRpQWN0aW9uJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9yZWNlaXZlX2FzeW5jX3Jlc3BvbnNlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdyZWNlaXZlQXN5bmNSZXNwb25zZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdHVzJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc2hha2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtb2JpbGVTaGFrZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV90aW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdW5sb2NrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndW5sb2NrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfbG9ja2VkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaXNMb2NrZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0YXJ0UmVjb3JkaW5nU2NyZWVuJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zdG9wX3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0b3BSZWNvcmRpbmdTY3JlZW4nLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ29wdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3BlcmZvcm1hbmNlRGF0YS90eXBlcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YVR5cGVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9nZXRQZXJmb3JtYW5jZURhdGEnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sXG4gICAgICAgIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3ByZXNzS2V5Q29kZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9sb25nX3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5nZXJwcmludCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NlbmRfc21zJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZW5kU01TJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwaG9uZU51bWJlcicsICdtZXNzYWdlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZ3NtX2NhbGwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbUNhbGwnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Bob25lTnVtYmVyJywgJ2FjdGlvbiddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnNpZ25hbFN0cmVuZ3RoKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW1xuICAgICAgICAgIHV0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV92b2ljZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbVZvaWNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcG93ZXJfYWMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3dlckFDJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9uZXR3b3JrX3NwZWVkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbmV0d29ya1NwZWVkJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25ldHNwZWVkJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAna2V5ZXZlbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvcm90YXRlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdtb2JpbGVSb3RhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3gnLCAneScsICdyYWRpdXMnLCAncm90YXRpb24nLCAndG91Y2hDb3VudCcsICdkdXJhdGlvbiddLFxuICAgICAgICBvcHRpb25hbDogWydlbGVtZW50J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9hY3Rpdml0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudEFjdGl2aXR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9wYWNrYWdlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50UGFja2FnZSd9LFxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncXVlcnlBcHBTdGF0ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAvL2VuZHJlZ2lvblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2hpZGVfa2V5Ym9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2hpZGVLZXlib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc3RyYXRlZ3knLCAna2V5JywgJ2tleUNvZGUnLCAna2V5TmFtZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2tleWJvYXJkX3Nob3duJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0tleWJvYXJkU2hvd24nfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wdXNoX2ZpbGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdXNoRmlsZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJywgJ2RhdGEnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZm9sZGVyJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVsbEZvbGRlcicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfYWlycGxhbmVfbW9kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUZsaWdodE1vZGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfd2lmaSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZVdpRmknfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfbG9jYXRpb25fc2VydmljZXMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVMb2NhdGlvblNlcnZpY2VzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zdGFydF9hY3Rpdml0eSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc3RhcnRBY3Rpdml0eScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2FwcFBhY2thZ2UnLCAnYXBwQWN0aXZpdHknXSxcbiAgICAgICAgb3B0aW9uYWw6IFtcbiAgICAgICAgICAnYXBwV2FpdFBhY2thZ2UnLFxuICAgICAgICAgICdhcHBXYWl0QWN0aXZpdHknLFxuICAgICAgICAgICdpbnRlbnRBY3Rpb24nLFxuICAgICAgICAgICdpbnRlbnRDYXRlZ29yeScsXG4gICAgICAgICAgJ2ludGVudEZsYWdzJyxcbiAgICAgICAgICAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLFxuICAgICAgICAgICdkb250U3RvcEFwcE9uUmVzZXQnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV9iYXJzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTeXN0ZW1CYXJzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZGlzcGxheV9kZW5zaXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREaXNwbGF5RGVuc2l0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zaW11bGF0b3IvdG9nZ2xlX3RvdWNoX2lkX2Vucm9sbG1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2VuYWJsZWQnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9jbG9zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Nsb3NlQXBwJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvcmVzZXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZXNldCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2VuZF90ZXN0X2NvdmVyYWdlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnaW50ZW50JywgJ3BhdGgnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRTdHJpbmdzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlSW1tZWRpYXRlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgICAvLyBQcmVmZXIgJ3ZhbHVlJyBzaW5jZSBpdCdzIG1vcmUgYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSB8fCBqc29uT2JqLnRleHRdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3JlcGxhY2VfdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3JlcGxhY2VWYWx1ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgICAgLy8gV2Ugd2FudCB0byBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUCkgb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsXG4gICAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgPz8ganNvbk9iai50ZXh0ID8/ICcnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NldHRpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndXBkYXRlU2V0dGluZ3MnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2V0dGluZ3MnXX19LFxuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXR0aW5ncyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVjZWl2ZUFzeW5jUmVzcG9uc2UnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9ldmVudHMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2dFdmVudHMnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsndHlwZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9sb2dfZXZlbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvZ0N1c3RvbUV2ZW50JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2ZW5kb3InLCAnZXZlbnQnXX0sXG4gICAgfSxcbiAgfSxcblxuICAvKlxuICAgKiBUaGUgVzNDIHNwZWMgaGFzIHNvbWUgY2hhbmdlcyB0byB0aGUgd2lyZSBwcm90b2NvbC5cbiAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sXG4gICAqIEJlZ2luIHRvIGFkZCB0aG9zZSBjaGFuZ2VzIGhlcmUsIGtlZXBpbmcgdGhlIG9sZCB2ZXJzaW9uXG4gICAqIHNpbmNlIGNsaWVudHMgc3RpbGwgaW1wbGVtZW50IHRoZW0uXG4gICAqL1xuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0X3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY2NlcHRfYWxlcnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0QWNjZXB0QWxlcnQnfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kaXNtaXNzX2FsZXJ0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdERpc21pc3NBbGVydCd9LFxuICB9LFxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjdXNlci1wcm9tcHRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvYWNjZXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdEFjY2VwdEFsZXJ0J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L2Rpc21pc3MnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0RGlzbWlzc0FsZXJ0J30sXG4gIH0sXG4gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNnZXQtZWxlbWVudC1yZWN0XG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50UmVjdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL3N5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZS9hc3luYyc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZXhlY3V0ZUFzeW5jJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzY3JpcHQnLCAnYXJncyddfSxcbiAgICB9LFxuICB9LFxuICAvLyBQcmUtVzNDIGVuZHBvaW50IGZvciBlbGVtZW50IHNjcmVlbnNob3RcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdC86ZWxlbWVudElkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFNjcmVlbnNob3QnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L3JlY3QnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd1JlY3QnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93UmVjdCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3dpZHRoJywgJ2hlaWdodCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWluaW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtaW5pbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvZnVsbHNjcmVlbic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Z1bGxTY3JlZW5XaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L25ldyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZU5ld1dpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWyd0eXBlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3Byb3BlcnR5LzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQcm9wZXJ0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NldF9jbGlwYm9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldENsaXBib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NvbnRlbnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnY29udGVudFR5cGUnLCAnbGFiZWwnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRDbGlwYm9hcmQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICBvcHRpb25hbDogWydjb250ZW50VHlwZSddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuXG4gIC8vIGNocm9taXVtIGRldnRvb2xzXG4gIC8vIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL3NlcnZlci9odHRwX2hhbmRsZXIuY2NcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvOnZlbmRvci9jZHAvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGVDZHAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnY21kJywgJ3BhcmFtcyddfX0sXG4gIH0sXG5cbiAgLy9yZWdpb24gV2ViYXV0aG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tYXV0b21hdGlvbi1hZGQtdmlydHVhbC1hdXRoZW50aWNhdG9yXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvcic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnYWRkVmlydHVhbEF1dGhlbnRpY2F0b3InLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydwcm90b2NvbCcsICd0cmFuc3BvcnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnaGFzUmVzaWRlbnRLZXknLCAnaGFzVXNlclZlcmlmaWNhdGlvbicsICdpc1VzZXJDb25zZW50aW5nJywgJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkJzoge1xuICAgIERFTEVURToge1xuICAgICAgY29tbWFuZDogJ3JlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yJyxcbiAgICB9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFsJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhZGRBdXRoQ3JlZGVudGlhbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NyZWRlbnRpYWxJZCcsICdpc1Jlc2lkZW50Q3JlZGVudGlhbCcsICdycElkJywgJ3ByaXZhdGVLZXknXSxcbiAgICAgICAgb3B0aW9uYWw6IFsndXNlckhhbmRsZScsICdzaWduQ291bnQnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbHMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF1dGhDcmVkZW50aWFsJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbW92ZUFsbEF1dGhDcmVkZW50aWFscyd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFscy86Y3JlZGVudGlhbElkJzoge1xuICAgIERFTEVURToge2NvbW1hbmQ6ICdyZW1vdmVBdXRoQ3JlZGVudGlhbCd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC91dic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VXNlckF1dGhWZXJpZmllZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgLy9lbmRyZWdpb25cbn07XG5cbi8vIGRyaXZlciBjb21tYW5kIG5hbWVzXG5sZXQgQUxMX0NPTU1BTkRTID0gW107XG5mb3IgKGxldCB2IG9mIF8udmFsdWVzKE1FVEhPRF9NQVApKSB7XG4gIGZvciAobGV0IG0gb2YgXy52YWx1ZXModikpIHtcbiAgICBpZiAobS5jb21tYW5kKSB7XG4gICAgICBBTExfQ09NTUFORFMucHVzaChtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSRV9FU0NBUEUgPSAvWy1bXFxde30oKSs/LixcXFxcXiR8I1xcc10vZztcbmNvbnN0IFJFX1BBUkFNID0gLyhbOipdKShcXHcrKS9nO1xuXG5jbGFzcyBSb3V0ZSB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlKSB7XG4gICAgdGhpcy5wYXJhbU5hbWVzID0gW107XG5cbiAgICBsZXQgcmVTdHIgPSByb3V0ZS5yZXBsYWNlKFJFX0VTQ0FQRSwgJ1xcXFwkJicpO1xuICAgIHJlU3RyID0gcmVTdHIucmVwbGFjZShSRV9QQVJBTSwgKF8sIG1vZGUsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMucGFyYW1OYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgcmV0dXJuIG1vZGUgPT09ICc6JyA/ICcoW14vXSopJyA6ICcoLiopJztcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlUmVnZXhwID0gbmV3IFJlZ0V4cChgXiR7cmVTdHJ9JGApO1xuICB9XG5cbiAgcGFyc2UodXJsKSB7XG4gICAgLy9pZiAodXJsLmluZGV4T2YoJ3RpbWVvdXRzJykgIT09IC0xICYmIHRoaXMucm91dGVSZWdleHAudG9TdHJpbmcoKS5pbmRleE9mKCd0aW1lb3V0cycpICE9PSAtMSkge1xuICAgIC8vZGVidWdnZXI7XG4gICAgLy99XG4gICAgbGV0IG1hdGNoZXMgPSB1cmwubWF0Y2godGhpcy5yb3V0ZVJlZ2V4cCk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIHdoaWxlIChpIDwgdGhpcy5wYXJhbU5hbWVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyYW1OYW1lID0gdGhpcy5wYXJhbU5hbWVzW2krK107XG4gICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IG1hdGNoZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVuZHBvaW50XG4gKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IG1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlUGF0aF1cbiAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiByb3V0ZVRvQ29tbWFuZE5hbWUoZW5kcG9pbnQsIG1ldGhvZCwgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCkge1xuICBsZXQgZHN0Um91dGUgPSBudWxsO1xuXG4gIC8vIHJlbW92ZSBhbnkgcXVlcnkgc3RyaW5nXG4gIC8vIFRPRE86IHdvdWxkIHRoaXMgYmUgYmV0dGVyIGhhbmRsZWQgYXMgYSBgVVJMYCBvYmplY3Q/XG4gIGlmIChlbmRwb2ludC5pbmNsdWRlcygnPycpKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludC5zbGljZSgwLCBlbmRwb2ludC5pbmRleE9mKCc/JykpO1xuICB9XG5cbiAgY29uc3QgYWN0dWFsRW5kcG9pbnQgPVxuICAgIGVuZHBvaW50ID09PSAnLycgPyAnJyA6IF8uc3RhcnRzV2l0aChlbmRwb2ludCwgJy8nKSA/IGVuZHBvaW50IDogYC8ke2VuZHBvaW50fWA7XG5cbiAgZm9yIChsZXQgY3VycmVudFJvdXRlIG9mIF8ua2V5cyhNRVRIT0RfTUFQKSkge1xuICAgIGNvbnN0IHJvdXRlID0gbmV3IFJvdXRlKGAke2Jhc2VQYXRofSR7Y3VycmVudFJvdXRlfWApO1xuICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCBzZXNzaW9uIGlkIGZvciBtYXRjaGluZ1xuICAgIGlmIChcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofS9zZXNzaW9uL2lnbm9yZWQtc2Vzc2lvbi1pZCR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofSR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGFjdHVhbEVuZHBvaW50KVxuICAgICkge1xuICAgICAgZHN0Um91dGUgPSBjdXJyZW50Um91dGU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFkc3RSb3V0ZSkgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgY29uc3QgbWV0aG9kcyA9IF8uZ2V0KE1FVEhPRF9NQVAsIGRzdFJvdXRlKTtcbiAgbWV0aG9kID0gLyoqIEB0eXBlIHtVcHBlcmNhc2U8dHlwZW9mIG1ldGhvZD59ICovIChfLnRvVXBwZXIobWV0aG9kKSk7XG4gIGlmIChfLmhhcyhtZXRob2RzLCBtZXRob2QpKSB7XG4gICAgY29uc3QgZHN0TWV0aG9kID0gXy5nZXQobWV0aG9kcywgbWV0aG9kKTtcbiAgICBpZiAoZHN0TWV0aG9kLmNvbW1hbmQpIHtcbiAgICAgIHJldHVybiBkc3RNZXRob2QuY29tbWFuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gZHJpdmVyIGNvbW1hbmRzIHRoYXQgZG8gbm90IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGFscmVhZHkgZXhpc3RcbmNvbnN0IE5PX1NFU1NJT05fSURfQ09NTUFORFMgPSBbJ2NyZWF0ZVNlc3Npb24nLCAnZ2V0U3RhdHVzJywgJ2dldFNlc3Npb25zJ107XG5cbmV4cG9ydCB7TUVUSE9EX01BUCwgQUxMX0NPTU1BTkRTLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCByb3V0ZVRvQ29tbWFuZE5hbWV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk1ldGhvZE1hcH0gTWV0aG9kTWFwXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsNkJBQTZCLEdBQUc7RUFDcENDLFFBQVEsRUFBR0MsT0FBRCxJQUNSLENBQUNDLGFBQUEsQ0FBS0MsUUFBTCxDQUFjRixPQUFPLENBQUNHLEtBQXRCLENBQUQsSUFDQSxDQUFDRixhQUFBLENBQUtDLFFBQUwsQ0FBY0YsT0FBTyxDQUFDSSxJQUF0QixDQURELElBRUEsc0NBSmtDO0VBS3BDQyxRQUFRLEVBQUUsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUwwQjtFQU9wQ0MsUUFBUSxFQUFHTixPQUFELElBQWEsQ0FBQ0EsT0FBTyxDQUFDRyxLQUFSLElBQWlCSCxPQUFPLENBQUNJLElBQTFCO0FBUGEsQ0FBdEM7QUFnQkEsTUFBTUcsVUFBVSxHQUFHO0VBQ2pCLFdBQVc7SUFDVEMsR0FBRyxFQUFFO01BQUNDLE9BQU8sRUFBRTtJQUFWO0VBREksQ0FETTtFQUlqQixZQUFZO0lBQ1ZDLElBQUksRUFBRTtNQUNKRCxPQUFPLEVBQUUsZUFETDtNQUVKRSxhQUFhLEVBQUU7UUFDYlosUUFBUSxFQUFHQyxPQUFELElBQ1IsQ0FBQ0EsT0FBTyxDQUFDWSxZQUFULElBQ0EsQ0FBQ1osT0FBTyxDQUFDYSxtQkFEVCxJQUVBLGtFQUpXO1FBS2JSLFFBQVEsRUFBRSxDQUFDLHFCQUFELEVBQXdCLHNCQUF4QixFQUFnRCxjQUFoRDtNQUxHO0lBRlg7RUFESSxDQUpLO0VBZ0JqQixhQUFhO0lBQ1hHLEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVjtFQURNLENBaEJJO0VBbUJqQix1QkFBdUI7SUFDckJELEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVixDQURnQjtJQUVyQkssTUFBTSxF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
1351
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfQUxFUlRfVEVYVF9QQVlMT0FEX1BBUkFNUyIsInZhbGlkYXRlIiwianNvbk9iaiIsInV0aWwiLCJoYXNWYWx1ZSIsInZhbHVlIiwidGV4dCIsIm9wdGlvbmFsIiwibWFrZUFyZ3MiLCJNRVRIT0RfTUFQIiwiR0VUIiwiY29tbWFuZCIsIlBPU1QiLCJwYXlsb2FkUGFyYW1zIiwiY2FwYWJpbGl0aWVzIiwiZGVzaXJlZENhcGFiaWxpdGllcyIsIkRFTEVURSIsInByb3RvY29sTmFtZSIsIlBST1RPQ09MUyIsIlczQyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ0eXBlIiwibXMiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3Byb3RvY29sL3JvdXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7UFJPVE9DT0xTLCBERUZBVUxUX0JBU0VfUEFUSH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8qKlxuICogZGVmaW5lIHRoZSByb3V0ZXMsIG1hcHBpbmcgb2YgSFRUUCBtZXRob2RzIHRvIHBhcnRpY3VsYXIgZHJpdmVyIGNvbW1hbmRzLCBhbmRcbiAqIGFueSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGV4cGVjdGVkIGluIGEgcmVxdWVzdCBwYXJhbWV0ZXJzIGNhbiBiZSBgcmVxdWlyZWRgIG9yXG4gKiBgb3B0aW9uYWxgXG4gKiBAdHlwZSB7TWV0aG9kTWFwfVxuICovXG5jb25zdCBNRVRIT0RfTUFQID0ge1xuICAnL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U3RhdHVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnY3JlYXRlU2Vzc2lvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhanNvbk9iai5jYXBhYmlsaXRpZXMgJiZcbiAgICAgICAgICAhanNvbk9iai5kZXNpcmVkQ2FwYWJpbGl0aWVzICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwiZGVzaXJlZENhcGFiaWxpdGllc1wiIG9yIFwiY2FwYWJpbGl0aWVzXCIgb2JqZWN0JyxcbiAgICAgICAgb3B0aW9uYWw6IFsnZGVzaXJlZENhcGFiaWxpdGllcycsICdyZXF1aXJlZENhcGFiaWxpdGllcycsICdjYXBhYmlsaXRpZXMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9ucyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2Vzc2lvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNlc3Npb24nfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlU2Vzc2lvbid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGltZW91dHMnfSwgLy8gVzNDIHJvdXRlXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RpbWVvdXRzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqLCBwcm90b2NvbE5hbWUpID0+IHtcbiAgICAgICAgICBpZiAocHJvdG9jb2xOYW1lID09PSBQUk9UT0NPTFMuVzNDKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2NyaXB0KSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnBhZ2VMb2FkKSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmltcGxpY2l0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnVzNDIHByb3RvY29sIGV4cGVjdHMgYW55IG9mIHNjcmlwdCwgcGFnZUxvYWQgb3IgaW1wbGljaXQgdG8gYmUgc2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTUpTT05XUFxuICAgICAgICAgICAgaWYgKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudHlwZSkgfHwgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5tcykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICdNSlNPTldQIHByb3RvY29sIHJlcXVpcmVzIHR5cGUgYW5kIG1zJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2FzeW5jX3NjcmlwdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2FzeW5jU2NyaXB0VGltZW91dCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2ltcGxpY2l0X3dhaXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdpbXBsaWNpdFdhaXQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbXMnXX19LFxuICB9LFxuICAvLyBKU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93X2hhbmRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgfSxcbiAgLy8gSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvd19oYW5kbGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGVzJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC91cmwnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFVybCd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VXJsJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VybCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZvcndhcmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmb3J3YXJkJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JlZnJlc2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZWZyZXNoJ30sXG4gIH0sXG4gIC8vIE1KU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19LFxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGVfYXN5bmMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2V4ZWN1dGVBc3luYycsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYXZhaWxhYmxlX2VuZ2luZXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2F2YWlsYWJsZUlNRUVuZ2luZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2ZV9lbmdpbmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFjdGl2ZUlNRUVuZ2luZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYWN0aXZhdGVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0lNRUFjdGl2YXRlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvZGVhY3RpdmF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RlYWN0aXZhdGVJTUVFbmdpbmUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZhdGVJTUVFbmdpbmUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZW5naW5lJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZnJhbWUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRGcmFtZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpZCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZyYW1lL3BhcmVudCc6IHtcbiAgICBQT1NUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnbmFtZScsICdoYW5kbGUnXSxcbiAgICAgICAgLy8gUmV0dXJuIGJvdGggdmFsdWVzIHRvIG1hdGNoIFczQyBhbmQgSlNPTldQIHByb3RvY29sc1xuICAgICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IHtcbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLmhhbmRsZSwganNvbk9iai5oYW5kbGVdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouaGFuZGxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLm5hbWUsIGpzb25PYmoubmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbanNvbk9iai5uYW1lLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwibmFtZVwiIG9yIFwiaGFuZGxlXCIgdG8gYmUgc2V0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnY2xvc2VXaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Lzp3aW5kb3doYW5kbGUvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93U2l6ZSd9LFxuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9wb3NpdGlvbic6IHtcbiAgICBQT1NUOiB7fSxcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9tYXhpbWl6ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21heGltaXplV2luZG93J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2Nvb2tpZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q29va2llcyd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Q29va2llJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2Nvb2tpZSddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZUNvb2tpZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29va2llLzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb29raWUnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlQ29va2llJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NvdXJjZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0UGFnZVNvdXJjZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aXRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAndGl0bGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHMnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvYWN0aXZlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdhY3RpdmUnfSwgLy8gVzNDOiBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZGZuLWdldC1hY3RpdmUtZWxlbWVudFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZCc6IHtcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnRGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHNGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3N1Ym1pdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3N1Ym1pdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGV4dCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBhcmd1bWVudCBjb25zdHJ1Y3RvciBiZWNhdXNlIG9mIHRoZSBzcGVjaWFsXG4gICAgICAgIC8vIGxvZ2ljIGhlcmUuIEJhc2ljYWxseSB3ZSB3YW50IHRvIGFjY2VwdCBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUClcbiAgICAgICAgLy8gb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlXG4gICAgICAgIC8vIGNvbW1hbmQgKG5vdCBib3RoKS4gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlXG4gICAgICAgIC8vIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQva2V5cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleXMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndmFsdWUnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmFtZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xlYXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGVhcid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2VsZWN0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRTZWxlY3RlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZW5hYmxlZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudEVuYWJsZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS86bmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QXR0cmlidXRlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lcXVhbHMvOm90aGVySWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VxdWFsc0VsZW1lbnQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Rpc3BsYXllZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudERpc3BsYXllZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldExvY2F0aW9uJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9sb2NhdGlvbl9pbl92aWV3Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbkluVmlldyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2l6ZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2hhZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50U2hhZG93Um9vdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zaGFkb3cvOnNoYWRvd0lkL2VsZW1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbVNoYWRvd1Jvb3QnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NoYWRvdy86c2hhZG93SWQvZWxlbWVudHMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50c0Zyb21TaGFkb3dSb290JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY3NzLzpwcm9wZXJ0eU5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENzc1Byb3BlcnR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRPcmllbnRhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcm90YXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFJvdGF0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRSb3RhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knLCAneiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnbW92ZVRvJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NsaWNrQ3VycmVudCcsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b251cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2J1dHRvblVwJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2J1dHRvbiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZG91YmxlQ2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZG93bic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoRG93bicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC91cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoVXAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9zY3JvbGwnOiB7XG4gICAgUE9TVDoge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2xvbmdjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTG9uZ0NsaWNrJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2VsZW1lbnRzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZmxpY2snOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZsaWNrJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0R2VvTG9jYXRpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldEdlb0xvY2F0aW9uJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2xvY2F0aW9uJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhbF9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL2tleS86a2V5Jzoge1xuICAgIEdFVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZy90eXBlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TG9nVHlwZXMnfSxcbiAgfSxcbiAgLy8gbWpzb253aXJlLCBhcHBpdW0gY2xpZW50c1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2cnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2cnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndHlwZSddfX0sXG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBsaWNhdGlvbl9jYWNoZS9zdGF0dXMnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcblxuICAvL1xuICAvLyBtanNvbndpcmVcbiAgLy9cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29udGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudENvbnRleHQnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldENvbnRleHQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbmFtZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcGFnZUluZGV4Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQYWdlSW5kZXgnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbmV0d29ya19jb25uZWN0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXROZXR3b3JrQ29ubmVjdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXROZXR3b3JrQ29ubmVjdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7dW53cmFwOiAncGFyYW1ldGVycycsIHJlcXVpcmVkOiBbJ3R5cGUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybVRvdWNoJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHt3cmFwOiAnYWN0aW9ucycsIHJlcXVpcmVkOiBbJ2FjdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybU11bHRpQWN0aW9uJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9yZWNlaXZlX2FzeW5jX3Jlc3BvbnNlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdyZWNlaXZlQXN5bmNSZXNwb25zZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdHVzJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc2hha2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtb2JpbGVTaGFrZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV90aW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdW5sb2NrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndW5sb2NrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfbG9ja2VkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaXNMb2NrZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0YXJ0UmVjb3JkaW5nU2NyZWVuJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zdG9wX3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0b3BSZWNvcmRpbmdTY3JlZW4nLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ29wdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3BlcmZvcm1hbmNlRGF0YS90eXBlcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YVR5cGVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9nZXRQZXJmb3JtYW5jZURhdGEnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sXG4gICAgICAgIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3ByZXNzS2V5Q29kZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9sb25nX3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5nZXJwcmludCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NlbmRfc21zJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZW5kU01TJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwaG9uZU51bWJlcicsICdtZXNzYWdlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZ3NtX2NhbGwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbUNhbGwnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Bob25lTnVtYmVyJywgJ2FjdGlvbiddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnNpZ25hbFN0cmVuZ3RoKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW1xuICAgICAgICAgIHV0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV92b2ljZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbVZvaWNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcG93ZXJfYWMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3dlckFDJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9uZXR3b3JrX3NwZWVkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbmV0d29ya1NwZWVkJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25ldHNwZWVkJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAna2V5ZXZlbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvcm90YXRlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdtb2JpbGVSb3RhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3gnLCAneScsICdyYWRpdXMnLCAncm90YXRpb24nLCAndG91Y2hDb3VudCcsICdkdXJhdGlvbiddLFxuICAgICAgICBvcHRpb25hbDogWydlbGVtZW50J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9hY3Rpdml0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudEFjdGl2aXR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9wYWNrYWdlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50UGFja2FnZSd9LFxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncXVlcnlBcHBTdGF0ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAvL2VuZHJlZ2lvblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2hpZGVfa2V5Ym9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2hpZGVLZXlib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc3RyYXRlZ3knLCAna2V5JywgJ2tleUNvZGUnLCAna2V5TmFtZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2tleWJvYXJkX3Nob3duJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0tleWJvYXJkU2hvd24nfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wdXNoX2ZpbGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdXNoRmlsZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJywgJ2RhdGEnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZm9sZGVyJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVsbEZvbGRlcicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfYWlycGxhbmVfbW9kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUZsaWdodE1vZGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfd2lmaSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZVdpRmknfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfbG9jYXRpb25fc2VydmljZXMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVMb2NhdGlvblNlcnZpY2VzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zdGFydF9hY3Rpdml0eSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc3RhcnRBY3Rpdml0eScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2FwcFBhY2thZ2UnLCAnYXBwQWN0aXZpdHknXSxcbiAgICAgICAgb3B0aW9uYWw6IFtcbiAgICAgICAgICAnYXBwV2FpdFBhY2thZ2UnLFxuICAgICAgICAgICdhcHBXYWl0QWN0aXZpdHknLFxuICAgICAgICAgICdpbnRlbnRBY3Rpb24nLFxuICAgICAgICAgICdpbnRlbnRDYXRlZ29yeScsXG4gICAgICAgICAgJ2ludGVudEZsYWdzJyxcbiAgICAgICAgICAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLFxuICAgICAgICAgICdkb250U3RvcEFwcE9uUmVzZXQnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV9iYXJzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTeXN0ZW1CYXJzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZGlzcGxheV9kZW5zaXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREaXNwbGF5RGVuc2l0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zaW11bGF0b3IvdG9nZ2xlX3RvdWNoX2lkX2Vucm9sbG1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2VuYWJsZWQnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9jbG9zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Nsb3NlQXBwJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvcmVzZXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZXNldCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2VuZF90ZXN0X2NvdmVyYWdlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnaW50ZW50JywgJ3BhdGgnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRTdHJpbmdzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlSW1tZWRpYXRlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgICAvLyBQcmVmZXIgJ3ZhbHVlJyBzaW5jZSBpdCdzIG1vcmUgYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSB8fCBqc29uT2JqLnRleHRdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3JlcGxhY2VfdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3JlcGxhY2VWYWx1ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgICAgLy8gV2Ugd2FudCB0byBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUCkgb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsXG4gICAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgPz8ganNvbk9iai50ZXh0ID8/ICcnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NldHRpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndXBkYXRlU2V0dGluZ3MnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2V0dGluZ3MnXX19LFxuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXR0aW5ncyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVjZWl2ZUFzeW5jUmVzcG9uc2UnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9ldmVudHMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2dFdmVudHMnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsndHlwZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9sb2dfZXZlbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvZ0N1c3RvbUV2ZW50JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2ZW5kb3InLCAnZXZlbnQnXX0sXG4gICAgfSxcbiAgfSxcblxuICAvKlxuICAgKiBUaGUgVzNDIHNwZWMgaGFzIHNvbWUgY2hhbmdlcyB0byB0aGUgd2lyZSBwcm90b2NvbC5cbiAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sXG4gICAqIEJlZ2luIHRvIGFkZCB0aG9zZSBjaGFuZ2VzIGhlcmUsIGtlZXBpbmcgdGhlIG9sZCB2ZXJzaW9uXG4gICAqIHNpbmNlIGNsaWVudHMgc3RpbGwgaW1wbGVtZW50IHRoZW0uXG4gICAqL1xuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0X3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY2NlcHRfYWxlcnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0QWNjZXB0QWxlcnQnfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kaXNtaXNzX2FsZXJ0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdERpc21pc3NBbGVydCd9LFxuICB9LFxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjdXNlci1wcm9tcHRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvYWNjZXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdEFjY2VwdEFsZXJ0J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L2Rpc21pc3MnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0RGlzbWlzc0FsZXJ0J30sXG4gIH0sXG4gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNnZXQtZWxlbWVudC1yZWN0XG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50UmVjdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL3N5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZS9hc3luYyc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZXhlY3V0ZUFzeW5jJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzY3JpcHQnLCAnYXJncyddfSxcbiAgICB9LFxuICB9LFxuICAvLyBQcmUtVzNDIGVuZHBvaW50IGZvciBlbGVtZW50IHNjcmVlbnNob3RcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdC86ZWxlbWVudElkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFNjcmVlbnNob3QnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L3JlY3QnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd1JlY3QnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93UmVjdCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3dpZHRoJywgJ2hlaWdodCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWluaW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtaW5pbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvZnVsbHNjcmVlbic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Z1bGxTY3JlZW5XaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L25ldyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZU5ld1dpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWyd0eXBlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3Byb3BlcnR5LzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQcm9wZXJ0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NldF9jbGlwYm9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldENsaXBib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NvbnRlbnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnY29udGVudFR5cGUnLCAnbGFiZWwnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRDbGlwYm9hcmQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICBvcHRpb25hbDogWydjb250ZW50VHlwZSddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuXG4gIC8vIGNocm9taXVtIGRldnRvb2xzXG4gIC8vIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL3NlcnZlci9odHRwX2hhbmRsZXIuY2NcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvOnZlbmRvci9jZHAvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGVDZHAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnY21kJywgJ3BhcmFtcyddfX0sXG4gIH0sXG5cbiAgLy9yZWdpb24gV2ViYXV0aG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tYXV0b21hdGlvbi1hZGQtdmlydHVhbC1hdXRoZW50aWNhdG9yXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvcic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnYWRkVmlydHVhbEF1dGhlbnRpY2F0b3InLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydwcm90b2NvbCcsICd0cmFuc3BvcnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnaGFzUmVzaWRlbnRLZXknLCAnaGFzVXNlclZlcmlmaWNhdGlvbicsICdpc1VzZXJDb25zZW50aW5nJywgJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkJzoge1xuICAgIERFTEVURToge1xuICAgICAgY29tbWFuZDogJ3JlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yJyxcbiAgICB9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFsJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhZGRBdXRoQ3JlZGVudGlhbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NyZWRlbnRpYWxJZCcsICdpc1Jlc2lkZW50Q3JlZGVudGlhbCcsICdycElkJywgJ3ByaXZhdGVLZXknXSxcbiAgICAgICAgb3B0aW9uYWw6IFsndXNlckhhbmRsZScsICdzaWduQ291bnQnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbHMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF1dGhDcmVkZW50aWFsJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbW92ZUFsbEF1dGhDcmVkZW50aWFscyd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFscy86Y3JlZGVudGlhbElkJzoge1xuICAgIERFTEVURToge2NvbW1hbmQ6ICdyZW1vdmVBdXRoQ3JlZGVudGlhbCd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC91dic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VXNlckF1dGhWZXJpZmllZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgLy9lbmRyZWdpb25cbn07XG5cbi8vIGRyaXZlciBjb21tYW5kIG5hbWVzXG5sZXQgQUxMX0NPTU1BTkRTID0gW107XG5mb3IgKGxldCB2IG9mIF8udmFsdWVzKE1FVEhPRF9NQVApKSB7XG4gIGZvciAobGV0IG0gb2YgXy52YWx1ZXModikpIHtcbiAgICBpZiAobS5jb21tYW5kKSB7XG4gICAgICBBTExfQ09NTUFORFMucHVzaChtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSRV9FU0NBUEUgPSAvWy1bXFxde30oKSs/LixcXFxcXiR8I1xcc10vZztcbmNvbnN0IFJFX1BBUkFNID0gLyhbOipdKShcXHcrKS9nO1xuXG5jbGFzcyBSb3V0ZSB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlKSB7XG4gICAgdGhpcy5wYXJhbU5hbWVzID0gW107XG5cbiAgICBsZXQgcmVTdHIgPSByb3V0ZS5yZXBsYWNlKFJFX0VTQ0FQRSwgJ1xcXFwkJicpO1xuICAgIHJlU3RyID0gcmVTdHIucmVwbGFjZShSRV9QQVJBTSwgKF8sIG1vZGUsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMucGFyYW1OYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgcmV0dXJuIG1vZGUgPT09ICc6JyA/ICcoW14vXSopJyA6ICcoLiopJztcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlUmVnZXhwID0gbmV3IFJlZ0V4cChgXiR7cmVTdHJ9JGApO1xuICB9XG5cbiAgcGFyc2UodXJsKSB7XG4gICAgLy9pZiAodXJsLmluZGV4T2YoJ3RpbWVvdXRzJykgIT09IC0xICYmIHRoaXMucm91dGVSZWdleHAudG9TdHJpbmcoKS5pbmRleE9mKCd0aW1lb3V0cycpICE9PSAtMSkge1xuICAgIC8vZGVidWdnZXI7XG4gICAgLy99XG4gICAgbGV0IG1hdGNoZXMgPSB1cmwubWF0Y2godGhpcy5yb3V0ZVJlZ2V4cCk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIHdoaWxlIChpIDwgdGhpcy5wYXJhbU5hbWVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyYW1OYW1lID0gdGhpcy5wYXJhbU5hbWVzW2krK107XG4gICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IG1hdGNoZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVuZHBvaW50XG4gKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IG1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlUGF0aF1cbiAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiByb3V0ZVRvQ29tbWFuZE5hbWUoZW5kcG9pbnQsIG1ldGhvZCwgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCkge1xuICBsZXQgZHN0Um91dGUgPSBudWxsO1xuXG4gIC8vIHJlbW92ZSBhbnkgcXVlcnkgc3RyaW5nXG4gIC8vIFRPRE86IHdvdWxkIHRoaXMgYmUgYmV0dGVyIGhhbmRsZWQgYXMgYSBgVVJMYCBvYmplY3Q/XG4gIGlmIChlbmRwb2ludC5pbmNsdWRlcygnPycpKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludC5zbGljZSgwLCBlbmRwb2ludC5pbmRleE9mKCc/JykpO1xuICB9XG5cbiAgY29uc3QgYWN0dWFsRW5kcG9pbnQgPVxuICAgIGVuZHBvaW50ID09PSAnLycgPyAnJyA6IF8uc3RhcnRzV2l0aChlbmRwb2ludCwgJy8nKSA/IGVuZHBvaW50IDogYC8ke2VuZHBvaW50fWA7XG5cbiAgZm9yIChsZXQgY3VycmVudFJvdXRlIG9mIF8ua2V5cyhNRVRIT0RfTUFQKSkge1xuICAgIGNvbnN0IHJvdXRlID0gbmV3IFJvdXRlKGAke2Jhc2VQYXRofSR7Y3VycmVudFJvdXRlfWApO1xuICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCBzZXNzaW9uIGlkIGZvciBtYXRjaGluZ1xuICAgIGlmIChcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofS9zZXNzaW9uL2lnbm9yZWQtc2Vzc2lvbi1pZCR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofSR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGFjdHVhbEVuZHBvaW50KVxuICAgICkge1xuICAgICAgZHN0Um91dGUgPSBjdXJyZW50Um91dGU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFkc3RSb3V0ZSkgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgY29uc3QgbWV0aG9kcyA9IF8uZ2V0KE1FVEhPRF9NQVAsIGRzdFJvdXRlKTtcbiAgbWV0aG9kID0gLyoqIEB0eXBlIHtVcHBlcmNhc2U8dHlwZW9mIG1ldGhvZD59ICovIChfLnRvVXBwZXIobWV0aG9kKSk7XG4gIGlmIChfLmhhcyhtZXRob2RzLCBtZXRob2QpKSB7XG4gICAgY29uc3QgZHN0TWV0aG9kID0gXy5nZXQobWV0aG9kcywgbWV0aG9kKTtcbiAgICBpZiAoZHN0TWV0aG9kLmNvbW1hbmQpIHtcbiAgICAgIHJldHVybiBkc3RNZXRob2QuY29tbWFuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gZHJpdmVyIGNvbW1hbmRzIHRoYXQgZG8gbm90IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGFscmVhZHkgZXhpc3RcbmNvbnN0IE5PX1NFU1NJT05fSURfQ09NTUFORFMgPSBbJ2NyZWF0ZVNlc3Npb24nLCAnZ2V0U3RhdHVzJywgJ2dldFNlc3Npb25zJ107XG5cbmV4cG9ydCB7TUVUSE9EX01BUCwgQUxMX0NPTU1BTkRTLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCByb3V0ZVRvQ29tbWFuZE5hbWV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk1ldGhvZE1hcH0gTWV0aG9kTWFwXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsNkJBQTZCLEdBQUc7RUFDcENDLFFBQVEsRUFBR0MsT0FBRCxJQUNSLENBQUNDLGFBQUEsQ0FBS0MsUUFBTCxDQUFjRixPQUFPLENBQUNHLEtBQXRCLENBQUQsSUFDQSxDQUFDRixhQUFBLENBQUtDLFFBQUwsQ0FBY0YsT0FBTyxDQUFDSSxJQUF0QixDQURELElBRUEsc0NBSmtDO0VBS3BDQyxRQUFRLEVBQUUsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUwwQjtFQU9wQ0MsUUFBUSxFQUFHTixPQUFELElBQWEsQ0FBQ0EsT0FBTyxDQUFDRyxLQUFSLElBQWlCSCxPQUFPLENBQUNJLElBQTFCO0FBUGEsQ0FBdEM7QUFnQkEsTUFBTUcsVUFBVSxHQUFHO0VBQ2pCLFdBQVc7SUFDVEMsR0FBRyxFQUFFO01BQUNDLE9BQU8sRUFBRTtJQUFWO0VBREksQ0FETTtFQUlqQixZQUFZO0lBQ1ZDLElBQUksRUFBRTtNQUNKRCxPQUFPLEVBQUUsZUFETDtNQUVKRSxhQUFhLEVBQUU7UUFDYlosUUFBUSxFQUFHQyxPQUFELElBQ1IsQ0FBQ0EsT0FBTyxDQUFDWSxZQUFULElBQ0EsQ0FBQ1osT0FBTyxDQUFDYSxtQkFEVCxJQUVBLGtFQUpXO1FBS2JSLFFBQVEsRUFBRSxDQUFDLHFCQUFELEVBQXdCLHNCQUF4QixFQUFnRCxjQUFoRDtNQUxHO0lBRlg7RUFESSxDQUpLO0VBZ0JqQixhQUFhO0lBQ1hHLEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVjtFQURNLENBaEJJO0VBbUJqQix1QkFBdUI7SUFDckJELEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVixDQURnQjtJQUVyQkssTUFBTSxF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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","names":["SET_ALERT_TEXT_PAYLOAD_PARAMS","validate","jsonObj","util","hasValue","value","text","optional","makeArgs","METHOD_MAP","GET","command","POST","payloadParams","capabilities","desiredCapabilities","DELETE","protocolName","PROTOCOLS","W3C","script","pageLoad","implicit","type","ms","required","handle","name","unwrap","wrap","signalStrength","signalStrengh","ALL_COMMANDS","v","_","values","m","push","RE_ESCAPE","RE_PARAM","Route","constructor","route","paramNames","reStr","replace","mode","routeRegexp","RegExp","parse","url","matches","match","i","params","length","paramName","routeToCommandName","endpoint","method","basePath","DEFAULT_BASE_PATH","dstRoute","includes","slice","indexOf","actualEndpoint","startsWith","currentRoute","keys","methods","get","toUpper","has","dstMethod","NO_SESSION_ID_COMMANDS"],"sources":["../../../lib/protocol/routes.js"],"sourcesContent":["// @ts-check\n\nimport _ from 'lodash';\nimport {util} from '@appium/support';\nimport {PROTOCOLS, DEFAULT_BASE_PATH} from '../constants';\n\nconst SET_ALERT_TEXT_PAYLOAD_PARAMS = {\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.value) &&\n !util.hasValue(jsonObj.text) &&\n 'either \"text\" or \"value\" must be set',\n optional: ['value', 'text'],\n // Prefer 'value' since it's more backward-compatible.\n makeArgs: (jsonObj) => [jsonObj.value || jsonObj.text],\n};\n\n/**\n * define the routes, mapping of HTTP methods to particular driver commands, and\n * any parameters that are expected in a request parameters can be `required` or\n * `optional`\n * @type {MethodMap}\n */\nconst METHOD_MAP = {\n '/status': {\n GET: {command: 'getStatus'},\n },\n '/session': {\n POST: {\n command: 'createSession',\n payloadParams: {\n validate: (jsonObj) =>\n !jsonObj.capabilities &&\n !jsonObj.desiredCapabilities &&\n 'we require one of \"desiredCapabilities\" or \"capabilities\" object',\n optional: ['desiredCapabilities', 'requiredCapabilities', 'capabilities'],\n },\n },\n },\n '/sessions': {\n GET: {command: 'getSessions'},\n },\n '/session/:sessionId': {\n GET: {command: 'getSession'},\n DELETE: {command: 'deleteSession'},\n },\n '/session/:sessionId/timeouts': {\n GET: {command: 'getTimeouts'}, // W3C route\n POST: {\n command: 'timeouts',\n payloadParams: {\n validate: (jsonObj, protocolName) => {\n if (protocolName === PROTOCOLS.W3C) {\n if (\n !util.hasValue(jsonObj.script) &&\n !util.hasValue(jsonObj.pageLoad) &&\n !util.hasValue(jsonObj.implicit)\n ) {\n return 'W3C protocol expects any of script, pageLoad or implicit to be set';\n }\n } else {\n // MJSONWP\n if (!util.hasValue(jsonObj.type) || !util.hasValue(jsonObj.ms)) {\n return 'MJSONWP protocol requires type and ms';\n }\n }\n },\n optional: ['type', 'ms', 'script', 'pageLoad', 'implicit'],\n },\n },\n },\n '/session/:sessionId/timeouts/async_script': {\n POST: {command: 'asyncScriptTimeout', payloadParams: {required: ['ms']}},\n },\n '/session/:sessionId/timeouts/implicit_wait': {\n POST: {command: 'implicitWait', payloadParams: {required: ['ms']}},\n },\n // JSONWP\n '/session/:sessionId/window_handle': {\n GET: {command: 'getWindowHandle'},\n },\n // W3C\n '/session/:sessionId/window/handle': {\n GET: {command: 'getWindowHandle'},\n },\n // JSONWP\n '/session/:sessionId/window_handles': {\n GET: {command: 'getWindowHandles'},\n },\n // W3C\n '/session/:sessionId/window/handles': {\n GET: {command: 'getWindowHandles'},\n },\n '/session/:sessionId/url': {\n GET: {command: 'getUrl'},\n POST: {command: 'setUrl', payloadParams: {required: ['url']}},\n },\n '/session/:sessionId/forward': {\n POST: {command: 'forward'},\n },\n '/session/:sessionId/back': {\n POST: {command: 'back'},\n },\n '/session/:sessionId/refresh': {\n POST: {command: 'refresh'},\n },\n // MJSONWP\n '/session/:sessionId/execute': {\n POST: {command: 'execute', payloadParams: {required: ['script', 'args']}},\n },\n // MJSONWP\n '/session/:sessionId/execute_async': {\n POST: {\n command: 'executeAsync',\n payloadParams: {required: ['script', 'args']},\n },\n },\n '/session/:sessionId/screenshot': {\n GET: {command: 'getScreenshot'},\n },\n '/session/:sessionId/ime/available_engines': {\n GET: {command: 'availableIMEEngines'},\n },\n '/session/:sessionId/ime/active_engine': {\n GET: {command: 'getActiveIMEEngine'},\n },\n '/session/:sessionId/ime/activated': {\n GET: {command: 'isIMEActivated'},\n },\n '/session/:sessionId/ime/deactivate': {\n POST: {command: 'deactivateIMEEngine'},\n },\n '/session/:sessionId/ime/activate': {\n POST: {command: 'activateIMEEngine', payloadParams: {required: ['engine']}},\n },\n '/session/:sessionId/frame': {\n POST: {command: 'setFrame', payloadParams: {required: ['id']}},\n },\n '/session/:sessionId/frame/parent': {\n POST: {},\n },\n '/session/:sessionId/window': {\n GET: {command: 'getWindowHandle'},\n POST: {\n command: 'setWindow',\n payloadParams: {\n optional: ['name', 'handle'],\n // Return both values to match W3C and JSONWP protocols\n makeArgs: (jsonObj) => {\n if (util.hasValue(jsonObj.handle) && !util.hasValue(jsonObj.name)) {\n return [jsonObj.handle, jsonObj.handle];\n }\n if (util.hasValue(jsonObj.name) && !util.hasValue(jsonObj.handle)) {\n return [jsonObj.name, jsonObj.name];\n }\n return [jsonObj.name, jsonObj.handle];\n },\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.name) &&\n !util.hasValue(jsonObj.handle) &&\n 'we require one of \"name\" or \"handle\" to be set',\n },\n },\n DELETE: {command: 'closeWindow'},\n },\n '/session/:sessionId/window/:windowhandle/size': {\n GET: {command: 'getWindowSize'},\n POST: {},\n },\n '/session/:sessionId/window/:windowhandle/position': {\n POST: {},\n GET: {},\n },\n '/session/:sessionId/window/:windowhandle/maximize': {\n POST: {command: 'maximizeWindow'},\n },\n '/session/:sessionId/cookie': {\n GET: {command: 'getCookies'},\n POST: {command: 'setCookie', payloadParams: {required: ['cookie']}},\n DELETE: {command: 'deleteCookies'},\n },\n '/session/:sessionId/cookie/:name': {\n GET: {command: 'getCookie'},\n DELETE: {command: 'deleteCookie'},\n },\n '/session/:sessionId/source': {\n GET: {command: 'getPageSource'},\n },\n '/session/:sessionId/title': {\n GET: {command: 'title'},\n },\n '/session/:sessionId/element': {\n POST: {\n command: 'findElement',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/elements': {\n POST: {\n command: 'findElements',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/element/active': {\n GET: {command: 'active'}, // W3C: https://w3c.github.io/webdriver/webdriver-spec.html#dfn-get-active-element\n POST: {command: 'active'},\n },\n '/session/:sessionId/element/:elementId': {\n GET: {},\n },\n '/session/:sessionId/element/:elementId/element': {\n POST: {\n command: 'findElementFromElement',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/element/:elementId/elements': {\n POST: {\n command: 'findElementsFromElement',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/element/:elementId/click': {\n POST: {command: 'click'},\n },\n '/session/:sessionId/element/:elementId/submit': {\n POST: {command: 'submit'},\n },\n '/session/:sessionId/element/:elementId/text': {\n GET: {command: 'getText'},\n },\n '/session/:sessionId/element/:elementId/value': {\n POST: {\n command: 'setValue',\n payloadParams: {\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.value) &&\n !util.hasValue(jsonObj.text) &&\n 'we require one of \"text\" or \"value\" params',\n optional: ['value', 'text'],\n // override the default argument constructor because of the special\n // logic here. Basically we want to accept either a value (old JSONWP)\n // or a text (new W3C) parameter, but only send one of them to the\n // command (not both). Prefer 'value' since it's more\n // backward-compatible.\n makeArgs: (jsonObj) => [jsonObj.value || jsonObj.text],\n },\n },\n },\n '/session/:sessionId/keys': {\n POST: {command: 'keys', payloadParams: {required: ['value']}},\n },\n '/session/:sessionId/element/:elementId/name': {\n GET: {command: 'getName'},\n },\n '/session/:sessionId/element/:elementId/clear': {\n POST: {command: 'clear'},\n },\n '/session/:sessionId/element/:elementId/selected': {\n GET: {command: 'elementSelected'},\n },\n '/session/:sessionId/element/:elementId/enabled': {\n GET: {command: 'elementEnabled'},\n },\n '/session/:sessionId/element/:elementId/attribute/:name': {\n GET: {command: 'getAttribute'},\n },\n '/session/:sessionId/element/:elementId/equals/:otherId': {\n GET: {command: 'equalsElement'},\n },\n '/session/:sessionId/element/:elementId/displayed': {\n GET: {command: 'elementDisplayed'},\n },\n '/session/:sessionId/element/:elementId/location': {\n GET: {command: 'getLocation'},\n },\n '/session/:sessionId/element/:elementId/location_in_view': {\n GET: {command: 'getLocationInView'},\n },\n '/session/:sessionId/element/:elementId/size': {\n GET: {command: 'getSize'},\n },\n '/session/:sessionId/element/:elementId/shadow': {\n GET: {command: 'elementShadowRoot'},\n },\n '/session/:sessionId/shadow/:shadowId/element': {\n POST: {\n command: 'findElementFromShadowRoot',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/shadow/:shadowId/elements': {\n POST: {\n command: 'findElementsFromShadowRoot',\n payloadParams: {required: ['using', 'value']},\n },\n },\n '/session/:sessionId/element/:elementId/css/:propertyName': {\n GET: {command: 'getCssProperty'},\n },\n '/session/:sessionId/orientation': {\n GET: {command: 'getOrientation'},\n POST: {\n command: 'setOrientation',\n payloadParams: {required: ['orientation']},\n },\n },\n '/session/:sessionId/rotation': {\n GET: {command: 'getRotation'},\n POST: {command: 'setRotation', payloadParams: {required: ['x', 'y', 'z']}},\n },\n '/session/:sessionId/moveto': {\n POST: {\n command: 'moveTo',\n payloadParams: {optional: ['element', 'xoffset', 'yoffset']},\n },\n },\n '/session/:sessionId/click': {\n POST: {command: 'clickCurrent', payloadParams: {optional: ['button']}},\n },\n '/session/:sessionId/buttondown': {\n POST: {command: 'buttonDown', payloadParams: {optional: ['button']}},\n },\n '/session/:sessionId/buttonup': {\n POST: {command: 'buttonUp', payloadParams: {optional: ['button']}},\n },\n '/session/:sessionId/doubleclick': {\n POST: {command: 'doubleClick'},\n },\n '/session/:sessionId/touch/click': {\n POST: {command: 'click', payloadParams: {required: ['element']}},\n },\n '/session/:sessionId/touch/down': {\n POST: {command: 'touchDown', payloadParams: {required: ['x', 'y']}},\n },\n '/session/:sessionId/touch/up': {\n POST: {command: 'touchUp', payloadParams: {required: ['x', 'y']}},\n },\n '/session/:sessionId/touch/move': {\n POST: {command: 'touchMove', payloadParams: {required: ['x', 'y']}},\n },\n '/session/:sessionId/touch/scroll': {\n POST: {},\n },\n '/session/:sessionId/touch/doubleclick': {\n POST: {},\n },\n '/session/:sessionId/actions': {\n POST: {command: 'performActions', payloadParams: {required: ['actions']}},\n DELETE: {command: 'releaseActions'},\n },\n '/session/:sessionId/touch/longclick': {\n POST: {command: 'touchLongClick', payloadParams: {required: ['elements']}},\n },\n '/session/:sessionId/touch/flick': {\n POST: {\n command: 'flick',\n payloadParams: {\n optional: ['element', 'xspeed', 'yspeed', 'xoffset', 'yoffset', 'speed'],\n },\n },\n },\n '/session/:sessionId/location': {\n GET: {command: 'getGeoLocation'},\n POST: {command: 'setGeoLocation', payloadParams: {required: ['location']}},\n },\n '/session/:sessionId/local_storage': {\n GET: {},\n POST: {},\n DELETE: {},\n },\n '/session/:sessionId/local_storage/key/:key': {\n GET: {},\n DELETE: {},\n },\n '/session/:sessionId/local_storage/size': {\n GET: {},\n },\n '/session/:sessionId/session_storage': {\n GET: {},\n POST: {},\n DELETE: {},\n },\n '/session/:sessionId/session_storage/key/:key': {\n GET: {},\n DELETE: {},\n },\n '/session/:sessionId/session_storage/size': {\n GET: {},\n },\n // Selenium 4 clients\n '/session/:sessionId/se/log': {\n POST: {command: 'getLog', payloadParams: {required: ['type']}},\n },\n // Selenium 4 clients\n '/session/:sessionId/se/log/types': {\n GET: {command: 'getLogTypes'},\n },\n // mjsonwire, appium clients\n '/session/:sessionId/log': {\n POST: {command: 'getLog', payloadParams: {required: ['type']}},\n },\n // mjsonwire, appium clients\n '/session/:sessionId/log/types': {\n GET: {command: 'getLogTypes'},\n },\n '/session/:sessionId/application_cache/status': {\n GET: {},\n },\n\n //\n // mjsonwire\n //\n '/session/:sessionId/context': {\n GET: {command: 'getCurrentContext'},\n POST: {command: 'setContext', payloadParams: {required: ['name']}},\n },\n '/session/:sessionId/contexts': {\n GET: {command: 'getContexts'},\n },\n '/session/:sessionId/element/:elementId/pageIndex': {\n GET: {command: 'getPageIndex'},\n },\n '/session/:sessionId/network_connection': {\n GET: {command: 'getNetworkConnection'},\n POST: {\n command: 'setNetworkConnection',\n payloadParams: {unwrap: 'parameters', required: ['type']},\n },\n },\n '/session/:sessionId/touch/perform': {\n POST: {\n command: 'performTouch',\n payloadParams: {wrap: 'actions', required: ['actions']},\n },\n },\n '/session/:sessionId/touch/multi/perform': {\n POST: {\n command: 'performMultiAction',\n payloadParams: {required: ['actions'], optional: ['elementId']},\n },\n },\n '/session/:sessionId/receive_async_response': {\n POST: {\n command: 'receiveAsyncResponse',\n payloadParams: {required: ['status', 'value']},\n },\n },\n '/session/:sessionId/appium/device/shake': {\n POST: {command: 'mobileShake'},\n },\n '/session/:sessionId/appium/device/system_time': {\n GET: {command: 'getDeviceTime', payloadParams: {optional: ['format']}},\n POST: {command: 'getDeviceTime', payloadParams: {optional: ['format']}},\n },\n '/session/:sessionId/appium/device/lock': {\n POST: {command: 'lock', payloadParams: {optional: ['seconds']}},\n },\n '/session/:sessionId/appium/device/unlock': {\n POST: {command: 'unlock'},\n },\n '/session/:sessionId/appium/device/is_locked': {\n POST: {command: 'isLocked'},\n },\n '/session/:sessionId/appium/start_recording_screen': {\n POST: {\n command: 'startRecordingScreen',\n payloadParams: {optional: ['options']},\n },\n },\n '/session/:sessionId/appium/stop_recording_screen': {\n POST: {\n command: 'stopRecordingScreen',\n payloadParams: {optional: ['options']},\n },\n },\n '/session/:sessionId/appium/performanceData/types': {\n POST: {command: 'getPerformanceDataTypes'},\n },\n '/session/:sessionId/appium/getPerformanceData': {\n POST: {\n command: 'getPerformanceData',\n payloadParams: {\n required: ['packageName', 'dataType'],\n optional: ['dataReadTimeout'],\n },\n },\n },\n '/session/:sessionId/appium/device/press_keycode': {\n POST: {\n command: 'pressKeyCode',\n payloadParams: {required: ['keycode'], optional: ['metastate', 'flags']},\n },\n },\n '/session/:sessionId/appium/device/long_press_keycode': {\n POST: {\n command: 'longPressKeyCode',\n payloadParams: {required: ['keycode'], optional: ['metastate', 'flags']},\n },\n },\n '/session/:sessionId/appium/device/finger_print': {\n POST: {\n command: 'fingerprint',\n payloadParams: {required: ['fingerprintId']},\n },\n },\n '/session/:sessionId/appium/device/send_sms': {\n POST: {\n command: 'sendSMS',\n payloadParams: {required: ['phoneNumber', 'message']},\n },\n },\n '/session/:sessionId/appium/device/gsm_call': {\n POST: {\n command: 'gsmCall',\n payloadParams: {required: ['phoneNumber', 'action']},\n },\n },\n '/session/:sessionId/appium/device/gsm_signal': {\n POST: {\n command: 'gsmSignal',\n payloadParams: {\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.signalStrength) &&\n !util.hasValue(jsonObj.signalStrengh) &&\n 'we require one of \"signalStrength\" or \"signalStrengh\" params',\n optional: ['signalStrength', 'signalStrengh'],\n // backward-compatible. sonObj.signalStrength can be 0\n makeArgs: (jsonObj) => [\n util.hasValue(jsonObj.signalStrength) ? jsonObj.signalStrength : jsonObj.signalStrengh,\n ],\n },\n },\n },\n '/session/:sessionId/appium/device/gsm_voice': {\n POST: {command: 'gsmVoice', payloadParams: {required: ['state']}},\n },\n '/session/:sessionId/appium/device/power_capacity': {\n POST: {command: 'powerCapacity', payloadParams: {required: ['percent']}},\n },\n '/session/:sessionId/appium/device/power_ac': {\n POST: {command: 'powerAC', payloadParams: {required: ['state']}},\n },\n '/session/:sessionId/appium/device/network_speed': {\n POST: {command: 'networkSpeed', payloadParams: {required: ['netspeed']}},\n },\n '/session/:sessionId/appium/device/keyevent': {\n POST: {\n command: 'keyevent',\n payloadParams: {required: ['keycode'], optional: ['metastate']},\n },\n },\n '/session/:sessionId/appium/device/rotate': {\n POST: {\n command: 'mobileRotation',\n payloadParams: {\n required: ['x', 'y', 'radius', 'rotation', 'touchCount', 'duration'],\n optional: ['element'],\n },\n },\n },\n '/session/:sessionId/appium/device/current_activity': {\n GET: {command: 'getCurrentActivity'},\n },\n '/session/:sessionId/appium/device/current_package': {\n GET: {command: 'getCurrentPackage'},\n },\n //region Applications Management\n '/session/:sessionId/appium/device/install_app': {\n POST: {\n command: 'installApp',\n payloadParams: {\n required: ['appPath'],\n optional: ['options'],\n },\n },\n },\n '/session/:sessionId/appium/device/activate_app': {\n POST: {\n command: 'activateApp',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n optional: ['options'],\n },\n },\n },\n '/session/:sessionId/appium/device/remove_app': {\n POST: {\n command: 'removeApp',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n optional: ['options'],\n },\n },\n },\n '/session/:sessionId/appium/device/terminate_app': {\n POST: {\n command: 'terminateApp',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n optional: ['options'],\n },\n },\n },\n '/session/:sessionId/appium/device/app_installed': {\n POST: {\n command: 'isAppInstalled',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n },\n },\n },\n '/session/:sessionId/appium/device/app_state': {\n GET: {\n command: 'queryAppState',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n },\n },\n POST: {\n command: 'queryAppState',\n payloadParams: {\n required: [['appId'], ['bundleId']],\n },\n },\n },\n //endregion\n '/session/:sessionId/appium/device/hide_keyboard': {\n POST: {\n command: 'hideKeyboard',\n payloadParams: {optional: ['strategy', 'key', 'keyCode', 'keyName']},\n },\n },\n '/session/:sessionId/appium/device/is_keyboard_shown': {\n GET: {command: 'isKeyboardShown'},\n },\n '/session/:sessionId/appium/device/push_file': {\n POST: {command: 'pushFile', payloadParams: {required: ['path', 'data']}},\n },\n '/session/:sessionId/appium/device/pull_file': {\n POST: {command: 'pullFile', payloadParams: {required: ['path']}},\n },\n '/session/:sessionId/appium/device/pull_folder': {\n POST: {command: 'pullFolder', payloadParams: {required: ['path']}},\n },\n '/session/:sessionId/appium/device/toggle_airplane_mode': {\n POST: {command: 'toggleFlightMode'},\n },\n '/session/:sessionId/appium/device/toggle_data': {\n POST: {command: 'toggleData'},\n },\n '/session/:sessionId/appium/device/toggle_wifi': {\n POST: {command: 'toggleWiFi'},\n },\n '/session/:sessionId/appium/device/toggle_location_services': {\n POST: {command: 'toggleLocationServices'},\n },\n '/session/:sessionId/appium/device/open_notifications': {\n POST: {command: 'openNotifications'},\n },\n '/session/:sessionId/appium/device/start_activity': {\n POST: {\n command: 'startActivity',\n payloadParams: {\n required: ['appPackage', 'appActivity'],\n optional: [\n 'appWaitPackage',\n 'appWaitActivity',\n 'intentAction',\n 'intentCategory',\n 'intentFlags',\n 'optionalIntentArguments',\n 'dontStopAppOnReset',\n ],\n },\n },\n },\n '/session/:sessionId/appium/device/system_bars': {\n GET: {command: 'getSystemBars'},\n },\n '/session/:sessionId/appium/device/display_density': {\n GET: {command: 'getDisplayDensity'},\n },\n '/session/:sessionId/appium/simulator/touch_id': {\n POST: {command: 'touchId', payloadParams: {required: ['match']}},\n },\n '/session/:sessionId/appium/simulator/toggle_touch_id_enrollment': {\n POST: {\n command: 'toggleEnrollTouchId',\n payloadParams: {optional: ['enabled']},\n },\n },\n '/session/:sessionId/appium/app/launch': {\n POST: {command: 'launchApp'},\n },\n '/session/:sessionId/appium/app/close': {\n POST: {command: 'closeApp'},\n },\n '/session/:sessionId/appium/app/reset': {\n POST: {command: 'reset'},\n },\n '/session/:sessionId/appium/app/background': {\n POST: {command: 'background', payloadParams: {required: ['seconds']}},\n },\n '/session/:sessionId/appium/app/end_test_coverage': {\n POST: {\n command: 'endCoverage',\n payloadParams: {required: ['intent', 'path']},\n },\n },\n '/session/:sessionId/appium/app/strings': {\n POST: {\n command: 'getStrings',\n payloadParams: {optional: ['language', 'stringFile']},\n },\n },\n '/session/:sessionId/appium/element/:elementId/value': {\n POST: {\n command: 'setValueImmediate',\n payloadParams: {\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.value) &&\n !util.hasValue(jsonObj.text) &&\n 'we require one of \"text\" or \"value\" params',\n optional: ['value', 'text'],\n // We want to either a value (old JSONWP) or a text (new W3C) parameter,\n // but only send one of them to the command (not both).\n // Prefer 'value' since it's more backward-compatible.\n makeArgs: (jsonObj) => [jsonObj.value || jsonObj.text],\n },\n },\n },\n '/session/:sessionId/appium/element/:elementId/replace_value': {\n POST: {\n command: 'replaceValue',\n payloadParams: {\n validate: (jsonObj) =>\n !util.hasValue(jsonObj.value) &&\n !util.hasValue(jsonObj.text) &&\n 'we require one of \"text\" or \"value\" params',\n optional: ['value', 'text'],\n // We want to either a value (old JSONWP) or a text (new W3C) parameter,\n // but only send one of them to the command (not both).\n // Prefer 'value' since it's more backward-compatible.\n makeArgs: (jsonObj) => [jsonObj.value ?? jsonObj.text ?? ''],\n },\n },\n },\n '/session/:sessionId/appium/settings': {\n POST: {command: 'updateSettings', payloadParams: {required: ['settings']}},\n GET: {command: 'getSettings'},\n },\n '/session/:sessionId/appium/receive_async_response': {\n POST: {\n command: 'receiveAsyncResponse',\n payloadParams: {required: ['response']},\n },\n },\n '/session/:sessionId/appium/events': {\n POST: {command: 'getLogEvents', payloadParams: {optional: ['type']}},\n },\n '/session/:sessionId/appium/log_event': {\n POST: {\n command: 'logCustomEvent',\n payloadParams: {required: ['vendor', 'event']},\n },\n },\n\n /*\n * The W3C spec has some changes to the wire protocol.\n * https://w3c.github.io/webdriver/webdriver-spec.html\n * Begin to add those changes here, keeping the old version\n * since clients still implement them.\n */\n // MJSONWP\n '/session/:sessionId/alert_text': {\n GET: {command: 'getAlertText'},\n POST: {\n command: 'setAlertText',\n payloadParams: SET_ALERT_TEXT_PAYLOAD_PARAMS,\n },\n },\n // MJSONWP\n '/session/:sessionId/accept_alert': {\n POST: {command: 'postAcceptAlert'},\n },\n // MJSONWP\n '/session/:sessionId/dismiss_alert': {\n POST: {command: 'postDismissAlert'},\n },\n // https://w3c.github.io/webdriver/webdriver-spec.html#user-prompts\n '/session/:sessionId/alert/text': {\n GET: {command: 'getAlertText'},\n POST: {\n command: 'setAlertText',\n payloadParams: SET_ALERT_TEXT_PAYLOAD_PARAMS,\n },\n },\n '/session/:sessionId/alert/accept': {\n POST: {command: 'postAcceptAlert'},\n },\n '/session/:sessionId/alert/dismiss': {\n POST: {command: 'postDismissAlert'},\n },\n // https://w3c.github.io/webdriver/webdriver-spec.html#get-element-rect\n '/session/:sessionId/element/:elementId/rect': {\n GET: {command: 'getElementRect'},\n },\n '/session/:sessionId/execute/sync': {\n POST: {command: 'execute', payloadParams: {required: ['script', 'args']}},\n },\n '/session/:sessionId/execute/async': {\n POST: {\n command: 'executeAsync',\n payloadParams: {required: ['script', 'args']},\n },\n },\n // Pre-W3C endpoint for element screenshot\n '/session/:sessionId/screenshot/:elementId': {\n GET: {command: 'getElementScreenshot'},\n },\n '/session/:sessionId/element/:elementId/screenshot': {\n GET: {command: 'getElementScreenshot'},\n },\n '/session/:sessionId/window/rect': {\n GET: {command: 'getWindowRect'},\n POST: {\n command: 'setWindowRect',\n payloadParams: {required: ['x', 'y', 'width', 'height']},\n },\n },\n '/session/:sessionId/window/maximize': {\n POST: {command: 'maximizeWindow'},\n },\n '/session/:sessionId/window/minimize': {\n POST: {command: 'minimizeWindow'},\n },\n '/session/:sessionId/window/fullscreen': {\n POST: {command: 'fullScreenWindow'},\n },\n '/session/:sessionId/window/new': {\n POST: {command: 'createNewWindow', payloadParams: {optional: ['type']}},\n },\n '/session/:sessionId/element/:elementId/property/:name': {\n GET: {command: 'getProperty'},\n },\n '/session/:sessionId/appium/device/set_clipboard': {\n POST: {\n command: 'setClipboard',\n payloadParams: {\n required: ['content'],\n optional: ['contentType', 'label'],\n },\n },\n },\n '/session/:sessionId/appium/device/get_clipboard': {\n POST: {\n command: 'getClipboard',\n payloadParams: {\n optional: ['contentType'],\n },\n },\n },\n\n // chromium devtools\n // https://chromium.googlesource.com/chromium/src/+/master/chrome/test/chromedriver/server/http_handler.cc\n '/session/:sessionId/:vendor/cdp/execute': {\n POST: {command: 'executeCdp', payloadParams: {required: ['cmd', 'params']}},\n },\n\n //region Webauthn\n // https://www.w3.org/TR/webauthn-2/#sctn-automation-add-virtual-authenticator\n\n '/session/:sessionId/webauthn/authenticator': {\n POST: {\n command: 'addVirtualAuthenticator',\n payloadParams: {\n required: ['protocol', 'transport'],\n optional: ['hasResidentKey', 'hasUserVerification', 'isUserConsenting', 'isUserVerified'],\n },\n },\n },\n\n '/session/:sessionId/webauthn/authenticator/:authenticatorId': {\n DELETE: {\n command: 'removeVirtualAuthenticator',\n },\n },\n\n '/session/:sessionId/webauthn/authenticator/:authenticatorId/credential': {\n POST: {\n command: 'addAuthCredential',\n payloadParams: {\n required: ['credentialId', 'isResidentCredential', 'rpId', 'privateKey'],\n optional: ['userHandle', 'signCount'],\n },\n },\n },\n\n '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials': {\n GET: {command: 'getAuthCredential'},\n DELETE: {command: 'removeAllAuthCredentials'},\n },\n\n '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials/:credentialId': {\n DELETE: {command: 'removeAuthCredential'},\n },\n\n '/session/:sessionId/webauthn/authenticator/:authenticatorId/uv': {\n POST: {\n command: 'setUserAuthVerified',\n payloadParams: {\n required: ['isUserVerified'],\n },\n },\n },\n\n //endregion\n};\n\n// driver command names\nlet ALL_COMMANDS = [];\nfor (let v of _.values(METHOD_MAP)) {\n for (let m of _.values(v)) {\n if (m.command) {\n ALL_COMMANDS.push(m.command);\n }\n }\n}\n\nconst RE_ESCAPE = /[-[\\]{}()+?.,\\\\^$|#\\s]/g;\nconst RE_PARAM = /([:*])(\\w+)/g;\n\nclass Route {\n constructor(route) {\n this.paramNames = [];\n\n let reStr = route.replace(RE_ESCAPE, '\\\\$&');\n reStr = reStr.replace(RE_PARAM, (_, mode, name) => {\n this.paramNames.push(name);\n return mode === ':' ? '([^/]*)' : '(.*)';\n });\n this.routeRegexp = new RegExp(`^${reStr}$`);\n }\n\n parse(url) {\n //if (url.indexOf('timeouts') !== -1 && this.routeRegexp.toString().indexOf('timeouts') !== -1) {\n //debugger;\n //}\n let matches = url.match(this.routeRegexp);\n if (!matches) return; // eslint-disable-line curly\n let i = 0;\n let params = {};\n while (i < this.paramNames.length) {\n const paramName = this.paramNames[i++];\n params[paramName] = matches[i];\n }\n return params;\n }\n}\n\n/**\n *\n * @param {string} endpoint\n * @param {import('@appium/types').HTTPMethod} method\n * @param {string} [basePath]\n * @returns {string|undefined}\n */\nfunction routeToCommandName(endpoint, method, basePath = DEFAULT_BASE_PATH) {\n let dstRoute = null;\n\n // remove any query string\n // TODO: would this be better handled as a `URL` object?\n if (endpoint.includes('?')) {\n endpoint = endpoint.slice(0, endpoint.indexOf('?'));\n }\n\n const actualEndpoint =\n endpoint === '/' ? '' : _.startsWith(endpoint, '/') ? endpoint : `/${endpoint}`;\n\n for (let currentRoute of _.keys(METHOD_MAP)) {\n const route = new Route(`${basePath}${currentRoute}`);\n // we don't care about the actual session id for matching\n if (\n route.parse(`${basePath}/session/ignored-session-id${actualEndpoint}`) ||\n route.parse(`${basePath}${actualEndpoint}`) ||\n route.parse(actualEndpoint)\n ) {\n dstRoute = currentRoute;\n break;\n }\n }\n if (!dstRoute) return; // eslint-disable-line curly\n\n const methods = _.get(METHOD_MAP, dstRoute);\n method = /** @type {Uppercase<typeof method>} */ (_.toUpper(method));\n if (_.has(methods, method)) {\n const dstMethod = _.get(methods, method);\n if (dstMethod.command) {\n return dstMethod.command;\n }\n }\n}\n\n// driver commands that do not require a session to already exist\nconst NO_SESSION_ID_COMMANDS = ['createSession', 'getStatus', 'getSessions'];\n\nexport {METHOD_MAP, ALL_COMMANDS, NO_SESSION_ID_COMMANDS, routeToCommandName};\n\n/**\n * @typedef {import('@appium/types').Driver} Driver\n * @typedef {import('@appium/types').MethodMap} MethodMap\n */\n"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -11,6 +9,8 @@ require("source-map-support/register");
11
9
 
12
10
  var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
14
  function isNumber(o) {
15
15
  return _lodash.default.isNumber(o) || !_lodash.default.isNaN(parseInt(o, 10)) || !_lodash.default.isNaN(parseFloat(o));
16
16
  }
@@ -45,4 +45,4 @@ const validators = {
45
45
  }
46
46
  };
47
47
  exports.validators = validators;
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc051bWJlciIsIm8iLCJfIiwiaXNOYU4iLCJwYXJzZUludCIsInBhcnNlRmxvYXQiLCJtc1ZhbGlkYXRvciIsIm1zIiwiRXJyb3IiLCJ2YWxpZGF0b3JzIiwic2V0VXJsIiwidXJsIiwibWF0Y2giLCJpbXBsaWNpdFdhaXQiLCJhc3luY1NjcmlwdFRpbWVvdXQiLCJjbGlja0N1cnJlbnQiLCJidXR0b24iLCJpc1VuZGVmaW5lZCIsInNldE5ldHdvcmtDb25uZWN0aW9uIiwidHlwZSIsImluZGV4T2YiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdG9jb2wvdmFsaWRhdG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiBfLmlzTnVtYmVyKG8pIHx8ICFfLmlzTmFOKHBhcnNlSW50KG8sIDEwKSkgfHwgIV8uaXNOYU4ocGFyc2VGbG9hdChvKSk7XG59XG5cbmZ1bmN0aW9uIG1zVmFsaWRhdG9yKG1zKSB7XG4gIGlmICghXy5pc051bWJlcihtcykgfHwgbXMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdXYWl0IG1zIG11c3QgYmUgYSBudW1iZXIgZXF1YWwgdG8gMCBvciBncmVhdGVyJyk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgc2V0VXJsOiAodXJsKSA9PiB7XG4gICAgLy8gZWl0aGVyIGFuIGB4eXo6Ly9gLCBgYWJvdXQ6YCwgb3IgYGRhdGE6YCBzY2hlbWUgaXMgYWxsb3dlZFxuICAgIGlmICghdXJsIHx8ICF1cmwubWF0Y2goL14oW2EtekEtWjAtOV8rLi1dKzpcXC9cXC8pfChhYm91dDopfChkYXRhOikvKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcmwgb3IgVXJpIG11c3Qgc3RhcnQgd2l0aCA8c2NoZW1lPjovLycpO1xuICAgIH1cbiAgfSxcbiAgaW1wbGljaXRXYWl0OiAobXMpID0+IHtcbiAgICBtc1ZhbGlkYXRvcihtcyk7XG4gIH0sXG4gIGFzeW5jU2NyaXB0VGltZW91dDogKG1zKSA9PiB7XG4gICAgbXNWYWxpZGF0b3IobXMpO1xuICB9LFxuICBjbGlja0N1cnJlbnQ6IChidXR0b24pID0+IHtcbiAgICBpZiAoIShpc051bWJlcihidXR0b24pIHx8IF8uaXNVbmRlZmluZWQoYnV0dG9uKSkgfHwgYnV0dG9uIDwgMCB8fCBidXR0b24gPiAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NsaWNrIGJ1dHRvbiBtdXN0IGJlIDAsIDEsIG9yIDInKTtcbiAgICB9XG4gIH0sXG4gIHNldE5ldHdvcmtDb25uZWN0aW9uOiAodHlwZSkgPT4ge1xuICAgIGlmICghaXNOdW1iZXIodHlwZSkgfHwgWzAsIDEsIDIsIDQsIDZdLmluZGV4T2YodHlwZSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgdHlwZSBtdXN0IGJlIG9uZSBvZiAwLCAxLCAyLCA0LCA2Jyk7XG4gICAgfVxuICB9LFxufTtcblxuZXhwb3J0IHt2YWxpZGF0b3JzfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxTQUFTQSxRQUFULENBQWtCQyxDQUFsQixFQUFxQjtFQUNuQixPQUFPQyxlQUFBLENBQUVGLFFBQUYsQ0FBV0MsQ0FBWCxLQUFpQixDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUMsUUFBUSxDQUFDSCxDQUFELEVBQUksRUFBSixDQUFoQixDQUFsQixJQUE4QyxDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUUsVUFBVSxDQUFDSixDQUFELENBQWxCLENBQXREO0FBQ0Q7O0FBRUQsU0FBU0ssV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7RUFDdkIsSUFBSSxDQUFDTCxlQUFBLENBQUVGLFFBQUYsQ0FBV08sRUFBWCxDQUFELElBQW1CQSxFQUFFLEdBQUcsQ0FBNUIsRUFBK0I7SUFDN0IsTUFBTSxJQUFJQyxLQUFKLENBQVUsZ0RBQVYsQ0FBTjtFQUNEO0FBQ0Y7O0FBRUQsTUFBTUMsVUFBVSxHQUFHO0VBQ2pCQyxNQUFNLEVBQUdDLEdBQUQsSUFBUztJQUVmLElBQUksQ0FBQ0EsR0FBRCxJQUFRLENBQUNBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLDJDQUFWLENBQWIsRUFBcUU7TUFDbkUsTUFBTSxJQUFJSixLQUFKLENBQVUsd0NBQVYsQ0FBTjtJQUNEO0VBQ0YsQ0FOZ0I7RUFPakJLLFlBQVksRUFBR04sRUFBRCxJQUFRO0lBQ3BCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBVGdCO0VBVWpCTyxrQkFBa0IsRUFBR1AsRUFBRCxJQUFRO0lBQzFCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBWmdCO0VBYWpCUSxZQUFZLEVBQUdDLE1BQUQsSUFBWTtJQUN4QixJQUFJLEVBQUVoQixRQUFRLENBQUNnQixNQUFELENBQVIsSUFBb0JkLGVBQUEsQ0FBRWUsV0FBRixDQUFjRCxNQUFkLENBQXRCLEtBQWdEQSxNQUFNLEdBQUcsQ0FBekQsSUFBOERBLE1BQU0sR0FBRyxDQUEzRSxFQUE4RTtNQUM1RSxNQUFNLElBQUlSLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0lBQ0Q7RUFDRixDQWpCZ0I7RUFrQmpCVSxvQkFBb0IsRUFBR0MsSUFBRCxJQUFVO0lBQzlCLElBQUksQ0FBQ25CLFFBQVEsQ0FBQ21CLElBQUQsQ0FBVCxJQUFtQixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCQyxPQUFoQixDQUF3QkQsSUFBeEIsTUFBa0MsQ0FBQyxDQUExRCxFQUE2RDtNQUMzRCxNQUFNLElBQUlYLEtBQUosQ0FBVSwyQ0FBVixDQUFOO0lBQ0Q7RUFDRjtBQXRCZ0IsQ0FBbkIifQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc051bWJlciIsIm8iLCJfIiwiaXNOYU4iLCJwYXJzZUludCIsInBhcnNlRmxvYXQiLCJtc1ZhbGlkYXRvciIsIm1zIiwiRXJyb3IiLCJ2YWxpZGF0b3JzIiwic2V0VXJsIiwidXJsIiwibWF0Y2giLCJpbXBsaWNpdFdhaXQiLCJhc3luY1NjcmlwdFRpbWVvdXQiLCJjbGlja0N1cnJlbnQiLCJidXR0b24iLCJpc1VuZGVmaW5lZCIsInNldE5ldHdvcmtDb25uZWN0aW9uIiwidHlwZSIsImluZGV4T2YiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdG9jb2wvdmFsaWRhdG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiBfLmlzTnVtYmVyKG8pIHx8ICFfLmlzTmFOKHBhcnNlSW50KG8sIDEwKSkgfHwgIV8uaXNOYU4ocGFyc2VGbG9hdChvKSk7XG59XG5cbmZ1bmN0aW9uIG1zVmFsaWRhdG9yKG1zKSB7XG4gIGlmICghXy5pc051bWJlcihtcykgfHwgbXMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdXYWl0IG1zIG11c3QgYmUgYSBudW1iZXIgZXF1YWwgdG8gMCBvciBncmVhdGVyJyk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgc2V0VXJsOiAodXJsKSA9PiB7XG4gICAgLy8gZWl0aGVyIGFuIGB4eXo6Ly9gLCBgYWJvdXQ6YCwgb3IgYGRhdGE6YCBzY2hlbWUgaXMgYWxsb3dlZFxuICAgIGlmICghdXJsIHx8ICF1cmwubWF0Y2goL14oW2EtekEtWjAtOV8rLi1dKzpcXC9cXC8pfChhYm91dDopfChkYXRhOikvKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcmwgb3IgVXJpIG11c3Qgc3RhcnQgd2l0aCA8c2NoZW1lPjovLycpO1xuICAgIH1cbiAgfSxcbiAgaW1wbGljaXRXYWl0OiAobXMpID0+IHtcbiAgICBtc1ZhbGlkYXRvcihtcyk7XG4gIH0sXG4gIGFzeW5jU2NyaXB0VGltZW91dDogKG1zKSA9PiB7XG4gICAgbXNWYWxpZGF0b3IobXMpO1xuICB9LFxuICBjbGlja0N1cnJlbnQ6IChidXR0b24pID0+IHtcbiAgICBpZiAoIShpc051bWJlcihidXR0b24pIHx8IF8uaXNVbmRlZmluZWQoYnV0dG9uKSkgfHwgYnV0dG9uIDwgMCB8fCBidXR0b24gPiAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NsaWNrIGJ1dHRvbiBtdXN0IGJlIDAsIDEsIG9yIDInKTtcbiAgICB9XG4gIH0sXG4gIHNldE5ldHdvcmtDb25uZWN0aW9uOiAodHlwZSkgPT4ge1xuICAgIGlmICghaXNOdW1iZXIodHlwZSkgfHwgWzAsIDEsIDIsIDQsIDZdLmluZGV4T2YodHlwZSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgdHlwZSBtdXN0IGJlIG9uZSBvZiAwLCAxLCAyLCA0LCA2Jyk7XG4gICAgfVxuICB9LFxufTtcblxuZXhwb3J0IHt2YWxpZGF0b3JzfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFFQSxTQUFTQSxRQUFULENBQWtCQyxDQUFsQixFQUFxQjtFQUNuQixPQUFPQyxlQUFBLENBQUVGLFFBQUYsQ0FBV0MsQ0FBWCxLQUFpQixDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUMsUUFBUSxDQUFDSCxDQUFELEVBQUksRUFBSixDQUFoQixDQUFsQixJQUE4QyxDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUUsVUFBVSxDQUFDSixDQUFELENBQWxCLENBQXREO0FBQ0Q7O0FBRUQsU0FBU0ssV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7RUFDdkIsSUFBSSxDQUFDTCxlQUFBLENBQUVGLFFBQUYsQ0FBV08sRUFBWCxDQUFELElBQW1CQSxFQUFFLEdBQUcsQ0FBNUIsRUFBK0I7SUFDN0IsTUFBTSxJQUFJQyxLQUFKLENBQVUsZ0RBQVYsQ0FBTjtFQUNEO0FBQ0Y7O0FBRUQsTUFBTUMsVUFBVSxHQUFHO0VBQ2pCQyxNQUFNLEVBQUdDLEdBQUQsSUFBUztJQUVmLElBQUksQ0FBQ0EsR0FBRCxJQUFRLENBQUNBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLDJDQUFWLENBQWIsRUFBcUU7TUFDbkUsTUFBTSxJQUFJSixLQUFKLENBQVUsd0NBQVYsQ0FBTjtJQUNEO0VBQ0YsQ0FOZ0I7RUFPakJLLFlBQVksRUFBR04sRUFBRCxJQUFRO0lBQ3BCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBVGdCO0VBVWpCTyxrQkFBa0IsRUFBR1AsRUFBRCxJQUFRO0lBQzFCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBWmdCO0VBYWpCUSxZQUFZLEVBQUdDLE1BQUQsSUFBWTtJQUN4QixJQUFJLEVBQUVoQixRQUFRLENBQUNnQixNQUFELENBQVIsSUFBb0JkLGVBQUEsQ0FBRWUsV0FBRixDQUFjRCxNQUFkLENBQXRCLEtBQWdEQSxNQUFNLEdBQUcsQ0FBekQsSUFBOERBLE1BQU0sR0FBRyxDQUEzRSxFQUE4RTtNQUM1RSxNQUFNLElBQUlSLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0lBQ0Q7RUFDRixDQWpCZ0I7RUFrQmpCVSxvQkFBb0IsRUFBR0MsSUFBRCxJQUFVO0lBQzlCLElBQUksQ0FBQ25CLFFBQVEsQ0FBQ21CLElBQUQsQ0FBVCxJQUFtQixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCQyxPQUFoQixDQUF3QkQsSUFBeEIsTUFBa0MsQ0FBQyxDQUExRCxFQUE2RDtNQUMzRCxNQUFNLElBQUlYLEtBQUosQ0FBVSwyQ0FBVixDQUFOO0lBQ0Q7RUFDRjtBQXRCZ0IsQ0FBbkIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","names":["isNumber","o","_","isNaN","parseInt","parseFloat","msValidator","ms","Error","validators","setUrl","url","match","implicitWait","asyncScriptTimeout","clickCurrent","button","isUndefined","setNetworkConnection","type","indexOf"],"sources":["../../../lib/protocol/validators.js"],"sourcesContent":["import _ from 'lodash';\n\nfunction isNumber(o) {\n return _.isNumber(o) || !_.isNaN(parseInt(o, 10)) || !_.isNaN(parseFloat(o));\n}\n\nfunction msValidator(ms) {\n if (!_.isNumber(ms) || ms < 0) {\n throw new Error('Wait ms must be a number equal to 0 or greater');\n }\n}\n\nconst validators = {\n setUrl: (url) => {\n // either an `xyz://`, `about:`, or `data:` scheme is allowed\n if (!url || !url.match(/^([a-zA-Z0-9_+.-]+:\\/\\/)|(about:)|(data:)/)) {\n throw new Error('Url or Uri must start with <scheme>://');\n }\n },\n implicitWait: (ms) => {\n msValidator(ms);\n },\n asyncScriptTimeout: (ms) => {\n msValidator(ms);\n },\n clickCurrent: (button) => {\n if (!(isNumber(button) || _.isUndefined(button)) || button < 0 || button > 2) {\n throw new Error('Click button must be 0, 1, or 2');\n }\n },\n setNetworkConnection: (type) => {\n if (!isNumber(type) || [0, 1, 2, 4, 6].indexOf(type) === -1) {\n throw new Error('Network type must be one of 0, 1, 2, 4, 6');\n }\n },\n};\n\nexport {validators};\n"],"mappings":";;;;;;;;;AAAA;;;;AAEA,SAASA,QAAT,CAAkBC,CAAlB,EAAqB;EACnB,OAAOC,eAAA,CAAEF,QAAF,CAAWC,CAAX,KAAiB,CAACC,eAAA,CAAEC,KAAF,CAAQC,QAAQ,CAACH,CAAD,EAAI,EAAJ,CAAhB,CAAlB,IAA8C,CAACC,eAAA,CAAEC,KAAF,CAAQE,UAAU,CAACJ,CAAD,CAAlB,CAAtD;AACD;;AAED,SAASK,WAAT,CAAqBC,EAArB,EAAyB;EACvB,IAAI,CAACL,eAAA,CAAEF,QAAF,CAAWO,EAAX,CAAD,IAAmBA,EAAE,GAAG,CAA5B,EAA+B;IAC7B,MAAM,IAAIC,KAAJ,CAAU,gDAAV,CAAN;EACD;AACF;;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAGC,GAAD,IAAS;IAEf,IAAI,CAACA,GAAD,IAAQ,CAACA,GAAG,CAACC,KAAJ,CAAU,2CAAV,CAAb,EAAqE;MACnE,MAAM,IAAIJ,KAAJ,CAAU,wCAAV,CAAN;IACD;EACF,CANgB;EAOjBK,YAAY,EAAGN,EAAD,IAAQ;IACpBD,WAAW,CAACC,EAAD,CAAX;EACD,CATgB;EAUjBO,kBAAkB,EAAGP,EAAD,IAAQ;IAC1BD,WAAW,CAACC,EAAD,CAAX;EACD,CAZgB;EAajBQ,YAAY,EAAGC,MAAD,IAAY;IACxB,IAAI,EAAEhB,QAAQ,CAACgB,MAAD,CAAR,IAAoBd,eAAA,CAAEe,WAAF,CAAcD,MAAd,CAAtB,KAAgDA,MAAM,GAAG,CAAzD,IAA8DA,MAAM,GAAG,CAA3E,EAA8E;MAC5E,MAAM,IAAIR,KAAJ,CAAU,iCAAV,CAAN;IACD;EACF,CAjBgB;EAkBjBU,oBAAoB,EAAGC,IAAD,IAAU;IAC9B,IAAI,CAACnB,QAAQ,CAACmB,IAAD,CAAT,IAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgBC,OAAhB,CAAwBD,IAAxB,MAAkC,CAAC,CAA1D,EAA6D;MAC3D,MAAM,IAAIX,KAAJ,CAAU,2CAAV,CAAN;IACD;EACF;AAtBgB,CAAnB"}