@aws-cdk/integ-runner 2.200.2 → 2.201.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.IntegSnapshotRunner = void 0;
4
- const path = require("path");
37
+ const path = __importStar(require("path"));
5
38
  const stream_1 = require("stream");
6
39
  const string_decoder_1 = require("string_decoder");
7
40
  const cloud_assembly_api_1 = require("@aws-cdk/cloud-assembly-api");
@@ -317,4 +350,4 @@ class StringWritable extends stream_1.Writable {
317
350
  callback();
318
351
  }
319
352
  }
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtdGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbmFwc2hvdC10ZXN0LXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFFN0IsbUNBQWtDO0FBQ2xDLG1EQUErQztBQUMvQyxvRUFBNkQ7QUFFN0Qsc0VBQTJGO0FBRTNGLHlEQUFvRDtBQUNwRCw2REFBa0U7QUFFbEUsOENBQXFEO0FBcUJyRDs7O0dBR0c7QUFDSCxNQUFhLG1CQUFtQjtJQUNiLE1BQU0sQ0FBaUI7SUFDeEMsWUFBWSxPQUE4QztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLGlDQUFjLENBQUMsTUFBTSxDQUFDO1lBQ2xDLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRSxtQ0FBYztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxrQ0FBa0M7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBdUMsRUFBRTtRQUlqRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsK0JBQStCO1lBQy9CLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVwSCw4Q0FB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TyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBblVELGtEQW1VQztBQUVELE1BQU0sY0FBZSxTQUFRLGlCQUFRO0lBQzVCLElBQUksQ0FBUztJQUNaLFFBQVEsQ0FBZ0I7SUFDaEMsWUFBWSxPQUF3QjtRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksOEJBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVSxFQUFFLFFBQWdCLEVBQUUsUUFBd0M7UUFDM0UsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBd0M7UUFDN0MsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgV3JpdGFibGVPcHRpb25zIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFN0cmluZ0RlY29kZXIgfSBmcm9tICdzdHJpbmdfZGVjb2Rlcic7XG5pbXBvcnQgeyBVTktOT1dOX1JFR0lPTiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHsgZnVsbERpZmYsIGZvcm1hdERpZmZlcmVuY2VzLCBSZXNvdXJjZUltcGFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBDZGtJbnRlZ0hlbHBlck9wdGlvbnMgfSBmcm9tICcuL2Nkay1pbnRlZy1oZWxwZXInO1xuaW1wb3J0IHsgQ2RrSW50ZWdIZWxwZXIgfSBmcm9tICcuL2Nkay1pbnRlZy1oZWxwZXInO1xuaW1wb3J0IHsgQXNzZW1ibHlNYW5pZmVzdFJlYWRlciB9IGZyb20gJy4vcHJpdmF0ZS9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IERpYWdub3N0aWMsIERlc3RydWN0aXZlQ2hhbmdlLCBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi93b3JrZXJzL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFnbm9zdGljUmVhc29uIH0gZnJvbSAnLi4vd29ya2Vycy9jb21tb24nO1xuXG5pbnRlcmZhY2UgU25hcHNob3RBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc3RhY2tzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgW3N0YWNrTmFtZTogc3RyaW5nXToge1xuICAgIC8qKlxuICAgICAqIEFsbCB0ZW1wbGF0ZXMgZm9yIHRoaXMgc3RhY2ssIGluY2x1ZGluZyBuZXN0ZWQgc3RhY2tzXG4gICAgICovXG4gICAgdGVtcGxhdGVzOiB7XG4gICAgICBbdGVtcGxhdGVJZDogc3RyaW5nXTogYW55O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFzc2V0IElkcyB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgYXNzZW1ibHlcbiAgICAgKi9cbiAgICBhc3NldHM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG4vKipcbiAqIFJ1bm5lciBmb3Igc25hcHNob3QgdGVzdHMuIFRoaXMgaGFuZGxlcyBvcmNoZXN0cmF0aW5nXG4gKiB0aGUgdmFsaWRhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gdGVzdCBzbmFwc2hvdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVnU25hcHNob3RSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcjogQ2RrSW50ZWdIZWxwZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9taXQ8Q2RrSW50ZWdIZWxwZXJPcHRpb25zLCAncmVnaW9uJz4pIHtcbiAgICB0aGlzLmhlbHBlciA9IENka0ludGVnSGVscGVyLmNyZWF0ZSh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVnaW9uOiBVTktOT1dOX1JFR0lPTixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNTbmFwc2hvdCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuaGFzU25hcHNob3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3R1YWxUZXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuYWN0dWFsVGVzdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb250Q2FyZUFib3V0TGVnYWN5TG9va3Vwc0ZvclRlc3RzKCkge1xuICAgIHRoaXMuaGVscGVyLmNvbmZpZ3VyZUxlZ2FjeUVuYWJsZUxvb2t1cHMoJ2RvbnQtY2FyZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHRoZSBDREsgYXBwIGFuZCBjb21wYXJlIHRoZSB0ZW1wbGF0ZXMgdG8gdGhlIGV4aXN0aW5nIHNuYXBzaG90LlxuICAgKlxuICAgKiBAcmV0dXJucyBhbnkgZGlhZ25vc3RpY3MgYW5kIGFueSBkZXN0cnVjdGl2ZSBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdGVzdFNuYXBzaG90KG9wdGlvbnM6IFNuYXBzaG90VmVyaWZpY2F0aW9uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7XG4gICAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXTtcbiAgICBkZXN0cnVjdGl2ZUNoYW5nZXM6IERlc3RydWN0aXZlQ2hhbmdlW107XG4gIH0+IHtcbiAgICBsZXQgZG9DbGVhbiA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlYWQgdGhlIFwiZXhwZWN0ZWRcIiBzbmFwc2hvdFxuICAgICAgY29uc3QgZXhwZWN0ZWRUZXN0U3VpdGUgPSBhd2FpdCB0aGlzLmhlbHBlci5leHBlY3RlZFRlc3RTdWl0ZSgpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5ID0gdGhpcy5nZXRTbmFwc2hvdEFzc2VtYmx5KHRoaXMuaGVscGVyLmdvbGRlblNuYXBzaG90RGlyLCBleHBlY3RlZFRlc3RTdWl0ZT8uc3RhY2tzKTtcblxuICAgICAgLy8gQ29uZmlndXJlIHNldHRpbmdzIGZyb20gdGhlIGdvbGRlbiBzbmFwc2hvdFxuICAgICAgdGhpcy5oZWxwZXIuY29uZmlndXJlTGVnYWN5RW5hYmxlTG9va3VwcyhleHBlY3RlZFRlc3RTdWl0ZT8uZW5hYmxlTG9va3VwcyA/PyBmYWxzZSk7XG5cbiAgICAgIC8vIHJlYWQgdGhlIFwiYWN0dWFsXCIgc25hcHNob3RcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90ID0gYXdhaXQgdGhpcy5oZWxwZXIuYWN0dWFsU25hcHNob3QoKTtcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90QXNzZW1ibHkgPSB0aGlzLmdldFNuYXBzaG90QXNzZW1ibHkodGhpcy5oZWxwZXIuY2RrT3V0RGlyLCBhY3R1YWxTbmFwc2hvdC50ZXN0RGVmaW5pdGlvbi5zdGFja3MpO1xuXG4gICAgICAvLyBkaWZmIHRoZSBleGlzdGluZyBzbmFwc2hvdCAoZXhwZWN0ZWQpIHdpdGggdGhlIGludGVncmF0aW9uIHRlc3QgKGFjdHVhbClcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gYXdhaXQgdGhpcy5kaWZmQXNzZW1ibHkoZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5LCBhY3R1YWxTbmFwc2hvdEFzc2VtYmx5KTtcblxuICAgICAgaWYgKGRpYWdub3N0aWNzLmRpYWdub3N0aWNzLmxlbmd0aCkge1xuICAgICAgICAvLyBBdHRhY2ggYWRkaXRpb25hbCBtZXNzYWdlcyB0byB0aGUgZmlyc3QgZGlhZ25vc3RpY1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucmV0YWluKSB7XG4gICAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICBgKEZhaWx1cmUgcmV0YWluZWQpIEV4cGVjdGVkOiAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy5oZWxwZXIuZ29sZGVuU25hcHNob3REaXIpfWAsXG4gICAgICAgICAgICBgICAgICAgICAgICAgICAgICAgIEFjdHVhbDogICAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy5oZWxwZXIuY2RrT3V0RGlyKX1gLFxuICAgICAgICAgICksXG4gICAgICAgICAgZG9DbGVhbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgJ1JlcHJvOicsXG4gICAgICAgICAgICBgICAke3RoaXMuaGVscGVyLmFjdHVhbFN5bnRoUmVwcm9Db21tYW5kKCkuam9pbignICcpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpYWdub3N0aWNzLmRpYWdub3N0aWNzWzBdID0ge1xuICAgICAgICAgIC4uLmRpYWdub3N0aWNzLmRpYWdub3N0aWNzWzBdLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRpYWdub3N0aWNzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChkb0NsZWFuKSB7XG4gICAgICAgIHRoaXMuaGVscGVyLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gY2xvdWQgYXNzZW1ibHkgcmV0dXJuIGEgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzXG4gICAqIHRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHNuYXBzaG90IGFuZCBhbnkgcmVxdWlyZWQgbWV0YSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gY2xvdWRBc3NlbWJseURpciAtIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIGxvb2sgZm9yIHNuYXBzaG90c1xuICAgKiBAcGFyYW0gcGlja1N0YWNrcyAtIFBpY2sgb25seSB0aGVzZSBzdGFja3MgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICogQHJldHVybnMgQSBTbmFwc2hvdEFzc2VtYmx5LCB0aGUgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzIGluIHRoaXMgc25hcHNob3QgYW5kIHJlcXVpcmVkIG1ldGEgZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTbmFwc2hvdEFzc2VtYmx5KGNsb3VkQXNzZW1ibHlEaXI6IHN0cmluZywgcGlja1N0YWNrczogc3RyaW5nW10gPSBbXSk6IFNuYXBzaG90QXNzZW1ibHkge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gdGhpcy5yZWFkQXNzZW1ibHkoY2xvdWRBc3NlbWJseURpcik7XG4gICAgY29uc3Qgc3RhY2tzID0gYXNzZW1ibHkuc3RhY2tzO1xuICAgIGNvbnN0IHNuYXBzaG90czogU25hcHNob3RBc3NlbWJseSA9IHt9O1xuICAgIGZvciAoY29uc3QgW3N0YWNrTmFtZSwgc3RhY2tUZW1wbGF0ZV0gb2YgT2JqZWN0LmVudHJpZXMoc3RhY2tzKSkge1xuICAgICAgaWYgKHBpY2tTdGFja3MuaW5jbHVkZXMoc3RhY2tOYW1lKSkge1xuICAgICAgICBjb25zdCBtYW5pZmVzdCA9IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIuZnJvbVBhdGgoY2xvdWRBc3NlbWJseURpcik7XG4gICAgICAgIGNvbnN0IGFzc2V0cyA9IG1hbmlmZXN0LmdldEFzc2V0SWRzRm9yU3RhY2soc3RhY2tOYW1lKTtcblxuICAgICAgICBzbmFwc2hvdHNbc3RhY2tOYW1lXSA9IHtcbiAgICAgICAgICB0ZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgIFtzdGFja05hbWVdOiBzdGFja1RlbXBsYXRlLFxuICAgICAgICAgICAgLi4uYXNzZW1ibHkuZ2V0TmVzdGVkU3RhY2tzRm9yU3RhY2soc3RhY2tOYW1lKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFzc2V0cyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc25hcHNob3RzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBhIGdpdmVuIHN0YWNrIHJldHVybiBhbGwgcmVzb3VyY2UgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBkZXN0cm95ZWRcbiAgICogYXMgcGFydCBvZiBhIHN0YWNrIHVwZGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2tJZCAtIHRoZSBzdGFjayBpZFxuICAgKiBAcmV0dXJucyBhIGxpc3Qgb2YgcmVzb3VyY2UgdHlwZXMgb3IgdW5kZWZpbmVkIGlmIG5vbmUgYXJlIGZvdW5kXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZSBvZiBPYmplY3QudmFsdWVzKChhd2FpdCB0aGlzLmhlbHBlci5hY3R1YWxUZXN0cygpKSA/PyB7fSkpIHtcbiAgICAgIGlmICh0ZXN0Q2FzZS5zdGFja3MuaW5jbHVkZXMoc3RhY2tJZCkpIHtcbiAgICAgICAgcmV0dXJuIHRlc3RDYXNlLmFsbG93RGVzdHJveTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGFueSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBleGlzdGluZyBhbmQgZXhwZWN0ZWQgc25hcHNob3RzXG4gICAqXG4gICAqIEBwYXJhbSBleGlzdGluZyAtIHRoZSBleGlzdGluZyAoZXhwZWN0ZWQpIHNuYXBzaG90XG4gICAqIEBwYXJhbSBhY3R1YWwgLSB0aGUgbmV3IChhY3R1YWwpIHNuYXBzaG90XG4gICAqIEByZXR1cm5zIGFueSBkaWFnbm9zdGljcyBhbmQgYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGlmZkFzc2VtYmx5KFxuICAgIGV4cGVjdGVkOiBTbmFwc2hvdEFzc2VtYmx5LFxuICAgIGFjdHVhbDogU25hcHNob3RBc3NlbWJseSxcbiAgKTogUHJvbWlzZTx7IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSB9PiB7XG4gICAgY29uc3QgZmFpbHVyZXM6IERpYWdub3N0aWNbXSA9IFtdO1xuICAgIGNvbnN0IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBDRk4gdGVtcGxhdGUgaW4gdGhlIGN1cnJlbnQgc25hcHNob3RcbiAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGV4cGVjdGVkKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgICAgaWYgKCFhY3R1YWxbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMuaGVscGVyLnRlc3ROYW1lLFxuICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0ZBSUxFRCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGAke3RlbXBsYXRlSWR9IGV4aXN0cyBpbiBzbmFwc2hvdCwgYnV0IG5vdCBpbiBhY3R1YWxgLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGFjdHVhbCkpIHtcbiAgICAgIGZvciAoY29uc3QgdGVtcGxhdGVJZCBvZiBPYmplY3Qua2V5cyhzdGFjay50ZW1wbGF0ZXMpKSB7XG4gICAgICAvLyBjaGVjayBpZiB0aGVyZSBpcyBhIENGTiB0ZW1wbGF0ZSBpbiB0aGUgXCJhY3R1YWxcIiBzbmFwc2hvdFxuICAgICAgLy8gdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgY3VycmVudCBzbmFwc2hvdFxuICAgICAgICBpZiAoIWV4cGVjdGVkW3N0YWNrSWRdPy50ZW1wbGF0ZXNbdGVtcGxhdGVJZF0pIHtcbiAgICAgICAgICBmYWlsdXJlcy5wdXNoKHtcbiAgICAgICAgICAgIHRlc3ROYW1lOiB0aGlzLmhlbHBlci50ZXN0TmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9GQUlMRUQsXG4gICAgICAgICAgICBtZXNzYWdlOiBgJHt0ZW1wbGF0ZUlkfSBkb2VzIG5vdCBleGlzdCBpbiBzbmFwc2hvdCwgYnV0IGRvZXMgaW4gYWN0dWFsYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICBkaWZmQXNzZXRzOiAoYXdhaXQgdGhpcy5oZWxwZXIuYWN0dWFsU25hcHNob3QoKSkudGVzdERlZmluaXRpb24uZ2V0T3B0aW9uc0ZvclN0YWNrKHN0YWNrSWQpPy5kaWZmQXNzZXRzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbGV0IGFjdHVhbFRlbXBsYXRlID0gYWN0dWFsW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcbiAgICAgICAgICBsZXQgZXhwZWN0ZWRUZW1wbGF0ZSA9IGV4cGVjdGVkW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcblxuICAgICAgICAgIC8vIGlmIHdlIGFyZSBub3QgdmVyaWZ5aW5nIGFzc2V0IGhhc2hlcyB0aGVuIHJlbW92ZSB0aGUgc3BlY2lmaWNcbiAgICAgICAgICAvLyBhc3NldCBoYXNoZXMgZnJvbSB0aGUgdGVtcGxhdGVzIHNvIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkaWZmXG4gICAgICAgICAgLy8gY29tcGFyaXNvblxuICAgICAgICAgIGlmICghY29uZmlnLmRpZmZBc3NldHMpIHtcbiAgICAgICAgICAgIGFjdHVhbFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShhY3R1YWxUZW1wbGF0ZSwgYWN0dWFsW3N0YWNrSWRdLmFzc2V0cyk7XG4gICAgICAgICAgICBleHBlY3RlZFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShleHBlY3RlZFRlbXBsYXRlLCBleHBlY3RlZFtzdGFja0lkXS5hc3NldHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZURpZmYgPSBmdWxsRGlmZihleHBlY3RlZFRlbXBsYXRlLCBhY3R1YWxUZW1wbGF0ZSk7XG4gICAgICAgICAgaWYgKCF0ZW1wbGF0ZURpZmYuaXNFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgYWxsb3dlZERlc3Ryb3lUeXBlcyA9IChhd2FpdCB0aGlzLmdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkKSkgPz8gW107XG5cbiAgICAgICAgICAgIC8vIGdvIHRocm91Z2ggYWxsIHRoZSByZXNvdXJjZSBkaWZmZXJlbmNlcyBhbmQgY2hlY2sgZm9yIGFueVxuICAgICAgICAgICAgLy8gXCJkZXN0cnVjdGl2ZVwiIGNoYW5nZXNcbiAgICAgICAgICAgIHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IFJlc291cmNlRGlmZmVyZW5jZSkgPT4ge1xuICAgICAgICAgICAgLy8gaWYgdGhlIGNoYW5nZSBpcyBhIHJlbW92YWwgaXQgd2lsbCBub3Qgc2hvdyB1cCBhcyBhICdjaGFuZ2VJbXBhY3QnXG4gICAgICAgICAgICAvLyBzbyBuZWVkIHRvIGNoZWNrIGZvciBpdCBzZXBhcmF0ZWx5LCB1bmxlc3MgaXQgaXMgYSByZXNvdXJjZVR5cGUgdGhhdFxuICAgICAgICAgICAgLy8gaGFzIGJlZW4gXCJhbGxvd2VkXCIgdG8gYmUgZGVzdHJveWVkXG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGNoYW5nZS5vbGRWYWx1ZT8uVHlwZSA/PyBjaGFuZ2UubmV3VmFsdWU/LlR5cGU7XG4gICAgICAgICAgICAgIGlmIChyZXNvdXJjZVR5cGUgJiYgYWxsb3dlZERlc3Ryb3lUeXBlcy5pbmNsdWRlcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgICAgICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgaW1wYWN0OiBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1ksXG4gICAgICAgICAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGFuZ2UuY2hhbmdlSW1wYWN0KSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX09SUEhBTjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U6XG4gICAgICAgICAgICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICBpbXBhY3Q6IGNoYW5nZS5jaGFuZ2VJbXBhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB3cml0YWJsZSA9IG5ldyBTdHJpbmdXcml0YWJsZSh7fSk7XG4gICAgICAgICAgICBmb3JtYXREaWZmZXJlbmNlcyh3cml0YWJsZSwgdGVtcGxhdGVEaWZmKTtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgICBtZXNzYWdlOiB3cml0YWJsZS5kYXRhLFxuICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgIHRlc3ROYW1lOiB0aGlzLmhlbHBlci50ZXN0TmFtZSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWNzOiBmYWlsdXJlcyxcbiAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkQXNzZW1ibHkoZGlyOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICByZXR1cm4gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0ZW1wbGF0ZSB0byBhIG5vcm1hbCBmb3JtIHdoZXJlIGFzc2V0IHJlZmVyZW5jZXMgaGF2ZSBiZWVuIG5vcm1hbGl6ZWRcbiAgICpcbiAgICogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBjb21wYXJlIHRlbXBsYXRlcyBpZiBhbGwgdGhhdCdzIGRpZmZlcmVudCBiZXR3ZWVuXG4gICAqIHRoZW0gaXMgdGhlIGhhc2hlcyBvZiB0aGUgYXNzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBjYW5vbmljYWxpemVUZW1wbGF0ZSh0ZW1wbGF0ZTogYW55LCBhc3NldHM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBhc3NldHNTZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3RyaW5nU3Vic3RpdHV0aW9ucyA9IG5ldyBBcnJheTxbUmVnRXhwLCBzdHJpbmddPigpO1xuXG4gICAgLy8gRmluZCBhc3NldHMgdmlhIHBhcmFtZXRlcnMgKGZvciBMZWdhY3lTdGFja1N5bnRoZXNpemVyKVxuICAgIGNvbnN0IHBhcmFtUmUgPSAvXkFzc2V0UGFyYW1ldGVycyhbYS16QS1aMC05XXs2NH0pKFMzQnVja2V0fFMzVmVyc2lvbktleXxBcnRpZmFjdEhhc2gpKFthLXpBLVowLTldezh9KSQvO1xuICAgIGZvciAoY29uc3QgcGFyYW1OYW1lIG9mIE9iamVjdC5rZXlzKHRlbXBsYXRlPy5QYXJhbWV0ZXJzIHx8IHt9KSkge1xuICAgICAgY29uc3QgbSA9IHBhcmFtUmUuZXhlYyhwYXJhbU5hbWUpO1xuICAgICAgaWYgKCFtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGFzc2V0c1NlZW4uaGFzKG1bMV0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBhc3NldHNTZWVuLmFkZChtWzFdKTtcbiAgICAgIGNvbnN0IGl4ID0gYXNzZXRzU2Vlbi5zaXplO1xuXG4gICAgICAvLyBGdWxsIHBhcmFtZXRlciByZWZlcmVuY2VcbiAgICAgIHN0cmluZ1N1YnN0aXR1dGlvbnMucHVzaChbXG4gICAgICAgIG5ldyBSZWdFeHAoYEFzc2V0UGFyYW1ldGVycyR7bVsxXX0oUzNCdWNrZXR8UzNWZXJzaW9uS2V5fEFydGlmYWN0SGFzaCkoW2EtekEtWjAtOV17OH0pYCksXG4gICAgICAgIGBBc3NldCR7aXh9JDFgLFxuICAgICAgXSk7XG4gICAgICAvLyBTdWJzdHJpbmcgYXNzZXQgaGFzaCByZWZlcmVuY2VcbiAgICAgIHN0cmluZ1N1YnN0aXR1dGlvbnMucHVzaChbXG4gICAgICAgIG5ldyBSZWdFeHAoYCR7bVsxXX1gKSxcbiAgICAgICAgYEFzc2V0JHtpeH1IYXNoYCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIC8vIGZpbmQgYXNzZXRzIGRlZmluZWQgaW4gdGhlIGFzc2V0IG1hbmlmZXN0XG4gICAgdHJ5IHtcbiAgICAgIGFzc2V0cy5mb3JFYWNoKGFzc2V0ID0+IHtcbiAgICAgICAgaWYgKCFhc3NldHNTZWVuLmhhcyhhc3NldCkpIHtcbiAgICAgICAgICBhc3NldHNTZWVuLmFkZChhc3NldCk7XG4gICAgICAgICAgY29uc3QgaXggPSBhc3NldHNTZWVuLnNpemU7XG4gICAgICAgICAgc3RyaW5nU3Vic3RpdHV0aW9ucy5wdXNoKFtcbiAgICAgICAgICAgIG5ldyBSZWdFeHAoYXNzZXQpLFxuICAgICAgICAgICAgYEFzc2V0JHtpeH0kMWAsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gYXNzZXQgbWFuaWZlc3QgdGhhdCBpcyBmaW5lLlxuICAgIH1cblxuICAgIC8vIFN1YnN0aXR1dGUgdGhlbSBvdXRcbiAgICByZXR1cm4gc3Vic3RpdHV0ZSh0ZW1wbGF0ZSk7XG5cbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlKHdoYXQ6IGFueSk6IGFueSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh3aGF0KSkge1xuICAgICAgICByZXR1cm4gd2hhdC5tYXAoc3Vic3RpdHV0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygd2hhdCA9PT0gJ29iamVjdCcgJiYgd2hhdCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh3aGF0KSkge1xuICAgICAgICAgIHJldFtzdHJpbmdTdWIoayldID0gc3Vic3RpdHV0ZSh2KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdoYXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmdTdWIod2hhdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB3aGF0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0cmluZ1N1Yih4OiBzdHJpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgW3JlLCByZXBsYWNlbWVudF0gb2Ygc3RyaW5nU3Vic3RpdHV0aW9ucykge1xuICAgICAgICB4ID0geC5yZXBsYWNlKHJlLCByZXBsYWNlbWVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU3RyaW5nV3JpdGFibGUgZXh0ZW5kcyBXcml0YWJsZSB7XG4gIHB1YmxpYyBkYXRhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlY29kZXI6IFN0cmluZ0RlY29kZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdyaXRhYmxlT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcigpO1xuICAgIHRoaXMuZGF0YSA9ICcnO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIGVuY29kaW5nOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdidWZmZXInKSB7XG4gICAgICBjaHVuayA9IHRoaXMuX2RlY29kZXIud3JpdGUoY2h1bmspO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSArPSBjaHVuaztcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX2ZpbmFsKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgKz0gdGhpcy5fZGVjb2Rlci5lbmQoKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG4iXX0=
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtdGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbmFwc2hvdC10ZXN0LXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFN0IsbUNBQWtDO0FBQ2xDLG1EQUErQztBQUMvQyxvRUFBNkQ7QUFFN0Qsc0VBQTJGO0FBRTNGLHlEQUFvRDtBQUNwRCw2REFBa0U7QUFFbEUsOENBQXFEO0FBcUJyRDs7O0dBR0c7QUFDSCxNQUFhLG1CQUFtQjtJQUNiLE1BQU0sQ0FBaUI7SUFDeEMsWUFBWSxPQUE4QztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLGlDQUFjLENBQUMsTUFBTSxDQUFDO1lBQ2xDLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRSxtQ0FBYztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxrQ0FBa0M7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBdUMsRUFBRTtRQUlqRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsK0JBQStCO1lBQy9CLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxpQkFB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QUM7Z0JBQ3BELENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBblVELGtEQW1VQztBQUVELE1BQU0sY0FBZSxTQUFRLGlCQUFRO0lBQzVCLElBQUksQ0FBUztJQUNaLFFBQVEsQ0FBZ0I7SUFDaEMsWUFBWSxPQUF3QjtRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksOEJBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVSxFQUFFLFFBQWdCLEVBQUUsUUFBd0M7UUFDM0UsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBd0M7UUFDN0MsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgV3JpdGFibGVPcHRpb25zIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFN0cmluZ0RlY29kZXIgfSBmcm9tICdzdHJpbmdfZGVjb2Rlcic7XG5pbXBvcnQgeyBVTktOT1dOX1JFR0lPTiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRGlmZmVyZW5jZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHsgZnVsbERpZmYsIGZvcm1hdERpZmZlcmVuY2VzLCBSZXNvdXJjZUltcGFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBDZGtJbnRlZ0hlbHBlck9wdGlvbnMgfSBmcm9tICcuL2Nkay1pbnRlZy1oZWxwZXInO1xuaW1wb3J0IHsgQ2RrSW50ZWdIZWxwZXIgfSBmcm9tICcuL2Nkay1pbnRlZy1oZWxwZXInO1xuaW1wb3J0IHsgQXNzZW1ibHlNYW5pZmVzdFJlYWRlciB9IGZyb20gJy4vcHJpdmF0ZS9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IERpYWdub3N0aWMsIERlc3RydWN0aXZlQ2hhbmdlLCBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi93b3JrZXJzL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFnbm9zdGljUmVhc29uIH0gZnJvbSAnLi4vd29ya2Vycy9jb21tb24nO1xuXG5pbnRlcmZhY2UgU25hcHNob3RBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc3RhY2tzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgW3N0YWNrTmFtZTogc3RyaW5nXToge1xuICAgIC8qKlxuICAgICAqIEFsbCB0ZW1wbGF0ZXMgZm9yIHRoaXMgc3RhY2ssIGluY2x1ZGluZyBuZXN0ZWQgc3RhY2tzXG4gICAgICovXG4gICAgdGVtcGxhdGVzOiB7XG4gICAgICBbdGVtcGxhdGVJZDogc3RyaW5nXTogYW55O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFzc2V0IElkcyB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgYXNzZW1ibHlcbiAgICAgKi9cbiAgICBhc3NldHM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG4vKipcbiAqIFJ1bm5lciBmb3Igc25hcHNob3QgdGVzdHMuIFRoaXMgaGFuZGxlcyBvcmNoZXN0cmF0aW5nXG4gKiB0aGUgdmFsaWRhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gdGVzdCBzbmFwc2hvdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVnU25hcHNob3RSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGhlbHBlcjogQ2RrSW50ZWdIZWxwZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9taXQ8Q2RrSW50ZWdIZWxwZXJPcHRpb25zLCAncmVnaW9uJz4pIHtcbiAgICB0aGlzLmhlbHBlciA9IENka0ludGVnSGVscGVyLmNyZWF0ZSh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVnaW9uOiBVTktOT1dOX1JFR0lPTixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNTbmFwc2hvdCgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuaGFzU25hcHNob3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3R1YWxUZXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwZXIuYWN0dWFsVGVzdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb250Q2FyZUFib3V0TGVnYWN5TG9va3Vwc0ZvclRlc3RzKCkge1xuICAgIHRoaXMuaGVscGVyLmNvbmZpZ3VyZUxlZ2FjeUVuYWJsZUxvb2t1cHMoJ2RvbnQtY2FyZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHRoZSBDREsgYXBwIGFuZCBjb21wYXJlIHRoZSB0ZW1wbGF0ZXMgdG8gdGhlIGV4aXN0aW5nIHNuYXBzaG90LlxuICAgKlxuICAgKiBAcmV0dXJucyBhbnkgZGlhZ25vc3RpY3MgYW5kIGFueSBkZXN0cnVjdGl2ZSBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdGVzdFNuYXBzaG90KG9wdGlvbnM6IFNuYXBzaG90VmVyaWZpY2F0aW9uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7XG4gICAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXTtcbiAgICBkZXN0cnVjdGl2ZUNoYW5nZXM6IERlc3RydWN0aXZlQ2hhbmdlW107XG4gIH0+IHtcbiAgICBsZXQgZG9DbGVhbiA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlYWQgdGhlIFwiZXhwZWN0ZWRcIiBzbmFwc2hvdFxuICAgICAgY29uc3QgZXhwZWN0ZWRUZXN0U3VpdGUgPSBhd2FpdCB0aGlzLmhlbHBlci5leHBlY3RlZFRlc3RTdWl0ZSgpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5ID0gdGhpcy5nZXRTbmFwc2hvdEFzc2VtYmx5KHRoaXMuaGVscGVyLmdvbGRlblNuYXBzaG90RGlyLCBleHBlY3RlZFRlc3RTdWl0ZT8uc3RhY2tzKTtcblxuICAgICAgLy8gQ29uZmlndXJlIHNldHRpbmdzIGZyb20gdGhlIGdvbGRlbiBzbmFwc2hvdFxuICAgICAgdGhpcy5oZWxwZXIuY29uZmlndXJlTGVnYWN5RW5hYmxlTG9va3VwcyhleHBlY3RlZFRlc3RTdWl0ZT8uZW5hYmxlTG9va3VwcyA/PyBmYWxzZSk7XG5cbiAgICAgIC8vIHJlYWQgdGhlIFwiYWN0dWFsXCIgc25hcHNob3RcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90ID0gYXdhaXQgdGhpcy5oZWxwZXIuYWN0dWFsU25hcHNob3QoKTtcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90QXNzZW1ibHkgPSB0aGlzLmdldFNuYXBzaG90QXNzZW1ibHkodGhpcy5oZWxwZXIuY2RrT3V0RGlyLCBhY3R1YWxTbmFwc2hvdC50ZXN0RGVmaW5pdGlvbi5zdGFja3MpO1xuXG4gICAgICAvLyBkaWZmIHRoZSBleGlzdGluZyBzbmFwc2hvdCAoZXhwZWN0ZWQpIHdpdGggdGhlIGludGVncmF0aW9uIHRlc3QgKGFjdHVhbClcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gYXdhaXQgdGhpcy5kaWZmQXNzZW1ibHkoZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5LCBhY3R1YWxTbmFwc2hvdEFzc2VtYmx5KTtcblxuICAgICAgaWYgKGRpYWdub3N0aWNzLmRpYWdub3N0aWNzLmxlbmd0aCkge1xuICAgICAgICAvLyBBdHRhY2ggYWRkaXRpb25hbCBtZXNzYWdlcyB0byB0aGUgZmlyc3QgZGlhZ25vc3RpY1xuICAgICAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucmV0YWluKSB7XG4gICAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICBgKEZhaWx1cmUgcmV0YWluZWQpIEV4cGVjdGVkOiAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy5oZWxwZXIuZ29sZGVuU25hcHNob3REaXIpfWAsXG4gICAgICAgICAgICBgICAgICAgICAgICAgICAgICAgIEFjdHVhbDogICAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgdGhpcy5oZWxwZXIuY2RrT3V0RGlyKX1gLFxuICAgICAgICAgICksXG4gICAgICAgICAgZG9DbGVhbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgJ1JlcHJvOicsXG4gICAgICAgICAgICBgICAke3RoaXMuaGVscGVyLmFjdHVhbFN5bnRoUmVwcm9Db21tYW5kKCkuam9pbignICcpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpYWdub3N0aWNzLmRpYWdub3N0aWNzWzBdID0ge1xuICAgICAgICAgIC4uLmRpYWdub3N0aWNzLmRpYWdub3N0aWNzWzBdLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRpYWdub3N0aWNzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChkb0NsZWFuKSB7XG4gICAgICAgIHRoaXMuaGVscGVyLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gY2xvdWQgYXNzZW1ibHkgcmV0dXJuIGEgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzXG4gICAqIHRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHNuYXBzaG90IGFuZCBhbnkgcmVxdWlyZWQgbWV0YSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gY2xvdWRBc3NlbWJseURpciAtIFRoZSBkaXJlY3Rvcnkgb2YgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIGxvb2sgZm9yIHNuYXBzaG90c1xuICAgKiBAcGFyYW0gcGlja1N0YWNrcyAtIFBpY2sgb25seSB0aGVzZSBzdGFja3MgZnJvbSB0aGUgY2xvdWQgYXNzZW1ibHlcbiAgICogQHJldHVybnMgQSBTbmFwc2hvdEFzc2VtYmx5LCB0aGUgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzIGluIHRoaXMgc25hcHNob3QgYW5kIHJlcXVpcmVkIG1ldGEgZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTbmFwc2hvdEFzc2VtYmx5KGNsb3VkQXNzZW1ibHlEaXI6IHN0cmluZywgcGlja1N0YWNrczogc3RyaW5nW10gPSBbXSk6IFNuYXBzaG90QXNzZW1ibHkge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gdGhpcy5yZWFkQXNzZW1ibHkoY2xvdWRBc3NlbWJseURpcik7XG4gICAgY29uc3Qgc3RhY2tzID0gYXNzZW1ibHkuc3RhY2tzO1xuICAgIGNvbnN0IHNuYXBzaG90czogU25hcHNob3RBc3NlbWJseSA9IHt9O1xuICAgIGZvciAoY29uc3QgW3N0YWNrTmFtZSwgc3RhY2tUZW1wbGF0ZV0gb2YgT2JqZWN0LmVudHJpZXMoc3RhY2tzKSkge1xuICAgICAgaWYgKHBpY2tTdGFja3MuaW5jbHVkZXMoc3RhY2tOYW1lKSkge1xuICAgICAgICBjb25zdCBtYW5pZmVzdCA9IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIuZnJvbVBhdGgoY2xvdWRBc3NlbWJseURpcik7XG4gICAgICAgIGNvbnN0IGFzc2V0cyA9IG1hbmlmZXN0LmdldEFzc2V0SWRzRm9yU3RhY2soc3RhY2tOYW1lKTtcblxuICAgICAgICBzbmFwc2hvdHNbc3RhY2tOYW1lXSA9IHtcbiAgICAgICAgICB0ZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgIFtzdGFja05hbWVdOiBzdGFja1RlbXBsYXRlLFxuICAgICAgICAgICAgLi4uYXNzZW1ibHkuZ2V0TmVzdGVkU3RhY2tzRm9yU3RhY2soc3RhY2tOYW1lKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFzc2V0cyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc25hcHNob3RzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBhIGdpdmVuIHN0YWNrIHJldHVybiBhbGwgcmVzb3VyY2UgdHlwZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBkZXN0cm95ZWRcbiAgICogYXMgcGFydCBvZiBhIHN0YWNrIHVwZGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2tJZCAtIHRoZSBzdGFjayBpZFxuICAgKiBAcmV0dXJucyBhIGxpc3Qgb2YgcmVzb3VyY2UgdHlwZXMgb3IgdW5kZWZpbmVkIGlmIG5vbmUgYXJlIGZvdW5kXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPiB7XG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZSBvZiBPYmplY3QudmFsdWVzKChhd2FpdCB0aGlzLmhlbHBlci5hY3R1YWxUZXN0cygpKSA/PyB7fSkpIHtcbiAgICAgIGlmICh0ZXN0Q2FzZS5zdGFja3MuaW5jbHVkZXMoc3RhY2tJZCkpIHtcbiAgICAgICAgcmV0dXJuIHRlc3RDYXNlLmFsbG93RGVzdHJveTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGFueSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBleGlzdGluZyBhbmQgZXhwZWN0ZWQgc25hcHNob3RzXG4gICAqXG4gICAqIEBwYXJhbSBleGlzdGluZyAtIHRoZSBleGlzdGluZyAoZXhwZWN0ZWQpIHNuYXBzaG90XG4gICAqIEBwYXJhbSBhY3R1YWwgLSB0aGUgbmV3IChhY3R1YWwpIHNuYXBzaG90XG4gICAqIEByZXR1cm5zIGFueSBkaWFnbm9zdGljcyBhbmQgYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGlmZkFzc2VtYmx5KFxuICAgIGV4cGVjdGVkOiBTbmFwc2hvdEFzc2VtYmx5LFxuICAgIGFjdHVhbDogU25hcHNob3RBc3NlbWJseSxcbiAgKTogUHJvbWlzZTx7IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSB9PiB7XG4gICAgY29uc3QgZmFpbHVyZXM6IERpYWdub3N0aWNbXSA9IFtdO1xuICAgIGNvbnN0IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBDRk4gdGVtcGxhdGUgaW4gdGhlIGN1cnJlbnQgc25hcHNob3RcbiAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGV4cGVjdGVkKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgICAgaWYgKCFhY3R1YWxbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMuaGVscGVyLnRlc3ROYW1lLFxuICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0ZBSUxFRCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGAke3RlbXBsYXRlSWR9IGV4aXN0cyBpbiBzbmFwc2hvdCwgYnV0IG5vdCBpbiBhY3R1YWxgLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGFjdHVhbCkpIHtcbiAgICAgIGZvciAoY29uc3QgdGVtcGxhdGVJZCBvZiBPYmplY3Qua2V5cyhzdGFjay50ZW1wbGF0ZXMpKSB7XG4gICAgICAvLyBjaGVjayBpZiB0aGVyZSBpcyBhIENGTiB0ZW1wbGF0ZSBpbiB0aGUgXCJhY3R1YWxcIiBzbmFwc2hvdFxuICAgICAgLy8gdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgY3VycmVudCBzbmFwc2hvdFxuICAgICAgICBpZiAoIWV4cGVjdGVkW3N0YWNrSWRdPy50ZW1wbGF0ZXNbdGVtcGxhdGVJZF0pIHtcbiAgICAgICAgICBmYWlsdXJlcy5wdXNoKHtcbiAgICAgICAgICAgIHRlc3ROYW1lOiB0aGlzLmhlbHBlci50ZXN0TmFtZSxcbiAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9GQUlMRUQsXG4gICAgICAgICAgICBtZXNzYWdlOiBgJHt0ZW1wbGF0ZUlkfSBkb2VzIG5vdCBleGlzdCBpbiBzbmFwc2hvdCwgYnV0IGRvZXMgaW4gYWN0dWFsYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICBkaWZmQXNzZXRzOiAoYXdhaXQgdGhpcy5oZWxwZXIuYWN0dWFsU25hcHNob3QoKSkudGVzdERlZmluaXRpb24uZ2V0T3B0aW9uc0ZvclN0YWNrKHN0YWNrSWQpPy5kaWZmQXNzZXRzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbGV0IGFjdHVhbFRlbXBsYXRlID0gYWN0dWFsW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcbiAgICAgICAgICBsZXQgZXhwZWN0ZWRUZW1wbGF0ZSA9IGV4cGVjdGVkW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcblxuICAgICAgICAgIC8vIGlmIHdlIGFyZSBub3QgdmVyaWZ5aW5nIGFzc2V0IGhhc2hlcyB0aGVuIHJlbW92ZSB0aGUgc3BlY2lmaWNcbiAgICAgICAgICAvLyBhc3NldCBoYXNoZXMgZnJvbSB0aGUgdGVtcGxhdGVzIHNvIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkaWZmXG4gICAgICAgICAgLy8gY29tcGFyaXNvblxuICAgICAgICAgIGlmICghY29uZmlnLmRpZmZBc3NldHMpIHtcbiAgICAgICAgICAgIGFjdHVhbFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShhY3R1YWxUZW1wbGF0ZSwgYWN0dWFsW3N0YWNrSWRdLmFzc2V0cyk7XG4gICAgICAgICAgICBleHBlY3RlZFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShleHBlY3RlZFRlbXBsYXRlLCBleHBlY3RlZFtzdGFja0lkXS5hc3NldHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZURpZmYgPSBmdWxsRGlmZihleHBlY3RlZFRlbXBsYXRlLCBhY3R1YWxUZW1wbGF0ZSk7XG4gICAgICAgICAgaWYgKCF0ZW1wbGF0ZURpZmYuaXNFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgYWxsb3dlZERlc3Ryb3lUeXBlcyA9IChhd2FpdCB0aGlzLmdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkKSkgPz8gW107XG5cbiAgICAgICAgICAgIC8vIGdvIHRocm91Z2ggYWxsIHRoZSByZXNvdXJjZSBkaWZmZXJlbmNlcyBhbmQgY2hlY2sgZm9yIGFueVxuICAgICAgICAgICAgLy8gXCJkZXN0cnVjdGl2ZVwiIGNoYW5nZXNcbiAgICAgICAgICAgIHRlbXBsYXRlRGlmZi5yZXNvdXJjZXMuZm9yRWFjaERpZmZlcmVuY2UoKGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IFJlc291cmNlRGlmZmVyZW5jZSkgPT4ge1xuICAgICAgICAgICAgLy8gaWYgdGhlIGNoYW5nZSBpcyBhIHJlbW92YWwgaXQgd2lsbCBub3Qgc2hvdyB1cCBhcyBhICdjaGFuZ2VJbXBhY3QnXG4gICAgICAgICAgICAvLyBzbyBuZWVkIHRvIGNoZWNrIGZvciBpdCBzZXBhcmF0ZWx5LCB1bmxlc3MgaXQgaXMgYSByZXNvdXJjZVR5cGUgdGhhdFxuICAgICAgICAgICAgLy8gaGFzIGJlZW4gXCJhbGxvd2VkXCIgdG8gYmUgZGVzdHJveWVkXG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGNoYW5nZS5vbGRWYWx1ZT8uVHlwZSA/PyBjaGFuZ2UubmV3VmFsdWU/LlR5cGU7XG4gICAgICAgICAgICAgIGlmIChyZXNvdXJjZVR5cGUgJiYgYWxsb3dlZERlc3Ryb3lUeXBlcy5pbmNsdWRlcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2UuaXNSZW1vdmFsKSB7XG4gICAgICAgICAgICAgICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgaW1wYWN0OiBSZXNvdXJjZUltcGFjdC5XSUxMX0RFU1RST1ksXG4gICAgICAgICAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGFuZ2UuY2hhbmdlSW1wYWN0KSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX09SUEhBTjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX1JFUExBQ0U6XG4gICAgICAgICAgICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICBpbXBhY3Q6IGNoYW5nZS5jaGFuZ2VJbXBhY3QsXG4gICAgICAgICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YWNrTmFtZTogdGVtcGxhdGVJZCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB3cml0YWJsZSA9IG5ldyBTdHJpbmdXcml0YWJsZSh7fSk7XG4gICAgICAgICAgICBmb3JtYXREaWZmZXJlbmNlcyh3cml0YWJsZSwgdGVtcGxhdGVEaWZmKTtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgICBtZXNzYWdlOiB3cml0YWJsZS5kYXRhLFxuICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgIHRlc3ROYW1lOiB0aGlzLmhlbHBlci50ZXN0TmFtZSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWNzOiBmYWlsdXJlcyxcbiAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkQXNzZW1ibHkoZGlyOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICByZXR1cm4gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0ZW1wbGF0ZSB0byBhIG5vcm1hbCBmb3JtIHdoZXJlIGFzc2V0IHJlZmVyZW5jZXMgaGF2ZSBiZWVuIG5vcm1hbGl6ZWRcbiAgICpcbiAgICogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBjb21wYXJlIHRlbXBsYXRlcyBpZiBhbGwgdGhhdCdzIGRpZmZlcmVudCBiZXR3ZWVuXG4gICAqIHRoZW0gaXMgdGhlIGhhc2hlcyBvZiB0aGUgYXNzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBjYW5vbmljYWxpemVUZW1wbGF0ZSh0ZW1wbGF0ZTogYW55LCBhc3NldHM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBhc3NldHNTZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3RyaW5nU3Vic3RpdHV0aW9ucyA9IG5ldyBBcnJheTxbUmVnRXhwLCBzdHJpbmddPigpO1xuXG4gICAgLy8gRmluZCBhc3NldHMgdmlhIHBhcmFtZXRlcnMgKGZvciBMZWdhY3lTdGFja1N5bnRoZXNpemVyKVxuICAgIGNvbnN0IHBhcmFtUmUgPSAvXkFzc2V0UGFyYW1ldGVycyhbYS16QS1aMC05XXs2NH0pKFMzQnVja2V0fFMzVmVyc2lvbktleXxBcnRpZmFjdEhhc2gpKFthLXpBLVowLTldezh9KSQvO1xuICAgIGZvciAoY29uc3QgcGFyYW1OYW1lIG9mIE9iamVjdC5rZXlzKHRlbXBsYXRlPy5QYXJhbWV0ZXJzIHx8IHt9KSkge1xuICAgICAgY29uc3QgbSA9IHBhcmFtUmUuZXhlYyhwYXJhbU5hbWUpO1xuICAgICAgaWYgKCFtKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGFzc2V0c1NlZW4uaGFzKG1bMV0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBhc3NldHNTZWVuLmFkZChtWzFdKTtcbiAgICAgIGNvbnN0IGl4ID0gYXNzZXRzU2Vlbi5zaXplO1xuXG4gICAgICAvLyBGdWxsIHBhcmFtZXRlciByZWZlcmVuY2VcbiAgICAgIHN0cmluZ1N1YnN0aXR1dGlvbnMucHVzaChbXG4gICAgICAgIG5ldyBSZWdFeHAoYEFzc2V0UGFyYW1ldGVycyR7bVsxXX0oUzNCdWNrZXR8UzNWZXJzaW9uS2V5fEFydGlmYWN0SGFzaCkoW2EtekEtWjAtOV17OH0pYCksXG4gICAgICAgIGBBc3NldCR7aXh9JDFgLFxuICAgICAgXSk7XG4gICAgICAvLyBTdWJzdHJpbmcgYXNzZXQgaGFzaCByZWZlcmVuY2VcbiAgICAgIHN0cmluZ1N1YnN0aXR1dGlvbnMucHVzaChbXG4gICAgICAgIG5ldyBSZWdFeHAoYCR7bVsxXX1gKSxcbiAgICAgICAgYEFzc2V0JHtpeH1IYXNoYCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIC8vIGZpbmQgYXNzZXRzIGRlZmluZWQgaW4gdGhlIGFzc2V0IG1hbmlmZXN0XG4gICAgdHJ5IHtcbiAgICAgIGFzc2V0cy5mb3JFYWNoKGFzc2V0ID0+IHtcbiAgICAgICAgaWYgKCFhc3NldHNTZWVuLmhhcyhhc3NldCkpIHtcbiAgICAgICAgICBhc3NldHNTZWVuLmFkZChhc3NldCk7XG4gICAgICAgICAgY29uc3QgaXggPSBhc3NldHNTZWVuLnNpemU7XG4gICAgICAgICAgc3RyaW5nU3Vic3RpdHV0aW9ucy5wdXNoKFtcbiAgICAgICAgICAgIG5ldyBSZWdFeHAoYXNzZXQpLFxuICAgICAgICAgICAgYEFzc2V0JHtpeH0kMWAsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gYXNzZXQgbWFuaWZlc3QgdGhhdCBpcyBmaW5lLlxuICAgIH1cblxuICAgIC8vIFN1YnN0aXR1dGUgdGhlbSBvdXRcbiAgICByZXR1cm4gc3Vic3RpdHV0ZSh0ZW1wbGF0ZSk7XG5cbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlKHdoYXQ6IGFueSk6IGFueSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh3aGF0KSkge1xuICAgICAgICByZXR1cm4gd2hhdC5tYXAoc3Vic3RpdHV0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygd2hhdCA9PT0gJ29iamVjdCcgJiYgd2hhdCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCByZXQ6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh3aGF0KSkge1xuICAgICAgICAgIHJldFtzdHJpbmdTdWIoayldID0gc3Vic3RpdHV0ZSh2KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdoYXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmdTdWIod2hhdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB3aGF0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0cmluZ1N1Yih4OiBzdHJpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgW3JlLCByZXBsYWNlbWVudF0gb2Ygc3RyaW5nU3Vic3RpdHV0aW9ucykge1xuICAgICAgICB4ID0geC5yZXBsYWNlKHJlLCByZXBsYWNlbWVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU3RyaW5nV3JpdGFibGUgZXh0ZW5kcyBXcml0YWJsZSB7XG4gIHB1YmxpYyBkYXRhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlY29kZXI6IFN0cmluZ0RlY29kZXI7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdyaXRhYmxlT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcigpO1xuICAgIHRoaXMuZGF0YSA9ICcnO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIGVuY29kaW5nOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdidWZmZXInKSB7XG4gICAgICBjaHVuayA9IHRoaXMuX2RlY29kZXIud3JpdGUoY2h1bmspO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSArPSBjaHVuaztcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgX2ZpbmFsKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgKz0gdGhpcy5fZGVjb2Rlci5lbmQoKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG4iXX0=
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.UNSTABLE_FEATURES = exports.FeatureStatus = void 0;
4
37
  exports.processUnstableFeatures = processUnstableFeatures;
