cdk-common 2.0.113 → 2.0.116
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 +4 -4
- package/changelog.md +1 -1
- package/lib/main.js +1 -1
- package/node_modules/@aws-cdk/assert/package.json +8 -8
- package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +131 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +2 -2
- package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +2 -2
- package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/massage-spec.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/patch-set.ts.html +2 -2
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/scrutiny.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/validate-cfn.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/junit.xml +6598 -6462
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/massage-spec.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/patch-set.ts.html +2 -2
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/scrutiny.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/validate-cfn.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/canned-metrics-schema.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.ts.html +3 -3
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/augmentation.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/base-types.ts.html +3 -3
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/property.ts.html +13 -13
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/resource-type.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/specification.ts.html +2 -2
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov.info +47 -47
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/canned-metrics-schema.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.ts.html +3 -3
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/augmentation.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/base-types.ts.html +3 -3
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/property.ts.html +13 -13
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/resource-type.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/specification.ts.html +2 -2
- package/node_modules/@aws-cdk/cfnspec/package.json +3 -3
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +265 -81
- package/node_modules/@aws-cdk/cfnspec/spec/specification.json +452 -18
- package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +19 -3
- package/node_modules/@aws-cdk/cloudformation-diff/lib/format.js +2 -2
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js +2 -2
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +4 -4
- package/package.json +6 -6
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/.jsii
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"bundled": {
|
|
10
|
-
"@aws-cdk/assert": "^2.
|
|
10
|
+
"@aws-cdk/assert": "^2.20.0",
|
|
11
11
|
"case": "^1.6.3",
|
|
12
12
|
"sync-request": "^6.1.0"
|
|
13
13
|
},
|
|
@@ -2924,7 +2924,7 @@
|
|
|
2924
2924
|
"stability": "experimental"
|
|
2925
2925
|
},
|
|
2926
2926
|
"homepage": "https://github.com/neilkuan/cdk-common.git",
|
|
2927
|
-
"jsiiVersion": "1.
|
|
2927
|
+
"jsiiVersion": "1.56.0 (build 55e7d15)",
|
|
2928
2928
|
"keywords": [
|
|
2929
2929
|
"aws",
|
|
2930
2930
|
"aws-cdk",
|
|
@@ -8683,6 +8683,6 @@
|
|
|
8683
8683
|
"symbolId": "src/main:LambdaArmFunctionProps"
|
|
8684
8684
|
}
|
|
8685
8685
|
},
|
|
8686
|
-
"version": "2.0.
|
|
8687
|
-
"fingerprint": "
|
|
8686
|
+
"version": "2.0.116",
|
|
8687
|
+
"fingerprint": "oDOWRRa+dCU+Q0udqwKZxxidykXPlZgFd2HAAaoBjwM="
|
|
8688
8688
|
}
|
package/changelog.md
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
### [2.0.
|
|
2
|
+
### [2.0.116](https://github.com/neilkuan/cdk-common/compare/v2.0.115...v2.0.116) (2022-04-10)
|
package/lib/main.js
CHANGED
|
@@ -41,5 +41,5 @@ class LambdaArmFunction extends constructs_1.Construct {
|
|
|
41
41
|
}
|
|
42
42
|
exports.LambdaArmFunction = LambdaArmFunction;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
LambdaArmFunction[_a] = { fqn: "cdk-common.LambdaArmFunction", version: "2.0.
|
|
44
|
+
LambdaArmFunction[_a] = { fqn: "cdk-common.LambdaArmFunction", version: "2.0.116" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFLdkMsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUU5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ2hELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQzFFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3ZELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQzFFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQzNFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ25ELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3JFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzdFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixLQUFLLENBQUMsT0FBTyx1R0FBdUcsQ0FBQyxDQUFDO1NBQzFKO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1SCxDQUFDOztBQTFCSCw4Q0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUFybUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25Qcm9wcyB7XG5cbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUFybUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOkxhbWJkYUFybUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLnJ1bnRpbWUgPT09IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMl9YKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBOb2RlLmpzIDEyLnggYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTRfWCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgTm9kZS5qcyAxNC54IGF0IEFSTScpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMucnVudGltZSA9PT0gbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgUHl0aG9uIDMuOCBhdCBBUk0nKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLnJ1bnRpbWUgPT09IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzkpIHtcbiAgICAgIGNkay5Bbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKCdZb3UgYXJlIHVzaW5nIFB5dGhvbiAzLjkgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5KQVZBXzhfQ09SUkVUVE8pIHtcbiAgICAgIGNkay5Bbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKCdZb3UgYXJlIHVzaW5nIEphdmEgOCBvbiBhbDIgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5KQVZBXzExKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBKYXZhIDExIGF0IEFSTScpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMucnVudGltZSA9PT0gbGFtYmRhLlJ1bnRpbWUuRE9UTkVUX0NPUkVfM18xKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBET1RORVQgQ09SRSAzLjEgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5SVUJZXzJfNykge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgUlVCWSAyLjcgYXQgQVJNJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSdW50aW1lICR7cHJvcHMucnVudGltZX0gYXQgQVJNLCBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1hcmNoLmh0bWw/aWNtcGlkPWRvY3NfbGFtYmRhX3Jzc2ApO1xuICAgIH1cblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdMYW1iZGFGdW5jdGlvbicsIHsgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCwgLi4ucHJvcHMgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/assert",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.20.0",
|
|
4
4
|
"description": "An assertion library for use with CDK Apps",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -34,21 +34,21 @@
|
|
|
34
34
|
},
|
|
35
35
|
"license": "Apache-2.0",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@aws-cdk/assert-internal": "2.
|
|
38
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
39
|
-
"@aws-cdk/pkglint": "2.
|
|
37
|
+
"@aws-cdk/assert-internal": "2.20.0",
|
|
38
|
+
"@aws-cdk/cdk-build-tools": "2.20.0",
|
|
39
|
+
"@aws-cdk/pkglint": "2.20.0",
|
|
40
40
|
"@types/jest": "^27.4.1",
|
|
41
|
-
"aws-cdk-lib": "2.
|
|
42
|
-
"aws-cdk-migration": "2.
|
|
41
|
+
"aws-cdk-lib": "2.20.0",
|
|
42
|
+
"aws-cdk-migration": "2.20.0",
|
|
43
43
|
"constructs": "^10.0.0",
|
|
44
44
|
"jest": "^27.3.1",
|
|
45
45
|
"ts-jest": "^27.1.4"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aws-cdk/cloudformation-diff": "2.
|
|
48
|
+
"@aws-cdk/cloudformation-diff": "2.20.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"aws-cdk-lib": "^2.
|
|
51
|
+
"aws-cdk-lib": "^2.20.0",
|
|
52
52
|
"constructs": "^10.0.0",
|
|
53
53
|
"jest": ">=26.6.3"
|
|
54
54
|
},
|
|
@@ -1,3 +1,134 @@
|
|
|
1
|
+
# CloudFormation Resource Specification v65.0.0
|
|
2
|
+
|
|
3
|
+
## New Resource Types
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Removed Resource Types
|
|
7
|
+
|
|
8
|
+
* AWS::Events::Endpoint
|
|
9
|
+
|
|
10
|
+
## Attribute Changes
|
|
11
|
+
|
|
12
|
+
* AWS::SQS::QueuePolicy Documentation (__changed__)
|
|
13
|
+
* Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html
|
|
14
|
+
* New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html
|
|
15
|
+
* AWS::SQS::QueuePolicy Id (__deleted__)
|
|
16
|
+
* AWS::SageMaker::Domain SecurityGroupIdForDomainBoundary (__added__)
|
|
17
|
+
|
|
18
|
+
## Property Changes
|
|
19
|
+
|
|
20
|
+
* AWS::ECS::Service PlacementConstraints.UpdateType (__changed__)
|
|
21
|
+
* Old: Immutable
|
|
22
|
+
* New: Mutable
|
|
23
|
+
* AWS::ECS::Service PlacementStrategies.UpdateType (__changed__)
|
|
24
|
+
* Old: Immutable
|
|
25
|
+
* New: Mutable
|
|
26
|
+
* AWS::SQS::QueuePolicy PolicyDocument.Documentation (__changed__)
|
|
27
|
+
* Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-policydocument
|
|
28
|
+
* New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-policydoc
|
|
29
|
+
* AWS::SQS::QueuePolicy Queues.Documentation (__changed__)
|
|
30
|
+
* Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queuepolicy.html#cfn-sqs-queuepolicy-queues
|
|
31
|
+
* New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html#cfn-sqs-queuepolicy-queues
|
|
32
|
+
* AWS::SageMaker::Domain AppSecurityGroupManagement (__added__)
|
|
33
|
+
* AWS::SageMaker::Domain DomainSettings (__added__)
|
|
34
|
+
|
|
35
|
+
## Property Type Changes
|
|
36
|
+
|
|
37
|
+
* AWS::SageMaker::Domain.DomainSettings (__added__)
|
|
38
|
+
* AWS::SageMaker::Domain.RStudioServerProAppSettings (__added__)
|
|
39
|
+
* AWS::SageMaker::Domain.RStudioServerProDomainSettings (__added__)
|
|
40
|
+
* AWS::SageMaker::UserProfile.RStudioServerProAppSettings (__added__)
|
|
41
|
+
* AWS::DMS::Endpoint.KafkaSettings IncludePartitionValue (__added__)
|
|
42
|
+
* AWS::DMS::Endpoint.KafkaSettings MessageFormat (__added__)
|
|
43
|
+
* AWS::DMS::Endpoint.KafkaSettings MessageMaxBytes (__added__)
|
|
44
|
+
* AWS::DMS::Endpoint.KinesisSettings IncludePartitionValue (__added__)
|
|
45
|
+
* AWS::DMS::Endpoint.MySqlSettings AfterConnectScript (__added__)
|
|
46
|
+
* AWS::DMS::Endpoint.MySqlSettings CleanSourceMetadataOnMismatch (__added__)
|
|
47
|
+
* AWS::DMS::Endpoint.MySqlSettings EventsPollInterval (__added__)
|
|
48
|
+
* AWS::DMS::Endpoint.MySqlSettings MaxFileSize (__added__)
|
|
49
|
+
* AWS::DMS::Endpoint.MySqlSettings ParallelLoadThreads (__added__)
|
|
50
|
+
* AWS::DMS::Endpoint.MySqlSettings ServerTimezone (__added__)
|
|
51
|
+
* AWS::DMS::Endpoint.MySqlSettings TargetDbType (__added__)
|
|
52
|
+
* AWS::ECS::Service.PlacementConstraint Expression.UpdateType (__changed__)
|
|
53
|
+
* Old: Immutable
|
|
54
|
+
* New: Mutable
|
|
55
|
+
* AWS::ECS::Service.PlacementConstraint Type.UpdateType (__changed__)
|
|
56
|
+
* Old: Immutable
|
|
57
|
+
* New: Mutable
|
|
58
|
+
* AWS::ECS::Service.PlacementStrategy Field.UpdateType (__changed__)
|
|
59
|
+
* Old: Immutable
|
|
60
|
+
* New: Mutable
|
|
61
|
+
* AWS::ECS::Service.PlacementStrategy Type.UpdateType (__changed__)
|
|
62
|
+
* Old: Immutable
|
|
63
|
+
* New: Mutable
|
|
64
|
+
* AWS::SageMaker::Domain.UserSettings RStudioServerProAppSettings (__added__)
|
|
65
|
+
* AWS::SageMaker::UserProfile.UserSettings RStudioServerProAppSettings (__added__)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
# CloudFormation Resource Specification v63.0.0
|
|
69
|
+
|
|
70
|
+
## New Resource Types
|
|
71
|
+
|
|
72
|
+
* AWS::Events::Endpoint
|
|
73
|
+
|
|
74
|
+
## Attribute Changes
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
## Property Changes
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
## Property Type Changes
|
|
81
|
+
|
|
82
|
+
* AWS::EKS::Cluster.Provider (__added__)
|
|
83
|
+
* AWS::DMS::Endpoint.OracleSettings AccessAlternateDirectly (__added__)
|
|
84
|
+
* AWS::DMS::Endpoint.OracleSettings AddSupplementalLogging (__added__)
|
|
85
|
+
* AWS::DMS::Endpoint.OracleSettings AdditionalArchivedLogDestId (__added__)
|
|
86
|
+
* AWS::DMS::Endpoint.OracleSettings AllowSelectNestedTables (__added__)
|
|
87
|
+
* AWS::DMS::Endpoint.OracleSettings ArchivedLogDestId (__added__)
|
|
88
|
+
* AWS::DMS::Endpoint.OracleSettings ArchivedLogsOnly (__added__)
|
|
89
|
+
* AWS::DMS::Endpoint.OracleSettings AsmPassword (__added__)
|
|
90
|
+
* AWS::DMS::Endpoint.OracleSettings AsmServer (__added__)
|
|
91
|
+
* AWS::DMS::Endpoint.OracleSettings AsmUser (__added__)
|
|
92
|
+
* AWS::DMS::Endpoint.OracleSettings CharLengthSemantics (__added__)
|
|
93
|
+
* AWS::DMS::Endpoint.OracleSettings DirectPathNoLog (__added__)
|
|
94
|
+
* AWS::DMS::Endpoint.OracleSettings DirectPathParallelLoad (__added__)
|
|
95
|
+
* AWS::DMS::Endpoint.OracleSettings EnableHomogenousTablespace (__added__)
|
|
96
|
+
* AWS::DMS::Endpoint.OracleSettings ExtraArchivedLogDestIds (__added__)
|
|
97
|
+
* AWS::DMS::Endpoint.OracleSettings FailTasksOnLobTruncation (__added__)
|
|
98
|
+
* AWS::DMS::Endpoint.OracleSettings NumberDatatypeScale (__added__)
|
|
99
|
+
* AWS::DMS::Endpoint.OracleSettings OraclePathPrefix (__added__)
|
|
100
|
+
* AWS::DMS::Endpoint.OracleSettings ParallelAsmReadThreads (__added__)
|
|
101
|
+
* AWS::DMS::Endpoint.OracleSettings ReadAheadBlocks (__added__)
|
|
102
|
+
* AWS::DMS::Endpoint.OracleSettings ReadTableSpaceName (__added__)
|
|
103
|
+
* AWS::DMS::Endpoint.OracleSettings ReplacePathPrefix (__added__)
|
|
104
|
+
* AWS::DMS::Endpoint.OracleSettings RetryInterval (__added__)
|
|
105
|
+
* AWS::DMS::Endpoint.OracleSettings SecurityDbEncryption (__added__)
|
|
106
|
+
* AWS::DMS::Endpoint.OracleSettings SecurityDbEncryptionName (__added__)
|
|
107
|
+
* AWS::DMS::Endpoint.OracleSettings SpatialDataOptionToGeoJsonFunctionName (__added__)
|
|
108
|
+
* AWS::DMS::Endpoint.OracleSettings StandbyDelayTime (__added__)
|
|
109
|
+
* AWS::DMS::Endpoint.OracleSettings UseAlternateFolderForOnline (__added__)
|
|
110
|
+
* AWS::DMS::Endpoint.OracleSettings UseBFile (__added__)
|
|
111
|
+
* AWS::DMS::Endpoint.OracleSettings UseDirectPathFullLoad (__added__)
|
|
112
|
+
* AWS::DMS::Endpoint.OracleSettings UseLogminerReader (__added__)
|
|
113
|
+
* AWS::DMS::Endpoint.OracleSettings UsePathPrefix (__added__)
|
|
114
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings AfterConnectScript (__added__)
|
|
115
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings CaptureDdls (__added__)
|
|
116
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings DdlArtifactsSchema (__added__)
|
|
117
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings ExecuteTimeout (__added__)
|
|
118
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings FailTasksOnLobTruncation (__added__)
|
|
119
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings HeartbeatEnable (__added__)
|
|
120
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings HeartbeatFrequency (__added__)
|
|
121
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings HeartbeatSchema (__added__)
|
|
122
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings MaxFileSize (__added__)
|
|
123
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings PluginName (__added__)
|
|
124
|
+
* AWS::DMS::Endpoint.PostgreSqlSettings SlotName (__added__)
|
|
125
|
+
* AWS::EKS::Cluster.EncryptionConfig Provider.PrimitiveType (__deleted__)
|
|
126
|
+
* AWS::EKS::Cluster.EncryptionConfig Provider.Type (__added__)
|
|
127
|
+
* AWS::FSx::FileSystem.OntapConfiguration ThroughputCapacity.UpdateType (__changed__)
|
|
128
|
+
* Old: Immutable
|
|
129
|
+
* New: Mutable
|
|
130
|
+
|
|
131
|
+
|
|
1
132
|
# CloudFormation Resource Specification v62.0.0
|
|
2
133
|
|
|
3
134
|
## New Resource Types
|
|
@@ -198,7 +198,7 @@ function findPatches(data, patchSource) {
|
|
|
198
198
|
throw new Error(`adjustPath: expected string, got ${JSON.stringify(originalPath)}`);
|
|
199
199
|
}
|
|
200
200
|
if (originalPath.startsWith('$/')) {
|
|
201
|
-
return originalPath.
|
|
201
|
+
return originalPath.slice(1);
|
|
202
202
|
}
|
|
203
203
|
return jsonPath.map(p => `/${p}`).join('') + originalPath;
|
|
204
204
|
}
|
|
@@ -236,4 +236,4 @@ if (require.main === module) {
|
|
|
236
236
|
console.error(e.message);
|
|
237
237
|
});
|
|
238
238
|
}
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGF0Y2gtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7O0dBSUc7QUFDSCw2QkFBNkI7QUFDN0IsaURBQWlEO0FBQ2pELCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYy9CLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBdUIsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNwRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7YUFDdkQsQ0FBQztTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENB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QU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHNDQUFzQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEFwcGx5IGEgSlNPTiBwYXRjaCBzZXQgaW50byB0aGUgZ2l2ZW4gdGFyZ2V0IGZpbGVcbiAqXG4gKiBUaGUgc291cmNlcyBjYW4gYmUgdGFrZW4gZnJvbSBvbmUgb3IgbW9yZSBkaXJlY3Rvcmllcy5cbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZhc3RKc29uUGF0Y2ggZnJvbSAnZmFzdC1qc29uLXBhdGNoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHNvcnRKc29uID0gcmVxdWlyZSgnc29ydC1qc29uJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBQYXRjaFNldCA9IFJlY29yZDxzdHJpbmcsIFBhdGNoU2V0RWxlbWVudD47XG5cbmV4cG9ydCB0eXBlIFBhdGNoU2V0RWxlbWVudCA9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnZnJhZ21lbnQnOyByZWFkb25seSBkYXRhOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3BhdGNoJzsgcmVhZG9ubHkgZGF0YTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdzZXQnOyByZWFkb25seSBzb3VyY2VzOiBQYXRjaFNldCB9XG4gIDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgcmVsYXRpdmVUbyA9IHByb2Nlc3MuY3dkKCkpOiBQcm9taXNlPFBhdGNoU2V0PiB7XG4gIGNvbnN0IHJldDogUGF0Y2hTZXQgPSB7fTtcblxuICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoc291cmNlRGlyZWN0b3J5KTtcbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgZnVsbEZpbGUgPSBwYXRoLmpvaW4oc291cmNlRGlyZWN0b3J5LCBmaWxlKTtcbiAgICBjb25zdCByZWxOYW1lID0gcGF0aC5yZWxhdGl2ZShyZWxhdGl2ZVRvLCBmdWxsRmlsZSk7XG5cbiAgICBpZiAoKGF3YWl0IGZzLnN0YXQoZnVsbEZpbGUpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXRbcmVsTmFtZV0gPSB7XG4gICAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgICBzb3VyY2VzOiBhd2FpdCBsb2FkUGF0Y2hTZXQoZnVsbEZpbGUsIHNvdXJjZURpcmVjdG9yeSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZmlsZS5lbmRzV2l0aCgnLmpzb24nKSkge1xuICAgICAgcmV0W3JlbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiBmaWxlLmluZGV4T2YoJ3BhdGNoJykgPT09IC0xID8gJ2ZyYWdtZW50JyA6ICdwYXRjaCcsXG4gICAgICAgIGRhdGE6IGF3YWl0IGZzLnJlYWRKc29uKGZ1bGxGaWxlKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlUGF0Y2hTZXQoc291cmNlczogUGF0Y2hTZXQsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHRhcmdldE9iamVjdDogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlcykuc29ydCgpKSB7XG4gICAgY29uc3QgdmFsdWUgPSBzb3VyY2VzW2tleV07XG5cbiAgICBzd2l0Y2ggKHZhbHVlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYWdtZW50JzpcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgdmFsdWUuZGF0YSwgW10pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcGF0Y2godGFyZ2V0T2JqZWN0LCB2YWx1ZS5kYXRhLCAobSkgPT4gbG9nKGAke2tleX06ICR7bX1gKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkID0gZXZhbHVhdGVQYXRjaFNldCh2YWx1ZS5zb3VyY2VzLCBvcHRpb25zKTtcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgZXZhbHVhdGVkLCBbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRPYmplY3Q7XG5cbiAgZnVuY3Rpb24gbG9nKHg6IHN0cmluZykge1xuICAgIGlmICghb3B0aW9ucy5xdWlldCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKHgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExvYWQgYSBwYXRjaCBzZXQgZnJvbSBhIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9uczogUGF0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3QgcGF0Y2hlcyA9IGF3YWl0IGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3RvcnkpO1xuICByZXR1cm4gZXZhbHVhdGVQYXRjaFNldChwYXRjaGVzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBMb2FkIGEgcGF0Y2ggc2V0IGFuZCB3cml0ZSBpdCBvdXQgdG8gYSBmaWxlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseUFuZFdyaXRlKHRhcmdldEZpbGU6IHN0cmluZywgc291cmNlRGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3RvcnksIG9wdGlvbnMpO1xuICBhd2FpdCB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlLCBtb2RlbCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICBhd2FpdCBmcy5ta2RpcnAocGF0aC5kaXJuYW1lKHRhcmdldEZpbGUpKTtcbiAgYXdhaXQgZnMud3JpdGVKc29uKHRhcmdldEZpbGUsIHNvcnRKc29uKGRhdGEpLCB7IHNwYWNlczogMiB9KTtcbn1cblxuZnVuY3Rpb24gcHJpbnRTb3J0ZWQoZGF0YTogYW55KSB7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHNvcnRKc29uKGRhdGEpLCB1bmRlZmluZWQsIDIpKTtcbn1cblxuZnVuY3Rpb24gbWVyZ2UodGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuICBpZiAoIXRhcmdldCB8fCB0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIG9iamVjdCwgZm91bmQ6ICcke3RhcmdldH0nIGF0ICckLiR7anNvblBhdGguam9pbignLicpfSdgKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnJCcpKSB7IGNvbnRpbnVlOyB9XG5cbiAgICBpZiAoa2V5IGluIHRhcmdldCkge1xuICAgICAgY29uc3Qgc3BlY1ZhbCA9IHRhcmdldFtrZXldO1xuICAgICAgY29uc3QgZnJhZ1ZhbCA9IGZyYWdtZW50W2tleV07XG4gICAgICBpZiAodHlwZW9mIHNwZWNWYWwgIT09IHR5cGVvZiBmcmFnVmFsKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gaW5jb21wYXRpYmxlICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgaWYgKHNwZWNWYWwgPT0gZnJhZ1ZhbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25mbGljdCB3aGVuIGF0dGVtcHRpbmcgdG8gbWVyZ2UgJHtKU09OLnN0cmluZ2lmeShmcmFnVmFsKX0gaW50byAke0pTT04uc3RyaW5naWZ5KHNwZWNWYWwpfSBhdCBwYXRoICR7anNvblBhdGguam9pbignLycpfS8ke2tleX1gKTtcbiAgICAgIH1cbiAgICAgIG1lcmdlKHNwZWNWYWwsIGZyYWdWYWwsIFsuLi5qc29uUGF0aCwga2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtrZXldID0gZnJhZ21lbnRba2V5XTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2godGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGxvZzogKHg6IHN0cmluZykgPT4gdm9pZCkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuXG4gIGNvbnN0IHBhdGNoZXMgPSBmaW5kUGF0Y2hlcyh0YXJnZXQsIGZyYWdtZW50KTtcbiAgZm9yIChjb25zdCBwIG9mIHBhdGNoZXMpIHtcbiAgICBsb2cocC5kZXNjcmlwdGlvbiA/PyAnJyk7XG5cbiAgICB0cnkge1xuICAgICAgZmFzdEpzb25QYXRjaC5hcHBseVBhdGNoKHRhcmdldCwgcC5vcGVyYXRpb25zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yIGFwcGx5aW5nIHBhdGNoOiAke0pTT04uc3RyaW5naWZ5KHAsIHVuZGVmaW5lZCwgMil9OiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIFBhdGNoIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM6IE9wZXJhdGlvbltdO1xufVxuXG50eXBlIE9wZXJhdGlvbiA9XG4gIHwgeyByZWFkb25seSBvcDogJ2FkZCc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgdmFsdWU6IGFueSB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlbW92ZSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlcGxhY2UnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdjb3B5JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdtb3ZlJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICd0ZXN0JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSB2YWx1ZTogYW55IH1cbiAgO1xuXG4vKipcbiAqIEZpbmQgdGhlIHNldHMgb2YgcGF0Y2hlcyB0byBhcHBseSBpbiBhIGRvY3VtZW50XG4gKlxuICogQWRqdXN0cyBwYXRocyB0byBiZSByb290LXJlbGF0aXZlLCB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIHBhdGhzXG4gKiBwb2ludCBvdXRzaWRlIHRoZSBwYXRjaCBzY29wZS5cbiAqL1xuZnVuY3Rpb24gZmluZFBhdGNoZXMoZGF0YTogYW55LCBwYXRjaFNvdXJjZTogYW55KTogUGF0Y2hbXSB7XG4gIGNvbnN0IHJldDogUGF0Y2hbXSA9IFtdO1xuICByZWN1cnNlKGRhdGEsIHBhdGNoU291cmNlLCBbXSk7XG4gIHJldHVybiByZXQ7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShhY3R1YWxEYXRhOiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICAgIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICBpZiAoJ3BhdGNoJyBpbiBmcmFnbWVudCkge1xuICAgICAgY29uc3QgcCA9IGZyYWdtZW50LnBhdGNoO1xuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBwLmRlc2NyaXB0aW9uLFxuICAgICAgICBvcGVyYXRpb25zOiBwLm9wZXJhdGlvbnMubWFwKChvcDogYW55KSA9PiBhZGp1c3RQYXRocyhvcCwganNvblBhdGgpKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoJ3BhdGNoOmVhY2gnIGluIGZyYWdtZW50KSB7XG4gICAgICBjb25zdCBwID0gZnJhZ21lbnRbJ3BhdGNoOmVhY2gnXTtcbiAgICAgIGlmICh0eXBlb2YgYWN0dWFsRGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCAke3AuZGVzY3JpcHRpb259OiBleHBlY3Rpbmcgb2JqZWN0IGluIGRhdGEsIGZvdW5kICcke2FjdHVhbERhdGF9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3R1YWxEYXRhKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7a2V5fTogJHtwLmRlc2NyaXB0aW9ufWAsXG4gICAgICAgICAgb3BlcmF0aW9uczogcC5vcGVyYXRpb25zLm1hcCgob3A6IGFueSkgPT4gYWRqdXN0UGF0aHMob3AsIFsuLi5qc29uUGF0aCwga2V5XSkpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZnJhZ21lbnQpKSB7XG4gICAgICAgIGlmICghKGtleSBpbiBhY3R1YWxEYXRhKSkge1xuICAgICAgICAgIGFjdHVhbERhdGFba2V5XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHJlY3Vyc2UoYWN0dWFsRGF0YVtrZXldLCBmcmFnbWVudFtrZXldLCBbLi4uanNvblBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGhzKG9wOiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSk6IE9wZXJhdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wLFxuICAgICAgLi4ub3AucGF0aCA/IHsgcGF0aDogYWRqdXN0UGF0aChvcC5wYXRoLCBqc29uUGF0aCkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wLmZyb20gPyB7IGZyb206IGFkanVzdFBhdGgob3AuZnJvbSwganNvblBhdGgpIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGp1c3QgcGF0aFxuICAgKlxuICAgKiAnJC8nIG1lYW5zIGZyb20gdGhlIHJvb3QsIG90aGVyd2lzZSBpbnRlcnByZXQgYXMgcmVsYXRpdmUgcGF0aC5cbiAgICovXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGgob3JpZ2luYWxQYXRoOiBzdHJpbmcsIGpzb25QYXRoOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGFkanVzdFBhdGg6IGV4cGVjdGVkIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkob3JpZ2luYWxQYXRoKX1gKTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsUGF0aC5zdGFydHNXaXRoKCckLycpKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWxQYXRoLnN1YnN0cigxKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb25QYXRoLm1hcChwID0+IGAvJHtwfWApLmpvaW4oJycpICsgb3JpZ2luYWxQYXRoO1xuICB9XG59XG5cblxuLyoqXG4gKiBSdW4gdGhpcyBmaWxlIGFzIGEgQ0xJIHRvb2wsIHRvIGFwcGx5IGEgcGF0Y2ggc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZVxuICovXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IHF1aWV0ID0gZWF0QXJnKCctcScsIGFyZ3MpIHx8IGVhdEFyZygnLS1xdWlldCcsIGFyZ3MpO1xuXG4gIGlmIChhcmdzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzYWdlOiBwYXRjaC1zZXQgPERJUj4gWzxGSUxFPl0nKTtcbiAgfVxuXG4gIGNvbnN0IFtkaXIsIHRhcmdldEZpbGVdID0gYXJncztcblxuICBjb25zdCBtb2RlbCA9IGF3YWl0IGFwcGx5UGF0Y2hTZXQoZGlyLCB7IHF1aWV0IH0pO1xuICBpZiAodGFyZ2V0RmlsZSkge1xuICAgIGF3YWl0IHdyaXRlU29ydGVkKHRhcmdldEZpbGUsIG1vZGVsKTtcbiAgfSBlbHNlIHtcbiAgICBwcmludFNvcnRlZChtb2RlbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZWF0QXJnKGFyZzogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJnc1tpXSA9PT0gYXJnKSB7XG4gICAgICBhcmdzLnNwbGljZShpLCAxKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBtYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gIH0pO1xufVxuIl19
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGF0Y2gtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7O0dBSUc7QUFDSCw2QkFBNkI7QUFDN0IsaURBQWlEO0FBQ2pELCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYy9CLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBdUIsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNwRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7YUFDdkQsQ0FBQztTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENB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QU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHNDQUFzQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEFwcGx5IGEgSlNPTiBwYXRjaCBzZXQgaW50byB0aGUgZ2l2ZW4gdGFyZ2V0IGZpbGVcbiAqXG4gKiBUaGUgc291cmNlcyBjYW4gYmUgdGFrZW4gZnJvbSBvbmUgb3IgbW9yZSBkaXJlY3Rvcmllcy5cbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZhc3RKc29uUGF0Y2ggZnJvbSAnZmFzdC1qc29uLXBhdGNoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHNvcnRKc29uID0gcmVxdWlyZSgnc29ydC1qc29uJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBQYXRjaFNldCA9IFJlY29yZDxzdHJpbmcsIFBhdGNoU2V0RWxlbWVudD47XG5cbmV4cG9ydCB0eXBlIFBhdGNoU2V0RWxlbWVudCA9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnZnJhZ21lbnQnOyByZWFkb25seSBkYXRhOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3BhdGNoJzsgcmVhZG9ubHkgZGF0YTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdzZXQnOyByZWFkb25seSBzb3VyY2VzOiBQYXRjaFNldCB9XG4gIDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgcmVsYXRpdmVUbyA9IHByb2Nlc3MuY3dkKCkpOiBQcm9taXNlPFBhdGNoU2V0PiB7XG4gIGNvbnN0IHJldDogUGF0Y2hTZXQgPSB7fTtcblxuICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoc291cmNlRGlyZWN0b3J5KTtcbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgZnVsbEZpbGUgPSBwYXRoLmpvaW4oc291cmNlRGlyZWN0b3J5LCBmaWxlKTtcbiAgICBjb25zdCByZWxOYW1lID0gcGF0aC5yZWxhdGl2ZShyZWxhdGl2ZVRvLCBmdWxsRmlsZSk7XG5cbiAgICBpZiAoKGF3YWl0IGZzLnN0YXQoZnVsbEZpbGUpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXRbcmVsTmFtZV0gPSB7XG4gICAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgICBzb3VyY2VzOiBhd2FpdCBsb2FkUGF0Y2hTZXQoZnVsbEZpbGUsIHNvdXJjZURpcmVjdG9yeSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZmlsZS5lbmRzV2l0aCgnLmpzb24nKSkge1xuICAgICAgcmV0W3JlbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiBmaWxlLmluZGV4T2YoJ3BhdGNoJykgPT09IC0xID8gJ2ZyYWdtZW50JyA6ICdwYXRjaCcsXG4gICAgICAgIGRhdGE6IGF3YWl0IGZzLnJlYWRKc29uKGZ1bGxGaWxlKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlUGF0Y2hTZXQoc291cmNlczogUGF0Y2hTZXQsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHRhcmdldE9iamVjdDogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlcykuc29ydCgpKSB7XG4gICAgY29uc3QgdmFsdWUgPSBzb3VyY2VzW2tleV07XG5cbiAgICBzd2l0Y2ggKHZhbHVlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYWdtZW50JzpcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgdmFsdWUuZGF0YSwgW10pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcGF0Y2godGFyZ2V0T2JqZWN0LCB2YWx1ZS5kYXRhLCAobSkgPT4gbG9nKGAke2tleX06ICR7bX1gKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkID0gZXZhbHVhdGVQYXRjaFNldCh2YWx1ZS5zb3VyY2VzLCBvcHRpb25zKTtcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgZXZhbHVhdGVkLCBbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRPYmplY3Q7XG5cbiAgZnVuY3Rpb24gbG9nKHg6IHN0cmluZykge1xuICAgIGlmICghb3B0aW9ucy5xdWlldCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKHgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExvYWQgYSBwYXRjaCBzZXQgZnJvbSBhIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9uczogUGF0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3QgcGF0Y2hlcyA9IGF3YWl0IGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3RvcnkpO1xuICByZXR1cm4gZXZhbHVhdGVQYXRjaFNldChwYXRjaGVzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBMb2FkIGEgcGF0Y2ggc2V0IGFuZCB3cml0ZSBpdCBvdXQgdG8gYSBmaWxlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseUFuZFdyaXRlKHRhcmdldEZpbGU6IHN0cmluZywgc291cmNlRGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3RvcnksIG9wdGlvbnMpO1xuICBhd2FpdCB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlLCBtb2RlbCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICBhd2FpdCBmcy5ta2RpcnAocGF0aC5kaXJuYW1lKHRhcmdldEZpbGUpKTtcbiAgYXdhaXQgZnMud3JpdGVKc29uKHRhcmdldEZpbGUsIHNvcnRKc29uKGRhdGEpLCB7IHNwYWNlczogMiB9KTtcbn1cblxuZnVuY3Rpb24gcHJpbnRTb3J0ZWQoZGF0YTogYW55KSB7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHNvcnRKc29uKGRhdGEpLCB1bmRlZmluZWQsIDIpKTtcbn1cblxuZnVuY3Rpb24gbWVyZ2UodGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuICBpZiAoIXRhcmdldCB8fCB0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIG9iamVjdCwgZm91bmQ6ICcke3RhcmdldH0nIGF0ICckLiR7anNvblBhdGguam9pbignLicpfSdgKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnJCcpKSB7IGNvbnRpbnVlOyB9XG5cbiAgICBpZiAoa2V5IGluIHRhcmdldCkge1xuICAgICAgY29uc3Qgc3BlY1ZhbCA9IHRhcmdldFtrZXldO1xuICAgICAgY29uc3QgZnJhZ1ZhbCA9IGZyYWdtZW50W2tleV07XG4gICAgICBpZiAodHlwZW9mIHNwZWNWYWwgIT09IHR5cGVvZiBmcmFnVmFsKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gaW5jb21wYXRpYmxlICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgaWYgKHNwZWNWYWwgPT0gZnJhZ1ZhbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25mbGljdCB3aGVuIGF0dGVtcHRpbmcgdG8gbWVyZ2UgJHtKU09OLnN0cmluZ2lmeShmcmFnVmFsKX0gaW50byAke0pTT04uc3RyaW5naWZ5KHNwZWNWYWwpfSBhdCBwYXRoICR7anNvblBhdGguam9pbignLycpfS8ke2tleX1gKTtcbiAgICAgIH1cbiAgICAgIG1lcmdlKHNwZWNWYWwsIGZyYWdWYWwsIFsuLi5qc29uUGF0aCwga2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtrZXldID0gZnJhZ21lbnRba2V5XTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2godGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGxvZzogKHg6IHN0cmluZykgPT4gdm9pZCkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuXG4gIGNvbnN0IHBhdGNoZXMgPSBmaW5kUGF0Y2hlcyh0YXJnZXQsIGZyYWdtZW50KTtcbiAgZm9yIChjb25zdCBwIG9mIHBhdGNoZXMpIHtcbiAgICBsb2cocC5kZXNjcmlwdGlvbiA/PyAnJyk7XG5cbiAgICB0cnkge1xuICAgICAgZmFzdEpzb25QYXRjaC5hcHBseVBhdGNoKHRhcmdldCwgcC5vcGVyYXRpb25zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yIGFwcGx5aW5nIHBhdGNoOiAke0pTT04uc3RyaW5naWZ5KHAsIHVuZGVmaW5lZCwgMil9OiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIFBhdGNoIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM6IE9wZXJhdGlvbltdO1xufVxuXG50eXBlIE9wZXJhdGlvbiA9XG4gIHwgeyByZWFkb25seSBvcDogJ2FkZCc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgdmFsdWU6IGFueSB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlbW92ZSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlcGxhY2UnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdjb3B5JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdtb3ZlJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICd0ZXN0JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSB2YWx1ZTogYW55IH1cbiAgO1xuXG4vKipcbiAqIEZpbmQgdGhlIHNldHMgb2YgcGF0Y2hlcyB0byBhcHBseSBpbiBhIGRvY3VtZW50XG4gKlxuICogQWRqdXN0cyBwYXRocyB0byBiZSByb290LXJlbGF0aXZlLCB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIHBhdGhzXG4gKiBwb2ludCBvdXRzaWRlIHRoZSBwYXRjaCBzY29wZS5cbiAqL1xuZnVuY3Rpb24gZmluZFBhdGNoZXMoZGF0YTogYW55LCBwYXRjaFNvdXJjZTogYW55KTogUGF0Y2hbXSB7XG4gIGNvbnN0IHJldDogUGF0Y2hbXSA9IFtdO1xuICByZWN1cnNlKGRhdGEsIHBhdGNoU291cmNlLCBbXSk7XG4gIHJldHVybiByZXQ7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShhY3R1YWxEYXRhOiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICAgIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICBpZiAoJ3BhdGNoJyBpbiBmcmFnbWVudCkge1xuICAgICAgY29uc3QgcCA9IGZyYWdtZW50LnBhdGNoO1xuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBwLmRlc2NyaXB0aW9uLFxuICAgICAgICBvcGVyYXRpb25zOiBwLm9wZXJhdGlvbnMubWFwKChvcDogYW55KSA9PiBhZGp1c3RQYXRocyhvcCwganNvblBhdGgpKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoJ3BhdGNoOmVhY2gnIGluIGZyYWdtZW50KSB7XG4gICAgICBjb25zdCBwID0gZnJhZ21lbnRbJ3BhdGNoOmVhY2gnXTtcbiAgICAgIGlmICh0eXBlb2YgYWN0dWFsRGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCAke3AuZGVzY3JpcHRpb259OiBleHBlY3Rpbmcgb2JqZWN0IGluIGRhdGEsIGZvdW5kICcke2FjdHVhbERhdGF9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3R1YWxEYXRhKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7a2V5fTogJHtwLmRlc2NyaXB0aW9ufWAsXG4gICAgICAgICAgb3BlcmF0aW9uczogcC5vcGVyYXRpb25zLm1hcCgob3A6IGFueSkgPT4gYWRqdXN0UGF0aHMob3AsIFsuLi5qc29uUGF0aCwga2V5XSkpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZnJhZ21lbnQpKSB7XG4gICAgICAgIGlmICghKGtleSBpbiBhY3R1YWxEYXRhKSkge1xuICAgICAgICAgIGFjdHVhbERhdGFba2V5XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHJlY3Vyc2UoYWN0dWFsRGF0YVtrZXldLCBmcmFnbWVudFtrZXldLCBbLi4uanNvblBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGhzKG9wOiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSk6IE9wZXJhdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wLFxuICAgICAgLi4ub3AucGF0aCA/IHsgcGF0aDogYWRqdXN0UGF0aChvcC5wYXRoLCBqc29uUGF0aCkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wLmZyb20gPyB7IGZyb206IGFkanVzdFBhdGgob3AuZnJvbSwganNvblBhdGgpIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGp1c3QgcGF0aFxuICAgKlxuICAgKiAnJC8nIG1lYW5zIGZyb20gdGhlIHJvb3QsIG90aGVyd2lzZSBpbnRlcnByZXQgYXMgcmVsYXRpdmUgcGF0aC5cbiAgICovXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGgob3JpZ2luYWxQYXRoOiBzdHJpbmcsIGpzb25QYXRoOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGFkanVzdFBhdGg6IGV4cGVjdGVkIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkob3JpZ2luYWxQYXRoKX1gKTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsUGF0aC5zdGFydHNXaXRoKCckLycpKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWxQYXRoLnNsaWNlKDEpO1xuICAgIH1cbiAgICByZXR1cm4ganNvblBhdGgubWFwKHAgPT4gYC8ke3B9YCkuam9pbignJykgKyBvcmlnaW5hbFBhdGg7XG4gIH1cbn1cblxuXG4vKipcbiAqIFJ1biB0aGlzIGZpbGUgYXMgYSBDTEkgdG9vbCwgdG8gYXBwbHkgYSBwYXRjaCBzZXQgZnJvbSB0aGUgY29tbWFuZCBsaW5lXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgY29uc3QgcXVpZXQgPSBlYXRBcmcoJy1xJywgYXJncykgfHwgZWF0QXJnKCctLXF1aWV0JywgYXJncyk7XG5cbiAgaWYgKGFyZ3MubGVuZ3RoIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHBhdGNoLXNldCA8RElSPiBbPEZJTEU+XScpO1xuICB9XG5cbiAgY29uc3QgW2RpciwgdGFyZ2V0RmlsZV0gPSBhcmdzO1xuXG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgYXBwbHlQYXRjaFNldChkaXIsIHsgcXVpZXQgfSk7XG4gIGlmICh0YXJnZXRGaWxlKSB7XG4gICAgYXdhaXQgd3JpdGVTb3J0ZWQodGFyZ2V0RmlsZSwgbW9kZWwpO1xuICB9IGVsc2Uge1xuICAgIHByaW50U29ydGVkKG1vZGVsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlYXRBcmcoYXJnOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcmdzW2ldID09PSBhcmcpIHtcbiAgICAgIGFyZ3Muc3BsaWNlKGksIDEpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIG1haW4ocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKS5jYXRjaChlID0+IHtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -169,7 +169,7 @@ async function main() {
|
|
|
169
169
|
}
|
|
170
170
|
function isSuffix(key, suffix) {
|
|
171
171
|
const index = key.indexOf(suffix);
|
|
172
|
-
return index === -1 ? undefined : key.
|
|
172
|
+
return index === -1 ? undefined : key.slice(0, index);
|
|
173
173
|
}
|
|
174
174
|
function suffixKeys(suffix, xs) {
|
|
175
175
|
const ret = {};
|
|
@@ -234,4 +234,4 @@ main().catch(e => {
|
|
|
234
234
|
process.stderr.write('\n');
|
|
235
235
|
process.exit(1);
|
|
236
236
|
});
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FB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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckMsS0FBSyxNQUFNLE1BQU0sSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNoRixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuY29uc3QganNvbkRpZmYgPSByZXF1aXJlKCdqc29uLWRpZmYnKS5kaWZmO1xuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5mdW5jdGlvbiBsaW5lKGZtdDogc3RyaW5nID0gJycsIC4uLnBhcmFtOiBhbnlbXSkge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSh1dGlsLmZvcm1hdChmbXQsIC4uLnBhcmFtKSk7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgdGl0bGUgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IG9sZFNwZWNGaWxlID0gcHJvY2Vzcy5hcmd2WzNdO1xuICBjb25zdCBuZXdTcGVjRmlsZSA9IHByb2Nlc3MuYXJndls0XTtcblxuICBjb25zdCBuZXdTcGVjID0gYXdhaXQgZnMucmVhZEpTT04obmV3U3BlY0ZpbGUpO1xuICBjb25zdCBvbGRTcGVjID0gYXdhaXQgZnMucmVhZEpTT04ob2xkU3BlY0ZpbGUpO1xuXG4gIGNvbnN0IG91dCA9IGpzb25EaWZmKG9sZFNwZWMsIG5ld1NwZWMpO1xuXG4gIC8vIEhlcmUncyB0aGUgbWFnaWMgb3V0cHV0IGZvcm1hdCBvZiB0aGlzIHRoaW5nXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19hZGRlZCwgaXQgZ290IGFkZGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG5ldyB2YWx1ZS5cbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2RlbGV0ZWQsIGl0IGdvdCBkZWxldGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG9sZCB2YWx1ZS5cbiAgLy8gSWYgYSB2YWx1ZSBnb3QgY2hhbmdlZCwgdGhlIHZhbHVlIG9iamVjdCB3aWxsIGxvb2sgbGlrZTpcbiAgLy8gICB7IF9fb2xkOiAuLi4sIF9fbmV3OiAuLi4gfVxuXG4gIGlmICghb3V0KSB7XG4gICAgcmV0dXJuOyAvLyBubyBkaWZmXG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGVBZGRpdGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgcmVzb3VyY2VUeXBlRGVsZXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGF0dHJpYnV0ZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eVR5cGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUmVzb3VyY2VUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShrZXksIG91dC5SZXNvdXJjZVR5cGVzW2tleV0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlByb3BlcnR5VHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUoa2V5LCBvdXQuUHJvcGVydHlUeXBlc1trZXldKTtcbiAgfVxuXG4gIGxpbmUoYCMgJHt0aXRsZX0gdiR7bmV3U3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9ufWApO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgTmV3IFJlc291cmNlIFR5cGVzJyk7XG4gIGxpbmUoKTtcbiAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gIGxpbmUoKTtcblxuICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLnNpemUgPiAwKSB7XG4gICAgbGluZSgnIyMgUmVtb3ZlZCBSZXNvdXJjZSBUeXBlcycpO1xuICAgIGxpbmUoKTtcbiAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgICBsaW5lKCk7XG4gIH1cblxuICBsaW5lKCcjIyBBdHRyaWJ1dGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIGF0dHJpYnV0ZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5Q2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBUeXBlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcblxuICBmdW5jdGlvbiBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShyZXNvdXJjZVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZUFkZGl0aW9ucy5hZGQoYWRkZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmFkZChkZWxldGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdXNoRG93bkNvbXBsZXRlQ2hhbmdlcyh1cGRhdGUpO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAnUHJvcGVydGllcyc6XG4gICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzKSkge1xuICAgICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgcHJvcGVydHlDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXR0cmlidXRlcyc6XG4gICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5BdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgYXR0ciwgdXBkYXRlLkF0dHJpYnV0ZXNbYXR0cl0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0RvY3VtZW50YXRpb24nOlxuICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGtleSwgdXBkYXRlLkRvY3VtZW50YXRpb24pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB1cGRhdGUgdG8gJHtyZXNvdXJjZVR5cGV9OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGFkZGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlQWRkaXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGVsZXRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHtkZWxldGVkfSAoX19yZW1vdmVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHVwZGF0ZSkubGVuZ3RoICE9PSAxICYmIE9iamVjdC5rZXlzKHVwZGF0ZSlbMF0gPT09ICdQcm9wZXJ0aWVzJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHVwZGF0ZSB0byBhIHJlc291cmNlIHR5cGUuIEV4cGVjdGluZyBvbmx5IFwiUHJvcGVydGllc1wiIHRvIGNoYW5nZTogJyArIHByb3BlcnR5VHlwZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzID8/IHt9KSkge1xuICAgICAgZGVzY3JpYmVDaGFuZ2VzKHByb3BlcnR5VHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVzaCBkb3duIG1hc3MgY2hhbmdlcyB0byBhdHRyaWJ1dGVzIG9yIHByb3BlcnRpZXMgdG8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcy5cbiAgICpcbiAgICogQW4gZXhhbXBsZSB3aWxsIGV4cGxhaW4gdGhpcyBiZXN0LiBKU09OLWRpZmYgd2lsbCBtYWtlIHRoZSBzbWFsbGVzdCBkaWZmLCBzbyBpZiB0aGVyZVxuICAgKiBhcmUgbmV3IHByb3BlcnRpZXMgaXQgd2lsbCByZXBvcnQ6XG4gICAqXG4gICAqIFwiUHJvcGVydGllc19fYWRkZWRcIjoge1xuICAgKiAgICBcIlByb3BlcnR5MVwiOiB7IC4uLiB9LFxuICAgKiAgICBcIlByb3BlcnR5MlwiOiB7IC4uLiB9LFxuICAgKiB9XG4gICAqXG4gICAqIEJ1dCB3ZSB3YW50IHRvIHNlZSB0aGlzIGFzOlxuICAgKlxuICAgKiBcIlByb3BlcnRpZXNcIjoge1xuICAgKiAgICBcIlByb3BlcnR5MV9fYWRkZWRcIjogeyAuLi4gfSxcbiAgICogICAgXCJQcm9wZXJ0eTJfX2FkZGVkXCI6IHsgLi4uIH0sXG4gICAqIH1cbiAgICpcbiAgICogU2FtZSAoYnV0IGluIHJldmVyc2UpIGZvciBkZWxldGlvbnMuXG4gICAqL1xuICBmdW5jdGlvbiBwdXNoRG93bkNvbXBsZXRlQ2hhbmdlcyh1cGRhdGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+KSB7XG4gICAgZm9yIChjb25zdCBbY2F0ZWdvcnksIGVudHJpZXNdIG9mIE9iamVjdC5lbnRyaWVzKHVwZGF0ZSkpIHtcbiAgICAgIGNvbnN0IGFkZGVkS2V5ID0gaXNBZGRlZChjYXRlZ29yeSk7XG4gICAgICBpZiAoYWRkZWRLZXkpIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtjYXRlZ29yeV07XG4gICAgICAgIHVwZGF0ZVthZGRlZEtleV0gPSBzdWZmaXhLZXlzKCdfX2FkZGVkJywgZW50cmllcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlbGV0ZWRLZXkgPSBpc0RlbGV0ZWQoY2F0ZWdvcnkpO1xuICAgICAgaWYgKGRlbGV0ZWRLZXkpIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtjYXRlZ29yeV07XG4gICAgICAgIHVwZGF0ZVtkZWxldGVkS2V5XSA9IHN1ZmZpeEtleXMoJ19fZGVsZXRlZCcsIGVudHJpZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzRGVsZXRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2RlbGV0ZWQnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzQWRkZWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNTdWZmaXgoa2V5LCAnX19hZGRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNTdWZmaXgoa2V5OiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSBrZXkuaW5kZXhPZihzdWZmaXgpO1xuICAgIHJldHVybiBpbmRleCA9PT0gLTEgPyB1bmRlZmluZWQgOiBrZXkuc3Vic3RyKDAsIGluZGV4KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN1ZmZpeEtleXMoc3VmZml4OiBzdHJpbmcsIHhzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgICByZXRba2V5ICsgc3VmZml4XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKGAgICogQWRkZWQgJHtlbnRyeVsxXX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgYXdrd2FyZCBoYXBwZW5lZDogJHtlbnRyeVsxXX0gd2FzIGRlbGV0ZWQgZnJvbSAke25hbWVzcGFjZX0gJHtwcmVmaXh9IWApO1xuICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FB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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckMsS0FBSyxNQUFNLE1BQU0sSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNoRixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuY29uc3QganNvbkRpZmYgPSByZXF1aXJlKCdqc29uLWRpZmYnKS5kaWZmO1xuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5mdW5jdGlvbiBsaW5lKGZtdDogc3RyaW5nID0gJycsIC4uLnBhcmFtOiBhbnlbXSkge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSh1dGlsLmZvcm1hdChmbXQsIC4uLnBhcmFtKSk7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgdGl0bGUgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IG9sZFNwZWNGaWxlID0gcHJvY2Vzcy5hcmd2WzNdO1xuICBjb25zdCBuZXdTcGVjRmlsZSA9IHByb2Nlc3MuYXJndls0XTtcblxuICBjb25zdCBuZXdTcGVjID0gYXdhaXQgZnMucmVhZEpTT04obmV3U3BlY0ZpbGUpO1xuICBjb25zdCBvbGRTcGVjID0gYXdhaXQgZnMucmVhZEpTT04ob2xkU3BlY0ZpbGUpO1xuXG4gIGNvbnN0IG91dCA9IGpzb25EaWZmKG9sZFNwZWMsIG5ld1NwZWMpO1xuXG4gIC8vIEhlcmUncyB0aGUgbWFnaWMgb3V0cHV0IGZvcm1hdCBvZiB0aGlzIHRoaW5nXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19hZGRlZCwgaXQgZ290IGFkZGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG5ldyB2YWx1ZS5cbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2RlbGV0ZWQsIGl0IGdvdCBkZWxldGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG9sZCB2YWx1ZS5cbiAgLy8gSWYgYSB2YWx1ZSBnb3QgY2hhbmdlZCwgdGhlIHZhbHVlIG9iamVjdCB3aWxsIGxvb2sgbGlrZTpcbiAgLy8gICB7IF9fb2xkOiAuLi4sIF9fbmV3OiAuLi4gfVxuXG4gIGlmICghb3V0KSB7XG4gICAgcmV0dXJuOyAvLyBubyBkaWZmXG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGVBZGRpdGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgcmVzb3VyY2VUeXBlRGVsZXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGF0dHJpYnV0ZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eVR5cGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUmVzb3VyY2VUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShrZXksIG91dC5SZXNvdXJjZVR5cGVzW2tleV0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlByb3BlcnR5VHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUoa2V5LCBvdXQuUHJvcGVydHlUeXBlc1trZXldKTtcbiAgfVxuXG4gIGxpbmUoYCMgJHt0aXRsZX0gdiR7bmV3U3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9ufWApO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgTmV3IFJlc291cmNlIFR5cGVzJyk7XG4gIGxpbmUoKTtcbiAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gIGxpbmUoKTtcblxuICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLnNpemUgPiAwKSB7XG4gICAgbGluZSgnIyMgUmVtb3ZlZCBSZXNvdXJjZSBUeXBlcycpO1xuICAgIGxpbmUoKTtcbiAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgICBsaW5lKCk7XG4gIH1cblxuICBsaW5lKCcjIyBBdHRyaWJ1dGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIGF0dHJpYnV0ZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5Q2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBUeXBlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcblxuICBmdW5jdGlvbiBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShyZXNvdXJjZVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZUFkZGl0aW9ucy5hZGQoYWRkZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmFkZChkZWxldGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdXNoRG93bkNvbXBsZXRlQ2hhbmdlcyh1cGRhdGUpO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAnUHJvcGVydGllcyc6XG4gICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzKSkge1xuICAgICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgcHJvcGVydHlDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXR0cmlidXRlcyc6XG4gICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5BdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgYXR0ciwgdXBkYXRlLkF0dHJpYnV0ZXNbYXR0cl0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0RvY3VtZW50YXRpb24nOlxuICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGtleSwgdXBkYXRlLkRvY3VtZW50YXRpb24pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB1cGRhdGUgdG8gJHtyZXNvdXJjZVR5cGV9OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGFkZGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlQWRkaXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGVsZXRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHtkZWxldGVkfSAoX19yZW1vdmVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHVwZGF0ZSkubGVuZ3RoICE9PSAxICYmIE9iamVjdC5rZXlzKHVwZGF0ZSlbMF0gPT09ICdQcm9wZXJ0aWVzJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHVwZGF0ZSB0byBhIHJlc291cmNlIHR5cGUuIEV4cGVjdGluZyBvbmx5IFwiUHJvcGVydGllc1wiIHRvIGNoYW5nZTogJyArIHByb3BlcnR5VHlwZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzID8/IHt9KSkge1xuICAgICAgZGVzY3JpYmVDaGFuZ2VzKHByb3BlcnR5VHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVzaCBkb3duIG1hc3MgY2hhbmdlcyB0byBhdHRyaWJ1dGVzIG9yIHByb3BlcnRpZXMgdG8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcy5cbiAgICpcbiAgICogQW4gZXhhbXBsZSB3aWxsIGV4cGxhaW4gdGhpcyBiZXN0LiBKU09OLWRpZmYgd2lsbCBtYWtlIHRoZSBzbWFsbGVzdCBkaWZmLCBzbyBpZiB0aGVyZVxuICAgKiBhcmUgbmV3IHByb3BlcnRpZXMgaXQgd2lsbCByZXBvcnQ6XG4gICAqXG4gICAqIFwiUHJvcGVydGllc19fYWRkZWRcIjoge1xuICAgKiAgICBcIlByb3BlcnR5MVwiOiB7IC4uLiB9LFxuICAgKiAgICBcIlByb3BlcnR5MlwiOiB7IC4uLiB9LFxuICAgKiB9XG4gICAqXG4gICAqIEJ1dCB3ZSB3YW50IHRvIHNlZSB0aGlzIGFzOlxuICAgKlxuICAgKiBcIlByb3BlcnRpZXNcIjoge1xuICAgKiAgICBcIlByb3BlcnR5MV9fYWRkZWRcIjogeyAuLi4gfSxcbiAgICogICAgXCJQcm9wZXJ0eTJfX2FkZGVkXCI6IHsgLi4uIH0sXG4gICAqIH1cbiAgICpcbiAgICogU2FtZSAoYnV0IGluIHJldmVyc2UpIGZvciBkZWxldGlvbnMuXG4gICAqL1xuICBmdW5jdGlvbiBwdXNoRG93bkNvbXBsZXRlQ2hhbmdlcyh1cGRhdGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+KSB7XG4gICAgZm9yIChjb25zdCBbY2F0ZWdvcnksIGVudHJpZXNdIG9mIE9iamVjdC5lbnRyaWVzKHVwZGF0ZSkpIHtcbiAgICAgIGNvbnN0IGFkZGVkS2V5ID0gaXNBZGRlZChjYXRlZ29yeSk7XG4gICAgICBpZiAoYWRkZWRLZXkpIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtjYXRlZ29yeV07XG4gICAgICAgIHVwZGF0ZVthZGRlZEtleV0gPSBzdWZmaXhLZXlzKCdfX2FkZGVkJywgZW50cmllcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlbGV0ZWRLZXkgPSBpc0RlbGV0ZWQoY2F0ZWdvcnkpO1xuICAgICAgaWYgKGRlbGV0ZWRLZXkpIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtjYXRlZ29yeV07XG4gICAgICAgIHVwZGF0ZVtkZWxldGVkS2V5XSA9IHN1ZmZpeEtleXMoJ19fZGVsZXRlZCcsIGVudHJpZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzRGVsZXRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2RlbGV0ZWQnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzQWRkZWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNTdWZmaXgoa2V5LCAnX19hZGRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNTdWZmaXgoa2V5OiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSBrZXkuaW5kZXhPZihzdWZmaXgpO1xuICAgIHJldHVybiBpbmRleCA9PT0gLTEgPyB1bmRlZmluZWQgOiBrZXkuc2xpY2UoMCwgaW5kZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3VmZml4S2V5cyhzdWZmaXg6IHN0cmluZywgeHM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4cykpIHtcbiAgICAgIHJldFtrZXkgKyBzdWZmaXhdID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBmdW5jdGlvbiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nLCB1cGRhdGU6IGFueSkge1xuICAgIGNvbnN0IGNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHByZWZpeCk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7YWRkZWR9IChfX2FkZGVkX18pYCk7XG4gICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHByZWZpeCk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtkZWxldGVkfSAoX19kZWxldGVkX18pYCk7XG4gICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mKHVwZGF0ZSkgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgY2hhbmdlIGZvciAke25hbWVzcGFjZX0uJHtwcmVmaXh9ICR7SlNPTi5zdHJpbmdpZnkodXBkYXRlKX1gKTtcbiAgICB9XG5cbiAgICBpZiAoJ19fb2xkJyBpbiB1cGRhdGUgJiYgJ19fbmV3JyBpbiB1cGRhdGUpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGNoYW5nZXMucHVzaChgICAqIE9sZDogJHt1cGRhdGUuX19vbGR9YCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBOZXc6ICR7dXBkYXRlLl9fbmV3fWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodXBkYXRlKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke3ByZWZpeH0gKF9fY2hhbmdlZF9fKWApO1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB1cGRhdGUpIHtcbiAgICAgICAgaWYgKGVudHJ5Lmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBhcnJheSBkaWZmIGVudHJ5OiAke0pTT04uc3RyaW5naWZ5KGVudHJ5KX1gKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGVudHJ5WzBdKSB7XG4gICAgICAgICAgY2FzZSAnKyc6XG4gICAgICAgICAgICBjaGFuZ2VzLnB1c2goYCAgKiBBZGRlZCAke2VudHJ5WzFdfWApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvbWV0aGluZyBhd2t3YXJkIGhhcHBlbmVkOiAke2VudHJ5WzFdfSB3YXMgZGVsZXRlZCBmcm9tICR7bmFtZXNwYWNlfSAke3ByZWZpeH0hYCk7XG4gICAgICAgICAgY2FzZSAnICc6XG4gICAgICAgICAgLy8gVGhpcyBlbnRyeSBpcyBcImNvbnRleHRcIlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBhcnJheSBkaWZmIGVudHJ5OiAke0pTT04uc3RyaW5naWZ5KGVudHJ5KX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh1cGRhdGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGRlc2NyaWJlQ2hhbmdlcyhuYW1lc3BhY2UsIGAke3ByZWZpeH0uJHtrZXl9YCwgdXBkYXRlW2tleV0pKSB7XG4gICAgICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGUuc3RhY2spO1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZSgnXFxuJyk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
65.0.0
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at
|
|
149
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -280,7 +280,7 @@ export function <span class="fstat-no" title="function not covered" >normalize(<
|
|
|
280
280
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
281
281
|
Code coverage generated by
|
|
282
282
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
283
|
-
at
|
|
283
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
284
284
|
</div>
|
|
285
285
|
<script src="../prettify.js"></script>
|
|
286
286
|
<script>
|
|
@@ -841,7 +841,7 @@ function findPatches(data: any, patchSource: any): Patch[] {
|
|
|
841
841
|
<span class="cstat-no" title="statement not covered" > throw new Error(`adjustPath: expected string, got ${JSON.stringify(originalPath)}`);</span>
|
|
842
842
|
}
|
|
843
843
|
if (originalPath.startsWith('$/')) {
|
|
844
|
-
return originalPath.
|
|
844
|
+
return originalPath.slice(1);
|
|
845
845
|
}
|
|
846
846
|
return jsonPath.map(p => `/${p}`).join('') + originalPath;
|
|
847
847
|
}
|
|
@@ -892,7 +892,7 @@ function <span class="fstat-no" title="function not covered" >eatArg(</span>arg:
|
|
|
892
892
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
893
893
|
Code coverage generated by
|
|
894
894
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
895
|
-
at
|
|
895
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
896
896
|
</div>
|
|
897
897
|
<script src="../prettify.js"></script>
|
|
898
898
|
<script>
|
|
@@ -334,7 +334,7 @@ function <span class="fstat-no" title="function not covered" >apply2<</span>T
|
|
|
334
334
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
335
|
Code coverage generated by
|
|
336
336
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
337
|
-
at
|
|
337
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
338
338
|
</div>
|
|
339
339
|
<script src="../prettify.js"></script>
|
|
340
340
|
<script>
|
|
@@ -1078,7 +1078,7 @@ async function <span class="fstat-no" title="function not covered" >main(</span>
|
|
|
1078
1078
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1079
1079
|
Code coverage generated by
|
|
1080
1080
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1081
|
-
at
|
|
1081
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
1082
1082
|
</div>
|
|
1083
1083
|
<script src="../prettify.js"></script>
|
|
1084
1084
|
<script>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at
|
|
149
|
+
at Thu Apr 07 2022 10:38:16 GMT+0000 (Coordinated Universal Time)
|
|
150
150
|
</div>
|
|
151
151
|
<script src="prettify.js"></script>
|
|
152
152
|
<script>
|