@cdklabs/multi-az-observability 0.0.1-alpha.32 → 0.0.1-alpha.34

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.
Files changed (31) hide show
  1. package/.jsii +4 -4
  2. package/API.md +6 -6
  3. package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +3 -3
  4. package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
  5. package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +6 -2
  6. package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
  7. package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +3 -3
  8. package/lib/alarmsandrules/OperationAlarmsAndRules.js +11 -11
  9. package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +6 -2
  10. package/lib/alarmsandrules/ServiceAlarmsAndRules.js +9 -9
  11. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  12. package/lib/basic_observability/BasicServiceDashboard.js +2 -2
  13. package/lib/basic_observability/BasicServiceMultiAZObservability.js +1 -1
  14. package/lib/canaries/src/canary.zip +0 -0
  15. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +10 -10
  16. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +13 -13
  17. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +3 -1
  18. package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
  19. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  20. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  21. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  22. package/lib/services/CanaryMetrics.js +1 -1
  23. package/lib/services/CanaryTestMetricsOverride.js +1 -1
  24. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  25. package/lib/services/InstrumentedServiceMultiAZObservability.js +3 -3
  26. package/lib/services/Operation.js +1 -1
  27. package/lib/services/OperationMetricDetails.js +1 -1
  28. package/lib/services/Service.js +1 -1
  29. package/lib/services/ServiceMetricDetails.js +1 -1
  30. package/lib/services/props/MetricDimensions.js +1 -1
  31. package/package.json +1 -1
package/.jsii CHANGED
@@ -7385,7 +7385,7 @@
7385
7385
  "elementtype": {
7386
7386
  "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
7387
7387
  },
7388
- "kind": "array"
7388
+ "kind": "map"
7389
7389
  }
7390
7390
  }
7391
7391
  },
@@ -7406,7 +7406,7 @@
7406
7406
  "elementtype": {
7407
7407
  "fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
7408
7408
  },
7409
- "kind": "array"
7409
+ "kind": "map"
7410
7410
  }
7411
7411
  }
7412
7412
  },
@@ -10387,6 +10387,6 @@
10387
10387
  "symbolId": "src/services/props/ServiceProps:ServiceProps"
10388
10388
  }
10389
10389
  },
10390
- "version": "0.0.1-alpha.32",
10391
- "fingerprint": "T1jwQGH0G+vtmLKUdOqx02gD29gdC22dnlMJuM8f420="
10390
+ "version": "0.0.1-alpha.34",
10391
+ "fingerprint": "aKp4DM9gnD7DGI8TTLCtrtzOAehmBkttZQ0qD34S4vA="
10392
10392
  }
package/API.md CHANGED
@@ -4895,8 +4895,8 @@ Service level alarms and rules using critical operations.
4895
4895
  | --- | --- | --- |
4896
4896
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm">regionalFaultCountServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for fault count exceeding a regional threshold for all critical operations. |
4897
4897
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.service">service</a></code> | <code><a href="#@cdklabs/multi-az-observability.IService">IService</a></code> | The service these alarms and rules are for. |
4898
- | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | The zonal aggregate isolated impact alarms. |
4899
- | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms">zonalServerSideIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | The zonal server-side isolated impact alarms. |
4898
+ | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}</code> | The zonal aggregate isolated impact alarms. |
4899
+ | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms">zonalServerSideIsolatedImpactAlarms</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}</code> | The zonal server-side isolated impact alarms. |
4900
4900
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityCanaryAlarm">regionalAvailabilityCanaryAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability impact of any critical operation as measured by the canary. |
4901
4901
  | <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyCanaryAlarm">regionalAvailabilityOrLatencyCanaryAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability or latency impact of any critical operation as measured by the canary. |
4902
4902
 
@@ -4929,10 +4929,10 @@ The service these alarms and rules are for.
4929
4929
  ##### `zonalAggregateIsolatedImpactAlarms`<sup>Required</sup> <a name="zonalAggregateIsolatedImpactAlarms" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms"></a>
4930
4930
 
4931
4931
  ```typescript
4932
- public readonly zonalAggregateIsolatedImpactAlarms: IAlarm[];
4932
+ public readonly zonalAggregateIsolatedImpactAlarms: {[ key: string ]: IAlarm};
4933
4933
  ```
4934
4934
 
