@appium/base-driver 8.2.1 → 8.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,14 +19,12 @@ var _find = _interopRequireDefault(require("./find"));
19
19
 
20
20
  var _log = _interopRequireDefault(require("./log"));
21
21
 
22
- var _execute = _interopRequireDefault(require("./execute"));
23
-
24
22
  var _event = _interopRequireDefault(require("./event"));
25
23
 
26
24
  let commands = {};
27
- Object.assign(commands, _session.default, _settings.default, _timeout.default, _find.default, _log.default, _execute.default, _event.default);
25
+ Object.assign(commands, _session.default, _settings.default, _timeout.default, _find.default, _log.default, _event.default);
28
26
  var _default = commands;
29
27
  exports.default = _default;require('source-map-support').install();
30
28
 
31
29
 
32
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2luZGV4LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwic2Vzc2lvbkNtZHMiLCJzZXR0aW5nc0NtZHMiLCJ0aW1lb3V0Q21kcyIsImZpbmRDbWRzIiwibG9nQ21kcyIsImV4ZWN1dGVDbWRzIiwiZXZlbnRDbWRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBRUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUNFRixRQURGLEVBRUVHLGdCQUZGLEVBR0VDLGlCQUhGLEVBSUVDLGdCQUpGLEVBS0VDLGFBTEYsRUFNRUMsWUFORixFQU9FQyxnQkFQRixFQVFFQyxjQVJGO2VBWWVULFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2Vzc2lvbkNtZHMgZnJvbSAnLi9zZXNzaW9uJztcbmltcG9ydCBzZXR0aW5nc0NtZHMgZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgdGltZW91dENtZHMgZnJvbSAnLi90aW1lb3V0JztcbmltcG9ydCBmaW5kQ21kcyBmcm9tICcuL2ZpbmQnO1xuaW1wb3J0IGxvZ0NtZHMgZnJvbSAnLi9sb2cnO1xuaW1wb3J0IGV4ZWN1dGVDbWRzIGZyb20gJy4vZXhlY3V0ZSc7XG5pbXBvcnQgZXZlbnRDbWRzIGZyb20gJy4vZXZlbnQnO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9O1xuXG5PYmplY3QuYXNzaWduKFxuICBjb21tYW5kcyxcbiAgc2Vzc2lvbkNtZHMsXG4gIHNldHRpbmdzQ21kcyxcbiAgdGltZW91dENtZHMsXG4gIGZpbmRDbWRzLFxuICBsb2dDbWRzLFxuICBleGVjdXRlQ21kcyxcbiAgZXZlbnRDbWRzLFxuICAvLyBhZGQgb3RoZXIgY29tbWFuZCB0eXBlcyBoZXJlXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
30
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2luZGV4LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwic2Vzc2lvbkNtZHMiLCJzZXR0aW5nc0NtZHMiLCJ0aW1lb3V0Q21kcyIsImZpbmRDbWRzIiwibG9nQ21kcyIsImV2ZW50Q21kcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSxRQUFRLEdBQUcsRUFBZjtBQUVBQyxNQUFNLENBQUNDLE1BQVAsQ0FDRUYsUUFERixFQUVFRyxnQkFGRixFQUdFQyxpQkFIRixFQUlFQyxnQkFKRixFQUtFQyxhQUxGLEVBTUVDLFlBTkYsRUFPRUMsY0FQRjtlQVdlUixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlc3Npb25DbWRzIGZyb20gJy4vc2Vzc2lvbic7XG5pbXBvcnQgc2V0dGluZ3NDbWRzIGZyb20gJy4vc2V0dGluZ3MnO1xuaW1wb3J0IHRpbWVvdXRDbWRzIGZyb20gJy4vdGltZW91dCc7XG5pbXBvcnQgZmluZENtZHMgZnJvbSAnLi9maW5kJztcbmltcG9ydCBsb2dDbWRzIGZyb20gJy4vbG9nJztcbmltcG9ydCBldmVudENtZHMgZnJvbSAnLi9ldmVudCc7XG5cblxubGV0IGNvbW1hbmRzID0ge307XG5cbk9iamVjdC5hc3NpZ24oXG4gIGNvbW1hbmRzLFxuICBzZXNzaW9uQ21kcyxcbiAgc2V0dGluZ3NDbWRzLFxuICB0aW1lb3V0Q21kcyxcbiAgZmluZENtZHMsXG4gIGxvZ0NtZHMsXG4gIGV2ZW50Q21kcyxcbiAgLy8gYWRkIG90aGVyIGNvbW1hbmQgdHlwZXMgaGVyZVxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uIn0=
@@ -253,7 +253,7 @@ class BaseDriver extends _protocol.Protocol {
253
253
  }
254
254
  });
255
255
 
256
- const res = this.isCommandsQueueEnabled && cmd !== 'executeDriverScript' ? await this.commandsQueueGuard.acquire(BaseDriver.name, commandExecutor) : await commandExecutor();
256
+ const res = this.isCommandsQueueEnabled ? await this.commandsQueueGuard.acquire(BaseDriver.name, commandExecutor) : await commandExecutor();
257
257
 
