@aws-cdk/app-staging-synthesizer-alpha 2.88.0-alpha.0 → 2.89.0-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 CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "2.88.0",
11
+ "aws-cdk-lib": "2.89.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3492,7 +3492,7 @@
3492
3492
  "stability": "experimental"
3493
3493
  },
3494
3494
  "homepage": "https://github.com/aws/aws-cdk",
3495
- "jsiiVersion": "5.1.8 (build acd3d7c)",
3495
+ "jsiiVersion": "5.1.9 (build fa65a10)",
3496
3496
  "keywords": [
3497
3497
  "aws",
3498
3498
  "cdk"
@@ -4231,7 +4231,7 @@
4231
4231
  },
4232
4232
  "locationInModule": {
4233
4233
  "filename": "lib/default-staging-stack.ts",
4234
- "line": 230
4234
+ "line": 241
4235
4235
  },
4236
4236
  "parameters": [
4237
4237
  {
@@ -4260,7 +4260,7 @@
4260
4260
  "kind": "class",
4261
4261
  "locationInModule": {
4262
4262
  "filename": "lib/default-staging-stack.ts",
4263
- "line": 143
4263
+ "line": 153
4264
4264
  },
4265
4265
  "methods": [
4266
4266
  {
@@ -4270,7 +4270,7 @@
4270
4270
  },
4271
4271
  "locationInModule": {
4272
4272
  "filename": "lib/default-staging-stack.ts",
4273
- "line": 147
4273
+ "line": 157
4274
4274
  },
4275
4275
  "name": "factory",
4276
4276
  "parameters": [
@@ -4295,7 +4295,7 @@
4295
4295
  },
4296
4296
  "locationInModule": {
4297
4297
  "filename": "lib/default-staging-stack.ts",
4298
- "line": 450
4298
+ "line": 461
4299
4299
  },
4300
4300
  "name": "addDockerImage",
4301
4301
  "overrides": "@aws-cdk/app-staging-synthesizer-alpha.IStagingResources",
@@ -4320,7 +4320,7 @@
4320
4320
  },
4321
4321
  "locationInModule": {
4322
4322
  "filename": "lib/default-staging-stack.ts",
4323
- "line": 438
4323
+ "line": 449
4324
4324
  },
4325
4325
  "name": "addFile",
4326
4326
  "overrides": "@aws-cdk/app-staging-synthesizer-alpha.IStagingResources",
@@ -4349,7 +4349,7 @@
4349
4349
  "immutable": true,
4350
4350
  "locationInModule": {
4351
4351
  "filename": "lib/default-staging-stack.ts",
4352
- "line": 207
4352
+ "line": 218
4353
4353
  },
4354
4354
  "name": "dependencyStack",
4355
4355
  "type": {
@@ -4364,7 +4364,7 @@
4364
4364
  "immutable": true,
4365
4365
  "locationInModule": {
4366
4366
  "filename": "lib/default-staging-stack.ts",
4367
- "line": 202
4367
+ "line": 213
4368
4368
  },
4369
4369
  "name": "stagingRepos",
4370
4370
  "type": {
@@ -4384,7 +4384,7 @@
4384
4384
  "immutable": true,
4385
4385
  "locationInModule": {
4386
4386
  "filename": "lib/default-staging-stack.ts",
4387
- "line": 197
4387
+ "line": 208
4388
4388
  },
4389
4389
  "name": "stagingBucket",
4390
4390
  "optional": true,
@@ -4540,6 +4540,25 @@
4540
4540
  "type": {
4541
4541
  "primitive": "string"
4542
4542
  }
4543
+ },
4544
+ {
4545
+ "abstract": true,
4546
+ "docs": {
4547
+ "default": "'StagingStack'",
4548
+ "remarks": "The prefix will be appended before the appId, which\nis required to be part of the stack name and construct ID to\nensure uniqueness.",
4549
+ "stability": "experimental",
4550
+ "summary": "Specify a custom prefix to be used as the staging stack name and construct ID."
4551
+ },
4552
+ "immutable": true,
4553
+ "locationInModule": {
4554
+ "filename": "lib/default-staging-stack.ts",
4555
+ "line": 123
4556
+ },
4557
+ "name": "stagingStackNamePrefix",
4558
+ "optional": true,
4559
+ "type": {
4560
+ "primitive": "string"
4561
+ }
4543
4562
  }
4544
4563
  ],
4545
4564
  "symbolId": "lib/default-staging-stack:DefaultStagingStackOptions"
@@ -4550,7 +4569,7 @@
4550
4569
  "docs": {
4551
4570
  "stability": "experimental",
4552
4571
  "summary": "Default Staging Stack Properties.",
4553
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as app_staging_synthesizer_alpha from '@aws-cdk/app-staging-synthesizer-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const bootstrapRole: app_staging_synthesizer_alpha.BootstrapRole;\ndeclare const permissionsBoundary: cdk.PermissionsBoundary;\ndeclare const stackSynthesizer: cdk.StackSynthesizer;\nconst defaultStagingStackProps: app_staging_synthesizer_alpha.DefaultStagingStackProps = {\n appId: 'appId',\n qualifier: 'qualifier',\n\n // the properties below are optional\n analyticsReporting: false,\n autoDeleteStagingAssets: false,\n crossRegionReferences: false,\n deployRoleArn: 'deployRoleArn',\n deployTimeFileAssetLifetime: cdk.Duration.minutes(30),\n description: 'description',\n env: {\n account: 'account',\n region: 'region',\n },\n fileAssetPublishingRole: bootstrapRole,\n imageAssetPublishingRole: bootstrapRole,\n imageAssetVersionCount: 123,\n permissionsBoundary: permissionsBoundary,\n stackName: 'stackName',\n stagingBucketName: 'stagingBucketName',\n suppressTemplateIndentation: false,\n synthesizer: stackSynthesizer,\n tags: {\n tagsKey: 'tags',\n },\n terminationProtection: false,\n};",
4572
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as app_staging_synthesizer_alpha from '@aws-cdk/app-staging-synthesizer-alpha';\nimport * as cdk from 'aws-cdk-lib';\n\ndeclare const bootstrapRole: app_staging_synthesizer_alpha.BootstrapRole;\ndeclare const permissionsBoundary: cdk.PermissionsBoundary;\ndeclare const stackSynthesizer: cdk.StackSynthesizer;\nconst defaultStagingStackProps: app_staging_synthesizer_alpha.DefaultStagingStackProps = {\n appId: 'appId',\n qualifier: 'qualifier',\n\n // the properties below are optional\n analyticsReporting: false,\n autoDeleteStagingAssets: false,\n crossRegionReferences: false,\n deployRoleArn: 'deployRoleArn',\n deployTimeFileAssetLifetime: cdk.Duration.minutes(30),\n description: 'description',\n env: {\n account: 'account',\n region: 'region',\n },\n fileAssetPublishingRole: bootstrapRole,\n imageAssetPublishingRole: bootstrapRole,\n imageAssetVersionCount: 123,\n permissionsBoundary: permissionsBoundary,\n stackName: 'stackName',\n stagingBucketName: 'stagingBucketName',\n stagingStackNamePrefix: 'stagingStackNamePrefix',\n suppressTemplateIndentation: false,\n synthesizer: stackSynthesizer,\n tags: {\n tagsKey: 'tags',\n },\n terminationProtection: false,\n};",
4554
4573
  "custom": {
4555
4574
  "exampleMetadata": "fixture=_generated"
4556
4575
  }
@@ -4563,7 +4582,7 @@
4563
4582
  "kind": "interface",
4564
4583
  "locationInModule": {
4565
4584
  "filename": "lib/default-staging-stack.ts",
4566
- "line": 119
4585
+ "line": 129
4567
4586
  },
4568
4587
  "name": "DefaultStagingStackProps",
4569
4588
  "properties": [
@@ -4577,7 +4596,7 @@
4577
4596
  "immutable": true,
4578
4597
  "locationInModule": {
4579
4598
  "filename": "lib/default-staging-stack.ts",
4580
- "line": 134
4599
+ "line": 144
4581
4600
  },
4582
4601
  "name": "qualifier",
4583
4602
  "type": {
@@ -4595,7 +4614,7 @@
4595
4614
  "immutable": true,
4596
4615
  "locationInModule": {
4597
4616
  "filename": "lib/default-staging-stack.ts",
4598
- "line": 127
4617
+ "line": 137
4599
4618
  },
4600
4619
  "name": "deployRoleArn",
4601
4620
  "optional": true,
@@ -5213,6 +5232,6 @@
5213
5232
  "symbolId": "lib/default-staging-stack:UsingAppStagingSynthesizer"
5214
5233
  }
5215
5234
  },
5216
- "version": "2.88.0-alpha.0",
5235
+ "version": "2.89.0-alpha.0",
5217
5236
  "fingerprint": "**********"
5218
5237
  }
Binary file
@@ -171,7 +171,7 @@ class AppStagingSynthesizer extends core_1.StackSynthesizer {
171
171
  }
172
172
  exports.AppStagingSynthesizer = AppStagingSynthesizer;
173
173
  _a = JSII_RTTI_SYMBOL_1;
174
- AppStagingSynthesizer[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.AppStagingSynthesizer", version: "2.88.0-alpha.0" };
174
+ AppStagingSynthesizer[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.AppStagingSynthesizer", version: "2.89.0-alpha.0" };
175
175
  /**
176
176
  * Default ARN qualifier
177
177
  */
@@ -54,7 +54,7 @@ class BootstrapRole {
54
54
  }
55
55
  exports.BootstrapRole = BootstrapRole;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
- BootstrapRole[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.BootstrapRole", version: "2.88.0-alpha.0" };
57
+ BootstrapRole[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.BootstrapRole", version: "2.89.0-alpha.0" };
58
58
  BootstrapRole.CLI_CREDS = 'cli-credentials';
59
59
  /**
60
60
  * Deployment identities are the class of roles to be assumed by the CDK
@@ -122,5 +122,5 @@ class DeploymentIdentities {
122
122
  }
123
123
  exports.DeploymentIdentities = DeploymentIdentities;
124
124
  _b = JSII_RTTI_SYMBOL_1;
125
- DeploymentIdentities[_b] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DeploymentIdentities", version: "2.88.0-alpha.0" };
125
+ DeploymentIdentities[_b] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DeploymentIdentities", version: "2.89.0-alpha.0" };
126
126
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLXJvbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLXJvbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRFQUF3STtBQUN4SSx1RUFBa0U7QUFFbEU7OztHQUdHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWM7UUFDMUIsT0FBTyxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbkQ7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxvQ0FBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQy9CO0lBSUQsWUFBcUMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7S0FBSTtJQUV4RDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQztLQUNqRDtJQUVEOztPQUVHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBQSxnREFBNkIsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDMUY7SUFFRDs7T0FFRztJQUNJLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEsZ0RBQTZCLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFGO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsSUFBdUI7UUFDeEMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ3pEOztBQTlDSCxzQ0ErQ0M7OztBQS9CZ0IsdUJBQVMsR0FBRyxpQkFBaUIsQ0FBQztBQWlDL0M7OztHQUdHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsY0FBYztRQUMxQixPQUFPLElBQUksb0JBQW9CLENBQUM7WUFDOUIsMkJBQTJCLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFBRTtZQUMzRCxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFBRTtZQUM5QyxVQUFVLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFBRTtTQUMzQyxDQUFDLENBQUM7S0FDSjtJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBcUI7Ozs7Ozs7Ozs7UUFDOUMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3hDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBd0MsRUFBRTs7Ozs7Ozs7OztRQUM1RSxTQUFTLG1CQUFtQixDQUFDLENBQVM7WUFDcEMsSUFBSSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRTtnQkFDekMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsT0FBTyxJQUFJLG9CQUFvQixDQUFDO1lBQzlCLGNBQWMsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLCtDQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDN0csMkJBQTJCLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQywrQ0FBcUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQ2xJLFVBQVUsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLCtDQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUcsQ0FBQyxDQUFDO0tBQ0o7SUFrQkQ7SUFDRSxtREFBbUQ7SUFDbkQsS0FBcUI7UUFFckIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztRQUNyRSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO0tBQ3BDOztBQTdESCxvREE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpbmdTcGVjaWFsaXplciwgdHJhbnNsYXRlQXNzZXRUb2tlblRvQ2ZuVG9rZW4sIHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBBcHBTdGFnaW5nU3ludGhlc2l6ZXIgfSBmcm9tICcuL2FwcC1zdGFnaW5nLXN5bnRoZXNpemVyJztcblxuLyoqXG4gKiBCb290c3RyYXBwZWQgcm9sZSBzcGVjaWZpZXIuIFRoZXNlIHJvbGVzIG11c3QgZXhpc3QgYWxyZWFkeS5cbiAqIFRoaXMgY2xhc3MgZG9lcyBub3QgY3JlYXRlIG5ldyBJQU0gUm9sZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBSb2xlIHtcbiAgLyoqXG4gICAqIFVzZSB0aGUgY3VycmVudGx5IGFzc3VtZWQgcm9sZS9jcmVkZW50aWFsc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjbGlDcmVkZW50aWFscygpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFJvbGUoQm9vdHN0cmFwUm9sZS5DTElfQ1JFRFMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYW4gZXhpc3RpbmcgSUFNIFJvbGUgdG8gYXNzdW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Sb2xlQXJuKGFybjogc3RyaW5nKSB7XG4gICAgU3RyaW5nU3BlY2lhbGl6ZXIudmFsaWRhdGVOb1Rva2Vucyhhcm4sICdCb290c3RyYXBSb2xlIEFSTicpO1xuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwUm9sZShhcm4pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgQ0xJX0NSRURTID0gJ2NsaS1jcmVkZW50aWFscyc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZykge31cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBpcyBvYmplY3Qgd2FzIGNyZWF0ZWQgdXNpbmcgQm9vdHN0cmFwUm9sZS5jbGlDcmVkZW50aWFscygpXG4gICAqL1xuICBwdWJsaWMgaXNDbGlDcmVkZW50aWFscygpIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlQXJuID09PSBCb290c3RyYXBSb2xlLkNMSV9DUkVEUztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYXJuRm9yQ2xvdWRGb3JtYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNDbGlDcmVkZW50aWFscygpID8gdW5kZWZpbmVkIDogdHJhbnNsYXRlQXNzZXRUb2tlblRvQ2ZuVG9rZW4odGhpcy5yb2xlQXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYXJuRm9yQ2xvdWRBc3NlbWJseSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0NsaUNyZWRlbnRpYWxzKCkgPyB1bmRlZmluZWQgOiB0cmFuc2xhdGVDZm5Ub2tlblRvQXNzZXRUb2tlbih0aGlzLnJvbGVBcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9zcGVjaWFsaXplKHNwZWM6IFN0cmluZ1NwZWNpYWxpemVyKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBSb2xlKHNwZWMuc3BlY2lhbGl6ZSh0aGlzLnJvbGVBcm4pKTtcbiAgfVxufVxuXG4vKipcbiAqIERlcGxveW1lbnQgaWRlbnRpdGllcyBhcmUgdGhlIGNsYXNzIG9mIHJvbGVzIHRvIGJlIGFzc3VtZWQgYnkgdGhlIENES1xuICogd2hlbiBkZXBsb3lpbmcgdGhlIEFwcC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveW1lbnRJZGVudGl0aWVzIHtcbiAgLyoqXG4gICAqIFVzZSBDTEkgY3JlZGVudGlhbHMgZm9yIGFsbCBkZXBsb3ltZW50IGlkZW50aXRpZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNsaUNyZWRlbnRpYWxzKCk6IERlcGxveW1lbnRJZGVudGl0aWVzIHtcbiAgICByZXR1cm4gbmV3IERlcGxveW1lbnRJZGVudGl0aWVzKHtcbiAgICAgIGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZTogQm9vdHN0cmFwUm9sZS5jbGlDcmVkZW50aWFscygpLFxuICAgICAgZGVwbG95bWVudFJvbGU6IEJvb3RzdHJhcFJvbGUuY2xpQ3JlZGVudGlhbHMoKSxcbiAgICAgIGxvb2t1cFJvbGU6IEJvb3RzdHJhcFJvbGUuY2xpQ3JlZGVudGlhbHMoKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHlvdXIgb3duIHJvbGVzIGZvciBhbGwgZGVwbG95bWVudCBpZGVudGl0aWVzLiBUaGVzZSByb2xlc1xuICAgKiBtdXN0IGFscmVhZHkgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNwZWNpZnlSb2xlcyhyb2xlczogQm9vdHN0cmFwUm9sZXMpOiBEZXBsb3ltZW50SWRlbnRpdGllcyB7XG4gICAgcmV0dXJuIG5ldyBEZXBsb3ltZW50SWRlbnRpdGllcyhyb2xlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoZSBSb2xlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IHRoZSBkZWZhdWx0IGJvb3RzdHJhcCBzdGFja1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0Qm9vdHN0cmFwUm9sZXMob3B0aW9uczogRGVmYXVsdEJvb3RzdHJhcFJvbGVzT3B0aW9ucyA9IHt9KTogRGVwbG95bWVudElkZW50aXRpZXMge1xuICAgIGZ1bmN0aW9uIHJlcGxhY2VQbGFjZWhvbGRlcnMoeDogc3RyaW5nKSB7XG4gICAgICBpZiAob3B0aW9ucy5ib290c3RyYXBSZWdpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB4ID0geC5yZXBsYWNlKC9cXCRcXHtBV1M6OlJlZ2lvblxcfS9nLCBvcHRpb25zLmJvb3RzdHJhcFJlZ2lvbik7XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlcGxveW1lbnRJZGVudGl0aWVzKHtcbiAgICAgIGRlcGxveW1lbnRSb2xlOiBCb290c3RyYXBSb2xlLmZyb21Sb2xlQXJuKHJlcGxhY2VQbGFjZWhvbGRlcnMoQXBwU3RhZ2luZ1N5bnRoZXNpemVyLkRFRkFVTFRfREVQTE9ZX1JPTEVfQVJOKSksXG4gICAgICBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU6IEJvb3RzdHJhcFJvbGUuZnJvbVJvbGVBcm4ocmVwbGFjZVBsYWNlaG9sZGVycyhBcHBTdGFnaW5nU3ludGhlc2l6ZXIuREVGQVVMVF9DTE9VREZPUk1BVElPTl9ST0xFX0FSTikpLFxuICAgICAgbG9va3VwUm9sZTogQm9vdHN0cmFwUm9sZS5mcm9tUm9sZUFybihyZXBsYWNlUGxhY2Vob2xkZXJzKEFwcFN0YWdpbmdTeW50aGVzaXplci5ERUZBVUxUX0xPT0tVUF9ST0xFX0FSTikpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3VkRm9ybWF0aW9uIEV4ZWN1dGlvbiBSb2xlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBBY3Rpb24gUm9sZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveW1lbnRSb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogTG9va3VwIFJvbGVcbiAgICBAZGVmYXVsdCAtIHVzZSBib290c3RyYXBwZWQgcm9sZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvb2t1cFJvbGU/OiBCb290c3RyYXBSb2xlO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgLyoqIHJvbGVzIHRoYXQgYXJlIGJvb3RzdHJhcHBlZCB0byB5b3VyIGFjY291bnQuICovXG4gICAgcm9sZXM6IEJvb3RzdHJhcFJvbGVzLFxuICApIHtcbiAgICB0aGlzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZSA9IHJvbGVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZTtcbiAgICB0aGlzLmRlcGxveW1lbnRSb2xlID0gcm9sZXMuZGVwbG95bWVudFJvbGU7XG4gICAgdGhpcy5sb29rdXBSb2xlID0gcm9sZXMubG9va3VwUm9sZTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBEZXBsb3ltZW50SWRlbnRpdGllcy5kZWZhdWx0Qm9vdHN0cmFwcGVkUm9sZXNgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEJvb3RzdHJhcFJvbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHdoZXJlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCByb2xlcyBoYXZlIGJlZW4gY3JlYXRlZFxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcmVnaW9uIGluIHdoaWNoIHRoZSBzdGFjayBpcyBkZXBsb3llZCBpcyB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBzdGFjaydzIGN1cnJlbnQgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBSZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUm9sZXMgdGhhdCBhcmUgYm9vdHN0cmFwcGVkIHRvIHlvdXIgYWNjb3VudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSb2xlcyB7XG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBFeGVjdXRpb24gUm9sZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBib290c3RyYXBwZWQgcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBBY3Rpb24gUm9sZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBib29zdHJhcHBlZCByb2xlXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50Um9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIExvb2t1cCBSb2xlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIGJvb3RzdHJhcHBlZCByb2xlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBSb2xlPzogQm9vdHN0cmFwUm9sZTtcbn1cblxuLyoqXG4gKiBSb2xlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgU3RhZ2luZyBTdGFja1xuICogKGZvciBhY2Nlc3MgdG8gU3RhZ2luZyBSZXNvdXJjZXMpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2luZ1JvbGVzIHtcbiAgLyoqXG4gICAqIEZpbGUgQXNzZXQgUHVibGlzaGluZyBSb2xlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3RhZ2luZyBzdGFjayBjcmVhdGVzIGEgZmlsZSBhc3NldCBwdWJsaXNoaW5nIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVBc3NldFB1Ymxpc2hpbmdSb2xlPzogQm9vdHN0cmFwUm9sZTtcblxuICAvKipcbiAgICogRG9ja2VyIEFzc2V0IFB1Ymxpc2hpbmcgUm9sZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN0YWdpbmcgc3RhY2sgY3JlYXRlcyBhIGRvY2tlciBhc3NldCBwdWJsaXNoaW5nIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckFzc2V0UHVibGlzaGluZ1JvbGU/OiBCb290c3RyYXBSb2xlO1xufVxuIl19
@@ -82,6 +82,15 @@ export interface DefaultStagingStackOptions {
82
82
  * @default true
83
83
  */
84
84
  readonly autoDeleteStagingAssets?: boolean;
85
+ /**
86
+ * Specify a custom prefix to be used as the staging stack name and
87
+ * construct ID. The prefix will be appended before the appId, which
88
+ * is required to be part of the stack name and construct ID to
89
+ * ensure uniqueness.
90
+ *
91
+ * @default 'StagingStack'
92
+ */
93
+ readonly stagingStackNamePrefix?: string;
85
94
  }
86
95
  /**
87
96
  * Default Staging Stack Properties
@@ -30,7 +30,7 @@ class UsingAppStagingSynthesizer extends constructs_1.Construct {
30
30
  }
31
31
  exports.UsingAppStagingSynthesizer = UsingAppStagingSynthesizer;
32
32
  _a = JSII_RTTI_SYMBOL_1;
33
- UsingAppStagingSynthesizer[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.UsingAppStagingSynthesizer", version: "2.88.0-alpha.0" };
33
+ UsingAppStagingSynthesizer[_a] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.UsingAppStagingSynthesizer", version: "2.89.0-alpha.0" };
34
34
  /**
35
35
  * A default Staging Stack that implements IStagingResources.
36
36
  *
@@ -63,11 +63,13 @@ class DefaultStagingStack extends core_1.Stack {
63
63
  if (cxapi.ANALYTICS_REPORTING_ENABLED_CONTEXT) {
64
64
  new UsingAppStagingSynthesizer(stack, `UsingAppStagingSynthesizer/${stack.stackName}`);
65
65
  }
66
- const stackId = `StagingStack-${appId}-${context.environmentString}`;
66
+ const stackPrefix = options.stagingStackNamePrefix ?? 'StagingStack';
67
+ // Stack name does not need to contain environment because appId is unique inside an env
68
+ const stackName = `${stackPrefix}-${appId}`;
69
+ const stackId = `${stackName}-${context.environmentString}`;
67
70
  return new DefaultStagingStack(app, stackId, {
68
71
  ...options,
69
- // Does not need to contain environment because stack names are unique inside an env anyway
70
- stackName: `StagingStack-${appId}`,
72
+ stackName,
71
73
  env: {
72
74
  account: stack.account,
73
75
  region: stack.region,
@@ -317,5 +319,5 @@ class DefaultStagingStack extends core_1.Stack {
317
319
  }
318
320
  exports.DefaultStagingStack = DefaultStagingStack;
319
321
  _b = JSII_RTTI_SYMBOL_1;
320
- DefaultStagingStack[_b] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStack", version: "2.88.0-alpha.0" };
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLDJDQVkwQjtBQUMxQiw0RUFBMEU7QUFDMUUsNENBQTRDO0FBQzVDLDJDQUF1QztBQUkxQixRQUFBLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxzQkFBUztJQUN2RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2xCOztBQUhILGdFQUlDOzs7QUFpR0Q7Ozs7O0dBS0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFlBQUs7SUFDNUM7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQW1DOzs7Ozs7Ozs7O1FBQ3ZELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTztZQUNMLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxVQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsVUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssQ0FBQyxTQUFTLHlCQUF5QixDQUFDLENBQUM7aUJBQ3BFO2dCQUVELDRFQUE0RTtnQkFDNUUsMEVBQTBFO2dC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QUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLElBQUksUUFBUSxDQUFDLENBQUM7U0FDeEc7S0FDRjs7QUEzVUgsa0RBNFVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIEFybkZvcm1hdCxcbiAgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyLFxuICBEb2NrZXJJbWFnZUFzc2V0U291cmNlLFxuICBEdXJhdGlvbixcbiAgRmlsZUFzc2V0U291cmNlLFxuICBJU3ludGhlc2lzU2Vzc2lvbixcbiAgUmVtb3ZhbFBvbGljeSxcbiAgU3RhY2ssXG4gIFN0YWNrUHJvcHMsXG4gIElOTElORV9DVVNUT01fUkVTT1VSQ0VfQ09OVEVYVCxcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBTdHJpbmdTcGVjaWFsaXplciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnYXdzLWNkay1saWIvY3gtYXBpJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQm9vdHN0cmFwUm9sZSB9IGZyb20gJy4vYm9vdHN0cmFwLXJvbGVzJztcbmltcG9ydCB7IEZpbGVTdGFnaW5nTG9jYXRpb24sIElTdGFnaW5nUmVzb3VyY2VzLCBJU3RhZ2luZ1Jlc291cmNlc0ZhY3RvcnksIEltYWdlU3RhZ2luZ0xvY2F0aW9uIH0gZnJvbSAnLi9zdGFnaW5nLXN0YWNrJztcblxuZXhwb3J0IGNvbnN0IERFUExPWV9USU1FX1BSRUZJWCA9ICdkZXBsb3ktdGltZS8nO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBkdW1teSBjb25zdHJ1Y3QgbWVhbnQgdG8gc2lnbmlmeSB0aGF0IGEgc3RhY2sgaXMgdXRpbGl6aW5nXG4gKiB0aGUgQXBwU3RhZ2luZ1N5bnRoZXNpemVyLiBJdCBkb2VzIG5vdCBkbyBhbnl0aGluZywgYW5kIGlzIG5vdCBtZWFudFxuICogdG8gYmUgY3JlYXRlZCBvbiBpdHMgb3duLiBUaGlzIGNvbnN0cnVjdCB3aWxsIGJlIGEgcGFydCBvZiB0aGVcbiAqIGNvbnN0cnVjdCB0cmVlIG9ubHkgYW5kIG5vdCB0aGUgQ2ZuIHRlbXBsYXRlLiBUaGUgY29uc3RydWN0IHRyZWUgaXNcbiAqIHRoZW4gZW5jb2RlZCBpbiB0aGUgQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlIG9mIHRoZSBzdGFjayBhbmRcbiAqIGluamVzdGVkIGluIG91ciBtZXRyaWNzIGxpa2UgZXZlcnkgb3RoZXIgY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgVXNpbmdBcHBTdGFnaW5nU3ludGhlc2l6ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuXG4vKipcbiAqIFVzZXIgY29uZmlndXJhYmxlIG9wdGlvbnMgdG8gdGhlIERlZmF1bHRTdGFnaW5nU3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHN0YWdpbmcgc3RhY2sgYmVsb25ncyB0by5cbiAgICpcbiAgICogVGhpcyBpZGVudGlmaWVyIHdpbGwgYmUgdXNlZCBpbiB0aGUgbmFtZSBvZiBzdGFnaW5nIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBhbmQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgQ0RLIGFwcHMuXG4gICAqXG4gICAqIFRoZSBpZGVudGlmaWVyIHNob3VsZCBpbmNsdWRlIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMgKCctJykgb25seVxuICAgKiBhbmQgaGF2ZSBhIG1heGltdW0gb2YgMjAgY2hhcmFjdGVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IG5hbWUgZm9yIHRoZSBzdGFnaW5nIGJ1Y2tldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgd2VsbC1rbm93biBuYW1lIHVuaXF1ZSB0byB0aGlzIGFwcC9lbnYuXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nQnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFzcyBpbiBhbiBleGlzdGluZyByb2xlIHRvIGJlIHVzZWQgYXMgdGhlIGZpbGUgcHVibGlzaGluZyByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBmaWxlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFBhc3MgaW4gYW4gZXhpc3Rpbmcgcm9sZSB0byBiZSB1c2VkIGFzIHRoZSBpbWFnZSBwdWJsaXNoaW5nIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZldGltZSBmb3IgZGVwbG95IHRpbWUgZmlsZSBhc3NldHMuXG4gICAqXG4gICAqIEFzc2V0cyB0aGF0IGFyZSBvbmx5IG5lY2Vzc2FyeSBhdCBkZXBsb3ltZW50IHRpbWUgKGZvciBpbnN0YW5jZSxcbiAgICogQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzIGFuZCBMYW1iZGEgc291cmNlIGNvZGUgYnVuZGxlcykgd2lsbCBiZVxuICAgKiBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQgYWZ0ZXIgdGhpcyBtYW55IGRheXMuIEFzc2V0cyB0aGF0IG1heSBiZVxuICAgKiByZWFkIGZyb20gdGhlIHN0YWdpbmcgYnVja2V0IGR1cmluZyB5b3VyIGFwcGxpY2F0aW9uJ3MgcnVuIHRpbWVcbiAgICogd2lsbCBub3QgYmUgZGVsZXRlZC5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gdGhlIGxlbmd0aCBvZiB0aW1lIHlvdSB3aXNoIHRvIGJlIGFibGUgdG8gcm9sbCBiYWNrIHRvXG4gICAqIHByZXZpb3VzIHZlcnNpb25zIG9mIHlvdXIgYXBwbGljYXRpb24gd2l0aG91dCBoYXZpbmcgdG8gZG8gYSBuZXdcbiAgICogYGNkayBzeW50aGAgYW5kIHJlLXVwbG9hZCBvZiBhc3NldHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uZGF5cygzMClcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVRpbWVGaWxlQXNzZXRMaWZldGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW1hZ2UgdmVyc2lvbnMgdG8gc3RvcmUgaW4gYSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBQcmV2aW91cyB2ZXJzaW9ucyBvZiBhbiBpbWFnZSBjYW4gYmUgc3RvcmVkIGZvciByb2xsYmFjayBwdXJwb3Nlcy5cbiAgICogT25jZSBhIHJlcG9zaXRvcnkgaGFzIG1vcmUgdGhhbiAzIGltYWdlIHZlcnNpb25zIHN0b3JlZCwgdGhlIG9sZGVzdFxuICAgKiB2ZXJzaW9uIHdpbGwgYmUgZGlzY2FyZGVkLiBUaGlzIGFsbG93cyBmb3Igc2Vuc2libGUgZ2FyYmFnZSBjb2xsZWN0aW9uXG4gICAqIHdoaWxlIG1haW50YWluaW5nIGEgZmV3IHByZXZpb3VzIHZlcnNpb25zIGZvciByb2xsYmFjayBzY2VuYXJpb3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXAgdG8gMyB2ZXJzaW9ucyBzdG9yZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRWZXJzaW9uQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF1dG8gZGVsZXRlcyBvYmplY3RzIGluIHRoZSBzdGFnaW5nIFMzIGJ1Y2tldCBhbmQgaW1hZ2VzIGluIHRoZVxuICAgKiBzdGFnaW5nIEVDUiByZXBvc2l0b3JpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9EZWxldGVTdGFnaW5nQXNzZXRzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IFN0YWdpbmcgU3RhY2sgUHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRTdGFnaW5nU3RhY2tQcm9wcyBleHRlbmRzIERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zLCBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGRlcGxveSBhY3Rpb24gcm9sZSwgaWYgZ2l2ZW5cbiAgICpcbiAgICogVGhpcyByb2xlIHdpbGwgbmVlZCBwZXJtaXNzaW9ucyB0byByZWFkIGZyb20gdG8gdGhlIHN0YWdpbmcgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBDTEkgY3JlZGVudGlhbHMgYXJlIGFzc3VtZWQsIG5vIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVhbGlmaWVyIHVzZWQgdG8gc3BlY2lhbGl6ZSBzdHJpbmdzXG4gICAqXG4gICAqIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgYnV0IHdobyBrbm93cyB3aGF0IHBlb3BsZSBtaWdodCBkby5cbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgZGVmYXVsdCBTdGFnaW5nIFN0YWNrIHRoYXQgaW1wbGVtZW50cyBJU3RhZ2luZ1Jlc291cmNlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZGVmYXVsdFN0YWdpbmdTdGFjayA9IERlZmF1bHRTdGFnaW5nU3RhY2suZmFjdG9yeSh7IGFwcElkOiAnbXktYXBwLWlkJyB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHRTdGFnaW5nU3RhY2sgZXh0ZW5kcyBTdGFjayBpbXBsZW1lbnRzIElTdGFnaW5nUmVzb3VyY2VzIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIGZhY3RvcnkgdGhhdCB3aWxsIGNyZWF0ZSBEZWZhdWx0U3RhZ2luZ1N0YWNrc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmYWN0b3J5KG9wdGlvbnM6IERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zKTogSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5IHtcbiAgICBjb25zdCBhcHBJZCA9IG9wdGlvbnMuYXBwSWQudG9Mb2NhbGVMb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csICctJykuc2xpY2UoMCwgMjApO1xuICAgIHJldHVybiB7XG4gICAgICBvYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrLCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IEFwcC5vZihzdGFjayk7XG4gICAgICAgIGlmICghQXBwLmlzQXBwKGFwcCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0YWNrICR7c3RhY2suc3RhY2tOYW1lfSBtdXN0IGJlIHBhcnQgb2YgYW4gQXBwYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCZWNhdXNlIHdlIGRvIG5vdCBrZWVwIG1ldHJpY3MgaW4gdGhlIERlZmF1bHRTdGFnaW5nU3RhY2ssIHdlIHdpbGwgaW5qZWN0XG4gICAgICAgIC8vIGEgZHVtbXkgY29uc3RydWN0IGludG8gdGhlIHN0YWNrIHVzaW5nIHRoZSBEZWZhdWx0U3RhZ2luZ1N0YWNrIGluc3RlYWQuXG4gICAgICAgIGlmIChjeGFwaS5BTkFMWVRJQ1NfUkVQT1JUSU5HX0VOQUJMRURfQ09OVEVYVCkge1xuICAgICAgICAgIG5ldyBVc2luZ0FwcFN0YWdpbmdTeW50aGVzaXplcihzdGFjaywgYFVzaW5nQXBwU3RhZ2luZ1N5bnRoZXNpemVyLyR7c3RhY2suc3RhY2tOYW1lfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhY2tJZCA9IGBTdGFnaW5nU3RhY2stJHthcHBJZH0tJHtjb250ZXh0LmVudmlyb25tZW50U3RyaW5nfWA7XG4gICAgICAgIHJldHVybiBuZXcgRGVmYXVsdFN0YWdpbmdTdGFjayhhcHAsIHN0YWNrSWQsIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuXG4gICAgICAgICAgLy8gRG9lcyBub3QgbmVlZCB0byBjb250YWluIGVudmlyb25tZW50IGJlY2F1c2Ugc3RhY2sgbmFtZXMgYXJlIHVuaXF1ZSBpbnNpZGUgYW4gZW52IGFueXdheVxuICAgICAgICAgIHN0YWNrTmFtZTogYFN0YWdpbmdTdGFjay0ke2FwcElkfWAsXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBhY2NvdW50OiBzdGFjay5hY2NvdW50LFxuICAgICAgICAgICAgcmVnaW9uOiBzdGFjay5yZWdpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICBxdWFsaWZpZXI6IGNvbnRleHQucXVhbGlmaWVyLFxuICAgICAgICAgIGRlcGxveVJvbGVBcm46IGNvbnRleHQuZGVwbG95Um9sZUFybixcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBhc3NldCBwdWJsaXNoaW5nIHJvbGUgbmFtZSBmb3IgZmlsZSAoUzMpIGFzc2V0cy5cbiAgICovXG4gIHByaXZhdGUgZ2V0IGZpbGVSb2xlTmFtZSgpIHtcbiAgICByZXR1cm4gYGNkay0ke3RoaXMuYXBwSWR9LWZpbGUtcm9sZS0ke3RoaXMucmVnaW9ufWA7XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBhc3NldCBwdWJsaXNoaW5nIHJvbGUgbmFtZSBmb3IgZG9ja2VyIChFQ1IpIGFzc2V0cy5cbiAgICovXG4gIHByaXZhdGUgZ2V0IGltYWdlUm9sZU5hbWUoKSB7XG4gICAgcmV0dXJuIGBjZGstJHt0aGlzLmFwcElkfS1pbWFnZS1yb2xlLSR7dGhpcy5yZWdpb259YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXBwLXNjb3BlZCwgZXZpcm9ubWVudC1rZXllZCBzdGFnaW5nIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFnaW5nQnVja2V0PzogczMuQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgYXBwLXNjb3BlZCwgZW52aXJvbm1lbnQta2V5ZWQgZWNyIHJlcG9zaXRvcmllcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2luZ1JlcG9zOiBSZWNvcmQ8c3RyaW5nLCBlY3IuUmVwb3NpdG9yeT47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0byBhZGQgZGVwZW5kZW5jaWVzIHRvLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGVuZGVuY3lTdGFjazogU3RhY2s7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcHBJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YWdpbmdCdWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWxlIHB1Ymxpc2ggcm9sZSBBUk4gaW4gYXNzZXQgbWFuaWZlc3QgZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVkRmlsZVJvbGU/OiBCb290c3RyYXBSb2xlO1xuICBwcml2YXRlIGZpbGVSb2xlPzogaWFtLklSb2xlO1xuICBwcml2YXRlIGZpbGVSb2xlTWFuaWZlc3RBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEltYWdlIHB1Ymxpc2hpbmcgcm9sZSBBUk4gaW4gYXNzZXQgbWFuaWZlc3QgZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVkSW1hZ2VSb2xlPzogQm9vdHN0cmFwUm9sZTtcbiAgcHJpdmF0ZSBpbWFnZVJvbGU/OiBpYW0uSVJvbGU7XG4gIHByaXZhdGUgZGlkSW1hZ2VSb2xlID0gZmFsc2U7XG4gIHByaXZhdGUgaW1hZ2VSb2xlTWFuaWZlc3RBcm4/OiBzdHJpbmc7XG4gIHByaXZhdGUgYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHM6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3lSb2xlQXJuPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBBcHAsIGlkOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IERlZmF1bHRTdGFnaW5nU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBzeW50aGVzaXplcjogbmV3IEJvb3RzdHJhcGxlc3NTeW50aGVzaXplcigpLFxuICAgICAgYW5hbHl0aWNzUmVwb3J0aW5nOiBmYWxzZSwgLy8gcmVtb3ZpbmcgQVdTOjpDREs6Ok1ldGFkYXRhIGNvbnN0cnVjdCBzYXZlcyB+M0tCXG4gICAgfSk7XG4gICAgLy8gcmVtb3ZpbmcgcGF0aCBtZXRhZGF0YSBzYXZlcyB+MktCXG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoY3hhcGkuUEFUSF9NRVRBREFUQV9FTkFCTEVfQ09OVEVYVCwgZmFsc2UpO1xuXG4gICAgLy8gRm9yIGFsbCByZXNvdXJjZXMgdW5kZXIgdGhlIGRlZmF1bHQgc3RhZ2luZyBzdGFjaywgd2Ugd2FudCB0byBpbmxpbmUgY3VzdG9tXG4gICAgLy8gcmVzb3VyY2VzIGJlY2F1c2UgdGhlIHN0YWdpbmcgYnVja2V0IG5lY2Vzc2FyeSBmb3IgY3VzdG9tIHJlc291cmNlIGFzc2V0c1xuICAgIC8vIGRvZXMgbm90IGV4aXN0IHlldC5cbiAgICB0aGlzLm5vZGUuc2V0Q29udGV4dChJTkxJTkVfQ1VTVE9NX1JFU09VUkNFX0NPTlRFWFQsIHRydWUpO1xuICAgIHRoaXMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPSBwcm9wcy5hdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cyA/PyB0cnVlO1xuXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudmFsaWRhdGVBcHBJZChwcm9wcy5hcHBJZCk7XG4gICAgdGhpcy5kZXBlbmRlbmN5U3RhY2sgPSB0aGlzO1xuXG4gICAgdGhpcy5kZXBsb3lSb2xlQXJuID0gcHJvcHMuZGVwbG95Um9sZUFybjtcbiAgICB0aGlzLnN0YWdpbmdCdWNrZXROYW1lID0gcHJvcHMuc3RhZ2luZ0J1Y2tldE5hbWU7XG4gICAgY29uc3Qgc3BlY2lhbGl6ZXIgPSBuZXcgU3RyaW5nU3BlY2lhbGl6ZXIodGhpcywgcHJvcHMucXVhbGlmaWVyKTtcblxuICAgIHRoaXMucHJvdmlkZWRGaWxlUm9sZSA9IHByb3BzLmZpbGVBc3NldFB1Ymxpc2hpbmdSb2xlPy5fc3BlY2lhbGl6ZShzcGVjaWFsaXplcik7XG4gICAgdGhpcy5wcm92aWRlZEltYWdlUm9sZSA9IHByb3BzLmltYWdlQXNzZXRQdWJsaXNoaW5nUm9sZT8uX3NwZWNpYWxpemUoc3BlY2lhbGl6ZXIpO1xuICAgIHRoaXMuc3RhZ2luZ1JlcG9zID0ge307XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQXBwSWQoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xuICAgIGlmIChpZC5sZW5ndGggPiAyMCkge1xuICAgICAgZXJyb3JzLnB1c2goYGFwcElkIGV4cGVjdGVkIG5vIG1vcmUgdGhhbiAyMCBjaGFyYWN0ZXJzIGJ1dCBnb3QgJHtpZC5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgfVxuICAgIGlmIChpZCAhPT0gaWQudG9Mb2NhbGVMb3dlckNhc2UoKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ2FwcElkIG9ubHkgYWNjZXB0cyBsb3dlcmNhc2UgY2hhcmFjdGVycy4nKTtcbiAgICB9XG4gICAgaWYgKCEvXlthLXowLTktXSokLy50ZXN0KGlkKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ2FwcElkIGV4cGVjdHMgb25seSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgZGFzaGVzIChcXCctXFwnKScpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFtcbiAgICAgICAgYGFwcElkICR7aWR9IGhhcyBlcnJvcnM6YCxcbiAgICAgICAgLi4uZXJyb3JzLFxuICAgICAgXS5qb2luKCdcXG4nKSk7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlRmlsZVJvbGUoKSB7XG4gICAgaWYgKHRoaXMucHJvdmlkZWRGaWxlUm9sZSkge1xuICAgICAgLy8gT3ZlcnJpZGVcbiAgICAgIHRoaXMuZmlsZVJvbGVNYW5pZmVzdEFybiA9IHRoaXMucHJvdmlkZWRGaWxlUm9sZS5fYXJuRm9yQ2xvdWRBc3NlbWJseSgpO1xuICAgICAgY29uc3QgY2ZuQXJuID0gdGhpcy5wcm92aWRlZEZpbGVSb2xlLl9hcm5Gb3JDbG91ZEZvcm1hdGlvbigpO1xuICAgICAgdGhpcy5maWxlUm9sZSA9IGNmbkFybiA/IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHRoaXMsICdDZGtGaWxlUm9sZScsIGNmbkFybikgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZU5hbWUgPSB0aGlzLmZpbGVSb2xlTmFtZTtcbiAgICB0aGlzLmZpbGVSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDZGtGaWxlUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRQcmluY2lwYWwodGhpcy5hY2NvdW50KSxcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsZVJvbGVNYW5pZmVzdEFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBwYXJ0aXRpb246ICcke0FXUzo6UGFydGl0aW9ufScsXG4gICAgICByZWdpb246ICcnLCAvLyBpYW0gaXMgZ2xvYmFsXG4gICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgIHJlc291cmNlOiAncm9sZScsXG4gICAgICByZXNvdXJjZU5hbWU6IHJvbGVOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlSW1hZ2VSb2xlKCkge1xuICAgIC8vIEl0IG1heSBlbmQgdXAgc2V0dGluZyBpbWFnZVJvbGUgdG8gdW5kZWZpbmVkLCBidXQgYXQgbGVhc3Qgd2UgdHJpZWRcbiAgICBpZiAodGhpcy5kaWRJbWFnZVJvbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaWRJbWFnZVJvbGUgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMucHJvdmlkZWRJbWFnZVJvbGUpIHtcbiAgICAgIC8vIE92ZXJyaWRlXG4gICAgICB0aGlzLmltYWdlUm9sZU1hbmlmZXN0QXJuID0gdGhpcy5wcm92aWRlZEltYWdlUm9sZS5fYXJuRm9yQ2xvdWRBc3NlbWJseSgpO1xuICAgICAgY29uc3QgY2ZuQXJuID0gdGhpcy5wcm92aWRlZEltYWdlUm9sZS5fYXJuRm9yQ2xvdWRGb3JtYXRpb24oKTtcbiAgICAgIHRoaXMuaW1hZ2VSb2xlID0gY2ZuQXJuID8gaWFtLlJvbGUuZnJvbVJvbGVBcm4odGhpcywgJ0Nka0ltYWdlUm9sZScsIGNmbkFybikgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZU5hbWUgPSB0aGlzLmltYWdlUm9sZU5hbWU7XG4gICAgdGhpcy5pbWFnZVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0Nka0ltYWdlUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRQcmluY2lwYWwodGhpcy5hY2NvdW50KSxcbiAgICB9KTtcbiAgICB0aGlzLmltYWdlUm9sZU1hbmlmZXN0QXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHBhcnRpdGlvbjogJyR7QVdTOjpQYXJ0aXRpb259JyxcbiAgICAgIHJlZ2lvbjogJycsIC8vIGlhbSBpcyBnbG9iYWxcbiAgICAgIHNlcnZpY2U6ICdpYW0nLFxuICAgICAgcmVzb3VyY2U6ICdyb2xlJyxcbiAgICAgIHJlc291cmNlTmFtZTogcm9sZU5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCdWNrZXRLZXkoKToga21zLklLZXkge1xuICAgIHJldHVybiBuZXcga21zLktleSh0aGlzLCAnQnVja2V0S2V5Jywge1xuICAgICAgYWxpYXM6IGBhbGlhcy9jZGstJHt0aGlzLmFwcElkfS1zdGFnaW5nYCxcbiAgICAgIGFkbWluczogW25ldyBpYW0uQWNjb3VudFByaW5jaXBhbCh0aGlzLmFjY291bnQpXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3JlYXRlQnVja2V0KCkge1xuICAgIGNvbnN0IHN0YWdpbmdCdWNrZXROYW1lID0gdGhpcy5zdGFnaW5nQnVja2V0TmFtZSA/PyBgY2RrLSR7dGhpcy5hcHBJZH0tc3RhZ2luZy0ke3RoaXMuYWNjb3VudH0tJHt0aGlzLnJlZ2lvbn1gO1xuICAgIGNvbnN0IGJ1Y2tldElkID0gJ0Nka1N0YWdpbmdCdWNrZXQnO1xuICAgIGNvbnN0IGNyZWF0ZWRCdWNrZXQgPSB0aGlzLm5vZGUudHJ5RmluZENoaWxkKGJ1Y2tldElkKSBhcyBzMy5CdWNrZXQ7XG4gICAgaWYgKGNyZWF0ZWRCdWNrZXQpIHtcbiAgICAgIHJldHVybiBzdGFnaW5nQnVja2V0TmFtZTtcbiAgICB9XG5cbiAgICB0aGlzLmVuc3VyZUZpbGVSb2xlKCk7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVCdWNrZXRLZXkoKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgYnVja2V0IG9uY2UgdGhlIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gY3JlYXRlZFxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgYnVja2V0SWQsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHN0YWdpbmdCdWNrZXROYW1lLFxuICAgICAgLi4uKHRoaXMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPyB7XG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICB9IDoge1xuICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIH0pLFxuICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG5cbiAgICAgIC8vIE1hbnkgQVdTIGFjY291bnQgc2FmZXR5IGNoZWNrZXJzIHdpbGwgY29tcGxhaW4gd2hlbiBidWNrZXRzIGFyZW4ndCB2ZXJzaW9uZWRcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICAgIC8vIE1hbnkgQVdTIGFjY291bnQgc2FmZXR5IGNoZWNrZXJzIHdpbGwgY29tcGxhaW4gd2hlbiBTU0wgaXNuJ3QgZW5mb3JjZWRcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5maWxlUm9sZSkge1xuICAgICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuZmlsZVJvbGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlcGxveVJvbGVBcm4pIHtcbiAgICAgIGJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdzMzpHZXRPYmplY3QqJyxcbiAgICAgICAgICAnczM6R2V0QnVja2V0KicsXG4gICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYnVja2V0LmJ1Y2tldEFybiwgYnVja2V0LmFybkZvck9iamVjdHMoJyonKV0sXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFyblByaW5jaXBhbCh0aGlzLmRlcGxveVJvbGVBcm4pXSxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBPYmplY3RzIHNob3VsZCBuZXZlciBiZSBvdmVyd3JpdHRlbiwgYnV0IGxldCdzIG1ha2Ugc3VyZSB3ZSBoYXZlIGEgbGlmZWN5Y2xlIHBvbGljeVxuICAgIC8vIGZvciBpdCBhbnl3YXkuXG4gICAgYnVja2V0LmFkZExpZmVjeWNsZVJ1bGUoe1xuICAgICAgbm9uY3VycmVudFZlcnNpb25FeHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgfSk7XG5cbiAgICBidWNrZXQuYWRkTGlmZWN5Y2xlUnVsZSh7XG4gICAgICBwcmVmaXg6IERFUExPWV9USU1FX1BSRUZJWCxcbiAgICAgIGV4cGlyYXRpb246IHRoaXMucHJvcHMuZGVwbG95VGltZUZpbGVBc3NldExpZmV0aW1lID8/IER1cmF0aW9uLmRheXMoMzApLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN0YWdpbmdCdWNrZXROYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdlbGwta25vd24gbmFtZSBvZiB0aGUgcmVwb1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRDcmVhdGVSZXBvKGFzc2V0OiBEb2NrZXJJbWFnZUFzc2V0U291cmNlKTogc3RyaW5nIHtcbiAgICBpZiAoIWFzc2V0LmFzc2V0TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NldHMgc3ludGhlc2l6ZWQgd2l0aCBBcHBTY29wZWRTdGFnaW5nU3ludGhlc2l6ZXIgbXVzdCBpbmNsdWRlIGFuIFxcJ2Fzc2V0TmFtZVxcJyBpbiB0aGUgYXNzZXQgc291cmNlIGRlZmluaXRpb24uJyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGltYWdlIHB1Ymxpc2hpbmcgcm9sZSBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgdGhpcy5lbnN1cmVJbWFnZVJvbGUoKTtcblxuICAgIGNvbnN0IHJlcG9OYW1lID0gZ2VuZXJhdGVSZXBvTmFtZShgJHt0aGlzLmFwcElkfS8ke2Fzc2V0LmFzc2V0TmFtZX1gKTtcbiAgICBpZiAodGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YWdpbmdSZXBvc1thc3NldC5hc3NldE5hbWVdID0gbmV3IGVjci5SZXBvc2l0b3J5KHRoaXMsIHJlcG9OYW1lLCB7XG4gICAgICAgIHJlcG9zaXRvcnlOYW1lOiByZXBvTmFtZSxcbiAgICAgICAgbGlmZWN5Y2xlUnVsZXM6IFt7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdHYXJiYWdlIGNvbGxlY3Qgb2xkIGltYWdlIHZlcnNpb25zJyxcbiAgICAgICAgICBtYXhJbWFnZUNvdW50OiB0aGlzLnByb3BzLmltYWdlQXNzZXRWZXJzaW9uQ291bnQgPz8gMyxcbiAgICAgICAgfV0sXG4gICAgICAgIC4uLih0aGlzLmF1dG9EZWxldGVTdGFnaW5nQXNzZXRzID8ge1xuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICBhdXRvRGVsZXRlSW1hZ2VzOiB0cnVlLFxuICAgICAgICB9IDoge1xuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5pbWFnZVJvbGUpIHtcbiAgICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXS5ncmFudFB1bGxQdXNoKHRoaXMuaW1hZ2VSb2xlKTtcbiAgICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXS5ncmFudFJlYWQodGhpcy5pbWFnZVJvbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVwb05hbWU7XG5cbiAgICBmdW5jdGlvbiBnZW5lcmF0ZVJlcG9OYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoJy4nLCAnLScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWxlKGFzc2V0OiBGaWxlQXNzZXRTb3VyY2UpOiBGaWxlU3RhZ2luZ0xvY2F0aW9uIHtcbiAgICAvLyBIYXMgc2lkZSBlZmZlY3RzIHNvIG11c3QgZ28gZmlyc3RcbiAgICBjb25zdCBidWNrZXROYW1lID0gdGhpcy5nZXRDcmVhdGVCdWNrZXQoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBidWNrZXROYW1lLFxuICAgICAgYXNzdW1lUm9sZUFybjogdGhpcy5maWxlUm9sZU1hbmlmZXN0QXJuLFxuICAgICAgcHJlZml4OiBhc3NldC5kZXBsb3lUaW1lID8gREVQTE9ZX1RJTUVfUFJFRklYIDogdW5kZWZpbmVkLFxuICAgICAgZGVwZW5kZW5jeVN0YWNrOiB0aGlzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2UoYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBJbWFnZVN0YWdpbmdMb2NhdGlvbiB7XG4gICAgLy8gSGFzIHNpZGUgZWZmZWN0cyBzbyBtdXN0IGdvIGZpcnN0XG4gICAgY29uc3QgcmVwb05hbWUgPSB0aGlzLmdldENyZWF0ZVJlcG8oYXNzZXQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9OYW1lLFxuICAgICAgYXNzdW1lUm9sZUFybjogdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybixcbiAgICAgIGRlcGVuZGVuY3lTdGFjazogdGhpcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBjbG91ZGZvcm1hdGlvbiB0ZW1wbGF0ZSBpbnRvIGEgY2xvdWQgYXNzZW1ibHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9zeW50aGVzaXplVGVtcGxhdGUoc2Vzc2lvbjogSVN5bnRoZXNpc1Nlc3Npb24sIGxvb2t1cFJvbGVBcm4/OiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBzdXBlci5fc3ludGhlc2l6ZVRlbXBsYXRlKHNlc3Npb24sIGxvb2t1cFJvbGVBcm4pO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IHNlc3Npb24uYXNzZW1ibHk7XG4gICAgY29uc3Qgb3V0UGF0aCA9IHBhdGguam9pbihidWlsZGVyLm91dGRpciwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICAgIGNvbnN0IHNpemUgPSBmcy5zdGF0U3luYyhvdXRQYXRoKS5zaXplO1xuICAgIGlmIChzaXplID4gNTEyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhZ2luZyByZXNvdXJjZSB0ZW1wbGF0ZSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDUxMjAwIGJ5dGVzLCBidXQgZ290ICR7c2l6ZX0gYnl0ZXNgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
322
+ DefaultStagingStack[_b] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStack", version: "2.89.0-alpha.0" };
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLDJDQVkwQjtBQUMxQiw0RUFBMEU7QUFDMUUsNENBQTRDO0FBQzVDLDJDQUF1QztBQUkxQixRQUFBLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxzQkFBUztJQUN2RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2xCOztBQUhILGdFQUlDOzs7QUEyR0Q7Ozs7O0dBS0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFlBQUs7SUFDNUM7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQW1DOzs7Ozs7Ozs7O1FBQ3ZELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTztZQUNMLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxVQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsVUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssQ0FBQyxTQUFTLHlCQUF5QixDQUFDLENBQUM7aUJBQ3BFO2dCQUVELDRFQUE0RTtnQkFDNUUsMEVBQTBFO2dCQUMxRSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRTtvQkFDN0MsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsOEJBQThCLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RjtnQkFFRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsc0JBQXNCLElBQUksY0FBYyxDQUFDO2dCQUNyRSx3RkFBd0Y7Z0JBQ3hGLE1BQU0sU0FBUyxHQUFHLEdBQUcsV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxHQUFHLFNBQVMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUU7b0JBQzNDLEdBQUcsT0FBTztvQkFDVixTQUFTO29CQUNULEdBQUcsRUFBRTt3QkFDSCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87d0JBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtxQkFDckI7b0JBQ0QsS0FBSztvQkFDTCxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7b0JBQzVCLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtpQkFDckMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUM7S0FDSDtJQUVEOztPQUVHO0lBQ0gsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sT0FBTyxJQUFJLENBQUMsS0FBSyxjQUFjLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUNyRDtJQUVEOztPQUVHO0lBQ0gsSUFBWSxhQUFhO1FBQ3ZCLE9BQU8sT0FBTyxJQUFJLENBQUMsS0FBSyxlQUFlLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUN0RDtJQXNDRCxZQUFZLEtBQVUsRUFBRSxFQUFVLEVBQW1CLEtBQStCO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsV0FBVyxFQUFFLElBQUksK0JBQXdCLEVBQUU7WUFDM0Msa0JBQWtCLEVBQUUsS0FBSyxFQUFFLG1EQUFtRDtTQUMvRSxDQUFDLENBQUM7UUFMZ0QsVUFBSyxHQUFMLEtBQUssQ0FBMEI7UUFONUUsaUJBQVksR0FBRyxLQUFLLENBQUM7Ozs7OzsrQ0FsRmxCLG1CQUFtQjs7OztRQThGNUIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoRSw4RUFBOEU7UUFDOUUsNEVBQTRFO1FBQzVFLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQ0FBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQztRQUVyRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksb0NBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztLQUN4QjtJQUVPLGFBQWEsQ0FBQyxFQUFVO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMscURBQXFELEVBQUUsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDO2dCQUNkLFNBQVMsRUFBRSxjQUFjO2dCQUN6QixHQUFHLE1BQU07YUFDVixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixXQUFXO1lBQ1gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkYsT0FBTztTQUNSO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ2hELFFBQVE7WUFDUixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbEQsU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLE1BQU07WUFDaEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsU0FBUyxFQUFFLGdCQUFTLENBQUMsbUJBQW1CO1NBQ3pDLENBQUMsQ0FBQztLQUNKO0lBRU8sZUFBZTtRQUNyQixzRUFBc0U7UUFDdEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFdBQVc7WUFDWCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6RixPQUFPO1NBQ1I7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDbEQsUUFBUTtZQUNSLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuRCxTQUFTLEVBQUUsbUJBQW1CO1lBQzlCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsUUFBUTtZQUN0QixTQUFTLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUI7U0FDekMsQ0FBQyxDQUFDO0tBQ0o7SUFFTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDcEMsS0FBSyxFQUFFLGFBQWEsSUFBSSxDQUFDLEtBQUssVUFBVTtZQUN4QyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakQsQ0FBQyxDQUFDO0tBQ0o7SUFFTyxlQUFlO1FBQ3JCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvRyxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztRQUNwQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQWMsQ0FBQztRQUNwRSxJQUFJLGFBQWEsRUFBRTtZQUNqQixPQUFPLGlCQUFpQixDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVuQyw0REFBNEQ7UUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDM0MsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztnQkFDakMsYUFBYSxFQUFFLG9CQUFhLENBQUMsT0FBTztnQkFDcEMsaUJBQWlCLEVBQUUsSUFBSTthQUN4QixDQUFDLENBQUMsQ0FBQztnQkFDRixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxNQUFNO2FBQ3BDLENBQUM7WUFDRixVQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7WUFDbkMsYUFBYSxFQUFFLEdBQUc7WUFFbEIsK0VBQStFO1lBQy9FLFNBQVMsRUFBRSxJQUFJO1lBQ2YseUVBQXlFO1lBQ3pFLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNqRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtvQkFDZixlQUFlO29CQUNmLFVBQVU7aUJBQ1g7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4RCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZELENBQUMsQ0FBQyxDQUFDO1NBQ0w7UUFFRCxzRkFBc0Y7UUFDdEYsaUJBQWlCO1FBQ2pCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QiwyQkFBMkIsRUFBRSxlQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNoRCxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsTUFBTSxFQUFFLDBCQUFrQjtZQUMxQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxlQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUN4RSxDQUFDLENBQUM7UUFFSCxPQUFPLGlCQUFpQixDQUFDO0tBQzFCO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsS0FBNkI7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtSEFBbUgsQ0FBQyxDQUFDO1NBQ3RJO1FBRUQsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQ3RFLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixjQUFjLEVBQUUsQ0FBQzt3QkFDZixXQUFXLEVBQUUsb0NBQW9DO3dCQUNqRCxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxDQUFDO3FCQUN0RCxDQUFDO2dCQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO29CQUNqQyxhQUFhLEVBQUUsb0JBQWEsQ0FBQyxPQUFPO29CQUNwQyxnQkFBZ0IsRUFBRSxJQUFJO2lCQUN2QixDQUFDLENBQUMsQ0FBQztvQkFDRixhQUFhLEVBQUUsb0JBQWEsQ0FBQyxNQUFNO2lCQUNwQyxDQUFDO2FBQ0gsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztRQUVoQixTQUFTLGdCQUFnQixDQUFDLElBQVk7WUFDcEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7S0FDRjtJQUVNLE9BQU8sQ0FBQyxLQUFzQjtRQUNuQyxvQ0FBb0M7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRTFDLE9BQU87WUFDTCxVQUFVO1lBQ1YsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3pELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7S0FDSDtJQUVNLGNBQWMsQ0FBQyxLQUE2QjtRQUNqRCxvQ0FBb0M7UUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxPQUFPO1lBQ0wsUUFBUTtZQUNSLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQ3hDLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7S0FDSDtJQUVEOzs7T0FHRztJQUNJLG1CQUFtQixDQUFDLE9BQTBCLEVBQUUsYUFBa0M7UUFDdkYsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVsRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLElBQUksUUFBUSxDQUFDLENBQUM7U0FDeEc7S0FDRjs7QUE1VUgsa0RBNlVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIEFybkZvcm1hdCxcbiAgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyLFxuICBEb2NrZXJJbWFnZUFzc2V0U291cmNlLFxuICBEdXJhdGlvbixcbiAgRmlsZUFzc2V0U291cmNlLFxuICBJU3ludGhlc2lzU2Vzc2lvbixcbiAgUmVtb3ZhbFBvbGljeSxcbiAgU3RhY2ssXG4gIFN0YWNrUHJvcHMsXG4gIElOTElORV9DVVNUT01fUkVTT1VSQ0VfQ09OVEVYVCxcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBTdHJpbmdTcGVjaWFsaXplciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnYXdzLWNkay1saWIvY3gtYXBpJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQm9vdHN0cmFwUm9sZSB9IGZyb20gJy4vYm9vdHN0cmFwLXJvbGVzJztcbmltcG9ydCB7IEZpbGVTdGFnaW5nTG9jYXRpb24sIElTdGFnaW5nUmVzb3VyY2VzLCBJU3RhZ2luZ1Jlc291cmNlc0ZhY3RvcnksIEltYWdlU3RhZ2luZ0xvY2F0aW9uIH0gZnJvbSAnLi9zdGFnaW5nLXN0YWNrJztcblxuZXhwb3J0IGNvbnN0IERFUExPWV9USU1FX1BSRUZJWCA9ICdkZXBsb3ktdGltZS8nO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBkdW1teSBjb25zdHJ1Y3QgbWVhbnQgdG8gc2lnbmlmeSB0aGF0IGEgc3RhY2sgaXMgdXRpbGl6aW5nXG4gKiB0aGUgQXBwU3RhZ2luZ1N5bnRoZXNpemVyLiBJdCBkb2VzIG5vdCBkbyBhbnl0aGluZywgYW5kIGlzIG5vdCBtZWFudFxuICogdG8gYmUgY3JlYXRlZCBvbiBpdHMgb3duLiBUaGlzIGNvbnN0cnVjdCB3aWxsIGJlIGEgcGFydCBvZiB0aGVcbiAqIGNvbnN0cnVjdCB0cmVlIG9ubHkgYW5kIG5vdCB0aGUgQ2ZuIHRlbXBsYXRlLiBUaGUgY29uc3RydWN0IHRyZWUgaXNcbiAqIHRoZW4gZW5jb2RlZCBpbiB0aGUgQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlIG9mIHRoZSBzdGFjayBhbmRcbiAqIGluamVzdGVkIGluIG91ciBtZXRyaWNzIGxpa2UgZXZlcnkgb3RoZXIgY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgVXNpbmdBcHBTdGFnaW5nU3ludGhlc2l6ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuXG4vKipcbiAqIFVzZXIgY29uZmlndXJhYmxlIG9wdGlvbnMgdG8gdGhlIERlZmF1bHRTdGFnaW5nU3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHN0YWdpbmcgc3RhY2sgYmVsb25ncyB0by5cbiAgICpcbiAgICogVGhpcyBpZGVudGlmaWVyIHdpbGwgYmUgdXNlZCBpbiB0aGUgbmFtZSBvZiBzdGFnaW5nIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBhbmQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgQ0RLIGFwcHMuXG4gICAqXG4gICAqIFRoZSBpZGVudGlmaWVyIHNob3VsZCBpbmNsdWRlIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMgKCctJykgb25seVxuICAgKiBhbmQgaGF2ZSBhIG1heGltdW0gb2YgMjAgY2hhcmFjdGVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IG5hbWUgZm9yIHRoZSBzdGFnaW5nIGJ1Y2tldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgd2VsbC1rbm93biBuYW1lIHVuaXF1ZSB0byB0aGlzIGFwcC9lbnYuXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nQnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFzcyBpbiBhbiBleGlzdGluZyByb2xlIHRvIGJlIHVzZWQgYXMgdGhlIGZpbGUgcHVibGlzaGluZyByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBmaWxlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFBhc3MgaW4gYW4gZXhpc3Rpbmcgcm9sZSB0byBiZSB1c2VkIGFzIHRoZSBpbWFnZSBwdWJsaXNoaW5nIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZldGltZSBmb3IgZGVwbG95IHRpbWUgZmlsZSBhc3NldHMuXG4gICAqXG4gICAqIEFzc2V0cyB0aGF0IGFyZSBvbmx5IG5lY2Vzc2FyeSBhdCBkZXBsb3ltZW50IHRpbWUgKGZvciBpbnN0YW5jZSxcbiAgICogQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzIGFuZCBMYW1iZGEgc291cmNlIGNvZGUgYnVuZGxlcykgd2lsbCBiZVxuICAgKiBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQgYWZ0ZXIgdGhpcyBtYW55IGRheXMuIEFzc2V0cyB0aGF0IG1heSBiZVxuICAgKiByZWFkIGZyb20gdGhlIHN0YWdpbmcgYnVja2V0IGR1cmluZyB5b3VyIGFwcGxpY2F0aW9uJ3MgcnVuIHRpbWVcbiAgICogd2lsbCBub3QgYmUgZGVsZXRlZC5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gdGhlIGxlbmd0aCBvZiB0aW1lIHlvdSB3aXNoIHRvIGJlIGFibGUgdG8gcm9sbCBiYWNrIHRvXG4gICAqIHByZXZpb3VzIHZlcnNpb25zIG9mIHlvdXIgYXBwbGljYXRpb24gd2l0aG91dCBoYXZpbmcgdG8gZG8gYSBuZXdcbiAgICogYGNkayBzeW50aGAgYW5kIHJlLXVwbG9hZCBvZiBhc3NldHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uZGF5cygzMClcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVRpbWVGaWxlQXNzZXRMaWZldGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW1hZ2UgdmVyc2lvbnMgdG8gc3RvcmUgaW4gYSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBQcmV2aW91cyB2ZXJzaW9ucyBvZiBhbiBpbWFnZSBjYW4gYmUgc3RvcmVkIGZvciByb2xsYmFjayBwdXJwb3Nlcy5cbiAgICogT25jZSBhIHJlcG9zaXRvcnkgaGFzIG1vcmUgdGhhbiAzIGltYWdlIHZlcnNpb25zIHN0b3JlZCwgdGhlIG9sZGVzdFxuICAgKiB2ZXJzaW9uIHdpbGwgYmUgZGlzY2FyZGVkLiBUaGlzIGFsbG93cyBmb3Igc2Vuc2libGUgZ2FyYmFnZSBjb2xsZWN0aW9uXG4gICAqIHdoaWxlIG1haW50YWluaW5nIGEgZmV3IHByZXZpb3VzIHZlcnNpb25zIGZvciByb2xsYmFjayBzY2VuYXJpb3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXAgdG8gMyB2ZXJzaW9ucyBzdG9yZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRWZXJzaW9uQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF1dG8gZGVsZXRlcyBvYmplY3RzIGluIHRoZSBzdGFnaW5nIFMzIGJ1Y2tldCBhbmQgaW1hZ2VzIGluIHRoZVxuICAgKiBzdGFnaW5nIEVDUiByZXBvc2l0b3JpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9EZWxldGVTdGFnaW5nQXNzZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBhcyB0aGUgc3RhZ2luZyBzdGFjayBuYW1lIGFuZFxuICAgKiBjb25zdHJ1Y3QgSUQuIFRoZSBwcmVmaXggd2lsbCBiZSBhcHBlbmRlZCBiZWZvcmUgdGhlIGFwcElkLCB3aGljaFxuICAgKiBpcyByZXF1aXJlZCB0byBiZSBwYXJ0IG9mIHRoZSBzdGFjayBuYW1lIGFuZCBjb25zdHJ1Y3QgSUQgdG9cbiAgICogZW5zdXJlIHVuaXF1ZW5lc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdTdGFnaW5nU3RhY2snXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nU3RhY2tOYW1lUHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmF1bHQgU3RhZ2luZyBTdGFjayBQcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFN0YWdpbmdTdGFja1Byb3BzIGV4dGVuZHMgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMsIFN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGVwbG95IGFjdGlvbiByb2xlLCBpZiBnaXZlblxuICAgKlxuICAgKiBUaGlzIHJvbGUgd2lsbCBuZWVkIHBlcm1pc3Npb25zIHRvIHJlYWQgZnJvbSB0byB0aGUgc3RhZ2luZyByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIENMSSBjcmVkZW50aWFscyBhcmUgYXNzdW1lZCwgbm8gYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcmUgZ3JhbnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgdXNlZCB0byBzcGVjaWFsaXplIHN0cmluZ3NcbiAgICpcbiAgICogU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSBidXQgd2hvIGtub3dzIHdoYXQgcGVvcGxlIG1pZ2h0IGRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBkZWZhdWx0IFN0YWdpbmcgU3RhY2sgdGhhdCBpbXBsZW1lbnRzIElTdGFnaW5nUmVzb3VyY2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBkZWZhdWx0U3RhZ2luZ1N0YWNrID0gRGVmYXVsdFN0YWdpbmdTdGFjay5mYWN0b3J5KHsgYXBwSWQ6ICdteS1hcHAtaWQnIH0pO1xuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdFN0YWdpbmdTdGFjayBleHRlbmRzIFN0YWNrIGltcGxlbWVudHMgSVN0YWdpbmdSZXNvdXJjZXMge1xuICAvKipcbiAgICogUmV0dXJuIGEgZmFjdG9yeSB0aGF0IHdpbGwgY3JlYXRlIERlZmF1bHRTdGFnaW5nU3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZhY3Rvcnkob3B0aW9uczogRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMpOiBJU3RhZ2luZ1Jlc291cmNlc0ZhY3Rvcnkge1xuICAgIGNvbnN0IGFwcElkID0gb3B0aW9ucy5hcHBJZC50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJy0nKS5zbGljZSgwLCAyMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9idGFpblN0YWdpbmdSZXNvdXJjZXMoc3RhY2ssIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgYXBwID0gQXBwLm9mKHN0YWNrKTtcbiAgICAgICAgaWYgKCFBcHAuaXNBcHAoYXBwKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgJHtzdGFjay5zdGFja05hbWV9IG11c3QgYmUgcGFydCBvZiBhbiBBcHBgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlY2F1c2Ugd2UgZG8gbm90IGtlZXAgbWV0cmljcyBpbiB0aGUgRGVmYXVsdFN0YWdpbmdTdGFjaywgd2Ugd2lsbCBpbmplY3RcbiAgICAgICAgLy8gYSBkdW1teSBjb25zdHJ1Y3QgaW50byB0aGUgc3RhY2sgdXNpbmcgdGhlIERlZmF1bHRTdGFnaW5nU3RhY2sgaW5zdGVhZC5cbiAgICAgICAgaWYgKGN4YXBpLkFOQUxZVElDU19SRVBPUlRJTkdfRU5BQkxFRF9DT05URVhUKSB7XG4gICAgICAgICAgbmV3IFVzaW5nQXBwU3RhZ2luZ1N5bnRoZXNpemVyKHN0YWNrLCBgVXNpbmdBcHBTdGFnaW5nU3ludGhlc2l6ZXIvJHtzdGFjay5zdGFja05hbWV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFja1ByZWZpeCA9IG9wdGlvbnMuc3RhZ2luZ1N0YWNrTmFtZVByZWZpeCA/PyAnU3RhZ2luZ1N0YWNrJztcbiAgICAgICAgLy8gU3RhY2sgbmFtZSBkb2VzIG5vdCBuZWVkIHRvIGNvbnRhaW4gZW52aXJvbm1lbnQgYmVjYXVzZSBhcHBJZCBpcyB1bmlxdWUgaW5zaWRlIGFuIGVudlxuICAgICAgICBjb25zdCBzdGFja05hbWUgPSBgJHtzdGFja1ByZWZpeH0tJHthcHBJZH1gO1xuICAgICAgICBjb25zdCBzdGFja0lkID0gYCR7c3RhY2tOYW1lfS0ke2NvbnRleHQuZW52aXJvbm1lbnRTdHJpbmd9YDtcbiAgICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0U3RhZ2luZ1N0YWNrKGFwcCwgc3RhY2tJZCwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc3RhY2tOYW1lLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgYWNjb3VudDogc3RhY2suYWNjb3VudCxcbiAgICAgICAgICAgIHJlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgcXVhbGlmaWVyOiBjb250ZXh0LnF1YWxpZmllcixcbiAgICAgICAgICBkZXBsb3lSb2xlQXJuOiBjb250ZXh0LmRlcGxveVJvbGVBcm4sXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYXNzZXQgcHVibGlzaGluZyByb2xlIG5hbWUgZm9yIGZpbGUgKFMzKSBhc3NldHMuXG4gICAqL1xuICBwcml2YXRlIGdldCBmaWxlUm9sZU5hbWUoKSB7XG4gICAgcmV0dXJuIGBjZGstJHt0aGlzLmFwcElkfS1maWxlLXJvbGUtJHt0aGlzLnJlZ2lvbn1gO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYXNzZXQgcHVibGlzaGluZyByb2xlIG5hbWUgZm9yIGRvY2tlciAoRUNSKSBhc3NldHMuXG4gICAqL1xuICBwcml2YXRlIGdldCBpbWFnZVJvbGVOYW1lKCkge1xuICAgIHJldHVybiBgY2RrLSR7dGhpcy5hcHBJZH0taW1hZ2Utcm9sZS0ke3RoaXMucmVnaW9ufWA7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFwcC1zY29wZWQsIGV2aXJvbm1lbnQta2V5ZWQgc3RhZ2luZyBidWNrZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIGFwcC1zY29wZWQsIGVudmlyb25tZW50LWtleWVkIGVjciByZXBvc2l0b3JpZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXBwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWdpbmdSZXBvczogUmVjb3JkPHN0cmluZywgZWNyLlJlcG9zaXRvcnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYWRkIGRlcGVuZGVuY2llcyB0by5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXBlbmRlbmN5U3RhY2s6IFN0YWNrO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFnaW5nQnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsZSBwdWJsaXNoIHJvbGUgQVJOIGluIGFzc2V0IG1hbmlmZXN0IGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlZEZpbGVSb2xlPzogQm9vdHN0cmFwUm9sZTtcbiAgcHJpdmF0ZSBmaWxlUm9sZT86IGlhbS5JUm9sZTtcbiAgcHJpdmF0ZSBmaWxlUm9sZU1hbmlmZXN0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbWFnZSBwdWJsaXNoaW5nIHJvbGUgQVJOIGluIGFzc2V0IG1hbmlmZXN0IGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlZEltYWdlUm9sZT86IEJvb3RzdHJhcFJvbGU7XG4gIHByaXZhdGUgaW1hZ2VSb2xlPzogaWFtLklSb2xlO1xuICBwcml2YXRlIGRpZEltYWdlUm9sZSA9IGZhbHNlO1xuICBwcml2YXRlIGltYWdlUm9sZU1hbmlmZXN0QXJuPzogc3RyaW5nO1xuICBwcml2YXRlIGF1dG9EZWxldGVTdGFnaW5nQXNzZXRzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95Um9sZUFybj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQXBwLCBpZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBEZWZhdWx0U3RhZ2luZ1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3ludGhlc2l6ZXI6IG5ldyBCb290c3RyYXBsZXNzU3ludGhlc2l6ZXIoKSxcbiAgICAgIGFuYWx5dGljc1JlcG9ydGluZzogZmFsc2UsIC8vIHJlbW92aW5nIEFXUzo6Q0RLOjpNZXRhZGF0YSBjb25zdHJ1Y3Qgc2F2ZXMgfjNLQlxuICAgIH0pO1xuICAgIC8vIHJlbW92aW5nIHBhdGggbWV0YWRhdGEgc2F2ZXMgfjJLQlxuICAgIHRoaXMubm9kZS5zZXRDb250ZXh0KGN4YXBpLlBBVEhfTUVUQURBVEFfRU5BQkxFX0NPTlRFWFQsIGZhbHNlKTtcblxuICAgIC8vIEZvciBhbGwgcmVzb3VyY2VzIHVuZGVyIHRoZSBkZWZhdWx0IHN0YWdpbmcgc3RhY2ssIHdlIHdhbnQgdG8gaW5saW5lIGN1c3RvbVxuICAgIC8vIHJlc291cmNlcyBiZWNhdXNlIHRoZSBzdGFnaW5nIGJ1Y2tldCBuZWNlc3NhcnkgZm9yIGN1c3RvbSByZXNvdXJjZSBhc3NldHNcbiAgICAvLyBkb2VzIG5vdCBleGlzdCB5ZXQuXG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoSU5MSU5FX0NVU1RPTV9SRVNPVVJDRV9DT05URVhULCB0cnVlKTtcbiAgICB0aGlzLmF1dG9EZWxldGVTdGFnaW5nQXNzZXRzID0gcHJvcHMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPz8gdHJ1ZTtcblxuICAgIHRoaXMuYXBwSWQgPSB0aGlzLnZhbGlkYXRlQXBwSWQocHJvcHMuYXBwSWQpO1xuICAgIHRoaXMuZGVwZW5kZW5jeVN0YWNrID0gdGhpcztcblxuICAgIHRoaXMuZGVwbG95Um9sZUFybiA9IHByb3BzLmRlcGxveVJvbGVBcm47XG4gICAgdGhpcy5zdGFnaW5nQnVja2V0TmFtZSA9IHByb3BzLnN0YWdpbmdCdWNrZXROYW1lO1xuICAgIGNvbnN0IHNwZWNpYWxpemVyID0gbmV3IFN0cmluZ1NwZWNpYWxpemVyKHRoaXMsIHByb3BzLnF1YWxpZmllcik7XG5cbiAgICB0aGlzLnByb3ZpZGVkRmlsZVJvbGUgPSBwcm9wcy5maWxlQXNzZXRQdWJsaXNoaW5nUm9sZT8uX3NwZWNpYWxpemUoc3BlY2lhbGl6ZXIpO1xuICAgIHRoaXMucHJvdmlkZWRJbWFnZVJvbGUgPSBwcm9wcy5pbWFnZUFzc2V0UHVibGlzaGluZ1JvbGU/Ll9zcGVjaWFsaXplKHNwZWNpYWxpemVyKTtcbiAgICB0aGlzLnN0YWdpbmdSZXBvcyA9IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFwcElkKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgICBpZiAoaWQubGVuZ3RoID4gMjApIHtcbiAgICAgIGVycm9ycy5wdXNoKGBhcHBJZCBleHBlY3RlZCBubyBtb3JlIHRoYW4gMjAgY2hhcmFjdGVycyBidXQgZ290ICR7aWQubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgIH1cbiAgICBpZiAoaWQgIT09IGlkLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdhcHBJZCBvbmx5IGFjY2VwdHMgbG93ZXJjYXNlIGNoYXJhY3RlcnMuJyk7XG4gICAgfVxuICAgIGlmICghL15bYS16MC05LV0qJC8udGVzdChpZCkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdhcHBJZCBleHBlY3RzIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIGRhc2hlcyAoXFwnLVxcJyknKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgIGBhcHBJZCAke2lkfSBoYXMgZXJyb3JzOmAsXG4gICAgICAgIC4uLmVycm9ycyxcbiAgICAgIF0uam9pbignXFxuJykpO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUZpbGVSb2xlKCkge1xuICAgIGlmICh0aGlzLnByb3ZpZGVkRmlsZVJvbGUpIHtcbiAgICAgIC8vIE92ZXJyaWRlXG4gICAgICB0aGlzLmZpbGVSb2xlTWFuaWZlc3RBcm4gPSB0aGlzLnByb3ZpZGVkRmlsZVJvbGUuX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcbiAgICAgIGNvbnN0IGNmbkFybiA9IHRoaXMucHJvdmlkZWRGaWxlUm9sZS5fYXJuRm9yQ2xvdWRGb3JtYXRpb24oKTtcbiAgICAgIHRoaXMuZmlsZVJvbGUgPSBjZm5Bcm4gPyBpYW0uUm9sZS5mcm9tUm9sZUFybih0aGlzLCAnQ2RrRmlsZVJvbGUnLCBjZm5Bcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVOYW1lID0gdGhpcy5maWxlUm9sZU5hbWU7XG4gICAgdGhpcy5maWxlUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnQ2RrRmlsZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHRoaXMuYWNjb3VudCksXG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbGVSb2xlTWFuaWZlc3RBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgcGFydGl0aW9uOiAnJHtBV1M6OlBhcnRpdGlvbn0nLFxuICAgICAgcmVnaW9uOiAnJywgLy8gaWFtIGlzIGdsb2JhbFxuICAgICAgc2VydmljZTogJ2lhbScsXG4gICAgICByZXNvdXJjZTogJ3JvbGUnLFxuICAgICAgcmVzb3VyY2VOYW1lOiByb2xlTmFtZSxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUltYWdlUm9sZSgpIHtcbiAgICAvLyBJdCBtYXkgZW5kIHVwIHNldHRpbmcgaW1hZ2VSb2xlIHRvIHVuZGVmaW5lZCwgYnV0IGF0IGxlYXN0IHdlIHRyaWVkXG4gICAgaWYgKHRoaXMuZGlkSW1hZ2VSb2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlkSW1hZ2VSb2xlID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnByb3ZpZGVkSW1hZ2VSb2xlKSB7XG4gICAgICAvLyBPdmVycmlkZVxuICAgICAgdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybiA9IHRoaXMucHJvdmlkZWRJbWFnZVJvbGUuX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcbiAgICAgIGNvbnN0IGNmbkFybiA9IHRoaXMucHJvdmlkZWRJbWFnZVJvbGUuX2FybkZvckNsb3VkRm9ybWF0aW9uKCk7XG4gICAgICB0aGlzLmltYWdlUm9sZSA9IGNmbkFybiA/IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHRoaXMsICdDZGtJbWFnZVJvbGUnLCBjZm5Bcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVOYW1lID0gdGhpcy5pbWFnZVJvbGVOYW1lO1xuICAgIHRoaXMuaW1hZ2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDZGtJbWFnZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHRoaXMuYWNjb3VudCksXG4gICAgfSk7XG4gICAgdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBwYXJ0aXRpb246ICcke0FXUzo6UGFydGl0aW9ufScsXG4gICAgICByZWdpb246ICcnLCAvLyBpYW0gaXMgZ2xvYmFsXG4gICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgIHJlc291cmNlOiAncm9sZScsXG4gICAgICByZXNvdXJjZU5hbWU6IHJvbGVOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQnVja2V0S2V5KCk6IGttcy5JS2V5IHtcbiAgICByZXR1cm4gbmV3IGttcy5LZXkodGhpcywgJ0J1Y2tldEtleScsIHtcbiAgICAgIGFsaWFzOiBgYWxpYXMvY2RrLSR7dGhpcy5hcHBJZH0tc3RhZ2luZ2AsXG4gICAgICBhZG1pbnM6IFtuZXcgaWFtLkFjY291bnRQcmluY2lwYWwodGhpcy5hY2NvdW50KV0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENyZWF0ZUJ1Y2tldCgpIHtcbiAgICBjb25zdCBzdGFnaW5nQnVja2V0TmFtZSA9IHRoaXMuc3RhZ2luZ0J1Y2tldE5hbWUgPz8gYGNkay0ke3RoaXMuYXBwSWR9LXN0YWdpbmctJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcbiAgICBjb25zdCBidWNrZXRJZCA9ICdDZGtTdGFnaW5nQnVja2V0JztcbiAgICBjb25zdCBjcmVhdGVkQnVja2V0ID0gdGhpcy5ub2RlLnRyeUZpbmRDaGlsZChidWNrZXRJZCkgYXMgczMuQnVja2V0O1xuICAgIGlmIChjcmVhdGVkQnVja2V0KSB7XG4gICAgICByZXR1cm4gc3RhZ2luZ0J1Y2tldE5hbWU7XG4gICAgfVxuXG4gICAgdGhpcy5lbnN1cmVGaWxlUm9sZSgpO1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3JlYXRlQnVja2V0S2V5KCk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGJ1Y2tldCBvbmNlIHRoZSBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGNyZWF0ZWRcbiAgICBjb25zdCBidWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsIGJ1Y2tldElkLCB7XG4gICAgICBidWNrZXROYW1lOiBzdGFnaW5nQnVja2V0TmFtZSxcbiAgICAgIC4uLih0aGlzLmF1dG9EZWxldGVTdGFnaW5nQXNzZXRzID8ge1xuICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgfSA6IHtcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICB9KSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TLFxuICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuXG4gICAgICAvLyBNYW55IEFXUyBhY2NvdW50IHNhZmV0eSBjaGVja2VycyB3aWxsIGNvbXBsYWluIHdoZW4gYnVja2V0cyBhcmVuJ3QgdmVyc2lvbmVkXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICAvLyBNYW55IEFXUyBhY2NvdW50IHNhZmV0eSBjaGVja2VycyB3aWxsIGNvbXBsYWluIHdoZW4gU1NMIGlzbid0IGVuZm9yY2VkXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZmlsZVJvbGUpIHtcbiAgICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmZpbGVSb2xlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXBsb3lSb2xlQXJuKSB7XG4gICAgICBidWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnczM6R2V0T2JqZWN0KicsXG4gICAgICAgICAgJ3MzOkdldEJ1Y2tldConLFxuICAgICAgICAgICdzMzpMaXN0KicsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW2J1Y2tldC5idWNrZXRBcm4sIGJ1Y2tldC5hcm5Gb3JPYmplY3RzKCcqJyldLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5Bcm5QcmluY2lwYWwodGhpcy5kZXBsb3lSb2xlQXJuKV0sXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gT2JqZWN0cyBzaG91bGQgbmV2ZXIgYmUgb3ZlcndyaXR0ZW4sIGJ1dCBsZXQncyBtYWtlIHN1cmUgd2UgaGF2ZSBhIGxpZmVjeWNsZSBwb2xpY3lcbiAgICAvLyBmb3IgaXQgYW55d2F5LlxuICAgIGJ1Y2tldC5hZGRMaWZlY3ljbGVSdWxlKHtcbiAgICAgIG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgIH0pO1xuXG4gICAgYnVja2V0LmFkZExpZmVjeWNsZVJ1bGUoe1xuICAgICAgcHJlZml4OiBERVBMT1lfVElNRV9QUkVGSVgsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLnByb3BzLmRlcGxveVRpbWVGaWxlQXNzZXRMaWZldGltZSA/PyBEdXJhdGlvbi5kYXlzKDMwKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGFnaW5nQnVja2V0TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3ZWxsLWtub3duIG5hbWUgb2YgdGhlIHJlcG9cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3JlYXRlUmVwbyhhc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IHN0cmluZyB7XG4gICAgaWYgKCFhc3NldC5hc3NldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXNzZXRzIHN5bnRoZXNpemVkIHdpdGggQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyIG11c3QgaW5jbHVkZSBhbiBcXCdhc3NldE5hbWVcXCcgaW4gdGhlIGFzc2V0IHNvdXJjZSBkZWZpbml0aW9uLicpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbWFnZSBwdWJsaXNoaW5nIHJvbGUgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIHRoaXMuZW5zdXJlSW1hZ2VSb2xlKCk7XG5cbiAgICBjb25zdCByZXBvTmFtZSA9IGdlbmVyYXRlUmVwb05hbWUoYCR7dGhpcy5hcHBJZH0vJHthc3NldC5hc3NldE5hbWV9YCk7XG4gICAgaWYgKHRoaXMuc3RhZ2luZ1JlcG9zW2Fzc2V0LmFzc2V0TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXSA9IG5ldyBlY3IuUmVwb3NpdG9yeSh0aGlzLCByZXBvTmFtZSwge1xuICAgICAgICByZXBvc2l0b3J5TmFtZTogcmVwb05hbWUsXG4gICAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbe1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2FyYmFnZSBjb2xsZWN0IG9sZCBpbWFnZSB2ZXJzaW9ucycsXG4gICAgICAgICAgbWF4SW1hZ2VDb3VudDogdGhpcy5wcm9wcy5pbWFnZUFzc2V0VmVyc2lvbkNvdW50ID8/IDMsXG4gICAgICAgIH1dLFxuICAgICAgICAuLi4odGhpcy5hdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cyA/IHtcbiAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgYXV0b0RlbGV0ZUltYWdlczogdHJ1ZSxcbiAgICAgICAgfSA6IHtcbiAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuaW1hZ2VSb2xlKSB7XG4gICAgICAgIHRoaXMuc3RhZ2luZ1JlcG9zW2Fzc2V0LmFzc2V0TmFtZV0uZ3JhbnRQdWxsUHVzaCh0aGlzLmltYWdlUm9sZSk7XG4gICAgICAgIHRoaXMuc3RhZ2luZ1JlcG9zW2Fzc2V0LmFzc2V0TmFtZV0uZ3JhbnRSZWFkKHRoaXMuaW1hZ2VSb2xlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcG9OYW1lO1xuXG4gICAgZnVuY3Rpb24gZ2VuZXJhdGVSZXBvTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5yZXBsYWNlKCcuJywgJy0nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkRmlsZShhc3NldDogRmlsZUFzc2V0U291cmNlKTogRmlsZVN0YWdpbmdMb2NhdGlvbiB7XG4gICAgLy8gSGFzIHNpZGUgZWZmZWN0cyBzbyBtdXN0IGdvIGZpcnN0XG4gICAgY29uc3QgYnVja2V0TmFtZSA9IHRoaXMuZ2V0Q3JlYXRlQnVja2V0KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0TmFtZSxcbiAgICAgIGFzc3VtZVJvbGVBcm46IHRoaXMuZmlsZVJvbGVNYW5pZmVzdEFybixcbiAgICAgIHByZWZpeDogYXNzZXQuZGVwbG95VGltZSA/IERFUExPWV9USU1FX1BSRUZJWCA6IHVuZGVmaW5lZCxcbiAgICAgIGRlcGVuZGVuY3lTdGFjazogdGhpcyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFkZERvY2tlckltYWdlKGFzc2V0OiBEb2NrZXJJbWFnZUFzc2V0U291cmNlKTogSW1hZ2VTdGFnaW5nTG9jYXRpb24ge1xuICAgIC8vIEhhcyBzaWRlIGVmZmVjdHMgc28gbXVzdCBnbyBmaXJzdFxuICAgIGNvbnN0IHJlcG9OYW1lID0gdGhpcy5nZXRDcmVhdGVSZXBvKGFzc2V0KTtcblxuICAgIHJldHVybiB7XG4gICAgICByZXBvTmFtZSxcbiAgICAgIGFzc3VtZVJvbGVBcm46IHRoaXMuaW1hZ2VSb2xlTWFuaWZlc3RBcm4sXG4gICAgICBkZXBlbmRlbmN5U3RhY2s6IHRoaXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyB0aGUgY2xvdWRmb3JtYXRpb24gdGVtcGxhdGUgaW50byBhIGNsb3VkIGFzc2VtYmx5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfc3ludGhlc2l6ZVRlbXBsYXRlKHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uLCBsb29rdXBSb2xlQXJuPzogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgc3VwZXIuX3N5bnRoZXNpemVUZW1wbGF0ZShzZXNzaW9uLCBsb29rdXBSb2xlQXJuKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBzZXNzaW9uLmFzc2VtYmx5O1xuICAgIGNvbnN0IG91dFBhdGggPSBwYXRoLmpvaW4oYnVpbGRlci5vdXRkaXIsIHRoaXMudGVtcGxhdGVGaWxlKTtcbiAgICBjb25zdCBzaXplID0gZnMuc3RhdFN5bmMob3V0UGF0aCkuc2l6ZTtcbiAgICBpZiAoc2l6ZSA+IDUxMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0YWdpbmcgcmVzb3VyY2UgdGVtcGxhdGUgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiA1MTIwMCBieXRlcywgYnV0IGdvdCAke3NpemV9IGJ5dGVzYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-cdk/app-staging-synthesizer-alpha",
3
3
  "private": false,
4
- "version": "2.88.0-alpha.0",
4
+ "version": "2.89.0-alpha.0",
5
5
  "description": "Cdk synthesizer for with app-scoped staging stack",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -84,19 +84,19 @@
84
84
  }
85
85
  },
86
86
  "dependencies": {
87
- "aws-cdk-lib": "2.88.0",
87
+ "aws-cdk-lib": "2.89.0",
88
88
  "constructs": "^10.0.0"
89
89
  },
90
90
  "devDependencies": {
91
- "aws-cdk-lib": "2.88.0",
92
- "@aws-cdk/integ-runner": "2.88.0-alpha.0",
93
- "@aws-cdk/integ-tests-alpha": "2.88.0-alpha.0",
91
+ "aws-cdk-lib": "2.89.0",
92
+ "@aws-cdk/integ-runner": "2.89.0-alpha.0",
93
+ "@aws-cdk/integ-tests-alpha": "2.89.0-alpha.0",
94
94
  "constructs": "^10.0.0",
95
- "@aws-cdk/cdk-build-tools": "2.88.0-alpha.0",
96
- "@aws-cdk/pkglint": "2.88.0-alpha.0"
95
+ "@aws-cdk/cdk-build-tools": "2.89.0-alpha.0",
96
+ "@aws-cdk/pkglint": "2.89.0-alpha.0"
97
97
  },
98
98
  "peerDependencies": {
99
- "aws-cdk-lib": "2.88.0",
99
+ "aws-cdk-lib": "2.89.0",
100
100
  "constructs": "^10.0.0"
101
101
  },
102
102
  "publishConfig": {