4935
- - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
4935
+ - *Type:* {[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}
4936
4936
 
4937
4937
  The zonal aggregate isolated impact alarms.
4938
4938
 
@@ -4945,10 +4945,10 @@ that indicates it has isolated impact as measured by canaries or server-side.
4945
4945
  ##### `zonalServerSideIsolatedImpactAlarms`<sup>Required</sup> <a name="zonalServerSideIsolatedImpactAlarms" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms"></a>
4946
4946
 
4947
4947
  ```typescript
4948
- public readonly zonalServerSideIsolatedImpactAlarms: IAlarm[];
4948
+ public readonly zonalServerSideIsolatedImpactAlarms: {[ key: string ]: IAlarm};
4949
4949
  ```
4950
4950
 
4951
- - *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
4951
+ - *Type:* {[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}
4952
4952
 
4953
4953
  The zonal server-side isolated impact alarms.
4954
4954
 
@@ -27,13 +27,13 @@ export interface IOperationAlarmsAndRules {
27
27
  /**
28
28
  * The aggregate zonal alarm indexed by Availability Zone name.
29
29
  */
30
- readonly aggregateZonalAlarmsMap: {
30
+ readonly aggregateZonalAlarms: {
31
31
  [key: string]: IAlarm;
32
32
  };
33
33
  /**
34
34
  * The server side zonal alarms and rules, indexed by Availability Zone name.
35
35
  */
36
- readonly serverSideZonalAlarmsAndRulesMap: {
36
+ readonly serverSideZonalAlarmsAndRules: {
37
37
  [key: string]: IServerSideOperationZonalAlarmsAndRules;
38
38
  };
39
39
  /**
@@ -41,7 +41,7 @@ export interface IOperationAlarmsAndRules {
41
41
  *
42
42
  * @default - This is an empty dictionary if canary metric details are not provided
43
43
  */
44
- readonly canaryZonalAlarmsAndRulesMap?: {
44
+ readonly canaryZonalAlarmsAndRules?: {
45
45
  [key: string]: ICanaryOperationZonalAlarmsAndRules;
46
46
  };
47
47
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvSU9wZXJhdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbGFybXMgYW5kIHJ1bGVzIGZvciBhbiBvcGVyYXRpb24gZm9yIGJvdGggcmVnaW9uYWwgYW5kIHpvbmFsIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gYWxhcm0gaW5kaWNhdGluZyByZWdpb25hbGx5IHNjb3BlZCBpbXBhY3QsIG5vdCB6b25hbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxJbXBhY3RBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlWm9uYWxBbGFybXNNYXA6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzLCBpbmRleGVkIGJ5IEF2YWlsYWJpbGl0eSBab25lIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc01hcDoge1trZXk6IHN0cmluZ106IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc307XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGFuIGVtcHR5IGRpY3Rpb25hcnkgaWYgY2FuYXJ5IG1ldHJpYyBkZXRhaWxzIGFyZSBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXA/OiB7W2tleTogc3RyaW5nXTogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvSU9wZXJhdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbGFybXMgYW5kIHJ1bGVzIGZvciBhbiBvcGVyYXRpb24gZm9yIGJvdGggcmVnaW9uYWwgYW5kIHpvbmFsIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gYWxhcm0gaW5kaWNhdGluZyByZWdpb25hbGx5IHNjb3BlZCBpbXBhY3QsIG5vdCB6b25hbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxJbXBhY3RBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlWm9uYWxBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM6IHtba2V5OiBzdHJpbmddOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IHpvbmFsIGFsYXJtcyBhbmQgcnVsZXMsIGluZGV4ZWQgYnkgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZS5cbiAgICogXG4gICAqIEBkZWZhdWx0IC0gVGhpcyBpcyBhbiBlbXB0eSBkaWN0aW9uYXJ5IGlmIGNhbmFyeSBtZXRyaWMgZGV0YWlscyBhcmUgbm90IHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzPzoge1trZXk6IHN0cmluZ106IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzfTtcbn1cbiJdfQ==
@@ -13,14 +13,18 @@ export interface IServiceAlarmsAndRules {
13
13
  * triggers for availability or latency impact to any critical operation in that AZ
14
14
  * that indicates it has isolated impact as measured by canaries or server-side.
15
15
  */
16
- zonalAggregateIsolatedImpactAlarms: IAlarm[];
16
+ zonalAggregateIsolatedImpactAlarms: {
17
+ [key: string]: IAlarm;
18
+ };
17
19
  /**
18
20
  * The zonal server-side isolated impact alarms. There is 1 alarm per AZ that triggers
19
21
  * on availability or atency impact to any critical operation in that AZ. These are useful
20
22
  * for deployment monitoring to not inadvertently fail when a canary can't contact an AZ
21
23
  * during a deployment.
22
24
  */
23
- zonalServerSideIsolatedImpactAlarms: IAlarm[];
25
+ zonalServerSideIsolatedImpactAlarms: {
26
+ [key: string]: IAlarm;
27
+ };
24
28
  /**
25
29
  * An alarm for regional availability or latency impact of any critical operation as measured by the canary.
26
30
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZpY2VBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZpY2VBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiB7W2tleTogc3RyaW5nXTogSUFsYXJtfTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiB7W2tleTogc3RyaW5nXTogSUFsYXJtfTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xufVxuIl19
@@ -26,7 +26,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
26
26
  /**
27
27
  * The aggregate zonal alarm indexed by Availability Zone Id.
28
28
  */
29
- readonly aggregateZonalAlarmsMap: {
29
+ readonly aggregateZonalAlarms: {
30
30
  [key: string]: IAlarm;
31
31
  };
32
32
  /**
@@ -36,7 +36,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
36
36
  /**
37
37
  * The server side zonal alarms and rules, indexed by Availability Zone name.
38
38
  */
39
- readonly serverSideZonalAlarmsAndRulesMap: {
39
+ readonly serverSideZonalAlarmsAndRules: {
40
40
  [key: string]: IServerSideOperationZonalAlarmsAndRules;
41
41
  };
42
42
  /**
@@ -44,7 +44,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
44
44
  *
45
45
  * @default - This is an empty dictionary if canary metric details are not provided
46
46
  */
47
- readonly canaryZonalAlarmsAndRulesMap?: {
47
+ readonly canaryZonalAlarmsAndRules?: {
48
48
  [key: string]: ICanaryOperationZonalAlarmsAndRules;
49
49
  };
50
50
  constructor(scope: Construct, id: string, props: OperationAlarmsAndRulesProps);
@@ -16,9 +16,9 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
16
16
  constructor(scope, id, props) {
17
17
  super(scope, id);
18
18
  this.operation = props.operation;
19
- this.aggregateZonalAlarmsMap = {};
20
- this.serverSideZonalAlarmsAndRulesMap = {};
21
- this.canaryZonalAlarmsAndRulesMap = {};
19
+ this.aggregateZonalAlarms = {};
20
+ this.serverSideZonalAlarmsAndRules = {};
21
+ this.canaryZonalAlarmsAndRules = {};
22
22
  let loadBalancerArn = '';
23
23
  if (props.loadBalancer) {
24
24
  loadBalancerArn = props.loadBalancer
@@ -60,7 +60,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
60
60
  counter: index,
61
61
  nameSuffix: '-server'
62
62
  });
63
- this.serverSideZonalAlarmsAndRulesMap[availabilityZone] = serverSideZonalAlarmsAndRules;
63
+ this.serverSideZonalAlarmsAndRules[availabilityZone] = serverSideZonalAlarmsAndRules;
64
64
  if (props.operation.canaryMetricDetails) {
65
65
  let canaryZonalAlarmsAndRules = new CanaryOperationZonalAlarmsAndRules_1.CanaryOperationZonalAlarmsAndRules(this, props.operation.operationName +
66
66
  'AZ' +
@@ -71,7 +71,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
71
71
  counter: index,
72
72
  nameSuffix: '-canary'
73
73
  });
74
- this.canaryZonalAlarmsAndRulesMap[availabilityZone] = canaryZonalAlarmsAndRules;
74
+ this.canaryZonalAlarmsAndRules[availabilityZone] = canaryZonalAlarmsAndRules;
75
75
  let aggAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName +
76
76
  'AZ' +
77
77
  index +
@@ -80,7 +80,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
80
80
  '-' +
81
81
  props.operation.operationName.toLowerCase() +
82
82
  '-aggregate-isolated-az-impact',
83
- alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(this.canaryZonalAlarmsAndRulesMap[availabilityZone].isolatedImpactAlarm, this.serverSideZonalAlarmsAndRulesMap[availabilityZone].isolatedImpactAlarm),
83
+ alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(this.canaryZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm, this.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm),
84
84
  actionsEnabled: false,
85
85
  alarmDescription: '{"loadBalancer":"' +
86
86
  loadBalancerArn +
@@ -88,10 +88,10 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
88
88
  availabilityZoneId +
89
89
  '"}',
90
90
  });
91
- this.aggregateZonalAlarmsMap[availabilityZone] = aggAlarm;
91
+ this.aggregateZonalAlarms[availabilityZone] = aggAlarm;
92
92
  }
93
93
  else {
94
- this.aggregateZonalAlarmsMap[availabilityZone] = this.serverSideZonalAlarmsAndRulesMap[availabilityZone].isolatedImpactAlarm;
94
+ this.aggregateZonalAlarms[availabilityZone] = this.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm;
95
95
  }
96
96
  });
97
97
  // Create a regional impact alarm that is triggered if regional
@@ -100,16 +100,16 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
100
100
  if (props.operation.canaryMetricDetails) {
101
101
  this.regionalImpactAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName + "-regional-impact-alarm", {
102
102
  compositeAlarmName: `${props.operation.service.serviceName.toLowerCase()}-${props.operation.operationName.toLowerCase()}-regional-impact`,
103
- alarmRule: aws_cloudwatch_1.AlarmRule.allOf(aws_cloudwatch_1.AlarmRule.anyOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, this.canaryRegionalAlarmsAndRules.availabilityOrLatencyAlarm), aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarmsMap))))
103
+ alarmRule: aws_cloudwatch_1.AlarmRule.allOf(aws_cloudwatch_1.AlarmRule.anyOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, this.canaryRegionalAlarmsAndRules.availabilityOrLatencyAlarm), aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarms))))
104
104
  });
105
105
  }
106
106
  else {
107
107
  this.regionalImpactAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName + "-regional-impact-alarm", {
108
108
  compositeAlarmName: `${props.operation.service.serviceName.toLowerCase()}-${props.operation.operationName.toLowerCase()}-regional-impact`,
109
- alarmRule: aws_cloudwatch_1.AlarmRule.allOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarmsMap))))
109
+ alarmRule: aws_cloudwatch_1.AlarmRule.allOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarms))))
110
110
  });
111
111
  }
112
112
  }
113
113
  }
