@aws-cdk/aws-ec2-alpha 2.233.0-alpha.0 → 2.234.1-alpha.0
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 +34 -5
- package/.jsii.tabl.json.gz +0 -0
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/lib/ipam.d.ts +1 -1
- package/lib/ipam.js +3 -3
- package/lib/route.d.ts +1 -1
- package/lib/route.js +9 -9
- package/lib/subnet-v2.js +2 -2
- package/lib/transit-gateway-route-table-association.js +1 -1
- package/lib/transit-gateway-route-table-propagation.js +1 -1
- package/lib/transit-gateway-route-table.js +1 -1
- package/lib/transit-gateway-route.js +2 -2
- package/lib/transit-gateway-vpc-attachment.js +1 -1
- package/lib/transit-gateway.js +1 -1
- package/lib/vpc-v2-base.js +1 -1
- package/lib/vpc-v2.js +2 -2
- package/package.json +6 -6
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.234.1",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -642,6 +642,19 @@
|
|
|
642
642
|
}
|
|
643
643
|
}
|
|
644
644
|
},
|
|
645
|
+
"aws-cdk-lib.aws_cases": {
|
|
646
|
+
"targets": {
|
|
647
|
+
"dotnet": {
|
|
648
|
+
"namespace": "Amazon.CDK.AWS.Cases"
|
|
649
|
+
},
|
|
650
|
+
"java": {
|
|
651
|
+
"package": "software.amazon.awscdk.services.cases"
|
|
652
|
+
},
|
|
653
|
+
"python": {
|
|
654
|
+
"module": "aws_cdk.aws_cases"
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
645
658
|
"aws-cdk-lib.aws_cassandra": {
|
|
646
659
|
"targets": {
|
|
647
660
|
"dotnet": {
|
|
@@ -4606,6 +4619,22 @@
|
|
|
4606
4619
|
}
|
|
4607
4620
|
}
|
|
4608
4621
|
},
|
|
4622
|
+
"aws-cdk-lib.interfaces.aws_cases": {
|
|
4623
|
+
"targets": {
|
|
4624
|
+
"dotnet": {
|
|
4625
|
+
"namespace": "Amazon.CDK.Interfaces.Cases"
|
|
4626
|
+
},
|
|
4627
|
+
"go": {
|
|
4628
|
+
"packageName": "interfacesawscases"
|
|
4629
|
+
},
|
|
4630
|
+
"java": {
|
|
4631
|
+
"package": "software.amazon.awscdk.interfaces.cases"
|
|
4632
|
+
},
|
|
4633
|
+
"python": {
|
|
4634
|
+
"module": "aws_cdk.interfaces.aws_cases"
|
|
4635
|
+
}
|
|
4636
|
+
}
|
|
4637
|
+
},
|
|
4609
4638
|
"aws-cdk-lib.interfaces.aws_cassandra": {
|
|
4610
4639
|
"targets": {
|
|
4611
4640
|
"dotnet": {
|
|
@@ -8441,7 +8470,7 @@
|
|
|
8441
8470
|
"stability": "experimental"
|
|
8442
8471
|
},
|
|
8443
8472
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8444
|
-
"jsiiVersion": "5.9.
|
|
8473
|
+
"jsiiVersion": "5.9.22 (build b81c634)",
|
|
8445
8474
|
"keywords": [
|
|
8446
8475
|
"aws",
|
|
8447
8476
|
"cdk",
|
|
@@ -11232,7 +11261,7 @@
|
|
|
11232
11261
|
"custom": {
|
|
11233
11262
|
"attribute": "IpamName"
|
|
11234
11263
|
},
|
|
11235
|
-
"default": "no tag specified",
|
|
11264
|
+
"default": "- no tag specified",
|
|
11236
11265
|
"stability": "experimental",
|
|
11237
11266
|
"summary": "IPAM name to be used for tagging."
|
|
11238
11267
|
},
|
|
@@ -11917,7 +11946,7 @@
|
|
|
11917
11946
|
{
|
|
11918
11947
|
"abstract": true,
|
|
11919
11948
|
"docs": {
|
|
11920
|
-
"default": "
|
|
11949
|
+
"default": "Duration.seconds(350)",
|
|
11921
11950
|
"stability": "experimental",
|
|
11922
11951
|
"summary": "The maximum amount of time to wait before forcibly releasing the IP addresses if connections are still in progress."
|
|
11923
11952
|
},
|
|
@@ -17612,6 +17641,6 @@
|
|
|
17612
17641
|
"symbolId": "lib/vpc-v2:VpcV2Props"
|
|
17613
17642
|
}
|
|
17614
17643
|
},
|
|
17615
|
-
"version": "2.
|
|
17644
|
+
"version": "2.234.1-alpha.0",
|
|
17616
17645
|
"fingerprint": "**********"
|
|
17617
17646
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2018-
|
|
189
|
+
Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/NOTICE
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
AWS Cloud Development Kit (AWS CDK)
|
|
2
|
-
Copyright 2018-
|
|
2
|
+
Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
package/lib/ipam.d.ts
CHANGED
|
@@ -264,7 +264,7 @@ export declare class Ipam extends Resource {
|
|
|
264
264
|
readonly scopes: IIpamScopeBase[];
|
|
265
265
|
/**
|
|
266
266
|
* IPAM name to be used for tagging
|
|
267
|
-
* @default no tag specified
|
|
267
|
+
* @default - no tag specified
|
|
268
268
|
* @attribute IpamName
|
|
269
269
|
*/
|
|
270
270
|
readonly ipamName?: string;
|
package/lib/ipam.js
CHANGED
|
@@ -315,7 +315,7 @@ let Ipam = (() => {
|
|
|
315
315
|
Ipam = _classThis = _classDescriptor.value;
|
|
316
316
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
317
317
|
}
|
|
318
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.
|
|
318
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.234.1-alpha.0" };
|
|
319
319
|
/** Uniquely identifies this class. */
|
|
320
320
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.Ipam';
|
|
321
321
|
/**
|
|
@@ -347,7 +347,7 @@ let Ipam = (() => {
|
|
|
347
347
|
scopes = [];
|
|
348
348
|
/**
|
|
349
349
|
* IPAM name to be used for tagging
|
|
350
|
-
* @default no tag specified
|
|
350
|
+
* @default - no tag specified
|
|
351
351
|
* @attribute IpamName
|
|
352
352
|
*/
|
|
353
353
|
ipamName;
|
|
@@ -444,4 +444,4 @@ function createIpamPool(scope, id, scopeOptions, poolOptions, scopeId) {
|
|
|
444
444
|
awsService: poolOptions.awsService,
|
|
445
445
|
});
|
|
446
446
|
}
|
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQWlFO0FBQ2pFLGlEQUEwRjtBQUMxRiw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFOzs7OztHQUtHO0FBQ0gsSUFBWSxhQVlYO0FBWkQsV0FBWSxhQUFhO0lBQ3ZCOzs7T0FHRztJQUNILCtCQUFjLENBQUE7SUFFZDs7O09BR0c7SUFDSCwrQkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFaVyxhQUFhLDZCQUFiLGFBQWEsUUFZeEI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxzQkFVWDtBQVZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gseUNBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBVWpDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCw2QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLGNBQWMsOEJBQWQsY0FBYyxRQUt6QjtBQXlCRDs7R0FFRztBQUNILElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILG9DQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGFBQWEsNkJBQWIsYUFBYSxRQVV4QjtBQTRERCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUE4SmhDOzs7Ozs7R0FNRztJQUVHLFFBQVE7NEJBRGIsb0NBQWtCOzs7O3NCQUNJLHNCQUFROzs7d0JBQWhCLFNBQVEsV0FBUTs7Ozt5Q0FnRTVCLElBQUEsa0NBQWMsR0FBRTtZQUNqQiwwTEFBTyxhQUFhLDZEQU9uQjtZQXhFSCw2S0F5RUM7Ozs7UUF4RUMsc0NBQXNDO1FBQy9C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QWMsQ0FDckIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFlBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLE9BQWU7SUFFZixrRUFBa0U7SUFDbEUsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsTUFBTSwwQkFBMEIsR0FBRyxZQUFZLENBQUMsb0JBQW9CO1lBQ2xFLENBQUMsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVWLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFdBQVcsQ0FBQyxNQUFNLHNDQUFzQyxZQUFZLENBQUMsb0JBQW9CLEtBQUs7Z0JBQ3BJLDhFQUE4RSxDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDN0IsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1FBQ3RDLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtRQUN4QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1FBQ3RELFdBQVcsRUFBRSxPQUFPO1FBQ3BCLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMxQixjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWM7UUFDMUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrLCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuSVBBTSwgQ2ZuSVBBTVBvb2wsIENmbklQQU1Qb29sQ2lkciwgQ2ZuSVBBTVNjb3BlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYWRkcmVzcyBmYW1pbHkgZm9yIElQIGFkZHJlc3NlcyBpbiBhbiBJUEFNIHBvb2wuXG4gKiBJUF9WNCAtIFJlcHJlc2VudHMgdGhlIElQdjQgYWRkcmVzcyBmYW1pbHkuXG4gKiBJUF9WNiAtIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWFkZHJlc3NmYW1pbHlcbiAqL1xuZXhwb3J0IGVudW0gQWRkcmVzc0ZhbWlseSB7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBJUHY0IGFkZHJlc3MgZmFtaWx5LlxuICAgKiBBbGxvd2VkIHVuZGVyIHB1YmxpYyBhbmQgcHJpdmF0ZSBwb29sLlxuICAgKi9cbiAgSVBfVjQgPSAnaXB2NCcsXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gICAqIE9ubHkgYWxsb3dlZCB1bmRlciBwdWJsaWMgcG9vbC5cbiAgICovXG4gIElQX1Y2ID0gJ2lwdjYnLFxufVxuXG4vKipcbiAqIFRoZSBJUCBhZGRyZXNzIHNvdXJjZSBmb3IgcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIE9ubHkgdXNlZCBmb3IgcHJvdmlzaW9uaW5nIElQIGFkZHJlc3MgQ0lEUnMgdG8gcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtcHVibGljaXBzb3VyY2VcbiAqL1xuZXhwb3J0IGVudW0gSXBhbVBvb2xQdWJsaWNJcFNvdXJjZSB7XG4gIC8qKlxuICAgKiBCWU9JUCBJcHY2IHRvIGJlIHJlZ2lzdGVyZWQgdW5kZXIgSVBBTVxuICAgKi9cbiAgQllPSVAgPSAnYnlvaXAnLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSXB2NiByYW5nZVxuICAgKi9cbiAgQU1BWk9OID0gJ2FtYXpvbicsXG59XG5cbi8qKlxuICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW5cbiAqL1xuZXhwb3J0IGVudW0gQXdzU2VydmljZU5hbWUge1xuICAvKipcbiAgICogIEFsbG93cyB1c2VycyB0byB1c2Ugc3BhY2UgZm9yIEVsYXN0aWMgSVAgYWRkcmVzc2VzIGFuZCBWUENzXG4gICAqL1xuICBFQzIgPSAnZWMyJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNyZWF0ZSBhIG5ldyBJcGFtIGluIHRoZSBhY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVByb3BzIHtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBSZWdpb25zIGZvciBhbiBJUEFNLlxuICAgKiBPcGVyYXRpbmcgUmVnaW9ucyBhcmUgQVdTIFJlZ2lvbnMgd2hlcmUgdGhlIElQQU0gaXMgYWxsb3dlZCB0byBtYW5hZ2UgSVAgYWRkcmVzcyBDSURSc1xuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvcGVyYXRpbmcgUmVnaW9ucywgc2VlIFtDcmVhdGUgYW4gSVBBTV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tLy92cGMvbGF0ZXN0L2lwYW0vY3JlYXRlLWlwYW0uaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIElQQU0gVXNlciBHdWlkZSogLlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtLmh0bWwjY2ZuLWVjMi1pcGFtLW9wZXJhdGluZ3JlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTdGFjay5yZWdpb24gaWYgZGVmaW5lZCBpbiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTmFtZSBvZiBJUEFNIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRhZ2dpbmcgcmVzb3VyY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiBubyBuYW1lIHByb3ZpZGVkLCBubyB0YWdzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIElQQU1cbiAgICovXG4gIHJlYWRvbmx5IGlwYW1OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZmVycyB0byB0d28gcG9zc2libGUgc2NvcGUgdHlwZXMgdW5kZXIgSVBBTVxuICovXG5leHBvcnQgZW51bSBJcGFtU2NvcGVUeXBlIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgc2NvcGVzIGNyZWF0ZWQgYnkgSVBBTVxuICAgKi9cbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcblxuICAvKipcbiAgICogQ3VzdG9tIHNjb3BlIGNyZWF0ZWQgdXNpbmcgbWV0aG9kXG4gICAqL1xuICBDVVNUT00gPSAnY3VzdG9tJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBJUEFNIHBvb2wuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb29sT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIGFkZHJlc3NGYW1pbHkgLSBUaGUgYWRkcmVzcyBmYW1pbHkgb2YgdGhlIHBvb2wgKGlwdjQgb3IgaXB2NikuXG4gICAqL1xuICByZWFkb25seSBhZGRyZXNzRmFtaWx5OiBBZGRyZXNzRmFtaWx5O1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgQ0lEUnMgcHJvdmlzaW9uZWQgdG8gdGhlIHBvb2wuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gQ0lEUnMgYXJlIHByb3Zpc2lvbmVkXG4gICAqL1xuICByZWFkb25seSBpcHY0UHJvdmlzaW9uZWRDaWRycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYWxlIChBV1MgUmVnaW9uKSBvZiB0aGUgcG9vbC4gU2hvdWxkIGJlIG9uZSBvZiB0aGUgSVBBTSBvcGVyYXRpbmcgcmVnaW9uLlxuICAgKiAgT25seSByZXNvdXJjZXMgaW4gdGhlIHNhbWUgUmVnaW9uIGFzIHRoZSBsb2NhbGUgb2YgdGhlIHBvb2wgY2FuIGdldCBJUCBhZGRyZXNzIGFsbG9jYXRpb25zIGZyb20gdGhlIHBvb2wuXG4gICAqIFlvdSBjYW4gb25seSBhbGxvY2F0ZSBhIENJRFIgZm9yIGEgVlBDLCBmb3IgZXhhbXBsZSwgZnJvbSBhbiBJUEFNIHBvb2wgdGhhdCBzaGFyZXMgYSBsb2NhbGUgd2l0aCB0aGUgVlBD4oCZcyBSZWdpb24uXG4gICAqIE5vdGUgdGhhdCBvbmNlIHlvdSBjaG9vc2UgYSBMb2NhbGUgZm9yIGEgcG9vbCwgeW91IGNhbm5vdCBtb2RpZnkgaXQuIElmIHlvdSBjaG9vc2UgYW4gQVdTIFJlZ2lvbiBmb3IgbG9jYWxlIHRoYXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgYXMgYW4gb3BlcmF0aW5nIFJlZ2lvbiBmb3IgdGhlIElQQU0sIHlvdSdsbCBnZXQgYW4gZXJyb3IuXG4gICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWwjY2ZuLWVjMi1pcGFtcG9vbC1sb2NhbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IG9wZXJhdGluZyByZWdpb24gb2YgSVBBTVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyBzb3VyY2UgZm9yIHBvb2xzIGluIHRoZSBwdWJsaWMgc2NvcGUuXG4gICAqIE9ubHkgdXNlZCBmb3IgSVB2NiBhZGRyZXNzXG4gICAqIE9ubHkgYWxsb3dlZCB2YWx1ZXMgdG8gdGhpcyBhcmUgJ2J5b2lwJyBvciAnYW1hem9uJ1xuICAgKlxuICAgKiBAZGVmYXVsdCBhbWF6b25cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0lwU291cmNlPzogSXBhbVBvb2xQdWJsaWNJcFNvdXJjZTtcblxuICAvKipcbiAgICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW4uXG4gICAqXG4gICAqIFwiZWMyXCIsIGZvciBleGFtcGxlLCBhbGxvd3MgdXNlcnMgdG8gdXNlIHNwYWNlIGZvciBFbGFzdGljIElQIGFkZHJlc3NlcyBhbmQgVlBDcy5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWF3c3NlcnZpY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBpbiBjYXNlIG9mIGFuIElQdjYsIHRocm93cyBhbiBlcnJvciBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhd3NTZXJ2aWNlPzogQXdzU2VydmljZU5hbWU7XG5cbiAgLyoqXG4gICAqIElQQU0gUG9vbCByZXNvdXJjZSBuYW1lIHRvIGJlIHVzZWQgZm9yIHRhZ2dpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvZ2VuZXJhdGVkIGJ5IENESyBpZiBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1Qb29sTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9ICdOYW1lJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBJUEFNIHBvb2wuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbFxuICovXG5pbnRlcmZhY2UgSXBhbVBvb2xQcm9wcyBleHRlbmRzIFBvb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNjb3BlIGlkIHdoZXJlIHBvb2wgbmVlZHMgdG8gYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIHByb3Zpc2lvbiBDSURScyB0byBhbiBJUEFNIHBvb2wuXG4gKiBVc2VkIHRvIGNyZWF0ZSBhIG5ldyBJcGFtUG9vbENpZHJcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbGNpZHIuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwYW1Qb29sQ2lkclByb3Zpc2lvbmluZ09wdGlvbnMge1xuICAvKipcbiAgICogSXB2NiBOZXRtYXNrIGxlbmd0aCBmb3IgdGhlIENJRFJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBwb29sIHByb3Zpc2lvbmVkIHdpdGhvdXQgbmV0bWFzayBsZW5ndGgsIG5lZWQgY2lkciByYW5nZSBpbiB0aGlzIGNhc2VcbiAgICovXG4gIHJlYWRvbmx5IG5ldG1hc2tMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElwdjYgQ0lEUiBibG9jayBmb3IgdGhlIElQQU0gcG9vbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBvb2wgcHJvdmlzaW9uZWQgd2l0aG91dCBuZXRtYXNrIGxlbmd0aCwgbmVlZCBuZXRtYXNrIGxlbmd0aCBpbiB0aGlzIGNhc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiB1c2VkIHRvIGFkZCBvciBjcmVhdGUgYSBuZXcgSVBBTSBwb29sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUlwYW1Qb29sIHtcbiAgLyoqXG4gICAqIFBvb2wgSUQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWUEMgY29uc3RydWN0XG4gICAqIEBhdHRyaWJ1dGUgSXBhbVBvb2xJZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjYgdG8gYmUgcHJvdmlzaW9uZWQgd2l0aCBQdWJsaWMgSVAgc291cmNlIHNldCB0byAnQW1hem9uJ1xuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUNpZHJzOiBDZm5JUEFNUG9vbENpZHJbXTtcblxuICAvKipcbiAgICogUG9vbCBDSURSIGZvciBJUHY0IHRvIGJlIHByb3Zpc2lvbmVkIHVzaW5nIElQQU1cbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIHN1Ym5ldCBJUCByYW5nZSBpcyB3aXRoaW4gdGhlIFZQQyByYW5nZVxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUlwdjRDaWRycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBhc3NvY2lhdGUgYSBJUHY2IGFkZHJlc3Mgd2l0aCBJUEFNIHBvb2xcbiAgICovXG4gIHByb3Zpc2lvbkNpZHIoaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVBvb2xDaWRyUHJvdmlzaW9uaW5nT3B0aW9ucyk6IENmbklQQU1Qb29sQ2lkcjtcblxufVxuXG4vKipcbiAqIElQQU0gc2NvcGUgaXMgdGhlIGhpZ2hlc3QtbGV2ZWwgY29udGFpbmVyIHdpdGhpbiBJUEFNLiBBbiBJUEFNIGNvbnRhaW5zIHR3byBkZWZhdWx0IHNjb3Blcy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICovXG5pbnRlcmZhY2UgSXBhbVNjb3BlUHJvcHMgZXh0ZW5kcyBJcGFtU2NvcGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIElQQU0gaWQgdG8gd2hpY2ggc2NvcGUgbmVlZHMgdG8gYmUgYWRkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpbmcgcmVnaW9ucyBmb3IgdGhlIElwYW1cbiAgICogUmVxdWlyZWQgaW4gb3JkZXIgdG8gdmFsaWRhdGUgdGhlIGxvY2FsZSBiZWluZyBzZXQgb24gcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbU9wZXJhdGluZ1JlZ2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gaXBhbSBzY29wZSBpZCB0byBhZGQgYSBwb29sIGluIG9yZGVyIHRvIHN1cHBvcnQgZGVmYXVsdCBzY29wZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aHJvd3MgYW4gZXJyb3IgaWYgbm8gc2NvcGUgaWQgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1TY29wZUlkPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQmVpbmcgdXNlZCBpbiBJUEFNIGNsYXNzIHRvIGFkZCBwb29scyB0byBkZWZhdWx0IHNjb3BlIGNyZWF0ZWQgYnkgSVBBTS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtU2NvcGVPcHRpb25zIHtcblxuICAvKipcbiAgICogSVBBTSBzY29wZSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0YWdnaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGFncyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzY29wZVxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBJUCBBZGRyZXNzIE1hbmFnZXIgKElQQU0pLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW0uaHRtbH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBDSURSIE1hc2sgZm9yIFZwY1xuICAgKiBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgQVdTIElwYW1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuZXRtYXNrIGxlbmd0aCBmb3IgSVBBTSBhdHRhY2hlZCB0byBWUEMgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IG5ldG1hc2tMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElwdjQgb3IgYW4gSXB2NiBJUEFNIHBvb2xcbiAgICogT25seSByZXF1aXJlZCB3aGVuIHVzaW5nIEFXUyBJcGFtXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcG9vbCBhdHRhY2hlZCB0byBWUEMgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1Qb29sPzogSUlwYW1Qb29sO1xuXG4gIC8qKlxuICAgKiBSZXF1aXJlZCB0byBzZXQgU2Vjb25kYXJ5IGNpZHIgYmxvY2sgcmVzb3VyY2UgbmFtZVxuICAgKiBpbiBvcmRlciB0byBnZW5lcmF0ZSB1bmlxdWUgbG9naWNhbCBpZCBmb3IgdGhlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgSXBhbVNjb3BlIENsYXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUlwYW1TY29wZUJhc2Uge1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgc2NvcGUgb2Ygc3RhY2sgdG8gYmUgcGFzc2VkIGluIG9yZGVyIHRvIGNyZWF0ZVxuICAgKiBhIG5ldyBJUEFNIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgU2NvcGUgaWRzIGNyZWF0ZWQgYnkgdGhlIElQQU0gb3IgYSBuZXcgUmVzb3VyY2UgaWRcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBzY29wZSB0eXBlIGNhbiBiZSBlaXRoZXIgZGVmYXVsdCBvciBjdXN0b21cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlVHlwZT86IElwYW1TY29wZVR5cGU7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGFkZCBhIG5ldyBwb29sIHRvIGFuIElQQU0gc2NvcGVcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2w7XG5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIG5ldyBJUEFNIFBvb2xcbiAqIFBvb2xzIGVuYWJsZSB5b3UgdG8gb3JnYW5pemUgeW91ciBJUCBhZGRyZXNzZXMgYWNjb3JkaW5nIHRvIHlvdXIgcm91dGluZyBhbmQgc2VjdXJpdHkgbmVlZHNcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OklQQU1Qb29sXG4gKiBAaW50ZXJuYWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgSXBhbVBvb2wgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElJcGFtUG9vbCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtUG9vbCc7XG4gIC8qKlxuICAgKiBQb29sIElEIHRvIGJlIHBhc3NlZCB0byB0aGUgVlBDIGNvbnN0cnVjdFxuICAgKiBAYXR0cmlidXRlIElwYW1Qb29sSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBvb2wgQ0lEUiBmb3IgSVB2NiB0byBiZSBwcm92aXNpb25lZCB3aXRoIFB1YmxpYyBJUCBzb3VyY2Ugc2V0IHRvICdBbWF6b24nXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbUNpZHJzOiBDZm5JUEFNUG9vbENpZHJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjQgdG8gYmUgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKiBSZXF1aXJlZCB0byBjaGVjayBmb3Igc3VibmV0IElQIHJhbmdlIGlzIHdpdGhpbiB0aGUgVlBDIHJhbmdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbUlwdjRDaWRyczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIGlwYW1Qb29sIHJlc291cmNlIGNyZWF0ZWQgaW4gdGhpcyBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaXBhbVBvb2w6IENmbklQQU1Qb29sO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtUG9vbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmlwYW1Qb29sTmFtZSA/PyBMYXp5LnN0cmluZyh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTI4LCBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6ICdfJyB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmFkZHJlc3NGYW1pbHkgPT09IEFkZHJlc3NGYW1pbHkuSVBfVjYgJiYgIXByb3BzLmF3c1NlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXdzU2VydmljZSBpcyByZXF1aXJlZCB3aGVuIGFkZHJlc3NGYW1pbHkgaXMgc2V0IHRvIGlwdjYnKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGFncyB0byB0aGUgSVBBTSBQb29sIGlmIG5hbWUgaXMgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuaXBhbVBvb2xOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaXBhbVBvb2xOYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pcGFtUG9vbCA9IG5ldyBDZm5JUEFNUG9vbCh0aGlzLCBpZCwge1xuICAgICAgYWRkcmVzc0ZhbWlseTogcHJvcHMuYWRkcmVzc0ZhbWlseSxcbiAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IHByb3BzLmlwdjRQcm92aXNpb25lZENpZHJzPy5tYXAoY2lkciA9PiAoeyBjaWRyIH0pKSxcbiAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlLFxuICAgICAgaXBhbVNjb3BlSWQ6IHByb3BzLmlwYW1TY29wZUlkLFxuICAgICAgcHVibGljSXBTb3VyY2U6IHByb3BzLnB1YmxpY0lwU291cmNlLFxuICAgICAgYXdzU2VydmljZTogcHJvcHMuYXdzU2VydmljZSxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1Qb29sSWQgPSB0aGlzLl9pcGFtUG9vbC5hdHRySXBhbVBvb2xJZDtcblxuICAgIC8vIFBvcHVsYXRpbmcgdG8gY2hlY2sgZm9yIHN1Ym5ldCByYW5nZSBhZ2FpbnN0IGFsbCBJUHY0IHJhbmdlcyBhc3NpZ25lZCB0byBWUEMgaW5jbHVkaW5nIElQQU1cbiAgICBwcm9wcy5pcHY0UHJvdmlzaW9uZWRDaWRycz8ubWFwKGNpZHIgPT4gKHRoaXMuaXBhbUlwdjRDaWRycy5wdXNoKGNpZHIpKSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuX2lwYW1Qb29sO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ0lEUiBwcm92aXNpb25lZCB0byBhbiBJUEFNIHBvb2wuXG4gICAqIEBwYXJhbSBpZCBOYW1lIG9mIFJlc291cmNlXG4gICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciBhIENJRFIgb3IgbmV0bWFzayBsZW5ndGggbXVzdCBiZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBBV1M6OkVDMjo6SVBBTVBvb2xDaWRyXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgcHJvdmlzaW9uQ2lkcihpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtUG9vbENpZHJQcm92aXNpb25pbmdPcHRpb25zKTogQ2ZuSVBBTVBvb2xDaWRyIHtcbiAgICBjb25zdCBjaWRyID0gbmV3IENmbklQQU1Qb29sQ2lkcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1Qb29sSWQ6IHRoaXMuaXBhbVBvb2xJZCxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1DaWRycy5wdXNoKGNpZHIpO1xuICAgIHJldHVybiBjaWRyO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBjdXN0b20gSXBhbSBTY29wZSwgY3VzdG9tIElQQU0gc2NvcGVzIGNhbiBvbmx5IGJlIHByaXZhdGVcbiAqIChjYW4gYmUgdXNlZCBmb3IgYWRkaW5nIGN1c3RvbSBzY29wZXMgdG8gYW4gZXhpc3RpbmcgSVBBTSlcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICogQHJlc291cmNlIEFXUzo6RUMyOjpJUEFNU2NvcGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgSXBhbVNjb3BlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtU2NvcGUnO1xuICAvKipcbiAgICogU3RvcmVzIHRoZSByZWZlcmVuY2UgdG8gbmV3bHkgY3JlYXRlZCBSZXNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaXBhbVNjb3BlOiBDZm5JUEFNU2NvcGU7XG5cbiAgLyoqXG4gICAqIElEIGZvciBSZXNvdXJjZSBJcGFtU2NvcGVcbiAgICogQGF0dHJpYnV0ZSBJcGFtU2NvcGVJZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydGllcyB0byBjb25maWd1cmUgaXBhbSBzY29wZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogSXBhbVNjb3BlUHJvcHM7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBzdGFjayBzY29wZSB0byBiZSBwYXNzZWQgdGhyb3VnaCBhZGRQb29sIG1ldGhvZCBpbm9yZGVyIHRvIGNyZWF0ZSBhIG5ldyBJcGFtUG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgc2NvcGUgdHlwZSBjYW4gYmUgZWl0aGVyIGRlZmF1bHQgb3IgY3VzdG9tXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGVUeXBlOiBJcGFtU2NvcGVUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtU2NvcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5faXBhbVNjb3BlID0gbmV3IENmbklQQU1TY29wZShzY29wZSwgJ0lwYW1TY29wZScsIHtcbiAgICAgIGlwYW1JZDogcHJvcHMuaXBhbUlkLFxuICAgIH0pO1xuICAgIFRhZ3Mub2YodGhpcy5faXBhbVNjb3BlKS5hZGQoTkFNRV9UQUcsIHByb3BzLmlwYW1TY29wZU5hbWUgPz8gJ0N1c3RvbUlwYW1TY29wZScpO1xuICAgIHRoaXMuc2NvcGVJZCA9IHRoaXMuX2lwYW1TY29wZS5hdHRySXBhbVNjb3BlSWQ7XG4gICAgdGhpcy5zY29wZVR5cGUgPSBJcGFtU2NvcGVUeXBlLkNVU1RPTTtcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb29sIHRvIHRoZSBJUEFNIHNjb3BlLlxuICAgKiBAZXh0ZXJuYWxcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2wge1xuICAgIHJldHVybiBjcmVhdGVJcGFtUG9vbCh0aGlzLnNjb3BlLCBpZCwgdGhpcy5wcm9wcywgb3B0aW9ucywgdGhpcy5zY29wZUlkKTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIElQQU0gZGVmYXVsdCBzY29wZXMuXG4gKi9cbmNsYXNzIElwYW1TY29wZUJhc2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IElwYW1TY29wZVByb3BzLFxuICAgIHJlYWRvbmx5IHNjb3BlVHlwZT86IElwYW1TY29wZVR5cGUsXG4gICkge1xuICAgIHRoaXMuc2NvcGVUeXBlID0gSXBhbVNjb3BlVHlwZS5ERUZBVUxUO1xuICAgIGlmICghcHJvcHMuaXBhbVNjb3BlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaXBhbVNjb3BlSWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY29wZUlkID0gcHJvcHMuaXBhbVNjb3BlSWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb29sIHRvIHRoZSBJUEFNIHNjb3BlLlxuICAgKiBAZXh0ZXJuYWxcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2wge1xuICAgIHJldHVybiBjcmVhdGVJcGFtUG9vbCh0aGlzLnNjb3BlLCBpZCwgdGhpcy5wcm9wcywgb3B0aW9ucywgdGhpcy5zY29wZUlkKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmV3IElQQU0gd2l0aCBkZWZhdWx0IHB1YmxpYyBhbmQgcHJpdmF0ZSBzY29wZVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OklQQU1cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtJztcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGFjY2VzcyB0byBkZWZhdWx0IHB1YmxpYyBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICAgKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHVibGljIHNjb3BlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHB1YmxpY1Njb3BlOiBJSXBhbVNjb3BlQmFzZTtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYWNjZXNzIHRvIGRlZmF1bHQgcHJpdmF0ZSBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICAgKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHJpdmF0ZSBzY29wZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXNjb3BlLmh0bWxcbiAgICogKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGVTY29wZTogSUlwYW1TY29wZUJhc2U7XG5cbiAgLy8gUmVzb3VyY2UgSVBBTVxuICBwcml2YXRlIHJlYWRvbmx5IF9pcGFtOiBDZm5JUEFNO1xuICAvKipcbiAgICogQWNjZXNzIHRvIElwYW0gcmVzb3VyY2UgaWQgdGhhdCBjYW4gYmUgdXNlZCBsYXRlciB0byBhZGQgYSBjdXN0b20gcHJpdmF0ZSBzY29wZSB0byB0aGlzIElQQU1cbiAgICogQGF0dHJpYnV0ZSBJcGFtSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBvcGVyYXRpbmcgcmVnaW9ucyBmb3IgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHNjb3BlcyBjcmVhdGVkIHVuZGVyIHRoaXMgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlczogSUlwYW1TY29wZUJhc2VbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJUEFNIG5hbWUgdG8gYmUgdXNlZCBmb3IgdGFnZ2luZ1xuICAgKiBAZGVmYXVsdCBubyB0YWcgc3BlY2lmaWVkXG4gICAqIEBhdHRyaWJ1dGUgSXBhbU5hbWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtTmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IElwYW1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgaWYgKHByb3BzPy5pcGFtTmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLmlwYW1OYW1lKTtcbiAgICB9XG4gICAgaWYgKHByb3BzPy5vcGVyYXRpbmdSZWdpb25zICYmIChwcm9wcy5vcGVyYXRpbmdSZWdpb25zLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYXQgbGVhc3Qgb25lIG9wZXJhdGluZyByZWdpb24nKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMgPSBwcm9wcz8ub3BlcmF0aW5nUmVnaW9ucyA/PyBbU3RhY2sub2YodGhpcykucmVnaW9uXTtcbiAgICB0aGlzLmlwYW1OYW1lID0gcHJvcHM/LmlwYW1OYW1lO1xuXG4gICAgdGhpcy5faXBhbSA9IG5ldyBDZm5JUEFNKHRoaXMsICdJcGFtJywge1xuICAgICAgb3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zID8gdGhpcy5vcGVyYXRpbmdSZWdpb25zLm1hcChyZWdpb24gPT4gKHsgcmVnaW9uTmFtZTogcmVnaW9uIH0pKSA6IFtdLFxuICAgIH0pO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLl9pcGFtO1xuXG4gICAgdGhpcy5pcGFtSWQgPSB0aGlzLl9pcGFtLmF0dHJJcGFtSWQ7XG4gICAgdGhpcy5wdWJsaWNTY29wZSA9IG5ldyBJcGFtU2NvcGVCYXNlKHRoaXMsICdEZWZhdWx0UHVibGljU2NvcGUnLCB7XG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgICAgaXBhbUlkOiB0aGlzLl9pcGFtLmF0dHJJcGFtSWQsXG4gICAgICBpcGFtU2NvcGVJZDogdGhpcy5faXBhbS5hdHRyUHVibGljRGVmYXVsdFNjb3BlSWQsXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlU2NvcGUgPSBuZXcgSXBhbVNjb3BlQmFzZSh0aGlzLCAnRGVmYXVsdFByaXZhdGVTY29wZScsIHtcbiAgICAgIGlwYW1PcGVyYXRpbmdSZWdpb25zOiB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMsXG4gICAgICBpcGFtSWQ6IHRoaXMuX2lwYW0uYXR0cklwYW1JZCxcbiAgICAgIGlwYW1TY29wZUlkOiB0aGlzLl9pcGFtLmF0dHJQcml2YXRlRGVmYXVsdFNjb3BlSWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNjb3Blcy5wdXNoKHRoaXMucHVibGljU2NvcGUsIHRoaXMucHJpdmF0ZVNjb3BlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBhZGQgY3VzdG9tIHNjb3BlIHRvIGFuIGV4aXN0aW5nIElQQU1cbiAgICogQ3VzdG9tIHNjb3BlcyBjYW4gb25seSBiZSBwcml2YXRlXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgYWRkU2NvcGUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVNjb3BlT3B0aW9ucyk6IElJcGFtU2NvcGVCYXNlIHtcbiAgICBjb25zdCBpcGFtU2NvcGUgPSBuZXcgSXBhbVNjb3BlKHNjb3BlLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5pcGFtSWQsXG4gICAgICBpcGFtT3BlcmF0aW5nUmVnaW9uczogdGhpcy5vcGVyYXRpbmdSZWdpb25zLFxuICAgIH0pO1xuICAgIHRoaXMuc2NvcGVzLnB1c2goaXBhbVNjb3BlKTtcbiAgICByZXR1cm4gaXBhbVNjb3BlO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY3JlYXRlIElwYW1Qb29sIHVuZGVyIHNjb3BlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSXBhbVBvb2woXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHNjb3BlT3B0aW9uczogSXBhbVNjb3BlUHJvcHMsXG4gIHBvb2xPcHRpb25zOiBQb29sT3B0aW9ucyxcbiAgc2NvcGVJZDogc3RyaW5nLFxuKTogSXBhbVBvb2wge1xuICAvLyBPbmx5IGNoZWNrIGxvY2FsZSBpZiBpdCdzIHByb3ZpZGVkIHNpbmNlIGl0J3MgYW4gb3B0aW9uYWwgZmllbGRcbiAgaWYgKHBvb2xPcHRpb25zLmxvY2FsZSkge1xuICAgIGNvbnN0IGlzTG9jYWxlSW5PcGVyYXRpbmdSZWdpb25zID0gc2NvcGVPcHRpb25zLmlwYW1PcGVyYXRpbmdSZWdpb25zXG4gICAgICA/IHNjb3BlT3B0aW9ucy5pcGFtT3BlcmF0aW5nUmVnaW9ucy5tYXAocmVnaW9uID0+ICh7IHJlZ2lvbk5hbWU6IHJlZ2lvbiB9KSlcbiAgICAgICAgLnNvbWUocmVnaW9uID0+IHJlZ2lvbi5yZWdpb25OYW1lID09PSBwb29sT3B0aW9ucy5sb2NhbGUpXG4gICAgICA6IGZhbHNlO1xuXG4gICAgaWYgKCFpc0xvY2FsZUluT3BlcmF0aW5nUmVnaW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgbG9jYWxlICcke3Bvb2xPcHRpb25zLmxvY2FsZX0nIGlzIG5vdCBpbiB0aGUgb3BlcmF0aW5nIHJlZ2lvbnMgKCR7c2NvcGVPcHRpb25zLmlwYW1PcGVyYXRpbmdSZWdpb25zfSkuIGAgK1xuICAgICAgICAnSWYgc3BlY2lmaWVkLCBsb2NhbGUgbXVzdCBiZSBjb25maWd1cmVkIGFzIGFuIG9wZXJhdGluZyByZWdpb24gZm9yIHRoZSBJUEFNLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgSXBhbVBvb2woc2NvcGUsIGlkLCB7XG4gICAgaXBhbVBvb2xOYW1lOiBwb29sT3B0aW9ucy5pcGFtUG9vbE5hbWUsXG4gICAgYWRkcmVzc0ZhbWlseTogcG9vbE9wdGlvbnMuYWRkcmVzc0ZhbWlseSxcbiAgICBpcHY0UHJvdmlzaW9uZWRDaWRyczogcG9vbE9wdGlvbnMuaXB2NFByb3Zpc2lvbmVkQ2lkcnMsXG4gICAgaXBhbVNjb3BlSWQ6IHNjb3BlSWQsXG4gICAgbG9jYWxlOiBwb29sT3B0aW9ucy5sb2NhbGUsXG4gICAgcHVibGljSXBTb3VyY2U6IHBvb2xPcHRpb25zLnB1YmxpY0lwU291cmNlLFxuICAgIGF3c1NlcnZpY2U6IHBvb2xPcHRpb25zLmF3c1NlcnZpY2UsXG4gIH0pO1xufVxuIl19
|
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlwYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQWlFO0FBQ2pFLGlEQUEwRjtBQUMxRiw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFOzs7OztHQUtHO0FBQ0gsSUFBWSxhQVlYO0FBWkQsV0FBWSxhQUFhO0lBQ3ZCOzs7T0FHRztJQUNILCtCQUFjLENBQUE7SUFFZDs7O09BR0c7SUFDSCwrQkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFaVyxhQUFhLDZCQUFiLGFBQWEsUUFZeEI7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxzQkFVWDtBQVZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gseUNBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBVWpDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCw2QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLGNBQWMsOEJBQWQsY0FBYyxRQUt6QjtBQXlCRDs7R0FFRztBQUNILElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILG9DQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGFBQWEsNkJBQWIsYUFBYSxRQVV4QjtBQTRERCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUE4SmhDOzs7Ozs7R0FNRztJQUVHLFFBQVE7NEJBRGIsb0NBQWtCOzs7O3NCQUNJLHNCQUFROzs7d0JBQWhCLFNBQVEsV0FBUTs7Ozt5Q0FnRTVCLElBQUEsa0NBQWMsR0FBRTtZQUNqQiwwTEFBTyxhQUFhLDZEQU9uQjtZQXhFSCw2S0F5RUM7Ozs7UUF4RUMsc0NBQXNDO1FBQy9C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QWMsQ0FDckIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFlBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLE9BQWU7SUFFZixrRUFBa0U7SUFDbEUsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsTUFBTSwwQkFBMEIsR0FBRyxZQUFZLENBQUMsb0JBQW9CO1lBQ2xFLENBQUMsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVWLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFdBQVcsQ0FBQyxNQUFNLHNDQUFzQyxZQUFZLENBQUMsb0JBQW9CLEtBQUs7Z0JBQ3BJLDhFQUE4RSxDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDN0IsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1FBQ3RDLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtRQUN4QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1FBQ3RELFdBQVcsRUFBRSxPQUFPO1FBQ3BCLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMxQixjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWM7UUFDMUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrLCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuSVBBTSwgQ2ZuSVBBTVBvb2wsIENmbklQQU1Qb29sQ2lkciwgQ2ZuSVBBTVNjb3BlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYWRkcmVzcyBmYW1pbHkgZm9yIElQIGFkZHJlc3NlcyBpbiBhbiBJUEFNIHBvb2wuXG4gKiBJUF9WNCAtIFJlcHJlc2VudHMgdGhlIElQdjQgYWRkcmVzcyBmYW1pbHkuXG4gKiBJUF9WNiAtIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWFkZHJlc3NmYW1pbHlcbiAqL1xuZXhwb3J0IGVudW0gQWRkcmVzc0ZhbWlseSB7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBJUHY0IGFkZHJlc3MgZmFtaWx5LlxuICAgKiBBbGxvd2VkIHVuZGVyIHB1YmxpYyBhbmQgcHJpdmF0ZSBwb29sLlxuICAgKi9cbiAgSVBfVjQgPSAnaXB2NCcsXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIElQdjYgYWRkcmVzcyBmYW1pbHkuXG4gICAqIE9ubHkgYWxsb3dlZCB1bmRlciBwdWJsaWMgcG9vbC5cbiAgICovXG4gIElQX1Y2ID0gJ2lwdjYnLFxufVxuXG4vKipcbiAqIFRoZSBJUCBhZGRyZXNzIHNvdXJjZSBmb3IgcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIE9ubHkgdXNlZCBmb3IgcHJvdmlzaW9uaW5nIElQIGFkZHJlc3MgQ0lEUnMgdG8gcG9vbHMgaW4gdGhlIHB1YmxpYyBzY29wZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sI2Nmbi1lYzItaXBhbXBvb2wtcHVibGljaXBzb3VyY2VcbiAqL1xuZXhwb3J0IGVudW0gSXBhbVBvb2xQdWJsaWNJcFNvdXJjZSB7XG4gIC8qKlxuICAgKiBCWU9JUCBJcHY2IHRvIGJlIHJlZ2lzdGVyZWQgdW5kZXIgSVBBTVxuICAgKi9cbiAgQllPSVAgPSAnYnlvaXAnLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gUHJvdmlkZWQgSXB2NiByYW5nZVxuICAgKi9cbiAgQU1BWk9OID0gJ2FtYXpvbicsXG59XG5cbi8qKlxuICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW5cbiAqL1xuZXhwb3J0IGVudW0gQXdzU2VydmljZU5hbWUge1xuICAvKipcbiAgICogIEFsbG93cyB1c2VycyB0byB1c2Ugc3BhY2UgZm9yIEVsYXN0aWMgSVAgYWRkcmVzc2VzIGFuZCBWUENzXG4gICAqL1xuICBFQzIgPSAnZWMyJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNyZWF0ZSBhIG5ldyBJcGFtIGluIHRoZSBhY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVByb3BzIHtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBSZWdpb25zIGZvciBhbiBJUEFNLlxuICAgKiBPcGVyYXRpbmcgUmVnaW9ucyBhcmUgQVdTIFJlZ2lvbnMgd2hlcmUgdGhlIElQQU0gaXMgYWxsb3dlZCB0byBtYW5hZ2UgSVAgYWRkcmVzcyBDSURSc1xuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvcGVyYXRpbmcgUmVnaW9ucywgc2VlIFtDcmVhdGUgYW4gSVBBTV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tLy92cGMvbGF0ZXN0L2lwYW0vY3JlYXRlLWlwYW0uaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIElQQU0gVXNlciBHdWlkZSogLlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtLmh0bWwjY2ZuLWVjMi1pcGFtLW9wZXJhdGluZ3JlZ2lvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTdGFjay5yZWdpb24gaWYgZGVmaW5lZCBpbiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTmFtZSBvZiBJUEFNIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRhZ2dpbmcgcmVzb3VyY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiBubyBuYW1lIHByb3ZpZGVkLCBubyB0YWdzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIElQQU1cbiAgICovXG4gIHJlYWRvbmx5IGlwYW1OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZmVycyB0byB0d28gcG9zc2libGUgc2NvcGUgdHlwZXMgdW5kZXIgSVBBTVxuICovXG5leHBvcnQgZW51bSBJcGFtU2NvcGVUeXBlIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgc2NvcGVzIGNyZWF0ZWQgYnkgSVBBTVxuICAgKi9cbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcblxuICAvKipcbiAgICogQ3VzdG9tIHNjb3BlIGNyZWF0ZWQgdXNpbmcgbWV0aG9kXG4gICAqL1xuICBDVVNUT00gPSAnY3VzdG9tJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBJUEFNIHBvb2wuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb29sT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIGFkZHJlc3NGYW1pbHkgLSBUaGUgYWRkcmVzcyBmYW1pbHkgb2YgdGhlIHBvb2wgKGlwdjQgb3IgaXB2NikuXG4gICAqL1xuICByZWFkb25seSBhZGRyZXNzRmFtaWx5OiBBZGRyZXNzRmFtaWx5O1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgQ0lEUnMgcHJvdmlzaW9uZWQgdG8gdGhlIHBvb2wuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gQ0lEUnMgYXJlIHByb3Zpc2lvbmVkXG4gICAqL1xuICByZWFkb25seSBpcHY0UHJvdmlzaW9uZWRDaWRycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYWxlIChBV1MgUmVnaW9uKSBvZiB0aGUgcG9vbC4gU2hvdWxkIGJlIG9uZSBvZiB0aGUgSVBBTSBvcGVyYXRpbmcgcmVnaW9uLlxuICAgKiAgT25seSByZXNvdXJjZXMgaW4gdGhlIHNhbWUgUmVnaW9uIGFzIHRoZSBsb2NhbGUgb2YgdGhlIHBvb2wgY2FuIGdldCBJUCBhZGRyZXNzIGFsbG9jYXRpb25zIGZyb20gdGhlIHBvb2wuXG4gICAqIFlvdSBjYW4gb25seSBhbGxvY2F0ZSBhIENJRFIgZm9yIGEgVlBDLCBmb3IgZXhhbXBsZSwgZnJvbSBhbiBJUEFNIHBvb2wgdGhhdCBzaGFyZXMgYSBsb2NhbGUgd2l0aCB0aGUgVlBD4oCZcyBSZWdpb24uXG4gICAqIE5vdGUgdGhhdCBvbmNlIHlvdSBjaG9vc2UgYSBMb2NhbGUgZm9yIGEgcG9vbCwgeW91IGNhbm5vdCBtb2RpZnkgaXQuIElmIHlvdSBjaG9vc2UgYW4gQVdTIFJlZ2lvbiBmb3IgbG9jYWxlIHRoYXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgYXMgYW4gb3BlcmF0aW5nIFJlZ2lvbiBmb3IgdGhlIElQQU0sIHlvdSdsbCBnZXQgYW4gZXJyb3IuXG4gICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1wb29sLmh0bWwjY2ZuLWVjMi1pcGFtcG9vbC1sb2NhbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDdXJyZW50IG9wZXJhdGluZyByZWdpb24gb2YgSVBBTVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSVAgYWRkcmVzcyBzb3VyY2UgZm9yIHBvb2xzIGluIHRoZSBwdWJsaWMgc2NvcGUuXG4gICAqIE9ubHkgdXNlZCBmb3IgSVB2NiBhZGRyZXNzXG4gICAqIE9ubHkgYWxsb3dlZCB2YWx1ZXMgdG8gdGhpcyBhcmUgJ2J5b2lwJyBvciAnYW1hem9uJ1xuICAgKlxuICAgKiBAZGVmYXVsdCBhbWF6b25cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0lwU291cmNlPzogSXBhbVBvb2xQdWJsaWNJcFNvdXJjZTtcblxuICAvKipcbiAgICogTGltaXRzIHdoaWNoIHNlcnZpY2UgaW4gQVdTIHRoYXQgdGhlIHBvb2wgY2FuIGJlIHVzZWQgaW4uXG4gICAqXG4gICAqIFwiZWMyXCIsIGZvciBleGFtcGxlLCBhbGxvd3MgdXNlcnMgdG8gdXNlIHNwYWNlIGZvciBFbGFzdGljIElQIGFkZHJlc3NlcyBhbmQgVlBDcy5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbCNjZm4tZWMyLWlwYW1wb29sLWF3c3NlcnZpY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBpbiBjYXNlIG9mIGFuIElQdjYsIHRocm93cyBhbiBlcnJvciBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhd3NTZXJ2aWNlPzogQXdzU2VydmljZU5hbWU7XG5cbiAgLyoqXG4gICAqIElQQU0gUG9vbCByZXNvdXJjZSBuYW1lIHRvIGJlIHVzZWQgZm9yIHRhZ2dpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvZ2VuZXJhdGVkIGJ5IENESyBpZiBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1Qb29sTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9ICdOYW1lJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBJUEFNIHBvb2wuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXBvb2wuaHRtbFxuICovXG5pbnRlcmZhY2UgSXBhbVBvb2xQcm9wcyBleHRlbmRzIFBvb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNjb3BlIGlkIHdoZXJlIHBvb2wgbmVlZHMgdG8gYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIHByb3Zpc2lvbiBDSURScyB0byBhbiBJUEFNIHBvb2wuXG4gKiBVc2VkIHRvIGNyZWF0ZSBhIG5ldyBJcGFtUG9vbENpZHJcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbGNpZHIuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwYW1Qb29sQ2lkclByb3Zpc2lvbmluZ09wdGlvbnMge1xuICAvKipcbiAgICogSXB2NiBOZXRtYXNrIGxlbmd0aCBmb3IgdGhlIENJRFJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBwb29sIHByb3Zpc2lvbmVkIHdpdGhvdXQgbmV0bWFzayBsZW5ndGgsIG5lZWQgY2lkciByYW5nZSBpbiB0aGlzIGNhc2VcbiAgICovXG4gIHJlYWRvbmx5IG5ldG1hc2tMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElwdjYgQ0lEUiBibG9jayBmb3IgdGhlIElQQU0gcG9vbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBvb2wgcHJvdmlzaW9uZWQgd2l0aG91dCBuZXRtYXNrIGxlbmd0aCwgbmVlZCBuZXRtYXNrIGxlbmd0aCBpbiB0aGlzIGNhc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpZHI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiB1c2VkIHRvIGFkZCBvciBjcmVhdGUgYSBuZXcgSVBBTSBwb29sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUlwYW1Qb29sIHtcbiAgLyoqXG4gICAqIFBvb2wgSUQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWUEMgY29uc3RydWN0XG4gICAqIEBhdHRyaWJ1dGUgSXBhbVBvb2xJZFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjYgdG8gYmUgcHJvdmlzaW9uZWQgd2l0aCBQdWJsaWMgSVAgc291cmNlIHNldCB0byAnQW1hem9uJ1xuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUNpZHJzOiBDZm5JUEFNUG9vbENpZHJbXTtcblxuICAvKipcbiAgICogUG9vbCBDSURSIGZvciBJUHY0IHRvIGJlIHByb3Zpc2lvbmVkIHVzaW5nIElQQU1cbiAgICogUmVxdWlyZWQgdG8gY2hlY2sgZm9yIHN1Ym5ldCBJUCByYW5nZSBpcyB3aXRoaW4gdGhlIFZQQyByYW5nZVxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbUlwdjRDaWRycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBhc3NvY2lhdGUgYSBJUHY2IGFkZHJlc3Mgd2l0aCBJUEFNIHBvb2xcbiAgICovXG4gIHByb3Zpc2lvbkNpZHIoaWQ6IHN0cmluZywgb3B0aW9uczogSXBhbVBvb2xDaWRyUHJvdmlzaW9uaW5nT3B0aW9ucyk6IENmbklQQU1Qb29sQ2lkcjtcblxufVxuXG4vKipcbiAqIElQQU0gc2NvcGUgaXMgdGhlIGhpZ2hlc3QtbGV2ZWwgY29udGFpbmVyIHdpdGhpbiBJUEFNLiBBbiBJUEFNIGNvbnRhaW5zIHR3byBkZWZhdWx0IHNjb3Blcy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICovXG5pbnRlcmZhY2UgSXBhbVNjb3BlUHJvcHMgZXh0ZW5kcyBJcGFtU2NvcGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIElQQU0gaWQgdG8gd2hpY2ggc2NvcGUgbmVlZHMgdG8gYmUgYWRkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpbmcgcmVnaW9ucyBmb3IgdGhlIElwYW1cbiAgICogUmVxdWlyZWQgaW4gb3JkZXIgdG8gdmFsaWRhdGUgdGhlIGxvY2FsZSBiZWluZyBzZXQgb24gcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbU9wZXJhdGluZ1JlZ2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gaXBhbSBzY29wZSBpZCB0byBhZGQgYSBwb29sIGluIG9yZGVyIHRvIHN1cHBvcnQgZGVmYXVsdCBzY29wZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aHJvd3MgYW4gZXJyb3IgaWYgbm8gc2NvcGUgaWQgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1TY29wZUlkPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQmVpbmcgdXNlZCBpbiBJUEFNIGNsYXNzIHRvIGFkZCBwb29scyB0byBkZWZhdWx0IHNjb3BlIGNyZWF0ZWQgYnkgSVBBTS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtU2NvcGVPcHRpb25zIHtcblxuICAvKipcbiAgICogSVBBTSBzY29wZSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0YWdnaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGFncyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzY29wZVxuICAgKi9cbiAgcmVhZG9ubHkgaXBhbVNjb3BlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBJUCBBZGRyZXNzIE1hbmFnZXIgKElQQU0pLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW0uaHRtbH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBDSURSIE1hc2sgZm9yIFZwY1xuICAgKiBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgQVdTIElwYW1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuZXRtYXNrIGxlbmd0aCBmb3IgSVBBTSBhdHRhY2hlZCB0byBWUEMgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IG5ldG1hc2tMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElwdjQgb3IgYW4gSXB2NiBJUEFNIHBvb2xcbiAgICogT25seSByZXF1aXJlZCB3aGVuIHVzaW5nIEFXUyBJcGFtXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcG9vbCBhdHRhY2hlZCB0byBWUEMgc2Vjb25kYXJ5IGFkZHJlc3NcbiAgICovXG4gIHJlYWRvbmx5IGlwYW1Qb29sPzogSUlwYW1Qb29sO1xuXG4gIC8qKlxuICAgKiBSZXF1aXJlZCB0byBzZXQgU2Vjb25kYXJ5IGNpZHIgYmxvY2sgcmVzb3VyY2UgbmFtZVxuICAgKiBpbiBvcmRlciB0byBnZW5lcmF0ZSB1bmlxdWUgbG9naWNhbCBpZCBmb3IgdGhlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2lkckJsb2NrTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgSXBhbVNjb3BlIENsYXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUlwYW1TY29wZUJhc2Uge1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgc2NvcGUgb2Ygc3RhY2sgdG8gYmUgcGFzc2VkIGluIG9yZGVyIHRvIGNyZWF0ZVxuICAgKiBhIG5ldyBJUEFNIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgU2NvcGUgaWRzIGNyZWF0ZWQgYnkgdGhlIElQQU0gb3IgYSBuZXcgUmVzb3VyY2UgaWRcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBzY29wZSB0eXBlIGNhbiBiZSBlaXRoZXIgZGVmYXVsdCBvciBjdXN0b21cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlVHlwZT86IElwYW1TY29wZVR5cGU7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGFkZCBhIG5ldyBwb29sIHRvIGFuIElQQU0gc2NvcGVcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2w7XG5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIG5ldyBJUEFNIFBvb2xcbiAqIFBvb2xzIGVuYWJsZSB5b3UgdG8gb3JnYW5pemUgeW91ciBJUCBhZGRyZXNzZXMgYWNjb3JkaW5nIHRvIHlvdXIgcm91dGluZyBhbmQgc2VjdXJpdHkgbmVlZHNcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtcG9vbC5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OklQQU1Qb29sXG4gKiBAaW50ZXJuYWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgSXBhbVBvb2wgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElJcGFtUG9vbCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtUG9vbCc7XG4gIC8qKlxuICAgKiBQb29sIElEIHRvIGJlIHBhc3NlZCB0byB0aGUgVlBDIGNvbnN0cnVjdFxuICAgKiBAYXR0cmlidXRlIElwYW1Qb29sSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBvb2wgQ0lEUiBmb3IgSVB2NiB0byBiZSBwcm92aXNpb25lZCB3aXRoIFB1YmxpYyBJUCBzb3VyY2Ugc2V0IHRvICdBbWF6b24nXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbUNpZHJzOiBDZm5JUEFNUG9vbENpZHJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBQb29sIENJRFIgZm9yIElQdjQgdG8gYmUgcHJvdmlzaW9uZWQgdXNpbmcgSVBBTVxuICAgKiBSZXF1aXJlZCB0byBjaGVjayBmb3Igc3VibmV0IElQIHJhbmdlIGlzIHdpdGhpbiB0aGUgVlBDIHJhbmdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXBhbUlwdjRDaWRyczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIGlwYW1Qb29sIHJlc291cmNlIGNyZWF0ZWQgaW4gdGhpcyBjbGFzc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaXBhbVBvb2w6IENmbklQQU1Qb29sO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtUG9vbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmlwYW1Qb29sTmFtZSA/PyBMYXp5LnN0cmluZyh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTI4LCBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6ICdfJyB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmFkZHJlc3NGYW1pbHkgPT09IEFkZHJlc3NGYW1pbHkuSVBfVjYgJiYgIXByb3BzLmF3c1NlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXdzU2VydmljZSBpcyByZXF1aXJlZCB3aGVuIGFkZHJlc3NGYW1pbHkgaXMgc2V0IHRvIGlwdjYnKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGFncyB0byB0aGUgSVBBTSBQb29sIGlmIG5hbWUgaXMgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuaXBhbVBvb2xOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaXBhbVBvb2xOYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pcGFtUG9vbCA9IG5ldyBDZm5JUEFNUG9vbCh0aGlzLCBpZCwge1xuICAgICAgYWRkcmVzc0ZhbWlseTogcHJvcHMuYWRkcmVzc0ZhbWlseSxcbiAgICAgIHByb3Zpc2lvbmVkQ2lkcnM6IHByb3BzLmlwdjRQcm92aXNpb25lZENpZHJzPy5tYXAoY2lkciA9PiAoeyBjaWRyIH0pKSxcbiAgICAgIGxvY2FsZTogcHJvcHMubG9jYWxlLFxuICAgICAgaXBhbVNjb3BlSWQ6IHByb3BzLmlwYW1TY29wZUlkLFxuICAgICAgcHVibGljSXBTb3VyY2U6IHByb3BzLnB1YmxpY0lwU291cmNlLFxuICAgICAgYXdzU2VydmljZTogcHJvcHMuYXdzU2VydmljZSxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1Qb29sSWQgPSB0aGlzLl9pcGFtUG9vbC5hdHRySXBhbVBvb2xJZDtcblxuICAgIC8vIFBvcHVsYXRpbmcgdG8gY2hlY2sgZm9yIHN1Ym5ldCByYW5nZSBhZ2FpbnN0IGFsbCBJUHY0IHJhbmdlcyBhc3NpZ25lZCB0byBWUEMgaW5jbHVkaW5nIElQQU1cbiAgICBwcm9wcy5pcHY0UHJvdmlzaW9uZWRDaWRycz8ubWFwKGNpZHIgPT4gKHRoaXMuaXBhbUlwdjRDaWRycy5wdXNoKGNpZHIpKSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuX2lwYW1Qb29sO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ0lEUiBwcm92aXNpb25lZCB0byBhbiBJUEFNIHBvb2wuXG4gICAqIEBwYXJhbSBpZCBOYW1lIG9mIFJlc291cmNlXG4gICAqIEBwYXJhbSBvcHRpb25zIEVpdGhlciBhIENJRFIgb3IgbmV0bWFzayBsZW5ndGggbXVzdCBiZSBwcm92aWRlZFxuICAgKiBAcmV0dXJucyBBV1M6OkVDMjo6SVBBTVBvb2xDaWRyXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgcHJvdmlzaW9uQ2lkcihpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtUG9vbENpZHJQcm92aXNpb25pbmdPcHRpb25zKTogQ2ZuSVBBTVBvb2xDaWRyIHtcbiAgICBjb25zdCBjaWRyID0gbmV3IENmbklQQU1Qb29sQ2lkcih0aGlzLCBpZCwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGlwYW1Qb29sSWQ6IHRoaXMuaXBhbVBvb2xJZCxcbiAgICB9KTtcbiAgICB0aGlzLmlwYW1DaWRycy5wdXNoKGNpZHIpO1xuICAgIHJldHVybiBjaWRyO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBjdXN0b20gSXBhbSBTY29wZSwgY3VzdG9tIElQQU0gc2NvcGVzIGNhbiBvbmx5IGJlIHByaXZhdGVcbiAqIChjYW4gYmUgdXNlZCBmb3IgYWRkaW5nIGN1c3RvbSBzY29wZXMgdG8gYW4gZXhpc3RpbmcgSVBBTSlcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICogQHJlc291cmNlIEFXUzo6RUMyOjpJUEFNU2NvcGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuY2xhc3MgSXBhbVNjb3BlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtU2NvcGUnO1xuICAvKipcbiAgICogU3RvcmVzIHRoZSByZWZlcmVuY2UgdG8gbmV3bHkgY3JlYXRlZCBSZXNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaXBhbVNjb3BlOiBDZm5JUEFNU2NvcGU7XG5cbiAgLyoqXG4gICAqIElEIGZvciBSZXNvdXJjZSBJcGFtU2NvcGVcbiAgICogQGF0dHJpYnV0ZSBJcGFtU2NvcGVJZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydGllcyB0byBjb25maWd1cmUgaXBhbSBzY29wZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogSXBhbVNjb3BlUHJvcHM7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBzdGFjayBzY29wZSB0byBiZSBwYXNzZWQgdGhyb3VnaCBhZGRQb29sIG1ldGhvZCBpbm9yZGVyIHRvIGNyZWF0ZSBhIG5ldyBJcGFtUG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgc2NvcGUgdHlwZSBjYW4gYmUgZWl0aGVyIGRlZmF1bHQgb3IgY3VzdG9tXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGVUeXBlOiBJcGFtU2NvcGVUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJcGFtU2NvcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5faXBhbVNjb3BlID0gbmV3IENmbklQQU1TY29wZShzY29wZSwgJ0lwYW1TY29wZScsIHtcbiAgICAgIGlwYW1JZDogcHJvcHMuaXBhbUlkLFxuICAgIH0pO1xuICAgIFRhZ3Mub2YodGhpcy5faXBhbVNjb3BlKS5hZGQoTkFNRV9UQUcsIHByb3BzLmlwYW1TY29wZU5hbWUgPz8gJ0N1c3RvbUlwYW1TY29wZScpO1xuICAgIHRoaXMuc2NvcGVJZCA9IHRoaXMuX2lwYW1TY29wZS5hdHRySXBhbVNjb3BlSWQ7XG4gICAgdGhpcy5zY29wZVR5cGUgPSBJcGFtU2NvcGVUeXBlLkNVU1RPTTtcbiAgICB0aGlzLnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb29sIHRvIHRoZSBJUEFNIHNjb3BlLlxuICAgKiBAZXh0ZXJuYWxcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2wge1xuICAgIHJldHVybiBjcmVhdGVJcGFtUG9vbCh0aGlzLnNjb3BlLCBpZCwgdGhpcy5wcm9wcywgb3B0aW9ucywgdGhpcy5zY29wZUlkKTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIElQQU0gZGVmYXVsdCBzY29wZXMuXG4gKi9cbmNsYXNzIElwYW1TY29wZUJhc2UgaW1wbGVtZW50cyBJSXBhbVNjb3BlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcmVhZG9ubHkgc2NvcGVJZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IElwYW1TY29wZVByb3BzLFxuICAgIHJlYWRvbmx5IHNjb3BlVHlwZT86IElwYW1TY29wZVR5cGUsXG4gICkge1xuICAgIHRoaXMuc2NvcGVUeXBlID0gSXBhbVNjb3BlVHlwZS5ERUZBVUxUO1xuICAgIGlmICghcHJvcHMuaXBhbVNjb3BlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaXBhbVNjb3BlSWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY29wZUlkID0gcHJvcHMuaXBhbVNjb3BlSWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb29sIHRvIHRoZSBJUEFNIHNjb3BlLlxuICAgKiBAZXh0ZXJuYWxcbiAgICovXG4gIGFkZFBvb2woaWQ6IHN0cmluZywgb3B0aW9uczogUG9vbE9wdGlvbnMpOiBJSXBhbVBvb2wge1xuICAgIHJldHVybiBjcmVhdGVJcGFtUG9vbCh0aGlzLnNjb3BlLCBpZCwgdGhpcy5wcm9wcywgb3B0aW9ucywgdGhpcy5zY29wZUlkKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmV3IElQQU0gd2l0aCBkZWZhdWx0IHB1YmxpYyBhbmQgcHJpdmF0ZSBzY29wZVxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLWlwYW1zY29wZS5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OklQQU1cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIElwYW0gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JcGFtJztcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGFjY2VzcyB0byBkZWZhdWx0IHB1YmxpYyBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICAgKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHVibGljIHNjb3BlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pcGFtc2NvcGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHB1YmxpY1Njb3BlOiBJSXBhbVNjb3BlQmFzZTtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYWNjZXNzIHRvIGRlZmF1bHQgcHJpdmF0ZSBJUEFNIHNjb3BlIHRocm91Z2ggYWRkIHBvb2wgbWV0aG9kLlxuICAgKiBVc2FnZTogVG8gYWRkIGFuIElwYW0gUG9vbCB0byBhIGRlZmF1bHQgcHJpdmF0ZSBzY29wZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaXBhbXNjb3BlLmh0bWxcbiAgICogKi9cbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGVTY29wZTogSUlwYW1TY29wZUJhc2U7XG5cbiAgLy8gUmVzb3VyY2UgSVBBTVxuICBwcml2YXRlIHJlYWRvbmx5IF9pcGFtOiBDZm5JUEFNO1xuICAvKipcbiAgICogQWNjZXNzIHRvIElwYW0gcmVzb3VyY2UgaWQgdGhhdCBjYW4gYmUgdXNlZCBsYXRlciB0byBhZGQgYSBjdXN0b20gcHJpdmF0ZSBzY29wZSB0byB0aGlzIElQQU1cbiAgICogQGF0dHJpYnV0ZSBJcGFtSWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpcGFtSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBvcGVyYXRpbmcgcmVnaW9ucyBmb3IgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGluZ1JlZ2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHNjb3BlcyBjcmVhdGVkIHVuZGVyIHRoaXMgSVBBTVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3BlczogSUlwYW1TY29wZUJhc2VbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJUEFNIG5hbWUgdG8gYmUgdXNlZCBmb3IgdGFnZ2luZ1xuICAgKiBAZGVmYXVsdCAtIG5vIHRhZyBzcGVjaWZpZWRcbiAgICogQGF0dHJpYnV0ZSBJcGFtTmFtZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlwYW1OYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSXBhbVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcbiAgICBpZiAocHJvcHM/LmlwYW1OYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaXBhbU5hbWUpO1xuICAgIH1cbiAgICBpZiAocHJvcHM/Lm9wZXJhdGluZ1JlZ2lvbnMgJiYgKHByb3BzLm9wZXJhdGluZ1JlZ2lvbnMubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCBvbmUgb3BlcmF0aW5nIHJlZ2lvbicpO1xuICAgIH1cblxuICAgIHRoaXMub3BlcmF0aW5nUmVnaW9ucyA9IHByb3BzPy5vcGVyYXRpbmdSZWdpb25zID8/IFtTdGFjay5vZih0aGlzKS5yZWdpb25dO1xuICAgIHRoaXMuaXBhbU5hbWUgPSBwcm9wcz8uaXBhbU5hbWU7XG5cbiAgICB0aGlzLl9pcGFtID0gbmV3IENmbklQQU0odGhpcywgJ0lwYW0nLCB7XG4gICAgICBvcGVyYXRpbmdSZWdpb25zOiB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMgPyB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMubWFwKHJlZ2lvbiA9PiAoeyByZWdpb25OYW1lOiByZWdpb24gfSkpIDogW10sXG4gICAgfSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuX2lwYW07XG5cbiAgICB0aGlzLmlwYW1JZCA9IHRoaXMuX2lwYW0uYXR0cklwYW1JZDtcbiAgICB0aGlzLnB1YmxpY1Njb3BlID0gbmV3IElwYW1TY29wZUJhc2UodGhpcywgJ0RlZmF1bHRQdWJsaWNTY29wZScsIHtcbiAgICAgIGlwYW1PcGVyYXRpbmdSZWdpb25zOiB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMsXG4gICAgICBpcGFtSWQ6IHRoaXMuX2lwYW0uYXR0cklwYW1JZCxcbiAgICAgIGlwYW1TY29wZUlkOiB0aGlzLl9pcGFtLmF0dHJQdWJsaWNEZWZhdWx0U2NvcGVJZCxcbiAgICB9KTtcbiAgICB0aGlzLnByaXZhdGVTY29wZSA9IG5ldyBJcGFtU2NvcGVCYXNlKHRoaXMsICdEZWZhdWx0UHJpdmF0ZVNjb3BlJywge1xuICAgICAgaXBhbU9wZXJhdGluZ1JlZ2lvbnM6IHRoaXMub3BlcmF0aW5nUmVnaW9ucyxcbiAgICAgIGlwYW1JZDogdGhpcy5faXBhbS5hdHRySXBhbUlkLFxuICAgICAgaXBhbVNjb3BlSWQ6IHRoaXMuX2lwYW0uYXR0clByaXZhdGVEZWZhdWx0U2NvcGVJZCxcbiAgICB9KTtcblxuICAgIHRoaXMuc2NvcGVzLnB1c2godGhpcy5wdWJsaWNTY29wZSwgdGhpcy5wcml2YXRlU2NvcGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGFkZCBjdXN0b20gc2NvcGUgdG8gYW4gZXhpc3RpbmcgSVBBTVxuICAgKiBDdXN0b20gc2NvcGVzIGNhbiBvbmx5IGJlIHByaXZhdGVcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBhZGRTY29wZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRpb25zOiBJcGFtU2NvcGVPcHRpb25zKTogSUlwYW1TY29wZUJhc2Uge1xuICAgIGNvbnN0IGlwYW1TY29wZSA9IG5ldyBJcGFtU2NvcGUoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgaXBhbUlkOiB0aGlzLmlwYW1JZCxcbiAgICAgIGlwYW1PcGVyYXRpbmdSZWdpb25zOiB0aGlzLm9wZXJhdGluZ1JlZ2lvbnMsXG4gICAgfSk7XG4gICAgdGhpcy5zY29wZXMucHVzaChpcGFtU2NvcGUpO1xuICAgIHJldHVybiBpcGFtU2NvcGU7XG4gIH1cbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB0byBjcmVhdGUgSXBhbVBvb2wgdW5kZXIgc2NvcGVcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBjcmVhdGVJcGFtUG9vbChcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgc2NvcGVPcHRpb25zOiBJcGFtU2NvcGVQcm9wcyxcbiAgcG9vbE9wdGlvbnM6IFBvb2xPcHRpb25zLFxuICBzY29wZUlkOiBzdHJpbmcsXG4pOiBJcGFtUG9vbCB7XG4gIC8vIE9ubHkgY2hlY2sgbG9jYWxlIGlmIGl0J3MgcHJvdmlkZWQgc2luY2UgaXQncyBhbiBvcHRpb25hbCBmaWVsZFxuICBpZiAocG9vbE9wdGlvbnMubG9jYWxlKSB7XG4gICAgY29uc3QgaXNMb2NhbGVJbk9wZXJhdGluZ1JlZ2lvbnMgPSBzY29wZU9wdGlvbnMuaXBhbU9wZXJhdGluZ1JlZ2lvbnNcbiAgICAgID8gc2NvcGVPcHRpb25zLmlwYW1PcGVyYXRpbmdSZWdpb25zLm1hcChyZWdpb24gPT4gKHsgcmVnaW9uTmFtZTogcmVnaW9uIH0pKVxuICAgICAgICAuc29tZShyZWdpb24gPT4gcmVnaW9uLnJlZ2lvbk5hbWUgPT09IHBvb2xPcHRpb25zLmxvY2FsZSlcbiAgICAgIDogZmFsc2U7XG5cbiAgICBpZiAoIWlzTG9jYWxlSW5PcGVyYXRpbmdSZWdpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm92aWRlZCBsb2NhbGUgJyR7cG9vbE9wdGlvbnMubG9jYWxlfScgaXMgbm90IGluIHRoZSBvcGVyYXRpbmcgcmVnaW9ucyAoJHtzY29wZU9wdGlvbnMuaXBhbU9wZXJhdGluZ1JlZ2lvbnN9KS4gYCArXG4gICAgICAgICdJZiBzcGVjaWZpZWQsIGxvY2FsZSBtdXN0IGJlIGNvbmZpZ3VyZWQgYXMgYW4gb3BlcmF0aW5nIHJlZ2lvbiBmb3IgdGhlIElQQU0uJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBJcGFtUG9vbChzY29wZSwgaWQsIHtcbiAgICBpcGFtUG9vbE5hbWU6IHBvb2xPcHRpb25zLmlwYW1Qb29sTmFtZSxcbiAgICBhZGRyZXNzRmFtaWx5OiBwb29sT3B0aW9ucy5hZGRyZXNzRmFtaWx5LFxuICAgIGlwdjRQcm92aXNpb25lZENpZHJzOiBwb29sT3B0aW9ucy5pcHY0UHJvdmlzaW9uZWRDaWRycyxcbiAgICBpcGFtU2NvcGVJZDogc2NvcGVJZCxcbiAgICBsb2NhbGU6IHBvb2xPcHRpb25zLmxvY2FsZSxcbiAgICBwdWJsaWNJcFNvdXJjZTogcG9vbE9wdGlvbnMucHVibGljSXBTb3VyY2UsXG4gICAgYXdzU2VydmljZTogcG9vbE9wdGlvbnMuYXdzU2VydmljZSxcbiAgfSk7XG59XG4iXX0=
|
package/lib/route.d.ts
CHANGED
|
@@ -97,7 +97,7 @@ export interface NatGatewayOptions {
|
|
|
97
97
|
* The maximum amount of time to wait before forcibly releasing the
|
|
98
98
|
* IP addresses if connections are still in progress.
|
|
99
99
|
*
|
|
100
|
-
* @default
|
|
100
|
+
* @default Duration.seconds(350)
|
|
101
101
|
*/
|
|
102
102
|
readonly maxDrainDuration?: Duration;
|
|
103
103
|
/**
|
package/lib/route.js
CHANGED
|
@@ -81,7 +81,7 @@ let EgressOnlyInternetGateway = (() => {
|
|
|
81
81
|
EgressOnlyInternetGateway = _classThis = _classDescriptor.value;
|
|
82
82
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
83
83
|
}
|
|
84
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGateway", version: "2.
|
|
84
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGateway", version: "2.234.1-alpha.0" };
|
|
85
85
|
/** Uniquely identifies this class. */
|
|
86
86
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.EgressOnlyInternetGateway';
|
|
87
87
|
/**
|
|
@@ -144,7 +144,7 @@ let InternetGateway = (() => {
|
|
|
144
144
|
InternetGateway = _classThis = _classDescriptor.value;
|
|
145
145
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
146
146
|
}
|
|
147
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.InternetGateway", version: "2.
|
|
147
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.InternetGateway", version: "2.234.1-alpha.0" };
|
|
148
148
|
/** Uniquely identifies this class. */
|
|
149
149
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.InternetGateway';
|
|
150
150
|
/**
|
|
@@ -218,7 +218,7 @@ let VPNGatewayV2 = (() => {
|
|
|
218
218
|
VPNGatewayV2 = _classThis = _classDescriptor.value;
|
|
219
219
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
220
220
|
}
|
|
221
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VPNGatewayV2", version: "2.
|
|
221
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VPNGatewayV2", version: "2.234.1-alpha.0" };
|
|
222
222
|
/** Uniquely identifies this class. */
|
|
223
223
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.VPNGatewayV2';
|
|
224
224
|
/**
|
|
@@ -316,7 +316,7 @@ let NatGateway = (() => {
|
|
|
316
316
|
NatGateway = _classThis = _classDescriptor.value;
|
|
317
317
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
318
318
|
}
|
|
319
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.NatGateway", version: "2.
|
|
319
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.NatGateway", version: "2.234.1-alpha.0" };
|
|
320
320
|
/** Uniquely identifies this class. */
|
|
321
321
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.NatGateway';
|
|
322
322
|
/**
|
|
@@ -429,7 +429,7 @@ let VPCPeeringConnection = (() => {
|
|
|
429
429
|
VPCPeeringConnection = _classThis = _classDescriptor.value;
|
|
430
430
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
431
431
|
}
|
|
432
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection", version: "2.
|
|
432
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VPCPeeringConnection", version: "2.234.1-alpha.0" };
|
|
433
433
|
/** Uniquely identifies this class. */
|
|
434
434
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.VPCPeeringConnection';
|
|
435
435
|
/**
|
|
@@ -527,7 +527,7 @@ exports.VPCPeeringConnection = VPCPeeringConnection;
|
|
|
527
527
|
* The gateway or endpoint targeted by the route.
|
|
528
528
|
*/
|
|
529
529
|
class RouteTargetType {
|
|
530
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTargetType", version: "2.
|
|
530
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTargetType", version: "2.234.1-alpha.0" };
|
|
531
531
|
/**
|
|
532
532
|
* The gateway route target. This is used for targets such as
|
|
533
533
|
* egress-only internet gateway or VPC peering connection.
|
|
@@ -575,7 +575,7 @@ let Route = (() => {
|
|
|
575
575
|
Route = _classThis = _classDescriptor.value;
|
|
576
576
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
577
577
|
}
|
|
578
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.Route", version: "2.
|
|
578
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.Route", version: "2.234.1-alpha.0" };
|
|
579
579
|
/** Uniquely identifies this class. */
|
|
580
580
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.Route';
|
|
581
581
|
/**
|
|
@@ -688,7 +688,7 @@ let RouteTable = (() => {
|
|
|
688
688
|
RouteTable = _classThis = _classDescriptor.value;
|
|
689
689
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
690
690
|
}
|
|
691
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTable", version: "2.
|
|
691
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTable", version: "2.234.1-alpha.0" };
|
|
692
692
|
/** Uniquely identifies this class. */
|
|
693
693
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.RouteTable';
|
|
694
694
|
/**
|
|
@@ -768,4 +768,4 @@ function routerTypeToPropName(routerType) {
|
|
|
768
768
|
[aws_ec2_1.RouterType.CORE_NETWORK]: 'coreNetworkArn',
|
|
769
769
|
})[routerType];
|
|
770
770
|
}
|
|
771
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBcUM7QUFDckMsaURBQWtTO0FBQ2xTLDJDQUFtSDtBQUNuSCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFLGlDQUFtRTtBQUduRTs7OztHQUlHO0FBQ0gsSUFBWSxtQkFTWDtBQVRELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsd0NBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCwwQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFTOUI7QUE4TEQ7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFFaEM7OztHQUdHO0lBRVUseUJBQXlCOzRCQURyQyxvQ0FBa0I7Ozs7c0JBQzRCLGVBQVE7eUNBQWhCLFNBQVEsV0FBUTs7OztZQUF2RCw2S0FtQ0M7Ozs7O1FBbENDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsa0RBQWtELENBQUM7UUFDMUc7O1dBRUc7UUFDTSxVQUFVLENBQWE7UUFFaEM7O1dBRUc7UUFDTSxjQUFjLENBQVM7UUFFaEM7O1dBRUc7UUFDYSxRQUFRLENBQStCO1FBRXZELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUM7WUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQW5CUix5QkFBeUI7Ozs7WUFvQmxDLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO2dCQUN4QyxXQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLDZC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QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3hfYXBpIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuRUlQLCBDZm5FZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5LCBDZm5JbnRlcm5ldEdhdGV3YXksIENmbk5hdEdhdGV3YXksIENmblZQQ1BlZXJpbmdDb25uZWN0aW9uLCBDZm5Sb3V0ZSwgQ2ZuUm91dGVUYWJsZSwgQ2ZuVlBDR2F0ZXdheUF0dGFjaG1lbnQsIENmblZQTkdhdGV3YXksIENmblZQTkdhdGV3YXlSb3V0ZVByb3BhZ2F0aW9uLCBHYXRld2F5VnBjRW5kcG9pbnQsIElSb3V0ZVRhYmxlLCBJVnBjRW5kcG9pbnQsIFJvdXRlclR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBEdXJhdGlvbiwgRmVhdHVyZUZsYWdzLCBJUmVzb3VyY2UsIFJlc291cmNlLCBUYWdzLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElEZXBlbmRhYmxlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJU3VibmV0VjIgfSBmcm9tICcuL3N1Ym5ldC12Mic7XG5pbXBvcnQgeyBOZXR3b3JrVXRpbHMsIGFsbFJvdXRlVGFibGVJZHMsIENpZHJCbG9jayB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBJVnBjVjIsIFZQTkdhdGV3YXlWMk9wdGlvbnMgfSBmcm9tICcuL3ZwYy12Mi1iYXNlJztcblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTkFUIGdhdGV3YXkgc3VwcG9ydHMgcHVibGljIG9yIHByaXZhdGUgY29ubmVjdGl2aXR5LlxuICogVGhlIGRlZmF1bHQgaXMgcHVibGljIGNvbm5lY3Rpdml0eS5cbiAqIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1uYXRnYXRld2F5Lmh0bWwjY2ZuLWVjMi1uYXRnYXRld2F5LWNvbm5lY3Rpdml0eXR5cGVcbiAqL1xuZXhwb3J0IGVudW0gTmF0Q29ubmVjdGl2aXR5VHlwZSB7XG4gIC8qKlxuICAgKiBTZXRzIENvbm5lY3Rpdml0eSB0eXBlIHRvIFBVQkxJQ1xuICAgKi9cbiAgUFVCTElDID0gJ3B1YmxpYycsXG4gIC8qKlxuICAgKiBTZXRzIENvbm5lY3Rpdml0eSB0eXBlIHRvIFBSSVZBVEVcbiAgICovXG4gIFBSSVZBVEUgPSAncHJpdmF0ZScsXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRvIGRlZmluZSBhIHJvdXRpbmcgdGFyZ2V0LCBzdWNoIGFzIGFuXG4gKiBlZ3Jlc3Mtb25seSBpbnRlcm5ldCBnYXRld2F5IG9yIFZQQyBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm91dGVUYXJnZXQgZXh0ZW5kcyBJRGVwZW5kYWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdXNlZCBpbiB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYW4gZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5UHJvcHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwY1YyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgbmFtZSBvZiB0aGUgZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm92aXNpb25lZCB3aXRob3V0IGEgcmVzb3VyY2UgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWdyZXNzT25seUludGVybmV0R2F0ZXdheU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYW4gaW50ZXJuZXQgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5ldEdhdGV3YXlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBpbnRlcm5ldCBnYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjVjI7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSBpbnRlcm5ldCBnYXRld2F5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb3Zpc2lvbmVkIHdpdGhvdXQgYSByZXNvdXJjZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBpbnRlcm5ldEdhdGV3YXlOYW1lPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYSBWUE4gZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWUE5HYXRld2F5VjJQcm9wcyBleHRlbmRzIFZQTkdhdGV3YXlWMk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBWUE4gZ2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwY1YyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gZGVmaW5lIGEgTkFUIGdhdGV3YXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0R2F0ZXdheU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHN1Ym5ldCBpbiB3aGljaCB0aGUgTkFUIGdhdGV3YXkgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldDogSVN1Ym5ldFYyO1xuXG4gIC8qKlxuICAgKiBBbGxvY2F0aW9uSUQgb2YgRWxhc3RpYyBJUCBhZGRyZXNzIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggdGhlIE5BVCBnYXRld2F5LiBUaGlzIHByb3BlcnR5IGlzIHJlcXVpcmVkIGZvciBhIHB1YmxpYyBOQVRcbiAgICogZ2F0ZXdheSBhbmQgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIGEgcHJpdmF0ZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdHRyLmFsbG9jYXRpb25JRCBvZiBhIG5ldyBFbGFzdGljIElQIGNyZWF0ZWQgYnkgZGVmYXVsdFxuICAgKiAvL1RPRE86IEFERCBMMiBmb3IgZWxhc3RpYyBpcFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb2NhdGlvbklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTkFUIGdhdGV3YXkgc3VwcG9ydHMgcHVibGljIG9yIHByaXZhdGUgY29ubmVjdGl2aXR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBOYXRDb25uZWN0aXZpdHlUeXBlLlB1YmxpY1xuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGl2aXR5VHlwZT86IE5hdENvbm5lY3Rpdml0eVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgYmVmb3JlIGZvcmNpYmx5IHJlbGVhc2luZyB0aGVcbiAgICogSVAgYWRkcmVzc2VzIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGlsbCBpbiBwcm9ncmVzcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMzUwc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4RHJhaW5EdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MgdG8gYXNzaWduIHRvIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhbiBhZGRyZXNzLCBhIHByaXZhdGUgSVB2NCBhZGRyZXNzIHdpbGwgYmUgYXV0b21hdGljYWxseSBhc3NpZ25lZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBFSVAgYWxsb2NhdGlvbiBJRHMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1uYXQtZ2F0ZXdheS5odG1sI25hdC1nYXRld2F5LWNyZWF0aW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2Vjb25kYXJ5IGFsbG9jYXRpb24gSURzIGF0dGFjaGVkIHRvIE5BVEdXXG4gICAqXG4gICAqL1xuICByZWFkb25seSBzZWNvbmRhcnlBbGxvY2F0aW9uSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzZXMgeW91XG4gICAqIHdhbnQgdG8gYXNzaWduIHRvIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogYFNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudGAgYW5kIGBTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzZXNgIGNhbm5vdCBiZVxuICAgKiBzZXQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL2xhdGVzdC91c2VyZ3VpZGUvdnBjLW5hdC1nYXRld2F5Lmh0bWwjbmF0LWdhdGV3YXktY3JlYXRpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWNvbmRhcnkgYWxsb2NhdGlvbiBJRHMgYXNzb2NpYXRlZCB3aXRoIE5BVEdXXG4gICAqL1xuICByZWFkb25seSBzZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzLlxuICAgKlxuICAgKiBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YCBhbmQgYFNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3Nlc2AgY2Fubm90IGJlXG4gICAqIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNlY29uZGFyeSBwcml2YXRlIElwQWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCBOQVRHV1xuICAgKi9cbiAgcmVhZG9ubHkgc2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOQVRHVyBwcm92aXNpb25lZCB3aXRob3V0IGFueSBuYW1lXG4gICAqL1xuICByZWFkb25seSBuYXRHYXRld2F5TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGRlZmluZSBhIE5BVCBnYXRld2F5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdEdhdGV3YXlQcm9wcyBleHRlbmRzIE5hdEdhdGV3YXlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgVlBDIGluIHdoaWNoIHRoZSBOQVQgZ2F0ZXdheSBpcyBsb2NhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVsYXN0aWMgaXAgYXNzb2NpYXRlZCwgcmVxdWlyZWQgaW4gY2FzZSBvZiBwdWJsaWMgY29ubmVjdGl2aXR5IGlmIGBBbGxvY2F0aW9uSWRgIGlzIG5vdCBkZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBJVnBjVjI7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBkZWZpbmUgYSBWUEMgcGVlcmluZyBjb25uZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZQQ1BlZXJpbmdDb25uZWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoYXQgaXMgYWNjZXB0aW5nIHRoZSBwZWVyaW5nIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBhY2NlcHRvclZwYzogSVZwY1YyO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSBhcm4gY3JlYXRlZCBpbiB0aGUgYWNjZXB0b3IgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwZWVyUm9sZUFybiBuZWVkZWQgaWYgbm90IGNyb3NzIGFjY291bnQgY29ubmVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGVlclJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSBwZWVyaW5nIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcGVlcmluZyBjb25uZWN0aW9uIHByb3Zpc2lvbmVkIHdpdGhvdXQgYW55IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHZwY1BlZXJpbmdDb25uZWN0aW9uTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGRlZmluZSBhIFZQQyBwZWVyaW5nIGNvbm5lY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVlBDUGVlcmluZ0Nvbm5lY3Rpb25Qcm9wcyBleHRlbmRzIFZQQ1BlZXJpbmdDb25uZWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgcGVlcmluZyBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdG9yVnBjOiBJVnBjVjI7XG59XG5cbi8qKlxuICogTmFtZSB0YWcgY29uc3RhbnRcbiAqL1xuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9ICdOYW1lJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVncmVzcy1vbmx5IGludGVybmV0IGdhdGV3YXlcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6RWdyZXNzT25seUludGVybmV0R2F0ZXdheVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgRWdyZXNzT25seUludGVybmV0R2F0ZXdheSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJvdXRlVGFyZ2V0IHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXknO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGVyIHVzZWQgaW4gdGhlIHJvdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyVHlwZTogUm91dGVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUYXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheSBDRk4gcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmbkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuZWdyZXNzT25seUludGVybmV0R2F0ZXdheU5hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcy5lZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5TmFtZSk7XG4gICAgfVxuICAgIHRoaXMucm91dGVyVHlwZSA9IFJvdXRlclR5cGUuRUdSRVNTX09OTFlfSU5URVJORVRfR0FURVdBWTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuRWdyZXNzT25seUludGVybmV0R2F0ZXdheSh0aGlzLCAnRUlHVycsIHtcbiAgICAgIHZwY0lkOiBwcm9wcy52cGMudnBjSWQsXG4gICAgfSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMucmVzb3VyY2U7XG5cbiAgICB0aGlzLnJvdXRlclRhcmdldElkID0gdGhpcy5yZXNvdXJjZS5hdHRySWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGludGVybmV0IGdhdGV3YXlcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6SW50ZXJuZXRHYXRld2F5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBJbnRlcm5ldEdhdGV3YXkgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSb3V0ZVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5JbnRlcm5ldEdhdGV3YXknO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGVyIHVzZWQgaW4gdGhlIHJvdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyVHlwZTogUm91dGVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUYXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBpbnRlcm5ldCBnYXRld2F5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5ldCBnYXRld2F5IENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogQ2ZuSW50ZXJuZXRHYXRld2F5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnRlcm5ldEdhdGV3YXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnJvdXRlclR5cGUgPSBSb3V0ZXJUeXBlLkdBVEVXQVk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmbkludGVybmV0R2F0ZXdheSh0aGlzLCAnSUdXJywge30pO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLnJlc291cmNlO1xuXG4gICAgdGhpcy5yb3V0ZXJUYXJnZXRJZCA9IEZlYXR1cmVGbGFncy5vZih0aGlzKS5pc0VuYWJsZWQoY3hfYXBpLlVTRV9SRVNPVVJDRUlEX0ZPUl9WUENWMl9NSUdSQVRJT04pID9cbiAgICAgIHRoaXMucmVzb3VyY2UucmVmIDogdGhpcy5yZXNvdXJjZS5hdHRySW50ZXJuZXRHYXRld2F5SWQ7XG4gICAgdGhpcy52cGNJZCA9IHByb3BzLnZwYy52cGNJZDtcblxuICAgIGlmIChwcm9wcy5pbnRlcm5ldEdhdGV3YXlOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaW50ZXJuZXRHYXRld2F5TmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnZwYy52cGNOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZCgnTmFtZScsIHByb3BzLnZwYy52cGNOYW1lKTtcbiAgICB9XG5cbiAgICBuZXcgQ2ZuVlBDR2F0ZXdheUF0dGFjaG1lbnQodGhpcywgJ0dXQXR0YWNobWVudCcsIHtcbiAgICAgIHZwY0lkOiB0aGlzLnZwY0lkLFxuICAgICAgaW50ZXJuZXRHYXRld2F5SWQ6IHRoaXMucm91dGVyVGFyZ2V0SWQsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdmlydHVhbCBwcml2YXRlIGdhdGV3YXlcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6VlBOR2F0ZXdheVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVlBOR2F0ZXdheVYyIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1lYzItYWxwaGEuVlBOR2F0ZXdheVYyJztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJvdXRlciB1c2VkIGluIHRoZSByb3V0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclR5cGU6IFJvdXRlclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgcm91dGUgdGFyZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyVGFyZ2V0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgVlBOIGdhdGV3YXkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFZQTiBnYXRld2F5IENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogQ2ZuVlBOR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIFZQTiBHYXRld2F5IEF0dGFjaG1lbnRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2F0dGFjaG1lbnQ6IENmblZQQ0dhdGV3YXlBdHRhY2htZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgVlBOIEdhdGV3YXkgUm91dGUgUHJvcGFnYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlUHJvcGFnYXRpb246IENmblZQTkdhdGV3YXlSb3V0ZVByb3BhZ2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWUE5HYXRld2F5VjJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy52cG5HYXRld2F5TmFtZSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucm91dGVyVHlwZSA9IFJvdXRlclR5cGUuR0FURVdBWTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuVlBOR2F0ZXdheSh0aGlzLCAnSUdXJywge1xuICAgICAgdHlwZTogcHJvcHMudHlwZSxcbiAgICAgIGFtYXpvblNpZGVBc246IHByb3BzLmFtYXpvblNpZGVBc24sXG4gICAgfSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMucmVzb3VyY2U7XG5cbiAgICB0aGlzLnJvdXRlclRhcmdldElkID0gdGhpcy5yZXNvdXJjZS5hdHRyVnBuR2F0ZXdheUlkO1xuXG4gICAgdGhpcy52cGNJZCA9IHByb3BzLnZwYy52cGNJZDtcbiAgICB0aGlzLl9hdHRhY2htZW50ID0gbmV3IENmblZQQ0dhdGV3YXlBdHRhY2htZW50KHRoaXMsICdWUENWUE5HVycsIHtcbiAgICAgIHZwY0lkOiB0aGlzLnZwY0lkLFxuICAgICAgdnBuR2F0ZXdheUlkOiB0aGlzLnJlc291cmNlLmF0dHJWcG5HYXRld2F5SWQsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMudnBuR2F0ZXdheU5hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcy52cG5HYXRld2F5TmFtZSk7XG4gICAgfVxuXG4gICAgLy8gUHJvcGFnYXRlIHJvdXRlcyBvbiByb3V0ZSB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByaWdodCBzdWJuZXRzXG4gICAgY29uc3QgdnBuUm91dGVQcm9wYWdhdGlvbiA9IHByb3BzLnZwblJvdXRlUHJvcGFnYXRpb24gPz8gW107XG4gICAgY29uc3Qgc3VibmV0cyA9IHZwblJvdXRlUHJvcGFnYXRpb24ubWFwKHMgPT4gcHJvcHMudnBjLnNlbGVjdFN1Ym5ldHMocykuc3VibmV0cykuZmxhdCgpO1xuICAgIGNvbnN0IHJvdXRlVGFibGVJZHMgPSBhbGxSb3V0ZVRhYmxlSWRzKHN1Ym5ldHMpO1xuXG4gICAgaWYgKHJvdXRlVGFibGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkV2FybmluZ1YyKCdAYXdzLWNkazphd3MtZWMyLWVscGhhOmVuYWJsZVZwbkdhdGV3YXlWMicsIGBObyBzdWJuZXRzIG1hdGNoaW5nIHNlbGVjdGlvbjogJyR7SlNPTi5zdHJpbmdpZnkodnBuUm91dGVQcm9wYWdhdGlvbil9Jy4gU2VsZWN0IG90aGVyIHN1Ym5ldHMgdG8gYWRkIHJvdXRlcyB0by5gKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yb3V0ZVByb3BhZ2F0aW9uID0gbmV3IENmblZQTkdhdGV3YXlSb3V0ZVByb3BhZ2F0aW9uKHRoaXMsICdSb3V0ZVByb3BhZ2F0aW9uJywge1xuICAgICAgcm91dGVUYWJsZUlkcyxcbiAgICAgIHZwbkdhdGV3YXlJZDogdGhpcy5yb3V0ZXJUYXJnZXRJZCxcbiAgICB9KTtcbiAgICAvLyBUaGUgQVdTOjpFQzI6OlZQTkdhdGV3YXlSb3V0ZVByb3BhZ2F0aW9uIHJlc291cmNlIGNhbm5vdCB1c2UgdGhlIFZQTiBnYXRld2F5XG4gICAgLy8gdW50aWwgaXQgaGFzIHN1Y2Nlc3NmdWxseSBhdHRhY2hlZCB0byB0aGUgVlBDLlxuICAgIC8vIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLXZwbi1nYXRld2F5cm91dGVwcm9wLmh0bWxcbiAgICB0aGlzLl9yb3V0ZVByb3BhZ2F0aW9uLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLl9hdHRhY2htZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXR3b3JrIGFkZHJlc3MgdHJhbnNsYXRpb24gKE5BVCkgZ2F0ZXdheVxuICogQHJlc291cmNlIEFXUzo6RUMyOjpOYXRHYXRld2F5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBOYXRHYXRld2F5IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1lYzItYWxwaGEuTmF0R2F0ZXdheSc7XG4gIC8qKlxuICAgKiBJZCBvZiB0aGUgTmF0R2F0ZXdheVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmF0R2F0ZXdheUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJvdXRlciB1c2VkIGluIHRoZSByb3V0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJUYXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTkFUIGdhdGV3YXkgc3VwcG9ydHMgcHVibGljIG9yIHByaXZhdGUgY29ubmVjdGl2aXR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBwdWJsaWNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aXZpdHlUeXBlPzogTmF0Q29ubmVjdGl2aXR5VHlwZTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgdG8gd2FpdCBiZWZvcmUgZm9yY2libHkgcmVsZWFzaW5nIHRoZVxuICAgKiBJUCBhZGRyZXNzZXMgaWYgY29ubmVjdGlvbnMgYXJlIHN0aWxsIGluIHByb2dyZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMzUwIHNlY29uZHMnXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4RHJhaW5EdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgTkFUIGdhdGV3YXkgQ0ZOIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBDZm5OYXRHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBFbGFzdGljIElQIGNyZWF0ZWQgZm9yIGFsbG9jYXRpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlaXA/OiBDZm5FSVA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5hdEdhdGV3YXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnJvdXRlclR5cGUgPSBSb3V0ZXJUeXBlLk5BVF9HQVRFV0FZO1xuXG4gICAgdGhpcy5jb25uZWN0aXZpdHlUeXBlID0gcHJvcHMuY29ubmVjdGl2aXR5VHlwZSB8fCBOYXRDb25uZWN0aXZpdHlUeXBlLlBVQkxJQztcbiAgICB0aGlzLm1heERyYWluRHVyYXRpb24gPSBwcm9wcy5tYXhEcmFpbkR1cmF0aW9uIHx8IER1cmF0aW9uLnNlY29uZHMoMzUwKTtcblxuICAgIGlmICh0aGlzLmNvbm5lY3Rpdml0eVR5cGUgPT09IE5hdENvbm5lY3Rpdml0eVR5cGUuUFVCTElDKSB7XG4gICAgICBpZiAoIXByb3BzLnZwYyAmJiAhcHJvcHMuYWxsb2NhdGlvbklkKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0VpdGhlciBwcm92aWRlIHZwYyBvciBhbGxvY2F0aW9uSWQnLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMubmF0R2F0ZXdheU5hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcz8ubmF0R2F0ZXdheU5hbWUpO1xuICAgIH1cblxuICAgIC8vIElmIHVzZXIgZG9lcyBub3QgcHJvdmlkZSBFSVAsIGdlbmVyYXRlIG9uZSBmb3IgdGhlbVxuICAgIHZhciBhSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5jb25uZWN0aXZpdHlUeXBlID09PSBOYXRDb25uZWN0aXZpdHlUeXBlLlBVQkxJQykge1xuICAgICAgaWYgKCFwcm9wcy5hbGxvY2F0aW9uSWQpIHtcbiAgICAgICAgdGhpcy5laXAgPSBuZXcgQ2ZuRUlQKHRoaXMsICdFSVAnLCB7XG4gICAgICAgICAgZG9tYWluOiAndnBjJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGFJZCA9IHRoaXMuZWlwLmF0dHJBbGxvY2F0aW9uSWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhSWQgPSBwcm9wcy5hbGxvY2F0aW9uSWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5OYXRHYXRld2F5KHRoaXMsICdOQVRHYXRld2F5Jywge1xuICAgICAgc3VibmV0SWQ6IHByb3BzLnN1Ym5ldC5zdWJuZXRJZCxcbiAgICAgIGFsbG9jYXRpb25JZDogYUlkLFxuICAgICAgbWF4RHJhaW5EdXJhdGlvblNlY29uZHM6IHByb3BzLm1heERyYWluRHVyYXRpb24/LnRvU2Vjb25kcygpLFxuICAgICAgc2Vjb25kYXJ5QWxsb2NhdGlvbklkczogcHJvcHMuc2Vjb25kYXJ5QWxsb2NhdGlvbklkcyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMubmF0R2F0ZXdheUlkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJOYXRHYXRld2F5SWQ7XG5cbiAgICB0aGlzLnJvdXRlclRhcmdldElkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJOYXRHYXRld2F5SWQ7XG5cbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5zdWJuZXQuaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcGVlcmluZyBjb25uZWN0aW9uIGJldHdlZW4gdHdvIFZQQ3NcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6VlBDUGVlcmluZ0Nvbm5lY3Rpb25cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFZQQ1BlZXJpbmdDb25uZWN0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1lYzItYWxwaGEuVlBDUGVlcmluZ0Nvbm5lY3Rpb24nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGVyIHVzZWQgaW4gdGhlIHJvdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyVHlwZTogUm91dGVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUYXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHBlZXJpbmcgY29ubmVjdGlvbiBDRk4gcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblZQQ1BlZXJpbmdDb25uZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWUENQZWVyaW5nQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucm91dGVyVHlwZSA9IFJvdXRlclR5cGUuVlBDX1BFRVJJTkdfQ09OTkVDVElPTjtcblxuICAgIGNvbnN0IGlzQ3Jvc3NBY2NvdW50ID0gcHJvcHMucmVxdWVzdG9yVnBjLm93bmVyQWNjb3VudElkICE9PSBwcm9wcy5hY2NlcHRvclZwYy5vd25lckFjY291bnRJZDtcblxuICAgIGlmICghaXNDcm9zc0FjY291bnQgJiYgcHJvcHMucGVlclJvbGVBcm4pIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ3BlZXJSb2xlQXJuIGlzIG5vdCBuZWVkZWQgZm9yIHNhbWUgYWNjb3VudCBwZWVyaW5nJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ3Jvc3NBY2NvdW50ICYmICFwcm9wcy5wZWVyUm9sZUFybikge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQ3Jvc3MgYWNjb3VudCBWUEMgcGVlcmluZyByZXF1aXJlcyBwZWVyUm9sZUFybicsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXAgPSB0aGlzLnZhbGlkYXRlVnBjQ2lkck92ZXJsYXAocHJvcHMucmVxdWVzdG9yVnBjLCBwcm9wcy5hY2NlcHRvclZwYyk7XG4gICAgaWYgKG92ZXJsYXApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0NJRFIgYmxvY2sgc2hvdWxkIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlciBmb3IgZXN0YWJsaXNoaW5nIGEgcGVlcmluZyBjb25uZWN0aW9uJywgdGhpcyk7XG4gICAgfVxuICAgIGlmIChwcm9wcy52cGNQZWVyaW5nQ29ubmVjdGlvbk5hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcy52cGNQZWVyaW5nQ29ubmVjdGlvbk5hbWUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuVlBDUGVlcmluZ0Nvbm5lY3Rpb24odGhpcywgJ1ZQQ1BlZXJpbmdDb25uZWN0aW9uJywge1xuICAgICAgdnBjSWQ6IHByb3BzLnJlcXVlc3RvclZwYy52cGNJZCxcbiAgICAgIHBlZXJWcGNJZDogcHJvcHMuYWNjZXB0b3JWcGMudnBjSWQsXG4gICAgICBwZWVyT3duZXJJZDogcHJvcHMuYWNjZXB0b3JWcGMub3duZXJBY2NvdW50SWQsXG4gICAgICBwZWVyUmVnaW9uOiBwcm9wcy5hY2NlcHRvclZwYy5yZWdpb24sXG4gICAgICBwZWVyUm9sZUFybjogaXNDcm9zc0FjY291bnQgPyBwcm9wcy5wZWVyUm9sZUFybiA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyVGFyZ2V0SWQgPSB0aGlzLnJlc291cmNlLmF0dHJJZDtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgaWYgdGhlIHByb3ZpZGVkIElQdjQgQ0lEUiBibG9jayBvdmVybGFwcyB3aXRoIGV4aXN0aW5nIHN1Ym5ldCBDSURSIGJsb2NrcyB3aXRoaW4gdGhlIGdpdmVuIFZQQy5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RvclZwYyBUaGUgVlBDIG9mIHRoZSByZXF1ZXN0b3IuXG4gICAqIEBwYXJhbSBhY2NlcHRvclZwYyBUaGUgVlBDIG9mIHRoZSBhY2NlcHRvci5cbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgSVB2NCBDSURSIGJsb2NrIG92ZXJsYXBzIHdpdGggZWFjaCBvdGhlciBmb3IgdHdvIFZQQ3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVnBjQ2lkck92ZXJsYXAocmVxdWVzdG9yVnBjOiBJVnBjVjIsIGFjY2VwdG9yVnBjOiBJVnBjVjIpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1ZXN0b3JDaWRycyA9IFtyZXF1ZXN0b3JWcGMuaXB2NENpZHJCbG9ja107XG4gICAgY29uc3QgYWNjZXB0b3JDaWRycyA9IFthY2NlcHRvclZwYy5pcHY0Q2lkckJsb2NrXTtcblxuICAgIGlmIChyZXF1ZXN0b3JWcGMuc2Vjb25kYXJ5Q2lkckJsb2NrKSB7XG4gICAgICByZXF1ZXN0b3JDaWRycy5wdXNoKC4uLnJlcXVlc3RvclZwYy5zZWNvbmRhcnlDaWRyQmxvY2tcbiAgICAgICAgLm1hcChibG9jayA9PiBibG9jay5jaWRyQmxvY2spXG4gICAgICAgIC5maWx0ZXIoKGNpZHIpOiBjaWRyIGlzIHN0cmluZyA9PiBjaWRyICE9PSB1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBpZiAoYWNjZXB0b3JWcGMuc2Vjb25kYXJ5Q2lkckJsb2NrKSB7XG4gICAgICBhY2NlcHRvckNpZHJzLnB1c2goLi4uYWNjZXB0b3JWcGMuc2Vjb25kYXJ5Q2lkckJsb2NrXG4gICAgICAgIC5tYXAoYmxvY2sgPT4gYmxvY2suY2lkckJsb2NrKVxuICAgICAgICAuZmlsdGVyKChjaWRyKTogY2lkciBpcyBzdHJpbmcgPT4gY2lkciAhPT0gdW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZXF1ZXN0b3JDaWRyIG9mIHJlcXVlc3RvckNpZHJzKSB7XG4gICAgICBjb25zdCByZXF1ZXN0b3JSYW5nZSA9IG5ldyBDaWRyQmxvY2socmVxdWVzdG9yQ2lkcik7XG4gICAgICBjb25zdCByZXF1ZXN0b3JJcFJhbmdlOiBbc3RyaW5nLCBzdHJpbmddID0gW3JlcXVlc3RvclJhbmdlLm1pbklwKCksIHJlcXVlc3RvclJhbmdlLm1heElwKCldO1xuXG4gICAgICBmb3IgKGNvbnN0IGFjY2VwdG9yQ2lkciBvZiBhY2NlcHRvckNpZHJzKSB7XG4gICAgICAgIGNvbnN0IGFjY2VwdG9yUmFuZ2UgPSBuZXcgQ2lkckJsb2NrKGFjY2VwdG9yQ2lkcik7XG4gICAgICAgIGNvbnN0IGFjY2VwdG9ySXBSYW5nZTogW3N0cmluZywgc3RyaW5nXSA9IFthY2NlcHRvclJhbmdlLm1pbklwKCksIGFjY2VwdG9yUmFuZ2UubWF4SXAoKV07XG5cbiAgICAgICAgaWYgKHJlcXVlc3RvclJhbmdlLnJhbmdlc092ZXJsYXAoYWNjZXB0b3JJcFJhbmdlLCByZXF1ZXN0b3JJcFJhbmdlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgZW5kcG9pbnQgb3IgZ2F0ZXdheSBiZWluZyB0YXJnZXRlZCBieSB0aGUgcm91dGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVUYXJnZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSByb3V0ZSB0YXJnZXQuIFRoaXMgaXMgdXNlZCBmb3IgdGFyZ2V0cyBzdWNoIGFzXG4gICAqIGVncmVzcy1vbmx5IGludGVybmV0IGdhdGV3YXkgb3IgVlBDIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0YXJnZXQgaXMgbm90IHNldCB0byBhIGdhdGV3YXksIGluIHRoaXMgY2FzZSBhbiBlbmRwb2ludCBpcyBuZWVkZWQuXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5PzogSVJvdXRlVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgZW5kcG9pbnQgcm91dGUgdGFyZ2V0LiBUaGlzIGlzIHVzZWQgZm9yIHRhcmdldHMgc3VjaCBhc1xuICAgKiBWUEMgZW5kcG9pbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRhcmdldCBpcyBub3Qgc2V0IHRvIGFuIGVuZHBvaW50LCBpbiB0aGlzIGNhc2UgYSBnYXRld2F5IGlzIG5lZWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50PzogSVZwY0VuZHBvaW50O1xufVxuXG4vKipcbiAqIFRoZSBnYXRld2F5IG9yIGVuZHBvaW50IHRhcmdldGVkIGJ5IHRoZSByb3V0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvdXRlVGFyZ2V0VHlwZSB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSByb3V0ZSB0YXJnZXQuIFRoaXMgaXMgdXNlZCBmb3IgdGFyZ2V0cyBzdWNoIGFzXG4gICAqIGVncmVzcy1vbmx5IGludGVybmV0IGdhdGV3YXkgb3IgVlBDIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0YXJnZXQgaXMgbm90IHNldCB0byBhIGdhdGV3YXksIGluIHRoaXMgY2FzZSBhbiBlbmRwb2ludCBpcyBuZWVkZWQuXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5PzogSVJvdXRlVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgZW5kcG9pbnQgcm91dGUgdGFyZ2V0LiBUaGlzIGlzIHVzZWQgZm9yIHRhcmdldHMgc3VjaCBhc1xuICAgKiBWUEMgZW5kcG9pbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRhcmdldCBpcyBub3Qgc2V0IHRvIGFuIGVuZHBvaW50LCBpbiB0aGlzIGNhc2UgYSBnYXRld2F5IGlzIG5lZWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50PzogSVZwY0VuZHBvaW50O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSb3V0ZVRhcmdldFByb3BzKSB7XG4gICAgdGhpcy5nYXRld2F5ID0gcHJvcHMuZ2F0ZXdheTtcbiAgICB0aGlzLmVuZHBvaW50ID0gcHJvcHMuZW5kcG9pbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgdG8gZGVmaW5lIGEgcm91dGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlVjIgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhlIHJvdXRlLlxuICAgKiBAYXR0cmlidXRlIHJvdXRlVGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGU6IElSb3V0ZVRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgSVB2NCBvciBJUHY2IENJRFIgYmxvY2sgdXNlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIG1hdGNoLlxuICAgKlxuICAgKiBSb3V0aW5nIGRlY2lzaW9ucyBhcmUgYmFzZWQgb24gdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2guXG4gICAqIFRPRE86IExvb2sgZm9yIHN0cm9uZyBJUCB0eXBlIGltcGxlbWVudGF0aW9uIGhlcmUuXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSBvciBlbmRwb2ludCB0YXJnZXRlZCBieSB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFJvdXRlVGFyZ2V0VHlwZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGRlZmluZSBhIHJvdXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUHJvcHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YWJsZSBmb3IgdGhlIHJvdXRlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlIHJvdXRlVGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlVGFibGU6IElSb3V0ZVRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgSVB2NCBvciBJUHY2IENJRFIgYmxvY2sgdXNlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIG1hdGNoLlxuICAgKlxuICAgKiBSb3V0aW5nIGRlY2lzaW9ucyBhcmUgYmFzZWQgb24gdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2guXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSBvciBlbmRwb2ludCB0YXJnZXRlZCBieSB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFJvdXRlVGFyZ2V0VHlwZTtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG5hbWUgb2YgdGhlIHJvdXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb3Zpc2lvbmVkIHdpdGhvdXQgYSByb3V0ZSBuYW1lXG4gICAqL1xuICByZWFkb25seSByb3V0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyByb3V0ZSB3aXRoIGFkZGVkIGZ1bmN0aW9uYWxpdHkuXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OlJvdXRlXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBSb3V0ZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJvdXRlVjIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1lYzItYWxwaGEuUm91dGUnO1xuICAvKipcbiAgICogVGhlIElQdjQgb3IgSVB2NiBDSURSIGJsb2NrIHVzZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBtYXRjaC5cbiAgICpcbiAgICogUm91dGluZyBkZWNpc2lvbnMgYXJlIGJhc2VkIG9uIHRoZSBtb3N0IHNwZWNpZmljIG1hdGNoLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IG9yIGVuZHBvaW50IHRhcmdldGVkIGJ5IHRoZSByb3V0ZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXQ6IFJvdXRlVGFyZ2V0VHlwZTtcblxuICAvKipcbiAgICogVGhlIHJvdXRlIHRhYmxlIGZvciB0aGUgcm91dGUuXG4gICAqIEBhdHRyaWJ1dGUgcm91dGVUYWJsZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvdXRlVGFibGU6IElSb3V0ZVRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdGhlIHJvdXRlIGlzIHRhcmdldGluZ1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFJvdXRlclR5cGU6IFJvdXRlclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSByb3V0ZSBDRk4gcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U/OiBDZm5Sb3V0ZTtcblxuICAvKipcbiAgICogRGVzdGluYXRpb24gY2lkciBibG9jayBmb3IgaXB2NlxuICAgKi9cbiAgcHJpdmF0ZSBkZXN0aW5hdGlvbklwdjZDaWRyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXN0aW5hdGlvbiBjaWRyIGJsb2NrIGZvciBpcHY0XG4gICAqL1xuICBwcml2YXRlIGRlc3RpbmF0aW9uSXB2NENpZHI/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvdXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy50YXJnZXQgPSBwcm9wcy50YXJnZXQ7XG4gICAgdGhpcy5yb3V0ZVRhYmxlID0gcHJvcHMucm91dGVUYWJsZTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uID0gcHJvcHMuZGVzdGluYXRpb247XG4gICAgY29uc3QgaXNEZXN0aW5hdGlvbklwdjQgPSBOZXR3b3JrVXRpbHMudmFsaWRJcChwcm9wcy5kZXN0aW5hdGlvbik7XG4gICAgaWYgKCFpc0Rlc3RpbmF0aW9uSXB2NCkge1xuICAgICAgLy8gVE9ETyBWYWxpZGF0ZSBmb3IgSVB2NiBDSURSIHJhbmdlXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uSXB2NkNpZHIgPSBwcm9wcy5kZXN0aW5hdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbklwdjRDaWRyID0gcHJvcHMuZGVzdGluYXRpb247XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFyZ2V0LmdhdGV3YXk/LnJvdXRlclR5cGUgPT09IFJvdXRlclR5cGUuRUdSRVNTX09OTFlfSU5URVJORVRfR0FURVdBWSAmJiBpc0Rlc3RpbmF0aW9uSXB2NCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRWdyZXNzIG9ubHkgaW50ZXJuZXQgZ2F0ZXdheSBkb2VzIG5vdCBzdXBwb3J0IElQdjQgcm91dGluZycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICgocHJvcHMudGFyZ2V0LmdhdGV3YXkgJiYgcHJvcHMudGFyZ2V0LmVuZHBvaW50KSB8fCAoIXByb3BzLnRhcmdldC5nYXRld2F5ICYmICFwcm9wcy50YXJnZXQuZW5kcG9pbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdFeGFjdGx5IG9uZSBvZiBgZ2F0ZXdheWAgb3IgYGVuZHBvaW50YCBtdXN0IGJlIHNwZWNpZmllZC4nLCB0aGlzKTtcbiAgICB9XG4gICAgdGhpcy50YXJnZXRSb3V0ZXJUeXBlID0gdGhpcy50YXJnZXQuZ2F0ZXdheSA/IHRoaXMudGFyZ2V0LmdhdGV3YXkucm91dGVyVHlwZSA6IFJvdXRlclR5cGUuVlBDX0VORFBPSU5UO1xuICAgIC8vIEdhdGV3YXkgZ2VuZXJhdGVzIHJvdXRlIGF1dG9tYXRpY2FsbHkgdmlhIGl0cyBSb3V0ZVRhYmxlLCB0aHVzIHdlIGRvbid0IG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHJlc291cmNlIGZvciBpdFxuICAgIGlmICghKHRoaXMudGFyZ2V0LmVuZHBvaW50IGluc3RhbmNlb2YgR2F0ZXdheVZwY0VuZHBvaW50KSkge1xuICAgICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5Sb3V0ZSh0aGlzLCAnUm91dGUnLCB7XG4gICAgICAgIHJvdXRlVGFibGVJZDogdGhpcy5yb3V0ZVRhYmxlLnJvdXRlVGFibGVJZCxcbiAgICAgICAgZGVzdGluYXRpb25DaWRyQmxvY2s6IHRoaXMuZGVzdGluYXRpb25JcHY0Q2lkcixcbiAgICAgICAgZGVzdGluYXRpb25JcHY2Q2lkckJsb2NrOiB0aGlzLmRlc3RpbmF0aW9uSXB2NkNpZHIsXG4gICAgICAgIFtyb3V0ZXJUeXBlVG9Qcm9wTmFtZSh0aGlzLnRhcmdldFJvdXRlclR5cGUpXTogdGhpcy50YXJnZXQuZ2F0ZXdheSA/IHRoaXMudGFyZ2V0LmdhdGV3YXkucm91dGVyVGFyZ2V0SWQgOlxuICAgICAgICAgIHRoaXMudGFyZ2V0LmVuZHBvaW50ID8gdGhpcy50YXJnZXQuZW5kcG9pbnQudnBjRW5kcG9pbnRJZCA6IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMucmVzb3VyY2U7XG5cbiAgICAvLyBDcmVhdGUgYSByb3V0ZSBvbmx5IGFmdGVyIHRhcmdldCBnYXRld2F5IG9yIGVuZHBvaW50IGlzIGNyZWF0ZWRcbiAgICBpZiAodGhpcy50YXJnZXQuZ2F0ZXdheSkge1xuICAgICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy50YXJnZXQuZ2F0ZXdheSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRhcmdldC5lbmRwb2ludCkge1xuICAgICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy50YXJnZXQuZW5kcG9pbnQpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGEgcm91dGUgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjVjI7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSByb3V0ZSB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm92aXNpb25lZCB3aXRob3V0IGEgcm91dGUgdGFibGUgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVUYWJsZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJvdXRlIHRhYmxlIGZvciB0aGUgc3BlY2lmaWVkIFZQQ1xuICogQHJlc291cmNlIEFXUzo6RUMyOjpSb3V0ZVRhYmxlXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBSb3V0ZVRhYmxlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVUYWJsZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5Sb3V0ZVRhYmxlJztcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgcm91dGUgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm91dGVUYWJsZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb3V0ZSB0YWJsZSBDRk4gcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJvdXRlVGFibGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvdXRlVGFibGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblJvdXRlVGFibGUodGhpcywgJ1JvdXRlVGFibGUnLCB7XG4gICAgICB2cGNJZDogcHJvcHMudnBjLnZwY0lkLFxuICAgIH0pO1xuICAgIGlmIChwcm9wcy5yb3V0ZVRhYmxlTmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLnJvdXRlVGFibGVOYW1lKTtcbiAgICB9XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMucmVzb3VyY2U7XG5cbiAgICB0aGlzLnJvdXRlVGFibGVJZCA9IEZlYXR1cmVGbGFncy5vZih0aGlzKS5pc0VuYWJsZWQoY3hfYXBpLlVTRV9SRVNPVVJDRUlEX0ZPUl9WUENWMl9NSUdSQVRJT04pID9cbiAgICAgIHRoaXMucmVzb3VyY2UucmVmIDogdGhpcy5yZXNvdXJjZS5hdHRyUm91dGVUYWJsZUlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgY3VzdG9tIHJvdXRlIHRvIHRoZSByb3V0ZSB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBJUHY0IG9yIElQdjYgQ0lEUiBibG9jayB1c2VkIGZvciB0aGUgZGVzdGluYXRpb24gbWF0Y2guXG4gICAqIEBwYXJhbSB0YXJnZXQgVGhlIGdhdGV3YXkgb3IgZW5kcG9pbnQgdGFyZ2V0ZWQgYnkgdGhlIHJvdXRlLlxuICAgKiBAcGFyYW0gcm91dGVOYW1lIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSByb3V0ZS5cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBhZGRSb3V0ZShpZDogc3RyaW5nLCBkZXN0aW5hdGlvbjogc3RyaW5nLCB0YXJnZXQ6IFJvdXRlVGFyZ2V0VHlwZSwgcm91dGVOYW1lPzogc3RyaW5nKSB7XG4gICAgbmV3IFJvdXRlKHRoaXMsIGlkLCB7XG4gICAgICByb3V0ZVRhYmxlOiB0aGlzLFxuICAgICAgZGVzdGluYXRpb246IGRlc3RpbmF0aW9uLFxuICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICByb3V0ZU5hbWU6IHJvdXRlTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByb3V0ZXJUeXBlVG9Qcm9wTmFtZShyb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlKSB7XG4gIHJldHVybiAoe1xuICAgIFtSb3V0ZXJUeXBlLkNBUlJJRVJfR0FURVdBWV06ICdjYXJyaWVyR2F0ZXdheUlkJyxcbiAgICBbUm91dGVyVHlwZS5FR1JFU1NfT05MWV9JTlRFUk5FVF9HQVRFV0FZXTogJ2VncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZCcsXG4gICAgW1JvdXRlclR5cGUuR0FURVdBWV06ICdnYXRld2F5SWQnLFxuICAgIFtSb3V0ZXJUeXBlLklOU1RBTkNFXTogJ2luc3RhbmNlSWQnLFxuICAgIFtSb3V0ZXJUeXBlLkxPQ0FMX0dBVEVXQVldOiAnbG9jYWxHYXRld2F5SWQnLFxuICAgIFtSb3V0ZXJUeXBlLk5BVF9HQVRFV0FZXTogJ25hdEdhdGV3YXlJZCcsXG4gICAgW1JvdXRlclR5cGUuTkVUV09SS19JTlRFUkZBQ0VdOiAnbmV0d29ya0ludGVyZmFjZUlkJyxcbiAgICBbUm91dGVyVHlwZS5UUkFOU0lUX0dBVEVXQVldOiAndHJhbnNpdEdhdGV3YXlJZCcsXG4gICAgW1JvdXRlclR5cGUuVlBDX1BFRVJJTkdfQ09OTkVDVElPTl06ICd2cGNQZWVyaW5nQ29ubmVjdGlvbklkJyxcbiAgICBbUm91dGVyVHlwZS5WUENfRU5EUE9JTlRdOiAndnBjRW5kcG9pbnRJZCcsXG4gICAgW1JvdXRlclR5cGUuQ09SRV9ORVRXT1JLXTogJ2NvcmVOZXR3b3JrQXJuJyxcbiAgfSlbcm91dGVyVHlwZV07XG59XG4iXX0=
|
|
771
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBcUM7QUFDckMsaURBQWtTO0FBQ2xTLDJDQUFtSDtBQUNuSCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRzFFLGlDQUFtRTtBQUduRTs7OztHQUlHO0FBQ0gsSUFBWSxtQkFTWDtBQVRELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsd0NBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCwwQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFTOUI7QUE4TEQ7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFFaEM7OztHQUdHO0lBRVUseUJBQXlCOzRCQURyQyxvQ0FBa0I7Ozs7c0JBQzRCLGVBQVE7eUNBQWhCLFNBQVEsV0FBUTs7OztZQUF2RCw2S0FtQ0M7Ozs7O1FBbENDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsa0RBQWtELENBQUM7UUFDMUc7O1dBRUc7UUFDTSxVQUFVLENBQWE7UUFFaEM7O1dBRUc7UUFDTSxjQUFjLENBQVM7UUFFaEM7O1dBRUc7UUFDYSxRQUFRLENBQStCO1FBRXZELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUM7WUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQW5CUix5QkFBeUI7Ozs7WUFvQmxDLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO2dCQUN4QyxXQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLDZC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QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3hfYXBpIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuRUlQLCBDZm5FZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5LCBDZm5JbnRlcm5ldEdhdGV3YXksIENmbk5hdEdhdGV3YXksIENmblZQQ1BlZXJpbmdDb25uZWN0aW9uLCBDZm5Sb3V0ZSwgQ2ZuUm91dGVUYWJsZSwgQ2ZuVlBDR2F0ZXdheUF0dGFjaG1lbnQsIENmblZQTkdhdGV3YXksIENmblZQTkdhdGV3YXlSb3V0ZVByb3BhZ2F0aW9uLCBHYXRld2F5VnBjRW5kcG9pbnQsIElSb3V0ZVRhYmxlLCBJVnBjRW5kcG9pbnQsIFJvdXRlclR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBEdXJhdGlvbiwgRmVhdHVyZUZsYWdzLCBJUmVzb3VyY2UsIFJlc291cmNlLCBUYWdzLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElEZXBlbmRhYmxlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJU3VibmV0VjIgfSBmcm9tICcuL3N1Ym5ldC12Mic7XG5pbXBvcnQgeyBOZXR3b3JrVXRpbHMsIGFsbFJvdXRlVGFibGVJZHMsIENpZHJCbG9jayB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBJVnBjVjIsIFZQTkdhdGV3YXlWMk9wdGlvbnMgfSBmcm9tICcuL3ZwYy12Mi1iYXNlJztcblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTkFUIGdhdGV3YXkgc3VwcG9ydHMgcHVibGljIG9yIHByaXZhdGUgY29ubmVjdGl2aXR5LlxuICogVGhlIGRlZmF1bHQgaXMgcHVibGljIGNvbm5lY3Rpdml0eS5cbiAqIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1uYXRnYXRld2F5Lmh0bWwjY2ZuLWVjMi1uYXRnYXRld2F5LWNvbm5lY3Rpdml0eXR5cGVcbiAqL1xuZXhwb3J0IGVudW0gTmF0Q29ubmVjdGl2aXR5VHlwZSB7XG4gIC8qKlxuICAgKiBTZXRzIENvbm5lY3Rpdml0eSB0eXBlIHRvIFBVQkxJQ1xuICAgKi9cbiAgUFVCTElDID0gJ3B1YmxpYycsXG4gIC8qKlxuICAgKiBTZXRzIENvbm5lY3Rpdml0eSB0eXBlIHRvIFBSSVZBVEVcbiAgICovXG4gIFBSSVZBVEUgPSAncHJpdmF0ZScsXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRvIGRlZmluZSBhIHJvdXRpbmcgdGFyZ2V0LCBzdWNoIGFzIGFuXG4gKiBlZ3Jlc3Mtb25seSBpbnRlcm5ldCBnYXRld2F5IG9yIFZQQyBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm91dGVUYXJnZXQgZXh0ZW5kcyBJRGVwZW5kYWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdXNlZCBpbiB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYW4gZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5UHJvcHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwY1YyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgbmFtZSBvZiB0aGUgZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm92aXNpb25lZCB3aXRob3V0IGEgcmVzb3VyY2UgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWdyZXNzT25seUludGVybmV0R2F0ZXdheU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYW4gaW50ZXJuZXQgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5ldEdhdGV3YXlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBpbnRlcm5ldCBnYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjVjI7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBuYW1lIG9mIHRoZSBpbnRlcm5ldCBnYXRld2F5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb3Zpc2lvbmVkIHdpdGhvdXQgYSByZXNvdXJjZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBpbnRlcm5ldEdhdGV3YXlOYW1lPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYSBWUE4gZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWUE5HYXRld2F5VjJQcm9wcyBleHRlbmRzIFZQTkdhdGV3YXlWMk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBWUE4gZ2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwY1YyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gZGVmaW5lIGEgTkFUIGdhdGV3YXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0R2F0ZXdheU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHN1Ym5ldCBpbiB3aGljaCB0aGUgTkFUIGdhdGV3YXkgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldDogSVN1Ym5ldFYyO1xuXG4gIC8qKlxuICAgKiBBbGxvY2F0aW9uSUQgb2YgRWxhc3RpYyBJUCBhZGRyZXNzIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggdGhlIE5BVCBnYXRld2F5LiBUaGlzIHByb3BlcnR5IGlzIHJlcXVpcmVkIGZvciBhIHB1YmxpYyBOQVRcbiAgICogZ2F0ZXdheSBhbmQgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIGEgcHJpdmF0ZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdHRyLmFsbG9jYXRpb25JRCBvZiBhIG5ldyBFbGFzdGljIElQIGNyZWF0ZWQgYnkgZGVmYXVsdFxuICAgKiAvL1RPRE86IEFERCBMMiBmb3IgZWxhc3RpYyBpcFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb2NhdGlvbklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTkFUIGdhdGV3YXkgc3VwcG9ydHMgcHVibGljIG9yIHByaXZhdGUgY29ubmVjdGl2aXR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBOYXRDb25uZWN0aXZpdHlUeXBlLlB1YmxpY1xuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGl2aXR5VHlwZT86IE5hdENvbm5lY3Rpdml0eVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgYmVmb3JlIGZvcmNpYmx5IHJlbGVhc2luZyB0aGVcbiAgICogSVAgYWRkcmVzc2VzIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGlsbCBpbiBwcm9ncmVzcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzNTApXG4gICAqL1xuICByZWFkb25seSBtYXhEcmFpbkR1cmF0aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBwcml2YXRlIElQdjQgYWRkcmVzcyB0byBhc3NpZ24gdG8gdGhlIE5BVCBnYXRld2F5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIHlvdSBkb24ndCBwcm92aWRlIGFuIGFkZHJlc3MsIGEgcHJpdmF0ZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZztcblxuICAvKipcbiAgICogU2Vjb25kYXJ5IEVJUCBhbGxvY2F0aW9uIElEcy5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL2xhdGVzdC91c2VyZ3VpZGUvdnBjLW5hdC1nYXRld2F5Lmh0bWwjbmF0LWdhdGV3YXktY3JlYXRpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWNvbmRhcnkgYWxsb2NhdGlvbiBJRHMgYXR0YWNoZWQgdG8gTkFUR1dcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUFsbG9jYXRpb25JZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRhcnkgcHJpdmF0ZSBJUHY0IGFkZHJlc3NlcyB5b3VcbiAgICogd2FudCB0byBhc3NpZ24gdG8gdGhlIE5BVCBnYXRld2F5LlxuICAgKlxuICAgKiBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YCBhbmQgYFNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3Nlc2AgY2Fubm90IGJlXG4gICAqIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNlY29uZGFyeSBhbGxvY2F0aW9uIElEcyBhc3NvY2lhdGVkIHdpdGggTkFUR1dcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogU2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzZXMuXG4gICAqXG4gICAqIGBTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRgIGFuZCBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzYCBjYW5ub3QgYmVcbiAgICogc2V0IGF0IHRoZSBzYW1lIHRpbWUuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1uYXQtZ2F0ZXdheS5odG1sI25hdC1nYXRld2F5LWNyZWF0aW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2Vjb25kYXJ5IHByaXZhdGUgSXBBZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIE5BVEdXXG4gICAqL1xuICByZWFkb25seSBzZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG5hbWUgb2YgdGhlIE5BVCBnYXRld2F5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5BVEdXIHByb3Zpc2lvbmVkIHdpdGhvdXQgYW55IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hdEdhdGV3YXlOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGEgTkFUIGdhdGV3YXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0R2F0ZXdheVByb3BzIGV4dGVuZHMgTmF0R2F0ZXdheU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgaW4gd2hpY2ggdGhlIE5BVCBnYXRld2F5IGlzIGxvY2F0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZWxhc3RpYyBpcCBhc3NvY2lhdGVkLCByZXF1aXJlZCBpbiBjYXNlIG9mIHB1YmxpYyBjb25uZWN0aXZpdHkgaWYgYEFsbG9jYXRpb25JZGAgaXMgbm90IGRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IElWcGNWMjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGRlZmluZSBhIFZQQyBwZWVyaW5nIGNvbm5lY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVlBDUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgdGhhdCBpcyBhY2NlcHRpbmcgdGhlIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2VwdG9yVnBjOiBJVnBjVjI7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIGFybiBjcmVhdGVkIGluIHRoZSBhY2NlcHRvciBhY2NvdW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBlZXJSb2xlQXJuIG5lZWRlZCBpZiBub3QgY3Jvc3MgYWNjb3VudCBjb25uZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBwZWVyUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG5hbWUgb2YgdGhlIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwZWVyaW5nIGNvbm5lY3Rpb24gcHJvdmlzaW9uZWQgd2l0aG91dCBhbnkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjUGVlcmluZ0Nvbm5lY3Rpb25OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGEgVlBDIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWUENQZWVyaW5nQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgVlBDUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgdGhhdCBpcyByZXF1ZXN0aW5nIHRoZSBwZWVyaW5nIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0b3JWcGM6IElWcGNWMjtcbn1cblxuLyoqXG4gKiBOYW1lIHRhZyBjb25zdGFudFxuICovXG5jb25zdCBOQU1FX1RBRzogc3RyaW5nID0gJ05hbWUnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheVxuICogQHJlc291cmNlIEFXUzo6RUMyOjpFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1lYzItYWxwaGEuRWdyZXNzT25seUludGVybmV0R2F0ZXdheSc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdXNlZCBpbiB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlZ3Jlc3Mtb25seSBpbnRlcm5ldCBnYXRld2F5IENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogQ2ZuRWdyZXNzT25seUludGVybmV0R2F0ZXdheTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRWdyZXNzT25seUludGVybmV0R2F0ZXdheVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5lZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5TmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLmVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlOYW1lKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXJUeXBlID0gUm91dGVyVHlwZS5FR1JFU1NfT05MWV9JTlRFUk5FVF9HQVRFV0FZO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5FZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5KHRoaXMsICdFSUdXJywge1xuICAgICAgdnBjSWQ6IHByb3BzLnZwYy52cGNJZCxcbiAgICB9KTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcblxuICAgIHRoaXMucm91dGVyVGFyZ2V0SWQgPSB0aGlzLnJlc291cmNlLmF0dHJJZDtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW50ZXJuZXQgZ2F0ZXdheVxuICogQHJlc291cmNlIEFXUzo6RUMyOjpJbnRlcm5ldEdhdGV3YXlcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEludGVybmV0R2F0ZXdheSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJvdXRlVGFyZ2V0IHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLkludGVybmV0R2F0ZXdheSc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdXNlZCBpbiB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgVlBDIGZvciB3aGljaCB0byBjcmVhdGUgdGhlIGludGVybmV0IGdhdGV3YXkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGludGVybmV0IGdhdGV3YXkgQ0ZOIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBDZm5JbnRlcm5ldEdhdGV3YXk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEludGVybmV0R2F0ZXdheVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucm91dGVyVHlwZSA9IFJvdXRlclR5cGUuR0FURVdBWTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuSW50ZXJuZXRHYXRld2F5KHRoaXMsICdJR1cnLCB7fSk7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMucmVzb3VyY2U7XG5cbiAgICB0aGlzLnJvdXRlclRhcmdldElkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJJbnRlcm5ldEdhdGV3YXlJZDtcbiAgICB0aGlzLnZwY0lkID0gcHJvcHMudnBjLnZwY0lkO1xuXG4gICAgaWYgKHByb3BzLmludGVybmV0R2F0ZXdheU5hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcy5pbnRlcm5ldEdhdGV3YXlOYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudnBjLnZwY05hbWUpIHtcbiAgICAgIFRhZ3Mub2YodGhpcykuYWRkKCdOYW1lJywgcHJvcHMudnBjLnZwY05hbWUpO1xuICAgIH1cblxuICAgIG5ldyBDZm5WUENHYXRld2F5QXR0YWNobWVudCh0aGlzLCAnR1dBdHRhY2htZW50Jywge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjSWQsXG4gICAgICBpbnRlcm5ldEdhdGV3YXlJZDogdGhpcy5yb3V0ZXJUYXJnZXRJZCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB2aXJ0dWFsIHByaXZhdGUgZ2F0ZXdheVxuICogQHJlc291cmNlIEFXUzo6RUMyOjpWUE5HYXRld2F5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBWUE5HYXRld2F5VjIgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSb3V0ZVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5WUE5HYXRld2F5VjInO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGVyIHVzZWQgaW4gdGhlIHJvdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyVHlwZTogUm91dGVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUYXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIFZQQyBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBWUE4gZ2F0ZXdheS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBOIGdhdGV3YXkgQ0ZOIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBDZm5WUE5HYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgVlBOIEdhdGV3YXkgQXR0YWNobWVudFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0YWNobWVudDogQ2ZuVlBDR2F0ZXdheUF0dGFjaG1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBWUE4gR2F0ZXdheSBSb3V0ZSBQcm9wYWdhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcm91dGVQcm9wYWdhdGlvbjogQ2ZuVlBOR2F0ZXdheVJvdXRlUHJvcGFnYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZQTkdhdGV3YXlWMlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnZwbkdhdGV3YXlOYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5yb3V0ZXJUeXBlID0gUm91dGVyVHlwZS5HQVRFV0FZO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5WUE5HYXRld2F5KHRoaXMsICdJR1cnLCB7XG4gICAgICB0eXBlOiBwcm9wcy50eXBlLFxuICAgICAgYW1hem9uU2lkZUFzbjogcHJvcHMuYW1hem9uU2lkZUFzbixcbiAgICB9KTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcblxuICAgIHRoaXMucm91dGVyVGFyZ2V0SWQgPSB0aGlzLnJlc291cmNlLmF0dHJWcG5HYXRld2F5SWQ7XG5cbiAgICB0aGlzLnZwY0lkID0gcHJvcHMudnBjLnZwY0lkO1xuICAgIHRoaXMuX2F0dGFjaG1lbnQgPSBuZXcgQ2ZuVlBDR2F0ZXdheUF0dGFjaG1lbnQodGhpcywgJ1ZQQ1ZQTkdXJywge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjSWQsXG4gICAgICB2cG5HYXRld2F5SWQ6IHRoaXMucmVzb3VyY2UuYXR0clZwbkdhdGV3YXlJZCxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy52cG5HYXRld2F5TmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLnZwbkdhdGV3YXlOYW1lKTtcbiAgICB9XG5cbiAgICAvLyBQcm9wYWdhdGUgcm91dGVzIG9uIHJvdXRlIHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0IHN1Ym5ldHNcbiAgICBjb25zdCB2cG5Sb3V0ZVByb3BhZ2F0aW9uID0gcHJvcHMudnBuUm91dGVQcm9wYWdhdGlvbiA/PyBbXTtcbiAgICBjb25zdCBzdWJuZXRzID0gdnBuUm91dGVQcm9wYWdhdGlvbi5tYXAocyA9PiBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyhzKS5zdWJuZXRzKS5mbGF0KCk7XG4gICAgY29uc3Qgcm91dGVUYWJsZUlkcyA9IGFsbFJvdXRlVGFibGVJZHMoc3VibmV0cyk7XG5cbiAgICBpZiAocm91dGVUYWJsZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHNjb3BlKS5hZGRXYXJuaW5nVjIoJ0Bhd3MtY2RrOmF3cy1lYzItZWxwaGE6ZW5hYmxlVnBuR2F0ZXdheVYyJywgYE5vIHN1Ym5ldHMgbWF0Y2hpbmcgc2VsZWN0aW9uOiAnJHtKU09OLnN0cmluZ2lmeSh2cG5Sb3V0ZVByb3BhZ2F0aW9uKX0nLiBTZWxlY3Qgb3RoZXIgc3VibmV0cyB0byBhZGQgcm91dGVzIHRvLmApO1xuICAgIH1cblxuICAgIHRoaXMuX3JvdXRlUHJvcGFnYXRpb24gPSBuZXcgQ2ZuVlBOR2F0ZXdheVJvdXRlUHJvcGFnYXRpb24odGhpcywgJ1JvdXRlUHJvcGFnYXRpb24nLCB7XG4gICAgICByb3V0ZVRhYmxlSWRzLFxuICAgICAgdnBuR2F0ZXdheUlkOiB0aGlzLnJvdXRlclRhcmdldElkLFxuICAgIH0pO1xuICAgIC8vIFRoZSBBV1M6OkVDMjo6VlBOR2F0ZXdheVJvdXRlUHJvcGFnYXRpb24gcmVzb3VyY2UgY2Fubm90IHVzZSB0aGUgVlBOIGdhdGV3YXlcbiAgICAvLyB1bnRpbCBpdCBoYXMgc3VjY2Vzc2Z1bGx5IGF0dGFjaGVkIHRvIHRoZSBWUEMuXG4gICAgLy8gU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItdnBuLWdhdGV3YXlyb3V0ZXByb3AuaHRtbFxuICAgIHRoaXMuX3JvdXRlUHJvcGFnYXRpb24ubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuX2F0dGFjaG1lbnQpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldHdvcmsgYWRkcmVzcyB0cmFuc2xhdGlvbiAoTkFUKSBnYXRld2F5XG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6Ok5hdEdhdGV3YXlcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIE5hdEdhdGV3YXkgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSb3V0ZVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5OYXRHYXRld2F5JztcbiAgLyoqXG4gICAqIElkIG9mIHRoZSBOYXRHYXRld2F5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYXRHYXRld2F5SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGVyIHVzZWQgaW4gdGhlIHJvdXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvdXRlclR5cGU6IFJvdXRlclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgcm91dGUgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBOQVQgZ2F0ZXdheSBzdXBwb3J0cyBwdWJsaWMgb3IgcHJpdmF0ZSBjb25uZWN0aXZpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHB1YmxpY1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpdml0eVR5cGU/OiBOYXRDb25uZWN0aXZpdHlUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBmb3JjaWJseSByZWxlYXNpbmcgdGhlXG4gICAqIElQIGFkZHJlc3NlcyBpZiBjb25uZWN0aW9ucyBhcmUgc3RpbGwgaW4gcHJvZ3Jlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICczNTAgc2Vjb25kcydcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXhEcmFpbkR1cmF0aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBOQVQgZ2F0ZXdheSBDRk4gcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IENmbk5hdEdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIEVsYXN0aWMgSVAgY3JlYXRlZCBmb3IgYWxsb2NhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVpcD86IENmbkVJUDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmF0R2F0ZXdheVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucm91dGVyVHlwZSA9IFJvdXRlclR5cGUuTkFUX0dBVEVXQVk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpdml0eVR5cGUgPSBwcm9wcy5jb25uZWN0aXZpdHlUeXBlIHx8IE5hdENvbm5lY3Rpdml0eVR5cGUuUFVCTElDO1xuICAgIHRoaXMubWF4RHJhaW5EdXJhdGlvbiA9IHByb3BzLm1heERyYWluRHVyYXRpb24gfHwgRHVyYXRpb24uc2Vjb25kcygzNTApO1xuXG4gICAgaWYgKHRoaXMuY29ubmVjdGl2aXR5VHlwZSA9PT0gTmF0Q29ubmVjdGl2aXR5VHlwZS5QVUJMSUMpIHtcbiAgICAgIGlmICghcHJvcHMudnBjICYmICFwcm9wcy5hbGxvY2F0aW9uSWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRWl0aGVyIHByb3ZpZGUgdnBjIG9yIGFsbG9jYXRpb25JZCcsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5uYXRHYXRld2F5TmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzPy5uYXRHYXRld2F5TmFtZSk7XG4gICAgfVxuXG4gICAgLy8gSWYgdXNlciBkb2VzIG5vdCBwcm92aWRlIEVJUCwgZ2VuZXJhdGUgb25lIGZvciB0aGVtXG4gICAgdmFyIGFJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpdml0eVR5cGUgPT09IE5hdENvbm5lY3Rpdml0eVR5cGUuUFVCTElDKSB7XG4gICAgICBpZiAoIXByb3BzLmFsbG9jYXRpb25JZCkge1xuICAgICAgICB0aGlzLmVpcCA9IG5ldyBDZm5FSVAodGhpcywgJ0VJUCcsIHtcbiAgICAgICAgICBkb21haW46ICd2cGMnLFxuICAgICAgICB9KTtcbiAgICAgICAgYUlkID0gdGhpcy5laXAuYXR0ckFsbG9jYXRpb25JZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFJZCA9IHByb3BzLmFsbG9jYXRpb25JZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmbk5hdEdhdGV3YXkodGhpcywgJ05BVEdhdGV3YXknLCB7XG4gICAgICBzdWJuZXRJZDogcHJvcHMuc3VibmV0LnN1Ym5ldElkLFxuICAgICAgYWxsb2NhdGlvbklkOiBhSWQsXG4gICAgICBtYXhEcmFpbkR1cmF0aW9uU2Vjb25kczogcHJvcHMubWF4RHJhaW5EdXJhdGlvbj8udG9TZWNvbmRzKCksXG4gICAgICBzZWNvbmRhcnlBbGxvY2F0aW9uSWRzOiBwcm9wcy5zZWNvbmRhcnlBbGxvY2F0aW9uSWRzLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gICAgdGhpcy5uYXRHYXRld2F5SWQgPSBGZWF0dXJlRmxhZ3Mub2YodGhpcykuaXNFbmFibGVkKGN4X2FwaS5VU0VfUkVTT1VSQ0VJRF9GT1JfVlBDVjJfTUlHUkFUSU9OKSA/XG4gICAgICB0aGlzLnJlc291cmNlLnJlZiA6IHRoaXMucmVzb3VyY2UuYXR0ck5hdEdhdGV3YXlJZDtcblxuICAgIHRoaXMucm91dGVyVGFyZ2V0SWQgPSBGZWF0dXJlRmxhZ3Mub2YodGhpcykuaXNFbmFibGVkKGN4X2FwaS5VU0VfUkVTT1VSQ0VJRF9GT1JfVlBDVjJfTUlHUkFUSU9OKSA/XG4gICAgICB0aGlzLnJlc291cmNlLnJlZiA6IHRoaXMucmVzb3VyY2UuYXR0ck5hdEdhdGV3YXlJZDtcblxuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLnJlc291cmNlO1xuICAgIHRoaXMucmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLnN1Ym5ldC5pbnRlcm5ldENvbm5lY3Rpdml0eUVzdGFibGlzaGVkKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwZWVyaW5nIGNvbm5lY3Rpb24gYmV0d2VlbiB0d28gVlBDc1xuICogQHJlc291cmNlIEFXUzo6RUMyOjpWUENQZWVyaW5nQ29ubmVjdGlvblxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgVlBDUGVlcmluZ0Nvbm5lY3Rpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSb3V0ZVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5WUENQZWVyaW5nQ29ubmVjdGlvbic7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZXIgdXNlZCBpbiB0aGUgcm91dGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJUeXBlOiBSb3V0ZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlclRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgcGVlcmluZyBjb25uZWN0aW9uIENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogQ2ZuVlBDUGVlcmluZ0Nvbm5lY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZQQ1BlZXJpbmdDb25uZWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5yb3V0ZXJUeXBlID0gUm91dGVyVHlwZS5WUENfUEVFUklOR19DT05ORUNUSU9OO1xuXG4gICAgY29uc3QgaXNDcm9zc0FjY291bnQgPSBwcm9wcy5yZXF1ZXN0b3JWcGMub3duZXJBY2NvdW50SWQgIT09IHByb3BzLmFjY2VwdG9yVnBjLm93bmVyQWNjb3VudElkO1xuXG4gICAgaWYgKCFpc0Nyb3NzQWNjb3VudCAmJiBwcm9wcy5wZWVyUm9sZUFybikge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcigncGVlclJvbGVBcm4gaXMgbm90IG5lZWRlZCBmb3Igc2FtZSBhY2NvdW50IHBlZXJpbmcnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoaXNDcm9zc0FjY291bnQgJiYgIXByb3BzLnBlZXJSb2xlQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdDcm9zcyBhY2NvdW50IFZQQyBwZWVyaW5nIHJlcXVpcmVzIHBlZXJSb2xlQXJuJywgdGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxhcCA9IHRoaXMudmFsaWRhdGVWcGNDaWRyT3ZlcmxhcChwcm9wcy5yZXF1ZXN0b3JWcGMsIHByb3BzLmFjY2VwdG9yVnBjKTtcbiAgICBpZiAob3ZlcmxhcCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQ0lEUiBibG9jayBzaG91bGQgbm90IG92ZXJsYXAgd2l0aCBlYWNoIG90aGVyIGZvciBlc3RhYmxpc2hpbmcgYSBwZWVyaW5nIGNvbm5lY3Rpb24nLCB0aGlzKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLnZwY1BlZXJpbmdDb25uZWN0aW9uTmFtZSkge1xuICAgICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLnZwY1BlZXJpbmdDb25uZWN0aW9uTmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5WUENQZWVyaW5nQ29ubmVjdGlvbih0aGlzLCAnVlBDUGVlcmluZ0Nvbm5lY3Rpb24nLCB7XG4gICAgICB2cGNJZDogcHJvcHMucmVxdWVzdG9yVnBjLnZwY0lkLFxuICAgICAgcGVlclZwY0lkOiBwcm9wcy5hY2NlcHRvclZwYy52cGNJZCxcbiAgICAgIHBlZXJPd25lcklkOiBwcm9wcy5hY2NlcHRvclZwYy5vd25lckFjY291bnRJZCxcbiAgICAgIHBlZXJSZWdpb246IHByb3BzLmFjY2VwdG9yVnBjLnJlZ2lvbixcbiAgICAgIHBlZXJSb2xlQXJuOiBpc0Nyb3NzQWNjb3VudCA/IHByb3BzLnBlZXJSb2xlQXJuIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXJUYXJnZXRJZCA9IHRoaXMucmVzb3VyY2UuYXR0cklkO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLnJlc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBpZiB0aGUgcHJvdmlkZWQgSVB2NCBDSURSIGJsb2NrIG92ZXJsYXBzIHdpdGggZXhpc3Rpbmcgc3VibmV0IENJRFIgYmxvY2tzIHdpdGhpbiB0aGUgZ2l2ZW4gVlBDLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdG9yVnBjIFRoZSBWUEMgb2YgdGhlIHJlcXVlc3Rvci5cbiAgICogQHBhcmFtIGFjY2VwdG9yVnBjIFRoZSBWUEMgb2YgdGhlIGFjY2VwdG9yLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBJUHY0IENJRFIgYmxvY2sgb3ZlcmxhcHMgd2l0aCBlYWNoIG90aGVyIGZvciB0d28gVlBDcywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVWcGNDaWRyT3ZlcmxhcChyZXF1ZXN0b3JWcGM6IElWcGNWMiwgYWNjZXB0b3JWcGM6IElWcGNWMik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlcXVlc3RvckNpZHJzID0gW3JlcXVlc3RvclZwYy5pcHY0Q2lkckJsb2NrXTtcbiAgICBjb25zdCBhY2NlcHRvckNpZHJzID0gW2FjY2VwdG9yVnBjLmlwdjRDaWRyQmxvY2tdO1xuXG4gICAgaWYgKHJlcXVlc3RvclZwYy5zZWNvbmRhcnlDaWRyQmxvY2spIHtcbiAgICAgIHJlcXVlc3RvckNpZHJzLnB1c2goLi4ucmVxdWVzdG9yVnBjLnNlY29uZGFyeUNpZHJCbG9ja1xuICAgICAgICAubWFwKGJsb2NrID0+IGJsb2NrLmNpZHJCbG9jaylcbiAgICAgICAgLmZpbHRlcigoY2lkcik6IGNpZHIgaXMgc3RyaW5nID0+IGNpZHIgIT09IHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGlmIChhY2NlcHRvclZwYy5zZWNvbmRhcnlDaWRyQmxvY2spIHtcbiAgICAgIGFjY2VwdG9yQ2lkcnMucHVzaCguLi5hY2NlcHRvclZwYy5zZWNvbmRhcnlDaWRyQmxvY2tcbiAgICAgICAgLm1hcChibG9jayA9PiBibG9jay5jaWRyQmxvY2spXG4gICAgICAgIC5maWx0ZXIoKGNpZHIpOiBjaWRyIGlzIHN0cmluZyA9PiBjaWRyICE9PSB1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJlcXVlc3RvckNpZHIgb2YgcmVxdWVzdG9yQ2lkcnMpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3RvclJhbmdlID0gbmV3IENpZHJCbG9jayhyZXF1ZXN0b3JDaWRyKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RvcklwUmFuZ2U6IFtzdHJpbmcsIHN0cmluZ10gPSBbcmVxdWVzdG9yUmFuZ2UubWluSXAoKSwgcmVxdWVzdG9yUmFuZ2UubWF4SXAoKV07XG5cbiAgICAgIGZvciAoY29uc3QgYWNjZXB0b3JDaWRyIG9mIGFjY2VwdG9yQ2lkcnMpIHtcbiAgICAgICAgY29uc3QgYWNjZXB0b3JSYW5nZSA9IG5ldyBDaWRyQmxvY2soYWNjZXB0b3JDaWRyKTtcbiAgICAgICAgY29uc3QgYWNjZXB0b3JJcFJhbmdlOiBbc3RyaW5nLCBzdHJpbmddID0gW2FjY2VwdG9yUmFuZ2UubWluSXAoKSwgYWNjZXB0b3JSYW5nZS5tYXhJcCgpXTtcblxuICAgICAgICBpZiAocmVxdWVzdG9yUmFuZ2UucmFuZ2VzT3ZlcmxhcChhY2NlcHRvcklwUmFuZ2UsIHJlcXVlc3RvcklwUmFuZ2UpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBlbmRwb2ludCBvciBnYXRld2F5IGJlaW5nIHRhcmdldGVkIGJ5IHRoZSByb3V0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVRhcmdldFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHJvdXRlIHRhcmdldC4gVGhpcyBpcyB1c2VkIGZvciB0YXJnZXRzIHN1Y2ggYXNcbiAgICogZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheSBvciBWUEMgcGVlcmluZyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRhcmdldCBpcyBub3Qgc2V0IHRvIGEgZ2F0ZXdheSwgaW4gdGhpcyBjYXNlIGFuIGVuZHBvaW50IGlzIG5lZWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk/OiBJUm91dGVUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCByb3V0ZSB0YXJnZXQuIFRoaXMgaXMgdXNlZCBmb3IgdGFyZ2V0cyBzdWNoIGFzXG4gICAqIFZQQyBlbmRwb2ludHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGFyZ2V0IGlzIG5vdCBzZXQgdG8gYW4gZW5kcG9pbnQsIGluIHRoaXMgY2FzZSBhIGdhdGV3YXkgaXMgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ/OiBJVnBjRW5kcG9pbnQ7XG59XG5cbi8qKlxuICogVGhlIGdhdGV3YXkgb3IgZW5kcG9pbnQgdGFyZ2V0ZWQgYnkgdGhlIHJvdXRlLlxuICovXG5leHBvcnQgY2xhc3MgUm91dGVUYXJnZXRUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHJvdXRlIHRhcmdldC4gVGhpcyBpcyB1c2VkIGZvciB0YXJnZXRzIHN1Y2ggYXNcbiAgICogZWdyZXNzLW9ubHkgaW50ZXJuZXQgZ2F0ZXdheSBvciBWUEMgcGVlcmluZyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRhcmdldCBpcyBub3Qgc2V0IHRvIGEgZ2F0ZXdheSwgaW4gdGhpcyBjYXNlIGFuIGVuZHBvaW50IGlzIG5lZWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk/OiBJUm91dGVUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCByb3V0ZSB0YXJnZXQuIFRoaXMgaXMgdXNlZCBmb3IgdGFyZ2V0cyBzdWNoIGFzXG4gICAqIFZQQyBlbmRwb2ludHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGFyZ2V0IGlzIG5vdCBzZXQgdG8gYW4gZW5kcG9pbnQsIGluIHRoaXMgY2FzZSBhIGdhdGV3YXkgaXMgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ/OiBJVnBjRW5kcG9pbnQ7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFJvdXRlVGFyZ2V0UHJvcHMpIHtcbiAgICB0aGlzLmdhdGV3YXkgPSBwcm9wcy5nYXRld2F5O1xuICAgIHRoaXMuZW5kcG9pbnQgPSBwcm9wcy5lbmRwb2ludDtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSB0byBkZWZpbmUgYSByb3V0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUm91dGVWMiBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhYmxlIGZvciB0aGUgcm91dGUuXG4gICAqIEBhdHRyaWJ1dGUgcm91dGVUYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVUYWJsZTogSVJvdXRlVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBJUHY0IG9yIElQdjYgQ0lEUiBibG9jayB1c2VkIGZvciB0aGUgZGVzdGluYXRpb24gbWF0Y2guXG4gICAqXG4gICAqIFJvdXRpbmcgZGVjaXNpb25zIGFyZSBiYXNlZCBvbiB0aGUgbW9zdCBzcGVjaWZpYyBtYXRjaC5cbiAgICogVE9ETzogTG9vayBmb3Igc3Ryb25nIElQIHR5cGUgaW1wbGVtZW50YXRpb24gaGVyZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IG9yIGVuZHBvaW50IHRhcmdldGVkIGJ5IHRoZSByb3V0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogUm91dGVUYXJnZXRUeXBlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGEgcm91dGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJvdXRlIHRhYmxlIGZvciB0aGUgcm91dGUuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgcm91dGVUYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVUYWJsZTogSVJvdXRlVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBJUHY0IG9yIElQdjYgQ0lEUiBibG9jayB1c2VkIGZvciB0aGUgZGVzdGluYXRpb24gbWF0Y2guXG4gICAqXG4gICAqIFJvdXRpbmcgZGVjaXNpb25zIGFyZSBiYXNlZCBvbiB0aGUgbW9zdCBzcGVjaWZpYyBtYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IG9yIGVuZHBvaW50IHRhcmdldGVkIGJ5IHRoZSByb3V0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogUm91dGVUYXJnZXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgbmFtZSBvZiB0aGUgcm91dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvdmlzaW9uZWQgd2l0aG91dCBhIHJvdXRlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHJvdXRlIHdpdGggYWRkZWQgZnVuY3Rpb25hbGl0eS5cbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6Um91dGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFJvdXRlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVWMiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWVjMi1hbHBoYS5Sb3V0ZSc7XG4gIC8qKlxuICAgKiBUaGUgSVB2NCBvciBJUHY2IENJRFIgYmxvY2sgdXNlZCBmb3IgdGhlIGRlc3RpbmF0aW9uIG1hdGNoLlxuICAgKlxuICAgKiBSb3V0aW5nIGRlY2lzaW9ucyBhcmUgYmFzZWQgb24gdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2guXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdGluYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgb3IgZW5kcG9pbnQgdGFyZ2V0ZWQgYnkgdGhlIHJvdXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldDogUm91dGVUYXJnZXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgcm91dGUgdGFibGUgZm9yIHRoZSByb3V0ZS5cbiAgICogQGF0dHJpYnV0ZSByb3V0ZVRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm91dGVUYWJsZTogSVJvdXRlVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJvdXRlciB0aGUgcm91dGUgaXMgdGFyZ2V0aW5nXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0Um91dGVyVHlwZTogUm91dGVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIHJvdXRlIENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZT86IENmblJvdXRlO1xuXG4gIC8qKlxuICAgKiBEZXN0aW5hdGlvbiBjaWRyIGJsb2NrIGZvciBpcHY2XG4gICAqL1xuICBwcml2YXRlIGRlc3RpbmF0aW9uSXB2NkNpZHI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc3RpbmF0aW9uIGNpZHIgYmxvY2sgZm9yIGlwdjRcbiAgICovXG4gIHByaXZhdGUgZGVzdGluYXRpb25JcHY0Q2lkcj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUm91dGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnRhcmdldCA9IHByb3BzLnRhcmdldDtcbiAgICB0aGlzLnJvdXRlVGFibGUgPSBwcm9wcy5yb3V0ZVRhYmxlO1xuICAgIHRoaXMuZGVzdGluYXRpb24gPSBwcm9wcy5kZXN0aW5hdGlvbjtcbiAgICBjb25zdCBpc0Rlc3RpbmF0aW9uSXB2NCA9IE5ldHdvcmtVdGlscy52YWxpZElwKHByb3BzLmRlc3RpbmF0aW9uKTtcbiAgICBpZiAoIWlzRGVzdGluYXRpb25JcHY0KSB7XG4gICAgICAvLyBUT0RPIFZhbGlkYXRlIGZvciBJUHY2IENJRFIgcmFuZ2VcbiAgICAgIHRoaXMuZGVzdGluYXRpb25JcHY2Q2lkciA9IHByb3BzLmRlc3RpbmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uSXB2NENpZHIgPSBwcm9wcy5kZXN0aW5hdGlvbjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YXJnZXQuZ2F0ZXdheT8ucm91dGVyVHlwZSA9PT0gUm91dGVyVHlwZS5FR1JFU1NfT05MWV9JTlRFUk5FVF9HQVRFV0FZICYmIGlzRGVzdGluYXRpb25JcHY0KSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdFZ3Jlc3Mgb25seSBpbnRlcm5ldCBnYXRld2F5IGRvZXMgbm90IHN1cHBvcnQgSVB2NCByb3V0aW5nJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKChwcm9wcy50YXJnZXQuZ2F0ZXdheSAmJiBwcm9wcy50YXJnZXQuZW5kcG9pbnQpIHx8ICghcHJvcHMudGFyZ2V0LmdhdGV3YXkgJiYgIXByb3BzLnRhcmdldC5lbmRwb2ludCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0V4YWN0bHkgb25lIG9mIGBnYXRld2F5YCBvciBgZW5kcG9pbnRgIG11c3QgYmUgc3BlY2lmaWVkLicsIHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnRhcmdldFJvdXRlclR5cGUgPSB0aGlzLnRhcmdldC5nYXRld2F5ID8gdGhpcy50YXJnZXQuZ2F0ZXdheS5yb3V0ZXJUeXBlIDogUm91dGVyVHlwZS5WUENfRU5EUE9JTlQ7XG4gICAgLy8gR2F0ZXdheSBnZW5lcmF0ZXMgcm91dGUgYXV0b21hdGljYWxseSB2aWEgaXRzIFJvdXRlVGFibGUsIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBnZW5lcmF0ZSB0aGUgcmVzb3VyY2UgZm9yIGl0XG4gICAgaWYgKCEodGhpcy50YXJnZXQuZW5kcG9pbnQgaW5zdGFuY2VvZiBHYXRld2F5VnBjRW5kcG9pbnQpKSB7XG4gICAgICB0aGlzLnJlc291cmNlID0gbmV3IENmblJvdXRlKHRoaXMsICdSb3V0ZScsIHtcbiAgICAgICAgcm91dGVUYWJsZUlkOiB0aGlzLnJvdXRlVGFibGUucm91dGVUYWJsZUlkLFxuICAgICAgICBkZXN0aW5hdGlvbkNpZHJCbG9jazogdGhpcy5kZXN0aW5hdGlvbklwdjRDaWRyLFxuICAgICAgICBkZXN0aW5hdGlvbklwdjZDaWRyQmxvY2s6IHRoaXMuZGVzdGluYXRpb25JcHY2Q2lkcixcbiAgICAgICAgW3JvdXRlclR5cGVUb1Byb3BOYW1lKHRoaXMudGFyZ2V0Um91dGVyVHlwZSldOiB0aGlzLnRhcmdldC5nYXRld2F5ID8gdGhpcy50YXJnZXQuZ2F0ZXdheS5yb3V0ZXJUYXJnZXRJZCA6XG4gICAgICAgICAgdGhpcy50YXJnZXQuZW5kcG9pbnQgPyB0aGlzLnRhcmdldC5lbmRwb2ludC52cGNFbmRwb2ludElkIDogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcblxuICAgIC8vIENyZWF0ZSBhIHJvdXRlIG9ubHkgYWZ0ZXIgdGFyZ2V0IGdhdGV3YXkgb3IgZW5kcG9pbnQgaXMgY3JlYXRlZFxuICAgIGlmICh0aGlzLnRhcmdldC5nYXRld2F5KSB7XG4gICAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnRhcmdldC5nYXRld2F5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFyZ2V0LmVuZHBvaW50KSB7XG4gICAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnRhcmdldC5lbmRwb2ludCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYSByb3V0ZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVRhYmxlUHJvcHMge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMuXG4gICAqL1xuICByZWFkb25seSB2cGM6IElWcGNWMjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG5hbWUgb2YgdGhlIHJvdXRlIHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb3Zpc2lvbmVkIHdpdGhvdXQgYSByb3V0ZSB0YWJsZSBuYW1lXG4gICAqL1xuICByZWFkb25seSByb3V0ZVRhYmxlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcm91dGUgdGFibGUgZm9yIHRoZSBzcGVjaWZpZWQgVlBDXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OlJvdXRlVGFibGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFJvdXRlVGFibGUgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSb3V0ZVRhYmxlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZWMyLWFscGhhLlJvdXRlVGFibGUnO1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByb3V0ZSB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3V0ZVRhYmxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvdXRlIHRhYmxlIENGTiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogQ2ZuUm91dGVUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUm91dGVUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuUm91dGVUYWJsZSh0aGlzLCAnUm91dGVUYWJsZScsIHtcbiAgICAgIHZwY0lkOiBwcm9wcy52cGMudnBjSWQsXG4gICAgfSk7XG4gICAgaWYgKHByb3BzLnJvdXRlVGFibGVOYW1lKSB7XG4gICAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMucm91dGVUYWJsZU5hbWUpO1xuICAgIH1cbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy5yZXNvdXJjZTtcblxuICAgIHRoaXMucm91dGVUYWJsZUlkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChjeF9hcGkuVVNFX1JFU09VUkNFSURfRk9SX1ZQQ1YyX01JR1JBVElPTikgP1xuICAgICAgdGhpcy5yZXNvdXJjZS5yZWYgOiB0aGlzLnJlc291cmNlLmF0dHJSb3V0ZVRhYmxlSWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBjdXN0b20gcm91dGUgdG8gdGhlIHJvdXRlIHRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gZGVzdGluYXRpb24gVGhlIElQdjQgb3IgSVB2NiBDSURSIGJsb2NrIHVzZWQgZm9yIHRoZSBkZXN0aW5hdGlvbiBtYXRjaC5cbiAgICogQHBhcmFtIHRhcmdldCBUaGUgZ2F0ZXdheSBvciBlbmRwb2ludCB0YXJnZXRlZCBieSB0aGUgcm91dGUuXG4gICAqIEBwYXJhbSByb3V0ZU5hbWUgVGhlIHJlc291cmNlIG5hbWUgb2YgdGhlIHJvdXRlLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZFJvdXRlKGlkOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBzdHJpbmcsIHRhcmdldDogUm91dGVUYXJnZXRUeXBlLCByb3V0ZU5hbWU/OiBzdHJpbmcpIHtcbiAgICBuZXcgUm91dGUodGhpcywgaWQsIHtcbiAgICAgIHJvdXRlVGFibGU6IHRoaXMsXG4gICAgICBkZXN0aW5hdGlvbjogZGVzdGluYXRpb24sXG4gICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgIHJvdXRlTmFtZTogcm91dGVOYW1lLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJvdXRlclR5cGVUb1Byb3BOYW1lKHJvdXRlclR5cGU6IFJvdXRlclR5cGUpIHtcbiAgcmV0dXJuICh7XG4gICAgW1JvdXRlclR5cGUuQ0FSUklFUl9HQVRFV0FZXTogJ2NhcnJpZXJHYXRld2F5SWQnLFxuICAgIFtSb3V0ZXJUeXBlLkVHUkVTU19PTkxZX0lOVEVSTkVUX0dBVEVXQVldOiAnZWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkJyxcbiAgICBbUm91dGVyVHlwZS5HQVRFV0FZXTogJ2dhdGV3YXlJZCcsXG4gICAgW1JvdXRlclR5cGUuSU5TVEFOQ0VdOiAnaW5zdGFuY2VJZCcsXG4gICAgW1JvdXRlclR5cGUuTE9DQUxfR0FURVdBWV06ICdsb2NhbEdhdGV3YXlJZCcsXG4gICAgW1JvdXRlclR5cGUuTkFUX0dBVEVXQVldOiAnbmF0R2F0ZXdheUlkJyxcbiAgICBbUm91dGVyVHlwZS5ORVRXT1JLX0lOVEVSRkFDRV06ICduZXR3b3JrSW50ZXJmYWNlSWQnLFxuICAgIFtSb3V0ZXJUeXBlLlRSQU5TSVRfR0FURVdBWV06ICd0cmFuc2l0R2F0ZXdheUlkJyxcbiAgICBbUm91dGVyVHlwZS5WUENfUEVFUklOR19DT05ORUNUSU9OXTogJ3ZwY1BlZXJpbmdDb25uZWN0aW9uSWQnLFxuICAgIFtSb3V0ZXJUeXBlLlZQQ19FTkRQT0lOVF06ICd2cGNFbmRwb2ludElkJyxcbiAgICBbUm91dGVyVHlwZS5DT1JFX05FVFdPUktdOiAnY29yZU5ldHdvcmtBcm4nLFxuICB9KVtyb3V0ZXJUeXBlXTtcbn1cbiJdfQ==
|
package/lib/subnet-v2.js
CHANGED
|
@@ -48,7 +48,7 @@ const util_1 = require("./util");
|
|
|
48
48
|
* IPv4 or IPv6 CIDR range for the subnet
|
|
49
49
|
*/
|
|
50
50
|
class IpCidr {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpCidr", version: "2.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpCidr", version: "2.234.1-alpha.0" };
|
|
52
52
|
/**
|
|
53
53
|
* IPv6 CIDR range for the subnet
|
|
54
54
|
* Allowed only if IPv6 is enabled on VPc
|
|
@@ -96,7 +96,7 @@ let SubnetV2 = (() => {
|
|
|
96
96
|
SubnetV2 = _classThis = _classDescriptor.value;
|
|
97
97
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
98
98
|
}
|
|
99
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.SubnetV2", version: "2.
|
|
99
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.SubnetV2", version: "2.234.1-alpha.0" };
|
|
100
100
|
/** Uniquely identifies this class. */
|
|
101
101
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.SubnetV2';
|
|
102
102
|
/**
|
|
@@ -60,7 +60,7 @@ let TransitGatewayRouteTableAssociation = (() => {
|
|
|
60
60
|
TransitGatewayRouteTableAssociation = _classThis = _classDescriptor.value;
|
|
61
61
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
62
62
|
}
|
|
63
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTableAssociation", version: "2.
|
|
63
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTableAssociation", version: "2.234.1-alpha.0" };
|
|
64
64
|
/** Uniquely identifies this class. */
|
|
65
65
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayRouteTableAssociation';
|
|
66
66
|
/**
|
|
@@ -60,7 +60,7 @@ let TransitGatewayRouteTablePropagation = (() => {
|
|
|
60
60
|
TransitGatewayRouteTablePropagation = _classThis = _classDescriptor.value;
|
|
61
61
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
62
62
|
}
|
|
63
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTablePropagation", version: "2.
|
|
63
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTablePropagation", version: "2.234.1-alpha.0" };
|
|
64
64
|
/** Uniquely identifies this class. */
|
|
65
65
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayRouteTablePropagation';
|
|
66
66
|
/**
|
|
@@ -94,7 +94,7 @@ let TransitGatewayRouteTable = (() => {
|
|
|
94
94
|
TransitGatewayRouteTable = _classThis = _classDescriptor.value;
|
|
95
95
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
96
96
|
}
|
|
97
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTable", version: "2.
|
|
97
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRouteTable", version: "2.234.1-alpha.0" };
|
|
98
98
|
/** Uniquely identifies this class. */
|
|
99
99
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayRouteTable';
|
|
100
100
|
routeTableId;
|
|
@@ -66,7 +66,7 @@ let TransitGatewayRoute = (() => {
|
|
|
66
66
|
TransitGatewayRoute = _classThis = _classDescriptor.value;
|
|
67
67
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
68
68
|
}
|
|
69
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRoute", version: "2.
|
|
69
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayRoute", version: "2.234.1-alpha.0" };
|
|
70
70
|
/** Uniquely identifies this class. */
|
|
71
71
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayRoute';
|
|
72
72
|
routeTable;
|
|
@@ -124,7 +124,7 @@ let TransitGatewayBlackholeRoute = (() => {
|
|
|
124
124
|
TransitGatewayBlackholeRoute = _classThis = _classDescriptor.value;
|
|
125
125
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
126
126
|
}
|
|
127
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayBlackholeRoute", version: "2.
|
|
127
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayBlackholeRoute", version: "2.234.1-alpha.0" };
|
|
128
128
|
/** Uniquely identifies this class. */
|
|
129
129
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayBlackholeRoute';
|
|
130
130
|
routeTable;
|
|
@@ -64,7 +64,7 @@ let TransitGatewayVpcAttachment = (() => {
|
|
|
64
64
|
TransitGatewayVpcAttachment = _classThis = _classDescriptor.value;
|
|
65
65
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
66
66
|
}
|
|
67
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayVpcAttachment", version: "2.
|
|
67
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGatewayVpcAttachment", version: "2.234.1-alpha.0" };
|
|
68
68
|
/** Uniquely identifies this class. */
|
|
69
69
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGatewayVpcAttachment';
|
|
70
70
|
transitGatewayAttachmentId;
|
package/lib/transit-gateway.js
CHANGED
|
@@ -148,7 +148,7 @@ let TransitGateway = (() => {
|
|
|
148
148
|
TransitGateway = _classThis = _classDescriptor.value;
|
|
149
149
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
150
150
|
}
|
|
151
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGateway", version: "2.
|
|
151
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.TransitGateway", version: "2.234.1-alpha.0" };
|
|
152
152
|
/** Uniquely identifies this class. */
|
|
153
153
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.TransitGateway';
|
|
154
154
|
routerType;
|
package/lib/vpc-v2-base.js
CHANGED
|
@@ -15,7 +15,7 @@ const util_1 = require("./util");
|
|
|
15
15
|
* For more information, see the {@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.Vpc.html|AWS CDK Documentation on VPCs}.
|
|
16
16
|
*/
|
|
17
17
|
class VpcV2Base extends aws_cdk_lib_1.Resource {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2Base", version: "2.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2Base", version: "2.234.1-alpha.0" };
|
|
19
19
|
/**
|
|
20
20
|
* List of public subnets in this VPC
|
|
21
21
|
*/
|
package/lib/vpc-v2.js
CHANGED
|
@@ -49,7 +49,7 @@ const vpc_v2_base_1 = require("./vpc-v2-base");
|
|
|
49
49
|
* IpAddress options to define VPC V2
|
|
50
50
|
*/
|
|
51
51
|
class IpAddresses {
|
|
52
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.234.1-alpha.0" };
|
|
53
53
|
/**
|
|
54
54
|
* An IPv4 CIDR Range
|
|
55
55
|
*/
|
|
@@ -152,7 +152,7 @@ let VpcV2 = (() => {
|
|
|
152
152
|
VpcV2 = _classThis = _classDescriptor.value;
|
|
153
153
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
154
154
|
}
|
|
155
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.
|
|
155
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.234.1-alpha.0" };
|
|
156
156
|
/** Uniquely identifies this class. */
|
|
157
157
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-ec2-alpha.VpcV2';
|
|
158
158
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-ec2-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.234.1-alpha.0",
|
|
5
5
|
"description": "The CDK construct library for VPC V2",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -78,17 +78,17 @@
|
|
|
78
78
|
},
|
|
79
79
|
"license": "Apache-2.0",
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
81
|
+
"@aws-cdk/cdk-build-tools": "2.234.1-alpha.0",
|
|
82
82
|
"@aws-cdk/integ-runner": "^2.192.2",
|
|
83
|
-
"@aws-cdk/integ-tests-alpha": "^2.
|
|
84
|
-
"@aws-cdk/pkglint": "2.
|
|
83
|
+
"@aws-cdk/integ-tests-alpha": "^2.234.1-alpha.0",
|
|
84
|
+
"@aws-cdk/pkglint": "2.234.1-alpha.0",
|
|
85
85
|
"@types/jest": "^29.5.14",
|
|
86
|
-
"aws-cdk-lib": "2.
|
|
86
|
+
"aws-cdk-lib": "2.234.1",
|
|
87
87
|
"jest": "^29.7.0"
|
|
88
88
|
},
|
|
89
89
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
90
90
|
"peerDependencies": {
|
|
91
|
-
"aws-cdk-lib": "^2.
|
|
91
|
+
"aws-cdk-lib": "^2.234.1",
|
|
92
92
|
"constructs": "^10.0.0"
|
|
93
93
|
},
|
|
94
94
|
"separate-module": false,
|