@kontur.candy/tools 2.165.0 → 2.167.0

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ <a name="2.167.0"></a>
2
+ # [2.167.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.166.0...release/tools/v2.167.0) (2024-02-21)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * **Tools:** исправление кодстайла ([2fe18b4](https://git.skbkontur.ru/ke/candy-utils/commit/2fe18b4))
8
+
9
+ <a name="2.166.0"></a>
10
+ # [2.166.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.165.0...release/tools/v2.166.0) (2024-02-09)
11
+
1
12
  <a name="2.165.0"></a>
2
13
  # [2.165.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.164.0...release/tools/v2.165.0) (2024-01-31)
3
14
 
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyB7XG4gICAgRGVtYW5kZmlsZW5hbWU6IHN0cmluZztcbiAgICBBY2NvdW50RGVzY3JpcHRpb246IHN0cmluZztcbiAgICBCb3NzTmFtZTogc3RyaW5nO1xuICAgIENvcnJlY3RGaWxlTmFtZTogc3RyaW5nO1xuICAgIEZvcm1OYW1lOiBzdHJpbmc7XG4gICAgSURQb2w6IHN0cmluZztcbiAgICBJTk46IHN0cmluZztcbiAgICBJZEZpbGVQcmVmaXg6IHN0cmluZztcbiAgICBLUFA6IHN0cmluZztcbiAgICBNcmlDb2RlOiBzdHJpbmc7XG4gICAgUGF5ZXJOYW1lOiBzdHJpbmc7XG4gICAg0JjQndCh0JDQmdCiOiBzdHJpbmc7XG4gICAgUHJvcGVydGllc1ZlcnNpb246IHN0cmluZztcbiAgICBUeXBlSW5mOiBzdHJpbmc7XG4gICAgZG9jSWQ6IHN0cmluZztcbiAgICBmaW9Qb2RwOiBzdHJpbmc7XG4gICAgZnVmVXJpOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgaWRQb2xGcm9tSWRGaWxlOiBzdHJpbmc7XG4gICAgbXJpQ29kZVByb3ZpZGVkQnlGb3JtOiBzdHJpbmc7XG4gICAgcHJQb2RwOiBzdHJpbmc7XG4gICAgc2VuZGVySW5uOiBzdHJpbmc7XG4gICAgc2VuZGVyS3BwOiBzdHJpbmc7XG4gICAg0JLQtdGA0YHQn9GA0L7Qszogc3RyaW5nO1xuICAgINCY0LTQpNCw0LnQuzogc3RyaW5nO1xuICAgINCa0L7QtNCd0J46IHN0cmluZztcbiAgICBSZWNvcmRDb3VudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRGaWxlUHJvcGVydGllc1Jlc3BvbnNlIGV4dGVuZHMgU2VydmVyRXJyb3JSZXNwb25zZSB7XG4gICAgc291cmNlc1RvdGFsQ291bnQ6IG51bWJlcjtcbiAgICAvKiog0KHQtdGA0LjQsNC70LjQt9C+0LLQsNC90L3Ri9C5INC80LDRgdGB0LjQsiDRgdGB0YvQu9C+0Log0L3QsCDQtNGA0LDQudCyLCDQutC+0YLQvtGA0YvQtSDQuNGB0YLRgNC10LHQvtCy0LDQvdC40Y8g0L7Qv9GA0LXQtNC10LvQuNC70Lgg0LrQsNC6OiDRhNCw0LnQu9GLINC90LUg0L/QviDRhNC+0YDQvNCw0YLRgyAqL1xuICAgIGludmFsaWRTb3VyY2VEcml2ZUNvbnRlbnROYW1lczogc3RyaW5nO1xuICAgIGZ1ZlVyaT86IHN0cmluZztcbiAgICAvKiog0LrQvtC7LdCy0L4g0LjQvdGB0YLQsNC90YHQvtCyINCyINGA0LDRgdC/0LDRgNGI0LXQvdC90YvRhSDRhNCw0LnQu9Cw0YUgKi9cbiAgICBwcmV2RG9jc0luc3RhbmNlc0NvdW50Pzogc3RyaW5nO1xuICAgIGdmdj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzZXJ2ZXJFcnJvcj86IFNlcnZlckVycm9ycztcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFVwbG9hZEZpbGVQcm9wZXJ0aWVzIHtcbiAgICBmdWZVcmk/OiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgc291cmNlc1RvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBwcmV2RG9jc0luc3RhbmNlc0NvdW50OiBudW1iZXI7XG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmdbXTtcbiAgICBzZXJ2ZXJFcnJvcj86IFNlcnZlckVycm9ycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNlbHNUb1BhcnRpYWxGdWZzUmVzcG9uc2Uge1xuICAgIHBhcnNlZDogc3RyaW5nW107XG4gICAgZmFpbGVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGhSZXNwb25zZSB7XG4gICAgdXBkYXRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgICBhZGRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6IiJ9
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyB7XG4gICAgRGVtYW5kZmlsZW5hbWU6IHN0cmluZztcbiAgICBBY2NvdW50RGVzY3JpcHRpb246IHN0cmluZztcbiAgICBCb3NzTmFtZTogc3RyaW5nO1xuICAgIENvcnJlY3RGaWxlTmFtZTogc3RyaW5nO1xuICAgIEZvcm1OYW1lOiBzdHJpbmc7XG4gICAgSURQb2w6IHN0cmluZztcbiAgICBJTk46IHN0cmluZztcbiAgICBJZEZpbGVQcmVmaXg6IHN0cmluZztcbiAgICBLUFA6IHN0cmluZztcbiAgICBNcmlDb2RlOiBzdHJpbmc7XG4gICAgUGF5ZXJOYW1lOiBzdHJpbmc7XG4gICAg0JjQndCh0JDQmdCiOiBzdHJpbmc7XG4gICAgUHJvcGVydGllc1ZlcnNpb246IHN0cmluZztcbiAgICBUeXBlSW5mOiBzdHJpbmc7XG4gICAgZG9jSWQ6IHN0cmluZztcbiAgICBmaW9Qb2RwOiBzdHJpbmc7XG4gICAgZnVmVXJpOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgaWRQb2xGcm9tSWRGaWxlOiBzdHJpbmc7XG4gICAgbXJpQ29kZVByb3ZpZGVkQnlGb3JtOiBzdHJpbmc7XG4gICAgcHJQb2RwOiBzdHJpbmc7XG4gICAgc2VuZGVySW5uOiBzdHJpbmc7XG4gICAgc2VuZGVyS3BwOiBzdHJpbmc7XG4gICAg0JLQtdGA0YHQn9GA0L7Qszogc3RyaW5nO1xuICAgINCY0LTQpNCw0LnQuzogc3RyaW5nO1xuICAgINCa0L7QtNCd0J46IHN0cmluZztcbiAgICBSZWNvcmRDb3VudD86IHN0cmluZztcbiAgICBJc0xhc3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UgZXh0ZW5kcyBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIC8qKiDQodC10YDQuNCw0LvQuNC30L7QstCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyINGB0YHRi9C70L7QuiDQvdCwINC00YDQsNC50LIsINC60L7RgtC+0YDRi9C1INC40YHRgtGA0LXQsdC+0LLQsNC90LjRjyDQvtC/0YDQtdC00LXQu9C40LvQuCDQutCw0Lo6INGE0LDQudC70Ysg0L3QtSDQv9C+INGE0L7RgNC80LDRgtGDICovXG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmc7XG4gICAgZnVmVXJpPzogc3RyaW5nO1xuICAgIC8qKiDQutC+0Lst0LLQviDQuNC90YHRgtCw0L3RgdC+0LIg0LIg0YDQsNGB0L/QsNGA0YjQtdC90L3Ri9GFINGE0LDQudC70LDRhSAqL1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ/OiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckVycm9yUmVzcG9uc2Uge1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVXBsb2FkRmlsZVByb3BlcnRpZXMge1xuICAgIGZ1ZlVyaT86IHN0cmluZztcbiAgICBnZnY6IHN0cmluZztcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ6IG51bWJlcjtcbiAgICBpbnZhbGlkU291cmNlRHJpdmVDb250ZW50TmFtZXM6IHN0cmluZ1tdO1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNSZXNwb25zZSB7XG4gICAgcGFyc2VkOiBzdHJpbmdbXTtcbiAgICBmYWlsZWQ6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEZyb21QYXJ0aWFsRnVmc0J5UGF0aFJlc3BvbnNlIHtcbiAgICB1cGRhdGVkSXRlbXNDb3VudDogbnVtYmVyO1xuICAgIGFkZGVkSXRlbXNDb3VudDogbnVtYmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -94,7 +94,8 @@ class FSPrinterClient {
94
94
  }
95
95
  }
96
96
  async createTask(options) {
97
- const fufUrl = await this.getFufDriveUrl();
97
+ var _options$fuf$driveUri, _options$fuf;
98
+ const fufUrl = (_options$fuf$driveUri = (_options$fuf = options.fuf) === null || _options$fuf === void 0 ? void 0 : _options$fuf.driveUri) !== null && _options$fuf$driveUri !== void 0 ? _options$fuf$driveUri : await this.getFufDriveUrl();
98
99
  const optionsWithFuf = this.appendFufUrlToOptions(options, fufUrl);
99
100
  const optionsWithSender = this.appendSenderAppToOptions(optionsWithFuf);
100
101
  const taskInfo = await this.httpClient.post("v3/tasks").withJsonBody(optionsWithSender).json();
@@ -133,4 +134,4 @@ class FSPrinterClient {
133
134
  }
134
135
  }
