@fjall/components-infrastructure 0.74.1 → 0.74.3

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.
@@ -150,12 +150,12 @@ class DisasterRecovery extends constructs_1.Construct {
150
150
  ];
151
151
  }
152
152
  createResilientBackupRules(planName, replicationVaultArn) {
153
- const copyActions = this.createCopyActions(planName, replicationVaultArn, undefined, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.RESILIENT), undefined);
153
+ const copyActions = this.createCopyActions(planName, replicationVaultArn, undefined, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS), undefined);
154
154
  return [
155
155
  new aws_backup_1.BackupPlanRule({
156
156
  ruleName: `${planName}Daily`,
157
157
  scheduleExpression: events.Schedule.cron({ hour: "2", minute: "0" }), // 2 AM daily
158
- deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.RESILIENT),
158
+ deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS),
159
159
  enableContinuousBackup: true,
160
160
  startWindow: aws_cdk_lib_1.Duration.minutes(60),
161
161
  completionWindow: aws_cdk_lib_1.Duration.hours(12),
@@ -164,8 +164,8 @@ class DisasterRecovery extends constructs_1.Construct {
164
164
  ];
165
165
  }
166
166
  createEnterpriseBackupRules(planName, replicationVaultArn, disasterRecoveryVaultArn) {
167
- const continuousCopyActions = this.createCopyActions(planName, replicationVaultArn, disasterRecoveryVaultArn, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS), undefined);
168
- const complianceCopyActions = this.createCopyActions(planName, replicationVaultArn, disasterRecoveryVaultArn, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_COMPLIANCE), aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.COLD_STORAGE_ONE_YEAR));
167
+ const continuousCopyActions = this.createCopyActions(`${planName}Continuous`, replicationVaultArn, disasterRecoveryVaultArn, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS), undefined);
168
+ const complianceCopyActions = this.createCopyActions(`${planName}Compliance`, replicationVaultArn, disasterRecoveryVaultArn, aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_COMPLIANCE), aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.COLD_STORAGE_ONE_YEAR));
169
169
  return [
170
170
  // Continuous backup (35-day max PITR window)
171
171
  new aws_backup_1.BackupPlanRule({
@@ -223,4 +223,4 @@ class DisasterRecovery extends constructs_1.Construct {
223
223
  }
224
224
  }
225
225
  exports.DisasterRecovery = DisasterRecovery;
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYXN0ZXJSZWNvdmVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2Rpc2FzdGVyUmVjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLDJDQUF1QztBQUN2Qyx1REFBcUU7QUFDckUsdURBSWdDO0FBQ2hDLGlEQUFpRDtBQUNqRCxpREFBZ0Y7QUFDaEYsc0NBQW9EO0FBRXBELHVDQUF1QztBQUN2QyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDO0lBQzNELHFCQUFxQixFQUFFLElBQUksRUFBRSxVQUFVO0lBQ3ZDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxjQUFjO0lBQ3hDLHFCQUFxQixFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQWNYLE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFTN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3Qyw0Q0FBNEM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxXQUFXLEtBQUssWUFBWSxDQUFDO1FBRWxFLHVCQUF1QjtRQUN2QixNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXZFLDJEQUEyRDtRQUMzRCw0REFBNEQ7UUFDNUQsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUI7WUFDakQsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsV0FBVyxDQUFDLHVC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QyxNQUFNLEVBQUU7d0JBQzdCLGlCQUFpQixDQUFDLG9CQUFvQjtvQkFDdEMsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUU7b0JBQzVCLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUixDQUFDO1lBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBcFNELDRDQW9TQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24sIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBCYWNrdXBWYXVsdCwgQmFja3VwUGxhbiB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2JhY2t1cFwiO1xuaW1wb3J0IHtcbiAgQmFja3VwUGxhblJ1bGUsXG4gIEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMsXG4gIEJhY2t1cFZhdWx0IGFzIFZhdWx0XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmFja3VwXCI7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IEFjY291bnRQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbmZpZyBhcyBGamFsbENvbmZpZyB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG4vLyBCYWNrdXAgcmV0ZW50aW9uIGNvbnN0YW50cyAoaW4gZGF5cylcbmNvbnN0IFJFVEVOVElPTl9QRVJJT0RTID0ge1xuICBTVEFOREFSRDogOTAsXG4gIFJFU0lMSUVOVDogMzY1LFxuICBFTlRFUlBSSVNFX0NPTlRJTlVPVVM6IDM1LCAvLyBBV1MgbWF4IGZvciBjb250aW51b3VzIGJhY2t1cFxuICBFTlRFUlBSSVNFX0NPTVBMSUFOQ0U6IDI1NTUsIC8vIDcgeWVhcnNcbiAgQ09MRF9TVE9SQUdFX01JTklNVU06IDkwLCAvLyBBV1MgbWluaW11bVxuICBDT0xEX1NUT1JBR0VfT05FX1lFQVI6IDM2NVxufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21CYWNrdXBQbGFuQ29uZmlnIHtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgcnVsZXM6IEJhY2t1cFBsYW5SdWxlW107XG4gIHRhZ1ZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzYXN0ZXJSZWNvdmVyeVByb3BzIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBjdXN0b21CYWNrdXBQbGFucz86IEN1c3RvbUJhY2t1cFBsYW5Db25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERpc2FzdGVyUmVjb3ZlcnkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFja3VwVmF1bHQ6IEJhY2t1cFZhdWx0O1xuICBwdWJsaWMgcmVhZG9ubHkgYmFja3VwUGxhbnM6IHtcbiAgICBzdGFuZGFyZDogQmFja3VwUGxhbjtcbiAgICByZXNpbGllbnQ6IEJhY2t1cFBsYW47XG4gICAgZW50ZXJwcmlzZTogQmFja3VwUGxhbjtcbiAgfTtcbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbUJhY2t1cFBsYW5zPzogQmFja3VwUGxhbltdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEaXNhc3RlclJlY292ZXJ5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZmphbGxDb25maWcgPSBGamFsbENvbmZpZy5sb2FkQ29uZmlnKCk7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIGNvbXBsaWFuY2UgYWNjb3VudFxuICAgIGNvbnN0IGFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnRCeUlkKHByb3BzLmFjY291bnRJZCk7XG4gICAgY29uc3QgaXNDb21wbGlhbmNlQWNjb3VudCA9IGFjY291bnQ/LmVudmlyb25tZW50ID09PSBcImNvbXBsaWFuY2VcIjtcblxuICAgIC8vIEdldCBEUiBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiA9IGZqYWxsQ29uZmlnLmdldERpc2FzdGVyUmVjb3ZlcnlSZWdpb24oKTtcblxuICAgIC8vIExvb2sgdXAgY29tcGxpYW5jZSBhY2NvdW50IGZvciBjcm9zcy1hY2NvdW50IHJlcGxpY2F0aW9uXG4gICAgLy8gU2tpcCBpZiB0aGUgY29tcGxpYW5jZSBhY2NvdW50IChwcmV2ZW50IHNlbGYtcmVwbGljYXRpb24pXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeUFjY291bnQgPSBpc0NvbXBsaWFuY2VBY2NvdW50XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBmamFsbENvbmZpZy5nZXRBY2NvdW50QnlFbnZpcm9ubWVudChcImNvbXBsaWFuY2VcIik7XG5cbiAgICAvLyBDb25zdHJ1Y3QgY3Jvc3MtYWNjb3VudCBEUiB2YXVsdCBBUk4gKGNvbXBsaWFuY2UgYWNjb3VudCBpbiBEUiByZWdpb24pXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuID1cbiAgICAgIGRpc2FzdGVyUmVjb3ZlcnlBY2NvdW50ICYmIGRpc2FzdGVyUmVjb3ZlcnlSZWdpb25cbiAgICAgICAgPyBgYXJuOmF3czpiYWNrdXA6JHtkaXNhc3RlclJlY292ZXJ5UmVnaW9ufToke2Rpc2FzdGVyUmVjb3ZlcnlBY2NvdW50LmlkfTpiYWNrdXAtdmF1bHQ6YmFja3VwVmF1bHRgXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ29tcGxpYW5jZSBhY2NvdW50cyBnZXQgdmF1bHQgbG9ja3MgZm9yIHByb3RlY3Rpb25cbiAgICBjb25zdCBsb2NrQ29uZmlndXJhdGlvbiA9IGlzQ29tcGxpYW5jZUFjY291bnRcbiAgICAgID8ge1xuICAgICAgICAgIG1pblJldGVudGlvbjogRHVyYXRpb24uZGF5cygzNjUpLCAvLyBNaW5pbXVtIDEgeWVhciByZXRlbnRpb25cbiAgICAgICAgICBtYXhSZXRlbnRpb246IER1cmF0aW9uLmRheXMoMzY1MDApLCAvLyBNYXhpbXVtIH4xMDAgeWVhcnNcbiAgICAgICAgICBjaGFuZ2VhYmxlRm9yOiBEdXJhdGlvbi5kYXlzKDMpIC8vIDMtZGF5IGdyYWNlIHBlcmlvZCB0byBtb2RpZnkgbG9ja1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBwcmltYXJ5IGJhY2t1cCB2YXVsdFxuICAgIHRoaXMuYmFja3VwVmF1bHQgPSBuZXcgQmFja3VwVmF1bHQodGhpcywgXCJCYWNrdXBWYXVsdFwiLCB7XG4gICAgICB2YXVsdE5hbWU6IFwiYmFja3VwVmF1bHRcIixcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgbG9ja0NvbmZpZ3VyYXRpb246IGxvY2tDb25maWd1cmF0aW9uXG4gICAgfSk7XG5cbiAgICAvLyBDb25maWd1cmUgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgcG9saWNpZXNcbiAgICBpZiAoZGlzYXN0ZXJSZWNvdmVyeUFjY291bnQpIHtcbiAgICAgIC8vIFByb2R1Y3Rpb24gdmF1bHRzOiBBbGxvdyBjb21wbGlhbmNlIGFjY291bnQgdG8gcmVzdG9yZSBGUk9NIHRoaXMgdmF1bHRcbiAgICAgIGNvbnN0IHJlc3RvcmVTdGF0ZW1lbnQgPSBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgQWNjb3VudFByaW5jaXBhbChkaXNhc3RlclJlY292ZXJ5QWNjb3VudC5pZCldLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJiYWNrdXA6RGVzY3JpYmVCYWNrdXBWYXVsdFwiLFxuICAgICAgICAgIFwiYmFja3VwOkxpc3RSZWNvdmVyeVBvaW50c0J5QmFja3VwVmF1bHRcIixcbiAgICAgICAgICBcImJhY2t1cDpHZXRSZWNvdmVyeVBvaW50UmVzdG9yZU1ldGFkYXRhXCIsXG4gICAgICAgICAgXCJiYWNrdXA6U3RhcnRSZXN0b3JlSm9iXCIsXG4gICAgICAgICAgXCJiYWNrdXA6RGVzY3JpYmVSZXN0b3JlSm9iXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYmFja3VwVmF1bHQudmF1bHQuYWRkVG9BY2Nlc3NQb2xpY3kocmVzdG9yZVN0YXRlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ29tcGxpYW5jZUFjY291bnQpIHtcbiAgICAgIC8vIENvbXBsaWFuY2UgdmF1bHRzOiBBbGxvdyBwcm9kdWN0aW9uIGFjY291bnRzIHRvIGNvcHkgVE8gdGhpcyB2YXVsdFxuICAgICAgY29uc3QgYWxsQWNjb3VudHMgPSBmamFsbENvbmZpZy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMgfHwgW107XG4gICAgICBjb25zdCBwcm9kdWN0aW9uQWNjb3VudHMgPSBhbGxBY2NvdW50cy5maWx0ZXIoXG4gICAgICAgIChhY2MpID0+IGFjYy5lbnZpcm9ubWVudCA9PT0gXCJwcm9kdWN0aW9uXCJcbiAgICAgICk7XG5cbiAgICAgIGlmIChwcm9kdWN0aW9uQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjb3B5U3RhdGVtZW50ID0gbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcHJpbmNpcGFsczogcHJvZHVjdGlvbkFjY291bnRzLm1hcChcbiAgICAgICAgICAgIChhY2MpID0+IG5ldyBBY2NvdW50UHJpbmNpcGFsKGFjYy5pZClcbiAgICAgICAgICApLFxuICAgICAgICAgIGFjdGlvbnM6IFtcImJhY2t1cDpDb3B5SW50b0JhY2t1cFZhdWx0XCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYWNrdXBWYXVsdC52YXVsdC5hZGRUb0FjY2Vzc1BvbGljeShjb3B5U3RhdGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb25zdHJ1Y3QgY3Jvc3MtcmVnaW9uIHJlcGxpY2F0aW9uIHZhdWx0IEFSTiAoc2FtZSBhY2NvdW50LCBEUiByZWdpb24pXG4gICAgLy8gT25seSByZXBsaWNhdGUgaWYgRFIgcmVnaW9uIGV4aXN0cyBBTkQgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudCByZWdpb25cbiAgICBjb25zdCByZXBsaWNhdGlvblZhdWx0QXJuID1cbiAgICAgIGRpc2FzdGVyUmVjb3ZlcnlSZWdpb24gJiYgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiAhPT0gcHJvcHMucmVnaW9uXG4gICAgICAgID8gYGFybjphd3M6YmFja3VwOiR7ZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbn06JHtwcm9wcy5hY2NvdW50SWR9OmJhY2t1cC12YXVsdDpiYWNrdXBWYXVsdGBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGUgYWxsIHRocmVlIGJhY2t1cCBwbGFuc1xuICAgIHRoaXMuYmFja3VwUGxhbnMgPSB7XG4gICAgICBzdGFuZGFyZDogbmV3IEJhY2t1cFBsYW4odGhpcywgXCJTdGFuZGFyZEJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJzdGFuZGFyZFwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVTdGFuZGFyZEJhY2t1cFJ1bGVzKFwic3RhbmRhcmRcIiksXG4gICAgICAgIHRhZ1ZhbHVlOiBcImRlZmF1bHRcIixcbiAgICAgICAgYmFja3VwVmF1bHQ6IHRoaXMuYmFja3VwVmF1bHRcbiAgICAgIH0pLFxuICAgICAgcmVzaWxpZW50OiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIlJlc2lsaWVudEJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJyZXNpbGllbnRcIixcbiAgICAgICAgcnVsZXM6IHRoaXMuY3JlYXRlUmVzaWxpZW50QmFja3VwUnVsZXMoXG4gICAgICAgICAgXCJyZXNpbGllbnRcIixcbiAgICAgICAgICByZXBsaWNhdGlvblZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIHRhZ1ZhbHVlOiBcInJlc2lsaWVudFwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSksXG4gICAgICBlbnRlcnByaXNlOiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIkVudGVycHJpc2VCYWNrdXBQbGFuXCIsIHtcbiAgICAgICAgcGxhbk5hbWU6IFwiZW50ZXJwcmlzZVwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVFbnRlcnByaXNlQmFja3VwUnVsZXMoXG4gICAgICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICAgICAgcmVwbGljYXRpb25WYXVsdEFybixcbiAgICAgICAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgdGFnVmFsdWU6IFwiZW50ZXJwcmlzZVwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSlcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIGN1c3RvbSBiYWNrdXAgcGxhbnMgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuY3VzdG9tQmFja3VwUGxhbnMgJiYgcHJvcHMuY3VzdG9tQmFja3VwUGxhbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXN0b21CYWNrdXBQbGFucyA9IHByb3BzLmN1c3RvbUJhY2t1cFBsYW5zLm1hcCgoY29uZmlnLCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhY2t1cFBsYW4odGhpcywgYEN1c3RvbUJhY2t1cFBsYW4ke2luZGV4fWAsIHtcbiAgICAgICAgICBwbGFuTmFtZTogY29uZmlnLnBsYW5OYW1lLFxuICAgICAgICAgIHJ1bGVzOiBjb25maWcucnVsZXMsXG4gICAgICAgICAgdGFnVmFsdWU6IGNvbmZpZy50YWdWYWx1ZSxcbiAgICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEV4cG9ydCBkaXNhc3RlciByZWNvdmVyeSBjb25maWd1cmF0aW9uXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCIsIHtcbiAgICAgIGtleTogXCJEaXNhc3RlclJlY292ZXJ5RW5hYmxlZFwiLFxuICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxuICAgICAgZXhwb3J0TmFtZTogXCJEaXNhc3RlclJlY292ZXJ5RW5hYmxlZFwiXG4gICAgfSk7XG5cbiAgICBpZiAoZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbikge1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlJlcGxpY2F0aW9uUmVnaW9uXCIsIHtcbiAgICAgICAga2V5OiBcIlJlcGxpY2F0aW9uUmVnaW9uXCIsXG4gICAgICAgIHZhbHVlOiBkaXNhc3RlclJlY292ZXJ5UmVnaW9uLFxuICAgICAgICBleHBvcnROYW1lOiBcIkJhY2t1cFJlcGxpY2F0aW9uUmVnaW9uXCJcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc0NvbXBsaWFuY2VBY2NvdW50KSB7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiVmF1bHRMb2NrRW5hYmxlZFwiLCB7XG4gICAgICAgIGtleTogXCJWYXVsdExvY2tFbmFibGVkXCIsXG4gICAgICAgIHZhbHVlOiBcInRydWVcIixcbiAgICAgICAgZXhwb3J0TmFtZTogXCJWYXVsdExvY2tFbmFibGVkXCJcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3RhbmRhcmRCYWNrdXBSdWxlcyhwbGFuTmFtZTogc3RyaW5nKTogQmFja3VwUGxhblJ1bGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1EYWlseWAsXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBob3VyOiBcIjJcIiwgbWludXRlOiBcIjBcIiB9KSwgLy8gMiBBTSBkYWlseVxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5TVEFOREFSRCksXG4gICAgICAgIHN0YXJ0V2luZG93OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogRHVyYXRpb24uaG91cnMoMTIpXG4gICAgICB9KVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2lsaWVudEJhY2t1cFJ1bGVzKFxuICAgIHBsYW5OYW1lOiBzdHJpbmcsXG4gICAgcmVwbGljYXRpb25WYXVsdEFybj86IHN0cmluZ1xuICApOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICBjb25zdCBjb3B5QWN0aW9ucyA9IHRoaXMuY3JlYXRlQ29weUFjdGlvbnMoXG4gICAgICBwbGFuTmFtZSxcbiAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLlJFU0lMSUVOVCksXG4gICAgICB1bmRlZmluZWRcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1EYWlseWAsXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBob3VyOiBcIjJcIiwgbWludXRlOiBcIjBcIiB9KSwgLy8gMiBBTSBkYWlseVxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5SRVNJTElFTlQpLFxuICAgICAgICBlbmFibGVDb250aW51b3VzQmFja3VwOiB0cnVlLFxuICAgICAgICBzdGFydFdpbmRvdzogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgIGNvbXBsZXRpb25XaW5kb3c6IER1cmF0aW9uLmhvdXJzKDEyKSxcbiAgICAgICAgY29weUFjdGlvbnNcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW50ZXJwcmlzZUJhY2t1cFJ1bGVzKFxuICAgIHBsYW5OYW1lOiBzdHJpbmcsXG4gICAgcmVwbGljYXRpb25WYXVsdEFybj86IHN0cmluZyxcbiAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4/OiBzdHJpbmdcbiAgKTogQmFja3VwUGxhblJ1bGVbXSB7XG4gICAgY29uc3QgY29udGludW91c0NvcHlBY3Rpb25zID0gdGhpcy5jcmVhdGVDb3B5QWN0aW9ucyhcbiAgICAgIHBsYW5OYW1lLFxuICAgICAgcmVwbGljYXRpb25WYXVsdEFybixcbiAgICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybixcbiAgICAgIER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT05USU5VT1VTKSxcbiAgICAgIHVuZGVmaW5lZFxuICAgICk7XG5cbiAgICBjb25zdCBjb21wbGlhbmNlQ29weUFjdGlvbnMgPSB0aGlzLmNyZWF0ZUNvcHlBY3Rpb25zKFxuICAgICAgcGxhbk5hbWUsXG4gICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTVBMSUFOQ0UpLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfT05FX1lFQVIpXG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBDb250aW51b3VzIGJhY2t1cCAoMzUtZGF5IG1heCBQSVRSIHdpbmRvdylcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1Db250aW51b3VzYCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IGhvdXI6IFwiMlwiLCBtaW51dGU6IFwiMFwiIH0pLCAvLyBEYWlseSBmb3IgY29udGludW91cyBiYWNrdXBcbiAgICAgICAgZGVsZXRlQWZ0ZXI6IER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT05USU5VT1VTKSxcbiAgICAgICAgZW5hYmxlQ29udGludW91c0JhY2t1cDogdHJ1ZSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBEdXJhdGlvbi5ob3VycygxMiksXG4gICAgICAgIGNvcHlBY3Rpb25zOiBjb250aW51b3VzQ29weUFjdGlvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gSG91cmx5IHNuYXBzaG90cyBmb3IgbG9uZy10ZXJtIGNvbXBsaWFuY2UgKDcgeWVhcnMpXG4gICAgICBuZXcgQmFja3VwUGxhblJ1bGUoe1xuICAgICAgICBydWxlTmFtZTogYCR7cGxhbk5hbWV9SG91cmx5Q29tcGxpYW5jZWAsXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBtaW51dGU6IFwiMFwiIH0pLCAvLyBFdmVyeSBob3VyXG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09NUExJQU5DRSksXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXI6IER1cmF0aW9uLmRheXMoXG4gICAgICAgICAgUkVURU5USU9OX1BFUklPRFMuQ09MRF9TVE9SQUdFX09ORV9ZRUFSXG4gICAgICAgICksXG4gICAgICAgIHN0YXJ0V2luZG93OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogRHVyYXRpb24uaG91cnMoMiksXG4gICAgICAgIGNvcHlBY3Rpb25zOiBjb21wbGlhbmNlQ29weUFjdGlvbnNcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29weUFjdGlvbnMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybj86IHN0cmluZyxcbiAgICBkZWxldGVBZnRlcj86IER1cmF0aW9uLFxuICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXI/OiBEdXJhdGlvblxuICApOiBCYWNrdXBQbGFuQ29weUFjdGlvblByb3BzW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFjdGlvbnM6IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHNbXSA9IFtdO1xuXG4gICAgLy8gQ3Jvc3MtcmVnaW9uIHJlcGxpY2F0aW9uXG4gICAgaWYgKHJlcGxpY2F0aW9uVmF1bHRBcm4pIHtcbiAgICAgIGNvbnN0IHJlcGxpY2F0aW9uQWN0aW9uOiBCYWNrdXBQbGFuQ29weUFjdGlvblByb3BzID0ge1xuICAgICAgICBkZXN0aW5hdGlvbkJhY2t1cFZhdWx0OiBWYXVsdC5mcm9tQmFja3VwVmF1bHRBcm4oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgJHtwbGFuTmFtZX1SZXBsaWNhdGlvblZhdWx0UmVmYCxcbiAgICAgICAgICByZXBsaWNhdGlvblZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIC4uLihkZWxldGVBZnRlciAmJiB7IGRlbGV0ZUFmdGVyIH0pLFxuICAgICAgICAvLyBPbmx5IGFkZCBjb2xkIHN0b3JhZ2UgaWYgc3BlY2lmaWVkIGFuZCA+PSA5MCBkYXlzXG4gICAgICAgIC4uLihtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyICYmXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIudG9EYXlzKCkgPj1cbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfTUlOSU1VTVxuICAgICAgICAgID8geyBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyIH1cbiAgICAgICAgICA6IHt9KVxuICAgICAgfTtcbiAgICAgIGFjdGlvbnMucHVzaChyZXBsaWNhdGlvbkFjdGlvbik7XG4gICAgfVxuXG4gICAgLy8gQ3Jvc3MtYWNjb3VudCBEUiB2YXVsdFxuICAgIGlmIChkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4pIHtcbiAgICAgIGNvbnN0IGRyQWN0aW9uOiBCYWNrdXBQbGFuQ29weUFjdGlvblByb3BzID0ge1xuICAgICAgICBkZXN0aW5hdGlvbkJhY2t1cFZhdWx0OiBWYXVsdC5mcm9tQmFja3VwVmF1bHRBcm4oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgJHtwbGFuTmFtZX1EaXNhc3RlclJlY292ZXJ5VmF1bHRSZWZgLFxuICAgICAgICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFyblxuICAgICAgICApLFxuICAgICAgICAuLi4oZGVsZXRlQWZ0ZXIgJiYgeyBkZWxldGVBZnRlciB9KSxcbiAgICAgICAgLy8gT25seSBhZGQgY29sZCBzdG9yYWdlIGlmIHNwZWNpZmllZCBhbmQgPj0gOTAgZGF5c1xuICAgICAgICAuLi4obW92ZVRvQ29sZFN0b3JhZ2VBZnRlciAmJlxuICAgICAgICBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyLnRvRGF5cygpID49XG4gICAgICAgICAgUkVURU5USU9OX1BFUklPRFMuQ09MRF9TVE9SQUdFX01JTklNVU1cbiAgICAgICAgICA/IHsgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlciB9XG4gICAgICAgICAgOiB7fSlcbiAgICAgIH07XG4gICAgICBhY3Rpb25zLnB1c2goZHJBY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpb25zLmxlbmd0aCA+IDAgPyBhY3Rpb25zIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYXN0ZXJSZWNvdmVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2Rpc2FzdGVyUmVjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLDJDQUF1QztBQUN2Qyx1REFBcUU7QUFDckUsdURBSWdDO0FBQ2hDLGlEQUFpRDtBQUNqRCxpREFBZ0Y7QUFDaEYsc0NBQW9EO0FBRXBELHVDQUF1QztBQUN2QyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDO0lBQzNELHFCQUFxQixFQUFFLElBQUksRUFBRSxVQUFVO0lBQ3ZDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxjQUFjO0lBQ3hDLHFCQUFxQixFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQWNYLE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFTN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3Qyw0Q0FBNEM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxXQUFXLEtBQUssWUFBWSxDQUFDO1FBRWxFLHVCQUF1QjtRQUN2QixNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXZFLDJEQUEyRDtRQUMzRCw0REFBNEQ7UUFDNUQsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUI7WUFDakQsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsV0FBVyxDQUFDLHVC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QyxzQkFBc0I7b0JBQzFCLHNCQUFzQixDQUFDLE1BQU0sRUFBRTt3QkFDN0IsaUJBQWlCLENBQUMsb0JBQW9CO29CQUN0QyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBRTtvQkFDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNSLENBQUM7WUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFwU0QsNENBb1NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEJhY2t1cFZhdWx0LCBCYWNrdXBQbGFuIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvYmFja3VwXCI7XG5pbXBvcnQge1xuICBCYWNrdXBQbGFuUnVsZSxcbiAgQmFja3VwUGxhbkNvcHlBY3Rpb25Qcm9wcyxcbiAgQmFja3VwVmF1bHQgYXMgVmF1bHRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYWNrdXBcIjtcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0IHsgQWNjb3VudFByaW5jaXBhbCwgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uZmlnIGFzIEZqYWxsQ29uZmlnIH0gZnJvbSBcIkBmamFsbC91dGlsXCI7XG5cbi8vIEJhY2t1cCByZXRlbnRpb24gY29uc3RhbnRzIChpbiBkYXlzKVxuY29uc3QgUkVURU5USU9OX1BFUklPRFMgPSB7XG4gIFNUQU5EQVJEOiA5MCxcbiAgUkVTSUxJRU5UOiAzNjUsXG4gIEVOVEVSUFJJU0VfQ09OVElOVU9VUzogMzUsIC8vIEFXUyBtYXggZm9yIGNvbnRpbnVvdXMgYmFja3VwXG4gIEVOVEVSUFJJU0VfQ09NUExJQU5DRTogMjU1NSwgLy8gNyB5ZWFyc1xuICBDT0xEX1NUT1JBR0VfTUlOSU1VTTogOTAsIC8vIEFXUyBtaW5pbXVtXG4gIENPTERfU1RPUkFHRV9PTkVfWUVBUjogMzY1XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUJhY2t1cFBsYW5Db25maWcge1xuICBwbGFuTmFtZTogc3RyaW5nO1xuICBydWxlczogQmFja3VwUGxhblJ1bGVbXTtcbiAgdGFnVmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNhc3RlclJlY292ZXJ5UHJvcHMge1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIGN1c3RvbUJhY2t1cFBsYW5zPzogQ3VzdG9tQmFja3VwUGxhbkNvbmZpZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgRGlzYXN0ZXJSZWNvdmVyeSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBiYWNrdXBWYXVsdDogQmFja3VwVmF1bHQ7XG4gIHB1YmxpYyByZWFkb25seSBiYWNrdXBQbGFuczoge1xuICAgIHN0YW5kYXJkOiBCYWNrdXBQbGFuO1xuICAgIHJlc2lsaWVudDogQmFja3VwUGxhbjtcbiAgICBlbnRlcnByaXNlOiBCYWNrdXBQbGFuO1xuICB9O1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tQmFja3VwUGxhbnM/OiBCYWNrdXBQbGFuW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERpc2FzdGVyUmVjb3ZlcnlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBmamFsbENvbmZpZyA9IEZqYWxsQ29uZmlnLmxvYWRDb25maWcoKTtcblxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIGEgY29tcGxpYW5jZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGZqYWxsQ29uZmlnLmdldFByb3ZpZGVyQWNjb3VudEJ5SWQocHJvcHMuYWNjb3VudElkKTtcbiAgICBjb25zdCBpc0NvbXBsaWFuY2VBY2NvdW50ID0gYWNjb3VudD8uZW52aXJvbm1lbnQgPT09IFwiY29tcGxpYW5jZVwiO1xuXG4gICAgLy8gR2V0IERSIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBkaXNhc3RlclJlY292ZXJ5UmVnaW9uID0gZmphbGxDb25maWcuZ2V0RGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbigpO1xuXG4gICAgLy8gTG9vayB1cCBjb21wbGlhbmNlIGFjY291bnQgZm9yIGNyb3NzLWFjY291bnQgcmVwbGljYXRpb25cbiAgICAvLyBTa2lwIGlmIHRoZSBjb21wbGlhbmNlIGFjY291bnQgKHByZXZlbnQgc2VsZi1yZXBsaWNhdGlvbilcbiAgICBjb25zdCBkaXNhc3RlclJlY292ZXJ5QWNjb3VudCA9IGlzQ29tcGxpYW5jZUFjY291bnRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGZqYWxsQ29uZmlnLmdldEFjY291bnRCeUVudmlyb25tZW50KFwiY29tcGxpYW5jZVwiKTtcblxuICAgIC8vIENvbnN0cnVjdCBjcm9zcy1hY2NvdW50IERSIHZhdWx0IEFSTiAoY29tcGxpYW5jZSBhY2NvdW50IGluIERSIHJlZ2lvbilcbiAgICBjb25zdCBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4gPVxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeUFjY291bnQgJiYgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvblxuICAgICAgICA/IGBhcm46YXdzOmJhY2t1cDoke2Rpc2FzdGVyUmVjb3ZlcnlSZWdpb259OiR7ZGlzYXN0ZXJSZWNvdmVyeUFjY291bnQuaWR9OmJhY2t1cC12YXVsdDpiYWNrdXBWYXVsdGBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDb21wbGlhbmNlIGFjY291bnRzIGdldCB2YXVsdCBsb2NrcyBmb3IgcHJvdGVjdGlvblxuICAgIGNvbnN0IGxvY2tDb25maWd1cmF0aW9uID0gaXNDb21wbGlhbmNlQWNjb3VudFxuICAgICAgPyB7XG4gICAgICAgICAgbWluUmV0ZW50aW9uOiBEdXJhdGlvbi5kYXlzKDM2NSksIC8vIE1pbmltdW0gMSB5ZWFyIHJldGVudGlvblxuICAgICAgICAgIG1heFJldGVudGlvbjogRHVyYXRpb24uZGF5cygzNjUwMCksIC8vIE1heGltdW0gfjEwMCB5ZWFyc1xuICAgICAgICAgIGNoYW5nZWFibGVGb3I6IER1cmF0aW9uLmRheXMoMykgLy8gMy1kYXkgZ3JhY2UgcGVyaW9kIHRvIG1vZGlmeSBsb2NrXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ3JlYXRlIHByaW1hcnkgYmFja3VwIHZhdWx0XG4gICAgdGhpcy5iYWNrdXBWYXVsdCA9IG5ldyBCYWNrdXBWYXVsdCh0aGlzLCBcIkJhY2t1cFZhdWx0XCIsIHtcbiAgICAgIHZhdWx0TmFtZTogXCJiYWNrdXBWYXVsdFwiLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICBsb2NrQ29uZmlndXJhdGlvbjogbG9ja0NvbmZpZ3VyYXRpb25cbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBjcm9zcy1hY2NvdW50IGFjY2VzcyBwb2xpY2llc1xuICAgIGlmIChkaXNhc3RlclJlY292ZXJ5QWNjb3VudCkge1xuICAgICAgLy8gUHJvZHVjdGlvbiB2YXVsdHM6IEFsbG93IGNvbXBsaWFuY2UgYWNjb3VudCB0byByZXN0b3JlIEZST00gdGhpcyB2YXVsdFxuICAgICAgY29uc3QgcmVzdG9yZVN0YXRlbWVudCA9IG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBBY2NvdW50UHJpbmNpcGFsKGRpc2FzdGVyUmVjb3ZlcnlBY2NvdW50LmlkKV0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImJhY2t1cDpEZXNjcmliZUJhY2t1cFZhdWx0XCIsXG4gICAgICAgICAgXCJiYWNrdXA6TGlzdFJlY292ZXJ5UG9pbnRzQnlCYWNrdXBWYXVsdFwiLFxuICAgICAgICAgIFwiYmFja3VwOkdldFJlY292ZXJ5UG9pbnRSZXN0b3JlTWV0YWRhdGFcIixcbiAgICAgICAgICBcImJhY2t1cDpTdGFydFJlc3RvcmVKb2JcIixcbiAgICAgICAgICBcImJhY2t1cDpEZXNjcmliZVJlc3RvcmVKb2JcIlxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5iYWNrdXBWYXVsdC52YXVsdC5hZGRUb0FjY2Vzc1BvbGljeShyZXN0b3JlU3RhdGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNDb21wbGlhbmNlQWNjb3VudCkge1xuICAgICAgLy8gQ29tcGxpYW5jZSB2YXVsdHM6IEFsbG93IHByb2R1Y3Rpb24gYWNjb3VudHMgdG8gY29weSBUTyB0aGlzIHZhdWx0XG4gICAgICBjb25zdCBhbGxBY2NvdW50cyA9IGZqYWxsQ29uZmlnLnJvb3RDb25maWcucHJvdmlkZXJBY2NvdW50cyB8fCBbXTtcbiAgICAgIGNvbnN0IHByb2R1Y3Rpb25BY2NvdW50cyA9IGFsbEFjY291bnRzLmZpbHRlcihcbiAgICAgICAgKGFjYykgPT4gYWNjLmVudmlyb25tZW50ID09PSBcInByb2R1Y3Rpb25cIlxuICAgICAgKTtcblxuICAgICAgaWYgKHByb2R1Y3Rpb25BY2NvdW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNvcHlTdGF0ZW1lbnQgPSBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBwcmluY2lwYWxzOiBwcm9kdWN0aW9uQWNjb3VudHMubWFwKFxuICAgICAgICAgICAgKGFjYykgPT4gbmV3IEFjY291bnRQcmluY2lwYWwoYWNjLmlkKVxuICAgICAgICAgICksXG4gICAgICAgICAgYWN0aW9uczogW1wiYmFja3VwOkNvcHlJbnRvQmFja3VwVmF1bHRcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJhY2t1cFZhdWx0LnZhdWx0LmFkZFRvQWNjZXNzUG9saWN5KGNvcHlTdGF0ZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnN0cnVjdCBjcm9zcy1yZWdpb24gcmVwbGljYXRpb24gdmF1bHQgQVJOIChzYW1lIGFjY291bnQsIERSIHJlZ2lvbilcbiAgICAvLyBPbmx5IHJlcGxpY2F0ZSBpZiBEUiByZWdpb24gZXhpc3RzIEFORCBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50IHJlZ2lvblxuICAgIGNvbnN0IHJlcGxpY2F0aW9uVmF1bHRBcm4gPVxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiAmJiBkaXNhc3RlclJlY292ZXJ5UmVnaW9uICE9PSBwcm9wcy5yZWdpb25cbiAgICAgICAgPyBgYXJuOmF3czpiYWNrdXA6JHtkaXNhc3RlclJlY292ZXJ5UmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06YmFja3VwLXZhdWx0OmJhY2t1cFZhdWx0YFxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBhbGwgdGhyZWUgYmFja3VwIHBsYW5zXG4gICAgdGhpcy5iYWNrdXBQbGFucyA9IHtcbiAgICAgIHN0YW5kYXJkOiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIlN0YW5kYXJkQmFja3VwUGxhblwiLCB7XG4gICAgICAgIHBsYW5OYW1lOiBcInN0YW5kYXJkXCIsXG4gICAgICAgIHJ1bGVzOiB0aGlzLmNyZWF0ZVN0YW5kYXJkQmFja3VwUnVsZXMoXCJzdGFuZGFyZFwiKSxcbiAgICAgICAgdGFnVmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSksXG4gICAgICByZXNpbGllbnQ6IG5ldyBCYWNrdXBQbGFuKHRoaXMsIFwiUmVzaWxpZW50QmFja3VwUGxhblwiLCB7XG4gICAgICAgIHBsYW5OYW1lOiBcInJlc2lsaWVudFwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVSZXNpbGllbnRCYWNrdXBSdWxlcyhcbiAgICAgICAgICBcInJlc2lsaWVudFwiLFxuICAgICAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgdGFnVmFsdWU6IFwicmVzaWxpZW50XCIsXG4gICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICB9KSxcbiAgICAgIGVudGVycHJpc2U6IG5ldyBCYWNrdXBQbGFuKHRoaXMsIFwiRW50ZXJwcmlzZUJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJlbnRlcnByaXNlXCIsXG4gICAgICAgIHJ1bGVzOiB0aGlzLmNyZWF0ZUVudGVycHJpc2VCYWNrdXBSdWxlcyhcbiAgICAgICAgICBcImVudGVycHJpc2VcIixcbiAgICAgICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFyblxuICAgICAgICApLFxuICAgICAgICB0YWdWYWx1ZTogXCJlbnRlcnByaXNlXCIsXG4gICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICB9KVxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgY3VzdG9tIGJhY2t1cCBwbGFucyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5jdXN0b21CYWNrdXBQbGFucyAmJiBwcm9wcy5jdXN0b21CYWNrdXBQbGFucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmN1c3RvbUJhY2t1cFBsYW5zID0gcHJvcHMuY3VzdG9tQmFja3VwUGxhbnMubWFwKChjb25maWcsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFja3VwUGxhbih0aGlzLCBgQ3VzdG9tQmFja3VwUGxhbiR7aW5kZXh9YCwge1xuICAgICAgICAgIHBsYW5OYW1lOiBjb25maWcucGxhbk5hbWUsXG4gICAgICAgICAgcnVsZXM6IGNvbmZpZy5ydWxlcyxcbiAgICAgICAgICB0YWdWYWx1ZTogY29uZmlnLnRhZ1ZhbHVlLFxuICAgICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gRXhwb3J0IGRpc2FzdGVyIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb25cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGlzYXN0ZXJSZWNvdmVyeUVuYWJsZWRcIiwge1xuICAgICAga2V5OiBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCIsXG4gICAgICB2YWx1ZTogXCJ0cnVlXCIsXG4gICAgICBleHBvcnROYW1lOiBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCJcbiAgICB9KTtcblxuICAgIGlmIChkaXNhc3RlclJlY292ZXJ5UmVnaW9uKSB7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiUmVwbGljYXRpb25SZWdpb25cIiwge1xuICAgICAgICBrZXk6IFwiUmVwbGljYXRpb25SZWdpb25cIixcbiAgICAgICAgdmFsdWU6IGRpc2FzdGVyUmVjb3ZlcnlSZWdpb24sXG4gICAgICAgIGV4cG9ydE5hbWU6IFwiQmFja3VwUmVwbGljYXRpb25SZWdpb25cIlxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ29tcGxpYW5jZUFjY291bnQpIHtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJWYXVsdExvY2tFbmFibGVkXCIsIHtcbiAgICAgICAga2V5OiBcIlZhdWx0TG9ja0VuYWJsZWRcIixcbiAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxuICAgICAgICBleHBvcnROYW1lOiBcIlZhdWx0TG9ja0VuYWJsZWRcIlxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGFuZGFyZEJhY2t1cFJ1bGVzKHBsYW5OYW1lOiBzdHJpbmcpOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfURhaWx5YCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IGhvdXI6IFwiMlwiLCBtaW51dGU6IFwiMFwiIH0pLCAvLyAyIEFNIGRhaWx5XG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLlNUQU5EQVJEKSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBEdXJhdGlvbi5ob3VycygxMilcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaWxpZW50QmFja3VwUnVsZXMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nXG4gICk6IEJhY2t1cFBsYW5SdWxlW10ge1xuICAgIGNvbnN0IGNvcHlBY3Rpb25zID0gdGhpcy5jcmVhdGVDb3B5QWN0aW9ucyhcbiAgICAgIHBsYW5OYW1lLFxuICAgICAgcmVwbGljYXRpb25WYXVsdEFybixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT05USU5VT1VTKSxcbiAgICAgIHVuZGVmaW5lZFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfURhaWx5YCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IGhvdXI6IFwiMlwiLCBtaW51dGU6IFwiMFwiIH0pLCAvLyAyIEFNIGRhaWx5XG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09OVElOVU9VUyksXG4gICAgICAgIGVuYWJsZUNvbnRpbnVvdXNCYWNrdXA6IHRydWUsXG4gICAgICAgIHN0YXJ0V2luZG93OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogRHVyYXRpb24uaG91cnMoMTIpLFxuICAgICAgICBjb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbnRlcnByaXNlQmFja3VwUnVsZXMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybj86IHN0cmluZ1xuICApOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICBjb25zdCBjb250aW51b3VzQ29weUFjdGlvbnMgPSB0aGlzLmNyZWF0ZUNvcHlBY3Rpb25zKFxuICAgICAgYCR7cGxhbk5hbWV9Q29udGludW91c2AsXG4gICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBsaWFuY2VDb3B5QWN0aW9ucyA9IHRoaXMuY3JlYXRlQ29weUFjdGlvbnMoXG4gICAgICBgJHtwbGFuTmFtZX1Db21wbGlhbmNlYCxcbiAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4sXG4gICAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4sXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09NUExJQU5DRSksXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9PTkVfWUVBUilcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIENvbnRpbnVvdXMgYmFja3VwICgzNS1kYXkgbWF4IFBJVFIgd2luZG93KVxuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfUNvbnRpbnVvdXNgLFxuICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246IGV2ZW50cy5TY2hlZHVsZS5jcm9uKHsgaG91cjogXCIyXCIsIG1pbnV0ZTogXCIwXCIgfSksIC8vIERhaWx5IGZvciBjb250aW51b3VzIGJhY2t1cFxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgICBlbmFibGVDb250aW51b3VzQmFja3VwOiB0cnVlLFxuICAgICAgICBzdGFydFdpbmRvdzogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgIGNvbXBsZXRpb25XaW5kb3c6IER1cmF0aW9uLmhvdXJzKDEyKSxcbiAgICAgICAgY29weUFjdGlvbnM6IGNvbnRpbnVvdXNDb3B5QWN0aW9uc1xuICAgICAgfSksXG4gICAgICAvLyBIb3VybHkgc25hcHNob3RzIGZvciBsb25nLXRlcm0gY29tcGxpYW5jZSAoNyB5ZWFycylcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1Ib3VybHlDb21wbGlhbmNlYCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IG1pbnV0ZTogXCIwXCIgfSksIC8vIEV2ZXJ5IGhvdXJcbiAgICAgICAgZGVsZXRlQWZ0ZXI6IER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT01QTElBTkNFKSxcbiAgICAgICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlcjogRHVyYXRpb24uZGF5cyhcbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfT05FX1lFQVJcbiAgICAgICAgKSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBEdXJhdGlvbi5ob3VycygyKSxcbiAgICAgICAgY29weUFjdGlvbnM6IGNvbXBsaWFuY2VDb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb3B5QWN0aW9ucyhcbiAgICBwbGFuTmFtZTogc3RyaW5nLFxuICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4/OiBzdHJpbmcsXG4gICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRlbGV0ZUFmdGVyPzogRHVyYXRpb24sXG4gICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlcj86IER1cmF0aW9uXG4gICk6IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHNbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYWN0aW9uczogQmFja3VwUGxhbkNvcHlBY3Rpb25Qcm9wc1tdID0gW107XG5cbiAgICAvLyBDcm9zcy1yZWdpb24gcmVwbGljYXRpb25cbiAgICBpZiAocmVwbGljYXRpb25WYXVsdEFybikge1xuICAgICAgY29uc3QgcmVwbGljYXRpb25BY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfVJlcGxpY2F0aW9uVmF1bHRSZWZgLFxuICAgICAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgLi4uKGRlbGV0ZUFmdGVyICYmIHsgZGVsZXRlQWZ0ZXIgfSksXG4gICAgICAgIC8vIE9ubHkgYWRkIGNvbGQgc3RvcmFnZSBpZiBzcGVjaWZpZWQgYW5kID49IDkwIGRheXNcbiAgICAgICAgLi4uKG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgJiZcbiAgICAgICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlci50b0RheXMoKSA+PVxuICAgICAgICAgIFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9NSU5JTVVNXG4gICAgICAgICAgPyB7IG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgYWN0aW9ucy5wdXNoKHJlcGxpY2F0aW9uQWN0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBDcm9zcy1hY2NvdW50IERSIHZhdWx0XG4gICAgaWYgKGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybikge1xuICAgICAgY29uc3QgZHJBY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfURpc2FzdGVyUmVjb3ZlcnlWYXVsdFJlZmAsXG4gICAgICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIC4uLihkZWxldGVBZnRlciAmJiB7IGRlbGV0ZUFmdGVyIH0pLFxuICAgICAgICAvLyBPbmx5IGFkZCBjb2xkIHN0b3JhZ2UgaWYgc3BlY2lmaWVkIGFuZCA+PSA5MCBkYXlzXG4gICAgICAgIC4uLihtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyICYmXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIudG9EYXlzKCkgPj1cbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfTUlOSU1VTVxuICAgICAgICAgID8geyBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyIH1cbiAgICAgICAgICA6IHt9KVxuICAgICAgfTtcbiAgICAgIGFjdGlvbnMucHVzaChkckFjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbnMubGVuZ3RoID4gMCA/IGFjdGlvbnMgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.74.1",
3
+ "version": "0.74.3",
4
4
  "bin": {
5
5
  "infrastructure": "bin/infrastructure.js"
6
6
  },
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@aws-sdk/client-organizations": "^3.716.0",
38
- "@fjall/util": "^0.74.1",
38
+ "@fjall/util": "^0.74.3",
39
39
  "@pepperize/cdk-organizations": "^0.7.135",
40
40
  "cdk-time-sleep": "^1.0.0",
41
41
  "constructs": "^10.0.0",
@@ -44,7 +44,7 @@
44
44
  "overrides": {
45
45
  "@smithy/core": "2.5.5"
46
46
  },
47
- "gitHead": "00342d0c16e0efc796277dfa8ebb09a3cd05b8db",
47
+ "gitHead": "8213c0dd51f1eb5b0c03d01a7cedb1379b97930b",
48
48
  "peerDependencies": {
49
49
  "aws-cdk": "^2.206.0",
50
50
  "aws-cdk-lib": "^2.206.0",