5
38
  exports.availableFeaturesDescription = availableFeaturesDescription;
6
- const logger = require("./logger");
39
+ const logger = __importStar(require("./logger"));
7
40
  /**
8
41
  * Status of an unstable feature
9
42
  */
@@ -81,4 +114,4 @@ function availableFeaturesDescription() {
81
114
  }
82
115
  return `Available features: ${availableFeatures.join(', ')}.`;
83
116
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFibGUtZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1bnN0YWJsZS1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnREEsMERBbUNDO0FBT0Qsb0VBVUM7QUFwR0QsbUNBQW1DO0FBRW5DOztHQUVHO0FBQ0gsSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLG9EQUFvRDtJQUNwRCx3Q0FBdUIsQ0FBQTtJQUN2Qiw4REFBOEQ7SUFDOUQsMENBQXlCLENBQUE7SUFDekIsd0RBQXdEO0lBQ3hELG9DQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxhQUFhLDZCQUFiLGFBQWEsUUFPeEI7QUFjRDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQW9DO0lBQ2hFLHVCQUF1QixFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztRQUM3QixrQkFBa0IsRUFBRSxnV0FBZ1c7UUFDcFgsY0FBYyxFQUFFLG9IQUFvSDtLQUNySTtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztRQUM3QixrQkFBa0IsRUFBRSxvTUFBb007UUFDeE4sY0FBYyxFQUFFLDZGQUE2RjtLQUM5RztDQUNGLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLG1CQUE2QixFQUFFO0lBQ3JFLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUVuQyxLQUFLLE1BQU0sV0FBVyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcseUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2Isb0NBQW9DO1lBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsOEJBQThCLFdBQVcsaUNBQWlDLENBQUMsQ0FBQztZQUMzRixTQUFTO1FBQ1gsQ0FBQztRQUVELFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLEtBQUssYUFBYSxDQUFDLE9BQU87Z0JBQ3hCLHlEQUF5RDtnQkFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7Z0JBQzFELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxhQUFhLENBQUMsVUFBVTtnQkFDM0IsNENBQTRDO2dCQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBRVIsS0FBSyxhQUFhLENBQUMsU0FBUztnQkFDMUIsNENBQTRDO2dCQUM1QyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDRCQUE0QjtJQUMxQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQWlCLENBQUM7U0FDeEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQztTQUNwRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QixJQUFJLGlCQUFpQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLCtDQUErQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxPQUFPLHVCQUF1QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuLyoqXG4gKiBTdGF0dXMgb2YgYW4gdW5zdGFibGUgZmVhdHVyZVxuICovXG5leHBvcnQgZW51bSBGZWF0dXJlU3RhdHVzIHtcbiAgLyoqIEZlYXR1cmUgaXMgYWN0aXZlbHkgc3VwcG9ydGVkIGFuZCBjYW4gYmUgdXNlZCAqL1xuICBTVVBQT1JURUQgPSAnc3VwcG9ydGVkJyxcbiAgLyoqIEZlYXR1cmUgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgZnVuY3Rpb25hbCAtIHdhcm5zIHVzZXIgKi9cbiAgREVQUkVDQVRFRCA9ICdkZXByZWNhdGVkJyxcbiAgLyoqIEZlYXR1cmUgaGFzIGJlZW4gcmVtb3ZlZCAtIHdhcm5zIHVzZXIgYW5kIGlnbm9yZXMgKi9cbiAgUkVNT1ZFRCA9ICdyZW1vdmVkJyxcbn1cblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGFuIHVuc3RhYmxlIGZlYXR1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnN0YWJsZUZlYXR1cmUge1xuICAvKiogQ3VycmVudCBzdGF0dXMgb2YgdGhlIGZlYXR1cmUgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBGZWF0dXJlU3RhdHVzO1xuICAvKiogV2FybmluZyBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiByZXF1ZXN0ZWQgZmVhdHVyZSBpcyBkZXByZWNhdGVkICovXG4gIHJlYWRvbmx5IGRlcHJlY2F0aW9uTWVzc2FnZTogc3RyaW5nO1xuICAvKiogTWVzc2FnZSB0byBkaXNwbGF5IGZvciByZXF1ZXN0ZWQgZmVhdHVyZXMgdGhhdCBhcmUgcmVtb3ZlZCAqL1xuICByZWFkb25seSByZW1vdmFsTWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdHJ5IG9mIGFsbCB1bnN0YWJsZSBmZWF0dXJlc1xuICovXG5leHBvcnQgY29uc3QgVU5TVEFCTEVfRkVBVFVSRVM6IFJlY29yZDxzdHJpbmcsIFVuc3RhYmxlRmVhdHVyZT4gPSB7XG4gICdkZXByZWNhdGVkLWNsaS1lbmdpbmUnOiB7XG4gICAgc3RhdHVzOiBGZWF0dXJlU3RhdHVzLlJFTU9WRUQsXG4gICAgZGVwcmVjYXRpb25NZXNzYWdlOiAnWW91IGhhdmUgb3B0ZWQtaW4gdG8gdXNlIHRoZSBkZXByZWNhdGVkIENMSSBlbmdpbmUgd2hpY2ggaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gSmFudWFyeSAyMDI2LiBJZiB5b3UgaGF2ZSBlbmNvdW50ZXJlZCBibG9ja2VycyB3aGlsZSB1c2luZyB0aGUgbmV3IGRlZmF1bHQgZW5naW5lLCBwbGVhc2UgbGV0IHVzIGtub3cgYnkgb3BlbmluZyBhbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS9pc3N1ZXMvbmV3L2Nob29zZVxcblxcblRvIHVzZSB0aGUgbmV3IGRlZmF1bHQgZW5naW5lLCByZW1vdmUgdGhlIGAtLXVuc3RhYmxlPWRlcHJlY2F0ZWQtY2xpLWVuZ2luZWAgb3B0aW9uLicsXG4gICAgcmVtb3ZhbE1lc3NhZ2U6ICdUaGUgQ0xJIGVuZ2luZSBoYXMgYmVlbiByZW1vdmVkLiBUaGUgdG9vbGtpdC1saWIgZW5naW5lIGlzIG5vdyB0aGUgb25seSBzdXBwb3J0ZWQgZW5naW5lLiBQbGVhc2UgcmVtb3ZlIHRoaXMgZmxhZy4nLFxuICB9LFxuICAndG9vbGtpdC1saWItZW5naW5lJzoge1xuICAgIHN0YXR1czogRmVhdHVyZVN0YXR1cy5SRU1PVkVELFxuICAgIGRlcHJlY2F0aW9uTWVzc2FnZTogJ1RoZSB0b29sa2l0LWxpYiBlbmdpbmUgaXMgbm93IHRoZSBkZWZhdWx0IGVuZ2luZS4gVGhpcyBmbGFnIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZC4gWW91IG1heSBjaG9vc2UgdG8gdGVtcG9yYXJpbHkgcmV2ZXJ0IHRvIHRoZSBvbGQgZW5naW5lIGJ5IGFkZGluZyB0aGUgYC0tdW5zdGFibGU9ZGVwcmVjYXRlZC1jbGktZW5naW5lYCBvcHRpb24uJyxcbiAgICByZW1vdmFsTWVzc2FnZTogJ1RoZSB0b29sa2l0LWxpYiBlbmdpbmUgaXMgbm93IHRoZSBkZWZhdWx0IGFuZCBvbmx5IGVuZ2luZS4gVGhpcyBmbGFnIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZC4nLFxuICB9LFxufTtcblxuLyoqXG4gKiBQcm9jZXNzIHVuc3RhYmxlIGZlYXR1cmUgZmxhZ3MgYW5kIGVtaXQgYXBwcm9wcmlhdGUgd2FybmluZ3NcbiAqXG4gKiBAcGFyYW0gdW5zdGFibGVGZWF0dXJlcyAtIEFycmF5IG9mIGZlYXR1cmUgbmFtZXMgZnJvbSBDTEkgLS11bnN0YWJsZSBvcHRpb25cbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkLCBlbmFibGVkIGZlYXR1cmUgbmFtZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NVbnN0YWJsZUZlYXR1cmVzKHVuc3RhYmxlRmVhdHVyZXM6IHN0cmluZ1tdID0gW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHZhbGlkRmVhdHVyZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBmZWF0dXJlTmFtZSBvZiB1bnN0YWJsZUZlYXR1cmVzKSB7XG4gICAgY29uc3QgZmVhdHVyZSA9IFVOU1RBQkxFX0ZFQVRVUkVTW2ZlYXR1cmVOYW1lXTtcblxuICAgIGlmICghZmVhdHVyZSkge1xuICAgICAgLy8gVW5rbm93biBmZWF0dXJlIC0gd2FybiBhbmQgaWdub3JlXG4gICAgICBsb2dnZXIud2FybmluZyhgVW5rbm93biB1bnN0YWJsZSBmZWF0dXJlOiAnJHtmZWF0dXJlTmFtZX0nLiBUaGlzIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQuYCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZlYXR1cmUuc3RhdHVzKSB7XG4gICAgICBjYXNlIEZlYXR1cmVTdGF0dXMuUkVNT1ZFRDpcbiAgICAgICAgLy8gUmVtb3ZlZCBmZWF0dXJlIC0gd2FybiB3aXRoIHJlbW92YWwgbWVzc2FnZSBhbmQgaWdub3JlXG4gICAgICAgIGxvZ2dlci53YXJuaW5nKGBbUmVtb3ZlZF0gJHtmZWF0dXJlLmRlcHJlY2F0aW9uTWVzc2FnZX1gKTtcbiAgICAgICAgaWYgKGZlYXR1cmUucmVtb3ZhbE1lc3NhZ2UpIHtcbiAgICAgICAgICBsb2dnZXIud2FybmluZyhmZWF0dXJlLnJlbW92YWxNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBGZWF0dXJlU3RhdHVzLkRFUFJFQ0FURUQ6XG4gICAgICAgIC8vIERlcHJlY2F0ZWQgZmVhdHVyZSAtIHdhcm4gYnV0IHN0aWxsIGFwcGx5XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKGBbRGVwcmVjYXRlZF0gJHtmZWF0dXJlLmRlcHJlY2F0aW9uTWVzc2FnZX1gKTtcbiAgICAgICAgdmFsaWRGZWF0dXJlcy5wdXNoKGZlYXR1cmVOYW1lKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRmVhdHVyZVN0YXR1cy5TVVBQT1JURUQ6XG4gICAgICAgIC8vIFN1cHBvcnRlZCBmZWF0dXJlIC0gYXBwbHkgd2l0aG91dCB3YXJuaW5nXG4gICAgICAgIHZhbGlkRmVhdHVyZXMucHVzaChmZWF0dXJlTmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZEZlYXR1cmVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZXNjcmlwdGlvbiBvZiBhdmFpbGFibGUgdW5zdGFibGUgZmVhdHVyZXMgZm9yIENMSSBoZWxwIHRleHRcbiAqXG4gKiBAcmV0dXJucyBBIHN0cmluZyBkZXNjcmliaW5nIGF2YWlsYWJsZSBmZWF0dXJlcyBvciBpbmRpY2F0aW5nIG5vbmUgYXJlIGF2YWlsYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXZhaWxhYmxlRmVhdHVyZXNEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICBjb25zdCBhdmFpbGFibGVGZWF0dXJlcyA9IE9iamVjdC5lbnRyaWVzKFVOU1RBQkxFX0ZFQVRVUkVTKVxuICAgIC5maWx0ZXIoKFtfLCBmZWF0dXJlXSkgPT4gZmVhdHVyZS5zdGF0dXMgPT09IEZlYXR1cmVTdGF0dXMuU1VQUE9SVEVEKVxuICAgIC5tYXAoKFtuYW1lXSkgPT4gbmFtZSk7XG5cbiAgaWYgKGF2YWlsYWJsZUZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnQ3VycmVudGx5IG5vIHVuc3RhYmxlIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUuJztcbiAgfVxuXG4gIHJldHVybiBgQXZhaWxhYmxlIGZlYXR1cmVzOiAke2F2YWlsYWJsZUZlYXR1cmVzLmpvaW4oJywgJyl9LmA7XG59XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFibGUtZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1bnN0YWJsZS1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnREEsMERBbUNDO0FBT0Qsb0VBVUM7QUFwR0QsaURBQW1DO0FBRW5DOztHQUVHO0FBQ0gsSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLG9EQUFvRDtJQUNwRCx3Q0FBdUIsQ0FBQTtJQUN2Qiw4REFBOEQ7SUFDOUQsMENBQXlCLENBQUE7SUFDekIsd0RBQXdEO0lBQ3hELG9DQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxhQUFhLDZCQUFiLGFBQWEsUUFPeEI7QUFjRDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQW9DO0lBQ2hFLHVCQUF1QixFQUFFO1FBQ3ZCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztRQUM3QixrQkFBa0IsRUFBRSxnV0FBZ1c7UUFDcFgsY0FBYyxFQUFFLG9IQUFvSDtLQUNySTtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztRQUM3QixrQkFBa0IsRUFBRSxvTUFBb007UUFDeE4sY0FBYyxFQUFFLDZGQUE2RjtLQUM5RztDQUNGLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLG1CQUE2QixFQUFFO0lBQ3JFLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUVuQyxLQUFLLE1BQU0sV0FBVyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcseUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2Isb0NBQW9DO1lBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsOEJBQThCLFdBQVcsaUNBQWlDLENBQUMsQ0FBQztZQUMzRixTQUFTO1FBQ1gsQ0FBQztRQUVELFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLEtBQUssYUFBYSxDQUFDLE9BQU87Z0JBQ3hCLHlEQUF5RDtnQkFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7Z0JBQzFELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxhQUFhLENBQUMsVUFBVTtnQkFDM0IsNENBQTRDO2dCQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBRVIsS0FBSyxhQUFhLENBQUMsU0FBUztnQkFDMUIsNENBQTRDO2dCQUM1QyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDRCQUE0QjtJQUMxQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQWlCLENBQUM7U0FDeEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQztTQUNwRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QixJQUFJLGlCQUFpQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLCtDQUErQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxPQUFPLHVCQUF1QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuLyoqXG4gKiBTdGF0dXMgb2YgYW4gdW5zdGFibGUgZmVhdHVyZVxuICovXG5leHBvcnQgZW51bSBGZWF0dXJlU3RhdHVzIHtcbiAgLyoqIEZlYXR1cmUgaXMgYWN0aXZlbHkgc3VwcG9ydGVkIGFuZCBjYW4gYmUgdXNlZCAqL1xuICBTVVBQT1JURUQgPSAnc3VwcG9ydGVkJyxcbiAgLyoqIEZlYXR1cmUgaXMgZGVwcmVjYXRlZCBidXQgc3RpbGwgZnVuY3Rpb25hbCAtIHdhcm5zIHVzZXIgKi9cbiAgREVQUkVDQVRFRCA9ICdkZXByZWNhdGVkJyxcbiAgLyoqIEZlYXR1cmUgaGFzIGJlZW4gcmVtb3ZlZCAtIHdhcm5zIHVzZXIgYW5kIGlnbm9yZXMgKi9cbiAgUkVNT1ZFRCA9ICdyZW1vdmVkJyxcbn1cblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGFuIHVuc3RhYmxlIGZlYXR1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnN0YWJsZUZlYXR1cmUge1xuICAvKiogQ3VycmVudCBzdGF0dXMgb2YgdGhlIGZlYXR1cmUgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBGZWF0dXJlU3RhdHVzO1xuICAvKiogV2FybmluZyBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiByZXF1ZXN0ZWQgZmVhdHVyZSBpcyBkZXByZWNhdGVkICovXG4gIHJlYWRvbmx5IGRlcHJlY2F0aW9uTWVzc2FnZTogc3RyaW5nO1xuICAvKiogTWVzc2FnZSB0byBkaXNwbGF5IGZvciByZXF1ZXN0ZWQgZmVhdHVyZXMgdGhhdCBhcmUgcmVtb3ZlZCAqL1xuICByZWFkb25seSByZW1vdmFsTWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdHJ5IG9mIGFsbCB1bnN0YWJsZSBmZWF0dXJlc1xuICovXG5leHBvcnQgY29uc3QgVU5TVEFCTEVfRkVBVFVSRVM6IFJlY29yZDxzdHJpbmcsIFVuc3RhYmxlRmVhdHVyZT4gPSB7XG4gICdkZXByZWNhdGVkLWNsaS1lbmdpbmUnOiB7XG4gICAgc3RhdHVzOiBGZWF0dXJlU3RhdHVzLlJFTU9WRUQsXG4gICAgZGVwcmVjYXRpb25NZXNzYWdlOiAnWW91IGhhdmUgb3B0ZWQtaW4gdG8gdXNlIHRoZSBkZXByZWNhdGVkIENMSSBlbmdpbmUgd2hpY2ggaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gSmFudWFyeSAyMDI2LiBJZiB5b3UgaGF2ZSBlbmNvdW50ZXJlZCBibG9ja2VycyB3aGlsZSB1c2luZyB0aGUgbmV3IGRlZmF1bHQgZW5naW5lLCBwbGVhc2UgbGV0IHVzIGtub3cgYnkgb3BlbmluZyBhbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS9pc3N1ZXMvbmV3L2Nob29zZVxcblxcblRvIHVzZSB0aGUgbmV3IGRlZmF1bHQgZW5naW5lLCByZW1vdmUgdGhlIGAtLXVuc3RhYmxlPWRlcHJlY2F0ZWQtY2xpLWVuZ2luZWAgb3B0aW9uLicsXG4gICAgcmVtb3ZhbE1lc3NhZ2U6ICdUaGUgQ0xJIGVuZ2luZSBoYXMgYmVlbiByZW1vdmVkLiBUaGUgdG9vbGtpdC1saWIgZW5naW5lIGlzIG5vdyB0aGUgb25seSBzdXBwb3J0ZWQgZW5naW5lLiBQbGVhc2UgcmVtb3ZlIHRoaXMgZmxhZy4nLFxuICB9LFxuICAndG9vbGtpdC1saWItZW5naW5lJzoge1xuICAgIHN0YXR1czogRmVhdHVyZVN0YXR1cy5SRU1PVkVELFxuICAgIGRlcHJlY2F0aW9uTWVzc2FnZTogJ1RoZSB0b29sa2l0LWxpYiBlbmdpbmUgaXMgbm93IHRoZSBkZWZhdWx0IGVuZ2luZS4gVGhpcyBmbGFnIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZC4gWW91IG1heSBjaG9vc2UgdG8gdGVtcG9yYXJpbHkgcmV2ZXJ0IHRvIHRoZSBvbGQgZW5naW5lIGJ5IGFkZGluZyB0aGUgYC0tdW5zdGFibGU9ZGVwcmVjYXRlZC1jbGktZW5naW5lYCBvcHRpb24uJyxcbiAgICByZW1vdmFsTWVzc2FnZTogJ1RoZSB0b29sa2l0LWxpYiBlbmdpbmUgaXMgbm93IHRoZSBkZWZhdWx0IGFuZCBvbmx5IGVuZ2luZS4gVGhpcyBmbGFnIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZC4nLFxuICB9LFxufTtcblxuLyoqXG4gKiBQcm9jZXNzIHVuc3RhYmxlIGZlYXR1cmUgZmxhZ3MgYW5kIGVtaXQgYXBwcm9wcmlhdGUgd2FybmluZ3NcbiAqXG4gKiBAcGFyYW0gdW5zdGFibGVGZWF0dXJlcyAtIEFycmF5IG9mIGZlYXR1cmUgbmFtZXMgZnJvbSBDTEkgLS11bnN0YWJsZSBvcHRpb25cbiAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkLCBlbmFibGVkIGZlYXR1cmUgbmFtZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NVbnN0YWJsZUZlYXR1cmVzKHVuc3RhYmxlRmVhdHVyZXM6IHN0cmluZ1tdID0gW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHZhbGlkRmVhdHVyZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBmZWF0dXJlTmFtZSBvZiB1bnN0YWJsZUZlYXR1cmVzKSB7XG4gICAgY29uc3QgZmVhdHVyZSA9IFVOU1RBQkxFX0ZFQVRVUkVTW2ZlYXR1cmVOYW1lXTtcblxuICAgIGlmICghZmVhdHVyZSkge1xuICAgICAgLy8gVW5rbm93biBmZWF0dXJlIC0gd2FybiBhbmQgaWdub3JlXG4gICAgICBsb2dnZXIud2FybmluZyhgVW5rbm93biB1bnN0YWJsZSBmZWF0dXJlOiAnJHtmZWF0dXJlTmFtZX0nLiBUaGlzIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQuYCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZlYXR1cmUuc3RhdHVzKSB7XG4gICAgICBjYXNlIEZlYXR1cmVTdGF0dXMuUkVNT1ZFRDpcbiAgICAgICAgLy8gUmVtb3ZlZCBmZWF0dXJlIC0gd2FybiB3aXRoIHJlbW92YWwgbWVzc2FnZSBhbmQgaWdub3JlXG4gICAgICAgIGxvZ2dlci53YXJuaW5nKGBbUmVtb3ZlZF0gJHtmZWF0dXJlLmRlcHJlY2F0aW9uTWVzc2FnZX1gKTtcbiAgICAgICAgaWYgKGZlYXR1cmUucmVtb3ZhbE1lc3NhZ2UpIHtcbiAgICAgICAgICBsb2dnZXIud2FybmluZyhmZWF0dXJlLnJlbW92YWxNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBGZWF0dXJlU3RhdHVzLkRFUFJFQ0FURUQ6XG4gICAgICAgIC8vIERlcHJlY2F0ZWQgZmVhdHVyZSAtIHdhcm4gYnV0IHN0aWxsIGFwcGx5XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKGBbRGVwcmVjYXRlZF0gJHtmZWF0dXJlLmRlcHJlY2F0aW9uTWVzc2FnZX1gKTtcbiAgICAgICAgdmFsaWRGZWF0dXJlcy5wdXNoKGZlYXR1cmVOYW1lKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRmVhdHVyZVN0YXR1cy5TVVBQT1JURUQ6XG4gICAgICAgIC8vIFN1cHBvcnRlZCBmZWF0dXJlIC0gYXBwbHkgd2l0aG91dCB3YXJuaW5nXG4gICAgICAgIHZhbGlkRmVhdHVyZXMucHVzaChmZWF0dXJlTmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZEZlYXR1cmVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZXNjcmlwdGlvbiBvZiBhdmFpbGFibGUgdW5zdGFibGUgZmVhdHVyZXMgZm9yIENMSSBoZWxwIHRleHRcbiAqXG4gKiBAcmV0dXJucyBBIHN0cmluZyBkZXNjcmliaW5nIGF2YWlsYWJsZSBmZWF0dXJlcyBvciBpbmRpY2F0aW5nIG5vbmUgYXJlIGF2YWlsYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXZhaWxhYmxlRmVhdHVyZXNEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICBjb25zdCBhdmFpbGFibGVGZWF0dXJlcyA9IE9iamVjdC5lbnRyaWVzKFVOU1RBQkxFX0ZFQVRVUkVTKVxuICAgIC5maWx0ZXIoKFtfLCBmZWF0dXJlXSkgPT4gZmVhdHVyZS5zdGF0dXMgPT09IEZlYXR1cmVTdGF0dXMuU1VQUE9SVEVEKVxuICAgIC5tYXAoKFtuYW1lXSkgPT4gbmFtZSk7XG5cbiAgaWYgKGF2YWlsYWJsZUZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnQ3VycmVudGx5IG5vIHVuc3RhYmxlIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUuJztcbiAgfVxuXG4gIHJldHVybiBgQXZhaWxhYmxlIGZlYXR1cmVzOiAke2F2YWlsYWJsZUZlYXR1cmVzLmpvaW4oJywgJyl9LmA7XG59XG4iXX0=
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.DiagnosticReason = void 0;
4
40
  exports.printSummary = printSummary;
