cdktn 0.25.0-pre.2 → 0.25.0-pre.21

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.
Files changed (86) hide show
  1. package/.jsii +927 -107
  2. package/lib/annotations.js +4 -4
  3. package/lib/app.js +54 -5
  4. package/lib/aspect.js +3 -4
  5. package/lib/asset-hash.d.ts +75 -0
  6. package/lib/asset-hash.js +129 -0
  7. package/lib/assets.d.ts +168 -0
  8. package/lib/assets.js +128 -0
  9. package/lib/backends/azurerm-backend.js +4 -6
  10. package/lib/backends/cloud-backend.js +10 -10
  11. package/lib/backends/consul-backend.js +4 -6
  12. package/lib/backends/cos-backend.js +4 -6
  13. package/lib/backends/gcs-backend.js +4 -6
  14. package/lib/backends/http-backend.js +4 -6
  15. package/lib/backends/local-backend.js +38 -7
  16. package/lib/backends/oss-backend.js +4 -6
  17. package/lib/backends/pg-backend.js +4 -6
  18. package/lib/backends/remote-backend.js +8 -10
  19. package/lib/backends/s3-backend.js +4 -6
  20. package/lib/backends/swift-backend.js +4 -6
  21. package/lib/complex-computed-list.js +114 -65
  22. package/lib/errors.d.ts +6 -0
  23. package/lib/errors.js +24 -3
  24. package/lib/functions/provider-function.js +2 -4
  25. package/lib/functions/terraform-functions.generated.js +2 -4
  26. package/lib/ignore-strategy.d.ts +82 -0
  27. package/lib/ignore-strategy.js +29 -0
  28. package/lib/importable-resource.js +3 -4
  29. package/lib/index.d.ts +3 -0
  30. package/lib/index.js +27 -2
  31. package/lib/manifest.js +56 -14
  32. package/lib/private/fs.d.ts +74 -2
  33. package/lib/private/fs.js +129 -17
  34. package/lib/private/unique.js +35 -2
  35. package/lib/resource.js +3 -4
  36. package/lib/synthesize/synthesizer.js +43 -4
  37. package/lib/terraform-asset.d.ts +33 -2
  38. package/lib/terraform-asset.js +118 -34
  39. package/lib/terraform-backend.js +3 -4
  40. package/lib/terraform-count.js +3 -4
  41. package/lib/terraform-data-resource.js +12 -10
  42. package/lib/terraform-data-source.js +10 -4
  43. package/lib/terraform-dynamic-block.js +5 -2
  44. package/lib/terraform-dynamic-expression.js +4 -1
  45. package/lib/terraform-element.js +34 -6
  46. package/lib/terraform-ephemeral-resource.js +10 -4
  47. package/lib/terraform-functions.js +2 -4
  48. package/lib/terraform-hcl-module.js +3 -4
  49. package/lib/terraform-iterator.js +11 -12
  50. package/lib/terraform-local.js +3 -4
  51. package/lib/terraform-module-asset.js +45 -5
  52. package/lib/terraform-module.js +8 -4
  53. package/lib/terraform-operators.js +2 -4
  54. package/lib/terraform-output.js +7 -4
  55. package/lib/terraform-provider.js +5 -4
  56. package/lib/terraform-provisioner.js +2 -4
  57. package/lib/terraform-remote-state.js +5 -5
  58. package/lib/terraform-resource-targets.js +3 -7
  59. package/lib/terraform-resource.js +16 -5
  60. package/lib/terraform-stack.js +38 -38
  61. package/lib/terraform-variable.js +25 -22
  62. package/lib/testing/index.js +42 -8
  63. package/lib/testing/matchers.js +39 -6
  64. package/lib/tfExpression.js +25 -8
  65. package/lib/tokens/lazy.js +11 -7
  66. package/lib/tokens/private/dependency.js +2 -2
  67. package/lib/tokens/private/encoding.js +6 -1
  68. package/lib/tokens/private/intrinsic.js +6 -1
  69. package/lib/tokens/private/resolve.js +2 -5
  70. package/lib/tokens/private/token-map.js +4 -6
  71. package/lib/tokens/private/uniqueid.js +35 -2
  72. package/lib/tokens/resolvable.js +4 -6
  73. package/lib/tokens/string-fragments.js +6 -10
  74. package/lib/tokens/token.js +15 -18
  75. package/lib/upgrade-id-aspect.js +37 -6
  76. package/lib/validations/target-versions.js +39 -2
  77. package/lib/validations/validate-binary-version.js +39 -2
  78. package/lib/validations/validate-function-version-support.js +2 -1
  79. package/lib/validations/validate-provider-function-target-support.js +2 -1
  80. package/lib/validations/validate-provider-presence.js +10 -9
  81. package/lib/validations/validate-terraform-version.js +3 -1
  82. package/package.json +5 -5
  83. package/scripts/pack.mjs +57 -15
  84. package/lib/tsconfig.tsbuildinfo +0 -1
  85. package/tsconfig.json +0 -40
  86. package/tsconfig.test.json +0 -12
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.DataResource = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -20,6 +19,11 @@ const runtime_1 = require("./runtime");
20
19
  * https://developer.hashicorp.com/terraform/language/resources/terraform-data
21
20
  */
22
21
  class DataResource extends terraform_resource_1.TerraformResource {
22
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataResource", version: "0.25.0-pre.21" };
23
+ // =================
24
+ // STATIC PROPERTIES
25
+ // =================
26
+ static tfResourceType = "terraform_data";
23
27
  // ==============
24
28
  // STATIC Methods
25
29
  // ==============
@@ -63,8 +67,6 @@ class DataResource extends terraform_resource_1.TerraformResource {
63
67
  connection: config.connection,
64
68
  forEach: config.forEach,
65
69
  });
66
- // output - computed: true, optional: false, required: false
67
- this._output = new complex_computed_list_1.AnyMap(this, "output");
68
70
  this._input = config.input;
69
71
  this._triggersReplace = config.triggersReplace;
70
72
  this.node.addValidation(new validate_terraform_version_1.ValidateTerraformVersion(">=1.4", `The built-in Terraform data resource is only supported for Terraform >=1.4. Please upgrade your Terraform version.`));