114
114
  exports.OperationAlarmsAndRules = OperationAlarmsAndRules;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBK0U7QUFFL0UsMkNBQXVDO0FBQ3ZDLG1HQUFnRztBQUNoRyw2RkFBMEY7QUFPMUYsMkdBQXdHO0FBQ3hHLHFHQUFrRztBQUdsRzs7R0FFRztBQUNILE1BQWEsdUJBQ1gsU0FBUSxzQkFBUztJQXVDakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUM7UUFFdkMsSUFBSSxlQUFlLEdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLGVBQWUsR0FBSSxLQUFLLENBQUMsWUFBaUM7aUJBQ3ZELGVBQWUsQ0FBQztRQUNyQixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZ0NBQWdDO1lBQ25DLElBQUkscUZBQXlDLENBQzNDLElBQUksRUFDSixLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRywwQkFBMEIsRUFDMUQ7Z0JBQ0UseUJBQXlCLEVBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsbUNBQW1DO2dCQUNyRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLDhCQUE4QjtnQkFDcEUsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLFNBQVM7cUJBQzNDLHVDQUF1QztvQkFDeEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsdUNBQXVDO29CQUN6RCxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DO2dCQUNoRSxVQUFVLEVBQUUsU0FBUzthQUN0QixDQUNGLENBQUM7UUFFSiw0REFBNEQ7UUFDNUQsVUFBVTtRQUNWLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyw0QkFBNEI7Z0JBQy9CLElBQUksNkVBQXFDLENBQ3ZDLElBQUksRUFDSixLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsRUFDdEQ7b0JBQ0UseUJBQXlCLEVBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsbUJBQW1CO3lCQUNoQywrQkFBK0I7b0JBQ3BDLG9CQUFvQixFQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQjtvQkFDaEUsVUFBVSxFQUFFLFNBQVM7aUJBQ3RCLENBQ0YsQ0FBQztRQUNOLENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDaEcsSUFBSSxRQUFRLEdBQVcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLGtCQUFrQixHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkcsSUFBSSw2QkFBNkIsR0FBNEMsSUFBSSwrRUFBc0MsQ0FDckgsSUFBSSxFQUNKLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYTtnQkFDM0IsSUFBSTtnQkFDSixLQUFLO2dCQUNMLCtCQUErQixFQUNqQztnQkFDRSxnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLDRCQUE0QixFQUFFLEtBQUs7Z0JBQ25DLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFVBQVUsRUFBRSxTQUFTO2FBQ3RCLENBQ0YsQ0FBQztZQUVGLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLDZCQUE2QixDQUFDO1lBRXhGLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLHlCQUF5QixHQUF3QyxJQUFJLHVFQUFrQyxDQUN6RyxJQUFJLEVBQ0osS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhO29CQUMzQixJQUFJO29CQUNKLEtBQUs7b0JBQ0wsMkJBQTJCLEVBQzdCO29CQUNFLGdCQUFnQixFQUFFLGdCQUFnQjtvQkFDbEMsNEJBQTRCLEVBQUUsS0FBSztvQkFDbkMsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsVUFBVSxFQUFFLFNBQVM7aUJBQ3RCLENBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsNEJBQTZCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyx5QkFBeUIsQ0FBQztnQkFFakYsSUFBSSxRQUFRLEdBQVcsSUFBSSwrQkFBYyxDQUN2QyxJQUFJLEVBQ0osS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhO29CQUMzQixJQUFJO29CQUNKLEtBQUs7b0JBQ0wsbUNBQW1DLEVBQ3JDO29CQUNFLGtCQUFrQixFQUNoQixrQkFBa0I7d0JBQ2xCLEdBQUc7d0JBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFO3dCQUMzQywrQkFBK0I7b0JBQ2pDLFNBQVMsRUFBRSwwQkFBUyxDQUFDLEtBQUssQ0FDeEIsSUFBSSxDQUFDLDRCQUE2QixDQUFDLGdCQUFnQixDQUFDLENBQUMsbUJBQW1CLEVBQ3hFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLG1CQUFtQixDQUM1RTtvQkFDRCxjQUFjLEVBQUUsS0FBSztvQkFDckIsZ0JBQWdCLEVBQ2QsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixJQUFJO2lCQUNQLENBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDNUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLG1CQUFtQixDQUFBO1lBQzlILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILCtEQUErRDtRQUMvRCxvRUFBb0U7UUFDcEUsbUJBQW1CO1FBQ25CLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLCtCQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLHdCQUF3QixFQUFFO2dCQUM1RyxrQkFBa0IsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCO2dCQUN6SSxTQUFTLEVBQUUsMEJBQVMsQ0FBQyxLQUFLLENBQ3hCLDBCQUFTLENBQUMsS0FBSyxDQUNiLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQywwQkFBMEIsRUFDaEUsSUFBSSxDQUFDLDRCQUE2QixDQUFDLDBCQUEwQixDQUM5RCxFQUNELDBCQUFTLENBQUMsR0FBRyxDQUNYLDBCQUFTLENBQUMsS0FBSyxDQUNiLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDL0MsQ0FDRixDQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSwrQkFBYyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFBRTtnQkFDNUcsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGtCQUFrQjtnQkFDekksU0FBUyxFQUFFLDBCQUFTLENBQUMsS0FBSyxDQUN4QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsMEJBQTBCLEVBQ2hFLDBCQUFTLENBQUMsR0FBRyxDQUNYLDBCQUFTLENBQUMsS0FBSyxDQUNiLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDL0MsQ0FDRixDQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRNRCwwREFzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBbGFybVJ1bGUsIENvbXBvc2l0ZUFsYXJtLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBCYXNlTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uIGZvciBib3RoIHJlZ2lvbmFsIGFuZCB6b25hbCBtZXRyaWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBjcmVhdGVkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uOiBJT3BlcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBpbmRpY2F0aW5nIHJlZ2lvbmFsbHkgc2NvcGVkIGltcGFjdCwgbm90IHpvbmFsXG4gICAqL1xuICByZWFkb25seSByZWdpb25hbEltcGFjdEFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzLCBpbmRleGVkIGJ5IEF2YWlsYWJpbGl0eSBab25lIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc01hcDoge1trZXk6IHN0cmluZ106IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc307XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGFuIGVtcHR5IGRpY3Rpb25hcnkgaWYgY2FuYXJ5IG1ldHJpYyBkZXRhaWxzIGFyZSBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXA/OiB7W2tleTogc3RyaW5nXTogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMub3BlcmF0aW9uID0gcHJvcHMub3BlcmF0aW9uO1xuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXNNYXAgPSB7fTtcbiAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzTWFwID0ge307XG4gICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzTWFwID0ge307XG5cbiAgICBsZXQgbG9hZEJhbGFuY2VyQXJuOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChwcm9wcy5sb2FkQmFsYW5jZXIpIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybiA9IChwcm9wcy5sb2FkQmFsYW5jZXIgYXMgQmFzZUxvYWRCYWxhbmNlcilcbiAgICAgICAgLmxvYWRCYWxhbmNlckFybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRoZSByZWdpb25hbCBpbXBhY3QgYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgLy8gZm9yIGNvbnRyaWJ1dG9ycyB0byByZWdpb25hbCBmYXVsdHMgYW5kIGxhdGVuY3lcbiAgICB0aGlzLnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnU2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgLy8gSWYgY2FuYXJ5IG1ldHJpY3MgYXJlIGRlZmluZWQsIGNyZWF0ZSB0aGUgcmVnaW9uYWwgaW1wYWN0XG4gICAgLy8gYWxhcm1zIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgICAgbmV3IENhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlSZWdpb25hbEFsYXJtcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgem9uYWwgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtc1xuICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgbGV0IHNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAnQVonICtcbiAgICAgICAgICBpbmRleCArXG4gICAgICAgICAgJ1NlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wczogcHJvcHMsXG4gICAgICAgICAgY291bnRlcjogaW5kZXgsXG4gICAgICAgICAgbmFtZVN1ZmZpeDogJy1zZXJ2ZXInXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzTWFwW2F2YWlsYWJpbGl0eVpvbmVdID0gc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgICBsZXQgY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlczogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgICBvcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGNvdW50ZXI6IGluZGV4LFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJy1jYW5hcnknXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXAhW2F2YWlsYWJpbGl0eVpvbmVdID0gY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcztcblxuICAgICAgICBsZXQgYWdnQWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0FnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1hZ2dyZWdhdGUtaXNvbGF0ZWQtYXotaW1wYWN0JyxcbiAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXAhW2F2YWlsYWJpbGl0eVpvbmVdLmlzb2xhdGVkSW1wYWN0QWxhcm0sXG4gICAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNNYXBbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICd7XCJsb2FkQmFsYW5jZXJcIjpcIicgK1xuICAgICAgICAgICAgICBsb2FkQmFsYW5jZXJBcm4gK1xuICAgICAgICAgICAgICAnXCIsXCJhei1pZFwiOlwiJyArXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICdcIn0nLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVdID0gYWdnQWxhcm07XG4gICAgICB9IGVsc2UgeyAgICAgICBcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcFthdmFpbGFiaWxpdHlab25lXSA9IHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNNYXBbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSAgICBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHJlZ2lvbmFsIGltcGFjdCBhbGFybSB0aGF0IGlzIHRyaWdnZXJlZCBpZiByZWdpb25hbFxuICAgIC8vIG1ldHJpY3MgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGRyb3AgYW5kIHRoZXJlIGlzbid0IGEgc2luZ2xlXG4gICAgLy8gQVogaW1wYWN0IGFsYXJtIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5yZWdpb25hbEltcGFjdEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgXCItcmVnaW9uYWwtaW1wYWN0LWFsYXJtXCIsIHtcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBgJHtwcm9wcy5vcGVyYXRpb24uc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS0ke3Byb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCl9LXJlZ2lvbmFsLWltcGFjdGAsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKFxuICAgICAgICAgIEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMhLmF2YWlsYWJpbGl0eU9yTGF0ZW5jeUFsYXJtXG4gICAgICAgICAgKSxcbiAgICAgICAgICBBbGFybVJ1bGUubm90KFxuICAgICAgICAgICAgQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXNNYXApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsSW1wYWN0QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyBcIi1yZWdpb25hbC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6IGAke3Byb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LSR7cHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKX0tcmVnaW9uYWwtaW1wYWN0YCxcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYWxsT2YoXG4gICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlUmVnaW9uYWxBbGFybXNBbmRSdWxlcy5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSwgICAgIFxuICAgICAgICAgIEFsYXJtUnVsZS5ub3QoXG4gICAgICAgICAgICBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXModGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBK0U7QUFFL0UsMkNBQXVDO0FBQ3ZDLG1HQUFnRztBQUNoRyw2RkFBMEY7QUFPMUYsMkdBQXdHO0FBQ3hHLHFHQUFrRztBQUdsRzs7R0FFRztBQUNILE1BQWEsdUJBQ1gsU0FBUSxzQkFBUztJQXVDakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFFcEMsSUFBSSxlQUFlLEdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLGVBQWUsR0FBSSxLQUFLLENBQUMsWUFBaUM7aUJBQ3ZELGVBQWUsQ0FBQztRQUNyQixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZ0NBQWdDO1lBQ25DLElBQUkscUZBQXlDLENBQzNDLElBQUksRUFDSixLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRywwQkFBMEIsRUFDMUQ7Z0JBQ0UseUJBQXlCLEVBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsbUNBQW1DO2dCQUNyRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLDhCQUE4QjtnQkFDcEUsNkJBQTZCLEVB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QUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFBRTtnQkFDNUcsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGtCQUFrQjtnQkFDekksU0FBUyxFQUFFLDBCQUFTLENBQUMsS0FBSyxDQUN4QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsMEJBQTBCLEVBQ2hFLDBCQUFTLENBQUMsR0FBRyxDQUNYLDBCQUFTLENBQUMsS0FBSyxDQUNiLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FDNUMsQ0FDRixDQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRNRCwwREFzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBbGFybVJ1bGUsIENvbXBvc2l0ZUFsYXJtLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBCYXNlTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uIGZvciBib3RoIHJlZ2lvbmFsIGFuZCB6b25hbCBtZXRyaWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBjcmVhdGVkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uOiBJT3BlcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZ3JlZ2F0ZVpvbmFsQWxhcm1zOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBpbmRpY2F0aW5nIHJlZ2lvbmFsbHkgc2NvcGVkIGltcGFjdCwgbm90IHpvbmFsXG4gICAqL1xuICByZWFkb25seSByZWdpb25hbEltcGFjdEFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzLCBpbmRleGVkIGJ5IEF2YWlsYWJpbGl0eSBab25lIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlczoge1trZXk6IHN0cmluZ106IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc307XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGFuIGVtcHR5IGRpY3Rpb25hcnkgaWYgY2FuYXJ5IG1ldHJpYyBkZXRhaWxzIGFyZSBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXM/OiB7W2tleTogc3RyaW5nXTogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMub3BlcmF0aW9uID0gcHJvcHMub3BlcmF0aW9uO1xuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMgPSB7fTtcbiAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzID0ge307XG4gICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzID0ge307XG5cbiAgICBsZXQgbG9hZEJhbGFuY2VyQXJuOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChwcm9wcy5sb2FkQmFsYW5jZXIpIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybiA9IChwcm9wcy5sb2FkQmFsYW5jZXIgYXMgQmFzZUxvYWRCYWxhbmNlcilcbiAgICAgICAgLmxvYWRCYWxhbmNlckFybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRoZSByZWdpb25hbCBpbXBhY3QgYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgLy8gZm9yIGNvbnRyaWJ1dG9ycyB0byByZWdpb25hbCBmYXVsdHMgYW5kIGxhdGVuY3lcbiAgICB0aGlzLnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnU2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgLy8gSWYgY2FuYXJ5IG1ldHJpY3MgYXJlIGRlZmluZWQsIGNyZWF0ZSB0aGUgcmVnaW9uYWwgaW1wYWN0XG4gICAgLy8gYWxhcm1zIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgICAgbmV3IENhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlSZWdpb25hbEFsYXJtcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgem9uYWwgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtc1xuICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgbGV0IHNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAnQVonICtcbiAgICAgICAgICBpbmRleCArXG4gICAgICAgICAgJ1NlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wczogcHJvcHMsXG4gICAgICAgICAgY291bnRlcjogaW5kZXgsXG4gICAgICAgICAgbmFtZVN1ZmZpeDogJy1zZXJ2ZXInXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzW2F2YWlsYWJpbGl0eVpvbmVdID0gc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgICBsZXQgY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlczogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgICBvcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGNvdW50ZXI6IGluZGV4LFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJy1jYW5hcnknXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMhW2F2YWlsYWJpbGl0eVpvbmVdID0gY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcztcblxuICAgICAgICBsZXQgYWdnQWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0FnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1hZ2dyZWdhdGUtaXNvbGF0ZWQtYXotaW1wYWN0JyxcbiAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMhW2F2YWlsYWJpbGl0eVpvbmVdLmlzb2xhdGVkSW1wYWN0QWxhcm0sXG4gICAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICd7XCJsb2FkQmFsYW5jZXJcIjpcIicgK1xuICAgICAgICAgICAgICBsb2FkQmFsYW5jZXJBcm4gK1xuICAgICAgICAgICAgICAnXCIsXCJhei1pZFwiOlwiJyArXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICdcIn0nLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdID0gYWdnQWxhcm07XG4gICAgICB9IGVsc2UgeyAgICAgICBcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc1thdmFpbGFiaWxpdHlab25lXSA9IHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSAgICBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHJlZ2lvbmFsIGltcGFjdCBhbGFybSB0aGF0IGlzIHRyaWdnZXJlZCBpZiByZWdpb25hbFxuICAgIC8vIG1ldHJpY3MgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGRyb3AgYW5kIHRoZXJlIGlzbid0IGEgc2luZ2xlXG4gICAgLy8gQVogaW1wYWN0IGFsYXJtIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5yZWdpb25hbEltcGFjdEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgXCItcmVnaW9uYWwtaW1wYWN0LWFsYXJtXCIsIHtcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBgJHtwcm9wcy5vcGVyYXRpb24uc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS0ke3Byb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCl9LXJlZ2lvbmFsLWltcGFjdGAsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKFxuICAgICAgICAgIEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMhLmF2YWlsYWJpbGl0eU9yTGF0ZW5jeUFsYXJtXG4gICAgICAgICAgKSxcbiAgICAgICAgICBBbGFybVJ1bGUubm90KFxuICAgICAgICAgICAgQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsSW1wYWN0QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyBcIi1yZWdpb25hbC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6IGAke3Byb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LSR7cHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKX0tcmVnaW9uYWwtaW1wYWN0YCxcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYWxsT2YoXG4gICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlUmVnaW9uYWxBbGFybXNBbmRSdWxlcy5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSwgICAgIFxuICAgICAgICAgIEFsYXJtUnVsZS5ub3QoXG4gICAgICAgICAgICBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXModGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtcylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -16,14 +16,18 @@ export declare class ServiceAlarmsAndRules extends Construct implements IService