258
258
  if (this.isCommandsQueueEnabled && cmd !== 'deleteSession') {
259
259
  this.startNewCommandTimeout();
@@ -388,4 +388,4 @@ var _default = BaseDriver;
388
388
  exports.default = _default;require('source-map-support').install();
389
389
 
390
390
 
391
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2RyaXZlci5qcyJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiQkFTRURSSVZFUl9WRVIiLCJmcyIsInJlYWRQYWNrYWdlSnNvbkZyb20iLCJfX2Rpcm5hbWUiLCJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiTkVXX0NPTU1BTkRfVElNRU9VVF9NUyIsIkVWRU5UX1NFU1NJT05fSU5JVCIsIkVWRU5UX1NFU1NJT05fU1RBUlQiLCJFVkVOVF9TRVNTSU9OX1FVSVRfU1RBUlQiLCJFVkVOVF9TRVNTSU9OX1FVSVRfRE9ORSIsIk9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQiLCJCYXNlRHJpdmVyIiwiUHJvdG9jb2wiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJzZXNzaW9uSWQiLCJjYXBzIiwib3JpZ2luYWxDYXBzIiwiaGVscGVycyIsImJhc2VQYXRoIiwiREVGQVVMVF9CQVNFX1BBVEgiLCJyZWxheGVkU2VjdXJpdHlFbmFibGVkIiwiYWxsb3dJbnNlY3VyZSIsImRlbnlJbnNlY3VyZSIsIm5ld0NvbW1hbmRUaW1lb3V0TXMiLCJpbXBsaWNpdFdhaXRNcyIsIl9jb25zdHJhaW50cyIsIl8iLCJjbG9uZURlZXAiLCJkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJ3ZWJMb2NhdG9yU3RyYXRlZ2llcyIsInRtcERpciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fVE1QX0RJUiIsIm9zIiwidG1wZGlyIiwic2h1dGRvd25VbmV4cGVjdGVkbHkiLCJub0NvbW1hbmRUaW1lciIsImNvbW1hbmRzUXVldWVHdWFyZCIsIkFzeW5jTG9jayIsInNldHRpbmdzIiwiRGV2aWNlU2V0dGluZ3MiLCJub29wIiwiaW5pdGlhbE9wdHMiLCJtYW5hZ2VkRHJpdmVycyIsIl9ldmVudEhpc3RvcnkiLCJjb21tYW5kcyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciIsInByb3RvY29sIiwib25VbmV4cGVjdGVkU2h1dGRvd24iLCJoYW5kbGVyIiwib24iLCJkcml2ZXJEYXRhIiwiaXNDb21tYW5kc1F1ZXVlRW5hYmxlZCIsImV2ZW50SGlzdG9yeSIsImxvZ0V2ZW50IiwiZXZlbnROYW1lIiwiRXJyb3IiLCJ0cyIsIkRhdGUiLCJub3ciLCJsb2dUaW1lIiwidG9UaW1lU3RyaW5nIiwicHVzaCIsImxvZyIsImRlYnVnIiwiZ2V0U3RhdHVzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiY29uc3RyYWludHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ2YWx1ZSIsInRvUGFpcnMiLCJwcmVzZW5jZSIsImFsbG93RW1wdHkiLCJzZXNzaW9uRXhpc3RzIiwiZHJpdmVyRm9yU2Vzc2lvbiIsImxvZ0V4dHJhQ2FwcyIsImV4dHJhQ2FwcyIsImRpZmZlcmVuY2UiLCJrZXlzIiwibGVuZ3RoIiwid2FybiIsImNhcCIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJtZXNzYWdlIiwiaXNNanNvbndwUHJvdG9jb2wiLCJQUk9UT0NPTFMiLCJNSlNPTldQIiwiaXNXM0NQcm90b2NvbCIsIlczQyIsInNldFByb3RvY29sTUpTT05XUCIsInNldFByb3RvY29sVzNDIiwiaXNGZWF0dXJlRW5hYmxlZCIsIm5hbWUiLCJpbmNsdWRlcyIsImVuc3VyZUZlYXR1cmVFbmFibGVkIiwiZXhlY3V0ZUNvbW1hbmQiLCJjbWQiLCJhcmdzIiwic3RhcnRUaW1lIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsIk5vU3VjaERyaXZlckVycm9yIiwiTm90WWV0SW1wbGVtZW50ZWRFcnJvciIsInVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyIiwiY29tbWFuZEV4ZWN1dG9yIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaW5hbGx5IiwicmVtb3ZlTGlzdGVuZXIiLCJyZXMiLCJhY3F1aXJlIiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsImVuZFRpbWUiLCJzdGFydFVuZXhwZWN0ZWRTaHV0ZG93biIsImVyciIsImVtaXQiLCJkZWxldGVTZXNzaW9uIiwidmFsaWRhdGVMb2NhdG9yU3RyYXRlZ3kiLCJzdHJhdGVneSIsIndlYkNvbnRleHQiLCJ2YWxpZFN0cmF0ZWdpZXMiLCJqb2luIiwiY29uY2F0IiwiSW52YWxpZFNlbGVjdG9yRXJyb3IiLCJyZXNldCIsImN1cnJlbnRDb25maWciLCJwcm9wZXJ0eSIsInJlc2V0T25VbmV4cGVjdGVkU2h1dGRvd24iLCJjcmVhdGVTZXNzaW9uIiwidW5kZWZpbmVkIiwia2V5IiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwicHJveHlSb3V0ZUlzQXZvaWRlZCIsIm1ldGhvZCIsInVybCIsImF2b2lkU2NoZW1hIiwiaXNBcnJheSIsImF2b2lkTWV0aG9kIiwiYXZvaWRQYXRoUmVnZXgiLCJpc1JlZ0V4cCIsIm5vcm1hbGl6ZWRVcmwiLCJyZXBsYWNlIiwiUmVnRXhwIiwiZXNjYXBlUmVnRXhwIiwidGVzdCIsImFkZE1hbmFnZWREcml2ZXIiLCJkcml2ZXIiLCJnZXRNYW5hZ2VkRHJpdmVycyIsImZuIiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU07QUFBQ0EsRUFBQUEsT0FBTyxFQUFFQztBQUFWLElBQTRCQyxZQUFHQyxtQkFBSCxDQUF1QkMsU0FBdkIsQ0FBbEM7O0FBRUFDLGtCQUFFQyxNQUFGLENBQVM7QUFDUEMsRUFBQUEsWUFBWSxFQUFFO0FBRFAsQ0FBVDs7QUFJQSxNQUFNQyxzQkFBc0IsR0FBRyxLQUFLLElBQXBDO0FBRUEsTUFBTUMsa0JBQWtCLEdBQUcscUJBQTNCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsbUJBQTVCO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUcsc0JBQWpDO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcscUJBQWhDO0FBQ0EsTUFBTUMsNEJBQTRCLEdBQUcsc0JBQXJDOztBQUVBLE1BQU1DLFVBQU4sU0FBeUJDLGtCQUF6QixDQUFrQztBQVFoQ0MsRUFBQUEsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhQyxrQkFBa0IsR0FBRyxJQUFsQyxFQUF3QztBQUNqRDtBQUdBLFNBQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDQSxTQUFLRixJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxJQUFMLEdBQVksSUFBWjtBQUNBLFNBQUtDLFlBQUwsR0FBb0IsSUFBcEI7QUFDQSxTQUFLQyxPQUFMLEdBQWVBLE9BQWY7QUFRQSxTQUFLQyxRQUFMLEdBQWdCQyw0QkFBaEI7QUFHQSxTQUFLQyxzQkFBTCxHQUE4QixLQUE5QjtBQUNBLFNBQUtDLGFBQUwsR0FBcUIsRUFBckI7QUFDQSxTQUFLQyxZQUFMLEdBQW9CLEVBQXBCO0FBR0EsU0FBS0MsbUJBQUwsR0FBMkJwQixzQkFBM0I7QUFDQSxTQUFLcUIsY0FBTCxHQUFzQixDQUF0QjtBQUVBLFNBQUtDLFlBQUwsR0FBb0JDLGdCQUFFQyxTQUFGLENBQVlDLHlDQUFaLENBQXBCO0FBQ0EsU0FBS0MsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxTQUFLQyxvQkFBTCxHQUE0QixFQUE1QjtBQUlBLFNBQUtsQixJQUFMLENBQVVtQixNQUFWLEdBQW1CLEtBQUtuQixJQUFMLENBQVVtQixNQUFWLElBQ0FDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxjQURaLElBRUFDLFlBQUdDLE1BQUgsRUFGbkI7QUFLQSxTQUFLQyxvQkFBTCxHQUE0QixLQUE1QjtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsSUFBdEI7QUFDQSxTQUFLekIsa0JBQUwsR0FBMEJBLGtCQUExQjtBQUNBLFNBQUswQixrQkFBTCxHQUEwQixJQUFJQyxrQkFBSixFQUExQjtBQU1BLFNBQUtDLFFBQUwsR0FBZ0IsSUFBSUMsdUJBQUosQ0FBbUIsRUFBbkIsRUFBdUJoQixnQkFBRWlCLElBQXpCLENBQWhCO0FBR0EsU0FBS0MsV0FBTCxHQUFtQmxCLGdCQUFFQyxTQUFGLENBQVksS0FBS2YsSUFBakIsQ0FBbkI7QUFHQSxTQUFLaUMsY0FBTCxHQUFzQixFQUF0QjtBQUdBLFNBQUtDLGFBQUwsR0FBcUI7QUFDbkJDLE1BQUFBLFFBQVEsRUFBRTtBQURTLEtBQXJCO0FBS0EsU0FBS0MsWUFBTCxHQUFvQixJQUFJQyxvQkFBSixFQUFwQjtBQUVBLFNBQUtDLFFBQUwsR0FBZ0IsSUFBaEI7QUFDRDs7QUFXREMsRUFBQUEsb0JBQW9CLENBQUVDLE9BQUYsRUFBVztBQUM3QixTQUFLSixZQUFMLENBQWtCSyxFQUFsQixDQUFxQjdDLDRCQUFyQixFQUFtRDRDLE9BQW5EO0FBQ0Q7O0FBVWEsTUFBVkUsVUFBVSxHQUFJO0FBQ2hCLFdBQU8sRUFBUDtBQUNEOztBQWF5QixNQUF0QkMsc0JBQXNCLEdBQUk7QUFDNUIsV0FBTyxJQUFQO0FBQ0Q7O0FBTWUsTUFBWkMsWUFBWSxHQUFJO0FBQ2xCLFdBQU85QixnQkFBRUMsU0FBRixDQUFZLEtBQUttQixhQUFqQixDQUFQO0FBQ0Q7O0FBS0RXLEVBQUFBLFFBQVEsQ0FBRUMsU0FBRixFQUFhO0FBQ25CLFFBQUlBLFNBQVMsS0FBSyxVQUFsQixFQUE4QjtBQUM1QixZQUFNLElBQUlDLEtBQUosQ0FBVSw4QkFBVixDQUFOO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPRCxTQUFQLEtBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDLFlBQU0sSUFBSUMsS0FBSixDQUFXLHFCQUFvQkQsU0FBVSxFQUF6QyxDQUFOO0FBQ0Q7O0FBQ0QsUUFBSSxDQUFDLEtBQUtaLGFBQUwsQ0FBbUJZLFNBQW5CLENBQUwsRUFBb0M7QUFDbEMsV0FBS1osYUFBTCxDQUFtQlksU0FBbkIsSUFBZ0MsRUFBaEM7QUFDRDs7QUFDRCxVQUFNRSxFQUFFLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxFQUFYO0FBQ0EsVUFBTUMsT0FBTyxHQUFJLElBQUlGLElBQUosQ0FBU0QsRUFBVCxDQUFELENBQWVJLFlBQWYsRUFBaEI7O0FBQ0EsU0FBS2xCLGFBQUwsQ0FBbUJZLFNBQW5CLEVBQThCTyxJQUE5QixDQUFtQ0wsRUFBbkM7O0FBQ0FNLG9CQUFJQyxLQUFKLENBQVcsVUFBU1QsU0FBVSxlQUFjRSxFQUFHLEtBQUlHLE9BQVEsR0FBM0Q7QUFDRDs7QUFNYyxRQUFUSyxTQUFTLEdBQUk7QUFDakIsV0FBTyxFQUFQO0FBQ0Q7O0FBR3dCLE1BQXJCQyxxQkFBcUIsQ0FBRUMsV0FBRixFQUFlO0FBQ3RDLFNBQUs3QyxZQUFMLEdBQW9COEMsTUFBTSxDQUFDQyxNQUFQLENBQWMsS0FBSy9DLFlBQW5CLEVBQWlDNkMsV0FBakMsQ0FBcEI7O0FBR0EsU0FBSyxNQUFNLEdBQUdHLEtBQUgsQ0FBWCxJQUF3Qi9DLGdCQUFFZ0QsT0FBRixDQUFVLEtBQUtqRCxZQUFmLENBQXhCLEVBQXNEO0FBQ3BELFVBQUlnRCxLQUFLLElBQUlBLEtBQUssQ0FBQ0UsUUFBTixLQUFtQixJQUFoQyxFQUFzQztBQUNwQ0YsUUFBQUEsS0FBSyxDQUFDRSxRQUFOLEdBQWlCO0FBQ2ZDLFVBQUFBLFVBQVUsRUFBRTtBQURHLFNBQWpCO0FBR0Q7QUFDRjtBQUNGOztBQUV3QixNQUFyQlAscUJBQXFCLEdBQUk7QUFDM0IsV0FBTyxLQUFLNUMsWUFBWjtBQUNEOztBQUlEb0QsRUFBQUEsYUFBYSxDQUFFL0QsU0FBRixFQUFhO0FBQ3hCLFFBQUksQ0FBQ0EsU0FBTCxFQUFnQixPQUFPLEtBQVA7QUFDaEIsV0FBT0EsU0FBUyxLQUFLLEtBQUtBLFNBQTFCO0FBQ0Q7O0FBSURnRSxFQUFBQSxnQkFBZ0IsR0FBaUI7QUFDL0IsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFlBQVksQ0FBRWhFLElBQUYsRUFBUTtBQUNsQixRQUFJaUUsU0FBUyxHQUFHdEQsZ0JBQUV1RCxVQUFGLENBQWF2RCxnQkFBRXdELElBQUYsQ0FBT25FLElBQVAsQ0FBYixFQUNhVyxnQkFBRXdELElBQUYsQ0FBTyxLQUFLekQsWUFBWixDQURiLENBQWhCOztBQUVBLFFBQUl1RCxTQUFTLENBQUNHLE1BQWQsRUFBc0I7QUFDcEJqQixzQkFBSWtCLElBQUosQ0FBVSx3REFBRCxHQUNDLHVCQURWOztBQUVBLFdBQUssTUFBTUMsR0FBWCxJQUFrQkwsU0FBbEIsRUFBNkI7QUFDM0JkLHdCQUFJa0IsSUFBSixDQUFVLEtBQUlDLEdBQUksRUFBbEI7QUFDRDtBQUNGO0FBQ0Y7O0FBRURDLEVBQUFBLG1CQUFtQixDQUFFdkUsSUFBRixFQUFRO0FBQ3pCLFFBQUksQ0FBQyxLQUFLRixrQkFBVixFQUE4QjtBQUM1QixhQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFJO0FBQ0Ysc0NBQWFFLElBQWIsRUFBbUIsS0FBS1UsWUFBeEI7QUFDRCxLQUZELENBRUUsT0FBTzhELENBQVAsRUFBVTtBQUNWckIsc0JBQUlzQixhQUFKLENBQWtCLElBQUlDLGlCQUFPQyxzQkFBWCxDQUFtQyx1REFBRCxHQUNyQyx3QkFBdUJILENBQUMsQ0FBQ0ksT0FBUSxFQUQ5QixDQUFsQjtBQUVEOztBQUVELFNBQUtaLFlBQUwsQ0FBa0JoRSxJQUFsQjtBQUVBLFdBQU8sSUFBUDtBQUNEOztBQUVENkUsRUFBQUEsaUJBQWlCLEdBQUk7QUFDbkIsV0FBTyxLQUFLMUMsUUFBTCxLQUFrQjJDLHFCQUFVQyxPQUFuQztBQUNEOztBQUVEQyxFQUFBQSxhQUFhLEdBQUk7QUFDZixXQUFPLEtBQUs3QyxRQUFMLEtBQWtCMkMscUJBQVVHLEdBQW5DO0FBQ0Q7O0FBRURDLEVBQUFBLGtCQUFrQixHQUFJO0FBQ3BCLFNBQUsvQyxRQUFMLEdBQWdCMkMscUJBQVVDLE9BQTFCO0FBQ0Q7O0FBRURJLEVBQUFBLGNBQWMsR0FBSTtBQUNoQixTQUFLaEQsUUFBTCxHQUFnQjJDLHFCQUFVRyxHQUExQjtBQUNEOztBQVNERyxFQUFBQSxnQkFBZ0IsQ0FBRUMsSUFBRixFQUFRO0FBRXRCLFFBQUksS0FBSzlFLFlBQUwsSUFBcUJJLGdCQUFFMkUsUUFBRixDQUFXLEtBQUsvRSxZQUFoQixFQUE4QjhFLElBQTlCLENBQXpCLEVBQThEO0FBQzVELGFBQU8sS0FBUDtBQUNEOztBQUdELFFBQUksS0FBSy9FLGFBQUwsSUFBc0JLLGdCQUFFMkUsUUFBRixDQUFXLEtBQUtoRixhQUFoQixFQUErQitFLElBQS9CLENBQTFCLEVBQWdFO0FBQzlELGFBQU8sSUFBUDtBQUNEOztBQUlELFFBQUksS0FBS2hGLHNCQUFULEVBQWlDO0FBQy9CLGFBQU8sSUFBUDtBQUNEOztBQUdELFdBQU8sS0FBUDtBQUNEOztBQVFEa0YsRUFBQUEsb0JBQW9CLENBQUVGLElBQUYsRUFBUTtBQUMxQixRQUFJLENBQUMsS0FBS0QsZ0JBQUwsQ0FBc0JDLElBQXRCLENBQUwsRUFBa0M7QUFDaEMsWUFBTSxJQUFJekMsS0FBSixDQUFXLGlDQUFnQ3lDLElBQUssaUJBQXRDLEdBQ0MseURBREQsR0FFQyx3REFGRCxHQUdDLDBEQUhELEdBSUMsZ0VBSlgsQ0FBTjtBQUtEO0FBQ0Y7O0FBTW1CLFFBQWRHLGNBQWMsQ0FBRUMsR0FBRixFQUFPLEdBQUdDLElBQVYsRUFBZ0I7QUFFbEMsUUFBSUMsU0FBUyxHQUFHN0MsSUFBSSxDQUFDQyxHQUFMLEVBQWhCOztBQUVBLFFBQUkwQyxHQUFHLEtBQUssZUFBWixFQUE2QjtBQUUzQixXQUFLdEQsUUFBTCxHQUFnQixpQ0FBa0IsR0FBR3VELElBQXJCLENBQWhCO0FBQ0EsV0FBS2hELFFBQUwsQ0FBY3JELGtCQUFkO0FBQ0QsS0FKRCxNQUlPLElBQUlvRyxHQUFHLEtBQUssZUFBWixFQUE2QjtBQUNsQyxXQUFLL0MsUUFBTCxDQUFjbkQsd0JBQWQ7QUFDRDs7QUFJRCxTQUFLcUcsc0JBQUw7O0FBRUEsUUFBSSxLQUFLdEUsb0JBQVQsRUFBK0I7QUFDN0IsWUFBTSxJQUFJb0QsaUJBQU9tQixpQkFBWCxDQUE2Qix3Q0FBN0IsQ0FBTjtBQUNEOztBQUdELFFBQUksQ0FBQyxLQUFLSixHQUFMLENBQUwsRUFBZ0I7QUFDZCxZQUFNLElBQUlmLGlCQUFPb0Isc0JBQVgsRUFBTjtBQUNEOztBQUVELFFBQUlDLDBCQUFKOztBQUNBLFVBQU1DLGVBQWUsR0FBRyxZQUFZLE1BQU0vRyxrQkFBRWdILElBQUYsQ0FBTyxDQUMvQyxLQUFLUixHQUFMLEVBQVUsR0FBR0MsSUFBYixDQUQrQyxFQUUvQyxJQUFJekcsaUJBQUosQ0FBTSxDQUFDaUgsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3pCSixNQUFBQSwwQkFBMEIsR0FBR0ksTUFBN0I7QUFDQSxXQUFLbEUsWUFBTCxDQUFrQkssRUFBbEIsQ0FBcUI3Qyw0QkFBckIsRUFBbURzRywwQkFBbkQ7QUFDRCxLQUhELENBRitDLENBQVAsRUFNdkNLLE9BTnVDLENBTS9CLE1BQU07QUFDZixVQUFJTCwwQkFBSixFQUFnQztBQUU5QixhQUFLOUQsWUFBTCxDQUFrQm9FLGNBQWxCLENBQWlDNUcsNEJBQWpDLEVBQStEc0csMEJBQS9EO0FBQ0FBLFFBQUFBLDBCQUEwQixHQUFHLElBQTdCO0FBQ0Q7QUFDRixLQVp5QyxDQUExQzs7QUFhQSxVQUFNTyxHQUFHLEdBQUcsS0FBSzlELHNCQUFMLElBQStCaUQsR0FBRyxLQUFLLHFCQUF2QyxHQUNSLE1BQU0sS0FBS2pFLGtCQUFMLENBQXdCK0UsT0FBeEIsQ0FBZ0M3RyxVQUFVLENBQUMyRixJQUEzQyxFQUFpRFcsZUFBakQsQ0FERSxHQUVSLE1BQU1BLGVBQWUsRUFGekI7O0FBVUEsUUFBSSxLQUFLeEQsc0JBQUwsSUFBK0JpRCxHQUFHLEtBQUssZUFBM0MsRUFBNEQ7QUFFMUQsV0FBS2Usc0JBQUw7QUFDRDs7QUFHRCxVQUFNQyxPQUFPLEdBQUczRCxJQUFJLENBQUNDLEdBQUwsRUFBaEI7O0FBQ0EsU0FBS2hCLGFBQUwsQ0FBbUJDLFFBQW5CLENBQTRCa0IsSUFBNUIsQ0FBaUM7QUFBQ3VDLE1BQUFBLEdBQUQ7QUFBTUUsTUFBQUEsU0FBTjtBQUFpQmMsTUFBQUE7QUFBakIsS0FBakM7O0FBQ0EsUUFBSWhCLEdBQUcsS0FBSyxlQUFaLEVBQTZCO0FBQzNCLFdBQUsvQyxRQUFMLENBQWNwRCxtQkFBZDtBQUNELEtBRkQsTUFFTyxJQUFJbUcsR0FBRyxLQUFLLGVBQVosRUFBNkI7QUFDbEMsV0FBSy9DLFFBQUwsQ0FBY2xELHVCQUFkO0FBQ0Q7O0FBRUQsV0FBTzhHLEdBQVA7QUFDRDs7QUFFNEIsUUFBdkJJLHVCQUF1QixDQUFFQyxHQUFHLEdBQUcsSUFBSWpDLGlCQUFPbUIsaUJBQVgsQ0FBNkIsd0NBQTdCLENBQVIsRUFBZ0Y7QUFDM0csU0FBSzVELFlBQUwsQ0FBa0IyRSxJQUFsQixDQUF1Qm5ILDRCQUF2QixFQUFxRGtILEdBQXJEO0FBQ0EsU0FBS3JGLG9CQUFMLEdBQTRCLElBQTVCOztBQUNBLFFBQUk7QUFDRixZQUFNLEtBQUt1RixhQUFMLENBQW1CLEtBQUs5RyxTQUF4QixDQUFOO0FBQ0QsS0FGRCxTQUVVO0FBQ1IsV0FBS3VCLG9CQUFMLEdBQTRCLEtBQTVCO0FBQ0Q7QUFDRjs7QUFFRHdGLEVBQUFBLHVCQUF1QixDQUFFQyxRQUFGLEVBQVlDLFVBQVUsR0FBRyxLQUF6QixFQUFnQztBQUNyRCxRQUFJQyxlQUFlLEdBQUcsS0FBS25HLGlCQUEzQjs7QUFDQXFDLG9CQUFJQyxLQUFKLENBQVcsOENBQTZDNkQsZUFBZSxDQUFDQyxJQUFoQixDQUFxQixJQUFyQixDQUEyQixFQUFuRjs7QUFFQSxRQUFJRixVQUFKLEVBQWdCO0FBQ2RDLE1BQUFBLGVBQWUsR0FBR0EsZUFBZSxDQUFDRSxNQUFoQixDQUF1QixLQUFLcEcsb0JBQTVCLENBQWxCO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDSixnQkFBRTJFLFFBQUYsQ0FBVzJCLGVBQVgsRUFBNEJGLFFBQTVCLENBQUwsRUFBNEM7QUFDMUMsWUFBTSxJQUFJckMsaUJBQU8wQyxvQkFBWCxDQUFpQyxxQkFBb0JMLFFBQVMscUNBQTlELENBQU47QUFDRDtBQUNGOztBQU1VLFFBQUxNLEtBQUssR0FBSTtBQUNibEUsb0JBQUlDLEtBQUosQ0FBVSwyQkFBVjs7QUFDQUQsb0JBQUlDLEtBQUosQ0FBVSw0QkFBVjs7QUFHQSxRQUFJa0UsYUFBYSxHQUFHLEVBQXBCOztBQUNBLFNBQUssSUFBSUMsUUFBVCxJQUFxQixDQUFDLGdCQUFELEVBQW1CLHFCQUFuQixFQUEwQyxXQUExQyxFQUF1RCwyQkFBdkQsQ0FBckIsRUFBMEc7QUFDeEdELE1BQUFBLGFBQWEsQ0FBQ0MsUUFBRCxDQUFiLEdBQTBCLEtBQUtBLFFBQUwsQ0FBMUI7QUFDRDs7QUFHRCxTQUFLQyx5QkFBTCxHQUFpQyxNQUFNLENBQUUsQ0FBekM7O0FBRUEsUUFBSTtBQUNGLFlBQU0sS0FBS1gsYUFBTCxDQUFtQixLQUFLOUcsU0FBeEIsQ0FBTjs7QUFDQW9ELHNCQUFJQyxLQUFKLENBQVUsZ0JBQVY7O0FBQ0EsWUFBTSxLQUFLcUUsYUFBTCxDQUFtQkMsU0FBbkIsRUFBOEJBLFNBQTlCLEVBQXlDLEtBQUt6SCxZQUE5QyxDQUFOO0FBQ0QsS0FKRCxTQUlVO0FBRVIsV0FBSyxJQUFJLENBQUMwSCxHQUFELEVBQU1qRSxLQUFOLENBQVQsSUFBeUIvQyxnQkFBRWdELE9BQUYsQ0FBVTJELGFBQVYsQ0FBekIsRUFBbUQ7QUFDakQsYUFBS0ssR0FBTCxJQUFZakUsS0FBWjtBQUNEO0FBQ0Y7O0FBQ0QsU0FBS2tDLHNCQUFMO0FBQ0Q7O0FBRURnQyxFQUFBQSxXQUFXLEdBQW1CO0FBQzVCLFdBQU8sS0FBUDtBQUNEOztBQUVEQyxFQUFBQSxpQkFBaUIsR0FBbUI7QUFDbEMsV0FBTyxFQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsR0FBbUI7QUFDekIsV0FBTyxLQUFQO0FBQ0Q7O0FBZURDLEVBQUFBLG1CQUFtQixDQUFFaEksU0FBRixFQUFhaUksTUFBYixFQUFxQkMsR0FBckIsRUFBb0M7QUFDckQsU0FBSyxJQUFJQyxXQUFULElBQXdCLEtBQUtMLGlCQUFMLENBQXVCOUgsU0FBdkIsQ0FBeEIsRUFBMkQ7QUFDekQsVUFBSSxDQUFDWSxnQkFBRXdILE9BQUYsQ0FBVUQsV0FBVixDQUFELElBQTJCQSxXQUFXLENBQUM5RCxNQUFaLEtBQXVCLENBQXRELEVBQXlEO0FBQ3ZELGNBQU0sSUFBSXhCLEtBQUosQ0FBVSx5Q0FBVixDQUFOO0FBQ0Q7O0FBQ0QsVUFBSSxDQUFDd0YsV0FBRCxFQUFjQyxjQUFkLElBQWdDSCxXQUFwQzs7QUFDQSxVQUFJLENBQUN2SCxnQkFBRTJFLFFBQUYsQ0FBVyxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLFFBQWhCLENBQVgsRUFBc0M4QyxXQUF0QyxDQUFMLEVBQXlEO0FBQ3ZELGNBQU0sSUFBSXhGLEtBQUosQ0FBVyx3Q0FBdUN3RixXQUFZLEdBQTlELENBQU47QUFDRDs7QUFDRCxVQUFJLENBQUN6SCxnQkFBRTJILFFBQUYsQ0FBV0QsY0FBWCxDQUFMLEVBQWlDO0FBQy9CLGNBQU0sSUFBSXpGLEtBQUosQ0FBVSxtREFBVixDQUFOO0FBQ0Q7O0FBQ0QsVUFBSTJGLGFBQWEsR0FBR04sR0FBRyxDQUFDTyxPQUFKLENBQVksSUFBSUMsTUFBSixDQUFZLElBQUc5SCxnQkFBRStILFlBQUYsQ0FBZSxLQUFLdkksUUFBcEIsQ0FBOEIsRUFBN0MsQ0FBWixFQUE2RCxFQUE3RCxDQUFwQjs7QUFDQSxVQUFJaUksV0FBVyxLQUFLSixNQUFoQixJQUEwQkssY0FBYyxDQUFDTSxJQUFmLENBQW9CSixhQUFwQixDQUE5QixFQUFrRTtBQUNoRSxlQUFPLElBQVA7QUFDRDtBQUNGOztBQUNELFdBQU8sS0FBUDtBQUNEOztBQUVESyxFQUFBQSxnQkFBZ0IsQ0FBRUMsTUFBRixFQUFVO0FBQ3hCLFNBQUsvRyxjQUFMLENBQW9Cb0IsSUFBcEIsQ0FBeUIyRixNQUF6QjtBQUNEOztBQUVEQyxFQUFBQSxpQkFBaUIsR0FBSTtBQUNuQixXQUFPLEtBQUtoSCxjQUFaO0FBQ0Q7O0FBM2IrQjs7OzhCQUE1QnBDLFUsaUJBTWlCYixjOztBQXdidkIsS0FBSyxJQUFJLENBQUM0RyxHQUFELEVBQU1zRCxFQUFOLENBQVQsSUFBc0JwSSxnQkFBRWdELE9BQUYsQ0FBVTNCLGlCQUFWLENBQXRCLEVBQTJDO0FBQ3pDdEMsRUFBQUEsVUFBVSxDQUFDc0osU0FBWCxDQUFxQnZELEdBQXJCLElBQTRCc0QsRUFBNUI7QUFDRDs7ZUFHY3JKLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQcm90b2NvbCwgZXJyb3JzLCBkZXRlcm1pbmVQcm90b2NvbFxufSBmcm9tICcuLi9wcm90b2NvbCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBQUk9UT0NPTFMsIERFRkFVTFRfQkFTRV9QQVRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgY29tbWFuZHMgZnJvbSAnLi9jb21tYW5kcyc7XG5pbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBEZXZpY2VTZXR0aW5ncyBmcm9tICcuL2RldmljZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzIH0gZnJvbSAnLi9kZXNpcmVkLWNhcHMnO1xuaW1wb3J0IHsgdmFsaWRhdGVDYXBzIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBBc3luY0xvY2sgZnJvbSAnYXN5bmMtbG9jayc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG4vLyBmb3IgY29tcGF0IHdpdGggcnVubmluZyB0ZXN0cyB0cmFuc3BpbGVkIGFuZCBpbi1wbGFjZVxuY29uc3Qge3ZlcnNpb246IEJBU0VEUklWRVJfVkVSfSA9IGZzLnJlYWRQYWNrYWdlSnNvbkZyb20oX19kaXJuYW1lKTtcblxuQi5jb25maWcoe1xuICBjYW5jZWxsYXRpb246IHRydWUsXG59KTtcblxuY29uc3QgTkVXX0NPTU1BTkRfVElNRU9VVF9NUyA9IDYwICogMTAwMDtcblxuY29uc3QgRVZFTlRfU0VTU0lPTl9JTklUID0gJ25ld1Nlc3Npb25SZXF1ZXN0ZWQnO1xuY29uc3QgRVZFTlRfU0VTU0lPTl9TVEFSVCA9ICduZXdTZXNzaW9uU3RhcnRlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1FVSVRfU1RBUlQgPSAncXVpdFNlc3Npb25SZXF1ZXN0ZWQnO1xuY29uc3QgRVZFTlRfU0VTU0lPTl9RVUlUX0RPTkUgPSAncXVpdFNlc3Npb25GaW5pc2hlZCc7XG5jb25zdCBPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5UID0gJ29uVW5leHBlY3RlZFNodXRkb3duJztcblxuY2xhc3MgQmFzZURyaXZlciBleHRlbmRzIFByb3RvY29sIHtcblxuICAvKipcbiAgICogTWFrZSB0aGUgYmFzZWRyaXZlciB2ZXJzaW9uIGF2YWlsYWJsZSBzbyBmb3IgYW55IGRyaXZlciB3aGljaCBpbmhlcml0cyBmcm9tIHRoaXMgcGFja2FnZSwgd2VcbiAgICoga25vdyB3aGljaCB2ZXJzaW9uIG9mIGJhc2Vkcml2ZXIgaXQgaW5oZXJpdGVkIGZyb21cbiAgICovXG4gIHN0YXRpYyBiYXNlVmVyc2lvbiA9IEJBU0VEUklWRVJfVkVSO1xuXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30sIHNob3VsZFZhbGlkYXRlQ2FwcyA9IHRydWUpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gc2V0dXAgc3RhdGVcbiAgICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcbiAgICB0aGlzLmNhcHMgPSBudWxsO1xuICAgIHRoaXMub3JpZ2luYWxDYXBzID0gbnVsbDsgLy8gVG8gZ2l2ZSB0aGUgb3JpZ2luYWwgY2FwYWJpbGl0aWVzIHRvIHJlc2V0XG4gICAgdGhpcy5oZWxwZXJzID0gaGVscGVycztcblxuICAgIC8vIGJhc2VQYXRoIGlzIHVzZWQgZm9yIHNldmVyYWwgcHVycG9zZXMsIGZvciBleGFtcGxlIGluIHNldHRpbmcgdXBcbiAgICAvLyBwcm94eWluZyB0byBvdGhlciBkcml2ZXJzLCBzaW5jZSB3ZSBuZWVkIHRvIGtub3cgd2hhdCB0aGUgYmFzZSBwYXRoXG4gICAgLy8gb2YgYW55IGluY29taW5nIHJlcXVlc3QgbWlnaHQgbG9vayBsaWtlLiBXZSBzZXQgaXQgdG8gdGhlIGRlZmF1bHRcbiAgICAvLyBpbml0aWFsbHkgYnV0IGl0IGlzIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBkdXJpbmcgYW55IGFjdHVhbCBwcm9ncmFtXG4gICAgLy8gZXhlY3V0aW9uIGJ5IHRoZSByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIHdoaWNoIGlzIG5lY2Vzc2FyaWx5IHJ1biBhc1xuICAgIC8vIHRoZSBlbnRyeXBvaW50IGZvciBhbnkgQXBwaXVtIHNlcnZlclxuICAgIHRoaXMuYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSDtcblxuICAgIC8vIGluaXRpYWxpemUgc2VjdXJpdHkgbW9kZXNcbiAgICB0aGlzLnJlbGF4ZWRTZWN1cml0eUVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmFsbG93SW5zZWN1cmUgPSBbXTtcbiAgICB0aGlzLmRlbnlJbnNlY3VyZSA9IFtdO1xuXG4gICAgLy8gdGltZW91dCBpbml0aWFsaXphdGlvblxuICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IE5FV19DT01NQU5EX1RJTUVPVVRfTVM7XG4gICAgdGhpcy5pbXBsaWNpdFdhaXRNcyA9IDA7XG5cbiAgICB0aGlzLl9jb25zdHJhaW50cyA9IF8uY2xvbmVEZWVwKGRlc2lyZWRDYXBhYmlsaXR5Q29uc3RyYWludHMpO1xuICAgIHRoaXMubG9jYXRvclN0cmF0ZWdpZXMgPSBbXTtcbiAgICB0aGlzLndlYkxvY2F0b3JTdHJhdGVnaWVzID0gW107XG5cbiAgICAvLyB1c2UgYSBjdXN0b20gdG1wIGRpciB0byBhdm9pZCBsb3NpbmcgZGF0YSBhbmQgYXBwIHdoZW4gY29tcHV0ZXIgaXNcbiAgICAvLyByZXN0YXJ0ZWRcbiAgICB0aGlzLm9wdHMudG1wRGlyID0gdGhpcy5vcHRzLnRtcERpciB8fFxuICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiB8fFxuICAgICAgICAgICAgICAgICAgICAgICBvcy50bXBkaXIoKTtcblxuICAgIC8vIGJhc2UtZHJpdmVyIGludGVybmFsc1xuICAgIHRoaXMuc2h1dGRvd25VbmV4cGVjdGVkbHkgPSBmYWxzZTtcbiAgICB0aGlzLm5vQ29tbWFuZFRpbWVyID0gbnVsbDtcbiAgICB0aGlzLnNob3VsZFZhbGlkYXRlQ2FwcyA9IHNob3VsZFZhbGlkYXRlQ2FwcztcbiAgICB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZCA9IG5ldyBBc3luY0xvY2soKTtcblxuICAgIC8vIHNldHRpbmdzIHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgYnkgZHJpdmVycyB3aGljaCBleHRlbmQgQmFzZURyaXZlciwgYnV0XG4gICAgLy8gd2Ugc2V0IGl0IHRvIGFuIGVtcHR5IERldmljZVNldHRpbmdzIGluc3RhbmNlIGhlcmUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlXG4gICAgLy8gZGVmYXVsdCBzZXR0aW5ncyBhcmUgYXBwbGllZCBldmVuIGlmIGFuIGV4dGVuZGluZyBkcml2ZXIgZG9lc24ndCB1dGlsaXplXG4gICAgLy8gdGhlIHNldHRpbmdzIGZ1bmN0aW9uYWxpdHkgaXRzZWxmXG4gICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBEZXZpY2VTZXR0aW5ncyh7fSwgXy5ub29wKTtcblxuICAgIC8vIGtlZXBpbmcgdHJhY2sgb2YgaW5pdGlhbCBvcHRzXG4gICAgdGhpcy5pbml0aWFsT3B0cyA9IF8uY2xvbmVEZWVwKHRoaXMub3B0cyk7XG5cbiAgICAvLyBhbGxvdyBzdWJjbGFzc2VzIHRvIGhhdmUgaW50ZXJuYWwgZHJpdmVyc1xuICAgIHRoaXMubWFuYWdlZERyaXZlcnMgPSBbXTtcblxuICAgIC8vIHN0b3JlIGV2ZW50IHRpbWluZ3NcbiAgICB0aGlzLl9ldmVudEhpc3RvcnkgPSB7XG4gICAgICBjb21tYW5kczogW10gLy8gY29tbWFuZHMgZ2V0IGEgc3BlY2lhbCBwbGFjZVxuICAgIH07XG5cbiAgICAvLyB1c2VkIHRvIGhhbmRsZSBkcml2ZXIgZXZlbnRzXG4gICAgdGhpcy5ldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICB0aGlzLnByb3RvY29sID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBjYWxsYmFjayBoYW5kbGVyIGlmIG5lZWRlZCB0byBleGVjdXRlIGEgY3VzdG9tIHBpZWNlIG9mIGNvZGVcbiAgICogd2hlbiB0aGUgZHJpdmVyIGlzIHNodXQgZG93biB1bmV4cGVjdGVkbHkuIE11bHRpcGxlIGNhbGxzIHRvIHRoaXMgbWV0aG9kXG4gICAqIHdpbGwgY2F1c2UgdGhlIGhhbmRsZXIgdG8gYmUgZXhlY3V0ZWQgbXV0aXBsZSB0aW1lc1xuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyIFRoZSBjb2RlIHRvIGJlIGV4ZWN1dGVkIG9uIHVuZXhwZWN0ZWQgc2h1dGRvd24uXG4gICAqIFRoZSBmdW5jdGlvbiBtYXkgYWNjZXB0IG9uZSBhcmd1bWVudCwgd2hpY2ggaXMgdGhlIGFjdHVhbCBlcnJvciBpbnN0YW5jZSwgd2hpY2hcbiAgICogY2F1c2VkIHRoZSBkcml2ZXIgdG8gc2h1dCBkb3duLlxuICAgKi9cbiAgb25VbmV4cGVjdGVkU2h1dGRvd24gKGhhbmRsZXIpIHtcbiAgICB0aGlzLmV2ZW50RW1pdHRlci5vbihPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5ULCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgYnkgQXBwaXVtRHJpdmVyIHRvIHN0b3JlIHRoZSBkYXRhIG9mIHRoZVxuICAgKiBzcGVjaWZpYyBkcml2ZXIgc2Vzc2lvbnMuIFRoaXMgZGF0YSBjYW4gYmUgbGF0ZXIgdXNlZCB0byBhZGp1c3RcbiAgICogcHJvcGVydGllcyBmb3IgZHJpdmVyIGluc3RhbmNlcyBydW5uaW5nIGluIHBhcmFsbGVsLlxuICAgKiBPdmVycmlkZSBpdCBpbiBpbmhlcml0ZWQgZHJpdmVyIGNsYXNzZXMgaWYgbmVjZXNzYXJ5LlxuICAgKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IERyaXZlciBwcm9wZXJ0aWVzIG1hcHBpbmdcbiAgICovXG4gIGdldCBkcml2ZXJEYXRhICgpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgd2F5IHsjZXhlY3V0ZUNvbW1hbmR9IG1ldGhvZFxuICAgKiBoYW5kbGVzIG5ldyBkcml2ZXIgY29tbWFuZHMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50LlxuICAgKiBPdmVycmlkZSBpdCBmb3IgaW5oZXJpdGVkIGNsYXNzZXMgb25seSBpbiBzcGVjaWFsIGNhc2VzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgdHJ1ZSAoZGVmYXVsdCkgdGhlbiBhbGwgdGhlIGNvbW1hbmRzXG4gICAqICAgcmVjZWl2ZWQgYnkgdGhlIHBhcnRpY3VsYXIgZHJpdmVyIGluc3RhbmNlIGFyZSBnb2luZyB0byBiZSBwdXQgaW50byB0aGUgcXVldWUsXG4gICAqICAgc28gZWFjaCBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIG5vdCBiZSBleGVjdXRlZCB1bnRpbCB0aGUgcHJldmlvdXMgY29tbWFuZFxuICAgKiAgIGV4ZWN1dGlvbiBpcyBjb21wbGV0ZWQuIEZhbHNlIHZhbHVlIGRpc2FibGVzIHRoYXQgcXVldWUsIHNvIGVhY2ggZHJpdmVyIGNvbW1hbmRcbiAgICogICBpcyBleGVjdXRlZCBpbmRlcGVuZGVudGx5IGFuZCBkb2VzIG5vdCB3YWl0IGZvciBhbnl0aGluZy5cbiAgICovXG4gIGdldCBpc0NvbW1hbmRzUXVldWVFbmFibGVkICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qXG4gICAqIG1ha2UgZXZlbnRIaXN0b3J5IGEgcHJvcGVydHkgYW5kIHJldHVybiBhIGNsb25lZCBvYmplY3Qgc28gYSBjb25zdW1lciBjYW4ndFxuICAgKiBpbmFkdmVydGVudGx5IGNoYW5nZSBkYXRhIG91dHNpZGUgb2YgbG9nRXZlbnRcbiAgICovXG4gIGdldCBldmVudEhpc3RvcnkgKCkge1xuICAgIHJldHVybiBfLmNsb25lRGVlcCh0aGlzLl9ldmVudEhpc3RvcnkpO1xuICB9XG5cbiAgLypcbiAgICogQVBJIG1ldGhvZCBmb3IgZHJpdmVyIGRldmVsb3BlcnMgdG8gbG9nIHRpbWluZ3MgZm9yIGltcG9ydGFudCBldmVudHNcbiAgICovXG4gIGxvZ0V2ZW50IChldmVudE5hbWUpIHtcbiAgICBpZiAoZXZlbnROYW1lID09PSAnY29tbWFuZHMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2cgY29tbWFuZHMgZGlyZWN0bHknKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBldmVudE5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXZlbnROYW1lICR7ZXZlbnROYW1lfWApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2V2ZW50SGlzdG9yeVtldmVudE5hbWVdKSB7XG4gICAgICB0aGlzLl9ldmVudEhpc3RvcnlbZXZlbnROYW1lXSA9IFtdO1xuICAgIH1cbiAgICBjb25zdCB0cyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbG9nVGltZSA9IChuZXcgRGF0ZSh0cykpLnRvVGltZVN0cmluZygpO1xuICAgIHRoaXMuX2V2ZW50SGlzdG9yeVtldmVudE5hbWVdLnB1c2godHMpO1xuICAgIGxvZy5kZWJ1ZyhgRXZlbnQgJyR7ZXZlbnROYW1lfScgbG9nZ2VkIGF0ICR7dHN9ICgke2xvZ1RpbWV9KWApO1xuICB9XG5cbiAgLypcbiAgICogT3ZlcnJpZGRlbiBpbiBhcHBpdW0gZHJpdmVyLCBidXQgaGVyZSBzbyB0aGF0IGluZGl2aWR1YWwgZHJpdmVycyBjYW4gYmVcbiAgICogdGVzdGVkIHdpdGggY2xpZW50cyB0aGF0IHBvbGxcbiAgICovXG4gIGFzeW5jIGdldFN0YXR1cyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIHdlIG9ubHkgd2FudCBzdWJjbGFzc2VzIHRvIGV2ZXIgZXh0ZW5kIHRoZSBjb250cmFpbnRzXG4gIHNldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKGNvbnN0cmFpbnRzKSB7XG4gICAgdGhpcy5fY29uc3RyYWludHMgPSBPYmplY3QuYXNzaWduKHRoaXMuX2NvbnN0cmFpbnRzLCBjb25zdHJhaW50cyk7XG4gICAgLy8gJ3ByZXNlbmNlJyBtZWFucyBkaWZmZXJlbnQgdGhpbmdzIGluIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgdmFsaWRhdG9yLFxuICAgIC8vIHdoZW4gd2Ugc2F5ICd0cnVlJyB3ZSBtZWFuIHRoYXQgaXQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGJlIGVtcHR5XG4gICAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgXy50b1BhaXJzKHRoaXMuX2NvbnN0cmFpbnRzKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnByZXNlbmNlID09PSB0cnVlKSB7XG4gICAgICAgIHZhbHVlLnByZXNlbmNlID0ge1xuICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25zdHJhaW50cztcbiAgfVxuXG4gIC8vIG1ldGhvZCByZXF1aXJlZCBieSBNSlNPTldQIGluIG9yZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IHNob3VsZFxuICAvLyByZXNwb25kIHdpdGggYW4gaW52YWxpZCBzZXNzaW9uIHJlc3BvbnNlXG4gIHNlc3Npb25FeGlzdHMgKHNlc3Npb25JZCkge1xuICAgIGlmICghc2Vzc2lvbklkKSByZXR1cm4gZmFsc2U7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcbiAgICByZXR1cm4gc2Vzc2lvbklkID09PSB0aGlzLnNlc3Npb25JZDtcbiAgfVxuXG4gIC8vIG1ldGhvZCByZXF1aXJlZCBieSBNSlNPTldQIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGUgY29tbWFuZCBzaG91bGRcbiAgLy8gYmUgcHJveGllZCBkaXJlY3RseSB0byB0aGUgZHJpdmVyXG4gIGRyaXZlckZvclNlc3Npb24gKC8qc2Vzc2lvbklkKi8pIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxvZ0V4dHJhQ2FwcyAoY2Fwcykge1xuICAgIGxldCBleHRyYUNhcHMgPSBfLmRpZmZlcmVuY2UoXy5rZXlzKGNhcHMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXy5rZXlzKHRoaXMuX2NvbnN0cmFpbnRzKSk7XG4gICAgaWYgKGV4dHJhQ2Fwcy5sZW5ndGgpIHtcbiAgICAgIGxvZy53YXJuKGBUaGUgZm9sbG93aW5nIGNhcGFiaWxpdGllcyB3ZXJlIHByb3ZpZGVkLCBidXQgYXJlIG5vdCBgICtcbiAgICAgICAgICAgICAgIGByZWNvZ25pemVkIGJ5IEFwcGl1bTpgKTtcbiAgICAgIGZvciAoY29uc3QgY2FwIG9mIGV4dHJhQ2Fwcykge1xuICAgICAgICBsb2cud2FybihgICAke2NhcH1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZURlc2lyZWRDYXBzIChjYXBzKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZhbGlkYXRlQ2Fwcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlQ2FwcyhjYXBzLCB0aGlzLl9jb25zdHJhaW50cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3cobmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKGBUaGUgZGVzaXJlZENhcGFiaWxpdGllcyBvYmplY3Qgd2FzIG5vdCB2YWxpZCBmb3IgdGhlIGAgK1xuICAgICAgICAgICAgICAgICAgICBgZm9sbG93aW5nIHJlYXNvbihzKTogJHtlLm1lc3NhZ2V9YCkpO1xuICAgIH1cblxuICAgIHRoaXMubG9nRXh0cmFDYXBzKGNhcHMpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpc01qc29ud3BQcm90b2NvbCAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdG9jb2wgPT09IFBST1RPQ09MUy5NSlNPTldQO1xuICB9XG5cbiAgaXNXM0NQcm90b2NvbCAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdG9jb2wgPT09IFBST1RPQ09MUy5XM0M7XG4gIH1cblxuICBzZXRQcm90b2NvbE1KU09OV1AgKCkge1xuICAgIHRoaXMucHJvdG9jb2wgPSBQUk9UT0NPTFMuTUpTT05XUDtcbiAgfVxuXG4gIHNldFByb3RvY29sVzNDICgpIHtcbiAgICB0aGlzLnByb3RvY29sID0gUFJPVE9DT0xTLlczQztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIHZpYSBpdHMgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIG5hbWUgb2YgZmVhdHVyZS9jb21tYW5kXG4gICAqXG4gICAqIEByZXR1cm5zIHtCb29sZWFufVxuICAgKi9cbiAgaXNGZWF0dXJlRW5hYmxlZCAobmFtZSkge1xuICAgIC8vIGlmIHdlIGhhdmUgZXhwbGljaXRseSBkZW5pZWQgdGhpcyBmZWF0dXJlLCByZXR1cm4gZmFsc2UgaW1tZWRpYXRlbHlcbiAgICBpZiAodGhpcy5kZW55SW5zZWN1cmUgJiYgXy5pbmNsdWRlcyh0aGlzLmRlbnlJbnNlY3VyZSwgbmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBzcGVjaWZpY2FsbHkgaGF2ZSBhbGxvd2VkIHRoZSBmZWF0dXJlLCByZXR1cm4gdHJ1ZVxuICAgIGlmICh0aGlzLmFsbG93SW5zZWN1cmUgJiYgXy5pbmNsdWRlcyh0aGlzLmFsbG93SW5zZWN1cmUsIG5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UsIGlmIHdlJ3ZlIGdsb2JhbGx5IGFsbG93ZWQgaW5zZWN1cmUgZmVhdHVyZXMgYW5kIG5vdCBkZW5pZWRcbiAgICAvLyB0aGlzIG9uZSwgcmV0dXJuIHRydWVcbiAgICBpZiAodGhpcy5yZWxheGVkU2VjdXJpdHlFbmFibGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlbid0IGFsbG93ZWQgYW55dGhpbmcgaW5zZWN1cmUsIHRoZW4gcmVqZWN0XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc2VydCB0aGF0IGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIGFuZCB0aHJvdyBhIGhlbHBmdWwgZXJyb3IgaWYgaXQnc1xuICAgKiBub3RcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIGZlYXR1cmUvY29tbWFuZFxuICAgKi9cbiAgZW5zdXJlRmVhdHVyZUVuYWJsZWQgKG5hbWUpIHtcbiAgICBpZiAoIXRoaXMuaXNGZWF0dXJlRW5hYmxlZChuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQb3RlbnRpYWxseSBpbnNlY3VyZSBmZWF0dXJlICcke25hbWV9JyBoYXMgbm90IGJlZW4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgYGVuYWJsZWQuIElmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUgYW5kIGFjY2VwdCBgICtcbiAgICAgICAgICAgICAgICAgICAgICBgdGhlIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMsIHBsZWFzZSBkbyBzbyBieSBmb2xsb3dpbmcgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHRoZSBkb2N1bWVudGVkIGluc3RydWN0aW9ucyBhdCBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtYCArXG4gICAgICAgICAgICAgICAgICAgICAgYC9hcHBpdW0vYmxvYi9tYXN0ZXIvZG9jcy9lbi93cml0aW5nLXJ1bm5pbmctYXBwaXVtL3NlY3VyaXR5Lm1kYCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBpcyB0aGUgbWFpbiBjb21tYW5kIGhhbmRsZXIgZm9yIHRoZSBkcml2ZXIuIEl0IHdyYXBzIGNvbW1hbmRcbiAgLy8gZXhlY3V0aW9uIHdpdGggdGltZW91dCBsb2dpYywgY2hlY2tpbmcgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgc2Vzc2lvbixcbiAgLy8gYW5kIGVuc3VyaW5nIHRoYXQgd2UgZXhlY3V0ZSBjb21tYW5kcyBvbmUgYXQgYSB0aW1lLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWRcbiAgLy8gYnkgTUpTT05XUCdzIGV4cHJlc3Mgcm91dGVyLlxuICBhc3luYyBleGVjdXRlQ29tbWFuZCAoY21kLCAuLi5hcmdzKSB7XG4gICAgLy8gZ2V0IHN0YXJ0IHRpbWUgZm9yIHRoaXMgY29tbWFuZCwgYW5kIGxvZyBpbiBzcGVjaWFsIGNhc2VzXG4gICAgbGV0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICBpZiAoY21kID09PSAnY3JlYXRlU2Vzc2lvbicpIHtcbiAgICAgIC8vIElmIGNyZWF0aW5nIGEgc2Vzc2lvbiBkZXRlcm1pbmUgaWYgVzNDIG9yIE1KU09OV1AgcHJvdG9jb2wgd2FzIHJlcXVlc3RlZCBhbmQgcmVtZW1iZXIgdGhlIGNob2ljZVxuICAgICAgdGhpcy5wcm90b2NvbCA9IGRldGVybWluZVByb3RvY29sKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5sb2dFdmVudChFVkVOVF9TRVNTSU9OX0lOSVQpO1xuICAgIH0gZWxzZSBpZiAoY21kID09PSAnZGVsZXRlU2Vzc2lvbicpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoRVZFTlRfU0VTU0lPTl9RVUlUX1NUQVJUKTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYWQgYSBjb21tYW5kIHRpbWVyIHJ1bm5pbmcsIGNsZWFyIGl0IG5vdyB0aGF0IHdlJ3JlIHN0YXJ0aW5nXG4gICAgLy8gYSBuZXcgY29tbWFuZCBhbmQgc28gZG9uJ3Qgd2FudCB0byB0aW1lIG91dFxuICAgIHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgaWYgKHRoaXMuc2h1dGRvd25VbmV4cGVjdGVkbHkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm9TdWNoRHJpdmVyRXJyb3IoJ1RoZSBkcml2ZXIgd2FzIHVuZXhwZWN0ZWRseSBzaHV0IGRvd24hJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIGNvbW1hbmQsIGl0IG11c3Qgbm90IGJlIGltcGxlbWVudGVkXG4gICAgaWYgKCF0aGlzW2NtZF0pIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIGxldCB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lcjtcbiAgICBjb25zdCBjb21tYW5kRXhlY3V0b3IgPSBhc3luYyAoKSA9PiBhd2FpdCBCLnJhY2UoW1xuICAgICAgdGhpc1tjbWRdKC4uLmFyZ3MpLFxuICAgICAgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lciA9IHJlamVjdDtcbiAgICAgICAgdGhpcy5ldmVudEVtaXR0ZXIub24oT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCwgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIpO1xuICAgICAgfSlcbiAgICBdKS5maW5hbGx5KCgpID0+IHtcbiAgICAgIGlmICh1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lcikge1xuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgICAgICB0aGlzLmV2ZW50RW1pdHRlci5yZW1vdmVMaXN0ZW5lcihPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5ULCB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lcik7XG4gICAgICAgIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZXMgPSB0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgY21kICE9PSAnZXhlY3V0ZURyaXZlclNjcmlwdCdcbiAgICAgID8gYXdhaXQgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuYWNxdWlyZShCYXNlRHJpdmVyLm5hbWUsIGNvbW1hbmRFeGVjdXRvcilcbiAgICAgIDogYXdhaXQgY29tbWFuZEV4ZWN1dG9yKCk7XG5cbiAgICAvLyBpZiB3ZSBoYXZlIHNldCBhIG5ldyBjb21tYW5kIHRpbWVvdXQgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgc3RhcnQgYVxuICAgIC8vIHRpbWVyIG9uY2Ugd2UndmUgZmluaXNoZWQgZXhlY3V0aW5nIHRoaXMgY29tbWFuZC4gSWYgd2UgZG9uJ3QgY2xlYXJcbiAgICAvLyB0aGUgdGltZXIgKHdoaWNoIGlzIGRvbmUgd2hlbiBhIG5ldyBjb21tYW5kIGNvbWVzIGluKSwgd2Ugd2lsbCB0cmlnZ2VyXG4gICAgLy8gYXV0b21hdGljIHNlc3Npb24gZGVsZXRpb24gaW4gdGhpcy5vbkNvbW1hbmRUaW1lb3V0LiBPZiBjb3Vyc2Ugd2UgZG9uJ3RcbiAgICAvLyB3YW50IHRvIHRyaWdnZXIgdGhlIHRpbWVyIHdoZW4gdGhlIHVzZXIgaXMgc2h1dHRpbmcgZG93biB0aGUgc2Vzc2lvblxuICAgIC8vIGludGVudGlvbmFsbHlcbiAgICBpZiAodGhpcy5pc0NvbW1hbmRzUXVldWVFbmFibGVkICYmIGNtZCAhPT0gJ2RlbGV0ZVNlc3Npb24nKSB7XG4gICAgICAvLyByZXNldHRpbmcgZXhpc3RpbmcgdGltZW91dFxuICAgICAgdGhpcy5zdGFydE5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gICAgfVxuXG4gICAgLy8gbG9nIHRpbWluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGNvbW1hbmRcbiAgICBjb25zdCBlbmRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9ldmVudEhpc3RvcnkuY29tbWFuZHMucHVzaCh7Y21kLCBzdGFydFRpbWUsIGVuZFRpbWV9KTtcbiAgICBpZiAoY21kID09PSAnY3JlYXRlU2Vzc2lvbicpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoRVZFTlRfU0VTU0lPTl9TVEFSVCk7XG4gICAgfSBlbHNlIGlmIChjbWQgPT09ICdkZWxldGVTZXNzaW9uJykge1xuICAgICAgdGhpcy5sb2dFdmVudChFVkVOVF9TRVNTSU9OX1FVSVRfRE9ORSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0VW5leHBlY3RlZFNodXRkb3duIChlcnIgPSBuZXcgZXJyb3JzLk5vU3VjaERyaXZlckVycm9yKCdUaGUgZHJpdmVyIHdhcyB1bmV4cGVjdGVkbHkgc2h1dCBkb3duIScpKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIuZW1pdChPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5ULCBlcnIpOyAvLyBhbGxvdyBvdGhlcnMgdG8gbGlzdGVuIGZvciB0aGlzXG4gICAgdGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbih0aGlzLnNlc3Npb25JZCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2h1dGRvd25VbmV4cGVjdGVkbHkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSAoc3RyYXRlZ3ksIHdlYkNvbnRleHQgPSBmYWxzZSkge1xuICAgIGxldCB2YWxpZFN0cmF0ZWdpZXMgPSB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzO1xuICAgIGxvZy5kZWJ1ZyhgVmFsaWQgbG9jYXRvciBzdHJhdGVnaWVzIGZvciB0aGlzIHJlcXVlc3Q6ICR7dmFsaWRTdHJhdGVnaWVzLmpvaW4oJywgJyl9YCk7XG5cbiAgICBpZiAod2ViQ29udGV4dCkge1xuICAgICAgdmFsaWRTdHJhdGVnaWVzID0gdmFsaWRTdHJhdGVnaWVzLmNvbmNhdCh0aGlzLndlYkxvY2F0b3JTdHJhdGVnaWVzKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaW5jbHVkZXModmFsaWRTdHJhdGVnaWVzLCBzdHJhdGVneSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZFNlbGVjdG9yRXJyb3IoYExvY2F0b3IgU3RyYXRlZ3kgJyR7c3RyYXRlZ3l9JyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHNlc3Npb25gKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBSZXN0YXJ0IHRoZSBzZXNzaW9uIHdpdGggdGhlIG9yaWdpbmFsIGNhcHMsXG4gICAqIHByZXNlcnZpbmcgdGhlIHRpbWVvdXQgY29uZmlnLlxuICAgKi9cbiAgYXN5bmMgcmVzZXQgKCkge1xuICAgIGxvZy5kZWJ1ZygnUmVzZXR0aW5nIGFwcCBtaWQtc2Vzc2lvbicpO1xuICAgIGxvZy5kZWJ1ZygnUnVubmluZyBnZW5lcmljIGZ1bGwgcmVzZXQnKTtcblxuICAgIC8vIHByZXNlcnZpbmcgc3RhdGVcbiAgICBsZXQgY3VycmVudENvbmZpZyA9IHt9O1xuICAgIGZvciAobGV0IHByb3BlcnR5IG9mIFsnaW1wbGljaXRXYWl0TXMnLCAnbmV3Q29tbWFuZFRpbWVvdXRNcycsICdzZXNzaW9uSWQnLCAncmVzZXRPblVuZXhwZWN0ZWRTaHV0ZG93biddKSB7XG4gICAgICBjdXJyZW50Q29uZmlnW3Byb3BlcnR5XSA9IHRoaXNbcHJvcGVydHldO1xuICAgIH1cblxuICAgIC8vIFdlIGFsc28gbmVlZCB0byBwcmVzZXJ2ZSB0aGUgdW5leHBlY3RlZCBzaHV0ZG93biwgYW5kIG1ha2Ugc3VyZSBpdCBpcyBub3QgY2FuY2VsbGVkIGR1cmluZyByZXNldC5cbiAgICB0aGlzLnJlc2V0T25VbmV4cGVjdGVkU2h1dGRvd24gPSAoKSA9PiB7fTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xuICAgICAgbG9nLmRlYnVnKCdSZXN0YXJ0aW5nIGFwcCcpO1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLm9yaWdpbmFsQ2Fwcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGFsd2F5cyByZXN0b3JlIHN0YXRlLlxuICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhjdXJyZW50Q29uZmlnKSkge1xuICAgICAgICB0aGlzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gIH1cblxuICBwcm94eUFjdGl2ZSAoLyogc2Vzc2lvbklkICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKC8qIHNlc3Npb25JZCAqLykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNhblByb3h5ICgvKiBzZXNzaW9uSWQgKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhIGdpdmVuIGNvbW1hbmQgcm91dGUgKGV4cHJlc3NlZCBhcyBtZXRob2QgYW5kIHVybCkgc2hvdWxkIG5vdCBiZVxuICAgKiBwcm94aWVkIGFjY29yZGluZyB0byB0aGlzIGRyaXZlclxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbklkIC0gdGhlIGN1cnJlbnQgc2Vzc2lvbklkIChpbiBjYXNlIHRoZSBkcml2ZXIgcnVuc1xuICAgKiBtdWx0aXBsZSBzZXNzaW9uIGlkcyBhbmQgcmVxdWlyZXMgaXQpLiBUaGlzIGlzIG5vdCB1c2VkIGluIHRoaXMgbWV0aG9kIGJ1dFxuICAgKiBzaG91bGQgYmUgbWFkZSBhdmFpbGFibGUgdG8gb3ZlcnJpZGRlbiBtZXRob2RzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gSFRUUCBtZXRob2Qgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSB7Pyp9IGJvZHkgLSB3ZWJkcml2ZXIgcmVxdWVzdCBib2R5XG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHdoZXRoZXIgdGhlIHJvdXRlIHNob3VsZCBiZSBhdm9pZGVkXG4gICAqL1xuICBwcm94eVJvdXRlSXNBdm9pZGVkIChzZXNzaW9uSWQsIG1ldGhvZCwgdXJsLyosIGJvZHkqLykge1xuICAgIGZvciAobGV0IGF2b2lkU2NoZW1hIG9mIHRoaXMuZ2V0UHJveHlBdm9pZExpc3Qoc2Vzc2lvbklkKSkge1xuICAgICAgaWYgKCFfLmlzQXJyYXkoYXZvaWRTY2hlbWEpIHx8IGF2b2lkU2NoZW1hLmxlbmd0aCAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3h5IGF2b2lkYW5jZSBtdXN0IGJlIGEgbGlzdCBvZiBwYWlycycpO1xuICAgICAgfVxuICAgICAgbGV0IFthdm9pZE1ldGhvZCwgYXZvaWRQYXRoUmVnZXhdID0gYXZvaWRTY2hlbWE7XG4gICAgICBpZiAoIV8uaW5jbHVkZXMoWydHRVQnLCAnUE9TVCcsICdERUxFVEUnXSwgYXZvaWRNZXRob2QpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHByb3h5IGF2b2lkYW5jZSBtZXRob2QgJyR7YXZvaWRNZXRob2R9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKCFfLmlzUmVnRXhwKGF2b2lkUGF0aFJlZ2V4KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3h5IGF2b2lkYW5jZSBwYXRoIG11c3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24nKTtcbiAgICAgIH1cbiAgICAgIGxldCBub3JtYWxpemVkVXJsID0gdXJsLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7Xy5lc2NhcGVSZWdFeHAodGhpcy5iYXNlUGF0aCl9YCksICcnKTtcbiAgICAgIGlmIChhdm9pZE1ldGhvZCA9PT0gbWV0aG9kICYmIGF2b2lkUGF0aFJlZ2V4LnRlc3Qobm9ybWFsaXplZFVybCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFkZE1hbmFnZWREcml2ZXIgKGRyaXZlcikge1xuICAgIHRoaXMubWFuYWdlZERyaXZlcnMucHVzaChkcml2ZXIpO1xuICB9XG5cbiAgZ2V0TWFuYWdlZERyaXZlcnMgKCkge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZWREcml2ZXJzO1xuICB9XG59XG5cbmZvciAobGV0IFtjbWQsIGZuXSBvZiBfLnRvUGFpcnMoY29tbWFuZHMpKSB7XG4gIEJhc2VEcml2ZXIucHJvdG90eXBlW2NtZF0gPSBmbjtcbn1cblxuZXhwb3J0IHsgQmFzZURyaXZlciB9O1xuZXhwb3J0IGRlZmF1bHQgQmFzZURyaXZlcjtcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvZHJpdmVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
391
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2RyaXZlci5qcyJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiQkFTRURSSVZFUl9WRVIiLCJmcyIsInJlYWRQYWNrYWdlSnNvbkZyb20iLCJfX2Rpcm5hbWUiLCJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiTkVXX0NPTU1BTkRfVElNRU9VVF9NUyIsIkVWRU5UX1NFU1NJT05fSU5JVCIsIkVWRU5UX1NFU1NJT05fU1RBUlQiLCJFVkVOVF9TRVNTSU9OX1FVSVRfU1RBUlQiLCJFVkVOVF9TRVNTSU9OX1FVSVRfRE9ORSIsIk9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQiLCJCYXNlRHJpdmVyIiwiUHJvdG9jb2wiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJzZXNzaW9uSWQiLCJjYXBzIiwib3JpZ2luYWxDYXBzIiwiaGVscGVycyIsImJhc2VQYXRoIiwiREVGQVVMVF9CQVNFX1BBVEgiLCJyZWxheGVkU2VjdXJpdHlFbmFibGVkIiwiYWxsb3dJbnNlY3VyZSIsImRlbnlJbnNlY3VyZSIsIm5ld0NvbW1hbmRUaW1lb3V0TXMiLCJpbXBsaWNpdFdhaXRNcyIsIl9jb25zdHJhaW50cyIsIl8iLCJjbG9uZURlZXAiLCJkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJ3ZWJMb2NhdG9yU3RyYXRlZ2llcyIsInRtcERpciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fVE1QX0RJUiIsIm9zIiwidG1wZGlyIiwic2h1dGRvd25VbmV4cGVjdGVkbHkiLCJub0NvbW1hbmRUaW1lciIsImNvbW1hbmRzUXVldWVHdWFyZCIsIkFzeW5jTG9jayIsInNldHRpbmdzIiwiRGV2aWNlU2V0dGluZ3MiLCJub29wIiwiaW5pdGlhbE9wdHMiLCJtYW5hZ2VkRHJpdmVycyIsIl9ldmVudEhpc3RvcnkiLCJjb21tYW5kcyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciIsInByb3RvY29sIiwib25VbmV4cGVjdGVkU2h1dGRvd24iLCJoYW5kbGVyIiwib24iLCJkcml2ZXJEYXRhIiwiaXNDb21tYW5kc1F1ZXVlRW5hYmxlZCIsImV2ZW50SGlzdG9yeSIsImxvZ0V2ZW50IiwiZXZlbnROYW1lIiwiRXJyb3IiLCJ0cyIsIkRhdGUiLCJub3ciLCJsb2dUaW1lIiwidG9UaW1lU3RyaW5nIiwicHVzaCIsImxvZyIsImRlYnVnIiwiZ2V0U3RhdHVzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiY29uc3RyYWludHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ2YWx1ZSIsInRvUGFpcnMiLCJwcmVzZW5jZSIsImFsbG93RW1wdHkiLCJzZXNzaW9uRXhpc3RzIiwiZHJpdmVyRm9yU2Vzc2lvbiIsImxvZ0V4dHJhQ2FwcyIsImV4dHJhQ2FwcyIsImRpZmZlcmVuY2UiLCJrZXlzIiwibGVuZ3RoIiwid2FybiIsImNhcCIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJtZXNzYWdlIiwiaXNNanNvbndwUHJvdG9jb2wiLCJQUk9UT0NPTFMiLCJNSlNPTldQIiwiaXNXM0NQcm90b2NvbCIsIlczQyIsInNldFByb3RvY29sTUpTT05XUCIsInNldFByb3RvY29sVzNDIiwiaXNGZWF0dXJlRW5hYmxlZCIsIm5hbWUiLCJpbmNsdWRlcyIsImVuc3VyZUZlYXR1cmVFbmFibGVkIiwiZXhlY3V0ZUNvbW1hbmQiLCJjbWQiLCJhcmdzIiwic3RhcnRUaW1lIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsIk5vU3VjaERyaXZlckVycm9yIiwiTm90WWV0SW1wbGVtZW50ZWRFcnJvciIsInVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyIiwiY29tbWFuZEV4ZWN1dG9yIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaW5hbGx5IiwicmVtb3ZlTGlzdGVuZXIiLCJyZXMiLCJhY3F1aXJlIiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsImVuZFRpbWUiLCJzdGFydFVuZXhwZWN0ZWRTaHV0ZG93biIsImVyciIsImVtaXQiLCJkZWxldGVTZXNzaW9uIiwidmFsaWRhdGVMb2NhdG9yU3RyYXRlZ3kiLCJzdHJhdGVneSIsIndlYkNvbnRleHQiLCJ2YWxpZFN0cmF0ZWdpZXMiLCJqb2luIiwiY29uY2F0IiwiSW52YWxpZFNlbGVjdG9yRXJyb3IiLCJyZXNldCIsImN1cnJlbnRDb25maWciLCJwcm9wZXJ0eSIsInJlc2V0T25VbmV4cGVjdGVkU2h1dGRvd24iLCJjcmVhdGVTZXNzaW9uIiwidW5kZWZpbmVkIiwia2V5IiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwicHJveHlSb3V0ZUlzQXZvaWRlZCIsIm1ldGhvZCIsInVybCIsImF2b2lkU2NoZW1hIiwiaXNBcnJheSIsImF2b2lkTWV0aG9kIiwiYXZvaWRQYXRoUmVnZXgiLCJpc1JlZ0V4cCIsIm5vcm1hbGl6ZWRVcmwiLCJyZXBsYWNlIiwiUmVnRXhwIiwiZXNjYXBlUmVnRXhwIiwidGVzdCIsImFkZE1hbmFnZWREcml2ZXIiLCJkcml2ZXIiLCJnZXRNYW5hZ2VkRHJpdmVycyIsImZuIiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU07QUFBQ0EsRUFBQUEsT0FBTyxFQUFFQztBQUFWLElBQTRCQyxZQUFHQyxtQkFBSCxDQUF1QkMsU0FBdkIsQ0FBbEM7O0FBRUFDLGtCQUFFQyxNQUFGLENBQVM7QUFDUEMsRUFBQUEsWUFBWSxFQUFFO0FBRFAsQ0FBVDs7QUFJQSxNQUFNQyxzQkFBc0IsR0FBRyxLQUFLLElBQXBDO0FBRUEsTUFBTUMsa0JBQWtCLEdBQUcscUJBQTNCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsbUJBQTVCO0FBQ0EsTUFB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cG9ydCB7XG4gIFByb3RvY29sLCBlcnJvcnMsIGRldGVybWluZVByb3RvY29sXG59IGZyb20gJy4uL3Byb3RvY29sJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IFBST1RPQ09MUywgREVGQVVMVF9CQVNFX1BBVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBjb21tYW5kcyBmcm9tICcuL2NvbW1hbmRzJztcbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IERldmljZVNldHRpbmdzIGZyb20gJy4vZGV2aWNlLXNldHRpbmdzJztcbmltcG9ydCB7IGRlc2lyZWRDYXBhYmlsaXR5Q29uc3RyYWludHMgfSBmcm9tICcuL2Rlc2lyZWQtY2Fwcyc7XG5pbXBvcnQgeyB2YWxpZGF0ZUNhcHMgfSBmcm9tICcuL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbi8vIGZvciBjb21wYXQgd2l0aCBydW5uaW5nIHRlc3RzIHRyYW5zcGlsZWQgYW5kIGluLXBsYWNlXG5jb25zdCB7dmVyc2lvbjogQkFTRURSSVZFUl9WRVJ9ID0gZnMucmVhZFBhY2thZ2VKc29uRnJvbShfX2Rpcm5hbWUpO1xuXG5CLmNvbmZpZyh7XG4gIGNhbmNlbGxhdGlvbjogdHJ1ZSxcbn0pO1xuXG5jb25zdCBORVdfQ09NTUFORF9USU1FT1VUX01TID0gNjAgKiAxMDAwO1xuXG5jb25zdCBFVkVOVF9TRVNTSU9OX0lOSVQgPSAnbmV3U2Vzc2lvblJlcXVlc3RlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1NUQVJUID0gJ25ld1Nlc3Npb25TdGFydGVkJztcbmNvbnN0IEVWRU5UX1NFU1NJT05fUVVJVF9TVEFSVCA9ICdxdWl0U2Vzc2lvblJlcXVlc3RlZCc7XG5jb25zdCBFVkVOVF9TRVNTSU9OX1FVSVRfRE9ORSA9ICdxdWl0U2Vzc2lvbkZpbmlzaGVkJztcbmNvbnN0IE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQgPSAnb25VbmV4cGVjdGVkU2h1dGRvd24nO1xuXG5jbGFzcyBCYXNlRHJpdmVyIGV4dGVuZHMgUHJvdG9jb2wge1xuXG4gIC8qKlxuICAgKiBNYWtlIHRoZSBiYXNlZHJpdmVyIHZlcnNpb24gYXZhaWxhYmxlIHNvIGZvciBhbnkgZHJpdmVyIHdoaWNoIGluaGVyaXRzIGZyb20gdGhpcyBwYWNrYWdlLCB3ZVxuICAgKiBrbm93IHdoaWNoIHZlcnNpb24gb2YgYmFzZWRyaXZlciBpdCBpbmhlcml0ZWQgZnJvbVxuICAgKi9cbiAgc3RhdGljIGJhc2VWZXJzaW9uID0gQkFTRURSSVZFUl9WRVI7XG5cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSwgc2hvdWxkVmFsaWRhdGVDYXBzID0gdHJ1ZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBzZXR1cCBzdGF0ZVxuICAgIHRoaXMuc2Vzc2lvbklkID0gbnVsbDtcbiAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgIHRoaXMuY2FwcyA9IG51bGw7XG4gICAgdGhpcy5vcmlnaW5hbENhcHMgPSBudWxsOyAvLyBUbyBnaXZlIHRoZSBvcmlnaW5hbCBjYXBhYmlsaXRpZXMgdG8gcmVzZXRcbiAgICB0aGlzLmhlbHBlcnMgPSBoZWxwZXJzO1xuXG4gICAgLy8gYmFzZVBhdGggaXMgdXNlZCBmb3Igc2V2ZXJhbCBwdXJwb3NlcywgZm9yIGV4YW1wbGUgaW4gc2V0dGluZyB1cFxuICAgIC8vIHByb3h5aW5nIHRvIG90aGVyIGRyaXZlcnMsIHNpbmNlIHdlIG5lZWQgdG8ga25vdyB3aGF0IHRoZSBiYXNlIHBhdGhcbiAgICAvLyBvZiBhbnkgaW5jb21pbmcgcmVxdWVzdCBtaWdodCBsb29rIGxpa2UuIFdlIHNldCBpdCB0byB0aGUgZGVmYXVsdFxuICAgIC8vIGluaXRpYWxseSBidXQgaXQgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGR1cmluZyBhbnkgYWN0dWFsIHByb2dyYW1cbiAgICAvLyBleGVjdXRpb24gYnkgdGhlIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJpbHkgcnVuIGFzXG4gICAgLy8gdGhlIGVudHJ5cG9pbnQgZm9yIGFueSBBcHBpdW0gc2VydmVyXG4gICAgdGhpcy5iYXNlUGF0aCA9IERFRkFVTFRfQkFTRV9QQVRIO1xuXG4gICAgLy8gaW5pdGlhbGl6ZSBzZWN1cml0eSBtb2Rlc1xuICAgIHRoaXMucmVsYXhlZFNlY3VyaXR5RW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuYWxsb3dJbnNlY3VyZSA9IFtdO1xuICAgIHRoaXMuZGVueUluc2VjdXJlID0gW107XG5cbiAgICAvLyB0aW1lb3V0IGluaXRpYWxpemF0aW9uXG4gICAgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zID0gTkVXX0NPTU1BTkRfVElNRU9VVF9NUztcbiAgICB0aGlzLmltcGxpY2l0V2FpdE1zID0gMDtcblxuICAgIHRoaXMuX2NvbnN0cmFpbnRzID0gXy5jbG9uZURlZXAoZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyk7XG4gICAgdGhpcy5sb2NhdG9yU3RyYXRlZ2llcyA9IFtdO1xuICAgIHRoaXMud2ViTG9jYXRvclN0cmF0ZWdpZXMgPSBbXTtcblxuICAgIC8vIHVzZSBhIGN1c3RvbSB0bXAgZGlyIHRvIGF2b2lkIGxvc2luZyBkYXRhIGFuZCBhcHAgd2hlbiBjb21wdXRlciBpc1xuICAgIC8vIHJlc3RhcnRlZFxuICAgIHRoaXMub3B0cy50bXBEaXIgPSB0aGlzLm9wdHMudG1wRGlyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSIHx8XG4gICAgICAgICAgICAgICAgICAgICAgIG9zLnRtcGRpcigpO1xuXG4gICAgLy8gYmFzZS1kcml2ZXIgaW50ZXJuYWxzXG4gICAgdGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSA9IGZhbHNlO1xuICAgIHRoaXMubm9Db21tYW5kVGltZXIgPSBudWxsO1xuICAgIHRoaXMuc2hvdWxkVmFsaWRhdGVDYXBzID0gc2hvdWxkVmFsaWRhdGVDYXBzO1xuICAgIHRoaXMuY29tbWFuZHNRdWV1ZUd1YXJkID0gbmV3IEFzeW5jTG9jaygpO1xuXG4gICAgLy8gc2V0dGluZ3Mgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCBieSBkcml2ZXJzIHdoaWNoIGV4dGVuZCBCYXNlRHJpdmVyLCBidXRcbiAgICAvLyB3ZSBzZXQgaXQgdG8gYW4gZW1wdHkgRGV2aWNlU2V0dGluZ3MgaW5zdGFuY2UgaGVyZSB0byBtYWtlIHN1cmUgdGhhdCB0aGVcbiAgICAvLyBkZWZhdWx0IHNldHRpbmdzIGFyZSBhcHBsaWVkIGV2ZW4gaWYgYW4gZXh0ZW5kaW5nIGRyaXZlciBkb2Vzbid0IHV0aWxpemVcbiAgICAvLyB0aGUgc2V0dGluZ3MgZnVuY3Rpb25hbGl0eSBpdHNlbGZcbiAgICB0aGlzLnNldHRpbmdzID0gbmV3IERldmljZVNldHRpbmdzKHt9LCBfLm5vb3ApO1xuXG4gICAgLy8ga2VlcGluZyB0cmFjayBvZiBpbml0aWFsIG9wdHNcbiAgICB0aGlzLmluaXRpYWxPcHRzID0gXy5jbG9uZURlZXAodGhpcy5vcHRzKTtcblxuICAgIC8vIGFsbG93IHN1YmNsYXNzZXMgdG8gaGF2ZSBpbnRlcm5hbCBkcml2ZXJzXG4gICAgdGhpcy5tYW5hZ2VkRHJpdmVycyA9IFtdO1xuXG4gICAgLy8gc3RvcmUgZXZlbnQgdGltaW5nc1xuICAgIHRoaXMuX2V2ZW50SGlzdG9yeSA9IHtcbiAgICAgIGNvbW1hbmRzOiBbXSAvLyBjb21tYW5kcyBnZXQgYSBzcGVjaWFsIHBsYWNlXG4gICAgfTtcblxuICAgIC8vIHVzZWQgdG8gaGFuZGxlIGRyaXZlciBldmVudHNcbiAgICB0aGlzLmV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHRoaXMucHJvdG9jb2wgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGNhbGxiYWNrIGhhbmRsZXIgaWYgbmVlZGVkIHRvIGV4ZWN1dGUgYSBjdXN0b20gcGllY2Ugb2YgY29kZVxuICAgKiB3aGVuIHRoZSBkcml2ZXIgaXMgc2h1dCBkb3duIHVuZXhwZWN0ZWRseS4gTXVsdGlwbGUgY2FsbHMgdG8gdGhpcyBtZXRob2RcbiAgICogd2lsbCBjYXVzZSB0aGUgaGFuZGxlciB0byBiZSBleGVjdXRlZCBtdXRpcGxlIHRpbWVzXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXIgVGhlIGNvZGUgdG8gYmUgZXhlY3V0ZWQgb24gdW5leHBlY3RlZCBzaHV0ZG93bi5cbiAgICogVGhlIGZ1bmN0aW9uIG1heSBhY2NlcHQgb25lIGFyZ3VtZW50LCB3aGljaCBpcyB0aGUgYWN0dWFsIGVycm9yIGluc3RhbmNlLCB3aGljaFxuICAgKiBjYXVzZWQgdGhlIGRyaXZlciB0byBzaHV0IGRvd24uXG4gICAqL1xuICBvblVuZXhwZWN0ZWRTaHV0ZG93biAoaGFuZGxlcikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLm9uKE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCBieSBBcHBpdW1Ecml2ZXIgdG8gc3RvcmUgdGhlIGRhdGEgb2YgdGhlXG4gICAqIHNwZWNpZmljIGRyaXZlciBzZXNzaW9ucy4gVGhpcyBkYXRhIGNhbiBiZSBsYXRlciB1c2VkIHRvIGFkanVzdFxuICAgKiBwcm9wZXJ0aWVzIGZvciBkcml2ZXIgaW5zdGFuY2VzIHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG4gICAqIE92ZXJyaWRlIGl0IGluIGluaGVyaXRlZCBkcml2ZXIgY2xhc3NlcyBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH0gRHJpdmVyIHByb3BlcnRpZXMgbWFwcGluZ1xuICAgKi9cbiAgZ2V0IGRyaXZlckRhdGEgKCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSB3YXkgeyNleGVjdXRlQ29tbWFuZH0gbWV0aG9kXG4gICAqIGhhbmRsZXMgbmV3IGRyaXZlciBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQuXG4gICAqIE92ZXJyaWRlIGl0IGZvciBpbmhlcml0ZWQgY2xhc3NlcyBvbmx5IGluIHNwZWNpYWwgY2FzZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyB0cnVlIChkZWZhdWx0KSB0aGVuIGFsbCB0aGUgY29tbWFuZHNcbiAgICogICByZWNlaXZlZCBieSB0aGUgcGFydGljdWxhciBkcml2ZXIgaW5zdGFuY2UgYXJlIGdvaW5nIHRvIGJlIHB1dCBpbnRvIHRoZSBxdWV1ZSxcbiAgICogICBzbyBlYWNoIGZvbGxvd2luZyBjb21tYW5kIHdpbGwgbm90IGJlIGV4ZWN1dGVkIHVudGlsIHRoZSBwcmV2aW91cyBjb21tYW5kXG4gICAqICAgZXhlY3V0aW9uIGlzIGNvbXBsZXRlZC4gRmFsc2UgdmFsdWUgZGlzYWJsZXMgdGhhdCBxdWV1ZSwgc28gZWFjaCBkcml2ZXIgY29tbWFuZFxuICAgKiAgIGlzIGV4ZWN1dGVkIGluZGVwZW5kZW50bHkgYW5kIGRvZXMgbm90IHdhaXQgZm9yIGFueXRoaW5nLlxuICAgKi9cbiAgZ2V0IGlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLypcbiAgICogbWFrZSBldmVudEhpc3RvcnkgYSBwcm9wZXJ0eSBhbmQgcmV0dXJuIGEgY2xvbmVkIG9iamVjdCBzbyBhIGNvbnN1bWVyIGNhbid0XG4gICAqIGluYWR2ZXJ0ZW50bHkgY2hhbmdlIGRhdGEgb3V0c2lkZSBvZiBsb2dFdmVudFxuICAgKi9cbiAgZ2V0IGV2ZW50SGlzdG9yeSAoKSB7XG4gICAgcmV0dXJuIF8uY2xvbmVEZWVwKHRoaXMuX2V2ZW50SGlzdG9yeSk7XG4gIH1cblxuICAvKlxuICAgKiBBUEkgbWV0aG9kIGZvciBkcml2ZXIgZGV2ZWxvcGVycyB0byBsb2cgdGltaW5ncyBmb3IgaW1wb3J0YW50IGV2ZW50c1xuICAgKi9cbiAgbG9nRXZlbnQgKGV2ZW50TmFtZSkge1xuICAgIGlmIChldmVudE5hbWUgPT09ICdjb21tYW5kcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGxvZyBjb21tYW5kcyBkaXJlY3RseScpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGV2ZW50TmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBldmVudE5hbWUgJHtldmVudE5hbWV9YCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fZXZlbnRIaXN0b3J5W2V2ZW50TmFtZV0pIHtcbiAgICAgIHRoaXMuX2V2ZW50SGlzdG9yeVtldmVudE5hbWVdID0gW107XG4gICAgfVxuICAgIGNvbnN0IHRzID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBsb2dUaW1lID0gKG5ldyBEYXRlKHRzKSkudG9UaW1lU3RyaW5nKCk7XG4gICAgdGhpcy5fZXZlbnRIaXN0b3J5W2V2ZW50TmFtZV0ucHVzaCh0cyk7XG4gICAgbG9nLmRlYnVnKGBFdmVudCAnJHtldmVudE5hbWV9JyBsb2dnZWQgYXQgJHt0c30gKCR7bG9nVGltZX0pYCk7XG4gIH1cblxuICAvKlxuICAgKiBPdmVycmlkZGVuIGluIGFwcGl1bSBkcml2ZXIsIGJ1dCBoZXJlIHNvIHRoYXQgaW5kaXZpZHVhbCBkcml2ZXJzIGNhbiBiZVxuICAgKiB0ZXN0ZWQgd2l0aCBjbGllbnRzIHRoYXQgcG9sbFxuICAgKi9cbiAgYXN5bmMgZ2V0U3RhdHVzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gd2Ugb25seSB3YW50IHN1YmNsYXNzZXMgdG8gZXZlciBleHRlbmQgdGhlIGNvbnRyYWludHNcbiAgc2V0IGRlc2lyZWRDYXBDb25zdHJhaW50cyAoY29uc3RyYWludHMpIHtcbiAgICB0aGlzLl9jb25zdHJhaW50cyA9IE9iamVjdC5hc3NpZ24odGhpcy5fY29uc3RyYWludHMsIGNvbnN0cmFpbnRzKTtcbiAgICAvLyAncHJlc2VuY2UnIG1lYW5zIGRpZmZlcmVudCB0aGluZ3MgaW4gZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSB2YWxpZGF0b3IsXG4gICAgLy8gd2hlbiB3ZSBzYXkgJ3RydWUnIHdlIG1lYW4gdGhhdCBpdCBzaG91bGQgbm90IGJlIGFibGUgdG8gYmUgZW1wdHlcbiAgICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBfLnRvUGFpcnModGhpcy5fY29uc3RyYWludHMpKSB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUucHJlc2VuY2UgPT09IHRydWUpIHtcbiAgICAgICAgdmFsdWUucHJlc2VuY2UgPSB7XG4gICAgICAgICAgYWxsb3dFbXB0eTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRlc2lyZWRDYXBDb25zdHJhaW50cyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnN0cmFpbnRzO1xuICB9XG5cbiAgLy8gbWV0aG9kIHJlcXVpcmVkIGJ5IE1KU09OV1AgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgc2hvdWxkXG4gIC8vIHJlc3BvbmQgd2l0aCBhbiBpbnZhbGlkIHNlc3Npb24gcmVzcG9uc2VcbiAgc2Vzc2lvbkV4aXN0cyAoc2Vzc2lvbklkKSB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHJldHVybiBmYWxzZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuICAgIHJldHVybiBzZXNzaW9uSWQgPT09IHRoaXMuc2Vzc2lvbklkO1xuICB9XG5cbiAgLy8gbWV0aG9kIHJlcXVpcmVkIGJ5IE1KU09OV1AgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb21tYW5kIHNob3VsZFxuICAvLyBiZSBwcm94aWVkIGRpcmVjdGx5IHRvIHRoZSBkcml2ZXJcbiAgZHJpdmVyRm9yU2Vzc2lvbiAoLypzZXNzaW9uSWQqLykge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9nRXh0cmFDYXBzIChjYXBzKSB7XG4gICAgbGV0IGV4dHJhQ2FwcyA9IF8uZGlmZmVyZW5jZShfLmtleXMoY2FwcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmtleXModGhpcy5fY29uc3RyYWludHMpKTtcbiAgICBpZiAoZXh0cmFDYXBzLmxlbmd0aCkge1xuICAgICAgbG9nLndhcm4oYFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIHdlcmUgcHJvdmlkZWQsIGJ1dCBhcmUgbm90IGAgK1xuICAgICAgICAgICAgICAgYHJlY29nbml6ZWQgYnkgQXBwaXVtOmApO1xuICAgICAgZm9yIChjb25zdCBjYXAgb2YgZXh0cmFDYXBzKSB7XG4gICAgICAgIGxvZy53YXJuKGAgICR7Y2FwfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlRGVzaXJlZENhcHMgKGNhcHMpIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkVmFsaWRhdGVDYXBzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVDYXBzKGNhcHMsIHRoaXMuX2NvbnN0cmFpbnRzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoYFRoZSBkZXNpcmVkQ2FwYWJpbGl0aWVzIG9iamVjdCB3YXMgbm90IHZhbGlkIGZvciB0aGUgYCArXG4gICAgICAgICAgICAgICAgICAgIGBmb2xsb3dpbmcgcmVhc29uKHMpOiAke2UubWVzc2FnZX1gKSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dFeHRyYUNhcHMoY2Fwcyk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzTWpzb253cFByb3RvY29sICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1A7XG4gIH1cblxuICBpc1czQ1Byb3RvY29sICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm90b2NvbCA9PT0gUFJPVE9DT0xTLlczQztcbiAgfVxuXG4gIHNldFByb3RvY29sTUpTT05XUCAoKSB7XG4gICAgdGhpcy5wcm90b2NvbCA9IFBST1RPQ09MUy5NSlNPTldQO1xuICB9XG5cbiAgc2V0UHJvdG9jb2xXM0MgKCkge1xuICAgIHRoaXMucHJvdG9jb2wgPSBQUk9UT0NPTFMuVzNDO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBnaXZlbiBmZWF0dXJlIGlzIGVuYWJsZWQgdmlhIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gbmFtZSBvZiBmZWF0dXJlL2NvbW1hbmRcbiAgICpcbiAgICogQHJldHVybnMge0Jvb2xlYW59XG4gICAqL1xuICBpc0ZlYXR1cmVFbmFibGVkIChuYW1lKSB7XG4gICAgLy8gaWYgd2UgaGF2ZSBleHBsaWNpdGx5IGRlbmllZCB0aGlzIGZlYXR1cmUsIHJldHVybiBmYWxzZSBpbW1lZGlhdGVseVxuICAgIGlmICh0aGlzLmRlbnlJbnNlY3VyZSAmJiBfLmluY2x1ZGVzKHRoaXMuZGVueUluc2VjdXJlLCBuYW1lKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIHNwZWNpZmljYWxseSBoYXZlIGFsbG93ZWQgdGhlIGZlYXR1cmUsIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMuYWxsb3dJbnNlY3VyZSAmJiBfLmluY2x1ZGVzKHRoaXMuYWxsb3dJbnNlY3VyZSwgbmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSwgaWYgd2UndmUgZ2xvYmFsbHkgYWxsb3dlZCBpbnNlY3VyZSBmZWF0dXJlcyBhbmQgbm90IGRlbmllZFxuICAgIC8vIHRoaXMgb25lLCByZXR1cm4gdHJ1ZVxuICAgIGlmICh0aGlzLnJlbGF4ZWRTZWN1cml0eUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmVuJ3QgYWxsb3dlZCBhbnl0aGluZyBpbnNlY3VyZSwgdGhlbiByZWplY3RcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQXNzZXJ0IHRoYXQgYSBnaXZlbiBmZWF0dXJlIGlzIGVuYWJsZWQgYW5kIHRocm93IGEgaGVscGZ1bCBlcnJvciBpZiBpdCdzXG4gICAqIG5vdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIG5hbWUgb2YgZmVhdHVyZS9jb21tYW5kXG4gICAqL1xuICBlbnN1cmVGZWF0dXJlRW5hYmxlZCAobmFtZSkge1xuICAgIGlmICghdGhpcy5pc0ZlYXR1cmVFbmFibGVkKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBvdGVudGlhbGx5IGluc2VjdXJlIGZlYXR1cmUgJyR7bmFtZX0nIGhhcyBub3QgYmVlbiBgICtcbiAgICAgICAgICAgICAgICAgICAgICBgZW5hYmxlZC4gSWYgeW91IHdhbnQgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZSBhbmQgYWNjZXB0IGAgK1xuICAgICAgICAgICAgICAgICAgICAgIGB0aGUgc2VjdXJpdHkgcmFtaWZpY2F0aW9ucywgcGxlYXNlIGRvIHNvIGJ5IGZvbGxvd2luZyBgICtcbiAgICAgICAgICAgICAgICAgICAgICBgdGhlIGRvY3VtZW50ZWQgaW5zdHJ1Y3Rpb25zIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW1gICtcbiAgICAgICAgICAgICAgICAgICAgICBgL2FwcGl1bS9ibG9iL21hc3Rlci9kb2NzL2VuL3dyaXRpbmctcnVubmluZy1hcHBpdW0vc2VjdXJpdHkubWRgKTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIGlzIHRoZSBtYWluIGNvbW1hbmQgaGFuZGxlciBmb3IgdGhlIGRyaXZlci4gSXQgd3JhcHMgY29tbWFuZFxuICAvLyBleGVjdXRpb24gd2l0aCB0aW1lb3V0IGxvZ2ljLCBjaGVja2luZyB0aGF0IHdlIGhhdmUgYSB2YWxpZCBzZXNzaW9uLFxuICAvLyBhbmQgZW5zdXJpbmcgdGhhdCB3ZSBleGVjdXRlIGNvbW1hbmRzIG9uZSBhdCBhIHRpbWUuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZFxuICAvLyBieSBNSlNPTldQJ3MgZXhwcmVzcyByb3V0ZXIuXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kIChjbWQsIC4uLmFyZ3MpIHtcbiAgICAvLyBnZXQgc3RhcnQgdGltZSBmb3IgdGhpcyBjb21tYW5kLCBhbmQgbG9nIGluIHNwZWNpYWwgY2FzZXNcbiAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjbWQgPT09ICdjcmVhdGVTZXNzaW9uJykge1xuICAgICAgLy8gSWYgY3JlYXRpbmcgYSBzZXNzaW9uIGRldGVybWluZSBpZiBXM0Mgb3IgTUpTT05XUCBwcm90b2NvbCB3YXMgcmVxdWVzdGVkIGFuZCByZW1lbWJlciB0aGUgY2hvaWNlXG4gICAgICB0aGlzLnByb3RvY29sID0gZGV0ZXJtaW5lUHJvdG9jb2woLi4uYXJncyk7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fSU5JVCk7XG4gICAgfSBlbHNlIGlmIChjbWQgPT09ICdkZWxldGVTZXNzaW9uJykge1xuICAgICAgdGhpcy5sb2dFdmVudChFVkVOVF9TRVNTSU9OX1FVSVRfU1RBUlQpO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhZCBhIGNvbW1hbmQgdGltZXIgcnVubmluZywgY2xlYXIgaXQgbm93IHRoYXQgd2UncmUgc3RhcnRpbmdcbiAgICAvLyBhIG5ldyBjb21tYW5kIGFuZCBzbyBkb24ndCB3YW50IHRvIHRpbWUgb3V0XG4gICAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICBpZiAodGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hEcml2ZXJFcnJvcignVGhlIGRyaXZlciB3YXMgdW5leHBlY3RlZGx5IHNodXQgZG93biEnKTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHRoaXMgY29tbWFuZCwgaXQgbXVzdCBub3QgYmUgaW1wbGVtZW50ZWRcbiAgICBpZiAoIXRoaXNbY21kXSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RZZXRJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgbGV0IHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyO1xuICAgIGNvbnN0IGNvbW1hbmRFeGVjdXRvciA9IGFzeW5jICgpID0+IGF3YWl0IEIucmFjZShbXG4gICAgICB0aGlzW2NtZF0oLi4uYXJncyksXG4gICAgICBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyID0gcmVqZWN0O1xuICAgICAgICB0aGlzLmV2ZW50RW1pdHRlci5vbihPTl9VTkVYUEVDVEVEX1NIVVRET1dOX0VWRU5ULCB1bmV4cGVjdGVkU2h1dGRvd25MaXN0ZW5lcik7XG4gICAgICB9KVxuICAgIF0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgaWYgKHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gICAgICAgIHRoaXMuZXZlbnRFbWl0dGVyLnJlbW92ZUxpc3RlbmVyKE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQsIHVuZXhwZWN0ZWRTaHV0ZG93bkxpc3RlbmVyKTtcbiAgICAgICAgdW5leHBlY3RlZFNodXRkb3duTGlzdGVuZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuaXNDb21tYW5kc1F1ZXVlRW5hYmxlZFxuICAgICAgPyBhd2FpdCB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5hY3F1aXJlKEJhc2VEcml2ZXIubmFtZSwgY29tbWFuZEV4ZWN1dG9yKVxuICAgICAgOiBhd2FpdCBjb21tYW5kRXhlY3V0b3IoKTtcblxuICAgIC8vIGlmIHdlIGhhdmUgc2V0IGEgbmV3IGNvbW1hbmQgdGltZW91dCAod2hpY2ggaXMgdGhlIGRlZmF1bHQpLCBzdGFydCBhXG4gICAgLy8gdGltZXIgb25jZSB3ZSd2ZSBmaW5pc2hlZCBleGVjdXRpbmcgdGhpcyBjb21tYW5kLiBJZiB3ZSBkb24ndCBjbGVhclxuICAgIC8vIHRoZSB0aW1lciAod2hpY2ggaXMgZG9uZSB3aGVuIGEgbmV3IGNvbW1hbmQgY29tZXMgaW4pLCB3ZSB3aWxsIHRyaWdnZXJcbiAgICAvLyBhdXRvbWF0aWMgc2Vzc2lvbiBkZWxldGlvbiBpbiB0aGlzLm9uQ29tbWFuZFRpbWVvdXQuIE9mIGNvdXJzZSB3ZSBkb24ndFxuICAgIC8vIHdhbnQgdG8gdHJpZ2dlciB0aGUgdGltZXIgd2hlbiB0aGUgdXNlciBpcyBzaHV0dGluZyBkb3duIHRoZSBzZXNzaW9uXG4gICAgLy8gaW50ZW50aW9uYWxseVxuICAgIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgY21kICE9PSAnZGVsZXRlU2Vzc2lvbicpIHtcbiAgICAgIC8vIHJlc2V0dGluZyBleGlzdGluZyB0aW1lb3V0XG4gICAgICB0aGlzLnN0YXJ0TmV3Q29tbWFuZFRpbWVvdXQoKTtcbiAgICB9XG5cbiAgICAvLyBsb2cgdGltaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgY29tbWFuZFxuICAgIGNvbnN0IGVuZFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMuX2V2ZW50SGlzdG9yeS5jb21tYW5kcy5wdXNoKHtjbWQsIHN0YXJ0VGltZSwgZW5kVGltZX0pO1xuICAgIGlmIChjbWQgPT09ICdjcmVhdGVTZXNzaW9uJykge1xuICAgICAgdGhpcy5sb2dFdmVudChFVkVOVF9TRVNTSU9OX1NUQVJUKTtcbiAgICB9IGVsc2UgaWYgKGNtZCA9PT0gJ2RlbGV0ZVNlc3Npb24nKSB7XG4gICAgICB0aGlzLmxvZ0V2ZW50KEVWRU5UX1NFU1NJT05fUVVJVF9ET05FKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRVbmV4cGVjdGVkU2h1dGRvd24gKGVyciA9IG5ldyBlcnJvcnMuTm9TdWNoRHJpdmVyRXJyb3IoJ1RoZSBkcml2ZXIgd2FzIHVuZXhwZWN0ZWRseSBzaHV0IGRvd24hJykpIHtcbiAgICB0aGlzLmV2ZW50RW1pdHRlci5lbWl0KE9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQsIGVycik7IC8vIGFsbG93IG90aGVycyB0byBsaXN0ZW4gZm9yIHRoaXNcbiAgICB0aGlzLnNodXRkb3duVW5leHBlY3RlZGx5ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kZWxldGVTZXNzaW9uKHRoaXMuc2Vzc2lvbklkKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zaHV0ZG93blVuZXhwZWN0ZWRseSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlTG9jYXRvclN0cmF0ZWd5IChzdHJhdGVneSwgd2ViQ29udGV4dCA9IGZhbHNlKSB7XG4gICAgbGV0IHZhbGlkU3RyYXRlZ2llcyA9IHRoaXMubG9jYXRvclN0cmF0ZWdpZXM7XG4gICAgbG9nLmRlYnVnKGBWYWxpZCBsb2NhdG9yIHN0cmF0ZWdpZXMgZm9yIHRoaXMgcmVxdWVzdDogJHt2YWxpZFN0cmF0ZWdpZXMuam9pbignLCAnKX1gKTtcblxuICAgIGlmICh3ZWJDb250ZXh0KSB7XG4gICAgICB2YWxpZFN0cmF0ZWdpZXMgPSB2YWxpZFN0cmF0ZWdpZXMuY29uY2F0KHRoaXMud2ViTG9jYXRvclN0cmF0ZWdpZXMpO1xuICAgIH1cblxuICAgIGlmICghXy5pbmNsdWRlcyh2YWxpZFN0cmF0ZWdpZXMsIHN0cmF0ZWd5KSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkU2VsZWN0b3JFcnJvcihgTG9jYXRvciBTdHJhdGVneSAnJHtzdHJhdGVneX0nIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgc2Vzc2lvbmApO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIFJlc3RhcnQgdGhlIHNlc3Npb24gd2l0aCB0aGUgb3JpZ2luYWwgY2FwcyxcbiAgICogcHJlc2VydmluZyB0aGUgdGltZW91dCBjb25maWcuXG4gICAqL1xuICBhc3luYyByZXNldCAoKSB7XG4gICAgbG9nLmRlYnVnKCdSZXNldHRpbmcgYXBwIG1pZC1zZXNzaW9uJyk7XG4gICAgbG9nLmRlYnVnKCdSdW5uaW5nIGdlbmVyaWMgZnVsbCByZXNldCcpO1xuXG4gICAgLy8gcHJlc2VydmluZyBzdGF0ZVxuICAgIGxldCBjdXJyZW50Q29uZmlnID0ge307XG4gICAgZm9yIChsZXQgcHJvcGVydHkgb2YgWydpbXBsaWNpdFdhaXRNcycsICduZXdDb21tYW5kVGltZW91dE1zJywgJ3Nlc3Npb25JZCcsICdyZXNldE9uVW5leHBlY3RlZFNodXRkb3duJ10pIHtcbiAgICAgIGN1cnJlbnRDb25maWdbcHJvcGVydHldID0gdGhpc1twcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgLy8gV2UgYWxzbyBuZWVkIHRvIHByZXNlcnZlIHRoZSB1bmV4cGVjdGVkIHNodXRkb3duLCBhbmQgbWFrZSBzdXJlIGl0IGlzIG5vdCBjYW5jZWxsZWQgZHVyaW5nIHJlc2V0LlxuICAgIHRoaXMucmVzZXRPblVuZXhwZWN0ZWRTaHV0ZG93biA9ICgpID0+IHt9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbih0aGlzLnNlc3Npb25JZCk7XG4gICAgICBsb2cuZGVidWcoJ1Jlc3RhcnRpbmcgYXBwJyk7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb24odW5kZWZpbmVkLCB1bmRlZmluZWQsIHRoaXMub3JpZ2luYWxDYXBzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gYWx3YXlzIHJlc3RvcmUgc3RhdGUuXG4gICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGN1cnJlbnRDb25maWcpKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQoKTtcbiAgfVxuXG4gIHByb3h5QWN0aXZlICgvKiBzZXNzaW9uSWQgKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRQcm94eUF2b2lkTGlzdCAoLyogc2Vzc2lvbklkICovKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY2FuUHJveHkgKC8qIHNlc3Npb25JZCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZ2l2ZW4gY29tbWFuZCByb3V0ZSAoZXhwcmVzc2VkIGFzIG1ldGhvZCBhbmQgdXJsKSBzaG91bGQgbm90IGJlXG4gICAqIHByb3hpZWQgYWNjb3JkaW5nIHRvIHRoaXMgZHJpdmVyXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXNzaW9uSWQgLSB0aGUgY3VycmVudCBzZXNzaW9uSWQgKGluIGNhc2UgdGhlIGRyaXZlciBydW5zXG4gICAqIG11bHRpcGxlIHNlc3Npb24gaWRzIGFuZCByZXF1aXJlcyBpdCkuIFRoaXMgaXMgbm90IHVzZWQgaW4gdGhpcyBtZXRob2QgYnV0XG4gICAqIHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZSB0byBvdmVycmlkZGVuIG1ldGhvZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgLSBIVFRQIG1ldGhvZCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBvZiB0aGUgcm91dGVcbiAgICogQHBhcmFtIHs/Kn0gYm9keSAtIHdlYmRyaXZlciByZXF1ZXN0IGJvZHlcbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gd2hldGhlciB0aGUgcm91dGUgc2hvdWxkIGJlIGF2b2lkZWRcbiAgICovXG4gIHByb3h5Um91dGVJc0F2b2lkZWQgKHNlc3Npb25JZCwgbWV0aG9kLCB1cmwvKiwgYm9keSovKSB7XG4gICAgZm9yIChsZXQgYXZvaWRTY2hlbWEgb2YgdGhpcy5nZXRQcm94eUF2b2lkTGlzdChzZXNzaW9uSWQpKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheShhdm9pZFNjaGVtYSkgfHwgYXZvaWRTY2hlbWEubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUHJveHkgYXZvaWRhbmNlIG11c3QgYmUgYSBsaXN0IG9mIHBhaXJzJyk7XG4gICAgICB9XG4gICAgICBsZXQgW2F2b2lkTWV0aG9kLCBhdm9pZFBhdGhSZWdleF0gPSBhdm9pZFNjaGVtYTtcbiAgICAgIGlmICghXy5pbmNsdWRlcyhbJ0dFVCcsICdQT1NUJywgJ0RFTEVURSddLCBhdm9pZE1ldGhvZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgcHJveHkgYXZvaWRhbmNlIG1ldGhvZCAnJHthdm9pZE1ldGhvZH0nYCk7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNSZWdFeHAoYXZvaWRQYXRoUmVnZXgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUHJveHkgYXZvaWRhbmNlIHBhdGggbXVzdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbicpO1xuICAgICAgfVxuICAgICAgbGV0IG5vcm1hbGl6ZWRVcmwgPSB1cmwucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cCh0aGlzLmJhc2VQYXRoKX1gKSwgJycpO1xuICAgICAgaWYgKGF2b2lkTWV0aG9kID09PSBtZXRob2QgJiYgYXZvaWRQYXRoUmVnZXgudGVzdChub3JtYWxpemVkVXJsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYWRkTWFuYWdlZERyaXZlciAoZHJpdmVyKSB7XG4gICAgdGhpcy5tYW5hZ2VkRHJpdmVycy5wdXNoKGRyaXZlcik7XG4gIH1cblxuICBnZXRNYW5hZ2VkRHJpdmVycyAoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFuYWdlZERyaXZlcnM7XG4gIH1cbn1cblxuZm9yIChsZXQgW2NtZCwgZm5dIG9mIF8udG9QYWlycyhjb21tYW5kcykpIHtcbiAgQmFzZURyaXZlci5wcm90b3R5cGVbY21kXSA9IGZuO1xufVxuXG5leHBvcnQgeyBCYXNlRHJpdmVyIH07XG5leHBvcnQgZGVmYXVsdCBCYXNlRHJpdmVyO1xuIl0sImZpbGUiOiJsaWIvYmFzZWRyaXZlci9kcml2ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -1023,15 +1023,6 @@ const METHOD_MAP = {
1023
1023
  }
1024
1024
  }
