cdktn 0.26.0-pre.20 → 0.26.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 +1200 -1116
- package/eslint.config.mjs +18 -7
- package/jest.config.js +0 -1
- package/lib/_tokens.d.ts +7 -0
- package/lib/_tokens.js +8 -2
- package/lib/annotations.js +1 -1
- package/lib/app.js +8 -4
- package/lib/aspect.js +1 -1
- package/lib/asset-hash.js +1 -1
- package/lib/asset-staging.js +1 -1
- package/lib/assets.js +4 -4
- package/lib/backends/azurerm-backend.d.ts +6 -0
- package/lib/backends/azurerm-backend.js +9 -5
- package/lib/backends/cloud-backend.js +4 -4
- package/lib/backends/consul-backend.d.ts +6 -0
- package/lib/backends/consul-backend.js +9 -5
- package/lib/backends/cos-backend.d.ts +6 -0
- package/lib/backends/cos-backend.js +9 -5
- package/lib/backends/gcs-backend.d.ts +6 -0
- package/lib/backends/gcs-backend.js +9 -5
- package/lib/backends/http-backend.d.ts +6 -0
- package/lib/backends/http-backend.js +9 -5
- package/lib/backends/local-backend.d.ts +6 -0
- package/lib/backends/local-backend.js +9 -5
- package/lib/backends/oss-backend.d.ts +6 -0
- package/lib/backends/oss-backend.js +9 -5
- package/lib/backends/pg-backend.d.ts +6 -0
- package/lib/backends/pg-backend.js +9 -5
- package/lib/backends/remote-backend.d.ts +12 -0
- package/lib/backends/remote-backend.js +17 -9
- package/lib/backends/s3-backend.d.ts +6 -0
- package/lib/backends/s3-backend.js +9 -5
- package/lib/backends/swift-backend.js +2 -2
- package/lib/complex-computed-list.d.ts +85 -0
- package/lib/complex-computed-list.js +112 -54
- package/lib/functions/helpers.d.ts +72 -0
- package/lib/functions/helpers.js +73 -14
- package/lib/functions/provider-function.js +1 -1
- package/lib/functions/terraform-functions.generated.d.ts +3 -0
- package/lib/functions/terraform-functions.generated.js +5 -3
- package/lib/hcl/render.js +30 -6
- package/lib/ignore-strategy.js +1 -1
- package/lib/importable-resource.js +1 -1
- package/lib/manifest.d.ts +4 -0
- package/lib/manifest.js +6 -3
- package/lib/private/unique.js +11 -3
- package/lib/resource.js +1 -1
- package/lib/runtime.d.ts +6 -0
- package/lib/runtime.js +12 -3
- package/lib/synthesize/required-version.d.ts +32 -0
- package/lib/synthesize/required-version.js +205 -0
- package/lib/synthesize/synthesizer.d.ts +13 -0
- package/lib/synthesize/synthesizer.js +42 -8
- package/lib/terraform-asset.d.ts +4 -0
- package/lib/terraform-asset.js +6 -3
- package/lib/terraform-backend.d.ts +3 -0
- package/lib/terraform-backend.js +5 -3
- package/lib/terraform-conditions.js +1 -2
- package/lib/terraform-count.js +1 -1
- package/lib/terraform-data-resource.js +1 -1
- package/lib/terraform-data-source.d.ts +4 -0
- package/lib/terraform-data-source.js +8 -6
- package/lib/terraform-dependable.js +1 -1
- package/lib/terraform-dynamic-block.d.ts +4 -0
- package/lib/terraform-dynamic-block.js +5 -2
- package/lib/terraform-element.d.ts +4 -0
- package/lib/terraform-element.js +6 -3
- package/lib/terraform-ephemeral-resource.d.ts +4 -0
- package/lib/terraform-ephemeral-resource.js +8 -6
- package/lib/terraform-functions.d.ts +4 -0
- package/lib/terraform-functions.js +6 -3
- package/lib/terraform-hcl-module.d.ts +4 -0
- package/lib/terraform-hcl-module.js +6 -3
- package/lib/terraform-iterator.d.ts +19 -0
- package/lib/terraform-iterator.js +25 -11
- package/lib/terraform-local.d.ts +4 -0
- package/lib/terraform-local.js +6 -3
- package/lib/terraform-module.js +1 -1
- package/lib/terraform-operators.js +1 -1
- package/lib/terraform-output.d.ts +4 -0
- package/lib/terraform-output.js +6 -3
- package/lib/terraform-provider.d.ts +4 -0
- package/lib/terraform-provider.js +6 -3
- package/lib/terraform-provisioner.js +1 -1
- package/lib/terraform-remote-state.d.ts +3 -0
- package/lib/terraform-remote-state.js +5 -3
- package/lib/terraform-resource-targets.js +1 -1
- package/lib/terraform-resource.d.ts +5 -1
- package/lib/terraform-resource.js +16 -9
- package/lib/terraform-stack.d.ts +4 -0
- package/lib/terraform-stack.js +28 -9
- package/lib/terraform-variable.d.ts +7 -0
- package/lib/terraform-variable.js +16 -7
- package/lib/testing/adapters/jest.d.ts +3 -0
- package/lib/testing/adapters/jest.js +10 -1
- package/lib/testing/index.js +14 -4
- package/lib/testing/matchers.js +61 -19
- package/lib/tfExpression.d.ts +48 -0
- package/lib/tfExpression.js +53 -15
- package/lib/tokens/lazy.d.ts +4 -0
- package/lib/tokens/lazy.js +21 -8
- package/lib/tokens/private/dependency.js +2 -6
- package/lib/tokens/private/resolve.js +3 -3
- package/lib/tokens/private/stack-trace.d.ts +1 -1
- package/lib/tokens/private/stack-trace.js +1 -2
- package/lib/tokens/resolvable.js +2 -2
- package/lib/tokens/string-fragments.js +4 -4
- package/lib/tokens/token.js +2 -2
- package/lib/upgrade-id-aspect.js +1 -1
- package/lib/util.d.ts +0 -1
- package/lib/util.js +4 -4
- package/lib/validations/target-versions.d.ts +12 -0
- package/lib/validations/target-versions.js +40 -1
- package/package.json +112 -109
|
@@ -16,12 +16,8 @@ const errors_1 = require("../../errors");
|
|
|
16
16
|
class ConcreteDependable {
|
|
17
17
|
_dependencyRoots = new Array();
|
|
18
18
|
constructor() {
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
20
|
-
const self = this;
|
|
21
19
|
DependableTrait.implement(this, {
|
|
22
|
-
|
|
23
|
-
return self._dependencyRoots;
|
|
24
|
-
},
|
|
20
|
+
dependencyRoots: this._dependencyRoots,
|
|
25
21
|
});
|
|
26
22
|
}
|
|
27
23
|
/**
|
|
@@ -78,4 +74,4 @@ class DependableTrait {
|
|
|
78
74
|
}
|
|
79
75
|
}
|
|
80
76
|
exports.DependableTrait = DependableTrait;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbnMvcHJpdmF0ZS9kZXBlbmRlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHdIQUF3SDs7O0FBR3hILHlDQUErRDtBQWlCL0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsa0JBQWtCO0lBQ1osZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztJQUU1RDtRQUNFLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQzlCLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxTQUFxQjtRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQWZELGdEQWVDO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBc0IsZUFBZTtJQUNuQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFxQixFQUFFLEtBQXNCO1FBQ25FLDZFQUE2RTtRQUM3RSw4RUFBOEU7UUFDOUUsZ0NBQWdDO1FBQy9CLFFBQWdCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFxQjtRQUNyQyxNQUFNLEdBQUcsR0FBSSxRQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFBLHdDQUErQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FTRjtBQS9CRCwwQ0ErQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gY29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzL2Jsb2IvZTAxZTQ3Zjc4ZWYxZTliNjAwZWZjZDIzZmY3NzA1YWE4ZDM4NDAxNy9saWIvcHJpdmF0ZS9kZXBlbmRlbmN5LnRzXG5cbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgZG9lc05vdEltcGxlbWVudERlcGVuZGFibGVUcmFpdCB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcblxuLyoqXG4gKiBUcmFpdCBtYXJrZXIgZm9yIGNsYXNzZXMgdGhhdCBjYW4gYmUgZGVwZW5kZWQgdXBvblxuICpcbiAqIFRoZSBwcmVzZW5jZSBvZiB0aGlzIGludGVyZmFjZSBpbmRpY2F0ZXMgdGhhdCBhbiBvYmplY3QgaGFzXG4gKiBhbiBgSURlcGVuZGFibGVUcmFpdGAgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBpbnRlcmZhY2UgY2FuIGJlIHVzZWQgdG8gdGFrZSBhbiAob3JkZXJpbmcpIGRlcGVuZGVuY3kgb24gYSBzZXQgb2ZcbiAqIGNvbnN0cnVjdHMuIEFuIG9yZGVyaW5nIGRlcGVuZGVuY3kgaW1wbGllcyB0aGF0IHRoZSByZXNvdXJjZXMgcmVwcmVzZW50ZWQgYnlcbiAqIHRob3NlIGNvbnN0cnVjdHMgYXJlIGRlcGxveWVkIGJlZm9yZSB0aGUgcmVzb3VyY2VzIGRlcGVuZGluZyBPTiB0aGVtIGFyZVxuICogZGVwbG95ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURlcGVuZGFibGUge1xuICAvLyBFbXB0eSwgdGhpcyBpbnRlcmZhY2UgaXMgYSB0cmFpdCBtYXJrZXJcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBjb25zdHJ1Y3RzIHRvIGJlIHVzZWQgYXMgYSBkZXBlbmRhYmxlXG4gKlxuICogVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCB3aGVuIGEgc2V0IG9mIGNvbnN0cnVjdHMgd2hpY2ggYXJlIGRpc2pvaW50IGluIHRoZVxuICogY29uc3RydWN0IHRyZWUgbmVlZHMgdG8gYmUgY29tYmluZWQgdG8gYmUgdXNlZCBhcyBhIHNpbmdsZSBkZXBlbmRhYmxlLlxuICpcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmNyZXRlRGVwZW5kYWJsZSBpbXBsZW1lbnRzIElEZXBlbmRhYmxlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVwZW5kZW5jeVJvb3RzID0gbmV3IEFycmF5PElDb25zdHJ1Y3Q+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgRGVwZW5kYWJsZVRyYWl0LmltcGxlbWVudCh0aGlzLCB7XG4gICAgICBkZXBlbmRlbmN5Um9vdHM6IHRoaXMuX2RlcGVuZGVuY3lSb290cyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjb25zdHJ1Y3QgdG8gdGhlIGRlcGVuZGVuY3kgcm9vdHNcbiAgICovXG4gIHB1YmxpYyBhZGQoY29uc3RydWN0OiBJQ29uc3RydWN0KSB7XG4gICAgdGhpcy5fZGVwZW5kZW5jeVJvb3RzLnB1c2goY29uc3RydWN0KTtcbiAgfVxufVxuXG5jb25zdCBERVBFTkRBQkxFX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJAYXdzLWNkay9jb3JlLkRlcGVuZGFibGVUcmFpdFwiKTtcblxuLyoqXG4gKiBUcmFpdCBmb3IgSURlcGVuZGFibGVcbiAqXG4gKiBUcmFpdHMgYXJlIGludGVyZmFjZXMgdGhhdCBhcmUgcHJpdmF0ZWx5IGltcGxlbWVudGVkIGJ5IG9iamVjdHMuIEluc3RlYWQgb2ZcbiAqIHNob3dpbmcgdXAgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYSBjbGFzcywgdGhleSBuZWVkIHRvIGJlIHF1ZXJpZWRcbiAqIGV4cGxpY2l0bHkuIFRoaXMgaXMgdXNlZCB0byBpbXBsZW1lbnQgY2VydGFpbiBmcmFtZXdvcmsgZmVhdHVyZXMgdGhhdCBhcmVcbiAqIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IENvbnN0cnVjdCBjb25zdW1lcnMsIGFuZCBzbyBzaG91bGQgYmUgaGlkZGVuXG4gKiBmcm9tIGFjY2lkZW50YWwgdXNlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogLy8gVXNhZ2VcbiAqIGNvbnN0IHJvb3RzID0gRGVwZW5kYWJsZVRyYWl0LmdldChjb25zdHJ1Y3QpLmRlcGVuZGVuY3lSb290cztcbiAqXG4gKiAvLyBEZWZpbml0aW9uXG4gKiBEZXBlbmRhYmxlVHJhaXQuaW1wbGVtZW50KGNvbnN0cnVjdCwge1xuICogICBnZXQgZGVwZW5kZW5jeVJvb3RzKCkgeyByZXR1cm4gW107IH1cbiAqIH0pO1xuICpcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlcGVuZGFibGVUcmFpdCB7XG4gIC8qKlxuICAgKiBSZWdpc3RlciBgaW5zdGFuY2VgIHRvIGhhdmUgdGhlIGdpdmVuIERlcGVuZGFibGVUcmFpdFxuICAgKlxuICAgKiBTaG91bGQgYmUgY2FsbGVkIGluIHRoZSBjbGFzcyBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW1wbGVtZW50KGluc3RhbmNlOiBJRGVwZW5kYWJsZSwgdHJhaXQ6IERlcGVuZGFibGVUcmFpdCkge1xuICAgIC8vIEkgd291bGQgYWxzbyBsaWtlIHRvIHJlZmVyZW5jZSBjbGFzc2VzICh0byBjdXQgZG93biBvbiB0aGUgbGlzdCBvZiBvYmplY3RzXG4gICAgLy8gd2UgbmVlZCB0byBtYW5hZ2UpLCBidXQgd2UgY2FuJ3QgZG8gdGhhdCBlaXRoZXIgc2luY2UganNpaSBkb2Vzbid0IGhhdmUgdGhlXG4gICAgLy8gY29uY2VwdCBvZiBhIGNsYXNzIHJlZmVyZW5jZS5cbiAgICAoaW5zdGFuY2UgYXMgYW55KVtERVBFTkRBQkxFX1NZTUJPTF0gPSB0cmFpdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG1hdGNoaW5nIERlcGVuZGFibGVUcmFpdCBmb3IgdGhlIGdpdmVuIGNsYXNzIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQoaW5zdGFuY2U6IElEZXBlbmRhYmxlKTogRGVwZW5kYWJsZVRyYWl0IHtcbiAgICBjb25zdCByZXQgPSAoaW5zdGFuY2UgYXMgYW55KVtERVBFTkRBQkxFX1NZTUJPTF07XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IGRvZXNOb3RJbXBsZW1lbnREZXBlbmRhYmxlVHJhaXQoaW5zdGFuY2UpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgY29uc3RydWN0cyB0aGF0IGZvcm0gdGhlIHJvb3Qgb2YgdGhpcyBkZXBlbmRhYmxlXG4gICAqXG4gICAqIEFsbCByZXNvdXJjZXMgdW5kZXIgYWxsIHJldHVybmVkIGNvbnN0cnVjdHMgYXJlIGluY2x1ZGVkIGluIHRoZSBvcmRlcmluZ1xuICAgKiBkZXBlbmRlbmN5LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlcGVuZGVuY3lSb290czogSUNvbnN0cnVjdFtdO1xufVxuIl19
|
|
@@ -8,6 +8,7 @@ const encoding_1 = require("./encoding");
|
|
|
8
8
|
const token_map_1 = require("./token-map");
|
|
9
9
|
const token_1 = require("../token");
|
|
10
10
|
const errors_1 = require("../../errors");
|
|
11
|
+
const util_1 = require("util");
|
|
11
12
|
// This file should not be exported to consumers, resolving should happen through Construct.resolve()
|
|
12
13
|
const tokenMap = token_map_1.TokenMap.instance();
|
|
13
14
|
/**
|
|
@@ -117,8 +118,7 @@ function resolve(obj, options) {
|
|
|
117
118
|
//
|
|
118
119
|
// primitives - as-is
|
|
119
120
|
//
|
|
120
|
-
|
|
121
|
-
if (typeof obj !== "object" || obj instanceof Date) {
|
|
121
|
+
if (typeof obj !== "object" || util_1.types.isDate(obj)) {
|
|
122
122
|
return obj;
|
|
123
123
|
}
|
|
124
124
|
//
|
|
@@ -216,4 +216,4 @@ function resolveNumberToken(x, context) {
|
|
|
216
216
|
}
|
|
217
217
|
return context.resolve(token);
|
|
218
218
|
}
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbnMvcHJpdmF0ZS9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJEQSwwQkFxTUM7QUFLRCxnQ0FNQztBQXZRRCw4Q0FPdUI7QUFFdkIseUNBTW9CO0FBQ3BCLDJDQUF1QztBQUN2QyxvQ0FBaUM7QUFDakMseUNBUXNCO0FBRXRCLHFHQUFxRztBQUVyRyxNQUFNLFFBQVEsR0FBRyxvQkFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBa0JyQzs7Ozs7O0dBTUc7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBUSxFQUFFLE9BQXdCO0lBQ3hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXhDOztPQUVHO0lBQ0gsU0FBUyxXQUFXLENBQUMsVUFBbUI7UUFDdEMsTUFBTSxTQUFTLEdBQ2IsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFMUUsSUFBSSxhQUF5QyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFvQjtZQUMvQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLGNBQWMsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLGNBQWM7WUFDdkQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsYUFBYTtZQUNyRCxXQUFXLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXO1lBQ2pELGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLGVBQWU7WUFDekQscUJBQXFCLENBQUMs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QUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxhQUFhLENBQUMsQ0FBMkIsRUFBRSxPQUF3QjtRQUN4RSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQXBCRCw0REFvQkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsV0FBVyxDQUFDLENBQU07SUFDekIsT0FBTyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLENBQVMsRUFBRSxPQUF3QjtJQUM3RCxNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbi8vIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy9ibG9iL2UwMWU0N2Y3OGVmMWU5YjYwMGVmY2QyM2ZmNzcwNWFhOGQzODQwMTcvbGliL3ByaXZhdGUvcmVzb2x2ZS50c1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0VG9rZW5SZXNvbHZlcixcbiAgSVBvc3RQcm9jZXNzb3IsXG4gIElSZXNvbHZhYmxlLFxuICBJUmVzb2x2ZUNvbnRleHQsXG4gIElUb2tlblJlc29sdmVyLFxuICBTdHJpbmdDb25jYXQsXG59IGZyb20gXCIuLi9yZXNvbHZhYmxlXCI7XG5pbXBvcnQgeyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMgfSBmcm9tIFwiLi4vc3RyaW5nLWZyYWdtZW50c1wiO1xuaW1wb3J0IHtcbiAgY29udGFpbnNTdHJpbmdMaXN0VG9rZW5FbGVtZW50LFxuICBUb2tlblN0cmluZyxcbiAgdW5yZXNvbHZlZCxcbiAgY29udGFpbnNOdW1iZXJMaXN0VG9rZW5FbGVtZW50LFxuICBjb250YWluc01hcFRva2VuLFxufSBmcm9tIFwiLi9lbmNvZGluZ1wiO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tIFwiLi90b2tlbi1tYXBcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4uL3Rva2VuXCI7XG5pbXBvcnQge1xuICBjYW5ub3RSZXNvbHZlRnVuY3Rpb24sXG4gIGNvbnN0cnVjdHNDYW5ub3RCZVJlc29sdmVkLFxuICBlbmNvZGVkTGlzdFRva2VuSW5TY2FsYXJTdHJpbmdDb250ZXh0LFxuICBlbmNvZGVkTWFwVG9rZW5JblNjYWxhck51bWJlckNvbnRleHQsXG4gIGVuY29kZWRNYXBUb2tlbkluU2NhbGFyU3RyaW5nQ29udGV4dCxcbiAgbWFwS2V5TXVzdFJlc29sdmVUb1N0cmluZyxcbiAgdW5hYmxlVG9SZXNvbHZlQ2lyY3VsYXJSZWZlcmVuY2UsXG59IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcblxuLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgZXhwb3J0ZWQgdG8gY29uc3VtZXJzLCByZXNvbHZpbmcgc2hvdWxkIGhhcHBlbiB0aHJvdWdoIENvbnN0cnVjdC5yZXNvbHZlKClcblxuY29uc3QgdG9rZW5NYXAgPSBUb2tlbk1hcC5pbnN0YW5jZSgpO1xuXG4vKipcbiAqIE9wdGlvbnMgdG8gdGhlIHJlc29sdmUoKSBvcGVyYXRpb25cbiAqXG4gKiBOT1QgdGhlIHNhbWUgYXMgdGhlIFJlc29sdmVDb250ZXh0OyBSZXNvbHZlQ29udGV4dCBpcyBleHBvc2VkIHRvIFRva2VuXG4gKiBpbXBsZW1lbnRvcnMgYW5kIHJlc29sdXRpb24gaG9va3MsIHdoZXJlYXMgdGhpcyBzdHJ1Y3QgaXMganVzdCB0byBidW5kbGVcbiAqIGEgbnVtYmVyIG9mIHRoaW5ncyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBhcmd1bWVudHMgdG8gcmVzb2x2ZSgpIGluIGFcbiAqIHJlYWRhYmxlIHdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZU9wdGlvbnMge1xuICBzY29wZTogSUNvbnN0cnVjdDtcbiAgcHJlcGFyaW5nOiBib29sZWFuO1xuICByZXNvbHZlcjogSVRva2VuUmVzb2x2ZXI7XG4gIHByZWZpeD86IHN0cmluZ1tdO1xuICBwcmV2aW91c0NvbnRleHQ/OiBJUmVzb2x2ZUNvbnRleHQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYW4gb2JqZWN0IGJ5IGV2YWx1YXRpbmcgYWxsIHRva2VucyBhbmQgcmVtb3ZpbmcgYW55IHVuZGVmaW5lZCBvciBlbXB0eSBvYmplY3RzIG9yIGFycmF5cy5cbiAqIFZhbHVlcyBjYW4gb25seSBiZSBwcmltaXRpdmVzLCBhcnJheXMgb3IgdG9rZW5zLiBPdGhlciBvYmplY3RzIChpLmUuIHdpdGggbWV0aG9kcykgd2lsbCBiZSByZWplY3RlZC5cbiAqXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gcmVzb2x2ZS5cbiAqIEBwYXJhbSBwcmVmaXggUHJlZml4IGtleSBwYXRoIGNvbXBvbmVudHMgZm9yIGRpYWdub3N0aWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShvYmo6IGFueSwgb3B0aW9uczogSVJlc29sdmVPcHRpb25zKTogYW55IHtcbiAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggfHwgW107XG4gIGNvbnN0IHBhdGhOYW1lID0gXCIvXCIgKyBwcmVmaXguam9pbihcIi9cIik7XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBuZXcgcmVzb2x1dGlvbiBjb250ZXh0XG4gICAqL1xuICBmdW5jdGlvbiBtYWtlQ29udGV4dChhcHBlbmRQYXRoPzogc3RyaW5nKTogW0lSZXNvbHZlQ29udGV4dCwgSVBvc3RQcm9jZXNzb3JdIHtcbiAgICBjb25zdCBuZXdQcmVmaXggPVxuICAgICAgYXBwZW5kUGF0aCAhPT0gdW5kZWZpbmVkID8gcHJlZml4LmNvbmNhdChbYXBwZW5kUGF0aF0pIDogb3B0aW9ucy5wcmVmaXg7XG5cbiAgICBsZXQgcG9zdFByb2Nlc3NvcjogSVBvc3RQcm9jZXNzb3IgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQgPSB7XG4gICAgICBwcmVwYXJpbmc6IG9wdGlvbnMucHJlcGFyaW5nLFxuICAgICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUsXG4gICAgICBzdXBwcmVzc0JyYWNlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/LnN1cHByZXNzQnJhY2VzLFxuICAgICAgaWdub3JlRXNjYXBlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/Lmlnbm9yZUVzY2FwZXMsXG4gICAgICB3YXJuRXNjYXBlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/Lndhcm5Fc2NhcGVzLFxuICAgICAgaXRlcmF0b3JDb250ZXh0OiBvcHRpb25zLnByZXZpb3VzQ29udGV4dD8uaXRlcmF0b3JDb250ZXh0LFxuICAgICAgcmVnaXN0ZXJQb3N0UHJvY2Vzc29yKHBwKSB7XG4gICAgICAgIHBvc3RQcm9jZXNzb3IgPSBwcDtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlKHg6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh4LCB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBwcmVmaXg6IG5ld1ByZWZpeCxcbiAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIGNvbnRleHQsXG4gICAgICB7XG4gICAgICAgIHBvc3RQcm9jZXNzKHgpIHtcbiAgICAgICAgICByZXR1cm4gcG9zdFByb2Nlc3NvciA/IHBvc3RQcm9jZXNzb3IucG9zdFByb2Nlc3MoeCwgY29udGV4dCkgOiB4O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLy8gcHJvdGVjdCBhZ2FpbnN0IGN5Y2xpYyByZWZlcmVuY2VzIGJ5IGxpbWl0aW5nIGRlcHRoLlxuICBpZiAocHJlZml4Lmxlbmd0aCA+IDIwMCkge1xuICAgIHRocm93IHVuYWJsZVRvUmVzb2x2ZUNpcmN1bGFyUmVmZXJlbmNlKHBhdGhOYW1lKTtcbiAgfVxuXG4gIC8vXG4gIC8vIHVuZGVmaW5lZFxuICAvL1xuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vXG4gIC8vIG51bGxcbiAgLy9cblxuICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvL1xuICAvLyBmdW5jdGlvbnMgLSBub3Qgc3VwcG9ydGVkIChvbmx5IHRva2VucyBhcmUgc3VwcG9ydGVkKVxuICAvL1xuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBjYW5ub3RSZXNvbHZlRnVuY3Rpb24ocGF0aE5hbWUsIG9iaik7XG4gIH1cblxuICAvL1xuICAvLyBzdHJpbmcgLSBwb3RlbnRpYWxseSByZXBsYWNlIGFsbCBzdHJpbmdpZmllZCBUb2tlbnNcbiAgLy9cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgXCJsaXN0IGVsZW1lbnRcIiBUb2tlbiwgaXQgc2hvdWxkIG5ldmVyIG9jY3VyIGJ5IGl0c2VsZiBpbiBzdHJpbmcgY29udGV4dFxuICAgIGlmIChUb2tlblN0cmluZy5mb3JMaXN0VG9rZW4ob2JqKS50ZXN0KCkpIHtcbiAgICAgIHRocm93IGVuY29kZWRMaXN0VG9rZW5JblNjYWxhclN0cmluZ0NvbnRleHQoKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvYmogPT09IFRva2VuLlNUUklOR19NQVBfVE9LRU5fVkFMVUUgfHxcbiAgICAgIG9iaiA9PT0gVG9rZW4uQU5ZX01BUF9UT0tFTl9WQUxVRVxuICAgICkge1xuICAgICAgdGhyb3cgZW5jb2RlZE1hcFRva2VuSW5TY2FsYXJTdHJpbmdDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgbGV0IHN0cjogc3RyaW5nID0gb2JqO1xuXG4gICAgY29uc3QgY29udGV4dCA9IG1ha2VDb250ZXh0KClbMF07XG4gICAgY29uc3QgdG9rZW5TdHIgPSBUb2tlblN0cmluZy5mb3JTdHJpbmcoXG4gICAgICBzdHIsXG4gICAgICAhY29udGV4dC5pZ25vcmVFc2NhcGVzLFxuICAgICAgY29udGV4dC53YXJuRXNjYXBlcyxcbiAgICApO1xuICAgIGlmICh0b2tlblN0ci50ZXN0KCkpIHtcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IHRva2VuU3RyLnNwbGl0KHRva2VuTWFwLmxvb2t1cFRva2VuLmJpbmQodG9rZW5NYXApKTtcbiAgICAgIHN0ciA9IG9wdGlvbnMucmVzb2x2ZXIucmVzb2x2ZVN0cmluZyhmcmFnbWVudHMsIG1ha2VDb250ZXh0KClbMF0pO1xuICAgIH1cblxuICAgIC8vIHJlcGxhY2UgY29uY2F0ZW5hdGVkIHRva2VuIG51bWJlcnNcbiAgICBjb25zdCB0b2tlbk51bWJlclN0ciA9IFRva2VuU3RyaW5nLmZvck51bWJlcnMoc3RyKTtcbiAgICBpZiAodG9rZW5OdW1iZXJTdHIudGVzdCgpKSB7XG4gICAgICBjb25zdCBmcmFnbWVudHMgPSB0b2tlbk51bWJlclN0ci5zcGxpdCgoaWQpID0+IHtcbiAgICAgICAgcmV0dXJuIFRva2VuTWFwLmluc3RhbmNlKCkubG9va3VwTnVtYmVyVG9rZW4ocGFyc2VGbG9hdChpZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbnRleHQgPSBtYWtlQ29udGV4dCgpWzBdO1xuICAgICAgc3RyID0gZnJhZ21lbnRzLm1hcFRva2Vucyhjb250ZXh0KS5qb2luKG5ldyBTdHJpbmdDb25jYXQoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8vXG4gIC8vIG51bWJlciAtIHBvdGVudGlhbGx5IGRlY29kZSBUb2tlbml6ZWQgbnVtYmVyXG4gIC8vXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcIm51bWJlclwiKSB7XG4gICAgaWYgKG9iaiA9PT0gVG9rZW4uTlVNQkVSX01BUF9UT0tFTl9WQUxVRSkge1xuICAgICAgdGhyb3cgZW5jb2RlZE1hcFRva2VuSW5TY2FsYXJOdW1iZXJDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVOdW1iZXJUb2tlbihvYmosIG1ha2VDb250ZXh0KClbMF0pO1xuICB9XG5cbiAgLy9cbiAgLy8gcHJpbWl0aXZlcyAtIGFzLWlzXG4gIC8vXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWluc3RhbmNlb2Yvbm8taW5zdGFuY2VvZlxuICBpZiAodHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vXG4gIC8vIGFycmF5cyAtIHJlc29sdmUgYWxsIHZhbHVlcywgcmVtb3ZlIHVuZGVmaW5lZCBhbmQgcmVtb3ZlIGVtcHR5IGFycmF5c1xuICAvL1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICBpZiAoY29udGFpbnNTdHJpbmdMaXN0VG9rZW5FbGVtZW50KG9iaikpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnJlc29sdmVyLnJlc29sdmVMaXN0KG9iaiwgbWFrZUNvbnRleHQoKVswXSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5zTnVtYmVyTGlzdFRva2VuRWxlbWVudChvYmopKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5yZXNvbHZlci5yZXNvbHZlTnVtYmVyTGlzdChvYmosIG1ha2VDb250ZXh0KClbMF0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFyciA9IG9ialxuICAgICAgLm1hcCgoeCwgaSkgPT4gbWFrZUNvbnRleHQoYCR7aX1gKVswXS5yZXNvbHZlKHgpKVxuICAgICAgLmZpbHRlcigoeCkgPT4gdHlwZW9mIHggIT09IFwidW5kZWZpbmVkXCIpO1xuXG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIC8vIGNoZWNrIGZvciB0b2tlbml6ZWQgbWFwXG4gIGlmIChjb250YWluc01hcFRva2VuKG9iaikpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5yZXNvbHZlci5yZXNvbHZlTWFwKG9iaiwgbWFrZUNvbnRleHQoKVswXSk7XG4gIH1cblxuICAvL1xuICAvLyB0b2tlbnMgLSBpbnZva2UgJ3Jlc29sdmUnIGFuZCBjb250aW51ZSB0byByZXNvbHZlIHJlY3Vyc2l2ZWx5XG4gIC8vXG5cbiAgaWYgKHVucmVzb2x2ZWQob2JqKSkge1xuICAgIGNvbnN0IFtjb250ZXh0LCBwb3N0UHJvY2Vzc29yXSA9IG1ha2VDb250ZXh0KCk7XG4gICAgcmV0dXJuIG9wdGlvbnMucmVzb2x2ZXIucmVzb2x2ZVRva2VuKG9iaiwgY29udGV4dCwgcG9zdFByb2Nlc3Nvcik7XG4gIH1cblxuICAvL1xuICAvLyBvYmplY3RzIC0gZGVlcC1yZXNvbHZlIGFsbCB2YWx1ZXNcbiAgLy9cblxuICAvLyBNdXN0IG5vdCBiZSBhIENvbnN0cnVjdCBhdCB0aGlzIHBvaW50LCBvdGhlcndpc2UgeW91IHByb2JhYmx5IG1hZGUgYSB0eXBvXG4gIC8vIG1pc3Rha2Ugc29tZXdoZXJlIGFuZCByZXNvbHZlIHdpbGwgZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCByZWN1cnNpbmcgaW50b1xuICAvLyBjaGlsZC5wYXJlbnQgPC0tLT4gcGFyZW50LmNoaWxkcmVuXG4gIGlmIChpc0NvbnN0cnVjdChvYmopKSB7XG4gICAgdGhyb3cgY29uc3RydWN0c0Nhbm5vdEJlUmVzb2x2ZWQocGF0aE5hbWUpO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgIGNvbnN0IHJlc29sdmVkS2V5ID0gbWFrZUNvbnRleHQoKVswXS5yZXNvbHZlKGtleSk7XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZEtleSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhyb3cgbWFwS2V5TXVzdFJlc29sdmVUb1N0cmluZyhwYXRoTmFtZSwga2V5LCByZXNvbHZlZEtleSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBtYWtlQ29udGV4dChrZXkpWzBdLnJlc29sdmUob2JqW2tleV0pO1xuXG4gICAgLy8gc2tpcCB1bmRlZmluZWRcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXN1bHRbcmVzb2x2ZWRLZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEZpbmQgYWxsIFRva2VucyB0aGF0IGFyZSB1c2VkIGluIHRoZSBnaXZlbiBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUb2tlbnMoc2NvcGU6IElDb25zdHJ1Y3QsIGZuOiAoKSA9PiBhbnkpOiBJUmVzb2x2YWJsZVtdIHtcbiAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVtZW1iZXJpbmdUb2tlblJlc29sdmVyKG5ldyBTdHJpbmdDb25jYXQoKSk7XG5cbiAgcmVzb2x2ZShmbigpLCB7IHNjb3BlLCBwcmVmaXg6IFtdLCByZXNvbHZlciwgcHJlcGFyaW5nOiB0cnVlIH0pO1xuXG4gIHJldHVybiByZXNvbHZlci50b2tlbnM7XG59XG5cbi8qKlxuICogUmVtZW1iZXIgYWxsIFRva2VucyBlbmNvdW50ZXJlZCB3aGlsZSByZXNvbHZpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFJlbWVtYmVyaW5nVG9rZW5SZXNvbHZlciBleHRlbmRzIERlZmF1bHRUb2tlblJlc29sdmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbnNTZWVuID0gbmV3IFNldDxJUmVzb2x2YWJsZT4oKTtcblxuICBwdWJsaWMgcmVzb2x2ZVRva2VuKFxuICAgIHQ6IElSZXNvbHZhYmxlLFxuICAgIGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCxcbiAgICBwb3N0UHJvY2Vzc29yOiBJUG9zdFByb2Nlc3NvcixcbiAgKSB7XG4gICAgdGhpcy50b2tlbnNTZWVuLmFkZCh0KTtcbiAgICByZXR1cm4gc3VwZXIucmVzb2x2ZVRva2VuKHQsIGNvbnRleHQsIHBvc3RQcm9jZXNzb3IpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmVTdHJpbmcoczogVG9rZW5pemVkU3RyaW5nRnJhZ21lbnRzLCBjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpIHtcbiAgICBjb25zdCByZXQgPSBzdXBlci5yZXNvbHZlU3RyaW5nKHMsIGNvbnRleHQpO1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRva2VucygpOiBJUmVzb2x2YWJsZVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRva2Vuc1NlZW4pO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgYW4gb2JqZWN0IGlzIGEgQ29uc3RydWN0XG4gKlxuICogTm90IGluICdjb25zdHJ1Y3QudHMnIGJlY2F1c2UgdGhhdCB3b3VsZCBsZWFkIHRvIGEgZGVwZW5kZW5jeSBjeWNsZSB2aWEgJ3VuaXF1ZWlkLnRzJyxcbiAqIGFuZCB0aGlzIGlzIGEgYmVzdC1lZmZvcnQgcHJvdGVjdGlvbiBhZ2FpbnN0IGEgY29tbW9uIHByb2dyYW1taW5nIG1pc3Rha2UgYW55d2F5LlxuICovXG5mdW5jdGlvbiBpc0NvbnN0cnVjdCh4OiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHguX2NoaWxkcmVuICE9PSB1bmRlZmluZWQgJiYgeC5fbWV0YWRhdGEgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIG51bWJlciB0b2tlblxuICovXG5mdW5jdGlvbiByZXNvbHZlTnVtYmVyVG9rZW4oeDogbnVtYmVyLCBjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICBjb25zdCB0b2tlbiA9IFRva2VuTWFwLmluc3RhbmNlKCkubG9va3VwTnVtYmVyVG9rZW4oeCk7XG4gIGlmICh0b2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQucmVzb2x2ZSh0b2tlbik7XG59XG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbnMvcHJpdmF0ZS9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTREQSwwQkFvTUM7QUFLRCxnQ0FNQztBQXZRRCw4Q0FPdUI7QUFFdkIseUNBTW9CO0FBQ3BCLDJDQUF1QztBQUN2QyxvQ0FBaUM7QUFDakMseUNBUXNCO0FBQ3RCLCtCQUE2QjtBQUU3QixxR0FBcUc7QUFFckcsTUFBTSxRQUFRLEdBQUcsb0JBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQWtCckM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQVEsRUFBRSxPQUF3QjtJQUN4RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4Qzs7T0FFRztJQUNILFNBQVMsV0FBVyxDQUFDLFVBQW1CO1FBQ3RDLE1BQU0sU0FBUyxHQUNiLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRTFFLElBQUksYUFBeUMsQ0FBQztRQUU5QyxNQUFNLE9BQU8sR0FBb0I7WUFDL0IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixjQUFjLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxjQUFjO1lBQ3ZELGFBQWEsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLGFBQWE7WUFDckQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsV0FBVztZQUNqRCxlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxlQUFlO1lBQ3pE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RTdCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxhQUFhLENBQUMsQ0FBMkIsRUFBRSxPQUF3QjtRQUN4RSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQXBCRCw0REFvQkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsV0FBVyxDQUFDLENBQU07SUFDekIsT0FBTyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLENBQVMsRUFBRSxPQUF3QjtJQUM3RCxNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbi8vIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy9ibG9iL2UwMWU0N2Y3OGVmMWU5YjYwMGVmY2QyM2ZmNzcwNWFhOGQzODQwMTcvbGliL3ByaXZhdGUvcmVzb2x2ZS50c1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0VG9rZW5SZXNvbHZlcixcbiAgSVBvc3RQcm9jZXNzb3IsXG4gIElSZXNvbHZhYmxlLFxuICBJUmVzb2x2ZUNvbnRleHQsXG4gIElUb2tlblJlc29sdmVyLFxuICBTdHJpbmdDb25jYXQsXG59IGZyb20gXCIuLi9yZXNvbHZhYmxlXCI7XG5pbXBvcnQgeyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMgfSBmcm9tIFwiLi4vc3RyaW5nLWZyYWdtZW50c1wiO1xuaW1wb3J0IHtcbiAgY29udGFpbnNTdHJpbmdMaXN0VG9rZW5FbGVtZW50LFxuICBUb2tlblN0cmluZyxcbiAgdW5yZXNvbHZlZCxcbiAgY29udGFpbnNOdW1iZXJMaXN0VG9rZW5FbGVtZW50LFxuICBjb250YWluc01hcFRva2VuLFxufSBmcm9tIFwiLi9lbmNvZGluZ1wiO1xuaW1wb3J0IHsgVG9rZW5NYXAgfSBmcm9tIFwiLi90b2tlbi1tYXBcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4uL3Rva2VuXCI7XG5pbXBvcnQge1xuICBjYW5ub3RSZXNvbHZlRnVuY3Rpb24sXG4gIGNvbnN0cnVjdHNDYW5ub3RCZVJlc29sdmVkLFxuICBlbmNvZGVkTGlzdFRva2VuSW5TY2FsYXJTdHJpbmdDb250ZXh0LFxuICBlbmNvZGVkTWFwVG9rZW5JblNjYWxhck51bWJlckNvbnRleHQsXG4gIGVuY29kZWRNYXBUb2tlbkluU2NhbGFyU3RyaW5nQ29udGV4dCxcbiAgbWFwS2V5TXVzdFJlc29sdmVUb1N0cmluZyxcbiAgdW5hYmxlVG9SZXNvbHZlQ2lyY3VsYXJSZWZlcmVuY2UsXG59IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSBcInV0aWxcIjtcblxuLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgZXhwb3J0ZWQgdG8gY29uc3VtZXJzLCByZXNvbHZpbmcgc2hvdWxkIGhhcHBlbiB0aHJvdWdoIENvbnN0cnVjdC5yZXNvbHZlKClcblxuY29uc3QgdG9rZW5NYXAgPSBUb2tlbk1hcC5pbnN0YW5jZSgpO1xuXG4vKipcbiAqIE9wdGlvbnMgdG8gdGhlIHJlc29sdmUoKSBvcGVyYXRpb25cbiAqXG4gKiBOT1QgdGhlIHNhbWUgYXMgdGhlIFJlc29sdmVDb250ZXh0OyBSZXNvbHZlQ29udGV4dCBpcyBleHBvc2VkIHRvIFRva2VuXG4gKiBpbXBsZW1lbnRvcnMgYW5kIHJlc29sdXRpb24gaG9va3MsIHdoZXJlYXMgdGhpcyBzdHJ1Y3QgaXMganVzdCB0byBidW5kbGVcbiAqIGEgbnVtYmVyIG9mIHRoaW5ncyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBhcmd1bWVudHMgdG8gcmVzb2x2ZSgpIGluIGFcbiAqIHJlYWRhYmxlIHdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZU9wdGlvbnMge1xuICBzY29wZTogSUNvbnN0cnVjdDtcbiAgcHJlcGFyaW5nOiBib29sZWFuO1xuICByZXNvbHZlcjogSVRva2VuUmVzb2x2ZXI7XG4gIHByZWZpeD86IHN0cmluZ1tdO1xuICBwcmV2aW91c0NvbnRleHQ/OiBJUmVzb2x2ZUNvbnRleHQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYW4gb2JqZWN0IGJ5IGV2YWx1YXRpbmcgYWxsIHRva2VucyBhbmQgcmVtb3ZpbmcgYW55IHVuZGVmaW5lZCBvciBlbXB0eSBvYmplY3RzIG9yIGFycmF5cy5cbiAqIFZhbHVlcyBjYW4gb25seSBiZSBwcmltaXRpdmVzLCBhcnJheXMgb3IgdG9rZW5zLiBPdGhlciBvYmplY3RzIChpLmUuIHdpdGggbWV0aG9kcykgd2lsbCBiZSByZWplY3RlZC5cbiAqXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gcmVzb2x2ZS5cbiAqIEBwYXJhbSBwcmVmaXggUHJlZml4IGtleSBwYXRoIGNvbXBvbmVudHMgZm9yIGRpYWdub3N0aWNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShvYmo6IGFueSwgb3B0aW9uczogSVJlc29sdmVPcHRpb25zKTogYW55IHtcbiAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggfHwgW107XG4gIGNvbnN0IHBhdGhOYW1lID0gXCIvXCIgKyBwcmVmaXguam9pbihcIi9cIik7XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBuZXcgcmVzb2x1dGlvbiBjb250ZXh0XG4gICAqL1xuICBmdW5jdGlvbiBtYWtlQ29udGV4dChhcHBlbmRQYXRoPzogc3RyaW5nKTogW0lSZXNvbHZlQ29udGV4dCwgSVBvc3RQcm9jZXNzb3JdIHtcbiAgICBjb25zdCBuZXdQcmVmaXggPVxuICAgICAgYXBwZW5kUGF0aCAhPT0gdW5kZWZpbmVkID8gcHJlZml4LmNvbmNhdChbYXBwZW5kUGF0aF0pIDogb3B0aW9ucy5wcmVmaXg7XG5cbiAgICBsZXQgcG9zdFByb2Nlc3NvcjogSVBvc3RQcm9jZXNzb3IgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQgPSB7XG4gICAgICBwcmVwYXJpbmc6IG9wdGlvbnMucHJlcGFyaW5nLFxuICAgICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUsXG4gICAgICBzdXBwcmVzc0JyYWNlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/LnN1cHByZXNzQnJhY2VzLFxuICAgICAgaWdub3JlRXNjYXBlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/Lmlnbm9yZUVzY2FwZXMsXG4gICAgICB3YXJuRXNjYXBlczogb3B0aW9ucy5wcmV2aW91c0NvbnRleHQ/Lndhcm5Fc2NhcGVzLFxuICAgICAgaXRlcmF0b3JDb250ZXh0OiBvcHRpb25zLnByZXZpb3VzQ29udGV4dD8uaXRlcmF0b3JDb250ZXh0LFxuICAgICAgcmVnaXN0ZXJQb3N0UHJvY2Vzc29yKHBwKSB7XG4gICAgICAgIHBvc3RQcm9jZXNzb3IgPSBwcDtcbiAgICAgIH0sXG4gICAgICByZXNvbHZlKHg6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSh4LCB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBwcmVmaXg6IG5ld1ByZWZpeCxcbiAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIGNvbnRleHQsXG4gICAgICB7XG4gICAgICAgIHBvc3RQcm9jZXNzKHgpIHtcbiAgICAgICAgICByZXR1cm4gcG9zdFByb2Nlc3NvciA/IHBvc3RQcm9jZXNzb3IucG9zdFByb2Nlc3MoeCwgY29udGV4dCkgOiB4O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLy8gcHJvdGVjdCBhZ2FpbnN0IGN5Y2xpYyByZWZlcmVuY2VzIGJ5IGxpbWl0aW5nIGRlcHRoLlxuICBpZiAocHJlZml4Lmxlbmd0aCA+IDIwMCkge1xuICAgIHRocm93IHVuYWJsZVRvUmVzb2x2ZUNpcmN1bGFyUmVmZXJlbmNlKHBhdGhOYW1lKTtcbiAgfVxuXG4gIC8vXG4gIC8vIHVuZGVmaW5lZFxuICAvL1xuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vXG4gIC8vIG51bGxcbiAgLy9cblxuICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvL1xuICAvLyBmdW5jdGlvbnMgLSBub3Qgc3VwcG9ydGVkIChvbmx5IHRva2VucyBhcmUgc3VwcG9ydGVkKVxuICAvL1xuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBjYW5ub3RSZXNvbHZlRnVuY3Rpb24ocGF0aE5hbWUsIG9iaik7XG4gIH1cblxuICAvL1xuICAvLyBzdHJpbmcgLSBwb3RlbnRpYWxseSByZXBsYWNlIGFsbCBzdHJpbmdpZmllZCBUb2tlbnNcbiAgLy9cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgXCJsaXN0IGVsZW1lbnRcIiBUb2tlbiwgaXQgc2hvdWxkIG5ldmVyIG9jY3VyIGJ5IGl0c2VsZiBpbiBzdHJpbmcgY29udGV4dFxuICAgIGlmIChUb2tlblN0cmluZy5mb3JMaXN0VG9rZW4ob2JqKS50ZXN0KCkpIHtcbiAgICAgIHRocm93IGVuY29kZWRMaXN0VG9rZW5JblNjYWxhclN0cmluZ0NvbnRleHQoKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvYmogPT09IFRva2VuLlNUUklOR19NQVBfVE9LRU5fVkFMVUUgfHxcbiAgICAgIG9iaiA9PT0gVG9rZW4uQU5ZX01BUF9UT0tFTl9WQUxVRVxuICAgICkge1xuICAgICAgdGhyb3cgZW5jb2RlZE1hcFRva2VuSW5TY2FsYXJTdHJpbmdDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgbGV0IHN0cjogc3RyaW5nID0gb2JqO1xuXG4gICAgY29uc3QgY29udGV4dCA9IG1ha2VDb250ZXh0KClbMF07XG4gICAgY29uc3QgdG9rZW5TdHIgPSBUb2tlblN0cmluZy5mb3JTdHJpbmcoXG4gICAgICBzdHIsXG4gICAgICAhY29udGV4dC5pZ25vcmVFc2NhcGVzLFxuICAgICAgY29udGV4dC53YXJuRXNjYXBlcyxcbiAgICApO1xuICAgIGlmICh0b2tlblN0ci50ZXN0KCkpIHtcbiAgICAgIGNvbnN0IGZyYWdtZW50cyA9IHRva2VuU3RyLnNwbGl0KHRva2VuTWFwLmxvb2t1cFRva2VuLmJpbmQodG9rZW5NYXApKTtcbiAgICAgIHN0ciA9IG9wdGlvbnMucmVzb2x2ZXIucmVzb2x2ZVN0cmluZyhmcmFnbWVudHMsIG1ha2VDb250ZXh0KClbMF0pO1xuICAgIH1cblxuICAgIC8vIHJlcGxhY2UgY29uY2F0ZW5hdGVkIHRva2VuIG51bWJlcnNcbiAgICBjb25zdCB0b2tlbk51bWJlclN0ciA9IFRva2VuU3RyaW5nLmZvck51bWJlcnMoc3RyKTtcbiAgICBpZiAodG9rZW5OdW1iZXJTdHIudGVzdCgpKSB7XG4gICAgICBjb25zdCBmcmFnbWVudHMgPSB0b2tlbk51bWJlclN0ci5zcGxpdCgoaWQpID0+IHtcbiAgICAgICAgcmV0dXJuIFRva2VuTWFwLmluc3RhbmNlKCkubG9va3VwTnVtYmVyVG9rZW4ocGFyc2VGbG9hdChpZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbnRleHQgPSBtYWtlQ29udGV4dCgpWzBdO1xuICAgICAgc3RyID0gZnJhZ21lbnRzLm1hcFRva2Vucyhjb250ZXh0KS5qb2luKG5ldyBTdHJpbmdDb25jYXQoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8vXG4gIC8vIG51bWJlciAtIHBvdGVudGlhbGx5IGRlY29kZSBUb2tlbml6ZWQgbnVtYmVyXG4gIC8vXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcIm51bWJlclwiKSB7XG4gICAgaWYgKG9iaiA9PT0gVG9rZW4uTlVNQkVSX01BUF9UT0tFTl9WQUxVRSkge1xuICAgICAgdGhyb3cgZW5jb2RlZE1hcFRva2VuSW5TY2FsYXJOdW1iZXJDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc29sdmVOdW1iZXJUb2tlbihvYmosIG1ha2VDb250ZXh0KClbMF0pO1xuICB9XG5cbiAgLy9cbiAgLy8gcHJpbWl0aXZlcyAtIGFzLWlzXG4gIC8vXG5cbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgdHlwZXMuaXNEYXRlKG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy9cbiAgLy8gYXJyYXlzIC0gcmVzb2x2ZSBhbGwgdmFsdWVzLCByZW1vdmUgdW5kZWZpbmVkIGFuZCByZW1vdmUgZW1wdHkgYXJyYXlzXG4gIC8vXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGlmIChjb250YWluc1N0cmluZ0xpc3RUb2tlbkVsZW1lbnQob2JqKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucmVzb2x2ZXIucmVzb2x2ZUxpc3Qob2JqLCBtYWtlQ29udGV4dCgpWzBdKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNOdW1iZXJMaXN0VG9rZW5FbGVtZW50KG9iaikpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnJlc29sdmVyLnJlc29sdmVOdW1iZXJMaXN0KG9iaiwgbWFrZUNvbnRleHQoKVswXSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXJyID0gb2JqXG4gICAgICAubWFwKCh4LCBpKSA9PiBtYWtlQ29udGV4dChgJHtpfWApWzBdLnJlc29sdmUoeCkpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB0eXBlb2YgeCAhPT0gXCJ1bmRlZmluZWRcIik7XG5cbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgLy8gY2hlY2sgZm9yIHRva2VuaXplZCBtYXBcbiAgaWYgKGNvbnRhaW5zTWFwVG9rZW4ob2JqKSkge1xuICAgIHJldHVybiBvcHRpb25zLnJlc29sdmVyLnJlc29sdmVNYXAob2JqLCBtYWtlQ29udGV4dCgpWzBdKTtcbiAgfVxuXG4gIC8vXG4gIC8vIHRva2VucyAtIGludm9rZSAncmVzb2x2ZScgYW5kIGNvbnRpbnVlIHRvIHJlc29sdmUgcmVjdXJzaXZlbHlcbiAgLy9cblxuICBpZiAodW5yZXNvbHZlZChvYmopKSB7XG4gICAgY29uc3QgW2NvbnRleHQsIHBvc3RQcm9jZXNzb3JdID0gbWFrZUNvbnRleHQoKTtcbiAgICByZXR1cm4gb3B0aW9ucy5yZXNvbHZlci5yZXNvbHZlVG9rZW4ob2JqLCBjb250ZXh0LCBwb3N0UHJvY2Vzc29yKTtcbiAgfVxuXG4gIC8vXG4gIC8vIG9iamVjdHMgLSBkZWVwLXJlc29sdmUgYWxsIHZhbHVlc1xuICAvL1xuXG4gIC8vIE11c3Qgbm90IGJlIGEgQ29uc3RydWN0IGF0IHRoaXMgcG9pbnQsIG90aGVyd2lzZSB5b3UgcHJvYmFibHkgbWFkZSBhIHR5cG9cbiAgLy8gbWlzdGFrZSBzb21ld2hlcmUgYW5kIHJlc29sdmUgd2lsbCBnZXQgaW50byBhbiBpbmZpbml0ZSBsb29wIHJlY3Vyc2luZyBpbnRvXG4gIC8vIGNoaWxkLnBhcmVudCA8LS0tPiBwYXJlbnQuY2hpbGRyZW5cbiAgaWYgKGlzQ29uc3RydWN0KG9iaikpIHtcbiAgICB0aHJvdyBjb25zdHJ1Y3RzQ2Fubm90QmVSZXNvbHZlZChwYXRoTmFtZSk7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRLZXkgPSBtYWtlQ29udGV4dCgpWzBdLnJlc29sdmUoa2V5KTtcbiAgICBpZiAodHlwZW9mIHJlc29sdmVkS2V5ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aHJvdyBtYXBLZXlNdXN0UmVzb2x2ZVRvU3RyaW5nKHBhdGhOYW1lLCBrZXksIHJlc29sdmVkS2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG1ha2VDb250ZXh0KGtleSlbMF0ucmVzb2x2ZShvYmpba2V5XSk7XG5cbiAgICAvLyBza2lwIHVuZGVmaW5lZFxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJlc3VsdFtyZXNvbHZlZEtleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRmluZCBhbGwgVG9rZW5zIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGdpdmVuIHN0cnVjdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFRva2VucyhzY29wZTogSUNvbnN0cnVjdCwgZm46ICgpID0+IGFueSk6IElSZXNvbHZhYmxlW10ge1xuICBjb25zdCByZXNvbHZlciA9IG5ldyBSZW1lbWJlcmluZ1Rva2VuUmVzb2x2ZXIobmV3IFN0cmluZ0NvbmNhdCgpKTtcblxuICByZXNvbHZlKGZuKCksIHsgc2NvcGUsIHByZWZpeDogW10sIHJlc29sdmVyLCBwcmVwYXJpbmc6IHRydWUgfSk7XG5cbiAgcmV0dXJuIHJlc29sdmVyLnRva2Vucztcbn1cblxuLyoqXG4gKiBSZW1lbWJlciBhbGwgVG9rZW5zIGVuY291bnRlcmVkIHdoaWxlIHJlc29sdmluZ1xuICovXG5leHBvcnQgY2xhc3MgUmVtZW1iZXJpbmdUb2tlblJlc29sdmVyIGV4dGVuZHMgRGVmYXVsdFRva2VuUmVzb2x2ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2Vuc1NlZW4gPSBuZXcgU2V0PElSZXNvbHZhYmxlPigpO1xuXG4gIHB1YmxpYyByZXNvbHZlVG9rZW4oXG4gICAgdDogSVJlc29sdmFibGUsXG4gICAgY29udGV4dDogSVJlc29sdmVDb250ZXh0LFxuICAgIHBvc3RQcm9jZXNzb3I6IElQb3N0UHJvY2Vzc29yLFxuICApIHtcbiAgICB0aGlzLnRva2Vuc1NlZW4uYWRkKHQpO1xuICAgIHJldHVybiBzdXBlci5yZXNvbHZlVG9rZW4odCwgY29udGV4dCwgcG9zdFByb2Nlc3Nvcik7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZVN0cmluZyhzOiBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMsIGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCkge1xuICAgIGNvbnN0IHJldCA9IHN1cGVyLnJlc29sdmVTdHJpbmcocywgY29udGV4dCk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9rZW5zKCk6IElSZXNvbHZhYmxlW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMudG9rZW5zU2Vlbik7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhbiBvYmplY3QgaXMgYSBDb25zdHJ1Y3RcbiAqXG4gKiBOb3QgaW4gJ2NvbnN0cnVjdC50cycgYmVjYXVzZSB0aGF0IHdvdWxkIGxlYWQgdG8gYSBkZXBlbmRlbmN5IGN5Y2xlIHZpYSAndW5pcXVlaWQudHMnLFxuICogYW5kIHRoaXMgaXMgYSBiZXN0LWVmZm9ydCBwcm90ZWN0aW9uIGFnYWluc3QgYSBjb21tb24gcHJvZ3JhbW1pbmcgbWlzdGFrZSBhbnl3YXkuXG4gKi9cbmZ1bmN0aW9uIGlzQ29uc3RydWN0KHg6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4geC5fY2hpbGRyZW4gIT09IHVuZGVmaW5lZCAmJiB4Ll9tZXRhZGF0YSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgbnVtYmVyIHRva2VuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVOdW1iZXJUb2tlbih4OiBudW1iZXIsIGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCk6IGFueSB7XG4gIGNvbnN0IHRva2VuID0gVG9rZW5NYXAuaW5zdGFuY2UoKS5sb29rdXBOdW1iZXJUb2tlbih4KTtcbiAgaWYgKHRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geDtcbiAgfVxuICByZXR1cm4gY29udGV4dC5yZXNvbHZlKHRva2VuKTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Captures a complete stack trace at the point of invocation.
|
|
3
3
|
*/
|
|
4
|
-
export declare function captureStackTrace(below?:
|
|
4
|
+
export declare function captureStackTrace(below?: (...args: any[]) => any): string[];
|
|
5
5
|
/**
|
|
6
6
|
* Captures a stack trace for a resolvable's `creationStack`, unless disabled
|
|
7
7
|
* via the `CDKTN_DISABLE_CREATION_STACK` env var. When disabled, returns `[]`
|
|
@@ -8,7 +8,6 @@ exports.captureCreationStack = captureCreationStack;
|
|
|
8
8
|
/**
|
|
9
9
|
* Captures a complete stack trace at the point of invocation.
|
|
10
10
|
*/
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
12
11
|
function captureStackTrace(below) {
|
|
13
12
|
below = below || captureStackTrace; // hide myself if nothing else
|
|
14
13
|
const object = { stack: "" };
|
|
@@ -40,4 +39,4 @@ function captureCreationStack() {
|
|
|
40
39
|
}
|
|
41
40
|
return captureStackTrace(captureCreationStack);
|
|
42
41
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9rZW5zL3ByaXZhdGUvc3RhY2stdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMseUhBQXlIOztBQUt6SCw4Q0FpQkM7QUFPRCxvREFNQztBQWpDRDs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQStCO0lBQy9ELEtBQUssR0FBRyxLQUFLLElBQUksaUJBQWlCLENBQUMsQ0FBQyw4QkFBOEI7SUFDbEUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDN0IsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUM1QyxJQUFJLENBQUM7UUFDSCxLQUFLLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7WUFBUyxDQUFDO1FBQ1QsS0FBSyxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSztTQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQjtJQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3RELElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDcEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gY29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzL2Jsb2IvZTAxZTQ3Zjc4ZWYxZTliNjAwZWZjZDIzZmY3NzA1YWE4ZDM4NDAxNy9saWIvcHJpdmF0ZS9zdGFjay10cmFjZS50c1xuXG4vKipcbiAqIENhcHR1cmVzIGEgY29tcGxldGUgc3RhY2sgdHJhY2UgYXQgdGhlIHBvaW50IG9mIGludm9jYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlU3RhY2tUcmFjZShiZWxvdz86ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55KTogc3RyaW5nW10ge1xuICBiZWxvdyA9IGJlbG93IHx8IGNhcHR1cmVTdGFja1RyYWNlOyAvLyBoaWRlIG15c2VsZiBpZiBub3RoaW5nIGVsc2VcbiAgY29uc3Qgb2JqZWN0ID0geyBzdGFjazogXCJcIiB9O1xuICBjb25zdCBwcmV2aW91c0xpbWl0ID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuICB0cnkge1xuICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKG9iamVjdCwgYmVsb3cpO1xuICB9IGZpbmFsbHkge1xuICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IHByZXZpb3VzTGltaXQ7XG4gIH1cbiAgaWYgKCFvYmplY3Quc3RhY2spIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIG9iamVjdC5zdGFja1xuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5zbGljZSgxKVxuICAgIC5tYXAoKHMpID0+IHMucmVwbGFjZSgvXlxccyphdFxccysvLCBcIlwiKSk7XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgYSBzdGFjayB0cmFjZSBmb3IgYSByZXNvbHZhYmxlJ3MgYGNyZWF0aW9uU3RhY2tgLCB1bmxlc3MgZGlzYWJsZWRcbiAqIHZpYSB0aGUgYENES1ROX0RJU0FCTEVfQ1JFQVRJT05fU1RBQ0tgIGVudiB2YXIuIFdoZW4gZGlzYWJsZWQsIHJldHVybnMgYFtdYFxuICogdG8gc2tpcCB0aGUgKGV4cGVuc2l2ZSkgYEVycm9yLmNhcHR1cmVTdGFja1RyYWNlYCBjYWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZUNyZWF0aW9uU3RhY2soKTogc3RyaW5nW10ge1xuICBjb25zdCBmbGFnID0gcHJvY2Vzcy5lbnYuQ0RLVE5fRElTQUJMRV9DUkVBVElPTl9TVEFDSztcbiAgaWYgKGZsYWcgPT09IFwidHJ1ZVwiIHx8IGZsYWcgPT09IFwiMVwiKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBjYXB0dXJlU3RhY2tUcmFjZShjYXB0dXJlQ3JlYXRpb25TdGFjayk7XG59XG4iXX0=
|
package/lib/tokens/resolvable.js
CHANGED
|
@@ -11,7 +11,7 @@ const errors_1 = require("../errors");
|
|
|
11
11
|
* Drops 'undefined's.
|
|
12
12
|
*/
|
|
13
13
|
class StringConcat {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.StringConcat", version: "0.26.0-pre.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.StringConcat", version: "0.26.0-pre.21" };
|
|
15
15
|
/**
|
|
16
16
|
* Concatenates string fragments
|
|
17
17
|
*/
|
|
@@ -33,7 +33,7 @@ exports.StringConcat = StringConcat;
|
|
|
33
33
|
*/
|
|
34
34
|
class DefaultTokenResolver {
|
|
35
35
|
concat;
|
|
36
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DefaultTokenResolver", version: "0.26.0-pre.
|
|
36
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DefaultTokenResolver", version: "0.26.0-pre.21" };
|
|
37
37
|
/**
|
|
38
38
|
* Resolves tokens
|
|
39
39
|
*/
|
|
@@ -8,7 +8,7 @@ const token_1 = require("./token");
|
|
|
8
8
|
* @experimental
|
|
9
9
|
*/
|
|
10
10
|
class TokenizedStringFragments {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TokenizedStringFragments", version: "0.26.0-pre.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TokenizedStringFragments", version: "0.26.0-pre.21" };
|
|
12
12
|
/**
|
|
13
13
|
* Fragments in the tokenized string
|
|
14
14
|
*/
|
|
@@ -137,8 +137,7 @@ class TokenizedStringFragments {
|
|
|
137
137
|
context.suppressBraces = originalSupressBraces;
|
|
138
138
|
}
|
|
139
139
|
break;
|
|
140
|
-
case "token":
|
|
141
|
-
// eslint-disable-next-line no-case-declarations
|
|
140
|
+
case "token": {
|
|
142
141
|
const mapped = context.resolve(f.token);
|
|
143
142
|
if (token_1.Tokenization.isResolvable(mapped)) {
|
|
144
143
|
ret.addToken(mapped);
|
|
@@ -147,6 +146,7 @@ class TokenizedStringFragments {
|
|
|
147
146
|
ret.addIntrinsic(mapped);
|
|
148
147
|
}
|
|
149
148
|
break;
|
|
149
|
+
}
|
|
150
150
|
case "intrinsic":
|
|
151
151
|
ret.addIntrinsic(f.value);
|
|
152
152
|
break;
|
|
@@ -192,4 +192,4 @@ function fragmentValue(fragment) {
|
|
|
192
192
|
return fragment.value;
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZyYWdtZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbnMvc3RyaW5nLWZyYWdtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBUUEsbUNBQXVDO0FBY3ZDOzs7R0FHRztBQUNILE1BQWEsd0JBQXdCOztJQUNuQzs7T0FFRztJQUNjLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBWSxDQUFDO0lBRW5EOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEtBQWtCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMs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TSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakQsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDOztBQXBMSCw0REFxTEM7QUFjRDs7OztHQUlHO0FBQ0gsU0FBUyxhQUFhLENBQUMsUUFBa0I7SUFDdkMsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsS0FBSyxTQUFTO1lBQ1osT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3RCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQy9DLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxLQUFLLFdBQVc7WUFDZCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzL2Jsb2IvZTAxZTQ3Zjc4ZWYxZTliNjAwZWZjZDIzZmY3NzA1YWE4ZDM4NDAxNy9saWIvc3RyaW5nLWZyYWdtZW50cy50c1xuaW1wb3J0IHtcbiAgSUZyYWdtZW50Q29uY2F0ZW5hdG9yLFxuICBJUmVzb2x2YWJsZSxcbiAgSVJlc29sdmVDb250ZXh0LFxufSBmcm9tIFwiLi9yZXNvbHZhYmxlXCI7XG5pbXBvcnQgeyBUb2tlbml6YXRpb24gfSBmcm9tIFwiLi90b2tlblwiO1xuXG4vKipcbiAqIFJlc3VsdCBvZiB0aGUgc3BsaXQgb2YgYSBzdHJpbmcgd2l0aCBUb2tlbnNcbiAqXG4gKiBFaXRoZXIgYSBsaXRlcmFsIHBhcnQgb2YgdGhlIHN0cmluZywgb3IgYW4gdW5yZXNvbHZlZCBUb2tlbi5cbiAqL1xudHlwZSBMaXRlcmFsRnJhZ21lbnQgPSB7IHR5cGU6IFwibGl0ZXJhbFwiOyBsaXQ6IGFueSB9O1xudHlwZSBUb2tlbkZyYWdtZW50ID0geyB0eXBlOiBcInRva2VuXCI7IHRva2VuOiBJUmVzb2x2YWJsZSB9O1xudHlwZSBJbnRyaW5zaWNGcmFnbWVudCA9IHsgdHlwZTogXCJpbnRyaW5zaWNcIjsgdmFsdWU6IGFueSB9O1xudHlwZSBFc2NhcGVGcmFnbWVudCA9IHsgdHlwZTogXCJlc2NhcGVcIjsga2luZDogXCJvcGVuXCIgfCBcImNsb3NlXCIgfTtcbnR5cGUgRnJhZ21lbnQgPVxuICBMaXRlcmFsRnJhZ21lbnQgfCBUb2tlbkZyYWdtZW50IHwgSW50cmluc2ljRnJhZ21lbnQgfCBFc2NhcGVGcmFnbWVudDtcblxuLyoqXG4gKiBGcmFnbWVudHMgb2YgYSBjb25jYXRlbmF0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgc3RyaW5naWZpZWQgVG9rZW5zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMge1xuICAvKipcbiAgICogRnJhZ21lbnRzIGluIHRoZSB0b2tlbml6ZWQgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZyYWdtZW50cyA9IG5ldyBBcnJheTxGcmFnbWVudD4oKTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgdG9rZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpcnN0VG9rZW4oKTogSVJlc29sdmFibGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5mcmFnbWVudHNbMF07XG4gICAgaWYgKGZpcnN0LnR5cGUgPT09IFwidG9rZW5cIikge1xuICAgICAgcmV0dXJuIGZpcnN0LnRva2VuO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGdldCBmaXJzdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIGZyYWdtZW50VmFsdWUodGhpcy5mcmFnbWVudHNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBmcmFnbWVudHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFnbWVudHMubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsaXRlcmFsIGZyYWdtZW50XG4gICAqIEBwYXJhbSBsaXQgdGhlIGxpdGVyYWwgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYWRkTGl0ZXJhbChsaXQ6IGFueSkge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcImxpdGVyYWxcIiwgbGl0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0b2tlbiBmcmFnbWVudFxuICAgKiBAcGFyYW0gdG9rZW4gdGhlIHRva2VuIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFRva2VuKHRva2VuOiBJUmVzb2x2YWJsZSkge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcInRva2VuXCIsIHRva2VuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gaW50cmluc2ljIGZyYWdtZW50XG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaW50cmluc2ljIHZhbHVlIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZEludHJpbnNpYyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5mcmFnbWVudHMucHVzaCh7IHR5cGU6IFwiaW50cmluc2ljXCIsIHZhbHVlIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZEVzY2FwZShraW5kOiBcIm9wZW5cIiB8IFwiY2xvc2VcIikge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcImVzY2FwZVwiLCBraW5kIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbmNhdChvdGhlcjogVG9rZW5pemVkU3RyaW5nRnJhZ21lbnRzKTogdm9pZCB7XG4gICAgdGhpcy5mcmFnbWVudHMucHVzaCguLi5vdGhlci5mcmFnbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgVG9rZW5zIGZyb20gdGhpcyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQgdG9rZW5zKCk6IElSZXNvbHZhYmxlW10ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxJUmVzb2x2YWJsZT4oKTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5mcmFnbWVudHMpIHtcbiAgICAgIGlmIChmLnR5cGUgPT09IFwidG9rZW5cIikge1xuICAgICAgICByZXQucHVzaChmLnRva2VuKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGxpdGVyYWxzIGZyb20gdGhpcyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQgbGl0ZXJhbHMoKTogSVJlc29sdmFibGVbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PElSZXNvbHZhYmxlPigpO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZyYWdtZW50cykge1xuICAgICAgaWYgKGYudHlwZSA9PT0gXCJsaXRlcmFsXCIpIHtcbiAgICAgICAgcmV0LnB1c2goZi5saXQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgaW50cmluc2ljIGZyYWdtZW50cyBmcm9tIHRoaXMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGludHJpbnNpYygpOiBJUmVzb2x2YWJsZVtdIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8SVJlc29sdmFibGU+KCk7XG4gICAgZm9yIChjb25zdCBmIG9mIHRoaXMuZnJhZ21lbnRzKSB7XG4gICAgICBpZiAoZi50eXBlID09PSBcImludHJpbnNpY1wiKSB7XG4gICAgICAgIHJldC5wdXNoKGYudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgZXNjYXBlIGZyYWdtZW50cyBmcm9tIHRoaXMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVzY2FwZXMoKTogSVJlc29sdmFibGVbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PElSZXNvbHZhYmxlPigpO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZyYWdtZW50cykge1xuICAgICAgaWYgKGYudHlwZSA9PT0gXCJlc2NhcGVcIikge1xuICAgICAgICBpZiAoZi5raW5kID09PSBcIm9wZW5cIikgcmV0LnB1c2goXCIke1wiIGFzIGFueSk7XG4gICAgICAgIGVsc2UgcmV0LnB1c2goXCJ9XCIgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHRvIGFsbCB0b2tlbnMgaW4gdGhlIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIG1hcFRva2Vucyhjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMge1xuICAgIGNvbnN0IHJldCA9IG5ldyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMoKTtcbiAgICBjb25zdCBvcmlnaW5hbFN1cHJlc3NCcmFjZXMgPSBjb250ZXh0LnN1cHByZXNzQnJhY2VzO1xuXG4gICAgZm9yIChjb25zdCBmIG9mIHRoaXMuZnJhZ21lbnRzKSB7XG4gICAgICBzd2l0Y2ggKGYudHlwZSkge1xuICAgICAgICBjYXNlIFwibGl0ZXJhbFwiOlxuICAgICAgICAgIHJldC5hZGRMaXRlcmFsKGYubGl0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVzY2FwZVwiOlxuICAgICAgICAgIGlmIChjb250ZXh0Lmlnbm9yZUVzY2FwZXMpIHtcbiAgICAgICAgICAgIHJldC5hZGRMaXRlcmFsKGYua2luZCA9PT0gXCJvcGVuXCIgPyBcIiR7XCIgOiBcIn1cIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXQuYWRkRXNjYXBlKGYua2luZCk7XG4gICAgICAgICAgaWYgKGYua2luZCA9PT0gXCJvcGVuXCIpIHtcbiAgICAgICAgICAgIGNvbnRleHQuc3VwcHJlc3NCcmFjZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LnN1cHByZXNzQnJhY2VzID0gb3JpZ2luYWxTdXByZXNzQnJhY2VzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRva2VuXCI6XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgY29uc3QgbWFwcGVkID0gY29udGV4dC5yZXNvbHZlKGYudG9rZW4pO1xuICAgICAgICAgIGlmIChUb2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKG1hcHBlZCkpIHtcbiAgICAgICAgICAgIHJldC5hZGRUb2tlbihtYXBwZWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXQuYWRkSW50cmluc2ljKG1hcHBlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW50cmluc2ljXCI6XG4gICAgICAgICAgcmV0LmFkZEludHJpbnNpYyhmLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbWJpbmUgdGhlIHN0cmluZyBmcmFnbWVudHMgdXNpbmcgdGhlIGdpdmVuIGpvaW5lci5cbiAgICpcbiAgICogSWYgdGhlcmUgYXJlIGFueVxuICAgKi9cbiAgcHVibGljIGpvaW4oY29uY2F0OiBJRnJhZ21lbnRDb25jYXRlbmF0b3IpOiBhbnkge1xuICAgIGlmICh0aGlzLmZyYWdtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBjb25jYXQuam9pbih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyYWdtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpcnN0VmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5mcmFnbWVudHMubWFwKGZyYWdtZW50VmFsdWUpO1xuXG4gICAgd2hpbGUgKHZhbHVlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSB2YWx1ZXMuc3BsaWNlKDAsIDIpO1xuICAgICAgdmFsdWVzLnNwbGljZSgwLCAwLCBjb25jYXQuam9pbihwcmVmaXhbMF0sIHByZWZpeFsxXSkpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXNbMF07XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgdG8gYXBwbHkgb3BlcmF0aW9uIHRvIHRva2VucyBpbiBhIHN0cmluZ1xuICpcbiAqIEludGVyZmFjZSBzbyBpdCBjYW4gYmUgZXhwb3J0ZWQgdmlhIGpzaWkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRva2VuTWFwcGVyIHtcbiAgLyoqXG4gICAqIFJlcGxhY2UgYSBzaW5nbGUgdG9rZW5cbiAgICovXG4gIG1hcFRva2VuKHQ6IElSZXNvbHZhYmxlKTogYW55O1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIHZhbHVlIGZyb20gYSBzaW5nbGUgZnJhZ21lbnRcbiAqXG4gKiBJZiB0aGUgZnJhZ21lbnQgaXMgYSBUb2tlbiwgcmV0dXJuIHRoZSBzdHJpbmcgZW5jb2Rpbmcgb2YgdGhlIFRva2VuLlxuICovXG5mdW5jdGlvbiBmcmFnbWVudFZhbHVlKGZyYWdtZW50OiBGcmFnbWVudCk6IGFueSB7XG4gIHN3aXRjaCAoZnJhZ21lbnQudHlwZSkge1xuICAgIGNhc2UgXCJsaXRlcmFsXCI6XG4gICAgICByZXR1cm4gZnJhZ21lbnQubGl0O1xuICAgIGNhc2UgXCJlc2NhcGVcIjpcbiAgICAgIHJldHVybiBmcmFnbWVudC5raW5kID09PSBcIm9wZW5cIiA/IFwiJHtcIiA6IFwifVwiO1xuICAgIGNhc2UgXCJ0b2tlblwiOlxuICAgICAgcmV0dXJuIGZyYWdtZW50LnRva2VuLnRvU3RyaW5nKCk7XG4gICAgY2FzZSBcImludHJpbnNpY1wiOlxuICAgICAgcmV0dXJuIGZyYWdtZW50LnZhbHVlO1xuICB9XG59XG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZyYWdtZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbnMvc3RyaW5nLWZyYWdtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBUUEsbUNBQXVDO0FBY3ZDOzs7R0FHRztBQUNILE1BQWEsd0JBQXdCOztJQUNuQzs7T0FFRztJQUNjLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBWSxDQUFDO0lBRW5EOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsR0FBUTtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEtBQWtCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMs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QUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFakQsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDOztBQXBMSCw0REFxTEM7QUFjRDs7OztHQUlHO0FBQ0gsU0FBUyxhQUFhLENBQUMsUUFBa0I7SUFDdkMsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsS0FBSyxTQUFTO1lBQ1osT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3RCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQy9DLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxLQUFLLFdBQVc7WUFDZCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzL2Jsb2IvZTAxZTQ3Zjc4ZWYxZTliNjAwZWZjZDIzZmY3NzA1YWE4ZDM4NDAxNy9saWIvc3RyaW5nLWZyYWdtZW50cy50c1xuaW1wb3J0IHtcbiAgSUZyYWdtZW50Q29uY2F0ZW5hdG9yLFxuICBJUmVzb2x2YWJsZSxcbiAgSVJlc29sdmVDb250ZXh0LFxufSBmcm9tIFwiLi9yZXNvbHZhYmxlXCI7XG5pbXBvcnQgeyBUb2tlbml6YXRpb24gfSBmcm9tIFwiLi90b2tlblwiO1xuXG4vKipcbiAqIFJlc3VsdCBvZiB0aGUgc3BsaXQgb2YgYSBzdHJpbmcgd2l0aCBUb2tlbnNcbiAqXG4gKiBFaXRoZXIgYSBsaXRlcmFsIHBhcnQgb2YgdGhlIHN0cmluZywgb3IgYW4gdW5yZXNvbHZlZCBUb2tlbi5cbiAqL1xudHlwZSBMaXRlcmFsRnJhZ21lbnQgPSB7IHR5cGU6IFwibGl0ZXJhbFwiOyBsaXQ6IGFueSB9O1xudHlwZSBUb2tlbkZyYWdtZW50ID0geyB0eXBlOiBcInRva2VuXCI7IHRva2VuOiBJUmVzb2x2YWJsZSB9O1xudHlwZSBJbnRyaW5zaWNGcmFnbWVudCA9IHsgdHlwZTogXCJpbnRyaW5zaWNcIjsgdmFsdWU6IGFueSB9O1xudHlwZSBFc2NhcGVGcmFnbWVudCA9IHsgdHlwZTogXCJlc2NhcGVcIjsga2luZDogXCJvcGVuXCIgfCBcImNsb3NlXCIgfTtcbnR5cGUgRnJhZ21lbnQgPVxuICBMaXRlcmFsRnJhZ21lbnQgfCBUb2tlbkZyYWdtZW50IHwgSW50cmluc2ljRnJhZ21lbnQgfCBFc2NhcGVGcmFnbWVudDtcblxuLyoqXG4gKiBGcmFnbWVudHMgb2YgYSBjb25jYXRlbmF0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgc3RyaW5naWZpZWQgVG9rZW5zXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMge1xuICAvKipcbiAgICogRnJhZ21lbnRzIGluIHRoZSB0b2tlbml6ZWQgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZyYWdtZW50cyA9IG5ldyBBcnJheTxGcmFnbWVudD4oKTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgdG9rZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpcnN0VG9rZW4oKTogSVJlc29sdmFibGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5mcmFnbWVudHNbMF07XG4gICAgaWYgKGZpcnN0LnR5cGUgPT09IFwidG9rZW5cIikge1xuICAgICAgcmV0dXJuIGZpcnN0LnRva2VuO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGdldCBmaXJzdFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIGZyYWdtZW50VmFsdWUodGhpcy5mcmFnbWVudHNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBmcmFnbWVudHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFnbWVudHMubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsaXRlcmFsIGZyYWdtZW50XG4gICAqIEBwYXJhbSBsaXQgdGhlIGxpdGVyYWwgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgYWRkTGl0ZXJhbChsaXQ6IGFueSkge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcImxpdGVyYWxcIiwgbGl0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0b2tlbiBmcmFnbWVudFxuICAgKiBAcGFyYW0gdG9rZW4gdGhlIHRva2VuIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFRva2VuKHRva2VuOiBJUmVzb2x2YWJsZSkge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcInRva2VuXCIsIHRva2VuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gaW50cmluc2ljIGZyYWdtZW50XG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaW50cmluc2ljIHZhbHVlIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZEludHJpbnNpYyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5mcmFnbWVudHMucHVzaCh7IHR5cGU6IFwiaW50cmluc2ljXCIsIHZhbHVlIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZEVzY2FwZShraW5kOiBcIm9wZW5cIiB8IFwiY2xvc2VcIikge1xuICAgIHRoaXMuZnJhZ21lbnRzLnB1c2goeyB0eXBlOiBcImVzY2FwZVwiLCBraW5kIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbmNhdChvdGhlcjogVG9rZW5pemVkU3RyaW5nRnJhZ21lbnRzKTogdm9pZCB7XG4gICAgdGhpcy5mcmFnbWVudHMucHVzaCguLi5vdGhlci5mcmFnbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgVG9rZW5zIGZyb20gdGhpcyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQgdG9rZW5zKCk6IElSZXNvbHZhYmxlW10ge1xuICAgIGNvbnN0IHJldCA9IG5ldyBBcnJheTxJUmVzb2x2YWJsZT4oKTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5mcmFnbWVudHMpIHtcbiAgICAgIGlmIChmLnR5cGUgPT09IFwidG9rZW5cIikge1xuICAgICAgICByZXQucHVzaChmLnRva2VuKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGxpdGVyYWxzIGZyb20gdGhpcyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQgbGl0ZXJhbHMoKTogSVJlc29sdmFibGVbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PElSZXNvbHZhYmxlPigpO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZyYWdtZW50cykge1xuICAgICAgaWYgKGYudHlwZSA9PT0gXCJsaXRlcmFsXCIpIHtcbiAgICAgICAgcmV0LnB1c2goZi5saXQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgaW50cmluc2ljIGZyYWdtZW50cyBmcm9tIHRoaXMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGludHJpbnNpYygpOiBJUmVzb2x2YWJsZVtdIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8SVJlc29sdmFibGU+KCk7XG4gICAgZm9yIChjb25zdCBmIG9mIHRoaXMuZnJhZ21lbnRzKSB7XG4gICAgICBpZiAoZi50eXBlID09PSBcImludHJpbnNpY1wiKSB7XG4gICAgICAgIHJldC5wdXNoKGYudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgZXNjYXBlIGZyYWdtZW50cyBmcm9tIHRoaXMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVzY2FwZXMoKTogSVJlc29sdmFibGVbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PElSZXNvbHZhYmxlPigpO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZyYWdtZW50cykge1xuICAgICAgaWYgKGYudHlwZSA9PT0gXCJlc2NhcGVcIikge1xuICAgICAgICBpZiAoZi5raW5kID09PSBcIm9wZW5cIikgcmV0LnB1c2goXCIke1wiIGFzIGFueSk7XG4gICAgICAgIGVsc2UgcmV0LnB1c2goXCJ9XCIgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHRvIGFsbCB0b2tlbnMgaW4gdGhlIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIG1hcFRva2Vucyhjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMge1xuICAgIGNvbnN0IHJldCA9IG5ldyBUb2tlbml6ZWRTdHJpbmdGcmFnbWVudHMoKTtcbiAgICBjb25zdCBvcmlnaW5hbFN1cHJlc3NCcmFjZXMgPSBjb250ZXh0LnN1cHByZXNzQnJhY2VzO1xuXG4gICAgZm9yIChjb25zdCBmIG9mIHRoaXMuZnJhZ21lbnRzKSB7XG4gICAgICBzd2l0Y2ggKGYudHlwZSkge1xuICAgICAgICBjYXNlIFwibGl0ZXJhbFwiOlxuICAgICAgICAgIHJldC5hZGRMaXRlcmFsKGYubGl0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVzY2FwZVwiOlxuICAgICAgICAgIGlmIChjb250ZXh0Lmlnbm9yZUVzY2FwZXMpIHtcbiAgICAgICAgICAgIHJldC5hZGRMaXRlcmFsKGYua2luZCA9PT0gXCJvcGVuXCIgPyBcIiR7XCIgOiBcIn1cIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXQuYWRkRXNjYXBlKGYua2luZCk7XG4gICAgICAgICAgaWYgKGYua2luZCA9PT0gXCJvcGVuXCIpIHtcbiAgICAgICAgICAgIGNvbnRleHQuc3VwcHJlc3NCcmFjZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LnN1cHByZXNzQnJhY2VzID0gb3JpZ2luYWxTdXByZXNzQnJhY2VzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRva2VuXCI6IHtcbiAgICAgICAgICBjb25zdCBtYXBwZWQgPSBjb250ZXh0LnJlc29sdmUoZi50b2tlbik7XG4gICAgICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUobWFwcGVkKSkge1xuICAgICAgICAgICAgcmV0LmFkZFRva2VuKG1hcHBlZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldC5hZGRJbnRyaW5zaWMobWFwcGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImludHJpbnNpY1wiOlxuICAgICAgICAgIHJldC5hZGRJbnRyaW5zaWMoZi52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21iaW5lIHRoZSBzdHJpbmcgZnJhZ21lbnRzIHVzaW5nIHRoZSBnaXZlbiBqb2luZXIuXG4gICAqXG4gICAqIElmIHRoZXJlIGFyZSBhbnlcbiAgICovXG4gIHB1YmxpYyBqb2luKGNvbmNhdDogSUZyYWdtZW50Q29uY2F0ZW5hdG9yKTogYW55IHtcbiAgICBpZiAodGhpcy5mcmFnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gY29uY2F0LmpvaW4odW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mcmFnbWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZnJhZ21lbnRzLm1hcChmcmFnbWVudFZhbHVlKTtcblxuICAgIHdoaWxlICh2YWx1ZXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgcHJlZml4ID0gdmFsdWVzLnNwbGljZSgwLCAyKTtcbiAgICAgIHZhbHVlcy5zcGxpY2UoMCwgMCwgY29uY2F0LmpvaW4ocHJlZml4WzBdLCBwcmVmaXhbMV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVzWzBdO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRvIGFwcGx5IG9wZXJhdGlvbiB0byB0b2tlbnMgaW4gYSBzdHJpbmdcbiAqXG4gKiBJbnRlcmZhY2Ugc28gaXQgY2FuIGJlIGV4cG9ydGVkIHZpYSBqc2lpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUb2tlbk1hcHBlciB7XG4gIC8qKlxuICAgKiBSZXBsYWNlIGEgc2luZ2xlIHRva2VuXG4gICAqL1xuICBtYXBUb2tlbih0OiBJUmVzb2x2YWJsZSk6IGFueTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSB2YWx1ZSBmcm9tIGEgc2luZ2xlIGZyYWdtZW50XG4gKlxuICogSWYgdGhlIGZyYWdtZW50IGlzIGEgVG9rZW4sIHJldHVybiB0aGUgc3RyaW5nIGVuY29kaW5nIG9mIHRoZSBUb2tlbi5cbiAqL1xuZnVuY3Rpb24gZnJhZ21lbnRWYWx1ZShmcmFnbWVudDogRnJhZ21lbnQpOiBhbnkge1xuICBzd2l0Y2ggKGZyYWdtZW50LnR5cGUpIHtcbiAgICBjYXNlIFwibGl0ZXJhbFwiOlxuICAgICAgcmV0dXJuIGZyYWdtZW50LmxpdDtcbiAgICBjYXNlIFwiZXNjYXBlXCI6XG4gICAgICByZXR1cm4gZnJhZ21lbnQua2luZCA9PT0gXCJvcGVuXCIgPyBcIiR7XCIgOiBcIn1cIjtcbiAgICBjYXNlIFwidG9rZW5cIjpcbiAgICAgIHJldHVybiBmcmFnbWVudC50b2tlbi50b1N0cmluZygpO1xuICAgIGNhc2UgXCJpbnRyaW5zaWNcIjpcbiAgICAgIHJldHVybiBmcmFnbWVudC52YWx1ZTtcbiAgfVxufVxuIl19
|
package/lib/tokens/token.js
CHANGED
|
@@ -18,7 +18,7 @@ const token_map_1 = require("./private/token-map");
|
|
|
18
18
|
* semantics.
|
|
19
19
|
*/
|
|
20
20
|
class Token {
|
|
21
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Token", version: "0.26.0-pre.
|
|
21
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Token", version: "0.26.0-pre.21" };
|
|
22
22
|
/**
|
|
23
23
|
* Returns true if obj represents an unresolved value
|
|
24
24
|
*
|
|
@@ -149,7 +149,7 @@ exports.Token = Token;
|
|
|
149
149
|
* Less oft-needed functions to manipulate Tokens
|
|
150
150
|
*/
|
|
151
151
|
class Tokenization {
|
|
152
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Tokenization", version: "0.26.0-pre.
|
|
152
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Tokenization", version: "0.26.0-pre.21" };
|
|
153
153
|
/**
|
|
154
154
|
* Reverse any value into Resolvables, if possible
|
|
155
155
|
*/
|
package/lib/upgrade-id-aspect.js
CHANGED
|
@@ -172,7 +172,7 @@ function allocateLogicalIdOldVersion(tfElement) {
|
|
|
172
172
|
* For migrating past 0.17 where the feature flag for the old id generation logic was removed after being deprecated since 0.15
|
|
173
173
|
*/
|
|
174
174
|
class MigrateIds {
|
|
175
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.MigrateIds", version: "0.26.0-pre.
|
|
175
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.MigrateIds", version: "0.26.0-pre.21" };
|
|
176
176
|
visit(node) {
|
|
177
177
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
178
178
|
if (node instanceof _1.TerraformResource) {
|
package/lib/util.d.ts
CHANGED
package/lib/util.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.terraformBinaryName = void 0;
|
|
4
3
|
exports.deepMerge = deepMerge;
|
|
5
4
|
exports.snakeCase = snakeCase;
|
|
6
5
|
exports.keysToSnakeCase = keysToSnakeCase;
|
|
@@ -11,7 +10,6 @@ exports.processDynamicAttributes = processDynamicAttributes;
|
|
|
11
10
|
const errors_1 = require("./errors");
|
|
12
11
|
const terraform_dynamic_block_1 = require("./terraform-dynamic-block");
|
|
13
12
|
const token_1 = require("./tokens/token");
|
|
14
|
-
exports.terraformBinaryName = process.env.TERRAFORM_BINARY_NAME || "terraform";
|
|
15
13
|
/**
|
|
16
14
|
* Merges `source` into `target`, overriding any existing values.
|
|
17
15
|
* `undefined` will cause a value to be deleted.
|
|
@@ -75,7 +73,9 @@ function snakeCase(str) {
|
|
|
75
73
|
* Transforms all keys in a object to snake case
|
|
76
74
|
*/
|
|
77
75
|
function keysToSnakeCase(object) {
|
|
78
|
-
if (
|
|
76
|
+
if (object === null ||
|
|
77
|
+
object === undefined ||
|
|
78
|
+
token_1.Tokenization.isResolvable(object)) {
|
|
79
79
|
return object;
|
|
80
80
|
}
|
|
81
81
|
if (Array.isArray(object)) {
|
|
@@ -152,4 +152,4 @@ function processDynamicAttributes(attributes) {
|
|
|
152
152
|
});
|
|
153
153
|
return result;
|
|
154
154
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdCQSw4QkFrREM7QUFLRCw4QkFRQztBQUtELDBDQTRCQztBQVFELHdFQXVCQztBQVFELDREQW1CQztBQTFLRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHFDQUdrQjtBQUNsQix1RUFBa0U7QUFDbEUsMENBQThDO0FBRWpDLFFBQUEsbUJBQW1CLEdBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksV0FBVyxDQUFDO0FBRW5EOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxNQUFXLEVBQUUsR0FBRyxPQUFjO0lBQ3RELElBQUksb0JBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLElBQUEseUNBQWdDLEVBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFBLGtDQUF5QixFQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUN0QixPQUFPLE1BQU0sRUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUN0QixPQUFPLE1BQU0sQ0FDZCxDQUFDO1FBQ0osQ0FBQztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFL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QUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQge1xuICBzb3VyY2VPclRhcmdldE5vdEFuT2JqZWN0LFxuICB0YXJnZXROb3RSZXNvbHZhYmxlV2l0aE92ZXJyaWRlcyxcbn0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1EeW5hbWljQmxvY2sgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZHluYW1pYy1ibG9ja1wiO1xuaW1wb3J0IHsgVG9rZW5pemF0aW9uIH0gZnJvbSBcIi4vdG9rZW5zL3Rva2VuXCI7XG5cbmV4cG9ydCBjb25zdCB0ZXJyYWZvcm1CaW5hcnlOYW1lID1cbiAgcHJvY2Vzcy5lbnYuVEVSUkFGT1JNX0JJTkFSWV9OQU1FIHx8IFwidGVycmFmb3JtXCI7XG5cbi8qKlxuICogTWVyZ2VzIGBzb3VyY2VgIGludG8gYHRhcmdldGAsIG92ZXJyaWRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcy5cbiAqIGB1bmRlZmluZWRgIHdpbGwgY2F1c2UgYSB2YWx1ZSB0byBiZSBkZWxldGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSkge1xuICBpZiAoVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZSh0YXJnZXQpICYmIHNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IHRhcmdldE5vdFJlc29sdmFibGVXaXRoT3ZlcnJpZGVzKHRhcmdldC50b1N0cmluZygpKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBzb3VyY2VPclRhcmdldE5vdEFuT2JqZWN0KFxuICAgICAgICBKU09OLnN0cmluZ2lmeShzb3VyY2UpLFxuICAgICAgICB0eXBlb2Ygc291cmNlLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0YXJnZXQpLFxuICAgICAgICB0eXBlb2YgdGFyZ2V0LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPSBudWxsICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgYXQgdGhlIHRhcmdldCBpcyBub3QgYW4gb2JqZWN0LCBvdmVycmlkZSBpdCB3aXRoIGFuXG4gICAgICAgIC8vIG9iamVjdCBzbyB3ZSBjYW4gY29udGludWUgdGhlIHJlY3Vyc2lvblxuICAgICAgICBpZiAodHlwZW9mIHRhcmdldFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBhIHJlc29sdmFibGUgd2UgZG9uJ3Qgd2FudCB0byByZWN1cnNlIGludG8gaXRcbiAgICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZXBNZXJnZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IFsuLi50YXJnZXRba2V5XSwgLi4udmFsdWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIHN0cmluZyB0byBzbmFrZSBjYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikgcmV0dXJuIFwiXCI7XG5cbiAgcmV0dXJuIFN0cmluZyhzdHIpXG4gICAgLnJlcGxhY2UoL15bXkEtWmEtejAtOV0qfFteQS1aYS16MC05XSokL2csIFwiXCIpXG4gICAgLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIChfbSwgYSwgYikgPT4gYSArIFwiX1wiICsgYi50b0xvd2VyQ2FzZSgpKVxuICAgIC5yZXBsYWNlKC9bXkEtWmEtejAtOV0rfF8rL2csIFwiX1wiKVxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgYWxsIGtleXMgaW4gYSBvYmplY3QgdG8gc25ha2UgY2FzZVxuICovXG5leHBvcnQgZnVuY3Rpb24ga2V5c1RvU25ha2VDYXNlKG9iamVjdDogYW55KTogYW55IHtcbiAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3QubWFwKChlOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIiA/IGtleXNUb1NuYWtlQ2FzZShlKSA6IGU7XG4gICAgfSk7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgobmV3T2JqZWN0OiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGtleSA9PT0gXCJ0YWdzXCIgfHwga2V5ID09PSBcImVudmlyb25tZW50XCIpIHtcbiAgICAgIG5ld09iamVjdFtrZXldID0gb2JqZWN0W2tleV07XG4gICAgICByZXR1cm4gbmV3T2JqZWN0O1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHZhbHVlID0ga2V5c1RvU25ha2VDYXNlKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLm1hcCgoZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIiA/IGtleXNUb1NuYWtlQ2FzZShlKSA6IGU7XG4gICAgICB9KTtcbiAgICB9XG4gICAgbmV3T2JqZWN0W3NuYWtlQ2FzZShrZXkpXSA9IHZhbHVlO1xuICAgIHJldHVybiBuZXdPYmplY3Q7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBkeW5hbWljIGF0dHJpYnV0ZXMgYXJlIGxvY2F0ZWQgYXQgYSBkaWZmZXJlbnQgcG9zaXRpb24gdGhhbiBub3JtYWwgYmxvY2sgYXR0cmlidXRlc1xuICogVGhpcyBtZXRob2QgZGV0ZWN0cyB0aGVtIGFuZCBtb3ZlcyB0aGVtIGZyb20gLmF0dHJpYnV0ZU5hbWUgdG8gLmR5bmFtaWMuYXR0cmlidXRlTmFtZVxuICogSXQgYWxzbyBpbnZva2VzIHRoZSAudG9UZXJyYWZvcm0oKSBtZXRob2Qgb24gdGhlIGR5bmFtaWMgYXR0cmlidXRlIHRvIGdldCB0aGUgY29ycmVjdFxuICogVGVycmFmb3JtIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2woYXR0cmlidXRlczoge1xuICBbbmFtZTogc3RyaW5nXTogYW55O1xufSk6IHtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn0ge1xuICBjb25zdCByZXN1bHQ6IHsgW25hbWU6IHN0cmluZ106IGFueTsgZHluYW1pYz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9IH0gPSB7fTtcbiAgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykuZm9yRWFjaCgoW2F0dHJpYnV0ZU5hbWUsIHZhbHVlXSkgPT4ge1xuICAgIGlmIChUZXJyYWZvcm1EeW5hbWljQmxvY2suaXNUZXJyYWZvcm1EeW5hbWljQmxvY2sodmFsdWUpKSB7XG4gICAgICBpZiAoIXJlc3VsdC5keW5hbWljKSB7XG4gICAgICAgIHJlc3VsdC5keW5hbWljID0ge307XG4gICAgICB9XG4gICAgICByZXN1bHQuZHluYW1pY1thdHRyaWJ1dGVOYW1lXSA9IHZhbHVlLnRvVGVycmFmb3JtRHluYW1pY0Jsb2NrSnNvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZWN1cnNlID1cbiAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7IC8vIG9ubHkgZGVzY2VuZCBpbnRvIHBsYWluIG9iamVjdHNcbiAgICAgIHJlc3VsdFthdHRyaWJ1dGVOYW1lXSA9IHJlY3Vyc2VcbiAgICAgICAgPyBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodmFsdWUpXG4gICAgICAgIDogdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBkeW5hbWljIGF0dHJpYnV0ZXMgYXJlIGxvY2F0ZWQgYXQgYSBkaWZmZXJlbnQgcG9zaXRpb24gdGhhbiBub3JtYWwgYmxvY2sgYXR0cmlidXRlc1xuICogVGhpcyBtZXRob2QgZGV0ZWN0cyB0aGVtIGFuZCBtb3ZlcyB0aGVtIGZyb20gLmF0dHJpYnV0ZU5hbWUgdG8gLmR5bmFtaWMuYXR0cmlidXRlTmFtZVxuICogSXQgYWxzbyBpbnZva2VzIHRoZSAudG9UZXJyYWZvcm0oKSBtZXRob2Qgb24gdGhlIGR5bmFtaWMgYXR0cmlidXRlIHRvIGdldCB0aGUgY29ycmVjdFxuICogVGVycmFmb3JtIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMoYXR0cmlidXRlczogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtuYW1lOiBzdHJpbmddOiBhbnk7IGR5bmFtaWM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB9ID0ge307XG4gIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLmZvckVhY2goKFthdHRyaWJ1dGVOYW1lLCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoVGVycmFmb3JtRHluYW1pY0Jsb2NrLmlzVGVycmFmb3JtRHluYW1pY0Jsb2NrKHZhbHVlKSkge1xuICAgICAgaWYgKCFyZXN1bHQuZHluYW1pYykge1xuICAgICAgICByZXN1bHQuZHluYW1pYyA9IHt9O1xuICAgICAgfVxuICAgICAgcmVzdWx0LmR5bmFtaWNbYXR0cmlidXRlTmFtZV0gPSB2YWx1ZS50b1RlcnJhZm9ybUR5bmFtaWNCbG9ja0pzb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVjdXJzZSA9XG4gICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0OyAvLyBvbmx5IGRlc2NlbmQgaW50byBwbGFpbiBvYmplY3RzXG4gICAgICByZXN1bHRbYXR0cmlidXRlTmFtZV0gPSByZWN1cnNlID8gcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzKHZhbHVlKSA6IHZhbHVlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsOEJBa0RDO0FBS0QsOEJBUUM7QUFLRCwwQ0FnQ0M7QUFRRCx3RUF1QkM7QUFRRCw0REFtQkM7QUEzS0QsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FHa0I7QUFDbEIsdUVBQWtFO0FBQ2xFLDBDQUE4QztBQUU5Qzs7O0dBR0c7QUFDSCxTQUFnQixTQUFTLENBQUMsTUFBVyxFQUFFLEdBQUcsT0FBYztJQUN0RCxJQUFJLG9CQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFBLHlDQUFnQyxFQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBQSxrQ0FBeUIsRUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDdEIsT0FBTyxNQUFNLEVBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDdEIsT0FBTyxNQUFNLENBQ2QsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEUs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LENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQge1xuICBzb3VyY2VPclRhcmdldE5vdEFuT2JqZWN0LFxuICB0YXJnZXROb3RSZXNvbHZhYmxlV2l0aE92ZXJyaWRlcyxcbn0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1EeW5hbWljQmxvY2sgfSBmcm9tIFwiLi90ZXJyYWZvcm0tZHluYW1pYy1ibG9ja1wiO1xuaW1wb3J0IHsgVG9rZW5pemF0aW9uIH0gZnJvbSBcIi4vdG9rZW5zL3Rva2VuXCI7XG5cbi8qKlxuICogTWVyZ2VzIGBzb3VyY2VgIGludG8gYHRhcmdldGAsIG92ZXJyaWRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcy5cbiAqIGB1bmRlZmluZWRgIHdpbGwgY2F1c2UgYSB2YWx1ZSB0byBiZSBkZWxldGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSkge1xuICBpZiAoVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZSh0YXJnZXQpICYmIHNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IHRhcmdldE5vdFJlc29sdmFibGVXaXRoT3ZlcnJpZGVzKHRhcmdldC50b1N0cmluZygpKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZXMpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBzb3VyY2VPclRhcmdldE5vdEFuT2JqZWN0KFxuICAgICAgICBKU09OLnN0cmluZ2lmeShzb3VyY2UpLFxuICAgICAgICB0eXBlb2Ygc291cmNlLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0YXJnZXQpLFxuICAgICAgICB0eXBlb2YgdGFyZ2V0LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPSBudWxsICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgYXQgdGhlIHRhcmdldCBpcyBub3QgYW4gb2JqZWN0LCBvdmVycmlkZSBpdCB3aXRoIGFuXG4gICAgICAgIC8vIG9iamVjdCBzbyB3ZSBjYW4gY29udGludWUgdGhlIHJlY3Vyc2lvblxuICAgICAgICBpZiAodHlwZW9mIHRhcmdldFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBhIHJlc29sdmFibGUgd2UgZG9uJ3Qgd2FudCB0byByZWN1cnNlIGludG8gaXRcbiAgICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZXBNZXJnZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IFsuLi50YXJnZXRba2V5XSwgLi4udmFsdWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIHN0cmluZyB0byBzbmFrZSBjYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikgcmV0dXJuIFwiXCI7XG5cbiAgcmV0dXJuIFN0cmluZyhzdHIpXG4gICAgLnJlcGxhY2UoL15bXkEtWmEtejAtOV0qfFteQS1aYS16MC05XSokL2csIFwiXCIpXG4gICAgLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIChfbSwgYSwgYikgPT4gYSArIFwiX1wiICsgYi50b0xvd2VyQ2FzZSgpKVxuICAgIC5yZXBsYWNlKC9bXkEtWmEtejAtOV0rfF8rL2csIFwiX1wiKVxuICAgIC50b0xvd2VyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgYWxsIGtleXMgaW4gYSBvYmplY3QgdG8gc25ha2UgY2FzZVxuICovXG5leHBvcnQgZnVuY3Rpb24ga2V5c1RvU25ha2VDYXNlKG9iamVjdDogYW55KTogYW55IHtcbiAgaWYgKFxuICAgIG9iamVjdCA9PT0gbnVsbCB8fFxuICAgIG9iamVjdCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZShvYmplY3QpXG4gICkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3QubWFwKChlOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIiA/IGtleXNUb1NuYWtlQ2FzZShlKSA6IGU7XG4gICAgfSk7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgobmV3T2JqZWN0OiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGtleSA9PT0gXCJ0YWdzXCIgfHwga2V5ID09PSBcImVudmlyb25tZW50XCIpIHtcbiAgICAgIG5ld09iamVjdFtrZXldID0gb2JqZWN0W2tleV07XG4gICAgICByZXR1cm4gbmV3T2JqZWN0O1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHZhbHVlID0ga2V5c1RvU25ha2VDYXNlKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLm1hcCgoZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgZSA9PT0gXCJvYmplY3RcIiA/IGtleXNUb1NuYWtlQ2FzZShlKSA6IGU7XG4gICAgICB9KTtcbiAgICB9XG4gICAgbmV3T2JqZWN0W3NuYWtlQ2FzZShrZXkpXSA9IHZhbHVlO1xuICAgIHJldHVybiBuZXdPYmplY3Q7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBkeW5hbWljIGF0dHJpYnV0ZXMgYXJlIGxvY2F0ZWQgYXQgYSBkaWZmZXJlbnQgcG9zaXRpb24gdGhhbiBub3JtYWwgYmxvY2sgYXR0cmlidXRlc1xuICogVGhpcyBtZXRob2QgZGV0ZWN0cyB0aGVtIGFuZCBtb3ZlcyB0aGVtIGZyb20gLmF0dHJpYnV0ZU5hbWUgdG8gLmR5bmFtaWMuYXR0cmlidXRlTmFtZVxuICogSXQgYWxzbyBpbnZva2VzIHRoZSAudG9UZXJyYWZvcm0oKSBtZXRob2Qgb24gdGhlIGR5bmFtaWMgYXR0cmlidXRlIHRvIGdldCB0aGUgY29ycmVjdFxuICogVGVycmFmb3JtIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2woYXR0cmlidXRlczoge1xuICBbbmFtZTogc3RyaW5nXTogYW55O1xufSk6IHtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn0ge1xuICBjb25zdCByZXN1bHQ6IHsgW25hbWU6IHN0cmluZ106IGFueTsgZHluYW1pYz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9IH0gPSB7fTtcbiAgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykuZm9yRWFjaCgoW2F0dHJpYnV0ZU5hbWUsIHZhbHVlXSkgPT4ge1xuICAgIGlmIChUZXJyYWZvcm1EeW5hbWljQmxvY2suaXNUZXJyYWZvcm1EeW5hbWljQmxvY2sodmFsdWUpKSB7XG4gICAgICBpZiAoIXJlc3VsdC5keW5hbWljKSB7XG4gICAgICAgIHJlc3VsdC5keW5hbWljID0ge307XG4gICAgICB9XG4gICAgICByZXN1bHQuZHluYW1pY1thdHRyaWJ1dGVOYW1lXSA9IHZhbHVlLnRvVGVycmFmb3JtRHluYW1pY0Jsb2NrSnNvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZWN1cnNlID1cbiAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7IC8vIG9ubHkgZGVzY2VuZCBpbnRvIHBsYWluIG9iamVjdHNcbiAgICAgIHJlc3VsdFthdHRyaWJ1dGVOYW1lXSA9IHJlY3Vyc2VcbiAgICAgICAgPyBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXNGb3JIY2wodmFsdWUpXG4gICAgICAgIDogdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBkeW5hbWljIGF0dHJpYnV0ZXMgYXJlIGxvY2F0ZWQgYXQgYSBkaWZmZXJlbnQgcG9zaXRpb24gdGhhbiBub3JtYWwgYmxvY2sgYXR0cmlidXRlc1xuICogVGhpcyBtZXRob2QgZGV0ZWN0cyB0aGVtIGFuZCBtb3ZlcyB0aGVtIGZyb20gLmF0dHJpYnV0ZU5hbWUgdG8gLmR5bmFtaWMuYXR0cmlidXRlTmFtZVxuICogSXQgYWxzbyBpbnZva2VzIHRoZSAudG9UZXJyYWZvcm0oKSBtZXRob2Qgb24gdGhlIGR5bmFtaWMgYXR0cmlidXRlIHRvIGdldCB0aGUgY29ycmVjdFxuICogVGVycmFmb3JtIHJlcHJlc2VudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzRHluYW1pY0F0dHJpYnV0ZXMoYXR0cmlidXRlczogeyBbbmFtZTogc3RyaW5nXTogYW55IH0pOiB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtuYW1lOiBzdHJpbmddOiBhbnk7IGR5bmFtaWM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB9ID0ge307XG4gIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLmZvckVhY2goKFthdHRyaWJ1dGVOYW1lLCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoVGVycmFmb3JtRHluYW1pY0Jsb2NrLmlzVGVycmFmb3JtRHluYW1pY0Jsb2NrKHZhbHVlKSkge1xuICAgICAgaWYgKCFyZXN1bHQuZHluYW1pYykge1xuICAgICAgICByZXN1bHQuZHluYW1pYyA9IHt9O1xuICAgICAgfVxuICAgICAgcmVzdWx0LmR5bmFtaWNbYXR0cmlidXRlTmFtZV0gPSB2YWx1ZS50b1RlcnJhZm9ybUR5bmFtaWNCbG9ja0pzb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVjdXJzZSA9XG4gICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0OyAvLyBvbmx5IGRlc2NlbmQgaW50byBwbGFpbiBvYmplY3RzXG4gICAgICByZXN1bHRbYXR0cmlidXRlTmFtZV0gPSByZWN1cnNlID8gcHJvY2Vzc0R5bmFtaWNBdHRyaWJ1dGVzKHZhbHVlKSA6IHZhbHVlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -31,6 +31,18 @@ export declare const DEFAULT_TARGET_VERSIONS: TerraformTargetVersions;
|
|
|
31
31
|
* `@cdktn/commons` (imported via subpath), not part of cdktn's public API.
|
|
32
32
|
*/
|
|
33
33
|
export declare const TARGET_PRODUCTS: readonly ["terraform", "opentofu"];
|
|
34
|
+
/** OpenTofu is the sole declared product. */
|
|
35
|
+
export declare function targetsOnlyOpenTofu(targetVersions?: TerraformTargetVersions): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The `targetVersions` of the nearest cdktf.json at or above `dir`. Only the
|
|
38
|
+
* key is read: an invalid config is reported by the command that reads it.
|
|
39
|
+
*/
|
|
40
|
+
export declare function projectTargetVersions(dir?: string): TerraformTargetVersions | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* `TERRAFORM_BINARY_NAME`, else `tofu` when the project at or above the
|
|
43
|
+
* working directory targets only OpenTofu, else `terraform`.
|
|
44
|
+
*/
|
|
45
|
+
export declare function inferTerraformBinaryName(): string;
|
|
34
46
|
/**
|
|
35
47
|
* Resolves the declared target versions from construct context, falling back
|
|
36
48
|
* to DEFAULT_TARGET_VERSIONS. Returns errors instead of targets when the
|
|
@@ -34,8 +34,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.ValidateFeatureTargetSupport = exports.TARGET_PRODUCTS = exports.DEFAULT_TARGET_VERSIONS = exports.TARGET_VERSIONS_CONTEXT_KEY = void 0;
|
|
37
|
+
exports.targetsOnlyOpenTofu = targetsOnlyOpenTofu;
|
|
38
|
+
exports.projectTargetVersions = projectTargetVersions;
|
|
39
|
+
exports.inferTerraformBinaryName = inferTerraformBinaryName;
|
|
37
40
|
exports.resolveTargetVersions = resolveTargetVersions;
|
|
38
41
|
exports.checkFeatureSupportedByTargets = checkFeatureSupportedByTargets;
|
|
42
|
+
// Copyright (c) HashiCorp, Inc
|
|
43
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
39
46
|
const semver = __importStar(require("semver"));
|
|
40
47
|
/**
|
|
41
48
|
* Context key carrying the project's declared Terraform-compatible runtime
|
|
@@ -62,6 +69,38 @@ exports.DEFAULT_TARGET_VERSIONS = {
|
|
|
62
69
|
* `@cdktn/commons` (imported via subpath), not part of cdktn's public API.
|
|
63
70
|
*/
|
|
64
71
|
exports.TARGET_PRODUCTS = ["terraform", "opentofu"];
|
|
72
|
+
/** OpenTofu is the sole declared product. */
|
|
73
|
+
function targetsOnlyOpenTofu(targetVersions) {
|
|
74
|
+
return (targetVersions?.opentofu !== undefined &&
|
|
75
|
+
targetVersions?.terraform === undefined);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The `targetVersions` of the nearest cdktf.json at or above `dir`. Only the
|
|
79
|
+
* key is read: an invalid config is reported by the command that reads it.
|
|
80
|
+
*/
|
|
81
|
+
function projectTargetVersions(dir = process.cwd()) {
|
|
82
|
+
for (let current = path.resolve(dir);; current = path.dirname(current)) {
|
|
83
|
+
const file = path.join(current, "cdktf.json");
|
|
84
|
+
if (fs.existsSync(file)) {
|
|
85
|
+
try {
|
|
86
|
+
return JSON.parse(fs.readFileSync(file, "utf8")).targetVersions;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (path.dirname(current) === current)
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* `TERRAFORM_BINARY_NAME`, else `tofu` when the project at or above the
|
|
98
|
+
* working directory targets only OpenTofu, else `terraform`.
|
|
99
|
+
*/
|
|
100
|
+
function inferTerraformBinaryName() {
|
|
101
|
+
return (process.env.TERRAFORM_BINARY_NAME ||
|
|
102
|
+
(targetsOnlyOpenTofu(projectTargetVersions()) ? "tofu" : "terraform"));
|
|
103
|
+
}
|
|
65
104
|
/**
|
|
66
105
|
* Resolves the declared target versions from construct context, falling back
|
|
67
106
|
* to DEFAULT_TARGET_VERSIONS. Returns errors instead of targets when the
|
|
@@ -168,4 +207,4 @@ class ValidateFeatureTargetSupport {
|
|
|
168
207
|
}
|
|
169
208
|
}
|
|
170
209
|
exports.ValidateFeatureTargetSupport = ValidateFeatureTargetSupport;
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXZlcnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb25zL3RhcmdldC12ZXJzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrREEsc0RBNkRDO0FBWUQsd0VBZ0NDO0FBeEpELCtDQUFpQztBQUdqQzs7Ozs7Ozs7O0dBU0c7QUFDVSxRQUFBLDJCQUEyQixHQUFHLGdCQUFnQixDQUFDO0FBWTVEOzs7O0dBSUc7QUFDVSxRQUFBLHVCQUF1QixHQUE0QjtJQUM5RCxTQUFTLEVBQUUsU0FBUztJQUNwQixRQUFRLEVBQUUsU0FBUztDQUNwQixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFFbEU7Ozs7O0dBS0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFpQjtJQUlyRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQ0FBMkIsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sRUFBRSxPQUFPLEVBQUUsK0JBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUNFLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDNUIsUUFBUSxLQUFLLElBQUk7UUFDakIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDdkIsQ0FBQztRQUNELE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ04sNkdBQTZHO2FBQzlHO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztR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O0lBRUcsUUFBUTtRQUNiLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLDhCQUE4QixDQUNuQyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsV0FBVyxFQUNoQixPQUFPLEVBQ1AsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckJELG9FQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJQ29uc3RydWN0LCBJVmFsaWRhdGlvbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSBcInNlbXZlclwiO1xuaW1wb3J0IHsgVGVycmFmb3JtRmVhdHVyZVZlcnNpb25Db25zdHJhaW50cyB9IGZyb20gXCIuL3ZhbGlkYXRlLXRlcnJhZm9ybS1mZWF0dXJlLXZlcnNpb25cIjtcblxuLyoqXG4gKiBDb250ZXh0IGtleSBjYXJyeWluZyB0aGUgcHJvamVjdCdzIGRlY2xhcmVkIFRlcnJhZm9ybS1jb21wYXRpYmxlIHJ1bnRpbWVcbiAqIHRhcmdldHMgKHNldCBmcm9tIHRoZSBgdGFyZ2V0VmVyc2lvbnNgIGZpZWxkIGluIGNka3RmLmpzb24gYnkgdGhlIENMSSwgb3JcbiAqIGRpcmVjdGx5IHZpYSBBcHAgY29udGV4dCAvIENES1RGX0NPTlRFWFRfSlNPTiBmb3Igc3RhbmRhbG9uZSBzeW50aCkuXG4gKlxuICogVGhpcyBpcyB0aGUgY2Fub25pY2FsIGRlZmluaXRpb24uIGBAY2RrdG4vY29tbW9uc2AgaW1wb3J0cyBpdCBmcm9tIGhlcmVcbiAqIChjb21tb25zIGRlcGVuZHMgb24gY2RrdG47IGNka3RuIG11c3Qgbm90IGRlcGVuZCBvbiBjb21tb25zKSwgc28gdGhlIENMSVxuICogd3JpdGVzIGFuZCB0aGUgY29uc3RydWN0IGxpYnJhcnkgcmVhZHMgdGhlIGV4YWN0IHNhbWUga2V5LiBJdCBpcyBhblxuICogaW50ZXJuYWwgd2lyaW5nIGRldGFpbCwgZGVsaWJlcmF0ZWx5IG5vdCBwYXJ0IG9mIGNka3RuJ3MgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRBUkdFVF9WRVJTSU9OU19DT05URVhUX0tFWSA9IFwidGFyZ2V0VmVyc2lvbnNcIjtcblxuLyoqXG4gKiBUaGUgVGVycmFmb3JtLWNvbXBhdGlibGUgcnVudGltZXMgYSBwcm9qZWN0IGRlY2xhcmVzIGl0IHN1cHBvcnRzLCBhcyBucG1cbiAqIHNlbXZlciByYW5nZXMgcGVyIHByb2R1Y3QuIEEgbWlzc2luZyBwcm9kdWN0IG1lYW5zIHRoZSBwcm9qZWN0IGRvZXMgbm90XG4gKiB0YXJnZXQgdGhhdCBwcm9kdWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybVRhcmdldFZlcnNpb25zIHtcbiAgcmVhZG9ubHkgdGVycmFmb3JtPzogc3RyaW5nO1xuICByZWFkb25seSBvcGVudG9mdT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VkIHdoZW4gYSBwcm9qZWN0IGRlY2xhcmVzIG5vIGB0YXJnZXRWZXJzaW9uc2A6IHRoZSBwcm9qZWN0IGlzIGFzc3VtZWRcbiAqIHRvIHRhcmdldCBldmVyeSBzdXBwb3J0ZWQgcmVsZWFzZSBvZiBib3RoIHByb2R1Y3RzLCB3aGljaCBpcyB0aGUgc3RyaWN0ZXN0XG4gKiAobW9zdCBwb3J0YWJsZSkgaW50ZXJwcmV0YXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMgPSB7XG4gIHRlcnJhZm9ybTogXCI+PTEuNS43XCIsXG4gIG9wZW50b2Z1OiBcIj49MS42LjBcIixcbn07XG5cbi8qKlxuICogVGhlIHByb2R1Y3Qga2V5cyBhIHByb2plY3QgbWF5IGRlY2xhcmUgdGFyZ2V0cyBmb3IuIEV4cG9ydGVkIGZvciByZXVzZSBieVxuICogYEBjZGt0bi9jb21tb25zYCAoaW1wb3J0ZWQgdmlhIHN1YnBhdGgpLCBub3QgcGFydCBvZiBjZGt0bidzIHB1YmxpYyBBUEkuXG4gKi9cbmV4cG9ydCBjb25zdCBUQVJHRVRfUFJPRFVDVFMgPSBbXCJ0ZXJyYWZvcm1cIiwgXCJvcGVudG9mdVwiXSBhcyBjb25zdDtcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZGVjbGFyZWQgdGFyZ2V0IHZlcnNpb25zIGZyb20gY29uc3RydWN0IGNvbnRleHQsIGZhbGxpbmcgYmFja1xuICogdG8gREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMuIFJldHVybnMgZXJyb3JzIGluc3RlYWQgb2YgdGFyZ2V0cyB3aGVuIHRoZVxuICogZGVjbGFyZWQgdmFsdWUgaXMgbWFsZm9ybWVkICh3aGljaCBjYW4gaGFwcGVuIHdoZW4gY29udGV4dCBpcyBzZXQgZGlyZWN0bHlcbiAqIG9uIHRoZSBBcHAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCBjZGt0Zi5qc29uIHZhbGlkYXRpb24pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRhcmdldFZlcnNpb25zKHNjb3BlOiBJQ29uc3RydWN0KToge1xuICB0YXJnZXRzPzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnM7XG4gIGVycm9yczogc3RyaW5nW107XG59IHtcbiAgY29uc3QgZGVjbGFyZWQgPSBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoVEFSR0VUX1ZFUlNJT05TX0NPTlRFWFRfS0VZKTtcbiAgaWYgKGRlY2xhcmVkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyB0YXJnZXRzOiBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUywgZXJyb3JzOiBbXSB9O1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBkZWNsYXJlZCAhPT0gXCJvYmplY3RcIiB8fFxuICAgIGRlY2xhcmVkID09PSBudWxsIHx8XG4gICAgQXJyYXkuaXNBcnJheShkZWNsYXJlZClcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yczogW1xuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgY29udGV4dCBtdXN0IGJlIGFuIG9iamVjdCBtYXBwaW5nIHByb2R1Y3RzIHRvIHNlbXZlciByYW5nZXMsIGUuZy4geyBcInRlcnJhZm9ybVwiOiBcIj49MS41LjdcIiB9YCxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkZWNsYXJlZCk7XG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcnM6IFtcbiAgICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdCAoXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpIG9yIGJlIG9taXR0ZWQgZW50aXJlbHlgLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IFtwcm9kdWN0LCByYW5nZV0gb2YgZW50cmllcykge1xuICAgIGlmICghVEFSR0VUX1BST0RVQ1RTLmluY2x1ZGVzKHByb2R1Y3QgYXMgYW55KSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwiJHtwcm9kdWN0fVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByYW5nZSA9PT0gXCJzdHJpbmdcIiAmJiByYW5nZS5pbmNsdWRlcyhcIn4+XCIpKSB7XG4gICAgICAvLyBucG0gc2VtdmVyIGhhcHBlbnMgdG8gcGFyc2UgXCJ+PlwiIGFzIFwiflwiLCB3aGljaCBoYXMgZGlmZmVyZW50XG4gICAgICAvLyBzZW1hbnRpY3MgdGhhbiBUZXJyYWZvcm0ncyBcIn4+XCIgcGVzc2ltaXN0aWMgY29uc3RyYWludCDigJQgcmVqZWN0IGl0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNpbGVudGx5IG1lYW5pbmcgc29tZXRoaW5nIGVsc2VcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgdXNlcyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXg7IHVzZSBucG0gc2VtdmVyIHJhbmdlcyBpbnN0ZWFkIChlLmcuIFwiPj0xLjUuN1wiIG9yIFwifjEuNS43XCIpYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGVvZiByYW5nZSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgcmFuZ2UudHJpbSgpLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc2VtdmVyLnZhbGlkUmFuZ2UocmFuZ2UpID09PSBudWxsXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICByYW5nZSxcbiAgICAgICAgKX0gaXMgbm90IGEgdmFsaWQgc2VtdmVyIHJhbmdlYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHsgZXJyb3JzIH07XG4gIH1cblxuICByZXR1cm4geyB0YXJnZXRzOiBkZWNsYXJlZCBhcyBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucywgZXJyb3JzOiBbXSB9O1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYWNyb3NzIHRoZSBlbnRpcmUgZGVjbGFyZWQgdGFyZ2V0XG4gKiByYW5nZSBvZiBldmVyeSB0YXJnZXRlZCBwcm9kdWN0LlxuICpcbiAqIGBzdXBwb3J0ZWRJbmAgZm9sbG93cyB0aGUgVGVycmFmb3JtRmVhdHVyZVZlcnNpb25Db25zdHJhaW50cyBzZW1hbnRpY3M6IGFcbiAqIG1pc3NpbmcgcHJvZHVjdCBrZXkgbWVhbnMgdGhlIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBieSB0aGF0IHByb2R1Y3QgYXRcbiAqIGFueSB2ZXJzaW9uLiBUaGUgY2hlY2sgaXMgYSBzZW12ZXIgcmFuZ2Ugc3Vic2V0OiBkZWNsYXJpbmdcbiAqIGB0ZXJyYWZvcm06IFwiPj0xLjUuN1wiYCB3aGlsZSBhIGZlYXR1cmUgcmVxdWlyZXMgYD49MS44LjBgIGZhaWxzLCBiZWNhdXNlXG4gKiB0aGUgcHJvamVjdCBjbGFpbXMgdG8gc3VwcG9ydCAxLjUuNy4uMS44LjAgd2hlcmUgdGhlIGZlYXR1cmUgaXMgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRmVhdHVyZVN1cHBvcnRlZEJ5VGFyZ2V0cyhcbiAgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgc3VwcG9ydGVkSW46IFRlcnJhZm9ybUZlYXR1cmVWZXJzaW9uQ29uc3RyYWludHMsXG4gIHRhcmdldHM6IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuICBoaW50Pzogc3RyaW5nLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBwcm9kdWN0IG9mIFRBUkdFVF9QUk9EVUNUUykge1xuICAgIGNvbnN0IHRhcmdldFJhbmdlID0gdGFyZ2V0c1twcm9kdWN0XTtcbiAgICBpZiAoIXRhcmdldFJhbmdlKSBjb250aW51ZTsgLy8gcHJvZHVjdCBub3QgdGFyZ2V0ZWQgYnkgdGhlIHByb2plY3RcblxuICAgIGNvbnN0IHN1cHBvcnRlZFJhbmdlID0gc3VwcG9ydGVkSW5bcHJvZHVjdF07XG4gICAgaWYgKCFzdXBwb3J0ZWRSYW5nZSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGAke2ZlYXR1cmVOYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGJ5ICR7cHJvZHVjdH0sIGJ1dCB0aGUgcHJvamVjdCB0YXJnZXRzICR7cHJvZHVjdH0gJHt0YXJnZXRSYW5nZX0uICR7XG4gICAgICAgICAgaGludCB8fCBcIlwiXG4gICAgICAgIH1gLnRyaW1FbmQoKSxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIXNlbXZlci5zdWJzZXQodGFyZ2V0UmFuZ2UsIHN1cHBvcnRlZFJhbmdlKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGAke2ZlYXR1cmVOYW1lfSByZXF1aXJlcyAke3Byb2R1Y3R9ICR7c3VwcG9ydGVkUmFuZ2V9LCBidXQgdGhlIHByb2plY3QgdGFyZ2V0cyAke3Byb2R1Y3R9ICR7dGFyZ2V0UmFuZ2V9LiAke1xuICAgICAgICAgIGhpbnQgfHwgXCJcIlxuICAgICAgICB9YC50cmltRW5kKCksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgYSBmZWF0dXJlIGlzIHN1cHBvcnRlZCBieSB0aGUgcHJvamVjdCdzIGRlY2xhcmVkXG4gKiBUZXJyYWZvcm0tY29tcGF0aWJsZSBydW50aW1lIHRhcmdldHMgKGNka3RmLmpzb24gYHRhcmdldFZlcnNpb25zYCksXG4gKiB3aXRob3V0IHByb2JpbmcgYW55IGxvY2FsbHkgaW5zdGFsbGVkIGJpbmFyeS5cbiAqXG4gKiBWZXJpZnlpbmcgdGhlIGFjdHVhbGx5IGluc3RhbGxlZCBiaW5hcnkgaXMgYSBzZXBhcmF0ZSwgZXhwbGljaXQgc3RlcDpcbiAqIHRoZSBvcHQtaW4gYHZhbGlkYXRlSW5zdGFsbGVkQmluYXJ5YCBjb25maWcgaGFuZGxlZCBieSB0aGUgQ0xJIGNvbW1hbmRzXG4gKiB0aGF0IGV4ZWN1dGUgdGhlIGJpbmFyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQgaW1wbGVtZW50cyBJVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzY29wZTogSUNvbnN0cnVjdCxcbiAgICBwcm90ZWN0ZWQgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgc3VwcG9ydGVkSW46IFRlcnJhZm9ybUZlYXR1cmVWZXJzaW9uQ29uc3RyYWludHMsXG4gICAgcHJvdGVjdGVkIGhpbnQ/OiBzdHJpbmcsXG4gICkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHsgdGFyZ2V0cywgZXJyb3JzIH0gPSByZXNvbHZlVGFyZ2V0VmVyc2lvbnModGhpcy5zY29wZSk7XG4gICAgaWYgKCF0YXJnZXRzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBjaGVja0ZlYXR1cmVTdXBwb3J0ZWRCeVRhcmdldHMoXG4gICAgICB0aGlzLmZlYXR1cmVOYW1lLFxuICAgICAgdGhpcy5zdXBwb3J0ZWRJbixcbiAgICAgIHRhcmdldHMsXG4gICAgICB0aGlzLmhpbnQsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXZlcnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb25zL3RhcmdldC12ZXJzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQ0Esa0RBT0M7QUFNRCxzREFjQztBQU1ELDREQUtDO0FBUUQsc0RBNkRDO0FBWUQsd0VBZ0NDO0FBdE1ELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUU3QiwrQ0FBaUM7QUFHakM7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxnQkFBZ0IsQ0FBQztBQVk1RDs7OztHQUlHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBNEI7SUFDOUQsU0FBUyxFQUFFLFNBQVM7SUFDcEIsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsZUFBZSxHQUFHLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRWxFLDZDQUE2QztBQUM3QyxTQUFnQixtQkFBbUIsQ0FDakMsY0FBd0M7SUFFeEMsT0FBTyxDQUNMLGNBQWMsRUFBRSxRQUFRLEtBQUssU0FBUztRQUN0QyxjQUFjLEVBQUUsU0FBUyxLQUFLLFNBQVMsQ0FDeEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFFbkIsS0FBSyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDeEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsSUFBSSxFQUFFLENBQUMs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QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0M7UUFDL0MsU0FBSSxHQUFKLElBQUksQ0FBUztJQUN0QixDQUFDO0lBRUcsUUFBUTtRQUNiLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLDhCQUE4QixDQUNuQyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsV0FBVyxFQUNoQixPQUFPLEVBQ1AsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBckJELG9FQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IElDb25zdHJ1Y3QsIElWYWxpZGF0aW9uIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1GZWF0dXJlVmVyc2lvbkNvbnN0cmFpbnRzIH0gZnJvbSBcIi4vdmFsaWRhdGUtdGVycmFmb3JtLWZlYXR1cmUtdmVyc2lvblwiO1xuXG4vKipcbiAqIENvbnRleHQga2V5IGNhcnJ5aW5nIHRoZSBwcm9qZWN0J3MgZGVjbGFyZWQgVGVycmFmb3JtLWNvbXBhdGlibGUgcnVudGltZVxuICogdGFyZ2V0cyAoc2V0IGZyb20gdGhlIGB0YXJnZXRWZXJzaW9uc2AgZmllbGQgaW4gY2RrdGYuanNvbiBieSB0aGUgQ0xJLCBvclxuICogZGlyZWN0bHkgdmlhIEFwcCBjb250ZXh0IC8gQ0RLVEZfQ09OVEVYVF9KU09OIGZvciBzdGFuZGFsb25lIHN5bnRoKS5cbiAqXG4gKiBUaGlzIGlzIHRoZSBjYW5vbmljYWwgZGVmaW5pdGlvbi4gYEBjZGt0bi9jb21tb25zYCBpbXBvcnRzIGl0IGZyb20gaGVyZVxuICogKGNvbW1vbnMgZGVwZW5kcyBvbiBjZGt0bjsgY2RrdG4gbXVzdCBub3QgZGVwZW5kIG9uIGNvbW1vbnMpLCBzbyB0aGUgQ0xJXG4gKiB3cml0ZXMgYW5kIHRoZSBjb25zdHJ1Y3QgbGlicmFyeSByZWFkcyB0aGUgZXhhY3Qgc2FtZSBrZXkuIEl0IGlzIGFuXG4gKiBpbnRlcm5hbCB3aXJpbmcgZGV0YWlsLCBkZWxpYmVyYXRlbHkgbm90IHBhcnQgb2YgY2RrdG4ncyBwdWJsaWMgQVBJLlxuICovXG5leHBvcnQgY29uc3QgVEFSR0VUX1ZFUlNJT05TX0NPTlRFWFRfS0VZID0gXCJ0YXJnZXRWZXJzaW9uc1wiO1xuXG4vKipcbiAqIFRoZSBUZXJyYWZvcm0tY29tcGF0aWJsZSBydW50aW1lcyBhIHByb2plY3QgZGVjbGFyZXMgaXQgc3VwcG9ydHMsIGFzIG5wbVxuICogc2VtdmVyIHJhbmdlcyBwZXIgcHJvZHVjdC4gQSBtaXNzaW5nIHByb2R1Y3QgbWVhbnMgdGhlIHByb2plY3QgZG9lcyBub3RcbiAqIHRhcmdldCB0aGF0IHByb2R1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMge1xuICByZWFkb25seSB0ZXJyYWZvcm0/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wZW50b2Z1Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgd2hlbiBhIHByb2plY3QgZGVjbGFyZXMgbm8gYHRhcmdldFZlcnNpb25zYDogdGhlIHByb2plY3QgaXMgYXNzdW1lZFxuICogdG8gdGFyZ2V0IGV2ZXJ5IHN1cHBvcnRlZCByZWxlYXNlIG9mIGJvdGggcHJvZHVjdHMsIHdoaWNoIGlzIHRoZSBzdHJpY3Rlc3RcbiAqIChtb3N0IHBvcnRhYmxlKSBpbnRlcnByZXRhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TOiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyA9IHtcbiAgdGVycmFmb3JtOiBcIj49MS41LjdcIixcbiAgb3BlbnRvZnU6IFwiPj0xLjYuMFwiLFxufTtcblxuLyoqXG4gKiBUaGUgcHJvZHVjdCBrZXlzIGEgcHJvamVjdCBtYXkgZGVjbGFyZSB0YXJnZXRzIGZvci4gRXhwb3J0ZWQgZm9yIHJldXNlIGJ5XG4gKiBgQGNka3RuL2NvbW1vbnNgIChpbXBvcnRlZCB2aWEgc3VicGF0aCksIG5vdCBwYXJ0IG9mIGNka3RuJ3MgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRBUkdFVF9QUk9EVUNUUyA9IFtcInRlcnJhZm9ybVwiLCBcIm9wZW50b2Z1XCJdIGFzIGNvbnN0O1xuXG4vKiogT3BlblRvZnUgaXMgdGhlIHNvbGUgZGVjbGFyZWQgcHJvZHVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YXJnZXRzT25seU9wZW5Ub2Z1KFxuICB0YXJnZXRWZXJzaW9ucz86IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0VmVyc2lvbnM/Lm9wZW50b2Z1ICE9PSB1bmRlZmluZWQgJiZcbiAgICB0YXJnZXRWZXJzaW9ucz8udGVycmFmb3JtID09PSB1bmRlZmluZWRcbiAgKTtcbn1cblxuLyoqXG4gKiBUaGUgYHRhcmdldFZlcnNpb25zYCBvZiB0aGUgbmVhcmVzdCBjZGt0Zi5qc29uIGF0IG9yIGFib3ZlIGBkaXJgLiBPbmx5IHRoZVxuICoga2V5IGlzIHJlYWQ6IGFuIGludmFsaWQgY29uZmlnIGlzIHJlcG9ydGVkIGJ5IHRoZSBjb21tYW5kIHRoYXQgcmVhZHMgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9qZWN0VGFyZ2V0VmVyc2lvbnMoXG4gIGRpciA9IHByb2Nlc3MuY3dkKCksXG4pOiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyB8IHVuZGVmaW5lZCB7XG4gIGZvciAobGV0IGN1cnJlbnQgPSBwYXRoLnJlc29sdmUoZGlyKTsgOyBjdXJyZW50ID0gcGF0aC5kaXJuYW1lKGN1cnJlbnQpKSB7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihjdXJyZW50LCBcImNka3RmLmpzb25cIik7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsZSkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0ZjhcIikpLnRhcmdldFZlcnNpb25zO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwYXRoLmRpcm5hbWUoY3VycmVudCkgPT09IGN1cnJlbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBgVEVSUkFGT1JNX0JJTkFSWV9OQU1FYCwgZWxzZSBgdG9mdWAgd2hlbiB0aGUgcHJvamVjdCBhdCBvciBhYm92ZSB0aGVcbiAqIHdvcmtpbmcgZGlyZWN0b3J5IHRhcmdldHMgb25seSBPcGVuVG9mdSwgZWxzZSBgdGVycmFmb3JtYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluZmVyVGVycmFmb3JtQmluYXJ5TmFtZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHByb2Nlc3MuZW52LlRFUlJBRk9STV9CSU5BUllfTkFNRSB8fFxuICAgICh0YXJnZXRzT25seU9wZW5Ub2Z1KHByb2plY3RUYXJnZXRWZXJzaW9ucygpKSA/IFwidG9mdVwiIDogXCJ0ZXJyYWZvcm1cIilcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZGVjbGFyZWQgdGFyZ2V0IHZlcnNpb25zIGZyb20gY29uc3RydWN0IGNvbnRleHQsIGZhbGxpbmcgYmFja1xuICogdG8gREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMuIFJldHVybnMgZXJyb3JzIGluc3RlYWQgb2YgdGFyZ2V0cyB3aGVuIHRoZVxuICogZGVjbGFyZWQgdmFsdWUgaXMgbWFsZm9ybWVkICh3aGljaCBjYW4gaGFwcGVuIHdoZW4gY29udGV4dCBpcyBzZXQgZGlyZWN0bHlcbiAqIG9uIHRoZSBBcHAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCBjZGt0Zi5qc29uIHZhbGlkYXRpb24pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRhcmdldFZlcnNpb25zKHNjb3BlOiBJQ29uc3RydWN0KToge1xuICB0YXJnZXRzPzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnM7XG4gIGVycm9yczogc3RyaW5nW107XG59IHtcbiAgY29uc3QgZGVjbGFyZWQgPSBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoVEFSR0VUX1ZFUlNJT05TX0NPTlRFWFRfS0VZKTtcbiAgaWYgKGRlY2xhcmVkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyB0YXJnZXRzOiBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUywgZXJyb3JzOiBbXSB9O1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiBkZWNsYXJlZCAhPT0gXCJvYmplY3RcIiB8fFxuICAgIGRlY2xhcmVkID09PSBudWxsIHx8XG4gICAgQXJyYXkuaXNBcnJheShkZWNsYXJlZClcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yczogW1xuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgY29udGV4dCBtdXN0IGJlIGFuIG9iamVjdCBtYXBwaW5nIHByb2R1Y3RzIHRvIHNlbXZlciByYW5nZXMsIGUuZy4geyBcInRlcnJhZm9ybVwiOiBcIj49MS41LjdcIiB9YCxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkZWNsYXJlZCk7XG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcnM6IFtcbiAgICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdCAoXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpIG9yIGJlIG9taXR0ZWQgZW50aXJlbHlgLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IFtwcm9kdWN0LCByYW5nZV0gb2YgZW50cmllcykge1xuICAgIGlmICghVEFSR0VUX1BST0RVQ1RTLmluY2x1ZGVzKHByb2R1Y3QgYXMgYW55KSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwiJHtwcm9kdWN0fVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByYW5nZSA9PT0gXCJzdHJpbmdcIiAmJiByYW5nZS5pbmNsdWRlcyhcIn4+XCIpKSB7XG4gICAgICAvLyBucG0gc2VtdmVyIGhhcHBlbnMgdG8gcGFyc2UgXCJ+PlwiIGFzIFwiflwiLCB3aGljaCBoYXMgZGlmZmVyZW50XG4gICAgICAvLyBzZW1hbnRpY3MgdGhhbiBUZXJyYWZvcm0ncyBcIn4+XCIgcGVzc2ltaXN0aWMgY29uc3RyYWludCDigJQgcmVqZWN0IGl0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNpbGVudGx5IG1lYW5pbmcgc29tZXRoaW5nIGVsc2VcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgdXNlcyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXg7IHVzZSBucG0gc2VtdmVyIHJhbmdlcyBpbnN0ZWFkIChlLmcuIFwiPj0xLjUuN1wiIG9yIFwifjEuNS43XCIpYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGVvZiByYW5nZSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgcmFuZ2UudHJpbSgpLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc2VtdmVyLnZhbGlkUmFuZ2UocmFuZ2UpID09PSBudWxsXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICByYW5nZSxcbiAgICAgICAgKX0gaXMgbm90IGEgdmFsaWQgc2VtdmVyIHJhbmdlYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHsgZXJyb3JzIH07XG4gIH1cblxuICByZXR1cm4geyB0YXJnZXRzOiBkZWNsYXJlZCBhcyBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucywgZXJyb3JzOiBbXSB9O1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYWNyb3NzIHRoZSBlbnRpcmUgZGVjbGFyZWQgdGFyZ2V0XG4gKiByYW5nZSBvZiBldmVyeSB0YXJnZXRlZCBwcm9kdWN0LlxuICpcbiAqIGBzdXBwb3J0ZWRJbmAgZm9sbG93cyB0aGUgVGVycmFmb3JtRmVhdHVyZVZlcnNpb25Db25zdHJhaW50cyBzZW1hbnRpY3M6IGFcbiAqIG1pc3NpbmcgcHJvZHVjdCBrZXkgbWVhbnMgdGhlIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBieSB0aGF0IHByb2R1Y3QgYXRcbiAqIGFueSB2ZXJzaW9uLiBUaGUgY2hlY2sgaXMgYSBzZW12ZXIgcmFuZ2Ugc3Vic2V0OiBkZWNsYXJpbmdcbiAqIGB0ZXJyYWZvcm06IFwiPj0xLjUuN1wiYCB3aGlsZSBhIGZlYXR1cmUgcmVxdWlyZXMgYD49MS44LjBgIGZhaWxzLCBiZWNhdXNlXG4gKiB0aGUgcHJvamVjdCBjbGFpbXMgdG8gc3VwcG9ydCAxLjUuNy4uMS44LjAgd2hlcmUgdGhlIGZlYXR1cmUgaXMgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRmVhdHVyZVN1cHBvcnRlZEJ5VGFyZ2V0cyhcbiAgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgc3VwcG9ydGVkSW46IFRlcnJhZm9ybUZlYXR1cmVWZXJzaW9uQ29uc3RyYWludHMsXG4gIHRhcmdldHM6IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuICBoaW50Pzogc3RyaW5nLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBwcm9kdWN0IG9mIFRBUkdFVF9QUk9EVUNUUykge1xuICAgIGNvbnN0IHRhcmdldFJhbmdlID0gdGFyZ2V0c1twcm9kdWN0XTtcbiAgICBpZiAoIXRhcmdldFJhbmdlKSBjb250aW51ZTsgLy8gcHJvZHVjdCBub3QgdGFyZ2V0ZWQgYnkgdGhlIHByb2plY3RcblxuICAgIGNvbnN0IHN1cHBvcnRlZFJhbmdlID0gc3VwcG9ydGVkSW5bcHJvZHVjdF07XG4gICAgaWYgKCFzdXBwb3J0ZWRSYW5nZSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGAke2ZlYXR1cmVOYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGJ5ICR7cHJvZHVjdH0sIGJ1dCB0aGUgcHJvamVjdCB0YXJnZXRzICR7cHJvZHVjdH0gJHt0YXJnZXRSYW5nZX0uICR7XG4gICAgICAgICAgaGludCB8fCBcIlwiXG4gICAgICAgIH1gLnRyaW1FbmQoKSxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIXNlbXZlci5zdWJzZXQodGFyZ2V0UmFuZ2UsIHN1cHBvcnRlZFJhbmdlKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGAke2ZlYXR1cmVOYW1lfSByZXF1aXJlcyAke3Byb2R1Y3R9ICR7c3VwcG9ydGVkUmFuZ2V9LCBidXQgdGhlIHByb2plY3QgdGFyZ2V0cyAke3Byb2R1Y3R9ICR7dGFyZ2V0UmFuZ2V9LiAke1xuICAgICAgICAgIGhpbnQgfHwgXCJcIlxuICAgICAgICB9YC50cmltRW5kKCksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgYSBmZWF0dXJlIGlzIHN1cHBvcnRlZCBieSB0aGUgcHJvamVjdCdzIGRlY2xhcmVkXG4gKiBUZXJyYWZvcm0tY29tcGF0aWJsZSBydW50aW1lIHRhcmdldHMgKGNka3RmLmpzb24gYHRhcmdldFZlcnNpb25zYCksXG4gKiB3aXRob3V0IHByb2JpbmcgYW55IGxvY2FsbHkgaW5zdGFsbGVkIGJpbmFyeS5cbiAqXG4gKiBWZXJpZnlpbmcgdGhlIGFjdHVhbGx5IGluc3RhbGxlZCBiaW5hcnkgaXMgYSBzZXBhcmF0ZSwgZXhwbGljaXQgc3RlcDpcbiAqIHRoZSBvcHQtaW4gYHZhbGlkYXRlSW5zdGFsbGVkQmluYXJ5YCBjb25maWcgaGFuZGxlZCBieSB0aGUgQ0xJIGNvbW1hbmRzXG4gKiB0aGF0IGV4ZWN1dGUgdGhlIGJpbmFyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQgaW1wbGVtZW50cyBJVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzY29wZTogSUNvbnN0cnVjdCxcbiAgICBwcm90ZWN0ZWQgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgc3VwcG9ydGVkSW46IFRlcnJhZm9ybUZlYXR1cmVWZXJzaW9uQ29uc3RyYWludHMsXG4gICAgcHJvdGVjdGVkIGhpbnQ/OiBzdHJpbmcsXG4gICkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHsgdGFyZ2V0cywgZXJyb3JzIH0gPSByZXNvbHZlVGFyZ2V0VmVyc2lvbnModGhpcy5zY29wZSk7XG4gICAgaWYgKCF0YXJnZXRzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBjaGVja0ZlYXR1cmVTdXBwb3J0ZWRCeVRhcmdldHMoXG4gICAgICB0aGlzLmZlYXR1cmVOYW1lLFxuICAgICAgdGhpcy5zdXBwb3J0ZWRJbixcbiAgICAgIHRhcmdldHMsXG4gICAgICB0aGlzLmhpbnQsXG4gICAgKTtcbiAgfVxufVxuIl19
|