@rio-cloud/cdk-v2-constructs 4.27.0 → 4.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +105 -95
- package/API.md +20 -7
- package/CHANGELOG.md +28 -1
- package/README.md +3 -0
- package/developers-readme.md +16 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.d.ts +29 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +66 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/index.d.ts +1 -0
- package/lib/contributions/team-oubout-order-book/aws-ecs-abruptly-stopped-monitor/index.js +18 -0
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.d.ts +2 -2
- package/lib/contributions/team-transport-two/pipeline/datadog-monitors.js +24 -25
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.d.ts +8 -2
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +9 -5
- package/lib/datadogv2/datadog-dashboard.d.ts +0 -4
- package/lib/datadogv2/datadog-dashboard.js +1 -3
- package/lib/datadogv2/datadog-monitor.d.ts +0 -1
- package/lib/datadogv2/datadog-monitor.js +15 -4
- package/lib/fargate/datadog.d.ts +7 -1
- package/lib/fargate/datadog.js +18 -7
- package/lib/fargate/rio-fargate-service.d.ts +2 -0
- package/lib/fargate/rio-fargate-service.js +9 -1
- package/lib/watchfulv2/datadog-log-alarm.js +4 -1
- package/package.json +5 -5
- package/version.json +1 -1
|
@@ -24,7 +24,7 @@ const datadog_monitors_1 = require("./datadog-monitors");
|
|
|
24
24
|
const monitoring_deploy_step_1 = require("./monitoring-deploy-step");
|
|
25
25
|
const rio = require("../../../index");
|
|
26
26
|
const index_1 = require("../../../index");
|
|
27
|
-
const
|
|
27
|
+
const watchful_1 = require("../../../watchful");
|
|
28
28
|
var PipelineType;
|
|
29
29
|
(function (PipelineType) {
|
|
30
30
|
/**
|
|
@@ -75,6 +75,7 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
75
75
|
lifecycleRules: [
|
|
76
76
|
{
|
|
77
77
|
expiration: aws_cdk_lib_1.Duration.days(30),
|
|
78
|
+
abortIncompleteMultipartUploadAfter: aws_cdk_lib_1.Duration.days(7),
|
|
78
79
|
},
|
|
79
80
|
],
|
|
80
81
|
});
|
|
@@ -104,7 +105,7 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
104
105
|
product: index_1.ClaidometerProduct.CDK_CONTRIBUTION,
|
|
105
106
|
packageName,
|
|
106
107
|
feature,
|
|
107
|
-
version: '0.0.
|
|
108
|
+
version: '0.0.19',
|
|
108
109
|
});
|
|
109
110
|
}
|
|
110
111
|
get mainCodebuildProject() {
|
|
@@ -226,11 +227,14 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
226
227
|
schedule: events.Schedule.expression(props.pipelineSchedules?.vulnerabilityPipeline || 'cron(0 5 ? * MON-FRI *)'),
|
|
227
228
|
});
|
|
228
229
|
vulnerabilityRule.addTarget(new targets.CodePipeline(vulnerabilityPipeline.pipeline));
|
|
230
|
+
if (props.datadogAlertType === 'opsgenie') {
|
|
231
|
+
throw Error('The OpsGenie alertType is not supported anymore. Please use the vulnerabilityNotification property instead.');
|
|
232
|
+
}
|
|
229
233
|
new datadog_monitors_1.DataDogPipelineErrorAlertForVulnerabilityChecks(this, 'DataDogPipelineErrorForVulnerabilityChecksMonitor', {
|
|
230
234
|
serviceName: props.serviceName,
|
|
231
235
|
pipelineName: this.renamePipelineToLowerCase(vulnerabilityPipeline),
|
|
232
236
|
accountId: this.account,
|
|
233
|
-
|
|
237
|
+
notification: props.vulnerabilityNotification,
|
|
234
238
|
});
|
|
235
239
|
}
|
|
236
240
|
createCapabilityMonitoringDeployStep(mainBuild, props) {
|
|
@@ -275,7 +279,7 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
275
279
|
renamePipelineToLowerCase(pipeline) {
|
|
276
280
|
const upperToLowerCr = new cdk.CustomResource(this, `${pipeline.node.id}-UpperToLower`, {
|
|
277
281
|
resourceType: 'Custom::UpperToLower',
|
|
278
|
-
serviceToken:
|
|
282
|
+
serviceToken: watchful_1.UpperToLower.getOrCreate(this).provider.serviceToken,
|
|
279
283
|
properties: {
|
|
280
284
|
Upper: pipeline.pipeline.pipelineName,
|
|
281
285
|
},
|
|
@@ -286,4 +290,4 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
286
290
|
exports.PipelineStack = PipelineStack;
|
|
287
291
|
_a = JSII_RTTI_SYMBOL_1;
|
|
288
292
|
PipelineStack[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.PipelineStack", version: "0.0.0" };
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUvcGlwZWxpbmUtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyw2Q0FBOEY7QUFDOUYsNkRBQXdFO0FBQ3hFLDZFQUE2RTtBQUM3RSxpREFBaUQ7QUFDakQsMERBQTBEO0FBQzFELGlEQUFvRDtBQUVwRCx5Q0FBeUM7QUFDekMsK0NBQXFEO0FBQ3JELDJDQUEyQztBQUUzQyxtREFBbUQ7QUFDbkQscURBQTBFO0FBRTFFLGdDQUFnQztBQUNoQywyREFBa0Q7QUFDbEQsbURBQXNEO0FBQ3RELHlEQUFnSDtBQUNoSCxxRUFBNkU7QUFFN0Usc0NBQXNDO0FBQ3RDLDBDQUFpRTtBQUNqRSxpRUFBOEQ7QUFpSTlELElBQVksWUFzQ1g7QUF0Q0QsV0FBWSxZQUFZO0lBRXRCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILG1EQUFtQyxDQUFBO0lBQ25DOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCwrREFBK0MsQ0FBQTtJQUMvQzs7Ozs7T0FLRztJQUNILG1FQUFtRCxDQUFBO0FBQ3JELENBQUMsRUF0Q1csWUFBWSw0QkFBWixZQUFZLFFBc0N2QjtBQWNELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBY3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFB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RSxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsRUFBRTtZQUN0RixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLFlBQVksRUFBRSwyQkFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUNsRSxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWTthQUN0QztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQXpRSCxzQ0EwUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IER1cmF0aW9uLCBGbiwgUmVmZXJlbmNlLCBSZW1vdmFsUG9saWN5LCBTdGFjaywgU3RhY2tQcm9wcywgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnQsIEJ1aWxkU3BlYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0ICogYXMgY29kZXBpcGVsaW5lX2FjdGlvbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCB7IE1hbmFnZWRQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElIb3N0ZWRab25lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IEJ1Y2tldCwgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgeyBJU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBwaXBlbGluZXMgZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvZGVCdWlsZFN0ZXAsIENvZGVQaXBlbGluZVNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tc3RhZ2UnO1xuaW1wb3J0IHsgUmlvQ29kZUJ1aWxkUHJvamVjdCB9IGZyb20gJy4vYnVpbGQtcHJvamVjdCc7XG5pbXBvcnQgeyBEYXRhZG9nUGlwZWxpbmVFcnJvckFsZXJ0LCBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyB9IGZyb20gJy4vZGF0YWRvZy1tb25pdG9ycyc7XG5pbXBvcnQgeyBSaW9DYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXAgfSBmcm9tICcuL21vbml0b3JpbmctZGVwbG95LXN0ZXAnO1xuaW1wb3J0IHsgRGF0YWRvZ0FsZXJ0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cvZGF0YWRvZy1tb25pdG9yJztcbmltcG9ydCAqIGFzIHJpbyBmcm9tICcuLi8uLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgVXBwZXJUb0xvd2VyIH0gZnJvbSAnLi4vLi4vLi4vd2F0Y2hmdWwvdXBwZXJUb0xvd2VyJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lU2NoZWR1bGVzUHJvcHMge1xuICByZWFkb25seSBtYWluUGlwZWxpbmU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZ1bG5lcmFiaWxpdHlQaXBlbGluZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZVxuICAgKiAtIFRoaXMgaGFzIHRvIGJlIHRoZSBzYW1lIG5hbWUgYXMgdGhlIHJlcG9zaXRvcnkgYXMgdGhlIHMzIHRyaWdnZXIgZmlsZSBjcmVhdGVkIGJ5IHRoZSBiaXRidWNrZXQtaW50ZWdyYXRpb24gdXNlcyB0aGlzIGFzIGEgcHJlZml4XG4gICAqIC0gVGhlIHNlcnZpY2VOYW1lIGlzIGF2YWlsYWJsZSBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBTRVJWSUNFX05BTUUgaW4gdGhlIENvZGVCdWlsZFN0ZXBcbiAgICogLSBUaGUgc2VydmljZU5hbWUgaXMgYXZhaWxhYmxlIGluIHRoZSBBcHBTdGFja1Byb3BzIGluIHRoZSBhcHBTdGFja0ZhY3RvcnlcbiAgICogLSBUaGUgc2VydmljZU5hbWUgaXMgYXZhaWxhYmxlIGFzIHN0YWNrTmFtZSBwcm9wZXJ0eSBpbiB0aGUgQXBwU3RhY2tQcm9wcyBpbiB0aGUgYXBwU3RhY2tGYWN0b3J5LiBJLmUuIHRoZSBzdGFjayBpcyBuYW1lZCBhZnRlciB0aGUgc2VydmljZVxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBoYW5kZWQgb3ZlciB0byBhbGwgRGF0YWRvZyBtb25pdG9yc1xuICAgKiAtIFJJTyBjb252ZW50aW9uIGlzIHRoYXQgdXBsb2FkZWQgbGljZW5zZS1jaGVjay1maWxlcyBhcmUgbmFtZWQgYWZ0ZXIgdGhlIHNlcnZpY2UsIGkuZS4gc2VydmljZU5hbWUudHh0XG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlciBmb3IgYXBwU3RhY2sgdG8gYmUgZGVwbG95ZWQuXG4gICAqXG4gICAqIFRoaXMgYWN0cyBhcyBhIHdyYXBwZXIgZm9yIGFsbCByZXNvdXJjZXMgeW91IHdhbnQgdG8gZGVwbG95IHZpYSB0aGUgcGlwZWxpbmUuXG4gICAqL1xuICByZWFkb25seSBhcHBTdGFja0ZhY3Rvcnk6IElBcHBTdGFja0ZhY3Rvcnk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgd2hpY2gga2luZCBvZiBwaXBlbGluZSBpcyBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyBvZnRlbiB0aGUgcGlwZWxpbmUgaXMgdHJpZ2dlcmVkIGF1dG9tYXRpY2FsbHkuIElzIGRlZmluZWQgdmlhIGEgY3JvbiBleHByZXNzaW9uLlxuICAgKlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9TY2hlZHVsZWRFdmVudHMuaHRtbFxuICAgKlxuICAgKiBEZWZhdWx0IHZhbHVlczpcbiAgICogLSBtYWluIHBpcGVsaW5lOiBjcm9uKDAgOSA/ICogMiMxICopXG4gICAqIC0gdnVsbmVyYWJpbGl0eSBwaXBlbGluZTogY3JvbigwIDUgPyAqIE1PTi1GUkkgKilcbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lU2NoZWR1bGVzPzogUGlwZWxpbmVTY2hlZHVsZXNQcm9wcztcblxuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHNlY3JldHMgZmlsZSBjb250YWluaW5nIGVuY3J5cHRlZCBzZWNyZXRzLlxuICAgKlxuICAgKiBUaGUgUmlvU2VjcmV0c0RlcGxveVN0ZXAgaXMgYWRkZWQgcHJpb3IgdG8gZGVwbG95bWVudCBvZiB0aGUgQXBwU3RhY2sgaWYgYSBwYXRoIGlzIHByb3ZpZGVkLlxuICAgKlxuICAgKiBObyBzZWNyZXRzIGFyZSBkZXBsb3llZCBpZiBubyBwYXRoIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c0RlcGxveVN0ZXBQcm9wcz86IFBpcGVsaW5lU3RhY2tSaW9TZWNyZXRzRGVwbG95U3RlcFByb3BzO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgb3B0aW9ucyBvdmVycmlkaW5nIHRoZSByaW8tc3BlY2lmaWMgZGVmYXVsdHMuXG4gICAqL1xuICByZWFkb25seSBjb2RlQnVpbGRPcHRpb25zPzogQ29kZUJ1aWxkT3B0aW9ucztcbiAgLyoqXG4gICAqIElmIHByZXNlbnQsIHRoZSBjYXBhYmlsaXR5IG1vbml0b3JpbmcgZGVwbG95IHN0ZXAgaXMgYWRkZWQgdG8gdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZ0RlcGxveVN0ZXBQcm9wcz86IFBpcGVsaW5lU3RhY2tSaW9Nb25pdG9yaW5nRGVwbG95U3RlcFByb3BzO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgYWxlcnQgdHlwZSBvZiB0aGUgcGlwZWxpbmUgbW9uaXRvcnMgdGhhdCB0cmlnZ2VyIGFuIGFsZXJ0LiBEZWZhdWx0IGlzIG9wc2dlbmllLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ0FsZXJ0VHlwZT86IERhdGFkb2dBbGVydFR5cGU7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgaW50ZXJmYWNlIHRvIGNyZWF0ZSB0aGUgQXBwU3RhY2sgd2l0aGluIHRoZSBzcGVjaWZpYyBzY29wZVxuICpcbiAqIFNpbXBseSBwbGFjZSB0aGUgQXBwU3RhY2sgY3JlYXRpb24gaW50byB0aGUgY3JlYXRlLW1ldGhvZDpcbiAqIEBleGFtcGxlXG4gKlxuICogLy8gVXNlIGUuZy4gd2l0aGluIEFwcGxpY2F0aW9uUHJvcHMgYXMgSlNPTk9iamVjdDpcbiAqIHsgY3JlYXRlOiAoY29uc3RydWN0LCBwcm9wcykgPT4gbmV3IFN0YWNrKGNvbnN0cnVjdCwgJ0FwcFN0YWNrJywgcHJvcHMpIH1cbiAqXG4gKiAvLyBvciBzaW1wbHkgYXMgY2xhc3MgaW50ZXJmYWNlIHdpdGhpbiB5b3VyIHN0YWNrIGltcGxlbWVudGF0aW9uOlxuICogY2xhc3MgUGlwZWxpbmVTdGFnZSBleHRlbmRzIFN0YWdlIGltcGxlbWVudHMgSUFwcFN0YWNrRmFjdG9yeSB7XG4gKiAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFnZVByb3BzKSB7XG4gKiAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gKiAgICAgLy8geW91ciBzdGFnZSBkZWZpbml0aW9uXG4gKiAgIH1cbiAqXG4gKiAgIGNyZWF0ZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogQXBwU3RhY2tQcm9wcyk6IHZvaWQge1xuICogICAgIC8vIGFwcCBzdGFjayBpbml0aWF0aW9uIGdvZXMgaW4gaGVyZVxuICogICB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcFN0YWNrRmFjdG9yeSB7XG4gIC8qKlxuICAgKiBGYWN0b3J5IG1ldGhvZCwgYmVpbmcgaW52b2tlZCB3aXRoIHRoZSBzcGVjaWZpYyBzY29wZSBkdXJpbmcgcGlwZWxpbmUgaW5zdGFudGlhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHBhcmVudCBjb25zdHJ1Y3QgZm9yIHRoZSBhcHAgc3RhY2tcbiAgICogQHBhcmFtIHByb3BzIHRoZSBhcHAgc3RhY2tzIHByb3BlcnRpZXNcbiAgICovXG4gIGNyZWF0ZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogQXBwU3RhY2tQcm9wcyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2VsZWN0ZWQgcHJvcGVydGllcyBiZWluZyBoYW5kZWQgb3ZlciB0byBSaW9TZWNyZXRzRGVwbG95U3RlcC5cbiAqXG4gKiBAc2VlIHJpby5SaW9TZWNyZXRzRGVwbG95U3RlcFxuICogQHNlZSByaW8uUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lU3RhY2tSaW9TZWNyZXRzRGVwbG95U3RlcFByb3BzIHtcbiAgcmVhZG9ubHkgc2VjcmV0c0ZpbGVQYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTdGFja1Jpb01vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHMge1xuICAvKipcbiAgICogTWFwIHtkaXJlY3Rvcnk6IGZpbGVuYW1lc30gY29udGFpbmluZyAgLmphciBvciAuemlwIGZpbGVzIGNyZWF0ZWQgaW4gbWFpbiBidWlsZCBzdGVwIHRvIGJlIHVwbG9hZGVkIHRvIHRoZSBtb25pdG9yaW5nLXRlc3RzdWl0ZS1ydW5uZXIgYnVja2V0LCBlLmcuXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAnYXZhaWxhYmlsaXR5LW1vbml0b3JpbmcvYnVpbGQvbGlicyc6IFsnZm9vLWF2YWlsYWJpbGl0eS5qYXInXSxcbiAgICogICdwZXJmb3JtYW5jZS1tb25pdG9yaW5nL2J1aWxkL2xpYnMnOiBbJ2FwaS1jaGVjay56aXAnLCAnZm9vLXBlcmZvcm1hbmNlLmphciddLFxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZ0FydGlmYWN0czogeyBbZGlyZWN0b3J5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xufVxuXG5leHBvcnQgZW51bSBQaXBlbGluZVR5cGUge1xuXG4gIC8qKlxuICAgKiBTZWxmLW11dGF0aW5nIGNvZGVwaXBlbGluZSBkZXBsb3lpbmcgdGhlIHByb3ZpZGVkIEFwcFN0YWNrLiBCZSBhd2FyZTogVGhlIHByb3ZpZGVkIHNlcnZpY2Ugd29uJ3QgaGF2ZSBhY2Nlc3MgdG8gS2Fma2EuXG4gICAqXG4gICAqIENvbWVzIHdpdGggYSBwcmUtZGVmaW5lZCBidWlsZHNwZWMueWFtbCBmb3IgYSBncmFkbGUgcHJvamVjdC4gVGhpcyBidWlsZHNwZWMueWFtbCBpcyB1c2VkIGZvciBib3RoIHRoZSBtYWluIGFuZFxuICAgKiBicmFuY2ggcGlwZWxpbmUgYW5kIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgc3RlcHNcbiAgICogLSBidWlsZCBhbmQgdGVzdCBvZiB0aGUgYXJ0aWZhY3QgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgY2xlYW4gYnVpbGRcIi5cbiAgICogPHA+IFRoaXMgZ3JhZGxlIGNvbW1hbmQgbXVzdCBiZSBwcm92aWRlZCBieSB0aGUgZ3JhZGxlIHByb2plY3QuXG4gICAqIC0gbGljZW5zZS1jaGVjayBhbmQgdXBsb2FkIG9mIGxpY2Vuc2UtY2hlY2stZmlsZSB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBjaGVja0xpY2Vuc2VzXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKiAtIGNyZWF0ZSBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRvIG1ha2UgVExTIGNvbW11bmljYXRpb24gcG9zc2libGUsIGUuZy4gd2l0aCBhIGxvYWRiYWxhbmNlci5cbiAgICogLSBidWlsZCB0aGUgY29udGFpbmVyIGltYWdlIHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGppYkJ1aWxkVGFyXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKi9cbiAgU1RBTkRBUkRfR1JBRExFID0gJ1NUQU5EQVJEX0dSQURMRScsXG4gIC8qKlxuICAgKiBTZWxmLW11dGF0aW5nIGNvZGVwaXBlbGluZSBkZXBsb3lpbmcgdGhlIHByb3ZpZGVkIEFwcFN0YWNrIHdpdGggYWRkaXRpb25hbCBzdGVwcyBuZWVkZWQgdG8gYWNjZXNzIEthZmthLlxuICAgKlxuICAgKiBDb21lcyB3aXRoIGEgcHJlLWRlZmluZWQgYnVpbGRzcGVjLnlhbWwgZm9yIGEgZ3JhZGxlIHByb2plY3QuIFRoaXMgYnVpbGRzcGVjLnlhbWwgaXMgdXNlZCBmb3IgYm90aCB0aGUgbWFpbiBhbmRcbiAgICogYnJhbmNoIHBpcGVsaW5lIGFuZCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIHN0ZXBzXG4gICAqIC0gYnVpbGQgYW5kIHRlc3Qgb2YgdGhlIGFydGlmYWN0IHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGNsZWFuIGJ1aWxkXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKiAtIGxpY2Vuc2UtY2hlY2sgYW5kIHVwbG9hZCBvZiBsaWNlbnNlLWNoZWNrLWZpbGUgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgY2hlY2tMaWNlbnNlc1wiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICogLSBjcmVhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0byBtYWtlIFRMUyBjb21tdW5pY2F0aW9uIHBvc3NpYmxlLCBlLmcuIHdpdGggYSBsb2FkYmFsYW5jZXIuXG4gICAqIC0gcmVxdWVzdCBhIGNlcnRpZmljYXRlIHRvIGF1dGhlbnRpY2F0ZSBhZ2FpbnN0IEthZmthIHZpYSBtdXR1YWwgVExTXG4gICAqIC0gYnVpbGQgdGhlIGNvbnRhaW5lciBpbWFnZSB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBqaWJCdWlsZFRhclwiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICovXG4gIFNUQU5EQVJEX0dSQURMRV9LQUZLQSA9ICdTVEFOREFSRF9HUkFETEVfS0FGS0EnLFxuICAvKipcbiAgICogU2VsZi1tdXRhdGluZyBjb2RlcGlwZWxpbmUgZGVwbG95aW5nIHRoZSBwcm92aWRlZCBBcHBTdGFjay5cbiAgICpcbiAgICogQ29tZXMgd2l0aCBhIHByZS1kZWZpbmVkIGJ1aWxkc3BlYy55YW1sIHRvIHN5bnRoZXNpemUgdGhlIEFwcFN0YWNrLlxuICAgKiBObyBicmFuY2ggb3IgdnVsbmVyYWJpbGl0eSBwaXBlbGluZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgU1RBTkRBUkRfSU5GUkFTVFJVQ1RVUkUgPSAnU1RBTkRBUkRfSU5GUkFTVFJVQ1RVUkUnLFxufVxuXG4vKipcbiAqIEBwYXJhbSBwYXJ0aWFsQnVpbGRTcGVjUGF0aCBQYXRoIHRvIGEgY3VzdG9tIGJ1aWxkLXNwZWMgZmlsZSB0byB1c2UgZm9yIHRoZSBtYWluIGFuZCBicmFuY2ggcGlwZWxpbmUuXG4gKiBBIHByZS1kZWZpbmVkIGJ1aWxkc3BlYy55YW1sIGZpdHRpbmcgdGhlIHBpcGVsaW5lVHlwZSBpcyB1c2VkIGlmIG5vdCBwcm92aWRlZC5cbiAqIEBwYXJhbSBidWlsZEVudmlyb25tZW50IEN1c3RvbSBDb2RlQnVpbGQgYnVpbGQgZW52aXJvbm1lbnQgb3ZlcnJpZGluZyB0aGUgcmlvLXNwZWNpZmljIGRlZmF1bHRzLiBUaGUgZGVmYXVsdHMgYXJlOlxuICogICAgICAgICAgYnVpbGRJbWFnZTogQU1BWk9OX0xJTlVYXzJfNVxuICogICAgICAgICAgY29tcHV0ZVR5cGU6IExBUkdFXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJ1aWxkT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHBhcnRpYWxCdWlsZFNwZWNQYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBidWlsZEVudmlyb25tZW50PzogQnVpbGRFbnZpcm9ubWVudDtcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21haW5Db2RlQnVpbGRQcm9qZWN0OiBDb2RlQnVpbGRTdGVwO1xuICBwcml2YXRlIHJlYWRvbmx5IF9icmFuY2hDb2RlQnVpbGRQcm9qZWN0OiBDb2RlQnVpbGRTdGVwIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9idWNrZXQ6IElCdWNrZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NhY2hlQnVja2V0OiBJQnVja2V0O1xuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0ZWRab25lOiBJSG9zdGVkWm9uZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXRNYXN0ZXJUcmlnZ2VyRmlsZTogQ29kZVBpcGVsaW5lU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbnB1dEJyYW5jaFRyaWdnZXJGaWxlOiBDb2RlUGlwZWxpbmVTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgX29zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyOiBJU3RyaW5nUGFyYW1ldGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vc3NMaWNlbnNlc0J1Y2tldDogSUJ1Y2tldDtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VydmljZUtleXN0b3JlUGFzc3dvcmQ6IElTdHJpbmdQYXJhbWV0ZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjY291bnROYW1lUGFyYW1ldGVyOiBJU3RyaW5nUGFyYW1ldGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9uaXN0RGF0YU1pcnJvclVybDogSVN0cmluZ1BhcmFtZXRlcjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBwb3B1bGF0ZSBleHRlcm5hbCBwYXJhbWV0ZXJzXG4gICAgdGhpcy5fYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdUcmlnZ2VyQnVja2V0JywgRm4uaW1wb3J0VmFsdWUoJ2JpdGJ1Y2tldC1pbnRlZ3JhdGlvbi1zMy1idWNrZXQnKSk7XG4gICAgdGhpcy5fY2FjaGVCdWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdDYWNoZUJ1Y2tldCcsIHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzApLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB0aGlzLl9ob3N0ZWRab25lID0gcmlvLlJpb0xhbmRpbmdab25lLmdldERlZmF1bHRIb3N0ZWRab25lKHRoaXMpO1xuICAgIHRoaXMuX2lucHV0TWFzdGVyVHJpZ2dlckZpbGUgPSBwaXBlbGluZXMuQ29kZVBpcGVsaW5lU291cmNlLnMzKHRoaXMuX2J1Y2tldCwgYCR7cHJvcHMuc2VydmljZU5hbWV9L3RyaWdnZXIvJHtyaW8uVHJpZ2dlcktleS5NQVNURVJfUkVQT31gLCB7IHRyaWdnZXI6IGNvZGVwaXBlbGluZV9hY3Rpb25zLlMzVHJpZ2dlci5FVkVOVFMgfSk7XG4gICAgdGhpcy5faW5wdXRCcmFuY2hUcmlnZ2VyRmlsZSA9IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmVTb3VyY2UuczModGhpcy5fYnVja2V0LCBgJHtwcm9wcy5zZXJ2aWNlTmFtZX0vdHJpZ2dlci8ke3Jpby5UcmlnZ2VyS2V5LkJSQU5DSF9SRVBPfWAsIHsgdHJpZ2dlcjogY29kZXBpcGVsaW5lX2FjdGlvbnMuUzNUcmlnZ2VyLkVWRU5UUyB9KTtcblxuICAgIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyh0aGlzLCAnT3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXInLCB7IHBhcmFtZXRlck5hbWU6ICcvY29uZmlnL29zcy1saWNlbnNlcy9idWNrZXQtbmFtZScgfSk7XG4gICAgdGhpcy5fb3NzTGljZW5zZXNCdWNrZXQgPSBzMy5CdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ09zc0xpY2Vuc2VzQnVja2V0JywgdGhpcy5fb3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXIuc3RyaW5nVmFsdWUpO1xuICAgIHRoaXMuX3NlcnZpY2VLZXlzdG9yZVBhc3N3b3JkID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU2VjdXJlU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyh0aGlzLCAnS2V5c3RvcmVQYXNzd29yZCcsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6IGAvY29uZmlnLyR7cHJvcHMuc2VydmljZU5hbWV9L3NlcnZpY2Uta2V5c3RvcmUtcGFzc3dvcmRgLFxuICAgICAgdmVyc2lvbjogMSxcbiAgICB9KTtcbiAgICB0aGlzLl9hY2NvdW50TmFtZVBhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ0FjY291bnROYW1lUGFyYW1ldGVyJywgJy9jb25maWcvYWNjb3VudC9uYW1lJyk7XG4gICAgdGhpcy5fbmlzdERhdGFNaXJyb3JVcmwgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TZWN1cmVTdHJpbmdQYXJhbWV0ZXJBdHRyaWJ1dGVzKHRoaXMsICdOaXN0RGF0YU1pcnJvclVybCcsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6ICcvY29uZmlnL25pc3QtZGF0YS1taXJyb3IvdXJsJyxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9tYWluQ29kZUJ1aWxkUHJvamVjdCA9IHRoaXMuY3JlYXRlUmlvQ29kZUJ1aWxkUHJvamVjdCgnTWFpbkJ1aWxkJywgdGhpcy5faW5wdXRNYXN0ZXJUcmlnZ2VyRmlsZSwgcHJvcHMpO1xuICAgIHRoaXMuYWRkTWFpblBpcGVsaW5lKHByb3BzLCB0aGlzLl9tYWluQ29kZUJ1aWxkUHJvamVjdCk7XG5cbiAgICBpZiAocHJvcHMucGlwZWxpbmVUeXBlICE9PSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfSU5GUkFTVFJVQ1RVUkUpIHtcbiAgICAgIHRoaXMuX2JyYW5jaENvZGVCdWlsZFByb2plY3QgPSB0aGlzLmNyZWF0ZVJpb0NvZGVCdWlsZFByb2plY3QoJ0JyYW5jaEJ1aWxkJywgdGhpcy5faW5wdXRCcmFuY2hUcmlnZ2VyRmlsZSwgcHJvcHMpO1xuICAgICAgdGhpcy5hZGRCcmFuY2hQaXBlbGluZShwcm9wcywgdGhpcy5fYnJhbmNoQ29kZUJ1aWxkUHJvamVjdCk7XG4gICAgICB0aGlzLmFkZFZ1bG5lcmFiaWxpdHlQaXBlbGluZShwcm9wcyk7XG4gICAgfVxuXG4gICAgY29uc3QgW2ZlYXR1cmUsIHBhY2thZ2VOYW1lXSA9IF9fZGlybmFtZS5zcGxpdChwYXRoLnNlcCkucmV2ZXJzZSgpO1xuICAgIG5ldyBDbGFpZG9tZXRlcih0aGlzLCAnQ2xhaWRvbWV0ZXInLCB7XG4gICAgICBwcm9kdWN0OiBDbGFpZG9tZXRlclByb2R1Y3QuQ0RLX0NPTlRSSUJVVElPTixcbiAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgZmVhdHVyZSxcbiAgICAgIHZlcnNpb246ICcwLjAuMTcnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtYWluQ29kZWJ1aWxkUHJvamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFpbkNvZGVCdWlsZFByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJyYW5jaENvZGVCdWlsZFByb2plY3QoKTogQ29kZUJ1aWxkU3RlcCB7XG4gICAgaWYgKHRoaXMuX2JyYW5jaENvZGVCdWlsZFByb2plY3QgPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBFcnJvcignVGhlIHBpcGVsaW5lIHR5cGUgeW91IGhhdmUgc2VsZWN0ZWQgZG9lcyBub3Qgc3VwcG9ydCBhIGJyYW5jaCBjb2RlYnVpbGQgcHJvamVjdCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYnJhbmNoQ29kZUJ1aWxkUHJvamVjdDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmlvQ29kZUJ1aWxkUHJvamVjdChuYW1lOiBzdHJpbmcsIHRyaWdnZXJGaWxlOiBDb2RlUGlwZWxpbmVTb3VyY2UsIHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IFJpb0NvZGVCdWlsZFByb2plY3QodGhpcywgbmFtZSwge1xuICAgICAgaW5wdXQ6IHRyaWdnZXJGaWxlLFxuICAgICAgY2RrT3V0RGlyZWN0b3J5OiAnaW5mcmFzdHJ1Y3R1cmUvY2RrLm91dCcsXG4gICAgICBwYXJ0aWFsQnVpbGRTcGVjOiB0aGlzLmxvYWRCdWlsZFNwZWNGcm9tRmlsZShwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8ucGFydGlhbEJ1aWxkU3BlY1BhdGggfHxcbiAgICAgICAgdGhpcy5yZXNvbHZlRGVmYXVsdEJ1aWxkU3BlYyhwcm9wcy5waXBlbGluZVR5cGUpKSxcbiAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHByb3BzPy5jb2RlQnVpbGRPcHRpb25zPy5idWlsZEVudmlyb25tZW50LFxuICAgICAgaG9zdGVkWm9uZU5hbWU6IHRoaXMuX2hvc3RlZFpvbmUuem9uZU5hbWUsXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBjYWNoZUJ1Y2tldDogdGhpcy5fY2FjaGVCdWNrZXQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZE1haW5QaXBlbGluZShwcm9wczogUGlwZWxpbmVTdGFja1Byb3BzLCBtYWluQnVpbGQ6IENvZGVCdWlsZFN0ZXApIHtcblxuICAgIGNvbnN0IHBpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgJ1BpcGVsaW5lJywge1xuICAgICAgYXJ0aWZhY3RCdWNrZXQ6IHRoaXMuX2NhY2hlQnVja2V0LFxuICAgICAgc3ludGg6IG1haW5CdWlsZCxcbiAgICB9KTtcbiAgICBUYWdzLm9mKHBpcGVsaW5lKS5hZGQoJ3BpcGVsaW5lX3R5cGUnLCAnYnVpbGQnKTtcblxuICAgIC8vIENsb3VkQXNzZW1ibHlBcnRpZmFjdHMgbXVzdCBiZSBzbWFsbGVyIHRoYW4gMjU2TUIuIER1ZSB0byB0aGUgZ3JhZGxlIGFydGlmYWN0IHdlIGFyZSBleGNlZWRpbmcgdGhpcyBsaW1pdCBhbmQgcGlwZWxpbmUgZmFpbHMgaW4gZGVwbG95bWVudCBzdGVwLlxuICAgIC8vIElzc3VlIGlzIGtub3duIGFuZCBub3QgZml4ZWQgZm9yIGFscmVhZHkgc29tZSB5ZWFycy4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzk5MTdcbiAgICAvLyBEaXJ0eSBmaXg6IEFzc2V0cyBhcmUgYWxyZWFkeSB1cGxvYWRlZCBhbmQgdGh1cyBub3QgbmVlZGVkLiBSZW1vdmUgdGhlbSBmcm9tIHBpcGVsaW5lIGFydGlmYWN0LlxuICAgIGNvbnN0IHN0cmlwQXNzZXRzU3RlcCA9IG5ldyBDb2RlQnVpbGRTdGVwKFxuICAgICAgJ1N0cmlwQXNzZXRzRnJvbUFzc2VtYmx5Jywge1xuICAgICAgICBpbnB1dDogcGlwZWxpbmUuY2xvdWRBc3NlbWJseUZpbGVTZXQsXG4gICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgJ1MzX1BBVEg9JHtDT0RFQlVJTERfU09VUkNFX1ZFUlNJT04jXCJhcm46YXdzOnMzOjo6XCJ9JyxcbiAgICAgICAgICAnWklQX0FSQ0hJVkU9JChiYXNlbmFtZSAkUzNfUEFUSCknLFxuICAgICAgICAgICdybSAtcmZ2IGFzc2V0LionLFxuICAgICAgICAgICd6aXAgLXIgLXEgLUEgJFpJUF9BUkNISVZFIConLFxuICAgICAgICAgICdhd3MgczMgY3AgJFpJUF9BUkNISVZFIHMzOi8vJFMzX1BBVEgnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgcGlwZWxpbmUuYWRkV2F2ZSgnQmVmb3JlRGVwbG95JywgeyBwcmU6IFtzdHJpcEFzc2V0c1N0ZXBdIH0pO1xuXG4gICAgY29uc3QgY2FwYWJpbGl0eU1vbml0b3JpbmdEZXBsb3lTdGVwID0gdGhpcy5jcmVhdGVDYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXAobWFpbkJ1aWxkLCBwcm9wcyk7XG5cbiAgICBwaXBlbGluZS5hZGRTdGFnZShuZXcgQXBwbGljYXRpb24odGhpcywgJ0RlcGxveUFwcGxpY2F0aW9uU3RhY2tzJywge1xuICAgICAgYXBwU3RhY2tGYWN0b3J5OiBwcm9wcy5hcHBTdGFja0ZhY3RvcnksXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBwcm9jZXNzLmVudi5QSVBFTElORV9FWEVDVVRJT05fSUQgPz8gJ1BJUEVMSU5FX0VYRUNVVElPTl9JRCBub3Qgc2V0JyxcbiAgICB9KSwge1xuICAgICAgcHJlOiBwcm9wcy5zZWNyZXRzRGVwbG95U3RlcFByb3BzID8gW1xuICAgICAgICBuZXcgcmlvLlJpb1NlY3JldHNEZXBsb3lTdGVwKHRoaXMsICdEZXBsb3lTZWNyZXRzJywge1xuICAgICAgICAgIC4uLnByb3BzLnNlY3JldHNEZXBsb3lTdGVwUHJvcHMsXG4gICAgICAgICAgaW5wdXQ6IHRoaXMuX2lucHV0TWFzdGVyVHJpZ2dlckZpbGUsXG4gICAgICAgIH0pLFxuICAgICAgXSA6IHVuZGVmaW5lZCxcbiAgICAgIHBvc3Q6IGNhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcCA/IFtjYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXBdIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICAgIHBpcGVsaW5lLmJ1aWxkUGlwZWxpbmUoKTtcblxuICAgIGlmIChjYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXApIHtcbiAgICAgIGNvbnN0IG1vbml0b3JpbmdUZXN0c3VpdGVSdW5uZXJCdWNrZXQgPSBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ01vbml0b3JpbmdUZXN0c3VpdGVSdW5uZXJCdWNrZXQnLCBgbW9uaXRvcmluZy10ZXN0c3VpdGUtcnVubmVyLSR7dGhpcy5hY2NvdW50fWApO1xuICAgICAgbW9uaXRvcmluZ1Rlc3RzdWl0ZVJ1bm5lckJ1Y2tldC5ncmFudFdyaXRlKGNhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcCk7XG4gICAgfVxuXG4gICAgY29uc3QgcnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnUGlwZWxpbmVTY2hlZHVsZScsIHtcbiAgICAgIHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5waXBlbGluZVNjaGVkdWxlcz8ubWFpblBpcGVsaW5lIHx8ICdjcm9uKDAgOSA/ICogMiMxICopJyksXG4gICAgfSk7XG4gICAgcnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuQ29kZVBpcGVsaW5lKHBpcGVsaW5lLnBpcGVsaW5lKSk7XG5cbiAgICB0aGlzLl9vc3NMaWNlbnNlc0J1Y2tldC5ncmFudFJlYWRXcml0ZShtYWluQnVpbGQpO1xuICAgIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyLmdyYW50UmVhZChtYWluQnVpbGQpO1xuICAgIGlmIChwcm9wcy5waXBlbGluZVR5cGUgIT09IFBpcGVsaW5lVHlwZS5TVEFOREFSRF9JTkZSQVNUUlVDVFVSRSkge1xuICAgICAgdGhpcy5fc2VydmljZUtleXN0b3JlUGFzc3dvcmQuZ3JhbnRSZWFkKG1haW5CdWlsZCk7XG4gICAgfVxuICAgIHRoaXMuX2FjY291bnROYW1lUGFyYW1ldGVyLmdyYW50UmVhZChtYWluQnVpbGQpO1xuICAgIGlmIChwcm9wcy5waXBlbGluZVR5cGUgPT09IFBpcGVsaW5lVHlwZS5TVEFOREFSRF9HUkFETEVfS0FGS0EpIHtcbiAgICAgIHRoaXMuZ3JhbnRQZXJtaXNzaW9uc0ZvckthZmthSW50ZWdyYXRpb24obWFpbkJ1aWxkLCAnS2Fma2FJbnRlZ3JhdGlvblBvbGljeScpO1xuICAgIH1cbiAgICBwaXBlbGluZS5waXBlbGluZS5hcnRpZmFjdEJ1Y2tldC5ncmFudFJlYWRXcml0ZShzdHJpcEFzc2V0c1N0ZXAucHJvamVjdCk7XG5cbiAgICBuZXcgRGF0YWRvZ1BpcGVsaW5lRXJyb3JBbGVydCh0aGlzLCAnRGF0YWRvZ1BpcGVsaW5lRXJyb3JNb25pdG9yJywge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgcGlwZWxpbmVOYW1lOiB0aGlzLnJlbmFtZVBpcGVsaW5lVG9Mb3dlckNhc2UocGlwZWxpbmUpLFxuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEJyYW5jaFBpcGVsaW5lKHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMsIGJyYW5jaEJ1aWxkOiBDb2RlQnVpbGRTdGVwKSB7XG5cbiAgICBjb25zdCBicmFuY2hQaXBlbGluZSA9IG5ldyBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKHRoaXMsICdCcmFuY2hQaXBlbGluZScsIHtcbiAgICAgIGFydGlmYWN0QnVja2V0OiB0aGlzLl9jYWNoZUJ1Y2tldCxcbiAgICAgIHN5bnRoOiBicmFuY2hCdWlsZCxcbiAgICAgIHNlbGZNdXRhdGlvbjogZmFsc2UsXG4gICAgfSk7XG4gICAgVGFncy5vZihicmFuY2hQaXBlbGluZSkuYWRkKCdwaXBlbGluZV90eXBlJywgJ2JyYW5jaCcpO1xuICAgIGJyYW5jaFBpcGVsaW5lLmFkZFdhdmUoJ0JyYW5jaEJ1aWxkJykuYWRkUG9zdChicmFuY2hCdWlsZCk7XG4gICAgYnJhbmNoUGlwZWxpbmUuYnVpbGRQaXBlbGluZSgpO1xuXG4gICAgdGhpcy5fb3NzTGljZW5zZXNCdWNrZXQuZ3JhbnRSZWFkV3JpdGUoYnJhbmNoQnVpbGQpO1xuICAgIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyLmdyYW50UmVhZChicmFuY2hCdWlsZCk7XG4gICAgdGhpcy5fc2VydmljZUtleXN0b3JlUGFzc3dvcmQuZ3JhbnRSZWFkKGJyYW5jaEJ1aWxkKTtcbiAgICB0aGlzLl9hY2NvdW50TmFtZVBhcmFtZXRlci5ncmFudFJlYWQoYnJhbmNoQnVpbGQpO1xuICAgIGlmIChwcm9wcy5waXBlbGluZVR5cGUgPT09IFBpcGVsaW5lVHlwZS5TVEFOREFSRF9HUkFETEVfS0FGS0EpIHtcbiAgICAgIHRoaXMuZ3JhbnRQZXJtaXNzaW9uc0ZvckthZmthSW50ZWdyYXRpb24oYnJhbmNoQnVpbGQsICdCcmFuY2hLYWZrYUludGVncmF0aW9uUG9saWN5Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRWdWxuZXJhYmlsaXR5UGlwZWxpbmUocHJvcHM6IFBpcGVsaW5lU3RhY2tQcm9wcykge1xuICAgIGNvbnN0IHZ1bG5lcmFiaWxpdHlCdWlsZCA9IG5ldyBSaW9Db2RlQnVpbGRQcm9qZWN0KHRoaXMsICdWdWxuZXJhYmlsaXR5Q2hlY2tzJywge1xuICAgICAgaW5wdXQ6IHRoaXMuX2lucHV0TWFzdGVyVHJpZ2dlckZpbGUsXG4gICAgICBwYXJ0aWFsQnVpbGRTcGVjOiB0aGlzLmxvYWRCdWlsZFNwZWNGcm9tRmlsZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjcy9idWlsZHNwZWMtdnVsbmVyYWJpbGl0eS1jaGVja3MueWFtbCcpKSxcbiAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHByb3BzPy5jb2RlQnVpbGRPcHRpb25zPy5idWlsZEVudmlyb25tZW50LFxuICAgICAgaG9zdGVkWm9uZU5hbWU6IHRoaXMuX2hvc3RlZFpvbmUuem9uZU5hbWUsXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBjYWNoZUJ1Y2tldDogdGhpcy5fY2FjaGVCdWNrZXQsXG4gICAgfSk7XG4gICAgY29uc3QgdnVsbmVyYWJpbGl0eVBpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgJ1Z1bG5lcmFiaWxpdHlQaXBlbGluZScsIHtcbiAgICAgIGFydGlmYWN0QnVja2V0OiB0aGlzLl9jYWNoZUJ1Y2tldCxcbiAgICAgIHN5bnRoOiB2dWxuZXJhYmlsaXR5QnVpbGQsXG4gICAgICBzZWxmTXV0YXRpb246IGZhbHNlLFxuICAgIH0pO1xuICAgIFRhZ3Mub2YodnVsbmVyYWJpbGl0eVBpcGVsaW5lKS5hZGQoJ3BpcGVsaW5lX3R5cGUnLCAndnVsbmVyYWJpbGl0eScpO1xuXG4gICAgdnVsbmVyYWJpbGl0eVBpcGVsaW5lLmFkZFdhdmUoJ1Z1bG5lcmFiaWxpdHlDaGVja3MnKS5hZGRQb3N0KHZ1bG5lcmFiaWxpdHlCdWlsZCk7XG4gICAgdnVsbmVyYWJpbGl0eVBpcGVsaW5lLmJ1aWxkUGlwZWxpbmUoKTtcbiAgICB0aGlzLl9uaXN0RGF0YU1pcnJvclVybC5ncmFudFJlYWQodnVsbmVyYWJpbGl0eUJ1aWxkKTtcblxuICAgIGNvbnN0IHZ1bG5lcmFiaWxpdHlSdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdWdWxuZXJhYmlsaXR5UGlwZWxpbmVTY2hlZHVsZScsIHtcbiAgICAgIHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5waXBlbGluZVNjaGVkdWxlcz8udnVsbmVyYWJpbGl0eVBpcGVsaW5lIHx8ICdjcm9uKDAgNSA/ICogTU9OLUZSSSAqKScpLFxuICAgIH0pO1xuICAgIHZ1bG5lcmFiaWxpdHlSdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5Db2RlUGlwZWxpbmUodnVsbmVyYWJpbGl0eVBpcGVsaW5lLnBpcGVsaW5lKSk7XG5cbiAgICBuZXcgRGF0YURvZ1BpcGVsaW5lRXJyb3JBbGVydEZvclZ1bG5lcmFiaWxpdHlDaGVja3ModGhpcywgJ0RhdGFEb2dQaXBlbGluZUVycm9yRm9yVnVsbmVyYWJpbGl0eUNoZWNrc01vbml0b3InLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBwaXBlbGluZU5hbWU6IHRoaXMucmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZSh2dWxuZXJhYmlsaXR5UGlwZWxpbmUpLFxuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnQsXG4gICAgICBhbGVydFR5cGU6IHByb3BzLmRhdGFkb2dBbGVydFR5cGUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcChtYWluQnVpbGQ6IENvZGVCdWlsZFN0ZXAsIHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpOiBDb2RlQnVpbGRTdGVwIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocHJvcHMubW9uaXRvcmluZ0RlcGxveVN0ZXBQcm9wcykge1xuICAgICAgY29uc3QgbW9uaXRvcmluZ0FydGlmYWN0cyA9IE9iamVjdC5rZXlzKHByb3BzLm1vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHMubW9uaXRvcmluZ0FydGlmYWN0cykubWFwKChrZXkpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gbWFpbkJ1aWxkLmFkZE91dHB1dERpcmVjdG9yeShrZXkpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlucHV0OiBvdXRwdXQsXG4gICAgICAgICAgZmlsZXM6IHByb3BzLm1vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHMhLm1vbml0b3JpbmdBcnRpZmFjdHNba2V5XSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBSaW9DYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXAodGhpcywgJ0RlcGxveUNhcGFiaWxpdHlNb25pdG9yaW5nJywge1xuICAgICAgICBtb25pdG9yaW5nQXJ0aWZhY3RzOiBtb25pdG9yaW5nQXJ0aWZhY3RzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGVmYXVsdEJ1aWxkU3BlYyhwaXBlbGluZVR5cGU6IFBpcGVsaW5lVHlwZSkge1xuICAgIHN3aXRjaCAocGlwZWxpbmVUeXBlKSB7XG4gICAgICBjYXNlIFBpcGVsaW5lVHlwZS5TVEFOREFSRF9HUkFETEU6XG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjcy9idWlsZHNwZWMueWFtbCcpO1xuICAgICAgY2FzZSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfR1JBRExFX0tBRktBOlxuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlY3MvYnVpbGRzcGVjX2thZmthLnlhbWwnKTtcbiAgICAgIGNhc2UgUGlwZWxpbmVUeXBlLlNUQU5EQVJEX0lORlJBU1RSVUNUVVJFOlxuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlY3MvYnVpbGRzcGVjX2luZnJhc3RydWN0dXJlLnlhbWwnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdyYW50UGVybWlzc2lvbnNGb3JLYWZrYUludGVncmF0aW9uKGJ1aWxkUHJvamVjdDogUmlvQ29kZUJ1aWxkUHJvamVjdCwgcG9saWN5SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1aWxkUHJvamVjdFJvbGUgPSBidWlsZFByb2plY3QucHJvamVjdC5yb2xlO1xuICAgIGlmIChidWlsZFByb2plY3RSb2xlKSB7XG4gICAgICBidWlsZFByb2plY3RSb2xlLmFkZE1hbmFnZWRQb2xpY3koXG4gICAgICAgIE1hbmFnZWRQb2xpY3kuZnJvbU1hbmFnZWRQb2xpY3lBcm4odGhpcyxcbiAgICAgICAgICBwb2xpY3lJZCxcbiAgICAgICAgICBGbi5pbXBvcnRWYWx1ZSgna2Fma2EtaW50ZWdyYXRpb24tcG9saWN5LWFybicpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoYENvdWxkIG5vdCBhZGQgbWFuYWdlZCBwb2xpY3kgZm9yIGthZmthLWludGVncmF0aW9uIHRvIENvZGVCdWlsZCBwcm9qZWN0IG9mICR7YnVpbGRQcm9qZWN0LmlkfSBkdWUgdG8gbWlzc2luZyByb2xlLmApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEJ1aWxkU3BlY0Zyb21GaWxlKGJ1aWxkU3BlY1BhdGg6IHN0cmluZyk6IEJ1aWxkU3BlYyB7XG4gICAgcmV0dXJuIEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHlhbWwubG9hZChmcy5yZWFkRmlsZVN5bmMoYnVpbGRTcGVjUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSkgYXMgT2JqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZShwaXBlbGluZTogcGlwZWxpbmVzLkNvZGVQaXBlbGluZSk6IFJlZmVyZW5jZSB7XG4gICAgY29uc3QgdXBwZXJUb0xvd2VyQ3IgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3BpcGVsaW5lLm5vZGUuaWR9LVVwcGVyVG9Mb3dlcmAsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6VXBwZXJUb0xvd2VyJyxcbiAgICAgIHNlcnZpY2VUb2tlbjogVXBwZXJUb0xvd2VyLmdldE9yQ3JlYXRlKHRoaXMpLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVXBwZXI6IHBpcGVsaW5lLnBpcGVsaW5lLnBpcGVsaW5lTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHVwcGVyVG9Mb3dlckNyLmdldEF0dCgnTG93ZXInKTtcbiAgfVxufVxuIl19
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUvcGlwZWxpbmUtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyw2Q0FBOEY7QUFDOUYsNkRBQXdFO0FBQ3hFLDZFQUE2RTtBQUM3RSxpREFBaUQ7QUFDakQsMERBQTBEO0FBQzFELGlEQUFvRDtBQUVwRCx5Q0FBeUM7QUFDekMsK0NBQXFEO0FBQ3JELDJDQUEyQztBQUUzQyxtREFBbUQ7QUFDbkQscURBQTBFO0FBRTFFLGdDQUFnQztBQUNoQywyREFBa0Q7QUFDbEQsbURBQXNEO0FBQ3RELHlEQUFnSDtBQUNoSCxxRUFBNkU7QUFHN0Usc0NBQXNDO0FBQ3RDLDBDQUFpRTtBQUNqRSxnREFBaUQ7QUFzSWpELElBQVksWUFzQ1g7QUF0Q0QsV0FBWSxZQUFZO0lBRXRCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILG1EQUFtQyxDQUFBO0lBQ25DOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCwrREFBK0MsQ0FBQTtJQUMvQzs7Ozs7T0FLRztJQUNILG1FQUFtRCxDQUFBO0FBQ3JELENBQUMsRUF0Q1csWUFBWSw0QkFBWixZQUFZLFFBc0N2QjtBQWNELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBY3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFB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QUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFXLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU8seUJBQXlCLENBQUMsUUFBZ0M7UUFDaEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLEVBQUU7WUFDdEYsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxZQUFZLEVBQUUsdUJBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDbEUsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7YUFDdEM7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUE3UUgsc0NBOFFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEdXJhdGlvbiwgRm4sIFJlZmVyZW5jZSwgUmVtb3ZhbFBvbGljeSwgU3RhY2ssIFN0YWNrUHJvcHMsIFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWlsZEVudmlyb25tZW50LCBCdWlsZFNwZWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCAqIGFzIGNvZGVwaXBlbGluZV9hY3Rpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBNYW5hZ2VkUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBJSG9zdGVkWm9uZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBCdWNrZXQsIElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgSVN0cmluZ1BhcmFtZXRlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0ICogYXMgcGlwZWxpbmVzIGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb2RlQnVpbGRTdGVwLCBDb2RlUGlwZWxpbmVTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tICcuL2FwcGxpY2F0aW9uLXN0YWdlJztcbmltcG9ydCB7IFJpb0NvZGVCdWlsZFByb2plY3QgfSBmcm9tICcuL2J1aWxkLXByb2plY3QnO1xuaW1wb3J0IHsgRGF0YWRvZ1BpcGVsaW5lRXJyb3JBbGVydCwgRGF0YURvZ1BpcGVsaW5lRXJyb3JBbGVydEZvclZ1bG5lcmFiaWxpdHlDaGVja3MgfSBmcm9tICcuL2RhdGFkb2ctbW9uaXRvcnMnO1xuaW1wb3J0IHsgUmlvQ2FwYWJpbGl0eU1vbml0b3JpbmdEZXBsb3lTdGVwIH0gZnJvbSAnLi9tb25pdG9yaW5nLWRlcGxveS1zdGVwJztcbmltcG9ydCB7IERhdGFkb2dBbGVydFR5cGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9nJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuaW1wb3J0ICogYXMgcmlvIGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7IENsYWlkb21ldGVyLCBDbGFpZG9tZXRlclByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBVcHBlclRvTG93ZXIgfSBmcm9tICcuLi8uLi8uLi93YXRjaGZ1bCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVNjaGVkdWxlc1Byb3BzIHtcbiAgcmVhZG9ubHkgbWFpblBpcGVsaW5lPzogc3RyaW5nO1xuICByZWFkb25seSB2dWxuZXJhYmlsaXR5UGlwZWxpbmU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICogLSBUaGlzIGhhcyB0byBiZSB0aGUgc2FtZSBuYW1lIGFzIHRoZSByZXBvc2l0b3J5IGFzIHRoZSBzMyB0cmlnZ2VyIGZpbGUgY3JlYXRlZCBieSB0aGUgYml0YnVja2V0LWludGVncmF0aW9uIHVzZXMgdGhpcyBhcyBhIHByZWZpeFxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBhdmFpbGFibGUgYXMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgU0VSVklDRV9OQU1FIGluIHRoZSBDb2RlQnVpbGRTdGVwXG4gICAqIC0gVGhlIHNlcnZpY2VOYW1lIGlzIGF2YWlsYWJsZSBpbiB0aGUgQXBwU3RhY2tQcm9wcyBpbiB0aGUgYXBwU3RhY2tGYWN0b3J5XG4gICAqIC0gVGhlIHNlcnZpY2VOYW1lIGlzIGF2YWlsYWJsZSBhcyBzdGFja05hbWUgcHJvcGVydHkgaW4gdGhlIEFwcFN0YWNrUHJvcHMgaW4gdGhlIGFwcFN0YWNrRmFjdG9yeS4gSS5lLiB0aGUgc3RhY2sgaXMgbmFtZWQgYWZ0ZXIgdGhlIHNlcnZpY2VcbiAgICogLSBUaGUgc2VydmljZU5hbWUgaXMgaGFuZGVkIG92ZXIgdG8gYWxsIERhdGFkb2cgbW9uaXRvcnNcbiAgICogLSBSSU8gY29udmVudGlvbiBpcyB0aGF0IHVwbG9hZGVkIGxpY2Vuc2UtY2hlY2stZmlsZXMgYXJlIG5hbWVkIGFmdGVyIHRoZSBzZXJ2aWNlLCBpLmUuIHNlcnZpY2VOYW1lLnR4dFxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdmlkZXIgZm9yIGFwcFN0YWNrIHRvIGJlIGRlcGxveWVkLlxuICAgKlxuICAgKiBUaGlzIGFjdHMgYXMgYSB3cmFwcGVyIGZvciBhbGwgcmVzb3VyY2VzIHlvdSB3YW50IHRvIGRlcGxveSB2aWEgdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwU3RhY2tGYWN0b3J5OiBJQXBwU3RhY2tGYWN0b3J5O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHdoaWNoIGtpbmQgb2YgcGlwZWxpbmUgaXMgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZVR5cGU6IFBpcGVsaW5lVHlwZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgb2Z0ZW4gdGhlIHBpcGVsaW5lIGlzIHRyaWdnZXJlZCBhdXRvbWF0aWNhbGx5LiBJcyBkZWZpbmVkIHZpYSBhIGNyb24gZXhwcmVzc2lvbi5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvU2NoZWR1bGVkRXZlbnRzLmh0bWxcbiAgICpcbiAgICogRGVmYXVsdCB2YWx1ZXM6XG4gICAqIC0gbWFpbiBwaXBlbGluZTogY3JvbigwIDkgPyAqIDIjMSAqKVxuICAgKiAtIHZ1bG5lcmFiaWxpdHkgcGlwZWxpbmU6IGNyb24oMCA1ID8gKiBNT04tRlJJICopXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZVNjaGVkdWxlcz86IFBpcGVsaW5lU2NoZWR1bGVzUHJvcHM7XG5cblxuICAvKipcbiAgICogUGF0aCB0byBzZWNyZXRzIGZpbGUgY29udGFpbmluZyBlbmNyeXB0ZWQgc2VjcmV0cy5cbiAgICpcbiAgICogVGhlIFJpb1NlY3JldHNEZXBsb3lTdGVwIGlzIGFkZGVkIHByaW9yIHRvIGRlcGxveW1lbnQgb2YgdGhlIEFwcFN0YWNrIGlmIGEgcGF0aCBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogTm8gc2VjcmV0cyBhcmUgZGVwbG95ZWQgaWYgbm8gcGF0aCBpcyBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNEZXBsb3lTdGVwUHJvcHM/OiBQaXBlbGluZVN0YWNrUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wcztcblxuICAvKipcbiAgICogQ29kZUJ1aWxkIG9wdGlvbnMgb3ZlcnJpZGluZyB0aGUgcmlvLXNwZWNpZmljIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUJ1aWxkT3B0aW9ucz86IENvZGVCdWlsZE9wdGlvbnM7XG4gIC8qKlxuICAgKiBJZiBwcmVzZW50LCB0aGUgY2FwYWJpbGl0eSBtb25pdG9yaW5nIGRlcGxveSBzdGVwIGlzIGFkZGVkIHRvIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHM/OiBQaXBlbGluZVN0YWNrUmlvTW9uaXRvcmluZ0RlcGxveVN0ZXBQcm9wcztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgdGhlIGB2dWxuZXJhYmlsaXR5Tm90aWZpY2F0aW9uYCBwcm9wZXJ0eSBpbnN0ZWFkLlxuICAgKiBJZiBgb3BzZ2VuaWVgIGlzIHNwZWNpZmllZCwgYW4gRXhjZXB0aW9uIGlzIHRocm93biwgYXMgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIGFueW1vcmUuXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nQWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZTtcbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbiB0eXBlIGZvciB0aGUgYXV0by1nZW5lcmF0ZWQgdnVsbmVyYWJpbGl0eSBwaXBlbGluZSBtb25pdG9yLiBEZWZhdWx0cyB0byBzbGFjay5cbiAgICovXG4gIHJlYWRvbmx5IHZ1bG5lcmFiaWxpdHlOb3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xufVxuXG4vKipcbiAqIFByb3ZpZGVyIGludGVyZmFjZSB0byBjcmVhdGUgdGhlIEFwcFN0YWNrIHdpdGhpbiB0aGUgc3BlY2lmaWMgc2NvcGVcbiAqXG4gKiBTaW1wbHkgcGxhY2UgdGhlIEFwcFN0YWNrIGNyZWF0aW9uIGludG8gdGhlIGNyZWF0ZS1tZXRob2Q6XG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIFVzZSBlLmcuIHdpdGhpbiBBcHBsaWNhdGlvblByb3BzIGFzIEpTT05PYmplY3Q6XG4gKiB7IGNyZWF0ZTogKGNvbnN0cnVjdCwgcHJvcHMpID0+IG5ldyBTdGFjayhjb25zdHJ1Y3QsICdBcHBTdGFjaycsIHByb3BzKSB9XG4gKlxuICogLy8gb3Igc2ltcGx5IGFzIGNsYXNzIGludGVyZmFjZSB3aXRoaW4geW91ciBzdGFjayBpbXBsZW1lbnRhdGlvbjpcbiAqIGNsYXNzIFBpcGVsaW5lU3RhZ2UgZXh0ZW5kcyBTdGFnZSBpbXBsZW1lbnRzIElBcHBTdGFja0ZhY3Rvcnkge1xuICogICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhZ2VQcm9wcykge1xuICogICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICogICAgIC8vIHlvdXIgc3RhZ2UgZGVmaW5pdGlvblxuICogICB9XG4gKlxuICogICBjcmVhdGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAqICAgICAvLyBhcHAgc3RhY2sgaW5pdGlhdGlvbiBnb2VzIGluIGhlcmVcbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcHBTdGFja0ZhY3Rvcnkge1xuICAvKipcbiAgICogRmFjdG9yeSBtZXRob2QsIGJlaW5nIGludm9rZWQgd2l0aCB0aGUgc3BlY2lmaWMgc2NvcGUgZHVyaW5nIHBpcGVsaW5lIGluc3RhbnRpYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBwYXJlbnQgY29uc3RydWN0IGZvciB0aGUgYXBwIHN0YWNrXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgYXBwIHN0YWNrcyBwcm9wZXJ0aWVzXG4gICAqL1xuICBjcmVhdGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFwcFN0YWNrUHJvcHMpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlbGVjdGVkIHByb3BlcnRpZXMgYmVpbmcgaGFuZGVkIG92ZXIgdG8gUmlvU2VjcmV0c0RlcGxveVN0ZXAuXG4gKlxuICogQHNlZSByaW8uUmlvU2VjcmV0c0RlcGxveVN0ZXBcbiAqIEBzZWUgcmlvLlJpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVN0YWNrUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wcyB7XG4gIHJlYWRvbmx5IHNlY3JldHNGaWxlUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lU3RhY2tSaW9Nb25pdG9yaW5nRGVwbG95U3RlcFByb3BzIHtcbiAgLyoqXG4gICAqIE1hcCB7ZGlyZWN0b3J5OiBmaWxlbmFtZXN9IGNvbnRhaW5pbmcgIC5qYXIgb3IgLnppcCBmaWxlcyBjcmVhdGVkIGluIG1haW4gYnVpbGQgc3RlcCB0byBiZSB1cGxvYWRlZCB0byB0aGUgbW9uaXRvcmluZy10ZXN0c3VpdGUtcnVubmVyIGJ1Y2tldCwgZS5nLlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgJ2F2YWlsYWJpbGl0eS1tb25pdG9yaW5nL2J1aWxkL2xpYnMnOiBbJ2Zvby1hdmFpbGFiaWxpdHkuamFyJ10sXG4gICAqICAncGVyZm9ybWFuY2UtbW9uaXRvcmluZy9idWlsZC9saWJzJzogWydhcGktY2hlY2suemlwJywgJ2Zvby1wZXJmb3JtYW5jZS5qYXInXSxcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JpbmdBcnRpZmFjdHM6IHsgW2RpcmVjdG9yeTogc3RyaW5nXTogc3RyaW5nW10gfTtcbn1cblxuZXhwb3J0IGVudW0gUGlwZWxpbmVUeXBlIHtcblxuICAvKipcbiAgICogU2VsZi1tdXRhdGluZyBjb2RlcGlwZWxpbmUgZGVwbG95aW5nIHRoZSBwcm92aWRlZCBBcHBTdGFjay4gQmUgYXdhcmU6IFRoZSBwcm92aWRlZCBzZXJ2aWNlIHdvbid0IGhhdmUgYWNjZXNzIHRvIEthZmthLlxuICAgKlxuICAgKiBDb21lcyB3aXRoIGEgcHJlLWRlZmluZWQgYnVpbGRzcGVjLnlhbWwgZm9yIGEgZ3JhZGxlIHByb2plY3QuIFRoaXMgYnVpbGRzcGVjLnlhbWwgaXMgdXNlZCBmb3IgYm90aCB0aGUgbWFpbiBhbmRcbiAgICogYnJhbmNoIHBpcGVsaW5lIGFuZCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIHN0ZXBzXG4gICAqIC0gYnVpbGQgYW5kIHRlc3Qgb2YgdGhlIGFydGlmYWN0IHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGNsZWFuIGJ1aWxkXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKiAtIGxpY2Vuc2UtY2hlY2sgYW5kIHVwbG9hZCBvZiBsaWNlbnNlLWNoZWNrLWZpbGUgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgY2hlY2tMaWNlbnNlc1wiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICogLSBjcmVhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0byBtYWtlIFRMUyBjb21tdW5pY2F0aW9uIHBvc3NpYmxlLCBlLmcuIHdpdGggYSBsb2FkYmFsYW5jZXIuXG4gICAqIC0gYnVpbGQgdGhlIGNvbnRhaW5lciBpbWFnZSB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBqaWJCdWlsZFRhclwiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICovXG4gIFNUQU5EQVJEX0dSQURMRSA9ICdTVEFOREFSRF9HUkFETEUnLFxuICAvKipcbiAgICogU2VsZi1tdXRhdGluZyBjb2RlcGlwZWxpbmUgZGVwbG95aW5nIHRoZSBwcm92aWRlZCBBcHBTdGFjayB3aXRoIGFkZGl0aW9uYWwgc3RlcHMgbmVlZGVkIHRvIGFjY2VzcyBLYWZrYS5cbiAgICpcbiAgICogQ29tZXMgd2l0aCBhIHByZS1kZWZpbmVkIGJ1aWxkc3BlYy55YW1sIGZvciBhIGdyYWRsZSBwcm9qZWN0LiBUaGlzIGJ1aWxkc3BlYy55YW1sIGlzIHVzZWQgZm9yIGJvdGggdGhlIG1haW4gYW5kXG4gICAqIGJyYW5jaCBwaXBlbGluZSBhbmQgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBzdGVwc1xuICAgKiAtIGJ1aWxkIGFuZCB0ZXN0IG9mIHRoZSBhcnRpZmFjdCB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBjbGVhbiBidWlsZFwiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICogLSBsaWNlbnNlLWNoZWNrIGFuZCB1cGxvYWQgb2YgbGljZW5zZS1jaGVjay1maWxlIHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGNoZWNrTGljZW5zZXNcIi5cbiAgICogPHA+IFRoaXMgZ3JhZGxlIGNvbW1hbmQgbXVzdCBiZSBwcm92aWRlZCBieSB0aGUgZ3JhZGxlIHByb2plY3QuXG4gICAqIC0gY3JlYXRlIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG8gbWFrZSBUTFMgY29tbXVuaWNhdGlvbiBwb3NzaWJsZSwgZS5nLiB3aXRoIGEgbG9hZGJhbGFuY2VyLlxuICAgKiAtIHJlcXVlc3QgYSBjZXJ0aWZpY2F0ZSB0byBhdXRoZW50aWNhdGUgYWdhaW5zdCBLYWZrYSB2aWEgbXV0dWFsIFRMU1xuICAgKiAtIGJ1aWxkIHRoZSBjb250YWluZXIgaW1hZ2UgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgamliQnVpbGRUYXJcIi5cbiAgICogPHA+IFRoaXMgZ3JhZGxlIGNvbW1hbmQgbXVzdCBiZSBwcm92aWRlZCBieSB0aGUgZ3JhZGxlIHByb2plY3QuXG4gICAqL1xuICBTVEFOREFSRF9HUkFETEVfS0FGS0EgPSAnU1RBTkRBUkRfR1JBRExFX0tBRktBJyxcbiAgLyoqXG4gICAqIFNlbGYtbXV0YXRpbmcgY29kZXBpcGVsaW5lIGRlcGxveWluZyB0aGUgcHJvdmlkZWQgQXBwU3RhY2suXG4gICAqXG4gICAqIENvbWVzIHdpdGggYSBwcmUtZGVmaW5lZCBidWlsZHNwZWMueWFtbCB0byBzeW50aGVzaXplIHRoZSBBcHBTdGFjay5cbiAgICogTm8gYnJhbmNoIG9yIHZ1bG5lcmFiaWxpdHkgcGlwZWxpbmUgaXMgY3JlYXRlZC5cbiAgICovXG4gIFNUQU5EQVJEX0lORlJBU1RSVUNUVVJFID0gJ1NUQU5EQVJEX0lORlJBU1RSVUNUVVJFJyxcbn1cblxuLyoqXG4gKiBAcGFyYW0gcGFydGlhbEJ1aWxkU3BlY1BhdGggUGF0aCB0byBhIGN1c3RvbSBidWlsZC1zcGVjIGZpbGUgdG8gdXNlIGZvciB0aGUgbWFpbiBhbmQgYnJhbmNoIHBpcGVsaW5lLlxuICogQSBwcmUtZGVmaW5lZCBidWlsZHNwZWMueWFtbCBmaXR0aW5nIHRoZSBwaXBlbGluZVR5cGUgaXMgdXNlZCBpZiBub3QgcHJvdmlkZWQuXG4gKiBAcGFyYW0gYnVpbGRFbnZpcm9ubWVudCBDdXN0b20gQ29kZUJ1aWxkIGJ1aWxkIGVudmlyb25tZW50IG92ZXJyaWRpbmcgdGhlIHJpby1zcGVjaWZpYyBkZWZhdWx0cy4gVGhlIGRlZmF1bHRzIGFyZTpcbiAqICAgICAgICAgIGJ1aWxkSW1hZ2U6IEFNQVpPTl9MSU5VWF8yXzVcbiAqICAgICAgICAgIGNvbXB1dGVUeXBlOiBMQVJHRVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCdWlsZE9wdGlvbnMge1xuICByZWFkb25seSBwYXJ0aWFsQnVpbGRTcGVjUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgYnVpbGRFbnZpcm9ubWVudD86IEJ1aWxkRW52aXJvbm1lbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQaXBlbGluZVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tYWluQ29kZUJ1aWxkUHJvamVjdDogQ29kZUJ1aWxkU3RlcDtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJhbmNoQ29kZUJ1aWxkUHJvamVjdDogQ29kZUJ1aWxkU3RlcCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnVja2V0OiBJQnVja2V0O1xuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZUJ1Y2tldDogSUJ1Y2tldDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0TWFzdGVyVHJpZ2dlckZpbGU6IENvZGVQaXBlbGluZVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXRCcmFuY2hUcmlnZ2VyRmlsZTogQ29kZVBpcGVsaW5lU291cmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlcjogSVN0cmluZ1BhcmFtZXRlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3NzTGljZW5zZXNCdWNrZXQ6IElCdWNrZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2VLZXlzdG9yZVBhc3N3b3JkOiBJU3RyaW5nUGFyYW1ldGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY2NvdW50TmFtZVBhcmFtZXRlcjogSVN0cmluZ1BhcmFtZXRlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmlzdERhdGFNaXJyb3JVcmw6IElTdHJpbmdQYXJhbWV0ZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgLy8gcG9wdWxhdGUgZXh0ZXJuYWwgcGFyYW1ldGVyc1xuICAgIHRoaXMuX2J1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZSh0aGlzLCAnVHJpZ2dlckJ1Y2tldCcsIEZuLmltcG9ydFZhbHVlKCdiaXRidWNrZXQtaW50ZWdyYXRpb24tczMtYnVja2V0JykpO1xuICAgIHRoaXMuX2NhY2hlQnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQ2FjaGVCdWNrZXQnLCB7XG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDMwKSxcbiAgICAgICAgICBhYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRBZnRlcjogRHVyYXRpb24uZGF5cyg3KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5faG9zdGVkWm9uZSA9IHJpby5SaW9MYW5kaW5nWm9uZS5nZXREZWZhdWx0SG9zdGVkWm9uZSh0aGlzKTtcbiAgICB0aGlzLl9pbnB1dE1hc3RlclRyaWdnZXJGaWxlID0gcGlwZWxpbmVzLkNvZGVQaXBlbGluZVNvdXJjZS5zMyh0aGlzLl9idWNrZXQsIGAke3Byb3BzLnNlcnZpY2VOYW1lfS90cmlnZ2VyLyR7cmlvLlRyaWdnZXJLZXkuTUFTVEVSX1JFUE99YCwgeyB0cmlnZ2VyOiBjb2RlcGlwZWxpbmVfYWN0aW9ucy5TM1RyaWdnZXIuRVZFTlRTIH0pO1xuICAgIHRoaXMuX2lucHV0QnJhbmNoVHJpZ2dlckZpbGUgPSBwaXBlbGluZXMuQ29kZVBpcGVsaW5lU291cmNlLnMzKHRoaXMuX2J1Y2tldCwgYCR7cHJvcHMuc2VydmljZU5hbWV9L3RyaWdnZXIvJHtyaW8uVHJpZ2dlcktleS5CUkFOQ0hfUkVQT31gLCB7IHRyaWdnZXI6IGNvZGVwaXBlbGluZV9hY3Rpb25zLlMzVHJpZ2dlci5FVkVOVFMgfSk7XG5cbiAgICB0aGlzLl9vc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgJ09zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyJywgeyBwYXJhbWV0ZXJOYW1lOiAnL2NvbmZpZy9vc3MtbGljZW5zZXMvYnVja2V0LW5hbWUnIH0pO1xuICAgIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdPc3NMaWNlbnNlc0J1Y2tldCcsIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyLnN0cmluZ1ZhbHVlKTtcbiAgICB0aGlzLl9zZXJ2aWNlS2V5c3RvcmVQYXNzd29yZCA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVNlY3VyZVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgJ0tleXN0b3JlUGFzc3dvcmQnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBgL2NvbmZpZy8ke3Byb3BzLnNlcnZpY2VOYW1lfS9zZXJ2aWNlLWtleXN0b3JlLXBhc3N3b3JkYCxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgfSk7XG4gICAgdGhpcy5fYWNjb3VudE5hbWVQYXJhbWV0ZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdBY2NvdW50TmFtZVBhcmFtZXRlcicsICcvY29uZmlnL2FjY291bnQvbmFtZScpO1xuICAgIHRoaXMuX25pc3REYXRhTWlycm9yVXJsID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU2VjdXJlU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyh0aGlzLCAnTmlzdERhdGFNaXJyb3JVcmwnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiAnL2NvbmZpZy9uaXN0LWRhdGEtbWlycm9yL3VybCcsXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fbWFpbkNvZGVCdWlsZFByb2plY3QgPSB0aGlzLmNyZWF0ZVJpb0NvZGVCdWlsZFByb2plY3QoJ01haW5CdWlsZCcsIHRoaXMuX2lucHV0TWFzdGVyVHJpZ2dlckZpbGUsIHByb3BzKTtcbiAgICB0aGlzLmFkZE1haW5QaXBlbGluZShwcm9wcywgdGhpcy5fbWFpbkNvZGVCdWlsZFByb2plY3QpO1xuXG4gICAgaWYgKHByb3BzLnBpcGVsaW5lVHlwZSAhPT0gUGlwZWxpbmVUeXBlLlNUQU5EQVJEX0lORlJBU1RSVUNUVVJFKSB7XG4gICAgICB0aGlzLl9icmFuY2hDb2RlQnVpbGRQcm9qZWN0ID0gdGhpcy5jcmVhdGVSaW9Db2RlQnVpbGRQcm9qZWN0KCdCcmFuY2hCdWlsZCcsIHRoaXMuX2lucHV0QnJhbmNoVHJpZ2dlckZpbGUsIHByb3BzKTtcbiAgICAgIHRoaXMuYWRkQnJhbmNoUGlwZWxpbmUocHJvcHMsIHRoaXMuX2JyYW5jaENvZGVCdWlsZFByb2plY3QpO1xuICAgICAgdGhpcy5hZGRWdWxuZXJhYmlsaXR5UGlwZWxpbmUocHJvcHMpO1xuICAgIH1cblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjE5JyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWFpbkNvZGVidWlsZFByb2plY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21haW5Db2RlQnVpbGRQcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGdldCBicmFuY2hDb2RlQnVpbGRQcm9qZWN0KCk6IENvZGVCdWlsZFN0ZXAge1xuICAgIGlmICh0aGlzLl9icmFuY2hDb2RlQnVpbGRQcm9qZWN0ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1RoZSBwaXBlbGluZSB0eXBlIHlvdSBoYXZlIHNlbGVjdGVkIGRvZXMgbm90IHN1cHBvcnQgYSBicmFuY2ggY29kZWJ1aWxkIHByb2plY3QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2JyYW5jaENvZGVCdWlsZFByb2plY3Q7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJpb0NvZGVCdWlsZFByb2plY3QobmFtZTogc3RyaW5nLCB0cmlnZ2VyRmlsZTogQ29kZVBpcGVsaW5lU291cmNlLCBwcm9wczogUGlwZWxpbmVTdGFja1Byb3BzKSB7XG4gICAgcmV0dXJuIG5ldyBSaW9Db2RlQnVpbGRQcm9qZWN0KHRoaXMsIG5hbWUsIHtcbiAgICAgIGlucHV0OiB0cmlnZ2VyRmlsZSxcbiAgICAgIGNka091dERpcmVjdG9yeTogJ2luZnJhc3RydWN0dXJlL2Nkay5vdXQnLFxuICAgICAgcGFydGlhbEJ1aWxkU3BlYzogdGhpcy5sb2FkQnVpbGRTcGVjRnJvbUZpbGUocHJvcHM/LmNvZGVCdWlsZE9wdGlvbnM/LnBhcnRpYWxCdWlsZFNwZWNQYXRoIHx8XG4gICAgICAgIHRoaXMucmVzb2x2ZURlZmF1bHRCdWlsZFNwZWMocHJvcHMucGlwZWxpbmVUeXBlKSksXG4gICAgICBidWlsZEVudmlyb25tZW50OiBwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8uYnVpbGRFbnZpcm9ubWVudCxcbiAgICAgIGhvc3RlZFpvbmVOYW1lOiB0aGlzLl9ob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgY2FjaGVCdWNrZXQ6IHRoaXMuX2NhY2hlQnVja2V0LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRNYWluUGlwZWxpbmUocHJvcHM6IFBpcGVsaW5lU3RhY2tQcm9wcywgbWFpbkJ1aWxkOiBDb2RlQnVpbGRTdGVwKSB7XG5cbiAgICBjb25zdCBwaXBlbGluZSA9IG5ldyBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKHRoaXMsICdQaXBlbGluZScsIHtcbiAgICAgIGFydGlmYWN0QnVja2V0OiB0aGlzLl9jYWNoZUJ1Y2tldCxcbiAgICAgIHN5bnRoOiBtYWluQnVpbGQsXG4gICAgfSk7XG4gICAgVGFncy5vZihwaXBlbGluZSkuYWRkKCdwaXBlbGluZV90eXBlJywgJ2J1aWxkJyk7XG5cbiAgICAvLyBDbG91ZEFzc2VtYmx5QXJ0aWZhY3RzIG11c3QgYmUgc21hbGxlciB0aGFuIDI1Nk1CLiBEdWUgdG8gdGhlIGdyYWRsZSBhcnRpZmFjdCB3ZSBhcmUgZXhjZWVkaW5nIHRoaXMgbGltaXQgYW5kIHBpcGVsaW5lIGZhaWxzIGluIGRlcGxveW1lbnQgc3RlcC5cbiAgICAvLyBJc3N1ZSBpcyBrbm93biBhbmQgbm90IGZpeGVkIGZvciBhbHJlYWR5IHNvbWUgeWVhcnMuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy85OTE3XG4gICAgLy8gRGlydHkgZml4OiBBc3NldHMgYXJlIGFscmVhZHkgdXBsb2FkZWQgYW5kIHRodXMgbm90IG5lZWRlZC4gUmVtb3ZlIHRoZW0gZnJvbSBwaXBlbGluZSBhcnRpZmFjdC5cbiAgICBjb25zdCBzdHJpcEFzc2V0c1N0ZXAgPSBuZXcgQ29kZUJ1aWxkU3RlcChcbiAgICAgICdTdHJpcEFzc2V0c0Zyb21Bc3NlbWJseScsIHtcbiAgICAgICAgaW5wdXQ6IHBpcGVsaW5lLmNsb3VkQXNzZW1ibHlGaWxlU2V0LFxuICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICdTM19QQVRIPSR7Q09ERUJVSUxEX1NPVVJDRV9WRVJTSU9OI1wiYXJuOmF3czpzMzo6OlwifScsXG4gICAgICAgICAgJ1pJUF9BUkNISVZFPSQoYmFzZW5hbWUgJFMzX1BBVEgpJyxcbiAgICAgICAgICAncm0gLXJmdiBhc3NldC4qJyxcbiAgICAgICAgICAnemlwIC1yIC1xIC1BICRaSVBfQVJDSElWRSAqJyxcbiAgICAgICAgICAnYXdzIHMzIGNwICRaSVBfQVJDSElWRSBzMzovLyRTM19QQVRIJyxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHBpcGVsaW5lLmFkZFdhdmUoJ0JlZm9yZURlcGxveScsIHsgcHJlOiBbc3RyaXBBc3NldHNTdGVwXSB9KTtcblxuICAgIGNvbnN0IGNhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcCA9IHRoaXMuY3JlYXRlQ2FwYWJpbGl0eU1vbml0b3JpbmdEZXBsb3lTdGVwKG1haW5CdWlsZCwgcHJvcHMpO1xuXG4gICAgcGlwZWxpbmUuYWRkU3RhZ2UobmV3IEFwcGxpY2F0aW9uKHRoaXMsICdEZXBsb3lBcHBsaWNhdGlvblN0YWNrcycsIHtcbiAgICAgIGFwcFN0YWNrRmFjdG9yeTogcHJvcHMuYXBwU3RhY2tGYWN0b3J5LFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgdmVyc2lvbjogcHJvY2Vzcy5lbnYuUElQRUxJTkVfRVhFQ1VUSU9OX0lEID8/ICdQSVBFTElORV9FWEVDVVRJT05fSUQgbm90IHNldCcsXG4gICAgfSksIHtcbiAgICAgIHByZTogcHJvcHMuc2VjcmV0c0RlcGxveVN0ZXBQcm9wcyA/IFtcbiAgICAgICAgbmV3IHJpby5SaW9TZWNyZXRzRGVwbG95U3RlcCh0aGlzLCAnRGVwbG95U2VjcmV0cycsIHtcbiAgICAgICAgICAuLi5wcm9wcy5zZWNyZXRzRGVwbG95U3RlcFByb3BzLFxuICAgICAgICAgIGlucHV0OiB0aGlzLl9pbnB1dE1hc3RlclRyaWdnZXJGaWxlLFxuICAgICAgICB9KSxcbiAgICAgIF0gOiB1bmRlZmluZWQsXG4gICAgICBwb3N0OiBjYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXAgPyBbY2FwYWJpbGl0eU1vbml0b3JpbmdEZXBsb3lTdGVwXSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBwaXBlbGluZS5idWlsZFBpcGVsaW5lKCk7XG5cbiAgICBpZiAoY2FwYWJpbGl0eU1vbml0b3JpbmdEZXBsb3lTdGVwKSB7XG4gICAgICBjb25zdCBtb25pdG9yaW5nVGVzdHN1aXRlUnVubmVyQnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdNb25pdG9yaW5nVGVzdHN1aXRlUnVubmVyQnVja2V0JywgYG1vbml0b3JpbmctdGVzdHN1aXRlLXJ1bm5lci0ke3RoaXMuYWNjb3VudH1gKTtcbiAgICAgIG1vbml0b3JpbmdUZXN0c3VpdGVSdW5uZXJCdWNrZXQuZ3JhbnRXcml0ZShjYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXApO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1BpcGVsaW5lU2NoZWR1bGUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMucGlwZWxpbmVTY2hlZHVsZXM/Lm1haW5QaXBlbGluZSB8fCAnY3JvbigwIDkgPyAqIDIjMSAqKScpLFxuICAgIH0pO1xuICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLkNvZGVQaXBlbGluZShwaXBlbGluZS5waXBlbGluZSkpO1xuXG4gICAgdGhpcy5fb3NzTGljZW5zZXNCdWNrZXQuZ3JhbnRSZWFkV3JpdGUobWFpbkJ1aWxkKTtcbiAgICB0aGlzLl9vc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlci5ncmFudFJlYWQobWFpbkJ1aWxkKTtcbiAgICBpZiAocHJvcHMucGlwZWxpbmVUeXBlICE9PSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfSU5GUkFTVFJVQ1RVUkUpIHtcbiAgICAgIHRoaXMuX3NlcnZpY2VLZXlzdG9yZVBhc3N3b3JkLmdyYW50UmVhZChtYWluQnVpbGQpO1xuICAgIH1cbiAgICB0aGlzLl9hY2NvdW50TmFtZVBhcmFtZXRlci5ncmFudFJlYWQobWFpbkJ1aWxkKTtcbiAgICBpZiAocHJvcHMucGlwZWxpbmVUeXBlID09PSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfR1JBRExFX0tBRktBKSB7XG4gICAgICB0aGlzLmdyYW50UGVybWlzc2lvbnNGb3JLYWZrYUludGVncmF0aW9uKG1haW5CdWlsZCwgJ0thZmthSW50ZWdyYXRpb25Qb2xpY3knKTtcbiAgICB9XG4gICAgcGlwZWxpbmUucGlwZWxpbmUuYXJ0aWZhY3RCdWNrZXQuZ3JhbnRSZWFkV3JpdGUoc3RyaXBBc3NldHNTdGVwLnByb2plY3QpO1xuXG4gICAgbmV3IERhdGFkb2dQaXBlbGluZUVycm9yQWxlcnQodGhpcywgJ0RhdGFkb2dQaXBlbGluZUVycm9yTW9uaXRvcicsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIHBpcGVsaW5lTmFtZTogdGhpcy5yZW5hbWVQaXBlbGluZVRvTG93ZXJDYXNlKHBpcGVsaW5lKSxcbiAgICAgIGFjY291bnRJZDogdGhpcy5hY2NvdW50LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRCcmFuY2hQaXBlbGluZShwcm9wczogUGlwZWxpbmVTdGFja1Byb3BzLCBicmFuY2hCdWlsZDogQ29kZUJ1aWxkU3RlcCkge1xuXG4gICAgY29uc3QgYnJhbmNoUGlwZWxpbmUgPSBuZXcgcGlwZWxpbmVzLkNvZGVQaXBlbGluZSh0aGlzLCAnQnJhbmNoUGlwZWxpbmUnLCB7XG4gICAgICBhcnRpZmFjdEJ1Y2tldDogdGhpcy5fY2FjaGVCdWNrZXQsXG4gICAgICBzeW50aDogYnJhbmNoQnVpbGQsXG4gICAgICBzZWxmTXV0YXRpb246IGZhbHNlLFxuICAgIH0pO1xuICAgIFRhZ3Mub2YoYnJhbmNoUGlwZWxpbmUpLmFkZCgncGlwZWxpbmVfdHlwZScsICdicmFuY2gnKTtcbiAgICBicmFuY2hQaXBlbGluZS5hZGRXYXZlKCdCcmFuY2hCdWlsZCcpLmFkZFBvc3QoYnJhbmNoQnVpbGQpO1xuICAgIGJyYW5jaFBpcGVsaW5lLmJ1aWxkUGlwZWxpbmUoKTtcblxuICAgIHRoaXMuX29zc0xpY2Vuc2VzQnVja2V0LmdyYW50UmVhZFdyaXRlKGJyYW5jaEJ1aWxkKTtcbiAgICB0aGlzLl9vc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlci5ncmFudFJlYWQoYnJhbmNoQnVpbGQpO1xuICAgIHRoaXMuX3NlcnZpY2VLZXlzdG9yZVBhc3N3b3JkLmdyYW50UmVhZChicmFuY2hCdWlsZCk7XG4gICAgdGhpcy5fYWNjb3VudE5hbWVQYXJhbWV0ZXIuZ3JhbnRSZWFkKGJyYW5jaEJ1aWxkKTtcbiAgICBpZiAocHJvcHMucGlwZWxpbmVUeXBlID09PSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfR1JBRExFX0tBRktBKSB7XG4gICAgICB0aGlzLmdyYW50UGVybWlzc2lvbnNGb3JLYWZrYUludGVncmF0aW9uKGJyYW5jaEJ1aWxkLCAnQnJhbmNoS2Fma2FJbnRlZ3JhdGlvblBvbGljeScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkVnVsbmVyYWJpbGl0eVBpcGVsaW5lKHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpIHtcbiAgICBjb25zdCB2dWxuZXJhYmlsaXR5QnVpbGQgPSBuZXcgUmlvQ29kZUJ1aWxkUHJvamVjdCh0aGlzLCAnVnVsbmVyYWJpbGl0eUNoZWNrcycsIHtcbiAgICAgIGlucHV0OiB0aGlzLl9pbnB1dE1hc3RlclRyaWdnZXJGaWxlLFxuICAgICAgcGFydGlhbEJ1aWxkU3BlYzogdGhpcy5sb2FkQnVpbGRTcGVjRnJvbUZpbGUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlY3MvYnVpbGRzcGVjLXZ1bG5lcmFiaWxpdHktY2hlY2tzLnlhbWwnKSksXG4gICAgICBidWlsZEVudmlyb25tZW50OiBwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8uYnVpbGRFbnZpcm9ubWVudCxcbiAgICAgIGhvc3RlZFpvbmVOYW1lOiB0aGlzLl9ob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgY2FjaGVCdWNrZXQ6IHRoaXMuX2NhY2hlQnVja2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHZ1bG5lcmFiaWxpdHlQaXBlbGluZSA9IG5ldyBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKHRoaXMsICdWdWxuZXJhYmlsaXR5UGlwZWxpbmUnLCB7XG4gICAgICBhcnRpZmFjdEJ1Y2tldDogdGhpcy5fY2FjaGVCdWNrZXQsXG4gICAgICBzeW50aDogdnVsbmVyYWJpbGl0eUJ1aWxkLFxuICAgICAgc2VsZk11dGF0aW9uOiBmYWxzZSxcbiAgICB9KTtcbiAgICBUYWdzLm9mKHZ1bG5lcmFiaWxpdHlQaXBlbGluZSkuYWRkKCdwaXBlbGluZV90eXBlJywgJ3Z1bG5lcmFiaWxpdHknKTtcblxuICAgIHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5hZGRXYXZlKCdWdWxuZXJhYmlsaXR5Q2hlY2tzJykuYWRkUG9zdCh2dWxuZXJhYmlsaXR5QnVpbGQpO1xuICAgIHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5idWlsZFBpcGVsaW5lKCk7XG4gICAgdGhpcy5fbmlzdERhdGFNaXJyb3JVcmwuZ3JhbnRSZWFkKHZ1bG5lcmFiaWxpdHlCdWlsZCk7XG5cbiAgICBjb25zdCB2dWxuZXJhYmlsaXR5UnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnVnVsbmVyYWJpbGl0eVBpcGVsaW5lU2NoZWR1bGUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMucGlwZWxpbmVTY2hlZHVsZXM/LnZ1bG5lcmFiaWxpdHlQaXBlbGluZSB8fCAnY3JvbigwIDUgPyAqIE1PTi1GUkkgKiknKSxcbiAgICB9KTtcbiAgICB2dWxuZXJhYmlsaXR5UnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuQ29kZVBpcGVsaW5lKHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5waXBlbGluZSkpO1xuXG4gICAgaWYgKHByb3BzLmRhdGFkb2dBbGVydFR5cGUgPT09ICdvcHNnZW5pZScpIHtcbiAgICAgIHRocm93IEVycm9yKCdUaGUgT3BzR2VuaWUgYWxlcnRUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZS4gUGxlYXNlIHVzZSB0aGUgdnVsbmVyYWJpbGl0eU5vdGlmaWNhdGlvbiBwcm9wZXJ0eSBpbnN0ZWFkLicpO1xuICAgIH1cbiAgICBuZXcgRGF0YURvZ1BpcGVsaW5lRXJyb3JBbGVydEZvclZ1bG5lcmFiaWxpdHlDaGVja3ModGhpcywgJ0RhdGFEb2dQaXBlbGluZUVycm9yRm9yVnVsbmVyYWJpbGl0eUNoZWNrc01vbml0b3InLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBwaXBlbGluZU5hbWU6IHRoaXMucmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZSh2dWxuZXJhYmlsaXR5UGlwZWxpbmUpLFxuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnQsXG4gICAgICBub3RpZmljYXRpb246IHByb3BzLnZ1bG5lcmFiaWxpdHlOb3RpZmljYXRpb24sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNhcGFiaWxpdHlNb25pdG9yaW5nRGVwbG95U3RlcChtYWluQnVpbGQ6IENvZGVCdWlsZFN0ZXAsIHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpOiBDb2RlQnVpbGRTdGVwIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocHJvcHMubW9uaXRvcmluZ0RlcGxveVN0ZXBQcm9wcykge1xuICAgICAgY29uc3QgbW9uaXRvcmluZ0FydGlmYWN0cyA9IE9iamVjdC5rZXlzKHByb3BzLm1vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHMubW9uaXRvcmluZ0FydGlmYWN0cykubWFwKChrZXkpID0+IHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gbWFpbkJ1aWxkLmFkZE91dHB1dERpcmVjdG9yeShrZXkpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlucHV0OiBvdXRwdXQsXG4gICAgICAgICAgZmlsZXM6IHByb3BzLm1vbml0b3JpbmdEZXBsb3lTdGVwUHJvcHMhLm1vbml0b3JpbmdBcnRpZmFjdHNba2V5XSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBSaW9DYXBhYmlsaXR5TW9uaXRvcmluZ0RlcGxveVN0ZXAodGhpcywgJ0RlcGxveUNhcGFiaWxpdHlNb25pdG9yaW5nJywge1xuICAgICAgICBtb25pdG9yaW5nQXJ0aWZhY3RzOiBtb25pdG9yaW5nQXJ0aWZhY3RzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGVmYXVsdEJ1aWxkU3BlYyhwaXBlbGluZVR5cGU6IFBpcGVsaW5lVHlwZSkge1xuICAgIHN3aXRjaCAocGlwZWxpbmVUeXBlKSB7XG4gICAgICBjYXNlIFBpcGVsaW5lVHlwZS5TVEFOREFSRF9HUkFETEU6XG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjcy9idWlsZHNwZWMueWFtbCcpO1xuICAgICAgY2FzZSBQaXBlbGluZVR5cGUuU1RBTkRBUkRfR1JBRExFX0tBRktBOlxuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlY3MvYnVpbGRzcGVjX2thZmthLnlhbWwnKTtcbiAgICAgIGNhc2UgUGlwZWxpbmVUeXBlLlNUQU5EQVJEX0lORlJBU1RSVUNUVVJFOlxuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlY3MvYnVpbGRzcGVjX2luZnJhc3RydWN0dXJlLnlhbWwnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdyYW50UGVybWlzc2lvbnNGb3JLYWZrYUludGVncmF0aW9uKGJ1aWxkUHJvamVjdDogUmlvQ29kZUJ1aWxkUHJvamVjdCwgcG9saWN5SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1aWxkUHJvamVjdFJvbGUgPSBidWlsZFByb2plY3QucHJvamVjdC5yb2xlO1xuICAgIGlmIChidWlsZFByb2plY3RSb2xlKSB7XG4gICAgICBidWlsZFByb2plY3RSb2xlLmFkZE1hbmFnZWRQb2xpY3koXG4gICAgICAgIE1hbmFnZWRQb2xpY3kuZnJvbU1hbmFnZWRQb2xpY3lBcm4odGhpcyxcbiAgICAgICAgICBwb2xpY3lJZCxcbiAgICAgICAgICBGbi5pbXBvcnRWYWx1ZSgna2Fma2EtaW50ZWdyYXRpb24tcG9saWN5LWFybicpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoYENvdWxkIG5vdCBhZGQgbWFuYWdlZCBwb2xpY3kgZm9yIGthZmthLWludGVncmF0aW9uIHRvIENvZGVCdWlsZCBwcm9qZWN0IG9mICR7YnVpbGRQcm9qZWN0LmlkfSBkdWUgdG8gbWlzc2luZyByb2xlLmApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEJ1aWxkU3BlY0Zyb21GaWxlKGJ1aWxkU3BlY1BhdGg6IHN0cmluZyk6IEJ1aWxkU3BlYyB7XG4gICAgcmV0dXJuIEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHlhbWwubG9hZChmcy5yZWFkRmlsZVN5bmMoYnVpbGRTcGVjUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSkgYXMgT2JqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZShwaXBlbGluZTogcGlwZWxpbmVzLkNvZGVQaXBlbGluZSk6IFJlZmVyZW5jZSB7XG4gICAgY29uc3QgdXBwZXJUb0xvd2VyQ3IgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3BpcGVsaW5lLm5vZGUuaWR9LVVwcGVyVG9Mb3dlcmAsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6VXBwZXJUb0xvd2VyJyxcbiAgICAgIHNlcnZpY2VUb2tlbjogVXBwZXJUb0xvd2VyLmdldE9yQ3JlYXRlKHRoaXMpLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVXBwZXI6IHBpcGVsaW5lLnBpcGVsaW5lLnBpcGVsaW5lTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHVwcGVyVG9Mb3dlckNyLmdldEF0dCgnTG93ZXInKTtcbiAgfVxufVxuIl19
|
|
@@ -9,8 +9,6 @@ export interface DatadogDashboardProps {
|
|
|
9
9
|
* ```
|
|
10
10
|
*
|
|
11
11
|
* References to {@link [DatadogMonitor](./datadog-monitor.ts)} will not be resolved at the moment.
|
|
12
|
-
*
|
|
13
|
-
* @alpha
|
|
14
12
|
*/
|
|
15
13
|
readonly dashboardDefinition: object;
|
|
16
14
|
}
|
|
@@ -20,8 +18,6 @@ export interface DatadogDashboardProps {
|
|
|
20
18
|
* To use this the Datadog resources have to be {@link https://docs.datadoghq.com/integrations/guide/amazon_cloudformation/
|
|
21
19
|
* |enabled in the CloudFormation registry} of the corresponding AWS account. Usually this is done
|
|
22
20
|
* automatically by the Datadog Integrations (account module AND ServiceCatalog) provided by CLAID.
|
|
23
|
-
*
|
|
24
|
-
* @alpha
|
|
25
21
|
*/
|
|
26
22
|
export declare class DatadogDashboard extends Construct {
|
|
27
23
|
constructor(scope: Construct, id: string, props: DatadogDashboardProps);
|
|
@@ -11,8 +11,6 @@ const constructs_1 = require("constructs");
|
|
|
11
11
|
* To use this the Datadog resources have to be {@link https://docs.datadoghq.com/integrations/guide/amazon_cloudformation/
|
|
12
12
|
* |enabled in the CloudFormation registry} of the corresponding AWS account. Usually this is done
|
|
13
13
|
* automatically by the Datadog Integrations (account module AND ServiceCatalog) provided by CLAID.
|
|
14
|
-
*
|
|
15
|
-
* @alpha
|
|
16
14
|
*/
|
|
17
15
|
class DatadogDashboard extends constructs_1.Construct {
|
|
18
16
|
constructor(scope, id, props) {
|
|
@@ -28,4 +26,4 @@ class DatadogDashboard extends constructs_1.Construct {
|
|
|
28
26
|
exports.DatadogDashboard = DatadogDashboard;
|
|
29
27
|
_a = JSII_RTTI_SYMBOL_1;
|
|
30
28
|
DatadogDashboard[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.datadogv2.DatadogDashboard", version: "0.0.0" };
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWRvZ3YyL2RhdGFkb2ctZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUF1QztBQWdCdkM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFFO1lBQzNDLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsVUFBVSxFQUFFO2dCQUNWLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2FBQy9EO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFYSCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nRGFzaGJvYXJkUHJvcHMge1xuICAvKipcbiAgICogVGhlIERhc2hib2FyZCBkZWZpbml0aW9uIGFzIGV4cG9ydGVkIGZyb20gRGF0YWRvZzpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IGRhc2hib2FyZERlZmluaXRpb24gZnJvbSAnLi9kYXNoYm9hcmQuanNvbic7XG4gICAqXG4gICAqIG5ldyBEYXRhZG9nRGFzaGJvYXJkKHRoaXMsICdTYW1wbGVEYXNoYm9hcmQnLCB7IGRhc2hib2FyZERlZmluaXRpb24gfSlcbiAgICogYGBgXG4gICAqXG4gICAqIFJlZmVyZW5jZXMgdG8ge0BsaW5rIFtEYXRhZG9nTW9uaXRvcl0oLi9kYXRhZG9nLW1vbml0b3IudHMpfSB3aWxsIG5vdCBiZSByZXNvbHZlZCBhdCB0aGUgbW9tZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkRGVmaW5pdGlvbjogb2JqZWN0O1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6OkRhc2hib2FyZGAgd2l0aCBzb21lIFJJTyBkZWZhdWx0cyBhcHBsaWVkLlxuICpcbiAqIFRvIHVzZSB0aGlzIHRoZSBEYXRhZG9nIHJlc291cmNlcyBoYXZlIHRvIGJlIHtAbGluayBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9pbnRlZ3JhdGlvbnMvZ3VpZGUvYW1hem9uX2Nsb3VkZm9ybWF0aW9uL1xuICogfGVuYWJsZWQgaW4gdGhlIENsb3VkRm9ybWF0aW9uIHJlZ2lzdHJ5fSBvZiB0aGUgY29ycmVzcG9uZGluZyBBV1MgYWNjb3VudC4gVXN1YWxseSB0aGlzIGlzIGRvbmVcbiAqIGF1dG9tYXRpY2FsbHkgYnkgdGhlIERhdGFkb2cgSW50ZWdyYXRpb25zIChhY2NvdW50IG1vZHVsZSBBTkQgU2VydmljZUNhdGFsb2cpIHByb3ZpZGVkIGJ5IENMQUlELlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ0Rhc2hib2FyZCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFkb2dEYXNoYm9hcmRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgY2RrLkNmblJlc291cmNlKHNjb3BlLCBpZCArICdEYXNoYm9hcmQnLCB7XG4gICAgICB0eXBlOiAnRGF0YWRvZzo6RGFzaGJvYXJkczo6RGFzaGJvYXJkJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgRGFzaGJvYXJkRGVmaW5pdGlvbjogSlNPTi5zdHJpbmdpZnkocHJvcHMuZGFzaGJvYXJkRGVmaW5pdGlvbiksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -70,6 +70,15 @@ class DatadogMonitor extends constructs_1.Construct {
|
|
|
70
70
|
const teamIdentifier = rio_landing_zone_1.RioLandingZone.getTeamIdentifierParameter(this);
|
|
71
71
|
const accountName = rio_landing_zone_1.RioLandingZone.getAccountNameParameter(this);
|
|
72
72
|
const notification = props.notification ? props.notification : new datadog_notification_1.DefaultSlackNotification();
|
|
73
|
+
const isAwsMetrikMonitor = (props.monitorType === DatadogMonitorQueryAlertType.METRIC_ALERT || props.monitorType === DatadogMonitorQueryAlertType.QUERY_ALERT) && props.query.indexOf('aws.') > -1;
|
|
74
|
+
const optionOverrides = {
|
|
75
|
+
...props.optionOverrides,
|
|
76
|
+
};
|
|
77
|
+
if (isAwsMetrikMonitor && optionOverrides.evaluationDelay === undefined) {
|
|
78
|
+
optionOverrides.evaluationDelay = 900;
|
|
79
|
+
const annotations = cdk.Annotations.of(cdk.Stack.of(this));
|
|
80
|
+
annotations.addWarningV2(`@rio-cloud/cdk-v2-constructs/datadogv2/DatadogMonitor/${id}/CloudMetricEvaluationDelay`, '\n ❌ Your monitor is alerting on Cloud Metrics but you haven\'t set an \'optionOverrides.evaluationDelay\'.\n ✅ It\'s automatically set to 15 minutes, but please provide a suitable value on your own.\n');
|
|
81
|
+
}
|
|
73
82
|
// https://github.com/DataDog/datadog-cloudformation-resources/blob/master/datadog-monitors-monitor-handler/datadog-monitors-monitor.json
|
|
74
83
|
this.monitor = new cdk.CfnResource(this, 'Monitor', {
|
|
75
84
|
type: 'Datadog::Monitors::Monitor',
|
|
@@ -79,7 +88,7 @@ class DatadogMonitor extends constructs_1.Construct {
|
|
|
79
88
|
Name: `${teamName.stringValue} ${props.serviceName} ${props.name}`,
|
|
80
89
|
Message: this.concatenateMessage({ message: props.message, notification }),
|
|
81
90
|
Priority: this.priority,
|
|
82
|
-
Options: mapMonitorOptions(
|
|
91
|
+
Options: mapMonitorOptions(optionOverrides),
|
|
83
92
|
Tags: [
|
|
84
93
|
...(props.extraTags ?? []),
|
|
85
94
|
`account_id:${cdk.Stack.of(this).account}`,
|
|
@@ -98,7 +107,9 @@ class DatadogMonitor extends constructs_1.Construct {
|
|
|
98
107
|
* This allows referencing this monitor in other constructs/resources (e.g. SLOs)
|
|
99
108
|
*/
|
|
100
109
|
get monitorId() {
|
|
101
|
-
return
|
|
110
|
+
// return Ref as it returns the Id as string instead of the GetAtt(Id) wihch returns the id as number
|
|
111
|
+
// https://my-rio.slack.com/archives/C034WAG3QUA/p1708419871398949
|
|
112
|
+
return cdk.Fn.ref(this.monitor.logicalId);
|
|
102
113
|
}
|
|
103
114
|
concatenateMessage(props) {
|
|
104
115
|
return `${props.message}\n\n${props.notification.generateMessageAnnotation(this)}`;
|
|
@@ -115,7 +126,7 @@ function mapMonitorOptions(source) {
|
|
|
115
126
|
return {
|
|
116
127
|
EnableLogsSample: source?.enableLogsSample,
|
|
117
128
|
EscalationMessage: source?.escalationMessage,
|
|
118
|
-
EvaluationDelay: source?.evaluationDelay
|
|
129
|
+
EvaluationDelay: source?.evaluationDelay,
|
|
119
130
|
IncludeTags: source?.includeTags ?? true,
|
|
120
131
|
Locked: source?.locked,
|
|
121
132
|
MinLocationFailed: source?.minLocationFailed,
|
|
@@ -153,4 +164,4 @@ function mapThresholdWindowsProperties(source) {
|
|
|
153
164
|
RecoveryWindow: source.recoveryWindow,
|
|
154
165
|
} : undefined;
|
|
155
166
|
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQXFLRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNB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QUNkLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtRQUNuQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7S0FDdEMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24sIElOb3RpZmljYXRpb24gfSBmcm9tICcuL2RhdGFkb2ctbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbi8qKlxuICogV2VsbCBrbm93biBtb25pdG9yIHR5cGVzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUge1xuICBBVURJVF9BTEVSVCA9ICdhdWRpdCBhbGVydCcsXG4gIENPTVBPU0lURSA9ICdjb21wb3NpdGUnLFxuICBFVkVOVF9BTEVSVCA9ICdldmVudCBhbGVydCcsXG4gIEVWRU5UX1ZfMl9BTEVSVCA9ICdldmVudC12MiBhbGVydCcsXG4gIExPR19BTEVSVCA9ICdsb2cgYWxlcnQnLFxuICBNRVRSSUNfQUxFUlQgPSAnbWV0cmljIGFsZXJ0JyxcbiAgUFJPQ0VTU19BTEVSVCA9ICdwcm9jZXNzIGFsZXJ0JyxcbiAgUVVFUllfQUxFUlQgPSAncXVlcnkgYWxlcnQnLFxuICBTRVJWSUNFX0NIRUNLID0gJ3NlcnZpY2UgY2hlY2snLFxuICBTWU5USEVUSUNTX0FMRVJUID0gJ3N5bnRoZXRpY3MgYWxlcnQnLFxuICBUUkFDRV9BTkFMWVRJQ1NfQUxFUlQgPSAndHJhY2UtYW5hbHl0aWNzIGFsZXJ0JyxcbiAgU0xPX0FMRVJUID0gJ3NsbyBhbGVydCcsXG4gIFJVTV9BTEVSVCA9ICdydW0gYWxlcnQnLFxuICBDSV9QSVBFTElORVNfQUxFUlQgPSAnY2ktcGlwZWxpbmVzIGFsZXJ0JyxcbiAgRVJST1JfVFJBQ0tJTkdfQUxFUlQgPSAnZXJyb3ItdHJhY2tpbmcgYWxlcnQnLFxuICBDSV9URVNUU19BTEVSVCA9ICdjaS10ZXN0cyBhbGVydCcsXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB7QGxpbmsgRGF0YWRvZ01vbml0b3J9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ01vbml0b3JQcm9wcyB7XG5cbiAgLyoqXG4gICAqIEEgbmFtZSBzdWZmaXggdG8gYmUgYXBwZW5kZWQgdG8gdGhlIG1vbml0b3JzIG5hbWUuXG4gICAqXG4gICAqIFRoZSBtb25pdG9yIG5hbWUgaXMgY29uY2F0ZW5hdGVkIGZvcm0gYDxUZWFtTmFtZT4gPHNlcnZpY2VOYW1lIHByb3BlcnR5PiA8bmFtZSBwcm9wZXJ0eT5gXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIHdoaWNoIHRoZSBtb25pdG9yIGJlbG9uZ3MuXG4gICAqXG4gICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIG1vbml0b3IgbmFtZSBhcyB3ZWxsIGEgYXBwbHkgdGhlIGBzZXJ2aWNlYCB0YWcuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcnMgdHlwZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL3R5cGVzL1xuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9ycyBzZWFyY2ggcXVlcnlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9jb25maWd1cmF0aW9uLyNkZWZpbmUtdGhlLXNlYXJjaC1xdWVyeVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgcGF0dGVybiBmb3IgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9jb25maWd1cmF0aW9uLyNtZXNzYWdlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIGV4cGxpY2l0bHkgZGlzYWJsZSBub3RpZmljYXRpb25zIHVzZSB7QGxpbmsgTm9Ob3RpZmljYXRpb259LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvbm90aWZ5XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxlcnQgcHJpb3JpdHkgb2YgdGhlIG1vbml0b3JcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA0XG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWMgb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBtb25pdG9yIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25PdmVycmlkZXM/OiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIG1vbml0b3IgaW4gYWRkaXRpb24gdG8gdGhlIFJJTyBkZWZhdWx0IHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhVGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gcmVub3RpZmljYXRpb24gc2V0dGluZ3Mgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnkvI3Jlbm90aWZ5XG4gKi9cbmV4cG9ydCBlbnVtIFJlbm90aWZ5U3RhdHVzZXMge1xuICBBTEVSVCA9ICdhbGVydCcsXG4gIE5PX0RBVEEgPSAnbm8gZGF0YScsXG4gIFdBUk4gPSAnd2Fybidcbn1cblxuLyoqXG4gKiBXZWxsIGtub3duIG5vdGlmaWNhdGlvbiBwcmVzZXRzIHN1cHBvcnRlZCBieSBEYXRhZG9nLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAqL1xuZXhwb3J0IGVudW0gTW9uaXRvck5vdGlmaWNhdGlvblByZXNldCB7XG4gIFNIT1dfQUxMID0gJ3Nob3dfYWxsJyxcbiAgSElERV9RVUVSWSA9ICdoaWRlX3F1ZXJ5JyxcbiAgSElERV9IQU5ETEVTID0gJ2hpZGVfaGFuZGxlcycsXG4gIEhJREVfQUxMID0gJ2hpZGVfYWxsJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIG92ZXJyaWRlIGZvciBEYXRhZG9nIG1vbml0b3JzIGluIGNhc2UgbW9yZSBzcGVjaWZpYyBzZXR0aW5ncyBhcmUgcmVxdWlyZWQuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXRhRG9nL2RhdGFkb2ctY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzL2Jsb2IvbWFzdGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci1oYW5kbGVyL2RhdGFkb2ctbW9uaXRvcnMtbW9uaXRvci5qc29ufVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBzYW1wbGUgb2YgdGhlIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUxvZ3NTYW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNZXNzYWdlIHRvIGluY2x1ZGUgd2l0aCBhIHJlLW5vdGlmaWNhdGlvbiB3aGVuIHJlbm90aWZ5X2ludGVydmFsIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZXNjYWxhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBkZWxheSBldmFsdWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgOTAwXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0aW9uRGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdHJpZ2dlcmluZyB0YWdzIGludG8gbm90aWZpY2F0aW9uIHRpdGxlJ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVUYWdzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgY2hhbmdlcyB0byB0aGlzIG1vbml0b3Igc2hvdWxkIGJlIHJlc3RyaWN0ZWQgdG8gdGhlIGNyZWF0b3Igb3IgYWRtaW5zXG4gICAqL1xuICByZWFkb25seSBsb2NrZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbG9jYXRpb25zIGFsbG93ZWQgdG8gZmFpbCBiZWZvcmUgdHJpZ2dlcmluZyBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgbWluTG9jYXRpb25GYWlsZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgaW4gc2Vjb25kcyB0byBhbGxvdyBhIGhvc3QgdG8gc3RhcnQgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIHN0YXJ0aW5nIHRoZSBldmFsdWF0aW9uIG9mIG1vbml0b3IgcmVzdWx0c1xuICAgKi9cbiAgcmVhZG9ubHkgbmV3SG9zdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBkYXRhIHN0b3BwZWQgcmVwb3J0aW5nIGJlZm9yZSBub3RpZnlpbmdcbiAgICovXG4gIHJlYWRvbmx5IG5vRGF0YVRpbWVmcmFtZT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gbm90aWZ5IHRhZ2dlZCB1c2VycyB3aGVuIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhlIG1vbml0b3JcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmeUF1ZGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gbm90aWZ5IHdoZW4gZGF0YSBzdG9wcyByZXBvcnRpbmdcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5Tm9EYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgYWZ0ZXIgdGhlIGxhc3Qgbm90aWZpY2F0aW9uIGJlZm9yZSB0aGUgbW9uaXRvciByZS1ub3RpZmllcyBvbiB0aGUgY3VycmVudCBzdGF0dXNcbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5SW50ZXJ2YWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBtb25pdG9yIHJlcXVpcmVzIGEgZnVsbCB3aW5kb3cgb2YgZGF0YSBiZWZvcmUgaXQgaXMgZXZhbHVhdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVGdWxsV2luZG93PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSUQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc3ludGhldGljcyBjaGVja1xuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhldGljc0NoZWNrSUQ/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgdGhyZXNob2xkcz86IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkcztcblxuICByZWFkb25seSB0aHJlc2hvbGRXaW5kb3dzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaG91cnMgb2YgdGhlIG1vbml0b3Igbm90IHJlcG9ydGluZyBkYXRhIGJlZm9yZSBpdCBhdXRvbWF0aWNhbGx5IHJlc29sdmVzXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aW1lcyByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgc2hvdWxkIGJlIHNlbnQgb24gdGhlIGN1cnJlbnQgc3RhdHVzIGF0IHRoZSBwcm92aWRlZCByZS1ub3RpZmljYXRpb24gaW50ZXJ2YWwuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeU9jY3VycmVuY2VzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZXMgb2YgbW9uaXRvciBzdGF0dXNlcyBmb3Igd2hpY2ggcmUtbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGFyZSBzZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlTdGF0dXNlcz86IFJlbm90aWZ5U3RhdHVzZXNbXTtcblxuICAvKipcbiAgICogSG93IGxvbmcgdGhlIHRlc3Qgc2hvdWxkIGJlIGluIGZhaWx1cmUgYmVmb3JlIGFsZXJ0aW5nIChpbnRlZ2VyLCBudW1iZXIgb2Ygc2Vjb25kcywgbWF4IDcyMDApLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluRmFpbHVyZUR1cmF0aW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgYWRkZWQvbGV0dCBvdXQgZnJvbSB0aGUgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0LlNIT1dfQUxMfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWU/OiBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0O1xuXG4gIC8qKlxuICAgKiBUaW1lIChpbiBzZWNvbmRzKSB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgZ3JvdXBzLiBGb3IgZXhhbXBsZSwgdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc2tpcCBldmFsdWF0aW9ucyBmb3IgbmV3IGhvc3RzIHdoaWxlIHRoZXkgaW5pdGlhbGl6ZS4gTXVzdCBiZSBhIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV3R3JvdXBEZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogTGlzdCBvZiByZXF1ZXN0cyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBtb25pdG9yIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogb2JqZWN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHtcblxuICAvKipcbiAgICpUaHJlc2hvbGQgdmFsdWUgZm9yIHRyaWdnZXJpbmcgYW4gYWxlcnRcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBjcml0aWNhbFJlY292ZXJ5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSBvaz86IG51bWJlcjtcblxuICAvKipcbiAgICpUaHJlc2hvbGQgdmFsdWUgZm9yIHRyaWdnZXJpbmcgYSB3YXJuaW5nXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIHJlY292ZXJpbmcgZnJvbSBhIHdhcm5pbmcgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmdSZWNvdmVyeT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3Mge1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIG1ldHJpYyBtdXN0IGJlIGFub21hbG91cyBiZWZvcmUgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcldpbmRvdz86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcgYW4gYW5vbWFsb3VzIG1ldHJpYyBtdXN0IGJlIG5vcm1hbCBiZWZvcmUgcmVjb3ZlcmluZyBmcm9tIGFuIGFsZXJ0IHN0YXRlXG4gICAqL1xuICByZWFkb25seSByZWNvdmVyeVdpbmRvdz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGFyb3VuZCBEYXRhZG9nJ3MgQ2xvdWRGb3JtYXRpb24gYERhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yYCB3aXRoIHNvbWUgUklPIGRlZmF1bHRzIGFwcGxpZWQuXG4gKlxuICogVG8gdXNlIHRoaXMgdGhlIERhdGFkb2cgcmVzb3VyY2VzIGhhdmUgdG8gYmUge0BsaW5rIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9ndWlkZS9hbWF6b25fY2xvdWRmb3JtYXRpb24vXG4gKiB8ZW5hYmxlZCBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gcmVnaXN0cnl9IG9mIHRoZSBjb3JyZXNwb25kaW5nIEFXUyBhY2NvdW50LiBVc3VhbGx5IHRoaXMgaXMgZG9uZVxuICogYXV0b21hdGljYWxseSBieSB0aGUgRGF0YWRvZyBJbnRlZ3JhdGlvbnMgKGFjY291bnQgbW9kdWxlIEFORCBTZXJ2aWNlQ2F0YWxvZykgcHJvdmlkZWQgYnkgQ0xBSUQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nTW9uaXRvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHByaW9yaXR5IG9mIGEgbW9uaXRvclxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUFJJT1JJVFkgPSA0O1xuXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpb3JpdHk6IG51bWJlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vbml0b3I6IGNkay5DZm5SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ01vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wcmlvcml0eSA9IHByb3BzLnByaW9yaXR5ID8/IERhdGFkb2dNb25pdG9yLkRFRkFVTFRfUFJJT1JJVFk7XG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcblxuICAgIGNvbnN0IHRlYW1OYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbU5hbWVQYXJhbWV0ZXIodGhpcyk7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8gcHJvcHMubm90aWZpY2F0aW9uIDogbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICB0aGlzLm1vbml0b3IgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKHByb3BzLm9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIHRoZSBtb25pdG9yX2lkIGFzIHVzZWQgaW4gRGF0YWRvZ1xuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9tb25pdG9ycy8jZ2V0LWEtbW9uaXRvcnMtZGV0YWlsc1xuICAgKlxuICAgKiBUaGlzIGFsbG93cyByZWZlcmVuY2luZyB0aGlzIG1vbml0b3IgaW4gb3RoZXIgY29uc3RydWN0cy9yZXNvdXJjZXMgKGUuZy4gU0xPcylcbiAgICovXG4gIGdldCBtb25pdG9ySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9uaXRvci5nZXRBdHQoJ0lkJykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSA/PyA5MDAsXG4gICAgSW5jbHVkZVRhZ3M6IHNvdXJjZT8uaW5jbHVkZVRhZ3MgPz8gdHJ1ZSxcbiAgICBMb2NrZWQ6IHNvdXJjZT8ubG9ja2VkLFxuICAgIE1pbkxvY2F0aW9uRmFpbGVkOiBzb3VyY2U/Lm1pbkxvY2F0aW9uRmFpbGVkLFxuICAgIE5ld0hvc3REZWxheTogc291cmNlPy5uZXdIb3N0RGVsYXksXG4gICAgTm9EYXRhVGltZWZyYW1lOiBzb3VyY2U/Lm5vRGF0YVRpbWVmcmFtZSxcbiAgICBOb3RpZnlBdWRpdDogc291cmNlPy5ub3RpZnlBdWRpdCxcbiAgICBOb3RpZnlOb0RhdGE6IHNvdXJjZT8ubm90aWZ5Tm9EYXRhID8/IGZhbHNlLFxuICAgIFJlbm90aWZ5SW50ZXJ2YWw6IHNvdXJjZT8ucmVub3RpZnlJbnRlcnZhbCxcbiAgICBSZXF1aXJlRnVsbFdpbmRvdzogc291cmNlPy5yZXF1aXJlRnVsbFdpbmRvdyA/PyBmYWxzZSxcbiAgICBTeW50aGV0aWNzQ2hlY2tJRDogc291cmNlPy5zeW50aGV0aWNzQ2hlY2tJRCxcbiAgICBUaHJlc2hvbGRzOiBtYXBUaHJlc2hvbGRzUHJvcGVydGllcyhzb3VyY2U/LnRocmVzaG9sZHMpLFxuICAgIFRocmVzaG9sZFdpbmRvd3M6IG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkV2luZG93cyksXG4gICAgTW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWU6IHNvdXJjZT8ubW9uaXRvck5vdGlmaWNhdGlvblByZXNldE5hbWUsXG4gICAgVGltZW91dEg6IHNvdXJjZT8udGltZW91dEgsXG4gICAgUmVub3RpZnlPY2N1cnJlbmNlczogc291cmNlPy5yZW5vdGlmeU9jY3VycmVuY2VzLFxuICAgIFJlbm90aWZ5U3RhdHVzZXM6IHNvdXJjZT8ucmVub3RpZnlTdGF0dXNlcyxcbiAgICBNaW5GYWlsdXJlRHVyYXRpb246IHNvdXJjZT8ubWluRmFpbHVyZUR1cmF0aW9uLFxuICAgIE5ld0dyb3VwRGVsYXk6IHNvdXJjZT8ubmV3R3JvdXBEZWxheSxcbiAgICBWYXJpYWJsZXM6IHNvdXJjZT8udmFyaWFibGVzLFxuICB9O1xufTtcblxuXG5mdW5jdGlvbiBtYXBUaHJlc2hvbGRzUHJvcGVydGllcyhzb3VyY2U6IENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkcyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gc291cmNlID8ge1xuICAgIENyaXRpY2FsOiBzb3VyY2UuY3JpdGljYWwsXG4gICAgQ3JpdGljYWxSZWNvdmVyeTogc291cmNlLmNyaXRpY2FsUmVjb3ZlcnksXG4gICAgT0s6IHNvdXJjZS5vayxcbiAgICBXYXJuaW5nOiBzb3VyY2Uud2FybmluZyxcbiAgICBXYXJuaW5nUmVjb3Zlcnk6IHNvdXJjZS53YXJuaW5nUmVjb3ZlcnksXG4gIH0gOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZFdpbmRvd3NQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRXaW5kb3dzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgVHJpZ2dlcldpbmRvdzogc291cmNlLnRyaWdnZXJXaW5kb3csXG4gICAgUmVjb3ZlcnlXaW5kb3c6IHNvdXJjZS5yZWNvdmVyeVdpbmRvdyxcbiAgfSA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFkb2d2Mi9kYXRhZG9nLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQXVDO0FBQ3ZDLGlFQUFpRjtBQUNqRiwwREFBcUQ7QUFFckQ7Ozs7R0FJRztBQUNILElBQVksNEJBaUJYO0FBakJELFdBQVksNEJBQTRCO0lBQ3RDLDJEQUEyQixDQUFBO0lBQzNCLHVEQUF1QixDQUFBO0lBQ3ZCLDJEQUEyQixDQUFBO0lBQzNCLGtFQUFrQyxDQUFBO0lBQ2xDLHVEQUF1QixDQUFBO0lBQ3ZCLDZEQUE2QixDQUFBO0lBQzdCLCtEQUErQixDQUFBO0lBQy9CLDJEQUEyQixDQUFBO0lBQzNCLCtEQUErQixDQUFBO0lBQy9CLHFFQUFxQyxDQUFBO0lBQ3JDLCtFQUErQyxDQUFBO0lBQy9DLHVEQUF1QixDQUFBO0lBQ3ZCLHVEQUF1QixDQUFBO0lBQ3ZCLHlFQUF5QyxDQUFBO0lBQ3pDLDZFQUE2QyxDQUFBO0lBQzdDLGlFQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFqQlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFpQnZDO0FBcUVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFJM0I7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLGtEQUFxQixDQUFBO0lBQ3JCLHNEQUF5QixDQUFBO0lBQ3pCLDBEQUE2QixDQUFBO0lBQzdCLGtEQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQUtwQztBQW9LRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGNB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QkFBbUIsRUFBRSxNQUFNLEVBQUUsbUJBQW1CO1FBQ2hELGdCQUFnQixFQUFFLE1BQU0sRUFBRSxnQkFBZ0I7UUFDMUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGtCQUFrQjtRQUM5QyxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWE7UUFDcEMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBQUEsQ0FBQztBQUdGLFNBQVMsdUJBQXVCLENBQUMsTUFBK0M7SUFDOUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7UUFDekMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQUMsTUFBcUQ7SUFDMUYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2QsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYztLQUN0QyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4vZGF0YWRvZy1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcblxuLyoqXG4gKiBXZWxsIGtub3duIG1vbml0b3IgdHlwZXMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy90eXBlcy9cbiAqL1xuZXhwb3J0IGVudW0gRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSB7XG4gIEFVRElUX0FMRVJUID0gJ2F1ZGl0IGFsZXJ0JyxcbiAgQ09NUE9TSVRFID0gJ2NvbXBvc2l0ZScsXG4gIEVWRU5UX0FMRVJUID0gJ2V2ZW50IGFsZXJ0JyxcbiAgRVZFTlRfVl8yX0FMRVJUID0gJ2V2ZW50LXYyIGFsZXJ0JyxcbiAgTE9HX0FMRVJUID0gJ2xvZyBhbGVydCcsXG4gIE1FVFJJQ19BTEVSVCA9ICdtZXRyaWMgYWxlcnQnLFxuICBQUk9DRVNTX0FMRVJUID0gJ3Byb2Nlc3MgYWxlcnQnLFxuICBRVUVSWV9BTEVSVCA9ICdxdWVyeSBhbGVydCcsXG4gIFNFUlZJQ0VfQ0hFQ0sgPSAnc2VydmljZSBjaGVjaycsXG4gIFNZTlRIRVRJQ1NfQUxFUlQgPSAnc3ludGhldGljcyBhbGVydCcsXG4gIFRSQUNFX0FOQUxZVElDU19BTEVSVCA9ICd0cmFjZS1hbmFseXRpY3MgYWxlcnQnLFxuICBTTE9fQUxFUlQgPSAnc2xvIGFsZXJ0JyxcbiAgUlVNX0FMRVJUID0gJ3J1bSBhbGVydCcsXG4gIENJX1BJUEVMSU5FU19BTEVSVCA9ICdjaS1waXBlbGluZXMgYWxlcnQnLFxuICBFUlJPUl9UUkFDS0lOR19BTEVSVCA9ICdlcnJvci10cmFja2luZyBhbGVydCcsXG4gIENJX1RFU1RTX0FMRVJUID0gJ2NpLXRlc3RzIGFsZXJ0Jyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIHtAbGluayBEYXRhZG9nTW9uaXRvcn1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nTW9uaXRvclByb3BzIHtcblxuICAvKipcbiAgICogQSBuYW1lIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvcnMgbmFtZS5cbiAgICpcbiAgICogVGhlIG1vbml0b3IgbmFtZSBpcyBjb25jYXRlbmF0ZWQgZm9ybSBgPFRlYW1OYW1lPiA8c2VydmljZU5hbWUgcHJvcGVydHk+IDxuYW1lIHByb3BlcnR5PmBcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIG1vbml0b3IgYmVsb25ncy5cbiAgICpcbiAgICogVXNlZCB0byBnZW5lcmF0ZSB0aGUgbW9uaXRvciBuYW1lIGFzIHdlbGwgYSBhcHBseSB0aGUgYHNlcnZpY2VgIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9ycyB0eXBlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vbW9uaXRvcnMvdHlwZXMvXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JzIHNlYXJjaCBxdWVyeVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI2RlZmluZS10aGUtc2VhcmNoLXF1ZXJ5XG4gICAqL1xuICByZWFkb25seSBxdWVyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBwYXR0ZXJuIGZvciB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL2NvbmZpZ3VyYXRpb24vI21lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVG8gZXhwbGljaXRseSBkaXNhYmxlIG5vdGlmaWNhdGlvbnMgdXNlIHtAbGluayBOb05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZGF0YWRvZ2hxLmNvbS9tb25pdG9ycy9ub3RpZnlcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbGVydCBwcmlvcml0eSBvZiB0aGUgbW9uaXRvclxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDRcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpYyBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG1vbml0b3Igb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbk92ZXJyaWRlcz86IENmbkRhdGFkb2dNb25pdG9yT3B0aW9ucztcblxuICAvKipcbiAgICogVGFncyB0byBiZSBhcHBlbmRlZCB0byB0aGUgbW9uaXRvciBpbiBhZGRpdGlvbiB0byB0aGUgUklPIGRlZmF1bHQgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFUYWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2VsbCBrbm93biByZW5vdGlmaWNhdGlvbiBzZXR0aW5ncyBzdXBwb3J0ZWQgYnkgRGF0YWRvZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL21vbml0b3JzL25vdGlmeS8jcmVub3RpZnlcbiAqL1xuZXhwb3J0IGVudW0gUmVub3RpZnlTdGF0dXNlcyB7XG4gIEFMRVJUID0gJ2FsZXJ0JyxcbiAgTk9fREFUQSA9ICdubyBkYXRhJyxcbiAgV0FSTiA9ICd3YXJuJ1xufVxuXG4vKipcbiAqIFdlbGwga25vd24gbm90aWZpY2F0aW9uIHByZXNldHMgc3VwcG9ydGVkIGJ5IERhdGFkb2cuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kYXRhZG9nLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcy9ibG9iL21hc3Rlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3ItaGFuZGxlci9kYXRhZG9nLW1vbml0b3JzLW1vbml0b3IuanNvblxuICovXG5leHBvcnQgZW51bSBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0IHtcbiAgU0hPV19BTEwgPSAnc2hvd19hbGwnLFxuICBISURFX1FVRVJZID0gJ2hpZGVfcXVlcnknLFxuICBISURFX0hBTkRMRVMgPSAnaGlkZV9oYW5kbGVzJyxcbiAgSElERV9BTEwgPSAnaGlkZV9hbGwnLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gb3ZlcnJpZGUgZm9yIERhdGFkb2cgbW9uaXRvcnMgaW4gY2FzZSBtb3JlIHNwZWNpZmljIHNldHRpbmdzIGFyZSByZXF1aXJlZC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb259XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRGF0YWRvZ01vbml0b3JPcHRpb25zIHtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIHNhbXBsZSBvZiB0aGUgbG9nc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nc1NhbXBsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gaW5jbHVkZSB3aXRoIGEgcmUtbm90aWZpY2F0aW9uIHdoZW4gcmVub3RpZnlfaW50ZXJ2YWwgaXMgc2V0XG4gICAqL1xuICByZWFkb25seSBlc2NhbGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGRlbGF5IGV2YWx1YXRpb25cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0cmlnZ2VyaW5nIHRhZ3MgaW50byBub3RpZmljYXRpb24gdGl0bGUnXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVRhZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBjaGFuZ2VzIHRvIHRoaXMgbW9uaXRvciBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byB0aGUgY3JlYXRvciBvciBhZG1pbnNcbiAgICovXG4gIHJlYWRvbmx5IGxvY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBsb2NhdGlvbnMgYWxsb3dlZCB0byBmYWlsIGJlZm9yZSB0cmlnZ2VyaW5nIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSBtaW5Mb2NhdGlvbkZhaWxlZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBpbiBzZWNvbmRzIHRvIGFsbG93IGEgaG9zdCB0byBzdGFydCByZXBvcnRpbmcgZGF0YSBiZWZvcmUgc3RhcnRpbmcgdGhlIGV2YWx1YXRpb24gb2YgbW9uaXRvciByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBuZXdIb3N0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtaW51dGVzIGRhdGEgc3RvcHBlZCByZXBvcnRpbmcgYmVmb3JlIG5vdGlmeWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbm9EYXRhVGltZWZyYW1lPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgdGFnZ2VkIHVzZXJzIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5QXVkaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBub3RpZnkgd2hlbiBkYXRhIHN0b3BzIHJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBub3RpZnlOb0RhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgbWludXRlcyBhZnRlciB0aGUgbGFzdCBub3RpZmljYXRpb24gYmVmb3JlIHRoZSBtb25pdG9yIHJlLW5vdGlmaWVzIG9uIHRoZSBjdXJyZW50IHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1vbml0b3IgcmVxdWlyZXMgYSBmdWxsIHdpbmRvdyBvZiBkYXRhIGJlZm9yZSBpdCBpcyBldmFsdWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUZ1bGxXaW5kb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBzeW50aGV0aWNzIGNoZWNrXG4gICAqL1xuICByZWFkb25seSBzeW50aGV0aWNzQ2hlY2tJRD86IG51bWJlcjtcblxuICByZWFkb25seSB0aHJlc2hvbGRzPzogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzO1xuXG4gIHJlYWRvbmx5IHRocmVzaG9sZFdpbmRvd3M/OiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3M7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBob3VycyBvZiB0aGUgbW9uaXRvciBub3QgcmVwb3J0aW5nIGRhdGEgYmVmb3JlIGl0IGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXNcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRIPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHJlLW5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzaG91bGQgYmUgc2VudCBvbiB0aGUgY3VycmVudCBzdGF0dXMgYXQgdGhlIHByb3ZpZGVkIHJlLW5vdGlmaWNhdGlvbiBpbnRlcnZhbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5T2NjdXJyZW5jZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlcyBvZiBtb25pdG9yIHN0YXR1c2VzIGZvciB3aGljaCByZS1ub3RpZmljYXRpb24gbWVzc2FnZXMgYXJlIHNlbnQuXG4gICAqL1xuICByZWFkb25seSByZW5vdGlmeVN0YXR1c2VzPzogUmVub3RpZnlTdGF0dXNlc1tdO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0aGUgdGVzdCBzaG91bGQgYmUgaW4gZmFpbHVyZSBiZWZvcmUgYWxlcnRpbmcgKGludGVnZXIsIG51bWJlciBvZiBzZWNvbmRzLCBtYXggNzIwMCkuXG4gICAqL1xuICByZWFkb25seSBtaW5GYWlsdXJlRHVyYXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGluZm9ybWF0aW9uIHNob3VsZCBiZSBhZGRlZC9sZXR0IG91dCBmcm9tIHRoZSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQuU0hPV19BTEx9XG4gICAqL1xuICByZWFkb25seSBtb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZT86IE1vbml0b3JOb3RpZmljYXRpb25QcmVzZXQ7XG5cbiAgLyoqXG4gICAqIFRpbWUgKGluIHNlY29uZHMpIHRvIHNraXAgZXZhbHVhdGlvbnMgZm9yIG5ldyBncm91cHMuIEZvciBleGFtcGxlLCB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBza2lwIGV2YWx1YXRpb25zIGZvciBuZXcgaG9zdHMgd2hpbGUgdGhleSBpbml0aWFsaXplLiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICByZWFkb25seSBuZXdHcm91cERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIG1vbml0b3IgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBvYmplY3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZHMge1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhbiBhbGVydFxuICAgKi9cbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsUmVjb3Zlcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqVGhyZXNob2xkIHZhbHVlIGZvciByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IG9rPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKlRocmVzaG9sZCB2YWx1ZSBmb3IgdHJpZ2dlcmluZyBhIHdhcm5pbmdcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCB2YWx1ZSBmb3IgcmVjb3ZlcmluZyBmcm9tIGEgd2FybmluZyBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ1JlY292ZXJ5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENmbkRhdGFkb2dNb25pdG9yVGhyZXNob2xkV2luZG93cyB7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgbWV0cmljIG11c3QgYmUgYW5vbWFsb3VzIGJlZm9yZSB0cmlnZ2VyaW5nIGFuIGFsZXJ0XG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhbiBhbm9tYWxvdXMgbWV0cmljIG11c3QgYmUgbm9ybWFsIGJlZm9yZSByZWNvdmVyaW5nIGZyb20gYW4gYWxlcnQgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERhdGFkb2cncyBDbG91ZEZvcm1hdGlvbiBgRGF0YWRvZzo6TW9uaXRvcnM6Ok1vbml0b3JgIHdpdGggc29tZSBSSU8gZGVmYXVsdHMgYXBwbGllZC5cbiAqXG4gKiBUbyB1c2UgdGhpcyB0aGUgRGF0YWRvZyByZXNvdXJjZXMgaGF2ZSB0byBiZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2d1aWRlL2FtYXpvbl9jbG91ZGZvcm1hdGlvbi9cbiAqIHxlbmFibGVkIGluIHRoZSBDbG91ZEZvcm1hdGlvbiByZWdpc3RyeX0gb2YgdGhlIGNvcnJlc3BvbmRpbmcgQVdTIGFjY291bnQuIFVzdWFsbHkgdGhpcyBpcyBkb25lXG4gKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBEYXRhZG9nIEludGVncmF0aW9ucyAoYWNjb3VudCBtb2R1bGUgQU5EIFNlcnZpY2VDYXRhbG9nKSBwcm92aWRlZCBieSBDTEFJRC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFkb2dNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIERlZmF1bHQgcHJpb3JpdHkgb2YgYSBtb25pdG9yXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9QUklPUklUWSA9IDQ7XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcjogY2RrLkNmblJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nTW9uaXRvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gcHJvcHMucHJpb3JpdHkgPz8gRGF0YWRvZ01vbml0b3IuREVGQVVMVF9QUklPUklUWTtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuXG4gICAgY29uc3QgdGVhbU5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtTmFtZVBhcmFtZXRlcih0aGlzKTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcyk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPyBwcm9wcy5ub3RpZmljYXRpb24gOiBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCk7XG5cbiAgICBjb25zdCBpc0F3c01ldHJpa01vbml0b3IgPSAocHJvcHMubW9uaXRvclR5cGUgPT09IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuTUVUUklDX0FMRVJUIHx8IHByb3BzLm1vbml0b3JUeXBlID09PSBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJUKSAmJiBwcm9wcy5xdWVyeS5pbmRleE9mKCdhd3MuJykgPiAtMTtcbiAgICBjb25zdCBvcHRpb25PdmVycmlkZXMgPSB7XG4gICAgICAuLi5wcm9wcy5vcHRpb25PdmVycmlkZXMsXG4gICAgfTtcblxuICAgIGlmIChpc0F3c01ldHJpa01vbml0b3IgJiYgb3B0aW9uT3ZlcnJpZGVzLmV2YWx1YXRpb25EZWxheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25PdmVycmlkZXMuZXZhbHVhdGlvbkRlbGF5ID0gOTAwO1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMvZGF0YWRvZ3YyL0RhdGFkb2dNb25pdG9yLyR7aWR9L0Nsb3VkTWV0cmljRXZhbHVhdGlvbkRlbGF5YCxcbiAgICAgICAgJ1xcbiDinYwgWW91ciBtb25pdG9yIGlzIGFsZXJ0aW5nIG9uIENsb3VkIE1ldHJpY3MgYnV0IHlvdSBoYXZlblxcJ3Qgc2V0IGFuIFxcJ29wdGlvbk92ZXJyaWRlcy5ldmFsdWF0aW9uRGVsYXlcXCcuXFxuIOKchSBJdFxcJ3MgYXV0b21hdGljYWxseSBzZXQgdG8gMTUgbWludXRlcywgYnV0IHBsZWFzZSBwcm92aWRlIGEgc3VpdGFibGUgdmFsdWUgb24geW91ciBvd24uXFxuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdGFEb2cvZGF0YWRvZy1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMvYmxvYi9tYXN0ZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLWhhbmRsZXIvZGF0YWRvZy1tb25pdG9ycy1tb25pdG9yLmpzb25cbiAgICB0aGlzLm1vbml0b3IgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsICdNb25pdG9yJywge1xuICAgICAgdHlwZTogJ0RhdGFkb2c6Ok1vbml0b3JzOjpNb25pdG9yJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVHlwZTogcHJvcHMubW9uaXRvclR5cGUsXG4gICAgICAgIFF1ZXJ5OiBwcm9wcy5xdWVyeSxcbiAgICAgICAgTmFtZTogYCR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9ICR7cHJvcHMuc2VydmljZU5hbWV9ICR7cHJvcHMubmFtZX1gLFxuICAgICAgICBNZXNzYWdlOiB0aGlzLmNvbmNhdGVuYXRlTWVzc2FnZSh7IG1lc3NhZ2U6IHByb3BzLm1lc3NhZ2UsIG5vdGlmaWNhdGlvbiB9KSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgIE9wdGlvbnM6IG1hcE1vbml0b3JPcHRpb25zKG9wdGlvbk92ZXJyaWRlcyksXG4gICAgICAgIFRhZ3M6IFtcbiAgICAgICAgICAuLi4ocHJvcHMuZXh0cmFUYWdzID8/IFtdKSxcbiAgICAgICAgICBgYWNjb3VudF9pZDoke2Nkay5TdGFjay5vZih0aGlzKS5hY2NvdW50fWAsXG4gICAgICAgICAgYGFjY291bnRfbmFtZToke2FjY291bnROYW1lLnN0cmluZ1ZhbHVlfWAsXG4gICAgICAgICAgYHNlcnZpY2U6JHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICAgIGB0ZWFtOiR7dGVhbU5hbWUuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgICBgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIuc3RyaW5nVmFsdWV9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWluIHRoZSBtb25pdG9yX2lkIGFzIHVzZWQgaW4gRGF0YWRvZ1xuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vYXBpL2xhdGVzdC9tb25pdG9ycy8jZ2V0LWEtbW9uaXRvcnMtZGV0YWlsc1xuICAgKlxuICAgKiBUaGlzIGFsbG93cyByZWZlcmVuY2luZyB0aGlzIG1vbml0b3IgaW4gb3RoZXIgY29uc3RydWN0cy9yZXNvdXJjZXMgKGUuZy4gU0xPcylcbiAgICovXG4gIGdldCBtb25pdG9ySWQoKSB7XG4gICAgLy8gcmV0dXJuIFJlZiBhcyBpdCByZXR1cm5zIHRoZSBJZCBhcyBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgR2V0QXR0KElkKSB3aWhjaCByZXR1cm5zIHRoZSBpZCBhcyBudW1iZXJcbiAgICAvLyBodHRwczovL215LXJpby5zbGFjay5jb20vYXJjaGl2ZXMvQzAzNFdBRzNRVUEvcDE3MDg0MTk4NzEzOTg5NDlcbiAgICByZXR1cm4gY2RrLkZuLnJlZih0aGlzLm1vbml0b3IubG9naWNhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVNZXNzYWdlKHByb3BzOiB7bWVzc2FnZTogc3RyaW5nOyBub3RpZmljYXRpb246IElOb3RpZmljYXRpb259KSB7XG4gICAgcmV0dXJuIGAke3Byb3BzLm1lc3NhZ2V9XFxuXFxuJHtwcm9wcy5ub3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbih0aGlzKX1gO1xuICB9XG5cbn1cblxuZnVuY3Rpb24gbWFwTW9uaXRvck9wdGlvbnMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvck9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHtcbiAgICBFbmFibGVMb2dzU2FtcGxlOiBzb3VyY2U/LmVuYWJsZUxvZ3NTYW1wbGUsXG4gICAgRXNjYWxhdGlvbk1lc3NhZ2U6IHNvdXJjZT8uZXNjYWxhdGlvbk1lc3NhZ2UsXG4gICAgRXZhbHVhdGlvbkRlbGF5OiBzb3VyY2U/LmV2YWx1YXRpb25EZWxheSxcbiAgICBJbmNsdWRlVGFnczogc291cmNlPy5pbmNsdWRlVGFncyA/PyB0cnVlLFxuICAgIExvY2tlZDogc291cmNlPy5sb2NrZWQsXG4gICAgTWluTG9jYXRpb25GYWlsZWQ6IHNvdXJjZT8ubWluTG9jYXRpb25GYWlsZWQsXG4gICAgTmV3SG9zdERlbGF5OiBzb3VyY2U/Lm5ld0hvc3REZWxheSxcbiAgICBOb0RhdGFUaW1lZnJhbWU6IHNvdXJjZT8ubm9EYXRhVGltZWZyYW1lLFxuICAgIE5vdGlmeUF1ZGl0OiBzb3VyY2U/Lm5vdGlmeUF1ZGl0LFxuICAgIE5vdGlmeU5vRGF0YTogc291cmNlPy5ub3RpZnlOb0RhdGEgPz8gZmFsc2UsXG4gICAgUmVub3RpZnlJbnRlcnZhbDogc291cmNlPy5yZW5vdGlmeUludGVydmFsLFxuICAgIFJlcXVpcmVGdWxsV2luZG93OiBzb3VyY2U/LnJlcXVpcmVGdWxsV2luZG93ID8/IGZhbHNlLFxuICAgIFN5bnRoZXRpY3NDaGVja0lEOiBzb3VyY2U/LnN5bnRoZXRpY3NDaGVja0lELFxuICAgIFRocmVzaG9sZHM6IG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZT8udGhyZXNob2xkcyksXG4gICAgVGhyZXNob2xkV2luZG93czogbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlPy50aHJlc2hvbGRXaW5kb3dzKSxcbiAgICBNb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZTogc291cmNlPy5tb25pdG9yTm90aWZpY2F0aW9uUHJlc2V0TmFtZSxcbiAgICBUaW1lb3V0SDogc291cmNlPy50aW1lb3V0SCxcbiAgICBSZW5vdGlmeU9jY3VycmVuY2VzOiBzb3VyY2U/LnJlbm90aWZ5T2NjdXJyZW5jZXMsXG4gICAgUmVub3RpZnlTdGF0dXNlczogc291cmNlPy5yZW5vdGlmeVN0YXR1c2VzLFxuICAgIE1pbkZhaWx1cmVEdXJhdGlvbjogc291cmNlPy5taW5GYWlsdXJlRHVyYXRpb24sXG4gICAgTmV3R3JvdXBEZWxheTogc291cmNlPy5uZXdHcm91cERlbGF5LFxuICAgIFZhcmlhYmxlczogc291cmNlPy52YXJpYWJsZXMsXG4gIH07XG59O1xuXG5cbmZ1bmN0aW9uIG1hcFRocmVzaG9sZHNQcm9wZXJ0aWVzKHNvdXJjZTogQ2ZuRGF0YWRvZ01vbml0b3JUaHJlc2hvbGRzIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBzb3VyY2UgPyB7XG4gICAgQ3JpdGljYWw6IHNvdXJjZS5jcml0aWNhbCxcbiAgICBDcml0aWNhbFJlY292ZXJ5OiBzb3VyY2UuY3JpdGljYWxSZWNvdmVyeSxcbiAgICBPSzogc291cmNlLm9rLFxuICAgIFdhcm5pbmc6IHNvdXJjZS53YXJuaW5nLFxuICAgIFdhcm5pbmdSZWNvdmVyeTogc291cmNlLndhcm5pbmdSZWNvdmVyeSxcbiAgfSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbWFwVGhyZXNob2xkV2luZG93c1Byb3BlcnRpZXMoc291cmNlOiBDZm5EYXRhZG9nTW9uaXRvclRocmVzaG9sZFdpbmRvd3MgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHNvdXJjZSA/IHtcbiAgICBUcmlnZ2VyV2luZG93OiBzb3VyY2UudHJpZ2dlcldpbmRvdyxcbiAgICBSZWNvdmVyeVdpbmRvdzogc291cmNlLnJlY292ZXJ5V2luZG93LFxuICB9IDogdW5kZWZpbmVkO1xufVxuIl19
|
package/lib/fargate/datadog.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare class DataDog {
|
|
|
17
17
|
static addDatadogSidecar(scope: Construct, taskDefinition: ecs.TaskDefinition, accountName: string, teamName: string, teamIdentifier: string, stage: string, serviceName: string, version: string, datadogApiKeyParameter: ssm.IStringParameter, datadogSite: string, datadogLoggingMode: DataDogLoggingMode, apmGetResourcesToIgnore: string[], cpu: number, memoryLimitMiB: number, essential: boolean, containerTag: string, additionalTags: {
|
|
18
18
|
[k: string]: string;
|
|
19
19
|
} | undefined): ecs.ContainerDefinition;
|
|
20
|
-
static addFireLensLogRouter(taskDefinition: ecs.TaskDefinition, cpu: number, memoryLimitMiB: number): ecs.ContainerDefinition;
|
|
20
|
+
static addFireLensLogRouter(taskDefinition: ecs.TaskDefinition, cpu: number, memoryLimitMiB: number, firelensConfigFilePath: string, firelensConfigBucketArn: string): ecs.ContainerDefinition;
|
|
21
21
|
static setupLogging(scope: Construct, accountName: string, teamName: string, teamIdentifier: string, stage: string, serviceName: string, version: string, datadogApiKeyParameter: ssm.IStringParameter, datadogLoggingMode: DataDogLoggingMode, datadogSite: string, containerType: 'service' | 'datadog-sidecar', additionalTags: {
|
|
22
22
|
[k: string]: string;
|
|
23
23
|
} | undefined): ecs.LogDriver;
|
|
@@ -65,10 +65,16 @@ export declare function addDatadogSidecar(props: {
|
|
|
65
65
|
[k: string]: string;
|
|
66
66
|
} | undefined;
|
|
67
67
|
}): ecs.ContainerDefinition;
|
|
68
|
+
export declare function addFirelensConfigUploadFromS3Permissions(props: {
|
|
69
|
+
taskDefinition: ecs.TaskDefinition;
|
|
70
|
+
firelensConfigBucketArn: string;
|
|
71
|
+
}): void;
|
|
68
72
|
export declare function addFireLensLogRouter(props: {
|
|
69
73
|
taskDefinition: ecs.TaskDefinition;
|
|
70
74
|
cpu: number;
|
|
71
75
|
memoryLimitMiB: number;
|
|
76
|
+
firelensConfigBucketArn: string;
|
|
77
|
+
firelensConfigFilePath: string;
|
|
72
78
|
}): ecs.ContainerDefinition;
|
|
73
79
|
export declare function setupLogging(props: {
|
|
74
80
|
scope: Construct;
|