1025
1025
  },
1026
- '/session/:sessionId/appium/execute_driver': {
1027
- POST: {
1028
- command: 'executeDriverScript',
1029
- payloadParams: {
1030
- required: ['script'],
1031
- optional: ['type', 'timeout']
1032
- }
1033
- }
1034
- },
1035
1026
  '/session/:sessionId/appium/events': {
1036
1027
  POST: {
1037
1028
  command: 'getLogEvents',
@@ -1273,4 +1264,4 @@ const NO_SESSION_ID_COMMANDS = ['createSession', 'getStatus', 'getSessions'];
1273
1264
  exports.NO_SESSION_ID_COMMANDS = NO_SESSION_ID_COMMANDS;require('source-map-support').install();
1274
1265
 
1275
1266
 
1276
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wcm90b2NvbC9yb3V0ZXMuanMiXSwibmFtZXMiOlsiU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMiLCJ2YWxpZGF0ZSIsImpzb25PYmoiLCJ1dGlsIiwiaGFzVmFsdWUiLCJ2YWx1ZSIsInRleHQiLCJvcHRpb25hbCIsIm1ha2VBcmdzIiwiTUVUSE9EX01BUCIsIkdFVCIsImNvbW1hbmQiLCJQT1NUIiwicGF5bG9hZFBhcmFtcyIsImNhcGFiaWxpdGllcyIsImRlc2lyZWRDYXBhYmlsaXRpZXMiLCJERUxFVEUiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSw2QkFBNkIsR0FBRztBQUNwQ0MsRUFBQUEsUUFBUSxFQUFHQyxPQUFELElBQWMsQ0FB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QVMsQ0FBQ3ZELE9BQWQsRUFBdUI7QUFDckIsYUFBT3VELFNBQVMsQ0FBQ3ZELE9BQWpCO0FBQ0Q7QUFDRjtBQUNGOztBQUdELE1BQU13RCxzQkFBc0IsR0FBRyxDQUFDLGVBQUQsRUFBa0IsV0FBbEIsRUFBK0IsYUFBL0IsQ0FBL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkpICYmXG4gICAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8vIGRlZmluZSB0aGUgcm91dGVzLCBtYXBwaW5nIG9mIEhUVFAgbWV0aG9kcyB0byBwYXJ0aWN1bGFyIGRyaXZlciBjb21tYW5kcyxcbi8vIGFuZCBhbnkgcGFyYW1ldGVycyB0aGF0IGFyZSBleHBlY3RlZCBpbiBhIHJlcXVlc3Rcbi8vIHBhcmFtZXRlcnMgY2FuIGJlIGByZXF1aXJlZGAgb3IgYG9wdGlvbmFsYFxuY29uc3QgTUVUSE9EX01BUCA9IHtcbiAgJy9zdGF0dXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFN0YXR1cyd9XG4gIH0sXG4gICcvc2Vzc2lvbic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZVNlc3Npb24nLCBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghanNvbk9iai5jYXBhYmlsaXRpZXMgJiYgIWpzb25PYmouZGVzaXJlZENhcGFiaWxpdGllcykgJiYgJ3dlIHJlcXVpcmUgb25lIG9mIFwiZGVzaXJlZENhcGFiaWxpdGllc1wiIG9yIFwiY2FwYWJpbGl0aWVzXCIgb2JqZWN0JyxcbiAgICAgIG9wdGlvbmFsOiBbJ2Rlc2lyZWRDYXBhYmlsaXRpZXMnLCAncmVxdWlyZWRDYXBhYmlsaXRpZXMnLCAnY2FwYWJpbGl0aWVzJ119fVxuICB9LFxuICAnL3Nlc3Npb25zJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXNzaW9ucyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXNzaW9uJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZVNlc3Npb24nfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGltZW91dHMnfSwgLy8gVzNDIHJvdXRlXG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0aW1lb3V0cycsIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdGltZW91dHMvYXN5bmNfc2NyaXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYXN5bmNTY3JpcHRUaW1lb3V0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cy9pbXBsaWNpdF93YWl0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaW1wbGljaXRXYWl0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3VybCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VXJsJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRVcmwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXJsJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mb3J3YXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZm9yd2FyZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVmcmVzaCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlZnJlc2gnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zY3JlZW5zaG90Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTY3JlZW5zaG90J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2F2YWlsYWJsZV9lbmdpbmVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdhdmFpbGFibGVJTUVFbmdpbmVzJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2ZV9lbmdpbmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFjdGl2ZUlNRUVuZ2luZSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ltZS9hY3RpdmF0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2lzSU1FQWN0aXZhdGVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2RlYWN0aXZhdGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdkZWFjdGl2YXRlSU1FRW5naW5lJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZhdGVJTUVFbmdpbmUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZW5naW5lJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mcmFtZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldEZyYW1lJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2lkJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mcmFtZS9wYXJlbnQnOiB7XG4gICAgUE9TVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldFdpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgIG9wdGlvbmFsOiBbJ25hbWUnLCAnaGFuZGxlJ10sXG4gICAgICAvLyBSZXR1cm4gYm90aCB2YWx1ZXMgdG8gbWF0Y2ggVzNDIGFuZCBKU09OV1AgcHJvdG9jb2xzXG4gICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IHtcbiAgICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gW2pzb25PYmouaGFuZGxlLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkpIHtcbiAgICAgICAgICByZXR1cm4gW2pzb25PYmoubmFtZSwganNvbk9iai5uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2pzb25PYmoubmFtZSwganNvbk9iai5oYW5kbGVdO1xuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoubmFtZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpKVxuICAgICAgICAmJiAnd2UgcmVxdWlyZSBvbmUgb2YgXCJuYW1lXCIgb3IgXCJoYW5kbGVcIiB0byBiZSBzZXQnLFxuICAgIH19LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdjbG9zZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy86d2luZG93aGFuZGxlL3NpemUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd1NpemUnfSxcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9wb3NpdGlvbic6IHtcbiAgICBQT1NUOiB7fSxcbiAgICBHRVQ6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy86d2luZG93aGFuZGxlL21heGltaXplJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbWF4aW1pemVXaW5kb3cnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jb29raWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENvb2tpZXMnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldENvb2tpZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydjb29raWUnXX19LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdkZWxldGVDb29raWVzJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29va2llLzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb29raWUnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlQ29va2llJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc291cmNlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQYWdlU291cmNlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdGl0bGUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ3RpdGxlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50cycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC9hY3RpdmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2FjdGl2ZSd9LCAvLyBXM0M6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNkZm4tZ2V0LWFjdGl2ZS1lbGVtZW50XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdhY3RpdmUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQnOiB7XG4gICAgR0VUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbUVsZW1lbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lbGVtZW50cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50c0Zyb21FbGVtZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljayd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zdWJtaXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzdWJtaXQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGV4dCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC92YWx1ZSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VmFsdWUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnRleHQpKSAmJlxuICAgICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwidGV4dFwiIG9yIFwidmFsdWVcIiBwYXJhbXMnLFxuICAgICAgICBvcHRpb25hbDogWyd2YWx1ZScsICd0ZXh0J10sXG4gICAgICAgIC8vIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGFyZ3VtZW50IGNvbnN0cnVjdG9yIGJlY2F1c2Ugb2YgdGhlIHNwZWNpYWxcbiAgICAgICAgLy8gbG9naWMgaGVyZS4gQmFzaWNhbGx5IHdlIHdhbnQgdG8gYWNjZXB0IGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKVxuICAgICAgICAvLyBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlciwgYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGVcbiAgICAgICAgLy8gY29tbWFuZCAobm90IGJvdGgpLiBQcmVmZXIgJ3ZhbHVlJyBzaW5jZSBpdCdzIG1vcmVcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSB8fCBqc29uT2JqLnRleHRdLFxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQva2V5cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleXMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9uYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXROYW1lJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2NsZWFyJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xlYXInfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2VsZWN0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRTZWxlY3RlZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lbmFibGVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50RW5hYmxlZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9hdHRyaWJ1dGUvOm5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF0dHJpYnV0ZSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lcXVhbHMvOm90aGVySWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VxdWFsc0VsZW1lbnQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZGlzcGxheWVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50RGlzcGxheWVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2xvY2F0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9sb2NhdGlvbl9pbl92aWV3Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbkluVmlldyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zaXplJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTaXplJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Nzcy86cHJvcGVydHlOYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDc3NQcm9wZXJ0eSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0T3JpZW50YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JvdGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRSb3RhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Um90YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3onXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vdmVUbycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGlja0N1cnJlbnQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2J1dHRvbnVwJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uVXAnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RvdWJsZUNsaWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hEb3duJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvdXAnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b3VjaFVwJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL3Njcm9sbCc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbG9uZ2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hMb25nQ2xpY2snLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZWxlbWVudHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2ZsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmxpY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEdlb0xvY2F0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRHZW9Mb2NhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydsb2NhdGlvbiddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9rZXkvOmtleSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAvLyBTZWxlbml1bSA0IGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2UvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0TG9nJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3R5cGUnXX19XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGxpY2F0aW9uX2NhY2hlL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHt9XG4gIH0sXG5cbiAgLy9cbiAgLy8gbWpzb253aXJlXG4gIC8vXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEN1cnJlbnRDb250ZXh0J30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRDb250ZXh0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9wYWdlSW5kZXgnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFBhZ2VJbmRleCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL25ldHdvcmtfY29ubmVjdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmV0d29ya0Nvbm5lY3Rpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldE5ldHdvcmtDb25uZWN0aW9uJywgcGF5bG9hZFBhcmFtczoge3Vud3JhcDogJ3BhcmFtZXRlcnMnLCByZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9wZXJmb3JtJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybVRvdWNoJywgcGF5bG9hZFBhcmFtczoge3dyYXA6ICdhY3Rpb25zJywgcmVxdWlyZWQ6IFsnYWN0aW9ucyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3BlcmZvcm1NdWx0aUFjdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXR1cycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zaGFrZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVNoYWtlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zeXN0ZW1fdGltZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS91bmxvY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd1bmxvY2snfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2xvY2tlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2lzTG9ja2VkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzdGFydFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc3RvcF9yZWNvcmRpbmdfc2NyZWVuJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc3RvcFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcGVyZm9ybWFuY2VEYXRhL3R5cGVzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZ2V0UGVyZm9ybWFuY2VEYXRhJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wcmVzc19rZXljb2RlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHJlc3NLZXlDb2RlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2xvbmdfcHJlc3Nfa2V5Y29kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZ2VycHJpbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zZW5kX3Ntcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NlbmRTTVMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnbWVzc2FnZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fY2FsbCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbUNhbGwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnYWN0aW9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5ndGgpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkpICYmXG4gICAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW3V0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fdm9pY2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnc21Wb2ljZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzdGF0ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9hYyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQUMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdGUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbmV0d29ya19zcGVlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ25ldHdvcmtTcGVlZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyduZXRzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleWV2ZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3JvdGF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVJvdGF0aW9uJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgcmVxdWlyZWQ6IFsneCcsICd5JywgJ3JhZGl1cycsICdyb3RhdGlvbicsICd0b3VjaENvdW50JywgJ2R1cmF0aW9uJ10sXG4gICAgICBvcHRpb25hbDogWydlbGVtZW50J10gfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9jdXJyZW50X2FjdGl2aXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50QWN0aXZpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2N1cnJlbnRfcGFja2FnZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudFBhY2thZ2UnfVxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH0sXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy9lbmRyZWdpb25cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9oaWRlX2tleWJvYXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaGlkZUtleWJvYXJkJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ3N0cmF0ZWd5JywgJ2tleScsICdrZXlDb2RlJywgJ2tleU5hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfa2V5Ym9hcmRfc2hvd24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2lzS2V5Ym9hcmRTaG93bid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVzaF9maWxlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVzaEZpbGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGF0aCcsICdkYXRhJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVsbF9mb2xkZXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdWxsRm9sZGVyJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2FpcnBsYW5lX21vZGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVGbGlnaHRNb2RlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3RvZ2dsZV93aWZpJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlV2lGaSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2xvY2F0aW9uX3NlcnZpY2VzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N0YXJ0X2FjdGl2aXR5Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzdGFydEFjdGl2aXR5JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGFja2FnZScsICdhcHBBY3Rpdml0eSddLFxuICAgICAgICBvcHRpb25hbDogWydhcHBXYWl0UGFja2FnZScsICdhcHBXYWl0QWN0aXZpdHknLCAnaW50ZW50QWN0aW9uJyxcbiAgICAgICAgICAnaW50ZW50Q2F0ZWdvcnknLCAnaW50ZW50RmxhZ3MnLCAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLCAnZG9udFN0b3BBcHBPblJlc2V0J11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc3lzdGVtX2JhcnMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFN5c3RlbUJhcnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGlzcGxheURlbnNpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NpbXVsYXRvci90b2dnbGVfdG91Y2hfaWRfZW5yb2xsbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZW5hYmxlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2Nsb3NlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xvc2VBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL3Jlc2V0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVzZXQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvZW5kX3Rlc3RfY292ZXJhZ2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpbnRlbnQnLCAncGF0aCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0U3RyaW5ncycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VmFsdWVJbW1lZGlhdGUnLCBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnRleHQpKSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgIC8vIFdlIHdhbnQgdG8gZWl0aGVyIGEgdmFsdWUgKG9sZCBKU09OV1ApIG9yIGEgdGV4dCAobmV3IFczQykgcGFyYW1ldGVyLFxuICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IFtqc29uT2JqLnZhbHVlIHx8IGpzb25PYmoudGV4dF0sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2VsZW1lbnQvOmVsZW1lbnRJZC9yZXBsYWNlX3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVwbGFjZVZhbHVlJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PiAoIXV0aWwuaGFzVmFsdWUoanNvbk9iai52YWx1ZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICBvcHRpb25hbDogWyd2YWx1ZScsICd0ZXh0J10sXG4gICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgIC8vIFByZWZlciAndmFsdWUnIHNpbmNlIGl0J3MgbW9yZSBiYWNrd2FyZC1jb21wYXRpYmxlLlxuICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSA/PyBqc29uT2JqLnRleHQgPz8gJyddLFxuICAgIH19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zZXR0aW5ncyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3VwZGF0ZVNldHRpbmdzJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NldHRpbmdzJ119fSxcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2V0dGluZ3MnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZXhlY3V0ZV9kcml2ZXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlRHJpdmVyU2NyaXB0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCddLCBvcHRpb25hbDogWyd0eXBlJywgJ3RpbWVvdXQnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9ldmVudHMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2dFdmVudHMnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsndHlwZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2xvZ19ldmVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvZ0N1c3RvbUV2ZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3ZlbmRvcicsICdldmVudCddfX1cbiAgfSxcblxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjdXNlci1wcm9tcHRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hbGVydC9hY2NlcHQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0QWNjZXB0QWxlcnQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hbGVydC9kaXNtaXNzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdERpc21pc3NBbGVydCd9XG4gIH0sXG4gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNnZXQtZWxlbWVudC1yZWN0XG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50UmVjdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGUvc3luYyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGUvYXN5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlQXN5bmMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zY3JlZW5zaG90Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dSZWN0J30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRXaW5kb3dSZWN0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneScsICd3aWR0aCcsICdoZWlnaHQnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9taW5pbWl6ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21pbmltaXplV2luZG93J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L2Z1bGxzY3JlZW4nOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmdWxsU2NyZWVuV2luZG93J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3Byb3BlcnR5LzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQcm9wZXJ0eSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc2V0X2NsaXBib2FyZCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0Q2xpcGJvYXJkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnY29udGVudCddLFxuICAgICAgICBvcHRpb25hbDogW1xuICAgICAgICAgICdjb250ZW50VHlwZScsXG4gICAgICAgICAgJ2xhYmVsJyxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZ2V0X2NsaXBib2FyZCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZ2V0Q2xpcGJvYXJkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFtcbiAgICAgICAgICAnY29udGVudFR5cGUnLFxuICAgICAgICBdXG4gICAgICB9LFxuICAgIH1cbiAgfSxcblxuICAvLyBjaHJvbWl1bSBkZXZ0b29sc1xuICAvLyBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvbWFzdGVyL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9zZXJ2ZXIvaHR0cF9oYW5kbGVyLmNjXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkLzp2ZW5kb3IvY2RwL2V4ZWN1dGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlQ2RwJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2NtZCcsICdwYXJhbXMnXX19XG4gIH0sXG5cbiAgLy9yZWdpb24gV2ViYXV0aG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tYXV0b21hdGlvbi1hZGQtdmlydHVhbC1hdXRoZW50aWNhdG9yXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvcic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnYWRkVmlydHVhbEF1dGhlbnRpY2F0b3InLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydwcm90b2NvbCcsICd0cmFuc3BvcnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnaGFzUmVzaWRlbnRLZXknLCAnaGFzVXNlclZlcmlmaWNhdGlvbicsICdpc1VzZXJDb25zZW50aW5nJywgJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZCc6IHtcbiAgICBERUxFVEU6IHtcbiAgICAgIGNvbW1hbmQ6ICdyZW1vdmVWaXJ0dWFsQXV0aGVudGljYXRvcidcbiAgICB9XG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkL2NyZWRlbnRpYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2FkZEF1dGhDcmVkZW50aWFsJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnY3JlZGVudGlhbElkJywgJ2lzUmVzaWRlbnRDcmVkZW50aWFsJywgJ3JwSWQnLCAncHJpdmF0ZUtleSddLFxuICAgICAgICBvcHRpb25hbDogWyd1c2VySGFuZGxlJywgJ3NpZ25Db3VudCddLFxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbHMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF1dGhDcmVkZW50aWFsJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbW92ZUFsbEF1dGhDcmVkZW50aWFscyd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFscy86Y3JlZGVudGlhbElkJzoge1xuICAgIERFTEVURToge2NvbW1hbmQ6ICdyZW1vdmVBdXRoQ3JlZGVudGlhbCd9XG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkL3V2Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRVc2VyQXV0aFZlcmlmaWVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnaXNVc2VyVmVyaWZpZWQnXVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvL2VuZHJlZ2lvblxuXG59O1xuXG4vLyBkcml2ZXIgY29tbWFuZCBuYW1lc1xubGV0IEFMTF9DT01NQU5EUyA9IFtdO1xuZm9yIChsZXQgdiBvZiBfLnZhbHVlcyhNRVRIT0RfTUFQKSkge1xuICBmb3IgKGxldCBtIG9mIF8udmFsdWVzKHYpKSB7XG4gICAgaWYgKG0uY29tbWFuZCkge1xuICAgICAgQUxMX0NPTU1BTkRTLnB1c2gobS5jb21tYW5kKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgUkVfRVNDQVBFID0gL1stW1xcXXt9KCkrPy4sXFxcXF4kfCNcXHNdL2c7XG5jb25zdCBSRV9QQVJBTSA9IC8oWzoqXSkoXFx3KykvZztcblxuY2xhc3MgUm91dGUge1xuICBjb25zdHJ1Y3RvciAocm91dGUpIHtcbiAgICB0aGlzLnBhcmFtTmFtZXMgPSBbXTtcblxuICAgIGxldCByZVN0ciA9IHJvdXRlLnJlcGxhY2UoUkVfRVNDQVBFLCAnXFxcXCQmJyk7XG4gICAgcmVTdHIgPSByZVN0ci5yZXBsYWNlKFJFX1BBUkFNLCAoXywgbW9kZSwgbmFtZSkgPT4ge1xuICAgICAgdGhpcy5wYXJhbU5hbWVzLnB1c2gobmFtZSk7XG4gICAgICByZXR1cm4gbW9kZSA9PT0gJzonID8gJyhbXi9dKiknIDogJyguKiknO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGVSZWdleHAgPSBuZXcgUmVnRXhwKGBeJHtyZVN0cn0kYCk7XG4gIH1cblxuICBwYXJzZSAodXJsKSB7XG4gICAgLy9pZiAodXJsLmluZGV4T2YoJ3RpbWVvdXRzJykgIT09IC0xICYmIHRoaXMucm91dGVSZWdleHAudG9TdHJpbmcoKS5pbmRleE9mKCd0aW1lb3V0cycpICE9PSAtMSkge1xuICAgIC8vZGVidWdnZXI7XG4gICAgLy99XG4gICAgbGV0IG1hdGNoZXMgPSB1cmwubWF0Y2godGhpcy5yb3V0ZVJlZ2V4cCk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIHdoaWxlIChpIDwgdGhpcy5wYXJhbU5hbWVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyYW1OYW1lID0gdGhpcy5wYXJhbU5hbWVzW2krK107XG4gICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IG1hdGNoZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gcm91dGVUb0NvbW1hbmROYW1lIChlbmRwb2ludCwgbWV0aG9kLCBiYXNlUGF0aCA9IERFRkFVTFRfQkFTRV9QQVRIKSB7XG4gIGxldCBkc3RSb3V0ZSA9IG51bGw7XG5cbiAgLy8gcmVtb3ZlIGFueSBxdWVyeSBzdHJpbmdcbiAgaWYgKGVuZHBvaW50LmluY2x1ZGVzKCc/JykpIHtcbiAgICBlbmRwb2ludCA9IGVuZHBvaW50LnNsaWNlKDAsIGVuZHBvaW50LmluZGV4T2YoJz8nKSk7XG4gIH1cblxuICBjb25zdCBhY3R1YWxFbmRwb2ludCA9IGVuZHBvaW50ID09PSAnLycgPyAnJyA6XG4gICAgKF8uc3RhcnRzV2l0aChlbmRwb2ludCwgJy8nKSA/IGVuZHBvaW50IDogYC8ke2VuZHBvaW50fWApO1xuXG4gIGZvciAobGV0IGN1cnJlbnRSb3V0ZSBvZiBfLmtleXMoTUVUSE9EX01BUCkpIHtcbiAgICBjb25zdCByb3V0ZSA9IG5ldyBSb3V0ZShgJHtiYXNlUGF0aH0ke2N1cnJlbnRSb3V0ZX1gKTtcbiAgICAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBhY3R1YWwgc2Vzc2lvbiBpZCBmb3IgbWF0Y2hpbmdcbiAgICBpZiAocm91dGUucGFyc2UoYCR7YmFzZVBhdGh9L3Nlc3Npb24vaWdub3JlZC1zZXNzaW9uLWlkJHthY3R1YWxFbmRwb2ludH1gKSB8fFxuICAgICAgICByb3V0ZS5wYXJzZShgJHtiYXNlUGF0aH0ke2FjdHVhbEVuZHBvaW50fWApIHx8IHJvdXRlLnBhcnNlKGFjdHVhbEVuZHBvaW50KSkge1xuICAgICAgZHN0Um91dGUgPSBjdXJyZW50Um91dGU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFkc3RSb3V0ZSkgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgY29uc3QgbWV0aG9kcyA9IF8uZ2V0KE1FVEhPRF9NQVAsIGRzdFJvdXRlKTtcbiAgbWV0aG9kID0gXy50b1VwcGVyKG1ldGhvZCk7XG4gIGlmIChfLmhhcyhtZXRob2RzLCBtZXRob2QpKSB7XG4gICAgY29uc3QgZHN0TWV0aG9kID0gXy5nZXQobWV0aG9kcywgbWV0aG9kKTtcbiAgICBpZiAoZHN0TWV0aG9kLmNvbW1hbmQpIHtcbiAgICAgIHJldHVybiBkc3RNZXRob2QuY29tbWFuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gZHJpdmVyIGNvbW1hbmRzIHRoYXQgZG8gbm90IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGFscmVhZHkgZXhpc3RcbmNvbnN0IE5PX1NFU1NJT05fSURfQ09NTUFORFMgPSBbJ2NyZWF0ZVNlc3Npb24nLCAnZ2V0U3RhdHVzJywgJ2dldFNlc3Npb25zJ107XG5cbmV4cG9ydCB7IE1FVEhPRF9NQVAsIEFMTF9DT01NQU5EUywgTk9fU0VTU0lPTl9JRF9DT01NQU5EUywgcm91dGVUb0NvbW1hbmROYW1lIH07XG4iXSwiZmlsZSI6ImxpYi9wcm90b2NvbC9yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
1267
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wcm90b2NvbC9yb3V0ZXMuanMiXSwibmFtZXMiOlsiU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMiLCJ2YWxpZGF0ZSIsImpzb25PYmoiLCJ1dGlsIiwiaGFzVmFsdWUiLCJ2YWx1ZSIsInRleHQiLCJvcHRpb25hbCIsIm1ha2VBcmdzIiwiTUVUSE9EX01BUCIsIkdFVCIsImNvbW1hbmQiLCJQT1NUIiwicGF5bG9hZFBhcmFtcyIsImNhcGFiaWxpdGllcyIsImRlc2lyZWRDYXBhYmlsaXRpZXMiLCJERUxFVEUiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSw2QkFBNkIsR0FBRztBQUNwQ0MsRUFBQUEsUUFBUSxFQUFHQyxPQUFELElBQWMsQ0FB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b20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkpICYmXG4gICAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8vIGRlZmluZSB0aGUgcm91dGVzLCBtYXBwaW5nIG9mIEhUVFAgbWV0aG9kcyB0byBwYXJ0aWN1bGFyIGRyaXZlciBjb21tYW5kcyxcbi8vIGFuZCBhbnkgcGFyYW1ldGVycyB0aGF0IGFyZSBleHBlY3RlZCBpbiBhIHJlcXVlc3Rcbi8vIHBhcmFtZXRlcnMgY2FuIGJlIGByZXF1aXJlZGAgb3IgYG9wdGlvbmFsYFxuY29uc3QgTUVUSE9EX01BUCA9IHtcbiAgJy9zdGF0dXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFN0YXR1cyd9XG4gIH0sXG4gICcvc2Vzc2lvbic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZVNlc3Npb24nLCBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghanNvbk9iai5jYXBhYmlsaXRpZXMgJiYgIWpzb25PYmouZGVzaXJlZENhcGFiaWxpdGllcykgJiYgJ3dlIHJlcXVpcmUgb25lIG9mIFwiZGVzaXJlZENhcGFiaWxpdGllc1wiIG9yIFwiY2FwYWJpbGl0aWVzXCIgb2JqZWN0JyxcbiAgICAgIG9wdGlvbmFsOiBbJ2Rlc2lyZWRDYXBhYmlsaXRpZXMnLCAncmVxdWlyZWRDYXBhYmlsaXRpZXMnLCAnY2FwYWJpbGl0aWVzJ119fVxuICB9LFxuICAnL3Nlc3Npb25zJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXNzaW9ucyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXNzaW9uJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZVNlc3Npb24nfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGltZW91dHMnfSwgLy8gVzNDIHJvdXRlXG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0aW1lb3V0cycsIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdGltZW91dHMvYXN5bmNfc2NyaXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYXN5bmNTY3JpcHRUaW1lb3V0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cy9pbXBsaWNpdF93YWl0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaW1wbGljaXRXYWl0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3VybCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VXJsJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRVcmwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXJsJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mb3J3YXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZm9yd2FyZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVmcmVzaCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlZnJlc2gnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zY3JlZW5zaG90Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTY3JlZW5zaG90J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2F2YWlsYWJsZV9lbmdpbmVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdhdmFpbGFibGVJTUVFbmdpbmVzJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2ZV9lbmdpbmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFjdGl2ZUlNRUVuZ2luZSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ltZS9hY3RpdmF0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2lzSU1FQWN0aXZhdGVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2RlYWN0aXZhdGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdkZWFjdGl2YXRlSU1FRW5naW5lJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZhdGVJTUVFbmdpbmUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZW5naW5lJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mcmFtZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldEZyYW1lJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2lkJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mcmFtZS9wYXJlbnQnOiB7XG4gICAgUE9TVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldFdpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgIG9wdGlvbmFsOiBbJ25hbWUnLCAnaGFuZGxlJ10sXG4gICAgICAvLyBSZXR1cm4gYm90aCB2YWx1ZXMgdG8gbWF0Y2ggVzNDIGFuZCBKU09OV1AgcHJvdG9jb2xzXG4gICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IHtcbiAgICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gW2pzb25PYmouaGFuZGxlLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkpIHtcbiAgICAgICAgICByZXR1cm4gW2pzb25PYmoubmFtZSwganNvbk9iai5uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2pzb25PYmoubmFtZSwganNvbk9iai5oYW5kbGVdO1xuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoubmFtZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpKVxuICAgICAgICAmJiAnd2UgcmVxdWlyZSBvbmUgb2YgXCJuYW1lXCIgb3IgXCJoYW5kbGVcIiB0byBiZSBzZXQnLFxuICAgIH19LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdjbG9zZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy86d2luZG93aGFuZGxlL3NpemUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd1NpemUnfSxcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9wb3NpdGlvbic6IHtcbiAgICBQT1NUOiB7fSxcbiAgICBHRVQ6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy86d2luZG93aGFuZGxlL21heGltaXplJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbWF4aW1pemVXaW5kb3cnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jb29raWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENvb2tpZXMnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldENvb2tpZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydjb29raWUnXX19LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdkZWxldGVDb29raWVzJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29va2llLzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb29raWUnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlQ29va2llJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc291cmNlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQYWdlU291cmNlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdGl0bGUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ3RpdGxlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50cycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC9hY3RpdmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2FjdGl2ZSd9LCAvLyBXM0M6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNkZm4tZ2V0LWFjdGl2ZS1lbGVtZW50XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdhY3RpdmUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQnOiB7XG4gICAgR0VUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbUVsZW1lbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lbGVtZW50cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50c0Zyb21FbGVtZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljayd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zdWJtaXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzdWJtaXQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGV4dCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC92YWx1ZSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VmFsdWUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnRleHQpKSAmJlxuICAgICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwidGV4dFwiIG9yIFwidmFsdWVcIiBwYXJhbXMnLFxuICAgICAgICBvcHRpb25hbDogWyd2YWx1ZScsICd0ZXh0J10sXG4gICAgICAgIC8vIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGFyZ3VtZW50IGNvbnN0cnVjdG9yIGJlY2F1c2Ugb2YgdGhlIHNwZWNpYWxcbiAgICAgICAgLy8gbG9naWMgaGVyZS4gQmFzaWNhbGx5IHdlIHdhbnQgdG8gYWNjZXB0IGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKVxuICAgICAgICAvLyBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlciwgYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGVcbiAgICAgICAgLy8gY29tbWFuZCAobm90IGJvdGgpLiBQcmVmZXIgJ3ZhbHVlJyBzaW5jZSBpdCdzIG1vcmVcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSB8fCBqc29uT2JqLnRleHRdLFxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQva2V5cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleXMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9uYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXROYW1lJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2NsZWFyJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xlYXInfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2VsZWN0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRTZWxlY3RlZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lbmFibGVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50RW5hYmxlZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9hdHRyaWJ1dGUvOm5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF0dHJpYnV0ZSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lcXVhbHMvOm90aGVySWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VxdWFsc0VsZW1lbnQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZGlzcGxheWVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50RGlzcGxheWVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2xvY2F0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9sb2NhdGlvbl9pbl92aWV3Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbkluVmlldyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zaXplJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTaXplJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Nzcy86cHJvcGVydHlOYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDc3NQcm9wZXJ0eSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0T3JpZW50YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JvdGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRSb3RhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Um90YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3onXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vdmVUbycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGlja0N1cnJlbnQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2J1dHRvbnVwJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uVXAnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RvdWJsZUNsaWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hEb3duJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvdXAnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b3VjaFVwJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL3Njcm9sbCc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbG9uZ2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hMb25nQ2xpY2snLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZWxlbWVudHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2ZsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmxpY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEdlb0xvY2F0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRHZW9Mb2NhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydsb2NhdGlvbiddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9rZXkvOmtleSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAvLyBTZWxlbml1bSA0IGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2UvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0TG9nJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3R5cGUnXX19XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGxpY2F0aW9uX2NhY2hlL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHt9XG4gIH0sXG5cbiAgLy9cbiAgLy8gbWpzb253aXJlXG4gIC8vXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEN1cnJlbnRDb250ZXh0J30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRDb250ZXh0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9wYWdlSW5kZXgnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFBhZ2VJbmRleCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL25ldHdvcmtfY29ubmVjdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmV0d29ya0Nvbm5lY3Rpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldE5ldHdvcmtDb25uZWN0aW9uJywgcGF5bG9hZFBhcmFtczoge3Vud3JhcDogJ3BhcmFtZXRlcnMnLCByZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9wZXJmb3JtJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybVRvdWNoJywgcGF5bG9hZFBhcmFtczoge3dyYXA6ICdhY3Rpb25zJywgcmVxdWlyZWQ6IFsnYWN0aW9ucyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3BlcmZvcm1NdWx0aUFjdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXR1cycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zaGFrZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVNoYWtlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zeXN0ZW1fdGltZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS91bmxvY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd1bmxvY2snfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2xvY2tlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2lzTG9ja2VkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzdGFydFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc3RvcF9yZWNvcmRpbmdfc2NyZWVuJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc3RvcFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcGVyZm9ybWFuY2VEYXRhL3R5cGVzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZ2V0UGVyZm9ybWFuY2VEYXRhJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wcmVzc19rZXljb2RlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHJlc3NLZXlDb2RlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2xvbmdfcHJlc3Nfa2V5Y29kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZ2VycHJpbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zZW5kX3Ntcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NlbmRTTVMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnbWVzc2FnZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fY2FsbCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbUNhbGwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnYWN0aW9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5ndGgpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkpICYmXG4gICAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW3V0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fdm9pY2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnc21Wb2ljZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzdGF0ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9hYyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQUMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdGUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbmV0d29ya19zcGVlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ25ldHdvcmtTcGVlZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyduZXRzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleWV2ZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3JvdGF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVJvdGF0aW9uJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgcmVxdWlyZWQ6IFsneCcsICd5JywgJ3JhZGl1cycsICdyb3RhdGlvbicsICd0b3VjaENvdW50JywgJ2R1cmF0aW9uJ10sXG4gICAgICBvcHRpb25hbDogWydlbGVtZW50J10gfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9jdXJyZW50X2FjdGl2aXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50QWN0aXZpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2N1cnJlbnRfcGFja2FnZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudFBhY2thZ2UnfVxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH0sXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy9lbmRyZWdpb25cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9oaWRlX2tleWJvYXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaGlkZUtleWJvYXJkJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ3N0cmF0ZWd5JywgJ2tleScsICdrZXlDb2RlJywgJ2tleU5hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfa2V5Ym9hcmRfc2hvd24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2lzS2V5Ym9hcmRTaG93bid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVzaF9maWxlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVzaEZpbGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGF0aCcsICdkYXRhJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVsbF9mb2xkZXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdWxsRm9sZGVyJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2FpcnBsYW5lX21vZGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVGbGlnaHRNb2RlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3RvZ2dsZV93aWZpJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlV2lGaSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2xvY2F0aW9uX3NlcnZpY2VzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N0YXJ0X2FjdGl2aXR5Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzdGFydEFjdGl2aXR5JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGFja2FnZScsICdhcHBBY3Rpdml0eSddLFxuICAgICAgICBvcHRpb25hbDogWydhcHBXYWl0UGFja2FnZScsICdhcHBXYWl0QWN0aXZpdHknLCAnaW50ZW50QWN0aW9uJyxcbiAgICAgICAgICAnaW50ZW50Q2F0ZWdvcnknLCAnaW50ZW50RmxhZ3MnLCAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLCAnZG9udFN0b3BBcHBPblJlc2V0J11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc3lzdGVtX2JhcnMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFN5c3RlbUJhcnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGlzcGxheURlbnNpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NpbXVsYXRvci90b2dnbGVfdG91Y2hfaWRfZW5yb2xsbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZW5hYmxlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2Nsb3NlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xvc2VBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL3Jlc2V0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVzZXQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvZW5kX3Rlc3RfY292ZXJhZ2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpbnRlbnQnLCAncGF0aCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0U3RyaW5ncycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VmFsdWVJbW1lZGlhdGUnLCBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnRleHQpKSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgIC8vIFdlIHdhbnQgdG8gZWl0aGVyIGEgdmFsdWUgKG9sZCBKU09OV1ApIG9yIGEgdGV4dCAobmV3IFczQykgcGFyYW1ldGVyLFxuICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IFtqc29uT2JqLnZhbHVlIHx8IGpzb25PYmoudGV4dF0sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2VsZW1lbnQvOmVsZW1lbnRJZC9yZXBsYWNlX3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVwbGFjZVZhbHVlJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PiAoIXV0aWwuaGFzVmFsdWUoanNvbk9iai52YWx1ZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICBvcHRpb25hbDogWyd2YWx1ZScsICd0ZXh0J10sXG4gICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgIC8vIFByZWZlciAndmFsdWUnIHNpbmNlIGl0J3MgbW9yZSBiYWNrd2FyZC1jb21wYXRpYmxlLlxuICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSA/PyBqc29uT2JqLnRleHQgPz8gJyddLFxuICAgIH19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zZXR0aW5ncyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3VwZGF0ZVNldHRpbmdzJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NldHRpbmdzJ119fSxcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2V0dGluZ3MnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZXZlbnRzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0TG9nRXZlbnRzJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ3R5cGUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9sb2dfZXZlbnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsb2dDdXN0b21FdmVudCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2ZW5kb3InLCAnZXZlbnQnXX19XG4gIH0sXG5cbiAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI3VzZXItcHJvbXB0c1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hbGVydC90ZXh0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRBbGVydFRleHQnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0QWxlcnRUZXh0JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IFNFVF9BTEVSVF9URVhUX1BBWUxPQURfUEFSQU1TLFxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvYWNjZXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdEFjY2VwdEFsZXJ0J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvZGlzbWlzcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvc3REaXNtaXNzQWxlcnQnfVxuICB9LFxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZ2V0LWVsZW1lbnQtcmVjdFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcmVjdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFJlY3QnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL3N5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL2FzeW5jJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZXhlY3V0ZUFzeW5jJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFNjcmVlbnNob3QnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvcmVjdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93UmVjdCd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0V2luZG93UmVjdCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knLCAnd2lkdGgnLCAnaGVpZ2h0J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L21heGltaXplJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbWF4aW1pemVXaW5kb3cnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWluaW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtaW5pbWl6ZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9mdWxsc2NyZWVuJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZnVsbFNjcmVlbldpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9wcm9wZXJ0eS86bmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0UHJvcGVydHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NldF9jbGlwYm9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldENsaXBib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NvbnRlbnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFtcbiAgICAgICAgICAnY29udGVudFR5cGUnLFxuICAgICAgICAgICdsYWJlbCcsXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dldF9jbGlwYm9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dldENsaXBib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIG9wdGlvbmFsOiBbXG4gICAgICAgICAgJ2NvbnRlbnRUeXBlJyxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG5cbiAgLy8gY2hyb21pdW0gZGV2dG9vbHNcbiAgLy8gaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYy8rL21hc3Rlci9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvc2VydmVyL2h0dHBfaGFuZGxlci5jY1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC86dmVuZG9yL2NkcC9leGVjdXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZXhlY3V0ZUNkcCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydjbWQnLCAncGFyYW1zJ119fVxuICB9LFxuXG4gIC8vcmVnaW9uIFdlYmF1dGhuXG4gIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNzY3RuLWF1dG9tYXRpb24tYWRkLXZpcnR1YWwtYXV0aGVudGljYXRvclxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3InOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2FkZFZpcnR1YWxBdXRoZW50aWNhdG9yJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsncHJvdG9jb2wnLCAndHJhbnNwb3J0J10sXG4gICAgICAgIG9wdGlvbmFsOiBbJ2hhc1Jlc2lkZW50S2V5JywgJ2hhc1VzZXJWZXJpZmljYXRpb24nLCAnaXNVc2VyQ29uc2VudGluZycsICdpc1VzZXJWZXJpZmllZCddLFxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQnOiB7XG4gICAgREVMRVRFOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3InXG4gICAgfVxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFsJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhZGRBdXRoQ3JlZGVudGlhbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NyZWRlbnRpYWxJZCcsICdpc1Jlc2lkZW50Q3JlZGVudGlhbCcsICdycElkJywgJ3ByaXZhdGVLZXknXSxcbiAgICAgICAgb3B0aW9uYWw6IFsndXNlckhhbmRsZScsICdzaWduQ291bnQnXSxcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkL2NyZWRlbnRpYWxzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRBdXRoQ3JlZGVudGlhbCd9LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdyZW1vdmVBbGxBdXRoQ3JlZGVudGlhbHMnfSxcbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbHMvOmNyZWRlbnRpYWxJZCc6IHtcbiAgICBERUxFVEU6IHtjb21tYW5kOiAncmVtb3ZlQXV0aENyZWRlbnRpYWwnfVxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC91dic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VXNlckF1dGhWZXJpZmllZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2lzVXNlclZlcmlmaWVkJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLy9lbmRyZWdpb25cblxufTtcblxuLy8gZHJpdmVyIGNvbW1hbmQgbmFtZXNcbmxldCBBTExfQ09NTUFORFMgPSBbXTtcbmZvciAobGV0IHYgb2YgXy52YWx1ZXMoTUVUSE9EX01BUCkpIHtcbiAgZm9yIChsZXQgbSBvZiBfLnZhbHVlcyh2KSkge1xuICAgIGlmIChtLmNvbW1hbmQpIHtcbiAgICAgIEFMTF9DT01NQU5EUy5wdXNoKG0uY29tbWFuZCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IFJFX0VTQ0FQRSA9IC9bLVtcXF17fSgpKz8uLFxcXFxeJHwjXFxzXS9nO1xuY29uc3QgUkVfUEFSQU0gPSAvKFs6Kl0pKFxcdyspL2c7XG5cbmNsYXNzIFJvdXRlIHtcbiAgY29uc3RydWN0b3IgKHJvdXRlKSB7XG4gICAgdGhpcy5wYXJhbU5hbWVzID0gW107XG5cbiAgICBsZXQgcmVTdHIgPSByb3V0ZS5yZXBsYWNlKFJFX0VTQ0FQRSwgJ1xcXFwkJicpO1xuICAgIHJlU3RyID0gcmVTdHIucmVwbGFjZShSRV9QQVJBTSwgKF8sIG1vZGUsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMucGFyYW1OYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgcmV0dXJuIG1vZGUgPT09ICc6JyA/ICcoW14vXSopJyA6ICcoLiopJztcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlUmVnZXhwID0gbmV3IFJlZ0V4cChgXiR7cmVTdHJ9JGApO1xuICB9XG5cbiAgcGFyc2UgKHVybCkge1xuICAgIC8vaWYgKHVybC5pbmRleE9mKCd0aW1lb3V0cycpICE9PSAtMSAmJiB0aGlzLnJvdXRlUmVnZXhwLnRvU3RyaW5nKCkuaW5kZXhPZigndGltZW91dHMnKSAhPT0gLTEpIHtcbiAgICAvL2RlYnVnZ2VyO1xuICAgIC8vfVxuICAgIGxldCBtYXRjaGVzID0gdXJsLm1hdGNoKHRoaXMucm91dGVSZWdleHApO1xuICAgIGlmICghbWF0Y2hlcykgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG4gICAgbGV0IGkgPSAwO1xuICAgIGxldCBwYXJhbXMgPSB7fTtcbiAgICB3aGlsZSAoaSA8IHRoaXMucGFyYW1OYW1lcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IHRoaXMucGFyYW1OYW1lc1tpKytdO1xuICAgICAgcGFyYW1zW3BhcmFtTmFtZV0gPSBtYXRjaGVzW2ldO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJvdXRlVG9Db21tYW5kTmFtZSAoZW5kcG9pbnQsIG1ldGhvZCwgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCkge1xuICBsZXQgZHN0Um91dGUgPSBudWxsO1xuXG4gIC8vIHJlbW92ZSBhbnkgcXVlcnkgc3RyaW5nXG4gIGlmIChlbmRwb2ludC5pbmNsdWRlcygnPycpKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludC5zbGljZSgwLCBlbmRwb2ludC5pbmRleE9mKCc/JykpO1xuICB9XG5cbiAgY29uc3QgYWN0dWFsRW5kcG9pbnQgPSBlbmRwb2ludCA9PT0gJy8nID8gJycgOlxuICAgIChfLnN0YXJ0c1dpdGgoZW5kcG9pbnQsICcvJykgPyBlbmRwb2ludCA6IGAvJHtlbmRwb2ludH1gKTtcblxuICBmb3IgKGxldCBjdXJyZW50Um91dGUgb2YgXy5rZXlzKE1FVEhPRF9NQVApKSB7XG4gICAgY29uc3Qgcm91dGUgPSBuZXcgUm91dGUoYCR7YmFzZVBhdGh9JHtjdXJyZW50Um91dGV9YCk7XG4gICAgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgYWN0dWFsIHNlc3Npb24gaWQgZm9yIG1hdGNoaW5nXG4gICAgaWYgKHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofS9zZXNzaW9uL2lnbm9yZWQtc2Vzc2lvbi1pZCR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgICAgcm91dGUucGFyc2UoYCR7YmFzZVBhdGh9JHthY3R1YWxFbmRwb2ludH1gKSB8fCByb3V0ZS5wYXJzZShhY3R1YWxFbmRwb2ludCkpIHtcbiAgICAgIGRzdFJvdXRlID0gY3VycmVudFJvdXRlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmICghZHN0Um91dGUpIHJldHVybjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuXG4gIGNvbnN0IG1ldGhvZHMgPSBfLmdldChNRVRIT0RfTUFQLCBkc3RSb3V0ZSk7XG4gIG1ldGhvZCA9IF8udG9VcHBlcihtZXRob2QpO1xuICBpZiAoXy5oYXMobWV0aG9kcywgbWV0aG9kKSkge1xuICAgIGNvbnN0IGRzdE1ldGhvZCA9IF8uZ2V0KG1ldGhvZHMsIG1ldGhvZCk7XG4gICAgaWYgKGRzdE1ldGhvZC5jb21tYW5kKSB7XG4gICAgICByZXR1cm4gZHN0TWV0aG9kLmNvbW1hbmQ7XG4gICAgfVxuICB9XG59XG5cbi8vIGRyaXZlciBjb21tYW5kcyB0aGF0IGRvIG5vdCByZXF1aXJlIGEgc2Vzc2lvbiB0byBhbHJlYWR5IGV4aXN0XG5jb25zdCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTID0gWydjcmVhdGVTZXNzaW9uJywgJ2dldFN0YXR1cycsICdnZXRTZXNzaW9ucyddO1xuXG5leHBvcnQgeyBNRVRIT0RfTUFQLCBBTExfQ09NTUFORFMsIE5PX1NFU1NJT05fSURfQ09NTUFORFMsIHJvdXRlVG9Db21tYW5kTmFtZSB9O1xuIl0sImZpbGUiOiJsaWIvcHJvdG9jb2wvcm91dGVzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=