@angular/cli 15.2.0-next.3 → 15.2.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cli",
3
- "version": "15.2.0-next.3",
3
+ "version": "15.2.0-next.4",
4
4
  "description": "CLI tool for Angular",
5
5
  "main": "lib/cli/index.js",
6
6
  "bin": {
@@ -25,10 +25,10 @@
25
25
  },
26
26
  "homepage": "https://github.com/angular/angular-cli",
27
27
  "dependencies": {
28
- "@angular-devkit/architect": "0.1502.0-next.3",
29
- "@angular-devkit/core": "15.2.0-next.3",
30
- "@angular-devkit/schematics": "15.2.0-next.3",
31
- "@schematics/angular": "15.2.0-next.3",
28
+ "@angular-devkit/architect": "0.1502.0-next.4",
29
+ "@angular-devkit/core": "15.2.0-next.4",
30
+ "@angular-devkit/schematics": "15.2.0-next.4",
31
+ "@schematics/angular": "15.2.0-next.4",
32
32
  "@yarnpkg/lockfile": "1.1.0",
33
33
  "ansi-colors": "4.1.3",
34
34
  "ini": "3.0.1",
@@ -36,7 +36,7 @@
36
36
  "jsonc-parser": "3.2.0",
37
37
  "npm-package-arg": "10.1.0",
38
38
  "npm-pick-manifest": "8.0.1",
39
- "open": "8.4.0",
39
+ "open": "8.4.1",
40
40
  "ora": "5.4.1",
41
41
  "pacote": "15.0.8",
42
42
  "resolve": "1.22.1",
@@ -47,12 +47,12 @@
47
47
  "ng-update": {
48
48
  "migrations": "@schematics/angular/migrations/migration-collection.json",
49
49
  "packageGroup": {
50
- "@angular/cli": "15.2.0-next.3",
51
- "@angular-devkit/architect": "0.1502.0-next.3",
52
- "@angular-devkit/build-angular": "15.2.0-next.3",
53
- "@angular-devkit/build-webpack": "0.1502.0-next.3",
54
- "@angular-devkit/core": "15.2.0-next.3",
55
- "@angular-devkit/schematics": "15.2.0-next.3"
50
+ "@angular/cli": "15.2.0-next.4",
51
+ "@angular-devkit/architect": "0.1502.0-next.4",
52
+ "@angular-devkit/build-angular": "15.2.0-next.4",
53
+ "@angular-devkit/build-webpack": "0.1502.0-next.4",
54
+ "@angular-devkit/core": "15.2.0-next.4",
55
+ "@angular-devkit/schematics": "15.2.0-next.4"
56
56
  }
57
57
  },
58
58
  "engines": {
@@ -57,9 +57,10 @@ class AnalyticsCollector {
57
57
  [analytics_parameters_1.RequestParameter.UserAgentArchitecture]: os.arch(),
58
58
  [analytics_parameters_1.RequestParameter.UserAgentPlatform]: os.platform(),
59
59
  [analytics_parameters_1.RequestParameter.UserAgentPlatformVersion]: os.version(),
60
- // Set undefined to disable debug view.
61
- [analytics_parameters_1.RequestParameter.DebugView]: environment_options_1.ngDebug ? 1 : undefined,
62
60
  };
61
+ if (environment_options_1.ngDebug) {
62
+ requestParameters[analytics_parameters_1.RequestParameter.DebugView] = 1;
63
+ }
63
64
  this.requestParameterStringified = querystring.stringify(requestParameters);
64
65
  const parsedVersion = semver.parse(process.version);
65
66
  const packageManagerVersion = context.packageManager.version;
@@ -169,4 +170,4 @@ class AnalyticsCollector {
169
170
  }
170
171
  }
171
172
  exports.AnalyticsCollector = AnalyticsCollector;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvY2xpL3NyYy9hbmFseXRpY3MvYW5hbHl0aWNzLWNvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILG1DQUFvQztBQUNwQyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLHlEQUEyQztBQUMzQywrQ0FBaUM7QUFFakMsMEVBQTJEO0FBQzNELDhDQUFtRDtBQUNuRCxrREFBK0M7QUFDL0MsaUVBTWdDO0FBRWhDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDO0FBRTNDLE1BQWEsa0JBQWtCO0lBSzdCLFlBQW9CLE9BQXVCLEVBQUUsTUFBYztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN6QyxNQUFNLGlCQUFpQixHQUFzRDtZQUMzRSxDQUFDLHVDQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDckMsQ0FBQyx1Q0FBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNO1lBQ25DLENBQUMsdUNBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTtZQUNqQyxDQUFDLHVDQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBTyxDQUFDLElBQUksS0FBSyxPQUFPO2dCQUM5RCxDQUFDLENBQUMsZ0JBQWdCO2dCQUNsQixDQUFDLENBQUMsbUJBQW1CO1lBRXpCLDJCQUEyQjtZQUMzQixDQUFDLHVDQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUEsbUJBQVUsR0FBRTtZQUMxQyxDQUFDLHVDQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFB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Q0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpLRCxnREFpS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZENvbnRleHQgfSBmcm9tICcuLi9jb21tYW5kLWJ1aWxkZXIvY29tbWFuZC1tb2R1bGUnO1xuaW1wb3J0IHsgbmdEZWJ1ZyB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi91dGlsaXRpZXMvZXJyb3InO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4uL3V0aWxpdGllcy92ZXJzaW9uJztcbmltcG9ydCB7XG4gIEV2ZW50Q3VzdG9tRGltZW5zaW9uLFxuICBFdmVudEN1c3RvbU1ldHJpYyxcbiAgUHJpbWl0aXZlVHlwZXMsXG4gIFJlcXVlc3RQYXJhbWV0ZXIsXG4gIFVzZXJDdXN0b21EaW1lbnNpb24sXG59IGZyb20gJy4vYW5hbHl0aWNzLXBhcmFtZXRlcnMnO1xuXG5jb25zdCBUUkFDS0lOR19JRF9QUk9EID0gJ0ctVkVUTkpCVzhMNCc7XG5jb25zdCBUUkFDS0lOR19JRF9TVEFHSU5HID0gJ0ctVEJNUFJMMUJUTSc7XG5cbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NDb2xsZWN0b3Ige1xuICBwcml2YXRlIHRyYWNraW5nRXZlbnRzUXVldWU6IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGVzIHwgdW5kZWZpbmVkPltdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RQYXJhbWV0ZXJTdHJpbmdpZmllZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQYXJhbWV0ZXJzOiBSZWNvcmQ8VXNlckN1c3RvbURpbWVuc2lvbiwgUHJpbWl0aXZlVHlwZXMgfCB1bmRlZmluZWQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dDogQ29tbWFuZENvbnRleHQsIHVzZXJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVxdWVzdFBhcmFtZXRlcnM6IFBhcnRpYWw8UmVjb3JkPFJlcXVlc3RQYXJhbWV0ZXIsIFByaW1pdGl2ZVR5cGVzPj4gPSB7XG4gICAgICBbUmVxdWVzdFBhcmFtZXRlci5Qcm90b2NvbFZlcnNpb25dOiAyLFxuICAgICAgW1JlcXVlc3RQYXJhbWV0ZXIuQ2xpZW50SWRdOiB1c2VySWQsXG4gICAgICBbUmVxdWVzdFBhcmFtZXRlci5Vc2VySWRdOiB1c2VySWQsXG4gICAgICBbUmVxdWVzdFBhcmFtZXRlci5UcmFja2luZ0lkXTpcbiAgICAgICAgL15cXGQrXFwuXFxkK1xcLlxcZCskLy50ZXN0KFZFUlNJT04uZnVsbCkgJiYgVkVSU0lPTi5mdWxsICE9PSAnMC4wLjAnXG4gICAgICAgICAgPyBUUkFDS0lOR19JRF9QUk9EXG4gICAgICAgICAgOiBUUkFDS0lOR19JRF9TVEFHSU5HLFxuXG4gICAgICAvLyBCdWlsdC1pbiB1c2VyIHByb3BlcnRpZXNcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlNlc3Npb25JZF06IHJhbmRvbVVVSUQoKSxcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlVzZXJBZ2VudEFyY2hpdGVjdHVyZV06IG9zLmFyY2goKSxcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlVzZXJBZ2VudFBsYXRmb3JtXTogb3MucGxhdGZvcm0oKSxcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlVzZXJBZ2VudFBsYXRmb3JtVmVyc2lvbl06IG9zLnZlcnNpb24oKSxcblxuICAgICAgLy8gU2V0IHVuZGVmaW5lZCB0byBkaXNhYmxlIGRlYnVnIHZpZXcuXG4gICAgICBbUmVxdWVzdFBhcmFtZXRlci5EZWJ1Z1ZpZXddOiBuZ0RlYnVnID8gMSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1ldGVyU3RyaW5naWZpZWQgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkocmVxdWVzdFBhcmFtZXRlcnMpO1xuXG4gICAgY29uc3QgcGFyc2VkVmVyc2lvbiA9IHNlbXZlci5wYXJzZShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IHBhY2thZ2VNYW5hZ2VyVmVyc2lvbiA9IGNvbnRleHQucGFja2FnZU1hbmFnZXIudmVyc2lvbjtcblxuICAgIHRoaXMudXNlclBhcmFtZXRlcnMgPSB7XG4gICAgICAvLyBXaGlsZSBhcmNoaXRlY3R1cmUgaXMgYmVpbmcgY29sbGVjdCBieSBHQSBhcyBVc2VyQWdlbnRBcmNoaXRlY3R1cmUuXG4gICAgICAvLyBJdCBkb2Vzbid0IGxvb2sgbGlrZSB0aGVyZSBpcyBhIHdheSB0byBxdWVyeSB0aGlzLiBUaGVyZWZvcmUgd2UgY29sbGVjdCB0aGlzIGFzIGEgY3VzdG9tIHVzZXIgZGltZW5zaW9uIHRvby5cbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLk9zQXJjaGl0ZWN0dXJlXTogb3MuYXJjaCgpLFxuICAgICAgLy8gV2hpbGUgVXNlciBJRCBpcyBiZWluZyBjb2xsZWN0ZWQgYnkgR0EsIHRoaXMgaXMgbm90IHZpc2libGUgaW4gcmVwb3J0cy9mb3IgZmlsdGVyaW5nLlxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uVXNlcklkXTogdXNlcklkLFxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uTm9kZVZlcnNpb25dOiBwYXJzZWRWZXJzaW9uXG4gICAgICAgID8gYCR7cGFyc2VkVmVyc2lvbi5tYWpvcn0uJHtwYXJzZWRWZXJzaW9uLm1pbm9yfS4ke3BhcnNlZFZlcnNpb24ucGF0Y2h9YFxuICAgICAgICA6ICdvdGhlcicsXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5Ob2RlTWFqb3JWZXJzaW9uXTogcGFyc2VkVmVyc2lvbj8ubWFqb3IsXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5QYWNrYWdlTWFuYWdlcl06IGNvbnRleHQucGFja2FnZU1hbmFnZXIubmFtZSxcbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLlBhY2thZ2VNYW5hZ2VyVmVyc2lvbl06IHBhY2thZ2VNYW5hZ2VyVmVyc2lvbixcbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLlBhY2thZ2VNYW5hZ2VyTWFqb3JWZXJzaW9uXTogcGFja2FnZU1hbmFnZXJWZXJzaW9uXG4gICAgICAgID8gK3BhY2thZ2VNYW5hZ2VyVmVyc2lvbi5zcGxpdCgnLicsIDEpWzBdXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uQW5ndWxhckNMSVZlcnNpb25dOiBWRVJTSU9OLmZ1bGwsXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5Bbmd1bGFyQ0xJTWFqb3JWZXJzaW9uXTogVkVSU0lPTi5tYWpvcixcbiAgICB9O1xuICB9XG5cbiAgcmVwb3J0V29ya3NwYWNlSW5mb0V2ZW50KFxuICAgIHBhcmFtZXRlcnM6IFBhcnRpYWw8UmVjb3JkPEV2ZW50Q3VzdG9tTWV0cmljLCBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgdW5kZWZpbmVkPj4sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnQoJ3dvcmtzcGFjZV9pbmZvJywgcGFyYW1ldGVycyk7XG4gIH1cblxuICByZXBvcnRSZWJ1aWxkUnVuRXZlbnQoXG4gICAgcGFyYW1ldGVyczogUGFydGlhbDxcbiAgICAgIFJlY29yZDxFdmVudEN1c3RvbU1ldHJpYyAmIEV2ZW50Q3VzdG9tRGltZW5zaW9uLCBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgdW5kZWZpbmVkPlxuICAgID4sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnQoJ3J1bl9yZWJ1aWxkJywgcGFyYW1ldGVycyk7XG4gIH1cblxuICByZXBvcnRCdWlsZFJ1bkV2ZW50KFxuICAgIHBhcmFtZXRlcnM6IFBhcnRpYWw8XG4gICAgICBSZWNvcmQ8RXZlbnRDdXN0b21NZXRyaWMgJiBFdmVudEN1c3RvbURpbWVuc2lvbiwgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IHVuZGVmaW5lZD5cbiAgICA+LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50KCdydW5fYnVpbGQnLCBwYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIHJlcG9ydEFyY2hpdGVjdFJ1bkV2ZW50KHBhcmFtZXRlcnM6IFBhcnRpYWw8UmVjb3JkPEV2ZW50Q3VzdG9tRGltZW5zaW9uLCBQcmltaXRpdmVUeXBlcz4+KTogdm9pZCB7XG4gICAgdGhpcy5ldmVudCgncnVuX2FyY2hpdGVjdCcsIHBhcmFtZXRlcnMpO1xuICB9XG5cbiAgcmVwb3J0U2NoZW1hdGljUnVuRXZlbnQocGFyYW1ldGVyczogUGFydGlhbDxSZWNvcmQ8RXZlbnRDdXN0b21EaW1lbnNpb24sIFByaW1pdGl2ZVR5cGVzPj4pOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50KCdydW5fc2NoZW1hdGljJywgcGFyYW1ldGVycyk7XG4gIH1cblxuICByZXBvcnRDb21tYW5kUnVuRXZlbnQoY29tbWFuZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudCgncnVuX2NvbW1hbmQnLCB7IFtFdmVudEN1c3RvbURpbWVuc2lvbi5Db21tYW5kXTogY29tbWFuZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnQoZXZlbnROYW1lOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlcz4pOiB2b2lkIHtcbiAgICB0aGlzLnRyYWNraW5nRXZlbnRzUXVldWUgPz89IFtdO1xuICAgIHRoaXMudHJhY2tpbmdFdmVudHNRdWV1ZS5wdXNoKHtcbiAgICAgIC4uLnRoaXMudXNlclBhcmFtZXRlcnMsXG4gICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgJ2VuJzogZXZlbnROYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsdXNoIG9uIGFuIGludGVydmFsIChpZiB0aGUgZXZlbnQgbG9vcCBpcyB3YWl0aW5nKS5cbiAgICpcbiAgICogQHJldHVybnMgYSBtZXRob2QgdGhhdCB3aGVuIGNhbGxlZCB3aWxsIHRlcm1pbmF0ZSB0aGUgcGVyaW9kaWNcbiAgICogZmx1c2ggYW5kIGNhbGwgZmx1c2ggb25lIGxhc3QgdGltZS5cbiAgICovXG4gIHBlcmlvZEZsdXNoKCk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBhbmFseXRpY3NGbHVzaFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBjb25zdCBhbmFseXRpY3NGbHVzaEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudHJhY2tpbmdFdmVudHNRdWV1ZT8ubGVuZ3RoKSB7XG4gICAgICAgIGFuYWx5dGljc0ZsdXNoUHJvbWlzZSA9IGFuYWx5dGljc0ZsdXNoUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuZmx1c2goKSk7XG4gICAgICB9XG4gICAgfSwgNDAwMCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbChhbmFseXRpY3NGbHVzaEludGVydmFsKTtcblxuICAgICAgLy8gRmx1c2ggb25lIGxhc3QgdGltZS5cbiAgICAgIHJldHVybiBhbmFseXRpY3NGbHVzaFByb21pc2UudGhlbigoKSA9PiB0aGlzLmZsdXNoKCkpO1xuICAgIH07XG4gIH1cblxuICBhc3luYyBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwZW5kaW5nVHJhY2tpbmdFdmVudHMgPSB0aGlzLnRyYWNraW5nRXZlbnRzUXVldWU7XG4gICAgdGhpcy5jb250ZXh0LmxvZ2dlci5kZWJ1ZyhgQW5hbHl0aWNzIGZsdXNoIHNpemUuICR7cGVuZGluZ1RyYWNraW5nRXZlbnRzPy5sZW5ndGh9LmApO1xuXG4gICAgaWYgKCFwZW5kaW5nVHJhY2tpbmdFdmVudHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRoZSBiZWxvdyBpcyBuZWVkZWQgc28gdGhhdCBpZiBmbHVzaCBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMsXG4gICAgLy8gd2UgZG9uJ3QgcmVwb3J0IHRoZSBzYW1lIGV2ZW50IG11bHRpcGxlIHRpbWVzLlxuICAgIHRoaXMudHJhY2tpbmdFdmVudHNRdWV1ZSA9IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQocGVuZGluZ1RyYWNraW5nRXZlbnRzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gRmFpbHVyZSB0byByZXBvcnQgYW5hbHl0aWNzIHNob3VsZG4ndCBjcmFzaCB0aGUgQ0xJLlxuICAgICAgYXNzZXJ0SXNFcnJvcihlcnJvcik7XG4gICAgICB0aGlzLmNvbnRleHQubG9nZ2VyLmRlYnVnKGBTZW5kIGFuYWx5dGljcyBlcnJvci4gJHtlcnJvci5tZXNzYWdlfS5gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbmQoZGF0YTogUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZXMgfCB1bmRlZmluZWQ+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGh0dHBzLnJlcXVlc3QoXG4gICAgICAgIHtcbiAgICAgICAgICBob3N0OiAnd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tJyxcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBwYXRoOiAnL2cvY29sbGVjdD8nICsgdGhpcy5yZXF1ZXN0UGFyYW1ldGVyU3RyaW5naWZpZWQsXG4gICAgICAgIH0sXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXNDb2RlICE9PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSAhPT0gMjA0KSB7XG4gICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgIG5ldyBFcnJvcihgQW5hbHl0aWNzIHJlcG9ydGluZyBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZTogJHtyZXNwb25zZS5zdGF0dXNDb2RlfS5gKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICBjb25zdCBxdWVyeVBhcmFtZXRlcnMgPSBkYXRhLm1hcCgocCkgPT4gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHApKS5qb2luKCdcXG4nKTtcbiAgICAgIHJlcXVlc3Qud3JpdGUocXVlcnlQYXJhbWV0ZXJzKTtcbiAgICAgIHJlcXVlc3QuZW5kKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvY2xpL3NyYy9hbmFseXRpY3MvYW5hbHl0aWNzLWNvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILG1DQUFvQztBQUNwQyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLHlEQUEyQztBQUMzQywrQ0FBaUM7QUFFakMsMEVBQTJEO0FBQzNELDhDQUFtRDtBQUNuRCxrREFBK0M7QUFDL0MsaUVBTWdDO0FBRWhDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDO0FBRTNDLE1BQWEsa0JBQWtCO0lBSzdCLFlBQW9CLE9BQXVCLEVBQUUsTUFBYztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN6QyxNQUFNLGlCQUFpQixHQUFzRDtZQUMzRSxDQUFDLHVDQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDckMsQ0FBQyx1Q0FBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNO1lBQ25DLENBQUMsdUNBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTtZQUNqQyxDQUFDLHVDQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBTyxDQUFDLElBQUksS0FBSyxPQUFPO2dCQUM5RCxDQUFDLENBQUMsZ0JBQWdCO2dCQUNsQixDQUFDLENBQUMsbUJBQW1CO1lBRXpCLDJCQUEyQjtZQUMzQixDQUFDLHVDQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUEsbUJBQVUsR0FBRTtZQUMxQyxDQUFDLHVDQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFB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QUFDLElBQUksQ0FBQyxDQUFDO1lBQzdFLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbEtELGdEQWtLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJ3F1ZXJ5c3RyaW5nJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kQ29udGV4dCB9IGZyb20gJy4uL2NvbW1hbmQtYnVpbGRlci9jb21tYW5kLW1vZHVsZSc7XG5pbXBvcnQgeyBuZ0RlYnVnIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgYXNzZXJ0SXNFcnJvciB9IGZyb20gJy4uL3V0aWxpdGllcy9lcnJvcic7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3ZlcnNpb24nO1xuaW1wb3J0IHtcbiAgRXZlbnRDdXN0b21EaW1lbnNpb24sXG4gIEV2ZW50Q3VzdG9tTWV0cmljLFxuICBQcmltaXRpdmVUeXBlcyxcbiAgUmVxdWVzdFBhcmFtZXRlcixcbiAgVXNlckN1c3RvbURpbWVuc2lvbixcbn0gZnJvbSAnLi9hbmFseXRpY3MtcGFyYW1ldGVycyc7XG5cbmNvbnN0IFRSQUNLSU5HX0lEX1BST0QgPSAnRy1WRVROSkJXOEw0JztcbmNvbnN0IFRSQUNLSU5HX0lEX1NUQUdJTkcgPSAnRy1UQk1QUkwxQlRNJztcblxuZXhwb3J0IGNsYXNzIEFuYWx5dGljc0NvbGxlY3RvciB7XG4gIHByaXZhdGUgdHJhY2tpbmdFdmVudHNRdWV1ZTogUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZXMgfCB1bmRlZmluZWQ+W10gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdFBhcmFtZXRlclN0cmluZ2lmaWVkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclBhcmFtZXRlcnM6IFJlY29yZDxVc2VyQ3VzdG9tRGltZW5zaW9uLCBQcmltaXRpdmVUeXBlcyB8IHVuZGVmaW5lZD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb21tYW5kQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1ldGVyczogUGFydGlhbDxSZWNvcmQ8UmVxdWVzdFBhcmFtZXRlciwgUHJpbWl0aXZlVHlwZXM+PiA9IHtcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlByb3RvY29sVmVyc2lvbl06IDIsXG4gICAgICBbUmVxdWVzdFBhcmFtZXRlci5DbGllbnRJZF06IHVzZXJJZCxcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlVzZXJJZF06IHVzZXJJZCxcbiAgICAgIFtSZXF1ZXN0UGFyYW1ldGVyLlRyYWNraW5nSWRdOlxuICAgICAgICAvXlxcZCtcXC5cXGQrXFwuXFxkKyQvLnRlc3QoVkVSU0lPTi5mdWxsKSAmJiBWRVJTSU9OLmZ1bGwgIT09ICcwLjAuMCdcbiAgICAgICAgICA/IFRSQUNLSU5HX0lEX1BST0RcbiAgICAgICAgICA6IFRSQUNLSU5HX0lEX1NUQUdJTkcsXG5cbiAgICAgIC8vIEJ1aWx0LWluIHVzZXIgcHJvcGVydGllc1xuICAgICAgW1JlcXVlc3RQYXJhbWV0ZXIuU2Vzc2lvbklkXTogcmFuZG9tVVVJRCgpLFxuICAgICAgW1JlcXVlc3RQYXJhbWV0ZXIuVXNlckFnZW50QXJjaGl0ZWN0dXJlXTogb3MuYXJjaCgpLFxuICAgICAgW1JlcXVlc3RQYXJhbWV0ZXIuVXNlckFnZW50UGxhdGZvcm1dOiBvcy5wbGF0Zm9ybSgpLFxuICAgICAgW1JlcXVlc3RQYXJhbWV0ZXIuVXNlckFnZW50UGxhdGZvcm1WZXJzaW9uXTogb3MudmVyc2lvbigpLFxuICAgIH07XG5cbiAgICBpZiAobmdEZWJ1Zykge1xuICAgICAgcmVxdWVzdFBhcmFtZXRlcnNbUmVxdWVzdFBhcmFtZXRlci5EZWJ1Z1ZpZXddID0gMTtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RQYXJhbWV0ZXJTdHJpbmdpZmllZCA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShyZXF1ZXN0UGFyYW1ldGVycyk7XG5cbiAgICBjb25zdCBwYXJzZWRWZXJzaW9uID0gc2VtdmVyLnBhcnNlKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXJWZXJzaW9uID0gY29udGV4dC5wYWNrYWdlTWFuYWdlci52ZXJzaW9uO1xuXG4gICAgdGhpcy51c2VyUGFyYW1ldGVycyA9IHtcbiAgICAgIC8vIFdoaWxlIGFyY2hpdGVjdHVyZSBpcyBiZWluZyBjb2xsZWN0IGJ5IEdBIGFzIFVzZXJBZ2VudEFyY2hpdGVjdHVyZS5cbiAgICAgIC8vIEl0IGRvZXNuJ3QgbG9vayBsaWtlIHRoZXJlIGlzIGEgd2F5IHRvIHF1ZXJ5IHRoaXMuIFRoZXJlZm9yZSB3ZSBjb2xsZWN0IHRoaXMgYXMgYSBjdXN0b20gdXNlciBkaW1lbnNpb24gdG9vLlxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uT3NBcmNoaXRlY3R1cmVdOiBvcy5hcmNoKCksXG4gICAgICAvLyBXaGlsZSBVc2VyIElEIGlzIGJlaW5nIGNvbGxlY3RlZCBieSBHQSwgdGhpcyBpcyBub3QgdmlzaWJsZSBpbiByZXBvcnRzL2ZvciBmaWx0ZXJpbmcuXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5Vc2VySWRdOiB1c2VySWQsXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5Ob2RlVmVyc2lvbl06IHBhcnNlZFZlcnNpb25cbiAgICAgICAgPyBgJHtwYXJzZWRWZXJzaW9uLm1ham9yfS4ke3BhcnNlZFZlcnNpb24ubWlub3J9LiR7cGFyc2VkVmVyc2lvbi5wYXRjaH1gXG4gICAgICAgIDogJ290aGVyJyxcbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLk5vZGVNYWpvclZlcnNpb25dOiBwYXJzZWRWZXJzaW9uPy5tYWpvcixcbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLlBhY2thZ2VNYW5hZ2VyXTogY29udGV4dC5wYWNrYWdlTWFuYWdlci5uYW1lLFxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uUGFja2FnZU1hbmFnZXJWZXJzaW9uXTogcGFja2FnZU1hbmFnZXJWZXJzaW9uLFxuICAgICAgW1VzZXJDdXN0b21EaW1lbnNpb24uUGFja2FnZU1hbmFnZXJNYWpvclZlcnNpb25dOiBwYWNrYWdlTWFuYWdlclZlcnNpb25cbiAgICAgICAgPyArcGFja2FnZU1hbmFnZXJWZXJzaW9uLnNwbGl0KCcuJywgMSlbMF1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBbVXNlckN1c3RvbURpbWVuc2lvbi5Bbmd1bGFyQ0xJVmVyc2lvbl06IFZFUlNJT04uZnVsbCxcbiAgICAgIFtVc2VyQ3VzdG9tRGltZW5zaW9uLkFuZ3VsYXJDTElNYWpvclZlcnNpb25dOiBWRVJTSU9OLm1ham9yLFxuICAgIH07XG4gIH1cblxuICByZXBvcnRXb3Jrc3BhY2VJbmZvRXZlbnQoXG4gICAgcGFyYW1ldGVyczogUGFydGlhbDxSZWNvcmQ8RXZlbnRDdXN0b21NZXRyaWMsIHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCB1bmRlZmluZWQ+PixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudCgnd29ya3NwYWNlX2luZm8nLCBwYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIHJlcG9ydFJlYnVpbGRSdW5FdmVudChcbiAgICBwYXJhbWV0ZXJzOiBQYXJ0aWFsPFxuICAgICAgUmVjb3JkPEV2ZW50Q3VzdG9tTWV0cmljICYgRXZlbnRDdXN0b21EaW1lbnNpb24sIHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCB1bmRlZmluZWQ+XG4gICAgPixcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudCgncnVuX3JlYnVpbGQnLCBwYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIHJlcG9ydEJ1aWxkUnVuRXZlbnQoXG4gICAgcGFyYW1ldGVyczogUGFydGlhbDxcbiAgICAgIFJlY29yZDxFdmVudEN1c3RvbU1ldHJpYyAmIEV2ZW50Q3VzdG9tRGltZW5zaW9uLCBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgdW5kZWZpbmVkPlxuICAgID4sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnQoJ3J1bl9idWlsZCcsIHBhcmFtZXRlcnMpO1xuICB9XG5cbiAgcmVwb3J0QXJjaGl0ZWN0UnVuRXZlbnQocGFyYW1ldGVyczogUGFydGlhbDxSZWNvcmQ8RXZlbnRDdXN0b21EaW1lbnNpb24sIFByaW1pdGl2ZVR5cGVzPj4pOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50KCdydW5fYXJjaGl0ZWN0JywgcGFyYW1ldGVycyk7XG4gIH1cblxuICByZXBvcnRTY2hlbWF0aWNSdW5FdmVudChwYXJhbWV0ZXJzOiBQYXJ0aWFsPFJlY29yZDxFdmVudEN1c3RvbURpbWVuc2lvbiwgUHJpbWl0aXZlVHlwZXM+Pik6IHZvaWQge1xuICAgIHRoaXMuZXZlbnQoJ3J1bl9zY2hlbWF0aWMnLCBwYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIHJlcG9ydENvbW1hbmRSdW5FdmVudChjb21tYW5kOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50KCdydW5fY29tbWFuZCcsIHsgW0V2ZW50Q3VzdG9tRGltZW5zaW9uLkNvbW1hbmRdOiBjb21tYW5kIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBldmVudChldmVudE5hbWU6IHN0cmluZywgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGVzPik6IHZvaWQge1xuICAgIHRoaXMudHJhY2tpbmdFdmVudHNRdWV1ZSA/Pz0gW107XG4gICAgdGhpcy50cmFja2luZ0V2ZW50c1F1ZXVlLnB1c2goe1xuICAgICAgLi4udGhpcy51c2VyUGFyYW1ldGVycyxcbiAgICAgIC4uLnBhcmFtZXRlcnMsXG4gICAgICAnZW4nOiBldmVudE5hbWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmx1c2ggb24gYW4gaW50ZXJ2YWwgKGlmIHRoZSBldmVudCBsb29wIGlzIHdhaXRpbmcpLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIG1ldGhvZCB0aGF0IHdoZW4gY2FsbGVkIHdpbGwgdGVybWluYXRlIHRoZSBwZXJpb2RpY1xuICAgKiBmbHVzaCBhbmQgY2FsbCBmbHVzaCBvbmUgbGFzdCB0aW1lLlxuICAgKi9cbiAgcGVyaW9kRmx1c2goKTogKCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGFuYWx5dGljc0ZsdXNoUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGNvbnN0IGFuYWx5dGljc0ZsdXNoSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmFja2luZ0V2ZW50c1F1ZXVlPy5sZW5ndGgpIHtcbiAgICAgICAgYW5hbHl0aWNzRmx1c2hQcm9taXNlID0gYW5hbHl0aWNzRmx1c2hQcm9taXNlLnRoZW4oKCkgPT4gdGhpcy5mbHVzaCgpKTtcbiAgICAgIH1cbiAgICB9LCA0MDAwKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhckludGVydmFsKGFuYWx5dGljc0ZsdXNoSW50ZXJ2YWwpO1xuXG4gICAgICAvLyBGbHVzaCBvbmUgbGFzdCB0aW1lLlxuICAgICAgcmV0dXJuIGFuYWx5dGljc0ZsdXNoUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuZmx1c2goKSk7XG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZsdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBlbmRpbmdUcmFja2luZ0V2ZW50cyA9IHRoaXMudHJhY2tpbmdFdmVudHNRdWV1ZTtcbiAgICB0aGlzLmNvbnRleHQubG9nZ2VyLmRlYnVnKGBBbmFseXRpY3MgZmx1c2ggc2l6ZS4gJHtwZW5kaW5nVHJhY2tpbmdFdmVudHM/Lmxlbmd0aH0uYCk7XG5cbiAgICBpZiAoIXBlbmRpbmdUcmFja2luZ0V2ZW50cz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVGhlIGJlbG93IGlzIG5lZWRlZCBzbyB0aGF0IGlmIGZsdXNoIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyxcbiAgICAvLyB3ZSBkb24ndCByZXBvcnQgdGhlIHNhbWUgZXZlbnQgbXVsdGlwbGUgdGltZXMuXG4gICAgdGhpcy50cmFja2luZ0V2ZW50c1F1ZXVlID0gdW5kZWZpbmVkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChwZW5kaW5nVHJhY2tpbmdFdmVudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBGYWlsdXJlIHRvIHJlcG9ydCBhbmFseXRpY3Mgc2hvdWxkbid0IGNyYXNoIHRoZSBDTEkuXG4gICAgICBhc3NlcnRJc0Vycm9yKGVycm9yKTtcbiAgICAgIHRoaXMuY29udGV4dC5sb2dnZXIuZGVidWcoYFNlbmQgYW5hbHl0aWNzIGVycm9yLiAke2Vycm9yLm1lc3NhZ2V9LmApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VuZChkYXRhOiBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlcyB8IHVuZGVmaW5lZD5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gaHR0cHMucmVxdWVzdChcbiAgICAgICAge1xuICAgICAgICAgIGhvc3Q6ICd3d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20nLFxuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIHBhdGg6ICcvZy9jb2xsZWN0PycgKyB0aGlzLnJlcXVlc3RQYXJhbWV0ZXJTdHJpbmdpZmllZCxcbiAgICAgICAgfSxcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgIT09IDIwMCAmJiByZXNwb25zZS5zdGF0dXNDb2RlICE9PSAyMDQpIHtcbiAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgbmV3IEVycm9yKGBBbmFseXRpY3MgcmVwb3J0aW5nIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9LmApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1ldGVycyA9IGRhdGEubWFwKChwKSA9PiBxdWVyeXN0cmluZy5zdHJpbmdpZnkocCkpLmpvaW4oJ1xcbicpO1xuICAgICAgcmVxdWVzdC53cml0ZShxdWVyeVBhcmFtZXRlcnMpO1xuICAgICAgcmVxdWVzdC5lbmQoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -15,6 +15,7 @@ const fs_1 = require("fs");
15
15
  const jsonc_parser_1 = require("jsonc-parser");
16
16
  const module_1 = require("module");
17
17
  const path_1 = require("path");
18
+ const util_1 = require("util");
18
19
  const vm_1 = require("vm");
19
20
  const error_1 = require("../../utilities/error");
20
21
  /**
@@ -172,6 +173,12 @@ function wrap(schematicFile, schematicDirectory, moduleCache, exportName) {
172
173
  __dirname: schematicDirectory,
173
174
  __filename: schematicFile,
174
175
  Buffer,
176
+ // TextEncoder is used by the compiler to generate i18n message IDs. See:
177
+ // https://github.com/angular/angular/blob/main/packages/compiler/src/i18n/digest.ts#L17
178
+ // It is referenced globally, because it may be run either on the browser or the server.
179
+ // Usually Node exposes it globally, but in order for it to work, our custom context
180
+ // has to expose it too. Issue context: https://github.com/angular/angular/issues/48940.
181
+ TextEncoder: util_1.TextEncoder,
175
182
  console,
176
183
  process,
177
184
  get global() {
@@ -185,4 +192,4 @@ function wrap(schematicFile, schematicDirectory, moduleCache, exportName) {
185
192
  function loadBuiltinModule(id) {
186
193
  return undefined;
187
194
  }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLWVuZ2luZS1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9jbGkvc3JjL2NvbW1hbmQtYnVpbGRlci91dGlsaXRpZXMvc2NoZW1hdGljLWVuZ2luZS1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7QUFFSCwyREFBb0Y7QUFDcEYsNERBQW1HO0FBQ25HLDJCQUFrQztBQUNsQywrQ0FBa0Q7QUFDbEQsbUNBQXVDO0FBQ3ZDLCtCQUF3QztBQUN4QywyQkFBNEI7QUFDNUIsaURBQXNEO0FBRXREOztHQUVHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsMENBQUUsV0FBVyxFQUFFLENBQUM7QUFFdEYsU0FBUyxtQkFBbUIsQ0FBQyxhQUFxQixFQUFFLHNCQUErQjtJQUNqRix3Q0FBd0M7SUFDeEMsUUFBUSx5QkFBeUIsRUFBRTtRQUNqQyxLQUFLLEdBQUcsQ0FBQztRQUNULEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU07WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLEtBQUssS0FBSztZQUNSLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLHVCQUF1QixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLGtFQUFrRTtJQUNsRSx1REFBdUQ7SUFDdkQsbUZBQW1GO0lBQ25GLElBQ0UsdUJBQXVCLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDO1FBQzlELENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLHlDQUF5QyxDQUFDLEVBQzVFO1FBQ0EsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELG1EQUFtRDtJQUNuRCwrREFBK0Q7SUFDL0QsSUFBSSx1REFBdUQs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QzNFLE1BQU0sVUFBVSxHQUFHLCtEQUErRCxDQUFDO0lBQ25GLE1BQU0sVUFBVSxHQUFHLFVBQVU7UUFDM0IsQ0FBQyxDQUFDLDRCQUE0QixVQUFVLFFBQVE7UUFDaEQsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBTSxDQUFDLFVBQVUsR0FBRyxhQUFhLEdBQUcsVUFBVSxFQUFFO1FBQ2pFLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxDQUFDO0tBQ2QsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUc7UUFDZCxTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLElBQUksTUFBTTtZQUNSLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxhQUFhO0tBQ3ZCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXZELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQVU7SUFDbkMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBSdWxlRmFjdG9yeSwgU2NoZW1hdGljc0V4Y2VwdGlvbiwgVHJlZSB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7IEZpbGVTeXN0ZW1Db2xsZWN0aW9uRGVzYywgTm9kZU1vZHVsZXNFbmdpbmVIb3N0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MvdG9vbHMnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VKc29uIH0gZnJvbSAnanNvbmMtcGFyc2VyJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnO1xuaW1wb3J0IHsgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU2NyaXB0IH0gZnJvbSAndm0nO1xuaW1wb3J0IHsgYXNzZXJ0SXNFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lcnJvcic7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgdG8gY29udHJvbCBzY2hlbWF0aWMgcGFja2FnZSByZWRpcmVjdGlvblxuICovXG5jb25zdCBzY2hlbWF0aWNSZWRpcmVjdFZhcmlhYmxlID0gcHJvY2Vzcy5lbnZbJ05HX1NDSEVNQVRJQ19SRURJUkVDVCddPy50b0xvd2VyQ2FzZSgpO1xuXG5mdW5jdGlvbiBzaG91bGRXcmFwU2NoZW1hdGljKHNjaGVtYXRpY0ZpbGU6IHN0cmluZywgc2NoZW1hdGljRW5jYXBzdWxhdGlvbjogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAvLyBDaGVjayBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiBwcmVzZW50XG4gIHN3aXRjaCAoc2NoZW1hdGljUmVkaXJlY3RWYXJpYWJsZSkge1xuICAgIGNhc2UgJzAnOlxuICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICBjYXNlICdvZmYnOlxuICAgIGNhc2UgJ25vbmUnOlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNhc2UgJ2FsbCc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRTY2hlbWF0aWNGaWxlID0gc2NoZW1hdGljRmlsZS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIC8vIE5ldmVyIHdyYXAgdGhlIGludGVybmFsIHVwZGF0ZSBzY2hlbWF0aWMgd2hlbiBleGVjdXRlZCBkaXJlY3RseVxuICAvLyBJdCBjb21tdW5pY2F0ZXMgd2l0aCB0aGUgdXBkYXRlIGNvbW1hbmQgdmlhIGBnbG9iYWxgXG4gIC8vIEJ1dCB3ZSBzdGlsbCB3YW50IHRvIHJlZGlyZWN0IHNjaGVtYXRpY3MgbG9jYXRlZCBpbiBgQGFuZ3VsYXIvY2xpL25vZGVfbW9kdWxlc2AuXG4gIGlmIChcbiAgICBub3JtYWxpemVkU2NoZW1hdGljRmlsZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2NsaS8nKSAmJlxuICAgICFub3JtYWxpemVkU2NoZW1hdGljRmlsZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL2NsaS9ub2RlX21vZHVsZXMvJylcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIGZpcnN0LXBhcnR5IEFuZ3VsYXIgc2NoZW1hdGljIHBhY2thZ2VzXG4gIC8vIEFuZ3VsYXIgc2NoZW1hdGljcyBhcmUgc2FmZSB0byB1c2UgaW4gdGhlIHdyYXBwZWQgVk0gY29udGV4dFxuICBpZiAoL1xcL25vZGVfbW9kdWxlc1xcL0AoPzphbmd1bGFyfHNjaGVtYXRpY3N8bmd1bml2ZXJzYWwpXFwvLy50ZXN0KG5vcm1hbGl6ZWRTY2hlbWF0aWNGaWxlKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlIHVzZSB0aGUgdmFsdWUgb2YgdGhlIHNjaGVtYXRpYyBjb2xsZWN0aW9uJ3MgZW5jYXBzdWxhdGlvbiBvcHRpb24gKGN1cnJlbnQgZGVmYXVsdCBvZiBmYWxzZSlcbiAgcmV0dXJuIHNjaGVtYXRpY0VuY2Fwc3VsYXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWF0aWNFbmdpbmVIb3N0IGV4dGVuZHMgTm9kZU1vZHVsZXNFbmdpbmVIb3N0IHtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9yZXNvbHZlUmVmZXJlbmNlU3RyaW5nKFxuICAgIHJlZlN0cmluZzogc3RyaW5nLFxuICAgIHBhcmVudFBhdGg6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uRGVzY3JpcHRpb24/OiBGaWxlU3lzdGVtQ29sbGVjdGlvbkRlc2MsXG4gICkge1xuICAgIGNvbnN0IFtwYXRoLCBuYW1lXSA9IHJlZlN0cmluZy5zcGxpdCgnIycsIDIpO1xuICAgIC8vIE1pbWljIGJlaGF2aW9yIG9mIEV4cG9ydFN0cmluZ1JlZiBjbGFzcyB1c2VkIGluIGRlZmF1bHQgYmVoYXZpb3JcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGhbMF0gPT09ICcuJyA/IHJlc29sdmUocGFyZW50UGF0aCA/PyBwcm9jZXNzLmN3ZCgpLCBwYXRoKSA6IHBhdGg7XG5cbiAgICBjb25zdCByZWZlcmVuY2VSZXF1aXJlID0gY3JlYXRlUmVxdWlyZShfX2ZpbGVuYW1lKTtcbiAgICBjb25zdCBzY2hlbWF0aWNGaWxlID0gcmVmZXJlbmNlUmVxdWlyZS5yZXNvbHZlKGZ1bGxQYXRoLCB7IHBhdGhzOiBbcGFyZW50UGF0aF0gfSk7XG5cbiAgICBpZiAoc2hvdWxkV3JhcFNjaGVtYXRpYyhzY2hlbWF0aWNGaWxlLCAhIWNvbGxlY3Rpb25EZXNjcmlwdGlvbj8uZW5jYXBzdWxhdGlvbikpIHtcbiAgICAgIGNvbnN0IHNjaGVtYXRpY1BhdGggPSBkaXJuYW1lKHNjaGVtYXRpY0ZpbGUpO1xuXG4gICAgICBjb25zdCBtb2R1bGVDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuICAgICAgY29uc3QgZmFjdG9yeUluaXRpYWxpemVyID0gd3JhcChcbiAgICAgICAgc2NoZW1hdGljRmlsZSxcbiAgICAgICAgc2NoZW1hdGljUGF0aCxcbiAgICAgICAgbW9kdWxlQ2FjaGUsXG4gICAgICAgIG5hbWUgfHwgJ2RlZmF1bHQnLFxuICAgICAgKSBhcyAoKSA9PiBSdWxlRmFjdG9yeTx7fT47XG5cbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBmYWN0b3J5SW5pdGlhbGl6ZXIoKTtcbiAgICAgIGlmICghZmFjdG9yeSB8fCB0eXBlb2YgZmFjdG9yeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgcmVmOiBmYWN0b3J5LCBwYXRoOiBzY2hlbWF0aWNQYXRoIH07XG4gICAgfVxuXG4gICAgLy8gQWxsIG90aGVyIHNjaGVtYXRpY3MgdXNlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICByZXR1cm4gc3VwZXIuX3Jlc29sdmVSZWZlcmVuY2VTdHJpbmcocmVmU3RyaW5nLCBwYXJlbnRQYXRoLCBjb2xsZWN0aW9uRGVzY3JpcHRpb24pO1xuICB9XG59XG5cbi8qKlxuICogTWluaW1hbCBzaGltIG1vZHVsZXMgZm9yIGxlZ2FjeSBkZWVwIGltcG9ydHMgb2YgYEBzY2hlbWF0aWNzL2FuZ3VsYXJgXG4gKi9cbmNvbnN0IGxlZ2FjeU1vZHVsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L2NvbmZpZyc6IHtcbiAgICBnZXRXb3Jrc3BhY2UoaG9zdDogVHJlZSkge1xuICAgICAgY29uc3QgcGF0aCA9ICcvLmFuZ3VsYXIuanNvbic7XG4gICAgICBjb25zdCBkYXRhID0gaG9zdC5yZWFkKHBhdGgpO1xuICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKGBDb3VsZCBub3QgZmluZCAoJHtwYXRofSlgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnNlSnNvbihkYXRhLnRvU3RyaW5nKCksIFtdLCB7IGFsbG93VHJhaWxpbmdDb21tYTogdHJ1ZSB9KTtcbiAgICB9LFxuICB9LFxuICAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3Byb2plY3QnOiB7XG4gICAgYnVpbGREZWZhdWx0UGF0aChwcm9qZWN0OiB7IHNvdXJjZVJvb3Q/OiBzdHJpbmc7IHJvb3Q6IHN0cmluZzsgcHJvamVjdFR5cGU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IHJvb3QgPSBwcm9qZWN0LnNvdXJjZVJvb3QgPyBgLyR7cHJvamVjdC5zb3VyY2VSb290fS9gIDogYC8ke3Byb2plY3Qucm9vdH0vc3JjL2A7XG5cbiAgICAgIHJldHVybiBgJHtyb290fSR7cHJvamVjdC5wcm9qZWN0VHlwZSA9PT0gJ2FwcGxpY2F0aW9uJyA/ICdhcHAnIDogJ2xpYid9YDtcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBXcmFwIGEgSmF2YVNjcmlwdCBmaWxlIGluIGEgVk0gY29udGV4dCB0byBhbGxvdyBzcGVjaWZpYyBBbmd1bGFyIGRlcGVuZGVuY2llcyB0byBiZSByZWRpcmVjdGVkLlxuICogVGhpcyBWTSBzZXR1cCBpcyBPTkxZIGludGVuZGVkIHRvIHJlZGlyZWN0IGRlcGVuZGVuY2llcy5cbiAqXG4gKiBAcGFyYW0gc2NoZW1hdGljRmlsZSBBIEphdmFTY3JpcHQgc2NoZW1hdGljIGZpbGUgcGF0aCB0aGF0IHNob3VsZCBiZSB3cmFwcGVkLlxuICogQHBhcmFtIHNjaGVtYXRpY0RpcmVjdG9yeSBBIGRpcmVjdG9yeSB0aGF0IHdpbGwgYmUgdXNlZCBhcyB0aGUgbG9jYXRpb24gb2YgdGhlIEphdmFTY3JpcHQgZmlsZS5cbiAqIEBwYXJhbSBtb2R1bGVDYWNoZSBBIG1hcCB0byB1c2UgZm9yIGNhY2hpbmcgcmVwZWF0IG1vZHVsZSB1c2FnZSBhbmQgcHJvcGVyIGBpbnN0YW5jZW9mYCBzdXBwb3J0LlxuICogQHBhcmFtIGV4cG9ydE5hbWUgQW4gb3B0aW9uYWwgbmFtZSBvZiBhIHNwZWNpZmljIGV4cG9ydCB0byByZXR1cm4uIE90aGVyd2lzZSwgcmV0dXJuIGFsbCBleHBvcnRzLlxuICovXG5mdW5jdGlvbiB3cmFwKFxuICBzY2hlbWF0aWNGaWxlOiBzdHJpbmcsXG4gIHNjaGVtYXRpY0RpcmVjdG9yeTogc3RyaW5nLFxuICBtb2R1bGVDYWNoZTogTWFwPHN0cmluZywgdW5rbm93bj4sXG4gIGV4cG9ydE5hbWU/OiBzdHJpbmcsXG4pOiAoKSA9PiB1bmtub3duIHtcbiAgY29uc3QgaG9zdFJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKF9fZmlsZW5hbWUpO1xuICBjb25zdCBzY2hlbWF0aWNSZXF1aXJlID0gY3JlYXRlUmVxdWlyZShzY2hlbWF0aWNGaWxlKTtcblxuICBjb25zdCBjdXN0b21SZXF1aXJlID0gZnVuY3Rpb24gKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAobGVnYWN5TW9kdWxlc1tpZF0pIHtcbiAgICAgIC8vIFByb3ZpZGUgY29tcGF0aWJpbGl0eSBtb2R1bGVzIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBAYW5ndWxhci9jZGtcbiAgICAgIHJldHVybiBsZWdhY3lNb2R1bGVzW2lkXTtcbiAgICB9IGVsc2UgaWYgKGlkLnN0YXJ0c1dpdGgoJ3NjaGVtYXRpY3M6JykpIHtcbiAgICAgIC8vIFNjaGVtYXRpY3MgYnVpbHQtaW4gbW9kdWxlcyB1c2UgdGhlIGBzY2hlbWF0aWNzYCBzY2hlbWUgKHNpbWlsYXIgdG8gdGhlIE5vZGUuanMgYG5vZGVgIHNjaGVtZSlcbiAgICAgIGNvbnN0IGJ1aWx0aW5JZCA9IGlkLnNsaWNlKDExKTtcbiAgICAgIGNvbnN0IGJ1aWx0aW5Nb2R1bGUgPSBsb2FkQnVpbHRpbk1vZHVsZShidWlsdGluSWQpO1xuICAgICAgaWYgKCFidWlsdGluTW9kdWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVW5rbm93biBzY2hlbWF0aWNzIGJ1aWx0LWluIG1vZHVsZSAnJHtpZH0nIHJlcXVlc3RlZCBmcm9tIHNjaGVtYXRpYyAnJHtzY2hlbWF0aWNGaWxlfSdgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYnVpbHRpbk1vZHVsZTtcbiAgICB9IGVsc2UgaWYgKGlkLnN0YXJ0c1dpdGgoJ0Bhbmd1bGFyLWRldmtpdC8nKSB8fCBpZC5zdGFydHNXaXRoKCdAc2NoZW1hdGljcy8nKSkge1xuICAgICAgLy8gRmlsZXMgc2hvdWxkIG5vdCByZWRpcmVjdCBgQGFuZ3VsYXIvY29yZWAgYW5kIGluc3RlYWQgdXNlIHRoZSBkaXJlY3RcbiAgICAgIC8vIGRlcGVuZGVuY3kgaWYgYXZhaWxhYmxlLiBUaGlzIGFsbG93cyBvbGQgbWFqb3IgdmVyc2lvbiBtaWdyYXRpb25zIHRvIGNvbnRpbnVlIHRvIGZ1bmN0aW9uXG4gICAgICAvLyBldmVuIHRob3VnaCB0aGUgbGF0ZXN0IG1ham9yIHZlcnNpb24gbWF5IGhhdmUgYnJlYWtpbmcgY2hhbmdlcyBpbiBgQGFuZ3VsYXIvY29yZWAuXG4gICAgICBpZiAoaWQuc3RhcnRzV2l0aCgnQGFuZ3VsYXItZGV2a2l0L2NvcmUnKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBzY2hlbWF0aWNSZXF1aXJlKGlkKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGFzc2VydElzRXJyb3IoZSk7XG4gICAgICAgICAgaWYgKGUuY29kZSAhPT0gJ01PRFVMRV9OT1RfRk9VTkQnKSB7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZXNvbHZlIGZyb20gaW5zaWRlIHRoZSBgQGFuZ3VsYXIvY2xpYCBwcm9qZWN0XG4gICAgICByZXR1cm4gaG9zdFJlcXVpcmUoaWQpO1xuICAgIH0gZWxzZSBpZiAoaWQuc3RhcnRzV2l0aCgnLicpIHx8IGlkLnN0YXJ0c1dpdGgoJ0Bhbmd1bGFyL2NkaycpKSB7XG4gICAgICAvLyBXcmFwIHJlbGF0aXZlIGZpbGVzIGluc2lkZSB0aGUgc2NoZW1hdGljIGNvbGxlY3Rpb25cbiAgICAgIC8vIEFsc28gd3JhcCBgQGFuZ3VsYXIvY2RrYCwgaXQgY29udGFpbnMgaGVscGVyIHV0aWxpdGllcyB0aGF0IGltcG9ydCBjb3JlIHNjaGVtYXRpYyBwYWNrYWdlc1xuXG4gICAgICAvLyBSZXNvbHZlIGZyb20gdGhlIG9yaWdpbmFsIGZpbGVcbiAgICAgIGNvbnN0IG1vZHVsZVBhdGggPSBzY2hlbWF0aWNSZXF1aXJlLnJlc29sdmUoaWQpO1xuXG4gICAgICAvLyBVc2UgY2FjaGVkIG1vZHVsZSBpZiBhdmFpbGFibGVcbiAgICAgIGNvbnN0IGNhY2hlZE1vZHVsZSA9IG1vZHVsZUNhY2hlLmdldChtb2R1bGVQYXRoKTtcbiAgICAgIGlmIChjYWNoZWRNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZE1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgLy8gRG8gbm90IHdyYXAgdmVuZG9yZWQgdGhpcmQtcGFydHkgcGFja2FnZXMgb3IgSlNPTiBmaWxlc1xuICAgICAgaWYgKFxuICAgICAgICAhL1svXFxcXF1ub2RlX21vZHVsZXNbL1xcXFxdQHNjaGVtYXRpY3NbL1xcXFxdYW5ndWxhclsvXFxcXF10aGlyZF9wYXJ0eVsvXFxcXF0vLnRlc3QobW9kdWxlUGF0aCkgJiZcbiAgICAgICAgIW1vZHVsZVBhdGguZW5kc1dpdGgoJy5qc29uJylcbiAgICAgICkge1xuICAgICAgICAvLyBXcmFwIG1vZHVsZSBhbmQgc2F2ZSBpbiBjYWNoZVxuICAgICAgICBjb25zdCB3cmFwcGVkTW9kdWxlID0gd3JhcChtb2R1bGVQYXRoLCBkaXJuYW1lKG1vZHVsZVBhdGgpLCBtb2R1bGVDYWNoZSkoKTtcbiAgICAgICAgbW9kdWxlQ2FjaGUuc2V0KG1vZHVsZVBhdGgsIHdyYXBwZWRNb2R1bGUpO1xuXG4gICAgICAgIHJldHVybiB3cmFwcGVkTW9kdWxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsbCBvdGhlcnMgYXJlIHJlcXVpcmVkIGRpcmVjdGx5IGZyb20gdGhlIG9yaWdpbmFsIGZpbGVcbiAgICByZXR1cm4gc2NoZW1hdGljUmVxdWlyZShpZCk7XG4gIH07XG5cbiAgLy8gU2V0dXAgYSB3cmFwcGVyIGZ1bmN0aW9uIHRvIGNhcHR1cmUgdGhlIG1vZHVsZSdzIGV4cG9ydHNcbiAgY29uc3Qgc2NoZW1hdGljQ29kZSA9IHJlYWRGaWxlU3luYyhzY2hlbWF0aWNGaWxlLCAndXRmOCcpO1xuICAvLyBgbW9kdWxlYCBpcyByZXF1aXJlZCBkdWUgdG8gQGFuZ3VsYXIvbG9jYWxpemUgbmctYWRkIGJlaW5nIGluIFVNRCBmb3JtYXRcbiAgY29uc3QgaGVhZGVyQ29kZSA9ICcoZnVuY3Rpb24oKSB7XFxudmFyIGV4cG9ydHMgPSB7fTtcXG52YXIgbW9kdWxlID0geyBleHBvcnRzIH07XFxuJztcbiAgY29uc3QgZm9vdGVyQ29kZSA9IGV4cG9ydE5hbWVcbiAgICA/IGBcXG5yZXR1cm4gbW9kdWxlLmV4cG9ydHNbJyR7ZXhwb3J0TmFtZX0nXTt9KTtgXG4gICAgOiAnXFxucmV0dXJuIG1vZHVsZS5leHBvcnRzO30pOyc7XG5cbiAgY29uc3Qgc2NyaXB0ID0gbmV3IFNjcmlwdChoZWFkZXJDb2RlICsgc2NoZW1hdGljQ29kZSArIGZvb3RlckNvZGUsIHtcbiAgICBmaWxlbmFtZTogc2NoZW1hdGljRmlsZSxcbiAgICBsaW5lT2Zmc2V0OiAzLFxuICB9KTtcblxuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIF9fZGlybmFtZTogc2NoZW1hdGljRGlyZWN0b3J5LFxuICAgIF9fZmlsZW5hbWU6IHNjaGVtYXRpY0ZpbGUsXG4gICAgQnVmZmVyLFxuICAgIGNvbnNvbGUsXG4gICAgcHJvY2VzcyxcbiAgICBnZXQgZ2xvYmFsKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICByZXF1aXJlOiBjdXN0b21SZXF1aXJlLFxuICB9O1xuXG4gIGNvbnN0IGV4cG9ydHNGYWN0b3J5ID0gc2NyaXB0LnJ1bkluTmV3Q29udGV4dChjb250ZXh0KTtcblxuICByZXR1cm4gZXhwb3J0c0ZhY3Rvcnk7XG59XG5cbmZ1bmN0aW9uIGxvYWRCdWlsdGluTW9kdWxlKGlkOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLWVuZ2luZS1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9jbGkvc3JjL2NvbW1hbmQtYnVpbGRlci91dGlsaXRpZXMvc2NoZW1hdGljLWVuZ2luZS1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7QUFFSCwyREFBb0Y7QUFDcEYsNERBQW1HO0FBQ25HLDJCQUFrQztBQUNsQywrQ0FBa0Q7QUFDbEQsbUNBQXVDO0FBQ3ZDLCtCQUF3QztBQUN4QywrQkFBbUM7QUFDbkMsMkJBQTRCO0FBQzVCLGlEQUFzRDtBQUV0RDs7R0FFRztBQUNILE1BQU0seUJBQXlCLEdBQUcsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLDBDQUFFLFdBQVcsRUFBRSxDQUFDO0FBRXRGLFNBQVMsbUJBQW1CLENBQUMsYUFBcUIsRUFBRSxzQkFBK0I7SUFDakYsd0NBQXdDO0lBQ3hDLFFBQVEseUJBQXlCLEVBQUU7UUFDakMsS0FBSyxHQUFHLENBQUM7UUFDVCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNO1lBQ1QsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLEtBQUs7WUFDUixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsTUFBTSx1QkFBdUIsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRSxrRUFBa0U7SUFDbEUsdURBQXVEO0lBQ3ZELG1GQUFtRjtJQUNuRixJQUNFLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQztRQUM5RCxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUM1RTtRQUNBLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxtREFBbUQ7SUFDbkQsK0RBQStEO0lBQy9E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QzFELDJFQUEyRTtJQUMzRSxNQUFNLFVBQVUsR0FBRywrREFBK0QsQ0FBQztJQUNuRixNQUFNLFVBQVUsR0FBRyxVQUFVO1FBQzNCLENBQUMsQ0FBQyw0QkFBNEIsVUFBVSxRQUFRO1FBQ2hELENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztJQUVsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQU0sQ0FBQyxVQUFVLEdBQUcsYUFBYSxHQUFHLFVBQVUsRUFBRTtRQUNqRSxRQUFRLEVBQUUsYUFBYTtRQUN2QixVQUFVLEVBQUUsQ0FBQztLQUNkLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxHQUFHO1FBQ2QsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixVQUFVLEVBQUUsYUFBYTtRQUN6QixNQUFNO1FBQ04seUVBQXlFO1FBQ3pFLHdGQUF3RjtRQUN4Rix3RkFBd0Y7UUFDeEYsb0ZBQW9GO1FBQ3BGLHdGQUF3RjtRQUN4RixXQUFXLEVBQVgsa0JBQVc7UUFDWCxPQUFPO1FBQ1AsT0FBTztRQUNQLElBQUksTUFBTTtZQUNSLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxhQUFhO0tBQ3ZCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXZELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQVU7SUFDbkMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBSdWxlRmFjdG9yeSwgU2NoZW1hdGljc0V4Y2VwdGlvbiwgVHJlZSB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7IEZpbGVTeXN0ZW1Db2xsZWN0aW9uRGVzYywgTm9kZU1vZHVsZXNFbmdpbmVIb3N0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MvdG9vbHMnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VKc29uIH0gZnJvbSAnanNvbmMtcGFyc2VyJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnO1xuaW1wb3J0IHsgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVGV4dEVuY29kZXIgfSBmcm9tICd1dGlsJztcbmltcG9ydCB7IFNjcmlwdCB9IGZyb20gJ3ZtJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZXJyb3InO1xuXG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlIHRvIGNvbnRyb2wgc2NoZW1hdGljIHBhY2thZ2UgcmVkaXJlY3Rpb25cbiAqL1xuY29uc3Qgc2NoZW1hdGljUmVkaXJlY3RWYXJpYWJsZSA9IHByb2Nlc3MuZW52WydOR19TQ0hFTUFUSUNfUkVESVJFQ1QnXT8udG9Mb3dlckNhc2UoKTtcblxuZnVuY3Rpb24gc2hvdWxkV3JhcFNjaGVtYXRpYyhzY2hlbWF0aWNGaWxlOiBzdHJpbmcsIHNjaGVtYXRpY0VuY2Fwc3VsYXRpb246IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgLy8gQ2hlY2sgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgcHJlc2VudFxuICBzd2l0Y2ggKHNjaGVtYXRpY1JlZGlyZWN0VmFyaWFibGUpIHtcbiAgICBjYXNlICcwJzpcbiAgICBjYXNlICdmYWxzZSc6XG4gICAgY2FzZSAnb2ZmJzpcbiAgICBjYXNlICdub25lJzpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjYXNlICdhbGwnOlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkU2NoZW1hdGljRmlsZSA9IHNjaGVtYXRpY0ZpbGUucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAvLyBOZXZlciB3cmFwIHRoZSBpbnRlcm5hbCB1cGRhdGUgc2NoZW1hdGljIHdoZW4gZXhlY3V0ZWQgZGlyZWN0bHlcbiAgLy8gSXQgY29tbXVuaWNhdGVzIHdpdGggdGhlIHVwZGF0ZSBjb21tYW5kIHZpYSBgZ2xvYmFsYFxuICAvLyBCdXQgd2Ugc3RpbGwgd2FudCB0byByZWRpcmVjdCBzY2hlbWF0aWNzIGxvY2F0ZWQgaW4gYEBhbmd1bGFyL2NsaS9ub2RlX21vZHVsZXNgLlxuICBpZiAoXG4gICAgbm9ybWFsaXplZFNjaGVtYXRpY0ZpbGUuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcy9AYW5ndWxhci9jbGkvJykgJiZcbiAgICAhbm9ybWFsaXplZFNjaGVtYXRpY0ZpbGUuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcy9AYW5ndWxhci9jbGkvbm9kZV9tb2R1bGVzLycpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIGZvciBmaXJzdC1wYXJ0eSBBbmd1bGFyIHNjaGVtYXRpYyBwYWNrYWdlc1xuICAvLyBBbmd1bGFyIHNjaGVtYXRpY3MgYXJlIHNhZmUgdG8gdXNlIGluIHRoZSB3cmFwcGVkIFZNIGNvbnRleHRcbiAgaWYgKC9cXC9ub2RlX21vZHVsZXNcXC9AKD86YW5ndWxhcnxzY2hlbWF0aWNzfG5ndW5pdmVyc2FsKVxcLy8udGVzdChub3JtYWxpemVkU2NoZW1hdGljRmlsZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSB1c2UgdGhlIHZhbHVlIG9mIHRoZSBzY2hlbWF0aWMgY29sbGVjdGlvbidzIGVuY2Fwc3VsYXRpb24gb3B0aW9uIChjdXJyZW50IGRlZmF1bHQgb2YgZmFsc2UpXG4gIHJldHVybiBzY2hlbWF0aWNFbmNhcHN1bGF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgU2NoZW1hdGljRW5naW5lSG9zdCBleHRlbmRzIE5vZGVNb2R1bGVzRW5naW5lSG9zdCB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfcmVzb2x2ZVJlZmVyZW5jZVN0cmluZyhcbiAgICByZWZTdHJpbmc6IHN0cmluZyxcbiAgICBwYXJlbnRQYXRoOiBzdHJpbmcsXG4gICAgY29sbGVjdGlvbkRlc2NyaXB0aW9uPzogRmlsZVN5c3RlbUNvbGxlY3Rpb25EZXNjLFxuICApIHtcbiAgICBjb25zdCBbcGF0aCwgbmFtZV0gPSByZWZTdHJpbmcuc3BsaXQoJyMnLCAyKTtcbiAgICAvLyBNaW1pYyBiZWhhdmlvciBvZiBFeHBvcnRTdHJpbmdSZWYgY2xhc3MgdXNlZCBpbiBkZWZhdWx0IGJlaGF2aW9yXG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoWzBdID09PSAnLicgPyByZXNvbHZlKHBhcmVudFBhdGggPz8gcHJvY2Vzcy5jd2QoKSwgcGF0aCkgOiBwYXRoO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoX19maWxlbmFtZSk7XG4gICAgY29uc3Qgc2NoZW1hdGljRmlsZSA9IHJlZmVyZW5jZVJlcXVpcmUucmVzb2x2ZShmdWxsUGF0aCwgeyBwYXRoczogW3BhcmVudFBhdGhdIH0pO1xuXG4gICAgaWYgKHNob3VsZFdyYXBTY2hlbWF0aWMoc2NoZW1hdGljRmlsZSwgISFjb2xsZWN0aW9uRGVzY3JpcHRpb24/LmVuY2Fwc3VsYXRpb24pKSB7XG4gICAgICBjb25zdCBzY2hlbWF0aWNQYXRoID0gZGlybmFtZShzY2hlbWF0aWNGaWxlKTtcblxuICAgICAgY29uc3QgbW9kdWxlQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcbiAgICAgIGNvbnN0IGZhY3RvcnlJbml0aWFsaXplciA9IHdyYXAoXG4gICAgICAgIHNjaGVtYXRpY0ZpbGUsXG4gICAgICAgIHNjaGVtYXRpY1BhdGgsXG4gICAgICAgIG1vZHVsZUNhY2hlLFxuICAgICAgICBuYW1lIHx8ICdkZWZhdWx0JyxcbiAgICAgICkgYXMgKCkgPT4gUnVsZUZhY3Rvcnk8e30+O1xuXG4gICAgICBjb25zdCBmYWN0b3J5ID0gZmFjdG9yeUluaXRpYWxpemVyKCk7XG4gICAgICBpZiAoIWZhY3RvcnkgfHwgdHlwZW9mIGZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHJlZjogZmFjdG9yeSwgcGF0aDogc2NoZW1hdGljUGF0aCB9O1xuICAgIH1cblxuICAgIC8vIEFsbCBvdGhlciBzY2hlbWF0aWNzIHVzZSBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuIHN1cGVyLl9yZXNvbHZlUmVmZXJlbmNlU3RyaW5nKHJlZlN0cmluZywgcGFyZW50UGF0aCwgY29sbGVjdGlvbkRlc2NyaXB0aW9uKTtcbiAgfVxufVxuXG4vKipcbiAqIE1pbmltYWwgc2hpbSBtb2R1bGVzIGZvciBsZWdhY3kgZGVlcCBpbXBvcnRzIG9mIGBAc2NoZW1hdGljcy9hbmd1bGFyYFxuICovXG5jb25zdCBsZWdhY3lNb2R1bGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS9jb25maWcnOiB7XG4gICAgZ2V0V29ya3NwYWNlKGhvc3Q6IFRyZWUpIHtcbiAgICAgIGNvbnN0IHBhdGggPSAnLy5hbmd1bGFyLmpzb24nO1xuICAgICAgY29uc3QgZGF0YSA9IGhvc3QucmVhZChwYXRoKTtcbiAgICAgIGlmICghZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgQ291bGQgbm90IGZpbmQgKCR7cGF0aH0pYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJzZUpzb24oZGF0YS50b1N0cmluZygpLCBbXSwgeyBhbGxvd1RyYWlsaW5nQ29tbWE6IHRydWUgfSk7XG4gICAgfSxcbiAgfSxcbiAgJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS9wcm9qZWN0Jzoge1xuICAgIGJ1aWxkRGVmYXVsdFBhdGgocHJvamVjdDogeyBzb3VyY2VSb290Pzogc3RyaW5nOyByb290OiBzdHJpbmc7IHByb2plY3RUeXBlOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgICBjb25zdCByb290ID0gcHJvamVjdC5zb3VyY2VSb290ID8gYC8ke3Byb2plY3Quc291cmNlUm9vdH0vYCA6IGAvJHtwcm9qZWN0LnJvb3R9L3NyYy9gO1xuXG4gICAgICByZXR1cm4gYCR7cm9vdH0ke3Byb2plY3QucHJvamVjdFR5cGUgPT09ICdhcHBsaWNhdGlvbicgPyAnYXBwJyA6ICdsaWInfWA7XG4gICAgfSxcbiAgfSxcbn07XG5cbi8qKlxuICogV3JhcCBhIEphdmFTY3JpcHQgZmlsZSBpbiBhIFZNIGNvbnRleHQgdG8gYWxsb3cgc3BlY2lmaWMgQW5ndWxhciBkZXBlbmRlbmNpZXMgdG8gYmUgcmVkaXJlY3RlZC5cbiAqIFRoaXMgVk0gc2V0dXAgaXMgT05MWSBpbnRlbmRlZCB0byByZWRpcmVjdCBkZXBlbmRlbmNpZXMuXG4gKlxuICogQHBhcmFtIHNjaGVtYXRpY0ZpbGUgQSBKYXZhU2NyaXB0IHNjaGVtYXRpYyBmaWxlIHBhdGggdGhhdCBzaG91bGQgYmUgd3JhcHBlZC5cbiAqIEBwYXJhbSBzY2hlbWF0aWNEaXJlY3RvcnkgQSBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBKYXZhU2NyaXB0IGZpbGUuXG4gKiBAcGFyYW0gbW9kdWxlQ2FjaGUgQSBtYXAgdG8gdXNlIGZvciBjYWNoaW5nIHJlcGVhdCBtb2R1bGUgdXNhZ2UgYW5kIHByb3BlciBgaW5zdGFuY2VvZmAgc3VwcG9ydC5cbiAqIEBwYXJhbSBleHBvcnROYW1lIEFuIG9wdGlvbmFsIG5hbWUgb2YgYSBzcGVjaWZpYyBleHBvcnQgdG8gcmV0dXJuLiBPdGhlcndpc2UsIHJldHVybiBhbGwgZXhwb3J0cy5cbiAqL1xuZnVuY3Rpb24gd3JhcChcbiAgc2NoZW1hdGljRmlsZTogc3RyaW5nLFxuICBzY2hlbWF0aWNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgbW9kdWxlQ2FjaGU6IE1hcDxzdHJpbmcsIHVua25vd24+LFxuICBleHBvcnROYW1lPzogc3RyaW5nLFxuKTogKCkgPT4gdW5rbm93biB7XG4gIGNvbnN0IGhvc3RSZXF1aXJlID0gY3JlYXRlUmVxdWlyZShfX2ZpbGVuYW1lKTtcbiAgY29uc3Qgc2NoZW1hdGljUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoc2NoZW1hdGljRmlsZSk7XG5cbiAgY29uc3QgY3VzdG9tUmVxdWlyZSA9IGZ1bmN0aW9uIChpZDogc3RyaW5nKSB7XG4gICAgaWYgKGxlZ2FjeU1vZHVsZXNbaWRdKSB7XG4gICAgICAvLyBQcm92aWRlIGNvbXBhdGliaWxpdHkgbW9kdWxlcyBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgQGFuZ3VsYXIvY2RrXG4gICAgICByZXR1cm4gbGVnYWN5TW9kdWxlc1tpZF07XG4gICAgfSBlbHNlIGlmIChpZC5zdGFydHNXaXRoKCdzY2hlbWF0aWNzOicpKSB7XG4gICAgICAvLyBTY2hlbWF0aWNzIGJ1aWx0LWluIG1vZHVsZXMgdXNlIHRoZSBgc2NoZW1hdGljc2Agc2NoZW1lIChzaW1pbGFyIHRvIHRoZSBOb2RlLmpzIGBub2RlYCBzY2hlbWUpXG4gICAgICBjb25zdCBidWlsdGluSWQgPSBpZC5zbGljZSgxMSk7XG4gICAgICBjb25zdCBidWlsdGluTW9kdWxlID0gbG9hZEJ1aWx0aW5Nb2R1bGUoYnVpbHRpbklkKTtcbiAgICAgIGlmICghYnVpbHRpbk1vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVua25vd24gc2NoZW1hdGljcyBidWlsdC1pbiBtb2R1bGUgJyR7aWR9JyByZXF1ZXN0ZWQgZnJvbSBzY2hlbWF0aWMgJyR7c2NoZW1hdGljRmlsZX0nYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ1aWx0aW5Nb2R1bGU7XG4gICAgfSBlbHNlIGlmIChpZC5zdGFydHNXaXRoKCdAYW5ndWxhci1kZXZraXQvJykgfHwgaWQuc3RhcnRzV2l0aCgnQHNjaGVtYXRpY3MvJykpIHtcbiAgICAgIC8vIEZpbGVzIHNob3VsZCBub3QgcmVkaXJlY3QgYEBhbmd1bGFyL2NvcmVgIGFuZCBpbnN0ZWFkIHVzZSB0aGUgZGlyZWN0XG4gICAgICAvLyBkZXBlbmRlbmN5IGlmIGF2YWlsYWJsZS4gVGhpcyBhbGxvd3Mgb2xkIG1ham9yIHZlcnNpb24gbWlncmF0aW9ucyB0byBjb250aW51ZSB0byBmdW5jdGlvblxuICAgICAgLy8gZXZlbiB0aG91Z2ggdGhlIGxhdGVzdCBtYWpvciB2ZXJzaW9uIG1heSBoYXZlIGJyZWFraW5nIGNoYW5nZXMgaW4gYEBhbmd1bGFyL2NvcmVgLlxuICAgICAgaWYgKGlkLnN0YXJ0c1dpdGgoJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJykpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gc2NoZW1hdGljUmVxdWlyZShpZCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBhc3NlcnRJc0Vycm9yKGUpO1xuICAgICAgICAgIGlmIChlLmNvZGUgIT09ICdNT0RVTEVfTk9UX0ZPVU5EJykge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVzb2x2ZSBmcm9tIGluc2lkZSB0aGUgYEBhbmd1bGFyL2NsaWAgcHJvamVjdFxuICAgICAgcmV0dXJuIGhvc3RSZXF1aXJlKGlkKTtcbiAgICB9IGVsc2UgaWYgKGlkLnN0YXJ0c1dpdGgoJy4nKSB8fCBpZC5zdGFydHNXaXRoKCdAYW5ndWxhci9jZGsnKSkge1xuICAgICAgLy8gV3JhcCByZWxhdGl2ZSBmaWxlcyBpbnNpZGUgdGhlIHNjaGVtYXRpYyBjb2xsZWN0aW9uXG4gICAgICAvLyBBbHNvIHdyYXAgYEBhbmd1bGFyL2Nka2AsIGl0IGNvbnRhaW5zIGhlbHBlciB1dGlsaXRpZXMgdGhhdCBpbXBvcnQgY29yZSBzY2hlbWF0aWMgcGFja2FnZXNcblxuICAgICAgLy8gUmVzb2x2ZSBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlXG4gICAgICBjb25zdCBtb2R1bGVQYXRoID0gc2NoZW1hdGljUmVxdWlyZS5yZXNvbHZlKGlkKTtcblxuICAgICAgLy8gVXNlIGNhY2hlZCBtb2R1bGUgaWYgYXZhaWxhYmxlXG4gICAgICBjb25zdCBjYWNoZWRNb2R1bGUgPSBtb2R1bGVDYWNoZS5nZXQobW9kdWxlUGF0aCk7XG4gICAgICBpZiAoY2FjaGVkTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRNb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCB3cmFwIHZlbmRvcmVkIHRoaXJkLXBhcnR5IHBhY2thZ2VzIG9yIEpTT04gZmlsZXNcbiAgICAgIGlmIChcbiAgICAgICAgIS9bL1xcXFxdbm9kZV9tb2R1bGVzWy9cXFxcXUBzY2hlbWF0aWNzWy9cXFxcXWFuZ3VsYXJbL1xcXFxddGhpcmRfcGFydHlbL1xcXFxdLy50ZXN0KG1vZHVsZVBhdGgpICYmXG4gICAgICAgICFtb2R1bGVQYXRoLmVuZHNXaXRoKCcuanNvbicpXG4gICAgICApIHtcbiAgICAgICAgLy8gV3JhcCBtb2R1bGUgYW5kIHNhdmUgaW4gY2FjaGVcbiAgICAgICAgY29uc3Qgd3JhcHBlZE1vZHVsZSA9IHdyYXAobW9kdWxlUGF0aCwgZGlybmFtZShtb2R1bGVQYXRoKSwgbW9kdWxlQ2FjaGUpKCk7XG4gICAgICAgIG1vZHVsZUNhY2hlLnNldChtb2R1bGVQYXRoLCB3cmFwcGVkTW9kdWxlKTtcblxuICAgICAgICByZXR1cm4gd3JhcHBlZE1vZHVsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGwgb3RoZXJzIGFyZSByZXF1aXJlZCBkaXJlY3RseSBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlXG4gICAgcmV0dXJuIHNjaGVtYXRpY1JlcXVpcmUoaWQpO1xuICB9O1xuXG4gIC8vIFNldHVwIGEgd3JhcHBlciBmdW5jdGlvbiB0byBjYXB0dXJlIHRoZSBtb2R1bGUncyBleHBvcnRzXG4gIGNvbnN0IHNjaGVtYXRpY0NvZGUgPSByZWFkRmlsZVN5bmMoc2NoZW1hdGljRmlsZSwgJ3V0ZjgnKTtcbiAgLy8gYG1vZHVsZWAgaXMgcmVxdWlyZWQgZHVlIHRvIEBhbmd1bGFyL2xvY2FsaXplIG5nLWFkZCBiZWluZyBpbiBVTUQgZm9ybWF0XG4gIGNvbnN0IGhlYWRlckNvZGUgPSAnKGZ1bmN0aW9uKCkge1xcbnZhciBleHBvcnRzID0ge307XFxudmFyIG1vZHVsZSA9IHsgZXhwb3J0cyB9O1xcbic7XG4gIGNvbnN0IGZvb3RlckNvZGUgPSBleHBvcnROYW1lXG4gICAgPyBgXFxucmV0dXJuIG1vZHVsZS5leHBvcnRzWycke2V4cG9ydE5hbWV9J107fSk7YFxuICAgIDogJ1xcbnJldHVybiBtb2R1bGUuZXhwb3J0czt9KTsnO1xuXG4gIGNvbnN0IHNjcmlwdCA9IG5ldyBTY3JpcHQoaGVhZGVyQ29kZSArIHNjaGVtYXRpY0NvZGUgKyBmb290ZXJDb2RlLCB7XG4gICAgZmlsZW5hbWU6IHNjaGVtYXRpY0ZpbGUsXG4gICAgbGluZU9mZnNldDogMyxcbiAgfSk7XG5cbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBfX2Rpcm5hbWU6IHNjaGVtYXRpY0RpcmVjdG9yeSxcbiAgICBfX2ZpbGVuYW1lOiBzY2hlbWF0aWNGaWxlLFxuICAgIEJ1ZmZlcixcbiAgICAvLyBUZXh0RW5jb2RlciBpcyB1c2VkIGJ5IHRoZSBjb21waWxlciB0byBnZW5lcmF0ZSBpMThuIG1lc3NhZ2UgSURzLiBTZWU6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL21haW4vcGFja2FnZXMvY29tcGlsZXIvc3JjL2kxOG4vZGlnZXN0LnRzI0wxN1xuICAgIC8vIEl0IGlzIHJlZmVyZW5jZWQgZ2xvYmFsbHksIGJlY2F1c2UgaXQgbWF5IGJlIHJ1biBlaXRoZXIgb24gdGhlIGJyb3dzZXIgb3IgdGhlIHNlcnZlci5cbiAgICAvLyBVc3VhbGx5IE5vZGUgZXhwb3NlcyBpdCBnbG9iYWxseSwgYnV0IGluIG9yZGVyIGZvciBpdCB0byB3b3JrLCBvdXIgY3VzdG9tIGNvbnRleHRcbiAgICAvLyBoYXMgdG8gZXhwb3NlIGl0IHRvby4gSXNzdWUgY29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNDg5NDAuXG4gICAgVGV4dEVuY29kZXIsXG4gICAgY29uc29sZSxcbiAgICBwcm9jZXNzLFxuICAgIGdldCBnbG9iYWwoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHJlcXVpcmU6IGN1c3RvbVJlcXVpcmUsXG4gIH07XG5cbiAgY29uc3QgZXhwb3J0c0ZhY3RvcnkgPSBzY3JpcHQucnVuSW5OZXdDb250ZXh0KGNvbnRleHQpO1xuXG4gIHJldHVybiBleHBvcnRzRmFjdG9yeTtcbn1cblxuZnVuY3Rpb24gbG9hZEJ1aWx0aW5Nb2R1bGUoaWQ6IHN0cmluZyk6IHVua25vd24ge1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
@@ -20,7 +20,7 @@ class Version {
20
20
  this.patch = patch;
21
21
  }
22
22
  }
23
- // TODO: Convert this to use build-time version stamping after flipping the build script to use bazel
24
- // export const VERSION = new Version('15.2.0-next.3');
23
+ // TODO(bazel): Convert this to use build-time version stamping after flipping the build script to use bazel
24
+ // export const VERSION = new Version('15.2.0-next.4');
25
25
  exports.VERSION = new Version(JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../../package.json'), 'utf-8')).version);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvY2xpL3NyYy91dGlsaXRpZXMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwyQkFBa0M7QUFDbEMsK0JBQStCO0FBRS9CLCtDQUErQztBQUMvQyxNQUFNLE9BQU87SUFLWCxZQUE0QixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUN0QyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQUVELHFHQUFxRztBQUNyRywyREFBMkQ7QUFDOUMsUUFBQSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBQSxpQkFBWSxFQUFDLElBQUEsY0FBTyxFQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUczRSxDQUFDLE9BQU8sQ0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJztcblxuLy8gU2FtZSBzdHJ1Y3R1cmUgYXMgdXNlZCBpbiBmcmFtZXdvcmsgcGFja2FnZXNcbmNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1pbm9yOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmdWxsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbbWFqb3IsIG1pbm9yLCBwYXRjaF0gPSBmdWxsLnNwbGl0KCctJywgMSlbMF0uc3BsaXQoJy4nLCAzKTtcbiAgICB0aGlzLm1ham9yID0gbWFqb3I7XG4gICAgdGhpcy5taW5vciA9IG1pbm9yO1xuICAgIHRoaXMucGF0Y2ggPSBwYXRjaDtcbiAgfVxufVxuXG4vLyBUT0RPOiBDb252ZXJ0IHRoaXMgdG8gdXNlIGJ1aWxkLXRpbWUgdmVyc2lvbiBzdGFtcGluZyBhZnRlciBmbGlwcGluZyB0aGUgYnVpbGQgc2NyaXB0IHRvIHVzZSBiYXplbFxuLy8gZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oXG4gIChcbiAgICBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhyZXNvbHZlKF9fZGlybmFtZSwgJy4uLy4uL3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSkgYXMge1xuICAgICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIH1cbiAgKS52ZXJzaW9uLFxuKTtcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvY2xpL3NyYy91dGlsaXRpZXMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwyQkFBa0M7QUFDbEMsK0JBQStCO0FBRS9CLCtDQUErQztBQUMvQyxNQUFNLE9BQU87SUFLWCxZQUE0QixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUN0QyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQUVELDRHQUE0RztBQUM1RywyREFBMkQ7QUFDOUMsUUFBQSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBQSxpQkFBWSxFQUFDLElBQUEsY0FBTyxFQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUczRSxDQUFDLE9BQU8sQ0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJztcblxuLy8gU2FtZSBzdHJ1Y3R1cmUgYXMgdXNlZCBpbiBmcmFtZXdvcmsgcGFja2FnZXNcbmNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1pbm9yOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmdWxsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbbWFqb3IsIG1pbm9yLCBwYXRjaF0gPSBmdWxsLnNwbGl0KCctJywgMSlbMF0uc3BsaXQoJy4nLCAzKTtcbiAgICB0aGlzLm1ham9yID0gbWFqb3I7XG4gICAgdGhpcy5taW5vciA9IG1pbm9yO1xuICAgIHRoaXMucGF0Y2ggPSBwYXRjaDtcbiAgfVxufVxuXG4vLyBUT0RPKGJhemVsKTogQ29udmVydCB0aGlzIHRvIHVzZSBidWlsZC10aW1lIHZlcnNpb24gc3RhbXBpbmcgYWZ0ZXIgZmxpcHBpbmcgdGhlIGJ1aWxkIHNjcmlwdCB0byB1c2UgYmF6ZWxcbi8vIGV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKFxuICAoXG4gICAgSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMocmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi9wYWNrYWdlLmpzb24nKSwgJ3V0Zi04JykpIGFzIHtcbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICB9XG4gICkudmVyc2lvbixcbik7XG4iXX0=