16
16
  * triggers for availability or latency impact to any critical operation in that AZ
17
17
  * that indicates it has isolated impact as measured by canaries or server-side.
18
18
  */
19
- zonalAggregateIsolatedImpactAlarms: IAlarm[];
19
+ zonalAggregateIsolatedImpactAlarms: {
20
+ [key: string]: IAlarm;
21
+ };
20
22
  /**
21
23
  * The zonal server-side isolated impact alarms. There is 1 alarm per AZ that triggers
22
24
  * on availability or atency impact to any critical operation in that AZ. These are useful
23
25
  * for deployment monitoring to not inadvertently fail when a canary can't contact an AZ
24
26
  * during a deployment.
25
27
  */
26
- zonalServerSideIsolatedImpactAlarms: IAlarm[];
28
+ zonalServerSideIsolatedImpactAlarms: {
29
+ [key: string]: IAlarm;
30
+ };
27
31
  /**
28
32
  * An alarm for regional availability or latency impact of any critical operation as measured by the canary.
29
33
  */
@@ -19,12 +19,12 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
19
19
  let criticalOperations = props.service.operations
20
20
  .filter((x) => x.critical == true)
21
21
  .map((x) => x.operationName);
22
- this.zonalAggregateIsolatedImpactAlarms = [];
23
- this.zonalServerSideIsolatedImpactAlarms = [];
22
+ this.zonalAggregateIsolatedImpactAlarms = {};
23
+ this.zonalServerSideIsolatedImpactAlarms = {};
24
24
  props.service.availabilityZoneNames.forEach((availabilityZone, index) => {
25
25
  let azLetter = availabilityZone.substring(availabilityZone.length - 1);
26
26
  let availabilityZonedId = props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(azLetter);
27
- this.zonalAggregateIsolatedImpactAlarms.push(new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceAggregateIsolatedImpactAlarm', {
27
+ this.zonalAggregateIsolatedImpactAlarms[availabilityZone] = new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceAggregateIsolatedImpactAlarm', {
28
28
  compositeAlarmName: availabilityZonedId +
29
29
  '-' +
30
30
  props.service.serviceName.toLowerCase() +
@@ -34,9 +34,9 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
34
34
  filtered[key] = value;
35
35
  }
36
36
  return filtered;
37
- }, {})).map((x) => x.aggregateZonalAlarmsMap[availabilityZone])),
38
- }));
39
- this.zonalServerSideIsolatedImpactAlarms.push(new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceServerSideIsolatedImpactAlarm', {
37
+ }, {})).map((x) => x.aggregateZonalAlarms[availabilityZone])),
38
+ });
39
+ this.zonalServerSideIsolatedImpactAlarms[availabilityZone] = new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceServerSideIsolatedImpactAlarm', {
40
40
  compositeAlarmName: availabilityZonedId +
