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.
- package/.jsii +927 -107
- package/lib/annotations.js +4 -4
- package/lib/app.js +54 -5
- package/lib/aspect.js +3 -4
- package/lib/asset-hash.d.ts +75 -0
- package/lib/asset-hash.js +129 -0
- package/lib/assets.d.ts +168 -0
- package/lib/assets.js +128 -0
- package/lib/backends/azurerm-backend.js +4 -6
- package/lib/backends/cloud-backend.js +10 -10
- package/lib/backends/consul-backend.js +4 -6
- package/lib/backends/cos-backend.js +4 -6
- package/lib/backends/gcs-backend.js +4 -6
- package/lib/backends/http-backend.js +4 -6
- package/lib/backends/local-backend.js +38 -7
- package/lib/backends/oss-backend.js +4 -6
- package/lib/backends/pg-backend.js +4 -6
- package/lib/backends/remote-backend.js +8 -10
- package/lib/backends/s3-backend.js +4 -6
- package/lib/backends/swift-backend.js +4 -6
- package/lib/complex-computed-list.js +114 -65
- package/lib/errors.d.ts +6 -0
- package/lib/errors.js +24 -3
- package/lib/functions/provider-function.js +2 -4
- package/lib/functions/terraform-functions.generated.js +2 -4
- package/lib/ignore-strategy.d.ts +82 -0
- package/lib/ignore-strategy.js +29 -0
- package/lib/importable-resource.js +3 -4
- package/lib/index.d.ts +3 -0
- package/lib/index.js +27 -2
- package/lib/manifest.js +56 -14
- package/lib/private/fs.d.ts +74 -2
- package/lib/private/fs.js +129 -17
- package/lib/private/unique.js +35 -2
- package/lib/resource.js +3 -4
- package/lib/synthesize/synthesizer.js +43 -4
- package/lib/terraform-asset.d.ts +33 -2
- package/lib/terraform-asset.js +118 -34
- package/lib/terraform-backend.js +3 -4
- package/lib/terraform-count.js +3 -4
- package/lib/terraform-data-resource.js +12 -10
- package/lib/terraform-data-source.js +10 -4
- package/lib/terraform-dynamic-block.js +5 -2
- package/lib/terraform-dynamic-expression.js +4 -1
- package/lib/terraform-element.js +34 -6
- package/lib/terraform-ephemeral-resource.js +10 -4
- package/lib/terraform-functions.js +2 -4
- package/lib/terraform-hcl-module.js +3 -4
- package/lib/terraform-iterator.js +11 -12
- package/lib/terraform-local.js +3 -4
- package/lib/terraform-module-asset.js +45 -5
- package/lib/terraform-module.js +8 -4
- package/lib/terraform-operators.js +2 -4
- package/lib/terraform-output.js +7 -4
- package/lib/terraform-provider.js +5 -4
- package/lib/terraform-provisioner.js +2 -4
- package/lib/terraform-remote-state.js +5 -5
- package/lib/terraform-resource-targets.js +3 -7
- package/lib/terraform-resource.js +16 -5
- package/lib/terraform-stack.js +38 -38
- package/lib/terraform-variable.js +25 -22
- package/lib/testing/index.js +42 -8
- package/lib/testing/matchers.js +39 -6
- package/lib/tfExpression.js +25 -8
- package/lib/tokens/lazy.js +11 -7
- package/lib/tokens/private/dependency.js +2 -2
- package/lib/tokens/private/encoding.js +6 -1
- package/lib/tokens/private/intrinsic.js +6 -1
- package/lib/tokens/private/resolve.js +2 -5
- package/lib/tokens/private/token-map.js +4 -6
- package/lib/tokens/private/uniqueid.js +35 -2
- package/lib/tokens/resolvable.js +4 -6
- package/lib/tokens/string-fragments.js +6 -10
- package/lib/tokens/token.js +15 -18
- package/lib/upgrade-id-aspect.js +37 -6
- package/lib/validations/target-versions.js +39 -2
- package/lib/validations/validate-binary-version.js +39 -2
- package/lib/validations/validate-function-version-support.js +2 -1
- package/lib/validations/validate-provider-function-target-support.js +2 -1
- package/lib/validations/validate-provider-presence.js +10 -9
- package/lib/validations/validate-terraform-version.js +3 -1
- package/package.json +5 -5
- package/scripts/pack.mjs +57 -15
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.json +0 -40
- 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.Fn = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -10,6 +9,7 @@ const helpers_1 = require("./functions/helpers");
|
|
|
10
9
|
const terraform_functions_generated_1 = require("./functions/terraform-functions.generated");
|
|
11
10
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
12
11
|
class Fn extends terraform_functions_generated_1.FnGenerated {
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Fn", version: "0.25.0-pre.21" };
|
|
13
13
|
/**
|
|
14
14
|
* {@link /terraform/docs/language/functions/bcrypt.html bcrypt} computes a hash of the given string using the Blowfish cipher, returning a string in [the _Modular Crypt Format_](https://passlib.readthedocs.io/en/stable/modular_crypt_format.html) usually expected in the shadow password file on many Unix systems.
|
|
15
15
|
* @param {string} str
|
|
@@ -82,6 +82,4 @@ class Fn extends terraform_functions_generated_1.FnGenerated {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
exports.Fn = Fn;
|
|
85
|
-
|
|
86
|
-
Fn[_a] = { fqn: "cdktn.Fn", version: "0.25.0-pre.2" };
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx3QkFBOEU7QUFDOUUsaURBQTRDO0FBQzVDLDZGQUF3RTtBQUV4RSwrQ0FBK0M7QUFDL0MsTUFBYSxFQUFHLFNBQVEsMkNBQVc7SUFDakM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDdEMsMEZBQTBGO1FBQzFGLCtFQUErRTtRQUMvRSwrSEFBK0g7UUFDL0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2hCLFNBQXFCLEVBQ3JCLFNBQXFCLEVBQ3JCLFVBQXNCO1FBRXRCLE9BQU8sSUFBQSxjQUFXLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWEsRUFBRSxHQUFXLEVBQUUsWUFBa0I7UUFDMUQsc0ZBQXNGO1FBQ3RGLElBQUksWUFBWTtZQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrRUFBK0U7SUFDaEksQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFhLEVBQUUsSUFBVztRQUM1QyxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQzNDLGdHQUFnRztRQUNoRyxtRUFBbUU7UUFDbkUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hELGtFQUFrRTtRQUNsRSwwRUFBMEU7UUFDMUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sUUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFBLFlBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBL0VILGdCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBjb25kaXRpb25hbCwgRXhwcmVzc2lvbiwgcHJvcGVydHlBY2Nlc3MsIHJhd1N0cmluZywgVG9rZW4gfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgYXNBbnkgfSBmcm9tIFwiLi9mdW5jdGlvbnMvaGVscGVyc1wiO1xuaW1wb3J0IHsgRm5HZW5lcmF0ZWQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvdGVycmFmb3JtLWZ1bmN0aW9ucy5nZW5lcmF0ZWRcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBGbiBleHRlbmRzIEZuR2VuZXJhdGVkIHtcbiAgLyoqXG4gICAqIHtAbGluayAvdGVycmFmb3JtL2RvY3MvbGFuZ3VhZ2UvZnVuY3Rpb25zL2JjcnlwdC5odG1sIGJjcnlwdH0gY29tcHV0ZXMgYSBoYXNoIG9mIHRoZSBnaXZlbiBzdHJpbmcgdXNpbmcgdGhlIEJsb3dmaXNoIGNpcGhlciwgcmV0dXJuaW5nIGEgc3RyaW5nIGluIFt0aGUgX01vZHVsYXIgQ3J5cHQgRm9ybWF0X10oaHR0cHM6Ly9wYXNzbGliLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9tb2R1bGFyX2NyeXB0X2Zvcm1hdC5odG1sKSB1c3VhbGx5IGV4cGVjdGVkIGluIHRoZSBzaGFkb3cgcGFzc3dvcmQgZmlsZSBvbiBtYW55IFVuaXggc3lzdGVtcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Nvc3RdXG4gICAqL1xuICBzdGF0aWMgYmNyeXB0KHN0cjogc3RyaW5nLCBjb3N0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGJjcnlwdCgpIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdmFyaWFkaWMgcGFyYW1ldGVyIGFuZCBub3QgbXVsdGlwbGVcbiAgICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgbm90aGluZyBpbiB0aGUgc2NoZW1hIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bnRpbWUgY2hlY2s6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vYmxvYi82YWIzZmFmNWY2NWE5MGFlMWU1YmQwNjI1ZmE5ZTgzYzBiMzRjNWUxL2ludGVybmFsL2xhbmcvZnVuY3MvY3J5cHRvLmdvI0wxMTUtTDExN1xuICAgIHJldHVybiBGbi5fYmNyeXB0KHN0ciwgY29zdCA/IFtjb3N0XSA6IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY29uZGl0aW9uYWxzfSBBIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gdXNlcyB0aGUgdmFsdWUgb2YgYSBib29sZWFuIGV4cHJlc3Npb24gdG8gc2VsZWN0IG9uZSBvZiB0d28gdmFsdWVzLlxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGNvbmRpdGlvblxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IHRydWVWYWx1ZVxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGZhbHNlVmFsdWVcbiAgICovXG4gIHN0YXRpYyBjb25kaXRpb25hbChcbiAgICBjb25kaXRpb246IEV4cHJlc3Npb24sXG4gICAgdHJ1ZVZhbHVlOiBFeHByZXNzaW9uLFxuICAgIGZhbHNlVmFsdWU6IEV4cHJlc3Npb24sXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbmFsKGNvbmRpdGlvbiwgdHJ1ZVZhbHVlLCBmYWxzZVZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9sb29rdXAuaHRtbCBsb29rdXB9IHJldHJpZXZlcyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZWxlbWVudCBmcm9tIGEgbWFwLCBnaXZlbiBpdHMga2V5LiBJZiB0aGUgZ2l2ZW4ga2V5IGRvZXMgbm90IGV4aXN0LCB0aGUgZ2l2ZW4gZGVmYXVsdCB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0ge2FueX0gaW5wdXRNYXBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge2FueX0gW2RlZmF1bHRWYWx1ZV1cbiAgICovXG4gIHN0YXRpYyBsb29rdXAoaW5wdXRNYXA6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkge1xuICAgIC8vIG92ZXJ3cml0dGVuIGJlY2F1c2UgbG9va3VwKCkgdXNlcyBhIHZhcmlhZGljIGFyZ3VtZW50IGZvciBpdHMgb3B0aW9uYWwgZGVmYXVsdFZhbHVlXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkgcmV0dXJuIEZuLl9sb29rdXAoaW5wdXRNYXAsIGtleSwgW2RlZmF1bHRWYWx1ZV0pO1xuICAgIHJldHVybiBhc0FueShwcm9wZXJ0eUFjY2VzcyhpbnB1dE1hcCwgW2tleV0pKTsgLy8gLT4gcmVuZGVycyBpbnB1dE1hcFtrZXldICh3aGljaCBpcyByZWNvbW1lbmRlZCBpZiBubyBkZWZhdWx0IHZhbHVlIGlzIGdpdmVuKVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgYSBwcm9wZXJ0eSBhY2Nlc3MgZXhwcmVzc2lvbiB0aGF0IGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gcGF0aCBpbiB0aGUgZ2l2ZW4gaW5wdXRNYXAuXG4gICAqIEZvciBleGFtcGxlIGxvb2t1cE5lc3RlZCh4LCBbXCJhXCIsIFwiYlwiLCBcImNcIl0pIHdpbGwgcmV0dXJuIGEgVGVycmFmb3JtIGV4cHJlc3Npb24gbGlrZSB4W1wiYVwiXVtcImJcIl1bXCJjXCJdXG4gICAqIEBwYXJhbSB7YW55fSBpbnB1dE1hcFxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHBhdGhcbiAgICovXG4gIHN0YXRpYyBsb29rdXBOZXN0ZWQoaW5wdXRNYXA6IGFueSwgcGF0aDogYW55W10pIHtcbiAgICByZXR1cm4gYXNBbnkocHJvcGVydHlBY2Nlc3MoaW5wdXRNYXAsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9qb2luLmh0bWwgam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gbGlzdFxuICAgKi9cbiAgc3RhdGljIGpvaW4oc2VwYXJhdG9yOiBzdHJpbmcsIGxpc3Q6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGpvaW4oKSBzdXBwb3J0cyBwYXNzaW5nIG11bHRpcGxlIGxpc3RzIHRvIGl0IGUuZy4gam9pbihzZXAsIGxpc3RBLCBsaXN0QilcbiAgICAvLyB3aGljaCB3ZSBjYW4ndCBtb2RlbCBhcyBKU0lJIGRvZXMgbm90IHN1cHBvcnQgdmFyaWFkaWMgYXJndW1lbnRzXG4gICAgcmV0dXJuIEZuLl9qb2luKHNlcGFyYXRvciwgW2xpc3RdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9yYW5nZS5odG1sIHJhbmdlfSBnZW5lcmF0ZXMgYSBsaXN0IG9mIG51bWJlcnMgdXNpbmcgYSBzdGFydCB2YWx1ZSwgYSBsaW1pdCB2YWx1ZSwgYW5kIGEgc3RlcCB2YWx1ZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgbGltaXQ6IG51bWJlciwgc3RlcCA9IDEpIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIHRoZSBzdGVwIHBhcmFtIGluIHJhbmdlKCkgaXMgb3B0aW9uYWwgd2hpY2hcbiAgICAvLyB0aGUgVGVycmFmb3JtIGZ1bmN0aW9ucyBzY2hlbWEgcmVwcmVzZW50cyBhcyBhIHNpbmdsZSB2YXJpYWRpYyBhcmd1bWVudFxuICAgIHJldHVybiBGbi5fcmFuZ2UoW3N0YXJ0LCBsaW1pdCwgc3RlcF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHdyYXAgYSBzdHJpbmcgYW5kIGVzY2FwZSBpdCBwcm9wZXJseSBmb3IgdGhlIHVzZSBpbiBUZXJyYWZvcm1cbiAgICogVGhpcyBpcyBvbmx5IG5lZWRlZCBpbiBjZXJ0YWluIHNjZW5hcmlvcyAoZS5nLiwgaWYgeW91IGhhdmUgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgaW4gdGhlIHN0cmluZylcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgKi9cbiAgc3RhdGljIHJhd1N0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHJhd1N0cmluZyhzdHIpKTtcbiAgfVxufVxuIl19
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHdCQUE4RTtBQUM5RSxpREFBNEM7QUFDNUMsNkZBQXdFO0FBRXhFLCtDQUErQztBQUMvQyxNQUFhLEVBQUcsU0FBUSwyQ0FBVzs7SUFDakM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDdEMsMEZBQTBGO1FBQzFGLCtFQUErRTtRQUMvRSwrSEFBK0g7UUFDL0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2hCLFNBQXFCLEVBQ3JCLFNBQXFCLEVBQ3JCLFVBQXNCO1FBRXRCLE9BQU8sSUFBQSxjQUFXLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWEsRUFBRSxHQUFXLEVBQUUsWUFBa0I7UUFDMUQsc0ZBQXNGO1FBQ3RGLElBQUksWUFBWTtZQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrRUFBK0U7SUFDaEksQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFhLEVBQUUsSUFBVztRQUM1QyxPQUFPLElBQUEsZUFBSyxFQUFDLElBQUEsaUJBQWMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQzNDLGdHQUFnRztRQUNoRyxtRUFBbUU7UUFDbkUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hELGtFQUFrRTtRQUNsRSwwRUFBMEU7UUFDMUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sUUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFBLFlBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBL0VILGdCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBjb25kaXRpb25hbCwgRXhwcmVzc2lvbiwgcHJvcGVydHlBY2Nlc3MsIHJhd1N0cmluZywgVG9rZW4gfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgYXNBbnkgfSBmcm9tIFwiLi9mdW5jdGlvbnMvaGVscGVyc1wiO1xuaW1wb3J0IHsgRm5HZW5lcmF0ZWQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvdGVycmFmb3JtLWZ1bmN0aW9ucy5nZW5lcmF0ZWRcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBGbiBleHRlbmRzIEZuR2VuZXJhdGVkIHtcbiAgLyoqXG4gICAqIHtAbGluayAvdGVycmFmb3JtL2RvY3MvbGFuZ3VhZ2UvZnVuY3Rpb25zL2JjcnlwdC5odG1sIGJjcnlwdH0gY29tcHV0ZXMgYSBoYXNoIG9mIHRoZSBnaXZlbiBzdHJpbmcgdXNpbmcgdGhlIEJsb3dmaXNoIGNpcGhlciwgcmV0dXJuaW5nIGEgc3RyaW5nIGluIFt0aGUgX01vZHVsYXIgQ3J5cHQgRm9ybWF0X10oaHR0cHM6Ly9wYXNzbGliLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9tb2R1bGFyX2NyeXB0X2Zvcm1hdC5odG1sKSB1c3VhbGx5IGV4cGVjdGVkIGluIHRoZSBzaGFkb3cgcGFzc3dvcmQgZmlsZSBvbiBtYW55IFVuaXggc3lzdGVtcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICAgKiBAcGFyYW0ge251bWJlcn0gW2Nvc3RdXG4gICAqL1xuICBzdGF0aWMgYmNyeXB0KHN0cjogc3RyaW5nLCBjb3N0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGJjcnlwdCgpIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdmFyaWFkaWMgcGFyYW1ldGVyIGFuZCBub3QgbXVsdGlwbGVcbiAgICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgbm90aGluZyBpbiB0aGUgc2NoZW1hIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bnRpbWUgY2hlY2s6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vYmxvYi82YWIzZmFmNWY2NWE5MGFlMWU1YmQwNjI1ZmE5ZTgzYzBiMzRjNWUxL2ludGVybmFsL2xhbmcvZnVuY3MvY3J5cHRvLmdvI0wxMTUtTDExN1xuICAgIHJldHVybiBGbi5fYmNyeXB0KHN0ciwgY29zdCA/IFtjb3N0XSA6IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY29uZGl0aW9uYWxzfSBBIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gdXNlcyB0aGUgdmFsdWUgb2YgYSBib29sZWFuIGV4cHJlc3Npb24gdG8gc2VsZWN0IG9uZSBvZiB0d28gdmFsdWVzLlxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGNvbmRpdGlvblxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IHRydWVWYWx1ZVxuICAgKiBAcGFyYW0ge0V4cHJlc3Npb259IGZhbHNlVmFsdWVcbiAgICovXG4gIHN0YXRpYyBjb25kaXRpb25hbChcbiAgICBjb25kaXRpb246IEV4cHJlc3Npb24sXG4gICAgdHJ1ZVZhbHVlOiBFeHByZXNzaW9uLFxuICAgIGZhbHNlVmFsdWU6IEV4cHJlc3Npb24sXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbmFsKGNvbmRpdGlvbiwgdHJ1ZVZhbHVlLCBmYWxzZVZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9sb29rdXAuaHRtbCBsb29rdXB9IHJldHJpZXZlcyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgZWxlbWVudCBmcm9tIGEgbWFwLCBnaXZlbiBpdHMga2V5LiBJZiB0aGUgZ2l2ZW4ga2V5IGRvZXMgbm90IGV4aXN0LCB0aGUgZ2l2ZW4gZGVmYXVsdCB2YWx1ZSBpcyByZXR1cm5lZCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0ge2FueX0gaW5wdXRNYXBcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge2FueX0gW2RlZmF1bHRWYWx1ZV1cbiAgICovXG4gIHN0YXRpYyBsb29rdXAoaW5wdXRNYXA6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkge1xuICAgIC8vIG92ZXJ3cml0dGVuIGJlY2F1c2UgbG9va3VwKCkgdXNlcyBhIHZhcmlhZGljIGFyZ3VtZW50IGZvciBpdHMgb3B0aW9uYWwgZGVmYXVsdFZhbHVlXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkgcmV0dXJuIEZuLl9sb29rdXAoaW5wdXRNYXAsIGtleSwgW2RlZmF1bHRWYWx1ZV0pO1xuICAgIHJldHVybiBhc0FueShwcm9wZXJ0eUFjY2VzcyhpbnB1dE1hcCwgW2tleV0pKTsgLy8gLT4gcmVuZGVycyBpbnB1dE1hcFtrZXldICh3aGljaCBpcyByZWNvbW1lbmRlZCBpZiBubyBkZWZhdWx0IHZhbHVlIGlzIGdpdmVuKVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgYSBwcm9wZXJ0eSBhY2Nlc3MgZXhwcmVzc2lvbiB0aGF0IGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gcGF0aCBpbiB0aGUgZ2l2ZW4gaW5wdXRNYXAuXG4gICAqIEZvciBleGFtcGxlIGxvb2t1cE5lc3RlZCh4LCBbXCJhXCIsIFwiYlwiLCBcImNcIl0pIHdpbGwgcmV0dXJuIGEgVGVycmFmb3JtIGV4cHJlc3Npb24gbGlrZSB4W1wiYVwiXVtcImJcIl1bXCJjXCJdXG4gICAqIEBwYXJhbSB7YW55fSBpbnB1dE1hcFxuICAgKiBAcGFyYW0ge0FycmF5PGFueT59IHBhdGhcbiAgICovXG4gIHN0YXRpYyBsb29rdXBOZXN0ZWQoaW5wdXRNYXA6IGFueSwgcGF0aDogYW55W10pIHtcbiAgICByZXR1cm4gYXNBbnkocHJvcGVydHlBY2Nlc3MoaW5wdXRNYXAsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9qb2luLmh0bWwgam9pbn0gcHJvZHVjZXMgYSBzdHJpbmcgYnkgY29uY2F0ZW5hdGluZyB0b2dldGhlciBhbGwgZWxlbWVudHMgb2YgYSBnaXZlbiBsaXN0IG9mIHN0cmluZ3Mgd2l0aCB0aGUgZ2l2ZW4gZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gbGlzdFxuICAgKi9cbiAgc3RhdGljIGpvaW4oc2VwYXJhdG9yOiBzdHJpbmcsIGxpc3Q6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIGpvaW4oKSBzdXBwb3J0cyBwYXNzaW5nIG11bHRpcGxlIGxpc3RzIHRvIGl0IGUuZy4gam9pbihzZXAsIGxpc3RBLCBsaXN0QilcbiAgICAvLyB3aGljaCB3ZSBjYW4ndCBtb2RlbCBhcyBKU0lJIGRvZXMgbm90IHN1cHBvcnQgdmFyaWFkaWMgYXJndW1lbnRzXG4gICAgcmV0dXJuIEZuLl9qb2luKHNlcGFyYXRvciwgW2xpc3RdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgL3RlcnJhZm9ybS9kb2NzL2xhbmd1YWdlL2Z1bmN0aW9ucy9yYW5nZS5odG1sIHJhbmdlfSBnZW5lcmF0ZXMgYSBsaXN0IG9mIG51bWJlcnMgdXNpbmcgYSBzdGFydCB2YWx1ZSwgYSBsaW1pdCB2YWx1ZSwgYW5kIGEgc3RlcCB2YWx1ZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MV1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgbGltaXQ6IG51bWJlciwgc3RlcCA9IDEpIHtcbiAgICAvLyBvdmVyd3JpdHRlbiBiZWNhdXNlIHRoZSBzdGVwIHBhcmFtIGluIHJhbmdlKCkgaXMgb3B0aW9uYWwgd2hpY2hcbiAgICAvLyB0aGUgVGVycmFmb3JtIGZ1bmN0aW9ucyBzY2hlbWEgcmVwcmVzZW50cyBhcyBhIHNpbmdsZSB2YXJpYWRpYyBhcmd1bWVudFxuICAgIHJldHVybiBGbi5fcmFuZ2UoW3N0YXJ0LCBsaW1pdCwgc3RlcF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHdyYXAgYSBzdHJpbmcgYW5kIGVzY2FwZSBpdCBwcm9wZXJseSBmb3IgdGhlIHVzZSBpbiBUZXJyYWZvcm1cbiAgICogVGhpcyBpcyBvbmx5IG5lZWRlZCBpbiBjZXJ0YWluIHNjZW5hcmlvcyAoZS5nLiwgaWYgeW91IGhhdmUgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXMgaW4gdGhlIHN0cmluZylcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgKi9cbiAgc3RhdGljIHJhd1N0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHJhd1N0cmluZyhzdHIpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TerraformHclModule = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -7,6 +6,8 @@ const terraform_module_1 = require("./terraform-module");
|
|
|
7
6
|
const tokens_1 = require("./tokens");
|
|
8
7
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
9
8
|
class TerraformHclModule extends terraform_module_1.TerraformModule {
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformHclModule", version: "0.25.0-pre.21" };
|
|
10
|
+
_variables;
|
|
10
11
|
constructor(scope, id, options) {
|
|
11
12
|
super(scope, id, options);
|
|
12
13
|
this._variables = options.variables;
|
|
@@ -51,6 +52,4 @@ class TerraformHclModule extends terraform_module_1.TerraformModule {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
exports.TerraformHclModule = TerraformHclModule;
|
|
54
|
-
|
|
55
|
-
TerraformHclModule[_a] = { fqn: "cdktn.TerraformHclModule", version: "0.25.0-pre.2" };
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWhjbC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWhjbC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSx5REFBNEU7QUFDNUUscUNBQThDO0FBTTlDLCtDQUErQztBQUMvQyxNQUFhLGtCQUFtQixTQUFRLGtDQUFlO0lBR3JELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsT0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxLQUFVO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxHQUFHLENBQUMsTUFBYztRQUN2QixPQUFPLGNBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzdCLE9BQU8sY0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQWM7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLE9BQU8sQ0FBQyxNQUFjO1FBQzNCLE9BQU8sY0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRVMsb0JBQW9CO1FBQzVCLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRVMsdUJBQXVCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUM1RCxPQUFPO2dCQUNMLEdBQUc7Z0JBQ0g7b0JBQ0UsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBeERILGdEQXlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtTW9kdWxlQ29uZmlnLCBUZXJyYWZvcm1Nb2R1bGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tbW9kdWxlXCI7XG5pbXBvcnQgeyBUb2tlbiwgSVJlc29sdmFibGUgfSBmcm9tIFwiLi90b2tlbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1IY2xNb2R1bGVDb25maWcgZXh0ZW5kcyBUZXJyYWZvcm1Nb2R1bGVDb25maWcge1xuICByZWFkb25seSB2YXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUhjbE1vZHVsZSBleHRlbmRzIFRlcnJhZm9ybU1vZHVsZSB7XG4gIHByaXZhdGUgX3ZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogVGVycmFmb3JtSGNsTW9kdWxlQ29uZmlnKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBvcHRpb25zKTtcblxuICAgIHRoaXMuX3ZhcmlhYmxlcyA9IG9wdGlvbnMudmFyaWFibGVzO1xuICB9XG5cbiAgcHVibGljIGdldCB2YXJpYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQodmFyaWFibGU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICghdGhpcy5fdmFyaWFibGVzKSB7XG4gICAgICB0aGlzLl92YXJpYWJsZXMgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5fdmFyaWFibGVzW3ZhcmlhYmxlXSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldChvdXRwdXQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KHRoaXMuaW50ZXJwb2xhdGlvbkZvck91dHB1dChvdXRwdXQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROdW1iZXIob3V0cHV0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb25Gb3JPdXRwdXQob3V0cHV0KSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Qm9vbGVhbihvdXRwdXQ6IHN0cmluZyk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uRm9yT3V0cHV0KG91dHB1dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdChvdXRwdXQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gVG9rZW4uYXNMaXN0KHRoaXMuaW50ZXJwb2xhdGlvbkZvck91dHB1dChvdXRwdXQpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy52YXJpYWJsZXMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKCF0aGlzLnZhcmlhYmxlcykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh0aGlzLnZhcmlhYmxlcyBhcyBhbnkpLm1hcCgoW2tleSwgdmFyaWFibGVdKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YXJpYWJsZSxcbiAgICAgICAgICAgIHR5cGU6IFwiYW55XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWhjbC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVycmFmb3JtLWhjbC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLHlEQUE0RTtBQUM1RSxxQ0FBOEM7QUFNOUMsK0NBQStDO0FBQy9DLE1BQWEsa0JBQW1CLFNBQVEsa0NBQWU7O0lBQzdDLFVBQVUsQ0FBMEI7SUFFNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEtBQVU7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxNQUFjO1FBQ3ZCLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWM7UUFDN0IsT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxVQUFVLENBQUMsTUFBYztRQUM5QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQWM7UUFDM0IsT0FBTyxjQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFUyx1QkFBdUI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQzVELE9BQU87Z0JBQ0wsR0FBRztnQkFDSDtvQkFDRSxLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsS0FBSztpQkFDWjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUF4REgsZ0RBeURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Nb2R1bGVDb25maWcsIFRlcnJhZm9ybU1vZHVsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGVcIjtcbmltcG9ydCB7IFRva2VuLCBJUmVzb2x2YWJsZSB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUhjbE1vZHVsZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybU1vZHVsZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtSGNsTW9kdWxlIGV4dGVuZHMgVGVycmFmb3JtTW9kdWxlIHtcbiAgcHJpdmF0ZSBfdmFyaWFibGVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBUZXJyYWZvcm1IY2xNb2R1bGVDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIG9wdGlvbnMpO1xuXG4gICAgdGhpcy5fdmFyaWFibGVzID0gb3B0aW9ucy52YXJpYWJsZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhcmlhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzO1xuICB9XG5cbiAgcHVibGljIHNldCh2YXJpYWJsZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLl92YXJpYWJsZXMpIHtcbiAgICAgIHRoaXMuX3ZhcmlhYmxlcyA9IHt9O1xuICAgIH1cbiAgICB0aGlzLl92YXJpYWJsZXNbdmFyaWFibGVdID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0KG91dHB1dDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkodGhpcy5pbnRlcnBvbGF0aW9uRm9yT3V0cHV0KG91dHB1dCkpO1xuICB9XG5cbiAgcHVibGljIGdldE51bWJlcihvdXRwdXQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKHRoaXMuaW50ZXJwb2xhdGlvbkZvck91dHB1dChvdXRwdXQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCb29sZWFuKG91dHB1dDogc3RyaW5nKTogSVJlc29sdmFibGUge1xuICAgIHJldHVybiB0aGlzLmludGVycG9sYXRpb25Gb3JPdXRwdXQob3V0cHV0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaXN0KG91dHB1dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBUb2tlbi5hc0xpc3QodGhpcy5pbnRlcnBvbGF0aW9uRm9yT3V0cHV0KG91dHB1dCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4geyAuLi50aGlzLnZhcmlhYmxlcyB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAoIXRoaXMudmFyaWFibGVzKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMudmFyaWFibGVzIGFzIGFueSkubWFwKChba2V5LCB2YXJpYWJsZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IHZhcmlhYmxlLFxuICAgICAgICAgICAgdHlwZTogXCJhbnlcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c, _d, _e;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.DynamicListTerraformIterator = exports.ResourceTerraformIterator = exports.MapTerraformIterator = exports.ListTerraformIterator = exports.TerraformIterator = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -10,6 +9,7 @@ const tfExpression_1 = require("./tfExpression");
|
|
|
10
9
|
const tokens_1 = require("./tokens");
|
|
11
10
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
12
11
|
class TerraformIterator {
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformIterator", version: "0.25.0-pre.21" };
|
|
13
13
|
/**
|
|
14
14
|
* @internal input used when this iterator appears inside a for-expression
|
|
15
15
|
* body (keys / values / pluckProperty / forExpressionForList /
|
|
@@ -272,10 +272,10 @@ class TerraformIterator {
|
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
exports.TerraformIterator = TerraformIterator;
|
|
275
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
276
|
-
TerraformIterator[_a] = { fqn: "cdktn.TerraformIterator", version: "0.25.0-pre.2" };
|
|
277
275
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
278
276
|
class ListTerraformIterator extends TerraformIterator {
|
|
277
|
+
list;
|
|
278
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.ListTerraformIterator", version: "0.25.0-pre.21" };
|
|
279
279
|
constructor(list) {
|
|
280
280
|
super();
|
|
281
281
|
this.list = list;
|
|
@@ -304,10 +304,10 @@ class ListTerraformIterator extends TerraformIterator {
|
|
|
304
304
|
}
|
|
305
305
|
}
|
|
306
306
|
exports.ListTerraformIterator = ListTerraformIterator;
|
|
307
|
-
_b = JSII_RTTI_SYMBOL_1;
|
|
308
|
-
ListTerraformIterator[_b] = { fqn: "cdktn.ListTerraformIterator", version: "0.25.0-pre.2" };
|
|
309
307
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
310
308
|
class MapTerraformIterator extends TerraformIterator {
|
|
309
|
+
map;
|
|
310
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.MapTerraformIterator", version: "0.25.0-pre.21" };
|
|
311
311
|
constructor(map) {
|
|
312
312
|
super();
|
|
313
313
|
this.map = map;
|
|
@@ -333,10 +333,10 @@ class MapTerraformIterator extends TerraformIterator {
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
exports.MapTerraformIterator = MapTerraformIterator;
|
|
336
|
-
_c = JSII_RTTI_SYMBOL_1;
|
|
337
|
-
MapTerraformIterator[_c] = { fqn: "cdktn.MapTerraformIterator", version: "0.25.0-pre.2" };
|
|
338
336
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
339
337
|
class ResourceTerraformIterator extends TerraformIterator {
|
|
338
|
+
element;
|
|
339
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.ResourceTerraformIterator", version: "0.25.0-pre.21" };
|
|
340
340
|
constructor(element) {
|
|
341
341
|
super();
|
|
342
342
|
this.element = element;
|
|
@@ -370,10 +370,11 @@ class ResourceTerraformIterator extends TerraformIterator {
|
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
exports.ResourceTerraformIterator = ResourceTerraformIterator;
|
|
373
|
-
_d = JSII_RTTI_SYMBOL_1;
|
|
374
|
-
ResourceTerraformIterator[_d] = { fqn: "cdktn.ResourceTerraformIterator", version: "0.25.0-pre.2" };
|
|
375
373
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
376
374
|
class DynamicListTerraformIterator extends MapTerraformIterator {
|
|
375
|
+
list;
|
|
376
|
+
mapKeyAttributeName;
|
|
377
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DynamicListTerraformIterator", version: "0.25.0-pre.21" };
|
|
377
378
|
constructor(list, mapKeyAttributeName) {
|
|
378
379
|
super(list);
|
|
379
380
|
this.list = list;
|
|
@@ -398,6 +399,4 @@ class DynamicListTerraformIterator extends MapTerraformIterator {
|
|
|
398
399
|
}
|
|
399
400
|
}
|
|
400
401
|
exports.DynamicListTerraformIterator = DynamicListTerraformIterator;
|
|
401
|
-
_e = JSII_RTTI_SYMBOL_1;
|
|
402
|
-
DynamicListTerraformIterator[_e] = { fqn: "cdktn.DynamicListTerraformIterator", version: "0.25.0-pre.2" };
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWl0ZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1pdGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLHFDQUdrQjtBQUNsQixpRkFBNEU7QUFDNUUsK0RBQTJDO0FBRTNDLGlEQU13QjtBQUN4QixxQ0FBb0Q7QUF3Q3BELCtDQUErQztBQUMvQyxNQUFzQixpQkFBaUI7SUFNckM7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFjO1FBQ25DLGdGQUFnRjtRQUNoRix3RkFBd0Y7UUFDeEYsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTRCRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLElBQXFCLEVBQ3JCLG1CQUEyQjtRQUUzQixPQUFPLElBQUksNEJBQTRCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FDbkIsR0FLOEI7UUFFOUIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUN6QixRQUE0QjtRQUU1QixPQUFPLElBQUkseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLFFBQTRCO1FBRTVCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLFNBQWlC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Q0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxzQ0FBc0M7SUFDakUsQ0FBQzs7QUFuQ0gsOERBb0NDOzs7QUFFRCwrQ0FBK0M7QUFDL0MsTUFBYSw0QkFBNkIsU0FBUSxvQkFBb0I7SUFDcEUsWUFDbUIsSUFBYyxFQUNkLG1CQUEyQjtRQUU1QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFISyxTQUFJLEdBQUosSUFBSSxDQUFVO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO0lBRzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kscUJBQXFCO1FBQzFCLHNGQUFzRjtRQUN0RixPQUFPLElBQUEsNEJBQWEsRUFDbEIsSUFBSSxDQUFDLElBQUksRUFDVCxtQ0FBb0IsRUFDcEIsd0JBQUUsQ0FBQyxZQUFZLENBQUMsbUNBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBN0JILG9FQThCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQge1xuICBBbnlNYXAsXG4gIEFueU1hcExpc3QsXG4gIEJvb2xlYW5NYXAsXG4gIEJvb2xlYW5NYXBMaXN0LFxuICBDb21wbGV4TGlzdCxcbiAgQ29tcGxleE1hcCxcbiAgTnVtYmVyTWFwLFxuICBOdW1iZXJNYXBMaXN0LFxuICBTdHJpbmdNYXAsXG4gIFN0cmluZ01hcExpc3QsXG59IGZyb20gXCIuL2NvbXBsZXgtY29tcHV0ZWQtbGlzdFwiO1xuaW1wb3J0IHtcbiAgaXRlcmF0b3JPblJlc291cmNlV2l0aENvdW50LFxuICBpdGVyYXRvck9uUmVzb3VyY2VXaXRob3V0Rm9yRWFjaCxcbn0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1EeW5hbWljRXhwcmVzc2lvbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1keW5hbWljLWV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEZuIH0gZnJvbSBcIi4vdGVycmFmb3JtLWZ1bmN0aW9uc1wiO1xuaW1wb3J0IHsgSVRlcnJhZm9ybVJlc291cmNlIH0gZnJvbSBcIi4vdGVycmFmb3JtLXJlc291cmNlXCI7XG5pbXBvcnQge1xuICBGT1JfRVhQUkVTU0lPTl9LRVksXG4gIEZPUl9FWFBSRVNTSU9OX1ZBTFVFLFxuICBmb3JFeHByZXNzaW9uLFxuICBwcm9wZXJ0eUFjY2VzcyxcbiAgcmVmLFxufSBmcm9tIFwiLi90ZkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IElSZXNvbHZhYmxlLCBMYXp5LCBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUZXJyYWZvcm1JdGVyYXRvciB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgdXNlZCBieSBUZXJyYWZvcm1SZXNvdXJjZSB0byBzZXQgdGhlIGZvcl9lYWNoIGV4cHJlc3Npb25cbiAgICovXG4gIF9nZXRGb3JFYWNoRXhwcmVzc2lvbigpOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBpbnB1dCB1c2VkIHdoZW4gdGhpcyBpdGVyYXRvciBhcHBlYXJzIGluc2lkZSBhIGZvci1leHByZXNzaW9uXG4gICAqIGJvZHkgKGtleXMgLyB2YWx1ZXMgLyBwbHVja1Byb3BlcnR5IC8gZm9yRXhwcmVzc2lvbkZvckxpc3QgL1xuICAgKiBmb3JFeHByZXNzaW9uRm9yTWFwIC8gZHluYW1pYykuXG4gICAqL1xuICBfZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCk6IGFueTtcbn1cblxudHlwZSBMaXN0VHlwZSA9XG4gIHwgQXJyYXk8c3RyaW5nPlxuICB8IEFycmF5PG51bWJlcj5cbiAgfCBBcnJheTxib29sZWFuIHwgSVJlc29sdmFibGU+XG4gIHwgSVJlc29sdmFibGU7IC8vIGUuZy4gYXJyYXkgb2YgYm9vbGVhbnNcblxudHlwZSBDb21wbGV4TGlzdFR5cGUgPVxuICB8IENvbXBsZXhMaXN0XG4gIHwgU3RyaW5nTWFwTGlzdFxuICB8IE51bWJlck1hcExpc3RcbiAgfCBCb29sZWFuTWFwTGlzdFxuICB8IEFueU1hcExpc3RcbiAgfCBJUmVzb2x2YWJsZTsgLy8gZS5nLiBhIHJlZmVyZW5jZSB0byBhIGNvbXBsZXggbGlzdCAoZS5nLiB2aWEgYSB2YXJpYWJsZSlcblxudHlwZSBNYXBUeXBlID1cbiAgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gIHwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICB8IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH1cbiAgfCBTdHJpbmdNYXBcbiAgfCBOdW1iZXJNYXBcbiAgfCBCb29sZWFuTWFwXG4gIHwgQW55TWFwXG4gIHwgQ29tcGxleE1hcDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZXJyYWZvcm1JdGVyYXRvciBpbXBsZW1lbnRzIElUZXJyYWZvcm1JdGVyYXRvciB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgdXNlZCBieSBUZXJyYWZvcm1SZXNvdXJjZSB0byBzZXQgdGhlIGZvcl9lYWNoIGV4cHJlc3Npb25cbiAgICovXG4gIGFic3RyYWN0IF9nZXRGb3JFYWNoRXhwcmVzc2lvbigpOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBpbnB1dCB1c2VkIHdoZW4gdGhpcyBpdGVyYXRvciBhcHBlYXJzIGluc2lkZSBhIGZvci1leHByZXNzaW9uXG4gICAqIGJvZHkgKGtleXMgLyB2YWx1ZXMgLyBwbHVja1Byb3BlcnR5IC8gZm9yRXhwcmVzc2lvbkZvckxpc3QgL1xuICAgKiBmb3JFeHByZXNzaW9uRm9yTWFwIC8gZHluYW1pYykuIERlZmF1bHRzIHRvIHRoZSBmb3JfZWFjaCBleHByZXNzaW9uO1xuICAgKiBzdWJjbGFzc2VzIHRoYXQgbmVlZCBhIGRpZmZlcmVudCBzaGFwZSBpbiBmb3ItZXhwcmVzc2lvbiBib2RpZXNcbiAgICogKGUuZy4gRHluYW1pY0xpc3RUZXJyYWZvcm1JdGVyYXRvcikgY2FuIG92ZXJyaWRlLlxuICAgKi9cbiAgcHVibGljIF9nZXRGb3JFeHByZXNzaW9uSW5wdXQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZXJhdG9yIGZyb20gYSBsaXN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21MaXN0KGxpc3Q6IExpc3RUeXBlKTogTGlzdFRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgICAvLyBUT0RPOiB0aGlzIGNvdWxkIHJldHVybiBkaWZmZXJlbnQgaXRlcmF0b3JzIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUgbGlzdFxuICAgIC8vIGZvciBleGFtcGxlIGl0IGNvdWxkIHJldHVybiBhIE51bWJlckxpc3RJdGVyYXRvciB3aG9zZSBpdGVyYXRvci5rZXkgd291bGQgYmUgYSBudW1iZXJcbiAgICByZXR1cm4gbmV3IExpc3RUZXJyYWZvcm1JdGVyYXRvcihsaXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZXJhdG9yIGZyb20gYSBjb21wbGV4IGxpc3QuIE9uZSBleGFtcGxlIGZvciB0aGlzIHdvdWxkIGJlIGEgbGlzdCBvZiBtYXBzLlxuICAgKiBUaGUgbGlzdCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEgbWFwIHdpdGggdGhlIG1hcEtleUF0dHJpYnV0ZU5hbWUgYXMgdGhlIGtleS5cbiAgICogQHBhcmFtIGxpc3QgdGhlIGxpc3QgdG8gaXRlcmF0ZSBvdmVyXG4gICAqIEBwYXJhbSBtYXBLZXlBdHRyaWJ1dGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUga2V5IGluIHRoZSBtYXBcbiAgICpcbiAgICogVmlzaXQgaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL2l0ZXJhdG9ycyN1c2luZy1pdGVyYXRvcnMtb24tY29tcGxleC1saXN0cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgY2VydCA9IG5ldyBBY21DZXJ0aWZpY2F0ZSh0aGlzLCBcImNlcnRcIiwge1xuICAgKiAgICBkb21haW5OYW1lOiBcImV4YW1wbGUuY29tXCIsXG4gICAqICAgIHZhbGlkYXRpb25NZXRob2Q6IFwiRE5TXCIsXG4gICAqICB9KTtcbiAgICpcbiAgICogY29uc3QgZHZvSXRlcmF0b3IgPSBUZXJyYWZvcm1JdGVyYXRvci5mcm9tQ29tcGxleExpc3QoXG4gICAqICAgY2VydC5kb21haW5WYWxpZGF0aW9uT3B0aW9ucyxcbiAgICogICBcImRvbWFpbl9uYW1lXCJcbiAgICogKTtcbiAgICpcbiAgICogbmV3IFJvdXRlNTNSZWNvcmQodGhpcywgXCJyZWNvcmRcIiwge1xuICAgKiAgIGFsbG93T3ZlcndyaXRlOiB0cnVlLFxuICAgKiAgIG5hbWU6IGR2b0l0ZXJhdG9yLmdldFN0cmluZyhcIm5hbWVcIiksXG4gICAqICAgcmVjb3JkczogW2R2b0l0ZXJhdG9yLmdldFN0cmluZyhcInJlY29yZFwiKV0sXG4gICAqICAgdHRsOiA2MCxcbiAgICogICB0eXBlOiBkdm9JdGVyYXRvci5nZXRTdHJpbmcoXCJ0eXBlXCIpLFxuICAgKiAgIHpvbmVJZDogVG9rZW4uYXNTdHJpbmcoZGF0YUF3c1JvdXRlNTNab25lRXhhbXBsZS56b25lSWQpLFxuICAgKiAgIGZvckVhY2g6IGR2b0l0ZXJhdG9yLFxuICAgKiB9KTtcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbXBsZXhMaXN0KFxuICAgIGxpc3Q6IENvbXBsZXhMaXN0VHlwZSxcbiAgICBtYXBLZXlBdHRyaWJ1dGVOYW1lOiBzdHJpbmcsXG4gICk6IER5bmFtaWNMaXN0VGVycmFmb3JtSXRlcmF0b3Ige1xuICAgIHJldHVybiBuZXcgRHluYW1pY0xpc3RUZXJyYWZvcm1JdGVyYXRvcihsaXN0LCBtYXBLZXlBdHRyaWJ1dGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZXJhdG9yIGZyb20gYSBtYXBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU1hcChcbiAgICBtYXA6XG4gICAgICB8IENvbXBsZXhNYXBcbiAgICAgIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICAgICAgfCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICAgICB8IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH1cbiAgICAgIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0sXG4gICk6IE1hcFRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgICByZXR1cm4gbmV3IE1hcFRlcnJhZm9ybUl0ZXJhdG9yKG1hcCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpdGVyYXRvciBmcm9tIGEgcmVzb3VyY2UgdGhhdFxuICAgKiBoYXMgYmVlbiBjcmVhdGVkIHdpdGggdGhlIGBmb3JfZWFjaGAgYXJndW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21SZXNvdXJjZXMoXG4gICAgcmVzb3VyY2U6IElUZXJyYWZvcm1SZXNvdXJjZSxcbiAgKTogUmVzb3VyY2VUZXJyYWZvcm1JdGVyYXRvciB7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yKHJlc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZXJhdG9yIGZyb20gYSBkYXRhIHNvdXJjZSB0aGF0XG4gICAqIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCB0aGUgYGZvcl9lYWNoYCBhcmd1bWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURhdGFTb3VyY2VzKFxuICAgIHJlc291cmNlOiBJVGVycmFmb3JtUmVzb3VyY2UsXG4gICk6IFJlc291cmNlVGVycmFmb3JtSXRlcmF0b3Ige1xuICAgIHJldHVybiBuZXcgUmVzb3VyY2VUZXJyYWZvcm1JdGVyYXRvcihyZXNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIHN0cmluZ1xuICAgKi9cbiAgZ2V0U3RyaW5nKGF0dHJpYnV0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgbnVtYmVyXG4gICAqL1xuICBnZXROdW1iZXIoYXR0cmlidXRlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcihwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBib29sZWFuXG4gICAqL1xuICBnZXRCb29sZWFuKGF0dHJpYnV0ZTogc3RyaW5nKTogSVJlc29sdmFibGUge1xuICAgIHJldHVybiBUb2tlbi5hc0FueShwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYW55XG4gICAqL1xuICBnZXRBbnkoYXR0cmlidXRlOiBzdHJpbmcpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIChzdHJpbmcpIGxpc3RcbiAgICovXG4gIGdldExpc3QoYXR0cmlidXRlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdChwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBudW1iZXIgbGlzdFxuICAgKi9cbiAgZ2V0TnVtYmVyTGlzdChhdHRyaWJ1dGU6IHN0cmluZyk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gVG9rZW4uYXNOdW1iZXJMaXN0KHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIG1hcFxuICAgKi9cbiAgZ2V0TWFwKGF0dHJpYnV0ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIG1hcCBvZiBzdHJpbmdzXG4gICAqL1xuICBnZXRTdHJpbmdNYXAoYXR0cmlidXRlOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmdNYXAocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgbWFwIG9mIG51bWJlcnNcbiAgICovXG4gIGdldE51bWJlck1hcChhdHRyaWJ1dGU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0ge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlck1hcChwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBtYXAgb2YgYm9vbGVhbnNcbiAgICovXG4gIGdldEJvb2xlYW5NYXAoYXR0cmlidXRlOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcChwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBtYXAgb2YgYW55XG4gICAqL1xuICBnZXRBbnlNYXAoYXR0cmlidXRlOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnlNYXAocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfZ2V0VmFsdWUoKTogYW55IHtcbiAgICAvLyB1c2VzIGEgTGF6eSB2YWx1ZSB0byBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgY3VycmVudCBUZXJyYWZvcm1TdGFjayBhbmQgcGFzcyBpdCB0byByZWYoKVxuICAgIHJldHVybiBMYXp5LmFueVZhbHVlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoY29udGV4dC5pdGVyYXRvckNvbnRleHQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJEWU5BTUlDX0JMT0NLXCI6XG4gICAgICAgICAgICAgIHJldHVybiByZWYoXCJlYWNoLnZhbHVlXCIpO1xuICAgICAgICAgICAgY2FzZSBcIkZPUl9FWFBSRVNTSU9OXCI6XG4gICAgICAgICAgICAgIHJldHVybiBGT1JfRVhQUkVTU0lPTl9WQUxVRTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIC8vIHNhbWUgYXMgZHluYW1pYyBibG9jaywgYXMgdGhpcyBpcyB0aGUgY2FzZSB3aGVuIGEgaXRlcmF0b3IgaXMgcGFzc2VkIHRvIHRoZSByb290IGxldmVsIG9mIGUuZy4gYSByZXNvdXJjZVxuICAgICAgICAgICAgICByZXR1cm4gcmVmKFwiZWFjaC52YWx1ZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeyBkaXNwbGF5SGludDogXCI8aXRlcmF0b3IgdmFsdWU+XCIgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9nZXRLZXkoKTogYW55IHtcbiAgICAvLyB1c2VzIGEgTGF6eSB2YWx1ZSB0byBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgY3VycmVudCBUZXJyYWZvcm1TdGFjayBhbmQgcGFzcyBpdCB0byByZWYoKVxuICAgIHJldHVybiBMYXp5LmFueVZhbHVlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoY29udGV4dC5pdGVyYXRvckNvbnRleHQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJEWU5BTUlDX0JMT0NLXCI6XG4gICAgICAgICAgICAgIHJldHVybiByZWYoXCJlYWNoLmtleVwiKTtcbiAgICAgICAgICAgIGNhc2UgXCJGT1JfRVhQUkVTU0lPTlwiOlxuICAgICAgICAgICAgICByZXR1cm4gRk9SX0VYUFJFU1NJT05fS0VZO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgLy8gc2FtZSBhcyBkeW5hbWljIGJsb2NrLCBhcyB0aGlzIGlzIHRoZSBjYXNlIHdoZW4gYSBpdGVyYXRvciBpcyBwYXNzZWQgdG8gdGhlIHJvb3QgbGV2ZWwgb2YgZS5nLiBhIHJlc291cmNlXG4gICAgICAgICAgICAgIHJldHVybiByZWYoXCJlYWNoLmtleVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeyBkaXNwbGF5SGludDogXCI8aXRlcmF0b3Iga2V5PlwiIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZHluYW1pYyBleHByZXNzaW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vcCBvdmVyIHRoaXMgaXRlcmF0b3JcbiAgICogaW4gYSBkeW5hbWljIGJsb2NrLlxuICAgKiBBcyB0aGlzIHJldHVybnMgYW4gSVJlc29sdmFibGUgeW91IG1pZ2h0IG5lZWQgdG8gd3JhcCB0aGUgb3V0cHV0IGluXG4gICAqIGEgVG9rZW4sIGUuZy4gYFRva2VuLmFzU3RyaW5nYC5cbiAgICogU2VlIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy9jb25jZXB0cy9pdGVyYXRvcnMjdXNpbmctaXRlcmF0b3JzLWZvci1saXN0LWF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBkeW5hbWljKGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KFxuICAgICAgbmV3IFRlcnJhZm9ybUR5bmFtaWNFeHByZXNzaW9uKHtcbiAgICAgICAgaXRlcmF0b3I6IHRoaXMsXG4gICAgICAgIGNvbnRlbnQ6IGF0dHJpYnV0ZXMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3IgZXhwcmVzc2lvbiB0aGF0IG1hcHMgdGhlIGl0ZXJhdG9ycyB0byBpdHMga2V5cy5cbiAgICogRm9yIGxpc3RzIHRoZXNlIHdvdWxkIGJlIHRoZSBpbmRpY2VzLCBmb3IgbWFwcyB0aGUga2V5cy5cbiAgICogQXMgdGhpcyByZXR1cm5zIGFuIElSZXNvbHZhYmxlIHlvdSBtaWdodCBuZWVkIHRvIHdyYXAgdGhlIG91dHB1dCBpblxuICAgKiBhIFRva2VuLCBlLmcuIGBUb2tlbi5hc1N0cmluZ2AuXG4gICAqL1xuICBwdWJsaWMga2V5cygpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KFxuICAgICAgZm9yRXhwcmVzc2lvbih0aGlzLl9nZXRGb3JFeHByZXNzaW9uSW5wdXQoKSwgRk9SX0VYUFJFU1NJT05fS0VZKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3IgZXhwcmVzc2lvbiB0aGF0IG1hcHMgdGhlIGl0ZXJhdG9ycyB0byBpdHMgdmFsdWUgaW4gY2FzZSBpdCBpcyBhIG1hcC5cbiAgICogRm9yIGxpc3RzIHRoZXNlIHdvdWxkIHN0YXkgdGhlIHNhbWUuXG4gICAqIEFzIHRoaXMgcmV0dXJucyBhbiBJUmVzb2x2YWJsZSB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSBvdXRwdXQgaW5cbiAgICogYSBUb2tlbiwgZS5nLiBgVG9rZW4uYXNTdHJpbmdgLlxuICAgKi9cbiAgcHVibGljIHZhbHVlcygpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KFxuICAgICAgZm9yRXhwcmVzc2lvbih0aGlzLl9nZXRGb3JFeHByZXNzaW9uSW5wdXQoKSwgRk9SX0VYUFJFU1NJT05fVkFMVUUpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvciBleHByZXNzaW9uIHRoYXQgYWNjZXNzZXMgdGhlIGtleSBvbiBlYWNoIGVsZW1lbnQgb2YgdGhlIGl0ZXJhdG9yLlxuICAgKiBBcyB0aGlzIHJldHVybnMgYW4gSVJlc29sdmFibGUgeW91IG1pZ2h0IG5lZWQgdG8gd3JhcCB0aGUgb3V0cHV0IGluXG4gICAqIGEgVG9rZW4sIGUuZy4gYFRva2VuLmFzU3RyaW5nYC5cbiAgICogQHBhcmFtIHByb3BlcnR5IFRoZSBwcm9wZXJ0eSBvZiB0aGUgaXRlcmF0b3JzIHZhbHVlcyB0byBtYXAgdG9cbiAgICovXG4gIHB1YmxpYyBwbHVja1Byb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KFxuICAgICAgZm9yRXhwcmVzc2lvbihcbiAgICAgICAgdGhpcy5fZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCksXG4gICAgICAgIHByb3BlcnR5QWNjZXNzKEZPUl9FWFBSRVNTSU9OX1ZBTFVFLCBbcHJvcGVydHldKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZm9yIGV4cHJlc3Npb24gdGhhdCByZXN1bHRzIGluIGEgbGlzdC5cbiAgICogVGhpcyBtZXRob2QgYWxsb3dzIHlvdSB0byBjcmVhdGUgZXZlcnkgcG9zc2libGUgZm9yIGV4cHJlc3Npb24sIGJ1dCByZXF1aXJlcyBtb3JlIGtub3dsZWRnZSBhYm91dFxuICAgKiBUZXJyYWZvcm0ncyBmb3IgZXhwcmVzc2lvbiBzeW50YXguXG4gICAqIEZvciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VzIHlvdSBjYW4gdXNlIGtleXMoKSwgdmFsdWVzKCksIGFuZCBwbHVja1Byb3BlcnR5KCkgaW5zdGVhZC5cbiAgICpcbiAgICogWW91IG1heSB3cml0ZSBhbnkgdmFsaWQgVGVycmFmb3JtIGZvciBlYWNoIGV4cHJlc3Npb24sIGUuZy5cbiAgICogYFRlcnJhZm9ybUl0ZXJhdG9yLmZyb21MaXN0KG15SXRlcmF0b3JTb3VyY2VWYXIpLmZvckV4cHJlc3Npb25Gb3JMaXN0KFwidmFsLmZvbyBpZiB2YWwuYmFyID09IHRydWVcIilgXG4gICAqIHdpbGwgcmVzdWx0IGluIGBbIGZvciBrZXksIHZhbCBpbiB2YXIubXlJdGVyYXRvclNvdXJjZTogdmFsLmZvbyBpZiB2YWwuYmFyID09IHRydWUgXWAuXG4gICAqXG4gICAqIEFzIHRoaXMgcmV0dXJucyBhbiBJUmVzb2x2YWJsZSB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSBvdXRwdXQgaW5cbiAgICogYSBUb2tlbiwgZS5nLiBgVG9rZW4uYXNTdHJpbmdgLlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbiB0byB1c2UgaW4gdGhlIGZvciBtYXBwaW5nXG4gICAqL1xuICBwdWJsaWMgZm9yRXhwcmVzc2lvbkZvckxpc3QoZXhwcmVzc2lvbjogc3RyaW5nIHwgSVJlc29sdmFibGUpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkoXG4gICAgICBmb3JFeHByZXNzaW9uKHRoaXMuX2dldEZvckV4cHJlc3Npb25JbnB1dCgpLCBleHByZXNzaW9uKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3IgZXhwcmVzc2lvbiB0aGF0IHJlc3VsdHMgaW4gYSBtYXAuXG4gICAqIFRoaXMgbWV0aG9kIGFsbG93cyB5b3UgdG8gY3JlYXRlIGV2ZXJ5IHBvc3NpYmxlIGZvciBleHByZXNzaW9uLCBidXQgcmVxdWlyZXMgbW9yZSBrbm93bGVkZ2UgYWJvdXRcbiAgICogVGVycmFmb3JtcyBmb3IgZXhwcmVzc2lvbiBzeW50YXguXG4gICAqIEZvciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2VzIHlvdSBjYW4gdXNlIGtleXMoKSwgdmFsdWVzKCksIGFuZCBwbHVja1Byb3BlcnR5IGluc3RlYWQuXG4gICAqXG4gICAqIFlvdSBtYXkgd3JpdGUgYW55IHZhbGlkIFRlcnJhZm9ybSBmb3IgZWFjaCBleHByZXNzaW9uLCBlLmcuXG4gICAqIGBUZXJyYWZvcm1JdGVyYXRvci5mcm9tTWFwKG15SXRlcmF0b3JTb3VyY2VWYXIpLmZvckV4cHJlc3Npb25Gb3JNYXAoXCJrZXlcIiwgXCJ2YWwuZm9vIGlmIHZhbC5iYXIgPT0gdHJ1ZVwiKWBcbiAgICogd2lsbCByZXN1bHQgaW4gYHsgZm9yIGtleSwgdmFsIGluIHZhci5teUl0ZXJhdG9yU291cmNlOiBrZXkgPT4gdmFsLmZvbyBpZiB2YWwuYmFyID09IHRydWUgfWAuXG4gICAqXG4gICAqIEFzIHRoaXMgcmV0dXJucyBhbiBJUmVzb2x2YWJsZSB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSBvdXRwdXQgaW5cbiAgICogYSBUb2tlbiwgZS5nLiBgVG9rZW4uYXNTdHJpbmdgLlxuICAgKiBAcGFyYW0ga2V5RXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbiB0byB1c2UgYXMga2V5IGluIHRoZSBmb3IgbWFwcGluZ1xuICAgKiBAcGFyYW0gdmFsdWVFeHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRvIHVzZSBhcyB2YWx1ZSBpbiB0aGUgZm9yIG1hcHBpbmdcbiAgICovXG4gIHB1YmxpYyBmb3JFeHByZXNzaW9uRm9yTWFwKFxuICAgIGtleUV4cHJlc3Npb246IHN0cmluZyB8IElSZXNvbHZhYmxlLFxuICAgIHZhbHVlRXhwcmVzc2lvbjogc3RyaW5nIHwgSVJlc29sdmFibGUsXG4gICkge1xuICAgIHJldHVybiBUb2tlbi5hc0FueShcbiAgICAgIGZvckV4cHJlc3Npb24oXG4gICAgICAgIHRoaXMuX2dldEZvckV4cHJlc3Npb25JbnB1dCgpLFxuICAgICAgICB2YWx1ZUV4cHJlc3Npb24sXG4gICAgICAgIGtleUV4cHJlc3Npb24sXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBMaXN0VGVycmFmb3JtSXRlcmF0b3IgZXh0ZW5kcyBUZXJyYWZvcm1JdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbGlzdDogTGlzdFR5cGUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnRseSBlbnRyeSBpbiB0aGUgbGlzdCBvciBzZXQgdGhhdCBpcyBiZWluZyBpdGVyYXRlZCBvdmVyLlxuICAgKiBGb3IgbGlzdHMgdGhpcyBpcyB0aGUgc2FtZSBhcyBgaXRlcmF0b3IudmFsdWVgLiBJZiB5b3UgbmVlZCB0aGUgaW5kZXgsXG4gICAqIHVzZSBjb3VudCB2aWEgYFRlcnJhZm9ybUNvdW50YDpcbiAgICogaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL2l0ZXJhdG9ycyN1c2luZy1jb3VudFxuICAgKi9cbiAgcHVibGljIGdldCBrZXkoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0S2V5KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyLlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCB1c2VkIGJ5IFRlcnJhZm9ybVJlc291cmNlIHRvIHNldCB0aGUgZm9yX2VhY2ggZXhwcmVzc2lvblxuICAgKi9cbiAgcHVibGljIF9nZXRGb3JFYWNoRXhwcmVzc2lvbigpOiBhbnkge1xuICAgIC8vIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBzZXQgYXMgVGVycmFmb3JtIG9ubHkgYWxsb3dzIHNldHMgaW4gZm9yX2VhY2hcbiAgICByZXR1cm4gRm4udG9zZXQodGhpcy5saXN0KTtcbiAgfVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIE1hcFRlcnJhZm9ybUl0ZXJhdG9yIGV4dGVuZHMgVGVycmFmb3JtSXRlcmF0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1hcDogTWFwVHlwZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIHVzZWQgYnkgVGVycmFmb3JtUmVzb3VyY2UgdG8gc2V0IHRoZSBmb3JfZWFjaCBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgX2dldEZvckVhY2hFeHByZXNzaW9uKCk6IGFueSB7XG4gICAgLy8gZXhwbGljaXQgd3JhcHBpbmcgdG8gY2lyY3VtdmVudCBcIkZvdW5kIGFuIGVuY29kZWQgbWFwIHRva2VuIGluIGEgc2NhbGFyIHN0cmluZyBjb250ZXh0LlwiIGVycm9yXG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMubWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGN1cnJlbnQgZW50cnkgaW4gdGhlIG1hcCB0aGF0IGlzIGJlaW5nIGl0ZXJhdGVkIG92ZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzLl9nZXRLZXkoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyLlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZSgpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VUZXJyYWZvcm1JdGVyYXRvciBleHRlbmRzIFRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBJVGVycmFmb3JtUmVzb3VyY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGVsZW1lbnQuY291bnQpIHtcbiAgICAgIHRocm93IGl0ZXJhdG9yT25SZXNvdXJjZVdpdGhDb3VudCgpO1xuICAgIH1cblxuICAgIGlmICghZWxlbWVudC5mb3JFYWNoKSB7XG4gICAgICB0aHJvdyBpdGVyYXRvck9uUmVzb3VyY2VXaXRob3V0Rm9yRWFjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVudHJ5IGluIHRoZSBsaXN0IG9yIHNldCB0aGF0IGlzIGJlaW5nIGl0ZXJhdGVkIG92ZXIuXG4gICAqIEZvciBsaXN0cyB0aGlzIGlzIHRoZSBzYW1lIGFzIGBpdGVyYXRvci52YWx1ZWAuIElmIHlvdSBuZWVkIHRoZSBpbmRleCxcbiAgICogdXNlIGNvdW50IHZpYSBgVGVycmFmb3JtQ291bnRgOlxuICAgKiBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvaXRlcmF0b3JzI3VzaW5nLWNvdW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9nZXRLZXkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIHVzZWQgYnkgVGVycmFmb3JtUmVzb3VyY2UgdG8gc2V0IHRoZSBmb3JfZWFjaCBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgX2dldEZvckVhY2hFeHByZXNzaW9uKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5mcW47IC8vIG5vIHdyYXBwaW5nIG5lY2Vzc2FyeSBmb3IgcmVzb3VyY2VzXG4gIH1cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBEeW5hbWljTGlzdFRlcnJhZm9ybUl0ZXJhdG9yIGV4dGVuZHMgTWFwVGVycmFmb3JtSXRlcmF0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3Q6IExpc3RUeXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFwS2V5QXR0cmlidXRlTmFtZTogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihsaXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgdXNlZCBieSBUZXJyYWZvcm1SZXNvdXJjZSB0byBzZXQgdGhlIGZvcl9lYWNoIGV4cHJlc3Npb24uXG4gICAqIEFsd2F5cyByZXR1cm5zIHRoZSBtYXAtd3JhcHBlZCBmb3JtIHNvIGVhY2gua2V5IGlzIHRoZSBtYXBLZXlBdHRyaWJ1dGVOYW1lXG4gICAqIGFuZCBlbnRyaWVzIGFyZSB1bmlxdWVseSBrZXllZC5cbiAgICovXG4gIHB1YmxpYyBfZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKTogYW55IHtcbiAgICAvLyBUdXJuIGxpc3QgaW50byBhIG1hcDogeyBmb3Igayx2IGluIDxpbnB1dD4gOiA8a2V5RXhwcmVzc2lvbj4gPT4gPHZhbHVlRXhwcmVzc2lvbj4gfVxuICAgIHJldHVybiBmb3JFeHByZXNzaW9uKFxuICAgICAgdGhpcy5saXN0LFxuICAgICAgRk9SX0VYUFJFU1NJT05fVkFMVUUsXG4gICAgICBGbi5sb29rdXBOZXN0ZWQoRk9SX0VYUFJFU1NJT05fVkFMVUUsIFt0aGlzLm1hcEtleUF0dHJpYnV0ZU5hbWVdKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBpbnNpZGUgYSBmb3ItZXhwcmVzc2lvbiBib2R5IHdlIHdhbGsgdGhlIHJhdyBsaXN0IHNvXG4gICAqIGBbIGZvciBrZXksIHZhbCBpbiA8bGlzdD4gOiAuLi4gXWAgaXRlcmF0ZXMgbGlzdCBlbGVtZW50cyBvbmNlLFxuICAgKiByYXRoZXIgdGhhbiB0aGUgZG91Ymx5LXdyYXBwZWQgZm9ybSB0aGUgZm9yX2VhY2ggY29udmVyc2lvbiBwcm9kdWNlcy5cbiAgICovXG4gIHB1YmxpYyBfZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdDtcbiAgfVxufVxuIl19
|
|
402
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWl0ZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1pdGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBY0EscUNBR2tCO0FBQ2xCLGlGQUE0RTtBQUM1RSwrREFBMkM7QUFFM0MsaURBTXdCO0FBQ3hCLHFDQUFvRDtBQXFDcEQsK0NBQStDO0FBQy9DLE1BQXNCLGlCQUFpQjs7SUFNckM7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFjO1FBQ25DLGdGQUFnRjtRQUNoRix3RkFBd0Y7UUFDeEYsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTRCRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLElBQXFCLEVBQ3JCLG1CQUEyQjtRQUUzQixPQUFPLElBQUksNEJBQTRCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FDbkIsR0FLOEI7UUFFOUIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUN6QixRQUE0QjtRQUU1QixPQUFPLElBQUkseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLFFBQTRCO1FBRTVCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLFNBQWlC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QUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxzQ0FBc0M7SUFDakUsQ0FBQzs7QUFuQ0gsOERBb0NDO0FBRUQsK0NBQStDO0FBQy9DLE1BQWEsNEJBQTZCLFNBQVEsb0JBQW9CO0lBRWpEO0lBQ0E7O0lBRm5CLFlBQ21CLElBQWMsRUFDZCxtQkFBMkI7UUFFNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBSEssU0FBSSxHQUFKLElBQUksQ0FBVTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBUTtJQUc5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQjtRQUMxQixzRkFBc0Y7UUFDdEYsT0FBTyxJQUFBLDRCQUFhLEVBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQ1QsbUNBQW9CLEVBQ3BCLHdCQUFFLENBQUMsWUFBWSxDQUFDLG1DQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOztBQTdCSCxvRUE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHtcbiAgQW55TWFwLFxuICBBbnlNYXBMaXN0LFxuICBCb29sZWFuTWFwLFxuICBCb29sZWFuTWFwTGlzdCxcbiAgQ29tcGxleExpc3QsXG4gIENvbXBsZXhNYXAsXG4gIE51bWJlck1hcCxcbiAgTnVtYmVyTWFwTGlzdCxcbiAgU3RyaW5nTWFwLFxuICBTdHJpbmdNYXBMaXN0LFxufSBmcm9tIFwiLi9jb21wbGV4LWNvbXB1dGVkLWxpc3RcIjtcbmltcG9ydCB7XG4gIGl0ZXJhdG9yT25SZXNvdXJjZVdpdGhDb3VudCxcbiAgaXRlcmF0b3JPblJlc291cmNlV2l0aG91dEZvckVhY2gsXG59IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24gfSBmcm9tIFwiLi90ZXJyYWZvcm0tZHluYW1pYy1leHByZXNzaW9uXCI7XG5pbXBvcnQgeyBGbiB9IGZyb20gXCIuL3RlcnJhZm9ybS1mdW5jdGlvbnNcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1SZXNvdXJjZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1yZXNvdXJjZVwiO1xuaW1wb3J0IHtcbiAgRk9SX0VYUFJFU1NJT05fS0VZLFxuICBGT1JfRVhQUkVTU0lPTl9WQUxVRSxcbiAgZm9yRXhwcmVzc2lvbixcbiAgcHJvcGVydHlBY2Nlc3MsXG4gIHJlZixcbn0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgTGF6eSwgVG9rZW4gfSBmcm9tIFwiLi90b2tlbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVGVycmFmb3JtSXRlcmF0b3Ige1xuICAvKipcbiAgICogQGludGVybmFsIHVzZWQgYnkgVGVycmFmb3JtUmVzb3VyY2UgdG8gc2V0IHRoZSBmb3JfZWFjaCBleHByZXNzaW9uXG4gICAqL1xuICBfZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKTogYW55O1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgaW5wdXQgdXNlZCB3aGVuIHRoaXMgaXRlcmF0b3IgYXBwZWFycyBpbnNpZGUgYSBmb3ItZXhwcmVzc2lvblxuICAgKiBib2R5IChrZXlzIC8gdmFsdWVzIC8gcGx1Y2tQcm9wZXJ0eSAvIGZvckV4cHJlc3Npb25Gb3JMaXN0IC9cbiAgICogZm9yRXhwcmVzc2lvbkZvck1hcCAvIGR5bmFtaWMpLlxuICAgKi9cbiAgX2dldEZvckV4cHJlc3Npb25JbnB1dCgpOiBhbnk7XG59XG5cbnR5cGUgTGlzdFR5cGUgPVxuICBBcnJheTxzdHJpbmc+IHwgQXJyYXk8bnVtYmVyPiB8IEFycmF5PGJvb2xlYW4gfCBJUmVzb2x2YWJsZT4gfCBJUmVzb2x2YWJsZTsgLy8gZS5nLiBhcnJheSBvZiBib29sZWFuc1xuXG50eXBlIENvbXBsZXhMaXN0VHlwZSA9XG4gIHwgQ29tcGxleExpc3RcbiAgfCBTdHJpbmdNYXBMaXN0XG4gIHwgTnVtYmVyTWFwTGlzdFxuICB8IEJvb2xlYW5NYXBMaXN0XG4gIHwgQW55TWFwTGlzdFxuICB8IElSZXNvbHZhYmxlOyAvLyBlLmcuIGEgcmVmZXJlbmNlIHRvIGEgY29tcGxleCBsaXN0IChlLmcuIHZpYSBhIHZhcmlhYmxlKVxuXG50eXBlIE1hcFR5cGUgPVxuICB8IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgfCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gIHwgeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfVxuICB8IFN0cmluZ01hcFxuICB8IE51bWJlck1hcFxuICB8IEJvb2xlYW5NYXBcbiAgfCBBbnlNYXBcbiAgfCBDb21wbGV4TWFwO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlcnJhZm9ybUl0ZXJhdG9yIGltcGxlbWVudHMgSVRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbCB1c2VkIGJ5IFRlcnJhZm9ybVJlc291cmNlIHRvIHNldCB0aGUgZm9yX2VhY2ggZXhwcmVzc2lvblxuICAgKi9cbiAgYWJzdHJhY3QgX2dldEZvckVhY2hFeHByZXNzaW9uKCk6IGFueTtcblxuICAvKipcbiAgICogQGludGVybmFsIGlucHV0IHVzZWQgd2hlbiB0aGlzIGl0ZXJhdG9yIGFwcGVhcnMgaW5zaWRlIGEgZm9yLWV4cHJlc3Npb25cbiAgICogYm9keSAoa2V5cyAvIHZhbHVlcyAvIHBsdWNrUHJvcGVydHkgLyBmb3JFeHByZXNzaW9uRm9yTGlzdCAvXG4gICAqIGZvckV4cHJlc3Npb25Gb3JNYXAgLyBkeW5hbWljKS4gRGVmYXVsdHMgdG8gdGhlIGZvcl9lYWNoIGV4cHJlc3Npb247XG4gICAqIHN1YmNsYXNzZXMgdGhhdCBuZWVkIGEgZGlmZmVyZW50IHNoYXBlIGluIGZvci1leHByZXNzaW9uIGJvZGllc1xuICAgKiAoZS5nLiBEeW5hbWljTGlzdFRlcnJhZm9ybUl0ZXJhdG9yKSBjYW4gb3ZlcnJpZGUuXG4gICAqL1xuICBwdWJsaWMgX2dldEZvckV4cHJlc3Npb25JbnB1dCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9nZXRGb3JFYWNoRXhwcmVzc2lvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaXRlcmF0b3IgZnJvbSBhIGxpc3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxpc3QobGlzdDogTGlzdFR5cGUpOiBMaXN0VGVycmFmb3JtSXRlcmF0b3Ige1xuICAgIC8vIFRPRE86IHRoaXMgY291bGQgcmV0dXJuIGRpZmZlcmVudCBpdGVyYXRvcnMgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSBsaXN0XG4gICAgLy8gZm9yIGV4YW1wbGUgaXQgY291bGQgcmV0dXJuIGEgTnVtYmVyTGlzdEl0ZXJhdG9yIHdob3NlIGl0ZXJhdG9yLmtleSB3b3VsZCBiZSBhIG51bWJlclxuICAgIHJldHVybiBuZXcgTGlzdFRlcnJhZm9ybUl0ZXJhdG9yKGxpc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaXRlcmF0b3IgZnJvbSBhIGNvbXBsZXggbGlzdC4gT25lIGV4YW1wbGUgZm9yIHRoaXMgd291bGQgYmUgYSBsaXN0IG9mIG1hcHMuXG4gICAqIFRoZSBsaXN0IHdpbGwgYmUgY29udmVydGVkIGludG8gYSBtYXAgd2l0aCB0aGUgbWFwS2V5QXR0cmlidXRlTmFtZSBhcyB0aGUga2V5LlxuICAgKiBAcGFyYW0gbGlzdCB0aGUgbGlzdCB0byBpdGVyYXRlIG92ZXJcbiAgICogQHBhcmFtIG1hcEtleUF0dHJpYnV0ZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBrZXkgaW4gdGhlIG1hcFxuICAgKlxuICAgKiBWaXNpdCBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvaXRlcmF0b3JzI3VzaW5nLWl0ZXJhdG9ycy1vbi1jb21wbGV4LWxpc3RzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBjZXJ0ID0gbmV3IEFjbUNlcnRpZmljYXRlKHRoaXMsIFwiY2VydFwiLCB7XG4gICAqICAgIGRvbWFpbk5hbWU6IFwiZXhhbXBsZS5jb21cIixcbiAgICogICAgdmFsaWRhdGlvbk1ldGhvZDogXCJETlNcIixcbiAgICogIH0pO1xuICAgKlxuICAgKiBjb25zdCBkdm9JdGVyYXRvciA9IFRlcnJhZm9ybUl0ZXJhdG9yLmZyb21Db21wbGV4TGlzdChcbiAgICogICBjZXJ0LmRvbWFpblZhbGlkYXRpb25PcHRpb25zLFxuICAgKiAgIFwiZG9tYWluX25hbWVcIlxuICAgKiApO1xuICAgKlxuICAgKiBuZXcgUm91dGU1M1JlY29yZCh0aGlzLCBcInJlY29yZFwiLCB7XG4gICAqICAgYWxsb3dPdmVyd3JpdGU6IHRydWUsXG4gICAqICAgbmFtZTogZHZvSXRlcmF0b3IuZ2V0U3RyaW5nKFwibmFtZVwiKSxcbiAgICogICByZWNvcmRzOiBbZHZvSXRlcmF0b3IuZ2V0U3RyaW5nKFwicmVjb3JkXCIpXSxcbiAgICogICB0dGw6IDYwLFxuICAgKiAgIHR5cGU6IGR2b0l0ZXJhdG9yLmdldFN0cmluZyhcInR5cGVcIiksXG4gICAqICAgem9uZUlkOiBUb2tlbi5hc1N0cmluZyhkYXRhQXdzUm91dGU1M1pvbmVFeGFtcGxlLnpvbmVJZCksXG4gICAqICAgZm9yRWFjaDogZHZvSXRlcmF0b3IsXG4gICAqIH0pO1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29tcGxleExpc3QoXG4gICAgbGlzdDogQ29tcGxleExpc3RUeXBlLFxuICAgIG1hcEtleUF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgKTogRHluYW1pY0xpc3RUZXJyYWZvcm1JdGVyYXRvciB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljTGlzdFRlcnJhZm9ybUl0ZXJhdG9yKGxpc3QsIG1hcEtleUF0dHJpYnV0ZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaXRlcmF0b3IgZnJvbSBhIG1hcFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTWFwKFxuICAgIG1hcDpcbiAgICAgIHwgQ29tcGxleE1hcFxuICAgICAgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICAgICB8IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICAgIHwgeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfVxuICAgICAgfCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSxcbiAgKTogTWFwVGVycmFmb3JtSXRlcmF0b3Ige1xuICAgIHJldHVybiBuZXcgTWFwVGVycmFmb3JtSXRlcmF0b3IobWFwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZXJhdG9yIGZyb20gYSByZXNvdXJjZSB0aGF0XG4gICAqIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCB0aGUgYGZvcl9lYWNoYCBhcmd1bWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJlc291cmNlcyhcbiAgICByZXNvdXJjZTogSVRlcnJhZm9ybVJlc291cmNlLFxuICApOiBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgICByZXR1cm4gbmV3IFJlc291cmNlVGVycmFmb3JtSXRlcmF0b3IocmVzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaXRlcmF0b3IgZnJvbSBhIGRhdGEgc291cmNlIHRoYXRcbiAgICogaGFzIGJlZW4gY3JlYXRlZCB3aXRoIHRoZSBgZm9yX2VhY2hgIGFyZ3VtZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YVNvdXJjZXMoXG4gICAgcmVzb3VyY2U6IElUZXJyYWZvcm1SZXNvdXJjZSxcbiAgKTogUmVzb3VyY2VUZXJyYWZvcm1JdGVyYXRvciB7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yKHJlc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgc3RyaW5nXG4gICAqL1xuICBnZXRTdHJpbmcoYXR0cmlidXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyhwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBudW1iZXJcbiAgICovXG4gIGdldE51bWJlcihhdHRyaWJ1dGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIGJvb2xlYW5cbiAgICovXG4gIGdldEJvb2xlYW4oYXR0cmlidXRlOiBzdHJpbmcpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhbnlcbiAgICovXG4gIGdldEFueShhdHRyaWJ1dGU6IHN0cmluZyk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgKHN0cmluZykgbGlzdFxuICAgKi9cbiAgZ2V0TGlzdChhdHRyaWJ1dGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gVG9rZW4uYXNMaXN0KHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIG51bWJlciBsaXN0XG4gICAqL1xuICBnZXROdW1iZXJMaXN0KGF0dHJpYnV0ZTogc3RyaW5nKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlckxpc3QocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgbWFwXG4gICAqL1xuICBnZXRNYXAoYXR0cmlidXRlOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnlNYXAocHJvcGVydHlBY2Nlc3ModGhpcy5fZ2V0VmFsdWUoKSwgW2F0dHJpYnV0ZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIHRoZSBnaXZlbiBhdHRyaWJ1dGUgb2YgdGhlIGN1cnJlbnQgaXRlbSBpdGVyYXRlZCBvdmVyIGFzIGEgbWFwIG9mIHN0cmluZ3NcbiAgICovXG4gIGdldFN0cmluZ01hcChhdHRyaWJ1dGU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgdGhlIGdpdmVuIGF0dHJpYnV0ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIgYXMgYSBtYXAgb2YgbnVtYmVyc1xuICAgKi9cbiAgZ2V0TnVtYmVyTWFwKGF0dHJpYnV0ZTogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIG1hcCBvZiBib29sZWFuc1xuICAgKi9cbiAgZ2V0Qm9vbGVhbk1hcChhdHRyaWJ1dGU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICByZXR1cm4gVG9rZW4uYXNCb29sZWFuTWFwKHByb3BlcnR5QWNjZXNzKHRoaXMuX2dldFZhbHVlKCksIFthdHRyaWJ1dGVdKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyB0aGUgZ2l2ZW4gYXR0cmlidXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3ZlciBhcyBhIG1hcCBvZiBhbnlcbiAgICovXG4gIGdldEFueU1hcChhdHRyaWJ1dGU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBUb2tlbi5hc0FueU1hcChwcm9wZXJ0eUFjY2Vzcyh0aGlzLl9nZXRWYWx1ZSgpLCBbYXR0cmlidXRlXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZSgpOiBhbnkge1xuICAgIC8vIHVzZXMgYSBMYXp5IHZhbHVlIHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBjdXJyZW50IFRlcnJhZm9ybVN0YWNrIGFuZCBwYXNzIGl0IHRvIHJlZigpXG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCkge1xuICAgICAgICAgICAgY2FzZSBcIkRZTkFNSUNfQkxPQ0tcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIHJlZihcImVhY2gudmFsdWVcIik7XG4gICAgICAgICAgICBjYXNlIFwiRk9SX0VYUFJFU1NJT05cIjpcbiAgICAgICAgICAgICAgcmV0dXJuIEZPUl9FWFBSRVNTSU9OX1ZBTFVFO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgLy8gc2FtZSBhcyBkeW5hbWljIGJsb2NrLCBhcyB0aGlzIGlzIHRoZSBjYXNlIHdoZW4gYSBpdGVyYXRvciBpcyBwYXNzZWQgdG8gdGhlIHJvb3QgbGV2ZWwgb2YgZS5nLiBhIHJlc291cmNlXG4gICAgICAgICAgICAgIHJldHVybiByZWYoXCJlYWNoLnZhbHVlXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7IGRpc3BsYXlIaW50OiBcIjxpdGVyYXRvciB2YWx1ZT5cIiB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgX2dldEtleSgpOiBhbnkge1xuICAgIC8vIHVzZXMgYSBMYXp5IHZhbHVlIHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBjdXJyZW50IFRlcnJhZm9ybVN0YWNrIGFuZCBwYXNzIGl0IHRvIHJlZigpXG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChjb250ZXh0Lml0ZXJhdG9yQ29udGV4dCkge1xuICAgICAgICAgICAgY2FzZSBcIkRZTkFNSUNfQkxPQ0tcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIHJlZihcImVhY2gua2V5XCIpO1xuICAgICAgICAgICAgY2FzZSBcIkZPUl9FWFBSRVNTSU9OXCI6XG4gICAgICAgICAgICAgIHJldHVybiBGT1JfRVhQUkVTU0lPTl9LRVk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAvLyBzYW1lIGFzIGR5bmFtaWMgYmxvY2ssIGFzIHRoaXMgaXMgdGhlIGNhc2Ugd2hlbiBhIGl0ZXJhdG9yIGlzIHBhc3NlZCB0byB0aGUgcm9vdCBsZXZlbCBvZiBlLmcuIGEgcmVzb3VyY2VcbiAgICAgICAgICAgICAgcmV0dXJuIHJlZihcImVhY2gua2V5XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7IGRpc3BsYXlIaW50OiBcIjxpdGVyYXRvciBrZXk+XCIgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkeW5hbWljIGV4cHJlc3Npb24gdGhhdCBjYW4gYmUgdXNlZCB0byBsb29wIG92ZXIgdGhpcyBpdGVyYXRvclxuICAgKiBpbiBhIGR5bmFtaWMgYmxvY2suXG4gICAqIEFzIHRoaXMgcmV0dXJucyBhbiBJUmVzb2x2YWJsZSB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSBvdXRwdXQgaW5cbiAgICogYSBUb2tlbiwgZS5nLiBgVG9rZW4uYXNTdHJpbmdgLlxuICAgKiBTZWUgaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL2l0ZXJhdG9ycyN1c2luZy1pdGVyYXRvcnMtZm9yLWxpc3QtYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIGR5bmFtaWMoYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkoXG4gICAgICBuZXcgVGVycmFmb3JtRHluYW1pY0V4cHJlc3Npb24oe1xuICAgICAgICBpdGVyYXRvcjogdGhpcyxcbiAgICAgICAgY29udGVudDogYXR0cmlidXRlcyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvciBleHByZXNzaW9uIHRoYXQgbWFwcyB0aGUgaXRlcmF0b3JzIHRvIGl0cyBrZXlzLlxuICAgKiBGb3IgbGlzdHMgdGhlc2Ugd291bGQgYmUgdGhlIGluZGljZXMsIGZvciBtYXBzIHRoZSBrZXlzLlxuICAgKiBBcyB0aGlzIHJldHVybnMgYW4gSVJlc29sdmFibGUgeW91IG1pZ2h0IG5lZWQgdG8gd3JhcCB0aGUgb3V0cHV0IGluXG4gICAqIGEgVG9rZW4sIGUuZy4gYFRva2VuLmFzU3RyaW5nYC5cbiAgICovXG4gIHB1YmxpYyBrZXlzKCk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkoXG4gICAgICBmb3JFeHByZXNzaW9uKHRoaXMuX2dldEZvckV4cHJlc3Npb25JbnB1dCgpLCBGT1JfRVhQUkVTU0lPTl9LRVkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvciBleHByZXNzaW9uIHRoYXQgbWFwcyB0aGUgaXRlcmF0b3JzIHRvIGl0cyB2YWx1ZSBpbiBjYXNlIGl0IGlzIGEgbWFwLlxuICAgKiBGb3IgbGlzdHMgdGhlc2Ugd291bGQgc3RheSB0aGUgc2FtZS5cbiAgICogQXMgdGhpcyByZXR1cm5zIGFuIElSZXNvbHZhYmxlIHlvdSBtaWdodCBuZWVkIHRvIHdyYXAgdGhlIG91dHB1dCBpblxuICAgKiBhIFRva2VuLCBlLmcuIGBUb2tlbi5hc1N0cmluZ2AuXG4gICAqL1xuICBwdWJsaWMgdmFsdWVzKCk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkoXG4gICAgICBmb3JFeHByZXNzaW9uKHRoaXMuX2dldEZvckV4cHJlc3Npb25JbnB1dCgpLCBGT1JfRVhQUkVTU0lPTl9WQUxVRSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZm9yIGV4cHJlc3Npb24gdGhhdCBhY2Nlc3NlcyB0aGUga2V5IG9uIGVhY2ggZWxlbWVudCBvZiB0aGUgaXRlcmF0b3IuXG4gICAqIEFzIHRoaXMgcmV0dXJucyBhbiBJUmVzb2x2YWJsZSB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSBvdXRwdXQgaW5cbiAgICogYSBUb2tlbiwgZS5nLiBgVG9rZW4uYXNTdHJpbmdgLlxuICAgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IG9mIHRoZSBpdGVyYXRvcnMgdmFsdWVzIHRvIG1hcCB0b1xuICAgKi9cbiAgcHVibGljIHBsdWNrUHJvcGVydHkocHJvcGVydHk6IHN0cmluZyk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkoXG4gICAgICBmb3JFeHByZXNzaW9uKFxuICAgICAgICB0aGlzLl9nZXRGb3JFeHByZXNzaW9uSW5wdXQoKSxcbiAgICAgICAgcHJvcGVydHlBY2Nlc3MoRk9SX0VYUFJFU1NJT05fVkFMVUUsIFtwcm9wZXJ0eV0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3IgZXhwcmVzc2lvbiB0aGF0IHJlc3VsdHMgaW4gYSBsaXN0LlxuICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgeW91IHRvIGNyZWF0ZSBldmVyeSBwb3NzaWJsZSBmb3IgZXhwcmVzc2lvbiwgYnV0IHJlcXVpcmVzIG1vcmUga25vd2xlZGdlIGFib3V0XG4gICAqIFRlcnJhZm9ybSdzIGZvciBleHByZXNzaW9uIHN5bnRheC5cbiAgICogRm9yIHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZXMgeW91IGNhbiB1c2Uga2V5cygpLCB2YWx1ZXMoKSwgYW5kIHBsdWNrUHJvcGVydHkoKSBpbnN0ZWFkLlxuICAgKlxuICAgKiBZb3UgbWF5IHdyaXRlIGFueSB2YWxpZCBUZXJyYWZvcm0gZm9yIGVhY2ggZXhwcmVzc2lvbiwgZS5nLlxuICAgKiBgVGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3QobXlJdGVyYXRvclNvdXJjZVZhcikuZm9yRXhwcmVzc2lvbkZvckxpc3QoXCJ2YWwuZm9vIGlmIHZhbC5iYXIgPT0gdHJ1ZVwiKWBcbiAgICogd2lsbCByZXN1bHQgaW4gYFsgZm9yIGtleSwgdmFsIGluIHZhci5teUl0ZXJhdG9yU291cmNlOiB2YWwuZm9vIGlmIHZhbC5iYXIgPT0gdHJ1ZSBdYC5cbiAgICpcbiAgICogQXMgdGhpcyByZXR1cm5zIGFuIElSZXNvbHZhYmxlIHlvdSBtaWdodCBuZWVkIHRvIHdyYXAgdGhlIG91dHB1dCBpblxuICAgKiBhIFRva2VuLCBlLmcuIGBUb2tlbi5hc1N0cmluZ2AuXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRvIHVzZSBpbiB0aGUgZm9yIG1hcHBpbmdcbiAgICovXG4gIHB1YmxpYyBmb3JFeHByZXNzaW9uRm9yTGlzdChleHByZXNzaW9uOiBzdHJpbmcgfCBJUmVzb2x2YWJsZSkge1xuICAgIHJldHVybiBUb2tlbi5hc0FueShcbiAgICAgIGZvckV4cHJlc3Npb24odGhpcy5fZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCksIGV4cHJlc3Npb24pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvciBleHByZXNzaW9uIHRoYXQgcmVzdWx0cyBpbiBhIG1hcC5cbiAgICogVGhpcyBtZXRob2QgYWxsb3dzIHlvdSB0byBjcmVhdGUgZXZlcnkgcG9zc2libGUgZm9yIGV4cHJlc3Npb24sIGJ1dCByZXF1aXJlcyBtb3JlIGtub3dsZWRnZSBhYm91dFxuICAgKiBUZXJyYWZvcm1zIGZvciBleHByZXNzaW9uIHN5bnRheC5cbiAgICogRm9yIHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZXMgeW91IGNhbiB1c2Uga2V5cygpLCB2YWx1ZXMoKSwgYW5kIHBsdWNrUHJvcGVydHkgaW5zdGVhZC5cbiAgICpcbiAgICogWW91IG1heSB3cml0ZSBhbnkgdmFsaWQgVGVycmFmb3JtIGZvciBlYWNoIGV4cHJlc3Npb24sIGUuZy5cbiAgICogYFRlcnJhZm9ybUl0ZXJhdG9yLmZyb21NYXAobXlJdGVyYXRvclNvdXJjZVZhcikuZm9yRXhwcmVzc2lvbkZvck1hcChcImtleVwiLCBcInZhbC5mb28gaWYgdmFsLmJhciA9PSB0cnVlXCIpYFxuICAgKiB3aWxsIHJlc3VsdCBpbiBgeyBmb3Iga2V5LCB2YWwgaW4gdmFyLm15SXRlcmF0b3JTb3VyY2U6IGtleSA9PiB2YWwuZm9vIGlmIHZhbC5iYXIgPT0gdHJ1ZSB9YC5cbiAgICpcbiAgICogQXMgdGhpcyByZXR1cm5zIGFuIElSZXNvbHZhYmxlIHlvdSBtaWdodCBuZWVkIHRvIHdyYXAgdGhlIG91dHB1dCBpblxuICAgKiBhIFRva2VuLCBlLmcuIGBUb2tlbi5hc1N0cmluZ2AuXG4gICAqIEBwYXJhbSBrZXlFeHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRvIHVzZSBhcyBrZXkgaW4gdGhlIGZvciBtYXBwaW5nXG4gICAqIEBwYXJhbSB2YWx1ZUV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gdXNlIGFzIHZhbHVlIGluIHRoZSBmb3IgbWFwcGluZ1xuICAgKi9cbiAgcHVibGljIGZvckV4cHJlc3Npb25Gb3JNYXAoXG4gICAga2V5RXhwcmVzc2lvbjogc3RyaW5nIHwgSVJlc29sdmFibGUsXG4gICAgdmFsdWVFeHByZXNzaW9uOiBzdHJpbmcgfCBJUmVzb2x2YWJsZSxcbiAgKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KFxuICAgICAgZm9yRXhwcmVzc2lvbihcbiAgICAgICAgdGhpcy5fZ2V0Rm9yRXhwcmVzc2lvbklucHV0KCksXG4gICAgICAgIHZhbHVlRXhwcmVzc2lvbixcbiAgICAgICAga2V5RXhwcmVzc2lvbixcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIExpc3RUZXJyYWZvcm1JdGVyYXRvciBleHRlbmRzIFRlcnJhZm9ybUl0ZXJhdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsaXN0OiBMaXN0VHlwZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IGVudHJ5IGluIHRoZSBsaXN0IG9yIHNldCB0aGF0IGlzIGJlaW5nIGl0ZXJhdGVkIG92ZXIuXG4gICAqIEZvciBsaXN0cyB0aGlzIGlzIHRoZSBzYW1lIGFzIGBpdGVyYXRvci52YWx1ZWAuIElmIHlvdSBuZWVkIHRoZSBpbmRleCxcbiAgICogdXNlIGNvdW50IHZpYSBgVGVycmFmb3JtQ291bnRgOlxuICAgKiBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvaXRlcmF0b3JzI3VzaW5nLWNvdW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGtleSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9nZXRLZXkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIHVzZWQgYnkgVGVycmFmb3JtUmVzb3VyY2UgdG8gc2V0IHRoZSBmb3JfZWFjaCBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgX2dldEZvckVhY2hFeHByZXNzaW9uKCk6IGFueSB7XG4gICAgLy8gbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIHNldCBhcyBUZXJyYWZvcm0gb25seSBhbGxvd3Mgc2V0cyBpbiBmb3JfZWFjaFxuICAgIHJldHVybiBGbi50b3NldCh0aGlzLmxpc3QpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgTWFwVGVycmFmb3JtSXRlcmF0b3IgZXh0ZW5kcyBUZXJyYWZvcm1JdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWFwOiBNYXBUeXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgdXNlZCBieSBUZXJyYWZvcm1SZXNvdXJjZSB0byBzZXQgdGhlIGZvcl9lYWNoIGV4cHJlc3Npb25cbiAgICovXG4gIHB1YmxpYyBfZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKTogYW55IHtcbiAgICAvLyBleHBsaWNpdCB3cmFwcGluZyB0byBjaXJjdW12ZW50IFwiRm91bmQgYW4gZW5jb2RlZCBtYXAgdG9rZW4gaW4gYSBzY2FsYXIgc3RyaW5nIGNvbnRleHQuXCIgZXJyb3JcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5tYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGtleSBvZiB0aGUgY3VycmVudCBlbnRyeSBpbiB0aGUgbWFwIHRoYXQgaXMgYmVpbmcgaXRlcmF0ZWQgb3Zlci5cbiAgICovXG4gIHB1YmxpYyBnZXQga2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMuX2dldEtleSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBpdGVtIGl0ZXJhdGVkIG92ZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFZhbHVlKCk7XG4gIH1cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVRlcnJhZm9ybUl0ZXJhdG9yIGV4dGVuZHMgVGVycmFmb3JtSXRlcmF0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IElUZXJyYWZvcm1SZXNvdXJjZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoZWxlbWVudC5jb3VudCkge1xuICAgICAgdGhyb3cgaXRlcmF0b3JPblJlc291cmNlV2l0aENvdW50KCk7XG4gICAgfVxuXG4gICAgaWYgKCFlbGVtZW50LmZvckVhY2gpIHtcbiAgICAgIHRocm93IGl0ZXJhdG9yT25SZXNvdXJjZVdpdGhvdXRGb3JFYWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZW50cnkgaW4gdGhlIGxpc3Qgb3Igc2V0IHRoYXQgaXMgYmVpbmcgaXRlcmF0ZWQgb3Zlci5cbiAgICogRm9yIGxpc3RzIHRoaXMgaXMgdGhlIHNhbWUgYXMgYGl0ZXJhdG9yLnZhbHVlYC4gSWYgeW91IG5lZWQgdGhlIGluZGV4LFxuICAgKiB1c2UgY291bnQgdmlhIGBUZXJyYWZvcm1Db3VudGA6XG4gICAqIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy9jb25jZXB0cy9pdGVyYXRvcnMjdXNpbmctY291bnRcbiAgICovXG4gIHB1YmxpYyBnZXQga2V5KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEtleSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGl0ZW0gaXRlcmF0ZWQgb3Zlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgdXNlZCBieSBUZXJyYWZvcm1SZXNvdXJjZSB0byBzZXQgdGhlIGZvcl9lYWNoIGV4cHJlc3Npb25cbiAgICovXG4gIHB1YmxpYyBfZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmZxbjsgLy8gbm8gd3JhcHBpbmcgbmVjZXNzYXJ5IGZvciByZXNvdXJjZXNcbiAgfVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIER5bmFtaWNMaXN0VGVycmFmb3JtSXRlcmF0b3IgZXh0ZW5kcyBNYXBUZXJyYWZvcm1JdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdDogTGlzdFR5cGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXBLZXlBdHRyaWJ1dGVOYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKGxpc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCB1c2VkIGJ5IFRlcnJhZm9ybVJlc291cmNlIHRvIHNldCB0aGUgZm9yX2VhY2ggZXhwcmVzc2lvbi5cbiAgICogQWx3YXlzIHJldHVybnMgdGhlIG1hcC13cmFwcGVkIGZvcm0gc28gZWFjaC5rZXkgaXMgdGhlIG1hcEtleUF0dHJpYnV0ZU5hbWVcbiAgICogYW5kIGVudHJpZXMgYXJlIHVuaXF1ZWx5IGtleWVkLlxuICAgKi9cbiAgcHVibGljIF9nZXRGb3JFYWNoRXhwcmVzc2lvbigpOiBhbnkge1xuICAgIC8vIFR1cm4gbGlzdCBpbnRvIGEgbWFwOiB7IGZvciBrLHYgaW4gPGlucHV0PiA6IDxrZXlFeHByZXNzaW9uPiA9PiA8dmFsdWVFeHByZXNzaW9uPiB9XG4gICAgcmV0dXJuIGZvckV4cHJlc3Npb24oXG4gICAgICB0aGlzLmxpc3QsXG4gICAgICBGT1JfRVhQUkVTU0lPTl9WQUxVRSxcbiAgICAgIEZuLmxvb2t1cE5lc3RlZChGT1JfRVhQUkVTU0lPTl9WQUxVRSwgW3RoaXMubWFwS2V5QXR0cmlidXRlTmFtZV0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIGluc2lkZSBhIGZvci1leHByZXNzaW9uIGJvZHkgd2Ugd2FsayB0aGUgcmF3IGxpc3Qgc29cbiAgICogYFsgZm9yIGtleSwgdmFsIGluIDxsaXN0PiA6IC4uLiBdYCBpdGVyYXRlcyBsaXN0IGVsZW1lbnRzIG9uY2UsXG4gICAqIHJhdGhlciB0aGFuIHRoZSBkb3VibHktd3JhcHBlZCBmb3JtIHRoZSBmb3JfZWFjaCBjb252ZXJzaW9uIHByb2R1Y2VzLlxuICAgKi9cbiAgcHVibGljIF9nZXRGb3JFeHByZXNzaW9uSW5wdXQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5saXN0O1xuICB9XG59XG4iXX0=
|
package/lib/terraform-local.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TerraformLocal = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -8,6 +7,8 @@ const tokens_1 = require("./tokens");
|
|
|
8
7
|
const tfExpression_1 = require("./tfExpression");
|
|
9
8
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
10
9
|
class TerraformLocal extends terraform_element_1.TerraformElement {
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformLocal", version: "0.25.0-pre.21" };
|
|
11
|
+
_expression;
|
|
11
12
|
constructor(scope, id, expression) {
|
|
12
13
|
super(scope, id, "local");
|
|
13
14
|
this._expression = expression;
|
|
@@ -81,6 +82,4 @@ class TerraformLocal extends terraform_element_1.TerraformElement {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
exports.TerraformLocal = TerraformLocal;
|
|
84
|
-
|
|
85
|
-
TerraformLocal[_a] = { fqn: "cdktn.TerraformLocal", version: "0.25.0-pre.2" };
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1sb2NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLDJEQUF1RDtBQUN2RCxxQ0FBaUM7QUFDakMsaURBQXFDO0FBSXJDLCtDQUErQztBQUMvQyxNQUFhLGNBQ1gsU0FBUSxvQ0FBZ0I7SUFLeEIsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxVQUFlO1FBQ3ZELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxjQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLGNBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLGNBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLGNBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLGNBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLGNBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUEsa0JBQUcsRUFBQyxTQUFTLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7b0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDdkIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDMUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3RDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7QUE1Rkgsd0NBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1FbGVtZW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWVsZW1lbnRcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyByZWYgfSBmcm9tIFwiLi90ZkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IElSZXNvbHZhYmxlIH0gZnJvbSBcIi4vdG9rZW5zL3Jlc29sdmFibGVcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1BZGRyZXNzYWJsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1hZGRyZXNzYWJsZVwiO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybUxvY2FsXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzIElUZXJyYWZvcm1BZGRyZXNzYWJsZVxue1xuICBwcml2YXRlIF9leHByZXNzaW9uOiBhbnk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZXhwcmVzc2lvbjogYW55KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBcImxvY2FsXCIpO1xuXG4gICAgdGhpcy5fZXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgc2V0IGV4cHJlc3Npb24odmFsdWU6IGFueSkge1xuICAgIHRoaXMuX2V4cHJlc3Npb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gVG9rZW4uYXNBbnkodGhpcy5pbnRlcnBvbGF0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBhc1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gVG9rZW4uYXNMaXN0KHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNTdHJpbmdNYXAoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nTWFwKHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNOdW1iZXJNYXAoKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTnVtYmVyTWFwKHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNCb29sZWFuTWFwKCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICByZXR1cm4gVG9rZW4uYXNCb29sZWFuTWFwKHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNBbnlNYXAoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55TWFwKHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNCb29sZWFuKCk6IElSZXNvbHZhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGludGVycG9sYXRpb24oKTogYW55IHtcbiAgICByZXR1cm4gcmVmKGBsb2NhbC4ke3RoaXMuZnJpZW5kbHlVbmlxdWVJZH1gLCB0aGlzLmNka3RmU3RhY2spO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2Fsczoge1xuICAgICAgICBbdGhpcy5mcmllbmRseVVuaXF1ZUlkXToge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9leHByZXNzaW9uLFxuICAgICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICAgIHR5cGU6IFwiYW55XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jYWxzOiB7XG4gICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiB0aGlzLl9leHByZXNzaW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgaWYgKCFPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICBsb2NhbDogT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGEgc3RyaW5nIHRva2VuIHJlZmVyZW5jaW5nIHRoZSB2YWx1ZSBvZiB0aGlzIGxvY2FsXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFzU3RyaW5nO1xuICB9XG59XG4iXX0=
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybS1sb2NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsMkRBQXVEO0FBQ3ZELHFDQUFpQztBQUNqQyxpREFBcUM7QUFJckMsK0NBQStDO0FBQy9DLE1BQWEsY0FDWCxTQUFRLG9DQUFnQjs7SUFHaEIsV0FBVyxDQUFNO0lBRXpCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBZTtRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sY0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sY0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxjQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxjQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxjQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxjQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxjQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFBLGtCQUFHLEVBQUMsU0FBUyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTztZQUNMLE1BQU0sRUFBRTtnQkFDTixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO29CQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQ3ZCLE9BQU8sRUFBRSxLQUFLO29CQUNkLElBQUksRUFBRSxLQUFLO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTztZQUNMLE1BQU0sRUFBRTtnQkFDTixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBNUZILHdDQTZGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtRWxlbWVudCB9IGZyb20gXCIuL3RlcnJhZm9ybS1lbGVtZW50XCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSB9IGZyb20gXCIuL3Rva2Vucy9yZXNvbHZhYmxlXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtQWRkcmVzc2FibGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYWRkcmVzc2FibGVcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Mb2NhbFxuICBleHRlbmRzIFRlcnJhZm9ybUVsZW1lbnRcbiAgaW1wbGVtZW50cyBJVGVycmFmb3JtQWRkcmVzc2FibGVcbntcbiAgcHJpdmF0ZSBfZXhwcmVzc2lvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGV4cHJlc3Npb246IGFueSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgXCJsb2NhbFwiKTtcblxuICAgIHRoaXMuX2V4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIHNldCBleHByZXNzaW9uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9leHByZXNzaW9uID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQW55KHRoaXMuaW50ZXJwb2xhdGlvbigpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXNTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBhc051bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlcih0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdCh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzU3RyaW5nTWFwKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcCh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzTnVtYmVyTWFwKCk6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0ge1xuICAgIHJldHVybiBUb2tlbi5hc051bWJlck1hcCh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzQm9vbGVhbk1hcCgpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIFRva2VuLmFzQm9vbGVhbk1hcCh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzQW55TWFwKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBUb2tlbi5hc0FueU1hcCh0aGlzLmludGVycG9sYXRpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFzQm9vbGVhbigpOiBJUmVzb2x2YWJsZSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0aW9uKCk6IGFueSB7XG4gICAgcmV0dXJuIHJlZihgbG9jYWwuJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9YCwgdGhpcy5jZGt0ZlN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2NhbHM6IHtcbiAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IHtcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fZXhwcmVzc2lvbixcbiAgICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgICB0eXBlOiBcImFueVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2Fsczoge1xuICAgICAgICBbdGhpcy5mcmllbmRseVVuaXF1ZUlkXTogdGhpcy5fZXhwcmVzc2lvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgdG9NZXRhZGF0YSgpOiBhbnkge1xuICAgIGlmICghT2JqZWN0LmtleXModGhpcy5yYXdPdmVycmlkZXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgbG9jYWw6IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBhIHN0cmluZyB0b2tlbiByZWZlcmVuY2luZyB0aGUgdmFsdWUgb2YgdGhpcyBsb2NhbFxuICAgKi9cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hc1N0cmluZztcbiAgfVxufVxuIl19
|
|
@@ -3,13 +3,46 @@
|
|
|
3
3
|
* Copyright (c) HashiCorp, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MPL-2.0
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
40
|
exports.TerraformModuleAsset = void 0;
|
|
8
41
|
exports.findLowestCommonPath = findLowestCommonPath;
|
|
9
42
|
const constructs_1 = require("constructs");
|
|
10
|
-
const path = require("path");
|
|
11
|
-
const os = require("os");
|
|
12
|
-
const fs = require("fs");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
13
46
|
const terraform_stack_1 = require("./terraform-stack");
|
|
14
47
|
const terraform_asset_1 = require("./terraform-asset");
|
|
15
48
|
const fs_1 = require("./private/fs");
|
|
@@ -27,6 +60,8 @@ const TERRAFORM_MODULE_ASSET_SYMBOL = Symbol.for("cdktf.TerraformModuleAsset");
|
|
|
27
60
|
* @internal
|
|
28
61
|
*/
|
|
29
62
|
class TerraformModuleAsset extends constructs_1.Construct {
|
|
63
|
+
relativeAssetPath;
|
|
64
|
+
asset;
|
|
30
65
|
constructor(scope, id) {
|
|
31
66
|
super(scope, id);
|
|
32
67
|
const relativeModules = this.node.tryGetContext("cdktfRelativeModules");
|
|
@@ -85,7 +120,12 @@ class TerraformModuleAsset extends constructs_1.Construct {
|
|
|
85
120
|
return path.relative(absoluteAssetPath, absoluteSourcePath);
|
|
86
121
|
}
|
|
87
122
|
getAssetPathForModule(source) {
|
|
88
|
-
|
|
123
|
+
// Terraform local module sources are always "/"-separated. path.join and
|
|
124
|
+
// path.relative produce backslashes on Windows, which would emit
|
|
125
|
+
// `source = "./assets\\...\\module"` into the synthesized configuration
|
|
126
|
+
// and Terraform would not resolve it.
|
|
127
|
+
const assetPath = path.join(this.asset.path, this.relativeModulePath(source));
|
|
128
|
+
return `./${assetPath.split(path.sep).join(path.posix.sep)}`;
|
|
89
129
|
}
|
|
90
130
|
}
|
|
91
131
|
exports.TerraformModuleAsset = TerraformModuleAsset;
|
|
@@ -107,4 +147,4 @@ function findLowestCommonPath(paths) {
|
|
|
107
147
|
const relativePath = path.relative(process.cwd(), absolutePathPrefix);
|
|
108
148
|
return relativePath === "" ? "." : relativePath;
|
|
109
149
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQW9ISCxvREFtQkM7QUFySUQsMkNBQXVDO0FBQ3ZDLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLHVEQUFtRDtBQUNuRCx1REFBOEQ7QUFDOUQscUNBQWtEO0FBQ2xELHlDQUFvRDtBQUVwRCxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUdqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZUFBZSxHQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0scUJBQXFCLEdBQXVCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUN2RSw0QkFBNEIsQ0FDN0IsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUNiLHdoQkFBd2hCLENBQ3poQixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNuRCxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDcEQsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7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QUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhELDZHQUE2RztJQUM3RyxJQUFJLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxPQUNFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdELGtCQUFrQixLQUFLLEdBQUcsRUFDMUIsQ0FBQztRQUNELGtCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN0RSxPQUFPLFlBQVksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiLi90ZXJyYWZvcm0tc3RhY2tcIjtcbmltcG9ydCB7IEFzc2V0VHlwZSwgVGVycmFmb3JtQXNzZXQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tYXNzZXRcIjtcbmltcG9ydCB7IGNvcHlTeW5jLCBoYXNoUGF0aCB9IGZyb20gXCIuL3ByaXZhdGUvZnNcIjtcbmltcG9ydCB7IENBTk9OSUNBTF9BU1NFVF9IQVNIRVMgfSBmcm9tIFwiLi9mZWF0dXJlc1wiO1xuXG5jb25zdCBURVJSQUZPUk1fTU9EVUxFX0FTU0VUX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi5UZXJyYWZvcm1Nb2R1bGVBc3NldFwiKTtcblxuLyoqXG4gKiBUaGlzIENvbnN0cnVjdCBpcyBiZWluZyBjcmVhdGVkIGFzIGEgc2luZ2xldG9uIHdoZW5ldmVyIHRoZSBmaXJzdFxuICogVGVycmFmb3JtTW9kdWxlIHdpdGggYSBsb2NhbCBzb3VyY2UgaXMgY3JlYXRlZCBpbiBhIHN0YWNrLlxuICpcbiAqIFdoZW4gVGVycmFmb3JtIG1vZHVsZXMgZGVwZW5kIG9uIGxvY2FsIG1vZHVsZXMsIHRoZSBsb2NhbCBtb2R1bGVzXG4gKiB0aGV5IGRlcGVuZCBvbiBuZWVkIHRvIGhhdmUgdGhlIGNvcnJlY3QgcmVsYXRpdmUgcGF0aCB0byB0aGUgbW9kdWxlXG4gKiBpbiB0aGUgYXNzZXQuIFRoaXMgb25seSB3b3JrcyBpZiBhbGwgbW9kdWxlcyBhcmUgaW4gb25lIGFzc2V0LlxuICpcbiAqIChXZSBjb3VsZCB0aGVvcmV0aWNhbGx5IGRldGVjdCBpZiBhIG1vZHVsZSB1c2VzIHJlbGF0aXZlIHBhdGggcmVmZXJlbmNlcywgYnV0IHRoaXMgaXMgZWFzaWVyKVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGVBc3NldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRpdmVBc3NldFBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogVGVycmFmb3JtQXNzZXQ7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVsYXRpdmVNb2R1bGVzOiBBcnJheTxzdHJpbmcgfCB7IHNvdXJjZTogc3RyaW5nIH0+IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMubm9kZS50cnlHZXRDb250ZXh0KFwiY2RrdGZSZWxhdGl2ZU1vZHVsZXNcIik7XG4gICAgY29uc3Qgc3RhdGljTW9kdWxlQXNzZXRIYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChcbiAgICAgIFwiY2RrdGZTdGF0aWNNb2R1bGVBc3NldEhhc2hcIixcbiAgICApO1xuXG4gICAgaWYgKCFyZWxhdGl2ZU1vZHVsZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJZb3UgYXJlIHRyeWluZyB0byB1c2UgYSBsb2NhbCBtb2R1bGUgd2l0aCBhIHJlbGF0aXZlIHBhdGgsIGJ1dCB0aGUgY2RrdGZSZWxhdGl2ZU1vZHVsZXMgY29udGV4dCBpcyBub3Qgc2V0LiBJdCBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIHJlbGF0aXZlIHBhdGhzIHRvIHRoZSByZWxhdGl2ZSBtb2R1bGVzIHlvdXIgYXBwIGlzIHVzaW5nLiBZb3UgZWl0aGVyIG5lZWQgdG8gc3VwcGx5IGl0IGluIHRoZSBBcHBzIGNvbnN0cnVjdG9yIHZpYSB0aGUgY29udGV4dCBvcHRpb24gb3IgaW52b2tlIHRoZSBzeW50aGVzaXMgdGhyb3VnaCB0aGUgQ0xJLiBXZSBuZWVkIHRoaXMgaW5mb3JtYXRpb24gc28gdGhhdCBhc3NldHMgd2l0aCByZWxhdGl2ZSBwYXRocyBhcmUgcHJvcGVybHkgaGFuZGxlZCB3aGVuIHVzZWQgd2l0aCBhc3NldHMsIHNvIHlvdSBjYW4gYWxzbyBzZXQgdGhlIHNraXBBc3NldENyZWF0aW9uRnJvbUxvY2FsTW9kdWxlcyB0byB0cnVlIG9uIHlvdXIgcmVsYXRpdmUgbW9kdWxlcy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlU291cmNlcyA9IHJlbGF0aXZlTW9kdWxlcy5tYXAoKG1vZHVsZSkgPT5cbiAgICAgIHR5cGVvZiBtb2R1bGUgPT09IFwic3RyaW5nXCIgPyBtb2R1bGUgOiBtb2R1bGUuc291cmNlLFxuICAgICk7XG5cbiAgICBjb25zdCByZWxhdGl2ZUFzc2V0UGF0aCA9IGZpbmRMb3dlc3RDb21tb25QYXRoKG1vZHVsZVNvdXJjZXMpO1xuICAgIGlmICghcmVsYXRpdmVBc3NldFBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDb3VsZCBub3QgZmluZCBsb3dlc3QgY29tbW9uIHBhdGggZm9yIHJlbGF0aXZlIG1vZHVsZXMuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIHlvdSBtaWdodCBiZSBvdmVyd3JpdGluZyB0aGUgY2RrdGZSZWxhdGl2ZU1vZHVsZXMgdmFsdWUgb2YgdGhlIGNvbnRleHQgd2l0aCBzb21ldGhpbmcgdW5leHBlY3RlZC4gV2UgZXhwZWN0IGFuIGFycmF5IG9mIHN0cmluZyBvciBvYmplY3RzIHdpdGggYSBzb3VyY2UgYXR0cmlidXRlIHdoZXJlIHRoZSBzdHJpbmcgb3IgdGhlIHNvdXJjZSBhdHRyaWJ1dGUgcmVmZXJlbmNlIGEgcmVsYXRpdmUgcGF0aCB0byBhIG1vZHVsZS4gVGhlIGNvbnRleHQgY2FuIGJlIHNldCBpbiB0aGUgY29udGV4dCBvcHRpb24gb2YgdGhlIEFwcCBDb25zdHJ1Y3RvciBPcHRpb25zLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZWxhdGl2ZUFzc2V0UGF0aCA9IHJlbGF0aXZlQXNzZXRQYXRoO1xuXG4gICAgLy8gQ3JlYXRlIGEgdG1wIGRpciBmb3IgdGhlIGFzc2V0XG4gICAgY29uc3QgdG1wRGlyID0gZnMubWtkdGVtcFN5bmMoXG4gICAgICBwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYtbW9kdWxlLWFzc2V0LVwiKSxcbiAgICApO1xuXG4gICAgLy8gQ29weSBhbGwgbW9kdWxlcyBpbnRvIHRoZSB0bXAgZGlyXG4gICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbW9kdWxlU291cmNlcykge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5qb2luKHRtcERpciwgdGhpcy5yZWxhdGl2ZU1vZHVsZVBhdGgobW9kdWxlKSk7XG4gICAgICBjb3B5U3luYyhtb2R1bGUsIHRhcmdldCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGFzc2V0IGJhc2VkIG9uIHRtcCBkaXJcbiAgICBjb25zdCBjYW5vbmljYWwgPSAhIXRoaXMubm9kZS50cnlHZXRDb250ZXh0KENBTk9OSUNBTF9BU1NFVF9IQVNIRVMpO1xuICAgIHRoaXMuYXNzZXQgPSBuZXcgVGVycmFmb3JtQXNzZXQodGhpcywgXCJhc3NldFwiLCB7XG4gICAgICBwYXRoOiB0bXBEaXIsXG4gICAgICB0eXBlOiBBc3NldFR5cGUuRElSRUNUT1JZLFxuICAgICAgLy8gVGhlIGVtaXR0ZWQgYXNzZXQgaXMgb25seSB0aGUgbW9kdWxlIHNvdXJjZXMgY29waWVkIGludG8gdG1wRGlyLCBzb1xuICAgICAgLy8gdGhlIGNhbm9uaWNhbCBzY2hlbWUgaGFzaGVzIHRoYXQgZXhhY3QgdHJlZSDigJQgdW5yZWxhdGVkIHNpYmxpbmdzXG4gICAgICAvLyB1bmRlciB0aGUgc291cmNlcycgY29tbW9uIGFuY2VzdG9yIGNhbm5vdCBjaHVybiB0aGUgaGFzaC4gTGVnYWN5XG4gICAgICAvLyBrZWVwcyBoYXNoaW5nIHRoZSBhbmNlc3RvciB0byBwcmVzZXJ2ZSBoaXN0b3JpY2FsIGhhc2hlcy5cbiAgICAgIGFzc2V0SGFzaDpcbiAgICAgICAgc3RhdGljTW9kdWxlQXNzZXRIYXNoID8/XG4gICAgICAgIChjYW5vbmljYWxcbiAgICAgICAgICA/IGhhc2hQYXRoKHRtcERpciwgeyBjYW5vbmljYWw6IHRydWUgfSlcbiAgICAgICAgICA6IGhhc2hQYXRoKHJlbGF0aXZlQXNzZXRQYXRoKSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKGNvbnN0cnVjdDogQ29uc3RydWN0KTogVGVycmFmb3JtTW9kdWxlQXNzZXQge1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcblxuICAgIGxldCBhc3NldCA9IChzdGFjayBhcyBhbnkpW1RFUlJBRk9STV9NT0RVTEVfQVNTRVRfU1lNQk9MXTtcbiAgICBpZiAoIWFzc2V0KSB7XG4gICAgICBhc3NldCA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVBc3NldChzdGFjaywgXCJfX2Nka3RmX21vZHVsZV9hc3NldFwiKTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0YWNrLCBURVJSQUZPUk1fTU9EVUxFX0FTU0VUX1NZTUJPTCwge1xuICAgICAgICB2YWx1ZTogYXNzZXQsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgc291cmNlIGlzIHJlbGF0aXZlIHRvIGN3ZCwgYnV0IHdlIHdhbnQgdGhlIHZhbHVlIHJlbGF0aXZlXG4gICAqIHRvIHRoZSBhc3NldHMgdGFyZ2V0LCBzbyB0aGUgY29tbW9uIHBhdGggcHJlZml4XG4gICAqL1xuICBwcml2YXRlIHJlbGF0aXZlTW9kdWxlUGF0aChzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYWJzb2x1dGVTb3VyY2VQYXRoID0gcGF0aC5yZXNvbHZlKHNvdXJjZSk7XG4gICAgY29uc3QgYWJzb2x1dGVBc3NldFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5yZWxhdGl2ZUFzc2V0UGF0aCk7XG4gICAgcmV0dXJuIHBhdGgucmVsYXRpdmUoYWJzb2x1dGVBc3NldFBhdGgsIGFic29sdXRlU291cmNlUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXNzZXRQYXRoRm9yTW9kdWxlKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC4vJHtwYXRoLmpvaW4odGhpcy5hc3NldC5wYXRoLCB0aGlzLnJlbGF0aXZlTW9kdWxlUGF0aChzb3VyY2UpKX1gO1xuICB9XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGxvd2VzdCBjb21tb24gcGF0aCBvZiBhbGwgcmVsYXRpY3ZlIHBhdGhzIGluIHRoZSBnaXZlbiBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZExvd2VzdENvbW1vblBhdGgocGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBXZSBmaXJzdCBuZWVkIHRvIG1ha2UgdGhlIHBhdGhzIGFic29sdXRlIHNvIHRoYXQgd2UgY2FuIGNvbXBhcmUgdGhlbVxuICBjb25zdCBhYnNvbHV0ZVBhdGhzID0gcGF0aHMubWFwKChwKSA9PiBwYXRoLnJlc29sdmUocCkpO1xuXG4gIC8vIFdlIHRha2UgdGhlIGZpcnN0IHBhdGggYXMgdGhlIGJhc2UgYW5kIHRoZW4gcmVtb3ZlIHBhcnRzIGZyb20gdGhlIGVuZCB1bnRpbCB3ZSBmaW5kIHRoZSBsb3dlc3QgY29tbW9uIHBhdGhcbiAgbGV0IGFic29sdXRlUGF0aFByZWZpeCA9IGFic29sdXRlUGF0aHNbMF07XG4gIHdoaWxlIChcbiAgICAhYWJzb2x1dGVQYXRocy5ldmVyeSgocCkgPT4gcC5zdGFydHNXaXRoKGFic29sdXRlUGF0aFByZWZpeCkpICYmXG4gICAgYWJzb2x1dGVQYXRoUHJlZml4ICE9PSBcIi9cIlxuICApIHtcbiAgICBhYnNvbHV0ZVBhdGhQcmVmaXggPSBwYXRoLmRpcm5hbWUoYWJzb2x1dGVQYXRoUHJlZml4KTtcbiAgfVxuXG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgYWJzb2x1dGVQYXRoUHJlZml4KTtcbiAgcmV0dXJuIHJlbGF0aXZlUGF0aCA9PT0gXCJcIiA/IFwiLlwiIDogcmVsYXRpdmVQYXRoO1xufVxuIl19
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS1hc3NldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRISCxvREFtQkM7QUE3SUQsMkNBQXVDO0FBQ3ZDLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLHVEQUFtRDtBQUNuRCx1REFBOEQ7QUFDOUQscUNBQWtEO0FBQ2xELHlDQUFvRDtBQUVwRCxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUUvRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUNoQyxpQkFBaUIsQ0FBUztJQUMxQixLQUFLLENBQWlCO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEQsTUFBTSxxQkFBcUIsR0FBdUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3ZFLDRCQUE0QixDQUM3QixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ2Isd2hCQUF3aEIsQ0FDemhCLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25ELE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNwRCxDQUFDO1FBRUYsTUFBTSxpQkFB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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUEvRkQsb0RBK0ZDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFlO0lBQ2xELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RCw2R0FBNkc7SUFDN0csSUFBSSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FDRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCxrQkFBa0IsS0FBSyxHQUFHLEVBQzFCLENBQUM7UUFDRCxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDdEUsT0FBTyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcIi4vdGVycmFmb3JtLXN0YWNrXCI7XG5pbXBvcnQgeyBBc3NldFR5cGUsIFRlcnJhZm9ybUFzc2V0IH0gZnJvbSBcIi4vdGVycmFmb3JtLWFzc2V0XCI7XG5pbXBvcnQgeyBjb3B5U3luYywgaGFzaFBhdGggfSBmcm9tIFwiLi9wcml2YXRlL2ZzXCI7XG5pbXBvcnQgeyBDQU5PTklDQUxfQVNTRVRfSEFTSEVTIH0gZnJvbSBcIi4vZmVhdHVyZXNcIjtcblxuY29uc3QgVEVSUkFGT1JNX01PRFVMRV9BU1NFVF9TWU1CT0wgPSBTeW1ib2wuZm9yKFwiY2RrdGYuVGVycmFmb3JtTW9kdWxlQXNzZXRcIik7XG5cbi8qKlxuICogVGhpcyBDb25zdHJ1Y3QgaXMgYmVpbmcgY3JlYXRlZCBhcyBhIHNpbmdsZXRvbiB3aGVuZXZlciB0aGUgZmlyc3RcbiAqIFRlcnJhZm9ybU1vZHVsZSB3aXRoIGEgbG9jYWwgc291cmNlIGlzIGNyZWF0ZWQgaW4gYSBzdGFjay5cbiAqXG4gKiBXaGVuIFRlcnJhZm9ybSBtb2R1bGVzIGRlcGVuZCBvbiBsb2NhbCBtb2R1bGVzLCB0aGUgbG9jYWwgbW9kdWxlc1xuICogdGhleSBkZXBlbmQgb24gbmVlZCB0byBoYXZlIHRoZSBjb3JyZWN0IHJlbGF0aXZlIHBhdGggdG8gdGhlIG1vZHVsZVxuICogaW4gdGhlIGFzc2V0LiBUaGlzIG9ubHkgd29ya3MgaWYgYWxsIG1vZHVsZXMgYXJlIGluIG9uZSBhc3NldC5cbiAqXG4gKiAoV2UgY291bGQgdGhlb3JldGljYWxseSBkZXRlY3QgaWYgYSBtb2R1bGUgdXNlcyByZWxhdGl2ZSBwYXRoIHJlZmVyZW5jZXMsIGJ1dCB0aGlzIGlzIGVhc2llcilcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlQXNzZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGF0aXZlQXNzZXRQYXRoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZXQ6IFRlcnJhZm9ybUFzc2V0O1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlbGF0aXZlTW9kdWxlczogQXJyYXk8c3RyaW5nIHwgeyBzb3VyY2U6IHN0cmluZyB9PiB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChcImNka3RmUmVsYXRpdmVNb2R1bGVzXCIpO1xuICAgIGNvbnN0IHN0YXRpY01vZHVsZUFzc2V0SGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5ub2RlLnRyeUdldENvbnRleHQoXG4gICAgICBcImNka3RmU3RhdGljTW9kdWxlQXNzZXRIYXNoXCIsXG4gICAgKTtcblxuICAgIGlmICghcmVsYXRpdmVNb2R1bGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiWW91IGFyZSB0cnlpbmcgdG8gdXNlIGEgbG9jYWwgbW9kdWxlIHdpdGggYSByZWxhdGl2ZSBwYXRoLCBidXQgdGhlIGNka3RmUmVsYXRpdmVNb2R1bGVzIGNvbnRleHQgaXMgbm90IHNldC4gSXQgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBjb250YWluaW5nIHRoZSByZWxhdGl2ZSBwYXRocyB0byB0aGUgcmVsYXRpdmUgbW9kdWxlcyB5b3VyIGFwcCBpcyB1c2luZy4gWW91IGVpdGhlciBuZWVkIHRvIHN1cHBseSBpdCBpbiB0aGUgQXBwcyBjb25zdHJ1Y3RvciB2aWEgdGhlIGNvbnRleHQgb3B0aW9uIG9yIGludm9rZSB0aGUgc3ludGhlc2lzIHRocm91Z2ggdGhlIENMSS4gV2UgbmVlZCB0aGlzIGluZm9ybWF0aW9uIHNvIHRoYXQgYXNzZXRzIHdpdGggcmVsYXRpdmUgcGF0aHMgYXJlIHByb3Blcmx5IGhhbmRsZWQgd2hlbiB1c2VkIHdpdGggYXNzZXRzLCBzbyB5b3UgY2FuIGFsc28gc2V0IHRoZSBza2lwQXNzZXRDcmVhdGlvbkZyb21Mb2NhbE1vZHVsZXMgdG8gdHJ1ZSBvbiB5b3VyIHJlbGF0aXZlIG1vZHVsZXMuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZVNvdXJjZXMgPSByZWxhdGl2ZU1vZHVsZXMubWFwKChtb2R1bGUpID0+XG4gICAgICB0eXBlb2YgbW9kdWxlID09PSBcInN0cmluZ1wiID8gbW9kdWxlIDogbW9kdWxlLnNvdXJjZSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVsYXRpdmVBc3NldFBhdGggPSBmaW5kTG93ZXN0Q29tbW9uUGF0aChtb2R1bGVTb3VyY2VzKTtcbiAgICBpZiAoIXJlbGF0aXZlQXNzZXRQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ291bGQgbm90IGZpbmQgbG93ZXN0IGNvbW1vbiBwYXRoIGZvciByZWxhdGl2ZSBtb2R1bGVzLiBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCB5b3UgbWlnaHQgYmUgb3ZlcndyaXRpbmcgdGhlIGNka3RmUmVsYXRpdmVNb2R1bGVzIHZhbHVlIG9mIHRoZSBjb250ZXh0IHdpdGggc29tZXRoaW5nIHVuZXhwZWN0ZWQuIFdlIGV4cGVjdCBhbiBhcnJheSBvZiBzdHJpbmcgb3Igb2JqZWN0cyB3aXRoIGEgc291cmNlIGF0dHJpYnV0ZSB3aGVyZSB0aGUgc3RyaW5nIG9yIHRoZSBzb3VyY2UgYXR0cmlidXRlIHJlZmVyZW5jZSBhIHJlbGF0aXZlIHBhdGggdG8gYSBtb2R1bGUuIFRoZSBjb250ZXh0IGNhbiBiZSBzZXQgaW4gdGhlIGNvbnRleHQgb3B0aW9uIG9mIHRoZSBBcHAgQ29uc3RydWN0b3IgT3B0aW9ucy5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVsYXRpdmVBc3NldFBhdGggPSByZWxhdGl2ZUFzc2V0UGF0aDtcblxuICAgIC8vIENyZWF0ZSBhIHRtcCBkaXIgZm9yIHRoZSBhc3NldFxuICAgIGNvbnN0IHRtcERpciA9IGZzLm1rZHRlbXBTeW5jKFxuICAgICAgcGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImNka3RmLW1vZHVsZS1hc3NldC1cIiksXG4gICAgKTtcblxuICAgIC8vIENvcHkgYWxsIG1vZHVsZXMgaW50byB0aGUgdG1wIGRpclxuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZVNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHBhdGguam9pbih0bXBEaXIsIHRoaXMucmVsYXRpdmVNb2R1bGVQYXRoKG1vZHVsZSkpO1xuICAgICAgY29weVN5bmMobW9kdWxlLCB0YXJnZXQpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhc3NldCBiYXNlZCBvbiB0bXAgZGlyXG4gICAgY29uc3QgY2Fub25pY2FsID0gISF0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChDQU5PTklDQUxfQVNTRVRfSEFTSEVTKTtcbiAgICB0aGlzLmFzc2V0ID0gbmV3IFRlcnJhZm9ybUFzc2V0KHRoaXMsIFwiYXNzZXRcIiwge1xuICAgICAgcGF0aDogdG1wRGlyLFxuICAgICAgdHlwZTogQXNzZXRUeXBlLkRJUkVDVE9SWSxcbiAgICAgIC8vIFRoZSBlbWl0dGVkIGFzc2V0IGlzIG9ubHkgdGhlIG1vZHVsZSBzb3VyY2VzIGNvcGllZCBpbnRvIHRtcERpciwgc29cbiAgICAgIC8vIHRoZSBjYW5vbmljYWwgc2NoZW1lIGhhc2hlcyB0aGF0IGV4YWN0IHRyZWUg4oCUIHVucmVsYXRlZCBzaWJsaW5nc1xuICAgICAgLy8gdW5kZXIgdGhlIHNvdXJjZXMnIGNvbW1vbiBhbmNlc3RvciBjYW5ub3QgY2h1cm4gdGhlIGhhc2guIExlZ2FjeVxuICAgICAgLy8ga2VlcHMgaGFzaGluZyB0aGUgYW5jZXN0b3IgdG8gcHJlc2VydmUgaGlzdG9yaWNhbCBoYXNoZXMuXG4gICAgICBhc3NldEhhc2g6XG4gICAgICAgIHN0YXRpY01vZHVsZUFzc2V0SGFzaCA/P1xuICAgICAgICAoY2Fub25pY2FsXG4gICAgICAgICAgPyBoYXNoUGF0aCh0bXBEaXIsIHsgY2Fub25pY2FsOiB0cnVlIH0pXG4gICAgICAgICAgOiBoYXNoUGF0aChyZWxhdGl2ZUFzc2V0UGF0aCkpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZihjb25zdHJ1Y3Q6IENvbnN0cnVjdCk6IFRlcnJhZm9ybU1vZHVsZUFzc2V0IHtcbiAgICBjb25zdCBzdGFjayA9IFRlcnJhZm9ybVN0YWNrLm9mKGNvbnN0cnVjdCk7XG5cbiAgICBsZXQgYXNzZXQgPSAoc3RhY2sgYXMgYW55KVtURVJSQUZPUk1fTU9EVUxFX0FTU0VUX1NZTUJPTF07XG4gICAgaWYgKCFhc3NldCkge1xuICAgICAgYXNzZXQgPSBuZXcgVGVycmFmb3JtTW9kdWxlQXNzZXQoc3RhY2ssIFwiX19jZGt0Zl9tb2R1bGVfYXNzZXRcIik7XG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdGFjaywgVEVSUkFGT1JNX01PRFVMRV9BU1NFVF9TWU1CT0wsIHtcbiAgICAgICAgdmFsdWU6IGFzc2V0LFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYXNzZXQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHNvdXJjZSBpcyByZWxhdGl2ZSB0byBjd2QsIGJ1dCB3ZSB3YW50IHRoZSB2YWx1ZSByZWxhdGl2ZVxuICAgKiB0byB0aGUgYXNzZXRzIHRhcmdldCwgc28gdGhlIGNvbW1vbiBwYXRoIHByZWZpeFxuICAgKi9cbiAgcHJpdmF0ZSByZWxhdGl2ZU1vZHVsZVBhdGgoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFic29sdXRlU291cmNlUGF0aCA9IHBhdGgucmVzb2x2ZShzb3VyY2UpO1xuICAgIGNvbnN0IGFic29sdXRlQXNzZXRQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMucmVsYXRpdmVBc3NldFBhdGgpO1xuICAgIHJldHVybiBwYXRoLnJlbGF0aXZlKGFic29sdXRlQXNzZXRQYXRoLCBhYnNvbHV0ZVNvdXJjZVBhdGgpO1xuICB9XG5cbiAgcHVibGljIGdldEFzc2V0UGF0aEZvck1vZHVsZShzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gVGVycmFmb3JtIGxvY2FsIG1vZHVsZSBzb3VyY2VzIGFyZSBhbHdheXMgXCIvXCItc2VwYXJhdGVkLiBwYXRoLmpvaW4gYW5kXG4gICAgLy8gcGF0aC5yZWxhdGl2ZSBwcm9kdWNlIGJhY2tzbGFzaGVzIG9uIFdpbmRvd3MsIHdoaWNoIHdvdWxkIGVtaXRcbiAgICAvLyBgc291cmNlID0gXCIuL2Fzc2V0c1xcXFwuLi5cXFxcbW9kdWxlXCJgIGludG8gdGhlIHN5bnRoZXNpemVkIGNvbmZpZ3VyYXRpb25cbiAgICAvLyBhbmQgVGVycmFmb3JtIHdvdWxkIG5vdCByZXNvbHZlIGl0LlxuICAgIGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbihcbiAgICAgIHRoaXMuYXNzZXQucGF0aCxcbiAgICAgIHRoaXMucmVsYXRpdmVNb2R1bGVQYXRoKHNvdXJjZSksXG4gICAgKTtcbiAgICByZXR1cm4gYC4vJHthc3NldFBhdGguc3BsaXQocGF0aC5zZXApLmpvaW4ocGF0aC5wb3NpeC5zZXApfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgbG93ZXN0IGNvbW1vbiBwYXRoIG9mIGFsbCByZWxhdGljdmUgcGF0aHMgaW4gdGhlIGdpdmVuIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTG93ZXN0Q29tbW9uUGF0aChwYXRoczogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIGZpcnN0IG5lZWQgdG8gbWFrZSB0aGUgcGF0aHMgYWJzb2x1dGUgc28gdGhhdCB3ZSBjYW4gY29tcGFyZSB0aGVtXG4gIGNvbnN0IGFic29sdXRlUGF0aHMgPSBwYXRocy5tYXAoKHApID0+IHBhdGgucmVzb2x2ZShwKSk7XG5cbiAgLy8gV2UgdGFrZSB0aGUgZmlyc3QgcGF0aCBhcyB0aGUgYmFzZSBhbmQgdGhlbiByZW1vdmUgcGFydHMgZnJvbSB0aGUgZW5kIHVudGlsIHdlIGZpbmQgdGhlIGxvd2VzdCBjb21tb24gcGF0aFxuICBsZXQgYWJzb2x1dGVQYXRoUHJlZml4ID0gYWJzb2x1dGVQYXRoc1swXTtcbiAgd2hpbGUgKFxuICAgICFhYnNvbHV0ZVBhdGhzLmV2ZXJ5KChwKSA9PiBwLnN0YXJ0c1dpdGgoYWJzb2x1dGVQYXRoUHJlZml4KSkgJiZcbiAgICBhYnNvbHV0ZVBhdGhQcmVmaXggIT09IFwiL1wiXG4gICkge1xuICAgIGFic29sdXRlUGF0aFByZWZpeCA9IHBhdGguZGlybmFtZShhYnNvbHV0ZVBhdGhQcmVmaXgpO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBhYnNvbHV0ZVBhdGhQcmVmaXgpO1xuICByZXR1cm4gcmVsYXRpdmVQYXRoID09PSBcIlwiID8gXCIuXCIgOiByZWxhdGl2ZVBhdGg7XG59XG4iXX0=
|
package/lib/terraform-module.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TerraformModule = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -20,6 +19,13 @@ const terraform_module_asset_1 = require("./terraform-module-asset");
|
|
|
20
19
|
* you should use Constructs instead, see http://cdk.tf/constructs for more details.
|
|
21
20
|
*/
|
|
22
21
|
class TerraformModule extends terraform_element_1.TerraformElement {
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TerraformModule", version: "0.25.0-pre.21" };
|
|
23
|
+
source;
|
|
24
|
+
version;
|
|
25
|
+
_providers;
|
|
26
|
+
dependsOn;
|
|
27
|
+
forEach;
|
|
28
|
+
skipAssetCreationFromLocalModules;
|
|
23
29
|
constructor(scope, id, options) {
|
|
24
30
|
super(scope, id, "module");
|
|
25
31
|
this.source = options.source;
|
|
@@ -171,6 +177,4 @@ class TerraformModule extends terraform_element_1.TerraformElement {
|
|
|
171
177
|
}
|
|
172
178
|
}
|
|
173
179
|
exports.TerraformModule = TerraformModule;
|
|
174
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
175
|
-
TerraformModule[_a] = { fqn: "cdktn.TerraformModule", version: "0.25.0-pre.2" };
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUN6RCxpQ0FBbUM7QUFFbkMscUNBQWlDO0FBQ2pDLGlEQUFpRDtBQUVqRCxxQ0FBNEU7QUFDNUUscUVBQWdFO0FBbUJoRTs7Ozs7Ozs7R0FRRztBQUNILE1BQXNCLGVBQ3BCLFNBQVEsb0NBQWdCO0lBVXhCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsT0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hFLGtHQUFrRztnQkFDbEcsSUFBSSxDQUFDLE1BQU0sR0FBRyw2Q0FBb0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQ2hFLE9BQU8sQ0FBQyxNQUFNLENBQ2YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFP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QUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9CLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBQSw2QkFBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFyTUgsMENBc01DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1FbGVtZW50IH0gZnJvbSBcIi4vdGVycmFmb3JtLWVsZW1lbnRcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4vdGVycmFmb3JtLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtRGVwZW5kYWJsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1kZXBlbmRhYmxlXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCIuL3Rva2Vuc1wiO1xuaW1wb3J0IHsgcmVmLCBkZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGZFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBJVGVycmFmb3JtSXRlcmF0b3IgfSBmcm9tIFwiLi90ZXJyYWZvcm0taXRlcmF0b3JcIjtcbmltcG9ydCB7IG1vZHVsZXNXaXRoU2FtZUFsaWFzLCB0ZXJyYWZvcm1Nb2R1bGVIYXNDaGlsZHJlbiB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtTW9kdWxlQXNzZXQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tbW9kdWxlLWFzc2V0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtTW9kdWxlVXNlckNvbmZpZyB7XG4gIHJlYWRvbmx5IHByb3ZpZGVycz86IChUZXJyYWZvcm1Qcm92aWRlciB8IFRlcnJhZm9ybU1vZHVsZVByb3ZpZGVyKVtdO1xuICByZWFkb25seSBkZXBlbmRzT24/OiBJVGVycmFmb3JtRGVwZW5kYWJsZVtdO1xuICByZWFkb25seSBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuICByZWFkb25seSBza2lwQXNzZXRDcmVhdGlvbkZyb21Mb2NhbE1vZHVsZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybU1vZHVsZUNvbmZpZyBleHRlbmRzIFRlcnJhZm9ybU1vZHVsZVVzZXJDb25maWcge1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1Nb2R1bGVQcm92aWRlciB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBUZXJyYWZvcm1Qcm92aWRlcjtcbiAgcmVhZG9ubHkgbW9kdWxlQWxpYXM6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm1Nb2R1bGUgY2FuIGJlIHVzZWQgdG8gcmVmZXJlbmNlIGEgbG9jYWwgdGVycmFmb3JtIG1vZHVsZSBvciBhIG1vZHVsZSBmcm9tIHRoZSBUZXJyYWZvcm0gUmVnaXN0cnkuXG4gKiBJdCBzaG91bGQgYmUgdXNlZCBpZiB5b3UgY2FuIG5vdCB1c2UgZ2VuZXJhdGVkIGJpbmRpbmdzIGZvciB0aGUgbW9kdWxlIGFzIHlvdSB3b3VsZCBnZXQgYnkgYWRkaW5nIHRoZSBtb2R1bGVcbiAqIHRvIHlvdXIgY2RrdGYuanNvbiBmaWxlcyBcInRlcnJhZm9ybU1vZHVsZXNcIiBhcnJheSBhbmQgcnVubmluZyBjZGt0biBnZXQuXG4gKlxuICogVGhpcyBjbGFzcyBpcyBub3QgY3JlYXRpbmcgYSBUZXJyYWZvcm0gbW9kdWxlIHRvIGJlIHVzZWQgb3V0c2lkZSBvZiBDREtUTi5cbiAqIElmIHlvdSB3YW50IHRvIGJ1bmRsZSBjZXJ0YWluIHJlc291cmNlcyB0b2dldGhlciBsaWtlIHlvdSB3b3VsZCBkbyB3aXRoIGEgVGVycmFmb3JtIG1vZHVsZSxcbiAqIHlvdSBzaG91bGQgdXNlIENvbnN0cnVjdHMgaW5zdGVhZCwgc2VlIGh0dHA6Ly9jZGsudGYvY29uc3RydWN0cyBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVycmFmb3JtTW9kdWxlXG4gIGV4dGVuZHMgVGVycmFmb3JtRWxlbWVudFxuICBpbXBsZW1lbnRzIElUZXJyYWZvcm1EZXBlbmRhYmxlXG57XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3Byb3ZpZGVycz86IChUZXJyYWZvcm1Qcm92aWRlciB8IFRlcnJhZm9ybU1vZHVsZVByb3ZpZGVyKVtdO1xuICBwdWJsaWMgZGVwZW5kc09uPzogc3RyaW5nW107XG4gIHB1YmxpYyBmb3JFYWNoPzogSVRlcnJhZm9ybUl0ZXJhdG9yO1xuICBwdWJsaWMgcmVhZG9ubHkgc2tpcEFzc2V0Q3JlYXRpb25Gcm9tTG9jYWxNb2R1bGVzPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBUZXJyYWZvcm1Nb2R1bGVDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFwibW9kdWxlXCIpO1xuXG4gICAgdGhpcy5zb3VyY2UgPSBvcHRpb25zLnNvdXJjZTtcblxuICAgIGlmICghb3B0aW9ucy5za2lwQXNzZXRDcmVhdGlvbkZyb21Mb2NhbE1vZHVsZXMpIHtcbiAgICAgIGlmIChvcHRpb25zLnNvdXJjZS5zdGFydHNXaXRoKFwiLi9cIikgfHwgb3B0aW9ucy5zb3VyY2Uuc3RhcnRzV2l0aChcIi4uL1wiKSkge1xuICAgICAgICAvLyBDcmVhdGUgYW4gYXNzZXQgb3IgcmV1c2UgZXhpc3RpbmcgXCJzaW5nbGV0b24gYXNzZXRcIiBmb3IgdGhlIGxvY2FsIG1vZHVsZSBmb3IgYmV0dGVyIFRGQyBzdXBwb3J0XG4gICAgICAgIHRoaXMuc291cmNlID0gVGVycmFmb3JtTW9kdWxlQXNzZXQub2Yoc2NvcGUpLmdldEFzc2V0UGF0aEZvck1vZHVsZShcbiAgICAgICAgICBvcHRpb25zLnNvdXJjZSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgdGhpcy5fcHJvdmlkZXJzID0gb3B0aW9ucy5wcm92aWRlcnM7XG4gICAgdGhpcy52YWxpZGF0ZUlmUHJvdmlkZXJzSGF2ZVVuaXF1ZUtleXMoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLmRlcGVuZHNPbikpIHtcbiAgICAgIHRoaXMuZGVwZW5kc09uID0gb3B0aW9ucy5kZXBlbmRzT24ubWFwKChkZXBlbmRlbmN5KSA9PlxuICAgICAgICBkZXBlbmRhYmxlKGRlcGVuZGVuY3kpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5mb3JFYWNoID0gb3B0aW9ucy5mb3JFYWNoO1xuICB9XG5cbiAgLy8gQWRkcyBzeW50aC10aW1lIHZhbGlkYXRpb25zXG4gIHByaXZhdGUgb25TeW50aCgpOiB2b2lkIHtcbiAgICAvLyBXZSBkb24ndCBhbGxvdyBhbnkgbmVzdGVkIGNvbnN0cnVjdHMgd2l0aGluIFRlcnJhZm9ybU1vZHVsZXMsIGl0J3MgbW9zdCBsaWtlbHkgYSBtaXN0YWtlXG4gICAgLy8gd2hlcmUgY29uc3RydWN0cyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLlxuICAgIGlmICh0aGlzLm5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgdGVycmFmb3JtTW9kdWxlSGFzQ2hpbGRyZW4odGhpcy5ub2RlLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGpzaWkgY2FuJ3QgaGFuZGxlIGFic3RyYWN0IGNsYXNzZXM/XG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwdWJsaWMgaW50ZXJwb2xhdGlvbkZvck91dHB1dChtb2R1bGVPdXRwdXQ6IHN0cmluZykge1xuICAgIHJldHVybiByZWYoXG4gICAgICBgbW9kdWxlLiR7dGhpcy5mcmllbmRseVVuaXF1ZUlkfSR7XG4gICAgICAgIHRoaXMuZm9yRWFjaCA/IFwiLipcIiA6IFwiXCJcbiAgICAgIH0uJHttb2R1bGVPdXRwdXR9YCxcbiAgICAgIHRoaXMuY2RrdGZTdGFjayxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFN0cmluZyhvdXRwdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHRoaXMuaW50ZXJwb2xhdGlvbkZvck91dHB1dChvdXRwdXQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJvdmlkZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9wcm92aWRlcnM7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvdmlkZXIocHJvdmlkZXI6IFRlcnJhZm9ybVByb3ZpZGVyIHwgVGVycmFmb3JtTW9kdWxlUHJvdmlkZXIpIHtcbiAgICBpZiAoIXRoaXMuX3Byb3ZpZGVycykge1xuICAgICAgdGhpcy5fcHJvdmlkZXJzID0gW107XG4gICAgfVxuICAgIHRoaXMuX3Byb3ZpZGVycy5wdXNoKHByb3ZpZGVyKTtcbiAgICB0aGlzLnZhbGlkYXRlSWZQcm92aWRlcnNIYXZlVW5pcXVlS2V5cygpO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgdGhpcy5vblN5bnRoKCk7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5zeW50aGVzaXplSGNsQXR0cmlidXRlcygpLFxuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zb3VyY2UsXG4gICAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52ZXJzaW9uLFxuICAgICAgICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgICBwcm92aWRlcnM6IHRoaXMuX3Byb3ZpZGVycz8ucmVkdWNlKChhLCBwKSA9PiB7XG4gICAgICAgICAgaWYgKFRlcnJhZm9ybVByb3ZpZGVyLmlzVGVycmFmb3JtUHJvdmlkZXIocCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmEsIFtwLnRlcnJhZm9ybVJlc291cmNlVHlwZV06IHAuZnFuIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmEsXG4gICAgICAgICAgICAgIFtgJHtwLnByb3ZpZGVyLnRlcnJhZm9ybVJlc291cmNlVHlwZX0uJHtwLm1vZHVsZUFsaWFzfWBdOlxuICAgICAgICAgICAgICAgIHAucHJvdmlkZXIuZnFuLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcblxuICAgICAgICBkZXBlbmRzX29uOiB0aGlzLmRlcGVuZHNPblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5kZXBlbmRzT24sXG4gICAgICAgICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgICBmb3JfZWFjaDogdGhpcy5mb3JFYWNoPy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICAgIH0sXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiB7XG4gICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgdGhpcy5vblN5bnRoKCk7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGRlZXBNZXJnZShcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5zeW50aGVzaXplQXR0cmlidXRlcygpLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5fcHJvdmlkZXJzPy5yZWR1Y2UoKGEsIHApID0+IHtcbiAgICAgICAgICBpZiAoVGVycmFmb3JtUHJvdmlkZXIuaXNUZXJyYWZvcm1Qcm92aWRlcihwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYSwgW3AudGVycmFmb3JtUmVzb3VyY2VUeXBlXTogcC5mcW4gfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYSxcbiAgICAgICAgICAgICAgW2Ake3AucHJvdmlkZXIudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3AubW9kdWxlQWxpYXN9YF06XG4gICAgICAgICAgICAgICAgcC5wcm92aWRlci5mcW4sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge30pLFxuICAgICAgICBkZXBlbmRzX29uOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgICAgZm9yX2VhY2g6IHRoaXMuZm9yRWFjaD8uX2dldEZvckVhY2hFeHByZXNzaW9uKCksXG4gICAgICB9LFxuICAgICAgdGhpcy5yYXdPdmVycmlkZXMsXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZXNbXCIvL1wiXSA9IHRoaXMuY29uc3RydWN0Tm9kZU1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZToge1xuICAgICAgICBbdGhpcy5mcmllbmRseVVuaXF1ZUlkXTogYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCk6IGFueSB7XG4gICAgaWYgKCFPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICBbYG1vZHVsZS4ke3RoaXMuc291cmNlfWBdOiBPYmplY3Qua2V5cyh0aGlzLnJhd092ZXJyaWRlcyksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlSWZQcm92aWRlcnNIYXZlVW5pcXVlS2V5cygpOiB2b2lkIHtcbiAgICBjb25zdCBtb2R1bGVBbGlhc2VzID0gdGhpcy5fcHJvdmlkZXJzPy5tYXAoKHApID0+IHtcbiAgICAgIGlmIChUZXJyYWZvcm1Qcm92aWRlci5pc1RlcnJhZm9ybVByb3ZpZGVyKHApKSB7XG4gICAgICAgIHJldHVybiBwLnRlcnJhZm9ybVJlc291cmNlVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgJHtwLnByb3ZpZGVyLnRlcnJhZm9ybVJlc291cmNlVHlwZX0uJHtwLm1vZHVsZUFsaWFzfWA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB1bmlxdWVNb2R1bGVBbGlhc2VzID0gbmV3IFNldCgpO1xuICAgIG1vZHVsZUFsaWFzZXM/LmZvckVhY2goKGFsaWFzKSA9PiB7XG4gICAgICBpZiAodW5pcXVlTW9kdWxlQWxpYXNlcy5oYXMoYWxpYXMpKSB7XG4gICAgICAgIHRocm93IG1vZHVsZXNXaXRoU2FtZUFsaWFzKGFsaWFzKTtcbiAgICAgIH1cbiAgICAgIHVuaXF1ZU1vZHVsZUFsaWFzZXMuYWRkKGFsaWFzKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSwyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELGlDQUFtQztBQUVuQyxxQ0FBaUM7QUFDakMsaURBQWlEO0FBRWpELHFDQUE0RTtBQUM1RSxxRUFBZ0U7QUFtQmhFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBc0IsZUFDcEIsU0FBUSxvQ0FBZ0I7O0lBR1IsTUFBTSxDQUFTO0lBQ2YsT0FBTyxDQUFVO0lBQ3pCLFVBQVUsQ0FBbUQ7SUFDOUQsU0FBUyxDQUFZO0lBQ3JCLE9BQU8sQ0FBc0I7SUFDcEIsaUNBQWlDLENBQVc7SUFFNUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1lBQy9DLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEUsa0dBQWtHO2dCQUNsRyxJQUFJLENBQUMsTUFBTSxHQUFHLDZDQUFvQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsQ0FDaEUsT0FBTyxDQUFDLE1BQU0sQ0FDZixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxpQ0FBaUMsRUFB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QUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxJQUFBLDZCQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJNSCwwQ0FzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUVsZW1lbnQgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZWxlbWVudFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLWRlcGVuZGFibGVcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW5zXCI7XG5pbXBvcnQgeyByZWYsIGRlcGVuZGFibGUgfSBmcm9tIFwiLi90ZkV4cHJlc3Npb25cIjtcbmltcG9ydCB7IElUZXJyYWZvcm1JdGVyYXRvciB9IGZyb20gXCIuL3RlcnJhZm9ybS1pdGVyYXRvclwiO1xuaW1wb3J0IHsgbW9kdWxlc1dpdGhTYW1lQWxpYXMsIHRlcnJhZm9ybU1vZHVsZUhhc0NoaWxkcmVuIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Nb2R1bGVBc3NldCB9IGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGUtYXNzZXRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1Nb2R1bGVVc2VyQ29uZmlnIHtcbiAgcmVhZG9ubHkgcHJvdmlkZXJzPzogKFRlcnJhZm9ybVByb3ZpZGVyIHwgVGVycmFmb3JtTW9kdWxlUHJvdmlkZXIpW107XG4gIHJlYWRvbmx5IGRlcGVuZHNPbj86IElUZXJyYWZvcm1EZXBlbmRhYmxlW107XG4gIHJlYWRvbmx5IGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHJlYWRvbmx5IHNraXBBc3NldENyZWF0aW9uRnJvbUxvY2FsTW9kdWxlcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtTW9kdWxlQ29uZmlnIGV4dGVuZHMgVGVycmFmb3JtTW9kdWxlVXNlckNvbmZpZyB7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybU1vZHVsZVByb3ZpZGVyIHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFRlcnJhZm9ybVByb3ZpZGVyO1xuICByZWFkb25seSBtb2R1bGVBbGlhczogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRlcnJhZm9ybU1vZHVsZSBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgYSBsb2NhbCB0ZXJyYWZvcm0gbW9kdWxlIG9yIGEgbW9kdWxlIGZyb20gdGhlIFRlcnJhZm9ybSBSZWdpc3RyeS5cbiAqIEl0IHNob3VsZCBiZSB1c2VkIGlmIHlvdSBjYW4gbm90IHVzZSBnZW5lcmF0ZWQgYmluZGluZ3MgZm9yIHRoZSBtb2R1bGUgYXMgeW91IHdvdWxkIGdldCBieSBhZGRpbmcgdGhlIG1vZHVsZVxuICogdG8geW91ciBjZGt0Zi5qc29uIGZpbGVzIFwidGVycmFmb3JtTW9kdWxlc1wiIGFycmF5IGFuZCBydW5uaW5nIGNka3RuIGdldC5cbiAqXG4gKiBUaGlzIGNsYXNzIGlzIG5vdCBjcmVhdGluZyBhIFRlcnJhZm9ybSBtb2R1bGUgdG8gYmUgdXNlZCBvdXRzaWRlIG9mIENES1ROLlxuICogSWYgeW91IHdhbnQgdG8gYnVuZGxlIGNlcnRhaW4gcmVzb3VyY2VzIHRvZ2V0aGVyIGxpa2UgeW91IHdvdWxkIGRvIHdpdGggYSBUZXJyYWZvcm0gbW9kdWxlLFxuICogeW91IHNob3VsZCB1c2UgQ29uc3RydWN0cyBpbnN0ZWFkLCBzZWUgaHR0cDovL2Nkay50Zi9jb25zdHJ1Y3RzIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGVcbiAgZXh0ZW5kcyBUZXJyYWZvcm1FbGVtZW50XG4gIGltcGxlbWVudHMgSVRlcnJhZm9ybURlcGVuZGFibGVcbntcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJvdmlkZXJzPzogKFRlcnJhZm9ybVByb3ZpZGVyIHwgVGVycmFmb3JtTW9kdWxlUHJvdmlkZXIpW107XG4gIHB1YmxpYyBkZXBlbmRzT24/OiBzdHJpbmdbXTtcbiAgcHVibGljIGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIHB1YmxpYyByZWFkb25seSBza2lwQXNzZXRDcmVhdGlvbkZyb21Mb2NhbE1vZHVsZXM/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFRlcnJhZm9ybU1vZHVsZUNvbmZpZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgXCJtb2R1bGVcIik7XG5cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlO1xuXG4gICAgaWYgKCFvcHRpb25zLnNraXBBc3NldENyZWF0aW9uRnJvbUxvY2FsTW9kdWxlcykge1xuICAgICAgaWYgKG9wdGlvbnMuc291cmNlLnN0YXJ0c1dpdGgoXCIuL1wiKSB8fCBvcHRpb25zLnNvdXJjZS5zdGFydHNXaXRoKFwiLi4vXCIpKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBhc3NldCBvciByZXVzZSBleGlzdGluZyBcInNpbmdsZXRvbiBhc3NldFwiIGZvciB0aGUgbG9jYWwgbW9kdWxlIGZvciBiZXR0ZXIgVEZDIHN1cHBvcnRcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBUZXJyYWZvcm1Nb2R1bGVBc3NldC5vZihzY29wZSkuZ2V0QXNzZXRQYXRoRm9yTW9kdWxlKFxuICAgICAgICAgIG9wdGlvbnMuc291cmNlLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbjtcbiAgICB0aGlzLl9wcm92aWRlcnMgPSBvcHRpb25zLnByb3ZpZGVycztcbiAgICB0aGlzLnZhbGlkYXRlSWZQcm92aWRlcnNIYXZlVW5pcXVlS2V5cygpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuZGVwZW5kc09uKSkge1xuICAgICAgdGhpcy5kZXBlbmRzT24gPSBvcHRpb25zLmRlcGVuZHNPbi5tYXAoKGRlcGVuZGVuY3kpID0+XG4gICAgICAgIGRlcGVuZGFibGUoZGVwZW5kZW5jeSksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmZvckVhY2ggPSBvcHRpb25zLmZvckVhY2g7XG4gIH1cblxuICAvLyBBZGRzIHN5bnRoLXRpbWUgdmFsaWRhdGlvbnNcbiAgcHJpdmF0ZSBvblN5bnRoKCk6IHZvaWQge1xuICAgIC8vIFdlIGRvbid0IGFsbG93IGFueSBuZXN0ZWQgY29uc3RydWN0cyB3aXRoaW4gVGVycmFmb3JtTW9kdWxlcywgaXQncyBtb3N0IGxpa2VseSBhIG1pc3Rha2VcbiAgICAvLyB3aGVyZSBjb25zdHJ1Y3RzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuXG4gICAgaWYgKHRoaXMubm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyB0ZXJyYWZvcm1Nb2R1bGVIYXNDaGlsZHJlbih0aGlzLm5vZGUucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLy8ganNpaSBjYW4ndCBoYW5kbGUgYWJzdHJhY3QgY2xhc3Nlcz9cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvLyBqc2lpIGNhbid0IGhhbmRsZSBhYnN0cmFjdCBjbGFzc2VzP1xuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnBvbGF0aW9uRm9yT3V0cHV0KG1vZHVsZU91dHB1dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZihcbiAgICAgIGBtb2R1bGUuJHt0aGlzLmZyaWVuZGx5VW5pcXVlSWR9JHtcbiAgICAgICAgdGhpcy5mb3JFYWNoID8gXCIuKlwiIDogXCJcIlxuICAgICAgfS4ke21vZHVsZU91dHB1dH1gLFxuICAgICAgdGhpcy5jZGt0ZlN0YWNrLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RyaW5nKG91dHB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcy5pbnRlcnBvbGF0aW9uRm9yT3V0cHV0KG91dHB1dCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBwcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm92aWRlcihwcm92aWRlcjogVGVycmFmb3JtUHJvdmlkZXIgfCBUZXJyYWZvcm1Nb2R1bGVQcm92aWRlcikge1xuICAgIGlmICghdGhpcy5fcHJvdmlkZXJzKSB7XG4gICAgICB0aGlzLl9wcm92aWRlcnMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5fcHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgIHRoaXMudmFsaWRhdGVJZlByb3ZpZGVyc0hhdmVVbmlxdWVLZXlzKCk7XG4gIH1cblxuICBwdWJsaWMgdG9IY2xUZXJyYWZvcm0oKTogYW55IHtcbiAgICB0aGlzLm9uU3ludGgoKTtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGVlcE1lcmdlKFxuICAgICAge1xuICAgICAgICAuLi50aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCksXG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLnNvdXJjZSxcbiAgICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZlcnNpb24sXG4gICAgICAgICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuXG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5fcHJvdmlkZXJzPy5yZWR1Y2UoKGEsIHApID0+IHtcbiAgICAgICAgICBpZiAoVGVycmFmb3JtUHJvdmlkZXIuaXNUZXJyYWZvcm1Qcm92aWRlcihwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYSwgW3AudGVycmFmb3JtUmVzb3VyY2VUeXBlXTogcC5mcW4gfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYSxcbiAgICAgICAgICAgICAgW2Ake3AucHJvdmlkZXIudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3AubW9kdWxlQWxpYXN9YF06XG4gICAgICAgICAgICAgICAgcC5wcm92aWRlci5mcW4sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge30pLFxuXG4gICAgICAgIGRlcGVuZHNfb246IHRoaXMuZGVwZW5kc09uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmRlcGVuZHNPbixcbiAgICAgICAgICAgICAgdHlwZTogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuXG4gICAgICAgIGZvcl9lYWNoOiB0aGlzLmZvckVhY2g/Ll9nZXRGb3JFYWNoRXhwcmVzc2lvbigpLFxuICAgICAgfSxcbiAgICAgIHRoaXMucmF3T3ZlcnJpZGVzLFxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGVzW1wiLy9cIl0gPSB0aGlzLmNvbnN0cnVjdE5vZGVNZXRhZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGU6IHtcbiAgICAgICAgW3RoaXMuZnJpZW5kbHlVbmlxdWVJZF06IGF0dHJpYnV0ZXMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICB0aGlzLm9uU3ludGgoKTtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGVlcE1lcmdlKFxuICAgICAge1xuICAgICAgICAuLi50aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCksXG4gICAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgICAgcHJvdmlkZXJzOiB0aGlzLl9wcm92aWRlcnM/LnJlZHVjZSgoYSwgcCkgPT4ge1xuICAgICAgICAgIGlmIChUZXJyYWZvcm1Qcm92aWRlci5pc1RlcnJhZm9ybVByb3ZpZGVyKHApKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hLCBbcC50ZXJyYWZvcm1SZXNvdXJjZVR5cGVdOiBwLmZxbiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICBbYCR7cC5wcm92aWRlci50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9LiR7cC5tb2R1bGVBbGlhc31gXTpcbiAgICAgICAgICAgICAgICBwLnByb3ZpZGVyLmZxbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGRlcGVuZHNfb246IHRoaXMuZGVwZW5kc09uLFxuICAgICAgICBmb3JfZWFjaDogdGhpcy5mb3JFYWNoPy5fZ2V0Rm9yRWFjaEV4cHJlc3Npb24oKSxcbiAgICAgIH0sXG4gICAgICB0aGlzLnJhd092ZXJyaWRlcyxcbiAgICApO1xuXG4gICAgYXR0cmlidXRlc1tcIi8vXCJdID0gdGhpcy5jb25zdHJ1Y3ROb2RlTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiB7XG4gICAgICAgIFt0aGlzLmZyaWVuZGx5VW5pcXVlSWRdOiBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKTogYW55IHtcbiAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIFtgbW9kdWxlLiR7dGhpcy5zb3VyY2V9YF06IE9iamVjdC5rZXlzKHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVJZlByb3ZpZGVyc0hhdmVVbmlxdWVLZXlzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZHVsZUFsaWFzZXMgPSB0aGlzLl9wcm92aWRlcnM/Lm1hcCgocCkgPT4ge1xuICAgICAgaWYgKFRlcnJhZm9ybVByb3ZpZGVyLmlzVGVycmFmb3JtUHJvdmlkZXIocCkpIHtcbiAgICAgICAgcmV0dXJuIHAudGVycmFmb3JtUmVzb3VyY2VUeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGAke3AucHJvdmlkZXIudGVycmFmb3JtUmVzb3VyY2VUeXBlfS4ke3AubW9kdWxlQWxpYXN9YDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHVuaXF1ZU1vZHVsZUFsaWFzZXMgPSBuZXcgU2V0KCk7XG4gICAgbW9kdWxlQWxpYXNlcz8uZm9yRWFjaCgoYWxpYXMpID0+IHtcbiAgICAgIGlmICh1bmlxdWVNb2R1bGVBbGlhc2VzLmhhcyhhbGlhcykpIHtcbiAgICAgICAgdGhyb3cgbW9kdWxlc1dpdGhTYW1lQWxpYXMoYWxpYXMpO1xuICAgICAgfVxuICAgICAgdW5pcXVlTW9kdWxlQWxpYXNlcy5hZGQoYWxpYXMpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|