specmatic 0.73.0 → 0.73.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.js +7 -37
- package/dist/kafka/index.js +16 -42
- package/package.json +2 -3
- package/src/core/__tests__/set.expectation.ts +20 -32
- package/src/core/__tests__/test.ts +0 -1
- package/src/core/index.ts +7 -15
- package/src/kafka/index.ts +20 -48
package/dist/core/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.testWithApiCoverage = exports.test = exports.stopStub = exports.startStub = exports.startApiCoverageServer = exports.showTestResults = exports.setExpectations = exports.printJarVersion = exports.Stub = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
9
|
var _fastXmlParser = require("fast-xml-parser");
|
|
10
10
|
var _fs = _interopRequireDefault(require("fs"));
|
|
@@ -201,41 +201,11 @@ var setExpectations = function setExpectations(stubPath, stubServerBaseUrl) {
|
|
|
201
201
|
stubServerBaseUrl = stubServerBaseUrl || 'http://localhost:9000';
|
|
202
202
|
_logger["default"].info("Set Expectations: Stub url is ".concat(stubServerBaseUrl));
|
|
203
203
|
return new Promise(function (resolve, reject) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
var body;
|
|
210
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
211
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
212
|
-
case 0:
|
|
213
|
-
if (!(response.status != 200)) {
|
|
214
|
-
_context4.next = 9;
|
|
215
|
-
break;
|
|
216
|
-
}
|
|
217
|
-
_logger["default"].error("Set Expectations: Failed with status code ".concat(response.status));
|
|
218
|
-
_context4.next = 4;
|
|
219
|
-
return response.text();
|
|
220
|
-
case 4:
|
|
221
|
-
body = _context4.sent;
|
|
222
|
-
_logger["default"].error(body);
|
|
223
|
-
reject("Setting expecation failed");
|
|
224
|
-
_context4.next = 11;
|
|
225
|
-
break;
|
|
226
|
-
case 9:
|
|
227
|
-
_logger["default"].info('Set Expectations: Finished');
|
|
228
|
-
resolve();
|
|
229
|
-
case 11:
|
|
230
|
-
case "end":
|
|
231
|
-
return _context4.stop();
|
|
232
|
-
}
|
|
233
|
-
}, _callee4);
|
|
234
|
-
}));
|
|
235
|
-
return function (_x9) {
|
|
236
|
-
return _ref4.apply(this, arguments);
|
|
237
|
-
};
|
|
238
|
-
}())["catch"](function (err) {
|
|
204
|
+
_axios["default"].post("".concat(stubServerBaseUrl, "/_specmatic/expectations"), stubResponse).then(function (response) {
|
|
205
|
+
_logger["default"].debug("Set Expectations: ".concat(response.data));
|
|
206
|
+
_logger["default"].info('Set Expectations: Finished');
|
|
207
|
+
resolve();
|
|
208
|
+
})["catch"](function (err) {
|
|
239
209
|
_logger["default"].error("Set Expectations: Failed with error ".concat(err));
|
|
240
210
|
reject("Setting expecation failed with error ".concat(err));
|
|
241
211
|
});
|
|
@@ -322,4 +292,4 @@ function extractEndPoints(expressApp) {
|
|
|
322
292
|
});
|
|
323
293
|
return springActuatorPayload;
|
|
324
294
|
}
|
|
325
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9mYXN0WG1sUGFyc2VyIiwiX2ZzIiwiX2xvZ2dlciIsIl9ydW5uZXIiLCJfcHJvbWlzZSIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiU3R1YiIsImhvc3QiLCJwb3J0IiwidXJsIiwicHJvY2VzcyIsInN0YXJ0U3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbENvcmUiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInN0dWJJbmZvIiwic3BsaXQiLCJfdXJsSW5mbyRsZW5ndGgiLCJ0cmltIiwidXJsSW5mbyIsImV4ZWMiLCJwYXJzZUludCIsInN0b3BTdHViIiwiX3JlZiIsIl9jYWxsZWUiLCJzdHViIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic3Rkb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RkZXJyIiwidGVybWluYXRlIiwicGlkIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJmZXRjaCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiX3JlZjQiLCJfY2FsbGVlNCIsInJlc3BvbnNlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0Iiwic3RhdHVzIiwidGV4dCIsIl94OSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiZXh0cmFjdEVuZFBvaW50cyIsImVuZCIsIm9uIiwibGlzdGVuIiwiYWRkcmVzcyIsImVudiIsInJlcG9ydFBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2VzcydcbmltcG9ydCB7IFhNTFBhcnNlciB9IGZyb20gJ2Zhc3QteG1sLXBhcnNlcidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmltcG9ydCB7IGNhbGxDb3JlIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnXG5pbXBvcnQgbGlzdEV4cHJlc3NFbmRwb2ludHMgZnJvbSAnZXhwcmVzcy1saXN0LWVuZHBvaW50cydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBBZGRyZXNzSW5mbyB9IGZyb20gJ25ldCdcblxuZXhwb3J0IGNsYXNzIFN0dWIge1xuICAgIGhvc3Q6IHN0cmluZ1xuICAgIHBvcnQ6IG51bWJlclxuICAgIHVybDogc3RyaW5nXG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzXG4gICAgY29uc3RydWN0b3IoaG9zdDogc3RyaW5nLCBwb3J0OiBudW1iZXIsIHVybDogc3RyaW5nLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gaG9zdFxuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3NcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0U3R1YiA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8U3R1Yj4gPT4ge1xuICAgIHZhciBjbWQgPSBgc3R1YmBcbiAgICBpZiAoaG9zdCkgY21kICs9IGAgLS1ob3N0PSR7aG9zdH1gXG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YFxuICAgIGlmIChhcmdzKSBjbWQgKz0gJyAnICsgYXJncy5qb2luKCcgJylcblxuICAgIGxvZ2dlci5pbmZvKCdTdHViOiBTdGFydGluZyBzZXJ2ZXInKVxuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiBFeGl0ZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ1N0dWIgc2VydmVyIGlzIHJ1bm5pbmcnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgdXJsIGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gc3R1YkluZm9bMV0udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsSW5mbyA9IC8oLio/KTpcXC9cXC8oLio/KTooWzAtOV0rKS8uZXhlYyh1cmwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1cmxJbmZvPy5sZW5ndGggPz8gMCkgPCA0KSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgaG9zdCBhbmQgcG9ydCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlc29sdmUobmV3IFN0dWIodXJsSW5mbyFbMl0sIHBhcnNlSW50KHVybEluZm8hWzNdKSwgdXJsSW5mbyFbMF0sIGphdmFQcm9jZXNzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJylcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH0pXG59XG5cbmNvbnN0IHN0b3BTdHViID0gYXN5bmMgKHN0dWI6IFN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IFN0b3BwaW5nIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3NcbiAgICBqYXZhUHJvY2Vzcy5zdGRvdXQ/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKVxuICAgIGF3YWl0IHRlcm1pbmF0ZShqYXZhUHJvY2Vzcy5waWQhKVxuICAgIGxvZ2dlci5pbmZvKGBTdHViOiBTdG9wcGVkIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG59XG5cbmNvbnN0IHRlc3RXaXRoQXBpQ292ZXJhZ2UgPSBhc3luYyAoXG4gICAgZXhwcmVzc0FwcDogYW55LFxuICAgIGhvc3Q/OiBzdHJpbmcsXG4gICAgcG9ydD86IG51bWJlcixcbiAgICBjb250cmFjdFBhdGg/OiBzdHJpbmcsXG4gICAgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW11cbik6IFByb21pc2U8eyBbazogc3RyaW5nXTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICAgICAgbGV0IGFwaUNvdmVyYWdlU2VydmVyID0gYXdhaXQgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlcihleHByZXNzQXBwKVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGVzdChob3N0LCBwb3J0LCBjb250cmFjdFBhdGgsIGFyZ3MpXG4gICAgICAgIGFwaUNvdmVyYWdlU2VydmVyLmNsb3NlKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCB0ZXN0ID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGNvbnRyYWN0UGF0aD86IHN0cmluZywgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3Qgc3BlY3NQYXRoID0gcGF0aC5yZXNvbHZlKGNvbnRyYWN0UGF0aCArICcnKVxuXG4gICAgdmFyIGNtZCA9IGB0ZXN0YFxuICAgIGlmIChjb250cmFjdFBhdGgpIGNtZCArPSBgICR7c3BlY3NQYXRofWBcbiAgICBjbWQgKz0gJyAtLWp1bml0UmVwb3J0RGlyPWRpc3QvdGVzdC1yZXBvcnQnXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnVGVzdDogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBUZXN0OiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICBjb25zdCByZXBvcnREaXIgPSBwYXRoLnJlc29sdmUoJ2Rpc3QvdGVzdC1yZXBvcnQnKVxuICAgIGZzLnJtU3luYyhyZXBvcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBUZXN0OiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRlc3RDYXNlcy5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsdXJlID0gdGVzdENhc2VzLmZpbHRlcigodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkgPT4gdGVzdGNhc2VbJ2ZhaWx1cmUnXSB8fCB0ZXN0Y2FzZVsnc2tpcHBlZCddKS5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdG90YWwgLSBmYWlsdXJlXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHsgdG90YWwsIHN1Y2Nlc3MsIGZhaWx1cmUgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FQSSBDT1ZFUkFHRSBTVU1NQVJZJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKSAvL0xvZyBhbHdheXMgZm9yIGFsbCBsb2cgbGV2ZWxzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyW2Vycm9yID8gJ2Vycm9yJyA6ICdkZWJ1ZyddKGBUZXN0OiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzaG93VGVzdFJlc3VsdHMgPSAodGVzdEZuOiAobmFtZTogc3RyaW5nLCBjYjogKCkgPT4gdm9pZCkgPT4gdm9pZCkgPT4ge1xuICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICB0ZXN0Q2FzZXMubWFwKGZ1bmN0aW9uICh0ZXN0Y2FzZTogeyBbaWQ6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIHZhciBuYW1lID0gJ05vIE5hbWUnXG4gICAgICAgIGlmICh0ZXN0Y2FzZVsnc3lzdGVtLW91dCddKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lVGVtcEFyciA9IHRlc3RjYXNlWydzeXN0ZW0tb3V0J11cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnJylcbiAgICAgICAgICAgICAgICAuc3BsaXQoL2Rpc3BsYXktbmFtZTouKlNjZW5hcmlvOiAvKVxuICAgICAgICAgICAgaWYgKG5hbWVUZW1wQXJyLmxlbmd0aCA+IDEpIG5hbWUgPSBuYW1lVGVtcEFyclsxXS50cmltKClcbiAgICAgICAgfVxuICAgICAgICB0ZXN0Rm4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRlc3RjYXNlLmZhaWx1cmUgfHwgdGVzdGNhc2Uuc2tpcHBlZCkgdGhyb3cgbmV3IEVycm9yKCdEaWQgbm90IHBhc3MnKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHNldEV4cGVjdGF0aW9ucyA9IChzdHViUGF0aDogc3RyaW5nLCBzdHViU2VydmVyQmFzZVVybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHN0dWJSZXNwb25zZSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKHN0dWJQYXRoKSlcbiAgICBzdHViU2VydmVyQmFzZVVybCA9IHN0dWJTZXJ2ZXJCYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjkwMDAnXG5cbiAgICBsb2dnZXIuaW5mbyhgU2V0IEV4cGVjdGF0aW9uczogU3R1YiB1cmwgaXMgJHtzdHViU2VydmVyQmFzZVVybH1gKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7c3R1YlNlcnZlckJhc2VVcmx9L19zcGVjbWF0aWMvZXhwZWN0YXRpb25zYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzdHViUmVzcG9uc2UpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSlcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGBTZXR0aW5nIGV4cGVjYXRpb24gZmFpbGVkYClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHJlamVjdChgU2V0dGluZyBleHBlY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHByaW50SmFyVmVyc2lvbiA9ICgpID0+IHtcbiAgICBjb25zdCBjbWQgPSBgLS12ZXJzaW9uYFxuICAgIGxvZ2dlci5pbmZvKCdQcmludCBKYXIgVmVyc2lvbjogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBQcmludCBKYXIgVmVyc2lvbjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY2FsbENvcmUoXG4gICAgICAgIGNtZCxcbiAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSBsb2dnZXIuZXJyb3IoYFByaW50IEphciBWZXJzaW9uOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICB9LFxuICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICBlbHNlIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuY29uc3Qgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciA9IChleHByZXNzQXBwOiBhbnkpOiBQcm9taXNlPGh0dHAuU2VydmVyPiA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBSZWdpc3RlcmluZyBBUEkgZW5kcG9pbnQgZm9yIGNvdmVyYWdlYClcbiAgICBsZXQgYXBwID0gaHR0cC5jcmVhdGVTZXJ2ZXIoKF9yZXEsIHJlcykgPT4ge1xuICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICAgIGNvbnN0IGVuZFBvaW50cyA9IEpTT04uc3RyaW5naWZ5KGV4dHJhY3RFbmRQb2ludHMoZXhwcmVzc0FwcCkpXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgRW5kcG9pbnRzOiAke2VuZFBvaW50c31gKVxuICAgICAgICByZXMuZW5kKGVuZFBvaW50cylcbiAgICB9KVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxodHRwLlNlcnZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBhcHAub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScsIGVycilcbiAgICAgICAgICAgIHJlamVjdCgnRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScpXG4gICAgICAgIH0pXG4gICAgICAgIGFwcC5saXN0ZW4oeyBob3N0OiAnMTI3LjAuMC4xJywgcG9ydDogMCB9LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0gYXBwLmFkZHJlc3MoKSBhcyBBZGRyZXNzSW5mbyB8IG51bGxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXSA9IGBodHRwOi8vJHthZGRyZXNzPy5hZGRyZXNzfToke2FkZHJlc3M/LnBvcnR9YFxuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEVuZHBvaW50cyBBUEkgcmVnaXN0ZXJlZCBhdCAke3Byb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXX1gKVxuICAgICAgICAgICAgcmVzb2x2ZShhcHApXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgcGFyc2VKdW5pdFhNTCA9ICgpID0+IHtcbiAgICBjb25zdCByZXBvcnRQYXRoID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0L1RFU1QtanVuaXQtanVwaXRlci54bWwnKVxuICAgIHZhciBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHJlcG9ydFBhdGgpXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFhNTFBhcnNlcigpXG4gICAgdmFyIHJlc3VsdFhtbCA9IHBhcnNlci5wYXJzZShkYXRhKVxuICAgIHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgPSBBcnJheS5pc0FycmF5KHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UpID8gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSA6IFtyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXVxuICAgIHJldHVybiByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXG59XG5cbmNvbnN0IGxpc3RFbmRQb2ludHMgPSAoZXhwcmVzc0FwcDogYW55KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0+IHtcbiAgICBjb25zdCBkZXRhaWxzID0gbGlzdEV4cHJlc3NFbmRwb2ludHMoZXhwcmVzc0FwcClcbiAgICBsZXQgZW5kUG9pbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fVxuICAgIGRldGFpbHMubWFwKGFwaURldGFpbCA9PiB7XG4gICAgICAgIGVuZFBvaW50c1thcGlEZXRhaWwucGF0aF0gPSBhcGlEZXRhaWwubWV0aG9kc1xuICAgIH0pXG4gICAgZGVsZXRlIGVuZFBvaW50c1snKiddXG4gICAgcmV0dXJuIGVuZFBvaW50c1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHA6IGFueSkge1xuICAgIGxldCBlbmRQb2ludHMgPSBsaXN0RW5kUG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IHNwcmluZ0FjdHVhdG9yUGF5bG9hZCA9IHtcbiAgICAgICAgY29udGV4dHM6IHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgbWFwcGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyU2VydmxldDogW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfVxuICAgIE9iamVjdC5rZXlzKGVuZFBvaW50cylcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKHBhdGggPT4ge1xuICAgICAgICAgICAgc3ByaW5nQWN0dWF0b3JQYXlsb2FkLmNvbnRleHRzLmFwcGxpY2F0aW9uLm1hcHBpbmdzLmRpc3BhdGNoZXJTZXJ2bGV0cy5kaXNwYXRjaGVyU2VydmxldC5wdXNoKHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RNYXBwaW5nQ29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kczogZW5kUG9pbnRzW3BhdGhdLnNvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5zOiBbcGF0aC5yZXBsYWNlKC86KFteL10rKS9nLCAneyQxfScpLnJlcGxhY2UoL1xcXFwvZywgJycpXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgfSlcbiAgICByZXR1cm4gc3ByaW5nQWN0dWF0b3JQYXlsb2FkXG59XG5cbmV4cG9ydCB7IHN0YXJ0U3R1Yiwgc3RvcFN0dWIsIHRlc3QsIHRlc3RXaXRoQXBpQ292ZXJhZ2UsIHNldEV4cGVjdGF0aW9ucywgcHJpbnRKYXJWZXJzaW9uLCBzaG93VGVzdFJlc3VsdHMgfVxuZXhwb3J0IHsgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciB9XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHFCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFBdUIsU0FBQUQsdUJBQUFVLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLFFBQUFGLEdBQUEsc0NBQUFFLE9BQUEsd0JBQUFDLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBSixHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQSxHQUFBLFdBQUFBLEdBQUEseUJBQUFHLE1BQUEsSUFBQUgsR0FBQSxD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
|
|
295
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2Zhc3RYbWxQYXJzZXIiLCJfZnMiLCJfbG9nZ2VyIiwiX3J1bm5lciIsIl9wcm9taXNlIiwiX2V4cHJlc3NMaXN0RW5kcG9pbnRzIiwiX2h0dHAiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJTdHViIiwiaG9zdCIsInBvcnQiLCJ1cmwiLCJwcm9jZXNzIiwic3RhcnRTdHViIiwiY21kIiwiY29uY2F0Iiwiam9pbiIsImxvZ2dlciIsImRlYnVnIiwiamF2YVByb2Nlc3MiLCJjYWxsQ29yZSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsIl91cmxJbmZvJGxlbmd0aCIsInRyaW0iLCJ1cmxJbmZvIiwiZXhlYyIsInBhcnNlSW50Iiwic3RvcFN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJ0ZXJtaW5hdGUiLCJwaWQiLCJfeCIsInRlc3RXaXRoQXBpQ292ZXJhZ2UiLCJfcmVmMiIsIl9jYWxsZWUzIiwiZXhwcmVzc0FwcCIsImNvbnRyYWN0UGF0aCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIl9yZWYzIiwiX2NhbGxlZTIiLCJfcmVqZWN0IiwiYXBpQ292ZXJhZ2VTZXJ2ZXIiLCJyZXN1bHRzIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwic3RhcnRBcGlDb3ZlcmFnZVNlcnZlciIsInRlc3QiLCJjbG9zZSIsIl94NyIsIl94OCIsIl94MiIsIl94MyIsIl94NCIsIl94NSIsIl94NiIsInNwZWNzUGF0aCIsInBhdGgiLCJyZXBvcnREaXIiLCJmcyIsInJtU3luYyIsInJlY3Vyc2l2ZSIsImZvcmNlIiwidGVzdENhc2VzIiwicGFyc2VKdW5pdFhNTCIsInRvdGFsIiwiZmFpbHVyZSIsImZpbHRlciIsInRlc3RjYXNlIiwic3VjY2VzcyIsImNvbnNvbGUiLCJsb2ciLCJzaG93VGVzdFJlc3VsdHMiLCJ0ZXN0Rm4iLCJtYXAiLCJuYW1lVGVtcEFyciIsInJlcGxhY2UiLCJza2lwcGVkIiwic2V0RXhwZWN0YXRpb25zIiwic3R1YlBhdGgiLCJzdHViU2VydmVyQmFzZVVybCIsInN0dWJSZXNwb25zZSIsImF4aW9zIiwicG9zdCIsInJlc3BvbnNlIiwiZGF0YSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsImV4dHJhY3RFbmRQb2ludHMiLCJlbmQiLCJvbiIsImxpc3RlbiIsImFkZHJlc3MiLCJlbnYiLCJyZXBvcnRQYXRoIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnXG5pbXBvcnQgeyBYTUxQYXJzZXIgfSBmcm9tICdmYXN0LXhtbC1wYXJzZXInXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInXG5pbXBvcnQgeyBjYWxsQ29yZSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInXG5pbXBvcnQgdGVybWluYXRlIGZyb20gJ3Rlcm1pbmF0ZS9wcm9taXNlJ1xuaW1wb3J0IGxpc3RFeHByZXNzRW5kcG9pbnRzIGZyb20gJ2V4cHJlc3MtbGlzdC1lbmRwb2ludHMnXG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJ1xuaW1wb3J0IHsgQWRkcmVzc0luZm8gfSBmcm9tICduZXQnXG5cbmV4cG9ydCBjbGFzcyBTdHViIHtcbiAgICBob3N0OiBzdHJpbmdcbiAgICBwb3J0OiBudW1iZXJcbiAgICB1cmw6IHN0cmluZ1xuICAgIHByb2Nlc3M6IENoaWxkUHJvY2Vzc1xuICAgIGNvbnN0cnVjdG9yKGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCB1cmw6IHN0cmluZywgcHJvY2VzczogQ2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIHRoaXMuaG9zdCA9IGhvc3RcbiAgICAgICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgICAgICB0aGlzLnVybCA9IHVybFxuICAgICAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzXG4gICAgfVxufVxuXG5jb25zdCBzdGFydFN0dWIgPSAoaG9zdD86IHN0cmluZywgcG9ydD86IG51bWJlciwgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPFN0dWI+ID0+IHtcbiAgICB2YXIgY21kID0gYHN0dWJgXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnU3R1YjogU3RhcnRpbmcgc2VydmVyJylcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGphdmFQcm9jZXNzID0gY2FsbENvcmUoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogRXhpdGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmRleE9mKCdTdHViIHNlcnZlciBpcyBydW5uaW5nJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3R1YkluZm8gPSBtZXNzYWdlLnNwbGl0KCdvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R1YkluZm8ubGVuZ3RoIDwgMikgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIHVybCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHN0dWJJbmZvWzFdLnRyaW0oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybEluZm8gPSAvKC4qPyk6XFwvXFwvKC4qPyk6KFswLTldKykvLmV4ZWModXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodXJsSW5mbz8ubGVuZ3RoID8/IDApIDwgNCkgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIGhvc3QgYW5kIHBvcnQgZnJvbSBzdHViIG91dHB1dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSByZXNvbHZlKG5ldyBTdHViKHVybEluZm8hWzJdLCBwYXJzZUludCh1cmxJbmZvIVszXSksIHVybEluZm8hWzBdLCBqYXZhUHJvY2VzcykpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgnQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzdG9wU3R1YiA9IGFzeW5jIChzdHViOiBTdHViKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBTdHViOiBTdG9wcGluZyBzZXJ2ZXIgYXQgJHtzdHViLnVybH1gKVxuICAgIGNvbnN0IGphdmFQcm9jZXNzID0gc3R1Yi5wcm9jZXNzXG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnN0ZGVycj8ucmVtb3ZlQWxsTGlzdGVuZXJzKClcbiAgICBqYXZhUHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Nsb3NlJylcbiAgICBhd2FpdCB0ZXJtaW5hdGUoamF2YVByb2Nlc3MucGlkISlcbiAgICBsb2dnZXIuaW5mbyhgU3R1YjogU3RvcHBlZCBzZXJ2ZXIgYXQgJHtzdHViLnVybH1gKVxufVxuXG5jb25zdCB0ZXN0V2l0aEFwaUNvdmVyYWdlID0gYXN5bmMgKFxuICAgIGV4cHJlc3NBcHA6IGFueSxcbiAgICBob3N0Pzogc3RyaW5nLFxuICAgIHBvcnQ/OiBudW1iZXIsXG4gICAgY29udHJhY3RQYXRoPzogc3RyaW5nLFxuICAgIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBhcGlDb3ZlcmFnZVNlcnZlciA9IGF3YWl0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIoZXhwcmVzc0FwcClcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRlc3QoaG9zdCwgcG9ydCwgY29udHJhY3RQYXRoLCBhcmdzKVxuICAgICAgICBhcGlDb3ZlcmFnZVNlcnZlci5jbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdHMpXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgdGVzdCA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBjb250cmFjdFBhdGg/OiBzdHJpbmcsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTx7IFtrOiBzdHJpbmddOiBudW1iZXIgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IHNwZWNzUGF0aCA9IHBhdGgucmVzb2x2ZShjb250cmFjdFBhdGggKyAnJylcblxuICAgIHZhciBjbWQgPSBgdGVzdGBcbiAgICBpZiAoY29udHJhY3RQYXRoKSBjbWQgKz0gYCAke3NwZWNzUGF0aH1gXG4gICAgY21kICs9ICcgLS1qdW5pdFJlcG9ydERpcj1kaXN0L3Rlc3QtcmVwb3J0J1xuICAgIGlmIChob3N0KSBjbWQgKz0gYCAtLWhvc3Q9JHtob3N0fWBcbiAgICBpZiAocG9ydCkgY21kICs9IGAgLS1wb3J0PSR7cG9ydH1gXG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKVxuXG4gICAgbG9nZ2VyLmluZm8oJ1Rlc3Q6IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgVGVzdDogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY29uc3QgcmVwb3J0RGlyID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0JylcbiAgICBmcy5ybVN5bmMocmVwb3J0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSlcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgICAgICBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIGxvZ2dlci5lcnJvcihgVGVzdDogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0ZXN0Q2FzZXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3QgZmFpbHVyZSA9IHRlc3RDYXNlcy5maWx0ZXIoKHRlc3RjYXNlOiB7IFtpZDogc3RyaW5nXTogYW55IH0pID0+IHRlc3RjYXNlWydmYWlsdXJlJ10gfHwgdGVzdGNhc2VbJ3NraXBwZWQnXSkubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRvdGFsIC0gZmFpbHVyZVxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB7IHRvdGFsLCBzdWNjZXNzLCBmYWlsdXJlIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmRleE9mKCdBUEkgQ09WRVJBR0UgU1VNTUFSWScpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSkgLy9Mb2cgYWx3YXlzIGZvciBhbGwgbG9nIGxldmVsc1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcltlcnJvciA/ICdlcnJvcicgOiAnZGVidWcnXShgVGVzdDogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfSlcbn1cblxuY29uc3Qgc2hvd1Rlc3RSZXN1bHRzID0gKHRlc3RGbjogKG5hbWU6IHN0cmluZywgY2I6ICgpID0+IHZvaWQpID0+IHZvaWQpID0+IHtcbiAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgdGVzdENhc2VzLm1hcChmdW5jdGlvbiAodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICB2YXIgbmFtZSA9ICdObyBOYW1lJ1xuICAgICAgICBpZiAodGVzdGNhc2VbJ3N5c3RlbS1vdXQnXSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZVRlbXBBcnIgPSB0ZXN0Y2FzZVsnc3lzdGVtLW91dCddXG4gICAgICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgICAgICAgICAgLnNwbGl0KC9kaXNwbGF5LW5hbWU6LipTY2VuYXJpbzogLylcbiAgICAgICAgICAgIGlmIChuYW1lVGVtcEFyci5sZW5ndGggPiAxKSBuYW1lID0gbmFtZVRlbXBBcnJbMV0udHJpbSgpXG4gICAgICAgIH1cbiAgICAgICAgdGVzdEZuKG5hbWUsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0ZXN0Y2FzZS5mYWlsdXJlIHx8IHRlc3RjYXNlLnNraXBwZWQpIHRocm93IG5ldyBFcnJvcignRGlkIG5vdCBwYXNzJylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBzZXRFeHBlY3RhdGlvbnMgPSAoc3R1YlBhdGg6IHN0cmluZywgc3R1YlNlcnZlckJhc2VVcmw/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBzdHViUmVzcG9uc2UgPSByZXF1aXJlKHBhdGgucmVzb2x2ZShzdHViUGF0aCkpXG4gICAgc3R1YlNlcnZlckJhc2VVcmwgPSBzdHViU2VydmVyQmFzZVVybCB8fCAnaHR0cDovL2xvY2FsaG9zdDo5MDAwJ1xuXG4gICAgbG9nZ2VyLmluZm8oYFNldCBFeHBlY3RhdGlvbnM6IFN0dWIgdXJsIGlzICR7c3R1YlNlcnZlckJhc2VVcmx9YClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF4aW9zXG4gICAgICAgICAgICAucG9zdChgJHtzdHViU2VydmVyQmFzZVVybH0vX3NwZWNtYXRpYy9leHBlY3RhdGlvbnNgLCBzdHViUmVzcG9uc2UpXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTZXQgRXhwZWN0YXRpb25zOiAke3Jlc3BvbnNlLmRhdGF9YClcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldHRpbmcgZXhwZWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBwcmludEphclZlcnNpb24gPSAoKSA9PiB7XG4gICAgY29uc3QgY21kID0gYC0tdmVyc2lvbmBcbiAgICBsb2dnZXIuaW5mbygnUHJpbnQgSmFyIFZlcnNpb246IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgUHJpbnQgSmFyIFZlcnNpb246IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIGNhbGxDb3JlKFxuICAgICAgICBjbWQsXG4gICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgfSxcbiAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIGxvZ2dlci5lcnJvcihgUHJpbnQgSmFyIFZlcnNpb246ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgZWxzZSBjb25zb2xlLmxvZyhgJHttZXNzYWdlfWApXG4gICAgICAgIH1cbiAgICApXG59XG5cbmNvbnN0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgPSAoZXhwcmVzc0FwcDogYW55KTogUHJvbWlzZTxodHRwLlNlcnZlcj4gPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgUmVnaXN0ZXJpbmcgQVBJIGVuZHBvaW50IGZvciBjb3ZlcmFnZWApXG4gICAgbGV0IGFwcCA9IGh0dHAuY3JlYXRlU2VydmVyKChfcmVxLCByZXMpID0+IHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCgyMDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgICBjb25zdCBlbmRQb2ludHMgPSBKU09OLnN0cmluZ2lmeShleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHApKVxuICAgICAgICBsb2dnZXIuZGVidWcoYEVuZHBvaW50czogJHtlbmRQb2ludHN9YClcbiAgICAgICAgcmVzLmVuZChlbmRQb2ludHMpXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IFByb21pc2U8aHR0cC5TZXJ2ZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXBwLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnLCBlcnIpXG4gICAgICAgICAgICByZWplY3QoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnKVxuICAgICAgICB9KVxuICAgICAgICBhcHAubGlzdGVuKHsgaG9zdDogJzEyNy4wLjAuMScsIHBvcnQ6IDAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9IGFwcC5hZGRyZXNzKCkgYXMgQWRkcmVzc0luZm8gfCBudWxsXG4gICAgICAgICAgICBwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ10gPSBgaHR0cDovLyR7YWRkcmVzcz8uYWRkcmVzc306JHthZGRyZXNzPy5wb3J0fWBcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBFbmRwb2ludHMgQVBJIHJlZ2lzdGVyZWQgYXQgJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119YClcbiAgICAgICAgICAgIHJlc29sdmUoYXBwKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHBhcnNlSnVuaXRYTUwgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVwb3J0UGF0aCA9IHBhdGgucmVzb2x2ZSgnZGlzdC90ZXN0LXJlcG9ydC9URVNULWp1bml0LWp1cGl0ZXIueG1sJylcbiAgICB2YXIgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhyZXBvcnRQYXRoKVxuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBYTUxQYXJzZXIoKVxuICAgIHZhciByZXN1bHRYbWwgPSBwYXJzZXIucGFyc2UoZGF0YSlcbiAgICByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlID0gQXJyYXkuaXNBcnJheShyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlKSA/IHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgOiBbcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZV1cbiAgICByZXR1cm4gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZVxufVxuXG5jb25zdCBsaXN0RW5kUG9pbnRzID0gKGV4cHJlc3NBcHA6IGFueSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9PiB7XG4gICAgY29uc3QgZGV0YWlscyA9IGxpc3RFeHByZXNzRW5kcG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IGVuZFBvaW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge31cbiAgICBkZXRhaWxzLm1hcChhcGlEZXRhaWwgPT4ge1xuICAgICAgICBlbmRQb2ludHNbYXBpRGV0YWlsLnBhdGhdID0gYXBpRGV0YWlsLm1ldGhvZHNcbiAgICB9KVxuICAgIGRlbGV0ZSBlbmRQb2ludHNbJyonXVxuICAgIHJldHVybiBlbmRQb2ludHNcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEVuZFBvaW50cyhleHByZXNzQXBwOiBhbnkpIHtcbiAgICBsZXQgZW5kUG9pbnRzID0gbGlzdEVuZFBvaW50cyhleHByZXNzQXBwKVxuICAgIGxldCBzcHJpbmdBY3R1YXRvclBheWxvYWQgPSB7XG4gICAgICAgIGNvbnRleHRzOiB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbjoge1xuICAgICAgICAgICAgICAgIG1hcHBpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXJTZXJ2bGV0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXQ6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH1cbiAgICBPYmplY3Qua2V5cyhlbmRQb2ludHMpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgICAgIHNwcmluZ0FjdHVhdG9yUGF5bG9hZC5jb250ZXh0cy5hcHBsaWNhdGlvbi5tYXBwaW5ncy5kaXNwYXRjaGVyU2VydmxldHMuZGlzcGF0Y2hlclNlcnZsZXQucHVzaCh7XG4gICAgICAgICAgICAgICAgZGV0YWlsczoge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0TWFwcGluZ0NvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZHM6IGVuZFBvaW50c1twYXRoXS5zb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuczogW3BhdGgucmVwbGFjZSgvOihbXi9dKykvZywgJ3skMX0nKS5yZXBsYWNlKC9cXFxcL2csICcnKV0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0gYXMgbmV2ZXIpXG4gICAgICAgIH0pXG4gICAgcmV0dXJuIHNwcmluZ0FjdHVhdG9yUGF5bG9hZFxufVxuXG5leHBvcnQgeyBzdGFydFN0dWIsIHN0b3BTdHViLCB0ZXN0LCB0ZXN0V2l0aEFwaUNvdmVyYWdlLCBzZXRFeHBlY3RhdGlvbnMsIHByaW50SmFyVmVyc2lvbiwgc2hvd1Rlc3RSZXN1bHRzIH1cbmV4cG9ydCB7IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgfVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENB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
|
package/dist/kafka/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.verifyKafkaStubMessage = exports.verifyKafkaStub = exports.stopKafkaStub = exports.startKafkaStub = exports.setKafkaStubExpectations = exports.KafkaStub = void 0;
|
|
7
7
|
var _runner = require("../common/runner");
|
|
8
8
|
var _logger = _interopRequireDefault(require("../common/logger"));
|
|
9
|
-
var
|
|
9
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
10
10
|
var _promise = _interopRequireDefault(require("terminate/promise"));
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
12
12
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
@@ -98,22 +98,13 @@ var setKafkaStubExpectations = function setKafkaStubExpectations(stub, expecatio
|
|
|
98
98
|
var exectationsUrl = "http://localhost:".concat(stub.apiPort, "/_expectations");
|
|
99
99
|
_logger["default"].info("Kafka Set Expectations: Url is ".concat(exectationsUrl));
|
|
100
100
|
return new Promise(function (resolve, reject) {
|
|
101
|
-
|
|
102
|
-
method: 'POST',
|
|
101
|
+
_axios["default"].post("".concat(exectationsUrl), expecations, {
|
|
103
102
|
headers: {
|
|
104
103
|
Accept: 'application/json',
|
|
105
104
|
'Content-Type': 'application/json'
|
|
106
|
-
},
|
|
107
|
-
body: JSON.stringify(expecations)
|
|
108
|
-
}).then(function (response) {
|
|
109
|
-
if (response.status != 200) {
|
|
110
|
-
_logger["default"].error("Kafka Set Expectations: Failed with status code ".concat(response.status));
|
|
111
|
-
reject('Set expectation failed');
|
|
112
|
-
} else {
|
|
113
|
-
return response.text();
|
|
114
105
|
}
|
|
115
|
-
}).then(function (
|
|
116
|
-
_logger["default"].debug("Kafka Set Expectations: Finished ".concat(JSON.stringify(data)));
|
|
106
|
+
}).then(function (response) {
|
|
107
|
+
_logger["default"].debug("Kafka Set Expectations: Finished ".concat(JSON.stringify(response.data)));
|
|
117
108
|
resolve();
|
|
118
109
|
})["catch"](function (err) {
|
|
119
110
|
_logger["default"].error("Kafka Set Expectations: Failed with error ".concat(err));
|
|
@@ -126,23 +117,15 @@ var verifyKafkaStub = function verifyKafkaStub(stub) {
|
|
|
126
117
|
var verificationUrl = "http://localhost:".concat(stub.apiPort, "/_expectations/verifications");
|
|
127
118
|
_logger["default"].info("Kafka Verification: Url is ".concat(verificationUrl));
|
|
128
119
|
return new Promise(function (resolve, reject) {
|
|
129
|
-
|
|
130
|
-
method: 'POST',
|
|
120
|
+
_axios["default"].post("".concat(verificationUrl), {
|
|
131
121
|
headers: {
|
|
132
122
|
Accept: 'application/json',
|
|
133
123
|
'Content-Type': 'application/json'
|
|
134
124
|
}
|
|
135
125
|
}).then(function (response) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
} else {
|
|
140
|
-
return response.json();
|
|
141
|
-
}
|
|
142
|
-
}).then(function (data) {
|
|
143
|
-
_logger["default"].debug("Kafka Verification: Finished ".concat(JSON.stringify(data)));
|
|
144
|
-
if (!data.success) _logger["default"].info("Kafka Verification: Errors\n".concat(JSON.stringify(data)));
|
|
145
|
-
resolve(data.success);
|
|
126
|
+
_logger["default"].debug("Kafka Verification: Finished ".concat(JSON.stringify(response.data)));
|
|
127
|
+
if (!response.data.success) _logger["default"].info("Kafka Verification: Errors\n".concat(JSON.stringify(response.data)));
|
|
128
|
+
resolve(response.data.success);
|
|
146
129
|
})["catch"](function (err) {
|
|
147
130
|
_logger["default"].error("Kafka Verification: Failed with error ".concat(err));
|
|
148
131
|
reject("Kafka verification failed with error ".concat(err));
|
|
@@ -154,26 +137,17 @@ var verifyKafkaStubMessage = function verifyKafkaStubMessage(stub, topic, value)
|
|
|
154
137
|
var verificationUrl = "http://localhost:".concat(stub.apiPort, "/_verifications");
|
|
155
138
|
_logger["default"].info("Kafka Verify Message: Url is ".concat(verificationUrl));
|
|
156
139
|
return new Promise(function (resolve, reject) {
|
|
157
|
-
|
|
158
|
-
|
|
140
|
+
_axios["default"].post("".concat(verificationUrl), {
|
|
141
|
+
topic: topic,
|
|
142
|
+
value: value
|
|
143
|
+
}, {
|
|
159
144
|
headers: {
|
|
160
145
|
Accept: 'application/json',
|
|
161
146
|
'Content-Type': 'application/json'
|
|
162
|
-
},
|
|
163
|
-
body: JSON.stringify({
|
|
164
|
-
topic: topic,
|
|
165
|
-
value: value
|
|
166
|
-
})
|
|
167
|
-
}).then(function (response) {
|
|
168
|
-
if (response.status != 200) {
|
|
169
|
-
_logger["default"].error("Kafka Verify Message: Failed with status code ".concat(response.status));
|
|
170
|
-
reject('Kafka message verification failed');
|
|
171
|
-
} else {
|
|
172
|
-
return response.json();
|
|
173
147
|
}
|
|
174
|
-
}).then(function (
|
|
175
|
-
_logger["default"].debug("Kafka Verify Message: Finished ".concat(JSON.stringify(data)));
|
|
176
|
-
resolve(data.received);
|
|
148
|
+
}).then(function (response) {
|
|
149
|
+
_logger["default"].debug("Kafka Verify Message: Finished ".concat(JSON.stringify(response.data)));
|
|
150
|
+
resolve(response.data.received);
|
|
177
151
|
})["catch"](function (err) {
|
|
178
152
|
_logger["default"].error("Kafka Verify Message: Failed with error ".concat(err));
|
|
179
153
|
reject("Kafka message verification failed with error ".concat(err));
|
|
@@ -181,4 +155,4 @@ var verifyKafkaStubMessage = function verifyKafkaStubMessage(stub, topic, value)
|
|
|
181
155
|
});
|
|
182
156
|
};
|
|
183
157
|
exports.verifyKafkaStubMessage = verifyKafkaStubMessage;
|
|
184
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcnVubmVyIiwicmVxdWlyZSIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX25vZGVGZXRjaCIsIl9wcm9taXNlIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiS2Fma2FTdHViIiwicG9ydCIsImFwaVBvcnQiLCJwcm9jZXNzIiwic3RhcnRLYWZrYVN0dWIiLCJjbWQiLCJjb25jYXQiLCJqb2luIiwibG9nZ2VyIiwiZGVidWciLCJqYXZhUHJvY2VzcyIsImNhbGxLYWZrYSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsInBhcnNlSW50IiwidHJpbSIsInN0b3BLYWZrYVN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJ0ZXJtaW5hdGUiLCJwaWQiLCJfeCIsInNldEthZmthU3R1YkV4cGVjdGF0aW9ucyIsImV4cGVjYXRpb25zIiwiZXhlY3RhdGlvbnNVcmwiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlc3BvbnNlIiwic3RhdHVzIiwidGV4dCIsImRhdGEiLCJ2ZXJpZnlLYWZrYVN0dWIiLCJ2ZXJpZmljYXRpb25VcmwiLCJqc29uIiwic3VjY2VzcyIsInZlcmlmeUthZmthU3R1Yk1lc3NhZ2UiLCJ0b3BpYyIsInJlY2VpdmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGxLYWZrYSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHRlcm1pbmF0ZSBmcm9tICd0ZXJtaW5hdGUvcHJvbWlzZSc7XG5cbmV4cG9ydCBjbGFzcyBLYWZrYVN0dWIge1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgICBhcGlQb3J0OiBudW1iZXI7XG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzO1xuICAgIGNvbnN0cnVjdG9yKHBvcnQ6IG51bWJlciwgYXBpUG9ydDogbnVtYmVyLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICAgICAgdGhpcy5hcGlQb3J0ID0gYXBpUG9ydDtcbiAgICAgICAgdGhpcy5wcm9jZXNzID0gcHJvY2VzcztcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0S2Fma2FTdHViID0gKHBvcnQ/OiBudW1iZXIsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxLYWZrYVN0dWI+ID0+IHtcbiAgICB2YXIgY21kID0gYGA7XG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YDtcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpO1xuXG4gICAgbG9nZ2VyLmluZm8oJ0thZmthIFN0dWI6IFN0YXJ0aW5nIHNlcnZlcicpO1xuICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBwb3J0OiBudW1iZXIsIGFwaVBvcnQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsS2Fma2EoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU3R1YjogRXhpdGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5kZXhPZignS2Fma2Egc3RhcnRlZCBvbiBwb3J0JykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnb24gcG9ydCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBwb3J0IGZyb20ga2Fma2Egc3R1YiBvdXRwdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcG9ydCA9IHBhcnNlSW50KHN0dWJJbmZvWzFdLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdTdGFydGluZyBhcGkgc2VydmVyIG9uIHBvcnQnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3R1YkluZm8gPSBtZXNzYWdlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R1YkluZm8ubGVuZ3RoIDwgMikgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIGFwaSBwb3J0IGZyb20ga2Fma2Egc3R1YiBvdXRwdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYXBpUG9ydCA9IHBhcnNlSW50KHN0dWJJbmZvWzFdLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdMaXN0ZW5pbmcgb24gdG9waWMnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcnQgJiYgYXBpUG9ydCkgcmVzb2x2ZShuZXcgS2Fma2FTdHViKHBvcnQsIGFwaVBvcnQsIGphdmFQcm9jZXNzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlamVjdCgnTm8gcG9ydCBvciBhcGkgcG9ydCBpbmZvcm1hdGlvbiBhdmFpbGFibGUgYnV0IGthZmthIHN0dWIgbGlzdGVuaW5nIG9uIHRvcGljIGFscmVhZHknKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgnQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSk7XG59O1xuXG5jb25zdCBzdG9wS2Fma2FTdHViID0gYXN5bmMgKHN0dWI6IEthZmthU3R1YikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogU3RvcHBpbmcgYXQgcG9ydD0ke3N0dWIucG9ydH0sIGFwaVBvcnQ9JHtzdHViLmFwaVBvcnR9YCk7XG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3M7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICBqYXZhUHJvY2Vzcy5zdGRlcnI/LnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKTtcbiAgICBhd2FpdCB0ZXJtaW5hdGUoamF2YVByb2Nlc3MucGlkISk7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6IFN0b3BwZWQgYXQgcG9ydD0ke3N0dWIucG9ydH0sIGFwaVBvcnQ9JHtzdHViLmFwaVBvcnR9YCk7XG59O1xuXG5jb25zdCBzZXRLYWZrYVN0dWJFeHBlY3RhdGlvbnMgPSAoc3R1YjogS2Fma2FTdHViLCBleHBlY2F0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZXhlY3RhdGlvbnNVcmwgPSBgaHR0cDovL2xvY2FsaG9zdDoke3N0dWIuYXBpUG9ydH0vX2V4cGVjdGF0aW9uc2A7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFNldCBFeHBlY3RhdGlvbnM6IFVybCBpcyAke2V4ZWN0YXRpb25zVXJsfWApO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGZldGNoKGAke2V4ZWN0YXRpb25zVXJsfWAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZXhwZWNhdGlvbnMpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCgnU2V0IGV4cGVjdGF0aW9uIGZhaWxlZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldCBleHBlY3RhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuY29uc3QgdmVyaWZ5S2Fma2FTdHViID0gKHN0dWI6IEthZmthU3R1Yik6IFByb21pc2U8Qm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblVybCA9IGBodHRwOi8vbG9jYWxob3N0OiR7c3R1Yi5hcGlQb3J0fS9fZXhwZWN0YXRpb25zL3ZlcmlmaWNhdGlvbnNgO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBWZXJpZmljYXRpb246IFVybCBpcyAke3ZlcmlmaWNhdGlvblVybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBmZXRjaChgJHt2ZXJpZmljYXRpb25Vcmx9YCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZmljYXRpb246IEZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0thZmthIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmaWNhdGlvbjogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEuc3VjY2VzcykgbG9nZ2VyLmluZm8oYEthZmthIFZlcmlmaWNhdGlvbjogRXJyb3JzXFxuJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEuc3VjY2Vzcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZmljYXRpb246IEZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgICAgIHJlamVjdChgS2Fma2EgdmVyaWZpY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5jb25zdCB2ZXJpZnlLYWZrYVN0dWJNZXNzYWdlID0gKHN0dWI6IEthZmthU3R1YiwgdG9waWM6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8Qm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblVybCA9IGBodHRwOi8vbG9jYWxob3N0OiR7c3R1Yi5hcGlQb3J0fS9fdmVyaWZpY2F0aW9uc2A7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFZlcmlmeSBNZXNzYWdlOiBVcmwgaXMgJHt2ZXJpZmljYXRpb25Vcmx9YCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7dmVyaWZpY2F0aW9uVXJsfWAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyB0b3BpYzogdG9waWMsIHZhbHVlOiB2YWx1ZSB9KSxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGaW5pc2hlZCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YS5yZWNlaXZlZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZnkgTWVzc2FnZTogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IHsgc3RhcnRLYWZrYVN0dWIsIHN0b3BLYWZrYVN0dWIsIHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UsIHZlcmlmeUthZmthU3R1Yiwgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwQyxTQUFBRSx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsUUFBQUYsR0FBQSxzQ0FBQUUsT0FBQSx3QkFBQUMsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFKLEdBQUEsa0JBQUFBLEdBQUEsZ0JBQUFBLEdBQUEsV0FBQUEsR0FBQSx5QkFBQUcsTUFBQSxJQUFBSCxHQUFBLENBQUFLLFdBQUEsS0FBQUYsTUFBQSxJQUFBSCxHQUFBLEtBQUFHLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQU4sR0FBQSxLQUFBRSxPQUFBLENBQUFGLEdBQUE7QUFBQSxTQUFBTyxvQkFBQSxrQkFIMUMscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUosU0FBQSxFQUFBSyxNQUFBLEdBQUFGLEVBQUEsQ0FBQUcsY0FBQSxFQUFBQyxjQUFBLEdBQUFILE1BQUEsQ0FBQUcsY0FBQSxjQUFBYixHQUFBLEVBQUFjLEdBQUEsRUFBQUMsSUFBQSxJQUFBZixHQUFBLENBQUFjLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFkLE1BQUEsR0FBQUEsTUFBQSxPQUFBZSxjQUFBLEdBQUFELE9BQUEsQ0FBQWIsUUFBQSxrQkFBQWUsbUJBQUEsR0FBQUYsT0FBQSxD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
|
|
158
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcnVubmVyIiwicmVxdWlyZSIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2F4aW9zIiwiX3Byb21pc2UiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJLYWZrYVN0dWIiLCJwb3J0IiwiYXBpUG9ydCIsInByb2Nlc3MiLCJzdGFydEthZmthU3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbEthZmthIiwibWVzc2FnZSIsImluZGV4T2YiLCJzdHViSW5mbyIsInNwbGl0IiwicGFyc2VJbnQiLCJ0cmltIiwic3RvcEthZmthU3R1YiIsIl9yZWYiLCJfY2FsbGVlIiwic3R1YiIsIl9qYXZhUHJvY2VzcyRzdGRvdXQiLCJfamF2YVByb2Nlc3Mkc3RkZXJyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInN0ZG91dCIsInJlbW92ZUFsbExpc3RlbmVycyIsInN0ZGVyciIsInRlcm1pbmF0ZSIsInBpZCIsIl94Iiwic2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIiwiZXhwZWNhdGlvbnMiLCJleGVjdGF0aW9uc1VybCIsImF4aW9zIiwicG9zdCIsImhlYWRlcnMiLCJBY2NlcHQiLCJyZXNwb25zZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwidmVyaWZ5S2Fma2FTdHViIiwidmVyaWZpY2F0aW9uVXJsIiwic3VjY2VzcyIsInZlcmlmeUthZmthU3R1Yk1lc3NhZ2UiLCJ0b3BpYyIsInJlY2VpdmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGxLYWZrYSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnO1xuXG5leHBvcnQgY2xhc3MgS2Fma2FTdHViIHtcbiAgICBwb3J0OiBudW1iZXI7XG4gICAgYXBpUG9ydDogbnVtYmVyO1xuICAgIHByb2Nlc3M6IENoaWxkUHJvY2VzcztcbiAgICBjb25zdHJ1Y3Rvcihwb3J0OiBudW1iZXIsIGFwaVBvcnQ6IG51bWJlciwgcHJvY2VzczogQ2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgICAgIHRoaXMuYXBpUG9ydCA9IGFwaVBvcnQ7XG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3M7XG4gICAgfVxufVxuXG5jb25zdCBzdGFydEthZmthU3R1YiA9IChwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8S2Fma2FTdHViPiA9PiB7XG4gICAgdmFyIGNtZCA9IGBgO1xuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWA7XG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKTtcblxuICAgIGxvZ2dlci5pbmZvKCdLYWZrYSBTdHViOiBTdGFydGluZyBzZXJ2ZXInKTtcbiAgICBsb2dnZXIuZGVidWcoYEthZmthIFN0dWI6IEV4ZWN1dGluZyBcIiR7Y21kfVwiYCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsZXQgcG9ydDogbnVtYmVyLCBhcGlQb3J0OiBudW1iZXI7XG4gICAgICAgIGNvbnN0IGphdmFQcm9jZXNzID0gY2FsbEthZmthKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6IEV4aXRlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0thZmthIHN0YXJ0ZWQgb24gcG9ydCcpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uIHBvcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgcG9ydCBmcm9tIGthZmthIHN0dWIgb3V0cHV0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHBvcnQgPSBwYXJzZUludChzdHViSW5mb1sxXS50cmltKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignU3RhcnRpbmcgYXBpIHNlcnZlciBvbiBwb3J0JykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBhcGkgcG9ydCBmcm9tIGthZmthIHN0dWIgb3V0cHV0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFwaVBvcnQgPSBwYXJzZUludChzdHViSW5mb1sxXS50cmltKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignTGlzdGVuaW5nIG9uIHRvcGljJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0ICYmIGFwaVBvcnQpIHJlc29sdmUobmV3IEthZmthU3R1Yihwb3J0LCBhcGlQb3J0LCBqYXZhUHJvY2VzcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSByZWplY3QoJ05vIHBvcnQgb3IgYXBpIHBvcnQgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGJ1dCBrYWZrYSBzdHViIGxpc3RlbmluZyBvbiB0b3BpYyBhbHJlYWR5Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufTtcblxuY29uc3Qgc3RvcEthZmthU3R1YiA9IGFzeW5jIChzdHViOiBLYWZrYVN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYEthZmthIFN0dWI6IFN0b3BwaW5nIGF0IHBvcnQ9JHtzdHViLnBvcnR9LCBhcGlQb3J0PSR7c3R1Yi5hcGlQb3J0fWApO1xuICAgIGNvbnN0IGphdmFQcm9jZXNzID0gc3R1Yi5wcm9jZXNzO1xuICAgIGphdmFQcm9jZXNzLnN0ZG91dD8ucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICBqYXZhUHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Nsb3NlJyk7XG4gICAgYXdhaXQgdGVybWluYXRlKGphdmFQcm9jZXNzLnBpZCEpO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTdHViOiBTdG9wcGVkIGF0IHBvcnQ9JHtzdHViLnBvcnR9LCBhcGlQb3J0PSR7c3R1Yi5hcGlQb3J0fWApO1xufTtcblxuY29uc3Qgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zID0gKHN0dWI6IEthZmthU3R1YiwgZXhwZWNhdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGV4ZWN0YXRpb25zVXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtzdHViLmFwaVBvcnR9L19leHBlY3RhdGlvbnNgO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTZXQgRXhwZWN0YXRpb25zOiBVcmwgaXMgJHtleGVjdGF0aW9uc1VybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBheGlvc1xuICAgICAgICAgICAgLnBvc3QoYCR7ZXhlY3RhdGlvbnNVcmx9YCwgZXhwZWNhdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhKX1gKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldCBleHBlY3RhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgfSlcbiAgICB9KTtcbn07XG5cbmNvbnN0IHZlcmlmeUthZmthU3R1YiA9IChzdHViOiBLYWZrYVN0dWIpOiBQcm9taXNlPEJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB2ZXJpZmljYXRpb25VcmwgPSBgaHR0cDovL2xvY2FsaG9zdDoke3N0dWIuYXBpUG9ydH0vX2V4cGVjdGF0aW9ucy92ZXJpZmljYXRpb25zYDtcbiAgICBsb2dnZXIuaW5mbyhgS2Fma2EgVmVyaWZpY2F0aW9uOiBVcmwgaXMgJHt2ZXJpZmljYXRpb25Vcmx9YCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXhpb3MucG9zdChgJHt2ZXJpZmljYXRpb25Vcmx9YCwge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmaWNhdGlvbjogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhLnN1Y2Nlc3MpIGxvZ2dlci5pbmZvKGBLYWZrYSBWZXJpZmljYXRpb246IEVycm9yc1xcbiR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSl9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuZGF0YS5zdWNjZXNzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFZlcmlmaWNhdGlvbjogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSB2ZXJpZmljYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmNvbnN0IHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UgPSAoc3R1YjogS2Fma2FTdHViLCB0b3BpYzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxCb29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmVyaWZpY2F0aW9uVXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtzdHViLmFwaVBvcnR9L192ZXJpZmljYXRpb25zYDtcbiAgICBsb2dnZXIuaW5mbyhgS2Fma2EgVmVyaWZ5IE1lc3NhZ2U6IFVybCBpcyAke3ZlcmlmaWNhdGlvblVybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBheGlvcy5wb3N0KGAke3ZlcmlmaWNhdGlvblVybH1gLCB7IHRvcGljOiB0b3BpYywgdmFsdWU6IHZhbHVlIH0sIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGaW5pc2hlZCAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuZGF0YS5yZWNlaXZlZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZnkgTWVzc2FnZTogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IHsgc3RhcnRLYWZrYVN0dWIsIHN0b3BLYWZrYVN0dWIsIHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UsIHZlcmlmeUthZmthU3R1Yiwgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwQyxTQUFBRSx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsUUFBQUYsR0FBQSxzQ0FBQUUsT0FBQSx3QkFBQUMsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFKLEdBQUEsa0JBQUFBLEdBQUEsZ0JBQUFBLEdBQUEsV0FBQUEsR0FBQSx5QkFBQUcsTUFBQSxJQUFBSCxHQUFBLENBQUFLLFdBQUEsS0FBQUYsTUFBQSxJQUFBSCxHQUFBLEtBQUFHLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQU4sR0FBQSxLQUFBRSxPQUFBLENBQUFGLEdBQUE7QUFBQSxTQUFBTyxvQkFBQSxrQkFIMUMscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUosU0FBQSxFQUFBSyxNQUFBLEdBQUFGLEVBQUEsQ0FBQUcsY0FBQSxFQUFBQyxjQUFBLEdBQUFILE1BQUEsQ0FBQUcsY0FBQSxjQUFBYixHQUFBLEVBQUFjLEdBQUEsRUFBQUMsSUFBQSxJQUFBZixHQUFBLENBQUFjLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFkLE1BQUEsR0FBQUEsTUFBQSxPQUFBZSxjQUFBLEdBQUFELE9BQUEsQ0FBQWIsUUFBQSxrQkFBQWUsbUJBQUEsR0FBQUYsT0FBQSxDQUFBRyxhQUFBLHVCQUFBQyxpQkFBQSxHQUFBSixPQUFBLENBQUFLLFdBQUEsOEJBQUFDLE9BQUF2QixHQUFBLEVBQUFjLEdBQUEsRUFBQUUsS0FBQSxXQUFBTixNQUFBLENBQUFHLGNBQUEsQ0FBQWIsR0FBQSxFQUFBYyxHQUFBLElBQUFFLEtBQUEsRUFBQUEsS0FBQSxFQUFBUSxVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBMUIsR0FBQSxDQUFBYyxHQUFBLFdBQUFTLE1BQUEsbUJBQUFJLEdBQUEsSUFBQUosTUFBQSxZQUFBQSxPQUFBdkIsR0FBQSxFQUFBYyxHQUFBLEVBQUFFLEtBQUEsV0FBQWhCLEdBQUEsQ0FBQWMsR0FBQSxJQUFBRSxLQUFBLGdCQUFBWSxLQUFBQyxPQUFBLEVBQUFDLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxXQUFBLFFBQUFDLGNBQUEsR0FBQUgsT0FBQSxJQUFBQSxPQUFBLENBQUF4QixTQUFBLFlBQUE0QixTQUFBLEdBQUFKLE9BQUEsR0FBQUksU0FBQSxFQUFBQyxTQUFBLEdBQUF6QixNQUFBLENBQUEwQixNQUFBLENBQUFILGNBQUEsQ0FBQTNCLFNBQUEsR0FBQStCLE9BQUEsT0FBQUMsT0FBQSxDQUFBTixXQUFBLGdCQUFBbkIsY0FBQSxDQUFBc0IsU0FBQSxlQUFBbkIsS0FBQSxFQUFBdUIsZ0JBQUEsQ0FBQVYsT0FBQSxFQUFBRSxJQUFBLEVBQUFNLE9BQUEsTUFBQUYsU0FBQSxhQUFBSyxTQUFBQyxFQUFBLEVBQUF6QyxHQUFBLEVBQUEwQyxHQUFBLG1CQUFBQyxJQUFBLFlBQUFELEdBQUEsRUFBQUQsRUFBQSxDQUFBRyxJQUFBLENBQUE1QyxHQUFBLEVBQUEwQyxHQUFBLGNBQUFmLEdBQUEsYUFBQWdCLElBQUEsV0FBQUQsR0FBQSxFQUFBZixHQUFBLFFBQUFuQixPQUFBLENBQUFvQixJQUFBLEdBQUFBLElBQUEsTUFBQWlCLGdCQUFBLGdCQUFBWCxVQUFBLGNBQUFZLGtCQUFBLGNBQUFDLDJCQUFBLFNBQUFDLGlCQUFBLE9BQUF6QixNQUFBLENBQUF5QixpQkFBQSxFQUFBOUIsY0FBQSxxQ0FBQStCLFFBQUEsR0FBQXZDLE1BQUEsQ0FBQXdDLGNBQUEsRUFBQUMsdUJBQUEsR0FBQUYsUUFBQSxJQUFBQSxRQUFBLENBQUFBLFFBQUEsQ0FBQUcsTUFBQSxRQUFBRCx1QkFBQSxJQUFBQSx1QkFBQSxLQUFBMUMsRUFBQSxJQUFBRSxNQUFBLENBQUFpQyxJQUFBLENBQUFPLHVCQUFBLEVBQUFqQyxjQUFBLE1BQUE4QixpQkFBQSxHQUFBRyx1QkFBQSxPQUFBRSxFQUFBLEdBQUFOLDBCQUFBLENBQUF6QyxTQUFBLEdBQUE0QixTQUFBLENBQUE1QixTQUFBLEdBQUFJLE1BQUEsQ0FBQTBCLE1BQUEsQ0FBQVksaUJBQUEsWUFBQU0sc0JBQUFoRCxTQUFBLGdDQUFBaUQsT0FBQSxXQUFBQyxNQUFBLElBQUFqQyxNQUFBLENBQUFqQixTQUFBLEVBQUFrRCxNQUFBLFlBQUFkLEdBQUEsZ0JBQUFlLE9BQUEsQ0FBQUQsTUFBQSxFQUFBZCxHQUFBLHNCQUFBZ0IsY0FBQXZCLFNBQUEsRUFBQXdCLFdBQUEsYUFBQUMsT0FBQUosTUFBQSxFQUFBZCxHQUFBLEVBQUFtQixPQUFBLEVBQUFDLE1BQUEsUUFBQUMsTUFBQSxHQUFBdkIsUUFBQSxDQUFBTCxTQUFBLENBQUFxQixNQUFBLEdBQUFyQixTQUFBLEVBQUFPLEdBQUEsbUJBQUFxQixNQUFBLENBQUFwQixJQUFBLFFBQUFxQixNQUFBLEdBQUFELE1BQUEsQ0FBQXJCLEdBQUEsRUFBQTFCLEtBQUEsR0FBQWdELE1BQUEsQ0FBQWhELEtBQUEsU0FBQUEsS0FBQSxnQkFBQWQsT0FBQSxDQUFBYyxLQUFBLEtBQUFMLE1BQUEsQ0FBQWlDLElBQUEsQ0FBQTVCLEtBQUEsZUFBQTJDLFdBQUEsQ0FBQUUsT0FBQSxDQUFBN0MsS0FBQSxDQUFBaUQsT0FBQSxFQUFBQyxJQUFBLFdBQUFsRCxLQUFBLElBQUE0QyxNQUFBLFNBQUE1QyxLQUFBLEVBQUE2QyxPQUFBLEVBQUFDLE1BQUEsZ0JBQUFuQyxHQUFBLElBQUFpQyxNQUFBLFVBQUFqQyxHQUFBLEVBQUFrQyxPQUFBLEVBQUFDLE1BQUEsUUFBQUgsV0FBQSxDQUFBRSxPQUFBLENBQUE3QyxLQUFBLEVBQUFrRCxJQUFBLFdBQUFDLFNBQUEsSUFBQUgsTUFBQSxDQUFBaEQsS0FBQSxHQUFBbUQsU0FBQSxFQUFBTixPQUFBLENBQUFHLE1BQUEsZ0JBQUFJLEtBQUEsV0FBQVIsTUFBQSxVQUFBUSxLQUFBLEVBQUFQLE9BQUEsRUFBQUMsTUFBQSxTQUFBQSxNQUFBLENBQUFDLE1BQUEsQ0FBQXJCLEdBQUEsU0FBQTJCLGVBQUEsRUFBQXhELGNBQUEsb0JBQUFHLEtBQUEsV0FBQUEsTUFBQXdDLE1BQUEsRUFBQWQsR0FBQSxhQUFBNEIsMkJBQUEsZUFBQVgsV0FBQSxXQUFBRSxPQUFBLEVBQUFDLE1BQUEsSUFBQUYsTUFBQSxDQUFBSixNQUFBLEVBQUFkLEdBQUEsRUFBQW1CLE9BQUEsRUFBQUMsTUFBQSxnQkFBQU8sZUFBQSxHQUFBQSxlQUFBLEdBQUFBLGVBQUEsQ0FBQUgsSUFBQSxDQUFBSSwwQkFBQSxFQUFBQSwwQkFBQSxJQUFBQSwwQkFBQSxxQkFBQS9CLGlCQUFBVixPQUFBLEVBQUFFLElBQUEsRUFBQU0sT0FBQSxRQUFBa0MsS0FBQSxzQ0FBQWYsTUFBQSxFQUFBZCxHQUFBLHdCQUFBNkIsS0FBQSxZQUFBQyxLQUFBLHNEQUFBRCxLQUFBLG9CQUFBZixNQUFBLFFBQUFkLEdBQUEsU0FBQStCLFVBQUEsV0FBQXBDLE9BQUEsQ0FBQW1CLE1BQUEsR0FBQUEsTUFBQSxFQUFBbkIsT0FBQSxDQUFBSyxHQUFBLEdBQUFBLEdBQUEsVUFBQWdDLFFBQUEsR0FBQXJDLE9BQUEsQ0FBQXFDLFFBQUEsTUFBQUEsUUFBQSxRQUFBQyxjQUFBLEdBQUFDLG1CQUFBLENBQUFGLFFBQUEsRUFBQXJDLE9BQUEsT0FBQXNDLGNBQUEsUUFBQUEsY0FBQSxLQUFBOUIsZ0JBQUEsbUJBQUE4QixjQUFBLHFCQUFBdEMsT0FBQSxDQUFBbUIsTUFBQSxFQUFBbkIsT0FBQSxDQUFBd0MsSUFBQSxHQUFBeEMsT0FBQSxDQUFBeUMsS0FBQSxHQUFBekMsT0FBQSxDQUFBSyxHQUFBLHNCQUFBTCxPQUFBLENBQUFtQixNQUFBLDZCQUFBZSxLQUFBLFFBQUFBLEtBQUEsZ0JBQUFsQyxPQUFBLENBQUFLLEdBQUEsRUFBQUwsT0FBQSxDQUFBMEMsaUJBQUEsQ0FBQTFDLE9BQUEsQ0FBQUssR0FBQSx1QkFBQUwsT0FBQSxDQUFBbUIsTUFBQSxJQUFBbkIsT0FBQSxDQUFBMkMsTUFBQSxXQUFBM0MsT0FBQSxDQUFBSyxHQUFBLEdBQUE2QixLQUFBLG9CQUFBUixNQUFBLEdBQUF2QixRQUFBLENBQUFYLE9BQUEsRUFBQUUsSUFBQSxFQUFBTSxPQUFBLG9CQUFBMEIsTUFBQSxDQUFBcEIsSUFBQSxRQUFBNEIsS0FBQSxHQUFBbEMsT0FBQSxDQUFBNEMsSUFBQSxtQ0FBQWxCLE1BQUEsQ0FBQXJCLEdBQUEsS0FBQUcsZ0JBQUEscUJBQUE3QixLQUFBLEVBQUErQyxNQUFBLENBQUFyQixHQUFBLEVBQUF1QyxJQUFBLEVBQUE1QyxPQUFBLENBQUE0QyxJQUFBLGtCQUFBbEIsTUFBQSxDQUFBcEIsSUFBQSxLQUFBNEIsS0FBQSxnQkFBQWxDLE9BQUEsQ0FBQW1CLE1BQUEsWUFBQW5CLE9BQUEsQ0FBQUssR0FBQSxHQUFBcUIsTUFBQSxDQUFBckIsR0FBQSxtQkFBQWtDLG9CQUFBRixRQUFBLEVBQUFyQyxPQUFBLFFBQUE2QyxVQUFBLEdBQUE3QyxPQUFBLENBQUFtQixNQUFBLEVBQUFBLE1BQUEsR0FBQWtCLFFBQUEsQ0FBQXRFLFFBQUEsQ0FBQThFLFVBQUEsT0FBQUMsU0FBQSxLQUFBM0IsTUFBQSxTQUFBbkIsT0FBQSxDQUFBcUMsUUFBQSxxQkFBQVEsVUFBQSxJQUFBUixRQUFBLENBQUF0RSxRQUFBLGVBQUFpQyxPQUFBLENBQUFtQixNQUFBLGFBQUFuQixPQUFBLENBQUFLLEdBQUEsR0FBQXlDLFNBQUEsRUFBQVAsbUJBQUEsQ0FBQUYsUUFBQSxFQUFBckMsT0FBQSxlQUFBQSxPQUFBLENBQUFtQixNQUFBLGtCQUFBMEIsVUFBQSxLQUFBN0MsT0FBQSxDQUFBbUIsTUFBQSxZQUFBbkIsT0FBQSxDQUFBSyxHQUFBLE9BQUEwQyxTQUFBLHVDQUFBRixVQUFBLGlCQUFBckMsZ0JBQUEsTUFBQWtCLE1BQUEsR0FBQXZCLFFBQUEsQ0FBQWdCLE1BQUEsRUFBQWtCLFFBQUEsQ0FBQXRFLFFBQUEsRUFBQWlDLE9BQUEsQ0FBQUssR0FBQSxtQkFBQXFCLE1BQUEsQ0FBQXBCLElBQUEsU0FBQU4sT0FBQSxDQUFBbUIsTUFBQSxZQUFBbkIsT0FBQSxDQUFBSyxHQUFBLEdBQUFxQixNQUFBLENBQUFyQixHQUFBLEVBQUFMLE9BQUEsQ0FBQXFDLFFBQUEsU0FBQTdCLGdCQUFBLE1BQUF3QyxJQUFBLEdBQUF0QixNQUFBLENBQUFyQixHQUFBLFNBQUEyQyxJQUFBLEdBQUFBLElBQUEsQ0FBQUosSUFBQSxJQUFBNUMsT0FBQSxDQUFBcUMsUUFBQSxDQUFBWSxVQUFBLElBQUFELElBQUEsQ0FBQXJFLEtBQUEsRUFBQXFCLE9BQUEsQ0FBQWtELElBQUEsR0FBQWIsUUFBQSxDQUFBYyxPQUFBLGVBQUFuRCxPQUFBLENBQUFtQixNQUFBLEtBQUFuQixPQUFBLENBQUFtQixNQUFBLFdBQUFuQixPQUFBLENBQUFLLEdBQUEsR0FBQXlDLFNBQUEsR0FBQTlDLE9BQUEsQ0FBQXFDLFFBQUEsU0FBQTdCLGdCQUFBLElBQUF3QyxJQUFBLElBQUFoRCxPQUFBLENBQUFtQixNQUFBLFlBQUFuQixPQUFBLENBQUFLLEdBQUEsT0FBQTBDLFNBQUEsc0NBQUEvQyxPQUFBLENBQUFxQyxRQUFBLFNBQUE3QixnQkFBQSxjQUFBNEMsYUFBQUMsSUFBQSxRQUFBQyxLQUFBLEtBQUFDLE1BQUEsRUFBQUYsSUFBQSxZQUFBQSxJQUFBLEtBQUFDLEtBQUEsQ0FBQUUsUUFBQSxHQUFBSCxJQUFBLFdBQUFBLElBQUEsS0FBQUMsS0FBQSxDQUFBRyxVQUFBLEdBQUFKLElBQUEsS0FBQUMsS0FBQSxDQUFBSSxRQUFBLEdBQUFMLElBQUEsV0FBQU0sVUFBQSxDQUFBQyxJQUFBLENBQUFOLEtBQUEsY0FBQU8sY0FBQVAsS0FBQSxRQUFBNUIsTUFBQSxHQUFBNEIsS0FBQSxDQUFBUSxVQUFBLFFBQUFwQyxNQUFBLENBQUFwQixJQUFBLG9CQUFBb0IsTUFBQSxDQUFBckIsR0FBQSxFQUFBaUQsS0FBQSxDQUFBUSxVQUFBLEdBQUFwQyxNQUFBLGFBQUF6QixRQUFBTixXQUFBLFNBQUFnRSxVQUFBLE1BQUFKLE1BQUEsYUFBQTVELFdBQUEsQ0FBQXVCLE9BQUEsQ0FBQWtDLFlBQUEsY0FBQVcsS0FBQSxpQkFBQWhELE9BQUFpRCxRQUFBLFFBQUFBLFFBQUEsUUFBQUMsY0FBQSxHQUFBRCxRQUFBLENBQUFuRixjQUFBLE9BQUFvRixjQUFBLFNBQUFBLGNBQUEsQ0FBQTFELElBQUEsQ0FBQXlELFFBQUEsNEJBQUFBLFFBQUEsQ0FBQWQsSUFBQSxTQUFBYyxRQUFBLE9BQUFFLEtBQUEsQ0FBQUYsUUFBQSxDQUFBRyxNQUFBLFNBQUFDLENBQUEsT0FBQWxCLElBQUEsWUFBQUEsS0FBQSxhQUFBa0IsQ0FBQSxHQUFBSixRQUFBLENBQUFHLE1BQUEsT0FBQTdGLE1BQUEsQ0FBQWlDLElBQUEsQ0FBQXlELFFBQUEsRUFBQUksQ0FBQSxVQUFBbEIsSUFBQSxDQUFBdkUsS0FBQSxHQUFBcUYsUUFBQSxDQUFBSSxDQUFBLEdBQUFsQixJQUFBLENBQUFOLElBQUEsT0FBQU0sSUFBQSxTQUFBQSxJQUFBLENBQUF2RSxLQUFBLEdBQUFtRSxTQUFBLEVBQUFJLElBQUEsQ0FBQU4sSUFBQSxPQUFBTSxJQUFBLFlBQUFBLElBQUEsQ0FBQUEsSUFBQSxHQUFBQSxJQUFBLGVBQUFBLElBQUEsRUFBQWQsVUFBQSxlQUFBQSxXQUFBLGFBQUF6RCxLQUFBLEVBQUFtRSxTQUFBLEVBQUFGLElBQUEsaUJBQUFuQyxpQkFBQSxDQUFBeEMsU0FBQSxHQUFBeUMsMEJBQUEsRUFBQWxDLGNBQUEsQ0FBQXdDLEVBQUEsbUJBQUFyQyxLQUFBLEVBQUErQiwwQkFBQSxFQUFBdEIsWUFBQSxTQUFBWixjQUFBLENBQUFrQywwQkFBQSxtQkFBQS9CLEtBQUEsRUFBQThCLGlCQUFBLEVBQUFyQixZQUFBLFNBQUFxQixpQkFBQSxDQUFBNEQsV0FBQSxHQUFBbkYsTUFBQSxDQUFBd0IsMEJBQUEsRUFBQTFCLGlCQUFBLHdCQUFBYixPQUFBLENBQUFtRyxtQkFBQSxhQUFBQyxNQUFBLFFBQUFDLElBQUEsd0JBQUFELE1BQUEsSUFBQUEsTUFBQSxDQUFBdkcsV0FBQSxXQUFBd0csSUFBQSxLQUFBQSxJQUFBLEtBQUEvRCxpQkFBQSw2QkFBQStELElBQUEsQ0FBQUgsV0FBQSxJQUFBRyxJQUFBLENBQUFDLElBQUEsT0FBQXRHLE9BQUEsQ0FBQXVHLElBQUEsYUFBQUgsTUFBQSxXQUFBbEcsTUFBQSxDQUFBc0csY0FBQSxHQUFBdEcsTUFBQSxDQUFBc0csY0FBQSxDQUFBSixNQUFBLEVBQUE3RCwwQkFBQSxLQUFBNkQsTUFBQSxDQUFBSyxTQUFBLEdBQUFsRSwwQkFBQSxFQUFBeEIsTUFBQSxDQUFBcUYsTUFBQSxFQUFBdkYsaUJBQUEseUJBQUF1RixNQUFBLENBQUF0RyxTQUFBLEdBQUFJLE1BQUEsQ0FBQTBCLE1BQUEsQ0FBQWlCLEVBQUEsR0FBQXVELE1BQUEsS0FBQXBHLE9BQUEsQ0FBQTBHLEtBQUEsYUFBQXhFLEdBQUEsYUFBQXVCLE9BQUEsRUFBQXZCLEdBQUEsT0FBQVkscUJBQUEsQ0FBQUksYUFBQSxDQUFBcEQsU0FBQSxHQUFBaUIsTUFBQSxDQUFBbUMsYUFBQSxDQUFBcEQsU0FBQSxFQUFBYSxtQkFBQSxpQ0FBQVgsT0FBQSxDQUFBa0QsYUFBQSxHQUFBQSxhQUFBLEVBQUFsRCxPQUFBLENBQUEyRyxLQUFBLGFBQUF0RixPQUFBLEVBQUFDLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxXQUFBLEVBQUEyQixXQUFBLGVBQUFBLFdBQUEsS0FBQUEsV0FBQSxHQUFBeUQsT0FBQSxPQUFBQyxJQUFBLE9BQUEzRCxhQUFBLENBQUE5QixJQUFBLENBQUFDLE9BQUEsRUFBQUMsT0FBQSxFQUFBQyxJQUFBLEVBQUFDLFdBQUEsR0FBQTJCLFdBQUEsVUFBQW5ELE9BQUEsQ0FBQW1HLG1CQUFBLENBQUE3RSxPQUFBLElBQUF1RixJQUFBLEdBQUFBLElBQUEsQ0FBQTlCLElBQUEsR0FBQXJCLElBQUEsV0FBQUYsTUFBQSxXQUFBQSxNQUFBLENBQUFpQixJQUFBLEdBQUFqQixNQUFBLENBQUFoRCxLQUFBLEdBQUFxRyxJQUFBLENBQUE5QixJQUFBLFdBQUFqQyxxQkFBQSxDQUFBRCxFQUFBLEdBQUE5QixNQUFBLENBQUE4QixFQUFBLEVBQUFoQyxpQkFBQSxnQkFBQUUsTUFBQSxDQUFBOEIsRUFBQSxFQUFBbkMsY0FBQSxpQ0FBQUssTUFBQSxDQUFBOEIsRUFBQSw2REFBQTdDLE9BQUEsQ0FBQThHLElBQUEsYUFBQUMsR0FBQSxRQUFBQyxNQUFBLEdBQUE5RyxNQUFBLENBQUE2RyxHQUFBLEdBQUFELElBQUEsZ0JBQUF4RyxHQUFBLElBQUEwRyxNQUFBLEVBQUFGLElBQUEsQ0FBQXJCLElBQUEsQ0FBQW5GLEdBQUEsVUFBQXdHLElBQUEsQ0FBQUcsT0FBQSxhQUFBbEMsS0FBQSxXQUFBK0IsSUFBQSxDQUFBZCxNQUFBLFNBQUExRixHQUFBLEdBQUF3RyxJQUFBLENBQUFJLEdBQUEsUUFBQTVHLEdBQUEsSUFBQTBHLE1BQUEsU0FBQWpDLElBQUEsQ0FBQXZFLEtBQUEsR0FBQUYsR0FBQSxFQUFBeUUsSUFBQSxDQUFBTixJQUFBLE9BQUFNLElBQUEsV0FBQUEsSUFBQSxDQUFBTixJQUFBLE9BQUFNLElBQUEsUUFBQS9FLE9BQUEsQ0FBQTRDLE1BQUEsR0FBQUEsTUFBQSxFQUFBZCxPQUFBLENBQUFoQyxTQUFBLEtBQUFELFdBQUEsRUFBQWlDLE9BQUEsRUFBQThELEtBQUEsV0FBQUEsTUFBQXVCLGFBQUEsYUFBQUMsSUFBQSxXQUFBckMsSUFBQSxXQUFBVixJQUFBLFFBQUFDLEtBQUEsR0FBQUssU0FBQSxPQUFBRixJQUFBLFlBQUFQLFFBQUEsY0FBQWxCLE1BQUEsZ0JBQUFkLEdBQUEsR0FBQXlDLFNBQUEsT0FBQWEsVUFBQSxDQUFBekMsT0FBQSxDQUFBMkMsYUFBQSxJQUFBeUIsYUFBQSxXQUFBYixJQUFBLGtCQUFBQSxJQUFBLENBQUFlLE1BQUEsT0FBQWxILE1BQUEsQ0FBQWlDLElBQUEsT0FBQWtFLElBQUEsTUFBQVAsS0FBQSxFQUFBTyxJQUFBLENBQUFnQixLQUFBLGNBQUFoQixJQUFBLElBQUEzQixTQUFBLE1BQUE0QyxJQUFBLFdBQUFBLEtBQUEsU0FBQTlDLElBQUEsV0FBQStDLFVBQUEsUUFBQWhDLFVBQUEsSUFBQUcsVUFBQSxrQkFBQTZCLFVBQUEsQ0FBQXJGLElBQUEsUUFBQXFGLFVBQUEsQ0FBQXRGLEdBQUEsY0FBQXVGLElBQUEsS0FBQWxELGlCQUFBLFdBQUFBLGtCQUFBbUQsU0FBQSxhQUFBakQsSUFBQSxRQUFBaUQsU0FBQSxNQUFBN0YsT0FBQSxrQkFBQThGLE9BQUFDLEdBQUEsRUFBQUMsTUFBQSxXQUFBdEUsTUFBQSxDQUFBcEIsSUFBQSxZQUFBb0IsTUFBQSxDQUFBckIsR0FBQSxHQUFBd0YsU0FBQSxFQUFBN0YsT0FBQSxDQUFBa0QsSUFBQSxHQUFBNkMsR0FBQSxFQUFBQyxNQUFBLEtBQUFoRyxPQUFBLENBQUFtQixNQUFBLFdBQUFuQixPQUFBLENBQUFLLEdBQUEsR0FBQXlDLFNBQUEsS0FBQWtELE1BQUEsYUFBQTVCLENBQUEsUUFBQVQsVUFBQSxDQUFBUSxNQUFBLE1BQUFDLENBQUEsU0FBQUEsQ0FBQSxRQUFBZCxLQUFBLFFBQUFLLFVBQUEsQ0FBQVMsQ0FBQSxHQUFBMUMsTUFBQSxHQUFBNEIsS0FBQSxDQUFBUSxVQUFBLGlCQUFBUixLQUFBLENBQUFDLE1BQUEsU0FBQXVDLE1BQUEsYUFBQXhDLEtBQUEsQ0FBQUMsTUFBQSxTQUFBZ0MsSUFBQSxRQUFBVSxRQUFBLEdBQUEzSCxNQUFBLENBQUFpQyxJQUFBLENBQUErQyxLQUFBLGVBQUE0QyxVQUFBLEdBQUE1SCxNQUFBLENBQUFpQyxJQUFBLENBQUErQyxLQUFBLHFCQUFBMkMsUUFBQSxJQUFBQyxVQUFBLGFBQUFYLElBQUEsR0FBQWpDLEtBQUEsQ0FBQUUsUUFBQSxTQUFBc0MsTUFBQSxDQUFBeEMsS0FBQSxDQUFBRSxRQUFBLGdCQUFBK0IsSUFBQSxHQUFBakMsS0FBQSxDQUFBRyxVQUFBLFNBQUFxQyxNQUFBLENBQUF4QyxLQUFBLENBQUFHLFVBQUEsY0FBQXdDLFFBQUEsYUFBQVYsSUFBQSxHQUFBakMsS0FBQSxDQUFBRSxRQUFBLFNBQUFzQyxNQUFBLENBQUF4QyxLQUFBLENBQUFFLFFBQUEscUJBQUEwQyxVQUFBLFlBQUEvRCxLQUFBLHFEQUFBb0QsSUFBQSxHQUFBakMsS0FBQSxDQUFBRyxVQUFBLFNBQUFxQyxNQUFBLENBQUF4QyxLQUFBLENBQUFHLFVBQUEsWUFBQWQsTUFBQSxXQUFBQSxPQUFBckMsSUFBQSxFQUFBRCxHQUFBLGFBQUErRCxDQUFBLFFBQUFULFVBQUEsQ0FBQVEsTUFBQSxNQUFBQyxDQUFBLFNBQUFBLENBQUEsUUFBQWQsS0FBQSxRQUFBSyxVQUFBLENBQUFTLENBQUEsT0FBQWQsS0FBQSxDQUFBQyxNQUFBLFNBQUFnQyxJQUFBLElBQUFqSCxNQUFBLENBQUFpQyxJQUFBLENBQUErQyxLQUFBLHdCQUFBaUMsSUFBQSxHQUFBakMsS0FBQSxDQUFBRyxVQUFBLFFBQUEwQyxZQUFBLEdBQUE3QyxLQUFBLGFBQUE2QyxZQUFBLGlCQUFBN0YsSUFBQSxtQkFBQUEsSUFBQSxLQUFBNkYsWUFBQSxDQUFBNUMsTUFBQSxJQUFBbEQsR0FBQSxJQUFBQSxHQUFBLElBQUE4RixZQUFBLENBQUExQyxVQUFBLEtBQUEwQyxZQUFBLGNBQUF6RSxNQUFBLEdBQUF5RSxZQUFBLEdBQUFBLFlBQUEsQ0FBQXJDLFVBQUEsY0FBQXBDLE1BQUEsQ0FBQXBCLElBQUEsR0FBQUEsSUFBQSxFQUFBb0IsTUFBQSxDQUFBckIsR0FBQSxHQUFBQSxHQUFBLEVBQUE4RixZQUFBLFNBQUFoRixNQUFBLGdCQUFBK0IsSUFBQSxHQUFBaUQsWUFBQSxDQUFBMUMsVUFBQSxFQUFBakQsZ0JBQUEsU0FBQTRGLFFBQUEsQ0FBQTFFLE1BQUEsTUFBQTBFLFFBQUEsV0FBQUEsU0FBQTFFLE1BQUEsRUFBQWdDLFFBQUEsb0JBQUFoQyxNQUFBLENBQUFwQixJQUFBLFFBQUFvQixNQUFBLENBQUFyQixHQUFBLHFCQUFBcUIsTUFBQSxDQUFBcEIsSUFBQSxtQkFBQW9CLE1BQUEsQ0FBQXBCLElBQUEsUUFBQTRDLElBQUEsR0FBQXhCLE1BQUEsQ0FBQXJCLEdBQUEsZ0JBQUFxQixNQUFBLENBQUFwQixJQUFBLFNBQUFzRixJQUFBLFFBQUF2RixHQUFBLEdBQUFxQixNQUFBLENBQUFyQixHQUFBLE9BQUFjLE1BQUEsa0JBQUErQixJQUFBLHlCQUFBeEIsTUFBQSxDQUFBcEIsSUFBQSxJQUFBb0QsUUFBQSxVQUFBUixJQUFBLEdBQUFRLFFBQUEsR0FBQWxELGdCQUFBLEtBQUE2RixNQUFBLFdBQUFBLE9BQUE1QyxVQUFBLGFBQUFXLENBQUEsUUFBQVQsVUFBQSxDQUFBUSxNQUFBLE1BQUFDLENBQUEsU0FBQUEsQ0FBQSxRQUFBZCxLQUFBLFFBQUFLLFVBQUEsQ0FBQVMsQ0FBQSxPQUFBZCxLQUFBLENBQUFHLFVBQUEsS0FBQUEsVUFBQSxjQUFBMkMsUUFBQSxDQUFBOUMsS0FBQSxDQUFBUSxVQUFBLEVBQUFSLEtBQUEsQ0FBQUksUUFBQSxHQUFBRyxhQUFBLENBQUFQLEtBQUEsR0FBQTlDLGdCQUFBLHlCQUFBOEYsT0FBQS9DLE1BQUEsYUFBQWEsQ0FBQSxRQUFBVCxVQUFBLENBQUFRLE1BQUEsTUFBQUMsQ0FBQSxTQUFBQSxDQUFBLFFBQUFkLEtBQUEsUUFBQUssVUFBQSxDQUFBUyxDQUFBLE9BQUFkLEtBQUEsQ0FBQUMsTUFBQSxLQUFBQSxNQUFBLFFBQUE3QixNQUFBLEdBQUE0QixLQUFBLENBQUFRLFVBQUEsa0JBQUFwQyxNQUFBLENBQUFwQixJQUFBLFFBQUFpRyxNQUFBLEdBQUE3RSxNQUFBLENBQUFyQixHQUFBLEVBQUF3RCxhQUFBLENBQUFQLEtBQUEsWUFBQWlELE1BQUEsZ0JBQUFwRSxLQUFBLDhCQUFBcUUsYUFBQSxXQUFBQSxjQUFBeEMsUUFBQSxFQUFBZixVQUFBLEVBQUFFLE9BQUEsZ0JBQUFkLFFBQUEsS0FBQXRFLFFBQUEsRUFBQWdELE1BQUEsQ0FBQWlELFFBQUEsR0FBQWYsVUFBQSxFQUFBQSxVQUFBLEVBQUFFLE9BQUEsRUFBQUEsT0FBQSxvQkFBQWhDLE1BQUEsVUFBQWQsR0FBQSxHQUFBeUMsU0FBQSxHQUFBdEMsZ0JBQUEsT0FBQXJDLE9BQUE7QUFBQSxTQUFBc0ksbUJBQUFDLEdBQUEsRUFBQWxGLE9BQUEsRUFBQUMsTUFBQSxFQUFBa0YsS0FBQSxFQUFBQyxNQUFBLEVBQUFuSSxHQUFBLEVBQUE0QixHQUFBLGNBQUEyQyxJQUFBLEdBQUEwRCxHQUFBLENBQUFqSSxHQUFBLEVBQUE0QixHQUFBLE9BQUExQixLQUFBLEdBQUFxRSxJQUFBLENBQUFyRSxLQUFBLFdBQUFvRCxLQUFBLElBQUFOLE1BQUEsQ0FBQU0sS0FBQSxpQkFBQWlCLElBQUEsQ0FBQUosSUFBQSxJQUFBcEIsT0FBQSxDQUFBN0MsS0FBQSxZQUFBb0csT0FBQSxDQUFBdkQsT0FBQSxDQUFBN0MsS0FBQSxFQUFBa0QsSUFBQSxDQUFBOEUsS0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUMsa0JBQUF6RyxFQUFBLDZCQUFBVixJQUFBLFNBQUFvSCxJQUFBLEdBQUFDLFNBQUEsYUFBQWhDLE9BQUEsV0FBQXZELE9BQUEsRUFBQUMsTUFBQSxRQUFBaUYsR0FBQSxHQUFBdEcsRUFBQSxDQUFBNEcsS0FBQSxDQUFBdEgsSUFBQSxFQUFBb0gsSUFBQSxZQUFBSCxNQUFBaEksS0FBQSxJQUFBOEgsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBbEYsT0FBQSxFQUFBQyxNQUFBLEVBQUFrRixLQUFBLEVBQUFDLE1BQUEsVUFBQWpJLEtBQUEsY0FBQWlJLE9BQUF0SCxHQUFBLElBQUFtSCxrQkFBQSxDQUFBQyxHQUFBLEVBQUFsRixPQUFBLEVBQUFDLE1BQUEsRUFBQWtGLEtBQUEsRUFBQUMsTUFBQSxXQUFBdEgsR0FBQSxLQUFBcUgsS0FBQSxDQUFBN0QsU0FBQTtBQUFBLFNBQUFtRSxrQkFBQUMsTUFBQSxFQUFBQyxLQUFBLGFBQUEvQyxDQUFBLE1BQUFBLENBQUEsR0FBQStDLEtBQUEsQ0FBQWhELE1BQUEsRUFBQUMsQ0FBQSxVQUFBZ0QsVUFBQSxHQUFBRCxLQUFBLENBQUEvQyxDQUFBLEdBQUFnRCxVQUFBLENBQUFqSSxVQUFBLEdBQUFpSSxVQUFBLENBQUFqSSxVQUFBLFdBQUFpSSxVQUFBLENBQUFoSSxZQUFBLHdCQUFBZ0ksVUFBQSxFQUFBQSxVQUFBLENBQUEvSCxRQUFBLFNBQUFoQixNQUFBLENBQUFHLGNBQUEsQ0FBQTBJLE1BQUEsRUFBQUcsY0FBQSxDQUFBRCxVQUFBLENBQUEzSSxHQUFBLEdBQUEySSxVQUFBO0FBQUEsU0FBQUUsYUFBQUMsV0FBQSxFQUFBQyxVQUFBLEVBQUFDLFdBQUEsUUFBQUQsVUFBQSxFQUFBUCxpQkFBQSxDQUFBTSxXQUFBLENBQUF0SixTQUFBLEVBQUF1SixVQUFBLE9BQUFDLFdBQUEsRUFBQVIsaUJBQUEsQ0FBQU0sV0FBQSxFQUFBRSxXQUFBLEdBQUFwSixNQUFBLENBQUFHLGNBQUEsQ0FBQStJLFdBQUEsaUJBQUFsSSxRQUFBLG1CQUFBa0ksV0FBQTtBQUFBLFNBQUFHLGdCQUFBQyxRQUFBLEVBQUFKLFdBQUEsVUFBQUksUUFBQSxZQUFBSixXQUFBLGVBQUF4RSxTQUFBO0FBQUEsU0FBQTZFLGdCQUFBakssR0FBQSxFQUFBYyxHQUFBLEVBQUFFLEtBQUEsSUFBQUYsR0FBQSxHQUFBNEksY0FBQSxDQUFBNUksR0FBQSxPQUFBQSxHQUFBLElBQUFkLEdBQUEsSUFBQVUsTUFBQSxDQUFBRyxjQUFBLENBQUFiLEdBQUEsRUFBQWMsR0FBQSxJQUFBRSxLQUFBLEVBQUFBLEtBQUEsRUFBQVEsVUFBQSxRQUFBQyxZQUFBLFFBQUFDLFFBQUEsb0JBQUExQixHQUFBLENBQUFjLEdBQUEsSUFBQUUsS0FBQSxXQUFBaEIsR0FBQTtBQUFBLFNBQUEwSixlQUFBaEgsR0FBQSxRQUFBNUIsR0FBQSxHQUFBb0osWUFBQSxDQUFBeEgsR0FBQSxvQkFBQXhDLE9BQUEsQ0FBQVksR0FBQSxpQkFBQUEsR0FBQSxHQUFBcUosTUFBQSxDQUFBckosR0FBQTtBQUFBLFNBQUFvSixhQUFBRSxLQUFBLEVBQUFDLElBQUEsUUFBQW5LLE9BQUEsQ0FBQWtLLEtBQUEsa0JBQUFBLEtBQUEsa0JBQUFBLEtBQUEsTUFBQUUsSUFBQSxHQUFBRixLQUFBLENBQUFqSyxNQUFBLENBQUFvSyxXQUFBLE9BQUFELElBQUEsS0FBQW5GLFNBQUEsUUFBQXFGLEdBQUEsR0FBQUYsSUFBQSxDQUFBMUgsSUFBQSxDQUFBd0gsS0FBQSxFQUFBQyxJQUFBLG9CQUFBbkssT0FBQSxDQUFBc0ssR0FBQSx1QkFBQUEsR0FBQSxZQUFBcEYsU0FBQSw0REFBQWlGLElBQUEsZ0JBQUFGLE1BQUEsR0FBQU0sTUFBQSxFQUFBTCxLQUFBO0FBQUEsSUFLYU0sU0FBUyxnQkFBQWYsWUFBQSxDQUlsQixTQUFBZSxVQUFZQyxJQUFZLEVBQUVDLE9BQWUsRUFBRUMsT0FBcUIsRUFBRTtFQUFBZCxlQUFBLE9BQUFXLFNBQUE7RUFBQVQsZUFBQTtFQUFBQSxlQUFBO0VBQUFBLGVBQUE7RUFDOUQsSUFBSSxDQUFDVSxJQUFJLEdBQUdBLElBQUk7RUFDaEIsSUFBSSxDQUFDQyxPQUFPLEdBQUdBLE9BQU87RUFDdEIsSUFBSSxDQUFDQyxPQUFPLEdBQUdBLE9BQU87QUFDMUIsQ0FBQztBQUFBckssT0FBQSxDQUFBa0ssU0FBQSxHQUFBQSxTQUFBO0FBR0wsSUFBTUksY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJSCxJQUFhLEVBQUV4QixJQUEwQixFQUF5QjtFQUN0RixJQUFJNEIsR0FBRyxLQUFLO0VBQ1osSUFBSUosSUFBSSxFQUFFSSxHQUFHLGVBQUFDLE1BQUEsQ0FBZUwsSUFBSSxDQUFFO0VBQ2xDLElBQUl4QixJQUFJLEVBQUU0QixHQUFHLElBQUksR0FBRyxHQUFHNUIsSUFBSSxDQUFDOEIsSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUVyQ0Msa0JBQU0sQ0FBQzdGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztFQUMxQzZGLGtCQUFNLENBQUNDLEtBQUssNEJBQUFILE1BQUEsQ0FBMkJELEdBQUcsT0FBRyxDQUFDO0VBRTlDLE9BQU8sSUFBSTNELE9BQU8sQ0FBQyxVQUFDdkQsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDcEMsSUFBSTZHLElBQVksRUFBRUMsT0FBZTtJQUNqQyxJQUFNUSxXQUFXLEdBQUcsSUFBQUMsaUJBQVMsRUFDekJOLEdBQUcsRUFDSCxVQUFDcEosR0FBUSxFQUFLO01BQ1YsSUFBSUEsR0FBRyxFQUFFO1FBQ0x1SixrQkFBTSxDQUFDOUcsS0FBSyxrQ0FBQTRHLE1BQUEsQ0FBa0NySixHQUFHLENBQUUsQ0FBQztNQUN4RDtJQUNKLENBQUMsRUFDRCxVQUFDMkosT0FBTyxFQUFFbEgsS0FBSyxFQUFLO01BQ2hCLElBQUksQ0FBQ0EsS0FBSyxFQUFFO1FBQ1IsSUFBSWtILE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7VUFDL0NMLGtCQUFNLENBQUM3RixJQUFJLGdCQUFBMkYsTUFBQSxDQUFnQk0sT0FBTyxDQUFFLENBQUM7VUFDckMsSUFBTUUsUUFBUSxHQUFHRixPQUFPLENBQUNHLEtBQUssQ0FBQyxTQUFTLENBQUM7VUFDekMsSUFBSUQsUUFBUSxDQUFDaEYsTUFBTSxHQUFHLENBQUMsRUFBRTFDLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLEtBQzNFNkcsSUFBSSxHQUFHZSxRQUFRLENBQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLE1BQU0sSUFBSUwsT0FBTyxDQUFDQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtVQUM1REwsa0JBQU0sQ0FBQzdGLElBQUksZ0JBQUEyRixNQUFBLENBQWdCTSxPQUFPLENBQUUsQ0FBQztVQUNyQyxJQUFNRSxTQUFRLEdBQUdGLE9BQU8sQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQztVQUNuQyxJQUFJRCxTQUFRLENBQUNoRixNQUFNLEdBQUcsQ0FBQyxFQUFFMUMsTUFBTSxDQUFDLGtEQUFrRCxDQUFDLENBQUMsS0FDL0U4RyxPQUFPLEdBQUdjLFFBQVEsQ0FBQ0YsU0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsTUFBTSxJQUFJTCxPQUFPLENBQUNDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1VBQ25ETCxrQkFBTSxDQUFDN0YsSUFBSSxnQkFBQTJGLE1BQUEsQ0FBZ0JNLE9BQU8sQ0FBRSxDQUFDO1VBQ3JDLElBQUlYLElBQUksSUFBSUMsT0FBTyxFQUFFL0csT0FBTyxDQUFDLElBQUk2RyxTQUFTLENBQUNDLElBQUksRUFBRUMsT0FBTyxFQUFFUSxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQ25FdEgsTUFBTSxDQUFDLHFGQUFxRixDQUFDO1FBQ3RHLENBQUMsTUFBTSxJQUFJd0gsT0FBTyxDQUFDQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtVQUN2REwsa0JBQU0sQ0FBQzlHLEtBQUssZ0JBQUE0RyxNQUFBLENBQWdCTSxPQUFPLENBQUUsQ0FBQztVQUN0Q3hILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztRQUNwQyxDQUFDLE1BQU07VUFDSG9ILGtCQUFNLENBQUNDLEtBQUssZ0JBQUFILE1BQUEsQ0FBZ0JNLE9BQU8sQ0FBRSxDQUFDO1FBQzFDO01BQ0osQ0FBQyxNQUFNO1FBQ0hKLGtCQUFNLENBQUM5RyxLQUFLLGdCQUFBNEcsTUFBQSxDQUFnQk0sT0FBTyxDQUFFLENBQUM7TUFDMUM7SUFDSixDQUNKLENBQUM7RUFDTCxDQUFDLENBQUM7QUFDTixDQUFDO0FBQUM5SyxPQUFBLENBQUFzSyxjQUFBLEdBQUFBLGNBQUE7QUFFRixJQUFNYyxhQUFhO0VBQUEsSUFBQUMsSUFBQSxHQUFBM0MsaUJBQUEsZUFBQTNJLG1CQUFBLEdBQUF3RyxJQUFBLENBQUcsU0FBQStFLFFBQU9DLElBQWU7SUFBQSxJQUFBQyxtQkFBQSxFQUFBQyxtQkFBQTtJQUFBLElBQUFiLFdBQUE7SUFBQSxPQUFBN0ssbUJBQUEsR0FBQXFCLElBQUEsVUFBQXNLLFNBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBdkUsSUFBQSxHQUFBdUUsUUFBQSxDQUFBNUcsSUFBQTtRQUFBO1VBQ3hDMkYsa0JBQU0sQ0FBQ0MsS0FBSyxpQ0FBQUgsTUFBQSxDQUFpQ2UsSUFBSSxDQUFDcEIsSUFBSSxnQkFBQUssTUFBQSxDQUFhZSxJQUFJLENBQUNuQixPQUFPLENBQUUsQ0FBQztVQUM1RVEsV0FBVyxHQUFHVyxJQUFJLENBQUNsQixPQUFPO1VBQ2hDLENBQUFtQixtQkFBQSxHQUFBWixXQUFXLENBQUNnQixNQUFNLGNBQUFKLG1CQUFBLHVCQUFsQkEsbUJBQUEsQ0FBb0JLLGtCQUFrQixDQUFDLENBQUM7VUFDeEMsQ0FBQUosbUJBQUEsR0FBQWIsV0FBVyxDQUFDa0IsTUFBTSxjQUFBTCxtQkFBQSx1QkFBbEJBLG1CQUFBLENBQW9CSSxrQkFBa0IsQ0FBQyxDQUFDO1VBQ3hDakIsV0FBVyxDQUFDaUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1VBQUNGLFFBQUEsQ0FBQTVHLElBQUE7VUFBQSxPQUNsQyxJQUFBZ0gsbUJBQVMsRUFBQ25CLFdBQVcsQ0FBQ29CLEdBQUksQ0FBQztRQUFBO1VBQ2pDdEIsa0JBQU0sQ0FBQzdGLElBQUksZ0NBQUEyRixNQUFBLENBQWdDZSxJQUFJLENBQUNwQixJQUFJLGdCQUFBSyxNQUFBLENBQWFlLElBQUksQ0FBQ25CLE9BQU8sQ0FBRSxDQUFDO1FBQUM7UUFBQTtVQUFBLE9BQUF1QixRQUFBLENBQUFwRSxJQUFBO01BQUE7SUFBQSxHQUFBK0QsT0FBQTtFQUFBLENBQ3BGO0VBQUEsZ0JBUktGLGFBQWFBLENBQUFhLEVBQUE7SUFBQSxPQUFBWixJQUFBLENBQUF4QyxLQUFBLE9BQUFELFNBQUE7RUFBQTtBQUFBLEdBUWxCO0FBQUM1SSxPQUFBLENBQUFvTCxhQUFBLEdBQUFBLGFBQUE7QUFFRixJQUFNYyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJWCxJQUFlLEVBQUVZLFdBQWdCLEVBQW9CO0VBQ25GLElBQU1DLGNBQWMsdUJBQUE1QixNQUFBLENBQXVCZSxJQUFJLENBQUNuQixPQUFPLG1CQUFnQjtFQUN2RU0sa0JBQU0sQ0FBQzdGLElBQUksbUNBQUEyRixNQUFBLENBQW1DNEIsY0FBYyxDQUFFLENBQUM7RUFDL0QsT0FBTyxJQUFJeEYsT0FBTyxDQUFDLFVBQUN2RCxPQUFPLEVBQUVDLE1BQU0sRUFBSztJQUNwQytJLGlCQUFLLENBQ0FDLElBQUksSUFBQTlCLE1BQUEsQ0FBSTRCLGNBQWMsR0FBSUQsV0FBVyxFQUFFO01BQ3BDSSxPQUFPLEVBQUU7UUFDTEMsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixjQUFjLEVBQUU7TUFDcEI7SUFDSixDQUFDLENBQUMsQ0FDRDlJLElBQUksQ0FBQyxVQUFBK0ksUUFBUSxFQUFJO01BQ2QvQixrQkFBTSxDQUFDQyxLQUFLLHFDQUFBSCxNQUFBLENBQXFDa0MsSUFBSSxDQUFDQyxTQUFTLENBQUNGLFFBQVEsQ0FBQ0csSUFBSSxDQUFDLENBQUUsQ0FBQztNQUNqRnZKLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLFNBQ0ksQ0FBQyxVQUFBbEMsR0FBRyxFQUFJO01BQ1Z1SixrQkFBTSxDQUFDOUcsS0FBSyw4Q0FBQTRHLE1BQUEsQ0FBOENySixHQUFHLENBQUUsQ0FBQztNQUNoRW1DLE1BQU0sc0NBQUFrSCxNQUFBLENBQXNDckosR0FBRyxDQUFFLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0VBQ1YsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUFDbkIsT0FBQSxDQUFBa00sd0JBQUEsR0FBQUEsd0JBQUE7QUFFRixJQUFNVyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUl0QixJQUFlLEVBQXVCO0VBQzNELElBQU11QixlQUFlLHVCQUFBdEMsTUFBQSxDQUF1QmUsSUFBSSxDQUFDbkIsT0FBTyxpQ0FBOEI7RUFDdEZNLGtCQUFNLENBQUM3RixJQUFJLCtCQUFBMkYsTUFBQSxDQUErQnNDLGVBQWUsQ0FBRSxDQUFDO0VBQzVELE9BQU8sSUFBSWxHLE9BQU8sQ0FBQyxVQUFDdkQsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDcEMrSSxpQkFBSyxDQUFDQyxJQUFJLElBQUE5QixNQUFBLENBQUlzQyxlQUFlLEdBQUk7TUFDN0JQLE9BQU8sRUFBRTtRQUNMQyxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLGNBQWMsRUFBRTtNQUNwQjtJQUNKLENBQUMsQ0FBQyxDQUNHOUksSUFBSSxDQUFDLFVBQUErSSxRQUFRLEVBQUk7TUFDVi9CLGtCQUFNLENBQUNDLEtBQUssaUNBQUFILE1BQUEsQ0FBaUNrQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0YsUUFBUSxDQUFDRyxJQUFJLENBQUMsQ0FBRSxDQUFDO01BQzdFLElBQUksQ0FBQ0gsUUFBUSxDQUFDRyxJQUFJLENBQUNHLE9BQU8sRUFBRXJDLGtCQUFNLENBQUM3RixJQUFJLGdDQUFBMkYsTUFBQSxDQUFnQ2tDLElBQUksQ0FBQ0MsU0FBUyxDQUFDRixRQUFRLENBQUNHLElBQUksQ0FBQyxDQUFFLENBQUM7TUFDdkd2SixPQUFPLENBQUNvSixRQUFRLENBQUNHLElBQUksQ0FBQ0csT0FBTyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxTQUNJLENBQUMsVUFBQTVMLEdBQUcsRUFBSTtNQUNWdUosa0JBQU0sQ0FBQzlHLEtBQUssMENBQUE0RyxNQUFBLENBQTBDckosR0FBRyxDQUFFLENBQUM7TUFDNURtQyxNQUFNLHlDQUFBa0gsTUFBQSxDQUF5Q3JKLEdBQUcsQ0FBRSxDQUFDO0lBQ3pELENBQUMsQ0FBQztFQUNWLENBQUMsQ0FBQztBQUNOLENBQUM7QUFBQ25CLE9BQUEsQ0FBQTZNLGVBQUEsR0FBQUEsZUFBQTtBQUVGLElBQU1HLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUl6QixJQUFlLEVBQUUwQixLQUFhLEVBQUV6TSxLQUFhLEVBQXVCO0VBQ2hHLElBQU1zTSxlQUFlLHVCQUFBdEMsTUFBQSxDQUF1QmUsSUFBSSxDQUFDbkIsT0FBTyxvQkFBaUI7RUFDekVNLGtCQUFNLENBQUM3RixJQUFJLGlDQUFBMkYsTUFBQSxDQUFpQ3NDLGVBQWUsQ0FBRSxDQUFDO0VBQzlELE9BQU8sSUFBSWxHLE9BQU8sQ0FBQyxVQUFDdkQsT0FBTyxFQUFFQyxNQUFNLEVBQUs7SUFDcEMrSSxpQkFBSyxDQUFDQyxJQUFJLElBQUE5QixNQUFBLENBQUlzQyxlQUFlLEdBQUk7TUFBRUcsS0FBSyxFQUFFQSxLQUFLO01BQUV6TSxLQUFLLEVBQUVBO0lBQU0sQ0FBQyxFQUFFO01BQzdEK0wsT0FBTyxFQUFFO1FBQ0xDLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsY0FBYyxFQUFFO01BQ3BCO0lBQ0osQ0FBQyxDQUFDLENBQ0c5SSxJQUFJLENBQUMsVUFBQStJLFFBQVEsRUFBSTtNQUNkL0Isa0JBQU0sQ0FBQ0MsS0FBSyxtQ0FBQUgsTUFBQSxDQUFtQ2tDLElBQUksQ0FBQ0MsU0FBUyxDQUFDRixRQUFRLENBQUNHLElBQUksQ0FBQyxDQUFFLENBQUM7TUFDL0V2SixPQUFPLENBQUNvSixRQUFRLENBQUNHLElBQUksQ0FBQ00sUUFBUSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxTQUNJLENBQUMsVUFBQS9MLEdBQUcsRUFBSTtNQUNWdUosa0JBQU0sQ0FBQzlHLEtBQUssNENBQUE0RyxNQUFBLENBQTRDckosR0FBRyxDQUFFLENBQUM7TUFDOURtQyxNQUFNLGlEQUFBa0gsTUFBQSxDQUFpRHJKLEdBQUcsQ0FBRSxDQUFDO0lBQ2pFLENBQUMsQ0FBQztFQUNWLENBQUMsQ0FBQztBQUNOLENBQUM7QUFBQ25CLE9BQUEsQ0FBQWdOLHNCQUFBLEdBQUFBLHNCQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specmatic",
|
|
3
|
-
"version": "0.73.
|
|
3
|
+
"version": "0.73.2",
|
|
4
4
|
"description": "Node wrapper for Specmatic",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"logLevel": "debug"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
+
"axios": "^1.4.0",
|
|
37
38
|
"exec-sh": "^0.4.0",
|
|
38
39
|
"express-list-endpoints": "^6.0.0",
|
|
39
40
|
"fast-xml-parser": "^4.2.6",
|
|
40
|
-
"node-fetch": "^2.6.11",
|
|
41
41
|
"terminate": "^2.6.1",
|
|
42
42
|
"winston": "^3.10.0"
|
|
43
43
|
},
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"@types/jest": "^29.5.3",
|
|
53
53
|
"@types/jest-when": "^3.5.2",
|
|
54
54
|
"@types/node": "^20.4.5",
|
|
55
|
-
"@types/node-fetch": "^2.6.4",
|
|
56
55
|
"@types/supertest": "^2.0.12",
|
|
57
56
|
"express": "^4.18.2",
|
|
58
57
|
"jest": "^29.6.2",
|
|
@@ -1,66 +1,54 @@
|
|
|
1
|
-
import
|
|
1
|
+
import axios from 'axios';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import * as specmatic from '../..';
|
|
4
4
|
import mockStub from '../../../test-resources/sample-mock-stub.json';
|
|
5
|
+
import { mockReset } from 'jest-mock-extended';
|
|
5
6
|
|
|
6
|
-
jest.mock('
|
|
7
|
-
const fetchMock = fetch as unknown as jest.Mock;
|
|
7
|
+
jest.mock('axios');
|
|
8
8
|
|
|
9
9
|
const STUB_PATH = 'test-resources/sample-mock-stub.json';
|
|
10
10
|
|
|
11
11
|
beforeEach(() => {
|
|
12
|
-
|
|
12
|
+
mockReset(axios);
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
test('setExpectations with default baseUrl', async () => {
|
|
16
|
-
|
|
16
|
+
axios.post.mockResolvedValue({ status: 200 });
|
|
17
17
|
await expect(specmatic.setExpectations(path.resolve(STUB_PATH))).toResolve();
|
|
18
18
|
|
|
19
|
-
expect(
|
|
20
|
-
expect(
|
|
21
|
-
expect(
|
|
22
|
-
method: 'POST',
|
|
23
|
-
body: JSON.stringify(mockStub),
|
|
24
|
-
});
|
|
19
|
+
expect(axios.post).toHaveBeenCalledTimes(1);
|
|
20
|
+
expect(axios.post.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
|
|
21
|
+
expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
|
|
25
22
|
});
|
|
26
23
|
|
|
27
24
|
test('setExpectations with a different baseUrl for the stub server', async () => {
|
|
28
|
-
|
|
25
|
+
axios.post.mockResolvedValue({ status: 200 });
|
|
29
26
|
const stubServerBaseUrl = 'http://localhost:8000';
|
|
30
27
|
|
|
31
28
|
await expect(specmatic.setExpectations(path.resolve(STUB_PATH), stubServerBaseUrl)).toResolve();
|
|
32
29
|
|
|
33
|
-
expect(
|
|
34
|
-
expect(
|
|
35
|
-
expect(
|
|
36
|
-
method: 'POST',
|
|
37
|
-
body: JSON.stringify(mockStub),
|
|
38
|
-
});
|
|
30
|
+
expect(axios.post).toHaveBeenCalledTimes(1);
|
|
31
|
+
expect(axios.post.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
|
|
32
|
+
expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
|
|
39
33
|
});
|
|
40
34
|
|
|
41
35
|
test('setExpectations notifies when it fails', async () => {
|
|
42
|
-
|
|
36
|
+
axios.post.mockReturnValue(Promise.reject());
|
|
43
37
|
|
|
44
38
|
await expect(specmatic.setExpectations(path.resolve(STUB_PATH))).toReject();
|
|
45
39
|
|
|
46
|
-
expect(
|
|
47
|
-
expect(
|
|
48
|
-
expect(
|
|
49
|
-
method: 'POST',
|
|
50
|
-
body: JSON.stringify(mockStub),
|
|
51
|
-
});
|
|
40
|
+
expect(axios.post).toHaveBeenCalledTimes(1);
|
|
41
|
+
expect(axios.post.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
|
|
42
|
+
expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
|
|
52
43
|
});
|
|
53
44
|
|
|
54
45
|
test('setExpectations notifies as failure when status code is not 200', async () => {
|
|
55
|
-
|
|
46
|
+
axios.post.mockReturnValue(Promise.reject('Cannot set expectations'));
|
|
56
47
|
const stubServerBaseUrl = 'http://localhost:8000';
|
|
57
48
|
|
|
58
49
|
await expect(specmatic.setExpectations(path.resolve(STUB_PATH), stubServerBaseUrl)).toReject();
|
|
59
50
|
|
|
60
|
-
expect(
|
|
61
|
-
expect(
|
|
62
|
-
expect(
|
|
63
|
-
method: 'POST',
|
|
64
|
-
body: JSON.stringify(mockStub),
|
|
65
|
-
});
|
|
51
|
+
expect(axios.post).toHaveBeenCalledTimes(1);
|
|
52
|
+
expect(axios.post.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
|
|
53
|
+
expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
|
|
66
54
|
});
|
|
@@ -11,7 +11,6 @@ import * as specmatic from '../..';
|
|
|
11
11
|
import { specmaticCoreJarName } from '../../config';
|
|
12
12
|
|
|
13
13
|
jest.mock('exec-sh');
|
|
14
|
-
jest.mock('node-fetch');
|
|
15
14
|
|
|
16
15
|
const SPECMATIC_JAR_PATH = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
17
16
|
const CONTRACT_FILE_PATH = './contracts';
|
package/src/core/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import axios from 'axios'
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { ChildProcess } from 'child_process'
|
|
4
4
|
import { XMLParser } from 'fast-xml-parser'
|
|
@@ -155,20 +155,12 @@ const setExpectations = (stubPath: string, stubServerBaseUrl?: string): Promise<
|
|
|
155
155
|
logger.info(`Set Expectations: Stub url is ${stubServerBaseUrl}`)
|
|
156
156
|
|
|
157
157
|
return new Promise((resolve, reject) => {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
logger.error(`Set Expectations: Failed with status code ${response.status}`)
|
|
165
|
-
const body = await response.text()
|
|
166
|
-
logger.error(body)
|
|
167
|
-
reject(`Setting expecation failed`)
|
|
168
|
-
} else {
|
|
169
|
-
logger.info('Set Expectations: Finished')
|
|
170
|
-
resolve()
|
|
171
|
-
}
|
|
158
|
+
axios
|
|
159
|
+
.post(`${stubServerBaseUrl}/_specmatic/expectations`, stubResponse)
|
|
160
|
+
.then(response => {
|
|
161
|
+
logger.debug(`Set Expectations: ${response.data}`)
|
|
162
|
+
logger.info('Set Expectations: Finished')
|
|
163
|
+
resolve()
|
|
172
164
|
})
|
|
173
165
|
.catch(err => {
|
|
174
166
|
logger.error(`Set Expectations: Failed with error ${err}`)
|
package/src/kafka/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { callKafka } from '../common/runner';
|
|
2
2
|
import logger from '../common/logger';
|
|
3
3
|
import { ChildProcess } from 'child_process';
|
|
4
|
-
import
|
|
4
|
+
import axios from 'axios';
|
|
5
5
|
import terminate from 'terminate/promise';
|
|
6
6
|
|
|
7
7
|
export class KafkaStub {
|
|
@@ -76,30 +76,21 @@ const setKafkaStubExpectations = (stub: KafkaStub, expecations: any): Promise<vo
|
|
|
76
76
|
const exectationsUrl = `http://localhost:${stub.apiPort}/_expectations`;
|
|
77
77
|
logger.info(`Kafka Set Expectations: Url is ${exectationsUrl}`);
|
|
78
78
|
return new Promise((resolve, reject) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
body: JSON.stringify(expecations),
|
|
86
|
-
})
|
|
87
|
-
.then(response => {
|
|
88
|
-
if (response.status != 200) {
|
|
89
|
-
logger.error(`Kafka Set Expectations: Failed with status code ${response.status}`);
|
|
90
|
-
reject('Set expectation failed');
|
|
91
|
-
} else {
|
|
92
|
-
return response.text();
|
|
93
|
-
}
|
|
79
|
+
axios
|
|
80
|
+
.post(`${exectationsUrl}`, expecations, {
|
|
81
|
+
headers: {
|
|
82
|
+
Accept: 'application/json',
|
|
83
|
+
'Content-Type': 'application/json',
|
|
84
|
+
},
|
|
94
85
|
})
|
|
95
|
-
.then(
|
|
96
|
-
logger.debug(`Kafka Set Expectations: Finished ${JSON.stringify(data)}`)
|
|
97
|
-
resolve()
|
|
86
|
+
.then(response => {
|
|
87
|
+
logger.debug(`Kafka Set Expectations: Finished ${JSON.stringify(response.data)}`)
|
|
88
|
+
resolve()
|
|
98
89
|
})
|
|
99
90
|
.catch(err => {
|
|
100
|
-
logger.error(`Kafka Set Expectations: Failed with error ${err}`)
|
|
101
|
-
reject(`Set expectation failed with error ${err}`)
|
|
102
|
-
})
|
|
91
|
+
logger.error(`Kafka Set Expectations: Failed with error ${err}`)
|
|
92
|
+
reject(`Set expectation failed with error ${err}`)
|
|
93
|
+
})
|
|
103
94
|
});
|
|
104
95
|
};
|
|
105
96
|
|
|
@@ -107,25 +98,16 @@ const verifyKafkaStub = (stub: KafkaStub): Promise<Boolean> => {
|
|
|
107
98
|
const verificationUrl = `http://localhost:${stub.apiPort}/_expectations/verifications`;
|
|
108
99
|
logger.info(`Kafka Verification: Url is ${verificationUrl}`);
|
|
109
100
|
return new Promise((resolve, reject) => {
|
|
110
|
-
|
|
111
|
-
method: 'POST',
|
|
101
|
+
axios.post(`${verificationUrl}`, {
|
|
112
102
|
headers: {
|
|
113
103
|
Accept: 'application/json',
|
|
114
104
|
'Content-Type': 'application/json',
|
|
115
105
|
},
|
|
116
106
|
})
|
|
117
107
|
.then(response => {
|
|
118
|
-
|
|
119
|
-
logger.
|
|
120
|
-
|
|
121
|
-
} else {
|
|
122
|
-
return response.json();
|
|
123
|
-
}
|
|
124
|
-
})
|
|
125
|
-
.then(data => {
|
|
126
|
-
logger.debug(`Kafka Verification: Finished ${JSON.stringify(data)}`);
|
|
127
|
-
if (!data.success) logger.info(`Kafka Verification: Errors\n${JSON.stringify(data)}`);
|
|
128
|
-
resolve(data.success);
|
|
108
|
+
logger.debug(`Kafka Verification: Finished ${JSON.stringify(response.data)}`);
|
|
109
|
+
if (!response.data.success) logger.info(`Kafka Verification: Errors\n${JSON.stringify(response.data)}`);
|
|
110
|
+
resolve(response.data.success);
|
|
129
111
|
})
|
|
130
112
|
.catch(err => {
|
|
131
113
|
logger.error(`Kafka Verification: Failed with error ${err}`);
|
|
@@ -138,25 +120,15 @@ const verifyKafkaStubMessage = (stub: KafkaStub, topic: string, value: string):
|
|
|
138
120
|
const verificationUrl = `http://localhost:${stub.apiPort}/_verifications`;
|
|
139
121
|
logger.info(`Kafka Verify Message: Url is ${verificationUrl}`);
|
|
140
122
|
return new Promise((resolve, reject) => {
|
|
141
|
-
|
|
142
|
-
method: 'POST',
|
|
123
|
+
axios.post(`${verificationUrl}`, { topic: topic, value: value }, {
|
|
143
124
|
headers: {
|
|
144
125
|
Accept: 'application/json',
|
|
145
126
|
'Content-Type': 'application/json',
|
|
146
127
|
},
|
|
147
|
-
body: JSON.stringify({ topic: topic, value: value }),
|
|
148
128
|
})
|
|
149
129
|
.then(response => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
reject('Kafka message verification failed');
|
|
153
|
-
} else {
|
|
154
|
-
return response.json();
|
|
155
|
-
}
|
|
156
|
-
})
|
|
157
|
-
.then(data => {
|
|
158
|
-
logger.debug(`Kafka Verify Message: Finished ${JSON.stringify(data)}`);
|
|
159
|
-
resolve(data.received);
|
|
130
|
+
logger.debug(`Kafka Verify Message: Finished ${JSON.stringify(response.data)}`);
|
|
131
|
+
resolve(response.data.received);
|
|
160
132
|
})
|
|
161
133
|
.catch(err => {
|
|
162
134
|
logger.error(`Kafka Verify Message: Failed with error ${err}`);
|