41
41
  '-' +
42
42
  props.service.serviceName.toLowerCase() +
@@ -46,8 +46,8 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
46
46
  filtered[key] = value;
47
47
  }
48
48
  return filtered;
49
- }, {})).map((x) => x.serverSideZonalAlarmsAndRulesMap[availabilityZone].isolatedImpactAlarm)),
50
- }));
49
+ }, {})).map((x) => x.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm)),
50
+ });
51
51
  });
52
52
  let keyPrefix = '';
53
53
  let regionalOperationFaultCountMetrics = {};
@@ -185,4 +185,4 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
185
185
  }
186
186
  }
187
187
  exports.ServiceAlarmsAndRules = ServiceAlarmsAndRules;
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL1NlcnZpY2VBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZDQUFpQztBQUNqQywrREFRb0M7QUFDcEMsMkNBQXVDO0FBS3ZDLHdGQUFxRjtBQUVyRixnRkFBNkU7QUFDN0UsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxxQkFDWCxTQUFRLHNCQUFTO0lBK0NqQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksa0JBQWtCLEdBQWEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2FBQ3hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsRUFBRSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxRQUFRLEdBQVcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLG1CQUFtQixHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUMsUUFB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YXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEFsYXJtLFxuICBBbGFybVJ1bGUsXG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgQ29tcG9zaXRlQWxhcm0sXG4gIElBbGFybSxcbiAgSU1ldHJpYyxcbiAgTWF0aEV4cHJlc3Npb24sXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMgfSBmcm9tICcuL3Byb3BzL1NlcnZpY2VBbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFJlZ2lvbmFsQXZhaWxhYmlsaXR5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvSVNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5TWV0cmljVHlwZSB9IGZyb20gJy4uL3V0aWxpdGllcy9BdmFpbGFiaWxpdHlNZXRyaWNUeXBlJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5cbi8qKlxuICogU2VydmljZSBsZXZlbCBhbGFybXMgYW5kIHJ1bGVzIHVzaW5nIGNyaXRpY2FsIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VBbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgLy9yZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBzZXJ2ZXItc2lkZS5cbiAgICovXG4gIC8vcmVnaW9uYWxBdmFpbGFiaWxpdHlTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIGZhdWx0IGNvdW50IGV4Y2VlZGluZyBhIHJlZ2lvbmFsIHRocmVzaG9sZCBmb3IgYWxsIGNyaXRpY2FsIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWdpb25hbEZhdWx0Q291bnRTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2U7XG5cbiAgICBsZXQgY3JpdGljYWxPcGVyYXRpb25zOiBzdHJpbmdbXSA9IHByb3BzLnNlcnZpY2Uub3BlcmF0aW9uc1xuICAgICAgLmZpbHRlcigoeCkgPT4geC5jcml0aWNhbCA9PSB0cnVlKVxuICAgICAgLm1hcCgoeCkgPT4geC5vcGVyYXRpb25OYW1lKTtcbiAgICB0aGlzLnpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXMgPSBbXTtcbiAgICB0aGlzLnpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zID0gW107XG5cbiAgICBwcm9wcy5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lZElkOiBzdHJpbmcgPSBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgIHRoaXMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcy5wdXNoKFxuICAgICAgICBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnQVonICsgaW5kZXggKyAnU2VydmljZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZWRJZCArXG4gICAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAgICctaXNvbGF0ZWQtaW1wYWN0LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICkubWFwKCh4KSA9PiB4LmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVdKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXMucHVzaChcbiAgICAgICAgbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0FaJyArIGluZGV4ICsgJ1NlcnZpY2VTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lZElkICtcbiAgICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1pc29sYXRlZC1pbXBhY3Qtc2VydmVyLXNpZGUtYWxhcm0nLFxuICAgICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLm1hcCgoeCkgPT4geC5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc01hcFthdmFpbGFiaWxpdHlab25lXS5pc29sYXRlZEltcGFjdEFsYXJtKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQga2V5UHJlZml4OiBzdHJpbmcgPSAnJztcblxuICAgIGxldCByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBrZXlQcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleVByZWZpeCk7XG5cbiAgICAgICAgcmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljc1trZXlQcmVmaXhdID1cbiAgICAgICAgICBSZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MuY3JlYXRlUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWMoe1xuICAgICAgICAgICAgbGFiZWw6IHgub3BlcmF0aW9uTmFtZSArICcgZmF1bHQgY291bnQnLFxuICAgICAgICAgICAgbWV0cmljRGV0YWlsczogeC5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG1ldHJpY1R5cGU6IEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuRkFVTFRfQ09VTlQsXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGxldCByZWdpb25hbEZhdWx0Q291bnQ6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgdXNpbmdNZXRyaWNzOiByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzLFxuICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljcykuam9pbignKycpLFxuICAgICAgbGFiZWw6IHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUgKyAnIGZhdWx0IGNvdW50JyxcbiAgICAgIHBlcmlvZDogcHJvcHMuc2VydmljZS5wZXJpb2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybSA9IG5ldyBBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnUmVnaW9uYWxGYXVsdENvdW50JyxcbiAgICAgIHtcbiAgICAgICAgYWxhcm1OYW1lOlxuICAgICAgICAgIEZuLnJlZignQVdTOjpSZWdpb24nKSArXG4gICAgICAgICAgJy0nICtcbiAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICctZmF1bHQtY291bnQnLFxuICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMyxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDUsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIHRocmVzaG9sZDogcHJvcHMuc2VydmljZS5mYXVsdENvdW50VGhyZXNob2xkLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICdDb3VudHMgZmF1bHRzIGZyb20gYWxsIGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGUgc2VydmljZScsXG4gICAgICAgIG1ldHJpYzogcmVnaW9uYWxGYXVsdENvdW50LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbGV0IGNhbmFyeUFsYXJtczogSUFsYXJtW10gPSBPYmplY3QudmFsdWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgKSxcbiAgICApXG4gICAgICAucmVkdWNlKChmaWx0ZXJlZCwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZpbHRlcmVkLnB1c2godmFsdWUuY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfSwgW10gYXMgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNbXSlcbiAgICAgIC5tYXAoKHgpID0+IHguYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0pO1xuXG4gICAgaWYgKFxuICAgICAgY2FuYXJ5QWxhcm1zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGNhbmFyeUFsYXJtcyAhPT0gbnVsbCAmJlxuICAgICAgY2FuYXJ5QWxhcm1zLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMucmVnaW9uYWxBdmFpbGFiaWxpdHlPckxhdGVuY3lDYW5hcnlBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VDYW5hcnlBdmFpbGFiaWxpdHlPckxhdGVuY3lBZ2dyZWdhdGVBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAnLWNhbmFyeS1hdmFpbGFiaWxpdHktb3ItbGF0ZW5jeS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmNhbmFyeUFsYXJtcyksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXM6IElBbGFybVtdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzKS5yZWR1Y2UoXG4gICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgZmlsdGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnJlZHVjZSgoZmlsdGVyZWQsIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaWx0ZXJlZC5wdXNoKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgIH0sIFtdIGFzIElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzW10pXG4gICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKTtcblxuICAgIGlmIChcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXMgIT09IG51bGwgJiZcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdTZXJ2aWNlQ2FuYXJ5QXZhaWxhYmlsaXR5QWdncmVnYXRlQWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1jYW5hcnktYXZhaWxhYmlsaXR5LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4uY2FuYXJ5QXZhaWxhYmlsaXR5QWxhcm1zKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyp0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlU2VydmVyU2lkZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAnLScgK1xuICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgJy1zZXJ2ZXItc2lkZS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSksXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICk7Ki9cblxuICAgIC8qdGhpcy5yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnU2VydmljZVNlcnZlclNpZGVBdmFpbGFiaWxpdHlBbGFybScsXG4gICAgICB7XG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAnLXNlcnZlci1zaWRlLWF2YWlsYWJpbGl0eS1hbGFybScsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHguc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgKTsqL1xuICB9XG59XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL1NlcnZpY2VBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZDQUFpQztBQUNqQywrREFRb0M7QUFDcEMsMkNBQXVDO0FBS3ZDLHdGQUFxRjtBQUVyRixnRkFBNkU7QUFDN0UsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxxQkFDWCxTQUFRLHNCQUFTO0lBK0NqQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksa0JBQWtCLEdBQWEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2FBQ3hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsRUFBRSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxRQUFRLEdBQVcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLG1CQUFtQixHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUMsUUFB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bGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm0sXG4gIEFsYXJtUnVsZSxcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBDb21wb3NpdGVBbGFybSxcbiAgSUFsYXJtLFxuICBJTWV0cmljLFxuICBNYXRoRXhwcmVzc2lvbixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSVNlcnZpY2VBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQWxhcm1zQW5kUnVsZXNQcm9wcyB9IGZyb20gJy4vcHJvcHMvU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMnO1xuaW1wb3J0IHsgUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzIH0gZnJvbSAnLi4vbWV0cmljcy9SZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MnO1xuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9JU2VydmljZSc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlNZXRyaWNUeXBlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL0F2YWlsYWJpbGl0eU1ldHJpY1R5cGUnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUFsYXJtc0FuZFJ1bGVzXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSB0aGVzZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBmb3JcbiAgICovXG4gIHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgem9uYWwgYWdncmVnYXRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXRcbiAgICogdHJpZ2dlcnMgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCB0byBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGluIHRoYXQgQVpcbiAgICogdGhhdCBpbmRpY2F0ZXMgaXQgaGFzIGlzb2xhdGVkIGltcGFjdCBhcyBtZWFzdXJlZCBieSBjYW5hcmllcyBvciBzZXJ2ZXItc2lkZS5cbiAgICovXG4gIHpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBUaGUgem9uYWwgc2VydmVyLXNpZGUgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtcy4gVGhlcmUgaXMgMSBhbGFybSBwZXIgQVogdGhhdCB0cmlnZ2Vyc1xuICAgKiBvbiBhdmFpbGFiaWxpdHkgb3IgYXRlbmN5IGltcGFjdCB0byBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGluIHRoYXQgQVouIFRoZXNlIGFyZSB1c2VmdWxcbiAgICogZm9yIGRlcGxveW1lbnQgbW9uaXRvcmluZyB0byBub3QgaW5hZHZlcnRlbnRseSBmYWlsIHdoZW4gYSBjYW5hcnkgY2FuJ3QgY29udGFjdCBhbiBBWlxuICAgKiBkdXJpbmcgYSBkZXBsb3ltZW50LlxuICAgKi9cbiAgem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeS5cbiAgICovXG4gIHJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5Q2FuYXJ5QWxhcm0/OiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeS5cbiAgICovXG4gIHJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0/OiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3Qgb2YgYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBhcyBtZWFzdXJlZCBieSB0aGUgc2VydmVyLXNpZGUuXG4gICAqL1xuICAvL3JlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgLy9yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXJ2aWNlQWxhcm1zQW5kUnVsZXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlID0gcHJvcHMuc2VydmljZTtcblxuICAgIGxldCBjcml0aWNhbE9wZXJhdGlvbnM6IHN0cmluZ1tdID0gcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAubWFwKCh4KSA9PiB4Lm9wZXJhdGlvbk5hbWUpO1xuICAgIHRoaXMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMuem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXMgPSB7fTtcblxuICAgIHByb3BzLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVkSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgdGhpcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnQVonICsgaW5kZXggKyAnU2VydmljZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZWRJZCArXG4gICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICctaXNvbGF0ZWQtaW1wYWN0LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICkubWFwKCh4KSA9PiB4LmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdKSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy56b25hbFNlcnZlclNpZGVJc29sYXRlZEltcGFjdEFsYXJtc1thdmFpbGFiaWxpdHlab25lXSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0FaJyArIGluZGV4ICsgJ1NlcnZpY2VTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lZElkICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1pc29sYXRlZC1pbXBhY3Qtc2VydmVyLXNpZGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKS5tYXAoKHgpID0+IHguc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQga2V5UHJlZml4OiBzdHJpbmcgPSAnJztcblxuICAgIGxldCByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBrZXlQcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleVByZWZpeCk7XG5cbiAgICAgICAgcmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljc1trZXlQcmVmaXhdID1cbiAgICAgICAgICBSZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MuY3JlYXRlUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWMoe1xuICAgICAgICAgICAgbGFiZWw6IHgub3BlcmF0aW9uTmFtZSArICcgZmF1bHQgY291bnQnLFxuICAgICAgICAgICAgbWV0cmljRGV0YWlsczogeC5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG1ldHJpY1R5cGU6IEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuRkFVTFRfQ09VTlQsXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGxldCByZWdpb25hbEZhdWx0Q291bnQ6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgdXNpbmdNZXRyaWNzOiByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzLFxuICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljcykuam9pbignKycpLFxuICAgICAgbGFiZWw6IHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUgKyAnIGZhdWx0IGNvdW50JyxcbiAgICAgIHBlcmlvZDogcHJvcHMuc2VydmljZS5wZXJpb2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybSA9IG5ldyBBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnUmVnaW9uYWxGYXVsdENvdW50JyxcbiAgICAgIHtcbiAgICAgICAgYWxhcm1OYW1lOlxuICAgICAgICAgIEZuLnJlZignQVdTOjpSZWdpb24nKSArXG4gICAgICAgICAgJy0nICtcbiAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICctZmF1bHQtY291bnQnLFxuICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMyxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDUsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIHRocmVzaG9sZDogcHJvcHMuc2VydmljZS5mYXVsdENvdW50VGhyZXNob2xkLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICdDb3VudHMgZmF1bHRzIGZyb20gYWxsIGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGUgc2VydmljZScsXG4gICAgICAgIG1ldHJpYzogcmVnaW9uYWxGYXVsdENvdW50LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbGV0IGNhbmFyeUFsYXJtczogSUFsYXJtW10gPSBPYmplY3QudmFsdWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgKSxcbiAgICApXG4gICAgICAucmVkdWNlKChmaWx0ZXJlZCwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZpbHRlcmVkLnB1c2godmFsdWUuY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfSwgW10gYXMgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNbXSlcbiAgICAgIC5tYXAoKHgpID0+IHguYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0pO1xuXG4gICAgaWYgKFxuICAgICAgY2FuYXJ5QWxhcm1zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGNhbmFyeUFsYXJtcyAhPT0gbnVsbCAmJlxuICAgICAgY2FuYXJ5QWxhcm1zLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMucmVnaW9uYWxBdmFpbGFiaWxpdHlPckxhdGVuY3lDYW5hcnlBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VDYW5hcnlBdmFpbGFiaWxpdHlPckxhdGVuY3lBZ2dyZWdhdGVBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAnLWNhbmFyeS1hdmFpbGFiaWxpdHktb3ItbGF0ZW5jeS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmNhbmFyeUFsYXJtcyksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXM6IElBbGFybVtdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzKS5yZWR1Y2UoXG4gICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgZmlsdGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnJlZHVjZSgoZmlsdGVyZWQsIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaWx0ZXJlZC5wdXNoKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgIH0sIFtdIGFzIElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzW10pXG4gICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKTtcblxuICAgIGlmIChcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXMgIT09IG51bGwgJiZcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdTZXJ2aWNlQ2FuYXJ5QXZhaWxhYmlsaXR5QWdncmVnYXRlQWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1jYW5hcnktYXZhaWxhYmlsaXR5LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4uY2FuYXJ5QXZhaWxhYmlsaXR5QWxhcm1zKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyp0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlU2VydmVyU2lkZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAnLScgK1xuICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgJy1zZXJ2ZXItc2lkZS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSksXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICk7Ki9cblxuICAgIC8qdGhpcy5yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnU2VydmljZVNlcnZlclNpZGVBdmFpbGFiaWxpdHlBbGFybScsXG4gICAgICB7XG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAnLXNlcnZlci1zaWRlLWF2YWlsYWJpbGl0eS1hbGFybScsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHguc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgKTsqL1xuICB9XG59XG4iXX0=
@@ -197,5 +197,5 @@ class AvailabilityZoneMapper extends constructs_1.Construct {
197
197
  }