135
136
  exports.FSPrinterClient = FSPrinterClient;
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSHR0cENsaWVudCIsInJlcXVpcmUiLCJfQXV0aGVudGljYXRpb25Nb2RlIiwiX3V0aWxzIiwiX1R5cGluZ1V0aWxzIiwiX0lGU1ByaW50ZXJDbGllbnQiLCJGU1ByaW50ZXJDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImNhbmR5QXBpRHJhZnRDbGllbnQiLCJodHRwQ2xpZW50IiwicHVsbGluZ0RlbGF5IiwiZmFjdG9yIiwidGltZW91dCIsImRlZmF1bHRQdWxsaW5nRGVsYXkiLCJkZWZhdWx0RmFjdG9yIiwiZGVmYXVsdFRpbWVvdXQiLCJ0YXNrUmVzdWx0IiwiSHR0cENsaWVudCIsImNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJwcmludFJTViIsInR5cGUiLCJyZXN1bHRUeXBlIiwiUHJpbnRlclJlc3VsdFR5cGVzIiwiRXhjZWwiLCJyZXF1ZXN0T3B0aW9ucyIsIm9wdGlvbnMiLCJyc3ZJbmZvIiwicHJpbnQiLCJwcmludEJ5UnVsZXMiLCJwYXJ0aWFsRnVmVXJpIiwiZ2V0UGFydGlhbEZ1ZkRyaXZlVXJsIiwicnVsZXMiLCJmdWYiLCJkcml2ZVVyaSIsIlBkZiIsIl90aGlzJHRhc2tSZXN1bHQiLCJhcHBseVJlcXVlc3RPcHRpb25zIiwidGFzayIsImNyZWF0ZVRhc2siLCJydW5Nb25pdG9yaW5nVGFzayIsInRhc2tJZCIsInJlc3VsdFVybCIsInJlc3VsdFVyaSIsInJlc2V0UHJpbnRSZXN1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG93bmxvYWRGdWZIcmVmIiwiZ2V0UGFydGlhbEZ1ZiIsIkNvbnRlbnRVcmkiLCJFcnJvciIsImdldEZ1ZkRyaXZlVXJsIiwiZ2V0RnVmV2l0aEF0dGFjaG1lbnRzIiwiRnVmIiwiX3RoaXMkdGFza1Jlc3VsdDIiLCJfdGhpcyR0YXNrUmVzdWx0MyIsImNoZWNrVGFzayIsImRlbGF5IiwiaGFzRXhwaXJlZCIsInRhc2tTdGF0dXMiLCJnZXQiLCJqc29uIiwiZXJyb3JJbmZvIiwidXNlck1lc3NhZ2UiLCJmdWZVcmwiLCJvcHRpb25zV2l0aEZ1ZiIsImFwcGVuZEZ1ZlVybFRvT3B0aW9ucyIsIm9wdGlvbnNXaXRoU2VuZGVyIiwiYXBwZW5kU2VuZGVyQXBwVG9PcHRpb25zIiwidGFza0luZm8iLCJwb3N0Iiwid2l0aEpzb25Cb2R5IiwiZHJpdmVVcmwiLCJfd2luZG93JG9wZW4iLCJpc051bGxPckVtcHR5IiwiX3RoaXMkdGFza1Jlc3VsdDQiLCJyZWplY3QiLCJ3aW5kb3ciLCJvcGVuIiwiZm9jdXMiLCJzZW5kZXJBcHAiLCJfcmVxdWVzdE9wdGlvbnMkcHVsbGkiLCJfcmVxdWVzdE9wdGlvbnMkZmFjdG8iLCJfcmVxdWVzdE9wdGlvbnMkdGltZW8iLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQ29tbW9uL0ZTUHJpbnRlckNsaWVudC9GU1ByaW50ZXJDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmV0Y2ggfSBmcm9tIFwiLi4vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL0ZldGNoXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBJQ2FuZHlBcGlEcmFmdENsaWVudCB9IGZyb20gXCIuLi9DYW5keUFwaUNsaWVudC9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL3V0aWxzXCI7XG5pbXBvcnQgeyBpc051bGxPckVtcHR5LCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHtcbiAgICBGU1ByaW50ZXJUYXNrUmVzdWx0LFxuICAgIEZTUHJpbnRlclRhc2tTdGF0dXMsXG4gICAgSUZTUHJpbnRlckNsaWVudCxcbiAgICBQcmludGVyT3B0aW9ucyxcbiAgICBQcmludGVyUmVxdWVzdE9wdGlvbnMsXG4gICAgUHJpbnRlclJlc3VsdFR5cGVzLFxuICAgIFByaW50QnlSdWxlc09wdGlvbnMsXG4gICAgUlNWUHJpbnRlck9wdGlvbnMsXG59IGZyb20gXCIuL0lGU1ByaW50ZXJDbGllbnRcIjtcblxuZXhwb3J0IGNsYXNzIEZTUHJpbnRlckNsaWVudCBpbXBsZW1lbnRzIElGU1ByaW50ZXJDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSUh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYW5keUFwaURyYWZ0Q2xpZW50OiBJQ2FuZHlBcGlEcmFmdENsaWVudDtcblxuICAgIHByaXZhdGUgcHVsbGluZ0RlbGF5OiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgZmFjdG9yOiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgdGltZW91dDogbnVtYmVyID0gMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFB1bGxpbmdEZWxheTogbnVtYmVyID0gMTIwMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRGYWN0b3I6IG51bWJlciA9IDI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dDogbnVtYmVyID0gMTAwMCAqIDYwICogMTA7XG5cbiAgICBwcml2YXRlIHRhc2tSZXN1bHQ6IEZTUHJpbnRlclRhc2tSZXN1bHQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2Vab25lOiB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uOiB1bmRlZmluZWQgfCBBdXRoZW50aWNhdGlvbk1vZGUsXG4gICAgICAgIGNhbmR5QXBpRHJhZnRDbGllbnQ6IElDYW5keUFwaURyYWZ0Q2xpZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KGZldGNoSW1wbCwgYmFzZVVybCwgY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlcihhdXRoZW50aWNhdGlvbiksIHtcbiAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW5keUFwaURyYWZ0Q2xpZW50ID0gY2FuZHlBcGlEcmFmdENsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJpbnRSU1YoXG4gICAgICAgIHsgdHlwZSwgcmVzdWx0VHlwZSA9IFByaW50ZXJSZXN1bHRUeXBlcy5FeGNlbCB9OiBSU1ZQcmludGVyT3B0aW9ucyxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnNcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUHJpbnRlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICByZXN1bHRUeXBlOiByZXN1bHRUeXBlLFxuICAgICAgICAgICAgcnN2SW5mbzogeyB0eXBlOiB0eXBlIH0sXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQob3B0aW9ucywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludEJ5UnVsZXMob3B0aW9uczogUHJpbnRCeVJ1bGVzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwYXJ0aWFsRnVmVXJpID0gYXdhaXQgdGhpcy5nZXRQYXJ0aWFsRnVmRHJpdmVVcmwob3B0aW9ucy5ydWxlcyk7XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQoe1xuICAgICAgICAgICAgZnVmOiB7XG4gICAgICAgICAgICAgICAgZHJpdmVVcmk6IHBhcnRpYWxGdWZVcmksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0VHlwZTogUHJpbnRlclJlc3VsdFR5cGVzLlBkZixcbiAgICAgICAgICAgIC4uLm9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50KG9wdGlvbnM6IFByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgdGhpcy5jcmVhdGVUYXNrKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCB0aGlzLnJ1bk1vbml0b3JpbmdUYXNrKHRhc2sudGFza0lkKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VXJsID0gdGhpcy50YXNrUmVzdWx0Py5yZXN1bHRVcmk7XG4gICAgICAgIHRoaXMucmVzZXRQcmludFJlc3VsdCgpO1xuICAgICAgICB0aGlzLmRvd25sb2FkRG9jdW1lbnQocmVzdWx0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFBhcnRpYWxGdWZEcml2ZVVybChydWxlczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBkb3dubG9hZEZ1ZkhyZWYgPSBhd2FpdCB0aGlzLmNhbmR5QXBpRHJhZnRDbGllbnQuZ2V0UGFydGlhbEZ1ZihydWxlcyk7XG4gICAgICAgIGlmIChkb3dubG9hZEZ1ZkhyZWYgJiYgZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImRvd25sb2FkRnVmSHJlZiBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEZ1ZkRyaXZlVXJsKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGRvd25sb2FkRnVmSHJlZiA9IGF3YWl0IHRoaXMuY2FuZHlBcGlEcmFmdENsaWVudC5nZXRGdWZXaXRoQXR0YWNobWVudHMoKTtcbiAgICAgICAgaWYgKGRvd25sb2FkRnVmSHJlZiAmJiBkb3dubG9hZEZ1ZkhyZWY/LkZ1Zi5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5GdWYuQ29udGVudFVyaTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb3dubG9hZEZ1ZkhyZWYgaXMgbm90IGRlZmluZWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBydW5Nb25pdG9yaW5nVGFzayh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMudGFza1Jlc3VsdD8ucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNoZWNrVGFzayh0YXNrSWQpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhc2tSZXN1bHQ/LnJlc3VsdFVyaSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGRlbGF5KHRoaXMucHVsbGluZ0RlbGF5KTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1bGxpbmdEZWxheSAqPSB0aGlzLmZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tUYXNrKHRhc2tJZDogc3RyaW5nLCBoYXNFeHBpcmVkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0YXNrU3RhdHVzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChgdjMvdGFza3MvJHt0YXNrSWR9YCkuanNvbjxGU1ByaW50ZXJUYXNrUmVzdWx0PigpO1xuICAgICAgICBpZiAodGFza1N0YXR1cy5lcnJvckluZm8pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0YXNrU3RhdHVzLmVycm9ySW5mby51c2VyTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhc2tTdGF0dXMucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tSZXN1bHQgPSB0YXNrU3RhdHVzO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpbWVvdXQgPD0gdGhpcy5wdWxsaW5nRGVsYXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGltZW91dCAke3RoaXMudGltZW91dCAvIDYwIC8gMTAwMH0gbWluIGZvciBwcmludCBmaWxlIGhhcyBleHBpcmVkYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNyZWF0ZVRhc2sob3B0aW9uczogUHJpbnRlck9wdGlvbnMpOiBQcm9taXNlPEZTUHJpbnRlclRhc2tTdGF0dXM+IHtcbiAgICAgICAgY29uc3QgZnVmVXJsID0gYXdhaXQgdGhpcy5nZXRGdWZEcml2ZVVybCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zV2l0aEZ1ZiA9IHRoaXMuYXBwZW5kRnVmVXJsVG9PcHRpb25zKG9wdGlvbnMsIGZ1ZlVybCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNXaXRoU2VuZGVyID0gdGhpcy5hcHBlbmRTZW5kZXJBcHBUb09wdGlvbnMob3B0aW9uc1dpdGhGdWYpO1xuICAgICAgICBjb25zdCB0YXNrSW5mbyA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoXCJ2My90YXNrc1wiKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShvcHRpb25zV2l0aFNlbmRlcilcbiAgICAgICAgICAgIC5qc29uPEZTUHJpbnRlclRhc2tTdGF0dXM+KCk7XG4gICAgICAgIHJldHVybiB0YXNrSW5mbztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkRG9jdW1lbnQoZHJpdmVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaXNOdWxsT3JFbXB0eShkcml2ZVVybCkpIHtcbiAgICAgICAgICAgIHJlamVjdChg0KHRgdGL0LvQutCwINC90LAg0L/QtdGH0LDRgtGMINC00L7QutGD0LzQtdC90YLQsCDQv9GD0YHRgtCw0Y8g0LjQu9C4IHVuZGVmaW5lZC4g0KLRgNC10LnRgSDQv9C10YfQsNGC0Lg6ICR7dGhpcy50YXNrUmVzdWx0Py50YXNrSWR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93Lm9wZW4oZHJpdmVVcmwsIFwiX2JsYW5rXCIsIFwibm9vcGVuZXIsbm9yZWZlcnJlclwiKT8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZEZ1ZlVybFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucywgZnVmVXJsOiBzdHJpbmcpOiBQcmludGVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7IC4uLm9wdGlvbnMsIGZ1ZjogeyBkcml2ZVVyaTogZnVmVXJsIH0gfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFNlbmRlckFwcFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucyk6IFByaW50ZXJPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9ucywgc2VuZGVyQXBwOiBcImNhbmR5LWZyb250XCIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5wdWxsaW5nRGVsYXkgPSByZXF1ZXN0T3B0aW9ucz8ucHVsbGluZ0RlbGF5ID8/IHRoaXMuZGVmYXVsdFB1bGxpbmdEZWxheTtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSByZXF1ZXN0T3B0aW9ucz8uZmFjdG9yID8/IHRoaXMuZGVmYXVsdEZhY3RvcjtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gcmVxdWVzdE9wdGlvbnM/LnRpbWVvdXQgPz8gdGhpcy5kZWZhdWx0VGltZW91dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0UHJpbnRSZXN1bHQoKSB7XG4gICAgICAgIHRoaXMudGFza1Jlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBV08sTUFBTUssZUFBZSxDQUE2QjtFQWM5Q0MsV0FBV0EsQ0FDZEMsU0FBZ0IsRUFDaEJDLE9BQWUsRUFDZkMsWUFBZ0MsRUFDaENDLGNBQThDLEVBQzlDQyxtQkFBeUMsRUFDM0M7SUFBQSxLQW5CZUMsVUFBVTtJQUFBLEtBQ1ZELG1CQUFtQjtJQUFBLEtBRTVCRSxZQUFZLEdBQVcsQ0FBQztJQUFBLEtBQ3hCQyxNQUFNLEdBQVcsQ0FBQztJQUFBLEtBQ2xCQyxPQUFPLEdBQVcsQ0FBQztJQUFBLEtBRVZDLG1CQUFtQixHQUFXLElBQUk7SUFBQSxLQUNsQ0MsYUFBYSxHQUFXLENBQUM7SUFBQSxLQUN6QkMsY0FBYyxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUFBLEtBRWhEQyxVQUFVO0lBU2QsSUFBSSxDQUFDUCxVQUFVLEdBQUcsSUFBSVEsc0JBQVUsQ0FBQ2IsU0FBUyxFQUFFQyxPQUFPLEVBQUUsSUFBQWEsZ0RBQTRCLEVBQUNYLGNBQWMsQ0FBQyxFQUFFO01BQy9GRCxZQUFZLEVBQUVBO0lBQ2xCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0UsbUJBQW1CLEdBQUdBLG1CQUFtQjtFQUNsRDtFQUVBLE1BQWFXLFFB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
137
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSHR0cENsaWVudCIsInJlcXVpcmUiLCJfQXV0aGVudGljYXRpb25Nb2RlIiwiX3V0aWxzIiwiX1R5cGluZ1V0aWxzIiwiX0lGU1ByaW50ZXJDbGllbnQiLCJGU1ByaW50ZXJDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImNhbmR5QXBpRHJhZnRDbGllbnQiLCJodHRwQ2xpZW50IiwicHVsbGluZ0RlbGF5IiwiZmFjdG9yIiwidGltZW91dCIsImRlZmF1bHRQdWxsaW5nRGVsYXkiLCJkZWZhdWx0RmFjdG9yIiwiZGVmYXVsdFRpbWVvdXQiLCJ0YXNrUmVzdWx0IiwiSHR0cENsaWVudCIsImNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJwcmludFJTViIsInR5cGUiLCJyZXN1bHRUeXBlIiwiUHJpbnRlclJlc3VsdFR5cGVzIiwiRXhjZWwiLCJyZXF1ZXN0T3B0aW9ucyIsIm9wdGlvbnMiLCJyc3ZJbmZvIiwicHJpbnQiLCJwcmludEJ5UnVsZXMiLCJwYXJ0aWFsRnVmVXJpIiwiZ2V0UGFydGlhbEZ1ZkRyaXZlVXJsIiwicnVsZXMiLCJmdWYiLCJkcml2ZVVyaSIsIlBkZiIsIl90aGlzJHRhc2tSZXN1bHQiLCJhcHBseVJlcXVlc3RPcHRpb25zIiwidGFzayIsImNyZWF0ZVRhc2siLCJydW5Nb25pdG9yaW5nVGFzayIsInRhc2tJZCIsInJlc3VsdFVybCIsInJlc3VsdFVyaSIsInJlc2V0UHJpbnRSZXN1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG93bmxvYWRGdWZIcmVmIiwiZ2V0UGFydGlhbEZ1ZiIsIkNvbnRlbnRVcmkiLCJFcnJvciIsImdldEZ1ZkRyaXZlVXJsIiwiZ2V0RnVmV2l0aEF0dGFjaG1lbnRzIiwiRnVmIiwiX3RoaXMkdGFza1Jlc3VsdDIiLCJfdGhpcyR0YXNrUmVzdWx0MyIsImNoZWNrVGFzayIsImRlbGF5IiwiaGFzRXhwaXJlZCIsInRhc2tTdGF0dXMiLCJnZXQiLCJqc29uIiwiZXJyb3JJbmZvIiwidXNlck1lc3NhZ2UiLCJfb3B0aW9ucyRmdWYkZHJpdmVVcmkiLCJfb3B0aW9ucyRmdWYiLCJmdWZVcmwiLCJvcHRpb25zV2l0aEZ1ZiIsImFwcGVuZEZ1ZlVybFRvT3B0aW9ucyIsIm9wdGlvbnNXaXRoU2VuZGVyIiwiYXBwZW5kU2VuZGVyQXBwVG9PcHRpb25zIiwidGFza0luZm8iLCJwb3N0Iiwid2l0aEpzb25Cb2R5IiwiZHJpdmVVcmwiLCJfd2luZG93JG9wZW4iLCJpc051bGxPckVtcHR5IiwiX3RoaXMkdGFza1Jlc3VsdDQiLCJyZWplY3QiLCJ3aW5kb3ciLCJvcGVuIiwiZm9jdXMiLCJzZW5kZXJBcHAiLCJfcmVxdWVzdE9wdGlvbnMkcHVsbGkiLCJfcmVxdWVzdE9wdGlvbnMkZmFjdG8iLCJfcmVxdWVzdE9wdGlvbnMkdGltZW8iLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQ29tbW9uL0ZTUHJpbnRlckNsaWVudC9GU1ByaW50ZXJDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmV0Y2ggfSBmcm9tIFwiLi4vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL0ZldGNoXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBJQ2FuZHlBcGlEcmFmdENsaWVudCB9IGZyb20gXCIuLi9DYW5keUFwaUNsaWVudC9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL3V0aWxzXCI7XG5pbXBvcnQgeyBpc051bGxPckVtcHR5LCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHtcbiAgICBGU1ByaW50ZXJUYXNrUmVzdWx0LFxuICAgIEZTUHJpbnRlclRhc2tTdGF0dXMsXG4gICAgSUZTUHJpbnRlckNsaWVudCxcbiAgICBQcmludGVyT3B0aW9ucyxcbiAgICBQcmludGVyUmVxdWVzdE9wdGlvbnMsXG4gICAgUHJpbnRlclJlc3VsdFR5cGVzLFxuICAgIFByaW50QnlSdWxlc09wdGlvbnMsXG4gICAgUlNWUHJpbnRlck9wdGlvbnMsXG59IGZyb20gXCIuL0lGU1ByaW50ZXJDbGllbnRcIjtcblxuZXhwb3J0IGNsYXNzIEZTUHJpbnRlckNsaWVudCBpbXBsZW1lbnRzIElGU1ByaW50ZXJDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSUh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYW5keUFwaURyYWZ0Q2xpZW50OiBJQ2FuZHlBcGlEcmFmdENsaWVudDtcblxuICAgIHByaXZhdGUgcHVsbGluZ0RlbGF5OiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgZmFjdG9yOiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgdGltZW91dDogbnVtYmVyID0gMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFB1bGxpbmdEZWxheTogbnVtYmVyID0gMTIwMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRGYWN0b3I6IG51bWJlciA9IDI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dDogbnVtYmVyID0gMTAwMCAqIDYwICogMTA7XG5cbiAgICBwcml2YXRlIHRhc2tSZXN1bHQ6IEZTUHJpbnRlclRhc2tSZXN1bHQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2Vab25lOiB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uOiB1bmRlZmluZWQgfCBBdXRoZW50aWNhdGlvbk1vZGUsXG4gICAgICAgIGNhbmR5QXBpRHJhZnRDbGllbnQ6IElDYW5keUFwaURyYWZ0Q2xpZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KGZldGNoSW1wbCwgYmFzZVVybCwgY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlcihhdXRoZW50aWNhdGlvbiksIHtcbiAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW5keUFwaURyYWZ0Q2xpZW50ID0gY2FuZHlBcGlEcmFmdENsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJpbnRSU1YoXG4gICAgICAgIHsgdHlwZSwgcmVzdWx0VHlwZSA9IFByaW50ZXJSZXN1bHRUeXBlcy5FeGNlbCB9OiBSU1ZQcmludGVyT3B0aW9ucyxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnNcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUHJpbnRlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICByZXN1bHRUeXBlOiByZXN1bHRUeXBlLFxuICAgICAgICAgICAgcnN2SW5mbzogeyB0eXBlOiB0eXBlIH0sXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQob3B0aW9ucywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludEJ5UnVsZXMob3B0aW9uczogUHJpbnRCeVJ1bGVzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwYXJ0aWFsRnVmVXJpID0gYXdhaXQgdGhpcy5nZXRQYXJ0aWFsRnVmRHJpdmVVcmwob3B0aW9ucy5ydWxlcyk7XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQoe1xuICAgICAgICAgICAgZnVmOiB7XG4gICAgICAgICAgICAgICAgZHJpdmVVcmk6IHBhcnRpYWxGdWZVcmksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0VHlwZTogUHJpbnRlclJlc3VsdFR5cGVzLlBkZixcbiAgICAgICAgICAgIC4uLm9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50KG9wdGlvbnM6IFByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgdGhpcy5jcmVhdGVUYXNrKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCB0aGlzLnJ1bk1vbml0b3JpbmdUYXNrKHRhc2sudGFza0lkKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VXJsID0gdGhpcy50YXNrUmVzdWx0Py5yZXN1bHRVcmk7XG4gICAgICAgIHRoaXMucmVzZXRQcmludFJlc3VsdCgpO1xuICAgICAgICB0aGlzLmRvd25sb2FkRG9jdW1lbnQocmVzdWx0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFBhcnRpYWxGdWZEcml2ZVVybChydWxlczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBkb3dubG9hZEZ1ZkhyZWYgPSBhd2FpdCB0aGlzLmNhbmR5QXBpRHJhZnRDbGllbnQuZ2V0UGFydGlhbEZ1ZihydWxlcyk7XG4gICAgICAgIGlmIChkb3dubG9hZEZ1ZkhyZWYgJiYgZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImRvd25sb2FkRnVmSHJlZiBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEZ1ZkRyaXZlVXJsKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGRvd25sb2FkRnVmSHJlZiA9IGF3YWl0IHRoaXMuY2FuZHlBcGlEcmFmdENsaWVudC5nZXRGdWZXaXRoQXR0YWNobWVudHMoKTtcbiAgICAgICAgaWYgKGRvd25sb2FkRnVmSHJlZiAmJiBkb3dubG9hZEZ1ZkhyZWY/LkZ1Zi5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5GdWYuQ29udGVudFVyaTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb3dubG9hZEZ1ZkhyZWYgaXMgbm90IGRlZmluZWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBydW5Nb25pdG9yaW5nVGFzayh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMudGFza1Jlc3VsdD8ucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNoZWNrVGFzayh0YXNrSWQpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhc2tSZXN1bHQ/LnJlc3VsdFVyaSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGRlbGF5KHRoaXMucHVsbGluZ0RlbGF5KTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1bGxpbmdEZWxheSAqPSB0aGlzLmZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tUYXNrKHRhc2tJZDogc3RyaW5nLCBoYXNFeHBpcmVkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0YXNrU3RhdHVzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChgdjMvdGFza3MvJHt0YXNrSWR9YCkuanNvbjxGU1ByaW50ZXJUYXNrUmVzdWx0PigpO1xuICAgICAgICBpZiAodGFza1N0YXR1cy5lcnJvckluZm8pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0YXNrU3RhdHVzLmVycm9ySW5mby51c2VyTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhc2tTdGF0dXMucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tSZXN1bHQgPSB0YXNrU3RhdHVzO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpbWVvdXQgPD0gdGhpcy5wdWxsaW5nRGVsYXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGltZW91dCAke3RoaXMudGltZW91dCAvIDYwIC8gMTAwMH0gbWluIGZvciBwcmludCBmaWxlIGhhcyBleHBpcmVkYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNyZWF0ZVRhc2sob3B0aW9uczogUHJpbnRlck9wdGlvbnMpOiBQcm9taXNlPEZTUHJpbnRlclRhc2tTdGF0dXM+IHtcbiAgICAgICAgY29uc3QgZnVmVXJsID0gb3B0aW9ucy5mdWY/LmRyaXZlVXJpID8/IChhd2FpdCB0aGlzLmdldEZ1ZkRyaXZlVXJsKCkpO1xuICAgICAgICBjb25zdCBvcHRpb25zV2l0aEZ1ZiA9IHRoaXMuYXBwZW5kRnVmVXJsVG9PcHRpb25zKG9wdGlvbnMsIGZ1ZlVybCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNXaXRoU2VuZGVyID0gdGhpcy5hcHBlbmRTZW5kZXJBcHBUb09wdGlvbnMob3B0aW9uc1dpdGhGdWYpO1xuICAgICAgICBjb25zdCB0YXNrSW5mbyA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoXCJ2My90YXNrc1wiKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShvcHRpb25zV2l0aFNlbmRlcilcbiAgICAgICAgICAgIC5qc29uPEZTUHJpbnRlclRhc2tTdGF0dXM+KCk7XG4gICAgICAgIHJldHVybiB0YXNrSW5mbztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkRG9jdW1lbnQoZHJpdmVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaXNOdWxsT3JFbXB0eShkcml2ZVVybCkpIHtcbiAgICAgICAgICAgIHJlamVjdChg0KHRgdGL0LvQutCwINC90LAg0L/QtdGH0LDRgtGMINC00L7QutGD0LzQtdC90YLQsCDQv9GD0YHRgtCw0Y8g0LjQu9C4IHVuZGVmaW5lZC4g0KLRgNC10LnRgSDQv9C10YfQsNGC0Lg6ICR7dGhpcy50YXNrUmVzdWx0Py50YXNrSWR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93Lm9wZW4oZHJpdmVVcmwsIFwiX2JsYW5rXCIsIFwibm9vcGVuZXIsbm9yZWZlcnJlclwiKT8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZEZ1ZlVybFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucywgZnVmVXJsOiBzdHJpbmcpOiBQcmludGVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7IC4uLm9wdGlvbnMsIGZ1ZjogeyBkcml2ZVVyaTogZnVmVXJsIH0gfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFNlbmRlckFwcFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucyk6IFByaW50ZXJPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9ucywgc2VuZGVyQXBwOiBcImNhbmR5LWZyb250XCIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5wdWxsaW5nRGVsYXkgPSByZXF1ZXN0T3B0aW9ucz8ucHVsbGluZ0RlbGF5ID8/IHRoaXMuZGVmYXVsdFB1bGxpbmdEZWxheTtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSByZXF1ZXN0T3B0aW9ucz8uZmFjdG9yID8/IHRoaXMuZGVmYXVsdEZhY3RvcjtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gcmVxdWVzdE9wdGlvbnM/LnRpbWVvdXQgPz8gdGhpcy5kZWZhdWx0VGltZW91dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0UHJpbnRSZXN1bHQoKSB7XG4gICAgICAgIHRoaXMudGFza1Jlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBV08sTUFBTUssZUFBZSxDQUE2QjtFQWM5Q0MsV0FBV0EsQ0FDZEMsU0FBZ0IsRUFDaEJDLE9BQWUsRUFDZkMsWUFBZ0MsRUFDaENDLGNBQThDLEVBQzlDQyxtQkFBeUMsRUFDM0M7SUFBQSxLQW5CZUMsVUFBVTtJQUFBLEtBQ1ZELG1CQUFtQjtJQUFBLEtBRTVCRSxZQUFZLEdBQVcsQ0FBQztJQUFBLEtBQ3hCQyxNQUFNLEdBQVcsQ0FBQztJQUFBLEtBQ2xCQyxPQUFPLEdBQVcsQ0FBQztJQUFBLEtBRVZDLG1CQUFtQixHQUFXLElBQUk7SUFBQSxLQUNsQ0MsYUFBYSxHQUFXLENBQUM7SUFBQSxLQUN6QkMsY0FBYyxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUFBLEtBRWhEQyxVQUFVO0lBU2QsSUFBSSxDQUFDUCxVQUFVLEdBQUcsSUFBSVEsc0JBQVUsQ0FBQ2IsU0FBUyxFQUFFQyxPQUFPLEVBQUUsSUFBQWEsZ0RBQTRCLEVBQUNYLGNBQWMsQ0FBQyxFQUFFO01BQy9GRCxZQUFZLEVBQUVBO0lBQ2xC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
@@ -55,7 +55,7 @@ class AcquirePublishedEngineTask extends _ChainableValueProducer.ObservableValue
55
55
  }