@@ -76,6 +78,8 @@ class DataResource extends terraform_resource_1.TerraformResource {
76
78
  get id() {
77
79
  return this.getStringAttribute("id");
78
80
  }
81
+ // input - computed: false, optional: true, required: false
82
+ _input;
79
83
  get input() {
80
84
  return this.getAnyMapAttribute("input");
81
85
  }
@@ -93,9 +97,13 @@ class DataResource extends terraform_resource_1.TerraformResource {
93
97
  get inputInput() {
94
98
  return this._input;
95
99
  }
100
+ // output - computed: true, optional: false, required: false
101
+ _output = new complex_computed_list_1.AnyMap(this, "output");
96
102
  get output() {
97
103
  return this._output;
98
104
  }
105
+ // triggers_replace - computed: false, optional: true, required: false
106
+ _triggersReplace;
99
107
  get triggersReplace() {
100
108
  return this.getAnyMapAttribute("triggers_replace");
101
109
  }
@@ -130,10 +138,4 @@ class DataResource extends terraform_resource_1.TerraformResource {
130
138
  }
131
139
  }
132
140
  exports.DataResource = DataResource;
133
- _a = JSII_RTTI_SYMBOL_1;
134
- DataResource[_a] = { fqn: "cdktn.DataResource", version: "0.25.0-pre.2" };
135
- // =================
136
- // STATIC PROPERTIES
137
- // =================
138
- DataResource.tfResourceType = "terraform_data";
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWRhdGEtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSx5RkFBb0Y7QUFDcEYsNkRBRzhCO0FBRTlCLCtEQUEyRDtBQUMzRCxtRUFBaUQ7QUFDakQsdUNBS21CO0FBZW5COzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxzQ0FBaUI7SUFNakQsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxLQUFnQixFQUNoQixVQUFrQixFQUNsQixZQUFvQixFQUNwQixRQUE0QjtRQUU1QixPQUFPLElBQUksd0NBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUMvQyxxQkFBcUIsRUFBRSxnQkFBZ0I7WUFDdkMsUUFBUSxFQUFFLFlBQVk7WUFDdEIsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsY0FBYztJQUNkLGNBQWM7SUFFZDs7Ozs7Ozs7T0FRRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFNBQXFCLEVBQUU7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixxQkFBcUIsRUFBRSxnQkFBZ0I7WUFDdkMsMEJBQTBCLEVBQUU7Z0JBQzFCLFlBQVksRUFBRSxXQUFXO2FBQzFCO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtZQUNqQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQztRQXdDTCw0REFBNEQ7UUFDcEQsWUFBTyxHQUFHLElBQUksOEJBQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUF4QzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FDckIsSUFBSSxxREFBd0IsQ0FDMUIsT0FBTyxFQUNQLG9IQUFvSCxDQUNySCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBRWIsd0RBQXdEO0lBQ3hELElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFJRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBVyxLQUFLLENBQUMsS0FBNkI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0Qsb0RBQW9EO0lBQ3BELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQVcsZUFBZSxDQUFDLEtBQTZCO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUVGLG9CQUFvQjtRQUM1QixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUEsb0JBQVUsRUFBQyx3QkFBYyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxnQkFBZ0IsRUFBRSxJQUFBLG9CQUFVLEVBQUMsd0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVTLHVCQUF1QjtRQUMvQixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUEsdUJBQWEsRUFBQywyQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDcEQsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBYSxFQUFDLDJCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQzFFLENBQUM7SUFDSixDQUFDOztBQXpJSCxvQ0EwSUM7OztBQXpJQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLDJCQUFjLEdBQUcsZ0JBQWdCLEFBQW5CLENBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVmFsaWRhdGVUZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdmFsaWRhdGlvbnMvdmFsaWRhdGUtdGVycmFmb3JtLXZlcnNpb25cIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybU1ldGFBcmd1bWVudHMsXG4gIFRlcnJhZm9ybVJlc291cmNlLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4vdGVycmFmb3JtLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBJbXBvcnRhYmxlUmVzb3VyY2UgfSBmcm9tIFwiLi9pbXBvcnRhYmxlLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBbnlNYXAgfSBmcm9tIFwiLi9jb21wbGV4LWNvbXB1dGVkLWxpc3RcIjtcbmltcG9ydCB7XG4gIGFueVRvVGVycmFmb3JtLFxuICBoYXNoTWFwcGVyLFxuICBoYXNoTWFwcGVySGNsLFxuICBhbnlUb0hjbFRlcnJhZm9ybSxcbn0gZnJvbSBcIi4vcnVudGltZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFDb25maWcgZXh0ZW5kcyBUZXJyYWZvcm1NZXRhQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCByZWZsZWN0ZWQgaW4gdGhlIG91dHB1dCBhdHRyaWJ1dGUgYWZ0ZXIgYXBwbHkuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSNpbnB1dFxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBIHZhbHVlIHdoaWNoIGlzIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCB3aWxsIGZvcmNlIHJlcGxhY2VtZW50IHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSN0cmlnZ2Vyc19yZXBsYWNlXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2Vyc1JlcGxhY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFRoZSBEYXRhUmVzb3VyY2UgaW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgcmVzb3VyY2UgbGlmZWN5Y2xlLCBidXQgZG9lcyBub3QgZGlyZWN0bHkgdGFrZSBhbnkgb3RoZXIgYWN0aW9ucy4gWW91IGNhbiB1c2UgdGhlIERhdGFSZXNvdXJjZSByZXNvdXJjZSB3aXRob3V0IHJlcXVpcmluZyBvciBjb25maWd1cmluZyBhIHByb3ZpZGVyLlxuICpcbiAqIFRoZSBEYXRhUmVzb3VyY2UgcmVzb3VyY2UgaXMgdXNlZnVsIGZvciBzdG9yaW5nIHZhbHVlcyB3aGljaCBuZWVkIHRvIGZvbGxvdyBhIG1hbmFnZSByZXNvdXJjZSBsaWZlY3ljbGUsIGFuZCBmb3IgdHJpZ2dlcmluZyBwcm92aXNpb25lcnMgd2hlbiB0aGVyZSBpcyBubyBvdGhlciBsb2dpY2FsIG1hbmFnZWQgcmVzb3VyY2UgaW4gd2hpY2ggdG8gcGxhY2UgdGhlbS5cbiAqXG4gKiBJdCByZXF1aXJlcyBUZXJyYWZvcm0gMS40IG9yIGxhdGVyLlxuICpcbiAqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhlc2UgYmluZGluZ3MgYnkgYWRkaW5nIFwidGVycmFmb3JtLmlvL2J1aWx0aW4vdGVycmFmb3JtXCIgdG8gdGhlIFwidGVycmFmb3JtUHJvdmlkZXJzXCIga2V5IGluIHlvdXIgY2RrdGYuanNvbiBmaWxlIGFuZCBydW5uaW5nIFwiY2RrdG4gZ2V0XCIuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvcmVzb3VyY2VzL3RlcnJhZm9ybS1kYXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhUmVzb3VyY2UgZXh0ZW5kcyBUZXJyYWZvcm1SZXNvdXJjZSB7XG4gIC8vID09PT09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBQUk9QRVJUSUVTXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdGZSZXNvdXJjZVR5cGUgPSBcInRlcnJhZm9ybV9kYXRhXCI7XG5cbiAgLy8gPT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIE1ldGhvZHNcbiAgLy8gPT09PT09PT09PT09PT1cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBDREtUTiBjb2RlIGZvciBpbXBvcnRpbmcgYSBEYXRhIHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RuIHBsYW4gPHN0YWNrLW5hbWU+XCJcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGltcG9ydFRvSWQgVGhlIGNvbnN0cnVjdCBpZCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGZvciB0aGUgRGF0YSB0byBpbXBvcnRcbiAgICogQHBhcmFtIGltcG9ydEZyb21JZCBUaGUgaWQgb2YgdGhlIGV4aXN0aW5nIERhdGEgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly90ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2J1aWx0aW4vdGVycmFmb3JtL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9kYXRhI2ltcG9ydCBpbXBvcnQgc2VjdGlvbn0gaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyByZXNvdXJjZSBmb3IgdGhlIGlkIHRvIHVzZVxuICAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgRGF0YSB0byBpbXBvcnQgaXMgZm91bmRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpbXBvcnRUb0lkOiBzdHJpbmcsXG4gICAgaW1wb3J0RnJvbUlkOiBzdHJpbmcsXG4gICAgcHJvdmlkZXI/OiBUZXJyYWZvcm1Qcm92aWRlcixcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRhYmxlUmVzb3VyY2Uoc2NvcGUsIGltcG9ydFRvSWQsIHtcbiAgICAgIHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCJ0ZXJyYWZvcm1fZGF0YVwiLFxuICAgICAgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCxcbiAgICAgIHByb3ZpZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFRlcnJhZm9ybURhdGEgUmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSBEYXRhUmVzb3VyY2UgcmVzb3VyY2UgaXMgdXNlZnVsIGZvciBzdG9yaW5nIHZhbHVlcyB3aGljaCBuZWVkIHRvIGZvbGxvdyBhIG1hbmFnZSByZXNvdXJjZSBsaWZlY3ljbGUsIGFuZCBmb3IgdHJpZ2dlcmluZyBwcm92aXNpb25lcnMgd2hlbiB0aGVyZSBpcyBubyBvdGhlciBsb2dpY2FsIG1hbmFnZWQgcmVzb3VyY2UgaW4gd2hpY2ggdG8gcGxhY2UgdGhlbS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICAqIEBwYXJhbSBvcHRpb25zIERhdGFDb25maWcgPSB7fVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogRGF0YUNvbmZpZyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwidGVycmFmb3JtX2RhdGFcIixcbiAgICAgIHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhOiB7XG4gICAgICAgIHByb3ZpZGVyTmFtZTogXCJ0ZXJyYWZvcm1cIixcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcjogY29uZmlnLnByb3ZpZGVyLFxuICAgICAgZGVwZW5kc09uOiBjb25maWcuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IGNvbmZpZy5jb3VudCxcbiAgICAgIGxpZmVjeWNsZTogY29uZmlnLmxpZmVjeWNsZSxcbiAgICAgIHByb3Zpc2lvbmVyczogY29uZmlnLnByb3Zpc2lvbmVycyxcbiAgICAgIGNvbm5lY3Rpb246IGNvbmZpZy5jb25uZWN0aW9uLFxuICAgICAgZm9yRWFjaDogY29uZmlnLmZvckVhY2gsXG4gICAgfSk7XG4gICAgdGhpcy5faW5wdXQgPSBjb25maWcuaW5wdXQ7XG4gICAgdGhpcy5fdHJpZ2dlcnNSZXBsYWNlID0gY29uZmlnLnRyaWdnZXJzUmVwbGFjZTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihcbiAgICAgIG5ldyBWYWxpZGF0ZVRlcnJhZm9ybVZlcnNpb24oXG4gICAgICAgIFwiPj0xLjRcIixcbiAgICAgICAgYFRoZSBidWlsdC1pbiBUZXJyYWZvcm0gZGF0YSByZXNvdXJjZSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgVGVycmFmb3JtID49MS40LiBQbGVhc2UgdXBncmFkZSB5b3VyIFRlcnJhZm9ybSB2ZXJzaW9uLmAsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAvLyA9PT09PT09PT09XG4gIC8vIEFUVFJJQlVURVNcbiAgLy8gPT09PT09PT09PVxuXG4gIC8vIGlkIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKFwiaWRcIik7XG4gIH1cblxuICAvLyBpbnB1dCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9pbnB1dD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIHB1YmxpYyBnZXQgaW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QW55TWFwQXR0cmlidXRlKFwiaW5wdXRcIik7XG4gIH1cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCByZWZsZWN0ZWQgaW4gdGhlIG91dHB1dCBhdHRyaWJ1dGUgYWZ0ZXIgYXBwbHkuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSNpbnB1dFxuICAgKi9cbiAgcHVibGljIHNldCBpbnB1dCh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5faW5wdXQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGlucHV0SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG5cbiAgLy8gb3V0cHV0IC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX291dHB1dCA9IG5ldyBBbnlNYXAodGhpcywgXCJvdXRwdXRcIik7XG4gIHB1YmxpYyBnZXQgb3V0cHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXQ7XG4gIH1cblxuICAvLyB0cmlnZ2Vyc19yZXBsYWNlIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3RyaWdnZXJzUmVwbGFjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIHB1YmxpYyBnZXQgdHJpZ2dlcnNSZXBsYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmdldEFueU1hcEF0dHJpYnV0ZShcInRyaWdnZXJzX3JlcGxhY2VcIik7XG4gIH1cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCBpcyBzdG9yZWQgaW4gdGhlIGluc3RhbmNlIHN0YXRlLCBhbmQgd2lsbCBmb3JjZSByZXBsYWNlbWVudCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9yZXNvdXJjZXMvdGVycmFmb3JtLWRhdGEjdHJpZ2dlcnNfcmVwbGFjZVxuICAgKi9cbiAgcHVibGljIHNldCB0cmlnZ2Vyc1JlcGxhY2UodmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1JlcGxhY2UgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRUcmlnZ2Vyc1JlcGxhY2UoKSB7XG4gICAgdGhpcy5fdHJpZ2dlcnNSZXBsYWNlID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB0cmlnZ2Vyc1JlcGxhY2VJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcnNSZXBsYWNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09XG4gIC8vIFNZTlRIRVNJU1xuICAvLyA9PT09PT09PT1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDogaGFzaE1hcHBlcihhbnlUb1RlcnJhZm9ybSkodGhpcy5faW5wdXQpLFxuICAgICAgdHJpZ2dlcnNfcmVwbGFjZTogaGFzaE1hcHBlcihhbnlUb1RlcnJhZm9ybSkodGhpcy5fdHJpZ2dlcnNSZXBsYWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IGhhc2hNYXBwZXJIY2woYW55VG9IY2xUZXJyYWZvcm0pKHRoaXMuX2lucHV0KSxcbiAgICAgIHRyaWdnZXJzX3JlcGxhY2U6IGhhc2hNYXBwZXJIY2woYW55VG9IY2xUZXJyYWZvcm0pKHRoaXMuX3RyaWdnZXJzUmVwbGFjZSksXG4gICAgfTtcbiAgfVxufVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWRhdGEtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLHlGQUFvRjtBQUNwRiw2REFHOEI7QUFFOUIsK0RBQTJEO0FBQzNELG1FQUFpRDtBQUNqRCx1Q0FLbUI7QUFlbkI7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsWUFBYSxTQUFRLHNDQUFpQjs7SUFDakQsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDYixNQUFNLENBQVUsY0FBYyxHQUFHLGdCQUFnQixDQUFDO0lBRXpELGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FDbkMsS0FBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsWUFBb0IsRUFDcEIsUUFBNEI7UUFFNUIsT0FBTyxJQUFJLHdDQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDL0MscUJBQXFCLEVBQUUsZ0JBQWdCO1lBQ3ZDLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBRWQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxTQUFxQixFQUFFO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YscUJBQXFCLEVBQUUsZ0JBQWdCO1lBQ3ZDLDBCQUEwQixFQUFFO2dCQUMxQixZQUFZLEVBQUUsV0FBVzthQUMxQjtZQUNELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUkscURBQXdCLENBQzFCLE9BQU8sRUFDUCxvSEFBb0gsQ0FDckgsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtJQUViLHdEQUF3RDtJQUN4RCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsMkRBQTJEO0lBQ25ELE1BQU0sQ0FBMEI7SUFDeEMsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQVcsS0FBSyxDQUFDLEtBQTZCO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELG9EQUFvRDtJQUNwRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCw0REFBNEQ7SUFDcEQsT0FBTyxHQUFHLElBQUksOEJBQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzRUFBc0U7SUFDOUQsZ0JBQWdCLENBQTBCO0lBQ2xELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRDs7O09BR0c7SUFDSCxJQUFXLGVBQWUsQ0FBQyxLQUE2QjtRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFDTSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBQ0Qsb0RBQW9EO0lBQ3BELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO0lBQ1osWUFBWTtJQUNaLFlBQVk7SUFFRixvQkFBb0I7UUFDNUIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFBLG9CQUFVLEVBQUMsd0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBQSxvQkFBVSxFQUFDLHdCQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFUyx1QkFBdUI7UUFDL0IsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFBLHVCQUFhLEVBQUMsMkJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3BELGdCQUFnQixFQUFFLElBQUEsdUJBQWEsRUFBQywyQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUMxRSxDQUFDO0lBQ0osQ0FBQzs7QUF6SUgsb0NBMElDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVmFsaWRhdGVUZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdmFsaWRhdGlvbnMvdmFsaWRhdGUtdGVycmFmb3JtLXZlcnNpb25cIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybU1ldGFBcmd1bWVudHMsXG4gIFRlcnJhZm9ybVJlc291cmNlLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4vdGVycmFmb3JtLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBJbXBvcnRhYmxlUmVzb3VyY2UgfSBmcm9tIFwiLi9pbXBvcnRhYmxlLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBbnlNYXAgfSBmcm9tIFwiLi9jb21wbGV4LWNvbXB1dGVkLWxpc3RcIjtcbmltcG9ydCB7XG4gIGFueVRvVGVycmFmb3JtLFxuICBoYXNoTWFwcGVyLFxuICBoYXNoTWFwcGVySGNsLFxuICBhbnlUb0hjbFRlcnJhZm9ybSxcbn0gZnJvbSBcIi4vcnVudGltZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFDb25maWcgZXh0ZW5kcyBUZXJyYWZvcm1NZXRhQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCByZWZsZWN0ZWQgaW4gdGhlIG91dHB1dCBhdHRyaWJ1dGUgYWZ0ZXIgYXBwbHkuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSNpbnB1dFxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBIHZhbHVlIHdoaWNoIGlzIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCB3aWxsIGZvcmNlIHJlcGxhY2VtZW50IHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSN0cmlnZ2Vyc19yZXBsYWNlXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2Vyc1JlcGxhY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFRoZSBEYXRhUmVzb3VyY2UgaW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgcmVzb3VyY2UgbGlmZWN5Y2xlLCBidXQgZG9lcyBub3QgZGlyZWN0bHkgdGFrZSBhbnkgb3RoZXIgYWN0aW9ucy4gWW91IGNhbiB1c2UgdGhlIERhdGFSZXNvdXJjZSByZXNvdXJjZSB3aXRob3V0IHJlcXVpcmluZyBvciBjb25maWd1cmluZyBhIHByb3ZpZGVyLlxuICpcbiAqIFRoZSBEYXRhUmVzb3VyY2UgcmVzb3VyY2UgaXMgdXNlZnVsIGZvciBzdG9yaW5nIHZhbHVlcyB3aGljaCBuZWVkIHRvIGZvbGxvdyBhIG1hbmFnZSByZXNvdXJjZSBsaWZlY3ljbGUsIGFuZCBmb3IgdHJpZ2dlcmluZyBwcm92aXNpb25lcnMgd2hlbiB0aGVyZSBpcyBubyBvdGhlciBsb2dpY2FsIG1hbmFnZWQgcmVzb3VyY2UgaW4gd2hpY2ggdG8gcGxhY2UgdGhlbS5cbiAqXG4gKiBJdCByZXF1aXJlcyBUZXJyYWZvcm0gMS40IG9yIGxhdGVyLlxuICpcbiAqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhlc2UgYmluZGluZ3MgYnkgYWRkaW5nIFwidGVycmFmb3JtLmlvL2J1aWx0aW4vdGVycmFmb3JtXCIgdG8gdGhlIFwidGVycmFmb3JtUHJvdmlkZXJzXCIga2V5IGluIHlvdXIgY2RrdGYuanNvbiBmaWxlIGFuZCBydW5uaW5nIFwiY2RrdG4gZ2V0XCIuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvcmVzb3VyY2VzL3RlcnJhZm9ybS1kYXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhUmVzb3VyY2UgZXh0ZW5kcyBUZXJyYWZvcm1SZXNvdXJjZSB7XG4gIC8vID09PT09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBQUk9QRVJUSUVTXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdGZSZXNvdXJjZVR5cGUgPSBcInRlcnJhZm9ybV9kYXRhXCI7XG5cbiAgLy8gPT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIE1ldGhvZHNcbiAgLy8gPT09PT09PT09PT09PT1cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBDREtUTiBjb2RlIGZvciBpbXBvcnRpbmcgYSBEYXRhIHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RuIHBsYW4gPHN0YWNrLW5hbWU+XCJcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGltcG9ydFRvSWQgVGhlIGNvbnN0cnVjdCBpZCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGZvciB0aGUgRGF0YSB0byBpbXBvcnRcbiAgICogQHBhcmFtIGltcG9ydEZyb21JZCBUaGUgaWQgb2YgdGhlIGV4aXN0aW5nIERhdGEgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly90ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2J1aWx0aW4vdGVycmFmb3JtL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9kYXRhI2ltcG9ydCBpbXBvcnQgc2VjdGlvbn0gaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyByZXNvdXJjZSBmb3IgdGhlIGlkIHRvIHVzZVxuICAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgRGF0YSB0byBpbXBvcnQgaXMgZm91bmRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpbXBvcnRUb0lkOiBzdHJpbmcsXG4gICAgaW1wb3J0RnJvbUlkOiBzdHJpbmcsXG4gICAgcHJvdmlkZXI/OiBUZXJyYWZvcm1Qcm92aWRlcixcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRhYmxlUmVzb3VyY2Uoc2NvcGUsIGltcG9ydFRvSWQsIHtcbiAgICAgIHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCJ0ZXJyYWZvcm1fZGF0YVwiLFxuICAgICAgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCxcbiAgICAgIHByb3ZpZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFRlcnJhZm9ybURhdGEgUmVzb3VyY2UuXG4gICAqXG4gICAqIFRoZSBEYXRhUmVzb3VyY2UgcmVzb3VyY2UgaXMgdXNlZnVsIGZvciBzdG9yaW5nIHZhbHVlcyB3aGljaCBuZWVkIHRvIGZvbGxvdyBhIG1hbmFnZSByZXNvdXJjZSBsaWZlY3ljbGUsIGFuZCBmb3IgdHJpZ2dlcmluZyBwcm92aXNpb25lcnMgd2hlbiB0aGVyZSBpcyBubyBvdGhlciBsb2dpY2FsIG1hbmFnZWQgcmVzb3VyY2UgaW4gd2hpY2ggdG8gcGxhY2UgdGhlbS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICAqIEBwYXJhbSBvcHRpb25zIERhdGFDb25maWcgPSB7fVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogRGF0YUNvbmZpZyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwidGVycmFmb3JtX2RhdGFcIixcbiAgICAgIHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhOiB7XG4gICAgICAgIHByb3ZpZGVyTmFtZTogXCJ0ZXJyYWZvcm1cIixcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcjogY29uZmlnLnByb3ZpZGVyLFxuICAgICAgZGVwZW5kc09uOiBjb25maWcuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IGNvbmZpZy5jb3VudCxcbiAgICAgIGxpZmVjeWNsZTogY29uZmlnLmxpZmVjeWNsZSxcbiAgICAgIHByb3Zpc2lvbmVyczogY29uZmlnLnByb3Zpc2lvbmVycyxcbiAgICAgIGNvbm5lY3Rpb246IGNvbmZpZy5jb25uZWN0aW9uLFxuICAgICAgZm9yRWFjaDogY29uZmlnLmZvckVhY2gsXG4gICAgfSk7XG4gICAgdGhpcy5faW5wdXQgPSBjb25maWcuaW5wdXQ7XG4gICAgdGhpcy5fdHJpZ2dlcnNSZXBsYWNlID0gY29uZmlnLnRyaWdnZXJzUmVwbGFjZTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihcbiAgICAgIG5ldyBWYWxpZGF0ZVRlcnJhZm9ybVZlcnNpb24oXG4gICAgICAgIFwiPj0xLjRcIixcbiAgICAgICAgYFRoZSBidWlsdC1pbiBUZXJyYWZvcm0gZGF0YSByZXNvdXJjZSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgVGVycmFmb3JtID49MS40LiBQbGVhc2UgdXBncmFkZSB5b3VyIFRlcnJhZm9ybSB2ZXJzaW9uLmAsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAvLyA9PT09PT09PT09XG4gIC8vIEFUVFJJQlVURVNcbiAgLy8gPT09PT09PT09PVxuXG4gIC8vIGlkIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKFwiaWRcIik7XG4gIH1cblxuICAvLyBpbnB1dCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9pbnB1dD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIHB1YmxpYyBnZXQgaW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QW55TWFwQXR0cmlidXRlKFwiaW5wdXRcIik7XG4gIH1cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgaW5zdGFuY2Ugc3RhdGUsIGFuZCByZWZsZWN0ZWQgaW4gdGhlIG91dHB1dCBhdHRyaWJ1dGUgYWZ0ZXIgYXBwbHkuXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy90ZXJyYWZvcm0tZGF0YSNpbnB1dFxuICAgKi9cbiAgcHVibGljIHNldCBpbnB1dCh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5faW5wdXQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGlucHV0SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0O1xuICB9XG5cbiAgLy8gb3V0cHV0IC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX291dHB1dCA9IG5ldyBBbnlNYXAodGhpcywgXCJvdXRwdXRcIik7XG4gIHB1YmxpYyBnZXQgb3V0cHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXQ7XG4gIH1cblxuICAvLyB0cmlnZ2Vyc19yZXBsYWNlIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3RyaWdnZXJzUmVwbGFjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIHB1YmxpYyBnZXQgdHJpZ2dlcnNSZXBsYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmdldEFueU1hcEF0dHJpYnV0ZShcInRyaWdnZXJzX3JlcGxhY2VcIik7XG4gIH1cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQSB2YWx1ZSB3aGljaCBpcyBzdG9yZWQgaW4gdGhlIGluc3RhbmNlIHN0YXRlLCBhbmQgd2lsbCBmb3JjZSByZXBsYWNlbWVudCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9yZXNvdXJjZXMvdGVycmFmb3JtLWRhdGEjdHJpZ2dlcnNfcmVwbGFjZVxuICAgKi9cbiAgcHVibGljIHNldCB0cmlnZ2Vyc1JlcGxhY2UodmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICB0aGlzLl90cmlnZ2Vyc1JlcGxhY2UgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRUcmlnZ2Vyc1JlcGxhY2UoKSB7XG4gICAgdGhpcy5fdHJpZ2dlcnNSZXBsYWNlID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB0cmlnZ2Vyc1JlcGxhY2VJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcnNSZXBsYWNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09XG4gIC8vIFNZTlRIRVNJU1xuICAvLyA9PT09PT09PT1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDogaGFzaE1hcHBlcihhbnlUb1RlcnJhZm9ybSkodGhpcy5faW5wdXQpLFxuICAgICAgdHJpZ2dlcnNfcmVwbGFjZTogaGFzaE1hcHBlcihhbnlUb1RlcnJhZm9ybSkodGhpcy5fdHJpZ2dlcnNSZXBsYWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IGhhc2hNYXBwZXJIY2woYW55VG9IY2xUZXJyYWZvcm0pKHRoaXMuX2lucHV0KSxcbiAgICAgIHRyaWdnZXJzX3JlcGxhY2U6IGhhc2hNYXBwZXJIY2woYW55VG9IY2xUZXJyYWZvcm0pKHRoaXMuX3RyaWdnZXJzUmVwbGFjZSksXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.TerraformDataSource = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -14,6 +13,15 @@ const assert = require("assert");
14
13
  const TERRAFORM_DATA_SOURCE_SYMBOL = Symbol.for("cdktf/TerraformDataSource");
15
14
  // eslint-disable-next-line jsdoc/require-jsdoc
16
15
  class TerraformDataSource extends terraform_element_1.TerraformElement {
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformDataSource", version: "0.25.0-pre.21" };
17
+ terraformResourceType;
18
+ terraformGeneratorMetadata;
19
+ // TerraformMetaArguments
20
+ dependsOn;
21
+ count;
22
+ provider;
23
+ lifecycle;
24
+ forEach;
17
25
  constructor(scope, id, config) {
18
26
  super(scope, id, `data.${config.terraformResourceType}`);
19
27
  Object.defineProperty(this, TERRAFORM_DATA_SOURCE_SYMBOL, { value: true });
@@ -119,6 +127,4 @@ class TerraformDataSource extends terraform_element_1.TerraformElement {
119
127
  }
120
128
  }
121
129
  exports.TerraformDataSource = TerraformDataSource;
122
- _a = JSII_RTTI_SYMBOL_1;
123
- TerraformDataSource[_a] = { fqn: "cdktn.TerraformDataSource", version: "0.25.0-pre.2" };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHFDQUFpQztBQUNqQywyREFBdUQ7QUFFdkQsNkRBTThCO0FBQzlCLGlDQUtnQjtBQUVoQixpREFBaUQ7QUFHakQsdURBQW1EO0FBQ25ELGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFN0UsK0NBQStDO0FBQy9DLE1BQWEsbUJBQ1gsU0FBUSxvQ0FBZ0I7SUFjeEIsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBQzFELElBQUksQ0FBQywwQkFBMEIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUM7UUFDcEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNuRCxJQUFBLHlCQUFVLEVBQUMsVUFBVSxDQUFDLENBQ3ZCLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFB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Q0FBQyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUM3RDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0seUJBQXlCLENBQUMsa0JBQTBCO1FBQ3pELE9BQU8sSUFBQSxrQkFBRyxFQUNSLFFBQVEsSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsR0FDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUN4QixJQUFJLGtCQUFrQixFQUFFLEVBQ3hCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFDSixDQUFDOztBQXhLSCxrREF5S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1FbGVtZW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWVsZW1lbnRcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4vdGVycmFmb3JtLXByb3ZpZGVyXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvck1ldGFkYXRhLFxuICBUZXJyYWZvcm1SZXNvdXJjZUNvbmZpZyxcbiAgVGVycmFmb3JtUmVzb3VyY2VMaWZlY3ljbGUsXG4gIElUZXJyYWZvcm1SZXNvdXJjZSxcbiAgbGlmZWN5Y2xlVG9UZXJyYWZvcm0sXG59IGZyb20gXCIuL3RlcnJhZm9ybS1yZXNvdXJjZVwiO1xuaW1wb3J0IHtcbiAga2V5c1RvU25ha2VDYXNlLFxuICBkZWVwTWVyZ2UsXG4gIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlcyxcbiAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzRm9ySGNsLFxufSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtRGVwZW5kYWJsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1kZXBlbmRhYmxlXCI7XG5pbXBvcnQgeyByZWYsIGRlcGVuZGFibGUgfSBmcm9tIFwiLi90ZkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IElJbnRlcnBvbGF0aW5nUGFyZW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWFkZHJlc3NhYmxlXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtSXRlcmF0b3IgfSBmcm9tIFwiLi90ZXJyYWZvcm0taXRlcmF0b3JcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUNvdW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWNvdW50XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuaW1wb3J0IGFzc2VydCA9IHJlcXVpcmUoXCJhc3NlcnRcIik7XG5cbmNvbnN0IFRFUlJBRk9STV9EQVRBX1NPVVJDRV9TWU1CT0wgPSBTeW1ib2wuZm9yKFwiY2RrdGYvVGVycmFmb3JtRGF0YVNvdXJjZVwiKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1EYXRhU291cmNlXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzIElUZXJyYWZvcm1SZXNvdXJjZSwgSVRlcnJhZm9ybURlcGVuZGFibGUsIElJbnRlcnBvbGF0aW5nUGFyZW50XG57XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhPzogVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YTtcblxuICAvLyBUZXJyYWZvcm1NZXRhQXJndW1lbnRzXG5cbiAgcHVibGljIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBwdWJsaWMgY291bnQ/OiBudW1iZXIgfCBUZXJyYWZvcm1Db3VudDtcbiAgcHVibGljIHByb3ZpZGVyPzogVGVycmFmb3JtUHJvdmlkZXI7XG4gIHB1YmxpYyBsaWZlY3ljbGU/OiBUZXJyYWZvcm1SZXNvdXJjZUxpZmVjeWNsZTtcbiAgcHVibGljIGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29uZmlnOiBUZXJyYWZvcm1SZXNvdXJjZUNvbmZpZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgYGRhdGEuJHtjb25maWcudGVycmFmb3JtUmVzb3VyY2VUeXBlfWApO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fREFUQV9TT1VSQ0VfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG4gICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGUgPSBjb25maWcudGVycmFmb3JtUmVzb3VyY2VUeXBlO1xuICAgIHRoaXMudGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGEgPSBjb25maWcudGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmRlcGVuZHNPbikpIHtcbiAgICAgIHRoaXMuZGVwZW5kc09uID0gY29uZmlnLmRlcGVuZHNPbi5tYXAoKGRlcGVuZGVuY3kpID0+XG4gICAgICAgIGRlcGVuZGFibGUoZGVwZW5kZW5jeSksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNvdW50ID0gY29uZmlnLmNvdW50O1xuICAgIHRoaXMucHJvdmlkZXIgPSBjb25maWcucHJvdmlkZXI7XG4gICAgdGhpcy5saWZlY3ljbGUgPSBjb25maWcubGlmZWN5Y2xlO1xuICAgIHRoaXMuZm9yRWFjaCA9IGNvbmZpZy5mb3JFYWNoO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1RlcnJhZm9ybURhdGFTb3VyY2UoeDogYW55KTogeCBpcyBUZXJyYWZvcm1EYXRhU291cmNlIHtcbiAgICByZXR1cm4gKFxuICAgICAgeCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBURVJSQUZPUk1fREFUQV9TT1VSQ0VfU1lNQk9MIGluIHhcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ0F0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaXN0QXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdCh0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Qm9vbGVhbkF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROdW1iZXJMaXN0QXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTGlzdChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RyaW5nTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROdW1iZXJNYXBBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXJNYXAoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5NYXBBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNCb29sZWFuTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbnlNYXBBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnlNYXAodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJyYWZvcm1NZXRhQXJndW1lbnRzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBhc3NlcnQoXG4gICAgICAhdGhpcy5mb3JFYWNoIHx8IHR5cGVvZiB0aGlzLmNvdW50ID09PSBcInVuZGVmaW5lZFwiLFxuICAgICAgYGZvckVhY2ggYW5kIGNvdW50IGFyZSBib3RoIHNldCwgYnV0IHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gWW91IGNhbiBvbmx5IHVzZSBlaXRoZXIgb2YgdGhlbS4gQ2hlY2sgdGhlIGRhdGEgc291cmNlIGF0IHBhdGg6ICR7dGhpcy5ub2RlLnBhdGh9YCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlcGVuZHNPbjogdGhpcy5kZXBlbmRzT24sXG4gICAgICBjb3VudDogVGVycmFmb3JtQ291bnQuaXNUZXJyYWZvcm1Db3VudCh0aGlzLmNvdW50KVxuICAgICAgICA/IHRoaXMuY291bnQudG9UZXJyYWZvcm0oKVxuICAgICAgICA6IHRoaXMuY291bnQsXG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcj8uZnFuLFxuICAgICAgbGlmZWN5Y2xlOiBsaWZlY3ljbGVUb1RlcnJhZm9ybSh0aGlzLmxpZmVjeWNsZSksXG4gICAgICBmb3JFYWNoOiB0aGlzLmZvckVhY2g/Ll9nZXRGb3JFYWNoRXhwcmVzc2lvbigpLFxuICAgIH07XG4gIH1cblxuICAvLyBqc2lpIGNhbid0IGhhbmRsZSBhYnN0cmFjdCBjbGFzc2VzP1xuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCh0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YToge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGlzIHJlc291cmNlIHRvIHRoZSB0ZXJyYWZvcm0gSlNPTiBvdXRwdXQuXG4gICAqL1xuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGVlcE1lcmdlKFxuICAgICAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzKHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSksXG4gICAgICBrZXlzVG9TbmFrZUNhc2UodGhpcy50ZXJyYWZvcm1NZXRhQXJndW1lbnRzKSxcbiAgICAgIHRoaXMucmF3T3ZlcnJpZGVzLFxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGVzW1wiLy9cIl0gPSB0aGlzLmNvbnN0cnVjdE5vZGVNZXRhZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIFt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IHtcbiAgICAgICAgICBbdGhpcy5mcmllbmRseVVuaXF1ZUlkXTogYXR0cmlidXRlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIGlmICghT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXTogT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVmKFxuICAgICAgYGRhdGEuJHt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9JHtcbiAgICAgICAgdGhpcy5mb3JFYWNoID8gXCIuKlwiIDogXCJcIlxuICAgICAgfS4ke3RlcnJhZm9ybUF0dHJpYnV0ZX1gLFxuICAgICAgdGhpcy5jZGt0ZlN0YWNrLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EscUNBQWlDO0FBQ2pDLDJEQUF1RDtBQUV2RCw2REFNOEI7QUFDOUIsaUNBS2dCO0FBRWhCLGlEQUFpRDtBQUdqRCx1REFBbUQ7QUFDbkQsaUVBQWlFO0FBQ2pFLGlDQUFrQztBQUVsQyxNQUFNLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUU3RSwrQ0FBK0M7QUFDL0MsTUFBYSxtQkFDWCxTQUFRLG9DQUFnQjs7SUFHUixxQkFBcUIsQ0FBUztJQUM5QiwwQkFBMEIsQ0FBc0M7SUFFaEYseUJBQXlCO0lBRWxCLFNBQVMsQ0FBWTtJQUNyQixLQUFLLENBQTJCO0lBQ2hDLFFBQVEsQ0FBcUI7SUFDN0IsU0FBUyxDQUE4QjtJQUN2QyxPQUFPLENBQXNCO0lBRXBDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFF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LE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDN0Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLHlCQUF5QixDQUFDLGtCQUEwQjtRQUN6RCxPQUFPLElBQUEsa0JBQUcsRUFDUixRQUFRLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDeEIsSUFBSSxrQkFBa0IsRUFBRSxFQUN4QixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQzs7QUF4S0gsa0RBeUtDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRWxlbWVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1lbGVtZW50XCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlciB9IGZyb20gXCIuL3RlcnJhZm9ybS1wcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YSxcbiAgVGVycmFmb3JtUmVzb3VyY2VDb25maWcsXG4gIFRlcnJhZm9ybVJlc291cmNlTGlmZWN5Y2xlLFxuICBJVGVycmFmb3JtUmVzb3VyY2UsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7XG4gIGtleXNUb1NuYWtlQ2FzZSxcbiAgZGVlcE1lcmdlLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMsXG4gIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCxcbn0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybURlcGVuZGFibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZGVwZW5kYWJsZVwiO1xuaW1wb3J0IHsgcmVmLCBkZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJSW50ZXJwb2xhdGluZ1BhcmVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1hZGRyZXNzYWJsZVwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Db3VudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb3VudFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmltcG9ydCBhc3NlcnQgPSByZXF1aXJlKFwiYXNzZXJ0XCIpO1xuXG5jb25zdCBURVJSQUZPUk1fREFUQV9TT1VSQ0VfU1lNQk9MID0gU3ltYm9sLmZvcihcImNka3RmL1RlcnJhZm9ybURhdGFTb3VyY2VcIik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRGF0YVNvdXJjZVxuICBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnRcbiAgaW1wbGVtZW50cyBJVGVycmFmb3JtUmVzb3VyY2UsIElUZXJyYWZvcm1EZXBlbmRhYmxlLCBJSW50ZXJwb2xhdGluZ1BhcmVudFxue1xuICBwdWJsaWMgcmVhZG9ubHkgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YT86IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGE7XG5cbiAgLy8gVGVycmFmb3JtTWV0YUFyZ3VtZW50c1xuXG4gIHB1YmxpYyBkZXBlbmRzT24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGNvdW50PzogbnVtYmVyIHwgVGVycmFmb3JtQ291bnQ7XG4gIHB1YmxpYyBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBwdWJsaWMgbGlmZWN5Y2xlPzogVGVycmFmb3JtUmVzb3VyY2VMaWZlY3ljbGU7XG4gIHB1YmxpYyBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogVGVycmFmb3JtUmVzb3VyY2VDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGBkYXRhLiR7Y29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZX1gKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1EYXRhU291cmNlKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0RBVEFfU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBkYXRhIHNvdXJjZSBhdCBwYXRoOiAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IFRlcnJhZm9ybUNvdW50LmlzVGVycmFmb3JtQ291bnQodGhpcy5jb3VudClcbiAgICAgICAgPyB0aGlzLmNvdW50LnRvVGVycmFmb3JtKClcbiAgICAgICAgOiB0aGlzLmNvdW50LFxuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXI/LmZxbixcbiAgICAgIGxpZmVjeWNsZTogbGlmZWN5Y2xlVG9UZXJyYWZvcm0odGhpcy5saWZlY3ljbGUpLFxuICAgICAgZm9yRWFjaDogdGhpcy5mb3JFYWNoPy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICB9O1xuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHRoaXMuY29uc3RydWN0Tm9kZU1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlcyh0aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YToge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIFt0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZihcbiAgICAgIGBkYXRhLiR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9LiR7dGhpcy5mcmllbmRseVVuaXF1ZUlkfSR7XG4gICAgICAgIHRoaXMuZm9yRWFjaCA/IFwiLipcIiA6IFwiXCJcbiAgICAgIH0uJHt0ZXJyYWZvcm1BdHRyaWJ1dGV9YCxcbiAgICAgIHRoaXMuY2RrdGZTdGFjayxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -9,9 +9,12 @@ const stack_trace_1 = require("./tokens/private/stack-trace");
9
9
  const DYNAMIC_BLOCK_SYMBOL = Symbol.for("cdktf/TerraformDynamicBlock");
10
10
  // eslint-disable-next-line jsdoc/require-jsdoc
11
11
  class TerraformDynamicBlock {
12
+ creationStack;
13
+ forEach;
14
+ iterator = "each"; // name of temporary variable used in iteration, needed in the future when allowing nesting iterators
15
+ content;
12
16
  // labels: TODO: support labels, but they seem to be quite rare (issue: https://github.com/hashicorp/terraform-cdk/issues/1939)
13
17
  constructor(args) {
14
- this.iterator = "each"; // name of temporary variable used in iteration, needed in the future when allowing nesting iterators
15
18
  Object.defineProperty(this, DYNAMIC_BLOCK_SYMBOL, { value: true });
16
19
  this.creationStack = (0, stack_trace_1.captureCreationStack)();
17
20
  this.forEach = args.forEach;
@@ -54,4 +57,4 @@ class TerraformDynamicBlock {
54
57
  }
55
58
  }
56
59
  exports.TerraformDynamicBlock = TerraformDynamicBlock;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWR5bmFtaWMtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBb0Q7QUFHcEQscUNBQXFFO0FBQ3JFLDhEQUFvRTtBQUVwRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV2RSwrQ0FBK0M7QUFDL0MsTUFBYSxxQkFBcUI7SUFLaEMsK0hBQStIO0lBRS9ILFlBQW9CLElBR25CO1FBUGUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFHQUFxRztRQVF0SSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBQSxrQ0FBb0IsR0FBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDakMsSUFBZ0M7UUFFaEMsT0FBTyxJQUFJLHFCQUFxQixDQUFDO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixNQUFNLElBQUEsaUNBQXdCLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLDJCQUEyQjtRQUNoQyxPQUFPLGFBQUksQ0FBQyxRQUFRLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUMsT0FBd0IsRUFBRSxFQUFFO2dCQUNwQyxPQUFPLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxDQUFDLGdGQUFnRjtnQkFFM0gsT0FBTztvQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtvQkFDOUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN2QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2lCQUN2QyxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sc0NBQXNDLENBQUM7SUFDaEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFNO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksb0JBQW9CLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQTVERCxzREE0REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgZHluYW1pY0Jsb2NrTm90U3VwcG9ydGVkIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1keW5hbWljLWV4cHJlc3Npb25cIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgTGF6eSwgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IGNhcHR1cmVDcmVhdGlvblN0YWNrIH0gZnJvbSBcIi4vdG9rZW5zL3ByaXZhdGUvc3RhY2stdHJhY2VcIjtcblxuY29uc3QgRFlOQU1JQ19CTE9DS19TWU1CT0wgPSBTeW1ib2wuZm9yKFwiY2RrdGYvVGVycmFmb3JtRHluYW1pY0Jsb2NrXCIpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUR5bmFtaWNCbG9jayBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0aW9uU3RhY2s6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9yRWFjaDogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlcmF0b3IgPSBcImVhY2hcIjsgLy8gbmFtZSBvZiB0ZW1wb3JhcnkgdmFyaWFibGUgdXNlZCBpbiBpdGVyYXRpb24sIG5lZWRlZCBpbiB0aGUgZnV0dXJlIHdoZW4gYWxsb3dpbmcgbmVzdGluZyBpdGVyYXRvcnNcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnQ6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIC8vIGxhYmVsczogVE9ETzogc3VwcG9ydCBsYWJlbHMsIGJ1dCB0aGV5IHNlZW0gdG8gYmUgcXVpdGUgcmFyZSAoaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9pc3N1ZXMvMTkzOSlcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGFyZ3M6IHtcbiAgICBmb3JFYWNoOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gICAgY29udGVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgfSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBEWU5BTUlDX0JMT0NLX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmNyZWF0aW9uU3RhY2sgPSBjYXB0dXJlQ3JlYXRpb25TdGFjaygpO1xuICAgIHRoaXMuZm9yRWFjaCA9IGFyZ3MuZm9yRWFjaDtcbiAgICB0aGlzLmNvbnRlbnQgPSBhcmdzLmNvbnRlbnQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb21EeW5hbWljRXhwcmVzc2lvbihcbiAgICBleHByOiBUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbixcbiAgKTogVGVycmFmb3JtRHluYW1pY0Jsb2NrIHtcbiAgICByZXR1cm4gbmV3IFRlcnJhZm9ybUR5bmFtaWNCbG9jayh7XG4gICAgICBmb3JFYWNoOiBleHByLml0ZXJhdG9yLFxuICAgICAgY29udGVudDogZXhwci5jb250ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUoKTogYW55IHtcbiAgICB0aHJvdyBkeW5hbWljQmxvY2tOb3RTdXBwb3J0ZWQodGhpcy5mb3JFYWNoLl9nZXRGb3JFYWNoRXhwcmVzc2lvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybUR5bmFtaWNCbG9ja0pzb24oKTogSVJlc29sdmFibGUge1xuICAgIHJldHVybiBMYXp5LmFueVZhbHVlKHtcbiAgICAgIHByb2R1Y2U6IChjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29udGV4dC5pdGVyYXRvckNvbnRleHQgPSBcIkRZTkFNSUNfQkxPQ0tcIjsgLy8gcmVzb2x2ZSBuZXN0ZWQgTGF6eSB2YWx1ZXMgKHdpdGhpbiB0aGlzLmNvbnRlbnQpIGFzIGR5bmFtaWMgYmxvY2sgZXhwcmVzc2lvbnNcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZvcl9lYWNoOiB0aGlzLmZvckVhY2guX2dldEZvckVhY2hFeHByZXNzaW9uKCksXG4gICAgICAgICAgaXRlcmF0b3I6IHRoaXMuaXRlcmF0b3IsXG4gICAgICAgICAgY29udGVudDogY29udGV4dC5yZXNvbHZlKHRoaXMuY29udGVudCksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogVHVybiB0aGlzIER5bmFtaWMgQmxvY2sgaW50byBKU09OXG4gICAqXG4gICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gSlNPTi5zdHJpbmdpZnkoKSBpcyBjYWxsZWQgb24gdGhpcy5cbiAgICovXG4gIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBcIjx1bnJlc29sdmVkLXRlcnJhZm9ybS1keW5hbWljLWJsb2NrPlwiO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1RlcnJhZm9ybUR5bmFtaWNCbG9jayh4OiBhbnkpOiB4IGlzIFRlcnJhZm9ybUR5bmFtaWNCbG9jayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgRFlOQU1JQ19CTE9DS19TWU1CT0wgaW4geDtcbiAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWR5bmFtaWMtYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBb0Q7QUFHcEQscUNBQXFFO0FBQ3JFLDhEQUFvRTtBQUVwRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV2RSwrQ0FBK0M7QUFDL0MsTUFBYSxxQkFBcUI7SUFDaEIsYUFBYSxDQUFXO0lBQ3hCLE9BQU8sQ0FBcUI7SUFDNUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFHQUFxRztJQUN4SCxPQUFPLENBQXlCO0lBQ2hELCtIQUErSDtJQUUvSCxZQUFvQixJQUduQjtRQUNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFBLGtDQUFvQixHQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUNqQyxJQUFnQztRQUVoQyxPQUFPLElBQUkscUJBQXFCLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLE1BQU0sSUFBQSxpQ0FBd0IsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sMkJBQTJCO1FBQ2hDLE9BQU8sYUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUMsZ0ZBQWdGO2dCQUUzSCxPQUFPO29CQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFO29CQUM5QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ3ZDLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLGNBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxzQ0FBc0MsQ0FBQztJQUNoRCxDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQU07UUFDMUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBNURELHNEQTREQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBkeW5hbWljQmxvY2tOb3RTdXBwb3J0ZWQgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtLWR5bmFtaWMtZXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgSVJlc29sdmVDb250ZXh0LCBMYXp5LCBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgY2FwdHVyZUNyZWF0aW9uU3RhY2sgfSBmcm9tIFwiLi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZVwiO1xuXG5jb25zdCBEWU5BTUlDX0JMT0NLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1EeW5hbWljQmxvY2tcIik7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRHluYW1pY0Jsb2NrIGltcGxlbWVudHMgSVJlc29sdmFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRpb25TdGFjazogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBmb3JFYWNoOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHB1YmxpYyByZWFkb25seSBpdGVyYXRvciA9IFwiZWFjaFwiOyAvLyBuYW1lIG9mIHRlbXBvcmFyeSB2YXJpYWJsZSB1c2VkIGluIGl0ZXJhdGlvbiwgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiBhbGxvd2luZyBuZXN0aW5nIGl0ZXJhdG9yc1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgLy8gbGFiZWxzOiBUT0RPOiBzdXBwb3J0IGxhYmVscywgYnV0IHRoZXkgc2VlbSB0byBiZSBxdWl0ZSByYXJlIChpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xOTM5KVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYXJnczoge1xuICAgIGZvckVhY2g6IElUZXJyYWZvcm1JdGVyYXRvcjtcbiAgICBjb250ZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICB9KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIERZTkFNSUNfQkxPQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMuY3JlYXRpb25TdGFjayA9IGNhcHR1cmVDcmVhdGlvblN0YWNrKCk7XG4gICAgdGhpcy5mb3JFYWNoID0gYXJncy5mb3JFYWNoO1xuICAgIHRoaXMuY29udGVudCA9IGFyZ3MuY29udGVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUR5bmFtaWNFeHByZXNzaW9uKFxuICAgIGV4cHI6IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uLFxuICApOiBUZXJyYWZvcm1EeW5hbWljQmxvY2sge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtRHluYW1pY0Jsb2NrKHtcbiAgICAgIGZvckVhY2g6IGV4cHIuaXRlcmF0b3IsXG4gICAgICBjb250ZW50OiBleHByLmNvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZSgpOiBhbnkge1xuICAgIHRocm93IGR5bmFtaWNCbG9ja05vdFN1cHBvcnRlZCh0aGlzLmZvckVhY2guX2dldEZvckVhY2hFeHByZXNzaW9uKCkpO1xuICB9XG5cbiAgcHVibGljIHRvVGVycmFmb3JtRHluYW1pY0Jsb2NrSnNvbigpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCA9IFwiRFlOQU1JQ19CTE9DS1wiOyAvLyByZXNvbHZlIG5lc3RlZCBMYXp5IHZhbHVlcyAod2l0aGluIHRoaXMuY29udGVudCkgYXMgZHluYW1pYyBibG9jayBleHByZXNzaW9uc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZm9yX2VhY2g6IHRoaXMuZm9yRWFjaC5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICAgICAgICBpdGVyYXRvcjogdGhpcy5pdGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiBjb250ZXh0LnJlc29sdmUodGhpcy5jb250ZW50KSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUdXJuIHRoaXMgRHluYW1pYyBCbG9jayBpbnRvIEpTT05cbiAgICpcbiAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBKU09OLnN0cmluZ2lmeSgpIGlzIGNhbGxlZCBvbiB0aGlzLlxuICAgKi9cbiAgdG9KU09OKCk6IGFueSB7XG4gICAgcmV0dXJuIFwiPHVucmVzb2x2ZWQtdGVycmFmb3JtLWR5bmFtaWMtYmxvY2s+XCI7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVGVycmFmb3JtRHluYW1pY0Jsb2NrKHg6IGFueSk6IHggaXMgVGVycmFmb3JtRHluYW1pY0Jsb2NrIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBEWU5BTUlDX0JMT0NLX1NZTUJPTCBpbiB4O1xuICB9XG59XG4iXX0=
@@ -16,6 +16,9 @@ const DYNAMIC_EXPRESSION_SYMBOL = Symbol.for("cdktf/TerraformDynamicExpression")
16
16
  * processDynamicAttributes() utility function.
17
17
  */
18
18
  class TerraformDynamicExpression {
19
+ creationStack;
20
+ iterator;
21
+ content;
19
22
  constructor(args) {
20
23
  Object.defineProperty(this, DYNAMIC_EXPRESSION_SYMBOL, { value: true });
21
24
  this.creationStack = (0, stack_trace_1.captureCreationStack)();
@@ -56,4 +59,4 @@ class TerraformDynamicExpression {
56
59
  }
57
60
  }
58
61
  exports.TerraformDynamicExpression = TerraformDynamicExpression;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZHluYW1pYy1leHByZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHdCQUFrQztBQUNsQyxxQ0FBb0Q7QUFDcEQsOERBQW9FO0FBRXBFLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDMUMsa0NBQWtDLENBQ25DLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLDBCQUEwQjtJQUtyQyxZQUFZLElBR1g7UUFDQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBQSxrQ0FBb0IsR0FBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTztRQUNaLE9BQU8sYUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbkIsd0VBQXdFO2dCQUN4RSxPQUFPLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDO2dCQUMzQyxzREFBc0Q7Z0JBQ3RELDZFQUE2RTtnQkFDN0UscUNBQXFDO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLElBQUEsZ0JBQWEsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUNwRSxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sMkNBQTJDLENBQUM7SUFDckQsQ0FBQztJQUVNLE1BQU0sQ0FBQyw0QkFBNEIsQ0FDeEMsQ0FBTTtRQUVOLE9BQU8sQ0FDTCxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSx5QkFBeUIsSUFBSSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4REQsZ0VBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgZm9yRXhwcmVzc2lvbiB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgTGF6eSwgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IGNhcHR1cmVDcmVhdGlvblN0YWNrIH0gZnJvbSBcIi4vdG9rZW5zL3ByaXZhdGUvc3RhY2stdHJhY2VcIjtcblxuY29uc3QgRFlOQU1JQ19FWFBSRVNTSU9OX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gIFwiY2RrdGYvVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb25cIixcbik7XG5cbi8qKlxuICogQSBUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbiBpcyByZXR1cm5lZCBieSBUZXJyYWZvcm1JdGVyYXRvci5keW5hbWljXG4gKiBhbmQgY2FuIGJlIHBhc3NlZCB0byBsaXN0IGF0dHJpYnV0ZXMgb2YgZS5nLiBUZXJyYWZvcm1SZXNvdXJjZXNcbiAqIEFzIGl0IHJlc29sdmVzIHRvIGEgZm9yIGV4cHJlc3Npb24sIGl0IGNhbiBiZSB1c2VkIGRpcmVjdGx5IG9uIGF0dHJpYnV0ZXMgb2ZcbiAqIGEgbGlzdChvYmplY3QpIHR5cGUgKG9yIHNpbWlsYXIpIGFuZCBpbiBUZXJyYWZvcm0gZnVuY3Rpb25zIHRoYXQgdGFrZSBhIGxpc3QuXG4gKiBXaGVuIHVzZWQgaW4gYXR0cmlidXRlcyB0aGF0IGFyZSBvZiBhIGJsb2NrIHR5cGUgd2hpY2ggbmVlZCB0byBiZSBtb2RlbGVkIGFzXG4gKiBhIGR5bmFtaWMgYmxvY2ssIHRoZSBsaXN0TWFwcGVyIGZvciB0aGF0IGF0dHJpYnV0ZSB3aWxsIGNoYW5nZSB0aGlzIHRvIGFcbiAqIFRlcnJhZm9ybUR5bmFtaWNCbG9jaywgd2hpY2ggaW4gdHVybiB3aWxsIGJlIHByb3Blcmx5IGhhbmRsZWQgYnkgdGhlXG4gKiBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMoKSB1dGlsaXR5IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24gaW1wbGVtZW50cyBJUmVzb2x2YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGlvblN0YWNrOiBzdHJpbmdbXTtcbiAgcHVibGljIHJlYWRvbmx5IGl0ZXJhdG9yOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHB1YmxpYyByZWFkb25seSBjb250ZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIGNvbnN0cnVjdG9yKGFyZ3M6IHtcbiAgICBpdGVyYXRvcjogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuICAgIGNvbnRlbnQ6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIH0pIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgRFlOQU1JQ19FWFBSRVNTSU9OX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmNyZWF0aW9uU3RhY2sgPSBjYXB0dXJlQ3JlYXRpb25TdGFjaygpO1xuICAgIHRoaXMuaXRlcmF0b3IgPSBhcmdzLml0ZXJhdG9yO1xuICAgIHRoaXMuY29udGVudCA9IGFyZ3MuY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXNvbHZlcyB0aGlzIGFzIGEgVGVycmFmb3JtIGZvciBleHByZXNzaW9uLlxuICAgKiBUaGlzIGFsbG93cyB1c2luZyBpdGVyYXRvci5keW5hbWljKCkgb24gYXR0cmlidXRlcyB0aGF0IGFyZSBub3QgYmxvY2tzIGJ1dFxuICAgKiBsaXN0cyBvZiBvYmplY3RzICh3aGljaCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB3aGVuIHdvcmtpbmcgd2l0aCBwcm92aWRlclxuICAgKiBtYXBwaW5ncyBhcyBpdCBpcyBhYnN0cmFjdGVkIGF3YXkpXG4gICAqL1xuICBwdWJsaWMgcmVzb2x2ZSgpOiBhbnkge1xuICAgIHJldHVybiBMYXp5LmFueVZhbHVlKHtcbiAgICAgIHByb2R1Y2U6IChjb250ZXh0KSA9PiB7XG4gICAgICAgIC8vIHJlc29sdmUgbmVzdGVkIExhenkgdmFsdWVzICh3aXRoaW4gdGhpcy5jb250ZW50KSBmb3IgYSBmb3IgZXhwcmVzc2lvblxuICAgICAgICBjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCA9IFwiRk9SX0VYUFJFU1NJT05cIjtcbiAgICAgICAgLy8gcmV0dXJucyBbIGZvciBrZXksIHZhbHVlIGluIGZvckVhY2hFeHByIDogY29udGVudCBdXG4gICAgICAgIC8vIGNvbnRleHQucmVzb2x2ZSBpcyByZXF1aXJlZCBmb3IgdGhlIGl0ZXJhdG9yQ29udGV4dCB0byBiZSBjb3JyZWN0bHkgcGFzc2VkXG4gICAgICAgIC8vIHRvIExhenkgdmFsdWVzIHdpdGhpbiB0aGlzLmNvbnRlbnRcbiAgICAgICAgcmV0dXJuIGNvbnRleHQucmVzb2x2ZShcbiAgICAgICAgICBmb3JFeHByZXNzaW9uKHRoaXMuaXRlcmF0b3IuX2dldEZvckV4cHJlc3Npb25JbnB1dCgpLCB0aGlzLmNvbnRlbnQpLFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFR1cm4gdGhpcyBEeW5hbWljIEV4cHJlc3Npb24gaW50byBKU09OXG4gICAqXG4gICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gSlNPTi5zdHJpbmdpZnkoKSBpcyBjYWxsZWQgb24gdGhpcy5cbiAgICovXG4gIHRvSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBcIjx1bnJlc29sdmVkLXRlcnJhZm9ybS1keW5hbWljLWV4cHJlc3Npb24+XCI7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24oXG4gICAgeDogYW55LFxuICApOiB4IGlzIFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gKFxuICAgICAgeCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBEWU5BTUlDX0VYUFJFU1NJT05fU1lNQk9MIGluIHhcbiAgICApO1xuICB9XG59XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWR5bmFtaWMtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZHluYW1pYy1leHByZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHdCQUFrQztBQUNsQyxxQ0FBb0Q7QUFDcEQsOERBQW9FO0FBRXBFLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDMUMsa0NBQWtDLENBQ25DLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLDBCQUEwQjtJQUNyQixhQUFhLENBQVc7SUFDeEIsUUFBUSxDQUFxQjtJQUM3QixPQUFPLENBQXlCO0lBRWhELFlBQVksSUFHWDtRQUNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFBLGtDQUFvQixHQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPO1FBQ1osT0FBTyxhQUFJLENBQUMsUUFBUSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuQix3RUFBd0U7Z0JBQ3hFLE9BQU8sQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQzNDLHNEQUFzRDtnQkFDdEQsNkVBQTZFO2dCQUM3RSxxQ0FBcUM7Z0JBQ3JDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FDcEIsSUFBQSxnQkFBYSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ3BFLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLGNBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTywyQ0FBMkMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTSxDQUFDLDRCQUE0QixDQUN4QyxDQUFNO1FBRU4sT0FBTyxDQUNMLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLHlCQUF5QixJQUFJLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhERCxnRUF3REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgSVRlcnJhZm9ybUl0ZXJhdG9yIH0gZnJvbSBcIi4vdGVycmFmb3JtLWl0ZXJhdG9yXCI7XG5pbXBvcnQgeyBmb3JFeHByZXNzaW9uIH0gZnJvbSBcIi5cIjtcbmltcG9ydCB7IElSZXNvbHZhYmxlLCBMYXp5LCBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgY2FwdHVyZUNyZWF0aW9uU3RhY2sgfSBmcm9tIFwiLi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZVwiO1xuXG5jb25zdCBEWU5BTUlDX0VYUFJFU1NJT05fU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgXCJjZGt0Zi9UZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvblwiLFxuKTtcblxuLyoqXG4gKiBBIFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uIGlzIHJldHVybmVkIGJ5IFRlcnJhZm9ybUl0ZXJhdG9yLmR5bmFtaWNcbiAqIGFuZCBjYW4gYmUgcGFzc2VkIHRvIGxpc3QgYXR0cmlidXRlcyBvZiBlLmcuIFRlcnJhZm9ybVJlc291cmNlc1xuICogQXMgaXQgcmVzb2x2ZXMgdG8gYSBmb3IgZXhwcmVzc2lvbiwgaXQgY2FuIGJlIHVzZWQgZGlyZWN0bHkgb24gYXR0cmlidXRlcyBvZlxuICogYSBsaXN0KG9iamVjdCkgdHlwZSAob3Igc2ltaWxhcikgYW5kIGluIFRlcnJhZm9ybSBmdW5jdGlvbnMgdGhhdCB0YWtlIGEgbGlzdC5cbiAqIFdoZW4gdXNlZCBpbiBhdHRyaWJ1dGVzIHRoYXQgYXJlIG9mIGEgYmxvY2sgdHlwZSB3aGljaCBuZWVkIHRvIGJlIG1vZGVsZWQgYXNcbiAqIGEgZHluYW1pYyBibG9jaywgdGhlIGxpc3RNYXBwZXIgZm9yIHRoYXQgYXR0cmlidXRlIHdpbGwgY2hhbmdlIHRoaXMgdG8gYVxuICogVGVycmFmb3JtRHluYW1pY0Jsb2NrLCB3aGljaCBpbiB0dXJuIHdpbGwgYmUgcHJvcGVybHkgaGFuZGxlZCBieSB0aGVcbiAqIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlcygpIHV0aWxpdHkgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbiBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0aW9uU3RhY2s6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlcmF0b3I6IElUZXJyYWZvcm1JdGVyYXRvcjtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnQ6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3IoYXJnczoge1xuICAgIGl0ZXJhdG9yOiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gICAgY29udGVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgfSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBEWU5BTUlDX0VYUFJFU1NJT05fU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMuY3JlYXRpb25TdGFjayA9IGNhcHR1cmVDcmVhdGlvblN0YWNrKCk7XG4gICAgdGhpcy5pdGVyYXRvciA9IGFyZ3MuaXRlcmF0b3I7XG4gICAgdGhpcy5jb250ZW50ID0gYXJncy5jb250ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIHJlc29sdmVzIHRoaXMgYXMgYSBUZXJyYWZvcm0gZm9yIGV4cHJlc3Npb24uXG4gICAqIFRoaXMgYWxsb3dzIHVzaW5nIGl0ZXJhdG9yLmR5bmFtaWMoKSBvbiBhdHRyaWJ1dGVzIHRoYXQgYXJlIG5vdCBibG9ja3MgYnV0XG4gICAqIGxpc3RzIG9mIG9iamVjdHMgKHdoaWNoIGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHdoZW4gd29ya2luZyB3aXRoIHByb3ZpZGVyXG4gICAqIG1hcHBpbmdzIGFzIGl0IGlzIGFic3RyYWN0ZWQgYXdheSlcbiAgICovXG4gIHB1YmxpYyByZXNvbHZlKCk6IGFueSB7XG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKGNvbnRleHQpID0+IHtcbiAgICAgICAgLy8gcmVzb2x2ZSBuZXN0ZWQgTGF6eSB2YWx1ZXMgKHdpdGhpbiB0aGlzLmNvbnRlbnQpIGZvciBhIGZvciBleHByZXNzaW9uXG4gICAgICAgIGNvbnRleHQuaXRlcmF0b3JDb250ZXh0ID0gXCJGT1JfRVhQUkVTU0lPTlwiO1xuICAgICAgICAvLyByZXR1cm5zIFsgZm9yIGtleSwgdmFsdWUgaW4gZm9yRWFjaEV4cHIgOiBjb250ZW50IF1cbiAgICAgICAgLy8gY29udGV4dC5yZXNvbHZlIGlzIHJlcXVpcmVkIGZvciB0aGUgaXRlcmF0b3JDb250ZXh0IHRvIGJlIGNvcnJlY3RseSBwYXNzZWRcbiAgICAgICAgLy8gdG8gTGF6eSB2YWx1ZXMgd2l0aGluIHRoaXMuY29udGVudFxuICAgICAgICByZXR1cm4gY29udGV4dC5yZXNvbHZlKFxuICAgICAgICAgIGZvckV4cHJlc3Npb24odGhpcy5pdGVyYXRvci5fZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCksIHRoaXMuY29udGVudCksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogVHVybiB0aGlzIER5bmFtaWMgRXhwcmVzc2lvbiBpbnRvIEpTT05cbiAgICpcbiAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBKU09OLnN0cmluZ2lmeSgpIGlzIGNhbGxlZCBvbiB0aGlzLlxuICAgKi9cbiAgdG9KU09OKCk6IGFueSB7XG4gICAgcmV0dXJuIFwiPHVucmVzb2x2ZWQtdGVycmFmb3JtLWR5bmFtaWMtZXhwcmVzc2lvbj5cIjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbihcbiAgICB4OiBhbnksXG4gICk6IHggaXMgVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24ge1xuICAgIHJldHVybiAoXG4gICAgICB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIERZTkFNSUNfRVhQUkVTU0lPTl9TWU1CT0wgaW4geFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.TerraformElement = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -23,9 +22,10 @@ const TERRAFORM_ELEMENT_SYMBOL = Symbol.for("cdktf/TerraformElement");
23
22
  * regardless of what the wrapped `ValidateFeatureTargetSupport` would say.
24
23
  */
25
24
  class GatedFeatureValidation {
25
+ delegate;
26
+ active = true;
26
27
  constructor(delegate) {
27
28
  this.delegate = delegate;
28
- this.active = true;
29
29
  }
30
30
  validate() {
31
31
  return this.active ? this.delegate.validate() : [];
@@ -33,9 +33,37 @@ class GatedFeatureValidation {
33
33
  }
34
34
  // eslint-disable-next-line jsdoc/require-jsdoc
35
35
  class TerraformElement extends constructs_1.Construct {
36
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformElement", version: "0.25.0-pre.21" };
37
+ rawOverrides = {};
38
+ /**
39
+ * An explicit logical ID provided by `overrideLogicalId`.
40
+ */
41
+ _logicalIdOverride;
42
+ /**
43
+ * Type of this element, used for fqn.
44
+ * This is undefined for
45
+ * - elements not referable, like TerraformOutput
46
+ * - elements using their own fqn implementation, like TerraformProvider
47
+ */
48
+ _elementType;
49
+ /**
50
+ * Provider-protocol feature families (see `ProviderFeature`) already
51
+ * registered on this element via `registerProviderFeatureUsage` or
52
+ * `_registerResolveDiscoveredProviderFeatureUsage`, so repeated usage
53
+ * (e.g. a setter called multiple times, or the same value resolved more
54
+ * than once in a synthesis pass) doesn't stack duplicate synth-time
55
+ * validations - each feature installs at most one node validation for
56
+ * the lifetime of the element, gated on/off via the registration's
57
+ * `active` flag instead of being re-added or removed.
58
+ *
59
+ * Lazily allocated: most elements in a large stack never register a
60
+ * provider feature at all, so this stays `undefined` until the first
61
+ * registration instead of every `TerraformElement` paying for an empty
62
+ * `Map` it will never use.
63
+ */
64
+ _registeredProviderFeatures;
36
65
  constructor(scope, id, elementType) {
37
66
  super(scope, id);
38
- this.rawOverrides = {};
39
67
  Object.defineProperty(this, TERRAFORM_ELEMENT_SYMBOL, { value: true });
40
68
  this._elementType = elementType;
41
69
  if (tokens_1.Token.isUnresolved(id)) {
@@ -140,6 +168,7 @@ class TerraformElement extends constructs_1.Construct {
140
168
  toMetadata() {
141
169
  return {};
142
170
  }
171
+ _fqnToken;
143
172
  get fqn() {
144
173
  if (!this._fqnToken) {
145
174
  (0, assert_1.ok)(!!this._elementType, "Element type not set");
@@ -147,6 +176,7 @@ class TerraformElement extends constructs_1.Construct {
147
176
  }
148
177
  return this._fqnToken;
149
178
  }
179
+ _friendlyUniqueId;
150
180
  get friendlyUniqueId() {
151
181
  if (!this._friendlyUniqueId) {
152
182
  if (this._logicalIdOverride) {
@@ -203,6 +233,4 @@ class TerraformElement extends constructs_1.Construct {
203
233
  }
204
234
  }
205
235
  exports.TerraformElement = TerraformElement;
206
- _a = JSII_RTTI_SYMBOL_1;
207
- TerraformElement[_a] = { fqn: "cdktn.TerraformElement", version: "0.25.0-pre.2" };
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLG1DQUE0QjtBQUM1QiwyQ0FBb0Q7QUFDcEQscUNBQWlDO0FBQ2pDLHVEQUFtRDtBQUNuRCxpREFBcUM7QUFDckMscUNBQWdGO0FBQ2hGLG1FQUE2RTtBQUM3RSxpRkFLd0M7QUFFeEMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFvQnRFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLHNCQUFzQjtJQUcxQixZQUE2QixRQUFzQztRQUF0QyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUY1RCxXQUFNLEdBQUcsSUFBSSxDQUFDO0lBRWlELENBQUM7SUFFaEUsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQWFELCtDQUErQztBQUMvQyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBb0M3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFwQ0EsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFxQ3hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFFaEMsSUFBSSxjQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFBLHFDQUE0QixF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Z0JBQWdCO2dCQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQztvQkFDakUsRUFBRSxLQUFLO2FBQ2tCO1NBQzlCLENBQUM7SUFDSixDQUFDOztBQTlQSCw0Q0ErUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgb2sgfSBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElWYWxpZGF0aW9uIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuL3RlcnJhZm9ybS1zdGFja1wiO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkLCB1bmtub3duUHJvdmlkZXJGZWF0dXJlIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0IH0gZnJvbSBcIi4vdmFsaWRhdGlvbnMvdGFyZ2V0LXZlcnNpb25zXCI7XG5pbXBvcnQge1xuICBQcm92aWRlckZlYXR1cmUsXG4gIHByb3ZpZGVyRmVhdHVyZUNvbnN0cmFpbnRzLFxuICBwcm92aWRlckZlYXR1cmVIaW50cyxcbiAgcHJvdmlkZXJGZWF0dXJlTGFiZWxzLFxufSBmcm9tIFwiLi9wcm92aWRlci1mZWF0dXJlLWNvbnN0cmFpbnRzXCI7XG5cbmNvbnN0IFRFUlJBRk9STV9FTEVNRU5UX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1FbGVtZW50XCIpO1xuXG4vKipcbiAqIEhvdyBhIGBQcm92aWRlckZlYXR1cmVgIHJlZ2lzdHJhdGlvbiBvbiBhbiBlbGVtZW50IHdhcyBhcm1lZDpcbiAqXG4gKiAtIGBzdHJ1Y3R1cmFsYDogdGhlIGVsZW1lbnQncyBtZXJlIGV4aXN0ZW5jZSBpcyB0aGUgdXNhZ2UgKGUuZy4gYVxuICogICBgVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VgJ3MgY29uc3RydWN0b3IpLiBUaGVyZSBpcyBubyBub3Rpb24gb2YgdGhlXG4gKiAgIGZlYXR1cmUgZ29pbmcgdW51c2VkIGxhdGVyIGluIHRoZSBzYW1lIHN5bnRoZXNpcyBwYXNzLCBzbyBpdCBpcyBhcm1lZFxuICogICBvbmNlIGFuZCBuZXZlciBkZWFjdGl2YXRlZC5cbiAqIC0gYHJlc29sdmUtZGlzY292ZXJlZGA6IHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gKiAgIGR1cmluZyBzeW50aGVzaXMgKGUuZy4gYSB3cml0ZS1vbmx5IGF0dHJpYnV0ZSB3cmFwcGVkIGJ5XG4gKiAgIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCkuIEJlY2F1c2UgdGhlIHNhbWUgZWxlbWVudCBjYW4gYmUgcmVzb2x2ZWRcbiAqICAgYWNyb3NzIG1hbnkgc3ludGhlc2lzIHBhc3NlcyBvdmVyIGl0cyBsaWZldGltZSAodGVzdHMgcmV1c2luZyBhXG4gKiAgIGNvbnN0cnVjdCB0cmVlLCByZXBlYXRlZCBgYXBwLnN5bnRoKClgIGNhbGxzIGFnYWluc3QgdGhlIHNhbWUgQXBwKSxcbiAqICAgdGhpcyBraW5kIG9mIHJlZ2lzdHJhdGlvbiBtdXN0IGJlIHJlc2V0IGF0IHRoZSBzdGFydCBvZiBlYWNoIHBhc3MgYW5kXG4gKiAgIG9ubHkgcmUtYXJtZWQgaWYgcmVzb2x1dGlvbiBhY3R1YWxseSByZWRpc2NvdmVycyB0aGUgdXNhZ2UgZHVyaW5nIHRoYXRcbiAqICAgcGFzcyAtIHNlZSBgX3Jlc2V0UmVzb2x2ZURpc2NvdmVyZWRQcm92aWRlckZlYXR1cmVVc2FnZWAuXG4gKi9cbnR5cGUgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZSA9IFwic3RydWN0dXJhbFwiIHwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIjtcblxuLyoqXG4gKiBgY29uc3RydWN0c2AgaGFzIG5vIGByZW1vdmVWYWxpZGF0aW9uYCwgc28gYSB2YWxpZGF0aW9uIGluc3RhbGxlZCB2aWFcbiAqIGBub2RlLmFkZFZhbGlkYXRpb25gIHN0YXlzIGluc3RhbGxlZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBub2RlLiBUbyBsZXRcbiAqIGEgcmVzb2x2ZS1kaXNjb3ZlcmVkIHJlZ2lzdHJhdGlvbiBnbyBxdWlldCBhZ2FpbiAoc2VlXG4gKiBgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZWApLCB0aGUgaW5zdGFsbGVkIGBJVmFsaWRhdGlvbmAgaXMgdGhpc1xuICogdGhpbiwgbXV0YWJsZSBnYXRlOiB3aGlsZSBgYWN0aXZlYCBpcyBmYWxzZSBpdCByZXBvcnRzIG5vIGVycm9ycyBhdCBhbGwsXG4gKiByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHdyYXBwZWQgYFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnRgIHdvdWxkIHNheS5cbiAqL1xuY2xhc3MgR2F0ZWRGZWF0dXJlVmFsaWRhdGlvbiBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgcHVibGljIGFjdGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZWxlZ2F0ZTogVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZSA/IHRoaXMuZGVsZWdhdGUudmFsaWRhdGUoKSA6IFtdO1xuICB9XG59XG5cbmludGVyZmFjZSBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb24ge1xuICByZWFkb25seSBtb2RlOiBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlO1xuICByZWFkb25seSB2YWxpZGF0aW9uOiBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVsZW1lbnRNZXRhZGF0YSB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhY2tUcmFjZTogc3RyaW5nW107XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRWxlbWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdPdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBsb2dpY2FsIElEIHByb3ZpZGVkIGJ5IGBvdmVycmlkZUxvZ2ljYWxJZGAuXG4gICAqL1xuICBwcml2YXRlIF9sb2dpY2FsSWRPdmVycmlkZT86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGlzIGVsZW1lbnQsIHVzZWQgZm9yIGZxbi5cbiAgICogVGhpcyBpcyB1bmRlZmluZWQgZm9yXG4gICAqIC0gZWxlbWVudHMgbm90IHJlZmVyYWJsZSwgbGlrZSBUZXJyYWZvcm1PdXRwdXRcbiAgICogLSBlbGVtZW50cyB1c2luZyB0aGVpciBvd24gZnFuIGltcGxlbWVudGF0aW9uLCBsaWtlIFRlcnJhZm9ybVByb3ZpZGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50VHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbGllcyAoc2VlIGBQcm92aWRlckZlYXR1cmVgKSBhbHJlYWR5XG4gICAqIHJlZ2lzdGVyZWQgb24gdGhpcyBlbGVtZW50IHZpYSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAgb3JcbiAgICogYF9yZWdpc3RlclJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLCBzbyByZXBlYXRlZCB1c2FnZVxuICAgKiAoZS5nLiBhIHNldHRlciBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIG9yIHRoZSBzYW1lIHZhbHVlIHJlc29sdmVkIG1vcmVcbiAgICogdGhhbiBvbmNlIGluIGEgc3ludGhlc2lzIHBhc3MpIGRvZXNuJ3Qgc3RhY2sgZHVwbGljYXRlIHN5bnRoLXRpbWVcbiAgICogdmFsaWRhdGlvbnMgLSBlYWNoIGZlYXR1cmUgaW5zdGFsbHMgYXQgbW9zdCBvbmUgbm9kZSB2YWxpZGF0aW9uIGZvclxuICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGVsZW1lbnQsIGdhdGVkIG9uL29mZiB2aWEgdGhlIHJlZ2lzdHJhdGlvbidzXG4gICAqIGBhY3RpdmVgIGZsYWcgaW5zdGVhZCBvZiBiZWluZyByZS1hZGRlZCBvciByZW1vdmVkLlxuICAgKlxuICAgKiBMYXppbHkgYWxsb2NhdGVkOiBtb3N0IGVsZW1lbnRzIGluIGEgbGFyZ2Ugc3RhY2sgbmV2ZXIgcmVnaXN0ZXIgYVxuICAgKiBwcm92aWRlciBmZWF0dXJlIGF0IGFsbCwgc28gdGhpcyBzdGF5cyBgdW5kZWZpbmVkYCB1bnRpbCB0aGUgZmlyc3RcbiAgICogcmVnaXN0cmF0aW9uIGluc3RlYWQgb2YgZXZlcnkgYFRlcnJhZm9ybUVsZW1lbnRgIHBheWluZyBmb3IgYW4gZW1wdHlcbiAgICogYE1hcGAgaXQgd2lsbCBuZXZlciB1c2UuXG4gICAqL1xuICBwcml2YXRlIF9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcz86IE1hcDxcbiAgICBQcm92aWRlckZlYXR1cmUsXG4gICAgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fRUxFTUVOVF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5fZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZTtcblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgICB0aHJvdyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkKGlkKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJzdGFja3RyYWNlXCIsIFwidHJhY2VcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNka3RmU3RhY2soKTogVGVycmFmb3JtU3RhY2sge1xuICAgIHJldHVybiBUZXJyYWZvcm1TdGFjay5vZih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1FbGVtZW50KHg6IGFueSk6IHggaXMgVGVycmFmb3JtRWxlbWVudCB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0VMRU1FTlRfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIHRoYXQgdGhlIHByb2plY3QncyBkZWNsYXJlZFxuICAgKiB0YXJnZXRWZXJzaW9ucyBhZG1pdCB0aGUgZ2l2ZW4gcHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbHkuXG4gICAqIENhbGxlZCBieSBnZW5lcmF0ZWQgcHJvdmlkZXIgYmluZGluZ3Mgd2hlbiBhIHZlcnNpb25lZCBmZWF0dXJlIGlzXG4gICAqIHN0cnVjdHVyYWxseSBpbiB1c2UgLSB0aGUgZWxlbWVudCdzIGV4aXN0ZW5jZSBpbiB0aGUgY29uc3RydWN0IHRyZWVcbiAgICogYWxyZWFkeSBpbXBsaWVzIHRoZSBmZWF0dXJlIGlzIHVzZWQsIGUuZy4gY29uc3RydWN0aW5nIGFcbiAgICogYFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlYCBhdCBhbGwgLSBzbywgdW5saWtlXG4gICAqIGBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCwgdGhpcyByZWdpc3RyYXRpb24gaXNcbiAgICogbmV2ZXIgZGVhY3RpdmF0ZWQgYnkgYF9yZXNldFJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLiBOb3RcbiAgICogaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IHVzZXIgY29kZS4gTGl2ZXMgb24gYFRlcnJhZm9ybUVsZW1lbnRgXG4gICAqIChyYXRoZXIgdGhhbiBgVGVycmFmb3JtUmVzb3VyY2VgKSBzbyBpdCBjb3ZlcnMgYW55IGVsZW1lbnQgc3ViY2xhc3NcbiAgICogdGhhdCBuZWVkcyBpdC5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlKGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUsIFwic3RydWN0dXJhbFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgKG9yIHJlLWFybXMpIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIGZvciBhIHByb3ZpZGVyLXByb3RvY29sXG4gICAqIGZlYXR1cmUgZmFtaWx5IHdob3NlIHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gICAqIGR1cmluZyBzeW50aGVzaXMgLSBlLmcuIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCdzIHdyYXBwZXIsIHdoaWNoIGNhbGxzXG4gICAqIHRoaXMgZnJvbSBpdHMgYHJlc29sdmUoKWAgY2xvc3VyZSBvbmx5IHdoZW4gdGhlIHJlc29sdmVkIHZhbHVlIHR1cm5zXG4gICAqIG91dCB0byBiZSBhIHJlYWwsIHJlbmRlcmFibGUgdmFsdWUuXG4gICAqXG4gICAqIFVubGlrZSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAsIGEgcmVnaXN0cmF0aW9uIG1hZGUgdGhyb3VnaCB0aGlzXG4gICAqIG1ldGhvZCByZXByZXNlbnRzIHVzYWdlIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBDVVJSRU5UIHN5bnRoZXNpcyBwYXNzXG4gICAqIG9ubHk6IGBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCBkZWFjdGl2YXRlcyBpdCBhdFxuICAgKiB0aGUgc3RhcnQgb2YgZWFjaCBwYXNzLCBhbmQgY2FsbGluZyB0aGlzIG1ldGhvZCBhZ2FpbiByZS1hY3RpdmF0ZXMgaXRcbiAgICogd2l0aG91dCBpbnN0YWxsaW5nIGEgc2Vjb25kLCBkdXBsaWNhdGUgbm9kZSB2YWxpZGF0aW9uLiBFdmVyeVxuICAgKiB2YWxpZGF0aW9uLWVuYWJsZWQgZW50cnkgcG9pbnQgKGBBcHAuc3ludGhgLCBgVGVzdGluZy5zeW50aGAvXG4gICAqIGBzeW50aEhjbGAgd2l0aCB2YWxpZGF0aW9ucywgYFN0YWNrU3ludGhlc2l6ZXIuc3ludGhlc2l6ZWApIHJ1bnMgYVxuICAgKiBwcmVwYXJlIHN0ZXAgdGhhdCBwZXJmb3JtcyB0aGlzIHJlc2V0LXRoZW4tcmVkaXNjb3ZlciBjeWNsZSBiZWZvcmVcbiAgICogdmFsaWRhdGlvbnMgcnVuLCBzbyB3aGF0IGEgdmFsaWRhdGlvbiBzZWVzIGFsd2F5cyByZWZsZWN0cyBvbmx5IHRoZVxuICAgKiBwYXNzIHRoYXQgaXMgYWJvdXQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKFxuICAgIGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoZmVhdHVyZSwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIik7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZXMgZXZlcnkgYHJlc29sdmUtZGlzY292ZXJlZGAgcHJvdmlkZXItZmVhdHVyZSByZWdpc3RyYXRpb24gb25cbiAgICogdGhpcyBlbGVtZW50IChzdHJ1Y3R1cmFsIHJlZ2lzdHJhdGlvbnMgYXJlIGxlZnQgdW50b3VjaGVkIC0gc2VlXG4gICAqIGBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlYCkuIENhbGxlZCBvbmNlIHBlciBzeW50aGVzaXMgcGFzcyxcbiAgICogYmVmb3JlIHRoYXQgcGFzcydzIHByZXBhcmluZyByZXNvbHZlIHJlLWRpc2NvdmVycyB3aGF0ZXZlciB1c2FnZVxuICAgKiBhY3R1YWxseSByZW5kZXJzIGR1cmluZyBpdCAtIHNlZSBgVGVycmFmb3JtU3RhY2suX3J1blByZXBhcmluZ1Jlc29sdmVgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKCk6IHZvaWQge1xuICAgIC8vIE5vdGhpbmcgd2FzIGV2ZXIgcmVnaXN0ZXJlZCBvbiB0aGlzIGVsZW1lbnQ6IHNraXAgYWxsb2NhdGluZyB0aGUgTWFwXG4gICAgLy8ganVzdCB0byBpdGVyYXRlIHplcm8gZW50cmllcy5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVnaXN0cmF0aW9uIG9mIHRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzLnZhbHVlcygpKSB7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLm1vZGUgPT09IFwicmVzb2x2ZS1kaXNjb3ZlcmVkXCIpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLnZhbGlkYXRpb24uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoXG4gICAgZmVhdHVyZTogUHJvdmlkZXJGZWF0dXJlLFxuICAgIG1vZGU6IFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbk1vZGUsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXM/LmdldChmZWF0dXJlKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIC8vIEFscmVhZHkgaW5zdGFsbGVkIG9uIHRoaXMgZWxlbWVudDogKHJlLSlhY3RpdmF0ZSBpdCByYXRoZXIgdGhhblxuICAgICAgLy8gc3RhY2tpbmcgYSBzZWNvbmQgbm9kZSB2YWxpZGF0aW9uIGZvciB0aGUgc2FtZSBmZWF0dXJlLlxuICAgICAgZXhpc3RpbmcudmFsaWRhdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMsIGZlYXR1cmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyB1bmtub3duUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHNbZmVhdHVyZV07XG4gICAgY29uc3QgaGludCA9IGAke3Byb3ZpZGVyRmVhdHVyZUhpbnRzW2ZlYXR1cmVdfSBhcmUgYXZhaWxhYmxlIGluICR7T2JqZWN0LmVudHJpZXMoXG4gICAgICBjb25zdHJhaW50cyxcbiAgICApXG4gICAgICAubWFwKChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWApXG4gICAgICAuam9pbihcIiBhbmQgXCIpfS5gO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IG5ldyBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3ZpZGVyRmVhdHVyZUxhYmVsc1tmZWF0dXJlXSxcbiAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgIGhpbnQsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXMuc2V0KGZlYXR1cmUsIHsgbW9kZSwgdmFsaWRhdGlvbiB9KTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZnFuVG9rZW4/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcW4oKSB7XG4gICAgaWYgKCF0aGlzLl9mcW5Ub2tlbikge1xuICAgICAgb2soISF0aGlzLl9lbGVtZW50VHlwZSwgXCJFbGVtZW50IHR5cGUgbm90IHNldFwiKTtcbiAgICAgIHRoaXMuX2ZxblRva2VuID0gVG9rZW4uYXNTdHJpbmcoXG4gICAgICAgIHJlZihgJHt0aGlzLl9lbGVtZW50VHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9YCwgdGhpcy5jZGt0ZlN0YWNrKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mcW5Ub2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2ZyaWVuZGx5VW5pcXVlSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcmllbmRseVVuaXF1ZUlkKCkge1xuICAgIGlmICghdGhpcy5fZnJpZW5kbHlVbmlxdWVJZCkge1xuICAgICAgaWYgKHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlKSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLmNka3RmU3RhY2suZ2V0TG9naWNhbElkKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnJpZW5kbHlVbmlxdWVJZDtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBhdXRvLWdlbmVyYXRlZCBsb2dpY2FsIElEIHdpdGggYSBzcGVjaWZpYyBJRC5cbiAgICogQHBhcmFtIG5ld0xvZ2ljYWxJZCBUaGUgbmV3IGxvZ2ljYWwgSUQgdG8gdXNlIGZvciB0aGlzIHN0YWNrIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVMb2dpY2FsSWQobmV3TG9naWNhbElkOiBzdHJpbmcpIHtcbiAgICBvayhcbiAgICAgICF0aGlzLl9mcW5Ub2tlbixcbiAgICAgIFwiTG9naWNhbCBJRCBtYXkgbm90IGJlIG92ZXJyaWRkZW4gb25jZSAuZnFuIGhhcyBiZWVuIHJlcXVlc3RlZC4gTWFrZSBzdXJlIHRvIG92ZXJyaWRlIHRoZSBpZCBiZWZvcmUgcGFzc2luZyB0aGUgY29uc3RydWN0IHRvIG90aGVyIGNvbnN0cnVjdHMuXCIsXG4gICAgKTtcbiAgICB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZSA9IG5ld0xvZ2ljYWxJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYSBwcmV2aW91c2x5IHBhc3NlZCBsb2dpY2FsIElkIHRvIHVzZSB0aGUgYXV0by1nZW5lcmF0ZWQgbG9naWNhbCBpZCBhZ2FpblxuICAgKi9cbiAgcHVibGljIHJlc2V0T3ZlcnJpZGVMb2dpY2FsSWQoKSB7XG4gICAgb2soXG4gICAgICAhdGhpcy5fZnFuVG9rZW4sXG4gICAgICBcIkxvZ2ljYWwgSUQgbWF5IG5vdCBiZSBvdmVycmlkZGVuIG9uY2UgLmZxbiBoYXMgYmVlbiByZXF1ZXN0ZWQuIFlvdSBjYW4gb25seSByZXNldCB0aGUgb3ZlcnJpZGUgYmVmb3JlIHlvdSBwYXNzIHRoZSBjb25zdHJ1Y3QgdG8gb3RoZXIgY29uc3RydWN0cy5cIixcbiAgICApO1xuICAgIHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFkZE92ZXJyaWRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgbGV0IGN1cnI6IGFueSA9IHRoaXMucmF3T3ZlcnJpZGVzO1xuXG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGtleSA9IHBhcnRzLnNoaWZ0KCkhO1xuXG4gICAgICAvLyBpZiB3ZSBjYW4ndCByZWN1cnNlIGZ1cnRoZXIgb3IgdGhlIHByZXZpb3VzIHZhbHVlIGlzIG5vdCBhblxuICAgICAgLy8gb2JqZWN0IG92ZXJ3cml0ZSBpdCB3aXRoIGFuIG9iamVjdC5cbiAgICAgIGNvbnN0IGlzT2JqZWN0ID1cbiAgICAgICAgY3VycltrZXldICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGN1cnJba2V5XSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShjdXJyW2tleV0pO1xuICAgICAgaWYgKCFpc09iamVjdCkge1xuICAgICAgICBjdXJyW2tleV0gPSB7fTtcbiAgICAgIH1cblxuICAgICAgY3VyciA9IGN1cnJba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0S2V5ID0gcGFydHMuc2hpZnQoKSE7XG4gICAgY3VycltsYXN0S2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb25zdHJ1Y3ROb2RlTWV0YWRhdGEoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHBhdGg6IHRoaXMubm9kZS5wYXRoLFxuICAgICAgICB1bmlxdWVJZDogdGhpcy5mcmllbmRseVVuaXF1ZUlkLFxuICAgICAgICBzdGFja1RyYWNlOiB0aGlzLm5vZGUubWV0YWRhdGEuZmluZCgoZSkgPT4gZS50eXBlID09PSBcInN0YWNrdHJhY2VcIilcbiAgICAgICAgICA/LnRyYWNlLFxuICAgICAgfSBhcyBUZXJyYWZvcm1FbGVtZW50TWV0YWRhdGEsXG4gICAgfTtcbiAgfVxufVxuIl19
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsbUNBQTRCO0FBQzVCLDJDQUFvRDtBQUNwRCxxQ0FBaUM7QUFDakMsdURBQW1EO0FBQ25ELGlEQUFxQztBQUNyQyxxQ0FBZ0Y7QUFDaEYsbUVBQTZFO0FBQzdFLGlGQUt3QztBQUV4QyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQW9CdEU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sc0JBQXNCO0lBR0c7SUFGdEIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUVyQixZQUE2QixRQUFzQztRQUF0QyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtJQUFHLENBQUM7SUFFaEUsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQWFELCtDQUErQztBQUMvQyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTOztJQUMxQixZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ssa0JBQWtCLENBQVU7SUFFcEM7Ozs7O09BS0c7SUFDYyxZQUFZLENBQVU7SUFFdkM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSywyQkFBMkIsQ0FHakM7SUFFRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJ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QUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFjLHFCQUFxQjtRQUNqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2dCQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQztvQkFDakUsRUFBRSxLQUFLO2FBQ2tCO1NBQzlCLENBQUM7SUFDSixDQUFDOztBQTlQSCw0Q0ErUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgb2sgfSBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElWYWxpZGF0aW9uIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuL3RlcnJhZm9ybS1zdGFja1wiO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkLCB1bmtub3duUHJvdmlkZXJGZWF0dXJlIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0IH0gZnJvbSBcIi4vdmFsaWRhdGlvbnMvdGFyZ2V0LXZlcnNpb25zXCI7XG5pbXBvcnQge1xuICBQcm92aWRlckZlYXR1cmUsXG4gIHByb3ZpZGVyRmVhdHVyZUNvbnN0cmFpbnRzLFxuICBwcm92aWRlckZlYXR1cmVIaW50cyxcbiAgcHJvdmlkZXJGZWF0dXJlTGFiZWxzLFxufSBmcm9tIFwiLi9wcm92aWRlci1mZWF0dXJlLWNvbnN0cmFpbnRzXCI7XG5cbmNvbnN0IFRFUlJBRk9STV9FTEVNRU5UX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9UZXJyYWZvcm1FbGVtZW50XCIpO1xuXG4vKipcbiAqIEhvdyBhIGBQcm92aWRlckZlYXR1cmVgIHJlZ2lzdHJhdGlvbiBvbiBhbiBlbGVtZW50IHdhcyBhcm1lZDpcbiAqXG4gKiAtIGBzdHJ1Y3R1cmFsYDogdGhlIGVsZW1lbnQncyBtZXJlIGV4aXN0ZW5jZSBpcyB0aGUgdXNhZ2UgKGUuZy4gYVxuICogICBgVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VgJ3MgY29uc3RydWN0b3IpLiBUaGVyZSBpcyBubyBub3Rpb24gb2YgdGhlXG4gKiAgIGZlYXR1cmUgZ29pbmcgdW51c2VkIGxhdGVyIGluIHRoZSBzYW1lIHN5bnRoZXNpcyBwYXNzLCBzbyBpdCBpcyBhcm1lZFxuICogICBvbmNlIGFuZCBuZXZlciBkZWFjdGl2YXRlZC5cbiAqIC0gYHJlc29sdmUtZGlzY292ZXJlZGA6IHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gKiAgIGR1cmluZyBzeW50aGVzaXMgKGUuZy4gYSB3cml0ZS1vbmx5IGF0dHJpYnV0ZSB3cmFwcGVkIGJ5XG4gKiAgIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCkuIEJlY2F1c2UgdGhlIHNhbWUgZWxlbWVudCBjYW4gYmUgcmVzb2x2ZWRcbiAqICAgYWNyb3NzIG1hbnkgc3ludGhlc2lzIHBhc3NlcyBvdmVyIGl0cyBsaWZldGltZSAodGVzdHMgcmV1c2luZyBhXG4gKiAgIGNvbnN0cnVjdCB0cmVlLCByZXBlYXRlZCBgYXBwLnN5bnRoKClgIGNhbGxzIGFnYWluc3QgdGhlIHNhbWUgQXBwKSxcbiAqICAgdGhpcyBraW5kIG9mIHJlZ2lzdHJhdGlvbiBtdXN0IGJlIHJlc2V0IGF0IHRoZSBzdGFydCBvZiBlYWNoIHBhc3MgYW5kXG4gKiAgIG9ubHkgcmUtYXJtZWQgaWYgcmVzb2x1dGlvbiBhY3R1YWxseSByZWRpc2NvdmVycyB0aGUgdXNhZ2UgZHVyaW5nIHRoYXRcbiAqICAgcGFzcyAtIHNlZSBgX3Jlc2V0UmVzb2x2ZURpc2NvdmVyZWRQcm92aWRlckZlYXR1cmVVc2FnZWAuXG4gKi9cbnR5cGUgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZSA9IFwic3RydWN0dXJhbFwiIHwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIjtcblxuLyoqXG4gKiBgY29uc3RydWN0c2AgaGFzIG5vIGByZW1vdmVWYWxpZGF0aW9uYCwgc28gYSB2YWxpZGF0aW9uIGluc3RhbGxlZCB2aWFcbiAqIGBub2RlLmFkZFZhbGlkYXRpb25gIHN0YXlzIGluc3RhbGxlZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBub2RlLiBUbyBsZXRcbiAqIGEgcmVzb2x2ZS1kaXNjb3ZlcmVkIHJlZ2lzdHJhdGlvbiBnbyBxdWlldCBhZ2FpbiAoc2VlXG4gKiBgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uTW9kZWApLCB0aGUgaW5zdGFsbGVkIGBJVmFsaWRhdGlvbmAgaXMgdGhpc1xuICogdGhpbiwgbXV0YWJsZSBnYXRlOiB3aGlsZSBgYWN0aXZlYCBpcyBmYWxzZSBpdCByZXBvcnRzIG5vIGVycm9ycyBhdCBhbGwsXG4gKiByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHdyYXBwZWQgYFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnRgIHdvdWxkIHNheS5cbiAqL1xuY2xhc3MgR2F0ZWRGZWF0dXJlVmFsaWRhdGlvbiBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgcHVibGljIGFjdGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZWxlZ2F0ZTogVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZSA/IHRoaXMuZGVsZWdhdGUudmFsaWRhdGUoKSA6IFtdO1xuICB9XG59XG5cbmludGVyZmFjZSBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb24ge1xuICByZWFkb25seSBtb2RlOiBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlO1xuICByZWFkb25seSB2YWxpZGF0aW9uOiBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVsZW1lbnRNZXRhZGF0YSB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhY2tUcmFjZTogc3RyaW5nW107XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtRWxlbWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdPdmVycmlkZXM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBsb2dpY2FsIElEIHByb3ZpZGVkIGJ5IGBvdmVycmlkZUxvZ2ljYWxJZGAuXG4gICAqL1xuICBwcml2YXRlIF9sb2dpY2FsSWRPdmVycmlkZT86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGlzIGVsZW1lbnQsIHVzZWQgZm9yIGZxbi5cbiAgICogVGhpcyBpcyB1bmRlZmluZWQgZm9yXG4gICAqIC0gZWxlbWVudHMgbm90IHJlZmVyYWJsZSwgbGlrZSBUZXJyYWZvcm1PdXRwdXRcbiAgICogLSBlbGVtZW50cyB1c2luZyB0aGVpciBvd24gZnFuIGltcGxlbWVudGF0aW9uLCBsaWtlIFRlcnJhZm9ybVByb3ZpZGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50VHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbGllcyAoc2VlIGBQcm92aWRlckZlYXR1cmVgKSBhbHJlYWR5XG4gICAqIHJlZ2lzdGVyZWQgb24gdGhpcyBlbGVtZW50IHZpYSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAgb3JcbiAgICogYF9yZWdpc3RlclJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLCBzbyByZXBlYXRlZCB1c2FnZVxuICAgKiAoZS5nLiBhIHNldHRlciBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIG9yIHRoZSBzYW1lIHZhbHVlIHJlc29sdmVkIG1vcmVcbiAgICogdGhhbiBvbmNlIGluIGEgc3ludGhlc2lzIHBhc3MpIGRvZXNuJ3Qgc3RhY2sgZHVwbGljYXRlIHN5bnRoLXRpbWVcbiAgICogdmFsaWRhdGlvbnMgLSBlYWNoIGZlYXR1cmUgaW5zdGFsbHMgYXQgbW9zdCBvbmUgbm9kZSB2YWxpZGF0aW9uIGZvclxuICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGVsZW1lbnQsIGdhdGVkIG9uL29mZiB2aWEgdGhlIHJlZ2lzdHJhdGlvbidzXG4gICAqIGBhY3RpdmVgIGZsYWcgaW5zdGVhZCBvZiBiZWluZyByZS1hZGRlZCBvciByZW1vdmVkLlxuICAgKlxuICAgKiBMYXppbHkgYWxsb2NhdGVkOiBtb3N0IGVsZW1lbnRzIGluIGEgbGFyZ2Ugc3RhY2sgbmV2ZXIgcmVnaXN0ZXIgYVxuICAgKiBwcm92aWRlciBmZWF0dXJlIGF0IGFsbCwgc28gdGhpcyBzdGF5cyBgdW5kZWZpbmVkYCB1bnRpbCB0aGUgZmlyc3RcbiAgICogcmVnaXN0cmF0aW9uIGluc3RlYWQgb2YgZXZlcnkgYFRlcnJhZm9ybUVsZW1lbnRgIHBheWluZyBmb3IgYW4gZW1wdHlcbiAgICogYE1hcGAgaXQgd2lsbCBuZXZlciB1c2UuXG4gICAqL1xuICBwcml2YXRlIF9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcz86IE1hcDxcbiAgICBQcm92aWRlckZlYXR1cmUsXG4gICAgUHJvdmlkZXJGZWF0dXJlUmVnaXN0cmF0aW9uXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQUZPUk1fRUxFTUVOVF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdGhpcy5fZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZTtcblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoaWQpKSB7XG4gICAgICB0aHJvdyB1bnJlc29sdmVkVG9rZW5JbkNvbnN0cnVjdElkKGlkKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJzdGFja3RyYWNlXCIsIFwidHJhY2VcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNka3RmU3RhY2soKTogVGVycmFmb3JtU3RhY2sge1xuICAgIHJldHVybiBUZXJyYWZvcm1TdGFjay5vZih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNUZXJyYWZvcm1FbGVtZW50KHg6IGFueSk6IHggaXMgVGVycmFmb3JtRWxlbWVudCB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFGT1JNX0VMRU1FTlRfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIHRoYXQgdGhlIHByb2plY3QncyBkZWNsYXJlZFxuICAgKiB0YXJnZXRWZXJzaW9ucyBhZG1pdCB0aGUgZ2l2ZW4gcHJvdmlkZXItcHJvdG9jb2wgZmVhdHVyZSBmYW1pbHkuXG4gICAqIENhbGxlZCBieSBnZW5lcmF0ZWQgcHJvdmlkZXIgYmluZGluZ3Mgd2hlbiBhIHZlcnNpb25lZCBmZWF0dXJlIGlzXG4gICAqIHN0cnVjdHVyYWxseSBpbiB1c2UgLSB0aGUgZWxlbWVudCdzIGV4aXN0ZW5jZSBpbiB0aGUgY29uc3RydWN0IHRyZWVcbiAgICogYWxyZWFkeSBpbXBsaWVzIHRoZSBmZWF0dXJlIGlzIHVzZWQsIGUuZy4gY29uc3RydWN0aW5nIGFcbiAgICogYFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlYCBhdCBhbGwgLSBzbywgdW5saWtlXG4gICAqIGBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCwgdGhpcyByZWdpc3RyYXRpb24gaXNcbiAgICogbmV2ZXIgZGVhY3RpdmF0ZWQgYnkgYF9yZXNldFJlc29sdmVEaXNjb3ZlcmVkUHJvdmlkZXJGZWF0dXJlVXNhZ2VgLiBOb3RcbiAgICogaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IHVzZXIgY29kZS4gTGl2ZXMgb24gYFRlcnJhZm9ybUVsZW1lbnRgXG4gICAqIChyYXRoZXIgdGhhbiBgVGVycmFmb3JtUmVzb3VyY2VgKSBzbyBpdCBjb3ZlcnMgYW55IGVsZW1lbnQgc3ViY2xhc3NcbiAgICogdGhhdCBuZWVkcyBpdC5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclByb3ZpZGVyRmVhdHVyZVVzYWdlKGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUsIFwic3RydWN0dXJhbFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgKG9yIHJlLWFybXMpIGEgc3ludGgtdGltZSB2YWxpZGF0aW9uIGZvciBhIHByb3ZpZGVyLXByb3RvY29sXG4gICAqIGZlYXR1cmUgZmFtaWx5IHdob3NlIHVzYWdlIGlzIG9ubHkga25vd24gb25jZSBhIHZhbHVlIGlzIHJlc29sdmVkXG4gICAqIGR1cmluZyBzeW50aGVzaXMgLSBlLmcuIGBtYXJrV3JpdGVPbmx5QXR0cmlidXRlYCdzIHdyYXBwZXIsIHdoaWNoIGNhbGxzXG4gICAqIHRoaXMgZnJvbSBpdHMgYHJlc29sdmUoKWAgY2xvc3VyZSBvbmx5IHdoZW4gdGhlIHJlc29sdmVkIHZhbHVlIHR1cm5zXG4gICAqIG91dCB0byBiZSBhIHJlYWwsIHJlbmRlcmFibGUgdmFsdWUuXG4gICAqXG4gICAqIFVubGlrZSBgcmVnaXN0ZXJQcm92aWRlckZlYXR1cmVVc2FnZWAsIGEgcmVnaXN0cmF0aW9uIG1hZGUgdGhyb3VnaCB0aGlzXG4gICAqIG1ldGhvZCByZXByZXNlbnRzIHVzYWdlIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBDVVJSRU5UIHN5bnRoZXNpcyBwYXNzXG4gICAqIG9ubHk6IGBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlYCBkZWFjdGl2YXRlcyBpdCBhdFxuICAgKiB0aGUgc3RhcnQgb2YgZWFjaCBwYXNzLCBhbmQgY2FsbGluZyB0aGlzIG1ldGhvZCBhZ2FpbiByZS1hY3RpdmF0ZXMgaXRcbiAgICogd2l0aG91dCBpbnN0YWxsaW5nIGEgc2Vjb25kLCBkdXBsaWNhdGUgbm9kZSB2YWxpZGF0aW9uLiBFdmVyeVxuICAgKiB2YWxpZGF0aW9uLWVuYWJsZWQgZW50cnkgcG9pbnQgKGBBcHAuc3ludGhgLCBgVGVzdGluZy5zeW50aGAvXG4gICAqIGBzeW50aEhjbGAgd2l0aCB2YWxpZGF0aW9ucywgYFN0YWNrU3ludGhlc2l6ZXIuc3ludGhlc2l6ZWApIHJ1bnMgYVxuICAgKiBwcmVwYXJlIHN0ZXAgdGhhdCBwZXJmb3JtcyB0aGlzIHJlc2V0LXRoZW4tcmVkaXNjb3ZlciBjeWNsZSBiZWZvcmVcbiAgICogdmFsaWRhdGlvbnMgcnVuLCBzbyB3aGF0IGEgdmFsaWRhdGlvbiBzZWVzIGFsd2F5cyByZWZsZWN0cyBvbmx5IHRoZVxuICAgKiBwYXNzIHRoYXQgaXMgYWJvdXQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVnaXN0ZXJSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKFxuICAgIGZlYXR1cmU6IFByb3ZpZGVyRmVhdHVyZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoZmVhdHVyZSwgXCJyZXNvbHZlLWRpc2NvdmVyZWRcIik7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZXMgZXZlcnkgYHJlc29sdmUtZGlzY292ZXJlZGAgcHJvdmlkZXItZmVhdHVyZSByZWdpc3RyYXRpb24gb25cbiAgICogdGhpcyBlbGVtZW50IChzdHJ1Y3R1cmFsIHJlZ2lzdHJhdGlvbnMgYXJlIGxlZnQgdW50b3VjaGVkIC0gc2VlXG4gICAqIGBQcm92aWRlckZlYXR1cmVSZWdpc3RyYXRpb25Nb2RlYCkuIENhbGxlZCBvbmNlIHBlciBzeW50aGVzaXMgcGFzcyxcbiAgICogYmVmb3JlIHRoYXQgcGFzcydzIHByZXBhcmluZyByZXNvbHZlIHJlLWRpc2NvdmVycyB3aGF0ZXZlciB1c2FnZVxuICAgKiBhY3R1YWxseSByZW5kZXJzIGR1cmluZyBpdCAtIHNlZSBgVGVycmFmb3JtU3RhY2suX3J1blByZXBhcmluZ1Jlc29sdmVgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVzZXRSZXNvbHZlRGlzY292ZXJlZFByb3ZpZGVyRmVhdHVyZVVzYWdlKCk6IHZvaWQge1xuICAgIC8vIE5vdGhpbmcgd2FzIGV2ZXIgcmVnaXN0ZXJlZCBvbiB0aGlzIGVsZW1lbnQ6IHNraXAgYWxsb2NhdGluZyB0aGUgTWFwXG4gICAgLy8ganVzdCB0byBpdGVyYXRlIHplcm8gZW50cmllcy5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVnaXN0cmF0aW9uIG9mIHRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzLnZhbHVlcygpKSB7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLm1vZGUgPT09IFwicmVzb2x2ZS1kaXNjb3ZlcmVkXCIpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLnZhbGlkYXRpb24uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJQcm92aWRlckZlYXR1cmUoXG4gICAgZmVhdHVyZTogUHJvdmlkZXJGZWF0dXJlLFxuICAgIG1vZGU6IFByb3ZpZGVyRmVhdHVyZVJlZ2lzdHJhdGlvbk1vZGUsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXM/LmdldChmZWF0dXJlKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIC8vIEFscmVhZHkgaW5zdGFsbGVkIG9uIHRoaXMgZWxlbWVudDogKHJlLSlhY3RpdmF0ZSBpdCByYXRoZXIgdGhhblxuICAgICAgLy8gc3RhY2tpbmcgYSBzZWNvbmQgbm9kZSB2YWxpZGF0aW9uIGZvciB0aGUgc2FtZSBmZWF0dXJlLlxuICAgICAgZXhpc3RpbmcudmFsaWRhdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMsIGZlYXR1cmUpXG4gICAgKSB7XG4gICAgICB0aHJvdyB1bmtub3duUHJvdmlkZXJGZWF0dXJlKGZlYXR1cmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHNbZmVhdHVyZV07XG4gICAgY29uc3QgaGludCA9IGAke3Byb3ZpZGVyRmVhdHVyZUhpbnRzW2ZlYXR1cmVdfSBhcmUgYXZhaWxhYmxlIGluICR7T2JqZWN0LmVudHJpZXMoXG4gICAgICBjb25zdHJhaW50cyxcbiAgICApXG4gICAgICAubWFwKChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWApXG4gICAgICAuam9pbihcIiBhbmQgXCIpfS5gO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IG5ldyBHYXRlZEZlYXR1cmVWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3ZpZGVyRmVhdHVyZUxhYmVsc1tmZWF0dXJlXSxcbiAgICAgICAgY29uc3RyYWludHMsXG4gICAgICAgIGhpbnQsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX3JlZ2lzdGVyZWRQcm92aWRlckZlYXR1cmVzKSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkUHJvdmlkZXJGZWF0dXJlcyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgdGhpcy5fcmVnaXN0ZXJlZFByb3ZpZGVyRmVhdHVyZXMuc2V0KGZlYXR1cmUsIHsgbW9kZSwgdmFsaWRhdGlvbiB9KTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZnFuVG9rZW4/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcW4oKSB7XG4gICAgaWYgKCF0aGlzLl9mcW5Ub2tlbikge1xuICAgICAgb2soISF0aGlzLl9lbGVtZW50VHlwZSwgXCJFbGVtZW50IHR5cGUgbm90IHNldFwiKTtcbiAgICAgIHRoaXMuX2ZxblRva2VuID0gVG9rZW4uYXNTdHJpbmcoXG4gICAgICAgIHJlZihgJHt0aGlzLl9lbGVtZW50VHlwZX0uJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9YCwgdGhpcy5jZGt0ZlN0YWNrKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mcW5Ub2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgX2ZyaWVuZGx5VW5pcXVlSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBmcmllbmRseVVuaXF1ZUlkKCkge1xuICAgIGlmICghdGhpcy5fZnJpZW5kbHlVbmlxdWVJZCkge1xuICAgICAgaWYgKHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlKSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZyaWVuZGx5VW5pcXVlSWQgPSB0aGlzLmNka3RmU3RhY2suZ2V0TG9naWNhbElkKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnJpZW5kbHlVbmlxdWVJZDtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBhdXRvLWdlbmVyYXRlZCBsb2dpY2FsIElEIHdpdGggYSBzcGVjaWZpYyBJRC5cbiAgICogQHBhcmFtIG5ld0xvZ2ljYWxJZCBUaGUgbmV3IGxvZ2ljYWwgSUQgdG8gdXNlIGZvciB0aGlzIHN0YWNrIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVMb2dpY2FsSWQobmV3TG9naWNhbElkOiBzdHJpbmcpIHtcbiAgICBvayhcbiAgICAgICF0aGlzLl9mcW5Ub2tlbixcbiAgICAgIFwiTG9naWNhbCBJRCBtYXkgbm90IGJlIG92ZXJyaWRkZW4gb25jZSAuZnFuIGhhcyBiZWVuIHJlcXVlc3RlZC4gTWFrZSBzdXJlIHRvIG92ZXJyaWRlIHRoZSBpZCBiZWZvcmUgcGFzc2luZyB0aGUgY29uc3RydWN0IHRvIG90aGVyIGNvbnN0cnVjdHMuXCIsXG4gICAgKTtcbiAgICB0aGlzLl9sb2dpY2FsSWRPdmVycmlkZSA9IG5ld0xvZ2ljYWxJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYSBwcmV2aW91c2x5IHBhc3NlZCBsb2dpY2FsIElkIHRvIHVzZSB0aGUgYXV0by1nZW5lcmF0ZWQgbG9naWNhbCBpZCBhZ2FpblxuICAgKi9cbiAgcHVibGljIHJlc2V0T3ZlcnJpZGVMb2dpY2FsSWQoKSB7XG4gICAgb2soXG4gICAgICAhdGhpcy5fZnFuVG9rZW4sXG4gICAgICBcIkxvZ2ljYWwgSUQgbWF5IG5vdCBiZSBvdmVycmlkZGVuIG9uY2UgLmZxbiBoYXMgYmVlbiByZXF1ZXN0ZWQuIFlvdSBjYW4gb25seSByZXNldCB0aGUgb3ZlcnJpZGUgYmVmb3JlIHlvdSBwYXNzIHRoZSBjb25zdHJ1Y3QgdG8gb3RoZXIgY29uc3RydWN0cy5cIixcbiAgICApO1xuICAgIHRoaXMuX2xvZ2ljYWxJZE92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFkZE92ZXJyaWRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgbGV0IGN1cnI6IGFueSA9IHRoaXMucmF3T3ZlcnJpZGVzO1xuXG4gICAgd2hpbGUgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGtleSA9IHBhcnRzLnNoaWZ0KCkhO1xuXG4gICAgICAvLyBpZiB3ZSBjYW4ndCByZWN1cnNlIGZ1cnRoZXIgb3IgdGhlIHByZXZpb3VzIHZhbHVlIGlzIG5vdCBhblxuICAgICAgLy8gb2JqZWN0IG92ZXJ3cml0ZSBpdCB3aXRoIGFuIG9iamVjdC5cbiAgICAgIGNvbnN0IGlzT2JqZWN0ID1cbiAgICAgICAgY3VycltrZXldICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGN1cnJba2V5XSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShjdXJyW2tleV0pO1xuICAgICAgaWYgKCFpc09iamVjdCkge1xuICAgICAgICBjdXJyW2tleV0gPSB7fTtcbiAgICAgIH1cblxuICAgICAgY3VyciA9IGN1cnJba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0S2V5ID0gcGFydHMuc2hpZnQoKSE7XG4gICAgY3VycltsYXN0S2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb25zdHJ1Y3ROb2RlTWV0YWRhdGEoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHBhdGg6IHRoaXMubm9kZS5wYXRoLFxuICAgICAgICB1bmlxdWVJZDogdGhpcy5mcmllbmRseVVuaXF1ZUlkLFxuICAgICAgICBzdGFja1RyYWNlOiB0aGlzLm5vZGUubWV0YWRhdGEuZmluZCgoZSkgPT4gZS50eXBlID09PSBcInN0YWNrdHJhY2VcIilcbiAgICAgICAgICA/LnRyYWNlLFxuICAgICAgfSBhcyBUZXJyYWZvcm1FbGVtZW50TWV0YWRhdGEsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.TerraformEphemeralResource = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -15,6 +14,15 @@ const assert = require("assert");
15
14
  const TERRAFORM_EPHEMERAL_RESOURCE_SYMBOL = Symbol.for("cdktf/TerraformEphemeralResource");
16
15
  // eslint-disable-next-line jsdoc/require-jsdoc
17
16
  class TerraformEphemeralResource extends terraform_element_1.TerraformElement {
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformEphemeralResource", version: "0.25.0-pre.21" };
18
+ terraformResourceType;
19
+ terraformGeneratorMetadata;
20
+ // TerraformEphemeralMetaArguments
21
+ dependsOn;
22
+ count;
23
+ provider;
24
+ lifecycle;
25
+ forEach;
18
26
  constructor(scope, id, config) {
19
27
  super(scope, id, `ephemeral.${config.terraformResourceType}`);
20
28
  Object.defineProperty(this, TERRAFORM_EPHEMERAL_RESOURCE_SYMBOL, {
@@ -133,6 +141,4 @@ class TerraformEphemeralResource extends terraform_element_1.TerraformElement {
133
141
  }
134
142
  }
135
143
  exports.TerraformEphemeralResource = TerraformEphemeralResource;
136
- _a = JSII_RTTI_SYMBOL_1;
137
- TerraformEphemeralResource[_a] = { fqn: "cdktn.TerraformEphemeralResource", version: "0.25.0-pre.2" };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVwaGVtZXJhbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZXBoZW1lcmFsLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EscUNBQWlDO0FBQ2pDLDJEQUF1RDtBQUV2RCw2REFHOEI7QUFFOUIsaUNBS2dCO0FBRWhCLGlEQUFpRDtBQUlqRCx1REFBbUQ7QUFDbkQsaUZBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSxtQ0FBbUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNwRCxrQ0FBa0MsQ0FDbkMsQ0FBQztBQTZDRiwrQ0FBK0M7QUFDL0MsTUFBYSwwQkFDWCxTQUFRLG9DQUFnQjtJQWlCeEIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBd0M7UUFFeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsYUFBYSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxFQUFFO1lBQy9ELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDbkQsSUFBQSx5QkFBVSxFQUFDLFVBQVUsQ0FBQyxDQUN2QixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUU5Qix3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLG1FQUFtRTtRQUNuRSwyREFBMkQ7UUFDM0QsMEVBQTBFO1FBQzFFLHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsOENBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxNQUFNLENBQUMsNEJBQTRCLENBQ3hDLENBQU07UUFFTixPQUFPLENBQ0wsQ0FBQyxLQUFLLElBQUk7WUFDVixPQUFPLENBQUMsS0FBSyxRQUFRO1lBQ3JCLG1DQUFtQyxJQUFJLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDbEQsT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLGtCQUEwQjtRQUNsRCxPQUFPLGNBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsa0JBQTBCO1FBQ2hELE9BQU8sY0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxrQkFBMEI7UUFDbkQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sc0JBQXNCLENBQUMsa0JBQTBCO1FBQ3RELE9BQU8sY0FBSyxDQUFDLFlBQVksQ0FDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDO0lBRU0scUJBQXFCLENBQUMsa0JBQTBCO1FBQ3JELE9BQU8sY0FBSyxDQUFDLFdBQVcsQ0FDdEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDO0lBRU0scUJBQXFCLENBQUMsa0JBQTBCO1FBQ3JELE9BQU8sY0FBSyxDQUFDLFdBQVcsQ0FDdEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDO0lBRU0sc0JBQXNCLENBQUMsa0JBQTBCO1FBQ3RELE9BQU8sY0FBSyxDQUFDLFlBQVksQ0FDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDO0lBRU0sa0JBQWtCLENBQUMsa0JBQTBCO1FBQ2xELE9BQU8sY0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixNQUFNLENBQ0osQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQ2xELDJJQUEySSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUM1SixDQUFDO1FBRUYsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsZ0NBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUc7WUFDNUIsU0FBUyxFQUFFLElBQUEseUNBQW9CLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMvQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELHNDQUFzQztJQUM1QixvQkFBb0I7UUFDNUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ1MsdUJBQXVCO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFBLGdCQUFTLEVBQzFCLElBQUEsK0JBQXdCLEVBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFDckQsSUFBQSxzQkFBZSxFQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUM1QyxJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBRUYsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2pCLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQjtTQUM5QixDQUFDO1FBRUYsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO29CQUM1QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFVBQVU7aUJBQ3BDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUMxQixJQUFBLHFDQUE4QixFQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEVBQzlELElBQUEsc0JBQWUsRUFBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNqQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7U0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxVQUFVO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO2dCQUM5QyxDQUFDLENBQUM7b0JBQ0UsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQzdEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxrQkFBMEI7UUFDekQsT0FBTyxJQUFBLGtCQUFHLEVBQ1IsYUFBYSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hCLElBQUksa0JBQWtCLEVBQUUsRUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBOUxILGdFQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGEsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFByZWNvbmRpdGlvbiwgUG9zdGNvbmRpdGlvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb25kaXRpb25zXCI7XG5pbXBvcnQge1xuICBrZXlzVG9TbmFrZUNhc2UsXG4gIGRlZXBNZXJnZSxcbiAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wsXG59IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLWRlcGVuZGFibGVcIjtcbmltcG9ydCB7IHJlZiwgZGVwZW5kYWJsZSB9IGZyb20gXCIuL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi90b2tlbnMvcmVzb2x2YWJsZVwiO1xuaW1wb3J0IHsgSUludGVycG9sYXRpbmdQYXJlbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQ291bnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tY291bnRcIjtcbmltcG9ydCB7IFByb3ZpZGVyRmVhdHVyZSB9IGZyb20gXCIuL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcblxuY29uc3QgVEVSUkFGT1JNX0VQSEVNRVJBTF9SRVNPVVJDRV9TWU1CT0wgPSBTeW1ib2wuZm9yKFxuICBcImNka3RmL1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXCIsXG4pO1xuXG4vKipcbiAqIExpZmVjeWNsZSBvcHRpb25zIHN1cHBvcnRlZCBieSBUZXJyYWZvcm0gZXBoZW1lcmFsIGJsb2Nrcy4gVW5saWtlIG1hbmFnZWRcbiAqIHJlc291cmNlcywgZXBoZW1lcmFsIHJlc291cmNlcyBoYXZlIG5vIHN0YXRlLCBzbyBUZXJyYWZvcm0gb25seSBzdXBwb3J0c1xuICogYHByZWNvbmRpdGlvbmAvYHBvc3Rjb25kaXRpb25gIGhlcmUgLSBgY3JlYXRlQmVmb3JlRGVzdHJveWAsXG4gKiBgcHJldmVudERlc3Ryb3lgLCBgaWdub3JlQ2hhbmdlc2AsIGFuZCBgcmVwbGFjZVRyaWdnZXJlZEJ5YCBhcmUgYWxsXG4gKiBzdGF0ZS1vcmllbnRlZCBjb25jZXB0cyB0aGF0IGRvIG5vdCBhcHBseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZSB7XG4gIHJlYWRvbmx5IHByZWNvbmRpdGlvbj86IFByZWNvbmRpdGlvbltdO1xuICByZWFkb25seSBwb3N0Y29uZGl0aW9uPzogUG9zdGNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZnJpZW5kbHlVbmlxdWVJZDogc3RyaW5nO1xuXG4gIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcblxuICBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKTogSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogTWV0YS1hcmd1bWVudHMgYWNjZXB0ZWQgYnkgZXBoZW1lcmFsIHJlc291cmNlcy4gVGVycmFmb3JtIGVwaGVtZXJhbCBibG9ja3NcbiAqIGRvIG5vdCBzdXBwb3J0IHByb3Zpc2lvbmVycyBvciBjb25uZWN0aW9uIGJsb2NrcywgdW5saWtlIG1hbmFnZWQgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJVGVycmFmb3JtRGVwZW5kYWJsZVtdO1xuICByZWFkb25seSBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICByZWFkb25seSBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcmVhZG9ubHkgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE/OiBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvck1ldGFkYXRhO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzXG4gICAgSVRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlLFxuICAgIElUZXJyYWZvcm1EZXBlbmRhYmxlLFxuICAgIElJbnRlcnBvbGF0aW5nUGFyZW50XG57XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhPzogVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YTtcblxuICAvLyBUZXJyYWZvcm1FcGhlbWVyYWxNZXRhQXJndW1lbnRzXG5cbiAgcHVibGljIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBwdWJsaWMgY291bnQ/OiBudW1iZXIgfCBUZXJyYWZvcm1Db3VudDtcbiAgcHVibGljIHByb3ZpZGVyPzogVGVycmFmb3JtUHJvdmlkZXI7XG4gIHB1YmxpYyBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcHVibGljIGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgYGVwaGVtZXJhbC4ke2NvbmZpZy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9YCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBRk9STV9FUEhFTUVSQUxfUkVTT1VSQ0VfU1lNQk9MLCB7XG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcblxuICAgIC8vIEV2ZXJ5IGVwaGVtZXJhbCByZXNvdXJjZSB1bmNvbmRpdGlvbmFsbHkgdXNlcyB0aGUgZXBoZW1lcmFsLXJlc291cmNlc1xuICAgIC8vIHByb3ZpZGVyLXByb3RvY29sIGZlYXR1cmUgZmFtaWx5ICh1bmxpa2UgZS5nLiB3cml0ZS1vbmx5IGF0dHJpYnV0ZXMsXG4gICAgLy8gd2hpY2ggYXJlIG9wdC1pbiBwZXIgYXR0cmlidXRlKSwgc28gdGhpcyBpcyByZWdpc3RlcmVkIG9uY2UgaGVyZVxuICAgIC8vIHJhdGhlciB0aGFuIGJ5IGdlbmVyYXRlZCBiaW5kaW5ncy4gR29lcyB0aHJvdWdoIHRoZSBzYW1lXG4gICAgLy8gYHJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2VgIGhvb2sgKGluaGVyaXRlZCBmcm9tIGBUZXJyYWZvcm1FbGVtZW50YClcbiAgICAvLyB0aGF0IGdlbmVyYXRlZCBiaW5kaW5ncyB1c2UsIGZvciBpZGVudGljYWwgbWVzc2FnZS9kZWR1cCBiZWhhdmlvci5cbiAgICB0aGlzLnJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2UoUHJvdmlkZXJGZWF0dXJlLkVQSEVNRVJBTF9SRVNPVVJDRVMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlKFxuICAgIHg6IGFueSxcbiAgKTogeCBpcyBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmXG4gICAgICBURVJSQUZPUk1fRVBIRU1FUkFMX1JFU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBlcGhlbWVyYWwgcmVzb3VyY2UgYXQgcGF0aDogJHt0aGlzLm5vZGUucGF0aH1gLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVwZW5kc09uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBUZXJyYWZvcm1Db3VudC5pc1RlcnJhZm9ybUNvdW50KHRoaXMuY291bnQpXG4gICAgICAgID8gdGhpcy5jb3VudC50b1RlcnJhZm9ybSgpXG4gICAgICAgIDogdGhpcy5jb3VudCxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyPy5mcW4sXG4gICAgICBsaWZlY3ljbGU6IGxpZmVjeWNsZVRvVGVycmFmb3JtKHRoaXMubGlmZWN5Y2xlKSxcbiAgICAgIGZvckVhY2g6IHRoaXMuZm9yRWFjaD8uX2dldEZvckVhY2hFeHByZXNzaW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIGpzaWkgY2FuJ3QgaGFuZGxlIGFic3RyYWN0IGNsYXNzZXM/XG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyBlcGhlbWVyYWwgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXModGhpcy5zeW50aGVzaXplQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHtcbiAgICAgIC4uLihhdHRyaWJ1dGVzW1wiLy9cIl0gPz8ge30pLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGEsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBlcGhlbWVyYWw6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCh0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0ge1xuICAgICAgLi4uKGF0dHJpYnV0ZXNbXCIvL1wiXSA/PyB7fSksXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE5vZGVNZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVwaGVtZXJhbDoge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBvdmVycmlkZXM6IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcyksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVmKFxuICAgICAgYGVwaGVtZXJhbC4ke3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3RoaXMuZnJpZW5kbHlVbmlxdWVJZH0ke1xuICAgICAgICB0aGlzLmZvckVhY2ggPyBcIi4qXCIgOiBcIlwiXG4gICAgICB9LiR7dGVycmFmb3JtQXR0cmlidXRlfWAsXG4gICAgICB0aGlzLmNka3RmU3RhY2ssXG4gICAgKTtcbiAgfVxufVxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWVwaGVtZXJhbC1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZXBoZW1lcmFsLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxxQ0FBaUM7QUFDakMsMkRBQXVEO0FBRXZELDZEQUc4QjtBQUU5QixpQ0FLZ0I7QUFFaEIsaURBQWlEO0FBSWpELHVEQUFtRDtBQUNuRCxpRkFBaUU7QUFDakUsaUVBQWlFO0FBQ2pFLGlDQUFrQztBQUVsQyxNQUFNLG1DQUFtQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ3BELGtDQUFrQyxDQUNuQyxDQUFDO0FBNkNGLCtDQUErQztBQUMvQyxNQUFhLDBCQUNYLFNBQVEsb0NBQWdCOztJQU1SLHFCQUFxQixDQUFTO0lBQzlCLDBCQUEwQixDQUFzQztJQUVoRixrQ0FBa0M7SUFFM0IsU0FBUyxDQUFZO0lBQ3JCLEtBQUssQ0FBMkI7SUFDaEMsUUFBUSxDQUFxQjtJQUM3QixTQUFTLENBQXVDO0lBQ2hELE9BQU8sQ0FBc0I7SUFFcEMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBd0M7UUFFeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsYUFBYSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxFQUFFO1lBQy9ELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFT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Q0FBQztRQUVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNqQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixHQUFHLElBQUksQ0FBQyxxQkFBcUI7U0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxVQUFVO2lCQUNwQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO2dCQUM5QyxDQUFDLENBQUM7b0JBQ0UsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQzdEO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxrQkFBMEI7UUFDekQsT0FBTyxJQUFBLGtCQUFHLEVBQ1IsYUFBYSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hCLElBQUksa0JBQWtCLEVBQUUsRUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBOUxILGdFQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yTWV0YWRhdGEsXG4gIGxpZmVjeWNsZVRvVGVycmFmb3JtLFxufSBmcm9tIFwiLi90ZXJyYWZvcm0tcmVzb3VyY2VcIjtcbmltcG9ydCB7IFByZWNvbmRpdGlvbiwgUG9zdGNvbmRpdGlvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1jb25kaXRpb25zXCI7XG5pbXBvcnQge1xuICBrZXlzVG9TbmFrZUNhc2UsXG4gIGRlZXBNZXJnZSxcbiAgcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzLFxuICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wsXG59IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLWRlcGVuZGFibGVcIjtcbmltcG9ydCB7IHJlZiwgZGVwZW5kYWJsZSB9IGZyb20gXCIuL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi90b2tlbnMvcmVzb2x2YWJsZVwiO1xuaW1wb3J0IHsgSUludGVycG9sYXRpbmdQYXJlbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQ291bnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tY291bnRcIjtcbmltcG9ydCB7IFByb3ZpZGVyRmVhdHVyZSB9IGZyb20gXCIuL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHNcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcblxuY29uc3QgVEVSUkFGT1JNX0VQSEVNRVJBTF9SRVNPVVJDRV9TWU1CT0wgPSBTeW1ib2wuZm9yKFxuICBcImNka3RmL1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXCIsXG4pO1xuXG4vKipcbiAqIExpZmVjeWNsZSBvcHRpb25zIHN1cHBvcnRlZCBieSBUZXJyYWZvcm0gZXBoZW1lcmFsIGJsb2Nrcy4gVW5saWtlIG1hbmFnZWRcbiAqIHJlc291cmNlcywgZXBoZW1lcmFsIHJlc291cmNlcyBoYXZlIG5vIHN0YXRlLCBzbyBUZXJyYWZvcm0gb25seSBzdXBwb3J0c1xuICogYHByZWNvbmRpdGlvbmAvYHBvc3Rjb25kaXRpb25gIGhlcmUgLSBgY3JlYXRlQmVmb3JlRGVzdHJveWAsXG4gKiBgcHJldmVudERlc3Ryb3lgLCBgaWdub3JlQ2hhbmdlc2AsIGFuZCBgcmVwbGFjZVRyaWdnZXJlZEJ5YCBhcmUgYWxsXG4gKiBzdGF0ZS1vcmllbnRlZCBjb25jZXB0cyB0aGF0IGRvIG5vdCBhcHBseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZSB7XG4gIHJlYWRvbmx5IHByZWNvbmRpdGlvbj86IFByZWNvbmRpdGlvbltdO1xuICByZWFkb25seSBwb3N0Y29uZGl0aW9uPzogUG9zdGNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZnJpZW5kbHlVbmlxdWVJZDogc3RyaW5nO1xuXG4gIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcblxuICBpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKTogSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogTWV0YS1hcmd1bWVudHMgYWNjZXB0ZWQgYnkgZXBoZW1lcmFsIHJlc291cmNlcy4gVGVycmFmb3JtIGVwaGVtZXJhbCBibG9ja3NcbiAqIGRvIG5vdCBzdXBwb3J0IHByb3Zpc2lvbmVycyBvciBjb25uZWN0aW9uIGJsb2NrcywgdW5saWtlIG1hbmFnZWQgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJVGVycmFmb3JtRGVwZW5kYWJsZVtdO1xuICByZWFkb25seSBjb3VudD86IG51bWJlciB8IFRlcnJhZm9ybUNvdW50O1xuICByZWFkb25seSBwcm92aWRlcj86IFRlcnJhZm9ybVByb3ZpZGVyO1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcmVhZG9ubHkgZm9yRWFjaD86IElUZXJyYWZvcm1JdGVyYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybUVwaGVtZXJhbE1ldGFBcmd1bWVudHMge1xuICByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE/OiBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvck1ldGFkYXRhO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzXG4gICAgSVRlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlLFxuICAgIElUZXJyYWZvcm1EZXBlbmRhYmxlLFxuICAgIElJbnRlcnBvbGF0aW5nUGFyZW50XG57XG4gIHB1YmxpYyByZWFkb25seSB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhPzogVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3JNZXRhZGF0YTtcblxuICAvLyBUZXJyYWZvcm1FcGhlbWVyYWxNZXRhQXJndW1lbnRzXG5cbiAgcHVibGljIGRlcGVuZHNPbj86IHN0cmluZ1tdO1xuICBwdWJsaWMgY291bnQ/OiBudW1iZXIgfCBUZXJyYWZvcm1Db3VudDtcbiAgcHVibGljIHByb3ZpZGVyPzogVGVycmFmb3JtUHJvdmlkZXI7XG4gIHB1YmxpYyBsaWZlY3ljbGU/OiBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZUxpZmVjeWNsZTtcbiAgcHVibGljIGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogVGVycmFmb3JtRXBoZW1lcmFsUmVzb3VyY2VDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgYGVwaGVtZXJhbC4ke2NvbmZpZy50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9YCk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBRk9STV9FUEhFTUVSQUxfUkVTT1VSQ0VfU1lNQk9MLCB7XG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlID0gY29uZmlnLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICB0aGlzLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhID0gY29uZmlnLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZy5kZXBlbmRzT24pKSB7XG4gICAgICB0aGlzLmRlcGVuZHNPbiA9IGNvbmZpZy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudCA9IGNvbmZpZy5jb3VudDtcbiAgICB0aGlzLnByb3ZpZGVyID0gY29uZmlnLnByb3ZpZGVyO1xuICAgIHRoaXMubGlmZWN5Y2xlID0gY29uZmlnLmxpZmVjeWNsZTtcbiAgICB0aGlzLmZvckVhY2ggPSBjb25maWcuZm9yRWFjaDtcblxuICAgIC8vIEV2ZXJ5IGVwaGVtZXJhbCByZXNvdXJjZSB1bmNvbmRpdGlvbmFsbHkgdXNlcyB0aGUgZXBoZW1lcmFsLXJlc291cmNlc1xuICAgIC8vIHByb3ZpZGVyLXByb3RvY29sIGZlYXR1cmUgZmFtaWx5ICh1bmxpa2UgZS5nLiB3cml0ZS1vbmx5IGF0dHJpYnV0ZXMsXG4gICAgLy8gd2hpY2ggYXJlIG9wdC1pbiBwZXIgYXR0cmlidXRlKSwgc28gdGhpcyBpcyByZWdpc3RlcmVkIG9uY2UgaGVyZVxuICAgIC8vIHJhdGhlciB0aGFuIGJ5IGdlbmVyYXRlZCBiaW5kaW5ncy4gR29lcyB0aHJvdWdoIHRoZSBzYW1lXG4gICAgLy8gYHJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2VgIGhvb2sgKGluaGVyaXRlZCBmcm9tIGBUZXJyYWZvcm1FbGVtZW50YClcbiAgICAvLyB0aGF0IGdlbmVyYXRlZCBiaW5kaW5ncyB1c2UsIGZvciBpZGVudGljYWwgbWVzc2FnZS9kZWR1cCBiZWhhdmlvci5cbiAgICB0aGlzLnJlZ2lzdGVyUHJvdmlkZXJGZWF0dXJlVXNhZ2UoUHJvdmlkZXJGZWF0dXJlLkVQSEVNRVJBTF9SRVNPVVJDRVMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1RlcnJhZm9ybUVwaGVtZXJhbFJlc291cmNlKFxuICAgIHg6IGFueSxcbiAgKTogeCBpcyBUZXJyYWZvcm1FcGhlbWVyYWxSZXNvdXJjZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmXG4gICAgICBURVJSQUZPUk1fRVBIRU1FUkFMX1JFU09VUkNFX1NZTUJPTCBpbiB4XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdHJpbmdBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSkpO1xuICB9XG5cbiAgcHVibGljIGdldEJvb2xlYW5BdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTGlzdEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QoXG4gICAgICB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZ01hcEF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TnVtYmVyTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKFxuICAgICAgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuTWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChcbiAgICAgIHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QW55TWFwQXR0cmlidXRlKHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSh0ZXJyYWZvcm1BdHRyaWJ1dGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTWV0YUFyZ3VtZW50cygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgYXNzZXJ0KFxuICAgICAgIXRoaXMuZm9yRWFjaCB8fCB0eXBlb2YgdGhpcy5jb3VudCA9PT0gXCJ1bmRlZmluZWRcIixcbiAgICAgIGBmb3JFYWNoIGFuZCBjb3VudCBhcmUgYm90aCBzZXQsIGJ1dCB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFlvdSBjYW4gb25seSB1c2UgZWl0aGVyIG9mIHRoZW0uIENoZWNrIHRoZSBlcGhlbWVyYWwgcmVzb3VyY2UgYXQgcGF0aDogJHt0aGlzLm5vZGUucGF0aH1gLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVwZW5kc09uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgIGNvdW50OiBUZXJyYWZvcm1Db3VudC5pc1RlcnJhZm9ybUNvdW50KHRoaXMuY291bnQpXG4gICAgICAgID8gdGhpcy5jb3VudC50b1RlcnJhZm9ybSgpXG4gICAgICAgIDogdGhpcy5jb3VudCxcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyPy5mcW4sXG4gICAgICBsaWZlY3ljbGU6IGxpZmVjeWNsZVRvVGVycmFmb3JtKHRoaXMubGlmZWN5Y2xlKSxcbiAgICAgIGZvckVhY2g6IHRoaXMuZm9yRWFjaD8uX2dldEZvckVhY2hFeHByZXNzaW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIGpzaWkgY2FuJ3QgaGFuZGxlIGFic3RyYWN0IGNsYXNzZXM/XG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyBlcGhlbWVyYWwgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkZWVwTWVyZ2UoXG4gICAgICBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXModGhpcy5zeW50aGVzaXplQXR0cmlidXRlcygpKSxcbiAgICAgIGtleXNUb1NuYWtlQ2FzZSh0aGlzLnRlcnJhZm9ybU1ldGFBcmd1bWVudHMpLFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHtcbiAgICAgIC4uLihhdHRyaWJ1dGVzW1wiLy9cIl0gPz8ge30pLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGEsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBlcGhlbWVyYWw6IHtcbiAgICAgICAgW3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlXToge1xuICAgICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHByb2Nlc3NEeW5hbWljQXR0cmlidXRlc0ZvckhjbCh0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCkpLFxuICAgICAga2V5c1RvU25ha2VDYXNlKHRoaXMudGVycmFmb3JtTWV0YUFyZ3VtZW50cyksXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0ge1xuICAgICAgLi4uKGF0dHJpYnV0ZXNbXCIvL1wiXSA/PyB7fSksXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE5vZGVNZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVwaGVtZXJhbDoge1xuICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiB7XG4gICAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBvdmVycmlkZXM6IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGhcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBbdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcyksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUodGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVmKFxuICAgICAgYGVwaGVtZXJhbC4ke3RoaXMudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3RoaXMuZnJpZW5kbHlVbmlxdWVJZH0ke1xuICAgICAgICB0aGlzLmZvckVhY2ggPyBcIi4qXCIgOiBcIlwiXG4gICAgICB9LiR7dGVycmFmb3JtQXR0cmlidXRlfWAsXG4gICAgICB0aGlzLmNka3RmU3RhY2ssXG4gICAgKTtcbiAgfVxufVxuIl19