198
198
  exports.AvailabilityZoneMapper = AvailabilityZoneMapper;
199
199
  _a = JSII_RTTI_SYMBOL_1;
200
- AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.32" };
200
+ AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.34" };
201
201
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXZhaWxhYmlsaXR5Wm9uZU1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hem1hcHBlci9BdmFpbGFiaWxpdHlab25lTWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQU1xQjtBQUNyQixpREFRNkI7QUFDN0IsdURBTWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxzQkFDWCxTQUFRLHNCQUFTO0lBbUJqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQztRQUVuQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCOzs7Ozs7Ozs7O1VBVUU7UUFFRixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsR0FBbUIsSUFBSSx1QkFBYSxDQUN0RCxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzFDLE1BQU0sRUFB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TyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0Q0FBNEMsQ0FBQyxNQUFjO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNENBQTRDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5RCxDQUFDOztBQTlPSCx3REErT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIER1cmF0aW9uLFxuICBGbixcbiAgUmVmZXJlbmNlLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgVHJhY2luZyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJTG9nR3JvdXAsIExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4vSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclByb3BzIH0gZnJvbSAnLi9wcm9wcy9BdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0aGF0IGFsbG93cyB5b3UgdG8gbWFwIEFaIG5hbWVzIHRvIGlkcyBhbmQgYmFja1xuICovXG5leHBvcnQgY2xhc3MgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElBdmFpbGFiaWxpdHlab25lTWFwcGVyIHtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIG1hcHBpbmdcbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgZm9yIHRoZSBmdW5jdGlvbidzIGxvZ3NcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCB0byB1c2VcbiAgICogRm46OkdldEF0dCBmdW5jdGlvbnMgb24gdG8gcmV0cmlldmUgYXZhaWxhYmlsaXR5IHpvbmVcbiAgICogbmFtZXMgYW5kIGlkc1xuICAgKi9cbiAgbWFwcGVyOiBDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBBdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvKlxuICAgIGxldCBjdXJyZW50Tm9kZTogQ29uc3RydWN0IHwgdW5kZWZpbmVkID0gdGhpcy5ub2RlLnNjb3BlO1xuXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlICE9PSB1bmRlZmluZWQgJiYgIShjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIFN0YWNrKSkge1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5ub2RlLnNjb3BlO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50Tm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAoY3VycmVudE5vZGUgYXMgU3RhY2spLmFkZFRyYW5zZm9ybSgnQVdTOjpMYW5ndWFnZUV4dGVuc2lvbnMnKTtcbiAgICB9XG4gICAgKi9cblxuICAgIGxldCB4cmF5TWFuYWdlZFBvbGljeTogSU1hbmFnZWRQb2xpY3kgPSBuZXcgTWFuYWdlZFBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnWHJheU1hbmFnZWRQb2xpY3knLFxuICAgICAge1xuICAgICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGxldCBlYzJNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICdFQzJNYW5hZ2VkUG9saWN5JyxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9hem1hcHBlci8nLFxuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2VjMjpEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzJ10sXG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBsZXQgZXhlY3V0aW9uUm9sZTogSVJvbGUgPSBuZXcgUm9sZSh0aGlzLCAnZXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFt4cmF5TWFuYWdlZFBvbGljeSwgZWMyTWFuYWdlZFBvbGljeV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi9hem1hcHBlci9zcmMvaW5kZXgucHknKSxcbiAgICAgICd1dGYtOCcsXG4gICAgKTtcblxuICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ0F2YWlsYWJpbGl0eVpvbmVNYXBwZXJGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShmaWxlKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjApLFxuICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUkVHSU9OOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgIFBBUlRJVElPTjogRm4ucmVmKCdBV1M6OlBhcnRpdGlvbicpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ0xvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHt0aGlzLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnQ2xvdWRXYXRjaE1hbmFnZWRQb2xpY3knLCB7XG4gICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIEZuLnN1YihcbiAgICAgICAgICAgICAgJ2Fybjoke0FXUzo6UGFydGl0aW9ufTpsb2dzOiR7QVdTOjpSZWdpb259OiR7QVdTOjpBY2NvdW50SWR9OmxvZy1ncm91cDonLFxuICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgIHRoaXMubG9nR3JvdXAubG9nR3JvdXBOYW1lICtcbiAgICAgICAgICAgICAgJzoqJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICByb2xlczogW2V4ZWN1dGlvblJvbGVdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tYXBwZXIgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0F2YWlsYWJpbGl0eVpvbmVNYXBwZXInLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICBwcm9wcz8uYXZhaWxhYmlsaXR5Wm9uZU5hbWVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHsgQXZhaWxhYmlsaXR5Wm9uZXM6IHByb3BzLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyB9XG4gICAgICAgICAgOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhlIGdpdmVuIEF2YWlsYWJpbGl0eSBab25lIE5hbWUgaW4gdGhpcyBhY2NvdW50XG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlkKGF2YWlsYWJpbGl0eVpvbmVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF2YWlsYWJpbGl0eSBab25lIE5hbWUgZm9yIHRoZSBnaXZlbiBBdmFpbGFiaWxpdHkgWm9uZSBJZCBpbiB0aGlzIGFjY291bnRcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZU5hbWUoYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwcmVmaXggZm9yIHRoZSByZWdpb24gdXNlZCB3aXRoIEF2YWlsYWJpbGl0eSBab25lIElkcywgZm9yIGV4YW1wbGVcbiAgICogaW4gdXMtZWFzdC0xLCB0aGlzIHJldHVybnMgXCJ1c2UxXCJcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlZ2lvblByZWZpeEZvckF2YWlsYWJpbGl0eVpvbmVJZHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0U3RyaW5nKEZuLnJlZignQVdTOjpSZWdpb24nKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBmb3IgQXZhaWxhYmlsaXR5IFpvbmUgSWRzIGZvciB0aGUgc3VwcGxpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZXMsXG4gICAqIHRoZXkgYXJlIHJldHVybmVkIGluIHRoZSBzYW1lIG9yZGVyIHRoZSBuYW1lcyB3ZXJlIHByb3ZpZGVkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0FycmF5KGF2YWlsYWJpbGl0eVpvbmVOYW1lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgbGV0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZHMucHVzaCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVJZChhdmFpbGFiaWxpdHlab25lTmFtZXNbaV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBBdmFpbGFiaWxpdHkgWm9uZSBJZHMgZm9yIHRoZSBzdXBwbGllZFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcy4gWW91IGNhbiB1c2UgdGhpcyBzdHJpbmcgd2l0aCBGbi5TZWxlY3QoeCwgRm4uU3BsaXQoXCIsXCIsIGF6cykpIHRvXG4gICAqIGdldCBhIHNwZWNpZmljIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdChcbiAgICBhdmFpbGFiaWxpdHlab25lTmFtZXM6IHN0cmluZ1tdLFxuICApOiBzdHJpbmcge1xuICAgIGxldCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF2YWlsYWJpbGl0eVpvbmVOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWRzLnB1c2godGhpcy5hdmFpbGFiaWxpdHlab25lSWQoYXZhaWxhYmlsaXR5Wm9uZU5hbWVzW2ldKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlkcy5qb2luKCcsJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbW1hIGRlbGltaXRlZCBsaXN0IG9mIEF2YWlsYWJpbGl0eSBab25lIElkcyBmb3IgdGhlIHN1cHBsaWVkXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIG5hbWVzLiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFsbEF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoJ0FsbEF2YWlsYWJpbGl0eVpvbmVJZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRoYXQgY2FuIGJlIGNhc3QgdG8gYSBzdHJpbmcgYXJyYXkgd2l0aCBhbGwgb2YgdGhlXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIElkc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZUlkc0FzQXJyYXkoKTogUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0KCdBbGxBdmFpbGFiaWxpdHlab25lSWRzQXJyYXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGxldHRlciBsaWtlIFwiZlwiIG9yIFwiYVwiLCByZXR1cm5zIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhhdFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lIGluIHRoaXMgYWNjb3VudFxuICAgKiBAcGFyYW0gbGV0dGVyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihsZXR0ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGVyLmdldEF0dFN0cmluZyhsZXR0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcyBpbiB0aGlzIFJlZ2lvbiBhcyBhIGNvbW1hIGRlbGltaXRlZFxuICAgKiBsaXN0LiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZU5hbWVzQXNDb21tYURlbGltaXRlZExpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0U3RyaW5nKCdBbGxBdmFpbGFiaWxpdHlab25lTmFtZXMnKTtcbiAgfVxufVxuIl19
@@ -15,7 +15,7 @@ class BasicServiceDashboard extends constructs_1.Construct {
15
15
  throw new Error("You must define either ALBs or NAT Gateways for this service in order to create a dashboard.");
16
16
  }