@@ -7,8 +43,8 @@ exports.printResults = printResults;
7
43
  exports.printLaggards = printLaggards;
8
44
  exports.formatError = formatError;
9
45
  const util_1 = require("util");
10
- const chalk = require("chalk");
11
- const logger = require("../logger");
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const logger = __importStar(require("../logger"));
12
48
  /**
13
49
  * Represents possible reasons for a diagnostic
14
50
  */
@@ -55,10 +91,10 @@ var DiagnosticReason;
55
91
  })(DiagnosticReason || (exports.DiagnosticReason = DiagnosticReason = {}));
56
92
  function printSummary(total, failed) {
57
93
  if (failed > 0) {
58
- logger.print('%s: %s %s, %s total', chalk.bold('Tests'), chalk.red(failed), chalk.red('failed'), total);
94
+ logger.print('%s: %s %s, %s total', chalk_1.default.bold('Tests'), chalk_1.default.red(failed), chalk_1.default.red('failed'), total);
59
95
  }
60
96
  else {
61
- logger.print('%s: %s %s, %s total', chalk.bold('Tests'), chalk.green(total), chalk.green('passed'), total);
97
+ logger.print('%s: %s %s, %s total', chalk_1.default.bold('Tests'), chalk_1.default.green(total), chalk_1.default.green('passed'), total);
62
98
  }
63
99
  }
