@alliander-opensource/aws-jwt-sts 0.2.9 → 0.3.2

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/dist/index.d.ts CHANGED
@@ -68,6 +68,18 @@ export interface AwsJwtStsProps {
68
68
  * Optional custom name for the CloudWatch Alarm monitoring Key Rotation Lambda failures, default: sts-key_rotate_errors_lambda-alarm
69
69
  */
70
70
  readonly alarmNameKeyRotationLambdaFailed?: string;
71
+ /**
72
+ * current kms key name
73
+ */
74
+ readonly currentKeyName?: string;
75
+ /**
76
+ * previous kms key name
77
+ */
78
+ readonly previousKeyName?: string;
79
+ /**
80
+ * pending kms key name
81
+ */
82
+ readonly pendingKeyName?: string;
71
83
  }
72
84
  export declare class AwsJwtSts extends Construct {
73
85
  /**
package/dist/index.js CHANGED
@@ -37,7 +37,7 @@ var wafUsage;
37
37
  /* eslint-disable no-new */
38
38
  class AwsJwtSts extends constructs_1.Construct {
39
39
  constructor(app, id, props) {
40
- var _a, _b, _c, _d;
40
+ var _a, _b, _c, _d, _e, _f, _g, _h;
41
41
  super(app, id);
42
42
  /** ---------------------- Custom domain thingies ----------------------- */
43
43
  let distributionDomainNames = [];
@@ -85,6 +85,7 @@ class AwsJwtSts extends constructs_1.Construct {
85
85
  domainNames: distributionDomainNames,
86
86
  comment: 'Discovery endpoint for OIDC',
87
87
  certificate: oidcCertificate,
88
+ defaultRootObject: 'index.html',
88
89
  defaultBehavior: {
89
90
  origin: new cloudfrontOrigins.S3Origin(oidcbucket, { originAccessIdentity: cloudfrontOAI }),
90
91
  compress: true,
@@ -105,7 +106,10 @@ class AwsJwtSts extends constructs_1.Construct {
105
106
  architecture,
106
107
  environment: {
107
108
  S3_BUCKET: oidcbucket.bucketName,
108
- ISSUER: issuer
109
+ ISSUER: issuer,
110
+ CURRENT_KEY: 'alias/' + ((_a = props.currentKeyName) !== null && _a !== void 0 ? _a : 'sts/CURRENT'),
111
+ PREVIOUS_KEY: 'alias/' + ((_b = props.previousKeyName) !== null && _b !== void 0 ? _b : 'sts/PREVIOUS'),
112
+ PENDING_KEY: 'alias/' + ((_c = props.pendingKeyName) !== null && _c !== void 0 ? _c : 'sts/PENDING')
109
113
  }
110
114
  });
111
115
  const signRole = new iam.Role(this, 'signRole', {
@@ -119,7 +123,8 @@ class AwsJwtSts extends constructs_1.Construct {
119
123
  architecture,
120
124
  environment: {
121
125
  ISSUER: issuer,
122
- DEFAULT_AUDIENCE: props.defaultAudience
126
+ DEFAULT_AUDIENCE: props.defaultAudience,
127
+ CURRENT_KEY: 'alias/' + ((_d = props.currentKeyName) !== null && _d !== void 0 ? _d : 'sts/CURRENT')
123
128
  }
124
129
  });
125
130
  /** ------------------------ SNS Topic ------------------------- */
@@ -405,7 +410,7 @@ class AwsJwtSts extends constructs_1.Construct {
405
410
  }
406
411
  /** ---------------------- Cloudwatch ----------------------- */
407
412
  new cloudwatch.Alarm(this, 'StepFunctionError', {
408
- alarmName: (_a = props.alarmNameKeyRotationStepFunctionFailed) !== null && _a !== void 0 ? _a : 'sts-key_rotate_sfn-alarm',
413
+ alarmName: (_e = props.alarmNameKeyRotationStepFunctionFailed) !== null && _e !== void 0 ? _e : 'sts-key_rotate_sfn-alarm',
409
414
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
410
415
  threshold: 1,
411
416
  evaluationPeriods: 1,
@@ -414,7 +419,7 @@ class AwsJwtSts extends constructs_1.Construct {
414
419
  treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING
415
420
  });
416
421
  new cloudwatch.Alarm(this, 'ApiGateway5XXAlarm', {
417
- alarmName: (_b = props.alarmNameApiGateway5xx) !== null && _b !== void 0 ? _b : 'sts-5xx_api_gw-alarm',
422
+ alarmName: (_f = props.alarmNameApiGateway5xx) !== null && _f !== void 0 ? _f : 'sts-5xx_api_gw-alarm',
418
423
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
419
424
  threshold: 1,
420
425
  evaluationPeriods: 1,
@@ -429,7 +434,7 @@ class AwsJwtSts extends constructs_1.Construct {
429
434
  period: cdk.Duration.minutes(1)
430
435
  });
431
436
  new cloudwatch.Alarm(this, 'LambdaSignError', {
432
- alarmName: (_c = props.alarmNameSignLambdaFailed) !== null && _c !== void 0 ? _c : 'sts-sign_errors_lambda-alarm',
437
+ alarmName: (_g = props.alarmNameSignLambdaFailed) !== null && _g !== void 0 ? _g : 'sts-sign_errors_lambda-alarm',
433
438
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
434
439
  threshold: 1,
435
440
  evaluationPeriods: 1,
@@ -438,7 +443,7 @@ class AwsJwtSts extends constructs_1.Construct {
438
443
  treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING
439
444
  });
440
445
  new cloudwatch.Alarm(this, 'LambdaRotateError', {
441
- alarmName: (_d = props.alarmNameKeyRotationLambdaFailed) !== null && _d !== void 0 ? _d : 'sts-key_rotate_errors_lambda-alarm',
446
+ alarmName: (_h = props.alarmNameKeyRotationLambdaFailed) !== null && _h !== void 0 ? _h : 'sts-key_rotate_errors_lambda-alarm',
442
447
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
443
448
  threshold: 1,
444
449
  evaluationPeriods: 1,
@@ -449,4 +454,4 @@ class AwsJwtSts extends constructs_1.Construct {
449
454
  }
450
455
  }
451
456
  exports.AwsJwtSts = AwsJwtSts;
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxFQUFFO0FBQ0Ysc0NBQXNDOzs7QUFFdEMsbUNBQW1DO0FBQ25DLG1DQUFrQztBQUNsQyxpREFBZ0Q7QUFDaEQscURBQW9EO0FBQ3BELDZEQUE0RDtBQUM1RCwyQ0FBMEM7QUFDMUMsaURBQTJFO0FBQzNFLHlDQUF3QztBQUN4QywrQ0FBcUQ7QUFDckQseURBQXdEO0FBQ3hELHdFQUF1RTtBQUN2RSxpREFBZ0Q7QUFDaEQsMERBQXlEO0FBQ3pELDBEQUF5RDtBQUN6RCxtREFBa0Q7QUFDbEQsa0VBQWlFO0FBQ2pFLHlEQUF3RDtBQUN4RCwrREFBK0Q7QUFDL0QsK0NBQThDO0FBQzlDLDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMseURBQXdEO0FBQ3hELCtEQUE2RDtBQUM3RCw4REFBNkQ7QUFDN0QsMkNBQXNDO0FBSXRDLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQixpRUFBaUIsQ0FBQTtJQUNqQiwrREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsUUFBUSx3QkFBUixRQUFRLFFBR25CO0FBZ0ZELDJCQUEyQjtBQUMzQixNQUFhLFNBQVUsU0FBUSxzQkFBUztJQU10QyxZQUFhLEdBQWMsRUFBRSxFQUFVLEVBQUUsS0FBcUI7O1FBQzVELEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFZCw0RUFBNEU7UUFFNUUsSUFBSSx1QkFBdUIsR0FBYSxFQUFFLENBQUE7UUFDMUMsSUFBSSxlQUF5QyxDQUFBO1FBQzdDLElBQUksZ0JBQTBDLENBQUE7UUFDOUMsSUFBSSxVQUFtQyxDQUFBO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUN4RSxNQUFN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T0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQyxDQUFDLENBQUE7UUFFRixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzVDLFNBQVMsRUFBRSxNQUFBLEtBQUssQ0FBQyx5QkFBeUIsbUNBQUksOEJBQThCO1lBQzVFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsU0FBUyxFQUFFLENBQUM7WUFDWixpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGdCQUFnQixFQUFFLG9CQUFvQjtZQUN0QyxnQkFBZ0IsRUFBRSxpQ0FBZ0IsQ0FBQyxhQUFhO1NBQ2pELENBQUMsQ0FBQTtRQUVGLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUMsU0FBUyxFQUFFLE1BQUEsS0FBSyxDQUFDLGdDQUFnQyxtQ0FBSSxvQ0FBb0M7WUFDekYsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUN4RSxTQUFTLEVBQUUsQ0FBQztZQUNaLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsZ0JBQWdCLEVBQUUsNEJBQTRCO1lBQzlDLGdCQUFnQixFQUFFLGlDQUFnQixDQUFDLGFBQWE7U0FDakQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBcGVELDhCQW9lQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYidcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJ1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJ1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSdcbmltcG9ydCB7IE9yZ2FuaXphdGlvblByaW5jaXBhbCwgUG9saWN5RG9jdW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJ1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJ1xuaW1wb3J0IHsgQnVja2V0RW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMydcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250T3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJ1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnXG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cydcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJ1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1MydcbmltcG9ydCAqIGFzIHJvdXRlNTN0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHMnXG5pbXBvcnQgKiBhcyBhcGlnYXRld2F5IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5J1xuaW1wb3J0IHsgTWV0aG9kTG9nZ2luZ0xldmVsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknXG5pbXBvcnQgKiBhcyB3YWZ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtd2FmdjInXG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucydcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJ1xuaW1wb3J0IHsgVHJlYXRNaXNzaW5nRGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJ1xuaW1wb3J0ICogYXMgbGFtYmRhTm9kZWpzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJ1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cydcbmltcG9ydCB7IElDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInXG5pbXBvcnQgeyBJSG9zdGVkWm9uZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJ1xuXG5leHBvcnQgZW51bSB3YWZVc2FnZSB7XG4gIENvbnN0cnVjdFByb3ZpZGVkLFxuICBQcm92aWRlV2ViQWNsQXJuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzSnd0U3RzUHJvcHMge1xuICAvKipcbiAgICogZGVmYXVsdEF1ZGllbmNlIHdoaWNoIGlzIHVzZWQgaW4gZGUgSldUJ3NcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdWRpZW5jZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0ZWRab25lSWQgb2YgdGhlIGRvbWFpbiB1c2VkIGZvciBob3N0aW5nIHRoZSBzdHMgZnVuY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmVJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgaG9zdGVkWm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAqIE9wdGlvbmFsIHN1YmRvbWFpbiBuYW1lIG9mIG9pZGMgZGlzY292ZXJ5LCBkZWZhdWx0OiBvaWRjLlxuICAqL1xuICByZWFkb25seSBvaWRjU3ViZG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAqIE9wdGlvbmFsIHN1YmRvbWFpbiBuYW1lIG9mIHRoZSB0b2tlbiBhcGkgKG9uIGFwaSBndyksIGRlZmF1bHQ6IHRva2VuLlxuICAqL1xuICByZWFkb25seSB0b2tlblN1YmRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgd2FmIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBBUEkgR1dcbiAgICpcbiAgICogTm9uZTogbm8gd2FmIGlzIHVzZWRcbiAgICogQ29uc3RydWN0UHJvdmlkZWQ6IHRoZSBjb25zdHJ1Y3Qgd2lsbCBkZXBsb3kgYSB3YWZBY2wgd2l0aCBvcGluaW9uYXRlZCBydWxlc1xuICAgKiBQcm92aWRlV2ViQWNsQXJuOiBwcm92aWRlIHlvdXIgb3duIGFyblxuICAgKi9cbiAgcmVhZG9ubHkgYXBpR3dXYWY/OiB3YWZVc2FnZTtcblxuICAvKipcbiAgICogQXJuIG9mIHRoZSB3YWYgd2ViQWNsIHJ1bGUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBBUEkgR1dcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGFwaUd3V2FmV2ViQWNsQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIEFXUyBPcmdhbml6YXRpb24gMC14eHh4XG4gICAqXG4gICAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQ1BVIEFyY2hpdGVjdHVyZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogbGFtYmRhLkFyY2hpdGVjdHVyZVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBib29sZWFuIHRvIHNwZWNpZnkgaWYga2V5IHJvdGF0aW9uIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gY3JlYXRpb24gb2YgdGhlIHN0YWNrLCBkZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUtleVJvdGF0ZU9uQ3JlYXRlPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBTdGVwIEZ1bmN0aW9uIGZhaWx1cmVzLCBkZWZhdWx0OiBzdHMta2V5X3JvdGF0ZV9zZm4tYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZUtleVJvdGF0aW9uU3RlcEZ1bmN0aW9uRmFpbGVkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBuYW1lIGZvciB0aGUgQ2xvdWRXYXRjaCBBbGFybSBtb25pdG9yaW5nIDV4eCBlcnJvcnMgb24gdGhlIEFQSSBHYXRld2F5LCBkZWZhdWx0OiBzdHMtNXh4X2FwaV9ndy1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lQXBpR2F0ZXdheTV4eD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBTaWduIExhbWJkYSBmYWlsdXJlcywgZGVmYXVsdDogc3RzLXNpZ25fZXJyb3JzX2xhbWJkYS1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lU2lnbkxhbWJkYUZhaWxlZD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyBLZXkgUm90YXRpb24gTGFtYmRhIGZhaWx1cmVzLCBkZWZhdWx0OiBzdHMta2V5X3JvdGF0ZV9lcnJvcnNfbGFtYmRhLWFsYXJtXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWVLZXlSb3RhdGlvbkxhbWJkYUZhaWxlZD86IHN0cmluZ1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cbmV4cG9ydCBjbGFzcyBBd3NKd3RTdHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogU05TIHRvcGljIHVzZWQgdG8gcHVibGlzaCBlcnJvcnMgZnJvbSB0aGUgU3RlcCBGdW5jdGlvbiByb3RhdGlvbiBmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbGVkUm90YXRpb25Ub3BpYzogc25zLlRvcGljXG5cbiAgY29uc3RydWN0b3IgKGFwcDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzSnd0U3RzUHJvcHMpIHtcbiAgICBzdXBlcihhcHAsIGlkKVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ3VzdG9tIGRvbWFpbiB0aGluZ2llcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgbGV0IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgbGV0IG9pZGNDZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkXG4gICAgbGV0IHRva2VuQ2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSB8IHVuZGVmaW5lZFxuICAgIGNvbnN0IG9pZGNTdWJkb21haW4gPSBwcm9wcy5vaWRjU3ViZG9tYWluID8gcHJvcHMub2lkY1N1YmRvbWFpbiA6ICdvaWRjJ1xuICAgIGNvbnN0IHRva2VuU3ViZG9tYWluID0gcHJvcHMudG9rZW5TdWJkb21haW4gPyBwcm9wcy50b2tlblN1YmRvbWFpbiA6ICd0b2tlbidcbiAgICBjb25zdCBhcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPyBwcm9wcy5hcmNoaXRlY3R1cmUgOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgIGxldCBvaWRjRG9tYWluTmFtZSA9ICcnXG4gICAgbGV0IHRva2VuRG9tYWluTmFtZSA9ICcnXG5cbiAgICBjb25zdCB1c2VDdXN0b21Eb21haW4gPSBwcm9wcy5ob3N0ZWRab25lSWQgJiYgcHJvcHMuaG9zdGVkWm9uZU5hbWVcblxuICAgIGlmICh1c2VDdXN0b21Eb21haW4pIHtcbiAgICAgIG9pZGNEb21haW5OYW1lID0gb2lkY1N1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG4gICAgICB0b2tlbkRvbWFpbk5hbWUgPSB0b2tlblN1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG5cbiAgICAgIGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzID0gW29pZGNEb21haW5OYW1lXVxuXG4gICAgICBob3N0ZWRab25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ2hvc3RlZFpvbmUnLFxuICAgICAgICB7XG4gICAgICAgICAgem9uZU5hbWU6IHByb3BzLmhvc3RlZFpvbmVOYW1lISxcbiAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCFcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICBvaWRjQ2VydGlmaWNhdGUgPSBuZXcgYWNtLkRuc1ZhbGlkYXRlZENlcnRpZmljYXRlKHRoaXMsICdDcm9zc1JlZ2lvbkNlcnRpZmljYXRlJywge1xuICAgICAgICBkb21haW5OYW1lOiBvaWRjRG9tYWluTmFtZSxcbiAgICAgICAgaG9zdGVkWm9uZSxcbiAgICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJ1xuICAgICAgfSlcblxuICAgICAgdG9rZW5DZXJ0aWZpY2F0ZSA9IG5ldyBhY20uQ2VydGlmaWNhdGUodGhpcywgJ3Rva2VuQ2VydGlmaWNhdGUnLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRva2VuRG9tYWluTmFtZSxcbiAgICAgICAgdmFsaWRhdGlvbjogYWNtLkNlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKGhvc3RlZFpvbmUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFMzIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIC8vIENyZWF0ZSBidWNrZXQgd2hlcmUgb2lkYyBpbmZvcm1hdGlvbiBjYW4gYmUgc3RvcmVkXG4gICAgY29uc3Qgb2lkY2J1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ29pZGNidWNrZXQnLCB7XG4gICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMXG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tIENsb3VkZnJvbnQgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBjbG91ZGZyb250T0FJID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ2Nsb3VkZnJvbnQtT0FJJywge1xuICAgICAgY29tbWVudDogJ09BSSBmb3Igb2lkYydcbiAgICB9KVxuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsICdvaWRjRGlzdHJpYnV0aW9uJywge1xuICAgICAgZG9tYWluTmFtZXM6IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzLFxuICAgICAgY29tbWVudDogJ0Rpc2NvdmVyeSBlbmRwb2ludCBmb3IgT0lEQycsXG4gICAgICBjZXJ0aWZpY2F0ZTogb2lkY0NlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogbmV3IGNsb3VkZnJvbnRPcmlnaW5zLlMzT3JpZ2luKG9pZGNidWNrZXQsIHsgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IGNsb3VkZnJvbnRPQUkgfSksXG4gICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICBhbGxvd2VkTWV0aG9kczogY2xvdWRmcm9udC5BbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQU1xuICAgICAgfVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIExhbWJkYSBIYW5kbGVycyBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgY29uc3QgaXNzdWVyID0gdXNlQ3VzdG9tRG9tYWluID8gJ2h0dHBzOi8vJyArIG9pZGNEb21haW5OYW1lIDogJ2h0dHBzOi8vJyArIGRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lXG5cbiAgICBjb25zdCByb3RhdGVLZXlzUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAncm90YXRlS2V5c1JvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXVxuICAgIH0pXG4gICAgY29uc3Qgcm90YXRlS2V5cyA9IG5ldyBsYW1iZGFOb2RlanMuTm9kZWpzRnVuY3Rpb24odGhpcywgJ2tleXJvdGF0ZScsIHtcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICByb2xlOiByb3RhdGVLZXlzUm9sZSxcbiAgICAgIGFyY2hpdGVjdHVyZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFMzX0JVQ0tFVDogb2lkY2J1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBJU1NVRVI6IGlzc3VlclxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBzaWduUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnc2lnblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXVxuICAgIH0pXG4gICAgY29uc3Qgc2lnbiA9IG5ldyBsYW1iZGFOb2RlanMuTm9kZWpzRnVuY3Rpb24odGhpcywgJ3NpZ24nLCB7XG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgcm9sZTogc2lnblJvbGUsXG4gICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBJU1NVRVI6IGlzc3VlcixcbiAgICAgICAgREVGQVVMVF9BVURJRU5DRTogcHJvcHMuZGVmYXVsdEF1ZGllbmNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU05TIFRvcGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIHRoaXMuZmFpbGVkUm90YXRpb25Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ3N0cycpXG4gICAgY29uc3Qgc25zRmFpbCA9IG5ldyB0YXNrcy5TbnNQdWJsaXNoKHRoaXMsICdzbnNGYWlsZWQnLCB7XG4gICAgICB0b3BpYzogdGhpcy5mYWlsZWRSb3RhdGlvblRvcGljLFxuICAgICAgc3ViamVjdDogJ1NUUyBLZXlSb3RhdGUgc3RlcCBmdW5jdGlvbiBleGVjdXRpb24gZmFpbGVkJyxcbiAgICAgIG1lc3NhZ2U6IHNmbi5UYXNrSW5wdXQuZnJvbUpzb25QYXRoQXQoJyQnKVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIFN0ZXAgZnVuY3Rpb25zIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBkZWxldGVQcmV2aW91c1N0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdkZWxldGUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdkZWxldGVQcmV2aW91cydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgbW92ZVByZXZpb3VzU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdtb3ZlUHJldmlvdXMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IG1vdmVDdXJyZW50U3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgQ3VycmVudCcsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiByb3RhdGVLZXlzLFxuICAgICAgcGF5bG9hZDogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgc3RlcDogJ21vdmVDdXJyZW50J1xuICAgICAgfSksXG4gICAgICBvdXRwdXRQYXRoOiAnJC5QYXlsb2FkJ1xuICAgIH0pXG5cbiAgICBjb25zdCBjcmVhdGVQZW5kaW5nU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ2NyZWF0ZSBQZW5kaW5nJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnY3JlYXRlUGVuZGluZydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnZ2VuZXJhdGUgYXJ0aWZhY3RzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnZ2VuZXJhdGVBcnRpZmFjdHMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IGpvYkZhaWxlZCA9IG5ldyBzZm4uRmFpbCh0aGlzLCAnRmFpbGVkJywge1xuICAgICAgY2F1c2U6ICdBV1MgQmF0Y2ggSm9iIEZhaWxlZCcsXG4gICAgICBlcnJvcjogJ0Rlc2NyaWJlSm9iIHJldHVybmVkIEZBSUxFRCdcbiAgICB9KVxuXG4gICAgY29uc3Qgam9iU3VjY2VzcyA9IG5ldyBzZm4uU3VjY2VlZCh0aGlzLCAnU3VjY2VzcyEnKVxuXG4gICAgZGVsZXRlUHJldmlvdXNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgbW92ZVByZXZpb3VzU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIG1vdmVDdXJyZW50U3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIGNyZWF0ZVBlbmRpbmdTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG5cbiAgICAvLyBDcmVhdGUgY2hhaW5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gZGVsZXRlUHJldmlvdXNTdGVwXG4gICAgICAubmV4dChtb3ZlUHJldmlvdXNTdGVwKVxuICAgICAgLm5leHQobW92ZUN1cnJlbnRTdGVwKVxuICAgICAgLm5leHQoY3JlYXRlUGVuZGluZ1N0ZXApXG4gICAgICAubmV4dChnZW5lcmF0ZUFydGlmYWN0c1N0ZXApXG4gICAgICAubmV4dChqb2JTdWNjZXNzKVxuXG4gICAgc25zRmFpbC5uZXh0KGpvYkZhaWxlZClcblxuICAgIC8vIENyZWF0ZSBzdGF0ZSBtYWNoaW5lXG4gICAgY29uc3Qgcm90YXRlS2V5c01hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnUm90YXRlS2V5cycsIHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShcbiAgICAgICAgZGVmaW5pdGlvblxuICAgICAgKSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpXG4gICAgfSlcblxuICAgIHJvdGF0ZUtleXMuZ3JhbnRJbnZva2Uocm90YXRlS2V5c01hY2hpbmUucm9sZSlcbiAgICBvaWRjYnVja2V0LmdyYW50UmVhZFdyaXRlKHJvdGF0ZUtleXMpXG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTaWduID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgIHN0YXRlbWVudFNpZ24uYWRkQWN0aW9ucygna21zOionKVxuICAgIHN0YXRlbWVudFNpZ24uYWRkUmVzb3VyY2VzKCcqJylcbiAgICBjb25zdCBzaWduUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdTaWduUG9saWN5Jywge1xuICAgICAgc3RhdGVtZW50czogW3N0YXRlbWVudFNpZ25dXG4gICAgfSlcbiAgICBzaWduUm9sZS5hZGRNYW5hZ2VkUG9saWN5KHNpZ25Qb2xpY3kpXG5cbiAgICBjb25zdCBzdGF0ZW1lbnRSb3RhdGVLZXlzID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgIHN0YXRlbWVudFJvdGF0ZUtleXMuYWRkQWN0aW9ucygna21zOionKVxuICAgIHN0YXRlbWVudFJvdGF0ZUtleXMuYWRkUmVzb3VyY2VzKCcqJylcbiAgICBjb25zdCByb3RhdGVLZXlzUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdSb3RhdGVLZXlzUG9saWN5Jywge1xuICAgICAgc3RhdGVtZW50czogW3N0YXRlbWVudFJvdGF0ZUtleXNdXG4gICAgfSlcbiAgICByb3RhdGVLZXlzUm9sZS5hZGRNYW5hZ2VkUG9saWN5KHJvdGF0ZUtleXNQb2xpY3kpXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50cyBSdWxlIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAvLyBSdW4gZXZlcnkgMyBtb250aHMgYXQgOCBQTSBVVENcbiAgICBjb25zdCBzY2hlZHVsZWRSb3RhdGVSdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdzY2hlZHVsZWRSb3RhdGVSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZS5leHByZXNzaW9uKCdjcm9uKDAgMjAgMSAqLzMgPyAqKScpXG4gICAgfSlcbiAgICBzY2hlZHVsZWRSb3RhdGVSdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUocm90YXRlS2V5c01hY2hpbmUpKVxuXG4gICAgLy8gQ3JlYXRlIHN0YXRlIG1hY2hpbmUgYW5kIHRyaWdnZXIgdG8gcG9wdWxhdGUgaW5pdGlhbCBrZXlzXG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlS2V5Um90YXRlT25DcmVhdGUpIHtcbiAgICAgIGNvbnN0IHJvdGF0ZU9uY2UgPSBuZXcgdGFza3MuU3RlcEZ1bmN0aW9uc1N0YXJ0RXhlY3V0aW9uKHRoaXMsICdyb3RhdGVPbmNlJywge1xuICAgICAgICBzdGF0ZU1hY2hpbmU6IHJvdGF0ZUtleXNNYWNoaW5lLFxuICAgICAgICBpbnRlZ3JhdGlvblBhdHRlcm46IHNmbi5JbnRlZ3JhdGlvblBhdHRlcm4uUlVOX0pPQlxuICAgICAgfSlcblxuICAgICAgY29uc3Qgcm90YXRlVHdpY2UgPSBuZXcgdGFza3MuU3RlcEZ1bmN0aW9uc1N0YXJ0RXhlY3V0aW9uKHRoaXMsICdyb3RhdGVUd2ljZScsIHtcbiAgICAgICAgc3RhdGVNYWNoaW5lOiByb3RhdGVLZXlzTWFjaGluZSxcbiAgICAgICAgaW50ZWdyYXRpb25QYXR0ZXJuOiBzZm4uSW50ZWdyYXRpb25QYXR0ZXJuLlJVTl9KT0JcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHBvcHVsYXRlS2V5cyA9IG5ldyBzZm4uU3RhdGVNYWNoaW5lKHRoaXMsICdwb3B1bGF0ZUtleXMnLCB7XG4gICAgICAgIGRlZmluaXRpb25Cb2R5OiBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShcbiAgICAgICAgICByb3RhdGVPbmNlLm5leHQocm90YXRlVHdpY2UpXG4gICAgICAgICksXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKVxuICAgICAgfSlcblxuICAgICAgY29uc3QgaW5pdGlhbFJ1blJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ2luaXRpYWxSdW5SdWxlJywge1xuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBzb3VyY2U6IFsnYXdzLmNsb3VkZm9ybWF0aW9uJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbY2RrLlN0YWNrLm9mKHRoaXMpLnN0YWNrSWRdLFxuICAgICAgICAgIGRldGFpbFR5cGU6IFsnQ2xvdWRGb3JtYXRpb24gU3RhY2sgU3RhdHVzIENoYW5nZSddLFxuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgJ3N0YXR1cy1kZXRhaWxzJzoge1xuICAgICAgICAgICAgICBzdGF0dXM6IFsnQ1JFQVRFX0NPTVBMRVRFJ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGluaXRpYWxSdW5SdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUocG9wdWxhdGVLZXlzKSlcbiAgICB9XG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBUEkgR2F0ZXdheSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgLy8gb25seSBzZXQgcG9saWN5IHdoZW4gb3JnSWQgaXMgc2V0XG4gICAgbGV0IGFwaVBvbGljeTogUG9saWN5RG9jdW1lbnQgfCB1bmRlZmluZWRcbiAgICBpZiAocHJvcHMub3JnSWQpIHtcbiAgICAgIGFwaVBvbGljeSA9IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaTpJbnZva2UnXSxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbXG4gICAgICAgICAgICAgIG5ldyBPcmdhbml6YXRpb25QcmluY2lwYWwocHJvcHMub3JnSWQpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBsb2dHcm91cCA9IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdBUElHYXRld2F5QWNjZXNzTG9ncycsIHtcbiAgICAgIHJldGVudGlvbjogN1xuICAgIH0pXG5cbiAgICAvLyBDcmVhdGUgQVBJXG4gICAgY29uc3QgYXBpID0gbmV3IGFwaWdhdGV3YXkuTGFtYmRhUmVzdEFwaSh0aGlzLCAnandrLXN0cy1hcGknLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NUUyBUb2tlbiBBUEkgR2F0ZXdheScsXG4gICAgICBoYW5kbGVyOiBzaWduLFxuICAgICAgZGVmYXVsdE1ldGhvZE9wdGlvbnM6IHtcbiAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IGFwaWdhdGV3YXkuQXV0aG9yaXphdGlvblR5cGUuSUFNXG4gICAgICB9LFxuICAgICAgZW5kcG9pbnRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHR5cGVzOiBbYXBpZ2F0ZXdheS5FbmRwb2ludFR5cGUuUkVHSU9OQUxdXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBhcGlQb2xpY3ksXG4gICAgICBkZXBsb3lPcHRpb25zOiB7XG4gICAgICAgIGxvZ2dpbmdMZXZlbDogTWV0aG9kTG9nZ2luZ0xldmVsLklORk8sXG4gICAgICAgIGFjY2Vzc0xvZ0Rlc3RpbmF0aW9uOiBuZXcgYXBpZ2F0ZXdheS5Mb2dHcm91cExvZ0Rlc3RpbmF0aW9uKGxvZ0dyb3VwKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLSBSb3V0ZTUzIERlZmluaXRpb24gZm9yIGN1c3RvbSBkb21haW4gLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgaWYgKHVzZUN1c3RvbURvbWFpbiAmJiBob3N0ZWRab25lKSB7XG4gICAgICBhcGkuYWRkRG9tYWluTmFtZSgnYXBpQ3VzdG9tRG9tYWluTmFtZScsIHtcbiAgICAgICAgZG9tYWluTmFtZTogdG9rZW5Eb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogdG9rZW5DZXJ0aWZpY2F0ZSFcbiAgICAgIH0pXG5cbiAgICAgIC8vIEFkZCBBIHJlY29yZCBmb3IgY2xvdWRmcm9udCBkaXN0cmlidXRpb25cblxuICAgICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAnb2lkY1JlY29yZCcsIHtcbiAgICAgICAgcmVjb3JkTmFtZTogb2lkY0RvbWFpbk5hbWUsXG4gICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyByb3V0ZTUzdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KGRpc3RyaWJ1dGlvbikpXG4gICAgICB9KVxuXG4gICAgICBuZXcgcm91dGU1My5BUmVjb3JkKHRoaXMsICd0b2tlblJlY29yZCcsIHtcbiAgICAgICAgcmVjb3JkTmFtZTogdG9rZW5Eb21haW5OYW1lLFxuICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgcm91dGU1M3RhcmdldHMuQXBpR2F0ZXdheShhcGkpKVxuICAgICAgfSlcblxuICAgICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3Rva2VuRW5kcG9pbnQnLCB7XG4gICAgICAgIHZhbHVlOiAnaHR0cHM6Ly8nICsgdG9rZW5Eb21haW5OYW1lICsgJy90b2tlbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSB0b2tlbiBlbmRwb2ludCcsXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0tdG9rZW5FbmRwb2ludGBcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICd0b2tlbkVuZHBvaW50Jywge1xuICAgICAgICB2YWx1ZTogYXBpLnVybCArICd0b2tlbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSB0b2tlbiBlbmRwb2ludCcsXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0tdG9rZW5FbmRwb2ludGBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2lzc3VlcicsIHtcbiAgICAgIHZhbHVlOiBpc3N1ZXIsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VybCBvZiB0aGUgaXNzdWVyJyxcbiAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0taXNzdWVyYFxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBXQUYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGlmIChwcm9wcy5hcGlHd1dhZiA9PT0gd2FmVXNhZ2UuQ29uc3RydWN0UHJvdmlkZWQpIHtcbiAgICAgIC8vIEFQSSBnYXRld2F5IFdBRiBBQ0wgYW5kIHJ1bGVzXG4gICAgICBjb25zdCBBUElHYXRld2F5V2ViQUNMID0gbmV3IHdhZnYyLkNmbldlYkFDTCh0aGlzLCAnQVBJR2F0ZXdheVdlYkFDTCcsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIFdlYkFDTCBmb3IgQXV0aCBBUGkgR2F0ZXdheScsXG4gICAgICAgIHNjb3BlOiAnUkVHSU9OQUwnLFxuICAgICAgICBkZWZhdWx0QWN0aW9uOiB7IGFsbG93OiB7fSB9LFxuICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgbWV0cmljTmFtZTogJ0FQSVdlYkFDTCcsXG4gICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHtcbiAgICAgICAgICAgICAgbm9uZToge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiB7XG4gICAgICAgICAgICAgIG5vbmU6IHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdhcGktZ3ctQXV0aEFQSUdlb0xvY2F0aW9uJyxcbiAgICAgICAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgICAgICAgYWN0aW9uOiB7IGJsb2NrOiB7fSB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAnQXV0aEFQSUdlb0xvY2F0aW9uJyxcbiAgICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlczogWydCWScsICdDTicsICdJUicsICdSVScsICdTWScsICdLUCddXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdhcGktZ3ctcmF0ZUxpbWl0UnVsZScsXG4gICAgICAgICAgICBwcmlvcml0eTogNCxcbiAgICAgICAgICAgIGFjdGlvbjogeyBibG9jazoge30gfSxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ3JhdGVMaW1pdFJ1bGUnLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUtleVR5cGU6ICdJUCcsXG4gICAgICAgICAgICAgICAgbGltaXQ6IDEwMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuXG4gICAgICAvLyBXZWIgQUNMIEFzc29jaWF0aW9uXG4gICAgICBuZXcgd2FmdjIuQ2ZuV2ViQUNMQXNzb2NpYXRpb24odGhpcywgJ0FQSUdhdGV3YXlXZWJBQ0xBc3NvY2lhdGlvbicsIHtcbiAgICAgICAgd2ViQWNsQXJuOiBBUElHYXRld2F5V2ViQUNMLmF0dHJBcm4sXG4gICAgICAgIHJlc291cmNlQXJuOiBhcGkuZGVwbG95bWVudFN0YWdlLnN0YWdlQXJuXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAocHJvcHMuYXBpR3dXYWYgPT09IHdhZlVzYWdlLlByb3ZpZGVXZWJBY2xBcm4gJiYgcHJvcHMuYXBpR3dXYWZXZWJBY2xBcm4pIHtcbiAgICAgIC8vIFdlYiBBQ0wgQXNzb2NpYXRpb25cbiAgICAgIG5ldyB3YWZ2Mi5DZm5XZWJBQ0xBc3NvY2lhdGlvbih0aGlzLCAnQVBJR2F0ZXdheVdlYkFDTEFzc29jaWF0aW9uJywge1xuICAgICAgICB3ZWJBY2xBcm46IHByb3BzLmFwaUd3V2FmV2ViQWNsQXJuLFxuICAgICAgICByZXNvdXJjZUFybjogYXBpLmRlcGxveW1lbnRTdGFnZS5zdGFnZUFyblxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDbG91ZHdhdGNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnU3RlcEZ1bmN0aW9uRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUtleVJvdGF0aW9uU3RlcEZ1bmN0aW9uRmFpbGVkID8/ICdzdHMta2V5X3JvdGF0ZV9zZm4tYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IHJvdGF0ZUtleXNNYWNoaW5lLm1ldHJpY0ZhaWxlZCgpLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0tleSBSb3RhdGlvbiBGYWlsZWQnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdBcGlHYXRld2F5NVhYQWxhcm0nLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUFwaUdhdGV3YXk1eHggPz8gJ3N0cy01eHhfYXBpX2d3LWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiBhcGkubWV0cmljU2VydmVyRXJyb3IoKSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICc1eHggU1RTIEFQSSBnYXRld2F5IGZhaWx1cmVzJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG5cbiAgICBjb25zdCBzaWduRXJyb3JzID0gc2lnbi5tZXRyaWNFcnJvcnMoe1xuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcygxKVxuICAgIH0pXG5cbiAgICBjb25zdCByb3RhdGVFcnJvcnMgPSByb3RhdGVLZXlzLm1ldHJpY0Vycm9ycyh7XG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDEpXG4gICAgfSlcblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdMYW1iZGFTaWduRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZVNpZ25MYW1iZGFGYWlsZWQgPz8gJ3N0cy1zaWduX2Vycm9yc19sYW1iZGEtYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IHNpZ25FcnJvcnMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnU2lnbiBMYW1iZGEgRmFpbGVkJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnTGFtYmRhUm90YXRlRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUtleVJvdGF0aW9uTGFtYmRhRmFpbGVkID8/ICdzdHMta2V5X3JvdGF0ZV9lcnJvcnNfbGFtYmRhLWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiByb3RhdGVFcnJvcnMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnS2V5IFJvdGF0aW9uIExhbWJkYSBGYWlsZWQnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcbiAgfVxufVxuIl19
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxFQUFFO0FBQ0Ysc0NBQXNDOzs7QUFFdEMsbUNBQW1DO0FBQ25DLG1DQUFrQztBQUNsQyxpREFBZ0Q7QUFDaEQscURBQW9EO0FBQ3BELDZEQUE0RDtBQUM1RCwyQ0FBMEM7QUFDMUMsaURBQTJFO0FBQzNFLHlDQUF3QztBQUN4QywrQ0FBcUQ7QUFDckQseURBQXdEO0FBQ3hELHdFQUF1RTtBQUN2RSxpREFBZ0Q7QUFDaEQsMERBQXlEO0FBQ3pELDBEQUF5RDtBQUN6RCxtREFBa0Q7QUFDbEQsa0VBQWlFO0FBQ2pFLHlEQUF3RDtBQUN4RCwrREFBK0Q7QUFDL0QsK0NBQThDO0FBQzlDLDJDQUEwQztBQUMxQyw2Q0FBNEM7QUFDNUMseURBQXdEO0FBQ3hELCtEQUE2RDtBQUM3RCw4REFBNkQ7QUFDN0QsMkNBQXNDO0FBSXRDLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQixpRUFBaUIsQ0FBQTtJQUNqQiwrREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsUUFBUSx3QkFBUixRQUFRLFFBR25CO0FBK0ZELDJCQUEyQjtBQUMzQixNQUFhLFNBQVUsU0FBUSxzQkFBUztJQU10QyxZQUFhLEdBQWMsRUFBRSxFQUFVLEVBQUUsS0FBcUI7O1FBQzVELEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFZCw0RUFBNEU7UUFFNUUsSUFBSSx1QkFBdUIsR0FBYSxFQUFFLENBQUE7UUFDMUMsSUFBSSxlQUF5QyxDQUFBO1FBQzdDLElBQUksZ0JBQTBDLENBQUE7UUFDOUMsSUFBSSxVQUFtQyxDQUFBO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUN4RSxNQUFN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LENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQXplRCw4QkF5ZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiAyMDIzIEFsbGlhbmRlciBOVlxuLy9cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInXG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSdcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucydcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJ1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nXG5pbXBvcnQgeyBPcmdhbml6YXRpb25QcmluY2lwYWwsIFBvbGljeURvY3VtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSdcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMydcbmltcG9ydCB7IEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250J1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udE9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucydcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJ1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnXG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcidcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnXG5pbXBvcnQgKiBhcyByb3V0ZTUzdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJ1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSdcbmltcG9ydCB7IE1ldGhvZExvZ2dpbmdMZXZlbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5J1xuaW1wb3J0ICogYXMgd2FmdjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJ1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnXG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJ1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCdcbmltcG9ydCB7IFRyZWF0TWlzc2luZ0RhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCdcbmltcG9ydCAqIGFzIGxhbWJkYU5vZGVqcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcydcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5pbXBvcnQgeyBJQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJ1xuaW1wb3J0IHsgSUhvc3RlZFpvbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1MydcblxuZXhwb3J0IGVudW0gd2FmVXNhZ2Uge1xuICBDb25zdHJ1Y3RQcm92aWRlZCxcbiAgUHJvdmlkZVdlYkFjbEFyblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0p3dFN0c1Byb3BzIHtcbiAgLyoqXG4gICAqIGRlZmF1bHRBdWRpZW5jZSB3aGljaCBpcyB1c2VkIGluIGRlIEpXVCdzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXVkaWVuY2U6IHN0cmluZztcblxuICAvKipcbiAgICogSG9zdGVkWm9uZUlkIG9mIHRoZSBkb21haW4gdXNlZCBmb3IgaG9zdGluZyB0aGUgc3RzIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGhvc3RlZFpvbmUuXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgKiBPcHRpb25hbCBzdWJkb21haW4gbmFtZSBvZiBvaWRjIGRpc2NvdmVyeSwgZGVmYXVsdDogb2lkYy5cbiAgKi9cbiAgcmVhZG9ubHkgb2lkY1N1YmRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgKiBPcHRpb25hbCBzdWJkb21haW4gbmFtZSBvZiB0aGUgdG9rZW4gYXBpIChvbiBhcGkgZ3cpLCBkZWZhdWx0OiB0b2tlbi5cbiAgKi9cbiAgcmVhZG9ubHkgdG9rZW5TdWJkb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHdhZiBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUgQVBJIEdXXG4gICAqXG4gICAqIE5vbmU6IG5vIHdhZiBpcyB1c2VkXG4gICAqIENvbnN0cnVjdFByb3ZpZGVkOiB0aGUgY29uc3RydWN0IHdpbGwgZGVwbG95IGEgd2FmQWNsIHdpdGggb3BpbmlvbmF0ZWQgcnVsZXNcbiAgICogUHJvdmlkZVdlYkFjbEFybjogcHJvdmlkZSB5b3VyIG93biBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUd3V2FmPzogd2FmVXNhZ2U7XG5cbiAgLyoqXG4gICAqIEFybiBvZiB0aGUgd2FmIHdlYkFjbCBydWxlIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVBJIEdXXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhcGlHd1dhZldlYkFjbEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBBV1MgT3JnYW5pemF0aW9uIDAteHh4eFxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBBcmNoaXRlY3R1cmVcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IGxhbWJkYS5BcmNoaXRlY3R1cmVcblxuICAvKipcbiAgICogT3B0aW9uYWwgYm9vbGVhbiB0byBzcGVjaWZ5IGlmIGtleSByb3RhdGlvbiBzaG91bGQgYmUgdHJpZ2dlcmVkIG9uIGNyZWF0aW9uIG9mIHRoZSBzdGFjaywgZGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVLZXlSb3RhdGVPbkNyZWF0ZT86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgU3RlcCBGdW5jdGlvbiBmYWlsdXJlcywgZGVmYXVsdDogc3RzLWtleV9yb3RhdGVfc2ZuLWFsYXJtXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWVLZXlSb3RhdGlvblN0ZXBGdW5jdGlvbkZhaWxlZD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gbmFtZSBmb3IgdGhlIENsb3VkV2F0Y2ggQWxhcm0gbW9uaXRvcmluZyA1eHggZXJyb3JzIG9uIHRoZSBBUEkgR2F0ZXdheSwgZGVmYXVsdDogc3RzLTV4eF9hcGlfZ3ctYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZUFwaUdhdGV3YXk1eHg/OiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgU2lnbiBMYW1iZGEgZmFpbHVyZXMsIGRlZmF1bHQ6IHN0cy1zaWduX2Vycm9yc19sYW1iZGEtYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZVNpZ25MYW1iZGFGYWlsZWQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIG5hbWUgZm9yIHRoZSBDbG91ZFdhdGNoIEFsYXJtIG1vbml0b3JpbmcgS2V5IFJvdGF0aW9uIExhbWJkYSBmYWlsdXJlcywgZGVmYXVsdDogc3RzLWtleV9yb3RhdGVfZXJyb3JzX2xhbWJkYS1hbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lS2V5Um90YXRpb25MYW1iZGFGYWlsZWQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogY3VycmVudCBrbXMga2V5IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRLZXlOYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIHByZXZpb3VzIGttcyBrZXkgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJldmlvdXNLZXlOYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIHBlbmRpbmcga21zIGtleSBuYW1lXG4gICAqL1xuICByZWFkb25seSBwZW5kaW5nS2V5TmFtZT86IHN0cmluZ1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXcgKi9cbmV4cG9ydCBjbGFzcyBBd3NKd3RTdHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogU05TIHRvcGljIHVzZWQgdG8gcHVibGlzaCBlcnJvcnMgZnJvbSB0aGUgU3RlcCBGdW5jdGlvbiByb3RhdGlvbiBmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbGVkUm90YXRpb25Ub3BpYzogc25zLlRvcGljXG5cbiAgY29uc3RydWN0b3IgKGFwcDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXdzSnd0U3RzUHJvcHMpIHtcbiAgICBzdXBlcihhcHAsIGlkKVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ3VzdG9tIGRvbWFpbiB0aGluZ2llcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgbGV0IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgbGV0IG9pZGNDZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkXG4gICAgbGV0IHRva2VuQ2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSB8IHVuZGVmaW5lZFxuICAgIGNvbnN0IG9pZGNTdWJkb21haW4gPSBwcm9wcy5vaWRjU3ViZG9tYWluID8gcHJvcHMub2lkY1N1YmRvbWFpbiA6ICdvaWRjJ1xuICAgIGNvbnN0IHRva2VuU3ViZG9tYWluID0gcHJvcHMudG9rZW5TdWJkb21haW4gPyBwcm9wcy50b2tlblN1YmRvbWFpbiA6ICd0b2tlbidcbiAgICBjb25zdCBhcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPyBwcm9wcy5hcmNoaXRlY3R1cmUgOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgIGxldCBvaWRjRG9tYWluTmFtZSA9ICcnXG4gICAgbGV0IHRva2VuRG9tYWluTmFtZSA9ICcnXG5cbiAgICBjb25zdCB1c2VDdXN0b21Eb21haW4gPSBwcm9wcy5ob3N0ZWRab25lSWQgJiYgcHJvcHMuaG9zdGVkWm9uZU5hbWVcblxuICAgIGlmICh1c2VDdXN0b21Eb21haW4pIHtcbiAgICAgIG9pZGNEb21haW5OYW1lID0gb2lkY1N1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG4gICAgICB0b2tlbkRvbWFpbk5hbWUgPSB0b2tlblN1YmRvbWFpbiArICcuJyArIHByb3BzLmhvc3RlZFpvbmVOYW1lXG5cbiAgICAgIGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzID0gW29pZGNEb21haW5OYW1lXVxuXG4gICAgICBob3N0ZWRab25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ2hvc3RlZFpvbmUnLFxuICAgICAgICB7XG4gICAgICAgICAgem9uZU5hbWU6IHByb3BzLmhvc3RlZFpvbmVOYW1lISxcbiAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmVJZCFcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICBvaWRjQ2VydGlmaWNhdGUgPSBuZXcgYWNtLkRuc1ZhbGlkYXRlZENlcnRpZmljYXRlKHRoaXMsICdDcm9zc1JlZ2lvbkNlcnRpZmljYXRlJywge1xuICAgICAgICBkb21haW5OYW1lOiBvaWRjRG9tYWluTmFtZSxcbiAgICAgICAgaG9zdGVkWm9uZSxcbiAgICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJ1xuICAgICAgfSlcblxuICAgICAgdG9rZW5DZXJ0aWZpY2F0ZSA9IG5ldyBhY20uQ2VydGlmaWNhdGUodGhpcywgJ3Rva2VuQ2VydGlmaWNhdGUnLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRva2VuRG9tYWluTmFtZSxcbiAgICAgICAgdmFsaWRhdGlvbjogYWNtLkNlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKGhvc3RlZFpvbmUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFMzIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIC8vIENyZWF0ZSBidWNrZXQgd2hlcmUgb2lkYyBpbmZvcm1hdGlvbiBjYW4gYmUgc3RvcmVkXG4gICAgY29uc3Qgb2lkY2J1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ29pZGNidWNrZXQnLCB7XG4gICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMXG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tIENsb3VkZnJvbnQgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBjbG91ZGZyb250T0FJID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ2Nsb3VkZnJvbnQtT0FJJywge1xuICAgICAgY29tbWVudDogJ09BSSBmb3Igb2lkYydcbiAgICB9KVxuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsICdvaWRjRGlzdHJpYnV0aW9uJywge1xuICAgICAgZG9tYWluTmFtZXM6IGRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVzLFxuICAgICAgY29tbWVudDogJ0Rpc2NvdmVyeSBlbmRwb2ludCBmb3IgT0lEQycsXG4gICAgICBjZXJ0aWZpY2F0ZTogb2lkY0NlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBjbG91ZGZyb250T3JpZ2lucy5TM09yaWdpbihvaWRjYnVja2V0LCB7IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBjbG91ZGZyb250T0FJIH0pLFxuICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgYWxsb3dlZE1ldGhvZHM6IGNsb3VkZnJvbnQuQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFNcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLyoqIC0tLS0tLS0tLS0tLS0tLS0tLSBMYW1iZGEgSGFuZGxlcnMgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGNvbnN0IGlzc3VlciA9IHVzZUN1c3RvbURvbWFpbiA/ICdodHRwczovLycgKyBvaWRjRG9tYWluTmFtZSA6ICdodHRwczovLycgKyBkaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uRG9tYWluTmFtZVxuXG4gICAgY29uc3Qgcm90YXRlS2V5c1JvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ3JvdGF0ZUtleXNSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV1cbiAgICB9KVxuICAgIGNvbnN0IHJvdGF0ZUtleXMgPSBuZXcgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdrZXlyb3RhdGUnLCB7XG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgcm9sZTogcm90YXRlS2V5c1JvbGUsXG4gICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTM19CVUNLRVQ6IG9pZGNidWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgSVNTVUVSOiBpc3N1ZXIsXG4gICAgICAgIENVUlJFTlRfS0VZOiAnYWxpYXMvJyArIChwcm9wcy5jdXJyZW50S2V5TmFtZSA/PyAnc3RzL0NVUlJFTlQnKSxcbiAgICAgICAgUFJFVklPVVNfS0VZOiAnYWxpYXMvJyArIChwcm9wcy5wcmV2aW91c0tleU5hbWUgPz8gJ3N0cy9QUkVWSU9VUycpLFxuICAgICAgICBQRU5ESU5HX0tFWTogJ2FsaWFzLycgKyAocHJvcHMucGVuZGluZ0tleU5hbWUgPz8gJ3N0cy9QRU5ESU5HJylcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3Qgc2lnblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ3NpZ25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV1cbiAgICB9KVxuICAgIGNvbnN0IHNpZ24gPSBuZXcgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uKHRoaXMsICdzaWduJywge1xuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIHJvbGU6IHNpZ25Sb2xlLFxuICAgICAgYXJjaGl0ZWN0dXJlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgSVNTVUVSOiBpc3N1ZXIsXG4gICAgICAgIERFRkFVTFRfQVVESUVOQ0U6IHByb3BzLmRlZmF1bHRBdWRpZW5jZSxcbiAgICAgICAgQ1VSUkVOVF9LRVk6ICdhbGlhcy8nICsgKHByb3BzLmN1cnJlbnRLZXlOYW1lID8/ICdzdHMvQ1VSUkVOVCcpXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU05TIFRvcGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIHRoaXMuZmFpbGVkUm90YXRpb25Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ3N0cycpXG4gICAgY29uc3Qgc25zRmFpbCA9IG5ldyB0YXNrcy5TbnNQdWJsaXNoKHRoaXMsICdzbnNGYWlsZWQnLCB7XG4gICAgICB0b3BpYzogdGhpcy5mYWlsZWRSb3RhdGlvblRvcGljLFxuICAgICAgc3ViamVjdDogJ1NUUyBLZXlSb3RhdGUgc3RlcCBmdW5jdGlvbiBleGVjdXRpb24gZmFpbGVkJyxcbiAgICAgIG1lc3NhZ2U6IHNmbi5UYXNrSW5wdXQuZnJvbUpzb25QYXRoQXQoJyQnKVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIFN0ZXAgZnVuY3Rpb25zIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBjb25zdCBkZWxldGVQcmV2aW91c1N0ZXAgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdkZWxldGUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdkZWxldGVQcmV2aW91cydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgbW92ZVByZXZpb3VzU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgUHJldmlvdXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogcm90YXRlS2V5cyxcbiAgICAgIHBheWxvYWQ6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgIHN0ZXA6ICdtb3ZlUHJldmlvdXMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IG1vdmVDdXJyZW50U3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ21vdmUgQ3VycmVudCcsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiByb3RhdGVLZXlzLFxuICAgICAgcGF5bG9hZDogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgc3RlcDogJ21vdmVDdXJyZW50J1xuICAgICAgfSksXG4gICAgICBvdXRwdXRQYXRoOiAnJC5QYXlsb2FkJ1xuICAgIH0pXG5cbiAgICBjb25zdCBjcmVhdGVQZW5kaW5nU3RlcCA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ2NyZWF0ZSBQZW5kaW5nJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnY3JlYXRlUGVuZGluZydcbiAgICAgIH0pLFxuICAgICAgb3V0cHV0UGF0aDogJyQuUGF5bG9hZCdcbiAgICB9KVxuXG4gICAgY29uc3QgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnZ2VuZXJhdGUgYXJ0aWZhY3RzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHJvdGF0ZUtleXMsXG4gICAgICBwYXlsb2FkOiBzZm4uVGFza0lucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICBzdGVwOiAnZ2VuZXJhdGVBcnRpZmFjdHMnXG4gICAgICB9KSxcbiAgICAgIG91dHB1dFBhdGg6ICckLlBheWxvYWQnXG4gICAgfSlcblxuICAgIGNvbnN0IGpvYkZhaWxlZCA9IG5ldyBzZm4uRmFpbCh0aGlzLCAnRmFpbGVkJywge1xuICAgICAgY2F1c2U6ICdBV1MgQmF0Y2ggSm9iIEZhaWxlZCcsXG4gICAgICBlcnJvcjogJ0Rlc2NyaWJlSm9iIHJldHVybmVkIEZBSUxFRCdcbiAgICB9KVxuXG4gICAgY29uc3Qgam9iU3VjY2VzcyA9IG5ldyBzZm4uU3VjY2VlZCh0aGlzLCAnU3VjY2VzcyEnKVxuXG4gICAgZGVsZXRlUHJldmlvdXNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgbW92ZVByZXZpb3VzU3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIG1vdmVDdXJyZW50U3RlcC5hZGRDYXRjaChzbnNGYWlsKVxuICAgIGNyZWF0ZVBlbmRpbmdTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG4gICAgZ2VuZXJhdGVBcnRpZmFjdHNTdGVwLmFkZENhdGNoKHNuc0ZhaWwpXG5cbiAgICAvLyBDcmVhdGUgY2hhaW5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gZGVsZXRlUHJldmlvdXNTdGVwXG4gICAgICAubmV4dChtb3ZlUHJldmlvdXNTdGVwKVxuICAgICAgLm5leHQobW92ZUN1cnJlbnRTdGVwKVxuICAgICAgLm5leHQoY3JlYXRlUGVuZGluZ1N0ZXApXG4gICAgICAubmV4dChnZW5lcmF0ZUFydGlmYWN0c1N0ZXApXG4gICAgICAubmV4dChqb2JTdWNjZXNzKVxuXG4gICAgc25zRmFpbC5uZXh0KGpvYkZhaWxlZClcblxuICAgIC8vIENyZWF0ZSBzdGF0ZSBtYWNoaW5lXG4gICAgY29uc3Qgcm90YXRlS2V5c01hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnUm90YXRlS2V5cycsIHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShcbiAgICAgICAgZGVmaW5pdGlvblxuICAgICAgKSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpXG4gICAgfSlcblxuICAgIHJvdGF0ZUtleXMuZ3JhbnRJbnZva2Uocm90YXRlS2V5c01hY2hpbmUucm9sZSlcbiAgICBvaWRjYnVja2V0LmdyYW50UmVhZFdyaXRlKHJvdGF0ZUtleXMpXG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTaWduID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgIHN0YXRlbWVudFNpZ24uYWRkQWN0aW9ucygna21zOionKVxuICAgIHN0YXRlbWVudFNpZ24uYWRkUmVzb3VyY2VzKCcqJylcbiAgICBjb25zdCBzaWduUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdTaWduUG9saWN5Jywge1xuICAgICAgc3RhdGVtZW50czogW3N0YXRlbWVudFNpZ25dXG4gICAgfSlcbiAgICBzaWduUm9sZS5hZGRNYW5hZ2VkUG9saWN5KHNpZ25Qb2xpY3kpXG5cbiAgICBjb25zdCBzdGF0ZW1lbnRSb3RhdGVLZXlzID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKVxuICAgIHN0YXRlbWVudFJvdGF0ZUtleXMuYWRkQWN0aW9ucygna21zOionKVxuICAgIHN0YXRlbWVudFJvdGF0ZUtleXMuYWRkUmVzb3VyY2VzKCcqJylcbiAgICBjb25zdCByb3RhdGVLZXlzUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdSb3RhdGVLZXlzUG9saWN5Jywge1xuICAgICAgc3RhdGVtZW50czogW3N0YXRlbWVudFJvdGF0ZUtleXNdXG4gICAgfSlcbiAgICByb3RhdGVLZXlzUm9sZS5hZGRNYW5hZ2VkUG9saWN5KHJvdGF0ZUtleXNQb2xpY3kpXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50cyBSdWxlIERlZmluaXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAvLyBSdW4gZXZlcnkgMyBtb250aHMgYXQgOCBQTSBVVENcbiAgICBjb25zdCBzY2hlZHVsZWRSb3RhdGVSdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdzY2hlZHVsZWRSb3RhdGVSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZS5leHByZXNzaW9uKCdjcm9uKDAgMjAgMSAqLzMgPyAqKScpXG4gICAgfSlcbiAgICBzY2hlZHVsZWRSb3RhdGVSdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUocm90YXRlS2V5c01hY2hpbmUpKVxuXG4gICAgLy8gQ3JlYXRlIHN0YXRlIG1hY2hpbmUgYW5kIHRyaWdnZXIgdG8gcG9wdWxhdGUgaW5pdGlhbCBrZXlzXG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlS2V5Um90YXRlT25DcmVhdGUpIHtcbiAgICAgIGNvbnN0IHJvdGF0ZU9uY2UgPSBuZXcgdGFza3MuU3RlcEZ1bmN0aW9uc1N0YXJ0RXhlY3V0aW9uKHRoaXMsICdyb3RhdGVPbmNlJywge1xuICAgICAgICBzdGF0ZU1hY2hpbmU6IHJvdGF0ZUtleXNNYWNoaW5lLFxuICAgICAgICBpbnRlZ3JhdGlvblBhdHRlcm46IHNmbi5JbnRlZ3JhdGlvblBhdHRlcm4uUlVOX0pPQlxuICAgICAgfSlcblxuICAgICAgY29uc3Qgcm90YXRlVHdpY2UgPSBuZXcgdGFza3MuU3RlcEZ1bmN0aW9uc1N0YXJ0RXhlY3V0aW9uKHRoaXMsICdyb3RhdGVUd2ljZScsIHtcbiAgICAgICAgc3RhdGVNYWNoaW5lOiByb3RhdGVLZXlzTWFjaGluZSxcbiAgICAgICAgaW50ZWdyYXRpb25QYXR0ZXJuOiBzZm4uSW50ZWdyYXRpb25QYXR0ZXJuLlJVTl9KT0JcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHBvcHVsYXRlS2V5cyA9IG5ldyBzZm4uU3RhdGVNYWNoaW5lKHRoaXMsICdwb3B1bGF0ZUtleXMnLCB7XG4gICAgICAgIGRlZmluaXRpb25Cb2R5OiBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShcbiAgICAgICAgICByb3RhdGVPbmNlLm5leHQocm90YXRlVHdpY2UpXG4gICAgICAgICksXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKVxuICAgICAgfSlcblxuICAgICAgY29uc3QgaW5pdGlhbFJ1blJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ2luaXRpYWxSdW5SdWxlJywge1xuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBzb3VyY2U6IFsnYXdzLmNsb3VkZm9ybWF0aW9uJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbY2RrLlN0YWNrLm9mKHRoaXMpLnN0YWNrSWRdLFxuICAgICAgICAgIGRldGFpbFR5cGU6IFsnQ2xvdWRGb3JtYXRpb24gU3RhY2sgU3RhdHVzIENoYW5nZSddLFxuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgJ3N0YXR1cy1kZXRhaWxzJzoge1xuICAgICAgICAgICAgICBzdGF0dXM6IFsnQ1JFQVRFX0NPTVBMRVRFJ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGluaXRpYWxSdW5SdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUocG9wdWxhdGVLZXlzKSlcbiAgICB9XG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBUEkgR2F0ZXdheSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgLy8gb25seSBzZXQgcG9saWN5IHdoZW4gb3JnSWQgaXMgc2V0XG4gICAgbGV0IGFwaVBvbGljeTogUG9saWN5RG9jdW1lbnQgfCB1bmRlZmluZWRcbiAgICBpZiAocHJvcHMub3JnSWQpIHtcbiAgICAgIGFwaVBvbGljeSA9IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaTpJbnZva2UnXSxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbXG4gICAgICAgICAgICAgIG5ldyBPcmdhbml6YXRpb25QcmluY2lwYWwocHJvcHMub3JnSWQpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBsb2dHcm91cCA9IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdBUElHYXRld2F5QWNjZXNzTG9ncycsIHtcbiAgICAgIHJldGVudGlvbjogN1xuICAgIH0pXG5cbiAgICAvLyBDcmVhdGUgQVBJXG4gICAgY29uc3QgYXBpID0gbmV3IGFwaWdhdGV3YXkuTGFtYmRhUmVzdEFwaSh0aGlzLCAnandrLXN0cy1hcGknLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NUUyBUb2tlbiBBUEkgR2F0ZXdheScsXG4gICAgICBoYW5kbGVyOiBzaWduLFxuICAgICAgZGVmYXVsdE1ldGhvZE9wdGlvbnM6IHtcbiAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IGFwaWdhdGV3YXkuQXV0aG9yaXphdGlvblR5cGUuSUFNXG4gICAgICB9LFxuICAgICAgZW5kcG9pbnRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHR5cGVzOiBbYXBpZ2F0ZXdheS5FbmRwb2ludFR5cGUuUkVHSU9OQUxdXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBhcGlQb2xpY3ksXG4gICAgICBkZXBsb3lPcHRpb25zOiB7XG4gICAgICAgIGxvZ2dpbmdMZXZlbDogTWV0aG9kTG9nZ2luZ0xldmVsLklORk8sXG4gICAgICAgIGFjY2Vzc0xvZ0Rlc3RpbmF0aW9uOiBuZXcgYXBpZ2F0ZXdheS5Mb2dHcm91cExvZ0Rlc3RpbmF0aW9uKGxvZ0dyb3VwKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLSBSb3V0ZTUzIERlZmluaXRpb24gZm9yIGN1c3RvbSBkb21haW4gLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgaWYgKHVzZUN1c3RvbURvbWFpbiAmJiBob3N0ZWRab25lKSB7XG4gICAgICBhcGkuYWRkRG9tYWluTmFtZSgnYXBpQ3VzdG9tRG9tYWluTmFtZScsIHtcbiAgICAgICAgZG9tYWluTmFtZTogdG9rZW5Eb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogdG9rZW5DZXJ0aWZpY2F0ZSFcbiAgICAgIH0pXG5cbiAgICAgIC8vIEFkZCBBIHJlY29yZCBmb3IgY2xvdWRmcm9udCBkaXN0cmlidXRpb25cblxuICAgICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAnb2lkY1JlY29yZCcsIHtcbiAgICAgICAgcmVjb3JkTmFtZTogb2lkY0RvbWFpbk5hbWUsXG4gICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyByb3V0ZTUzdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KGRpc3RyaWJ1dGlvbikpXG4gICAgICB9KVxuXG4gICAgICBuZXcgcm91dGU1My5BUmVjb3JkKHRoaXMsICd0b2tlblJlY29yZCcsIHtcbiAgICAgICAgcmVjb3JkTmFtZTogdG9rZW5Eb21haW5OYW1lLFxuICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgcm91dGU1M3RhcmdldHMuQXBpR2F0ZXdheShhcGkpKVxuICAgICAgfSlcblxuICAgICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3Rva2VuRW5kcG9pbnQnLCB7XG4gICAgICAgIHZhbHVlOiAnaHR0cHM6Ly8nICsgdG9rZW5Eb21haW5OYW1lICsgJy90b2tlbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSB0b2tlbiBlbmRwb2ludCcsXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0tdG9rZW5FbmRwb2ludGBcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICd0b2tlbkVuZHBvaW50Jywge1xuICAgICAgICB2YWx1ZTogYXBpLnVybCArICd0b2tlbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVXJsIG9mIHRoZSB0b2tlbiBlbmRwb2ludCcsXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0tdG9rZW5FbmRwb2ludGBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2lzc3VlcicsIHtcbiAgICAgIHZhbHVlOiBpc3N1ZXIsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VybCBvZiB0aGUgaXNzdWVyJyxcbiAgICAgIGV4cG9ydE5hbWU6IGAke2Nkay5TdGFjay5vZih0aGlzKX0taXNzdWVyYFxuICAgIH0pXG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBXQUYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgIGlmIChwcm9wcy5hcGlHd1dhZiA9PT0gd2FmVXNhZ2UuQ29uc3RydWN0UHJvdmlkZWQpIHtcbiAgICAgIC8vIEFQSSBnYXRld2F5IFdBRiBBQ0wgYW5kIHJ1bGVzXG4gICAgICBjb25zdCBBUElHYXRld2F5V2ViQUNMID0gbmV3IHdhZnYyLkNmbldlYkFDTCh0aGlzLCAnQVBJR2F0ZXdheVdlYkFDTCcsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIFdlYkFDTCBmb3IgQXV0aCBBUGkgR2F0ZXdheScsXG4gICAgICAgIHNjb3BlOiAnUkVHSU9OQUwnLFxuICAgICAgICBkZWZhdWx0QWN0aW9uOiB7IGFsbG93OiB7fSB9LFxuICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgbWV0cmljTmFtZTogJ0FQSVdlYkFDTCcsXG4gICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHtcbiAgICAgICAgICAgICAgbm9uZToge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiB7XG4gICAgICAgICAgICAgIG5vbmU6IHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdhcGktZ3ctQXV0aEFQSUdlb0xvY2F0aW9uJyxcbiAgICAgICAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgICAgICAgYWN0aW9uOiB7IGJsb2NrOiB7fSB9LFxuICAgICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgICBtZXRyaWNOYW1lOiAnQXV0aEFQSUdlb0xvY2F0aW9uJyxcbiAgICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlczogWydCWScsICdDTicsICdJUicsICdSVScsICdTWScsICdLUCddXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdhcGktZ3ctcmF0ZUxpbWl0UnVsZScsXG4gICAgICAgICAgICBwcmlvcml0eTogNCxcbiAgICAgICAgICAgIGFjdGlvbjogeyBibG9jazoge30gfSxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgICAgbWV0cmljTmFtZTogJ3JhdGVMaW1pdFJ1bGUnLFxuICAgICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUtleVR5cGU6ICdJUCcsXG4gICAgICAgICAgICAgICAgbGltaXQ6IDEwMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuXG4gICAgICAvLyBXZWIgQUNMIEFzc29jaWF0aW9uXG4gICAgICBuZXcgd2FmdjIuQ2ZuV2ViQUNMQXNzb2NpYXRpb24odGhpcywgJ0FQSUdhdGV3YXlXZWJBQ0xBc3NvY2lhdGlvbicsIHtcbiAgICAgICAgd2ViQWNsQXJuOiBBUElHYXRld2F5V2ViQUNMLmF0dHJBcm4sXG4gICAgICAgIHJlc291cmNlQXJuOiBhcGkuZGVwbG95bWVudFN0YWdlLnN0YWdlQXJuXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAocHJvcHMuYXBpR3dXYWYgPT09IHdhZlVzYWdlLlByb3ZpZGVXZWJBY2xBcm4gJiYgcHJvcHMuYXBpR3dXYWZXZWJBY2xBcm4pIHtcbiAgICAgIC8vIFdlYiBBQ0wgQXNzb2NpYXRpb25cbiAgICAgIG5ldyB3YWZ2Mi5DZm5XZWJBQ0xBc3NvY2lhdGlvbih0aGlzLCAnQVBJR2F0ZXdheVdlYkFDTEFzc29jaWF0aW9uJywge1xuICAgICAgICB3ZWJBY2xBcm46IHByb3BzLmFwaUd3V2FmV2ViQWNsQXJuLFxuICAgICAgICByZXNvdXJjZUFybjogYXBpLmRlcGxveW1lbnRTdGFnZS5zdGFnZUFyblxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDbG91ZHdhdGNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnU3RlcEZ1bmN0aW9uRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUtleVJvdGF0aW9uU3RlcEZ1bmN0aW9uRmFpbGVkID8/ICdzdHMta2V5X3JvdGF0ZV9zZm4tYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IHJvdGF0ZUtleXNNYWNoaW5lLm1ldHJpY0ZhaWxlZCgpLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0tleSBSb3RhdGlvbiBGYWlsZWQnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdBcGlHYXRld2F5NVhYQWxhcm0nLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUFwaUdhdGV3YXk1eHggPz8gJ3N0cy01eHhfYXBpX2d3LWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiBhcGkubWV0cmljU2VydmVyRXJyb3IoKSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246ICc1eHggU1RTIEFQSSBnYXRld2F5IGZhaWx1cmVzJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG5cbiAgICBjb25zdCBzaWduRXJyb3JzID0gc2lnbi5tZXRyaWNFcnJvcnMoe1xuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcygxKVxuICAgIH0pXG5cbiAgICBjb25zdCByb3RhdGVFcnJvcnMgPSByb3RhdGVLZXlzLm1ldHJpY0Vycm9ycyh7XG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDEpXG4gICAgfSlcblxuICAgIG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdMYW1iZGFTaWduRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZVNpZ25MYW1iZGFGYWlsZWQgPz8gJ3N0cy1zaWduX2Vycm9yc19sYW1iZGEtYWxhcm0nLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICBtZXRyaWM6IHNpZ25FcnJvcnMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnU2lnbiBMYW1iZGEgRmFpbGVkJyxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElOR1xuICAgIH0pXG5cbiAgICBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnTGFtYmRhUm90YXRlRXJyb3InLCB7XG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZUtleVJvdGF0aW9uTGFtYmRhRmFpbGVkID8/ICdzdHMta2V5X3JvdGF0ZV9lcnJvcnNfbGFtYmRhLWFsYXJtJyxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgbWV0cmljOiByb3RhdGVFcnJvcnMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnS2V5IFJvdGF0aW9uIExhbWJkYSBGYWlsZWQnLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HXG4gICAgfSlcbiAgfVxufVxuIl19
@@ -8,9 +8,9 @@ const client_kms_1 = require("@aws-sdk/client-kms");
8
8
  const client_s3_1 = require("@aws-sdk/client-s3");
9
9
  const jsrsasign_1 = require("jsrsasign");
10
10
  const client = new client_kms_1.KMSClient({});
11
- const ALIAS_PREVIOUS = 'alias/sts/PREVIOUS';
12
- const ALIAS_CURRENT = 'alias/sts/CURRENT';
13
- const ALIAS_PENDING = 'alias/sts/PENDING';
11
+ const ALIAS_PREVIOUS = process.env.PREVIOUS_KEY.toString();
12
+ const ALIAS_CURRENT = process.env.CURRENT_KEY.toString();
13
+ const ALIAS_PENDING = process.env.PENDING_KEY.toString();
14
14
  const ALIASES = [
15
15
  ALIAS_PREVIOUS,
16
16
  ALIAS_CURRENT,
@@ -191,4 +191,4 @@ async function uploadToS3(key, contents) {
191
191
  ContentEncoding: ''
192
192
  }));
193
193
  }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgua2V5cm90YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmtleXJvdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTRDO0FBQzVDLEVBQUU7QUFDRixzQ0FBc0M7OztBQUV0QyxvREFXNEI7QUFDNUIsa0RBQStEO0FBQy9ELHlDQUF5QztBQUV6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFaEMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUE7QUFDM0MsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUE7QUFDekMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUE7QUFFekMsTUFBTSxPQUFPLEdBQWE7SUFDeEIsY0FBYztJQUNkLGFBQWE7SUFDYixhQUFhO0NBQ2QsQ0FBQTtBQUVNLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFVLEVBQWdCLEVBQUU7SUFDeEQsbUNBQW1DO0lBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXpCLGlEQUFpRDtJQUNqRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxnQkFBZ0I7WUFDbkIsTUFBTSxjQUFjLEVBQUUsQ0FBQTtZQUN0QixNQUFLO1FBQ1AsS0FBSyxjQUFjO1lBQ2pCLE1BQU0sWUFBWSxFQUFFLENBQUE7WUFDcEIsTUFBSztRQUNQLEtBQUssYUFBYTtZQUNoQixNQUFNLFdBQVcsRUFBRSxDQUFBO1lBQ25CLE1BQUs7UUFDUCxLQUFLLGVBQWU7WUFDbEIsTUFBTSxhQUFhLEVBQUUsQ0FBQTtZQUNyQixNQUFLO1FBQ1AsS0FBSyxtQkFBbUI7WUFDdEIsTUFBTSxZQUFZLEVBQUUsQ0FBQTtZQUNwQixNQUFNLDJCQUEyQixFQUFFLENBQUE7WUFDbkMsTUFBSztRQUVQO1lBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMvQixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBMUJZLFFBQUEsT0FBTyxXQTBCbkI7QUFFRCxLQUFLLFVBQVUsY0FBYztJQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFFNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN4RCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQzlDLElBQUksdUNBQTBCLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDckQsQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUNyQyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxZQUFZO0lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUNwQyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzFELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsTUFBTSxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDekQsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDhFQUE4RSxDQUFDLENBQUE7SUFDN0YsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMxRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ3hELENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFBO0lBQzVGLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWE7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRTNDLGlCQUFpQjtJQUNqQixNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSw2QkFBZ0IsQ0FBQztRQUM1RCxPQUFPLEVBQUUsVUFBVTtRQUNuQixRQUFRLEVBQUUsYUFBYTtLQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFM0Isd0NBQXdDO0lBQ3hDLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxXQUFZLENBQUMsS0FBTSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FBRSxTQUFpQixFQUFFLEtBQWE7SUFDbEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUM7WUFDOUQsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDLENBQUE7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxHQUFHLFlBQVksOEJBQWlCLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7WUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUM7Z0JBQzlELFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUMsQ0FBQTtZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUUsS0FBYTs7SUFDNUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckIsT0FBTyxNQUFBLFFBQVEsQ0FBQyxXQUFXLDBDQUFFLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksR0FBRyxZQUFZLDhCQUFpQixFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxDQUFBO1FBQ1gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLFlBQVk7SUFDekIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBRTVCLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDL0MsTUFBTSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUVoQyxNQUFNLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsS0FBSyxVQUFVLDJCQUEyQjtJQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUVqQyxNQUFNLG1CQUFtQixHQUFHO1FBQzFCLE1BQU07UUFDTixRQUFRLEVBQUUsR0FBRyxNQUFNLGlCQUFpQjtRQUNwQyx3QkFBd0IsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFDRCxxQ0FBcUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixRQUFRO1NBQ1Q7UUFDRCxxQ0FBcUMsRUFBRTtZQUNyQyxxQkFBcUI7U0FDdEI7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOO0tBQ0YsQ0FBQTtJQUVELE1BQU0sVUFBVSxDQUFDLGtDQUFrQyxFQUFFLG1CQUFtQixDQUFDLENBQUE7QUFDM0UsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUUsUUFBZ0I7SUFDMUMsOEJBQThCO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW1CLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRXpGLDhDQUE4QztJQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQXVCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEYsZ0NBQWdDO0lBQ2hDLE1BQU0sU0FBUyxHQUFHLGdCQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFakYsb0NBQW9DO0lBQ3BDLE1BQU0sR0FBRyxHQUFRLG1CQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRTFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFBO0lBQ2YsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUE7SUFFakIsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBRSxRQUFnQixFQUFFLElBQVc7SUFDekQsT0FBTyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRixDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBRSxHQUFXLEVBQUUsUUFBZ0I7SUFDdEQsMkNBQTJDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFBO0lBRXRDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVqQyx5QkFBeUI7SUFDekIsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7UUFDdkMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxzQ0FBc0M7UUFDaEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxXQUFXLEVBQUUsa0JBQWtCO1FBQy9CLGVBQWUsRUFBRSxFQUFFO0tBQ3BCLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHtcbiAgS01TQ2xpZW50LFxuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIEdldFB1YmxpY0tleUNvbW1hbmQsXG4gIENyZWF0ZUtleUNvbW1hbmQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgU2NoZWR1bGVLZXlEZWxldGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGFnLFxuICBOb3RGb3VuZEV4Y2VwdGlvbixcbiAgQ3JlYXRlQWxpYXNDb21tYW5kXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnXG5pbXBvcnQgeyBTM0NsaWVudCwgUHV0T2JqZWN0Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMydcbmltcG9ydCB7IEtFWVVUSUwsIEtKVVIgfSBmcm9tICdqc3JzYXNpZ24nXG5cbmNvbnN0IGNsaWVudCA9IG5ldyBLTVNDbGllbnQoe30pXG5cbmNvbnN0IEFMSUFTX1BSRVZJT1VTID0gJ2FsaWFzL3N0cy9QUkVWSU9VUydcbmNvbnN0IEFMSUFTX0NVUlJFTlQgPSAnYWxpYXMvc3RzL0NVUlJFTlQnXG5jb25zdCBBTElBU19QRU5ESU5HID0gJ2FsaWFzL3N0cy9QRU5ESU5HJ1xuXG5jb25zdCBBTElBU0VTOiBzdHJpbmdbXSA9IFtcbiAgQUxJQVNfUFJFVklPVVMsXG4gIEFMSUFTX0NVUlJFTlQsXG4gIEFMSUFTX1BFTkRJTkdcbl1cblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IGFueSk6IFByb21pc2U8YW55PiA9PiB7XG4gIC8vIHJldHJpZXZlIHRoZSBzdGVwIGZyb20gdGhlIGV2ZW50XG4gIGNvbnN0IHN0ZXAgPSAoZXZlbnQuc3RlcClcblxuICAvLyBtYXRjaCB0aGUgc3RlcCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uXG4gIHN3aXRjaCAoc3RlcCkge1xuICAgIGNhc2UgJ2RlbGV0ZVByZXZpb3VzJzpcbiAgICAgIGF3YWl0IGRlbGV0ZVByZXZpb3VzKClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnbW92ZVByZXZpb3VzJzpcbiAgICAgIGF3YWl0IG1vdmVQcmV2aW91cygpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ21vdmVDdXJyZW50JzpcbiAgICAgIGF3YWl0IG1vdmVDdXJyZW50KClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnY3JlYXRlUGVuZGluZyc6XG4gICAgICBhd2FpdCBjcmVhdGVQZW5kaW5nKClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnZ2VuZXJhdGVBcnRpZmFjdHMnOlxuICAgICAgYXdhaXQgZ2VuZXJhdGVKV0tTKClcbiAgICAgIGF3YWl0IGdlbmVyYXRlT3BlbklEQ29uZmlndXJhdGlvbigpXG4gICAgICBicmVha1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnNvbGUubG9nKCdpbnZhbGlkIHN0ZXAnKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZVByZXZpb3VzICgpIHtcbiAgY29uc29sZS5sb2coJ0RlbGV0aW5nIFBSRVZJT1VTIGFsaWFzZWQga2V5JylcblxuICBjb25zdCBwcmV2S2V5SWQgPSBhd2FpdCBnZXRLZXlJZEZvckFsaWFzKEFMSUFTX1BSRVZJT1VTKVxuICBpZiAocHJldktleUlkKSB7XG4gICAgY29uc3QgU2NoZWR1bGVEZWxldGVSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKFxuICAgICAgbmV3IFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kKHsgS2V5SWQ6IHByZXZLZXlJZCB9KVxuICAgIClcbiAgICBjb25zb2xlLmxvZyhTY2hlZHVsZURlbGV0ZVJlc3BvbnNlKVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCdObyBQUkVWSU9VUyBrZXkgYXQgdGhlIG1vbWVudCwgc2tpcCBkZWxldGlvbicpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZVByZXZpb3VzICgpIHtcbiAgY29uc29sZS5sb2coJ21vdmluZyBQUkVWSU9VUyBhbGlhcycpXG4gIGNvbnN0IGN1cnJlbnRLZXlJZCA9IGF3YWl0IGdldEtleUlkRm9yQWxpYXMoQUxJQVNfQ1VSUkVOVClcbiAgaWYgKGN1cnJlbnRLZXlJZCkge1xuICAgIGF3YWl0IHVwZGF0ZU9yQ3JlYXRlQWxpYXMoQUxJQVNfUFJFVklPVVMsIGN1cnJlbnRLZXlJZClcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnTm8gQ1VSUkVOVCBrZXkgYXQgdGhlIG1vbWVudCwgc2tpcCBhc3NpZ25pbmcgdGhlIFBSRVZJT1VTIGFsaWFzIHRvIHRoaXMga2V5LicpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZUN1cnJlbnQgKCkge1xuICBjb25zb2xlLmxvZygnTW92aW5nIENVUlJFTlQgYWxpYXMnKVxuXG4gIGNvbnN0IHBlbmRpbmdLZXlJZCA9IGF3YWl0IGdldEtleUlkRm9yQWxpYXMoQUxJQVNfUEVORElORylcbiAgaWYgKHBlbmRpbmdLZXlJZCkge1xuICAgIGF3YWl0IHVwZGF0ZU9yQ3JlYXRlQWxpYXMoQUxJQVNfQ1VSUkVOVCwgcGVuZGluZ0tleUlkKVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCdObyBQRU5ESU5HIGtleSBhdCB0aGUgbW9tZW50LCBza2lwIGFzc2lnbmluZyB0aGUgQ1VSUkVOVCBhbGlhcyB0byB0aGlzIGtleS4nKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVBlbmRpbmcgKCkge1xuICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgbmV3IGtleSBmb3IgUEVORElORycpXG5cbiAgLy8gQ3JlYXRlIG5ldyBrZXlcbiAgY29uc3QgY3JlYXRlUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgQ3JlYXRlS2V5Q29tbWFuZCh7XG4gICAgS2V5U3BlYzogJ1JTQV8yMDQ4JyxcbiAgICBLZXlVc2FnZTogJ1NJR05fVkVSSUZZJ1xuICB9KSlcbiAgY29uc29sZS5sb2coY3JlYXRlUmVzcG9uc2UpXG5cbiAgLy8gVXBkYXRlIHRoZSBuZXcga2V5IHdpdGggcGVuZGluZyBhbGlhc1xuICBhd2FpdCB1cGRhdGVPckNyZWF0ZUFsaWFzKEFMSUFTX1BFTkRJTkcsIGNyZWF0ZVJlc3BvbnNlLktleU1ldGFkYXRhIS5LZXlJZCEpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yQ3JlYXRlQWxpYXMgKGFsaWFzTmFtZTogc3RyaW5nLCBrZXlJZDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgdXBkYXRlUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgVXBkYXRlQWxpYXNDb21tYW5kKHtcbiAgICAgIEFsaWFzTmFtZTogYWxpYXNOYW1lLFxuICAgICAgVGFyZ2V0S2V5SWQ6IGtleUlkXG4gICAgfSkpXG4gICAgY29uc29sZS5sb2codXBkYXRlUmVzcG9uc2UpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEV4Y2VwdGlvbikge1xuICAgICAgY29uc29sZS5sb2coJ0FMSUFTIG5vdCBmb3VuZCwgY3JlYXRpbmcgaXQuJylcbiAgICAgIGNvbnN0IGNyZWF0ZVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZUFsaWFzQ29tbWFuZCh7XG4gICAgICAgIEFsaWFzTmFtZTogYWxpYXNOYW1lLFxuICAgICAgICBUYXJnZXRLZXlJZDoga2V5SWRcbiAgICAgIH0pKVxuICAgICAgY29uc29sZS5sb2coY3JlYXRlUmVzcG9uc2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IChlcnIpXG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEtleUlkRm9yQWxpYXMgKGtleUlkOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUtleUNvbW1hbmQoeyBLZXlJZDoga2V5SWQgfSkpXG4gICAgY29uc29sZS5sb2cocmVzcG9uc2UpXG4gICAgcmV0dXJuIHJlc3BvbnNlLktleU1ldGFkYXRhPy5LZXlJZFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24pIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUpXS1MgKCkge1xuICBjb25zdCBhbGxLZXlzOiBvYmplY3RbXSA9IFtdXG5cbiAgZm9yIChjb25zdCBrZXlBbGlhcyBvZiBBTElBU0VTKSB7XG4gICAgY29uc3Qga2V5SWQgPSBhd2FpdCBnZXRLZXlJZEZvckFsaWFzKGtleUFsaWFzKVxuICAgIGlmIChrZXlJZCkge1xuICAgICAgY29uc3QgandrQ29udGVudHMgPSBhd2FpdCBnZW5lcmF0ZUpXSyhrZXlBbGlhcylcbiAgICAgIGF3YWl0IHNldEtNU0tleVRhZ3Moa2V5SWQsIFt7IFRhZ0tleTogJ2p3a19raWQnLCBUYWdWYWx1ZTogandrQ29udGVudHMua2lkIH1dKVxuICAgICAgYWxsS2V5cy5wdXNoKGp3a0NvbnRlbnRzKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHsga2V5czogYWxsS2V5cyB9XG5cbiAgYXdhaXQgdXBsb2FkVG9TMygnZGlzY292ZXJ5L2tleXMnLCByZXN1bHQpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlT3BlbklEQ29uZmlndXJhdGlvbiAoKSB7XG4gIGNvbnN0IGlzc3VlciA9IHByb2Nlc3MuZW52LklTU1VFUlxuXG4gIGNvbnN0IG9wZW5JZENvbmZpZ3VyYXRpb24gPSB7XG4gICAgaXNzdWVyLFxuICAgIGp3a3NfdXJpOiBgJHtpc3N1ZXJ9L2Rpc2NvdmVyeS9rZXlzYCxcbiAgICByZXNwb25zZV90eXBlc19zdXBwb3J0ZWQ6IFtcbiAgICAgICd0b2tlbidcbiAgICBdLFxuICAgIGlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdSUzI1NidcbiAgICBdLFxuICAgIHNjb3Blc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdvcGVuaWQnXG4gICAgXSxcbiAgICB0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkOiBbXG4gICAgICAnY2xpZW50X3NlY3JldF9iYXNpYydcbiAgICBdLFxuICAgIGNsYWltc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdhdWQnLFxuICAgICAgJ2V4cCcsXG4gICAgICAnaWF0JyxcbiAgICAgICdpc3MnLFxuICAgICAgJ3N1YidcbiAgICBdXG4gIH1cblxuICBhd2FpdCB1cGxvYWRUb1MzKCcud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicsIG9wZW5JZENvbmZpZ3VyYXRpb24pXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlSldLIChrZXlBbGlhczogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgLy8gR2V0IHRoZSBwdWJsaWMga2V5IGZyb20ga21zXG4gIGNvbnN0IGdldFB1YktleVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldFB1YmxpY0tleUNvbW1hbmQoeyBLZXlJZDoga2V5QWxpYXMgfSkpXG5cbiAgLy8gZ2VuZXJhdGUgSEVYIGZvcm1hdCBmcm9tIHRoZSByZXNwb25zZSAoREVSKVxuICBjb25zdCBwdWJLZXlIZXggPSBCdWZmZXIuZnJvbShnZXRQdWJLZXlSZXNwb25zZS5QdWJsaWNLZXkgYXMgVWludDhBcnJheSkudG9TdHJpbmcoJ2hleCcpXG5cbiAgLy8gR2V0IHRoZSBwdWIga2V5IGluIHBlbSBmb3JtYXRcbiAgY29uc3QgcHViS2V5UGVtID0gS0pVUi5hc24xLkFTTjFVdGlsLmdldFBFTVN0cmluZ0Zyb21IZXgocHViS2V5SGV4LCAnUFVCTElDIEtFWScpXG5cbiAgLy8gcmV0dXJuIHRoZSBKV0sgZm9ybWF0IGZvciB0aGUga2V5XG4gIGNvbnN0IGp3azogYW55ID0gS0VZVVRJTC5nZXRKV0socHViS2V5UGVtKVxuXG4gIGp3ay51c2UgPSAnc2lnJ1xuICBqd2suYWxnID0gJ1JTMjU2J1xuXG4gIHJldHVybiBqd2tcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0S01TS2V5VGFncyAoa2V5QWxpYXM6IHN0cmluZywgdGFnczogVGFnW10pIHtcbiAgcmV0dXJuIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBUYWdSZXNvdXJjZUNvbW1hbmQoeyBLZXlJZDoga2V5QWxpYXMsIFRhZ3M6IHRhZ3MgfSkpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZFRvUzMgKGtleTogc3RyaW5nLCBjb250ZW50czogb2JqZWN0KSB7XG4gIC8vIGdldCBTMyBidWNrZXQgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgY29uc3QgczNCdWNrZXQgPSBwcm9jZXNzLmVudi5TM19CVUNLRVRcblxuICBjb25zdCBzM2NsaWVudCA9IG5ldyBTM0NsaWVudCh7fSlcblxuICAvLyBXcml0ZSBqd2sgdG8gczMgYnVja2V0XG4gIGF3YWl0IHMzY2xpZW50LnNlbmQobmV3IFB1dE9iamVjdENvbW1hbmQoe1xuICAgIEJ1Y2tldDogczNCdWNrZXQsXG4gICAgS2V5OiBrZXksIC8vIEZpbGUgbmFtZSB5b3Ugd2FudCB0byBzYXZlIGFzIGluIFMzXG4gICAgQm9keTogQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY29udGVudHMpKSxcbiAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIENvbnRlbnRFbmNvZGluZzogJydcbiAgfSkpXG59XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgua2V5cm90YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmtleXJvdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTRDO0FBQzVDLEVBQUU7QUFDRixzQ0FBc0M7OztBQUV0QyxvREFXNEI7QUFDNUIsa0RBQStEO0FBQy9ELHlDQUF5QztBQUV6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFaEMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFhLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDM0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDekQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7QUFFekQsTUFBTSxPQUFPLEdBQWE7SUFDeEIsY0FBYztJQUNkLGFBQWE7SUFDYixhQUFhO0NBQ2QsQ0FBQTtBQUVNLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFVLEVBQWdCLEVBQUU7SUFDeEQsbUNBQW1DO0lBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXpCLGlEQUFpRDtJQUNqRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxnQkFBZ0I7WUFDbkIsTUFBTSxjQUFjLEVBQUUsQ0FBQTtZQUN0QixNQUFLO1FBQ1AsS0FBSyxjQUFjO1lBQ2pCLE1BQU0sWUFBWSxFQUFFLENBQUE7WUFDcEIsTUFBSztRQUNQLEtBQUssYUFBYTtZQUNoQixNQUFNLFdBQVcsRUFBRSxDQUFBO1lBQ25CLE1BQUs7UUFDUCxLQUFLLGVBQWU7WUFDbEIsTUFBTSxhQUFhLEVBQUUsQ0FBQTtZQUNyQixNQUFLO1FBQ1AsS0FBSyxtQkFBbUI7WUFDdEIsTUFBTSxZQUFZLEVBQUUsQ0FBQTtZQUNwQixNQUFNLDJCQUEyQixFQUFFLENBQUE7WUFDbkMsTUFBSztRQUVQO1lBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMvQixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBMUJZLFFBQUEsT0FBTyxXQTBCbkI7QUFFRCxLQUFLLFVBQVUsY0FBYztJQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFFNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN4RCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQzlDLElBQUksdUNBQTBCLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDckQsQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUNyQyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQThDLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxZQUFZO0lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUNwQyxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzFELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsTUFBTSxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDekQsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDhFQUE4RSxDQUFDLENBQUE7SUFDN0YsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMxRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ3hELENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFBO0lBQzVGLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWE7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBRTNDLGlCQUFpQjtJQUNqQixNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSw2QkFBZ0IsQ0FBQztRQUM1RCxPQUFPLEVBQUUsVUFBVTtRQUNuQixRQUFRLEVBQUUsYUFBYTtLQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFM0Isd0NBQXdDO0lBQ3hDLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxXQUFZLENBQUMsS0FBTSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FBRSxTQUFpQixFQUFFLEtBQWE7SUFDbEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUM7WUFDOUQsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDLENBQUE7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxHQUFHLFlBQVksOEJBQWlCLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7WUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUM7Z0JBQzlELFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUMsQ0FBQTtZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUUsS0FBYTs7SUFDNUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckIsT0FBTyxNQUFBLFFBQVEsQ0FBQyxXQUFXLDBDQUFFLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksR0FBRyxZQUFZLDhCQUFpQixFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxDQUFBO1FBQ1gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLFlBQVk7SUFDekIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBRTVCLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDL0MsTUFBTSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUVoQyxNQUFNLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsS0FBSyxVQUFVLDJCQUEyQjtJQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUVqQyxNQUFNLG1CQUFtQixHQUFHO1FBQzFCLE1BQU07UUFDTixRQUFRLEVBQUUsR0FBRyxNQUFNLGlCQUFpQjtRQUNwQyx3QkFBd0IsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFDRCxxQ0FBcUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixRQUFRO1NBQ1Q7UUFDRCxxQ0FBcUMsRUFBRTtZQUNyQyxxQkFBcUI7U0FDdEI7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOO0tBQ0YsQ0FBQTtJQUVELE1BQU0sVUFBVSxDQUFDLGtDQUFrQyxFQUFFLG1CQUFtQixDQUFDLENBQUE7QUFDM0UsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUUsUUFBZ0I7SUFDMUMsOEJBQThCO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksZ0NBQW1CLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRXpGLDhDQUE4QztJQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQXVCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFeEYsZ0NBQWdDO0lBQ2hDLE1BQU0sU0FBUyxHQUFHLGdCQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFakYsb0NBQW9DO0lBQ3BDLE1BQU0sR0FBRyxHQUFRLG1CQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRTFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFBO0lBQ2YsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUE7SUFFakIsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBRSxRQUFnQixFQUFFLElBQVc7SUFDekQsT0FBTyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRixDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBRSxHQUFXLEVBQUUsUUFBZ0I7SUFDdEQsMkNBQTJDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFBO0lBRXRDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUVqQyx5QkFBeUI7SUFDekIsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQWdCLENBQUM7UUFDdkMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxzQ0FBc0M7UUFDaEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxXQUFXLEVBQUUsa0JBQWtCO1FBQy9CLGVBQWUsRUFBRSxFQUFFO0tBQ3BCLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHtcbiAgS01TQ2xpZW50LFxuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIEdldFB1YmxpY0tleUNvbW1hbmQsXG4gIENyZWF0ZUtleUNvbW1hbmQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgU2NoZWR1bGVLZXlEZWxldGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGFnLFxuICBOb3RGb3VuZEV4Y2VwdGlvbixcbiAgQ3JlYXRlQWxpYXNDb21tYW5kXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnXG5pbXBvcnQgeyBTM0NsaWVudCwgUHV0T2JqZWN0Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMydcbmltcG9ydCB7IEtFWVVUSUwsIEtKVVIgfSBmcm9tICdqc3JzYXNpZ24nXG5cbmNvbnN0IGNsaWVudCA9IG5ldyBLTVNDbGllbnQoe30pXG5cbmNvbnN0IEFMSUFTX1BSRVZJT1VTID0gcHJvY2Vzcy5lbnYuUFJFVklPVVNfS0VZIS50b1N0cmluZygpXG5jb25zdCBBTElBU19DVVJSRU5UID0gcHJvY2Vzcy5lbnYuQ1VSUkVOVF9LRVkhLnRvU3RyaW5nKClcbmNvbnN0IEFMSUFTX1BFTkRJTkcgPSBwcm9jZXNzLmVudi5QRU5ESU5HX0tFWSEudG9TdHJpbmcoKVxuXG5jb25zdCBBTElBU0VTOiBzdHJpbmdbXSA9IFtcbiAgQUxJQVNfUFJFVklPVVMsXG4gIEFMSUFTX0NVUlJFTlQsXG4gIEFMSUFTX1BFTkRJTkdcbl1cblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IGFueSk6IFByb21pc2U8YW55PiA9PiB7XG4gIC8vIHJldHJpZXZlIHRoZSBzdGVwIGZyb20gdGhlIGV2ZW50XG4gIGNvbnN0IHN0ZXAgPSAoZXZlbnQuc3RlcClcblxuICAvLyBtYXRjaCB0aGUgc3RlcCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uXG4gIHN3aXRjaCAoc3RlcCkge1xuICAgIGNhc2UgJ2RlbGV0ZVByZXZpb3VzJzpcbiAgICAgIGF3YWl0IGRlbGV0ZVByZXZpb3VzKClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnbW92ZVByZXZpb3VzJzpcbiAgICAgIGF3YWl0IG1vdmVQcmV2aW91cygpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ21vdmVDdXJyZW50JzpcbiAgICAgIGF3YWl0IG1vdmVDdXJyZW50KClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnY3JlYXRlUGVuZGluZyc6XG4gICAgICBhd2FpdCBjcmVhdGVQZW5kaW5nKClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnZ2VuZXJhdGVBcnRpZmFjdHMnOlxuICAgICAgYXdhaXQgZ2VuZXJhdGVKV0tTKClcbiAgICAgIGF3YWl0IGdlbmVyYXRlT3BlbklEQ29uZmlndXJhdGlvbigpXG4gICAgICBicmVha1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnNvbGUubG9nKCdpbnZhbGlkIHN0ZXAnKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZVByZXZpb3VzICgpIHtcbiAgY29uc29sZS5sb2coJ0RlbGV0aW5nIFBSRVZJT1VTIGFsaWFzZWQga2V5JylcblxuICBjb25zdCBwcmV2S2V5SWQgPSBhd2FpdCBnZXRLZXlJZEZvckFsaWFzKEFMSUFTX1BSRVZJT1VTKVxuICBpZiAocHJldktleUlkKSB7XG4gICAgY29uc3QgU2NoZWR1bGVEZWxldGVSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKFxuICAgICAgbmV3IFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kKHsgS2V5SWQ6IHByZXZLZXlJZCB9KVxuICAgIClcbiAgICBjb25zb2xlLmxvZyhTY2hlZHVsZURlbGV0ZVJlc3BvbnNlKVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCdObyBQUkVWSU9VUyBrZXkgYXQgdGhlIG1vbWVudCwgc2tpcCBkZWxldGlvbicpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZVByZXZpb3VzICgpIHtcbiAgY29uc29sZS5sb2coJ21vdmluZyBQUkVWSU9VUyBhbGlhcycpXG4gIGNvbnN0IGN1cnJlbnRLZXlJZCA9IGF3YWl0IGdldEtleUlkRm9yQWxpYXMoQUxJQVNfQ1VSUkVOVClcbiAgaWYgKGN1cnJlbnRLZXlJZCkge1xuICAgIGF3YWl0IHVwZGF0ZU9yQ3JlYXRlQWxpYXMoQUxJQVNfUFJFVklPVVMsIGN1cnJlbnRLZXlJZClcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnTm8gQ1VSUkVOVCBrZXkgYXQgdGhlIG1vbWVudCwgc2tpcCBhc3NpZ25pbmcgdGhlIFBSRVZJT1VTIGFsaWFzIHRvIHRoaXMga2V5LicpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZUN1cnJlbnQgKCkge1xuICBjb25zb2xlLmxvZygnTW92aW5nIENVUlJFTlQgYWxpYXMnKVxuXG4gIGNvbnN0IHBlbmRpbmdLZXlJZCA9IGF3YWl0IGdldEtleUlkRm9yQWxpYXMoQUxJQVNfUEVORElORylcbiAgaWYgKHBlbmRpbmdLZXlJZCkge1xuICAgIGF3YWl0IHVwZGF0ZU9yQ3JlYXRlQWxpYXMoQUxJQVNfQ1VSUkVOVCwgcGVuZGluZ0tleUlkKVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCdObyBQRU5ESU5HIGtleSBhdCB0aGUgbW9tZW50LCBza2lwIGFzc2lnbmluZyB0aGUgQ1VSUkVOVCBhbGlhcyB0byB0aGlzIGtleS4nKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVBlbmRpbmcgKCkge1xuICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgbmV3IGtleSBmb3IgUEVORElORycpXG5cbiAgLy8gQ3JlYXRlIG5ldyBrZXlcbiAgY29uc3QgY3JlYXRlUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgQ3JlYXRlS2V5Q29tbWFuZCh7XG4gICAgS2V5U3BlYzogJ1JTQV8yMDQ4JyxcbiAgICBLZXlVc2FnZTogJ1NJR05fVkVSSUZZJ1xuICB9KSlcbiAgY29uc29sZS5sb2coY3JlYXRlUmVzcG9uc2UpXG5cbiAgLy8gVXBkYXRlIHRoZSBuZXcga2V5IHdpdGggcGVuZGluZyBhbGlhc1xuICBhd2FpdCB1cGRhdGVPckNyZWF0ZUFsaWFzKEFMSUFTX1BFTkRJTkcsIGNyZWF0ZVJlc3BvbnNlLktleU1ldGFkYXRhIS5LZXlJZCEpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yQ3JlYXRlQWxpYXMgKGFsaWFzTmFtZTogc3RyaW5nLCBrZXlJZDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgdXBkYXRlUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgVXBkYXRlQWxpYXNDb21tYW5kKHtcbiAgICAgIEFsaWFzTmFtZTogYWxpYXNOYW1lLFxuICAgICAgVGFyZ2V0S2V5SWQ6IGtleUlkXG4gICAgfSkpXG4gICAgY29uc29sZS5sb2codXBkYXRlUmVzcG9uc2UpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEV4Y2VwdGlvbikge1xuICAgICAgY29uc29sZS5sb2coJ0FMSUFTIG5vdCBmb3VuZCwgY3JlYXRpbmcgaXQuJylcbiAgICAgIGNvbnN0IGNyZWF0ZVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IENyZWF0ZUFsaWFzQ29tbWFuZCh7XG4gICAgICAgIEFsaWFzTmFtZTogYWxpYXNOYW1lLFxuICAgICAgICBUYXJnZXRLZXlJZDoga2V5SWRcbiAgICAgIH0pKVxuICAgICAgY29uc29sZS5sb2coY3JlYXRlUmVzcG9uc2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IChlcnIpXG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEtleUlkRm9yQWxpYXMgKGtleUlkOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5zZW5kKG5ldyBEZXNjcmliZUtleUNvbW1hbmQoeyBLZXlJZDoga2V5SWQgfSkpXG4gICAgY29uc29sZS5sb2cocmVzcG9uc2UpXG4gICAgcmV0dXJuIHJlc3BvbnNlLktleU1ldGFkYXRhPy5LZXlJZFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24pIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUpXS1MgKCkge1xuICBjb25zdCBhbGxLZXlzOiBvYmplY3RbXSA9IFtdXG5cbiAgZm9yIChjb25zdCBrZXlBbGlhcyBvZiBBTElBU0VTKSB7XG4gICAgY29uc3Qga2V5SWQgPSBhd2FpdCBnZXRLZXlJZEZvckFsaWFzKGtleUFsaWFzKVxuICAgIGlmIChrZXlJZCkge1xuICAgICAgY29uc3QgandrQ29udGVudHMgPSBhd2FpdCBnZW5lcmF0ZUpXSyhrZXlBbGlhcylcbiAgICAgIGF3YWl0IHNldEtNU0tleVRhZ3Moa2V5SWQsIFt7IFRhZ0tleTogJ2p3a19raWQnLCBUYWdWYWx1ZTogandrQ29udGVudHMua2lkIH1dKVxuICAgICAgYWxsS2V5cy5wdXNoKGp3a0NvbnRlbnRzKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHsga2V5czogYWxsS2V5cyB9XG5cbiAgYXdhaXQgdXBsb2FkVG9TMygnZGlzY292ZXJ5L2tleXMnLCByZXN1bHQpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlT3BlbklEQ29uZmlndXJhdGlvbiAoKSB7XG4gIGNvbnN0IGlzc3VlciA9IHByb2Nlc3MuZW52LklTU1VFUlxuXG4gIGNvbnN0IG9wZW5JZENvbmZpZ3VyYXRpb24gPSB7XG4gICAgaXNzdWVyLFxuICAgIGp3a3NfdXJpOiBgJHtpc3N1ZXJ9L2Rpc2NvdmVyeS9rZXlzYCxcbiAgICByZXNwb25zZV90eXBlc19zdXBwb3J0ZWQ6IFtcbiAgICAgICd0b2tlbidcbiAgICBdLFxuICAgIGlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdSUzI1NidcbiAgICBdLFxuICAgIHNjb3Blc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdvcGVuaWQnXG4gICAgXSxcbiAgICB0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkOiBbXG4gICAgICAnY2xpZW50X3NlY3JldF9iYXNpYydcbiAgICBdLFxuICAgIGNsYWltc19zdXBwb3J0ZWQ6IFtcbiAgICAgICdhdWQnLFxuICAgICAgJ2V4cCcsXG4gICAgICAnaWF0JyxcbiAgICAgICdpc3MnLFxuICAgICAgJ3N1YidcbiAgICBdXG4gIH1cblxuICBhd2FpdCB1cGxvYWRUb1MzKCcud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicsIG9wZW5JZENvbmZpZ3VyYXRpb24pXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlSldLIChrZXlBbGlhczogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgLy8gR2V0IHRoZSBwdWJsaWMga2V5IGZyb20ga21zXG4gIGNvbnN0IGdldFB1YktleVJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldFB1YmxpY0tleUNvbW1hbmQoeyBLZXlJZDoga2V5QWxpYXMgfSkpXG5cbiAgLy8gZ2VuZXJhdGUgSEVYIGZvcm1hdCBmcm9tIHRoZSByZXNwb25zZSAoREVSKVxuICBjb25zdCBwdWJLZXlIZXggPSBCdWZmZXIuZnJvbShnZXRQdWJLZXlSZXNwb25zZS5QdWJsaWNLZXkgYXMgVWludDhBcnJheSkudG9TdHJpbmcoJ2hleCcpXG5cbiAgLy8gR2V0IHRoZSBwdWIga2V5IGluIHBlbSBmb3JtYXRcbiAgY29uc3QgcHViS2V5UGVtID0gS0pVUi5hc24xLkFTTjFVdGlsLmdldFBFTVN0cmluZ0Zyb21IZXgocHViS2V5SGV4LCAnUFVCTElDIEtFWScpXG5cbiAgLy8gcmV0dXJuIHRoZSBKV0sgZm9ybWF0IGZvciB0aGUga2V5XG4gIGNvbnN0IGp3azogYW55ID0gS0VZVVRJTC5nZXRKV0socHViS2V5UGVtKVxuXG4gIGp3ay51c2UgPSAnc2lnJ1xuICBqd2suYWxnID0gJ1JTMjU2J1xuXG4gIHJldHVybiBqd2tcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0S01TS2V5VGFncyAoa2V5QWxpYXM6IHN0cmluZywgdGFnczogVGFnW10pIHtcbiAgcmV0dXJuIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBUYWdSZXNvdXJjZUNvbW1hbmQoeyBLZXlJZDoga2V5QWxpYXMsIFRhZ3M6IHRhZ3MgfSkpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZFRvUzMgKGtleTogc3RyaW5nLCBjb250ZW50czogb2JqZWN0KSB7XG4gIC8vIGdldCBTMyBidWNrZXQgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgY29uc3QgczNCdWNrZXQgPSBwcm9jZXNzLmVudi5TM19CVUNLRVRcblxuICBjb25zdCBzM2NsaWVudCA9IG5ldyBTM0NsaWVudCh7fSlcblxuICAvLyBXcml0ZSBqd2sgdG8gczMgYnVja2V0XG4gIGF3YWl0IHMzY2xpZW50LnNlbmQobmV3IFB1dE9iamVjdENvbW1hbmQoe1xuICAgIEJ1Y2tldDogczNCdWNrZXQsXG4gICAgS2V5OiBrZXksIC8vIEZpbGUgbmFtZSB5b3Ugd2FudCB0byBzYXZlIGFzIGluIFMzXG4gICAgQm9keTogQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY29udGVudHMpKSxcbiAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIENvbnRlbnRFbmNvZGluZzogJydcbiAgfSkpXG59XG4iXX0=
@@ -7,7 +7,7 @@ exports.handler = void 0;
7
7
  const client_kms_1 = require("@aws-sdk/client-kms");
8
8
  const base64url_1 = require("base64url");
9
9
  const logger_1 = require("@aws-lambda-powertools/logger");
10
- const KEY_ALIAS_CURRENT = 'alias/sts/CURRENT';
10
+ const KEY_ALIAS_CURRENT = process.env.CURRENT_KEY.toString();
11
11
  const logger = new logger_1.Logger();
12
12
  const handler = async (apiEvent, context) => {
13
13
  var _a, _b, _c, _d;
@@ -119,4 +119,4 @@ function getTagValueFromTags(tagKey, tags) {
119
119
  }
120
120
  return null;
121
121
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc2lnbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDNUMsRUFBRTtBQUNGLHNDQUFzQzs7O0FBR3RDLG9EQUE4RztBQUM5Ryx5Q0FBaUM7QUFFakMsMERBQXNEO0FBRXRELE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUE7QUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLEVBQUUsQ0FBQTtBQUVwQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsUUFBeUIsRUFBRSxPQUFnQixFQUFrQyxFQUFFOztJQUMzRyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxNQUFBLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSwwQ0FBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVksQ0FBQyxDQUFBO0lBRTFCLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsTUFBQSxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsMENBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUN0RyxPQUFPLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUV0QyxJQUFJLFFBQVEsQ0FBQyxxQkFBcUIsSUFBSSxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUE7SUFDMUMsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUU3QixtREFBbUQ7SUFD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SUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzdDLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQ0FBRSxNQUFNLG1DQUFJLEVBQUUsQ0FBQTtJQUVqRixJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sZUFBZSxVQUFVLElBQUksU0FBUyxTQUFTLFFBQVEsRUFBRSxDQUFBO0FBQ2xFLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFFLE1BQWMsRUFBRSxJQUFXO0lBQ3ZELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29udGV4dCwgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBBUElHYXRld2F5RXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJ1xuaW1wb3J0IHsgS01TQ2xpZW50LCBTaWduQ29tbWFuZCwgRGVzY3JpYmVLZXlDb21tYW5kLCBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCwgVGFnIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWttcydcbmltcG9ydCBiYXNlNjR1cmwgZnJvbSAnYmFzZTY0dXJsJ1xuXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICdAYXdzLWxhbWJkYS1wb3dlcnRvb2xzL2xvZ2dlcidcblxuY29uc3QgS0VZX0FMSUFTX0NVUlJFTlQgPSAnYWxpYXMvc3RzL0NVUlJFTlQnXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKClcblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoYXBpRXZlbnQ6IEFQSUdhdGV3YXlFdmVudCwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8QVBJR2F0ZXdheVByb3h5UmVzdWx0PiA9PiB7XG4gIGNvbnN0IGlkZW50aXR5QXJuID0gZ2V0QVJORnJvbUlkZW50aXR5KGFwaUV2ZW50LnJlcXVlc3RDb250ZXh0LmlkZW50aXR5Py51c2VyQXJuKVxuICBsb2dnZXIuZGVidWcoaWRlbnRpdHlBcm4hKVxuXG4gIGlmIChpZGVudGl0eUFybiA9PT0gdW5kZWZpbmVkIHx8IGlkZW50aXR5QXJuID09PSBudWxsKSB7XG4gICAgbG9nZ2VyLmluZm8oYFVuYWJsZSB0byByZXNvbHZlIGlkZW50aXR5QXJuIGZvciB1c2VyQXJuOiAke2FwaUV2ZW50LnJlcXVlc3RDb250ZXh0LmlkZW50aXR5Py51c2VyQXJufWApXG4gICAgcmV0dXJuIHJlc3BvbmQoJ1VuYWJsZSB0byByZXNvbHZlIGlkZW50aXR5JywgNDAwKVxuICB9XG5cbiAgbGV0IGF1ZCA9IHByb2Nlc3MuZW52LkRFRkFVTFRfQVVESUVOQ0VcblxuICBpZiAoYXBpRXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzICYmIGFwaUV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycy5hdWQpIHtcbiAgICBhdWQgPSBhcGlFdmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMuYXVkXG4gIH1cblxuICBjb25zdCBrbXMgPSBuZXcgS01TQ2xpZW50KHt9KVxuXG4gIC8vIEdldCBLZXlJRCB3aGljaCB3aWxsIGJlIHNlbnQgYXMga2lkIGluIEpXVCB0b2tlblxuICBjb25zdCBjdXJyZW50UmVzcG9uc2UgPSBhd2FpdCBrbXMuc2VuZChuZXcgRGVzY3JpYmVLZXlDb21tYW5kKHsgS2V5SWQ6IGAke0tFWV9BTElBU19DVVJSRU5UfWAgfSkpXG4gIGNvbnN0IGN1cnJlbnRLZXlJZCA9IGN1cnJlbnRSZXNwb25zZS5LZXlNZXRhZGF0YT8uS2V5SWRcblxuICBpZiAoY3VycmVudEtleUlkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVzcG9uZCgnS01TIGtleSBjb3VsZCBub3QgYmUgcmV0cmlldmVkJywgNTAwKVxuICB9XG5cbiAgLy8gUmV0cmlldmUgVGFncyBmb3IgS01TIEtleSAtIHRoZSBrZXkgaXMgdGFnZ2VkIHdpdGggdGhlIGBraWRgIGZyb20gdGhlIEpXSyB3aGljaCBpcyB1c2VkIGluIHRoZSBKV1QgaGVhZGVyc1xuICBjb25zdCBsaXN0UmVzb3VyY2VUYWdzUmVzcG9uc2UgPSBhd2FpdCBrbXMuc2VuZChuZXcgTGlzdFJlc291cmNlVGFnc0NvbW1hbmQoeyBLZXlJZDogY3VycmVudEtleUlkIH0pKVxuICBjb25zdCBraWQgPSBnZXRUYWdWYWx1ZUZyb21UYWdzKCdqd2tfa2lkJywgbGlzdFJlc291cmNlVGFnc1Jlc3BvbnNlLlRhZ3MgPz8gW10pXG5cbiAgaWYgKGtpZCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlc3BvbmQoJ0tNUyBrZXkgaXMgbm90IGNvcnJlY3RseSB0YWdnZWQnLCA1MDApXG4gIH1cblxuICBjb25zdCBpc3MgPSBwcm9jZXNzLmVudi5JU1NVRVJcblxuICAvLyBKV1QgVG9rZW4gaGVhZGVyc1xuICBjb25zdCBoZWFkZXJzOiBhbnkgPSB7XG4gICAgYWxnOiAnUlMyNTYnLFxuICAgIHR5cDogJ0pXVCcsXG4gICAga2lkOiBgJHtraWR9YFxuICB9XG5cbiAgLy8gcHJlcGFyZSB0b2tlbiBsaWZldGltZSBwcm9wZXJ0eSB2YWx1ZXNcbiAgY29uc3QgaXNzdWVkQXREYXRlID0gbmV3IERhdGUoKVxuICBjb25zdCBleHBpcmF0aW9uRGF0ZSA9IG5ldyBEYXRlKGlzc3VlZEF0RGF0ZSlcbiAgY29uc3Qgbm90QmVmb3JlRGF0ZSA9IG5ldyBEYXRlKGlzc3VlZEF0RGF0ZSlcbiAgZXhwaXJhdGlvbkRhdGUuc2V0VGltZShleHBpcmF0aW9uRGF0ZS5nZXRUaW1lKCkgKyA2MCAqIDYwICogMTAwMCkgLy8gdmFsaWQgZm9yIG9uZSBob3VyXG4gIG5vdEJlZm9yZURhdGUuc2V0VGltZShub3RCZWZvcmVEYXRlLmdldFRpbWUoKSAtIDUgKiA2MCAqIDEwMDApIC8vIDVtIGJlZm9yZSBpc3N1ZWRBdERhdGVcblxuICAvLyBKV1QgVG9rZW4gcGF5bG9hZFxuICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XG4gICAgc3ViOiBgJHtpZGVudGl0eUFybn1gLCAvLyBTZXQgcm9sZSBhcm4gYXMgbWVzc2FnZSBmb3IgcGF5bG9hZFxuICAgIGF1ZCxcbiAgICBpc3MsXG4gICAgaWF0OiBNYXRoLmZsb29yKGlzc3VlZEF0RGF0ZS5nZXRUaW1lKCkgLyAxMDAwKSxcbiAgICBleHA6IE1hdGguZmxvb3IoZXhwaXJhdGlvbkRhdGUuZ2V0VGltZSgpIC8gMTAwMCksXG4gICAgbmJmOiBNYXRoLmZsb29yKG5vdEJlZm9yZURhdGUuZ2V0VGltZSgpIC8gMTAwMClcbiAgfVxuXG4gIC8vIFByZXBhcmUgbWVzc2FnZSB0byBiZSBzaWduZWQgYnkgS01TXG4gIGNvbnN0IHRva2VuSGVhZGVycyA9IGJhc2U2NHVybChKU09OLnN0cmluZ2lmeShoZWFkZXJzKSlcbiAgY29uc3QgdG9rZW5QYXlsb2FkID0gYmFzZTY0dXJsKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKVxuXG4gIC8vIFNpZ24gbWVzc2FnZSB3aXRoIEtNU1xuICBjb25zdCBzaWduUmVzcG9uc2UgPSBhd2FpdCBrbXMuc2VuZChuZXcgU2lnbkNvbW1hbmQoe1xuICAgIEtleUlkOiBjdXJyZW50S2V5SWQsXG4gICAgTWVzc2FnZTogQnVmZmVyLmZyb20oYCR7dG9rZW5IZWFkZXJzfS4ke3Rva2VuUGF5bG9hZH1gKSxcbiAgICBTaWduaW5nQWxnb3JpdGhtOiAnUlNBU1NBX1BLQ1MxX1YxXzVfU0hBXzI1NicsXG4gICAgTWVzc2FnZVR5cGU6ICdSQVcnXG4gIH0pKVxuICBsb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoc2lnblJlc3BvbnNlKSlcblxuICBjb25zdCBzaWduYXR1cmUgPSBCdWZmZXJcbiAgICAuZnJvbShzaWduUmVzcG9uc2UuU2lnbmF0dXJlIGFzIFVpbnQ4QXJyYXkpXG4gICAgLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxuICAgIC5yZXBsYWNlKC9cXC8vZywgJ18nKVxuICAgIC5yZXBsYWNlKC89L2csICcnKVxuXG4gIGNvbnN0IHRva2VuID0gYCR7dG9rZW5IZWFkZXJzfS4ke3Rva2VuUGF5bG9hZH0uJHtzaWduYXR1cmV9YFxuICBsb2dnZXIuZGVidWcodG9rZW4pXG5cbiAgcmV0dXJuIHJlc3BvbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgIHRva2VuXG4gIH0pKVxufVxuXG5mdW5jdGlvbiByZXNwb25kIChtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IG51bWJlciA9IDIwMCkge1xuICByZXR1cm4ge1xuICAgIHN0YXR1c0NvZGUsXG4gICAgYm9keTogbWVzc2FnZVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFSTkZyb21JZGVudGl0eSAoaWRlbnRpdHlBcm46IHN0cmluZyB8IG51bGwpIHtcbiAgaWYgKGlkZW50aXR5QXJuID09PSB1bmRlZmluZWQgfHwgaWRlbnRpdHlBcm4gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gUmVnZXggZm9yIGNvbnZlcnRpbmcgYXJuIHRvIGJhc2Ugcm9sZVxuICBjb25zdCBjYXB0R3JvdXBzID0gW1xuICAgICdhcm46YXdzOnN0czonLFxuICAgICcoPzxyZWdpb25OYW1lPlteOl0qKScsIC8vIGdyb3VwIDFcbiAgICAnOicsXG4gICAgJyg/PGFjY291bnRJZD5cXFxcZHsxMn0pJywgLy8gZ3JvdXAgMlxuICAgICc6YXNzdW1lZC1yb2xlXFxcXC8nLFxuICAgICcoPzxyb2xlTmFtZT5bQS16MC05XFxcXC1dKz8pJywgLy8gZ3JvdXAgM1xuICAgICdcXFxcLycsXG4gICAgJyg/PHVzZXI+W146XSopJywgLy8gZ3JvdXAgNFxuICAgICckJ1xuICBdXG5cbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGNhcHRHcm91cHMuam9pbignJykpXG4gIGNvbnN0IHsgcmVnaW9uTmFtZSwgYWNjb3VudElkLCByb2xlTmFtZSB9ID0gcmVnZXguZXhlYyhpZGVudGl0eUFybik/Lmdyb3VwcyA/PyB7fVxuXG4gIGlmIChyZWdpb25OYW1lID09PSB1bmRlZmluZWQgfHwgYWNjb3VudElkID09PSB1bmRlZmluZWQgfHwgcm9sZU5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBCdWlsZCBiYXNlIHJvbGUgYXJuXG4gIHJldHVybiBgYXJuOmF3czppYW06JHtyZWdpb25OYW1lfToke2FjY291bnRJZH06cm9sZS8ke3JvbGVOYW1lfWBcbn1cblxuZnVuY3Rpb24gZ2V0VGFnVmFsdWVGcm9tVGFncyAodGFnS2V5OiBzdHJpbmcsIHRhZ3M6IFRhZ1tdKSB7XG4gIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MpIHtcbiAgICBpZiAodGFnLlRhZ0tleSA9PT0gdGFnS2V5KSB7XG4gICAgICByZXR1cm4gdGFnLlRhZ1ZhbHVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc2lnbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDNUMsRUFBRTtBQUNGLHNDQUFzQzs7O0FBR3RDLG9EQUE4RztBQUM5Ryx5Q0FBaUM7QUFFakMsMERBQXNEO0FBRXRELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLEVBQUUsQ0FBQTtBQUVwQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsUUFBeUIsRUFBRSxPQUFnQixFQUFrQyxFQUFFOztJQUMzRyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxNQUFBLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSwwQ0FBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVksQ0FBQyxDQUFBO0lBRTFCLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsTUFBQSxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsMENBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUN0RyxPQUFPLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUV0QyxJQUFJLFFBQVEsQ0FBQyxxQkFBcUIsSUFBSSxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUE7SUFDMUMsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUU3QixtREFBbUQ7SUFDbkQsTUFBTSxlQUFlLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2pHLE1BQU0sWUFBWSxHQUFHLE1BQUEsZUFBZSxDQUFDLFdBQVcsMENBQUUsS0FBSyxDQUFBO0lBRXZELElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sT0FBTyxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCw2R0FBNkc7SUFDN0csTUFBTSx3QkFBd0IsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBdUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckcsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE1BQUEsd0JBQXdCLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUMsQ0FBQTtJQUUvRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFOUIsb0JBQW9CO0lBQ3BCLE1BQU0sT0FBTyxHQUFRO1FBQ25CLEdBQUcsRUFBRSxPQUFPO1FBQ1osR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUU7S0FDZCxDQUFBO0lBRUQseUNBQXlDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7SUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDNUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQSxDQUFDLHFCQUFxQjtJQUN2RixhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBLENBQUMseUJBQXlCO0lBRXhGLG9CQUFvQjtJQUNwQixNQUFNLE9BQU8sR0FBUTtRQUNuQixHQUFHLEVBQUUsR0FBRyxXQUFXLEVBQUUsRUFBRSxzQ0FBc0M7UUFDN0QsR0FBRztRQUNILEdBQUc7UUFDSCxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzlDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEQsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztLQUNoRCxDQUFBO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sWUFBWSxHQUFHLElBQUEsbUJBQVMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdkQsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQkFBUyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV2RCx3QkFBd0I7SUFDeEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksd0JBQVcsQ0FBQztRQUNsRCxLQUFLLEVBQUUsWUFBWTtRQUNuQixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxnQkFBZ0IsRUFBRSwyQkFBMkI7UUFDN0MsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQyxDQUFDLENBQUE7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUUxQyxNQUFNLFNBQVMsR0FBRyxNQUFNO1NBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBdUIsQ0FBQztTQUMxQyxRQUFRLENBQUMsUUFBUSxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFcEIsTUFBTSxLQUFLLEdBQUcsR0FBRyxZQUFZLElBQUksWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFBO0lBQzVELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFbkIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM1QixLQUFLO0tBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUE7QUFyRlksUUFBQSxPQUFPLFdBcUZuQjtBQUVELFNBQVMsT0FBTyxDQUFFLE9BQWUsRUFBRSxhQUFxQixHQUFHO0lBQ3pELE9BQU87UUFDTCxVQUFVO1FBQ1YsSUFBSSxFQUFFLE9BQU87S0FDZCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUUsV0FBMEI7O0lBQ3JELElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLGNBQWM7UUFDZCxzQkFBc0IsRUFBRSxVQUFVO1FBQ2xDLEdBQUc7UUFDSCx1QkFBdUIsRUFBRSxVQUFVO1FBQ25DLGtCQUFrQjtRQUNsQiw0QkFBNEIsRUFBRSxVQUFVO1FBQ3hDLEtBQUs7UUFDTCxnQkFBZ0IsRUFBRSxVQUFVO1FBQzVCLEdBQUc7S0FDSixDQUFBO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzdDLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQ0FBRSxNQUFNLG1DQUFJLEVBQUUsQ0FBQTtJQUVqRixJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sZUFBZSxVQUFVLElBQUksU0FBUyxTQUFTLFFBQVEsRUFBRSxDQUFBO0FBQ2xFLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFFLE1BQWMsRUFBRSxJQUFXO0lBQ3ZELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29udGV4dCwgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBBUElHYXRld2F5RXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJ1xuaW1wb3J0IHsgS01TQ2xpZW50LCBTaWduQ29tbWFuZCwgRGVzY3JpYmVLZXlDb21tYW5kLCBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCwgVGFnIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWttcydcbmltcG9ydCBiYXNlNjR1cmwgZnJvbSAnYmFzZTY0dXJsJ1xuXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICdAYXdzLWxhbWJkYS1wb3dlcnRvb2xzL2xvZ2dlcidcblxuY29uc3QgS0VZX0FMSUFTX0NVUlJFTlQgPSBwcm9jZXNzLmVudi5DVVJSRU5UX0tFWSEudG9TdHJpbmcoKVxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigpXG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGFwaUV2ZW50OiBBUElHYXRld2F5RXZlbnQsIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPEFQSUdhdGV3YXlQcm94eVJlc3VsdD4gPT4ge1xuICBjb25zdCBpZGVudGl0eUFybiA9IGdldEFSTkZyb21JZGVudGl0eShhcGlFdmVudC5yZXF1ZXN0Q29udGV4dC5pZGVudGl0eT8udXNlckFybilcbiAgbG9nZ2VyLmRlYnVnKGlkZW50aXR5QXJuISlcblxuICBpZiAoaWRlbnRpdHlBcm4gPT09IHVuZGVmaW5lZCB8fCBpZGVudGl0eUFybiA9PT0gbnVsbCkge1xuICAgIGxvZ2dlci5pbmZvKGBVbmFibGUgdG8gcmVzb2x2ZSBpZGVudGl0eUFybiBmb3IgdXNlckFybjogJHthcGlFdmVudC5yZXF1ZXN0Q29udGV4dC5pZGVudGl0eT8udXNlckFybn1gKVxuICAgIHJldHVybiByZXNwb25kKCdVbmFibGUgdG8gcmVzb2x2ZSBpZGVudGl0eScsIDQwMClcbiAgfVxuXG4gIGxldCBhdWQgPSBwcm9jZXNzLmVudi5ERUZBVUxUX0FVRElFTkNFXG5cbiAgaWYgKGFwaUV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyAmJiBhcGlFdmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMuYXVkKSB7XG4gICAgYXVkID0gYXBpRXZlbnQucXVlcnlTdHJpbmdQYXJhbWV0ZXJzLmF1ZFxuICB9XG5cbiAgY29uc3Qga21zID0gbmV3IEtNU0NsaWVudCh7fSlcblxuICAvLyBHZXQgS2V5SUQgd2hpY2ggd2lsbCBiZSBzZW50IGFzIGtpZCBpbiBKV1QgdG9rZW5cbiAgY29uc3QgY3VycmVudFJlc3BvbnNlID0gYXdhaXQga21zLnNlbmQobmV3IERlc2NyaWJlS2V5Q29tbWFuZCh7IEtleUlkOiBgJHtLRVlfQUxJQVNfQ1VSUkVOVH1gIH0pKVxuICBjb25zdCBjdXJyZW50S2V5SWQgPSBjdXJyZW50UmVzcG9uc2UuS2V5TWV0YWRhdGE/LktleUlkXG5cbiAgaWYgKGN1cnJlbnRLZXlJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHJlc3BvbmQoJ0tNUyBrZXkgY291bGQgbm90IGJlIHJldHJpZXZlZCcsIDUwMClcbiAgfVxuXG4gIC8vIFJldHJpZXZlIFRhZ3MgZm9yIEtNUyBLZXkgLSB0aGUga2V5IGlzIHRhZ2dlZCB3aXRoIHRoZSBga2lkYCBmcm9tIHRoZSBKV0sgd2hpY2ggaXMgdXNlZCBpbiB0aGUgSldUIGhlYWRlcnNcbiAgY29uc3QgbGlzdFJlc291cmNlVGFnc1Jlc3BvbnNlID0gYXdhaXQga21zLnNlbmQobmV3IExpc3RSZXNvdXJjZVRhZ3NDb21tYW5kKHsgS2V5SWQ6IGN1cnJlbnRLZXlJZCB9KSlcbiAgY29uc3Qga2lkID0gZ2V0VGFnVmFsdWVGcm9tVGFncygnandrX2tpZCcsIGxpc3RSZXNvdXJjZVRhZ3NSZXNwb25zZS5UYWdzID8/IFtdKVxuXG4gIGlmIChraWQgPT0gbnVsbCkge1xuICAgIHJldHVybiByZXNwb25kKCdLTVMga2V5IGlzIG5vdCBjb3JyZWN0bHkgdGFnZ2VkJywgNTAwKVxuICB9XG5cbiAgY29uc3QgaXNzID0gcHJvY2Vzcy5lbnYuSVNTVUVSXG5cbiAgLy8gSldUIFRva2VuIGhlYWRlcnNcbiAgY29uc3QgaGVhZGVyczogYW55ID0ge1xuICAgIGFsZzogJ1JTMjU2JyxcbiAgICB0eXA6ICdKV1QnLFxuICAgIGtpZDogYCR7a2lkfWBcbiAgfVxuXG4gIC8vIHByZXBhcmUgdG9rZW4gbGlmZXRpbWUgcHJvcGVydHkgdmFsdWVzXG4gIGNvbnN0IGlzc3VlZEF0RGF0ZSA9IG5ldyBEYXRlKClcbiAgY29uc3QgZXhwaXJhdGlvbkRhdGUgPSBuZXcgRGF0ZShpc3N1ZWRBdERhdGUpXG4gIGNvbnN0IG5vdEJlZm9yZURhdGUgPSBuZXcgRGF0ZShpc3N1ZWRBdERhdGUpXG4gIGV4cGlyYXRpb25EYXRlLnNldFRpbWUoZXhwaXJhdGlvbkRhdGUuZ2V0VGltZSgpICsgNjAgKiA2MCAqIDEwMDApIC8vIHZhbGlkIGZvciBvbmUgaG91clxuICBub3RCZWZvcmVEYXRlLnNldFRpbWUobm90QmVmb3JlRGF0ZS5nZXRUaW1lKCkgLSA1ICogNjAgKiAxMDAwKSAvLyA1bSBiZWZvcmUgaXNzdWVkQXREYXRlXG5cbiAgLy8gSldUIFRva2VuIHBheWxvYWRcbiAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgIHN1YjogYCR7aWRlbnRpdHlBcm59YCwgLy8gU2V0IHJvbGUgYXJuIGFzIG1lc3NhZ2UgZm9yIHBheWxvYWRcbiAgICBhdWQsXG4gICAgaXNzLFxuICAgIGlhdDogTWF0aC5mbG9vcihpc3N1ZWRBdERhdGUuZ2V0VGltZSgpIC8gMTAwMCksXG4gICAgZXhwOiBNYXRoLmZsb29yKGV4cGlyYXRpb25EYXRlLmdldFRpbWUoKSAvIDEwMDApLFxuICAgIG5iZjogTWF0aC5mbG9vcihub3RCZWZvcmVEYXRlLmdldFRpbWUoKSAvIDEwMDApXG4gIH1cblxuICAvLyBQcmVwYXJlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkIGJ5IEtNU1xuICBjb25zdCB0b2tlbkhlYWRlcnMgPSBiYXNlNjR1cmwoSlNPTi5zdHJpbmdpZnkoaGVhZGVycykpXG4gIGNvbnN0IHRva2VuUGF5bG9hZCA9IGJhc2U2NHVybChKU09OLnN0cmluZ2lmeShwYXlsb2FkKSlcblxuICAvLyBTaWduIG1lc3NhZ2Ugd2l0aCBLTVNcbiAgY29uc3Qgc2lnblJlc3BvbnNlID0gYXdhaXQga21zLnNlbmQobmV3IFNpZ25Db21tYW5kKHtcbiAgICBLZXlJZDogY3VycmVudEtleUlkLFxuICAgIE1lc3NhZ2U6IEJ1ZmZlci5mcm9tKGAke3Rva2VuSGVhZGVyc30uJHt0b2tlblBheWxvYWR9YCksXG4gICAgU2lnbmluZ0FsZ29yaXRobTogJ1JTQVNTQV9QS0NTMV9WMV81X1NIQV8yNTYnLFxuICAgIE1lc3NhZ2VUeXBlOiAnUkFXJ1xuICB9KSlcbiAgbG9nZ2VyLmRlYnVnKEpTT04uc3RyaW5naWZ5KHNpZ25SZXNwb25zZSkpXG5cbiAgY29uc3Qgc2lnbmF0dXJlID0gQnVmZmVyXG4gICAgLmZyb20oc2lnblJlc3BvbnNlLlNpZ25hdHVyZSBhcyBVaW50OEFycmF5KVxuICAgIC50b1N0cmluZygnYmFzZTY0JylcbiAgICAucmVwbGFjZSgvXFwrL2csICctJylcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAucmVwbGFjZSgvPS9nLCAnJylcblxuICBjb25zdCB0b2tlbiA9IGAke3Rva2VuSGVhZGVyc30uJHt0b2tlblBheWxvYWR9LiR7c2lnbmF0dXJlfWBcbiAgbG9nZ2VyLmRlYnVnKHRva2VuKVxuXG4gIHJldHVybiByZXNwb25kKEpTT04uc3RyaW5naWZ5KHtcbiAgICB0b2tlblxuICB9KSlcbn1cblxuZnVuY3Rpb24gcmVzcG9uZCAobWVzc2FnZTogc3RyaW5nLCBzdGF0dXNDb2RlOiBudW1iZXIgPSAyMDApIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXNDb2RlLFxuICAgIGJvZHk6IG1lc3NhZ2VcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBUk5Gcm9tSWRlbnRpdHkgKGlkZW50aXR5QXJuOiBzdHJpbmcgfCBudWxsKSB7XG4gIGlmIChpZGVudGl0eUFybiA9PT0gdW5kZWZpbmVkIHx8IGlkZW50aXR5QXJuID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIFJlZ2V4IGZvciBjb252ZXJ0aW5nIGFybiB0byBiYXNlIHJvbGVcbiAgY29uc3QgY2FwdEdyb3VwcyA9IFtcbiAgICAnYXJuOmF3czpzdHM6JyxcbiAgICAnKD88cmVnaW9uTmFtZT5bXjpdKiknLCAvLyBncm91cCAxXG4gICAgJzonLFxuICAgICcoPzxhY2NvdW50SWQ+XFxcXGR7MTJ9KScsIC8vIGdyb3VwIDJcbiAgICAnOmFzc3VtZWQtcm9sZVxcXFwvJyxcbiAgICAnKD88cm9sZU5hbWU+W0EtejAtOVxcXFwtXSs/KScsIC8vIGdyb3VwIDNcbiAgICAnXFxcXC8nLFxuICAgICcoPzx1c2VyPlteOl0qKScsIC8vIGdyb3VwIDRcbiAgICAnJCdcbiAgXVxuXG4gIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChjYXB0R3JvdXBzLmpvaW4oJycpKVxuICBjb25zdCB7IHJlZ2lvbk5hbWUsIGFjY291bnRJZCwgcm9sZU5hbWUgfSA9IHJlZ2V4LmV4ZWMoaWRlbnRpdHlBcm4pPy5ncm91cHMgPz8ge31cblxuICBpZiAocmVnaW9uTmFtZSA9PT0gdW5kZWZpbmVkIHx8IGFjY291bnRJZCA9PT0gdW5kZWZpbmVkIHx8IHJvbGVOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQnVpbGQgYmFzZSByb2xlIGFyblxuICByZXR1cm4gYGFybjphd3M6aWFtOiR7cmVnaW9uTmFtZX06JHthY2NvdW50SWR9OnJvbGUvJHtyb2xlTmFtZX1gXG59XG5cbmZ1bmN0aW9uIGdldFRhZ1ZhbHVlRnJvbVRhZ3MgKHRhZ0tleTogc3RyaW5nLCB0YWdzOiBUYWdbXSkge1xuICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKSB7XG4gICAgaWYgKHRhZy5UYWdLZXkgPT09IHRhZ0tleSkge1xuICAgICAgcmV0dXJuIHRhZy5UYWdWYWx1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0=
@@ -6,6 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
7
7
  const client_kms_1 = require("@aws-sdk/client-kms");
8
8
  const client_s3_1 = require("@aws-sdk/client-s3");
9
+ process.env = {
10
+ CURRENT_KEY: 'alias/sts/CURRENT',
11
+ PREVIOUS_KEY: 'alias/sts/PREVIOUS',
12
+ PENDING_KEY: 'alias/sts/PENDING'
13
+ };
14
+ // eslint-disable-next-line import/first
9
15
  const index_keyrotate_1 = require("../index.keyrotate");
10
16
  const kmsMock = (0, aws_sdk_client_mock_1.mockClient)(client_kms_1.KMSClient);
11
17
  const s3Mock = (0, aws_sdk_client_mock_1.mockClient)(client_s3_1.S3Client);
@@ -149,4 +155,4 @@ function base64ToArrayBuffer(b64) {
149
155
  }
150
156
  return byteArray;
151
157
  }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgua2V5cm90YXRlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9pbmRleC5rZXlyb3RhdGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTRDO0FBQzVDLEVBQUU7QUFDRixzQ0FBc0M7O0FBRXRDLDZEQUFnRDtBQUNoRCxvREFBd0Y7QUFDeEYsa0RBQTZDO0FBRTdDLHdEQUE0QztBQUU1QyxNQUFNLE9BQU8sR0FBRyxJQUFBLGdDQUFVLEVBQUMsc0JBQVMsQ0FBQyxDQUFBO0FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsZ0NBQVUsRUFBQyxvQkFBUSxDQUFDLENBQUE7QUFFbkMsTUFBTSxPQUFPLEdBQUc7SUFDZCxRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7Q0FDRixDQUFBO0FBRUQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtJQUNwRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFBO0lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2YsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUE7SUFDOUIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2YsTUFBTSxDQUFDLEtB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U0FDRixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBO0FBRUYsU0FBUyxtQkFBbUIsQ0FBRSxHQUFXO0lBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgbW9ja0NsaWVudCB9IGZyb20gJ2F3cy1zZGstY2xpZW50LW1vY2snXG5pbXBvcnQgeyBLTVNDbGllbnQsIEdldFB1YmxpY0tleUNvbW1hbmQsIERlc2NyaWJlS2V5Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnXG5pbXBvcnQgeyBTM0NsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMydcblxuaW1wb3J0IHsgaGFuZGxlciB9IGZyb20gJy4uL2luZGV4LmtleXJvdGF0ZSdcblxuY29uc3Qga21zTW9jayA9IG1vY2tDbGllbnQoS01TQ2xpZW50KVxuY29uc3QgczNNb2NrID0gbW9ja0NsaWVudChTM0NsaWVudClcblxuY29uc3QgcHViS2V5cyA9IHtcbiAgUFJFVklPVVM6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXQwTytiaU91QVlENUZyTTJSNmRBbGlOMXY5SEE1WHBzdW9BdFhUbjhPVktzTHZ2QkZFaEJGbGdodlNYUHB1NzF2RS9KWXBVajBsTDdKNTRvL1JtQ3o5WlJEem9qTFU3YVdFWU0yc0VDOW5PMklUZHU4aXQrcnIzZmFhNzArN1BHVzA5bzRpRkQrbVhZVWdhZFlUOFZXeHJLUTNlVi9MUXJTTSs2L0tZbDNCaGxOWk54d2p0YkhHV0FsZE9senZ5MTRJNTlHVTVXL3pEUGdPSVdTUUJicFJ2b0pLVDJyek9aWUR0bjdDNjIxOTdoSllBVTdRSVo0bU96L2lhMTBheUZGSTdwMlVvZ2t1M3RZNWN5WUV0U1dHemxUTDNFaUV6U3Z2c2ZRMDcxN2JBNXliYkRxQ1d0U2hnOCtJb094bWJ5NEs5WDdYdUdBUVpZRS9mZ05BWGczd0lEQVFBQicsXG4gICAgandrX2tpZDogJ3JlTkQ5SUFJNWhqMnBlOFVmS20yWDZyLVNqVzF2N3MyM29DM19ONVdQaVEnXG4gIH0sXG4gIENVUlJFTlQ6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQS9QQzNmKzhYT3M2eXdheTJGaFBMZFpyV1U2N1JJcUZBQ1NQSjBBNHEvZUo4R2xHWERqOGN4SGNKQkp5dlR4RVUvcnR0U2UzZjQ0WmZydndsRFViZ0FtVGkyellFRHJCUkhyK0xtUjZxb3l2Y3pMTlpraU1tSlp5Z2RlT01UODdnUHgxZmI4aGhGQVhRa09MOGRIS2lCWitzNEhsczh5dTVlTXVCaGpoK2hVWXhFUVd3MGlsRGdhWENhR1Jqb29IUFNVNitJK1FibTczTXVDYkJBeXpTSUFHREt5eUQ1MEt4OVo5Q2MwaSs2WmZYd1dVLzJTZGE3dTRVNFIyQi9Qa2hBeTBmSWpuN2tNYXc5c2dwZFFISHh5Z3hROHk3UGR1TmdEQkYvQzF6T2VLSnVSYTNRR29NWFk5a24vT1ZCd25aRzdiUTlFbnozUm5Ua00zcTBuZjlKUUlEQVFBQicsXG4gICAgandrX2tpZDogJy1OSUpFNFJROE5ZV3JPT2g1X0p5R0tGQW9iZlk1X29DS28xTXJOWG9RT2cnXG4gIH0sXG4gIFBFTkRJTkc6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXplV0F0MmFSaVg1N3ZEZDc4T3dGKzgzSWRFSTBtV2gwNWhYdkF6UVhNcXQrUVI0OWhpSVdqSnRZaDFCM3NZdmJwOUJXQzh5bytCbFdXdHNJNWZ1NW1DWHNCQnAvUS9zZ2ZBckVzamkrZFdFWGMreEdSTjNocHRiOXRUK3NhYklXbWQ2UXl3NGRZQ2tzckJ6SnZTTE8rSGkxME90ZDJOdHpZYkFxalo2c29hYUNsU25yT2l3OStKNC9HRkh1WTVnT3c4UDB1YU1jbEk1c0RMR04rRy9heUdwVUs3eGVnZkVBZDlWQjZtaGRnV29ZRUFUNnlFRG5GdDBCd3ZUT1lUNlRJLzV2NnNjUkU3Qnl3c3E1VjJNejVWWmU0M1BPY1N0MW43dklaOWNYWEhTR1c4SlB2MUtLY25pSHN4SWMzRmM3NE9qY0VicVdLdzQ5a1ZHQ0UzYXlmUUlEQVFBQicsXG4gICAgandrX2tpZDogJ2JIeWpQWUIzQWZJSThvX1gzdEdrT0NWelRoWnpRTjJVS3dLVkNPOUU5Z1knXG4gIH1cbn1cblxuZGVzY3JpYmUoJ2hhbmRsZXJzL2tleXJvdGF0ZS9rZXlyb3RhdGUudGVzdC50cycsICgpID0+IHtcbiAgY29uc3QgT0xEX0VOViA9IHByb2Nlc3MuZW52XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5yZXNldE1vZHVsZXMoKVxuICAgIGttc01vY2sucmVzZXQoKVxuICAgIHMzTW9jay5yZXNldCgpXG4gICAgcHJvY2Vzcy5lbnYgPSB7IC4uLk9MRF9FTlYgfVxuICB9KVxuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAga21zTW9jay5yZXNldCgpXG4gICAgczNNb2NrLnJlc2V0KClcbiAgICBwcm9jZXNzLmVudiA9IE9MRF9FTlZcbiAgfSlcblxuICB0ZXN0KCdzaG91bGQgZ2VuZXJhdGUgJiB1cGxvYWQgY29ycmVjdCBKV0tTIGZpbGUgdG8gUzMnLCBhc3luYyAoKSA9PiB7XG4gICAga21zTW9ja1xuICAgICAgLm9uKEdldFB1YmxpY0tleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvUFJFVklPVVMnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgUHVibGljS2V5OiBiYXNlNjRUb0FycmF5QnVmZmVyKHB1YktleXMuUFJFVklPVVMucGVtKVxuICAgICAgfSlcbiAgICAgIC5vbihHZXRQdWJsaWNLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL0NVUlJFTlQnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgUHVibGljS2V5OiBiYXNlNjRUb0FycmF5QnVmZmVyKHB1YktleXMuQ1VSUkVOVC5wZW0pXG4gICAgICB9KVxuICAgICAgLm9uKEdldFB1YmxpY0tleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvUEVORElORycgfSkucmVzb2x2ZXMoe1xuICAgICAgICBQdWJsaWNLZXk6IGJhc2U2NFRvQXJyYXlCdWZmZXIocHViS2V5cy5QRU5ESU5HLnBlbSlcbiAgICAgIH0pXG4gICAgICAub24oRGVzY3JpYmVLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL1BSRVZJT1VTJyB9KS5yZXNvbHZlcyh7XG4gICAgICAgIEtleU1ldGFkYXRhOiB7XG4gICAgICAgICAgS2V5SWQ6ICdrZXktMSdcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5vbihEZXNjcmliZUtleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvQ1VSUkVOVCcgfSkucmVzb2x2ZXMoe1xuICAgICAgICBLZXlNZXRhZGF0YToge1xuICAgICAgICAgIEtleUlkOiAna2V5LTInXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAub24oRGVzY3JpYmVLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL1BFTkRJTkcnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgS2V5TWV0YWRhdGE6IHtcbiAgICAgICAgICBLZXlJZDogJ2tleS0zJ1xuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcHJvY2Vzcy5lbnYuUzNfQlVDS0VUID0gJ3Rlc3QtYnVja2V0LW5hbWUnXG4gICAgcHJvY2Vzcy5lbnYuSVNTVUVSID0gJ3Rlc3QtaXNzdWVyLmNvbSdcblxuICAgIGF3YWl0IGhhbmRsZXIoeyBzdGVwOiAnZ2VuZXJhdGVBcnRpZmFjdHMnIH0pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdGFnc1ByZXZpb3VzID0ga21zTW9jay5jYWxsKDIpLmFyZ3NbMF0uaW5wdXQuVGFnc1xuICAgIGV4cGVjdCh0YWdzUHJldmlvdXNbMF0uVGFnS2V5KS50b0JlKCdqd2tfa2lkJylcbiAgICBleHBlY3QodGFnc1ByZXZpb3VzWzBdLlRhZ1ZhbHVlKS50b0JlKHB1YktleXMuUFJFVklPVVMuandrX2tpZClcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0YWdzQ3VycmVudCA9IGttc01vY2suY2FsbCg1KS5hcmdzWzBdLmlucHV0LlRhZ3NcbiAgICBleHBlY3QodGFnc0N1cnJlbnRbMF0uVGFnS2V5KS50b0JlKCdqd2tfa2lkJylcbiAgICBleHBlY3QodGFnc0N1cnJlbnRbMF0uVGFnVmFsdWUpLnRvQmUocHViS2V5cy5DVVJSRU5ULmp3a19raWQpXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdGFnc1BlbmRpbmcgPSBrbXNNb2NrLmNhbGwoOCkuYXJnc1swXS5pbnB1dC5UYWdzXG4gICAgZXhwZWN0KHRhZ3NQZW5kaW5nWzBdLlRhZ0tleSkudG9CZSgnandrX2tpZCcpXG4gICAgZXhwZWN0KHRhZ3NQZW5kaW5nWzBdLlRhZ1ZhbHVlKS50b0JlKHB1YktleXMuUEVORElORy5qd2tfa2lkKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHMzS2V5ID0gczNNb2NrLmNhbGwoMCkuYXJnc1swXS5pbnB1dC5LZXlcbiAgICBleHBlY3QoczNLZXkpLnRvQmUoJ2Rpc2NvdmVyeS9rZXlzJylcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBzM0J1Y2tldCA9IHMzTW9jay5jYWxsKDApLmFyZ3NbMF0uaW5wdXQuQnVja2V0XG4gICAgZXhwZWN0KHMzQnVja2V0KS50b0JlKCd0ZXN0LWJ1Y2tldC1uYW1lJylcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBzM0JvZHkgPSBKU09OLnBhcnNlKHMzTW9jay5jYWxsKDApLmFyZ3NbMF0uaW5wdXQuQm9keS50b1N0cmluZygpKVxuICAgIGV4cGVjdChzM0JvZHkpLnRvRXF1YWwoe1xuICAgICAga2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgZTogJ0FRQUInLFxuICAgICAgICAgIGtpZDogJ3JlTkQ5SUFJNWhqMnBlOFVmS20yWDZyLVNqVzF2N3MyM29DM19ONVdQaVEnLFxuICAgICAgICAgIGt0eTogJ1JTQScsXG4gICAgICAgICAgbjogJ3QwTy1iaU91QVlENUZyTTJSNmRBbGlOMXY5SEE1WHBzdW9BdFhUbjhPVktzTHZ2QkZFaEJGbGdodlNYUHB1NzF2RV9KWXBVajBsTDdKNTRvX1JtQ3o5WlJEem9qTFU3YVdFWU0yc0VDOW5PMklUZHU4aXQtcnIzZmFhNzAtN1BHVzA5bzRpRkQtbVhZVWdhZFlUOFZXeHJLUTNlVl9MUXJTTS02X0tZbDNCaGxOWk54d2p0YkhHV0FsZE9senZ5MTRJNTlHVTVXX3pEUGdPSVdTUUJicFJ2b0pLVDJyek9aWUR0bjdDNjIxOTdoSllBVTdRSVo0bU96X2lhMTBheUZGSTdwMlVvZ2t1M3RZNWN5WUV0U1dHemxUTDNFaUV6U3Z2c2ZRMDcxN2JBNXliYkRxQ1d0U2hnOC1Jb094bWJ5NEs5WDdYdUdBUVpZRV9mZ05BWGczdycsXG4gICAgICAgICAgYWxnOiAnUlMyNTYnLFxuICAgICAgICAgIHVzZTogJ3NpZydcbiAgICAgICAgfSwge1xuICAgICAgICAgIGU6ICdBUUFCJyxcbiAgICAgICAgICBraWQ6ICctTklKRTRSUThOWVdyT09oNV9KeUdLRkFvYmZZNV9vQ0tvMU1yTlhvUU9nJyxcbiAgICAgICAgICBrdHk6ICdSU0EnLFxuICAgICAgICAgIG46ICdfUEMzZi04WE9zNnl3YXkyRmhQTGRacldVNjdSSXFGQUNTUEowQTRxX2VKOEdsR1hEajhjeEhjSkJKeXZUeEVVX3J0dFNlM2Y0NFpmcnZ3bERVYmdBbVRpMnpZRURyQlJIci1MbVI2cW95dmN6TE5aa2lNbUpaeWdkZU9NVDg3Z1B4MWZiOGhoRkFYUWtPTDhkSEtpQlotczRIbHM4eXU1ZU11QmhqaC1oVVl4RVFXdzBpbERnYVhDYUdSam9vSFBTVTYtSS1RYm03M011Q2JCQXl6U0lBR0RLeXlENTBLeDlaOUNjMGktNlpmWHdXVV8yU2RhN3U0VTRSMkJfUGtoQXkwZklqbjdrTWF3OXNncGRRSEh4eWd4UTh5N1BkdU5nREJGX0Mxek9lS0p1UmEzUUdvTVhZOWtuX09WQnduWkc3YlE5RW56M1JuVGtNM3EwbmY5SlEnLFxuICAgICAgICAgIGFsZzogJ1JTMjU2JyxcbiAgICAgICAgICB1c2U6ICdzaWcnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBlOiAnQVFBQicsXG4gICAgICAgICAga2lkOiAnYkh5alBZQjNBZklJOG9fWDN0R2tPQ1Z6VGhaelFOMlVLd0tWQ085RTlnWScsXG4gICAgICAgICAga3R5OiAnUlNBJyxcbiAgICAgICAgICBuOiAnemVXQXQyYVJpWDU3dkRkNzhPd0YtODNJZEVJMG1XaDA1aFh2QXpRWE1xdC1RUjQ5aGlJV2pKdFloMUIzc1l2YnA5QldDOHlvLUJsV1d0c0k1ZnU1bUNYc0JCcF9RX3NnZkFyRXNqaS1kV0VYYy14R1JOM2hwdGI5dFQtc2FiSVdtZDZReXc0ZFlDa3NyQnpKdlNMTy1IaTEwT3RkMk50elliQXFqWjZzb2FhQ2xTbnJPaXc5LUo0X0dGSHVZNWdPdzhQMHVhTWNsSTVzRExHTi1HX2F5R3BVSzd4ZWdmRUFkOVZCNm1oZGdXb1lFQVQ2eUVEbkZ0MEJ3dlRPWVQ2VElfNXY2c2NSRTdCeXdzcTVWMk16NVZaZTQzUE9jU3Qxbjd2SVo5Y1hYSFNHVzhKUHYxS0tjbmlIc3hJYzNGYzc0T2pjRWJxV0t3NDlrVkdDRTNheWZRJyxcbiAgICAgICAgICBhbGc6ICdSUzI1NicsXG4gICAgICAgICAgdXNlOiAnc2lnJ1xuICAgICAgICB9XVxuICAgIH0pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgczNLZXlPcGVuaWRDb25maWd1cmF0aW9uID0gczNNb2NrLmNhbGwoMSkuYXJnc1swXS5pbnB1dC5LZXlcbiAgICBleHBlY3QoczNLZXlPcGVuaWRDb25maWd1cmF0aW9uKS50b0JlKCcud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicpXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgczNCb2R5T3BlbmlkQ29uZmlndXJhdGlvbiA9IEpTT04ucGFyc2UoczNNb2NrLmNhbGwoMSkuYXJnc1swXS5pbnB1dC5Cb2R5LnRvU3RyaW5nKCkpXG4gICAgZXhwZWN0KHMzQm9keU9wZW5pZENvbmZpZ3VyYXRpb24pLnRvRXF1YWwoe1xuICAgICAgaXNzdWVyOiAndGVzdC1pc3N1ZXIuY29tJyxcbiAgICAgIGp3a3NfdXJpOiAndGVzdC1pc3N1ZXIuY29tL2Rpc2NvdmVyeS9rZXlzJyxcbiAgICAgIHJlc3BvbnNlX3R5cGVzX3N1cHBvcnRlZDogW1xuICAgICAgICAndG9rZW4nXG4gICAgICBdLFxuICAgICAgaWRfdG9rZW5fc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZDogW1xuICAgICAgICAnUlMyNTYnXG4gICAgICBdLFxuICAgICAgc2NvcGVzX3N1cHBvcnRlZDogW1xuICAgICAgICAnb3BlbmlkJ1xuICAgICAgXSxcbiAgICAgIHRva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kc19zdXBwb3J0ZWQ6IFtcbiAgICAgICAgJ2NsaWVudF9zZWNyZXRfYmFzaWMnXG4gICAgICBdLFxuICAgICAgY2xhaW1zX3N1cHBvcnRlZDogW1xuICAgICAgICAnYXVkJyxcbiAgICAgICAgJ2V4cCcsXG4gICAgICAgICdpYXQnLFxuICAgICAgICAnaXNzJyxcbiAgICAgICAgJ3N1YidcbiAgICAgIF1cbiAgICB9KVxuICB9KVxufSlcblxuZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlciAoYjY0OiBzdHJpbmcpIHtcbiAgY29uc3QgYnl0ZVN0cmluZyA9IGF0b2IoYjY0KVxuICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlU3RyaW5nLmxlbmd0aClcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgYnl0ZUFycmF5W2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgua2V5cm90YXRlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9pbmRleC5rZXlyb3RhdGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTRDO0FBQzVDLEVBQUU7QUFDRixzQ0FBc0M7O0FBRXRDLDZEQUFnRDtBQUNoRCxvREFBd0Y7QUFDeEYsa0RBQTZDO0FBRTdDLE9BQU8sQ0FBQyxHQUFHLEdBQUc7SUFDWixXQUFXLEVBQUUsbUJBQW1CO0lBQ2hDLFlBQVksRUFBRSxvQkFBb0I7SUFDbEMsV0FBVyxFQUFFLG1CQUFtQjtDQUNqQyxDQUFBO0FBRUQsd0NBQXdDO0FBQ3hDLHdEQUE0QztBQUU1QyxNQUFNLE9BQU8sR0FBRyxJQUFBLGdDQUFVLEVBQUMsc0JBQVMsQ0FBQyxDQUFBO0FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUEsZ0NBQVUsRUFBQyxvQkFBUSxDQUFDLENBQUE7QUFFbkMsTUFBTSxPQUFPLEdBQUc7SUFDZCxRQUFRLEVBQUU7UUFDUixHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsMFlBQTBZO1FBQy9ZLE9BQU8sRUFBRSw2Q0FBNkM7S0FDdkQ7Q0FDRixDQUFBO0FBRUQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtJQUNwRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFBO0lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2YsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsT0FBTyxDQUFDLEdBQUcsR0FBRyxF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VDtZQUNELHFDQUFxQyxFQUFFO2dCQUNyQyxxQkFBcUI7YUFDdEI7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDaEIsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2FBQ047U0FDRixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBO0FBRUYsU0FBUyxtQkFBbUIsQ0FBRSxHQUFXO0lBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMzQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjMgQWxsaWFuZGVyIE5WXG4vL1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgbW9ja0NsaWVudCB9IGZyb20gJ2F3cy1zZGstY2xpZW50LW1vY2snXG5pbXBvcnQgeyBLTVNDbGllbnQsIEdldFB1YmxpY0tleUNvbW1hbmQsIERlc2NyaWJlS2V5Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1rbXMnXG5pbXBvcnQgeyBTM0NsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMydcblxucHJvY2Vzcy5lbnYgPSB7IC8vIHNldCBlbnYgdmFycyBhcyB0aGV5IGFyZSBjYWxsZWQgb24gbG9hZCBvZiB0aGUgZmlsZVxuICBDVVJSRU5UX0tFWTogJ2FsaWFzL3N0cy9DVVJSRU5UJyxcbiAgUFJFVklPVVNfS0VZOiAnYWxpYXMvc3RzL1BSRVZJT1VTJyxcbiAgUEVORElOR19LRVk6ICdhbGlhcy9zdHMvUEVORElORydcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9maXJzdFxuaW1wb3J0IHsgaGFuZGxlciB9IGZyb20gJy4uL2luZGV4LmtleXJvdGF0ZSdcblxuY29uc3Qga21zTW9jayA9IG1vY2tDbGllbnQoS01TQ2xpZW50KVxuY29uc3QgczNNb2NrID0gbW9ja0NsaWVudChTM0NsaWVudClcblxuY29uc3QgcHViS2V5cyA9IHtcbiAgUFJFVklPVVM6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXQwTytiaU91QVlENUZyTTJSNmRBbGlOMXY5SEE1WHBzdW9BdFhUbjhPVktzTHZ2QkZFaEJGbGdodlNYUHB1NzF2RS9KWXBVajBsTDdKNTRvL1JtQ3o5WlJEem9qTFU3YVdFWU0yc0VDOW5PMklUZHU4aXQrcnIzZmFhNzArN1BHVzA5bzRpRkQrbVhZVWdhZFlUOFZXeHJLUTNlVi9MUXJTTSs2L0tZbDNCaGxOWk54d2p0YkhHV0FsZE9senZ5MTRJNTlHVTVXL3pEUGdPSVdTUUJicFJ2b0pLVDJyek9aWUR0bjdDNjIxOTdoSllBVTdRSVo0bU96L2lhMTBheUZGSTdwMlVvZ2t1M3RZNWN5WUV0U1dHemxUTDNFaUV6U3Z2c2ZRMDcxN2JBNXliYkRxQ1d0U2hnOCtJb094bWJ5NEs5WDdYdUdBUVpZRS9mZ05BWGczd0lEQVFBQicsXG4gICAgandrX2tpZDogJ3JlTkQ5SUFJNWhqMnBlOFVmS20yWDZyLVNqVzF2N3MyM29DM19ONVdQaVEnXG4gIH0sXG4gIENVUlJFTlQ6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQS9QQzNmKzhYT3M2eXdheTJGaFBMZFpyV1U2N1JJcUZBQ1NQSjBBNHEvZUo4R2xHWERqOGN4SGNKQkp5dlR4RVUvcnR0U2UzZjQ0WmZydndsRFViZ0FtVGkyellFRHJCUkhyK0xtUjZxb3l2Y3pMTlpraU1tSlp5Z2RlT01UODdnUHgxZmI4aGhGQVhRa09MOGRIS2lCWitzNEhsczh5dTVlTXVCaGpoK2hVWXhFUVd3MGlsRGdhWENhR1Jqb29IUFNVNitJK1FibTczTXVDYkJBeXpTSUFHREt5eUQ1MEt4OVo5Q2MwaSs2WmZYd1dVLzJTZGE3dTRVNFIyQi9Qa2hBeTBmSWpuN2tNYXc5c2dwZFFISHh5Z3hROHk3UGR1TmdEQkYvQzF6T2VLSnVSYTNRR29NWFk5a24vT1ZCd25aRzdiUTlFbnozUm5Ua00zcTBuZjlKUUlEQVFBQicsXG4gICAgandrX2tpZDogJy1OSUpFNFJROE5ZV3JPT2g1X0p5R0tGQW9iZlk1X29DS28xTXJOWG9RT2cnXG4gIH0sXG4gIFBFTkRJTkc6IHtcbiAgICBwZW06ICdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXplV0F0MmFSaVg1N3ZEZDc4T3dGKzgzSWRFSTBtV2gwNWhYdkF6UVhNcXQrUVI0OWhpSVdqSnRZaDFCM3NZdmJwOUJXQzh5bytCbFdXdHNJNWZ1NW1DWHNCQnAvUS9zZ2ZBckVzamkrZFdFWGMreEdSTjNocHRiOXRUK3NhYklXbWQ2UXl3NGRZQ2tzckJ6SnZTTE8rSGkxME90ZDJOdHpZYkFxalo2c29hYUNsU25yT2l3OStKNC9HRkh1WTVnT3c4UDB1YU1jbEk1c0RMR04rRy9heUdwVUs3eGVnZkVBZDlWQjZtaGRnV29ZRUFUNnlFRG5GdDBCd3ZUT1lUNlRJLzV2NnNjUkU3Qnl3c3E1VjJNejVWWmU0M1BPY1N0MW43dklaOWNYWEhTR1c4SlB2MUtLY25pSHN4SWMzRmM3NE9qY0VicVdLdzQ5a1ZHQ0UzYXlmUUlEQVFBQicsXG4gICAgandrX2tpZDogJ2JIeWpQWUIzQWZJSThvX1gzdEdrT0NWelRoWnpRTjJVS3dLVkNPOUU5Z1knXG4gIH1cbn1cblxuZGVzY3JpYmUoJ2hhbmRsZXJzL2tleXJvdGF0ZS9rZXlyb3RhdGUudGVzdC50cycsICgpID0+IHtcbiAgY29uc3QgT0xEX0VOViA9IHByb2Nlc3MuZW52XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5yZXNldE1vZHVsZXMoKVxuICAgIGttc01vY2sucmVzZXQoKVxuICAgIHMzTW9jay5yZXNldCgpXG4gICAgcHJvY2Vzcy5lbnYgPSB7IC4uLk9MRF9FTlYgfVxuICB9KVxuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAga21zTW9jay5yZXNldCgpXG4gICAgczNNb2NrLnJlc2V0KClcbiAgICBwcm9jZXNzLmVudiA9IE9MRF9FTlZcbiAgfSlcblxuICB0ZXN0KCdzaG91bGQgZ2VuZXJhdGUgJiB1cGxvYWQgY29ycmVjdCBKV0tTIGZpbGUgdG8gUzMnLCBhc3luYyAoKSA9PiB7XG4gICAga21zTW9ja1xuICAgICAgLm9uKEdldFB1YmxpY0tleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvUFJFVklPVVMnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgUHVibGljS2V5OiBiYXNlNjRUb0FycmF5QnVmZmVyKHB1YktleXMuUFJFVklPVVMucGVtKVxuICAgICAgfSlcbiAgICAgIC5vbihHZXRQdWJsaWNLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL0NVUlJFTlQnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgUHVibGljS2V5OiBiYXNlNjRUb0FycmF5QnVmZmVyKHB1YktleXMuQ1VSUkVOVC5wZW0pXG4gICAgICB9KVxuICAgICAgLm9uKEdldFB1YmxpY0tleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvUEVORElORycgfSkucmVzb2x2ZXMoe1xuICAgICAgICBQdWJsaWNLZXk6IGJhc2U2NFRvQXJyYXlCdWZmZXIocHViS2V5cy5QRU5ESU5HLnBlbSlcbiAgICAgIH0pXG4gICAgICAub24oRGVzY3JpYmVLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL1BSRVZJT1VTJyB9KS5yZXNvbHZlcyh7XG4gICAgICAgIEtleU1ldGFkYXRhOiB7XG4gICAgICAgICAgS2V5SWQ6ICdrZXktMSdcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5vbihEZXNjcmliZUtleUNvbW1hbmQsIHsgS2V5SWQ6ICdhbGlhcy9zdHMvQ1VSUkVOVCcgfSkucmVzb2x2ZXMoe1xuICAgICAgICBLZXlNZXRhZGF0YToge1xuICAgICAgICAgIEtleUlkOiAna2V5LTInXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAub24oRGVzY3JpYmVLZXlDb21tYW5kLCB7IEtleUlkOiAnYWxpYXMvc3RzL1BFTkRJTkcnIH0pLnJlc29sdmVzKHtcbiAgICAgICAgS2V5TWV0YWRhdGE6IHtcbiAgICAgICAgICBLZXlJZDogJ2tleS0zJ1xuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcHJvY2Vzcy5lbnYuUzNfQlVDS0VUID0gJ3Rlc3QtYnVja2V0LW5hbWUnXG4gICAgcHJvY2Vzcy5lbnYuSVNTVUVSID0gJ3Rlc3QtaXNzdWVyLmNvbSdcblxuICAgIGF3YWl0IGhhbmRsZXIoeyBzdGVwOiAnZ2VuZXJhdGVBcnRpZmFjdHMnIH0pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdGFnc1ByZXZpb3VzID0ga21zTW9jay5jYWxsKDIpLmFyZ3NbMF0uaW5wdXQuVGFnc1xuICAgIGV4cGVjdCh0YWdzUHJldmlvdXNbMF0uVGFnS2V5KS50b0JlKCdqd2tfa2lkJylcbiAgICBleHBlY3QodGFnc1ByZXZpb3VzWzBdLlRhZ1ZhbHVlKS50b0JlKHB1YktleXMuUFJFVklPVVMuandrX2tpZClcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0YWdzQ3VycmVudCA9IGttc01vY2suY2FsbCg1KS5hcmdzWzBdLmlucHV0LlRhZ3NcbiAgICBleHBlY3QodGFnc0N1cnJlbnRbMF0uVGFnS2V5KS50b0JlKCdqd2tfa2lkJylcbiAgICBleHBlY3QodGFnc0N1cnJlbnRbMF0uVGFnVmFsdWUpLnRvQmUocHViS2V5cy5DVVJSRU5ULmp3a19raWQpXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdGFnc1BlbmRpbmcgPSBrbXNNb2NrLmNhbGwoOCkuYXJnc1swXS5pbnB1dC5UYWdzXG4gICAgZXhwZWN0KHRhZ3NQZW5kaW5nWzBdLlRhZ0tleSkudG9CZSgnandrX2tpZCcpXG4gICAgZXhwZWN0KHRhZ3NQZW5kaW5nWzBdLlRhZ1ZhbHVlKS50b0JlKHB1YktleXMuUEVORElORy5qd2tfa2lkKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHMzS2V5ID0gczNNb2NrLmNhbGwoMCkuYXJnc1swXS5pbnB1dC5LZXlcbiAgICBleHBlY3QoczNLZXkpLnRvQmUoJ2Rpc2NvdmVyeS9rZXlzJylcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBzM0J1Y2tldCA9IHMzTW9jay5jYWxsKDApLmFyZ3NbMF0uaW5wdXQuQnVja2V0XG4gICAgZXhwZWN0KHMzQnVja2V0KS50b0JlKCd0ZXN0LWJ1Y2tldC1uYW1lJylcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBzM0JvZHkgPSBKU09OLnBhcnNlKHMzTW9jay5jYWxsKDApLmFyZ3NbMF0uaW5wdXQuQm9keS50b1N0cmluZygpKVxuICAgIGV4cGVjdChzM0JvZHkpLnRvRXF1YWwoe1xuICAgICAga2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgZTogJ0FRQUInLFxuICAgICAgICAgIGtpZDogJ3JlTkQ5SUFJNWhqMnBlOFVmS20yWDZyLVNqVzF2N3MyM29DM19ONVdQaVEnLFxuICAgICAgICAgIGt0eTogJ1JTQScsXG4gICAgICAgICAgbjogJ3QwTy1iaU91QVlENUZyTTJSNmRBbGlOMXY5SEE1WHBzdW9BdFhUbjhPVktzTHZ2QkZFaEJGbGdodlNYUHB1NzF2RV9KWXBVajBsTDdKNTRvX1JtQ3o5WlJEem9qTFU3YVdFWU0yc0VDOW5PMklUZHU4aXQtcnIzZmFhNzAtN1BHVzA5bzRpRkQtbVhZVWdhZFlUOFZXeHJLUTNlVl9MUXJTTS02X0tZbDNCaGxOWk54d2p0YkhHV0FsZE9senZ5MTRJNTlHVTVXX3pEUGdPSVdTUUJicFJ2b0pLVDJyek9aWUR0bjdDNjIxOTdoSllBVTdRSVo0bU96X2lhMTBheUZGSTdwMlVvZ2t1M3RZNWN5WUV0U1dHemxUTDNFaUV6U3Z2c2ZRMDcxN2JBNXliYkRxQ1d0U2hnOC1Jb094bWJ5NEs5WDdYdUdBUVpZRV9mZ05BWGczdycsXG4gICAgICAgICAgYWxnOiAnUlMyNTYnLFxuICAgICAgICAgIHVzZTogJ3NpZydcbiAgICAgICAgfSwge1xuICAgICAgICAgIGU6ICdBUUFCJyxcbiAgICAgICAgICBraWQ6ICctTklKRTRSUThOWVdyT09oNV9KeUdLRkFvYmZZNV9vQ0tvMU1yTlhvUU9nJyxcbiAgICAgICAgICBrdHk6ICdSU0EnLFxuICAgICAgICAgIG46ICdfUEMzZi04WE9zNnl3YXkyRmhQTGRacldVNjdSSXFGQUNTUEowQTRxX2VKOEdsR1hEajhjeEhjSkJKeXZUeEVVX3J0dFNlM2Y0NFpmcnZ3bERVYmdBbVRpMnpZRURyQlJIci1MbVI2cW95dmN6TE5aa2lNbUpaeWdkZU9NVDg3Z1B4MWZiOGhoRkFYUWtPTDhkSEtpQlotczRIbHM4eXU1ZU11QmhqaC1oVVl4RVFXdzBpbERnYVhDYUdSam9vSFBTVTYtSS1RYm03M011Q2JCQXl6U0lBR0RLeXlENTBLeDlaOUNjMGktNlpmWHdXVV8yU2RhN3U0VTRSMkJfUGtoQXkwZklqbjdrTWF3OXNncGRRSEh4eWd4UTh5N1BkdU5nREJGX0Mxek9lS0p1UmEzUUdvTVhZOWtuX09WQnduWkc3YlE5RW56M1JuVGtNM3EwbmY5SlEnLFxuICAgICAgICAgIGFsZzogJ1JTMjU2JyxcbiAgICAgICAgICB1c2U6ICdzaWcnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBlOiAnQVFBQicsXG4gICAgICAgICAga2lkOiAnYkh5alBZQjNBZklJOG9fWDN0R2tPQ1Z6VGhaelFOMlVLd0tWQ085RTlnWScsXG4gICAgICAgICAga3R5OiAnUlNBJyxcbiAgICAgICAgICBuOiAnemVXQXQyYVJpWDU3dkRkNzhPd0YtODNJZEVJMG1XaDA1aFh2QXpRWE1xdC1RUjQ5aGlJV2pKdFloMUIzc1l2YnA5QldDOHlvLUJsV1d0c0k1ZnU1bUNYc0JCcF9RX3NnZkFyRXNqaS1kV0VYYy14R1JOM2hwdGI5dFQtc2FiSVdtZDZReXc0ZFlDa3NyQnpKdlNMTy1IaTEwT3RkMk50elliQXFqWjZzb2FhQ2xTbnJPaXc5LUo0X0dGSHVZNWdPdzhQMHVhTWNsSTVzRExHTi1HX2F5R3BVSzd4ZWdmRUFkOVZCNm1oZGdXb1lFQVQ2eUVEbkZ0MEJ3dlRPWVQ2VElfNXY2c2NSRTdCeXdzcTVWMk16NVZaZTQzUE9jU3Qxbjd2SVo5Y1hYSFNHVzhKUHYxS0tjbmlIc3hJYzNGYzc0T2pjRWJxV0t3NDlrVkdDRTNheWZRJyxcbiAgICAgICAgICBhbGc6ICdSUzI1NicsXG4gICAgICAgICAgdXNlOiAnc2lnJ1xuICAgICAgICB9XVxuICAgIH0pXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgczNLZXlPcGVuaWRDb25maWd1cmF0aW9uID0gczNNb2NrLmNhbGwoMSkuYXJnc1swXS5pbnB1dC5LZXlcbiAgICBleHBlY3QoczNLZXlPcGVuaWRDb25maWd1cmF0aW9uKS50b0JlKCcud2VsbC1rbm93bi9vcGVuaWQtY29uZmlndXJhdGlvbicpXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgczNCb2R5T3BlbmlkQ29uZmlndXJhdGlvbiA9IEpTT04ucGFyc2UoczNNb2NrLmNhbGwoMSkuYXJnc1swXS5pbnB1dC5Cb2R5LnRvU3RyaW5nKCkpXG4gICAgZXhwZWN0KHMzQm9keU9wZW5pZENvbmZpZ3VyYXRpb24pLnRvRXF1YWwoe1xuICAgICAgaXNzdWVyOiAndGVzdC1pc3N1ZXIuY29tJyxcbiAgICAgIGp3a3NfdXJpOiAndGVzdC1pc3N1ZXIuY29tL2Rpc2NvdmVyeS9rZXlzJyxcbiAgICAgIHJlc3BvbnNlX3R5cGVzX3N1cHBvcnRlZDogW1xuICAgICAgICAndG9rZW4nXG4gICAgICBdLFxuICAgICAgaWRfdG9rZW5fc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZDogW1xuICAgICAgICAnUlMyNTYnXG4gICAgICBdLFxuICAgICAgc2NvcGVzX3N1cHBvcnRlZDogW1xuICAgICAgICAnb3BlbmlkJ1xuICAgICAgXSxcbiAgICAgIHRva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kc19zdXBwb3J0ZWQ6IFtcbiAgICAgICAgJ2NsaWVudF9zZWNyZXRfYmFzaWMnXG4gICAgICBdLFxuICAgICAgY2xhaW1zX3N1cHBvcnRlZDogW1xuICAgICAgICAnYXVkJyxcbiAgICAgICAgJ2V4cCcsXG4gICAgICAgICdpYXQnLFxuICAgICAgICAnaXNzJyxcbiAgICAgICAgJ3N1YidcbiAgICAgIF1cbiAgICB9KVxuICB9KVxufSlcblxuZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlciAoYjY0OiBzdHJpbmcpIHtcbiAgY29uc3QgYnl0ZVN0cmluZyA9IGF0b2IoYjY0KVxuICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlU3RyaW5nLmxlbmd0aClcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgYnl0ZUFycmF5W2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG4iXX0=