17
17
  this.dashboard = new aws_cloudwatch_1.Dashboard(this, 'BasicServiceDashboard', {
18
- dashboardName: `${props.serviceName.toLowerCase()}-per-az-health-${aws_cdk_lib_1.Aws.REGION})`,
18
+ dashboardName: `${props.serviceName.toLowerCase()}-per-az-health-${aws_cdk_lib_1.Aws.REGION}`,
19
19
  defaultInterval: props.interval,
20
20
  periodOverride: aws_cloudwatch_1.PeriodOverride.AUTO
21
21
  });
@@ -39,4 +39,4 @@ class BasicServiceDashboard extends constructs_1.Construct {
39
39
  }
40
40
  }
41
41
  exports.BasicServiceDashboard = BasicServiceDashboard;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sR0FBRztZQUNoRixlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFDbkMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQ3RDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsR0FBRyxxQ0FBaUIsQ0FBQyx5QkFBeUIsQ0FDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQ3hCLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2REQsc0RBdURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXNXaWRnZXQsXG4gIERhc2hib2FyZCxcbiAgUGVyaW9kT3ZlcnJpZGUsXG4gIFRleHRXaWRnZXQsXG4gIFRleHRXaWRnZXRCYWNrZ3JvdW5kLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIH0gZnJvbSAnLi9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlRGFzaGJvYXJkIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBkYXNoYm9hcmQ6IERhc2hib2FyZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCEocHJvcHMuYWxicykgJiYgIShwcm9wcy5uYXRnd3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBkZWZpbmUgZWl0aGVyIEFMQnMgb3IgTkFUIEdhdGV3YXlzIGZvciB0aGlzIHNlcnZpY2UgaW4gb3JkZXIgdG8gY3JlYXRlIGEgZGFzaGJvYXJkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmQodGhpcywgJ0Jhc2ljU2VydmljZURhc2hib2FyZCcsIHtcbiAgICAgIGRhc2hib2FyZE5hbWU6IGAke3Byb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LXBlci1hei1oZWFsdGgtJHtBd3MuUkVHSU9OfSlgLFxuICAgICAgZGVmYXVsdEludGVydmFsOiBwcm9wcy5pbnRlcnZhbCxcbiAgICAgIHBlcmlvZE92ZXJyaWRlOiBQZXJpb2RPdmVycmlkZS5BVVRPXG4gICAgfSk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKG5ldyBBbGFybVN0YXR1c1dpZGdldCh7XG4gICAgICBhbGFybXM6IE9iamVjdC52YWx1ZXMocHJvcHMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcyksXG4gICAgICBoZWlnaHQ6IDIsXG4gICAgICB3aWR0aDogMjQsXG4gICAgICB0aXRsZTogJ0FnZ3JlZ2F0ZSBBbGFybXMnLFxuICAgIH0pKTtcblxuICAgIGlmIChwcm9wcy5hbGJzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuXG4gICAgICBuZXcgVGV4dFdpZGdldCh7XG4gICAgICAgIG1hcmtkb3duOiBcIiMjICoqTG9hZCBCYWxhbmNlciBNZXRyaWNzKipcIixcbiAgICAgICAgYmFja2dyb3VuZDogVGV4dFdpZGdldEJhY2tncm91bmQuVFJBTlNQQVJFTlQsXG4gICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgd2lkdGg6IDI0XG4gICAgICB9KSxcbiAgICAgIC4uLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5nZW5lcmF0ZUxvYWRCYWxhbmNlcldpZGdldHMoXG4gICAgICAgICAgcHJvcHMuYWxicy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnMsXG4gICAgICAgICAgcHJvcHMuYXpNYXBwZXIsXG4gICAgICAgICAgcHJvcHMucGVyaW9kLFxuICAgICAgICAgIHByb3BzLmFsYnMubGF0ZW5jeVN0YXRpc3RpYyxcbiAgICAgICAgICBwcm9wcy5hbGJzLmxhdGVuY3lUaHJlc2hvbGQsXG4gICAgICAgICAgcHJvcHMuYWxicy5mYXVsdENvdW50UGVyY2VudFRocmVzaG9sZFxuICAgICAgICApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm5hdGd3cykge1xuICAgICAgdGhpcy5kYXNoYm9hcmQuYWRkV2lkZ2V0cyhcbiAgICAgICAgLi4uTmF0R2F0ZXdheU1ldHJpY3MuZ2VuZXJhdGVOYXRHYXRld2F5V2lkZ2V0cyhcbiAgICAgICAgICBwcm9wcy5uYXRnd3MubmF0R2F0ZXdheXMsXG4gICAgICAgICAgcHJvcHMuYXpNYXBwZXIsXG4gICAgICAgICAgcHJvcHMucGVyaW9kLFxuICAgICAgICAgIHByb3BzLm5hdGd3cy5wYWNrZXRMb3NzUGVyY2VudFRocmVzaG9sZCA/IHByb3BzLm5hdGd3cy5wYWNrZXRMb3NzUGVyY2VudFRocmVzaG9sZCA6IDAuMDFcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFDbkMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQ3RDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsR0FBRyxxQ0FBaUIsQ0FBQyx5QkFBeUIsQ0FDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQ3hCLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2REQsc0RBdURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXNXaWRnZXQsXG4gIERhc2hib2FyZCxcbiAgUGVyaW9kT3ZlcnJpZGUsXG4gIFRleHRXaWRnZXQsXG4gIFRleHRXaWRnZXRCYWNrZ3JvdW5kLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIH0gZnJvbSAnLi9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlRGFzaGJvYXJkIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBkYXNoYm9hcmQ6IERhc2hib2FyZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCEocHJvcHMuYWxicykgJiYgIShwcm9wcy5uYXRnd3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBkZWZpbmUgZWl0aGVyIEFMQnMgb3IgTkFUIEdhdGV3YXlzIGZvciB0aGlzIHNlcnZpY2UgaW4gb3JkZXIgdG8gY3JlYXRlIGEgZGFzaGJvYXJkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmQodGhpcywgJ0Jhc2ljU2VydmljZURhc2hib2FyZCcsIHtcbiAgICAgIGRhc2hib2FyZE5hbWU6IGAke3Byb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LXBlci1hei1oZWFsdGgtJHtBd3MuUkVHSU9OfWAsXG4gICAgICBkZWZhdWx0SW50ZXJ2YWw6IHByb3BzLmludGVydmFsLFxuICAgICAgcGVyaW9kT3ZlcnJpZGU6IFBlcmlvZE92ZXJyaWRlLkFVVE9cbiAgICB9KTtcblxuICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMobmV3IEFsYXJtU3RhdHVzV2lkZ2V0KHtcbiAgICAgIGFsYXJtczogT2JqZWN0LnZhbHVlcyhwcm9wcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zKSxcbiAgICAgIGhlaWdodDogMixcbiAgICAgIHdpZHRoOiAyNCxcbiAgICAgIHRpdGxlOiAnQWdncmVnYXRlIEFsYXJtcycsXG4gICAgfSkpO1xuXG4gICAgaWYgKHByb3BzLmFsYnMpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMoXG5cbiAgICAgIG5ldyBUZXh0V2lkZ2V0KHtcbiAgICAgICAgbWFya2Rvd246IFwiIyMgKipMb2FkIEJhbGFuY2VyIE1ldHJpY3MqKlwiLFxuICAgICAgICBiYWNrZ3JvdW5kOiBUZXh0V2lkZ2V0QmFja2dyb3VuZC5UUkFOU1BBUkVOVCxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMjRcbiAgICAgIH0pLFxuICAgICAgLi4uQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmdlbmVyYXRlTG9hZEJhbGFuY2VyV2lkZ2V0cyhcbiAgICAgICAgICBwcm9wcy5hbGJzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMuYWxicy5sYXRlbmN5U3RhdGlzdGljLFxuICAgICAgICAgIHByb3BzLmFsYnMubGF0ZW5jeVRocmVzaG9sZCxcbiAgICAgICAgICBwcm9wcy5hbGJzLmZhdWx0Q291bnRQZXJjZW50VGhyZXNob2xkXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubmF0Z3dzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgICAuLi5OYXRHYXRld2F5TWV0cmljcy5nZW5lcmF0ZU5hdEdhdGV3YXlXaWRnZXRzKFxuICAgICAgICAgIHByb3BzLm5hdGd3cy5uYXRHYXRld2F5cyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkID8gcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkIDogMC4wMVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19