64
100
  /**
@@ -76,29 +112,29 @@ function formatAssertionResults(results) {
76
112
  function printResults(diagnostic) {
77
113
  switch (diagnostic.reason) {
78
114
  case DiagnosticReason.SNAPSHOT_SUCCESS:
79
- logger.success(' UNCHANGED %s %s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`));
115
+ logger.success(' UNCHANGED %s %s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`));
80
116
  break;
81
117
  case DiagnosticReason.TEST_SUCCESS:
82
- logger.success(' SUCCESS %s %s\n ', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`));
118
+ logger.success(' SUCCESS %s %s\n ', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`));
83
119
  break;
84
120
  case DiagnosticReason.NO_SNAPSHOT:
85
- logger.error(' NEW %s %s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`));
121
+ logger.error(' NEW %s %s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`));
86
122
  break;
87
123
  case DiagnosticReason.SNAPSHOT_FAILED:
88
- logger.error(' CHANGED %s %s\n%s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
124
+ logger.error(' CHANGED %s %s\n%s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
89
125
  break;
90
126
  case DiagnosticReason.TEST_WARNING:
91
- logger.warning(' WARN %s %s\n%s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
127
+ logger.warning(' WARN %s %s\n%s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
92
128
  break;
93
129
  case DiagnosticReason.SNAPSHOT_ERROR:
94
130
  case DiagnosticReason.TEST_ERROR:
95
- logger.error(' ERROR %s %s\n%s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
131
+ logger.error(' ERROR %s %s\n%s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
96
132
  break;
97
133
  case DiagnosticReason.TEST_FAILED:
98
- logger.error(' FAILED %s %s\n%s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
134
+ logger.error(' FAILED %s %s\n%s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
99
135
  break;
100
136
  case DiagnosticReason.ASSERTION_FAILED:
101
- logger.error(' ASSERT %s %s\n%s', diagnostic.testName, chalk.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
137
+ logger.error(' ASSERT %s %s\n%s', diagnostic.testName, chalk_1.default.gray(`${diagnostic.duration}s`), indentLines(diagnostic.message, 6));
102
138
  break;
103
139
  }
104
140
  for (const addl of diagnostic.additionalMessages ?? []) {
@@ -117,14 +153,14 @@ function printLaggards(testNames) {
117
153
  `Waiting for ${testNames.size} more`,
118
154
  testNames.size < 10 ? ['(', Array.from(testNames).join(', '), ')'].join('') : '',
119
155
  ];
120
- logger.print(chalk.grey(parts.filter(x => x).join(' ')));
156
+ logger.print(chalk_1.default.grey(parts.filter(x => x).join(' ')));
121
157
  }
122
158
  function formatError(error) {
123
159
  const name = error.name || 'Error';
124
160
  const message = error.message || String(error);
125
161
  if (error.cause) {
126
- return `${name}: ${message}\n${chalk.gray('Cause: ' + formatError(error.cause))}`;
162
+ return `${name}: ${message}\n${chalk_1.default.gray('Cause: ' + formatError(error.cause))}`;
127
163
  }
128
164
  return `${name}: ${message}`;
129
165
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdUQSxvQ0FNQztBQU1ELHdEQUlDO0FBS0Qsb0NBK0JDO0FBU0Qsc0NBUUM7QUFFRCxrQ0FTQztBQWhZRCwrQkFBOEI7QUFFOUIsK0JBQStCO0FBQy9CLG9DQUFvQztBQWdOcEM7O0dBRUc7QUFDSCxJQUFZLGdCQStDWDtBQS9DRCxXQUFZLGdCQUFnQjtJQUMxQjs7O09BR0c7SUFDSCwrQ0FBMkIsQ0FBQTtJQUUzQjs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCxpREFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCx1REFBbUMsQ0FBQTtJQUVuQzs7T0FFRztJQUNILHFEQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gseURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxpREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHlEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUEvQ1csZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUErQzNCO0FBMkNELFNBQWdCLFlBQVksQ0FBQyxLQUFhLEVBQUUsTUFBYztJQUN4RCxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0csQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hILENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBeUI7SUFDOUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxhQUFNLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDdEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxVQUFzQjtJQUNqRCxRQUFRLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixLQUFLLGdCQUFnQixDQUFDLGdCQUFnQjtZQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakcsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsWUFBWTtZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekcsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsV0FBVztZQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0YsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsZUFBZTtZQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsWUFBWTtZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1FBQ3JDLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtZQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsV0FBVztZQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsZ0JBQWdCO1lBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2SSxNQUFNO0lBQ1YsQ0FBQztJQUNELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxPQUFlLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDN0MsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsU0FBc0I7SUFDbEQsTUFBTSxLQUFLLEdBQUc7UUFDWixJQUFJO1FBQ0osZUFBZSxTQUFTLENBQUMsSUFBSSxPQUFPO1FBQ3BDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDakYsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEtBQVU7SUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsT0FBTyxHQUFHLElBQUksS0FBSyxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELE9BQU8sR0FBRyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUltcGFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IEludGVnVGVzdEluZm8gfSBmcm9tICcuLi9ydW5uZXIvaW50ZWdyYXRpb24tdGVzdHMnO1xuXG4vKipcbiAqIFRoZSBhZ2dyZWdhdGUgcmVzdWx0cyBmcm9tIHJ1bm5pbmcgYXNzZXJ0aW9ucyBvbiBhIHRlc3QgY2FzZVxuICovXG5leHBvcnQgdHlwZSBBc3NlcnRpb25SZXN1bHRzID0geyBbaWQ6IHN0cmluZ106IEFzc2VydGlvblJlc3VsdCB9O1xuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgYW4gaW5kaXZpZHVhbCBhc3NlcnRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlcnRpb25SZXN1bHQge1xuICAvKipcbiAgICogVGhlIGFzc2VydGlvbiBtZXNzYWdlLiBJZiB0aGUgYXNzZXJ0aW9uIGZhaWxlZCwgdGhpcyB3aWxsXG4gICAqIGluY2x1ZGUgdGhlIHJlYXNvbi5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYXNzZXJ0aW9uIHN1Y2NlZWRlZCBvciBmYWlsZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ2ZhaWwnO1xufVxuXG4vKipcbiAqIENvbmZpZyBmb3IgYW4gaW50ZWdyYXRpb24gdGVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnVGVzdFdvcmtlckNvbmZpZyBleHRlbmRzIEludGVnVGVzdEluZm8ge1xuICAvKipcbiAgICogQSBsaXN0IG9mIGFueSBkZXN0cnVjdGl2ZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBkZXN0cnVjdGl2ZUNoYW5nZXM/OiBEZXN0cnVjdGl2ZUNoYW5nZVtdO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIG9uIGFueSBkZXN0cnVjdGl2ZSBjaGFuZ2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJ1Y3RpdmVDaGFuZ2Uge1xuICAvKipcbiAgICogVGhlIGxvZ2ljYWxJZCBvZiB0aGUgcmVzb3VyY2Ugd2l0aCBhIGRlc3RydWN0aXZlIGNoYW5nZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFjayB0aGF0IGNvbnRhaW5zIHRoZSBkZXN0cnVjdGl2ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1wYWN0IG9mIHRoZSBkZXN0cnVjdGl2ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltcGFjdDogUmVzb3VyY2VJbXBhY3Q7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBpbnRlZ3JhdGlvbiB0ZXN0cyBtZXRyaWNzIGZvciBhIGdpdmVuIHdvcmtlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnUnVubmVyTWV0cmljcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHRoZSB0ZXN0IHdhcyBydW4gaW5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgZHVyYXRpb24gb2YgdGhlIHdvcmtlci5cbiAgICogVGhpcyB3aWxsIGJlIHRoZSBzdW0gb2YgYWxsIGluZGl2aWR1YWwgdGVzdCBkdXJhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHRoZSBkdXJhdGlvbiBvZiBpbmRpdmlkdWFsIHRlc3RzIHRoYXQgdGhlXG4gICAqIHdvcmtlciBleGVjdXRlZC5cbiAgICpcbiAgICogTWFwIG9mIHRlc3ROYW1lIHRvIGR1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdHM6IHsgW3Rlc3ROYW1lOiBzdHJpbmddOiBudW1iZXIgfTtcblxuICAvKipcbiAgICogVGhlIHByb2ZpbGUgdGhhdCB3YXMgdXNlZCB0byBydW4gdGhlIHRlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IHByb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU25hcHNob3RWZXJpZmljYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFJldGFpbiBmYWlsZWQgc25hcHNob3QgY29tcGFyaXNvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldGFpbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFZlcmJvc2UgbW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyYm9zZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW50ZWdyYXRpb24gdGVzdCByZXN1bHRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdCYXRjaFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgZmFpbGVkIHRlc3RzXG4gICAqL1xuICByZWFkb25seSBmYWlsZWRUZXN0czogSW50ZWdUZXN0SW5mb1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIEludGVncmF0aW9uIHRlc3QgbWV0cmljcy4gRWFjaCBlbnRyeSBpbiB0aGVcbiAgICogbGlzdCByZXByZXNlbnRzIG1ldHJpY3MgZnJvbSBhIHNpbmdsZSB3b3JrZXIgKGFjY291bnQgKyByZWdpb24pLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljczogSW50ZWdSdW5uZXJNZXRyaWNzW107XG59XG5cbi8qKlxuICogQ29tbW9uIG9wdGlvbnMgZm9yIHJ1bm5pbmcgaW50ZWdyYXRpb24gdGVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBpbnRlZ3JhdGlvbiB0ZXN0cyB0byBydW5cbiAgICogaW4gdGhpcyBiYXRjaFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdHM6IEludGVnVGVzdFdvcmtlckNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkZXN0cm95IHRoZSBzdGFja3MgYXQgdGhlXG4gICAqIGVuZCBvZiB0aGUgdGVzdFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjbGVhbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBpcyBzZXQgdG8gYHRydWVgIHRoZSBzbmFwc2hvdCB3aWxsXG4gICAqIGJlIGNyZWF0ZWQgX3dpdGhvdXRfIHJ1bm5pbmcgdGhlIGludGVncmF0aW9uIHRlc3RcbiAgICogVGhlIHJlc3VsdGluZyBzbmFwc2hvdCBTSE9VTEQgTk9UIGJlIGNoZWNrZWQgaW5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsZXZlbCBvZiB2ZXJib3NpdHkgZm9yIGxvZ2dpbmcuXG4gICAqIEhpZ2hlciBudW1iZXIgbWVhbnMgbW9yZSBvdXRwdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHZlcmJvc2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSB0aGVuIHRoZSBzdGFjayB1cGRhdGUgd29ya2Zsb3cgd2lsbCBiZSBkaXNhYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVXb3JrZmxvdz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2l0IHRhZ3MgdG8gZGVwbG95IGluIHNlcXVlbmNlIGJlZm9yZSBkZXBsb3lpbmcgdGhlIGN1cnJlbnQgY29kZS5cbiAgICogV2hlbiBwcm92aWRlZCwgcmVwbGFjZXMgdGhlIG5vcm1hbCBtZXJnZS1iYXNlIHVwZGF0ZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIG5vcm1hbCB1cGRhdGUgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUZyb21UYWdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRydWUgaWYgcnVubmluZyBpbiB3YXRjaCBtb2RlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB3YXRjaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgaW5kaWNhdGVkIHByb3h5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJveHlcbiAgICovXG4gIHJlYWRvbmx5IHByb3h5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIENBIGNlcnRpZmljYXRlIHRvIHVzZSB3aGVuIHZhbGlkYXRpbmcgSFRUUFMgcmVxdWVzdHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIENBIGJ1bmRsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FCdW5kbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIElBTSByb2xlIGZvciBDbG91ZEZvcm1hdGlvbiB0byBhc3N1bWUgZHVyaW5nIGRlcGxveS9kZXN0cm95XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBib290c3RyYXAgY2ZuLWV4ZWMgcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyByZXNvdXJjZXMgdGhhdCBmYWlsIHRvIGRlbGV0ZSBkdXJpbmcgYSBzdGFjayB1cGRhdGUuXG4gICAqXG4gICAqIFdoZW4gZmFsc2UsIHRoZSB0ZXN0IHdpbGwgZmFpbCBpZiBDbG91ZEZvcm1hdGlvbiBza2lwcyBkZWxldGluZyBhIHJlc291cmNlXG4gICAqIGR1cmluZyBhIHN0YWNrIHVwZGF0ZS4gV2hlbiB0cnVlLCBvbmx5IGEgd2FybmluZyBpcyBwcmludGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dEZWxldGVGYWlsdXJlcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBwb3NzaWJsZSByZWFzb25zIGZvciBhIGRpYWdub3N0aWNcbiAqL1xuZXhwb3J0IGVudW0gRGlhZ25vc3RpY1JlYXNvbiB7XG4gIC8qKlxuICAgKiBUaGUgaW50ZWdyYXRpb24gdGVzdCBmYWlsZWQgYmVjYXVzZSB0aGVyZVxuICAgKiBpcyBub3QgZXhpc3Rpbmcgc25hcHNob3RcbiAgICovXG4gIE5PX1NOQVBTSE9UID0gJ05PX1NOQVBTSE9UJyxcblxuICAvKipcbiAgICogVGhlIGludGVncmF0aW9uIHRlc3QgZmFpbGVkXG4gICAqL1xuICBURVNUX0ZBSUxFRCA9ICdURVNUX0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFRoZXJlIHdhcyBhbiBlcnJvciBydW5uaW5nIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqL1xuICBURVNUX0VSUk9SID0gJ1RFU1RfRVJST1InLFxuXG4gIC8qKlxuICAgKiBBIG5vbi1mYWlsaW5nIHdhcm5pbmcgZnJvbSB0aGUgaW50ZWdyYXRpb24gdGVzdCBydW5cbiAgICovXG4gIFRFU1RfV0FSTklORyA9ICdURVNUX1dBUk5JTkcnLFxuXG4gIC8qKlxuICAgKiBUaGUgc25hcHNob3QgdGVzdCBmYWlsZWQgYmVjYXVzZSB0aGUgYWN0dWFsXG4gICAqIHNuYXBzaG90IHdhcyBkaWZmZXJlbnQgdGhhbiB0aGUgZXhwZWN0ZWQgc25hcHNob3RcbiAgICovXG4gIFNOQVBTSE9UX0ZBSUxFRCA9ICdTTkFQU0hPVF9GQUlMRUQnLFxuXG4gIC8qKlxuICAgKiBUaGUgc25hcHNob3QgdGVzdCBmYWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMgYW4gZXJyb3IgZXhlY3V0aW5nIGl0XG4gICAqL1xuICBTTkFQU0hPVF9FUlJPUiA9ICdTTkFQU0hPVF9FUlJPUicsXG5cbiAgLyoqXG4gICAqIFRoZSBzbmFwc2hvdCB0ZXN0IHN1Y2NlZWRlZFxuICAgKi9cbiAgU05BUFNIT1RfU1VDQ0VTUyA9ICdTTkFQU0hPVF9TVUNDRVNTJyxcblxuICAvKipcbiAgICogVGhlIGludGVncmF0aW9uIHRlc3Qgc3VjY2VlZGVkXG4gICAqL1xuICBURVNUX1NVQ0NFU1MgPSAnVEVTVF9TVUNDRVNTJyxcblxuICAvKipcbiAgICogVGhlIGFzc2VydGlvbiBmYWlsZWRcbiAgICovXG4gIEFTU0VSVElPTl9GQUlMRUQgPSAnQVNTRVJUSU9OX0ZBSUxFRCcsXG59XG5cbi8qKlxuICogSW50ZWdyYXRpb24gdGVzdCBkaWFnbm9zdGljc1xuICogVGhpcyBpcyB1c2VkIHRvIHJlcG9ydCBiYWNrIHRoZSBzdGF0dXMgb2YgZWFjaCB0ZXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGVzdFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWNrXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpYWdub3N0aWMgbWVzc2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBpdCB0b29rIHRvIHJ1biB0aGUgdGVzdFxuICAgKi9cbiAgcmVhZG9ubHkgZHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWFzb24gZm9yIHRoZSBkaWFnbm9zdGljXG4gICAqL1xuICByZWFkb25seSByZWFzb246IERpYWdub3N0aWNSZWFzb247XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWVzc2FnZXMgdG8gcHJpbnRcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxNZXNzYWdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZWxldmFudCBjb25maWcgb3B0aW9ucyB0aGF0IHdlcmUgdXNlZCBmb3IgdGhlIGludGVnIHRlc3RcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludFN1bW1hcnkodG90YWw6IG51bWJlciwgZmFpbGVkOiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKGZhaWxlZCA+IDApIHtcbiAgICBsb2dnZXIucHJpbnQoJyVzOiAgICAlcyAlcywgJXMgdG90YWwnLCBjaGFsay5ib2xkKCdUZXN0cycpLCBjaGFsay5yZWQoZmFpbGVkKSwgY2hhbGsucmVkKCdmYWlsZWQnKSwgdG90YWwpO1xuICB9IGVsc2Uge1xuICAgIGxvZ2dlci5wcmludCgnJXM6ICAgICVzICVzLCAlcyB0b3RhbCcsIGNoYWxrLmJvbGQoJ1Rlc3RzJyksIGNoYWxrLmdyZWVuKHRvdGFsKSwgY2hhbGsuZ3JlZW4oJ3Bhc3NlZCcpLCB0b3RhbCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIGFzc2VydGlvbiByZXN1bHRzIHNvIHRoYXQgdGhlIHJlc3VsdHMgY2FuIGJlXG4gKiBwcmludGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBc3NlcnRpb25SZXN1bHRzKHJlc3VsdHM6IEFzc2VydGlvblJlc3VsdHMpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0cylcbiAgICAubWFwKChbaWQsIHJlc3VsdF0pID0+IGZvcm1hdCgnJXMlcycsIGlkLCByZXN1bHQuc3RhdHVzID09PSAnc3VjY2VzcycgPyBgIC0gJHtyZXN1bHQuc3RhdHVzfWAgOiBgXFxuJHtyZXN1bHQubWVzc2FnZX1gKSlcbiAgICAuam9pbignXFxuICAgICAgJyk7XG59XG5cbi8qKlxuICogUHJpbnQgb3V0IHRoZSByZXN1bHRzIGZyb20gdGVzdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50UmVzdWx0cyhkaWFnbm9zdGljOiBEaWFnbm9zdGljKTogdm9pZCB7XG4gIHN3aXRjaCAoZGlhZ25vc3RpYy5yZWFzb24pIHtcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfU1VDQ0VTUzpcbiAgICAgIGxvZ2dlci5zdWNjZXNzKCcgIFVOQ0hBTkdFRCAgJXMgJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5URVNUX1NVQ0NFU1M6XG4gICAgICBsb2dnZXIuc3VjY2VzcygnICBTVUNDRVNTICAgICVzICVzXFxuICAgICAgJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uTk9fU05BUFNIT1Q6XG4gICAgICBsb2dnZXIuZXJyb3IoJyAgTkVXICAgICAgICAlcyAlcycsIGRpYWdub3N0aWMudGVzdE5hbWUsIGNoYWxrLmdyYXkoYCR7ZGlhZ25vc3RpYy5kdXJhdGlvbn1zYCkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0ZBSUxFRDpcbiAgICAgIGxvZ2dlci5lcnJvcignICBDSEFOR0VEICAgICVzICVzXFxuJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApLCBpbmRlbnRMaW5lcyhkaWFnbm9zdGljLm1lc3NhZ2UsIDYpKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5URVNUX1dBUk5JTkc6XG4gICAgICBsb2dnZXIud2FybmluZygnICBXQVJOICAgICAgICVzICVzXFxuJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApLCBpbmRlbnRMaW5lcyhkaWFnbm9zdGljLm1lc3NhZ2UsIDYpKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9FUlJPUjpcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uVEVTVF9FUlJPUjpcbiAgICAgIGxvZ2dlci5lcnJvcignICBFUlJPUiAgICAgICVzICVzXFxuJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApLCBpbmRlbnRMaW5lcyhkaWFnbm9zdGljLm1lc3NhZ2UsIDYpKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5URVNUX0ZBSUxFRDpcbiAgICAgIGxvZ2dlci5lcnJvcignICBGQUlMRUQgICAgICVzICVzXFxuJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApLCBpbmRlbnRMaW5lcyhkaWFnbm9zdGljLm1lc3NhZ2UsIDYpKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5BU1NFUlRJT05fRkFJTEVEOlxuICAgICAgbG9nZ2VyLmVycm9yKCcgIEFTU0VSVCAgICAgJXMgJXNcXG4lcycsIGRpYWdub3N0aWMudGVzdE5hbWUsIGNoYWxrLmdyYXkoYCR7ZGlhZ25vc3RpYy5kdXJhdGlvbn1zYCksIGluZGVudExpbmVzKGRpYWdub3N0aWMubWVzc2FnZSwgNikpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgZm9yIChjb25zdCBhZGRsIG9mIGRpYWdub3N0aWMuYWRkaXRpb25hbE1lc3NhZ2VzID8/IFtdKSB7XG4gICAgbG9nZ2VyLnByaW50KGAgICAgICAke2FkZGx9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUYWtlcyBhIG11bHRpbGluZSBzdHJpbmcgYW5kIGluZGVudHMgZXZlcnkgbGluZSB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBzcGFjZXMuXG4gKi9cbmZ1bmN0aW9uIGluZGVudExpbmVzKG1lc3NhZ2U6IHN0cmluZywgY291bnQgPSAyKTogc3RyaW5nIHtcbiAgcmV0dXJuIG1lc3NhZ2Uuc3BsaXQoJ1xcbicpLm1hcChsaW5lID0+ICcgJy5yZXBlYXQoY291bnQpICsgbGluZSkuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludExhZ2dhcmRzKHRlc3ROYW1lczogU2V0PHN0cmluZz4pIHtcbiAgY29uc3QgcGFydHMgPSBbXG4gICAgJyAgJyxcbiAgICBgV2FpdGluZyBmb3IgJHt0ZXN0TmFtZXMuc2l6ZX0gbW9yZWAsXG4gICAgdGVzdE5hbWVzLnNpemUgPCAxMCA/IFsnKCcsIEFycmF5LmZyb20odGVzdE5hbWVzKS5qb2luKCcsICcpLCAnKSddLmpvaW4oJycpIDogJycsXG4gIF07XG5cbiAgbG9nZ2VyLnByaW50KGNoYWxrLmdyZXkocGFydHMuZmlsdGVyKHggPT4geCkuam9pbignICcpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvcihlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZSA9IGVycm9yLm5hbWUgfHwgJ0Vycm9yJztcbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgU3RyaW5nKGVycm9yKTtcblxuICBpZiAoZXJyb3IuY2F1c2UpIHtcbiAgICByZXR1cm4gYCR7bmFtZX06ICR7bWVzc2FnZX1cXG4ke2NoYWxrLmdyYXkoJ0NhdXNlOiAnICsgZm9ybWF0RXJyb3IoZXJyb3IuY2F1c2UpKX1gO1xuICB9XG5cbiAgcmV0dXJuIGAke25hbWV9OiAke21lc3NhZ2V9YDtcbn1cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdUQSxvQ0FNQztBQU1ELHdEQUlDO0FBS0Qsb0NBK0JDO0FBU0Qsc0NBUUM7QUFFRCxrQ0FTQztBQWhZRCwrQkFBOEI7QUFFOUIsa0RBQTBCO0FBQzFCLGtEQUFvQztBQWdOcEM7O0dBRUc7QUFDSCxJQUFZLGdCQStDWDtBQS9DRCxXQUFZLGdCQUFnQjtJQUMxQjs7O09BR0c7SUFDSCwrQ0FBMkIsQ0FBQTtJQUUzQjs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7SUFFekI7O09BRUc7SUFDSCxpREFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCx1REFBbUMsQ0FBQTtJQUVuQzs7T0FFRztJQUNILHFEQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gseURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxpREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHlEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUEvQ1csZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUErQzNCO0FBMkNELFNBQWdCLFlBQVksQ0FBQyxLQUFhLEVBQUUsTUFBYztJQUN4RCxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0csQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLGVBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxlQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hILENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBeUI7SUFDOUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxhQUFNLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDdEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxVQUFzQjtJQUNqRCxRQUFRLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixLQUFLLGdCQUFnQixDQUFDLGdCQUFnQjtZQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakcsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsWUFBWTtZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekcsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsV0FBVztZQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0YsTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsZUFBZTtZQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsWUFBWTtZQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1FBQ3JDLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtZQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsV0FBVztZQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkksTUFBTTtRQUNSLEtBQUssZ0JBQWdCLENBQUMsZ0JBQWdCO1lBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2SSxNQUFNO0lBQ1YsQ0FBQztJQUNELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxPQUFlLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDN0MsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsU0FBc0I7SUFDbEQsTUFBTSxLQUFLLEdBQUc7UUFDWixJQUFJO1FBQ0osZUFBZSxTQUFTLENBQUMsSUFBSSxPQUFPO1FBQ3BDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDakYsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEtBQVU7SUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsT0FBTyxHQUFHLElBQUksS0FBSyxPQUFPLEtBQUssZUFBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELE9BQU8sR0FBRyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUltcGFjdCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ1Rlc3RJbmZvIH0gZnJvbSAnLi4vcnVubmVyL2ludGVncmF0aW9uLXRlc3RzJztcblxuLyoqXG4gKiBUaGUgYWdncmVnYXRlIHJlc3VsdHMgZnJvbSBydW5uaW5nIGFzc2VydGlvbnMgb24gYSB0ZXN0IGNhc2VcbiAqL1xuZXhwb3J0IHR5cGUgQXNzZXJ0aW9uUmVzdWx0cyA9IHsgW2lkOiBzdHJpbmddOiBBc3NlcnRpb25SZXN1bHQgfTtcblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGFuIGluZGl2aWR1YWwgYXNzZXJ0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXJ0aW9uUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBhc3NlcnRpb24gbWVzc2FnZS4gSWYgdGhlIGFzc2VydGlvbiBmYWlsZWQsIHRoaXMgd2lsbFxuICAgKiBpbmNsdWRlIHRoZSByZWFzb24uXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFzc2VydGlvbiBzdWNjZWVkZWQgb3IgZmFpbGVkXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM6ICdzdWNjZXNzJyB8ICdmYWlsJztcbn1cblxuLyoqXG4gKiBDb25maWcgZm9yIGFuIGludGVncmF0aW9uIHRlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RXb3JrZXJDb25maWcgZXh0ZW5kcyBJbnRlZ1Rlc3RJbmZvIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdHJ1Y3RpdmVDaGFuZ2VzPzogRGVzdHJ1Y3RpdmVDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBvbiBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3RydWN0aXZlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsSWQgb2YgdGhlIHJlc291cmNlIHdpdGggYSBkZXN0cnVjdGl2ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2ljYWxJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgdGhhdCBjb250YWlucyB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltcGFjdCBvZiB0aGUgZGVzdHJ1Y3RpdmUgY2hhbmdlXG4gICAqL1xuICByZWFkb25seSBpbXBhY3Q6IFJlc291cmNlSW1wYWN0O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgaW50ZWdyYXRpb24gdGVzdHMgbWV0cmljcyBmb3IgYSBnaXZlbiB3b3JrZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1J1bm5lck1ldHJpY3Mge1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiB0aGUgdGVzdCB3YXMgcnVuIGluXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRvdGFsIGR1cmF0aW9uIG9mIHRoZSB3b3JrZXIuXG4gICAqIFRoaXMgd2lsbCBiZSB0aGUgc3VtIG9mIGFsbCBpbmRpdmlkdWFsIHRlc3QgZHVyYXRpb25zXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyB0aGUgZHVyYXRpb24gb2YgaW5kaXZpZHVhbCB0ZXN0cyB0aGF0IHRoZVxuICAgKiB3b3JrZXIgZXhlY3V0ZWQuXG4gICAqXG4gICAqIE1hcCBvZiB0ZXN0TmFtZSB0byBkdXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RzOiB7IFt0ZXN0TmFtZTogc3RyaW5nXTogbnVtYmVyIH07XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9maWxlIHRoYXQgd2FzIHVzZWQgdG8gcnVuIHRoZSB0ZXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBzaG90VmVyaWZpY2F0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBSZXRhaW4gZmFpbGVkIHNuYXBzaG90IGNvbXBhcmlzb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXRhaW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWZXJib3NlIG1vZGVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmJvc2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVncmF0aW9uIHRlc3QgcmVzdWx0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnQmF0Y2hSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGZhaWxlZCB0ZXN0c1xuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkVGVzdHM6IEludGVnVGVzdEluZm9bXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBJbnRlZ3JhdGlvbiB0ZXN0IG1ldHJpY3MuIEVhY2ggZW50cnkgaW4gdGhlXG4gICAqIGxpc3QgcmVwcmVzZW50cyBtZXRyaWNzIGZyb20gYSBzaW5nbGUgd29ya2VyIChhY2NvdW50ICsgcmVnaW9uKS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3M6IEludGVnUnVubmVyTWV0cmljc1tdO1xufVxuXG4vKipcbiAqIENvbW1vbiBvcHRpb25zIGZvciBydW5uaW5nIGludGVncmF0aW9uIHRlc3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaW50ZWdyYXRpb24gdGVzdHMgdG8gcnVuXG4gICAqIGluIHRoaXMgYmF0Y2hcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RzOiBJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZGVzdHJveSB0aGUgc3RhY2tzIGF0IHRoZVxuICAgKiBlbmQgb2YgdGhlIHRlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgaXMgc2V0IHRvIGB0cnVlYCB0aGUgc25hcHNob3Qgd2lsbFxuICAgKiBiZSBjcmVhdGVkIF93aXRob3V0XyBydW5uaW5nIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqIFRoZSByZXN1bHRpbmcgc25hcHNob3QgU0hPVUxEIE5PVCBiZSBjaGVja2VkIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgb2YgdmVyYm9zaXR5IGZvciBsb2dnaW5nLlxuICAgKiBIaWdoZXIgbnVtYmVyIG1lYW5zIG1vcmUgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSB2ZXJib3NpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUgdGhlbiB0aGUgc3RhY2sgdXBkYXRlIHdvcmtmbG93IHdpbGwgYmUgZGlzYWJsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlV29ya2Zsb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdpdCB0YWdzIHRvIGRlcGxveSBpbiBzZXF1ZW5jZSBiZWZvcmUgZGVwbG95aW5nIHRoZSBjdXJyZW50IGNvZGUuXG4gICAqIFdoZW4gcHJvdmlkZWQsIHJlcGxhY2VzIHRoZSBub3JtYWwgbWVyZ2UtYmFzZSB1cGRhdGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBub3JtYWwgdXBkYXRlIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVGcm9tVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiB0cnVlIGlmIHJ1bm5pbmcgaW4gd2F0Y2ggbW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGluZGljYXRlZCBwcm94eVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb3h5XG4gICAqL1xuICByZWFkb25seSBwcm94eT86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byBDQSBjZXJ0aWZpY2F0ZSB0byB1c2Ugd2hlbiB2YWxpZGF0aW5nIEhUVFBTIHJlcXVlc3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBDQSBidW5kbGVcbiAgICovXG4gIHJlYWRvbmx5IGNhQnVuZGxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBJQU0gcm9sZSBmb3IgQ2xvdWRGb3JtYXRpb24gdG8gYXNzdW1lIGR1cmluZyBkZXBsb3kvZGVzdHJveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgYm9vdHN0cmFwIGNmbi1leGVjIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgcmVzb3VyY2VzIHRoYXQgZmFpbCB0byBkZWxldGUgZHVyaW5nIGEgc3RhY2sgdXBkYXRlLlxuICAgKlxuICAgKiBXaGVuIGZhbHNlLCB0aGUgdGVzdCB3aWxsIGZhaWwgaWYgQ2xvdWRGb3JtYXRpb24gc2tpcHMgZGVsZXRpbmcgYSByZXNvdXJjZVxuICAgKiBkdXJpbmcgYSBzdGFjayB1cGRhdGUuIFdoZW4gdHJ1ZSwgb25seSBhIHdhcm5pbmcgaXMgcHJpbnRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RGVsZXRlRmFpbHVyZXM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgcG9zc2libGUgcmVhc29ucyBmb3IgYSBkaWFnbm9zdGljXG4gKi9cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNSZWFzb24ge1xuICAvKipcbiAgICogVGhlIGludGVncmF0aW9uIHRlc3QgZmFpbGVkIGJlY2F1c2UgdGhlcmVcbiAgICogaXMgbm90IGV4aXN0aW5nIHNuYXBzaG90XG4gICAqL1xuICBOT19TTkFQU0hPVCA9ICdOT19TTkFQU0hPVCcsXG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGZhaWxlZFxuICAgKi9cbiAgVEVTVF9GQUlMRUQgPSAnVEVTVF9GQUlMRUQnLFxuXG4gIC8qKlxuICAgKiBUaGVyZSB3YXMgYW4gZXJyb3IgcnVubmluZyB0aGUgaW50ZWdyYXRpb24gdGVzdFxuICAgKi9cbiAgVEVTVF9FUlJPUiA9ICdURVNUX0VSUk9SJyxcblxuICAvKipcbiAgICogQSBub24tZmFpbGluZyB3YXJuaW5nIGZyb20gdGhlIGludGVncmF0aW9uIHRlc3QgcnVuXG4gICAqL1xuICBURVNUX1dBUk5JTkcgPSAnVEVTVF9XQVJOSU5HJyxcblxuICAvKipcbiAgICogVGhlIHNuYXBzaG90IHRlc3QgZmFpbGVkIGJlY2F1c2UgdGhlIGFjdHVhbFxuICAgKiBzbmFwc2hvdCB3YXMgZGlmZmVyZW50IHRoYW4gdGhlIGV4cGVjdGVkIHNuYXBzaG90XG4gICAqL1xuICBTTkFQU0hPVF9GQUlMRUQgPSAnU05BUFNIT1RfRkFJTEVEJyxcblxuICAvKipcbiAgICogVGhlIHNuYXBzaG90IHRlc3QgZmFpbGVkIGJlY2F1c2UgdGhlcmUgd2FzIGFuIGVycm9yIGV4ZWN1dGluZyBpdFxuICAgKi9cbiAgU05BUFNIT1RfRVJST1IgPSAnU05BUFNIT1RfRVJST1InLFxuXG4gIC8qKlxuICAgKiBUaGUgc25hcHNob3QgdGVzdCBzdWNjZWVkZWRcbiAgICovXG4gIFNOQVBTSE9UX1NVQ0NFU1MgPSAnU05BUFNIT1RfU1VDQ0VTUycsXG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1Y2NlZWRlZFxuICAgKi9cbiAgVEVTVF9TVUNDRVNTID0gJ1RFU1RfU1VDQ0VTUycsXG5cbiAgLyoqXG4gICAqIFRoZSBhc3NlcnRpb24gZmFpbGVkXG4gICAqL1xuICBBU1NFUlRJT05fRkFJTEVEID0gJ0FTU0VSVElPTl9GQUlMRUQnLFxufVxuXG4vKipcbiAqIEludGVncmF0aW9uIHRlc3QgZGlhZ25vc3RpY3NcbiAqIFRoaXMgaXMgdXNlZCB0byByZXBvcnQgYmFjayB0aGUgc3RhdHVzIG9mIGVhY2ggdGVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRlc3RcbiAgICovXG4gIHJlYWRvbmx5IHRlc3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaWFnbm9zdGljIG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWUgaXQgdG9vayB0byBydW4gdGhlIHRlc3RcbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVhc29uIGZvciB0aGUgZGlhZ25vc3RpY1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG1lc3NhZ2VzIHRvIHByaW50XG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsTWVzc2FnZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVsZXZhbnQgY29uZmlnIG9wdGlvbnMgdGhhdCB3ZXJlIHVzZWQgZm9yIHRoZSBpbnRlZyB0ZXN0XG4gICAqL1xuICByZWFkb25seSBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRTdW1tYXJ5KHRvdGFsOiBudW1iZXIsIGZhaWxlZDogbnVtYmVyKTogdm9pZCB7XG4gIGlmIChmYWlsZWQgPiAwKSB7XG4gICAgbG9nZ2VyLnByaW50KCclczogICAgJXMgJXMsICVzIHRvdGFsJywgY2hhbGsuYm9sZCgnVGVzdHMnKSwgY2hhbGsucmVkKGZhaWxlZCksIGNoYWxrLnJlZCgnZmFpbGVkJyksIHRvdGFsKTtcbiAgfSBlbHNlIHtcbiAgICBsb2dnZXIucHJpbnQoJyVzOiAgICAlcyAlcywgJXMgdG90YWwnLCBjaGFsay5ib2xkKCdUZXN0cycpLCBjaGFsay5ncmVlbih0b3RhbCksIGNoYWxrLmdyZWVuKCdwYXNzZWQnKSwgdG90YWwpO1xuICB9XG59XG5cbi8qKlxuICogRm9ybWF0IHRoZSBhc3NlcnRpb24gcmVzdWx0cyBzbyB0aGF0IHRoZSByZXN1bHRzIGNhbiBiZVxuICogcHJpbnRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QXNzZXJ0aW9uUmVzdWx0cyhyZXN1bHRzOiBBc3NlcnRpb25SZXN1bHRzKTogc3RyaW5nIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdHMpXG4gICAgLm1hcCgoW2lkLCByZXN1bHRdKSA9PiBmb3JtYXQoJyVzJXMnLCBpZCwgcmVzdWx0LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnID8gYCAtICR7cmVzdWx0LnN0YXR1c31gIDogYFxcbiR7cmVzdWx0Lm1lc3NhZ2V9YCkpXG4gICAgLmpvaW4oJ1xcbiAgICAgICcpO1xufVxuXG4vKipcbiAqIFByaW50IG91dCB0aGUgcmVzdWx0cyBmcm9tIHRlc3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFJlc3VsdHMoZGlhZ25vc3RpYzogRGlhZ25vc3RpYyk6IHZvaWQge1xuICBzd2l0Y2ggKGRpYWdub3N0aWMucmVhc29uKSB7XG4gICAgY2FzZSBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX1NVQ0NFU1M6XG4gICAgICBsb2dnZXIuc3VjY2VzcygnICBVTkNIQU5HRUQgICVzICVzJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uVEVTVF9TVUNDRVNTOlxuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJyAgU1VDQ0VTUyAgICAlcyAlc1xcbiAgICAgICcsIGRpYWdub3N0aWMudGVzdE5hbWUsIGNoYWxrLmdyYXkoYCR7ZGlhZ25vc3RpYy5kdXJhdGlvbn1zYCkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBEaWFnbm9zdGljUmVhc29uLk5PX1NOQVBTSE9UOlxuICAgICAgbG9nZ2VyLmVycm9yKCcgIE5FVyAgICAgICAgJXMgJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9GQUlMRUQ6XG4gICAgICBsb2dnZXIuZXJyb3IoJyAgQ0hBTkdFRCAgICAlcyAlc1xcbiVzJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSwgaW5kZW50TGluZXMoZGlhZ25vc3RpYy5tZXNzYWdlLCA2KSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uVEVTVF9XQVJOSU5HOlxuICAgICAgbG9nZ2VyLndhcm5pbmcoJyAgV0FSTiAgICAgICAlcyAlc1xcbiVzJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSwgaW5kZW50TGluZXMoZGlhZ25vc3RpYy5tZXNzYWdlLCA2KSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRVJST1I6XG4gICAgY2FzZSBEaWFnbm9zdGljUmVhc29uLlRFU1RfRVJST1I6XG4gICAgICBsb2dnZXIuZXJyb3IoJyAgRVJST1IgICAgICAlcyAlc1xcbiVzJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSwgaW5kZW50TGluZXMoZGlhZ25vc3RpYy5tZXNzYWdlLCA2KSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uVEVTVF9GQUlMRUQ6XG4gICAgICBsb2dnZXIuZXJyb3IoJyAgRkFJTEVEICAgICAlcyAlc1xcbiVzJywgZGlhZ25vc3RpYy50ZXN0TmFtZSwgY2hhbGsuZ3JheShgJHtkaWFnbm9zdGljLmR1cmF0aW9ufXNgKSwgaW5kZW50TGluZXMoZGlhZ25vc3RpYy5tZXNzYWdlLCA2KSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpYWdub3N0aWNSZWFzb24uQVNTRVJUSU9OX0ZBSUxFRDpcbiAgICAgIGxvZ2dlci5lcnJvcignICBBU1NFUlQgICAgICVzICVzXFxuJXMnLCBkaWFnbm9zdGljLnRlc3ROYW1lLCBjaGFsay5ncmF5KGAke2RpYWdub3N0aWMuZHVyYXRpb259c2ApLCBpbmRlbnRMaW5lcyhkaWFnbm9zdGljLm1lc3NhZ2UsIDYpKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGZvciAoY29uc3QgYWRkbCBvZiBkaWFnbm9zdGljLmFkZGl0aW9uYWxNZXNzYWdlcyA/PyBbXSkge1xuICAgIGxvZ2dlci5wcmludChgICAgICAgJHthZGRsfWApO1xuICB9XG59XG5cbi8qKlxuICogVGFrZXMgYSBtdWx0aWxpbmUgc3RyaW5nIGFuZCBpbmRlbnRzIGV2ZXJ5IGxpbmUgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2Ygc3BhY2VzLlxuICovXG5mdW5jdGlvbiBpbmRlbnRMaW5lcyhtZXNzYWdlOiBzdHJpbmcsIGNvdW50ID0gMik6IHN0cmluZyB7XG4gIHJldHVybiBtZXNzYWdlLnNwbGl0KCdcXG4nKS5tYXAobGluZSA9PiAnICcucmVwZWF0KGNvdW50KSArIGxpbmUpLmpvaW4oJ1xcbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMYWdnYXJkcyh0ZXN0TmFtZXM6IFNldDxzdHJpbmc+KSB7XG4gIGNvbnN0IHBhcnRzID0gW1xuICAgICcgICcsXG4gICAgYFdhaXRpbmcgZm9yICR7dGVzdE5hbWVzLnNpemV9IG1vcmVgLFxuICAgIHRlc3ROYW1lcy5zaXplIDwgMTAgPyBbJygnLCBBcnJheS5mcm9tKHRlc3ROYW1lcykuam9pbignLCAnKSwgJyknXS5qb2luKCcnKSA6ICcnLFxuICBdO1xuXG4gIGxvZ2dlci5wcmludChjaGFsay5ncmV5KHBhcnRzLmZpbHRlcih4ID0+IHgpLmpvaW4oJyAnKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RXJyb3IoZXJyb3I6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IG5hbWUgPSBlcnJvci5uYW1lIHx8ICdFcnJvcic7XG4gIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IFN0cmluZyhlcnJvcik7XG5cbiAgaWYgKGVycm9yLmNhdXNlKSB7XG4gICAgcmV0dXJuIGAke25hbWV9OiAke21lc3NhZ2V9XFxuJHtjaGFsay5ncmF5KCdDYXVzZTogJyArIGZvcm1hdEVycm9yKGVycm9yLmNhdXNlKSl9YDtcbiAgfVxuXG4gIHJldHVybiBgJHtuYW1lfTogJHttZXNzYWdlfWA7XG59XG4iXX0=
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.integTestWorker = integTestWorker;
4
37
  exports.watchTestWorker = watchTestWorker;
5
38
  exports.snapshotTestWorker = snapshotTestWorker;
6
- const workerpool = require("workerpool");
39
+ const workerpool = __importStar(require("workerpool"));
7
40
  const runner_1 = require("../../runner");
8
41
  const integration_tests_1 = require("../../runner/integration-tests");
9
42
  const common_1 = require("../common");
@@ -193,4 +226,4 @@ workerpool.worker({
193
226
  integTestWorker,
194
227
  watchTestWorker,
195
228
  });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdF93b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRyYWN0X3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSwwQ0ErRUM7QUFFRCwwQ0EyQkM7QUFRRCxnREE0REM7QUFqTUQseUNBQXlDO0FBQ3pDLHlDQUFvRTtBQUVwRSxzRUFBMkQ7QUFFM0Qsc0NBQWtGO0FBSWxGOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQ2xFLE1BQU0sUUFBUSxHQUFvQixFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFFekMsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSw2QkFBUyxDQUFDO1lBQ3pCLEdBQUcsUUFBUTtZQUNYLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQWUsQ0FBQztnQkFDakMsSUFBSTtnQkFDSixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dCQUNwQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLEdBQUcsRUFBRTtvQkFDSCxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksUUFBUTtpQkFDL0M7Z0JBQ0QsVUFBVSxFQUFFLFNBQVMsSUFBSSxDQUFDO2FBQzNCLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFaEMsTUFBTSxLQUFLLEdBQUcsTUFB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O0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUNwQixPQUFPLEVBQUUsSUFBQSxvQkFBVyxFQUFDLENBQUMsQ0FBQztZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLHlCQUFnQixDQUFDLGNBQWM7WUFDdkMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBQ25CLENBQUM7WUFBUyxDQUFDO1FBQ1QsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd29ya2VycG9vbCBmcm9tICd3b3JrZXJwb29sJztcbmltcG9ydCB7IEludGVnU25hcHNob3RSdW5uZXIsIEludGVnVGVzdFJ1bm5lciB9IGZyb20gJy4uLy4uL3J1bm5lcic7XG5pbXBvcnQgdHlwZSB7IEludGVnVGVzdEluZm8gfSBmcm9tICcuLi8uLi9ydW5uZXIvaW50ZWdyYXRpb24tdGVzdHMnO1xuaW1wb3J0IHsgSW50ZWdUZXN0IH0gZnJvbSAnLi4vLi4vcnVubmVyL2ludGVncmF0aW9uLXRlc3RzJztcbmltcG9ydCB0eXBlIHsgSW50ZWdUZXN0V29ya2VyQ29uZmlnLCBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMsIERpYWdub3N0aWMgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRGlhZ25vc3RpY1JlYXNvbiwgZm9ybWF0QXNzZXJ0aW9uUmVzdWx0cywgZm9ybWF0RXJyb3IgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ1Rlc3RCYXRjaFJlcXVlc3QgfSBmcm9tICcuLi9pbnRlZy10ZXN0LXdvcmtlcic7XG5pbXBvcnQgdHlwZSB7IEludGVnV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi4vaW50ZWctd2F0Y2gtd29ya2VyJztcblxuLyoqXG4gKiBSdW5zIGEgc2luZ2xlIGludGVncmF0aW9uIHRlc3QgYmF0Y2ggcmVxdWVzdC5cbiAqIElmIHRoZSB0ZXN0IGRvZXMgbm90IGhhdmUgYW4gZXhpc3Rpbmcgc25hcHNob3QsXG4gKiB0aGlzIHdpbGwgZmlyc3QgZ2VuZXJhdGUgYSBzbmFwc2hvdCBhbmQgdGhlbiBleGVjdXRlXG4gKiB0aGUgaW50ZWdyYXRpb24gdGVzdHMuXG4gKlxuICogSWYgdGhlIHRlc3RzIHN1Y2NlZWQgaXQgd2lsbCB0aGVuIHNhdmUgdGhlIHNuYXBzaG90XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnRlZ1Rlc3RXb3JrZXIocmVxdWVzdDogSW50ZWdUZXN0QmF0Y2hSZXF1ZXN0KTogUHJvbWlzZTxJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXT4ge1xuICBjb25zdCBmYWlsdXJlczogSW50ZWdUZXN0SW5mb1tdID0gW107XG4gIGNvbnN0IHZlcmJvc2l0eSA9IHJlcXVlc3QudmVyYm9zaXR5ID8/IDA7XG5cbiAgZm9yIChjb25zdCB0ZXN0SW5mbyBvZiByZXF1ZXN0LnRlc3RzKSB7XG4gICAgY29uc3QgdGVzdCA9IG5ldyBJbnRlZ1Rlc3Qoe1xuICAgICAgLi4udGVzdEluZm8sXG4gICAgICB3YXRjaDogcmVxdWVzdC53YXRjaCxcbiAgICB9KTsgLy8gSHlkcmF0ZSBmcm9tIGRhdGFcbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcnVubmVyID0gbmV3IEludGVnVGVzdFJ1bm5lcih7XG4gICAgICAgIHRlc3QsXG4gICAgICAgIHByb2ZpbGU6IHJlcXVlc3QucHJvZmlsZSxcbiAgICAgICAgcmVnaW9uOiByZXF1ZXN0LnJlZ2lvbixcbiAgICAgICAgcHJveHk6IHJlcXVlc3QucHJveHksXG4gICAgICAgIGNhQnVuZGxlUGF0aDogcmVxdWVzdC5jYUJ1bmRsZVBhdGgsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENES19ET0NLRVI6IHByb2Nlc3MuZW52LkNES19ET0NLRVIgPz8gJ2RvY2tlcicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dPdXRwdXQ6IHZlcmJvc2l0eSA+PSAyLFxuICAgICAgfSwgdGVzdEluZm8uZGVzdHJ1Y3RpdmVDaGFuZ2VzKTtcblxuICAgICAgY29uc3QgdGVzdHMgPSBhd2FpdCBydW5uZXIuYWN0dWFsVGVzdHMoKTtcblxuICAgICAgaWYgKCF0ZXN0cyB8fCBPYmplY3Qua2V5cyh0ZXN0cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gdGVzdHMgZGVmaW5lZCBmb3IgJHtydW5uZXIudGVzdE5hbWV9YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHRlc3RDYXNlTmFtZSBvZiBPYmplY3Qua2V5cyh0ZXN0cykpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgcnVubmVyLnJ1bkludGVnVGVzdENhc2Uoe1xuICAgICAgICAgICAgdGVzdENhc2VOYW1lLFxuICAgICAgICAgICAgY2xlYW46IHJlcXVlc3QuY2xlYW4sXG4gICAgICAgICAgICBkcnlSdW46IHJlcXVlc3QuZHJ5UnVuLFxuICAgICAgICAgICAgdXBkYXRlV29ya2Zsb3c6IHJlcXVlc3QudXBkYXRlV29ya2Zsb3csXG4gICAgICAgICAgICB1cGRhdGVGcm9tVGFnczogcmVxdWVzdC51cGRhdGVGcm9tVGFncyxcbiAgICAgICAgICAgIHZlcmJvc2l0eSxcbiAgICAgICAgICAgIHJvbGVBcm46IHJlcXVlc3Qucm9sZUFybixcbiAgICAgICAgICAgIGFsbG93RGVsZXRlRmFpbHVyZXM6IHJlcXVlc3QuYWxsb3dEZWxldGVGYWlsdXJlcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0cyAmJiBPYmplY3QudmFsdWVzKHJlc3VsdHMpLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT09ICdmYWlsJykpIHtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2godGVzdEluZm8pO1xuICAgICAgICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLkFTU0VSVElPTl9GQUlMRUQsXG4gICAgICAgICAgICAgIHRlc3ROYW1lOiBgJHtydW5uZXIudGVzdE5hbWV9LSR7dGVzdENhc2VOYW1lfSAoJHtyZXF1ZXN0LnByb2ZpbGV9LyR7cmVxdWVzdC5yZWdpb259KWAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcm1hdEFzc2VydGlvblJlc3VsdHMocmVzdWx0cyksXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfU1VDQ0VTUyxcbiAgICAgICAgICAgICAgdGVzdE5hbWU6IGAke3J1bm5lci50ZXN0TmFtZX0tJHt0ZXN0Q2FzZU5hbWV9YCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzdWx0cyA/IGZvcm1hdEFzc2VydGlvblJlc3VsdHMocmVzdWx0cykgOiAnTk8gQVNTRVJUSU9OUycsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBmYWlsdXJlcy5wdXNoKHRlc3RJbmZvKTtcbiAgICAgICAgICB3b3JrZXJwb29sLndvcmtlckVtaXQoe1xuICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfRkFJTEVELFxuICAgICAgICAgICAgdGVzdE5hbWU6IGAke3J1bm5lci50ZXN0TmFtZX0tJHt0ZXN0Q2FzZU5hbWV9ICgke3JlcXVlc3QucHJvZmlsZX0vJHtyZXF1ZXN0LnJlZ2lvbn0pYCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBJbnRlZ3JhdGlvbiB0ZXN0IGZhaWxlZDogJHtmb3JtYXRFcnJvcihlKX1gLFxuICAgICAgICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGZhaWx1cmVzLnB1c2godGVzdEluZm8pO1xuICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfRVJST1IsXG4gICAgICAgIHRlc3ROYW1lOiBgJHt0ZXN0SW5mby5maWxlTmFtZX0gKCR7cmVxdWVzdC5wcm9maWxlfS8ke3JlcXVlc3QucmVnaW9ufSlgLFxuICAgICAgICBtZXNzYWdlOiBgRXJyb3IgZHVyaW5nIGludGVncmF0aW9uIHRlc3Q6ICR7Zm9ybWF0RXJyb3IoZSl9YCxcbiAgICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWlsdXJlcztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhdGNoVGVzdFdvcmtlcihvcHRpb25zOiBJbnRlZ1dhdGNoT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB2ZXJib3NpdHkgPSBvcHRpb25zLnZlcmJvc2l0eSA/PyAwO1xuICBjb25zdCB0ZXN0ID0gbmV3IEludGVnVGVzdChvcHRpb25zKTtcbiAgY29uc3QgcnVubmVyID0gbmV3IEludGVnVGVzdFJ1bm5lcih7XG4gICAgdGVzdCxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgcmVnaW9uOiBvcHRpb25zLnJlZ2lvbixcbiAgICBwcm94eTogb3B0aW9ucy5wcm94eSxcbiAgICBjYUJ1bmRsZVBhdGg6IG9wdGlvbnMuY2FCdW5kbGVQYXRoLFxuICAgIGVudjoge1xuICAgICAgQ0RLX0RPQ0tFUjogcHJvY2Vzcy5lbnYuQ0RLX0RPQ0tFUiA/PyAnZG9ja2VyJyxcbiAgICB9LFxuICAgIHNob3dPdXRwdXQ6IHZlcmJvc2l0eSA+PSAyLFxuICB9KTtcbiAgcnVubmVyLmNyZWF0ZUNka0NvbnRleHRKc29uKCk7XG4gIGNvbnN0IHRlc3RzID0gYXdhaXQgcnVubmVyLmFjdHVhbFRlc3RzKCk7XG5cbiAgaWYgKCF0ZXN0cyB8fCBPYmplY3Qua2V5cyh0ZXN0cykubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB0ZXN0cyBkZWZpbmVkIGZvciAke3J1bm5lci50ZXN0TmFtZX1gKTtcbiAgfVxuICBmb3IgKGNvbnN0IHRlc3RDYXNlTmFtZSBvZiBPYmplY3Qua2V5cyh0ZXN0cykpIHtcbiAgICBhd2FpdCBydW5uZXIud2F0Y2hJbnRlZ1Rlc3Qoe1xuICAgICAgdGVzdENhc2VOYW1lLFxuICAgICAgdmVyYm9zaXR5LFxuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUnVucyBhIHNpbmdsZSBzbmFwc2hvdCB0ZXN0IGJhdGNoIHJlcXVlc3QuXG4gKiBGb3IgZWFjaCBpbnRlZ3JhdGlvbiB0ZXN0IHRoaXMgd2lsbCBjaGVjayB0byBzZWVcbiAqIGlmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHNuYXBzaG90LCBhbmQgaWYgdGhlcmUgaXMgd2lsbFxuICogY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBjaGFuZ2VzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbmFwc2hvdFRlc3RXb3JrZXIodGVzdEluZm86IEludGVnVGVzdEluZm8sIG9wdGlvbnM6IFNuYXBzaG90VmVyaWZpY2F0aW9uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXT4ge1xuICBjb25zdCBmYWlsZWRUZXN0cyA9IG5ldyBBcnJheTxJbnRlZ1Rlc3RXb3JrZXJDb25maWc+KCk7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdGVzdCA9IG5ldyBJbnRlZ1Rlc3QodGVzdEluZm8pOyAvLyBIeWRyYXRlIHRoZSBkYXRhIHJlY29yZCBhZ2FpblxuXG4gIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5URVNUX1dBUk5JTkcsXG4gICAgICB0ZXN0TmFtZTogdGVzdC50ZXN0TmFtZSxcbiAgICAgIG1lc3NhZ2U6ICdUZXN0IGlzIHRha2luZyBhIHZlcnkgbG9uZyB0aW1lJyxcbiAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgfSk7XG4gIH0sIDYwXzAwMCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBydW5uZXIgPSBuZXcgSW50ZWdTbmFwc2hvdFJ1bm5lcih7XG4gICAgICB0ZXN0LFxuICAgICAgc2hvd091dHB1dDogb3B0aW9ucy52ZXJib3NlID8/IGZhbHNlLFxuICAgIH0pO1xuICAgIGlmICghcnVubmVyLmhhc1NuYXBzaG90KCkpIHtcbiAgICAgIHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5OT19TTkFQU0hPVCxcbiAgICAgICAgdGVzdE5hbWU6IHRlc3QudGVzdE5hbWUsXG4gICAgICAgIG1lc3NhZ2U6ICdObyBTbmFwc2hvdCcsXG4gICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICB9KTtcbiAgICAgIGZhaWxlZFRlc3RzLnB1c2godGVzdC5pbmZvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBkaWFnbm9zdGljcywgZGVzdHJ1Y3RpdmVDaGFuZ2VzIH0gPSBhd2FpdCBydW5uZXIudGVzdFNuYXBzaG90KG9wdGlvbnMpO1xuICAgICAgaWYgKGRpYWdub3N0aWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGlhZ25vc3RpY3MuZm9yRWFjaChkaWFnbm9zdGljID0+IHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICAgICAgLi4uZGlhZ25vc3RpYyxcbiAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLFxuICAgICAgICB9IGFzIERpYWdub3N0aWMpKTtcbiAgICAgICAgZmFpbGVkVGVzdHMucHVzaCh7XG4gICAgICAgICAgLi4udGVzdC5pbmZvLFxuICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3b3JrZXJwb29sLndvcmtlckVtaXQoe1xuICAgICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9TVUNDRVNTLFxuICAgICAgICAgIHRlc3ROYW1lOiB0ZXN0LnRlc3ROYW1lLFxuICAgICAgICAgIG1lc3NhZ2U6ICdTdWNjZXNzJyxcbiAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLFxuICAgICAgICB9IGFzIERpYWdub3N0aWMpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgZmFpbGVkVGVzdHMucHVzaCh0ZXN0LmluZm8pO1xuICAgIHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICBtZXNzYWdlOiBmb3JtYXRFcnJvcihlKSxcbiAgICAgIHRlc3ROYW1lOiB0ZXN0LnRlc3ROYW1lLFxuICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0VSUk9SLFxuICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICB9IGFzIERpYWdub3N0aWMpO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gIH1cblxuICByZXR1cm4gZmFpbGVkVGVzdHM7XG59XG5cbndvcmtlcnBvb2wud29ya2VyKHtcbiAgc25hcHNob3RUZXN0V29ya2VyLFxuICBpbnRlZ1Rlc3RXb3JrZXIsXG4gIHdhdGNoVGVzdFdvcmtlcixcbn0pO1xuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdF93b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRyYWN0X3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSwwQ0ErRUM7QUFFRCwwQ0EyQkM7QUFRRCxnREE0REM7QUFqTUQsdURBQXlDO0FBQ3pDLHlDQUFvRTtBQUVwRSxzRUFBMkQ7QUFFM0Qsc0NBQWtGO0FBSWxGOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQ2xFLE1BQU0sUUFBUSxHQUFvQixFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFFekMsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSw2QkFBUyxDQUFDO1lBQ3pCLEdBQUcsUUFBUTtZQUNYLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQWUsQ0FBQztnQkFDakMsSUFBSTtnQkFDSixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dCQUNwQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLEdBQUcsRUFBRTtvQkFDSCxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksUUFBUTtpQkFDL0M7Z0JBQ0QsVUFBVSxFQUFFLFNBQVMsSUFBSSxDQUFDO2FBQzNCLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixD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eEIsQ0FBQyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUNwQixPQUFPLEVBQUUsSUFBQSxvQkFBVyxFQUFDLENBQUMsQ0FBQztZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLHlCQUFnQixDQUFDLGNBQWM7WUFDdkMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBQ25CLENBQUM7WUFBUyxDQUFDO1FBQ1QsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd29ya2VycG9vbCBmcm9tICd3b3JrZXJwb29sJztcbmltcG9ydCB7IEludGVnU25hcHNob3RSdW5uZXIsIEludGVnVGVzdFJ1bm5lciB9IGZyb20gJy4uLy4uL3J1bm5lcic7XG5pbXBvcnQgdHlwZSB7IEludGVnVGVzdEluZm8gfSBmcm9tICcuLi8uLi9ydW5uZXIvaW50ZWdyYXRpb24tdGVzdHMnO1xuaW1wb3J0IHsgSW50ZWdUZXN0IH0gZnJvbSAnLi4vLi4vcnVubmVyL2ludGVncmF0aW9uLXRlc3RzJztcbmltcG9ydCB0eXBlIHsgSW50ZWdUZXN0V29ya2VyQ29uZmlnLCBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMsIERpYWdub3N0aWMgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRGlhZ25vc3RpY1JlYXNvbiwgZm9ybWF0QXNzZXJ0aW9uUmVzdWx0cywgZm9ybWF0RXJyb3IgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHR5cGUgeyBJbnRlZ1Rlc3RCYXRjaFJlcXVlc3QgfSBmcm9tICcuLi9pbnRlZy10ZXN0LXdvcmtlcic7XG5pbXBvcnQgdHlwZSB7IEludGVnV2F0Y2hPcHRpb25zIH0gZnJvbSAnLi4vaW50ZWctd2F0Y2gtd29ya2VyJztcblxuLyoqXG4gKiBSdW5zIGEgc2luZ2xlIGludGVncmF0aW9uIHRlc3QgYmF0Y2ggcmVxdWVzdC5cbiAqIElmIHRoZSB0ZXN0IGRvZXMgbm90IGhhdmUgYW4gZXhpc3Rpbmcgc25hcHNob3QsXG4gKiB0aGlzIHdpbGwgZmlyc3QgZ2VuZXJhdGUgYSBzbmFwc2hvdCBhbmQgdGhlbiBleGVjdXRlXG4gKiB0aGUgaW50ZWdyYXRpb24gdGVzdHMuXG4gKlxuICogSWYgdGhlIHRlc3RzIHN1Y2NlZWQgaXQgd2lsbCB0aGVuIHNhdmUgdGhlIHNuYXBzaG90XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnRlZ1Rlc3RXb3JrZXIocmVxdWVzdDogSW50ZWdUZXN0QmF0Y2hSZXF1ZXN0KTogUHJvbWlzZTxJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXT4ge1xuICBjb25zdCBmYWlsdXJlczogSW50ZWdUZXN0SW5mb1tdID0gW107XG4gIGNvbnN0IHZlcmJvc2l0eSA9IHJlcXVlc3QudmVyYm9zaXR5ID8/IDA7XG5cbiAgZm9yIChjb25zdCB0ZXN0SW5mbyBvZiByZXF1ZXN0LnRlc3RzKSB7XG4gICAgY29uc3QgdGVzdCA9IG5ldyBJbnRlZ1Rlc3Qoe1xuICAgICAgLi4udGVzdEluZm8sXG4gICAgICB3YXRjaDogcmVxdWVzdC53YXRjaCxcbiAgICB9KTsgLy8gSHlkcmF0ZSBmcm9tIGRhdGFcbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcnVubmVyID0gbmV3IEludGVnVGVzdFJ1bm5lcih7XG4gICAgICAgIHRlc3QsXG4gICAgICAgIHByb2ZpbGU6IHJlcXVlc3QucHJvZmlsZSxcbiAgICAgICAgcmVnaW9uOiByZXF1ZXN0LnJlZ2lvbixcbiAgICAgICAgcHJveHk6IHJlcXVlc3QucHJveHksXG4gICAgICAgIGNhQnVuZGxlUGF0aDogcmVxdWVzdC5jYUJ1bmRsZVBhdGgsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENES19ET0NLRVI6IHByb2Nlc3MuZW52LkNES19ET0NLRVIgPz8gJ2RvY2tlcicsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dPdXRwdXQ6IHZlcmJvc2l0eSA+PSAyLFxuICAgICAgfSwgdGVzdEluZm8uZGVzdHJ1Y3RpdmVDaGFuZ2VzKTtcblxuICAgICAgY29uc3QgdGVzdHMgPSBhd2FpdCBydW5uZXIuYWN0dWFsVGVzdHMoKTtcblxuICAgICAgaWYgKCF0ZXN0cyB8fCBPYmplY3Qua2V5cyh0ZXN0cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gdGVzdHMgZGVmaW5lZCBmb3IgJHtydW5uZXIudGVzdE5hbWV9YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHRlc3RDYXNlTmFtZSBvZiBPYmplY3Qua2V5cyh0ZXN0cykpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgcnVubmVyLnJ1bkludGVnVGVzdENhc2Uoe1xuICAgICAgICAgICAgdGVzdENhc2VOYW1lLFxuICAgICAgICAgICAgY2xlYW46IHJlcXVlc3QuY2xlYW4sXG4gICAgICAgICAgICBkcnlSdW46IHJlcXVlc3QuZHJ5UnVuLFxuICAgICAgICAgICAgdXBkYXRlV29ya2Zsb3c6IHJlcXVlc3QudXBkYXRlV29ya2Zsb3csXG4gICAgICAgICAgICB1cGRhdGVGcm9tVGFnczogcmVxdWVzdC51cGRhdGVGcm9tVGFncyxcbiAgICAgICAgICAgIHZlcmJvc2l0eSxcbiAgICAgICAgICAgIHJvbGVBcm46IHJlcXVlc3Qucm9sZUFybixcbiAgICAgICAgICAgIGFsbG93RGVsZXRlRmFpbHVyZXM6IHJlcXVlc3QuYWxsb3dEZWxldGVGYWlsdXJlcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0cyAmJiBPYmplY3QudmFsdWVzKHJlc3VsdHMpLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT09ICdmYWlsJykpIHtcbiAgICAgICAgICAgIGZhaWx1cmVzLnB1c2godGVzdEluZm8pO1xuICAgICAgICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLkFTU0VSVElPTl9GQUlMRUQsXG4gICAgICAgICAgICAgIHRlc3ROYW1lOiBgJHtydW5uZXIudGVzdE5hbWV9LSR7dGVzdENhc2VOYW1lfSAoJHtyZXF1ZXN0LnByb2ZpbGV9LyR7cmVxdWVzdC5yZWdpb259KWAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcm1hdEFzc2VydGlvblJlc3VsdHMocmVzdWx0cyksXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfU1VDQ0VTUyxcbiAgICAgICAgICAgICAgdGVzdE5hbWU6IGAke3J1bm5lci50ZXN0TmFtZX0tJHt0ZXN0Q2FzZU5hbWV9YCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzdWx0cyA/IGZvcm1hdEFzc2VydGlvblJlc3VsdHMocmVzdWx0cykgOiAnTk8gQVNTRVJUSU9OUycsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBmYWlsdXJlcy5wdXNoKHRlc3RJbmZvKTtcbiAgICAgICAgICB3b3JrZXJwb29sLndvcmtlckVtaXQoe1xuICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfRkFJTEVELFxuICAgICAgICAgICAgdGVzdE5hbWU6IGAke3J1bm5lci50ZXN0TmFtZX0tJHt0ZXN0Q2FzZU5hbWV9ICgke3JlcXVlc3QucHJvZmlsZX0vJHtyZXF1ZXN0LnJlZ2lvbn0pYCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBJbnRlZ3JhdGlvbiB0ZXN0IGZhaWxlZDogJHtmb3JtYXRFcnJvcihlKX1gLFxuICAgICAgICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGZhaWx1cmVzLnB1c2godGVzdEluZm8pO1xuICAgICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlRFU1RfRVJST1IsXG4gICAgICAgIHRlc3ROYW1lOiBgJHt0ZXN0SW5mby5maWxlTmFtZX0gKCR7cmVxdWVzdC5wcm9maWxlfS8ke3JlcXVlc3QucmVnaW9ufSlgLFxuICAgICAgICBtZXNzYWdlOiBgRXJyb3IgZHVyaW5nIGludGVncmF0aW9uIHRlc3Q6ICR7Zm9ybWF0RXJyb3IoZSl9YCxcbiAgICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWlsdXJlcztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhdGNoVGVzdFdvcmtlcihvcHRpb25zOiBJbnRlZ1dhdGNoT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB2ZXJib3NpdHkgPSBvcHRpb25zLnZlcmJvc2l0eSA/PyAwO1xuICBjb25zdCB0ZXN0ID0gbmV3IEludGVnVGVzdChvcHRpb25zKTtcbiAgY29uc3QgcnVubmVyID0gbmV3IEludGVnVGVzdFJ1bm5lcih7XG4gICAgdGVzdCxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgcmVnaW9uOiBvcHRpb25zLnJlZ2lvbixcbiAgICBwcm94eTogb3B0aW9ucy5wcm94eSxcbiAgICBjYUJ1bmRsZVBhdGg6IG9wdGlvbnMuY2FCdW5kbGVQYXRoLFxuICAgIGVudjoge1xuICAgICAgQ0RLX0RPQ0tFUjogcHJvY2Vzcy5lbnYuQ0RLX0RPQ0tFUiA/PyAnZG9ja2VyJyxcbiAgICB9LFxuICAgIHNob3dPdXRwdXQ6IHZlcmJvc2l0eSA+PSAyLFxuICB9KTtcbiAgcnVubmVyLmNyZWF0ZUNka0NvbnRleHRKc29uKCk7XG4gIGNvbnN0IHRlc3RzID0gYXdhaXQgcnVubmVyLmFjdHVhbFRlc3RzKCk7XG5cbiAgaWYgKCF0ZXN0cyB8fCBPYmplY3Qua2V5cyh0ZXN0cykubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB0ZXN0cyBkZWZpbmVkIGZvciAke3J1bm5lci50ZXN0TmFtZX1gKTtcbiAgfVxuICBmb3IgKGNvbnN0IHRlc3RDYXNlTmFtZSBvZiBPYmplY3Qua2V5cyh0ZXN0cykpIHtcbiAgICBhd2FpdCBydW5uZXIud2F0Y2hJbnRlZ1Rlc3Qoe1xuICAgICAgdGVzdENhc2VOYW1lLFxuICAgICAgdmVyYm9zaXR5LFxuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUnVucyBhIHNpbmdsZSBzbmFwc2hvdCB0ZXN0IGJhdGNoIHJlcXVlc3QuXG4gKiBGb3IgZWFjaCBpbnRlZ3JhdGlvbiB0ZXN0IHRoaXMgd2lsbCBjaGVjayB0byBzZWVcbiAqIGlmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHNuYXBzaG90LCBhbmQgaWYgdGhlcmUgaXMgd2lsbFxuICogY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBjaGFuZ2VzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbmFwc2hvdFRlc3RXb3JrZXIodGVzdEluZm86IEludGVnVGVzdEluZm8sIG9wdGlvbnM6IFNuYXBzaG90VmVyaWZpY2F0aW9uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXT4ge1xuICBjb25zdCBmYWlsZWRUZXN0cyA9IG5ldyBBcnJheTxJbnRlZ1Rlc3RXb3JrZXJDb25maWc+KCk7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdGVzdCA9IG5ldyBJbnRlZ1Rlc3QodGVzdEluZm8pOyAvLyBIeWRyYXRlIHRoZSBkYXRhIHJlY29yZCBhZ2FpblxuXG4gIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgd29ya2VycG9vbC53b3JrZXJFbWl0KHtcbiAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5URVNUX1dBUk5JTkcsXG4gICAgICB0ZXN0TmFtZTogdGVzdC50ZXN0TmFtZSxcbiAgICAgIG1lc3NhZ2U6ICdUZXN0IGlzIHRha2luZyBhIHZlcnkgbG9uZyB0aW1lJyxcbiAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgfSk7XG4gIH0sIDYwXzAwMCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBydW5uZXIgPSBuZXcgSW50ZWdTbmFwc2hvdFJ1bm5lcih7XG4gICAgICB0ZXN0LFxuICAgICAgc2hvd091dHB1dDogb3B0aW9ucy52ZXJib3NlID8/IGZhbHNlLFxuICAgIH0pO1xuICAgIGlmICghcnVubmVyLmhhc1NuYXBzaG90KCkpIHtcbiAgICAgIHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5OT19TTkFQU0hPVCxcbiAgICAgICAgdGVzdE5hbWU6IHRlc3QudGVzdE5hbWUsXG4gICAgICAgIG1lc3NhZ2U6ICdObyBTbmFwc2hvdCcsXG4gICAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICB9KTtcbiAgICAgIGZhaWxlZFRlc3RzLnB1c2godGVzdC5pbmZvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBkaWFnbm9zdGljcywgZGVzdHJ1Y3RpdmVDaGFuZ2VzIH0gPSBhd2FpdCBydW5uZXIudGVzdFNuYXBzaG90KG9wdGlvbnMpO1xuICAgICAgaWYgKGRpYWdub3N0aWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGlhZ25vc3RpY3MuZm9yRWFjaChkaWFnbm9zdGljID0+IHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICAgICAgLi4uZGlhZ25vc3RpYyxcbiAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLFxuICAgICAgICB9IGFzIERpYWdub3N0aWMpKTtcbiAgICAgICAgZmFpbGVkVGVzdHMucHVzaCh7XG4gICAgICAgICAgLi4udGVzdC5pbmZvLFxuICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3b3JrZXJwb29sLndvcmtlckVtaXQoe1xuICAgICAgICAgIHJlYXNvbjogRGlhZ25vc3RpY1JlYXNvbi5TTkFQU0hPVF9TVUNDRVNTLFxuICAgICAgICAgIHRlc3ROYW1lOiB0ZXN0LnRlc3ROYW1lLFxuICAgICAgICAgIG1lc3NhZ2U6ICdTdWNjZXNzJyxcbiAgICAgICAgICBkdXJhdGlvbjogKERhdGUubm93KCkgLSBzdGFydCkgLyAxMDAwLFxuICAgICAgICB9IGFzIERpYWdub3N0aWMpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgZmFpbGVkVGVzdHMucHVzaCh0ZXN0LmluZm8pO1xuICAgIHdvcmtlcnBvb2wud29ya2VyRW1pdCh7XG4gICAgICBtZXNzYWdlOiBmb3JtYXRFcnJvcihlKSxcbiAgICAgIHRlc3ROYW1lOiB0ZXN0LnRlc3ROYW1lLFxuICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0VSUk9SLFxuICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICB9IGFzIERpYWdub3N0aWMpO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gIH1cblxuICByZXR1cm4gZmFpbGVkVGVzdHM7XG59XG5cbndvcmtlcnBvb2wud29ya2VyKHtcbiAgc25hcHNob3RUZXN0V29ya2VyLFxuICBpbnRlZ1Rlc3RXb3JrZXIsXG4gIHdhdGNoVGVzdFdvcmtlcixcbn0pO1xuIl19