56
56
  execute(generatorDirectory, command) {
57
57
  const workingDirectory = generatorDirectory;
58
- const [executable, ...executableArguments] = command.split(" ");
58
+ const [executable, ...executableArguments] = ((process.platform === "linux" ? "unbuffer " : "") + command).split(" ");
59
59
  return new Promise((resolve, rejectPromise) => {
60
60
  const watchProcess = (0, _child_process.spawn)(executable !== null && executable !== void 0 ? executable : (0, _TypingUtils.reject)(), executableArguments, {
61
61
  cwd: workingDirectory,
@@ -80,4 +80,4 @@ class AcquirePublishedEngineTask extends _ChainableValueProducer.ObservableValue
80
80
  }
81
81
  }
82
82
  exports.AcquirePublishedEngineTask = AcquirePublishedEngineTask;
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZnNFeHRyYSIsIl9wTGltaXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1N0YXRpY0xvZ2dlciIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwiX1R5cGluZ1V0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkFjcXVpcmVQdWJsaXNoZWRFbmdpbmVUYXNrIiwiT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIiwiY29uc3RydWN0b3IiLCJ2ZXJzaW9uIiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwidXNlVmVyc2lvbkZyb21DYWNoZSIsImxvZ2dlciIsImdldExvZ2dlciIsImNhY2hlRGlyZWN0b3J5IiwiYWNxdWlyZWQiLCJhY3F1aXJlTGltaXQiLCJwTGltaXQiLCJ3aXRoUHJlZml4IiwiZ2V0Q3VycmVudFZhbHVlIiwiZW5naW5lRGlyZWN0b3J5Iiwiam9pbiIsInVzZUdlbmVyYXRvckZyb21DYWNoZSIsInBhdGhFeGlzdHMiLCJwcmVwYXJlRW5naW5lRGlyZWN0b3J5IiwibG9nIiwiZXhlY3V0ZSIsInJlc29sdmUiLCJiZWdpbkxpc3RlbmluZyIsInN0b3BMaXN0ZW5pbmciLCJnZW5lcmF0b3JEaXJlY3RvcnkiLCJlbnN1cmVEaXIiLCJvdXRwdXRGaWxlIiwiY29tbWFuZCIsIndvcmtpbmdEaXJlY3RvcnkiLCJleGVjdXRhYmxlIiwiZXhlY3V0YWJsZUFyZ3VtZW50cyIsInNwbGl0IiwiUHJvbWlzZSIsInJlamVjdFByb21pc2UiLCJ3YXRjaFByb2Nlc3MiLCJzcGF3biIsInJlamVjdCIsImN3ZCIsInNoZWxsIiwid2luZG93c0hpZGUiLCJzdGRpbyIsInN0ZG91dCIsIm9uIiwiZGF0YSIsInZlcmJvc2UiLCJ0b1N0cmluZyIsInN0ZGVyciIsImNvZGUiLCJFcnJvciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQnVpbGRUYXNrcy9FbmdpbmUvQWNxdWlyZVB1Ymxpc2hlZEVuZ2luZVRhc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG91dHB1dEZpbGUsIHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcblxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY3F1aXJlUHVibGlzaGVkRW5naW5lVGFzayBleHRlbmRzIE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZTxzdHJpbmc+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBhY3F1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjcXVpcmVMaW1pdCA9IHBMaW1pdCgxKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmVyc2lvbjogc3RyaW5nLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbixcbiAgICAgICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIud2l0aFByZWZpeChcIkVOR0lORVwiKTtcbiAgICAgICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgdGhpcy5jYWNoZURpcmVjdG9yeSA9IGNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcbiAgICAgICAgdGhpcy51c2VWZXJzaW9uRnJvbUNhY2hlID0gdXNlVmVyc2lvbkZyb21DYWNoZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGVuZ2luZURpcmVjdG9yeSA9IHBhdGguam9pbih0aGlzLmNhY2hlRGlyZWN0b3J5LCBcImVuZ2luZXNcIiwgdGhpcy52ZXJzaW9uKTtcbiAgICAgICAgY29uc3QgdXNlR2VuZXJhdG9yRnJvbUNhY2hlID0gdGhpcy51c2VWZXJzaW9uRnJvbUNhY2hlICYmIChhd2FpdCBwYXRoRXhpc3RzKGVuZ2luZURpcmVjdG9yeSkpO1xuICAgICAgICBpZiAoIXRoaXMuYWNxdWlyZWQgJiYgIXVzZUdlbmVyYXRvckZyb21DYWNoZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hY3F1aXJlTGltaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5hY3F1aXJlZCAmJiAhdXNlR2VuZXJhdG9yRnJvbUNhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZUVuZ2luZURpcmVjdG9yeShlbmdpbmVEaXJlY3RvcnkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYEFjcXVpcmluZyBlbmdpbmUgdiR7dGhpcy52ZXJzaW9ufWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoZW5naW5lRGlyZWN0b3J5LCBgbnBtIGluc3RhbGwgQGtvbnR1ci5jYW5keS9lbmdpbmVAJHt0aGlzLnZlcnNpb259YCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNxdWlyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoZW5naW5lRGlyZWN0b3J5LCBcIm5vZGVfbW9kdWxlc1wiLCBcIkBrb250dXIuY2FuZHlcIiwgXCJlbmdpbmVcIiwgXCJwdWJsaWNcIik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGJlZ2luTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyDQndC10YIg0L/RgNC10LTQutC+0LIg0Lgg0YLRg9GCINC90LXRh9C10LPQviDQvdCw0LHQu9GO0LTQsNGC0YxcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgc3RvcExpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8g0J3QtdGCINC/0YDQtdC00LrQvtCyINC4INGC0YPRgiDQvdC10YfQtdCz0L4g0L3QsNCx0LvRjtC00LDRgtGMXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlRW5naW5lRGlyZWN0b3J5KGdlbmVyYXRvckRpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcihnZW5lcmF0b3JEaXJlY3RvcnkpO1xuICAgICAgICBhd2FpdCBvdXRwdXRGaWxlKFxuICAgICAgICAgICAgcGF0aC5yZXNvbHZlKGdlbmVyYXRvckRpcmVjdG9yeSwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgICAgICAgICBgeyBcIm5hbWVcIjogXCJlbmdpbmVcIiwgXCJ2ZXJzaW9uXCI6IFwiMS4wLjBcIiwgXCJkZXNjcmlwdGlvblwiOiBcIkVuZ2luZVwiLCBcImF1dGhvclwiOiBcIlwiIH1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjdXRlKGdlbmVyYXRvckRpcmVjdG9yeTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IGdlbmVyYXRvckRpcmVjdG9yeTtcbiAgICAgICAgY29uc3QgW2V4ZWN1dGFibGUsIC4uLmV4ZWN1dGFibGVBcmd1bWVudHNdID0gY29tbWFuZC5zcGxpdChcIiBcIik7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0UHJvbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2F0Y2hQcm9jZXNzID0gc3Bhd24oZXhlY3V0YWJsZSA/PyByZWplY3QoKSwgZXhlY3V0YWJsZUFyZ3VtZW50cywge1xuICAgICAgICAgICAgICAgIGN3ZDogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB3aW5kb3dzSGlkZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGRpbzogXCJwaXBlXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5zdGRvdXQub24oXCJkYXRhXCIsIChkYXRhOiBCdWZmZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci52ZXJib3NlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5zdGRlcnIub24oXCJkYXRhXCIsIChkYXRhOiBCdWZmZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci52ZXJib3NlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5vbihcImV4aXRcIiwgY29kZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvZGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0UHJvbWlzZShuZXcgRXJyb3IoYENvbW1hbmQgJHtjb21tYW5kfSBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFHQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyx1QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsWUFBQSxHQUFBUixPQUFBO0FBQXdELFNBQUFTLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFB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
83
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZnNFeHRyYSIsIl9wTGltaXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1N0YXRpY0xvZ2dlciIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwiX1R5cGluZ1V0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkFjcXVpcmVQdWJsaXNoZWRFbmdpbmVUYXNrIiwiT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIiwiY29uc3RydWN0b3IiLCJ2ZXJzaW9uIiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwidXNlVmVyc2lvbkZyb21DYWNoZSIsImxvZ2dlciIsImdldExvZ2dlciIsImNhY2hlRGlyZWN0b3J5IiwiYWNxdWlyZWQiLCJhY3F1aXJlTGltaXQiLCJwTGltaXQiLCJ3aXRoUHJlZml4IiwiZ2V0Q3VycmVudFZhbHVlIiwiZW5naW5lRGlyZWN0b3J5Iiwiam9pbiIsInVzZUdlbmVyYXRvckZyb21DYWNoZSIsInBhdGhFeGlzdHMiLCJwcmVwYXJlRW5naW5lRGlyZWN0b3J5IiwibG9nIiwiZXhlY3V0ZSIsInJlc29sdmUiLCJiZWdpbkxpc3RlbmluZyIsInN0b3BMaXN0ZW5pbmciLCJnZW5lcmF0b3JEaXJlY3RvcnkiLCJlbnN1cmVEaXIiLCJvdXRwdXRGaWxlIiwiY29tbWFuZCIsIndvcmtpbmdEaXJlY3RvcnkiLCJleGVjdXRhYmxlIiwiZXhlY3V0YWJsZUFyZ3VtZW50cyIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsInNwbGl0IiwiUHJvbWlzZSIsInJlamVjdFByb21pc2UiLCJ3YXRjaFByb2Nlc3MiLCJzcGF3biIsInJlamVjdCIsImN3ZCIsInNoZWxsIiwid2luZG93c0hpZGUiLCJzdGRpbyIsInN0ZG91dCIsIm9uIiwiZGF0YSIsInZlcmJvc2UiLCJ0b1N0cmluZyIsInN0ZGVyciIsImNvZGUiLCJFcnJvciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQnVpbGRUYXNrcy9FbmdpbmUvQWNxdWlyZVB1Ymxpc2hlZEVuZ2luZVRhc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG91dHB1dEZpbGUsIHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcblxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY3F1aXJlUHVibGlzaGVkRW5naW5lVGFzayBleHRlbmRzIE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZTxzdHJpbmc+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBhY3F1aXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjcXVpcmVMaW1pdCA9IHBMaW1pdCgxKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmVyc2lvbjogc3RyaW5nLFxuICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgdXNlVmVyc2lvbkZyb21DYWNoZTogYm9vbGVhbixcbiAgICAgICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIud2l0aFByZWZpeChcIkVOR0lORVwiKTtcbiAgICAgICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgdGhpcy5jYWNoZURpcmVjdG9yeSA9IGNhbmR5TW9kdWxlc0RpcmVjdG9yeTtcbiAgICAgICAgdGhpcy51c2VWZXJzaW9uRnJvbUNhY2hlID0gdXNlVmVyc2lvbkZyb21DYWNoZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGVuZ2luZURpcmVjdG9yeSA9IHBhdGguam9pbih0aGlzLmNhY2hlRGlyZWN0b3J5LCBcImVuZ2luZXNcIiwgdGhpcy52ZXJzaW9uKTtcbiAgICAgICAgY29uc3QgdXNlR2VuZXJhdG9yRnJvbUNhY2hlID0gdGhpcy51c2VWZXJzaW9uRnJvbUNhY2hlICYmIChhd2FpdCBwYXRoRXhpc3RzKGVuZ2luZURpcmVjdG9yeSkpO1xuICAgICAgICBpZiAoIXRoaXMuYWNxdWlyZWQgJiYgIXVzZUdlbmVyYXRvckZyb21DYWNoZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hY3F1aXJlTGltaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5hY3F1aXJlZCAmJiAhdXNlR2VuZXJhdG9yRnJvbUNhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZUVuZ2luZURpcmVjdG9yeShlbmdpbmVEaXJlY3RvcnkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYEFjcXVpcmluZyBlbmdpbmUgdiR7dGhpcy52ZXJzaW9ufWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoZW5naW5lRGlyZWN0b3J5LCBgbnBtIGluc3RhbGwgQGtvbnR1ci5jYW5keS9lbmdpbmVAJHt0aGlzLnZlcnNpb259YCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNxdWlyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoZW5naW5lRGlyZWN0b3J5LCBcIm5vZGVfbW9kdWxlc1wiLCBcIkBrb250dXIuY2FuZHlcIiwgXCJlbmdpbmVcIiwgXCJwdWJsaWNcIik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGJlZ2luTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyDQndC10YIg0L/RgNC10LTQutC+0LIg0Lgg0YLRg9GCINC90LXRh9C10LPQviDQvdCw0LHQu9GO0LTQsNGC0YxcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgc3RvcExpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8g0J3QtdGCINC/0YDQtdC00LrQvtCyINC4INGC0YPRgiDQvdC10YfQtdCz0L4g0L3QsNCx0LvRjtC00LDRgtGMXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlRW5naW5lRGlyZWN0b3J5KGdlbmVyYXRvckRpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcihnZW5lcmF0b3JEaXJlY3RvcnkpO1xuICAgICAgICBhd2FpdCBvdXRwdXRGaWxlKFxuICAgICAgICAgICAgcGF0aC5yZXNvbHZlKGdlbmVyYXRvckRpcmVjdG9yeSwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgICAgICAgICBgeyBcIm5hbWVcIjogXCJlbmdpbmVcIiwgXCJ2ZXJzaW9uXCI6IFwiMS4wLjBcIiwgXCJkZXNjcmlwdGlvblwiOiBcIkVuZ2luZVwiLCBcImF1dGhvclwiOiBcIlwiIH1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjdXRlKGdlbmVyYXRvckRpcmVjdG9yeTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IGdlbmVyYXRvckRpcmVjdG9yeTtcbiAgICAgICAgY29uc3QgW2V4ZWN1dGFibGUsIC4uLmV4ZWN1dGFibGVBcmd1bWVudHNdID0gKFxuICAgICAgICAgICAgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwibGludXhcIiA/IFwidW5idWZmZXIgXCIgOiBcIlwiKSArIGNvbW1hbmRcbiAgICAgICAgKS5zcGxpdChcIiBcIik7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0UHJvbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2F0Y2hQcm9jZXNzID0gc3Bhd24oZXhlY3V0YWJsZSA/PyByZWplY3QoKSwgZXhlY3V0YWJsZUFyZ3VtZW50cywge1xuICAgICAgICAgICAgICAgIGN3ZDogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB3aW5kb3dzSGlkZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGRpbzogXCJwaXBlXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5zdGRvdXQub24oXCJkYXRhXCIsIChkYXRhOiBCdWZmZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci52ZXJib3NlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5zdGRlcnIub24oXCJkYXRhXCIsIChkYXRhOiBCdWZmZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci52ZXJib3NlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoUHJvY2Vzcy5vbihcImV4aXRcIiwgY29kZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvZGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0UHJvbWlzZShuZXcgRXJyb3IoYENvbW1hbmQgJHtjb21tYW5kfSBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFHQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyx1QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFB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
@@ -10,6 +10,13 @@ var _treeKill = _interopRequireDefault(require("tree-kill"));
10
10
  var _ShellProcessHandle = require("./ShellProcessHandle");
11
11
  class ProcessUtils {
12
12
  static createShellProcess(command, args, workingDirectory) {
13
+ if (command == "npm" && process.platform === "linux") {
14
+ return new _ShellProcessHandle.ShellProcessHandle({
15
+ args: [command, ...(args !== null && args !== void 0 ? args : [])],
16
+ command: "unbuffer",
17
+ workingDirectory: workingDirectory
18
+ });
19
+ }
13
20
  return new _ShellProcessHandle.ShellProcessHandle({
14
21
  args: args || [],
15
22
  command: command,
@@ -54,4 +61,4 @@ class ProcessUtils {
54
61
  }
55
62
  }
56
63
  exports.ProcessUtils = ProcessUtils;
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2hlbGxqcyIsInJlcXVpcmUiLCJfdHJlZUtpbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NoZWxsUHJvY2Vzc0hhbmRsZSIsIlByb2Nlc3NVdGlscyIsImNyZWF0ZVNoZWxsUHJvY2VzcyIsImNvbW1hbmQiLCJhcmdzIiwid29ya2luZ0RpcmVjdG9yeSIsIlNoZWxsUHJvY2Vzc0hhbmRsZSIsImtpbGxUcmVlQXN5bmMiLCJwaWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInRyZWVLaWxsIiwiZXJyIiwiZXhlY1NoZWxsQ29tbWFuZCIsImxvZ2dlciIsInZlcmJvc2UiLCJleGVjIiwiam9pbiIsImN3ZCIsImFzeW5jIiwic2lsZW50IiwiY29kZSIsInN0ZG91dCIsInN0ZGVyciIsImxpbmUiLCJzcGxpdCIsIkVycm9yIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1Byb2Nlc3NVdGlscy9Qcm9jZXNzVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgRXhlY091dHB1dFJldHVyblZhbHVlIH0gZnJvbSBcInNoZWxsanNcIjtcbmltcG9ydCB0cmVlS2lsbCBmcm9tIFwidHJlZS1raWxsXCI7XG5cbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcblxuaW1wb3J0IHsgU2hlbGxQcm9jZXNzSGFuZGxlIH0gZnJvbSBcIi4vU2hlbGxQcm9jZXNzSGFuZGxlXCI7XG5cbmV4cG9ydCBjbGFzcyBQcm9jZXNzVXRpbHMge1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2hlbGxQcm9jZXNzKGNvbW1hbmQ6IHN0cmluZywgYXJncz86IHN0cmluZ1tdLCB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nKTogU2hlbGxQcm9jZXNzSGFuZGxlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTaGVsbFByb2Nlc3NIYW5kbGUoe1xuICAgICAgICAgICAgYXJnczogYXJncyB8fCBbXSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IGNvbW1hbmQsXG4gICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3JraW5nRGlyZWN0b3J5LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGtpbGxUcmVlQXN5bmMocGlkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRyZWVLaWxsKHBpZCwgXCJTSUdLSUxMXCIsIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZXhlY1NoZWxsQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogc3RyaW5nLFxuICAgICAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBsb2dnZXI6IElMb2dnZXJcbiAgICApOiBQcm9taXNlPEV4ZWNPdXRwdXRSZXR1cm5WYWx1ZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8RXhlY091dHB1dFJldHVyblZhbHVlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBsb2dnZXIudmVyYm9zZShgUnVuOiAke2NvbW1hbmR9YCk7XG4gICAgICAgICAgICBleGVjKFxuICAgICAgICAgICAgICAgIFtjb21tYW5kLCAuLi5hcmdzXS5qb2luKFwiIFwiKSxcbiAgICAgICAgICAgICAgICB7IGN3ZDogd29ya2luZ0RpcmVjdG9yeSwgYXN5bmM6IHRydWUsIHNpbGVudDogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIChjb2RlLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygc3Rkb3V0LnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIudmVyYm9zZShsaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBzdGRlcnIuc3BsaXQoXCJcXG5cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci52ZXJib3NlKGxpbmUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYEV4ZWN1dGVkIHdpdGggZXhpdCBjb2RlICR7Y29kZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0OiBzdGRvdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI6IHN0ZGVycixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsbUJBQUEsR0FBQUgsT0FBQTtBQUVPLE1BQU1JLFlBQVksQ0FBQztFQUN0QixPQUFjQyxrQkFBa0JBLENBQUNDLE9BQWUsRUFBRUMsSUFBZSxFQUFFQyxnQkFBeUIsRUFBc0I7SUFDOUcsT0FBTyxJQUFJQyxzQ0FBa0IsQ0FBQztNQUMxQkYsSUFBSSxFQUFFQSxJQUFJLElBQUksRUFBRTtNQUNoQkQsT0FBTyxFQUFFQSxPQUFPO01BQ2hCRSxnQkFBZ0IsRUFBRUE7SUFDdEIsQ0FBQyxDQUFDO0VBQ047RUFFQSxPQUFjRSxhQUFhQSxDQUFDQyxHQUFXLEVBQWlCO0lBQ3BELE9BQU8sSUFBSUMsT0FBTyxDQUFPLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQzFDLElBQUFDLGlCQUFRLEVBQUNKLEdBQUcsRUFBRSxTQUFTLEVBQUVLLEdBQUcsSUFBSTtRQUM1QixJQUFJQSxHQUFHLEVBQUU7VUFDTEYsTUFBTSxDQUFDRSxHQUFHLENBQUM7UUFDZixDQUFDLE1BQU07VUFDSEgsT0FBTyxDQUFDLENBQUM7UUFDYjtNQUNKLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztFQUNOO0VBRUEsT0FBY0ksZ0JBQWdCQSxDQUMxQlgsT0FBZSxFQUNmQyxJQUFjLEVBQ2RDLGdCQUF3QixFQUN4QlUsTUFBZSxFQUNlO0lBQzlCLE9BQU8sSUFBSU4sT0FBTyxDQUF3QixDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUMzREksTUFBTSxDQUFDQyxPQUFPLENBQUUsUUFBT2IsT0FBUSxFQUFDLENBQUM7TUFDakMsSUFBQWMsYUFBSSxFQUNBLENBQUNkLE9BQU8sRUFBRSxHQUFHQyxJQUFJLENBQUMsQ0FBQ2MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUM1QjtRQUFFQyxHQUFHLEVBQUVkLGdCQUFnQjtRQUFFZSxLQUFLLEVBQUUsSUFBSTtRQUFFQyxNQUFNLEVBQUU7TUFBSyxDQUFDLEVBQ3BELENBQUNDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxNQUFNLEtBQUs7UUFDdEIsS0FBSyxNQUFNQyxJQUFJLElBQUlGLE1BQU0sQ0FBQ0csS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1VBQ25DWCxNQUFNLENBQUNDLE9BQU8sQ0FBQ1MsSUFBSSxDQUFDO1FBQ3hCO1FBRUEsS0FBSyxNQUFNQSxJQUFJLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1VBQ25DWCxNQUFNLENBQUNDLE9BQU8sQ0FBQ1MsSUFBSSxDQUFDO1FBQ3hCO1FBRUEsSUFBSUgsSUFBSSxLQUFLLENBQUMsRUFBRTtVQUNaWCxNQUFNLENBQUMsSUFBSWdCLEtBQUssQ0FBRSwyQkFBMEJMLElBQUssRUFBQyxDQUFDLENBQUM7UUFDeEQ7UUFDQVosT0FBTyxDQUFDO1VBQ0pZLElBQUksRUFBRSxDQUFDO1VBQ1BDLE1BQU0sRUFBRUEsTUFBTTtVQUNkQyxNQUFNLEVBQUVBO1FBQ1osQ0FBQyxDQUFDO01BQ04sQ0FDSixDQUFDO0lBQ0wsQ0FBQyxDQUFDO0VBQ047QUFDSjtBQUFDSSxPQUFBLENBQUEzQixZQUFBLEdBQUFBLFlBQUEifQ==
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2hlbGxqcyIsInJlcXVpcmUiLCJfdHJlZUtpbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NoZWxsUHJvY2Vzc0hhbmRsZSIsIlByb2Nlc3NVdGlscyIsImNyZWF0ZVNoZWxsUHJvY2VzcyIsImNvbW1hbmQiLCJhcmdzIiwid29ya2luZ0RpcmVjdG9yeSIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsIlNoZWxsUHJvY2Vzc0hhbmRsZSIsImtpbGxUcmVlQXN5bmMiLCJwaWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInRyZWVLaWxsIiwiZXJyIiwiZXhlY1NoZWxsQ29tbWFuZCIsImxvZ2dlciIsInZlcmJvc2UiLCJleGVjIiwiam9pbiIsImN3ZCIsImFzeW5jIiwic2lsZW50IiwiY29kZSIsInN0ZG91dCIsInN0ZGVyciIsImxpbmUiLCJzcGxpdCIsIkVycm9yIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1Byb2Nlc3NVdGlscy9Qcm9jZXNzVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlYywgRXhlY091dHB1dFJldHVyblZhbHVlIH0gZnJvbSBcInNoZWxsanNcIjtcbmltcG9ydCB0cmVlS2lsbCBmcm9tIFwidHJlZS1raWxsXCI7XG5cbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcblxuaW1wb3J0IHsgU2hlbGxQcm9jZXNzSGFuZGxlIH0gZnJvbSBcIi4vU2hlbGxQcm9jZXNzSGFuZGxlXCI7XG5cbmV4cG9ydCBjbGFzcyBQcm9jZXNzVXRpbHMge1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2hlbGxQcm9jZXNzKGNvbW1hbmQ6IHN0cmluZywgYXJncz86IHN0cmluZ1tdLCB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nKTogU2hlbGxQcm9jZXNzSGFuZGxlIHtcbiAgICAgICAgaWYgKGNvbW1hbmQgPT0gXCJucG1cIiAmJiBwcm9jZXNzLnBsYXRmb3JtID09PSBcImxpbnV4XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2hlbGxQcm9jZXNzSGFuZGxlKHtcbiAgICAgICAgICAgICAgICBhcmdzOiBbY29tbWFuZCwgLi4uKGFyZ3MgPz8gW10pXSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiBcInVuYnVmZmVyXCIsXG4gICAgICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgU2hlbGxQcm9jZXNzSGFuZGxlKHtcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgfHwgW10sXG4gICAgICAgICAgICBjb21tYW5kOiBjb21tYW5kLFxuICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBraWxsVHJlZUFzeW5jKHBpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0cmVlS2lsbChwaWQsIFwiU0lHS0lMTFwiLCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGV4ZWNTaGVsbENvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICAgICAgYXJnczogc3RyaW5nW10sXG4gICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgbG9nZ2VyOiBJTG9nZ2VyXG4gICAgKTogUHJvbWlzZTxFeGVjT3V0cHV0UmV0dXJuVmFsdWU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEV4ZWNPdXRwdXRSZXR1cm5WYWx1ZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLnZlcmJvc2UoYFJ1bjogJHtjb21tYW5kfWApO1xuICAgICAgICAgICAgZXhlYyhcbiAgICAgICAgICAgICAgICBbY29tbWFuZCwgLi4uYXJnc10uam9pbihcIiBcIiksXG4gICAgICAgICAgICAgICAgeyBjd2Q6IHdvcmtpbmdEaXJlY3RvcnksIGFzeW5jOiB0cnVlLCBzaWxlbnQ6IHRydWUgfSxcbiAgICAgICAgICAgICAgICAoY29kZSwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIHN0ZG91dC5zcGxpdChcIlxcblwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnZlcmJvc2UobGluZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygc3RkZXJyLnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIudmVyYm9zZShsaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBFeGVjdXRlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dDogc3Rkb3V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyOiBzdGRlcnIsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUlBLElBQUFHLG1CQUFBLEdBQUFILE9BQUE7QUFFTyxNQUFNSSxZQUFZLENBQUM7RUFDdEIsT0FBY0Msa0JBQWtCQSxDQUFDQyxPQUFlLEVBQUVDLElBQWUsRUFBRUMsZ0JBQXlCLEVBQXNCO0lBQzlHLElBQUlGLE9BQU8sSUFBSSxLQUFLLElBQUlHLE9BQU8sQ0FBQ0MsUUFBUSxLQUFLLE9BQU8sRUFBRTtNQUNsRCxPQUFPLElBQUlDLHNDQUFrQixDQUFDO1FBQzFCSixJQUFJLEVBQUUsQ0FBQ0QsT0FBTyxFQUFFLElBQUlDLElBQUksYUFBSkEsSUFBSSxjQUFKQSxJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7UUFDaENELE9BQU8sRUFBRSxVQUFVO1FBQ25CRSxnQkFBZ0IsRUFBRUE7TUFDdEIsQ0FBQyxDQUFDO0lBQ047SUFDQSxPQUFPLElBQUlHLHNDQUFrQixDQUFDO01BQzFCSixJQUFJLEVBQUVBLElBQUksSUFBSSxFQUFFO01BQ2hCRCxPQUFPLEVBQUVBLE9BQU87TUFDaEJFLGdCQUFnQixFQUFFQTtJQUN0QixDQUFDLENBQUM7RUFDTjtFQUVBLE9BQWNJLGFBQWFBLENBQUNDLEdBQVcsRUFBaUI7SUFDcEQsT0FBTyxJQUFJQyxPQUFPLENBQU8sQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDMUMsSUFBQUMsaUJBQVEsRUFBQ0osR0FBRyxFQUFFLFNBQVMsRUFBRUssR0FBRyxJQUFJO1FBQzVCLElBQUlBLEdBQUcsRUFBRTtVQUNMRixNQUFNLENBQUNFLEdBQUcsQ0FBQztRQUNmLENBQUMsTUFBTTtVQUNISCxPQUFPLENBQUMsQ0FBQztRQUNiO01BQ0osQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0VBQ047RUFFQSxPQUFjSSxnQkFBZ0JBLENBQzFCYixPQUFlLEVBQ2ZDLElBQWMsRUFDZEMsZ0JBQXdCLEVBQ3hCWSxNQUFlLEVBQ2U7SUFDOUIsT0FBTyxJQUFJTixPQUFPLENBQXdCLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQzNESSxNQUFNLENBQUNDLE9BQU8sQ0FBRSxRQUFPZixPQUFRLEVBQUMsQ0FBQztNQUNqQyxJQUFBZ0IsYUFBSSxFQUNBLENBQUNoQixPQUFPLEVBQUUsR0FBR0MsSUFBSSxDQUFDLENBQUNnQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQzVCO1FBQUVDLEdBQUcsRUFBRWhCLGdCQUFnQjtRQUFFaUIsS0FBSyxFQUFFLElBQUk7UUFBRUMsTUFBTSxFQUFFO01BQUssQ0FBQyxFQUNwRCxDQUFDQyxJQUFJLEVBQUVDLE1BQU0sRUFBRUMsTUFBTSxLQUFLO1FBQ3RCLEtBQUssTUFBTUMsSUFBSSxJQUFJRixNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtVQUNuQ1gsTUFBTSxDQUFDQyxPQUFPLENBQUNTLElBQUksQ0FBQztRQUN4QjtRQUVBLEtBQUssTUFBTUEsSUFBSSxJQUFJRCxNQUFNLENBQUNFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtVQUNuQ1gsTUFBTSxDQUFDQyxPQUFPLENBQUNTLElBQUksQ0FBQztRQUN4QjtRQUVBLElBQUlILElBQUksS0FBSyxDQUFDLEVBQUU7VUFDWlgsTUFBTSxDQUFDLElBQUlnQixLQUFLLENBQUUsMkJBQTBCTCxJQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3hEO1FBQ0FaLE9BQU8sQ0FBQztVQUNKWSxJQUFJLEVBQUUsQ0FBQztVQUNQQyxNQUFNLEVBQUVBLE1BQU07VUFDZEMsTUFBTSxFQUFFQTtRQUNaLENBQUMsQ0FBQztNQUNOLENBQ0osQ0FBQztJQUNMLENBQUMsQ0FBQztFQUNOO0FBQ0o7QUFBQ0ksT0FBQSxDQUFBN0IsWUFBQSxHQUFBQSxZQUFBIn0=
@@ -148,7 +148,8 @@ async function getPackageVersionsInReverseOrder(packageName) {
148
148
  return cachedResult;
149
149
  }
150
150
  const output = await new Promise((resolve, reject) => {
151
- (0, _shelljs.exec)(`npm view ${packageName} versions --json`, {
151
+ const command = (process.platform === "linux" ? "unbuffer " : "") + `npm view ${packageName} versions --json`;
152
+ (0, _shelljs.exec)(command, {
152
153
  async: true,
153
154
  silent: true
154
155
  }, (code, stdout, stderr) => {
@@ -165,4 +166,4 @@ async function getPackageVersionsInReverseOrder(packageName) {
165
166
  packageVersionsCache.set(packageName, sortedVersions);
166
167
  return sortedVersions;
167
168
  }
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZW12ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2hlbGxqcyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjYW5keUdlbmVyYXRvclBhY2thZ2VOYW1lIiwiY2FuZHlFbmdpbmVQYWNrYWdlTmFtZSIsImlzU3RhYmxlVmVyc2lvbiIsInZlcnNpb24iLCJwYXJzZWRWZXJzaW9uIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJwcmVyZWxlYXNlIiwibGVuZ3RoIiwiaXNQcmVyZWxlYXNlVmVyc2lvbldpdGhQcmVJZCIsInByZWlkIiwiaXNFbmdpbmVWZXJzaW9uRXhpc3RzIiwiZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIiLCJpbmNsdWRlcyIsImdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uIiwic29ydGVkVmVyc2lvbnMiLCJFcnJvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwiZ2V0TGFzdEVuZ2luZVByZXJlbGVhc2VWZXJzaW9uIiwiZ2V0TGFzdEdlbmVyYXRvclByZXJlbGVhc2VWZXJzaW9uIiwicmVzb2x2ZUdlbmVyYXRvclZlcnNpb24iLCJ2ZXJzaW9uU3BlYyIsImxvZ2dlciIsImdldExvZ2dlciIsImdldFN1aXRhYmxlVmVyc2lvbiIsIndpdGhQcmVmaXgiLCJsb2ciLCJjYW5keVZlcnNpb25TcGVjVG9TdHJpbmciLCJ0eXBlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lRGlyZWN0b3J5IiwicGF0aCIsInJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSIsInJlc29sdmVFbmdpbmVWZXJzaW9uIiwicGFja2FnZU5hbWUiLCJleHBlY3RlZFByZXJlbGVhc2UiLCJwcmVJZCIsInJlc3VsdCIsImZpbmQiLCJ4Iiwic2F0aXNmaWVzIiwiZ2V0UHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiIsInVzZVByZXJlbGVhc2VWZXJzaW9uIiwicHJlcmVsZWFzZVZlcnNpb24iLCJwYWNrYWdlVmVyc2lvbnNDYWNoZSIsIk1hcCIsImNhY2hlZFJlc3VsdCIsIm91dHB1dCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXhlYyIsImFzeW5jIiwic2lsZW50IiwiY29kZSIsInN0ZG91dCIsInN0ZGVyciIsInZlcnNpb25zIiwiSlNPTiIsInRyaW0iLCJzb3J0IiwiY29tcGFyZSIsInJldmVyc2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbXBvcnQgeyBFbmdpbmVTb3VyY2UgfSBmcm9tIFwiLi9FbmdpbmUvRW5naW5lU291cmNlXCI7XG5pbXBvcnQgeyBHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IENhbmR5VmVyc2lvblNwZWMsIGNhbmR5VmVyc2lvblNwZWNUb1N0cmluZyB9IGZyb20gXCIuL1ZlcnNpb25cIjtcblxuY29uc3QgY2FuZHlHZW5lcmF0b3JQYWNrYWdlTmFtZSA9IFwiQGtvbnR1ci5jYW5keS9nZW5lcmF0b3JcIjtcbmNvbnN0IGNhbmR5RW5naW5lUGFja2FnZU5hbWUgPSBcIkBrb250dXIuY2FuZHkvZW5naW5lXCI7XG5cbmZ1bmN0aW9uIGlzU3RhYmxlVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZWRWZXJzaW9uID0gc2VtdmVyLnBhcnNlKHZlcnNpb24pO1xuICAgIGlmIChwYXJzZWRWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHsgcHJlcmVsZWFzZSB9ID0gcGFyc2VkVmVyc2lvbjtcbiAgICByZXR1cm4gcHJlcmVsZWFzZS5sZW5ndGggPT09IDA7XG59XG5cbmZ1bmN0aW9uIGlzUHJlcmVsZWFzZVZlcnNpb25XaXRoUHJlSWQodmVyc2lvbjogc3RyaW5nLCBwcmVpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VkVmVyc2lvbiA9IHNlbXZlci5wYXJzZSh2ZXJzaW9uKTtcbiAgICBpZiAocGFyc2VkVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHByZXJlbGVhc2UgfSA9IHBhcnNlZFZlcnNpb247XG4gICAgcmV0dXJuIHByZXJlbGVhc2UubGVuZ3RoID4gMCAmJiBwcmVyZWxlYXNlWzBdID09PSBwcmVpZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzRW5naW5lVmVyc2lvbkV4aXN0cyh2ZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IGdldFBhY2thZ2VWZXJzaW9uc0luUmV2ZXJzZU9yZGVyKGNhbmR5RW5naW5lUGFja2FnZU5hbWUpKS5pbmNsdWRlcyh2ZXJzaW9uKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc29ydGVkVmVyc2lvbnMgPSBhd2FpdCBnZXRQYWNrYWdlVmVyc2lvbnNJblJldmVyc2VPcmRlcihjYW5keUVuZ2luZVBhY2thZ2VOYW1lKTtcbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2Ygc29ydGVkVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGlzU3RhYmxlVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbGFzdCBzdGFibGUgZW5naW5lIHZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gYXdhaXQgZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIoY2FuZHlHZW5lcmF0b3JQYWNrYWdlTmFtZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHNvcnRlZFZlcnNpb25zKSB7XG4gICAgICAgIGlmIChpc1N0YWJsZVZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIGxhc3Qgc3RhYmxlIGdlbmVyYXRvciB2ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGFzdEVuZ2luZVByZXJlbGVhc2VWZXJzaW9uKHByZWlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gYXdhaXQgZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIoY2FuZHlFbmdpbmVQYWNrYWdlTmFtZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHNvcnRlZFZlcnNpb25zKSB7XG4gICAgICAgIGlmIChpc1ByZXJlbGVhc2VWZXJzaW9uV2l0aFByZUlkKHZlcnNpb24sIHByZWlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcmVyZWxlYXNlIGZvciBwcmU6JHtwcmVpZH0gZW5naW5lIHZlcnNpb25gKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExhc3RHZW5lcmF0b3JQcmVyZWxlYXNlVmVyc2lvbihwcmVpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzb3J0ZWRWZXJzaW9ucyA9IGF3YWl0IGdldFBhY2thZ2VWZXJzaW9uc0luUmV2ZXJzZU9yZGVyKGNhbmR5R2VuZXJhdG9yUGFja2FnZU5hbWUpO1xuICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBzb3J0ZWRWZXJzaW9ucykge1xuICAgICAgICBpZiAoaXNQcmVyZWxlYXNlVmVyc2lvbldpdGhQcmVJZCh2ZXJzaW9uLCBwcmVpZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgcHJlcmVsZWFzZSBmb3IgcHJlOiR7cHJlaWR9IGdlbmVyYXRvciB2ZXJzaW9uYCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbihcbiAgICB2ZXJzaW9uU3BlYzogQ2FuZHlWZXJzaW9uU3BlYyxcbiAgICBsb2dnZXI6IElMb2dnZXIgPSBnZXRMb2dnZXIoKVxuKTogUHJvbWlzZTxHZW5lcmF0b3JTb3VyY2U+IHtcbiAgICBjb25zdCB2ZXJzaW9uID0gYXdhaXQgZ2V0U3VpdGFibGVWZXJzaW9uKHZlcnNpb25TcGVjLCBjYW5keUdlbmVyYXRvclBhY2thZ2VOYW1lKTtcbiAgICBsb2dnZXIud2l0aFByZWZpeChcIkdFTkVSQVRPUlwiKS5sb2coYFJlc29sdmVkIHZlcnNpb24gJHtjYW5keVZlcnNpb25TcGVjVG9TdHJpbmcodmVyc2lvblNwZWMpfSB0byAke3ZlcnNpb259YCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJQdWJsaXNoZWRHZW5lcmF0b3JcIixcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbixcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlKGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIgPSBnZXRMb2dnZXIoKSk6IEdlbmVyYXRvclNvdXJjZSB7XG4gICAgbG9nZ2VyLndpdGhQcmVmaXgoXCJHRU5FUkFUT1JcIikubG9nKGBSZXNvbHZlZCB2ZXJzaW9uICdsb2NhbCdgKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcIkdlbmVyYXRvclNvdXJjZXNcIixcbiAgICAgICAgcGF0aDogZW5naW5lRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UoZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlciA9IGdldExvZ2dlcigpKTogRW5naW5lU291cmNlIHtcbiAgICBsb2dnZXIud2l0aFByZWZpeChcIkVOR0lORVwiKS5sb2coYFJlc29sdmVkIHZlcnNpb24gJ2xvY2FsJ2ApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiTG9jYWxFbmdpbmVTb3VyY2VzXCIsXG4gICAgICAgIHBhdGg6IGVuZ2luZURpcmVjdG9yeSxcbiAgICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUVuZ2luZVZlcnNpb24oXG4gICAgdmVyc2lvblNwZWM6IENhbmR5VmVyc2lvblNwZWMsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbik6IFByb21pc2U8RW5naW5lU291cmNlPiB7XG4gICAgY29uc3QgdmVyc2lvbiA9IGF3YWl0IGdldFN1aXRhYmxlVmVyc2lvbih2ZXJzaW9uU3BlYywgY2FuZHlFbmdpbmVQYWNrYWdlTmFtZSk7XG4gICAgbG9nZ2VyLndpdGhQcmVmaXgoXCJFTkdJTkVcIikubG9nKGBSZXNvbHZlZCB2ZXJzaW9uICR7Y2FuZHlWZXJzaW9uU3BlY1RvU3RyaW5nKHZlcnNpb25TcGVjKX0gdG8gJHt2ZXJzaW9ufWApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiUHVibGlzaGVkRW5naW5lXCIsXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN1aXRhYmxlVmVyc2lvbih2ZXJzaW9uU3BlYzogQ2FuZHlWZXJzaW9uU3BlYywgcGFja2FnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc29ydGVkVmVyc2lvbnMgPSBhd2FpdCBnZXRQYWNrYWdlVmVyc2lvbnNJblJldmVyc2VPcmRlcihwYWNrYWdlTmFtZSk7XG4gICAgaWYgKHZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIpIHtcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRQcmVyZWxlYXNlID0gdmVyc2lvblNwZWMucHJlSWQ7XG4gICAgICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBzb3J0ZWRWZXJzaW9ucykge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVmVyc2lvbiA9IHNlbXZlci5wYXJzZSh2ZXJzaW9uKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBwcmVyZWxlYXNlIH0gPSBwYXJzZWRWZXJzaW9uO1xuICAgICAgICAgICAgaWYgKHByZXJlbGVhc2UubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGlmIChwcmVyZWxlYXNlWzBdID09PSBleHBlY3RlZFByZXJlbGVhc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFja2FnZSAke3BhY2thZ2VOYW1lfSBkb2VzIG5vdCBjb250YWlucyB2ZXJzaW9uIHNhdGlzZmllcyBwcmU6JHt2ZXJzaW9uU3BlYy5wcmVJZH1gKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gc29ydGVkVmVyc2lvbnMuZmluZCh4ID0+IHNlbXZlci5zYXRpc2ZpZXMoeCwgdmVyc2lvblNwZWMudmVyc2lvbikpO1xuICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFja2FnZSAke3BhY2thZ2VOYW1lfSBkb2VzIG5vdCBjb250YWlucyB2ZXJzaW9uIHNhdGlzZmllcyAke3ZlcnNpb25TcGVjLnZlcnNpb259YCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHVzZVByZXJlbGVhc2VWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uID0gYXdhaXQgZ2V0TGFzdEVuZ2luZVByZXJlbGVhc2VWZXJzaW9uKHVzZVByZXJlbGVhc2VWZXJzaW9uKTtcblxuICAgIHJldHVybiBwcmVyZWxlYXNlVmVyc2lvbiAhPSB1bmRlZmluZWQgPyBgcHJlOiR7dXNlUHJlcmVsZWFzZVZlcnNpb259YCA6IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgcGFja2FnZVZlcnNpb25zQ2FjaGU6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPiA9IG5ldyBNYXAoKTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIocGFja2FnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBwYWNrYWdlVmVyc2lvbnNDYWNoZS5nZXQocGFja2FnZU5hbWUpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBleGVjKGBucG0gdmlldyAke3BhY2thZ2VOYW1lfSB2ZXJzaW9ucyAtLWpzb25gLCB7IGFzeW5jOiB0cnVlLCBzaWxlbnQ6IHRydWUgfSwgKGNvZGUsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3Ioc3RkZXJyKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoc3Rkb3V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICBjb25zdCB2ZXJzaW9uczogc3RyaW5nW10gPSBKU09OLnBhcnNlKG91dHB1dC50cmltKCkpO1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gdmVyc2lvbnMuc29ydChzZW12ZXIuY29tcGFyZSkucmV2ZXJzZSgpO1xuICAgIHBhY2thZ2VWZXJzaW9uc0NhY2hlLnNldChwYWNrYWdlTmFtZSwgc29ydGVkVmVyc2lvbnMpO1xuICAgIHJldHVybiBzb3J0ZWRWZXJzaW9ucztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7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
169
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZW12ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc2hlbGxqcyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjYW5keUdlbmVyYXRvclBhY2thZ2VOYW1lIiwiY2FuZHlFbmdpbmVQYWNrYWdlTmFtZSIsImlzU3RhYmxlVmVyc2lvbiIsInZlcnNpb24iLCJwYXJzZWRWZXJzaW9uIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJwcmVyZWxlYXNlIiwibGVuZ3RoIiwiaXNQcmVyZWxlYXNlVmVyc2lvbldpdGhQcmVJZCIsInByZWlkIiwiaXNFbmdpbmVWZXJzaW9uRXhpc3RzIiwiZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIiLCJpbmNsdWRlcyIsImdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uIiwic29ydGVkVmVyc2lvbnMiLCJFcnJvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwiZ2V0TGFzdEVuZ2luZVByZXJlbGVhc2VWZXJzaW9uIiwiZ2V0TGFzdEdlbmVyYXRvclByZXJlbGVhc2VWZXJzaW9uIiwicmVzb2x2ZUdlbmVyYXRvclZlcnNpb24iLCJ2ZXJzaW9uU3BlYyIsImxvZ2dlciIsImdldExvZ2dlciIsImdldFN1aXRhYmxlVmVyc2lvbiIsIndpdGhQcmVmaXgiLCJsb2ciLCJjYW5keVZlcnNpb25TcGVjVG9TdHJpbmciLCJ0eXBlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lRGlyZWN0b3J5IiwicGF0aCIsInJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSIsInJlc29sdmVFbmdpbmVWZXJzaW9uIiwicGFja2FnZU5hbWUiLCJleHBlY3RlZFByZXJlbGVhc2UiLCJwcmVJZCIsInJlc3VsdCIsImZpbmQiLCJ4Iiwic2F0aXNmaWVzIiwiZ2V0UHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiIsInVzZVByZXJlbGVhc2VWZXJzaW9uIiwicHJlcmVsZWFzZVZlcnNpb24iLCJwYWNrYWdlVmVyc2lvbnNDYWNoZSIsIk1hcCIsImNhY2hlZFJlc3VsdCIsIm91dHB1dCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29tbWFuZCIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsImV4ZWMiLCJhc3luYyIsInNpbGVudCIsImNvZGUiLCJzdGRvdXQiLCJzdGRlcnIiLCJ2ZXJzaW9ucyIsIkpTT04iLCJ0cmltIiwic29ydCIsImNvbXBhcmUiLCJyZXZlcnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuaW1wb3J0IHsgRW5naW5lU291cmNlIH0gZnJvbSBcIi4vRW5naW5lL0VuZ2luZVNvdXJjZVwiO1xuaW1wb3J0IHsgR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4vR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBDYW5keVZlcnNpb25TcGVjLCBjYW5keVZlcnNpb25TcGVjVG9TdHJpbmcgfSBmcm9tIFwiLi9WZXJzaW9uXCI7XG5cbmNvbnN0IGNhbmR5R2VuZXJhdG9yUGFja2FnZU5hbWUgPSBcIkBrb250dXIuY2FuZHkvZ2VuZXJhdG9yXCI7XG5jb25zdCBjYW5keUVuZ2luZVBhY2thZ2VOYW1lID0gXCJAa29udHVyLmNhbmR5L2VuZ2luZVwiO1xuXG5mdW5jdGlvbiBpc1N0YWJsZVZlcnNpb24odmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VkVmVyc2lvbiA9IHNlbXZlci5wYXJzZSh2ZXJzaW9uKTtcbiAgICBpZiAocGFyc2VkVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHByZXJlbGVhc2UgfSA9IHBhcnNlZFZlcnNpb247XG4gICAgcmV0dXJuIHByZXJlbGVhc2UubGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBpc1ByZXJlbGVhc2VWZXJzaW9uV2l0aFByZUlkKHZlcnNpb246IHN0cmluZywgcHJlaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhcnNlZFZlcnNpb24gPSBzZW12ZXIucGFyc2UodmVyc2lvbik7XG4gICAgaWYgKHBhcnNlZFZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBwcmVyZWxlYXNlIH0gPSBwYXJzZWRWZXJzaW9uO1xuICAgIHJldHVybiBwcmVyZWxlYXNlLmxlbmd0aCA+IDAgJiYgcHJlcmVsZWFzZVswXSA9PT0gcHJlaWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0VuZ2luZVZlcnNpb25FeGlzdHModmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCBnZXRQYWNrYWdlVmVyc2lvbnNJblJldmVyc2VPcmRlcihjYW5keUVuZ2luZVBhY2thZ2VOYW1lKSkuaW5jbHVkZXModmVyc2lvbik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gYXdhaXQgZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIoY2FuZHlFbmdpbmVQYWNrYWdlTmFtZSk7XG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIHNvcnRlZFZlcnNpb25zKSB7XG4gICAgICAgIGlmIChpc1N0YWJsZVZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIGxhc3Qgc3RhYmxlIGVuZ2luZSB2ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzb3J0ZWRWZXJzaW9ucyA9IGF3YWl0IGdldFBhY2thZ2VWZXJzaW9uc0luUmV2ZXJzZU9yZGVyKGNhbmR5R2VuZXJhdG9yUGFja2FnZU5hbWUpO1xuICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBzb3J0ZWRWZXJzaW9ucykge1xuICAgICAgICBpZiAoaXNTdGFibGVWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBsYXN0IHN0YWJsZSBnZW5lcmF0b3IgdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExhc3RFbmdpbmVQcmVyZWxlYXNlVmVyc2lvbihwcmVpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzb3J0ZWRWZXJzaW9ucyA9IGF3YWl0IGdldFBhY2thZ2VWZXJzaW9uc0luUmV2ZXJzZU9yZGVyKGNhbmR5RW5naW5lUGFja2FnZU5hbWUpO1xuICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBzb3J0ZWRWZXJzaW9ucykge1xuICAgICAgICBpZiAoaXNQcmVyZWxlYXNlVmVyc2lvbldpdGhQcmVJZCh2ZXJzaW9uLCBwcmVpZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgcHJlcmVsZWFzZSBmb3IgcHJlOiR7cHJlaWR9IGVuZ2luZSB2ZXJzaW9uYCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXN0R2VuZXJhdG9yUHJlcmVsZWFzZVZlcnNpb24ocHJlaWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc29ydGVkVmVyc2lvbnMgPSBhd2FpdCBnZXRQYWNrYWdlVmVyc2lvbnNJblJldmVyc2VPcmRlcihjYW5keUdlbmVyYXRvclBhY2thZ2VOYW1lKTtcbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2Ygc29ydGVkVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGlzUHJlcmVsZWFzZVZlcnNpb25XaXRoUHJlSWQodmVyc2lvbiwgcHJlaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHByZXJlbGVhc2UgZm9yIHByZToke3ByZWlkfSBnZW5lcmF0b3IgdmVyc2lvbmApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24oXG4gICAgdmVyc2lvblNwZWM6IENhbmR5VmVyc2lvblNwZWMsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbik6IFByb21pc2U8R2VuZXJhdG9yU291cmNlPiB7XG4gICAgY29uc3QgdmVyc2lvbiA9IGF3YWl0IGdldFN1aXRhYmxlVmVyc2lvbih2ZXJzaW9uU3BlYywgY2FuZHlHZW5lcmF0b3JQYWNrYWdlTmFtZSk7XG4gICAgbG9nZ2VyLndpdGhQcmVmaXgoXCJHRU5FUkFUT1JcIikubG9nKGBSZXNvbHZlZCB2ZXJzaW9uICR7Y2FuZHlWZXJzaW9uU3BlY1RvU3RyaW5nKHZlcnNpb25TcGVjKX0gdG8gJHt2ZXJzaW9ufWApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiUHVibGlzaGVkR2VuZXJhdG9yXCIsXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMb2NhbEdlbmVyYXRvclNvdXJjZShlbmdpbmVEaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKCkpOiBHZW5lcmF0b3JTb3VyY2Uge1xuICAgIGxvZ2dlci53aXRoUHJlZml4KFwiR0VORVJBVE9SXCIpLmxvZyhgUmVzb2x2ZWQgdmVyc2lvbiAnbG9jYWwnYCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJHZW5lcmF0b3JTb3VyY2VzXCIsXG4gICAgICAgIHBhdGg6IGVuZ2luZURpcmVjdG9yeSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlKGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIgPSBnZXRMb2dnZXIoKSk6IEVuZ2luZVNvdXJjZSB7XG4gICAgbG9nZ2VyLndpdGhQcmVmaXgoXCJFTkdJTkVcIikubG9nKGBSZXNvbHZlZCB2ZXJzaW9uICdsb2NhbCdgKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcIkxvY2FsRW5naW5lU291cmNlc1wiLFxuICAgICAgICBwYXRoOiBlbmdpbmVEaXJlY3RvcnksXG4gICAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVFbmdpbmVWZXJzaW9uKFxuICAgIHZlcnNpb25TcGVjOiBDYW5keVZlcnNpb25TcGVjLFxuICAgIGxvZ2dlcjogSUxvZ2dlciA9IGdldExvZ2dlcigpXG4pOiBQcm9taXNlPEVuZ2luZVNvdXJjZT4ge1xuICAgIGNvbnN0IHZlcnNpb24gPSBhd2FpdCBnZXRTdWl0YWJsZVZlcnNpb24odmVyc2lvblNwZWMsIGNhbmR5RW5naW5lUGFja2FnZU5hbWUpO1xuICAgIGxvZ2dlci53aXRoUHJlZml4KFwiRU5HSU5FXCIpLmxvZyhgUmVzb2x2ZWQgdmVyc2lvbiAke2NhbmR5VmVyc2lvblNwZWNUb1N0cmluZyh2ZXJzaW9uU3BlYyl9IHRvICR7dmVyc2lvbn1gKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcIlB1Ymxpc2hlZEVuZ2luZVwiLFxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uLFxuICAgIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdWl0YWJsZVZlcnNpb24odmVyc2lvblNwZWM6IENhbmR5VmVyc2lvblNwZWMsIHBhY2thZ2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gYXdhaXQgZ2V0UGFja2FnZVZlcnNpb25zSW5SZXZlcnNlT3JkZXIocGFja2FnZU5hbWUpO1xuICAgIGlmICh2ZXJzaW9uU3BlYy50eXBlID09PSBcInByZVwiKSB7XG4gICAgICAgIGNvbnN0IGV4cGVjdGVkUHJlcmVsZWFzZSA9IHZlcnNpb25TcGVjLnByZUlkO1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2Ygc29ydGVkVmVyc2lvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFZlcnNpb24gPSBzZW12ZXIucGFyc2UodmVyc2lvbik7XG4gICAgICAgICAgICBpZiAocGFyc2VkVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgcHJlcmVsZWFzZSB9ID0gcGFyc2VkVmVyc2lvbjtcbiAgICAgICAgICAgIGlmIChwcmVyZWxlYXNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAocHJlcmVsZWFzZVswXSA9PT0gZXhwZWN0ZWRQcmVyZWxlYXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhY2thZ2UgJHtwYWNrYWdlTmFtZX0gZG9lcyBub3QgY29udGFpbnMgdmVyc2lvbiBzYXRpc2ZpZXMgcHJlOiR7dmVyc2lvblNwZWMucHJlSWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHNvcnRlZFZlcnNpb25zLmZpbmQoeCA9PiBzZW12ZXIuc2F0aXNmaWVzKHgsIHZlcnNpb25TcGVjLnZlcnNpb24pKTtcbiAgICBpZiAocmVzdWx0ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhY2thZ2UgJHtwYWNrYWdlTmFtZX0gZG9lcyBub3QgY29udGFpbnMgdmVyc2lvbiBzYXRpc2ZpZXMgJHt2ZXJzaW9uU3BlYy52ZXJzaW9ufWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbih1c2VQcmVyZWxlYXNlVmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwcmVyZWxlYXNlVmVyc2lvbiA9IGF3YWl0IGdldExhc3RFbmdpbmVQcmVyZWxlYXNlVmVyc2lvbih1c2VQcmVyZWxlYXNlVmVyc2lvbik7XG5cbiAgICByZXR1cm4gcHJlcmVsZWFzZVZlcnNpb24gIT0gdW5kZWZpbmVkID8gYHByZToke3VzZVByZXJlbGVhc2VWZXJzaW9ufWAgOiB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IHBhY2thZ2VWZXJzaW9uc0NhY2hlOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4gPSBuZXcgTWFwKCk7XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uc0luUmV2ZXJzZU9yZGVyKHBhY2thZ2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gcGFja2FnZVZlcnNpb25zQ2FjaGUuZ2V0KHBhY2thZ2VOYW1lKTtcbiAgICBpZiAoY2FjaGVkUmVzdWx0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IChwcm9jZXNzLnBsYXRmb3JtID09PSBcImxpbnV4XCIgPyBcInVuYnVmZmVyIFwiIDogXCJcIikgKyBgbnBtIHZpZXcgJHtwYWNrYWdlTmFtZX0gdmVyc2lvbnMgLS1qc29uYDtcbiAgICAgICAgZXhlYyhjb21tYW5kLCB7IGFzeW5jOiB0cnVlLCBzaWxlbnQ6IHRydWUgfSwgKGNvZGUsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3Ioc3RkZXJyKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoc3Rkb3V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICBjb25zdCB2ZXJzaW9uczogc3RyaW5nW10gPSBKU09OLnBhcnNlKG91dHB1dC50cmltKCkpO1xuICAgIGNvbnN0IHNvcnRlZFZlcnNpb25zID0gdmVyc2lvbnMuc29ydChzZW12ZXIuY29tcGFyZSkucmV2ZXJzZSgpO1xuICAgIHBhY2thZ2VWZXJzaW9uc0NhY2hlLnNldChwYWNrYWdlTmFtZSwgc29ydGVkVmVyc2lvbnMpO1xuICAgIHJldHVybiBzb3J0ZWRWZXJzaW9ucztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLGFBQUEsR0FBQUYsT0FBQTtBQUlBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUF1RSxTQUFBSSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBTix3QkFBQVUsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLEdBQUEsRUFBQVcs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
@@ -73,7 +73,8 @@ class BuildCache {
73
73
  for (const assetPath of Object.keys(content)) {
74
74
  var _content$assetPath;
75
75
  const contentElement = (_content$assetPath = content[assetPath]) !== null && _content$assetPath !== void 0 ? _content$assetPath : (0, _TypingUtils.reject)();
76
- const filePath = path.join(resourcesDirectory, assetPath);
76
+ const normalizedAssetPath = path.join(...assetPath.split(/[\\\/]/));
77
+ const filePath = path.join(resourcesDirectory, normalizedAssetPath);
77
78
  await (0, _fsExtra.ensureDir)(path.dirname(filePath));
78
79
  if (typeof contentElement === "string") {
79
80
  await (0, _fsExtra.writeFile)(filePath, contentElement, "utf8");
@@ -154,4 +155,4 @@ class BuildCache {
154
155
  }
155
156
  }
156
157
  exports.BuildCache = BuildCache;
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3BMaW1pdCIsIl9ub2RlRmV0Y2giLCJfQnVpbGRDYWNoZU1vZGUiLCJfVHlwaW5nVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInNpbmdsZUxpbWl0IiwicExpbWl0IiwiQ2FjaGVBc3NldHNQbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJhcHBseSIsImNvbXBpbGVyIiwiaG9va3MiLCJlbWl0IiwidGFwUHJvbWlzZSIsImNvbXBpbGF0aW9uIiwiY2FjaGVJdGVtcyIsImFzc2V0TmFtZSIsImtleXMiLCJhc3NldHMiLCJfY29tcGlsYXRpb24kYXNzZXRzJGEiLCJfY29tcGlsYXRpb24kYXNzZXRzJGEyIiwic291cmNlIiwicmVqZWN0IiwiQnVmZmVyIiwidHlwZSIsImJhc2U2NGNvbnRlbnQiLCJ0b1N0cmluZyIsInVwZGF0ZUZpbGUiLCJmaWxlUGF0aCIsInJlc29sdmUiLCJjYWNoZUZpbGUiLCJjb250ZW50IiwicGF0aEV4aXN0cyIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlIiwiZW5zdXJlRGlyIiwiZGlybmFtZSIsIndyaXRlRmlsZSIsInN0cmluZ2lmeSIsImV4cG9ydHMiLCJCdWlsZENhY2hlIiwiZmFybURpcmVjdG9yeSIsIm1vZGUiLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJ3aXRoUHJlZml4IiwiZXh0cmFjdCIsImdlbmVyYXRvclNvdXJjZSIsImdmdiIsImRlcHNIYXNoIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiRXJyb3IiLCJnZXRDYWNoZUZpbGVQYXRoIiwidmVyc2lvbiIsImFzc2V0UGF0aCIsIl9jb250ZW50JGFzc2V0UGF0aCIsImNvbnRlbnRFbGVtZW50Iiwiam9pbiIsImZyb20iLCJleGlzdHMiLCJCdWlsZENhY2hlTW9kZSIsIkRpc2FibGVkIiwiRm9yY2VVcGRhdGUiLCJjYWNoZWRGaWxlUGF0aCIsImV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQiLCJ1bmRlZmluZWQiLCJzZXRDb250ZW50IiwiZmlsZU5hbWUiLCJmaWxlQ29udGVudCIsImNhY2hlRmlsZVBhdGgiLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwiUmVhZE9ubHkiLCJnZW5lcmF0b3JWZXJzaW9uIiwibWQ1IiwibG9nIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlc3BvbnNlIiwiZmV0Y2giLCJzdGF0dXMiLCJidWZmZXIiLCJlcnJvciIsImUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL0NhY2hlQXNzZXRzUGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZW5zdXJlRGlyLCBwYXRoRXhpc3RzLCByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcbmltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcblxuaW1wb3J0IHsgR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uL0J1aWxkVGFza3MvR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBCdWlsZENhY2hlTW9kZSB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkQ2FjaGVNb2RlXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbnRlcmZhY2UgQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zIHtcbiAgICBjYWNoZUZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtQnVpbGRDYWNoZU9wdGlvbnMge1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZGVwc0hhc2g6IHN0cmluZztcbn1cblxuY29uc3Qgc2luZ2xlTGltaXQgPSBwTGltaXQoMSk7XG5cbmludGVyZmFjZSBCdWlsZFJlc3VsdHNTZXJpYWxpemVkIHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgeyB0eXBlOiBcIkJ1ZmZlclwiOyBiYXNlNjRjb250ZW50OiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIENhY2hlQXNzZXRzUGx1Z2luIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYXBwbHkoY29tcGlsZXI6IHdlYnBhY2suQ29tcGlsZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29tcGlsZXIuaG9va3MuZW1pdC50YXBQcm9taXNlKFwiQ2FjaGVBc3NldHNQbHVnaW5cIiwgY29tcGlsYXRpb24gPT5cbiAgICAgICAgICAgIHNpbmdsZUxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0ge307XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbi5hc3NldHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZTogc3RyaW5nIHwgQnVmZmVyID0gY29tcGlsYXRpb24uYXNzZXRzW2Fzc2V0TmFtZV0/LnNvdXJjZSgpID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUl0ZW1zW2Fzc2V0TmFtZV0gPSB7IHR5cGU6IFwiQnVmZmVyXCIsIGJhc2U2NGNvbnRlbnQ6IHNvdXJjZS50b1N0cmluZyhcImJhc2U2NFwiKSB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0gc291cmNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZShjYWNoZUl0ZW1zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVGaWxlKGNhY2hlSXRlbXM6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5vcHRpb25zLmNhY2hlRmlsZSk7XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKVxuICAgICAgICAgICAgPyAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCBcInV0Zi04XCIpKVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICAuLi5jYWNoZUl0ZW1zLFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVpbGRDYWNoZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIG1vZGU6IEJ1aWxkQ2FjaGVNb2RlKSB7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkJVSUxEX0NBQ0hFXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleHRyYWN0KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChnZW5lcmF0b3JTb3VyY2UudHlwZSA9PT0gXCJHZW5lcmF0b3JTb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxvY2FsIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0cyBjYWNoaW5nXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgIGNvbnN0IGNvbnRlbnQ6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgYXdhaXQgcmVhZEZpbGUodGhpcy5nZXRDYWNoZUZpbGVQYXRoKGdmdiwgZ2VuZXJhdG9yU291cmNlLnZlcnNpb24sIGRlcHNIYXNoKSwgXCJ1dGYtOFwiKVxuICAgICAgICApO1xuICAgICAgICBmb3IgKGNvbnN0IGFzc2V0UGF0aCBvZiBPYmplY3Qua2V5cyhjb250ZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250ZW50W2Fzc2V0UGF0aF0gPz8gcmVqZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIGFzc2V0UGF0aCk7XG4gICAgICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRFbGVtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBjb250ZW50RWxlbWVudCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIEJ1ZmZlci5mcm9tKGNvbnRlbnRFbGVtZW50LmJhc2U2NGNvbnRlbnQsIFwiYmFzZTY0XCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleGlzdHMoZ2VuZXJhdG9yU291cmNlOiBHZW5lcmF0b3JTb3VyY2UsIGdmdjogc3RyaW5nLCBkZXBzSGFzaDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmIChnZW5lcmF0b3JTb3VyY2UudHlwZSA9PT0gXCJHZW5lcmF0b3JTb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxvY2FsIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0cyBjYWNoaW5nXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkRpc2FibGVkIHx8IHRoaXMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuRm9yY2VVcGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYWNoZWRGaWxlUGF0aCA9IGF3YWl0IHRoaXMuZXhpc3RzRmlsZUNhY2hlT3JEb3dubG9hZChnZnYsIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uLCBkZXBzSGFzaCk7XG4gICAgICAgIHJldHVybiBjYWNoZWRGaWxlUGF0aCAhPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldENvbnRlbnQoXG4gICAgICAgIGdlbmVyYXRvclNvdXJjZTogc3RyaW5nLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgZGVwc0hhc2g6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZpbGVDb250ZW50OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2FjaGVGaWxlUGF0aCA9IHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclNvdXJjZSwgZGVwc0hhc2gpO1xuICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGNhY2hlRmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjYWNoZUZpbGVQYXRoLCBcInV0Zi04XCIpKTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICBbZmlsZU5hbWVdOiBmaWxlQ29udGVudCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShjYWNoZUZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShjYWNoZUZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb250ZW50KSwgXCJ1dGYtOFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlV2VicGFja1BsdWdpbihvcHRpb25zOiBGb3JtQnVpbGRDYWNoZU9wdGlvbnMpOiBQcm9taXNlPENhY2hlQXNzZXRzUGx1Z2luIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkRpc2FibGVkIHx8IG9wdGlvbnMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgob3B0aW9ucy5nZnYsIG9wdGlvbnMuZ2VuZXJhdG9yVmVyc2lvbiwgb3B0aW9ucy5kZXBzSGFzaCk7XG4gICAgICAgIHJldHVybiBuZXcgQ2FjaGVBc3NldHNQbHVnaW4oe1xuICAgICAgICAgICAgY2FjaGVGaWxlOiBjYWNoZWRGaWxlUGF0aCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDYWNoZUZpbGVQYXRoKGdmdjogc3RyaW5nLCBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmcsIGRlcHNIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke21kNShnZnYpfS0ke21kNShnZW5lcmF0b3JWZXJzaW9uKX0tJHtkZXBzSGFzaH0uemlwYDtcbiAgICAgICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiLmJ1aWxkLWNhY2hlXCIsIFwiY29tcGlsZVwiLCBmaWxlTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkKFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nLFxuICAgICAgICBkZXBzSGFzaDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JWZXJzaW9uLCBkZXBzSGFzaCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgU3RhcnQgc2VhcmNoIGZpbGUgbG9jYWxseTogJHtmaWxlUGF0aH1gKTtcbiAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkZvdW5kIGZpbGUgaW4gbG9jYWwgZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYENhY2hlIGZpbGUgd2FzIG5vdCBmb3VuZCBsb2NhbGx5OiAke2ZpbGVQYXRofWApO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgTG9va2luZyBmb3IgY2FjaGUgaW4gZHJpdmUgc3RvcmFnZTogJHtmaWxlbmFtZX1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwczovL2FwaS5rb250dXIucnUvZHJpdmUvdjEvcHVibGljLyR7ZmlsZW5hbWV9YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBEcml2ZSByZXNwb25zZSBzdGF0dXMgY29kZTogJHtyZXNwb25zZS5zdGF0dXMudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBhd2FpdCByZXNwb25zZS5idWZmZXIoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYENhY2hlIGZpbGUgbm90IGZvdW5kIGluIGRyaXZlIHN0b3JhZ2U6ICR7ZmlsZW5hbWV9LiBHRlY6ICR7Z2Z2fSwgR2VuZXJhdG9yVmVyc2lvbjogJHtnZW5lcmF0b3JWZXJzaW9ufSwgRGVwZW5kZW5jaWVzSGFzaDogJHtkZXBzSGFzaH1gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYERyaXZlIHN0b3JhZ2Ugc2VudCAke3Jlc3BvbnNlLnN0YXR1c30gc3RhdHVzIGNvZGUsIEkgZG9uJ3QgcHJvY2VzcyBpdCBpbiBhbnkgd2F5YFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIkRyaXZlIHN0b3JhZ2UgcmVzcG9uZGVkIHdpdGggYW4gZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJUaGUgYnVpbGQgd2lsbCBjb250aW51ZSB3aXRob3V0IGEgY2FjaGVcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEdBQUEs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
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3BMaW1pdCIsIl9ub2RlRmV0Y2giLCJfQnVpbGRDYWNoZU1vZGUiLCJfVHlwaW5nVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInNpbmdsZUxpbWl0IiwicExpbWl0IiwiQ2FjaGVBc3NldHNQbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJhcHBseSIsImNvbXBpbGVyIiwiaG9va3MiLCJlbWl0IiwidGFwUHJvbWlzZSIsImNvbXBpbGF0aW9uIiwiY2FjaGVJdGVtcyIsImFzc2V0TmFtZSIsImtleXMiLCJhc3NldHMiLCJfY29tcGlsYXRpb24kYXNzZXRzJGEiLCJfY29tcGlsYXRpb24kYXNzZXRzJGEyIiwic291cmNlIiwicmVqZWN0IiwiQnVmZmVyIiwidHlwZSIsImJhc2U2NGNvbnRlbnQiLCJ0b1N0cmluZyIsInVwZGF0ZUZpbGUiLCJmaWxlUGF0aCIsInJlc29sdmUiLCJjYWNoZUZpbGUiLCJjb250ZW50IiwicGF0aEV4aXN0cyIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlIiwiZW5zdXJlRGlyIiwiZGlybmFtZSIsIndyaXRlRmlsZSIsInN0cmluZ2lmeSIsImV4cG9ydHMiLCJCdWlsZENhY2hlIiwiZmFybURpcmVjdG9yeSIsIm1vZGUiLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJ3aXRoUHJlZml4IiwiZXh0cmFjdCIsImdlbmVyYXRvclNvdXJjZSIsImdmdiIsImRlcHNIYXNoIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiRXJyb3IiLCJnZXRDYWNoZUZpbGVQYXRoIiwidmVyc2lvbiIsImFzc2V0UGF0aCIsIl9jb250ZW50JGFzc2V0UGF0aCIsImNvbnRlbnRFbGVtZW50Iiwibm9ybWFsaXplZEFzc2V0UGF0aCIsImpvaW4iLCJzcGxpdCIsImZyb20iLCJleGlzdHMiLCJCdWlsZENhY2hlTW9kZSIsIkRpc2FibGVkIiwiRm9yY2VVcGRhdGUiLCJjYWNoZWRGaWxlUGF0aCIsImV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQiLCJ1bmRlZmluZWQiLCJzZXRDb250ZW50IiwiZmlsZU5hbWUiLCJmaWxlQ29udGVudCIsImNhY2hlRmlsZVBhdGgiLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwiUmVhZE9ubHkiLCJnZW5lcmF0b3JWZXJzaW9uIiwibWQ1IiwibG9nIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlc3BvbnNlIiwiZmV0Y2giLCJzdGF0dXMiLCJidWZmZXIiLCJlcnJvciIsImUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL0NhY2hlQXNzZXRzUGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZW5zdXJlRGlyLCBwYXRoRXhpc3RzLCByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcbmltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcblxuaW1wb3J0IHsgR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uL0J1aWxkVGFza3MvR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBCdWlsZENhY2hlTW9kZSB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkQ2FjaGVNb2RlXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbnRlcmZhY2UgQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zIHtcbiAgICBjYWNoZUZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtQnVpbGRDYWNoZU9wdGlvbnMge1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZGVwc0hhc2g6IHN0cmluZztcbn1cblxuY29uc3Qgc2luZ2xlTGltaXQgPSBwTGltaXQoMSk7XG5cbmludGVyZmFjZSBCdWlsZFJlc3VsdHNTZXJpYWxpemVkIHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgeyB0eXBlOiBcIkJ1ZmZlclwiOyBiYXNlNjRjb250ZW50OiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIENhY2hlQXNzZXRzUGx1Z2luIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYXBwbHkoY29tcGlsZXI6IHdlYnBhY2suQ29tcGlsZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29tcGlsZXIuaG9va3MuZW1pdC50YXBQcm9taXNlKFwiQ2FjaGVBc3NldHNQbHVnaW5cIiwgY29tcGlsYXRpb24gPT5cbiAgICAgICAgICAgIHNpbmdsZUxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0ge307XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbi5hc3NldHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZTogc3RyaW5nIHwgQnVmZmVyID0gY29tcGlsYXRpb24uYXNzZXRzW2Fzc2V0TmFtZV0/LnNvdXJjZSgpID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUl0ZW1zW2Fzc2V0TmFtZV0gPSB7IHR5cGU6IFwiQnVmZmVyXCIsIGJhc2U2NGNvbnRlbnQ6IHNvdXJjZS50b1N0cmluZyhcImJhc2U2NFwiKSB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0gc291cmNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZShjYWNoZUl0ZW1zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVGaWxlKGNhY2hlSXRlbXM6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5vcHRpb25zLmNhY2hlRmlsZSk7XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKVxuICAgICAgICAgICAgPyAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCBcInV0Zi04XCIpKVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICAuLi5jYWNoZUl0ZW1zLFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVpbGRDYWNoZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIG1vZGU6IEJ1aWxkQ2FjaGVNb2RlKSB7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkJVSUxEX0NBQ0hFXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleHRyYWN0KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChnZW5lcmF0b3JTb3VyY2UudHlwZSA9PT0gXCJHZW5lcmF0b3JTb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxvY2FsIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0cyBjYWNoaW5nXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgIGNvbnN0IGNvbnRlbnQ6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgYXdhaXQgcmVhZEZpbGUodGhpcy5nZXRDYWNoZUZpbGVQYXRoKGdmdiwgZ2VuZXJhdG9yU291cmNlLnZlcnNpb24sIGRlcHNIYXNoKSwgXCJ1dGYtOFwiKVxuICAgICAgICApO1xuICAgICAgICBmb3IgKGNvbnN0IGFzc2V0UGF0aCBvZiBPYmplY3Qua2V5cyhjb250ZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250ZW50W2Fzc2V0UGF0aF0gPz8gcmVqZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQXNzZXRQYXRoID0gcGF0aC5qb2luKC4uLmFzc2V0UGF0aC5zcGxpdCgvW1xcXFxcXC9dLykpO1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBub3JtYWxpemVkQXNzZXRQYXRoKTtcbiAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGVudEVsZW1lbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnRFbGVtZW50LCBcInV0ZjhcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgQnVmZmVyLmZyb20oY29udGVudEVsZW1lbnQuYmFzZTY0Y29udGVudCwgXCJiYXNlNjRcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4aXN0cyhnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSwgZ2Z2OiBzdHJpbmcsIGRlcHNIYXNoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIkdlbmVyYXRvclNvdXJjZXNcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9jYWwgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnRzIGNhY2hpbmdcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuRGlzYWJsZWQgfHwgdGhpcy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5Gb3JjZVVwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhY2hlZEZpbGVQYXRoID0gYXdhaXQgdGhpcy5leGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkKGdmdiwgZ2VuZXJhdG9yU291cmNlLnZlcnNpb24sIGRlcHNIYXNoKTtcbiAgICAgICAgcmV0dXJuIGNhY2hlZEZpbGVQYXRoICE9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0Q29udGVudChcbiAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBzdHJpbmcsXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBkZXBzSGFzaDogc3RyaW5nLFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZmlsZUNvbnRlbnQ6IHN0cmluZ1xuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjYWNoZUZpbGVQYXRoID0gdGhpcy5nZXRDYWNoZUZpbGVQYXRoKGdmdiwgZ2VuZXJhdG9yU291cmNlLCBkZXBzSGFzaCk7XG4gICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoY2FjaGVGaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgbGV0IGNvbnRlbnQ6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGNhY2hlRmlsZVBhdGgsIFwidXRmLThcIikpO1xuICAgICAgICBjb250ZW50ID0ge1xuICAgICAgICAgICAgLi4uY29udGVudCxcbiAgICAgICAgICAgIFtmaWxlTmFtZV06IGZpbGVDb250ZW50LFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGNhY2hlRmlsZVBhdGgpKTtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGNhY2hlRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCBcInV0Zi04XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVXZWJwYWNrUGx1Z2luKG9wdGlvbnM6IEZvcm1CdWlsZENhY2hlT3B0aW9ucyk6IFByb21pc2U8Q2FjaGVBc3NldHNQbHVnaW4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuRGlzYWJsZWQgfHwgb3B0aW9ucy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5SZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYWNoZWRGaWxlUGF0aCA9IHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChvcHRpb25zLmdmdiwgb3B0aW9ucy5nZW5lcmF0b3JWZXJzaW9uLCBvcHRpb25zLmRlcHNIYXNoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBDYWNoZUFzc2V0c1BsdWdpbih7XG4gICAgICAgICAgICBjYWNoZUZpbGU6IGNhY2hlZEZpbGVQYXRoLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENhY2hlRmlsZVBhdGgoZ2Z2OiBzdHJpbmcsIGdlbmVyYXRvclZlcnNpb246IHN0cmluZywgZGVwc0hhc2g6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7bWQ1KGdmdil9LSR7bWQ1KGdlbmVyYXRvclZlcnNpb24pfS0ke2RlcHNIYXNofS56aXBgO1xuICAgICAgICByZXR1cm4gcGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCIuYnVpbGQtY2FjaGVcIiwgXCJjb21waWxlXCIsIGZpbGVOYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQoXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclZlcnNpb24sIGRlcHNIYXNoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBTdGFydCBzZWFyY2ggZmlsZSBsb2NhbGx5OiAke2ZpbGVQYXRofWApO1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpO1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKFwiRm91bmQgZmlsZSBpbiBsb2NhbCBkaXJlY3RvcnlcIik7XG4gICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgQ2FjaGUgZmlsZSB3YXMgbm90IGZvdW5kIGxvY2FsbHk6ICR7ZmlsZVBhdGh9YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBMb29raW5nIGZvciBjYWNoZSBpbiBkcml2ZSBzdG9yYWdlOiAke2ZpbGVuYW1lfWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYGh0dHBzOi8vYXBpLmtvbnR1ci5ydS9kcml2ZS92MS9wdWJsaWMvJHtmaWxlbmFtZX1gKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYERyaXZlIHJlc3BvbnNlIHN0YXR1cyBjb2RlOiAke3Jlc3BvbnNlLnN0YXR1cy50b1N0cmluZygpfWApO1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGF3YWl0IHJlc3BvbnNlLmJ1ZmZlcigpLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQ2FjaGUgZmlsZSBub3QgZm91bmQgaW4gZHJpdmUgc3RvcmFnZTogJHtmaWxlbmFtZX0uIEdGVjogJHtnZnZ9LCBHZW5lcmF0b3JWZXJzaW9uOiAke2dlbmVyYXRvclZlcnNpb259LCBEZXBlbmRlbmNpZXNIYXNoOiAke2RlcHNIYXNofWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRHJpdmUgc3RvcmFnZSBzZW50ICR7cmVzcG9uc2Uuc3RhdHVzfSBzdGF0dXMgY29kZSwgSSBkb24ndCBwcm9jZXNzIGl0IGluIGFueSB3YXlgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiRHJpdmUgc3RvcmFnZSByZXNwb25kZWQgd2l0aCBhbiBlcnJvclwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlRoZSBidWlsZCB3aWxsIGNvbnRpbnVlIHdpdGhvdXQgYSBjYWNoZVwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsR0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBR0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQTRELFNBQUFTLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFYLHdCQUFBZSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFkLEdBQUEsRUFBQVcsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVYsR0FBQSxFQUFBVyxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFYLEdBQUEsQ0FBQVcsR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUYsR0FBQSxNQUFBRyxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBaEIsR0FBQSxFQUFBTSxNQUFBLFlBQUFBLE1BQUE7QUFjNUQsTUFBTVcsV0FBVyxHQUFHLElBQUFDLGVBQU0sRUFBQyxDQUFDLENBQUM7QUFNdEIsTUFBTUMsaUJBQWlCLENBQUM7RUFHcEJDLFdBQVdBLENBQUNDLE9BQWlDLEVBQUU7SUFBQSxLQUZyQ0EsT0FBTztJQUdwQixJQUFJLENBQUNBLE9BQU8sR0FBR0EsT0FBTztFQUMxQjtFQUVBLE1BQWFDLEtBQUtBLENBQUNDLFFBQTBCLEVBQWlCO0lBQzFEQSxRQUFRLENBQUNDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDQyxVQUFVLENBQUMsbUJBQW1CLEVBQUVDLFdBQVcsSUFDM0RWLFdBQVcsQ0FBQyxZQUFZO01BQ3BCLE1BQU1XLFVBQWtDLEdBQUcsQ0FBQyxDQUFDO01BQzdDO01BQ0EsS0FBSyxNQUFNQyxTQUFTLElBQUlyQixNQUFNLENBQUNzQixJQUFJLENBQUNILFdBQVcsQ0FBQ0ksTUFBTSxDQUFDLEVBQUU7UUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtRQUNyRDtRQUNBLE1BQU1DLE1BQXVCLElBQUFGLHFCQUFBLElBQUFDLHNCQUFBLEdBQUdOLFdBQVcsQ0FBQ0ksTUFBTSxDQUFDRixTQUFTLENBQUMsY0FBQUksc0JBQUEsdUJBQTdCQSxzQkFBQSxDQUErQkMsTUFBTSxDQUFDLENBQUMsY0FBQUYscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxJQUFBRyxtQkFBTSxFQUFDLENBQUM7UUFDbkYsSUFBSUQsTUFBTSxZQUFZRSxNQUFNLEVBQUU7VUFDMUJSLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDLEdBQUc7WUFBRVEsSUFBSSxFQUFFLFFBQVE7WUFBRUMsYUFBYSxFQUFFSixNQUFNLENBQUNLLFFBQVEsQ0FBQyxRQUFRO1VBQUUsQ0FBQztRQUN4RixDQUFDLE1BQU07VUFDSFgsVUFBVSxDQUFDQyxTQUFTLENBQUMsR0FBR0ssTUFBTTtRQUNsQztNQUNKO01BQ0EsTUFBTSxJQUFJLENBQUNNLFVBQVUsQ0FBQ1osVUFBVSxDQUFDO0lBQ3JDLENBQUMsQ0FDTCxDQUFDO0VBQ0w7RUFFQSxNQUFjWSxVQUFVQSxDQUFDWixVQUFrQyxFQUFpQjtJQUN4RSxNQUFNYSxRQUFRLEdBQUd6RCxJQUFJLENBQUMwRCxPQUFPLENBQUMsSUFBSSxDQUFDckIsT0FBTyxDQUFDc0IsU0FBUyxDQUFDO0lBQ3JELElBQUlDLE9BQStCLEdBQUcsQ0FBQyxNQUFNLElBQUFDLG1CQUFVLEVBQUNKLFFBQVEsQ0FBQztJQUMzRDtJQUNBSyxJQUFJLENBQUNDLEtBQUssQ0FBQyxNQUFNLElBQUFDLGlCQUFRLEVBQUNQLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUM3QyxDQUFDLENBQUM7SUFDUkcsT0FBTyxHQUFHO01BQ04sR0FBR0EsT0FBTztNQUNWLEdBQUdoQjtJQUNQLENBQUM7SUFDRCxNQUFNLElBQUFxQixrQkFBUyxFQUFDakUsSUFBSSxDQUFDa0UsT0FBTyxDQUFDVCxRQUFRLENBQUMsQ0FBQztJQUN2QyxNQUFNLElBQUFVLGtCQUFTLEVBQUNWLFFBQVEsRUFBRUssSUFBSSxDQUFDTSxTQUFTLENBQUNSLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQztFQUMvRDtBQUNKO0FBQUNTLE9BQUEsQ0FBQWxDLGlCQUFBLEdBQUFBLGlCQUFBO0FBRU0sTUFBTW1DLFVBQVUsQ0FBQztFQUtibEMsV0FBV0EsQ0FBQ21DLGFBQXFCLEVBQUVDLElBQW9CLEVBQUU7SUFBQSxLQUovQ0QsYUFBYTtJQUFBLEtBQ2JDLElBQUk7SUFBQSxLQUNKQyxNQUFNO0lBR25CLElBQUksQ0FBQ0YsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsSUFBSSxHQUFHQSxJQUFJO0lBQ2hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHLElBQUFDLHVCQUFTLEVBQUMsQ0FBQyxDQUFDQyxVQUFVLENBQUMsYUFBYSxDQUFDO0VBQ3ZEO0VBRUEsTUFBYUMsT0FBT0EsQ0FDaEJDLGVBQWdDLEVBQ2hDQyxHQUFXLEVBQ1hDLFFBQWdCLEVBQ2hCQyxrQkFBMEIsRUFDYjtJQUNiLElBQUlILGVBQWUsQ0FBQ3hCLElBQUksS0FBSyxrQkFBa0IsRUFBRTtNQUM3QyxNQUFNLElBQUk0QixLQUFLLENBQUMsMkNBQTJDLENBQUM7SUFDaEU7SUFDQTtJQUNBLE1BQU1yQixPQUErQixHQUFHRSxJQUFJLENBQUNDLEtBQUssQ0FDOUMsTUFBTSxJQUFBQyxpQkFBUSxFQUFDLElBQUksQ0FBQ2tCLGdCQUFnQixDQUFDSixHQUFHLEVBQUVELGVBQWUsQ0FBQ00sT0FBTyxFQUFFSixRQUFRLENBQUMsRUFBRSxPQUFPLENBQ3pGLENBQUM7SUFDRCxLQUFLLE1BQU1LLFNBQVMsSUFBSTVELE1BQU0sQ0FBQ3NCLElBQUksQ0FBQ2MsT0FBTyxDQUFDLEVBQUU7TUFBQSxJQUFBeUIsa0JBQUE7TUFDMUMsTUFBTUMsY0FBYyxJQUFBRCxrQkFBQSxHQUFHekIsT0FBTyxDQUFDd0IsU0FBUyxDQUFDLGNBQUFDLGtCQUFBLGNBQUFBLGtCQUFBLEdBQUksSUFBQWxDLG1CQUFNLEVBQUMsQ0FBQztNQUNyRCxNQUFNb0MsbUJBQW1CLEdBQUd2RixJQUFJLENBQUN3RixJQUFJLENBQUMsR0FBR0osU0FBUyxDQUFDSyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7TUFDbkUsTUFBTWhDLFFBQVEsR0FBR3pELElBQUksQ0FBQ3dGLElBQUksQ0FBQ1Isa0JBQWtCLEVBQUVPLG1CQUFtQixDQUFDO01BQ25FLE1BQU0sSUFBQXRCLGtCQUFTLEVBQUNqRSxJQUFJLENBQUNrRSxPQUFPLENBQUNULFFBQVEsQ0FBQyxDQUFDO01BQ3ZDLElBQUksT0FBTzZCLGNBQWMsS0FBSyxRQUFRLEVBQUU7UUFDcEMsTUFBTSxJQUFBbkIsa0JBQVMsRUFBQ1YsUUFBUSxFQUFFNkIsY0FBYyxFQUFFLE1BQU0sQ0FBQztNQUNyRCxDQUFDLE1BQU07UUFDSCxNQUFNLElBQUFuQixrQkFBUyxFQUFDVixRQUFRLEVBQUVMLE1BQU0sQ0FBQ3NDLElBQUksQ0FBQ0osY0FBYyxDQUFDaEMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO01BQ2xGO0lBQ0o7RUFDSjtFQUVBLE1BQWFxQyxNQUFNQSxDQUFDZCxlQUFnQyxFQUFFQyxHQUFXLEVBQUVDLFFBQWdCLEVBQW9CO0lBQ25HLElBQUlGLGVBQWUsQ0FBQ3hCLElBQUksS0FBSyxrQkFBa0IsRUFBRTtNQUM3QyxNQUFNLElBQUk0QixLQUFLLENBQUMsMkNBQTJDLENBQUM7SUFDaEU7SUFDQSxJQUFJLElBQUksQ0FBQ1QsSUFBSSxLQUFLb0IsOEJBQWMsQ0FBQ0MsUUFBUSxJQUFJLElBQUksQ0FBQ3JCLElBQUksS0FBS29CLDhCQUFjLENBQUNFLFdBQVcsRUFBRTtNQUNuRixPQUFPLEtBQUs7SUFDaEI7SUFDQSxNQUFNQyxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUNDLHlCQUF5QixDQUFDbEIsR0FBRyxFQUFFRCxlQUFlLENBQUNNLE9BQU8sRUFBRUosUUFBUSxDQUFDO0lBQ25HLE9BQU9nQixjQUFjLElBQUlFLFNBQVM7RUFDdEM7RUFFQSxNQUFhQyxVQUFVQSxDQUNuQnJCLGVBQXVCLEVBQ3ZCQyxHQUFXLEVBQ1hDLFFBQWdCLEVBQ2hCQyxrQkFBMEIsRUFDMUJtQixRQUFnQixFQUNoQkMsV0FBbUIsRUFDTjtJQUNiLE1BQU1DLGFBQWEsR0FBRyxJQUFJLENBQUNuQixnQkFBZ0IsQ0FBQ0osR0FBRyxFQUFFRCxlQUFlLEVBQUVFLFFBQVEsQ0FBQztJQUMzRSxJQUFJLEVBQUUsTUFBTSxJQUFBbEIsbUJBQVUsRUFBQ3dDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7TUFDcEM7SUFDSjtJQUNBO0lBQ0EsSUFBSXpDLE9BQStCLEdBQUdFLElBQUksQ0FBQ0MsS0FBSyxDQUFDLE1BQU0sSUFBQUMsaUJBQVEsRUFBQ3FDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RnpDLE9BQU8sR0FBRztNQUNOLEdBQUdBLE9BQU87TUFDVixDQUFDdUMsUUFBUSxHQUFHQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxJQUFBbkMsa0JBQVMsRUFBQ2pFLElBQUksQ0FBQ2tFLE9BQU8sQ0FBQ21DLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sSUFBQWxDLGtCQUFTLEVBQUNrQyxhQUFhLEVBQUV2QyxJQUFJLENBQUNNLFNBQVMsQ0FBQ1IsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDO0VBQ3BFO0VBRUEsTUFBYTBDLG1CQUFtQkEsQ0FBQ2pFLE9BQThCLEVBQTBDO0lBQ3JHLElBQUlBLE9BQU8sQ0FBQ21DLElBQUksS0FBS29CLDhCQUFjLENBQUNDLFFBQVEsSUFBSXhELE9BQU8sQ0FBQ21DLElBQUksS0FBS29CLDhCQUFjLENBQUNXLFFBQVEsRUFBRTtNQUN0RixPQUFPTixTQUFTO0lBQ3BCO0lBQ0EsTUFBTUYsY0FBYyxHQUFHLElBQUksQ0FBQ2IsZ0JBQWdCLENBQUM3QyxPQUFPLENBQUN5QyxHQUFHLEVBQUV6QyxPQUFPLENBQUNtRSxnQkFBZ0IsRUFBRW5FLE9BQU8sQ0FBQzBDLFFBQVEsQ0FBQztJQUNyRyxPQUFPLElBQUk1QyxpQkFBaUIsQ0FBQztNQUN6QndCLFNBQVMsRUFBRW9DO0lBQ2YsQ0FBQyxDQUFDO0VBQ047RUFFUWIsZ0JBQWdCQSxDQUFDSixHQUFXLEVBQUUwQixnQkFBd0IsRUFBRXpCLFFBQWdCLEVBQVU7SUFDdEYsTUFBTW9CLFFBQVEsR0FBSSxHQUFFLElBQUFNLFdBQUcsRUFBQzNCLEdBQUcsQ0FBRSxJQUFHLElBQUEyQixXQUFHLEVBQUNELGdCQUFnQixDQUFFLElBQUd6QixRQUFTLE1BQUs7SUFDdkUsT0FBTy9FLElBQUksQ0FBQ3dGLElBQUksQ0FBQyxJQUFJLENBQUNqQixhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRTRCLFFBQVEsQ0FBQztFQUM3RTtFQUVBLE1BQWNILHlCQUF5QkEsQ0FDbkNsQixHQUFXLEVBQ1gwQixnQkFBd0IsRUFDeEJ6QixRQUFnQixFQUNXO0lBQzNCLE1BQU10QixRQUFRLEdBQUcsSUFBSSxDQUFDeUIsZ0JBQWdCLENBQUNKLEdBQUcsRUFBRTBCLGdCQUFnQixFQUFFekIsUUFBUSxDQUFDO0lBQ3ZFLElBQUksQ0FBQ04sTUFBTSxDQUFDaUMsR0FBRyxDQUFFLDhCQUE2QmpELFFBQVMsRUFBQyxDQUFDO0lBQ3pELE1BQU1rRCxRQUFRLEdBQUczRyxJQUFJLENBQUM0RyxRQUFRLENBQUNuRCxRQUFRLENBQUM7SUFDeEMsTUFBTSxJQUFBUSxrQkFBUyxFQUFDakUsSUFBSSxDQUFDa0UsT0FBTyxDQUFDVCxRQUFRLENBQUMsQ0FBQztJQUN2QyxJQUFJLE1BQU0sSUFBQUksbUJBQVUsRUFBQ0osUUFBUSxDQUFDLEVBQUU7TUFDNUIsSUFBSSxDQUFDZ0IsTUFBTSxDQUFDaUMsR0FBRyxDQUFDLCtCQUErQixDQUFDO01BQ2hELE9BQU9qRCxRQUFRO0lBQ25CLENBQUMsTUFBTTtNQUNILElBQUk7UUFDQSxJQUFJLENBQUNnQixNQUFNLENBQUNpQyxHQUFHLENBQUUscUNBQW9DakQsUUFBUyxFQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDZ0IsTUFBTSxDQUFDaUMsR0FBRyxDQUFFLHVDQUFzQ0MsUUFBUyxFQUFDLENBQUM7UUFDbEUsTUFBTUUsUUFBUSxHQUFHLE1BQU0sSUFBQUMsa0JBQUssRUFBRSx5Q0FBd0NILFFBQVMsRUFBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQ2xDLE1BQU0sQ0FBQ2lDLEdBQUcsQ0FBRSwrQkFBOEJHLFFBQVEsQ0FBQ0UsTUFBTSxDQUFDeEQsUUFBUSxDQUFDLENBQUUsRUFBQyxDQUFDO1FBQzVFLElBQUlzRCxRQUFRLENBQUNFLE1BQU0sS0FBSyxHQUFHLEVBQUU7VUFDekIsTUFBTSxJQUFBNUMsa0JBQVMsRUFBQ1YsUUFBUSxFQUFFLE1BQU1vRCxRQUFRLENBQUNHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO1VBQzNELE9BQU92RCxRQUFRO1FBQ25CLENBQUMsTUFBTTtVQUNILElBQUlvRCxRQUFRLENBQUNFLE1BQU0sS0FBSyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDdEMsTUFBTSxDQUFDd0MsS0FBSyxDQUNaLDBDQUF5Q04sUUFBUyxVQUFTN0IsR0FBSSx1QkFBc0IwQixnQkFBaUIsdUJBQXNCekIsUUFBUyxFQUMxSSxDQUFDO1VBQ0wsQ0FBQyxNQUFNO1lBQ0gsSUFBSSxDQUFDTixNQUFNLENBQUN3QyxLQUFLLENBQ1osc0JBQXFCSixRQUFRLENBQUNFLE1BQU8sNkNBQzFDLENBQUM7VUFDTDtVQUNBLE9BQU9kLFNBQVM7UUFDcEI7TUFDSixDQUFDLENBQUMsT0FBT2lCLENBQUMsRUFBRTtRQUNSLElBQUksQ0FBQ3pDLE1BQU0sQ0FBQ3dDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztRQUMxRCxJQUFJLENBQUN4QyxNQUFNLENBQUN3QyxLQUFLLENBQUMseUNBQXlDLENBQUM7UUFDNUQsSUFBSSxDQUFDeEMsTUFBTSxDQUFDd0MsS0FBSyxDQUFDQyxDQUFDLENBQUM7UUFDcEIsT0FBT2pCLFNBQVM7TUFDcEI7SUFDSjtFQUNKO0FBQ0o7QUFBQzVCLE9BQUEsQ0FBQUMsVUFBQSxHQUFBQSxVQUFBIn0=