@kontur.candy/tools 2.179.0 → 2.181.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.
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.HttpError = exports.HttpClientResponse = exports.HttpClientRequestWrapper = exports.HttpClient = void 0;
7
7
  var _Errors = require("../Errors");
8
+ var _TypingUtils = require("../TypingUtils");
8
9
  function trimTrailingSlash(url) {
9
10
  return url.slice(-1) === "/" ? url.slice(0, -1) : url;
10
11
  }
@@ -106,15 +107,17 @@ class HttpClientRequestWrapper {
106
107
  }
107
108
  exports.HttpClientRequestWrapper = HttpClientRequestWrapper;
108
109
  class HttpClient {
109
- constructor(fetchImpl, baseUrl, authenticationProvider, defaultQueryParams) {
110
+ constructor(fetchImpl, baseUrl, authenticationProvider, defaultQueryParams, exceptionLogger) {
110
111
  this.fetchImpl = void 0;
111
112
  this.baseUrl = void 0;
112
113
  this.authenticationProvider = void 0;
113
114
  this.defaultParams = {};
115
+ this.exceptionLogger = void 0;
114
116
  this.fetchImpl = fetchImpl;
115
117
  this.baseUrl = baseUrl == undefined ? baseUrl : trimTrailingSlash(baseUrl);
116
118
  this.defaultParams = defaultQueryParams;
117
119
  this.authenticationProvider = authenticationProvider;
120
+ this.exceptionLogger = exceptionLogger;
118
121
  }
119
122
  get(url) {
120
123
  return this.method("GET")(url);
@@ -147,9 +150,17 @@ class HttpClient {
147
150
  }
148
151
  request.body = config.bodyFactory();
149
152
  }
150
- const response = await this.fetchImpl(fetchUrl, request);
151
- await this.checkStatus(response, config.acceptCodes);
152
- return response;
153
+ try {
154
+ const response = await this.fetchImpl(fetchUrl, request);
155
+ await this.checkStatus(response, config.acceptCodes);
156
+ return response;
157
+ } catch (e) {
158
+ var _this$exceptionLogger;
159
+ (_this$exceptionLogger = this.exceptionLogger) === null || _this$exceptionLogger === void 0 ? void 0 : _this$exceptionLogger.call(this, e, {
160
+ fetchUrl: fetchUrl
161
+ });
162
+ return (0, _TypingUtils.reject)(e);
163
+ }
153
164
  });
154
165
  }
155
166
  appendDefaultRequestHeaders(options, contentType) {
@@ -295,4 +306,4 @@ class HttpError extends Error {
295
306
  }
296
307
  }
297
308
  exports.HttpError = HttpError;
298
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3JzIiwicmVxdWlyZSIsInRyaW1UcmFpbGluZ1NsYXNoIiwidXJsIiwic2xpY2UiLCJ0cmltTGVhZGluZ1NsYXNoIiwiSHR0cENsaWVudFJlc3BvbnNlIiwiY29uc3RydWN0b3IiLCJmZXRjaFJlc3BvbnNlIiwic3RhdHVzIiwianNvbiIsInJlc3BvbnNlRGF0YSIsImV4cG9ydHMiLCJIdHRwQ2xpZW50UmVxdWVzdFdyYXBwZXIiLCJleGVjdXRlIiwiZXhlY3V0ZVJlcXVlc3QiLCJhY2NlcHRDb2RlcyIsInF1ZXJ5UGFyYW1zIiwic2lnbmFsIiwiYm9keUZhY3RvcnkiLCJjb250ZW50VHlwZSIsInRoZW4iLCJhcmdzIiwicmVzdWx0UHJvbWlzZSIsInJlc3VsdCIsImNyZWF0ZUNvbmZpZyIsIndpdGhBYm9ydFNpZ25hbCIsIndpdGhDb250ZW50VHlwZSIsIndpdGhCb2R5RnJvbUJ1ZmZlciIsImJvZHkiLCJ1bmRlZmluZWQiLCJ3aXRoSnNvbkJvZHkiLCJzZXJpYWxpemFibGVCb2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIndpdGhRdWVyeVBhcmFtcyIsIndpdGhSYXdCb2R5IiwiYWNjZXB0Q29kZSIsImNvZGUiLCJwdXNoIiwiY3JlYXRlIiwiZm4iLCJIdHRwQ2xpZW50IiwiZmV0Y2hJbXBsIiwiYmFzZVVybCIsImF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJkZWZhdWx0UXVlcnlQYXJhbXMiLCJkZWZhdWx0UGFyYW1zIiwiZ2V0IiwibWV0aG9kIiwicG9zdCIsInB1dCIsInBhdGNoIiwiZGVsZXRlIiwiY29uZmlnIiwiZmV0Y2hVcmwiLCJyZXF1ZXN0IiwiYXBwZW5kRGVmYXVsdFJlcXVlc3RIZWFkZXJzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJyZXNwb25zZSIsImNoZWNrU3RhdHVzIiwib3B0aW9ucyIsIl9vcHRpb25zJGhlYWRlcnMiLCJoZWFkZXJzIiwicGF0aCIsInBhcmFtcyIsInJlc3VsdFBhcmFtcyIsImluY2x1ZGVzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIk5vdFN1cHBvcnRlZEVycm9yIiwiY3JlYXRlUXVlcnlTdHJpbmciLCJpc1N1Y2Nlc3NSZXNwb25zZVN0YXR1cyIsImlzQWNjZXB0Q29kZXNJbmNsdWRlc1Jlc3BvbnNlU3RhdHVzIiwiZXJyb3JUZXh0IiwidGV4dCIsInNlcnZlclJlc3BvbnNlIiwicGFyc2UiLCJlIiwiX3JlZiIsIl9zZXJ2ZXJSZXNwb25zZSRNZXNzYSIsImVycm9yIiwiSHR0cEVycm9yIiwiTWVzc2FnZSIsIm1lc3NhZ2UiLCJFcnJvciIsInBvc3RTeW5jIiwiZGF0YSIsIlhNTEh0dHBSZXF1ZXN0Iiwib3BlbiIsIndpdGhDcmVkZW50aWFscyIsInNldFJlcXVlc3RIZWFkZXIiLCJzZW5kIiwicmVzcG9uc2VUZXh0IiwibWFrZVBhcmFtVmFsdWVTdHJpbmciLCJwYXJhbSIsInZhbHVlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicGFyYW1zMiIsIm1hcCIsImtleSIsInRvU3RyaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImZpbHRlciIsIngiLCJqb2luIiwiY3JlYXRlRmV0Y2hJbXBsIiwiZmV0Y2hXaXRoT3B0aW9ucyIsImlucHV0IiwiaW5pdCIsIl9pbml0IiwiX2luaXQkaGVhZGVycyIsInJlcXVlc3RJbml0IiwiY2FjaGUiLCJjcmVkZW50aWFscyIsImludGVncml0eSIsImtlZXBhbGl2ZSIsIm1vZGUiLCJyZWRpcmVjdCIsInJlZmVycmVyIiwicmVmZXJyZXJQb2xpY3kiLCJzdGF0dXNDb2RlIiwibmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9IdHRwQ2xpZW50L0h0dHBDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIE5vdFN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIi4uL0Vycm9yc1wiO1xuXG5pbXBvcnQgeyBGZXRjaCB9IGZyb20gXCIuL0ZldGNoSW1wbGVtZW50YXRpb24vRmV0Y2hcIjtcbmltcG9ydCB7XG4gICAgSHR0cFN0YXR1c0NvZGUsXG4gICAgSUh0dHBDbGllbnQsXG4gICAgSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlcixcbiAgICBJSHR0cENsaWVudFJlc3BvbnNlLFxuICAgIElIdHRwQ2xpZW50UmVzcG9uc2VTeW5jLFxuICAgIFF1ZXJ5UGFyYW1zT2JqZWN0LFxufSBmcm9tIFwiLi9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSHR0cENsaWVudEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi9IdHRwQ2xpZW50QXV0aGVudGljYXRpb25Qcm92aWRlclwiO1xuXG5mdW5jdGlvbiB0cmltVHJhaWxpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zbGljZSgtMSkgPT09IFwiL1wiID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybDtcbn1cblxuZnVuY3Rpb24gdHJpbUxlYWRpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybFswXSA9PT0gXCIvXCIgPyB1cmwuc2xpY2UoMSkgOiB1cmw7XG59XG5cbnR5cGUgQm9keUZhY3RvcnkgPSAoKSA9PiBCb2R5SW5pdCB8IG51bGw7XG5cbmludGVyZmFjZSBJSHR0cENsaWVudFJlcXVlc3RDb25maWcge1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAgIGJvZHlGYWN0b3J5PzogQm9keUZhY3Rvcnk7XG4gICAgYWNjZXB0Q29kZXM6IEh0dHBTdGF0dXNDb2RlW107XG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zT2JqZWN0O1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFJlc3BvbnNlIGltcGxlbWVudHMgSUh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmZXRjaFJlc3BvbnNlOiBSZXNwb25zZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmZXRjaFJlc3BvbnNlOiBSZXNwb25zZSkge1xuICAgICAgICB0aGlzLmZldGNoUmVzcG9uc2UgPSBmZXRjaFJlc3BvbnNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdHVzKCk6IEh0dHBTdGF0dXNDb2RlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZS5zdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGpzb248VD4oKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hSZXNwb25zZS5qc29uKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICByZXR1cm4gcmVzcG9uc2VEYXRhO1xuICAgIH1cbn1cblxudHlwZSBSZXF1ZXN0RXhlY3V0aW9uRnVuY3Rpb24gPSAoY29uZmlnOiBJSHR0cENsaWVudFJlcXVlc3RDb25maWcpID0+IFByb21pc2U8SHR0cENsaWVudFJlc3BvbnNlIHwgUmVzcG9uc2U+O1xuXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIGltcGxlbWVudHMgSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRlUmVxdWVzdDogUmVxdWVzdEV4ZWN1dGlvbkZ1bmN0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXB0Q29kZXM6IEh0dHBTdGF0dXNDb2RlW10gPSBbXTtcbiAgICBwcml2YXRlIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtc09iamVjdCA9IHt9O1xuICAgIHByaXZhdGUgc2lnbmFsOiB1bmRlZmluZWQgfCBBYm9ydFNpZ25hbDtcbiAgICBwcml2YXRlIGJvZHlGYWN0b3J5PzogQm9keUZhY3Rvcnk7XG4gICAgcHJpdmF0ZSBjb250ZW50VHlwZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihleGVjdXRlOiBSZXF1ZXN0RXhlY3V0aW9uRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5leGVjdXRlUmVxdWVzdCA9IGV4ZWN1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBYm9ydFNpZ25hbChzaWduYWw6IHVuZGVmaW5lZCB8IEFib3J0U2lnbmFsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuc2lnbmFsID0gc2lnbmFsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJvZHlGcm9tQnVmZmVyKGJvZHk6IGZhbHNlIHwgQnVmZmVyIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgICAgIGlmIChib2R5ID09PSBmYWxzZSB8fCBib2R5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ib2R5RmFjdG9yeSA9ICgpID0+IGJvZHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSnNvbkJvZHkoc2VyaWFsaXphYmxlQm9keTogdW5rbm93biB8IHt9IHwgdW5rbm93bltdIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgICAgIGlmIChzZXJpYWxpemFibGVCb2R5ICE9PSBmYWxzZSAmJiBzZXJpYWxpemFibGVCb2R5ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5ib2R5RmFjdG9yeSA9ICgpID0+IEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6YWJsZUJvZHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zT2JqZWN0IHwgZmFsc2UgfCB1bmRlZmluZWQpOiB0aGlzIHtcbiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAgICAgLi4ucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmF3Qm9keShib2R5OiBCdWZmZXIgfCBzdHJpbmcgfCBmYWxzZSB8IHVuZGVmaW5lZCk6IHRoaXMge1xuICAgICAgICBpZiAoYm9keSAhPT0gZmFsc2UgJiYgYm9keSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYm9keUZhY3RvcnkgPSAoKSA9PiBib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBqc29uPFQ+KCk6IFByb21pc2U8VD4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lmpzb248VD4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWNjZXB0Q29kZShjb2RlOiBIdHRwU3RhdHVzQ29kZSk6IHRoaXMge1xuICAgICAgICB0aGlzLmFjY2VwdENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSB0aGVuOiBQcm9taXNlPEh0dHBDbGllbnRSZXNwb25zZT5bXCJ0aGVuXCJdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0UHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHRoaXMuY3JlYXRlQ29uZmlnKCkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEh0dHBDbGllbnRSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSHR0cENsaWVudFJlc3BvbnNlKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHJldHVybiByZXN1bHRQcm9taXNlLnRoZW4oLi4uYXJncyk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY3JlYXRlQ29uZmlnKCk6IElIdHRwQ2xpZW50UmVxdWVzdENvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgICAgICAgYm9keUZhY3Rvcnk6IHRoaXMuYm9keUZhY3RvcnksXG4gICAgICAgICAgICBhY2NlcHRDb2RlczogdGhpcy5hY2NlcHRDb2RlcyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGUoZm46IFJlcXVlc3RFeGVjdXRpb25GdW5jdGlvbik6IEh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgICAgIHJldHVybiBuZXcgSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyKGZuKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50IGltcGxlbWVudHMgSUh0dHBDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmV0Y2hJbXBsOiBGZXRjaDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhc2VVcmw6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IEh0dHBDbGllbnRBdXRoZW50aWNhdGlvblByb3ZpZGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFBhcmFtcz86IFF1ZXJ5UGFyYW1zT2JqZWN0ID0ge307XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHVuZGVmaW5lZCB8IHN0cmluZyxcbiAgICAgICAgYXV0aGVudGljYXRpb25Qcm92aWRlcjogSHR0cENsaWVudEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRRdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zT2JqZWN0XG4gICAgKSB7XG4gICAgICAgIHRoaXMuZmV0Y2hJbXBsID0gZmV0Y2hJbXBsO1xuICAgICAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsID09IHVuZGVmaW5lZCA/IGJhc2VVcmwgOiB0cmltVHJhaWxpbmdTbGFzaChiYXNlVXJsKTtcbiAgICAgICAgdGhpcy5kZWZhdWx0UGFyYW1zID0gZGVmYXVsdFF1ZXJ5UGFyYW1zO1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgPSBhdXRoZW50aWNhdGlvblByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiR0VUXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3QodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiUE9TVFwiKSh1cmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwdXQodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiUFVUXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoKHVybDogc3RyaW5nKTogSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ldGhvZChcIlBBVENIXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZSh1cmw6IHN0cmluZyk6IElIdHRwQ2xpZW50UmVxdWVzdFdyYXBwZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRob2QoXCJERUxFVEVcIikodXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ldGhvZChtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiKTogKHVybDogc3RyaW5nKSA9PiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuICh1cmw6IHN0cmluZykgPT5cbiAgICAgICAgICAgIEh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlci5jcmVhdGUoYXN5bmMgY29uZmlnID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaFVybCA9IHRoaXMudXJsKHVybCwgY29uZmlnLnF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IHRoaXMuYXBwZW5kRGVmYXVsdFJlcXVlc3RIZWFkZXJzKHsgbWV0aG9kOiBtZXRob2QgfSwgY29uZmlnLmNvbnRlbnRUeXBlKTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0ID0gdGhpcy5hdXRoZW50aWNhdGlvblByb3ZpZGVyKHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjb25maWcuc2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2lnbmFsID0gY29uZmlnLnNpZ25hbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5ib2R5RmFjdG9yeSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtZXRob2RcIiwgXCJCb2R5IGlzIG5vdCBhbGxvd2VkIGZvciBHRVQgcmVxdWVzdHNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gY29uZmlnLmJvZHlGYWN0b3J5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaEltcGwoZmV0Y2hVcmwsIHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hlY2tTdGF0dXMocmVzcG9uc2UsIGNvbmZpZy5hY2NlcHRDb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmREZWZhdWx0UmVxdWVzdEhlYWRlcnMob3B0aW9uczogUmVxdWVzdEluaXQsIGNvbnRlbnRUeXBlPzogdW5kZWZpbmVkIHwgc3RyaW5nKTogUmVxdWVzdEluaXQge1xuICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8ge307XG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9IGNvbnRlbnRUeXBlID8/IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJDYWNoZS1Db250cm9sXCJdID0gXCJuby1jYWNoZSwgbm8tc3RvcmVcIjtcbiAgICAgICAgb3B0aW9ucy5oZWFkZXJzW1wiUHJhZ21hXCJdID0gXCJuby1jYWNoZVwiO1xuICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJFeHBpcmVzXCJdID0gXCIwXCI7XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cmwocGF0aDogc3RyaW5nLCBwYXJhbXM6IHVuZGVmaW5lZCB8IFF1ZXJ5UGFyYW1zT2JqZWN0KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHBhdGg7XG4gICAgICAgIGlmICh0aGlzLmJhc2VVcmwgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLmJhc2VVcmwgKyBcIi9cIiArIHRyaW1MZWFkaW5nU2xhc2gocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRQYXJhbXMgPSB7IC4uLnRoaXMuZGVmYXVsdFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKFwiP1wiKSAmJiBwYXJhbXMgIT0gdW5kZWZpbmVkICYmIE9iamVjdC5rZXlzKHJlc3VsdFBhcmFtcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEVycm9yKGBQYXNzaW5nIHNlYXJjaCBwYXJhbXMgaW4gdXJsIGFuZCB2aWEgcGFyYW1zIG9iamVjdCBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgdGhpcy5jcmVhdGVRdWVyeVN0cmluZyhyZXN1bHRQYXJhbXMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tTdGF0dXMocmVzcG9uc2U6IFJlc3BvbnNlLCBhY2NlcHRDb2Rlcz86IEh0dHBTdGF0dXNDb2RlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaXNTdWNjZXNzUmVzcG9uc2VTdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMDtcbiAgICAgICAgY29uc3QgaXNBY2NlcHRDb2Rlc0luY2x1ZGVzUmVzcG9uc2VTdGF0dXMgPSAoYWNjZXB0Q29kZXMgPz8gW10pLmluY2x1ZGVzKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIGlmICghaXNTdWNjZXNzUmVzcG9uc2VTdGF0dXMgJiYgIWlzQWNjZXB0Q29kZXNJbmNsdWRlc1Jlc3BvbnNlU3RhdHVzKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICBsZXQgc2VydmVyUmVzcG9uc2U7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlID0gSlNPTi5wYXJzZShlcnJvclRleHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlcnZlclJlc3BvbnNlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChcImVycm9yXCIgaW4gc2VydmVyUmVzcG9uc2UgJiYgdHlwZW9mIHNlcnZlclJlc3BvbnNlLmVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoc2VydmVyUmVzcG9uc2UuZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlLk1lc3NhZ2UgPz8gc2VydmVyUmVzcG9uc2UubWVzc2FnZSA/PyBzZXJ2ZXJSZXNwb25zZS5FcnJvcixcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoZXJyb3JUZXh0LCByZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RTeW5jKHVybDogc3RyaW5nLCBwYXJhbXM6IHVuZGVmaW5lZCB8IFF1ZXJ5UGFyYW1zT2JqZWN0LCBkYXRhOiB7fSk6IElIdHRwQ2xpZW50UmVzcG9uc2VTeW5jIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICByZXF1ZXN0Lm9wZW4oXCJQT1NUXCIsIHRoaXMudXJsKHVybCwgcGFyYW1zKSwgZmFsc2UpO1xuICAgICAgICByZXF1ZXN0LndpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLThcIik7XG4gICAgICAgIHJlcXVlc3Quc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICAgICAganNvbjogPFQ+KCkgPT4gSlNPTi5wYXJzZShyZXF1ZXN0LnJlc3BvbnNlVGV4dCkgYXMgVCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VQYXJhbVZhbHVlU3RyaW5nKHBhcmFtOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtKX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVRdWVyeVN0cmluZyhwYXJhbXM/OiBRdWVyeVBhcmFtc09iamVjdCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXJhbXMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbXMyID0gcGFyYW1zO1xuICAgICAgICBsZXQgcmVzdWx0ID0gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAgICAgLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zMltrZXldO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVBhcmFtVmFsdWVTdHJpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYWtlUGFyYW1WYWx1ZVN0cmluZyhrZXksIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYWtlUGFyYW1WYWx1ZVN0cmluZyhrZXksIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVBhcmFtVmFsdWVTdHJpbmcoa2V5LCBpdGVtLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4ICE9IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKHggPT4geCAhPSB1bmRlZmluZWQpXG4gICAgICAgICAgICAuam9pbihcIiZcIik7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCA/IFwiP1wiICsgcmVzdWx0IDogXCJcIjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmV0Y2hJbXBsKCk6IEZldGNoIHtcbiAgICAgICAgY29uc3QgZmV0Y2hXaXRoT3B0aW9ucyA9IChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaFVybCA9IHRoaXMudXJsKGlucHV0LCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbml0ID8/IHt9O1xuICAgICAgICAgICAgICAgIGluaXQuaGVhZGVycyA9IGluaXQuaGVhZGVycyA/PyB7fTtcbiAgICAgICAgICAgICAgICBpbml0LmhlYWRlcnNbXCJDYWNoZS1Db250cm9sXCJdID0gXCJuby1jYWNoZSwgbm8tc3RvcmVcIjtcbiAgICAgICAgICAgICAgICBpbml0LmhlYWRlcnNbXCJQcmFnbWFcIl0gPSBcIm5vLWNhY2hlXCI7XG4gICAgICAgICAgICAgICAgaW5pdC5oZWFkZXJzW1wiRXhwaXJlc1wiXSA9IFwiMFwiO1xuICAgICAgICAgICAgICAgIGluaXQgPSB0aGlzLmF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoaW5pdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hJbXBsKGZldGNoVXJsLCBpbml0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hVcmwgPSB0aGlzLnVybChpbnB1dC51cmwsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgbGV0IHJlcXVlc3RJbml0OiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FjaGUtQ29udHJvbFwiXTogXCJuby1jYWNoZSwgbm8tc3RvcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByYWdtYVwiXTogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1wiRXhwaXJlc1wiXTogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pbnB1dC5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzaWduYWw6IGlucHV0LnNpZ25hbCxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGlucHV0LmNhY2hlLFxuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXQuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVncml0eTogaW5wdXQuaW50ZWdyaXR5LFxuICAgICAgICAgICAgICAgICAgICBrZWVwYWxpdmU6IGlucHV0LmtlZXBhbGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBpbnB1dC5tZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IGlucHV0Lm1vZGUsXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBpbnB1dC5yZWRpcmVjdCxcbiAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXI6IGlucHV0LnJlZmVycmVyLFxuICAgICAgICAgICAgICAgICAgICByZWZlcnJlclBvbGljeTogaW5wdXQucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SW5pdCA9IHRoaXMuYXV0aGVudGljYXRpb25Qcm92aWRlcihyZXF1ZXN0SW5pdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hJbXBsKGZldGNoVXJsLCByZXF1ZXN0SW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBmZXRjaFdpdGhPcHRpb25zO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgc3RhdHVzQ29kZTogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIkh0dHBFcnJvclwiO1xuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3VwZXIubWVzc2FnZSArIGAuIFN0YXR1c0NvZGU6ICR7dGhpcy5zdGF0dXNDb2RlfWA7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdB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
309
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3JzIiwicmVxdWlyZSIsIl9UeXBpbmdVdGlscyIsInRyaW1UcmFpbGluZ1NsYXNoIiwidXJsIiwic2xpY2UiLCJ0cmltTGVhZGluZ1NsYXNoIiwiSHR0cENsaWVudFJlc3BvbnNlIiwiY29uc3RydWN0b3IiLCJmZXRjaFJlc3BvbnNlIiwic3RhdHVzIiwianNvbiIsInJlc3BvbnNlRGF0YSIsImV4cG9ydHMiLCJIdHRwQ2xpZW50UmVxdWVzdFdyYXBwZXIiLCJleGVjdXRlIiwiZXhlY3V0ZVJlcXVlc3QiLCJhY2NlcHRDb2RlcyIsInF1ZXJ5UGFyYW1zIiwic2lnbmFsIiwiYm9keUZhY3RvcnkiLCJjb250ZW50VHlwZSIsInRoZW4iLCJhcmdzIiwicmVzdWx0UHJvbWlzZSIsInJlc3VsdCIsImNyZWF0ZUNvbmZpZyIsIndpdGhBYm9ydFNpZ25hbCIsIndpdGhDb250ZW50VHlwZSIsIndpdGhCb2R5RnJvbUJ1ZmZlciIsImJvZHkiLCJ1bmRlZmluZWQiLCJ3aXRoSnNvbkJvZHkiLCJzZXJpYWxpemFibGVCb2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIndpdGhRdWVyeVBhcmFtcyIsIndpdGhSYXdCb2R5IiwiYWNjZXB0Q29kZSIsImNvZGUiLCJwdXNoIiwiY3JlYXRlIiwiZm4iLCJIdHRwQ2xpZW50IiwiZmV0Y2hJbXBsIiwiYmFzZVVybCIsImF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJkZWZhdWx0UXVlcnlQYXJhbXMiLCJleGNlcHRpb25Mb2dnZXIiLCJkZWZhdWx0UGFyYW1zIiwiZ2V0IiwibWV0aG9kIiwicG9zdCIsInB1dCIsInBhdGNoIiwiZGVsZXRlIiwiY29uZmlnIiwiZmV0Y2hVcmwiLCJyZXF1ZXN0IiwiYXBwZW5kRGVmYXVsdFJlcXVlc3RIZWFkZXJzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJyZXNwb25zZSIsImNoZWNrU3RhdHVzIiwiZSIsIl90aGlzJGV4Y2VwdGlvbkxvZ2dlciIsImNhbGwiLCJyZWplY3QiLCJvcHRpb25zIiwiX29wdGlvbnMkaGVhZGVycyIsImhlYWRlcnMiLCJwYXRoIiwicGFyYW1zIiwicmVzdWx0UGFyYW1zIiwiaW5jbHVkZXMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiTm90U3VwcG9ydGVkRXJyb3IiLCJjcmVhdGVRdWVyeVN0cmluZyIsImlzU3VjY2Vzc1Jlc3BvbnNlU3RhdHVzIiwiaXNBY2NlcHRDb2Rlc0luY2x1ZGVzUmVzcG9uc2VTdGF0dXMiLCJlcnJvclRleHQiLCJ0ZXh0Iiwic2VydmVyUmVzcG9uc2UiLCJwYXJzZSIsIl9yZWYiLCJfc2VydmVyUmVzcG9uc2UkTWVzc2EiLCJlcnJvciIsIkh0dHBFcnJvciIsIk1lc3NhZ2UiLCJtZXNzYWdlIiwiRXJyb3IiLCJwb3N0U3luYyIsImRhdGEiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJ3aXRoQ3JlZGVudGlhbHMiLCJzZXRSZXF1ZXN0SGVhZGVyIiwic2VuZCIsInJlc3BvbnNlVGV4dCIsIm1ha2VQYXJhbVZhbHVlU3RyaW5nIiwicGFyYW0iLCJ2YWx1ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInBhcmFtczIiLCJtYXAiLCJrZXkiLCJ0b1N0cmluZyIsIkFycmF5IiwiaXNBcnJheSIsIml0ZW0iLCJmaWx0ZXIiLCJ4Iiwiam9pbiIsImNyZWF0ZUZldGNoSW1wbCIsImZldGNoV2l0aE9wdGlvbnMiLCJpbnB1dCIsImluaXQiLCJfaW5pdCIsIl9pbml0JGhlYWRlcnMiLCJyZXF1ZXN0SW5pdCIsImNhY2hlIiwiY3JlZGVudGlhbHMiLCJpbnRlZ3JpdHkiLCJrZWVwYWxpdmUiLCJtb2RlIiwicmVkaXJlY3QiLCJyZWZlcnJlciIsInJlZmVycmVyUG9saWN5Iiwic3RhdHVzQ29kZSIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vSHR0cENsaWVudC9IdHRwQ2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBOb3RTdXBwb3J0ZWRFcnJvciB9IGZyb20gXCIuLi9FcnJvcnNcIjtcbmltcG9ydCB7IHJlamVjdCB9IGZyb20gXCIuLi9UeXBpbmdVdGlsc1wiO1xuXG5pbXBvcnQgeyBGZXRjaCB9IGZyb20gXCIuL0ZldGNoSW1wbGVtZW50YXRpb24vRmV0Y2hcIjtcbmltcG9ydCB7XG4gICAgSHR0cFN0YXR1c0NvZGUsXG4gICAgSUh0dHBDbGllbnQsXG4gICAgSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlcixcbiAgICBJSHR0cENsaWVudFJlc3BvbnNlLFxuICAgIElIdHRwQ2xpZW50UmVzcG9uc2VTeW5jLFxuICAgIFF1ZXJ5UGFyYW1zT2JqZWN0LFxufSBmcm9tIFwiLi9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSHR0cENsaWVudEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi9IdHRwQ2xpZW50QXV0aGVudGljYXRpb25Qcm92aWRlclwiO1xuXG5mdW5jdGlvbiB0cmltVHJhaWxpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zbGljZSgtMSkgPT09IFwiL1wiID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybDtcbn1cblxuZnVuY3Rpb24gdHJpbUxlYWRpbmdTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybFswXSA9PT0gXCIvXCIgPyB1cmwuc2xpY2UoMSkgOiB1cmw7XG59XG5cbnR5cGUgQm9keUZhY3RvcnkgPSAoKSA9PiBCb2R5SW5pdCB8IG51bGw7XG5cbmludGVyZmFjZSBJSHR0cENsaWVudFJlcXVlc3RDb25maWcge1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAgIGJvZHlGYWN0b3J5PzogQm9keUZhY3Rvcnk7XG4gICAgYWNjZXB0Q29kZXM6IEh0dHBTdGF0dXNDb2RlW107XG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zT2JqZWN0O1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFeGNlcHRpb25Mb2dnZXJQYXJhbXMge1xuICAgIGZldGNoVXJsPzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgRXhjZXB0aW9uTG9nZ2VyID0gKGVycm9yOiB1bmtub3duLCBwYXJhbXM/OiBJRXhjZXB0aW9uTG9nZ2VyUGFyYW1zKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFJlc3BvbnNlIGltcGxlbWVudHMgSUh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmZXRjaFJlc3BvbnNlOiBSZXNwb25zZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmZXRjaFJlc3BvbnNlOiBSZXNwb25zZSkge1xuICAgICAgICB0aGlzLmZldGNoUmVzcG9uc2UgPSBmZXRjaFJlc3BvbnNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdHVzKCk6IEh0dHBTdGF0dXNDb2RlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZS5zdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGpzb248VD4oKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hSZXNwb25zZS5qc29uKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICByZXR1cm4gcmVzcG9uc2VEYXRhO1xuICAgIH1cbn1cblxudHlwZSBSZXF1ZXN0RXhlY3V0aW9uRnVuY3Rpb24gPSAoY29uZmlnOiBJSHR0cENsaWVudFJlcXVlc3RDb25maWcpID0+IFByb21pc2U8SHR0cENsaWVudFJlc3BvbnNlIHwgUmVzcG9uc2U+O1xuXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIGltcGxlbWVudHMgSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRlUmVxdWVzdDogUmVxdWVzdEV4ZWN1dGlvbkZ1bmN0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXB0Q29kZXM6IEh0dHBTdGF0dXNDb2RlW10gPSBbXTtcbiAgICBwcml2YXRlIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtc09iamVjdCA9IHt9O1xuICAgIHByaXZhdGUgc2lnbmFsOiB1bmRlZmluZWQgfCBBYm9ydFNpZ25hbDtcbiAgICBwcml2YXRlIGJvZHlGYWN0b3J5PzogQm9keUZhY3Rvcnk7XG4gICAgcHJpdmF0ZSBjb250ZW50VHlwZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihleGVjdXRlOiBSZXF1ZXN0RXhlY3V0aW9uRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5leGVjdXRlUmVxdWVzdCA9IGV4ZWN1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBYm9ydFNpZ25hbChzaWduYWw6IHVuZGVmaW5lZCB8IEFib3J0U2lnbmFsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuc2lnbmFsID0gc2lnbmFsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJvZHlGcm9tQnVmZmVyKGJvZHk6IGZhbHNlIHwgQnVmZmVyIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgICAgIGlmIChib2R5ID09PSBmYWxzZSB8fCBib2R5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ib2R5RmFjdG9yeSA9ICgpID0+IGJvZHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSnNvbkJvZHkoc2VyaWFsaXphYmxlQm9keTogdW5rbm93biB8IHt9IHwgdW5rbm93bltdIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgICAgIGlmIChzZXJpYWxpemFibGVCb2R5ICE9PSBmYWxzZSAmJiBzZXJpYWxpemFibGVCb2R5ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5ib2R5RmFjdG9yeSA9ICgpID0+IEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6YWJsZUJvZHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zT2JqZWN0IHwgZmFsc2UgfCB1bmRlZmluZWQpOiB0aGlzIHtcbiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICAgICAgLi4ucXVlcnlQYXJhbXMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmF3Qm9keShib2R5OiBCdWZmZXIgfCBzdHJpbmcgfCBmYWxzZSB8IHVuZGVmaW5lZCk6IHRoaXMge1xuICAgICAgICBpZiAoYm9keSAhPT0gZmFsc2UgJiYgYm9keSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYm9keUZhY3RvcnkgPSAoKSA9PiBib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBqc29uPFQ+KCk6IFByb21pc2U8VD4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lmpzb248VD4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWNjZXB0Q29kZShjb2RlOiBIdHRwU3RhdHVzQ29kZSk6IHRoaXMge1xuICAgICAgICB0aGlzLmFjY2VwdENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSB0aGVuOiBQcm9taXNlPEh0dHBDbGllbnRSZXNwb25zZT5bXCJ0aGVuXCJdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0UHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KHRoaXMuY3JlYXRlQ29uZmlnKCkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEh0dHBDbGllbnRSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSHR0cENsaWVudFJlc3BvbnNlKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHJldHVybiByZXN1bHRQcm9taXNlLnRoZW4oLi4uYXJncyk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY3JlYXRlQ29uZmlnKCk6IElIdHRwQ2xpZW50UmVxdWVzdENvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgICAgICAgYm9keUZhY3Rvcnk6IHRoaXMuYm9keUZhY3RvcnksXG4gICAgICAgICAgICBhY2NlcHRDb2RlczogdGhpcy5hY2NlcHRDb2RlcyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGUoZm46IFJlcXVlc3RFeGVjdXRpb25GdW5jdGlvbik6IEh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgICAgIHJldHVybiBuZXcgSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyKGZuKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50IGltcGxlbWVudHMgSUh0dHBDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmV0Y2hJbXBsOiBGZXRjaDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhc2VVcmw6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IEh0dHBDbGllbnRBdXRoZW50aWNhdGlvblByb3ZpZGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFBhcmFtcz86IFF1ZXJ5UGFyYW1zT2JqZWN0ID0ge307XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGNlcHRpb25Mb2dnZXI/OiBFeGNlcHRpb25Mb2dnZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHVuZGVmaW5lZCB8IHN0cmluZyxcbiAgICAgICAgYXV0aGVudGljYXRpb25Qcm92aWRlcjogSHR0cENsaWVudEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIsXG4gICAgICAgIGRlZmF1bHRRdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zT2JqZWN0LFxuICAgICAgICBleGNlcHRpb25Mb2dnZXI/OiBFeGNlcHRpb25Mb2dnZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5mZXRjaEltcGwgPSBmZXRjaEltcGw7XG4gICAgICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmwgPT0gdW5kZWZpbmVkID8gYmFzZVVybCA6IHRyaW1UcmFpbGluZ1NsYXNoKGJhc2VVcmwpO1xuICAgICAgICB0aGlzLmRlZmF1bHRQYXJhbXMgPSBkZWZhdWx0UXVlcnlQYXJhbXM7XG4gICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25Qcm92aWRlciA9IGF1dGhlbnRpY2F0aW9uUHJvdmlkZXI7XG4gICAgICAgIHRoaXMuZXhjZXB0aW9uTG9nZ2VyID0gZXhjZXB0aW9uTG9nZ2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiR0VUXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3QodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiUE9TVFwiKSh1cmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwdXQodXJsOiBzdHJpbmcpOiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0aG9kKFwiUFVUXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoKHVybDogc3RyaW5nKTogSUh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1ldGhvZChcIlBBVENIXCIpKHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZSh1cmw6IHN0cmluZyk6IElIdHRwQ2xpZW50UmVxdWVzdFdyYXBwZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRob2QoXCJERUxFVEVcIikodXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ldGhvZChtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIlBBVENIXCIgfCBcIkRFTEVURVwiKTogKHVybDogc3RyaW5nKSA9PiBJSHR0cENsaWVudFJlcXVlc3RXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuICh1cmw6IHN0cmluZykgPT5cbiAgICAgICAgICAgIEh0dHBDbGllbnRSZXF1ZXN0V3JhcHBlci5jcmVhdGUoYXN5bmMgY29uZmlnID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaFVybCA9IHRoaXMudXJsKHVybCwgY29uZmlnLnF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IHRoaXMuYXBwZW5kRGVmYXVsdFJlcXVlc3RIZWFkZXJzKHsgbWV0aG9kOiBtZXRob2QgfSwgY29uZmlnLmNvbnRlbnRUeXBlKTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0ID0gdGhpcy5hdXRoZW50aWNhdGlvblByb3ZpZGVyKHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjb25maWcuc2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2lnbmFsID0gY29uZmlnLnNpZ25hbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5ib2R5RmFjdG9yeSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJtZXRob2RcIiwgXCJCb2R5IGlzIG5vdCBhbGxvd2VkIGZvciBHRVQgcmVxdWVzdHNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5ib2R5ID0gY29uZmlnLmJvZHlGYWN0b3J5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZldGNoSW1wbChmZXRjaFVybCwgcmVxdWVzdCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hlY2tTdGF0dXMocmVzcG9uc2UsIGNvbmZpZy5hY2NlcHRDb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhjZXB0aW9uTG9nZ2VyPy4oZSwgeyBmZXRjaFVybDogZmV0Y2hVcmwgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZSBhcyBFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmREZWZhdWx0UmVxdWVzdEhlYWRlcnMob3B0aW9uczogUmVxdWVzdEluaXQsIGNvbnRlbnRUeXBlPzogdW5kZWZpbmVkIHwgc3RyaW5nKTogUmVxdWVzdEluaXQge1xuICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgPz8ge307XG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1tcIkNvbnRlbnQtVHlwZVwiXSA9IGNvbnRlbnRUeXBlID8/IFwiYXBwbGljYXRpb24vanNvblwiO1xuICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJDYWNoZS1Db250cm9sXCJdID0gXCJuby1jYWNoZSwgbm8tc3RvcmVcIjtcbiAgICAgICAgb3B0aW9ucy5oZWFkZXJzW1wiUHJhZ21hXCJdID0gXCJuby1jYWNoZVwiO1xuICAgICAgICBvcHRpb25zLmhlYWRlcnNbXCJFeHBpcmVzXCJdID0gXCIwXCI7XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cmwocGF0aDogc3RyaW5nLCBwYXJhbXM6IHVuZGVmaW5lZCB8IFF1ZXJ5UGFyYW1zT2JqZWN0KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHBhdGg7XG4gICAgICAgIGlmICh0aGlzLmJhc2VVcmwgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0aGlzLmJhc2VVcmwgKyBcIi9cIiArIHRyaW1MZWFkaW5nU2xhc2gocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRQYXJhbXMgPSB7IC4uLnRoaXMuZGVmYXVsdFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKFwiP1wiKSAmJiBwYXJhbXMgIT0gdW5kZWZpbmVkICYmIE9iamVjdC5rZXlzKHJlc3VsdFBhcmFtcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEVycm9yKGBQYXNzaW5nIHNlYXJjaCBwYXJhbXMgaW4gdXJsIGFuZCB2aWEgcGFyYW1zIG9iamVjdCBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgdGhpcy5jcmVhdGVRdWVyeVN0cmluZyhyZXN1bHRQYXJhbXMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tTdGF0dXMocmVzcG9uc2U6IFJlc3BvbnNlLCBhY2NlcHRDb2Rlcz86IEh0dHBTdGF0dXNDb2RlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaXNTdWNjZXNzUmVzcG9uc2VTdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMDtcbiAgICAgICAgY29uc3QgaXNBY2NlcHRDb2Rlc0luY2x1ZGVzUmVzcG9uc2VTdGF0dXMgPSAoYWNjZXB0Q29kZXMgPz8gW10pLmluY2x1ZGVzKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIGlmICghaXNTdWNjZXNzUmVzcG9uc2VTdGF0dXMgJiYgIWlzQWNjZXB0Q29kZXNJbmNsdWRlc1Jlc3BvbnNlU3RhdHVzKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICBsZXQgc2VydmVyUmVzcG9uc2U7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlID0gSlNPTi5wYXJzZShlcnJvclRleHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlcnZlclJlc3BvbnNlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChcImVycm9yXCIgaW4gc2VydmVyUmVzcG9uc2UgJiYgdHlwZW9mIHNlcnZlclJlc3BvbnNlLmVycm9yID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoc2VydmVyUmVzcG9uc2UuZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlLk1lc3NhZ2UgPz8gc2VydmVyUmVzcG9uc2UubWVzc2FnZSA/PyBzZXJ2ZXJSZXNwb25zZS5FcnJvcixcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoZXJyb3JUZXh0LCByZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RTeW5jKHVybDogc3RyaW5nLCBwYXJhbXM6IHVuZGVmaW5lZCB8IFF1ZXJ5UGFyYW1zT2JqZWN0LCBkYXRhOiB7fSk6IElIdHRwQ2xpZW50UmVzcG9uc2VTeW5jIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICByZXF1ZXN0Lm9wZW4oXCJQT1NUXCIsIHRoaXMudXJsKHVybCwgcGFyYW1zKSwgZmFsc2UpO1xuICAgICAgICByZXF1ZXN0LndpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLThcIik7XG4gICAgICAgIHJlcXVlc3Quc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXM6IHJlcXVlc3Quc3RhdHVzLFxuICAgICAgICAgICAganNvbjogPFQ+KCkgPT4gSlNPTi5wYXJzZShyZXF1ZXN0LnJlc3BvbnNlVGV4dCkgYXMgVCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VQYXJhbVZhbHVlU3RyaW5nKHBhcmFtOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtKX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVRdWVyeVN0cmluZyhwYXJhbXM/OiBRdWVyeVBhcmFtc09iamVjdCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXJhbXMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbXMyID0gcGFyYW1zO1xuICAgICAgICBsZXQgcmVzdWx0ID0gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAgICAgLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zMltrZXldO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVBhcmFtVmFsdWVTdHJpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYWtlUGFyYW1WYWx1ZVN0cmluZyhrZXksIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYWtlUGFyYW1WYWx1ZVN0cmluZyhrZXksIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVBhcmFtVmFsdWVTdHJpbmcoa2V5LCBpdGVtLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoeCA9PiB4ICE9IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKHggPT4geCAhPSB1bmRlZmluZWQpXG4gICAgICAgICAgICAuam9pbihcIiZcIik7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCA/IFwiP1wiICsgcmVzdWx0IDogXCJcIjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmV0Y2hJbXBsKCk6IEZldGNoIHtcbiAgICAgICAgY29uc3QgZmV0Y2hXaXRoT3B0aW9ucyA9IChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaFVybCA9IHRoaXMudXJsKGlucHV0LCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbml0ID8/IHt9O1xuICAgICAgICAgICAgICAgIGluaXQuaGVhZGVycyA9IGluaXQuaGVhZGVycyA/PyB7fTtcbiAgICAgICAgICAgICAgICBpbml0LmhlYWRlcnNbXCJDYWNoZS1Db250cm9sXCJdID0gXCJuby1jYWNoZSwgbm8tc3RvcmVcIjtcbiAgICAgICAgICAgICAgICBpbml0LmhlYWRlcnNbXCJQcmFnbWFcIl0gPSBcIm5vLWNhY2hlXCI7XG4gICAgICAgICAgICAgICAgaW5pdC5oZWFkZXJzW1wiRXhwaXJlc1wiXSA9IFwiMFwiO1xuICAgICAgICAgICAgICAgIGluaXQgPSB0aGlzLmF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoaW5pdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hJbXBsKGZldGNoVXJsLCBpbml0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hVcmwgPSB0aGlzLnVybChpbnB1dC51cmwsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgbGV0IHJlcXVlc3RJbml0OiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FjaGUtQ29udHJvbFwiXTogXCJuby1jYWNoZSwgbm8tc3RvcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByYWdtYVwiXTogXCJuby1jYWNoZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1wiRXhwaXJlc1wiXTogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pbnB1dC5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzaWduYWw6IGlucHV0LnNpZ25hbCxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGlucHV0LmNhY2hlLFxuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogaW5wdXQuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVncml0eTogaW5wdXQuaW50ZWdyaXR5LFxuICAgICAgICAgICAgICAgICAgICBrZWVwYWxpdmU6IGlucHV0LmtlZXBhbGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBpbnB1dC5tZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IGlucHV0Lm1vZGUsXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBpbnB1dC5yZWRpcmVjdCxcbiAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXI6IGlucHV0LnJlZmVycmVyLFxuICAgICAgICAgICAgICAgICAgICByZWZlcnJlclBvbGljeTogaW5wdXQucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0SW5pdCA9IHRoaXMuYXV0aGVudGljYXRpb25Qcm92aWRlcihyZXF1ZXN0SW5pdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hJbXBsKGZldGNoVXJsLCByZXF1ZXN0SW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBmZXRjaFdpdGhPcHRpb25zO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgc3RhdHVzQ29kZTogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIkh0dHBFcnJvclwiO1xuICAgICAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3VwZXIubWVzc2FnZSArIGAuIFN0YXR1c0NvZGU6ICR7dGhpcy5zdGF0dXNDb2RlfWA7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFhQSxTQUFTRSxpQkFBaUJBLENBQUNDLEdBQVcsRUFBVTtFQUM1QyxPQUFPQSxHQUFHLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBR0QsR0FBRyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUdELEdBQUc7QUFDekQ7QUFFQSxTQUFTRSxnQkFBZ0JBLENBQUNGLEdBQVcsRUFBVTtFQUMzQyxPQUFPQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHQSxHQUFHLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBR0QsR0FBRztBQUM5QztBQWlCTyxNQUFNRyxrQkFBa0IsQ0FBZ0M7RUFHcERDLFdBQVdBLENBQUNDLGFBQXVCLEVBQUU7SUFBQSxLQUYzQkEsYUFBYTtJQUcxQixJQUFJLENBQUNBLGFBQWEsR0FBR0EsYUFBYTtFQUN0QztFQUVBLElBQVdDLE1BQU1BLENBQUEsRUFBbUI7SUFDaEMsT0FBTyxJQUFJLENBQUNELGFBQWEsQ0FBQ0MsTUFBTTtFQUNwQztFQUVBLE1BQWFDLElBQUlBLENBQUEsRUFBa0I7SUFDL0IsTUFBTUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDSCxhQUFhLENBQUNFLElBQUksQ0FBQyxDQUFDO0lBQ3BEO0lBQ0EsT0FBT0MsWUFBWTtFQUN2QjtBQUNKO0FBQUNDLE9BQUEsQ0FBQU4sa0JBQUEsR0FBQUEsa0JBQUE7QUFJTSxNQUFNTyx3QkFBd0IsQ0FBc0M7RUFRaEVOLFdBQVdBLENBQUNPLE9BQWlDLEVBQUU7SUFBQSxLQVByQ0MsY0FBYztJQUFBLEtBQ2RDLFdBQVcsR0FBcUIsRUFBRTtJQUFBLEtBQzNDQyxXQUFXLEdBQXNCLENBQUMsQ0FBQztJQUFBLEtBQ25DQyxNQUFNO0lBQUEsS0FDTkMsV0FBVztJQUFBLEtBQ1hDLFdBQVc7SUFBQSxLQTBESEMsSUFBSSxHQUF3QyxDQUFDLEdBQUdDLElBQUksS0FBSztNQUNyRSxNQUFNQyxhQUFhLEdBQUcsQ0FBQyxZQUFZO1FBQy9CLE1BQU1DLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQ1QsY0FBYyxDQUFDLElBQUksQ0FBQ1UsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJRCxNQUFNLFlBQVlsQixrQkFBa0IsRUFBRTtVQUN0QyxPQUFPa0IsTUFBTTtRQUNqQixDQUFDLE1BQU07VUFDSCxPQUFPLElBQUlsQixrQkFBa0IsQ0FBQ2tCLE1BQU0sQ0FBQztRQUN6QztNQUNKLENBQUMsRUFBRSxDQUFDO01BQ0osT0FBT0QsYUFBYSxDQUFDRixJQUFJLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFqRUcsSUFBSSxDQUFDUCxjQUFjLEdBQUdELE9BQU87RUFDakM7RUFFT1ksZUFBZUEsQ0FBQ1IsTUFBK0IsRUFBUTtJQUMxRCxJQUFJLENBQUNBLE1BQU0sR0FBR0EsTUFBTTtJQUNwQixPQUFPLElBQUk7RUFDZjtFQUVPUyxlQUFlQSxDQUFDUCxXQUFtQixFQUFRO0lBQzlDLElBQUksQ0FBQ0EsV0FBVyxHQUFHQSxXQUFXO0lBQzlCLE9BQU8sSUFBSTtFQUNmO0VBRU9RLGtCQUFrQkEsQ0FBQ0MsSUFBZ0MsRUFBUTtJQUM5RCxJQUFJQSxJQUFJLEtBQUssS0FBSyxJQUFJQSxJQUFJLElBQUlDLFNBQVMsRUFBRTtNQUNyQyxPQUFPLElBQUk7SUFDZjtJQUNBLElBQUksQ0FBQ1gsV0FBVyxHQUFHLE1BQU1VLElBQUk7SUFDN0IsT0FBTyxJQUFJO0VBQ2Y7RUFFT0UsWUFBWUEsQ0FBQ0MsZ0JBQXNELEVBQVE7SUFDOUUsSUFBSUEsZ0JBQWdCLEtBQUssS0FBSyxJQUFJQSxnQkFBZ0IsSUFBSUYsU0FBUyxFQUFFO01BQzdELElBQUksQ0FBQ1gsV0FBVyxHQUFHLE1BQU1jLElBQUksQ0FBQ0MsU0FBUyxDQUFDRixnQkFBZ0IsQ0FBQztJQUM3RDtJQUNBLE9BQU8sSUFBSTtFQUNmO0VBRU9HLGVBQWVBLENBQUNsQixXQUFrRCxFQUFRO0lBQzdFLElBQUlBLFdBQVcsRUFBRTtNQUNiLElBQUksQ0FBQ0EsV0FBVyxHQUFHO1FBQ2YsR0FBRyxJQUFJLENBQUNBLFdBQVc7UUFDbkIsR0FBR0E7TUFDUCxDQUFDO0lBQ0w7SUFDQSxPQUFPLElBQUk7RUFDZjtFQUVPbUIsV0FBV0EsQ0FBQ1AsSUFBeUMsRUFBUTtJQUNoRSxJQUFJQSxJQUFJLEtBQUssS0FBSyxJQUFJQSxJQUFJLElBQUlDLFNBQVMsRUFBRTtNQUNyQyxJQUFJLENBQUNYLFdBQVcsR0FBRyxNQUFNVSxJQUFJO0lBQ2pDO0lBQ0EsT0FBTyxJQUFJO0VBQ2Y7RUFFQSxNQUFhbkIsSUFBSUEsQ0FBQSxFQUFrQjtJQUMvQixNQUFNYyxNQUFNLEdBQUcsTUFBTSxJQUFJO0lBQ3pCLE9BQU9BLE1BQU0sQ0FBQ2QsSUFBSSxDQUFJLENBQUM7RUFDM0I7RUFFTzJCLFVBQVVBLENBQUNDLElBQW9CLEVBQVE7SUFDMUMsSUFBSSxDQUFDdEIsV0FBVyxDQUFDdUIsSUFBSSxDQUFDRCxJQUFJLENBQUM7SUFDM0IsT0FBTyxJQUFJO0VBQ2Y7RUFjUWIsWUFBWUEsQ0FBQSxFQUE2QjtJQUM3QyxPQUFPO01BQ0hQLE1BQU0sRUFBRSxJQUFJLENBQUNBLE1BQU07TUFDbkJDLFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVc7TUFDN0JILFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVc7TUFDN0JDLFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVc7TUFDN0JHLFdBQVcsRUFBRSxJQUFJLENBQUNBO0lBQ3RCLENBQUM7RUFDTDtFQUVBLE9BQWNvQixNQUFNQSxDQUFDQyxFQUE0QixFQUE0QjtJQUN6RSxPQUFPLElBQUk1Qix3QkFBd0IsQ0FBQzRCLEVBQUUsQ0FBQztFQUMzQztBQUNKO0FBQUM3QixPQUFBLENBQUFDLHdCQUFBLEdBQUFBLHdCQUFBO0FBRU0sTUFBTTZCLFVBQVUsQ0FBd0I7RUFPcENuQyxXQUFXQSxDQUNkb0MsU0FBZ0IsRUFDaEJDLE9BQTJCLEVBQzNCQyxzQkFBd0QsRUFDeERDLGtCQUFzQyxFQUN0Q0MsZUFBaUMsRUFDbkM7SUFBQSxLQVplSixTQUFTO0lBQUEsS0FDVEMsT0FBTztJQUFBLEtBQ1BDLHNCQUFzQjtJQUFBLEtBQ3RCRyxhQUFhLEdBQXVCLENBQUMsQ0FBQztJQUFBLEtBQ3RDRCxlQUFlO0lBUzVCLElBQUksQ0FBQ0osU0FBUyxHQUFHQSxTQUFTO0lBQzFCLElBQUksQ0FBQ0MsT0FBTyxHQUFHQSxPQUFPLElBQUlkLFNBQVMsR0FBR2MsT0FBTyxHQUFHMUMsaUJBQWlCLENBQUMwQyxPQUFPLENBQUM7SUFDMUUsSUFBSSxDQUFDSSxhQUFhLEdBQUdGLGtCQUFrQjtJQUN2QyxJQUFJLENBQUNELHNCQUFzQixHQUFHQSxzQkFBc0I7SUFDcEQsSUFBSSxDQUFDRSxlQUFlLEdBQUdBLGVBQWU7RUFDMUM7RUFFT0UsR0FBR0EsQ0FBQzlDLEdBQVcsRUFBNkI7SUFDL0MsT0FBTyxJQUFJLENBQUMrQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMvQyxHQUFHLENBQUM7RUFDbEM7RUFFT2dELElBQUlBLENBQUNoRCxHQUFXLEVBQTZCO0lBQ2hELE9BQU8sSUFBSSxDQUFDK0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDL0MsR0FBRyxDQUFDO0VBQ25DO0VBRU9pRCxHQUFHQSxDQUFDakQsR0FBVyxFQUE2QjtJQUMvQyxPQUFPLElBQUksQ0FBQytDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQy9DLEdBQUcsQ0FBQztFQUNsQztFQUVPa0QsS0FBS0EsQ0FBQ2xELEdBQVcsRUFBNkI7SUFDakQsT0FBTyxJQUFJLENBQUMrQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMvQyxHQUFHLENBQUM7RUFDcEM7RUFFT21ELE1BQU1BLENBQUNuRCxHQUFXLEVBQTZCO0lBQ2xELE9BQU8sSUFBSSxDQUFDK0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDL0MsR0FBRyxDQUFDO0VBQ3JDO0VBRVErQyxNQUFNQSxDQUFDQSxNQUFtRCxFQUE4QztJQUM1RyxPQUFRL0MsR0FBVyxJQUNmVSx3QkFBd0IsQ0FBQzJCLE1BQU0sQ0FBQyxNQUFNZSxNQUFNLElBQUk7TUFDNUMsTUFBTUMsUUFBUSxHQUFHLElBQUksQ0FBQ3JELEdBQUcsQ0FBQ0EsR0FBRyxFQUFFb0QsTUFBTSxDQUFDdEMsV0FBVyxDQUFDO01BQ2xELElBQUl3QyxPQUFPLEdBQUcsSUFBSSxDQUFDQywyQkFBMkIsQ0FBQztRQUFFUixNQUFNLEVBQUVBO01BQU8sQ0FBQyxFQUFFSyxNQUFNLENBQUNuQyxXQUFXLENBQUM7TUFDdEZxQyxPQUFPLEdBQUcsSUFBSSxDQUFDWixzQkFBc0IsQ0FBQ1ksT0FBTyxDQUFDO01BQzlDLElBQUlGLE1BQU0sQ0FBQ3JDLE1BQU0sRUFBRTtRQUNmdUMsT0FBTyxDQUFDdkMsTUFBTSxHQUFHcUMsTUFBTSxDQUFDckMsTUFBTTtNQUNsQztNQUNBLElBQUlxQyxNQUFNLENBQUNwQyxXQUFXLEVBQUU7UUFDcEIsSUFBSStCLE1BQU0sS0FBSyxLQUFLLEVBQUU7VUFDbEIsTUFBTSxJQUFJUyw0QkFBb0IsQ0FBQyxRQUFRLEVBQUUsc0NBQXNDLENBQUM7UUFDcEY7UUFDQUYsT0FBTyxDQUFDNUIsSUFBSSxHQUFHMEIsTUFBTSxDQUFDcEMsV0FBVyxDQUFDLENBQUM7TUFDdkM7TUFFQSxJQUFJO1FBQ0EsTUFBTXlDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQ2pCLFNBQVMsQ0FBQ2EsUUFBUSxFQUFFQyxPQUFPLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUNJLFdBQVcsQ0FBQ0QsUUFBUSxFQUFFTCxNQUFNLENBQUN2QyxXQUFXLENBQUM7UUFDcEQsT0FBTzRDLFFBQVE7TUFDbkIsQ0FBQyxDQUFDLE9BQU9FLENBQUMsRUFBRTtRQUFBLElBQUFDLHFCQUFBO1FBQ1IsQ0FBQUEscUJBQUEsT0FBSSxDQUFDaEIsZUFBZSxjQUFBZ0IscUJBQUEsdUJBQXBCQSxxQkFBQSxDQUFBQyxJQUFBLEtBQUksRUFBbUJGLENBQUMsRUFBRTtVQUFFTixRQUFRLEVBQUVBO1FBQVMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBQVMsbUJBQU0sRUFBQ0gsQ0FBVSxDQUFDO01BQzdCO0lBQ0osQ0FBQyxDQUFDO0VBQ1Y7RUFFUUosMkJBQTJCQSxDQUFDUSxPQUFvQixFQUFFOUMsV0FBZ0MsRUFBZTtJQUFBLElBQUErQyxnQkFBQTtJQUNyR0QsT0FBTyxDQUFDRSxPQUFPLElBQUFELGdCQUFBLEdBQUdELE9BQU8sQ0FBQ0UsT0FBTyxjQUFBRCxnQkFBQSxjQUFBQSxnQkFBQSxHQUFJLENBQUMsQ0FBQztJQUN2Q0QsT0FBTyxDQUFDRSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUdoRCxXQUFXLGFBQVhBLFdBQVcsY0FBWEEsV0FBVyxHQUFJLGtCQUFrQjtJQUNuRThDLE9BQU8sQ0FBQ0UsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLG9CQUFvQjtJQUN2REYsT0FBTyxDQUFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVTtJQUN0Q0YsT0FBTyxDQUFDRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRztJQUNoQyxPQUFPRixPQUFPO0VBQ2xCO0VBRU8vRCxHQUFHQSxDQUFDa0UsSUFBWSxFQUFFQyxNQUFxQyxFQUFVO0lBQ3BFLElBQUk5QyxNQUFNLEdBQUc2QyxJQUFJO0lBQ2pCLElBQUksSUFBSSxDQUFDekIsT0FBTyxJQUFJZCxTQUFTLEVBQUU7TUFDM0JOLE1BQU0sR0FBRyxJQUFJLENBQUNvQixPQUFPLEdBQUcsR0FBRyxHQUFHdkMsZ0JBQWdCLENBQUNtQixNQUFNLENBQUM7SUFDMUQ7SUFDQSxNQUFNK0MsWUFBWSxHQUFHO01BQUUsR0FBRyxJQUFJLENBQUN2QixhQUFhO01BQUUsR0FBR3NCO0lBQU8sQ0FBQztJQUN6RCxJQUFJRCxJQUFJLENBQUNHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSUYsTUFBTSxJQUFJeEMsU0FBUyxJQUFJMkMsTUFBTSxDQUFDQyxJQUFJLENBQUNILFlBQVksQ0FBQyxDQUFDSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ25GLE1BQU0sSUFBSUMseUJBQWlCLENBQUUscUVBQW9FLENBQUM7SUFDdEc7SUFDQXBELE1BQU0sR0FBR0EsTUFBTSxHQUFHLElBQUksQ0FBQ3FELGlCQUFpQixDQUFDTixZQUFZLENBQUM7SUFDdEQsT0FBTy9DLE1BQU07RUFDakI7RUFFQSxNQUFjcUMsV0FBV0EsQ0FBQ0QsUUFBa0IsRUFBRTVDLFdBQThCLEVBQWlCO0lBQ3pGLE1BQU04RCx1QkFBdUIsR0FBR2xCLFFBQVEsQ0FBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUltRCxRQUFRLENBQUNuRCxNQUFNLEdBQUcsR0FBRztJQUMvRSxNQUFNc0UsbUNBQW1DLEdBQUcsQ0FBQy9ELFdBQVcsYUFBWEEsV0FBVyxjQUFYQSxXQUFXLEdBQUksRUFBRSxFQUFFd0QsUUFBUSxDQUFDWixRQUFRLENBQUNuRCxNQUFNLENBQUM7SUFDekYsSUFBSSxDQUFDcUUsdUJBQXVCLElBQUksQ0FBQ0MsbUNBQW1DLEVBQUU7TUFDbEUsTUFBTUMsU0FBUyxHQUFHLE1BQU1wQixRQUFRLENBQUNxQixJQUFJLENBQUMsQ0FBQztNQUN2QyxJQUFJQyxjQUFjO01BQ2xCLElBQUk7UUFDQUEsY0FBYyxHQUFHakQsSUFBSSxDQUFDa0QsS0FBSyxDQUFDSCxTQUFTLENBQUM7TUFDMUMsQ0FBQyxDQUFDLE9BQU9sQixDQUFDLEVBQUU7UUFDUm9CLGNBQWMsR0FBR3BELFNBQVM7TUFDOUI7TUFDQSxJQUFJb0QsY0FBYyxJQUFJcEQsU0FBUyxFQUFFO1FBQUEsSUFBQXNELElBQUEsRUFBQUMscUJBQUE7UUFDN0IsSUFBSSxPQUFPLElBQUlILGNBQWMsSUFBSSxPQUFPQSxjQUFjLENBQUNJLEtBQUssS0FBSyxRQUFRLEVBQUU7VUFDdkUsTUFBTSxJQUFJQyxTQUFTO1VBQ2Y7VUFDQXRELElBQUksQ0FBQ0MsU0FBUyxDQUFDZ0QsY0FBYyxDQUFDSSxLQUFLLENBQUMsRUFDcEMxQixRQUFRLENBQUNuRCxNQUNiLENBQUM7UUFDTDtRQUNBLE1BQU0sSUFBSThFLFNBQVMsRUFDZjtRQUFBLENBQUFILElBQUEsSUFBQUMscUJBQUEsR0FDQUgsY0FBYyxDQUFDTSxPQUFPLGNBQUFILHFCQUFBLGNBQUFBLHFCQUFBLEdBQUlILGNBQWMsQ0FBQ08sT0FBTyxjQUFBTCxJQUFBLGNBQUFBLElBQUEsR0FBSUYsY0FBYyxDQUFDUSxLQUFLLEVBQ3hFOUIsUUFBUSxDQUFDbkQsTUFDYixDQUFDO01BQ0w7TUFDQSxNQUFNLElBQUk4RSxTQUFTLENBQUNQLFNBQVMsRUFBRXBCLFFBQVEsQ0FBQ25ELE1BQU0sQ0FBQztJQUNuRDtFQUNKO0VBRU9rRixRQUFRQSxDQUFDeEYsR0FBVyxFQUFFbUUsTUFBcUMsRUFBRXNCLElBQVEsRUFBMkI7SUFDbkcsTUFBTW5DLE9BQU8sR0FBRyxJQUFJb0MsY0FBYyxDQUFDLENBQUM7SUFDcENwQyxPQUFPLENBQUNxQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQzNGLEdBQUcsQ0FBQ0EsR0FBRyxFQUFFbUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ2xEYixPQUFPLENBQUNzQyxlQUFlLEdBQUcsSUFBSTtJQUM5QnRDLE9BQU8sQ0FBQ3VDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxpQ0FBaUMsQ0FBQztJQUMzRXZDLE9BQU8sQ0FBQ3dDLElBQUksQ0FBQ2hFLElBQUksQ0FBQ0MsU0FBUyxDQUFDMEQsSUFBSSxDQUFDLENBQUM7SUFDbEMsT0FBTztNQUNIbkYsTUFBTSxFQUFFZ0QsT0FBTyxDQUFDaEQsTUFBTTtNQUN0QkMsSUFBSSxFQUFFQSxDQUFBLEtBQVN1QixJQUFJLENBQUNrRCxLQUFLLENBQUMxQixPQUFPLENBQUN5QyxZQUFZO0lBQ2xELENBQUM7RUFDTDtFQUVRQyxvQkFBb0JBLENBQUNDLEtBQWEsRUFBRUMsS0FBYSxFQUFVO0lBQy9ELE9BQVEsR0FBRUMsa0JBQWtCLENBQUNGLEtBQUssQ0FBRSxJQUFHRSxrQkFBa0IsQ0FBQ0QsS0FBSyxDQUFFLEVBQUM7RUFDdEU7RUFFUXhCLGlCQUFpQkEsQ0FBQ1AsTUFBMEIsRUFBVTtJQUMxRCxJQUFJQSxNQUFNLElBQUl4QyxTQUFTLEVBQUU7TUFDckIsT0FBTyxFQUFFO0lBQ2I7SUFDQSxNQUFNeUUsT0FBTyxHQUFHakMsTUFBTTtJQUN0QixJQUFJOUMsTUFBTSxHQUFHaUQsTUFBTSxDQUFDQyxJQUFJLENBQUNKLE1BQU0sQ0FBQyxDQUMzQmtDLEdBQUcsQ0FBQ0MsR0FBRyxJQUFJO01BQ1IsTUFBTUosS0FBSyxHQUFHRSxPQUFPLENBQUNFLEdBQUcsQ0FBQztNQUMxQixJQUFJLE9BQU9KLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUNGLG9CQUFvQixDQUFDTSxHQUFHLEVBQUVKLEtBQUssQ0FBQztNQUNoRDtNQUNBLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQ3pELE9BQU8sSUFBSSxDQUFDRixvQkFBb0IsQ0FBQ00sR0FBRyxFQUFFSixLQUFLLENBQUNLLFFBQVEsQ0FBQyxDQUFDLENBQUM7TUFDM0Q7TUFDQSxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1AsS0FBSyxDQUFDLEVBQUU7UUFDdEIsT0FBT0EsS0FBSyxDQUNQRyxHQUFHLENBQUNLLElBQUksSUFBSTtVQUNULElBQUksT0FBT0EsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQ1Ysb0JBQW9CLENBQUNNLEdBQUcsRUFBRUksSUFBSSxDQUFDO1VBQy9DO1VBQ0EsSUFBSSxPQUFPQSxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDVixvQkFBb0IsQ0FBQ00sR0FBRyxFQUFFSSxJQUFJLENBQUNILFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDMUQ7VUFDQSxPQUFPNUUsU0FBUztRQUNwQixDQUFDLENBQUMsQ0FDRGdGLE1BQU0sQ0FBQ0MsQ0FBQyxJQUFJQSxDQUFDLElBQUlqRixTQUFTLENBQUMsQ0FDM0JrRixJQUFJLENBQUMsR0FBRyxDQUFDO01BQ2xCO01BQ0EsT0FBT2xGLFNBQVM7SUFDcEIsQ0FBQyxDQUFDLENBQ0RnRixNQUFNLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxJQUFJakYsU0FBUyxDQUFDLENBQzNCa0YsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNkeEYsTUFBTSxHQUFHQSxNQUFNLEdBQUcsR0FBRyxHQUFHQSxNQUFNLEdBQUcsRUFBRTtJQUNuQyxPQUFPQSxNQUFNO0VBQ2pCO0VBRU95RixlQUFlQSxDQUFBLEVBQVU7SUFDNUIsTUFBTUMsZ0JBQWdCLEdBQUdBLENBQUNDLEtBQWtCLEVBQUVDLElBQWtCLEtBQXdCO01BQ3BGLElBQUksT0FBT0QsS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUFBLElBQUFFLEtBQUEsRUFBQUMsYUFBQTtRQUMzQixNQUFNOUQsUUFBUSxHQUFHLElBQUksQ0FBQ3JELEdBQUcsQ0FBQ2dILEtBQUssRUFBRXJGLFNBQVMsQ0FBQztRQUMzQ3NGLElBQUksSUFBQUMsS0FBQSxHQUFHRCxJQUFJLGNBQUFDLEtBQUEsY0FBQUEsS0FBQSxHQUFJLENBQUMsQ0FBQztRQUNqQkQsSUFBSSxDQUFDaEQsT0FBTyxJQUFBa0QsYUFBQSxHQUFHRixJQUFJLENBQUNoRCxPQUFPLGNBQUFrRCxhQUFBLGNBQUFBLGFBQUEsR0FBSSxDQUFDLENBQUM7UUFDakNGLElBQUksQ0FBQ2hELE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxvQkFBb0I7UUFDcERnRCxJQUFJLENBQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVTtRQUNuQ2dELElBQUksQ0FBQ2hELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHO1FBQzdCZ0QsSUFBSSxHQUFHLElBQUksQ0FBQ3ZFLHNCQUFzQixDQUFDdUUsSUFBSSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDekUsU0FBUyxDQUFDYSxRQUFRLEVBQUU0RCxJQUFJLENBQUM7TUFDekMsQ0FBQyxNQUFNO1FBQ0gsTUFBTTVELFFBQVEsR0FBRyxJQUFJLENBQUNyRCxHQUFHLENBQUNnSCxLQUFLLENBQUNoSCxHQUFHLEVBQUUyQixTQUFTLENBQUM7UUFDL0MsSUFBSXlGLFdBQXdCLEdBQUc7VUFDM0JuRCxPQUFPLEVBQUU7WUFDTCxDQUFDLGVBQWUsR0FBRyxvQkFBb0I7WUFDdkMsQ0FBQyxRQUFRLEdBQUcsVUFBVTtZQUN0QixDQUFDLFNBQVMsR0FBRyxHQUFHO1lBQ2hCLEdBQUcrQyxLQUFLLENBQUMvQztVQUNiLENBQUM7VUFDRGxELE1BQU0sRUFBRWlHLEtBQUssQ0FBQ2pHLE1BQU07VUFDcEJzRyxLQUFLLEVBQUVMLEtBQUssQ0FBQ0ssS0FBSztVQUNsQkMsV0FBVyxFQUFFTixLQUFLLENBQUNNLFdBQVc7VUFDOUJDLFNBQVMsRUFBRVAsS0FBSyxDQUFDTyxTQUFTO1VBQzFCQyxTQUFTLEVBQUVSLEtBQUssQ0FBQ1EsU0FBUztVQUMxQnpFLE1BQU0sRUFBRWlFLEtBQUssQ0FBQ2pFLE1BQU07VUFDcEIwRSxJQUFJLEVBQUVULEtBQUssQ0FBQ1MsSUFBSTtVQUNoQkMsUUFBUSxFQUFFVixLQUFLLENBQUNVLFFBQVE7VUFDeEJDLFFBQVEsRUFBRVgsS0FBSyxDQUFDVyxRQUFRO1VBQ3hCQyxjQUFjLEVBQUVaLEtBQUssQ0FBQ1k7UUFDMUIsQ0FBQztRQUNEUixXQUFXLEdBQUcsSUFBSSxDQUFDMUUsc0JBQXNCLENBQUMwRSxXQUFXLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUM1RSxTQUFTLENBQUNhLFFBQVEsRUFBRStELFdBQVcsQ0FBQztNQUNoRDtJQUNKLENBQUM7SUFDRCxPQUFPTCxnQkFBZ0I7RUFDM0I7QUFDSjtBQUFDdEcsT0FBQSxDQUFBOEIsVUFBQSxHQUFBQSxVQUFBO0FBRU0sTUFBTTZDLFNBQVMsU0FBU0csS0FBSyxDQUFDO0VBRzFCbkYsV0FBV0EsQ0FBQ2tGLE9BQWUsRUFBRXVDLFVBQWtCLEVBQUU7SUFDcEQsS0FBSyxDQUFDdkMsT0FBTyxDQUFDO0lBQUMsS0FISHVDLFVBQVU7SUFJdEIsSUFBSSxDQUFDQyxJQUFJLEdBQUcsV0FBVztJQUN2QixJQUFJLENBQUNELFVBQVUsR0FBR0EsVUFBVTtFQUNoQztFQUVBLElBQW9CdkMsT0FBT0EsQ0FBQSxFQUFXO0lBQ2xDLE9BQU8sS0FBSyxDQUFDQSxPQUFPLEdBQUksaUJBQWdCLElBQUksQ0FBQ3VDLFVBQVcsRUFBQztFQUM3RDtBQUNKO0FBQUNwSCxPQUFBLENBQUEyRSxTQUFBLEdBQUFBLFNBQUEifQ==
@@ -12,10 +12,10 @@ var _INidusClient = require("./INidusClient");
12
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
14
  class NidusClientImpl {
15
- constructor(fetchImpl, baseUrl, authentication) {
15
+ constructor(fetchImpl, baseUrl, authentication, exceptionLogger) {
16
16
  this.httpClient = void 0;
17
17
  this.client = void 0;
18
- this.httpClient = new _HttpClient.HttpClient(fetchImpl, baseUrl, (0, _AuthenticationMode.createAuthenticationProvider)(authentication));
18
+ this.httpClient = new _HttpClient.HttpClient(fetchImpl, baseUrl, (0, _AuthenticationMode.createAuthenticationProvider)(authentication), undefined, exceptionLogger);
19
19
  this.client = new nidus.NidusClient("", {
20
20
  fetch: this.httpClient.createFetchImpl()
21
21
  });
@@ -52,4 +52,4 @@ class NidusClientImpl {
52
52
  }
53
53
  }
54
54
  exports.NidusClientImpl = NidusClientImpl;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuaWR1cyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9UeXBpbmdVdGlscyIsIl9BdXRoZW50aWNhdGlvbk1vZGUiLCJfSHR0cENsaWVudCIsIl9JTmlkdXNDbGllbnQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTmlkdXNDbGllbnRJbXBsIiwiY29uc3RydWN0b3IiLCJmZXRjaEltcGwiLCJiYXNlVXJsIiwiYXV0aGVudGljYXRpb24iLCJodHRwQ2xpZW50IiwiY2xpZW50IiwiSHR0cENsaWVudCIsImNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJOaWR1c0NsaWVudCIsImZldGNoIiwiY3JlYXRlRmV0Y2hJbXBsIiwiYmF0Y2hJbnNlcnQiLCJuaWR1c05hbWUiLCJvYmplY3RzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJvYmplY3RJZCIsImluc2VydCIsIm5hdGl2ZUVudHJ5IiwibmF0aXZlRW50cnlUb0VudHJ5IiwiX25hdGl2ZUVudHJ5JGlkIiwiX25hdGl2ZUVudHJ5JGRhdGEiLCJpZCIsInBhcnNlRW50cnlJZCIsInJlamVjdCIsImRhdGEiLCJzZWFyY2giLCJzZWFyY2hWYWx1ZSIsInJlc3VsdCIsIndpdGhRdWVyeVBhcmFtcyIsImpzb24iLCJpdGVtcyIsIm1hcCIsInRvdGFsU3VpdGFibGVDb3VudCIsInVwZGF0ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vTmlkdXNDbGllbnQvTmlkdXNDbGllbnRJbXBsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG5pZHVzIGZyb20gXCJuaWR1c1wiO1xuXG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB7IEZldGNoIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvRmV0Y2hJbXBsZW1lbnRhdGlvbi9GZXRjaFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuXG5pbXBvcnQge1xuICAgIElOaWR1c0NsaWVudCxcbiAgICBOaWR1c0VudHJ5LFxuICAgIE5pZHVzRW50cnlEYXRhLFxuICAgIE5pZHVzRW50cnlJZCxcbiAgICBOaWR1c05hbWUsXG4gICAgTmlkdXNSZWZlcmVuY2VLZXksXG4gICAgTmlkdXNTZWFyY2hSZXNwb25zZSxcbiAgICBwYXJzZUVudHJ5SWQsXG59IGZyb20gXCIuL0lOaWR1c0NsaWVudFwiO1xuXG5pbnRlcmZhY2UgTmF0aXZlTmlkdXNTZWFyY2hSZXNwb25zZSB7XG4gICAgaXRlbXM6IG5pZHVzLk5pZHVzRW50cnlbXTtcbiAgICB0b3RhbFN1aXRhYmxlQ291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE5pZHVzQ2xpZW50SW1wbCBpbXBsZW1lbnRzIElOaWR1c0NsaWVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBJSHR0cENsaWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogbmlkdXMuTmlkdXNDbGllbnQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmV0Y2hJbXBsOiBGZXRjaCwgYmFzZVVybDogc3RyaW5nLCBhdXRoZW50aWNhdGlvbj86IEF1dGhlbnRpY2F0aW9uTW9kZSkge1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChmZXRjaEltcGwsIGJhc2VVcmwsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoYXV0aGVudGljYXRpb24pKTtcbiAgICAgICAgdGhpcy5jbGllbnQgPSBuZXcgbmlkdXMuTmlkdXNDbGllbnQoXCJcIiwgeyBmZXRjaDogdGhpcy5odHRwQ2xpZW50LmNyZWF0ZUZldGNoSW1wbCgpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBiYXRjaEluc2VydChuaWR1c05hbWU6IE5pZHVzTmFtZSwga2V5OiBOaWR1c1JlZmVyZW5jZUtleSwgb2JqZWN0czogTmlkdXNFbnRyeVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZGVsZXRlKG5pZHVzTmFtZTogTmlkdXNOYW1lLCBrZXk6IE5pZHVzUmVmZXJlbmNlS2V5LCBvYmplY3RJZDogTmlkdXNFbnRyeUlkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShuaWR1c05hbWUsIGtleSwgb2JqZWN0SWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbnNlcnQobmlkdXNOYW1lOiBOaWR1c05hbWUsIGtleTogTmlkdXNSZWZlcmVuY2VLZXksIG9iajogTmlkdXNFbnRyeURhdGEpOiBQcm9taXNlPE5pZHVzRW50cnk+IHtcbiAgICAgICAgY29uc3QgbmF0aXZlRW50cnkgPSBhd2FpdCB0aGlzLmNsaWVudC5pbnNlcnQobmlkdXNOYW1lLCBrZXksIG9iaik7XG4gICAgICAgIHJldHVybiBOaWR1c0NsaWVudEltcGwubmF0aXZlRW50cnlUb0VudHJ5KG5hdGl2ZUVudHJ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmVFbnRyeVRvRW50cnkobmF0aXZlRW50cnk6IG5pZHVzLk5pZHVzRW50cnkpOiBOaWR1c0VudHJ5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBwYXJzZUVudHJ5SWQobmF0aXZlRW50cnkuaWQgPz8gcmVqZWN0KFwiTmlkdXMgZW50cnkgaWQgZG9lcyBub3QgY29udGFpbiBpZFwiKSksXG4gICAgICAgICAgICBkYXRhOiBuYXRpdmVFbnRyeS5kYXRhID8/IHt9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZWFyY2goXG4gICAgICAgIG5pZHVzTmFtZTogTmlkdXNOYW1lLFxuICAgICAgICBrZXk6IE5pZHVzUmVmZXJlbmNlS2V5LFxuICAgICAgICBzZWFyY2hWYWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICk6IFByb21pc2U8TmlkdXNTZWFyY2hSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQoYC9uaWR1cy8ke25pZHVzTmFtZX0vc2VhcmNoYClcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoeyBrZXk6IGtleSwgc2VhcmNoVmFsdWU6IHNlYXJjaFZhbHVlIH0pXG4gICAgICAgICAgICAuanNvbjxOYXRpdmVOaWR1c1NlYXJjaFJlc3BvbnNlPigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHJlc3VsdC5pdGVtcy5tYXAoTmlkdXNDbGllbnRJbXBsLm5hdGl2ZUVudHJ5VG9FbnRyeSksXG4gICAgICAgICAgICB0b3RhbFN1aXRhYmxlQ291bnQ6IHJlc3VsdC50b3RhbFN1aXRhYmxlQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZShcbiAgICAgICAgbmlkdXNOYW1lOiBOaWR1c05hbWUsXG4gICAgICAgIGtleTogTmlkdXNSZWZlcmVuY2VLZXksXG4gICAgICAgIG9iamVjdElkOiBOaWR1c0VudHJ5SWQsXG4gICAgICAgIG9iajogTmlkdXNFbnRyeURhdGFcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQudXBkYXRlKG5pZHVzTmFtZSwga2V5LCBvYmplY3RJZCwgb2JqKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLG1CQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFTd0IsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVAsd0JBQUFXLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxH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
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuaWR1cyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9UeXBpbmdVdGlscyIsIl9BdXRoZW50aWNhdGlvbk1vZGUiLCJfSHR0cENsaWVudCIsIl9JTmlkdXNDbGllbnQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTmlkdXNDbGllbnRJbXBsIiwiY29uc3RydWN0b3IiLCJmZXRjaEltcGwiLCJiYXNlVXJsIiwiYXV0aGVudGljYXRpb24iLCJleGNlcHRpb25Mb2dnZXIiLCJodHRwQ2xpZW50IiwiY2xpZW50IiwiSHR0cENsaWVudCIsImNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJ1bmRlZmluZWQiLCJOaWR1c0NsaWVudCIsImZldGNoIiwiY3JlYXRlRmV0Y2hJbXBsIiwiYmF0Y2hJbnNlcnQiLCJuaWR1c05hbWUiLCJvYmplY3RzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkZWxldGUiLCJvYmplY3RJZCIsImluc2VydCIsIm5hdGl2ZUVudHJ5IiwibmF0aXZlRW50cnlUb0VudHJ5IiwiX25hdGl2ZUVudHJ5JGlkIiwiX25hdGl2ZUVudHJ5JGRhdGEiLCJpZCIsInBhcnNlRW50cnlJZCIsInJlamVjdCIsImRhdGEiLCJzZWFyY2giLCJzZWFyY2hWYWx1ZSIsInJlc3VsdCIsIndpdGhRdWVyeVBhcmFtcyIsImpzb24iLCJpdGVtcyIsIm1hcCIsInRvdGFsU3VpdGFibGVDb3VudCIsInVwZGF0ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vTmlkdXNDbGllbnQvTmlkdXNDbGllbnRJbXBsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG5pZHVzIGZyb20gXCJuaWR1c1wiO1xuXG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB7IEZldGNoIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvRmV0Y2hJbXBsZW1lbnRhdGlvbi9GZXRjaFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBFeGNlcHRpb25Mb2dnZXIsIEh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9IdHRwQ2xpZW50XCI7XG5pbXBvcnQgeyBJSHR0cENsaWVudCB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0lIdHRwQ2xpZW50XCI7XG5cbmltcG9ydCB7XG4gICAgSU5pZHVzQ2xpZW50LFxuICAgIE5pZHVzRW50cnksXG4gICAgTmlkdXNFbnRyeURhdGEsXG4gICAgTmlkdXNFbnRyeUlkLFxuICAgIE5pZHVzTmFtZSxcbiAgICBOaWR1c1JlZmVyZW5jZUtleSxcbiAgICBOaWR1c1NlYXJjaFJlc3BvbnNlLFxuICAgIHBhcnNlRW50cnlJZCxcbn0gZnJvbSBcIi4vSU5pZHVzQ2xpZW50XCI7XG5cbmludGVyZmFjZSBOYXRpdmVOaWR1c1NlYXJjaFJlc3BvbnNlIHtcbiAgICBpdGVtczogbmlkdXMuTmlkdXNFbnRyeVtdO1xuICAgIHRvdGFsU3VpdGFibGVDb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgTmlkdXNDbGllbnRJbXBsIGltcGxlbWVudHMgSU5pZHVzQ2xpZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IElIdHRwQ2xpZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBuaWR1cy5OaWR1c0NsaWVudDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmV0Y2hJbXBsOiBGZXRjaCxcbiAgICAgICAgYmFzZVVybDogc3RyaW5nLFxuICAgICAgICBhdXRoZW50aWNhdGlvbj86IEF1dGhlbnRpY2F0aW9uTW9kZSxcbiAgICAgICAgZXhjZXB0aW9uTG9nZ2VyPzogRXhjZXB0aW9uTG9nZ2VyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KFxuICAgICAgICAgICAgZmV0Y2hJbXBsLFxuICAgICAgICAgICAgYmFzZVVybCxcbiAgICAgICAgICAgIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoYXV0aGVudGljYXRpb24pLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXhjZXB0aW9uTG9nZ2VyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gbmV3IG5pZHVzLk5pZHVzQ2xpZW50KFwiXCIsIHsgZmV0Y2g6IHRoaXMuaHR0cENsaWVudC5jcmVhdGVGZXRjaEltcGwoKSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmF0Y2hJbnNlcnQobmlkdXNOYW1lOiBOaWR1c05hbWUsIGtleTogTmlkdXNSZWZlcmVuY2VLZXksIG9iamVjdHM6IE5pZHVzRW50cnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGRlbGV0ZShuaWR1c05hbWU6IE5pZHVzTmFtZSwga2V5OiBOaWR1c1JlZmVyZW5jZUtleSwgb2JqZWN0SWQ6IE5pZHVzRW50cnlJZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmNsaWVudC5kZWxldGUobmlkdXNOYW1lLCBrZXksIG9iamVjdElkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5zZXJ0KG5pZHVzTmFtZTogTmlkdXNOYW1lLCBrZXk6IE5pZHVzUmVmZXJlbmNlS2V5LCBvYmo6IE5pZHVzRW50cnlEYXRhKTogUHJvbWlzZTxOaWR1c0VudHJ5PiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVudHJ5ID0gYXdhaXQgdGhpcy5jbGllbnQuaW5zZXJ0KG5pZHVzTmFtZSwga2V5LCBvYmopO1xuICAgICAgICByZXR1cm4gTmlkdXNDbGllbnRJbXBsLm5hdGl2ZUVudHJ5VG9FbnRyeShuYXRpdmVFbnRyeSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmF0aXZlRW50cnlUb0VudHJ5KG5hdGl2ZUVudHJ5OiBuaWR1cy5OaWR1c0VudHJ5KTogTmlkdXNFbnRyeSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogcGFyc2VFbnRyeUlkKG5hdGl2ZUVudHJ5LmlkID8/IHJlamVjdChcIk5pZHVzIGVudHJ5IGlkIGRvZXMgbm90IGNvbnRhaW4gaWRcIikpLFxuICAgICAgICAgICAgZGF0YTogbmF0aXZlRW50cnkuZGF0YSA/PyB7fSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VhcmNoKFxuICAgICAgICBuaWR1c05hbWU6IE5pZHVzTmFtZSxcbiAgICAgICAga2V5OiBOaWR1c1JlZmVyZW5jZUtleSxcbiAgICAgICAgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICApOiBQcm9taXNlPE5pZHVzU2VhcmNoUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAuZ2V0KGAvbmlkdXMvJHtuaWR1c05hbWV9L3NlYXJjaGApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsga2V5OiBrZXksIHNlYXJjaFZhbHVlOiBzZWFyY2hWYWx1ZSB9KVxuICAgICAgICAgICAgLmpzb248TmF0aXZlTmlkdXNTZWFyY2hSZXNwb25zZT4oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiByZXN1bHQuaXRlbXMubWFwKE5pZHVzQ2xpZW50SW1wbC5uYXRpdmVFbnRyeVRvRW50cnkpLFxuICAgICAgICAgICAgdG90YWxTdWl0YWJsZUNvdW50OiByZXN1bHQudG90YWxTdWl0YWJsZUNvdW50LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGUoXG4gICAgICAgIG5pZHVzTmFtZTogTmlkdXNOYW1lLFxuICAgICAgICBrZXk6IE5pZHVzUmVmZXJlbmNlS2V5LFxuICAgICAgICBvYmplY3RJZDogTmlkdXNFbnRyeUlkLFxuICAgICAgICBvYmo6IE5pZHVzRW50cnlEYXRhXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnVwZGF0ZShuaWR1c05hbWUsIGtleSwgb2JqZWN0SWQsIG9iaik7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxtQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBU3dCLFNBQUFLLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJB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
@@ -7,11 +7,11 @@ exports.PicklistApiClient = void 0;
7
7
  var _AuthenticationMode = require("../HttpClient/AuthenticationMode");
8
8
  var _HttpClient = require("../HttpClient/HttpClient");
9
9
  class PicklistApiClient {
10
- constructor(fetchImpl, baseUrl, resourceZone, authentication) {
10
+ constructor(fetchImpl, baseUrl, resourceZone, authentication, exceptionLogger) {
11
11
  this.httpClient = void 0;
12
12
  this.httpClient = new _HttpClient.HttpClient(fetchImpl, baseUrl, (0, _AuthenticationMode.createAuthenticationProvider)(authentication), {
13
13
  resourceZone: resourceZone
14
- });
14
+ }, exceptionLogger);
15
15
  }
16
16
  searchAsync(gid, request) {
17
17
  const {
@@ -27,4 +27,4 @@ class PicklistApiClient {
27
27
  }
28
28
  }
29
29
  exports.PicklistApiClient = PicklistApiClient;
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aGVudGljYXRpb25Nb2RlIiwicmVxdWlyZSIsIl9IdHRwQ2xpZW50IiwiUGlja2xpc3RBcGlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImh0dHBDbGllbnQiLCJIdHRwQ2xpZW50IiwiY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlciIsInNlYXJjaEFzeW5jIiwiZ2lkIiwicmVxdWVzdCIsImZpbHRlciIsInRha2UiLCJza2lwIiwiZ2V0Iiwid2l0aFF1ZXJ5UGFyYW1zIiwianNvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vUGlja2xpc3RBcGlDbGllbnQvUGlja2xpc3RBcGlDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tIFwiLi4vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL0ZldGNoXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9BdXRoZW50aWNhdGlvbk1vZGVcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9IdHRwQ2xpZW50XCI7XG5cbmltcG9ydCB7IElQaWNrbGlzdEFwaUNsaWVudCB9IGZyb20gXCIuL0lQaWNrbGlzdEFwaUNsaWVudFwiO1xuaW1wb3J0IHsgUGlja2xpc3RSZXF1ZXN0VjIgfSBmcm9tIFwiLi9UeXBlcy9QaWNrbGlzdFJlcXVlc3RWMlwiO1xuaW1wb3J0IHsgUGlja2xpc3RSZXN1bHRWMiB9IGZyb20gXCIuL1R5cGVzL1BpY2tsaXN0UmVzdWx0VjJcIjtcblxuZXhwb3J0IGNsYXNzIFBpY2tsaXN0QXBpQ2xpZW50IGltcGxlbWVudHMgSVBpY2tsaXN0QXBpQ2xpZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IElIdHRwQ2xpZW50O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBmZXRjaEltcGw6IEZldGNoLFxuICAgICAgICBiYXNlVXJsOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlWm9uZTogdW5kZWZpbmVkIHwgc3RyaW5nLFxuICAgICAgICBhdXRoZW50aWNhdGlvbjogdW5kZWZpbmVkIHwgQXV0aGVudGljYXRpb25Nb2RlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KGZldGNoSW1wbCwgYmFzZVVybCwgY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlcihhdXRoZW50aWNhdGlvbiksIHtcbiAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoQXN5bmMoZ2lkOiBzdHJpbmcsIHJlcXVlc3Q6IFJlYWRvbmx5PFBpY2tsaXN0UmVxdWVzdFYyPik6IFByb21pc2U8UGlja2xpc3RSZXN1bHRWMj4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlciwgdGFrZSwgc2tpcCB9ID0gcmVxdWVzdDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldChgdjIvJHtnaWR9L2ApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZmlsdGVyOiBmaWx0ZXIsIHRha2U6IHRha2UsIHNraXA6IHNraXAgfSlcbiAgICAgICAgICAgIC5qc29uPFBpY2tsaXN0UmVzdWx0VjI+KCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBTU8sTUFBTUUsaUJBQWlCLENBQStCO0VBR2xEQyxXQUFXQSxDQUNkQyxTQUFnQixFQUNoQkMsT0FBZSxFQUNmQyxZQUFnQyxFQUNoQ0MsY0FBOEMsRUFDaEQ7SUFBQSxLQVBlQyxVQUFVO0lBUXZCLElBQUksQ0FBQ0EsVUFBVSxHQUFHLElBQUlDLHNCQUFVLENBQUNMLFNBQVMsRUFBRUMsT0FBTyxFQUFFLElBQUFLLGdEQUE0QixFQUFDSCxjQUFjLENBQUMsRUFBRTtNQUMvRkQsWUFBWSxFQUFFQTtJQUNsQixDQUFDLENBQUM7RUFDTjtFQUVPSyxXQUFXQSxDQUFDQyxHQUFXLEVBQUVDLE9BQW9DLEVBQTZCO0lBQzdGLE1BQU07TUFBRUMsTUFBTTtNQUFFQyxJQUFJO01BQUVDO0lBQUssQ0FBQyxHQUFHSCxPQUFPO0lBQ3RDLE9BQU8sSUFBSSxDQUFDTCxVQUFVLENBQ2pCUyxHQUFHLENBQUUsTUFBS0wsR0FBSSxHQUFFLENBQUMsQ0FDakJNLGVBQWUsQ0FBQztNQUFFSixNQUFNLEVBQUVBLE1BQU07TUFBRUMsSUFBSSxFQUFFQSxJQUFJO01BQUVDLElBQUksRUFBRUE7SUFBSyxDQUFDLENBQUMsQ0FDM0RHLElBQUksQ0FBbUIsQ0FBQztFQUNqQztBQUNKO0FBQUNDLE9BQUEsQ0FBQWxCLGlCQUFBLEdBQUFBLGlCQUFBIn0=
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aGVudGljYXRpb25Nb2RlIiwicmVxdWlyZSIsIl9IdHRwQ2xpZW50IiwiUGlja2xpc3RBcGlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImV4Y2VwdGlvbkxvZ2dlciIsImh0dHBDbGllbnQiLCJIdHRwQ2xpZW50IiwiY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlciIsInNlYXJjaEFzeW5jIiwiZ2lkIiwicmVxdWVzdCIsImZpbHRlciIsInRha2UiLCJza2lwIiwiZ2V0Iiwid2l0aFF1ZXJ5UGFyYW1zIiwianNvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vUGlja2xpc3RBcGlDbGllbnQvUGlja2xpc3RBcGlDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgRmV0Y2ggfSBmcm9tIFwiLi4vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL0ZldGNoXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9BdXRoZW50aWNhdGlvbk1vZGVcIjtcbmltcG9ydCB7IEV4Y2VwdGlvbkxvZ2dlciwgSHR0cENsaWVudCB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0h0dHBDbGllbnRcIjtcblxuaW1wb3J0IHsgSVBpY2tsaXN0QXBpQ2xpZW50IH0gZnJvbSBcIi4vSVBpY2tsaXN0QXBpQ2xpZW50XCI7XG5pbXBvcnQgeyBQaWNrbGlzdFJlcXVlc3RWMiB9IGZyb20gXCIuL1R5cGVzL1BpY2tsaXN0UmVxdWVzdFYyXCI7XG5pbXBvcnQgeyBQaWNrbGlzdFJlc3VsdFYyIH0gZnJvbSBcIi4vVHlwZXMvUGlja2xpc3RSZXN1bHRWMlwiO1xuXG5leHBvcnQgY2xhc3MgUGlja2xpc3RBcGlDbGllbnQgaW1wbGVtZW50cyBJUGlja2xpc3RBcGlDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSUh0dHBDbGllbnQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2Vab25lOiB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uOiB1bmRlZmluZWQgfCBBdXRoZW50aWNhdGlvbk1vZGUsXG4gICAgICAgIGV4Y2VwdGlvbkxvZ2dlcj86IEV4Y2VwdGlvbkxvZ2dlclxuICAgICkge1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChcbiAgICAgICAgICAgIGZldGNoSW1wbCxcbiAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyKGF1dGhlbnRpY2F0aW9uKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGNlcHRpb25Mb2dnZXJcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoQXN5bmMoZ2lkOiBzdHJpbmcsIHJlcXVlc3Q6IFJlYWRvbmx5PFBpY2tsaXN0UmVxdWVzdFYyPik6IFByb21pc2U8UGlja2xpc3RSZXN1bHRWMj4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlciwgdGFrZSwgc2tpcCB9ID0gcmVxdWVzdDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldChgdjIvJHtnaWR9L2ApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZmlsdGVyOiBmaWx0ZXIsIHRha2U6IHRha2UsIHNraXA6IHNraXAgfSlcbiAgICAgICAgICAgIC5qc29uPFBpY2tsaXN0UmVzdWx0VjI+KCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBTU8sTUFBTUUsaUJBQWlCLENBQStCO0VBR2xEQyxXQUFXQSxDQUNkQyxTQUFnQixFQUNoQkMsT0FBZSxFQUNmQyxZQUFnQyxFQUNoQ0MsY0FBOEMsRUFDOUNDLGVBQWlDLEVBQ25DO0lBQUEsS0FSZUMsVUFBVTtJQVN2QixJQUFJLENBQUNBLFVBQVUsR0FBRyxJQUFJQyxzQkFBVSxDQUM1Qk4sU0FBUyxFQUNUQyxPQUFPLEVBQ1AsSUFBQU0sZ0RBQTRCLEVBQUNKLGNBQWMsQ0FBQyxFQUM1QztNQUNJRCxZQUFZLEVBQUVBO0lBQ2xCLENBQUMsRUFDREUsZUFDSixDQUFDO0VBQ0w7RUFFT0ksV0FBV0EsQ0FBQ0MsR0FBVyxFQUFFQyxPQUFvQyxFQUE2QjtJQUM3RixNQUFNO01BQUVDLE1BQU07TUFBRUMsSUFBSTtNQUFFQztJQUFLLENBQUMsR0FBR0gsT0FBTztJQUN0QyxPQUFPLElBQUksQ0FBQ0wsVUFBVSxDQUNqQlMsR0FBRyxDQUFFLE1BQUtMLEdBQUksR0FBRSxDQUFDLENBQ2pCTSxlQUFlLENBQUM7TUFBRUosTUFBTSxFQUFFQSxNQUFNO01BQUVDLElBQUksRUFBRUEsSUFBSTtNQUFFQyxJQUFJLEVBQUVBO0lBQUssQ0FBQyxDQUFDLENBQzNERyxJQUFJLENBQW1CLENBQUM7RUFDakM7QUFDSjtBQUFDQyxPQUFBLENBQUFuQixpQkFBQSxHQUFBQSxpQkFBQSJ9