@horietakehiro/aws-cdk-utul 0.30.0 → 0.31.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/README.md +2 -5
- package/lib/assertions.d.ts +3 -3
- package/lib/assertions.js +4 -4
- package/lib/typed-resource.d.ts +1 -1
- package/lib/typed-resource.js +1 -1
- package/lib/types/cfn-resource-types/aws-accessanalyzer-analyzer.d.ts +33 -3
- package/lib/types/cfn-resource-types/aws-accessanalyzer-analyzer.js +1 -1
- package/lib/types/cfn-resource-types/aws-apigateway-basepathmappingv2.d.ts +25 -0
- package/lib/types/cfn-resource-types/aws-apigateway-basepathmappingv2.js +3 -0
- package/lib/types/cfn-resource-types/aws-apigateway-domainnameaccessassociation.d.ts +29 -0
- package/lib/types/cfn-resource-types/aws-apigateway-domainnameaccessassociation.js +3 -0
- package/lib/types/cfn-resource-types/aws-apigateway-domainnamev2.d.ts +28 -0
- package/lib/types/cfn-resource-types/aws-apigateway-domainnamev2.js +3 -0
- package/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.d.ts +98 -0
- package/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-applicationinsights-application.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-applicationinsights-application.js +1 -1
- package/lib/types/cfn-resource-types/aws-applicationsignals-servicelevelobjective.d.ts +19 -0
- package/lib/types/cfn-resource-types/aws-applicationsignals-servicelevelobjective.js +1 -1
- package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +89 -61
- package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-autoscaling-scalingpolicy.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-autoscaling-scalingpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-b2bi-capability.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-b2bi-capability.js +1 -1
- package/lib/types/cfn-resource-types/aws-b2bi-transformer.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-b2bi-transformer.js +1 -1
- package/lib/types/cfn-resource-types/aws-batch-computeenvironment.d.ts +7 -0
- package/lib/types/cfn-resource-types/aws-batch-computeenvironment.js +1 -1
- package/lib/types/cfn-resource-types/aws-chatbot-customaction.d.ts +45 -0
- package/lib/types/cfn-resource-types/aws-chatbot-customaction.js +3 -0
- package/lib/types/cfn-resource-types/aws-chatbot-microsoftteamschannelconfiguration.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-chatbot-microsoftteamschannelconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-chatbot-slackchannelconfiguration.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-chatbot-slackchannelconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudformation-guardhook.d.ts +163 -0
- package/lib/types/cfn-resource-types/aws-cloudformation-guardhook.js +3 -0
- package/lib/types/cfn-resource-types/aws-cloudformation-lambdahook.d.ts +146 -0
- package/lib/types/cfn-resource-types/aws-cloudformation-lambdahook.js +3 -0
- package/lib/types/cfn-resource-types/aws-cloudfront-cachepolicy.d.ts +88 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-cachepolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-cloudfrontoriginaccessidentity.d.ts +7 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-cloudfrontoriginaccessidentity.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-continuousdeploymentpolicy.d.ts +64 -2
- package/lib/types/cfn-resource-types/aws-cloudfront-continuousdeploymentpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-distribution.d.ts +45 -7
- package/lib/types/cfn-resource-types/aws-cloudfront-distribution.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-function.d.ts +38 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-function.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-keygroup.d.ts +14 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-keygroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-keyvaluestore.d.ts +16 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-keyvaluestore.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-monitoringsubscription.d.ts +13 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-monitoringsubscription.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-originaccesscontrol.d.ts +25 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-originaccesscontrol.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-originrequestpolicy.d.ts +56 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-originrequestpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-publickey.d.ts +16 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-publickey.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-realtimelogconfig.d.ts +28 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-realtimelogconfig.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-responseheaderspolicy.d.ts +185 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-responseheaderspolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudtrail-dashboard.d.ts +105 -0
- package/lib/types/cfn-resource-types/aws-cloudtrail-dashboard.js +3 -0
- package/lib/types/cfn-resource-types/aws-cloudtrail-trail.d.ts +79 -79
- package/lib/types/cfn-resource-types/aws-cloudtrail-trail.js +1 -1
- package/lib/types/cfn-resource-types/aws-cognito-managedloginbranding.d.ts +28 -0
- package/lib/types/cfn-resource-types/aws-cognito-managedloginbranding.js +3 -0
- package/lib/types/cfn-resource-types/aws-cognito-userpool.d.ts +100 -93
- package/lib/types/cfn-resource-types/aws-cognito-userpool.js +1 -1
- package/lib/types/cfn-resource-types/aws-connect-emailaddress.d.ts +44 -0
- package/lib/types/cfn-resource-types/aws-connect-emailaddress.js +3 -0
- package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.d.ts +94 -14
- package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.js +1 -1
- package/lib/types/cfn-resource-types/aws-connect-tasktemplate.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-connect-tasktemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-connectcampaignsv2-campaign.d.ts +337 -0
- package/lib/types/cfn-resource-types/aws-connectcampaignsv2-campaign.js +3 -0
- package/lib/types/cfn-resource-types/aws-customerprofiles-integration.d.ts +7 -0
- package/lib/types/cfn-resource-types/aws-customerprofiles-integration.js +1 -1
- package/lib/types/cfn-resource-types/aws-customerprofiles-segmentdefinition.d.ts +232 -0
- package/lib/types/cfn-resource-types/aws-customerprofiles-segmentdefinition.js +3 -0
- package/lib/types/cfn-resource-types/aws-deadline-fleet.d.ts +12 -0
- package/lib/types/cfn-resource-types/aws-deadline-fleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.d.ts +105 -96
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-table.d.ts +33 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-table.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.d.ts +35 -35
- package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.d.ts +80 -63
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-spotfleet.d.ts +129 -129
- package/lib/types/cfn-resource-types/aws-ec2-spotfleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessexclusion.d.ts +40 -0
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessexclusion.js +3 -0
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.d.ts +13 -0
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.js +3 -0
- package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +9 -2
- package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.d.ts +24 -14
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-efs-filesystem.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-efs-filesystem.js +1 -1
- package/lib/types/cfn-resource-types/aws-eks-cluster.d.ts +165 -87
- package/lib/types/cfn-resource-types/aws-eks-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-eks-nodegroup.d.ts +10 -0
- package/lib/types/cfn-resource-types/aws-eks-nodegroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticache-user.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-elasticache-user.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.d.ts +3 -3
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.d.ts +19 -11
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.js +1 -1
- package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.d.ts +97 -80
- package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.d.ts +277 -0
- package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.js +3 -0
- package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.d.ts +243 -15
- package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-iot-thingtype.d.ts +8 -0
- package/lib/types/cfn-resource-types/aws-iot-thingtype.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotfleetwise-campaign.d.ts +38 -2
- package/lib/types/cfn-resource-types/aws-iotfleetwise-campaign.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotfleetwise-decodermanifest.d.ts +61 -42
- package/lib/types/cfn-resource-types/aws-iotfleetwise-decodermanifest.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotfleetwise-statetemplate.d.ts +35 -0
- package/lib/types/cfn-resource-types/aws-iotfleetwise-statetemplate.js +3 -0
- package/lib/types/cfn-resource-types/aws-iotsitewise-portal.d.ts +24 -0
- package/lib/types/cfn-resource-types/aws-iotsitewise-portal.js +1 -1
- package/lib/types/cfn-resource-types/aws-ivs-ingestconfiguration.d.ts +51 -0
- package/lib/types/cfn-resource-types/aws-ivs-ingestconfiguration.js +3 -0
- package/lib/types/cfn-resource-types/aws-kinesisfirehose-deliverystream.d.ts +44 -6
- package/lib/types/cfn-resource-types/aws-kinesisfirehose-deliverystream.js +1 -1
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +134 -113
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
- package/lib/types/cfn-resource-types/aws-lambda-permission.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-lambda-permission.js +1 -1
- package/lib/types/cfn-resource-types/aws-m2-deployment.d.ts +25 -0
- package/lib/types/cfn-resource-types/aws-m2-deployment.js +3 -0
- package/lib/types/cfn-resource-types/aws-opensearchserverless-securityconfig.d.ts +35 -1
- package/lib/types/cfn-resource-types/aws-opensearchserverless-securityconfig.js +1 -1
- package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
- package/lib/types/cfn-resource-types/aws-rbin-rule.d.ts +101 -0
- package/lib/types/cfn-resource-types/aws-rbin-rule.js +3 -0
- package/lib/types/cfn-resource-types/aws-rds-globalcluster.d.ts +7 -0
- package/lib/types/cfn-resource-types/aws-rds-globalcluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-resourcegroups-tagsynctask.d.ts +37 -0
- package/lib/types/cfn-resource-types/aws-resourcegroups-tagsynctask.js +3 -0
- package/lib/types/cfn-resource-types/aws-route53resolver-firewallrulegroup.d.ts +13 -1
- package/lib/types/cfn-resource-types/aws-route53resolver-firewallrulegroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-s3express-directorybucket.d.ts +31 -0
- package/lib/types/cfn-resource-types/aws-s3express-directorybucket.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-inferencecomponent.d.ts +8 -3
- package/lib/types/cfn-resource-types/aws-sagemaker-inferencecomponent.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.js +1 -1
- package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
- package/lib/types/cfn-resource-types/aws-vpclattice-accesslogsubscription.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-vpclattice-accesslogsubscription.js +1 -1
- package/lib/types/cfn-resource-types/aws-vpclattice-servicenetwork.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-vpclattice-servicenetwork.js +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.d.ts +73 -6
- package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.js +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-messagetemplate.d.ts +449 -0
- package/lib/types/cfn-resource-types/aws-wisdom-messagetemplate.js +3 -0
- package/lib/types/cfn-resource-types/aws-wisdom-messagetemplateversion.d.ts +21 -0
- package/lib/types/cfn-resource-types/aws-wisdom-messagetemplateversion.js +3 -0
- package/lib/types/cfn-resource-types/aws-workspacesweb-dataprotectionsettings.d.ts +74 -0
- package/lib/types/cfn-resource-types/aws-workspacesweb-dataprotectionsettings.js +3 -0
- package/lib/types/cfn-resource-types/aws-workspacesweb-portal.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-workspacesweb-portal.js +1 -1
- package/lib/types/cfn-resource-types.d.ts +44 -6
- package/lib/types/cfn-resource-types.js +72 -34
- package/package.json +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-analysis.d.ts +0 -3865
- package/lib/types/cfn-resource-types/aws-quicksight-analysis.js +0 -3
- package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +0 -3988
- package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +0 -3
- package/lib/types/cfn-resource-types/aws-quicksight-template.d.ts +0 -3875
- package/lib/types/cfn-resource-types/aws-quicksight-template.js +0 -3
package/README.md
CHANGED
|
@@ -20,21 +20,18 @@
|
|
|
20
20
|
|
|
21
21
|

|
|
22
22
|
|
|
23
|
-
- You can use by just wrapping AWS CDK's `Template` class.
|
|
23
|
+
<!-- - You can use by just wrapping AWS CDK's `Template` class. -->
|
|
24
24
|
- You can use all methods implemented by AWS CDK's `Template` class with proper type definitions.
|
|
25
25
|
- Return values of some methods - e.g. `findResources` - are changed from original ones, so that succeeding processes can handle and access them more easily.
|
|
26
26
|
- You can still use AWS CDK's `Matcher` class and other arbitrary objects too.
|
|
27
27
|
|
|
28
28
|
```js
|
|
29
29
|
import { Stack } from "aws-cdk-lib";
|
|
30
|
-
import { Template } from "aws-cdk-lib/assertions";
|
|
31
|
-
|
|
32
30
|
import { TypedTemplate } from "@horietakehiro/aws-cdk-utul/lib/assertions";
|
|
33
31
|
import { AWS_EC2_SUBNET, AWS_EC2_VPC } from "@horietakehiro/aws-cdk-utul/lib/types/cfn-resource-types";
|
|
34
32
|
const stack = new Stack()
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
const template = new TypedTemplate(Template.fromStack(stack))
|
|
34
|
+
const template = TypedTemplate.fromStack(stack)
|
|
38
35
|
// you can execute all method implemented in original `Template` instance
|
|
39
36
|
template.hasResource(AWS_EC2_VPC({Properties: {
|
|
40
37
|
CidrBlock: "10.0.0.0/16"
|
package/lib/assertions.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Template, Match, Matcher } from "aws-cdk-lib/assertions";
|
|
2
|
-
import { Condition, InputResource, Mapping, OutputResource, InputParamter, OutputParameter, ReturnValue, InputOutput, OutputOutput } from "./typed-resource";
|
|
2
|
+
import { Condition, InputResource, Mapping, OutputResource, InputParamter, OutputParameter, ReturnValue, InputOutput, OutputOutput, InputResourceWithoutType } from "./typed-resource";
|
|
3
3
|
/**
|
|
4
4
|
* almost same class as `Template` class at "aws-cdk-lib/assertions", but you can use this with proper type definitions
|
|
5
5
|
*/
|
|
@@ -26,10 +26,10 @@ export declare class TypedTemplate {
|
|
|
26
26
|
static fromString(...args: Parameters<typeof Template.fromString>): TypedTemplate;
|
|
27
27
|
/**
|
|
28
28
|
* same function as `Template.resourceCountIs`
|
|
29
|
-
* @param
|
|
29
|
+
* @param type
|
|
30
30
|
* @param count
|
|
31
31
|
*/
|
|
32
|
-
resourceCountIs<T>(
|
|
32
|
+
resourceCountIs<T>(type: (resource?: InputResourceWithoutType<T>) => InputResource<T>, count: number): void;
|
|
33
33
|
/**
|
|
34
34
|
* same function as `Template.resourcePropertiesCountIs`
|
|
35
35
|
* @param r
|
package/lib/assertions.js
CHANGED
|
@@ -35,11 +35,11 @@ class TypedTemplate {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* same function as `Template.resourceCountIs`
|
|
38
|
-
* @param
|
|
38
|
+
* @param type
|
|
39
39
|
* @param count
|
|
40
40
|
*/
|
|
41
|
-
resourceCountIs(
|
|
42
|
-
this.template.resourceCountIs(
|
|
41
|
+
resourceCountIs(type, count) {
|
|
42
|
+
this.template.resourceCountIs(type().Type, count);
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* same function as `Template.resourcePropertiesCountIs`
|
|
@@ -201,4 +201,4 @@ class ExtraMatch extends assertions_1.Match {
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
exports.ExtraMatch = ExtraMatch;
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2VydGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBSWdDO0FBYWhDOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBRXhCLFlBQW9CLFFBQWtCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxHQUFHLElBQTJDO1FBRTlDLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FDYixHQUFHLElBQTBDO1FBRTdDLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixHQUFHLElBQTRDO1FBRS9DLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUFJLENBQW1CLEVBQUUsS0FBYTtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUksQ0FBbUIsRUFBRSxLQUFhO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRDs7O09BR0c7SUFDSCxx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QUMsU0FBaUIsRUFBRSxTQUFpQjtRQUNoRCxPQUFPLGtCQUFLLENBQUMsWUFBWSxDQUFDLEVBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBaUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUExQkQsZ0NBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVGVtcGxhdGUsXG4gIE1hdGNoLFxuICBNYXRjaGVyLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBJbnB1dFJlc291cmNlLFxuICBNYXBwaW5nLFxuICBPdXRwdXRSZXNvdXJjZSxcbiAgSW5wdXRQYXJhbXRlcixcbiAgT3V0cHV0UGFyYW1ldGVyLFxuICBSZXR1cm5WYWx1ZSxcbiAgSW5wdXRPdXRwdXQsXG4gIE91dHB1dE91dHB1dCxcbn0gZnJvbSBcIi4vdHlwZWQtcmVzb3VyY2VcIjtcblxuLyoqXG4gKiBhbG1vc3Qgc2FtZSBjbGFzcyBhcyBgVGVtcGxhdGVgIGNsYXNzIGF0IFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiLCBidXQgeW91IGNhbiB1c2UgdGhpcyB3aXRoIHByb3BlciB0eXBlIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZFRlbXBsYXRlIHtcbiAgdGVtcGxhdGU6IFRlbXBsYXRlO1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHRlbXBsYXRlOiBUZW1wbGF0ZSkge1xuICAgIHRoaXMudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5mcm9tU3RhY2tgIGJ1dCByZXR1cm5zIGBUeXBlZFRlbXBsYXRlYFxuICAgKiBAcGFyYW0gYXJncyBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0YWNrKFxuICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIFRlbXBsYXRlLmZyb21TdGFjaz5cbiAgKTogVHlwZWRUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlZFRlbXBsYXRlKFRlbXBsYXRlLmZyb21TdGFjayguLi5hcmdzKSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmZyb21KU09OYCBidXQgcmV0dXJucyBgVHlwZWRUZW1wbGF0ZWBcbiAgICogQHBhcmFtIGFyZ3MgXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKFxuICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIFRlbXBsYXRlLmZyb21KU09OPlxuICApOiBUeXBlZFRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IFR5cGVkVGVtcGxhdGUoVGVtcGxhdGUuZnJvbUpTT04oLi4uYXJncykpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5mcm9tU3RyaW5nYCBidXQgcmV0dXJucyBgVHlwZWRUZW1wbGF0ZWBcbiAgICogQHBhcmFtIGFyZ3MgXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmcoXG4gICAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgVGVtcGxhdGUuZnJvbVN0cmluZz5cbiAgKTogVHlwZWRUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlZFRlbXBsYXRlKFRlbXBsYXRlLmZyb21TdHJpbmcoLi4uYXJncykpO1xuICB9XG5cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLnJlc291cmNlQ291bnRJc2BcbiAgICogQHBhcmFtIHIgXG4gICAqIEBwYXJhbSBjb3VudCBcbiAgICovXG4gIHJlc291cmNlQ291bnRJczxUPihyOiBJbnB1dFJlc291cmNlPFQ+LCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoci5UeXBlLCBjb3VudCk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLnJlc291cmNlUHJvcGVydGllc0NvdW50SXNgXG4gICAqIEBwYXJhbSByIFxuICAgKiBAcGFyYW0gY291bnQgXG4gICAqL1xuICByZXNvdXJjZVByb3BlcnRpZXNDb3VudElzPFQ+KHI6IElucHV0UmVzb3VyY2U8VD4sIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLnJlc291cmNlUHJvcGVydGllc0NvdW50SXMoci5UeXBlLCByLlByb3BlcnRpZXMsIGNvdW50KTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzYFxuICAgKiBAcGFyYW0gciBcbiAgICovXG4gIGhhc1Jlc291cmNlUHJvcGVydGllczxUPihyOiBJbnB1dFJlc291cmNlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoci5UeXBlLCByLlByb3BlcnRpZXMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5oYXNSZXNvdXJjZWBcbiAgICogQHBhcmFtIHIgXG4gICAqL1xuICBoYXNSZXNvdXJjZTxUPihyOiBJbnB1dFJlc291cmNlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5oYXNSZXNvdXJjZShyLlR5cGUsIHIpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5maW5kUmVzb3VyY2VzYFxuICAgKiBAcGFyYW0gciBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBmaW5kUmVzb3VyY2VzPFQ+KHI6IElucHV0UmVzb3VyY2U8VD4pOiBSZXR1cm5WYWx1ZTxPdXRwdXRSZXNvdXJjZTxUPj5bXSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy50ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKHIuVHlwZSwgcikgYXMge1xuICAgICAgW2lkIGluIHN0cmluZ106IE91dHB1dFJlc291cmNlPFQ+O1xuICAgIH07XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc291cmNlcykubWFwKChbaWQsIHJlc291cmNlXSkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBkZWY6IHJlc291cmNlIH07XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmFsbFJlc291cmNlc2BcbiAgICogQHBhcmFtIHIgXG4gICAqL1xuICBhbGxSZXNvdXJjZXM8VD4ocjogSW5wdXRSZXNvdXJjZTxUPik6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUuYWxsUmVzb3VyY2VzKHIuVHlwZSwgcik7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmFsbFJlc291cmNlUHJvcGVydGllc2BcbiAgICogQHBhcmFtIHIgXG4gICAqL1xuICBhbGxSZXNvdXJjZXNQcm9wZXJ0aWVzPFQ+KHI6IElucHV0UmVzb3VyY2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmFsbFJlc291cmNlc1Byb3BlcnRpZXMoci5UeXBlLCByLlByb3BlcnRpZXMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5oYXNQYXJhbWV0ZXJgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICovXG4gIGhhc1BhcmFtZXRlcihsb2dpY2FsSWQ6IHN0cmluZywgcHJvcHM6IElucHV0UGFyYW10ZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmhhc1BhcmFtZXRlcihsb2dpY2FsSWQsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZmluZFBhcmFtZXRlcnNgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBmaW5kUGFyYW1ldGVycyhcbiAgICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IElucHV0UGFyYW10ZXJcbiAgKTogUmV0dXJuVmFsdWU8T3V0cHV0UGFyYW1ldGVyPltdIHtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy50ZW1wbGF0ZS5maW5kUGFyYW1ldGVycyhsb2dpY2FsSWQsIHByb3BzKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocGFyYW1ldGVycykubWFwKChbaWQsIHBhcmFtZXRlcl0pID0+IHtcbiAgICAgIHJldHVybiB7IGlkOiBpZCwgZGVmOiBwYXJhbWV0ZXIgYXMgT3V0cHV0UGFyYW1ldGVyIH07XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmhhc091dHB1dGBcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCBcbiAgICogQHBhcmFtIHByb3BzIFxuICAgKi9cbiAgaGFzT3V0cHV0KGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wczogSW5wdXRPdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmhhc091dHB1dChsb2dpY2FsSWQsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZmluZE91dHB1dHNgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBmaW5kT3V0cHV0cyhcbiAgICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IElucHV0T3V0cHV0XG4gICk6IFJldHVyblZhbHVlPE91dHB1dE91dHB1dD5bXSB7XG4gICAgY29uc3Qgb3V0cHV0cyA9IHRoaXMudGVtcGxhdGUuZmluZE91dHB1dHMobG9naWNhbElkLCBwcm9wcyk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG91dHB1dHMpLm1hcCgoW2lkLCBvdXRwdXRdKSA9PiB7XG4gICAgICByZXR1cm4geyBpZDogaWQsIGRlZjogb3V0cHV0IGFzIE91dHB1dE91dHB1dCB9O1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5oYXNNYXBwaW5nYFxuICAgKiBAcGFyYW0gbG9naWNhbElkIFxuICAgKiBAcGFyYW0gcHJvcHMgXG4gICAqL1xuICBoYXNNYXBwaW5nKGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wczogYW55KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5oYXNNYXBwaW5nKGxvZ2ljYWxJZCwgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5maW5kTWFwcGluZ3NgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBmaW5kTWFwcGluZ3MobG9naWNhbElkOiBzdHJpbmcsIHByb3BzPzogYW55KTogUmV0dXJuVmFsdWU8TWFwcGluZz5bXSB7XG4gICAgY29uc3QgbWFwcGluZ3MgPSB0aGlzLnRlbXBsYXRlLmZpbmRNYXBwaW5ncyhsb2dpY2FsSWQsIHByb3BzKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwcGluZ3MpLm1hcCgoW2lkLCBtYXBwaW5nXSkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBkZWY6IG1hcHBpbmcgfTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuaGFzQ29uZGl0aW9uYFxuICAgKiBAcGFyYW0gbG9naWNhbElkIFxuICAgKiBAcGFyYW0gcHJvcHMgXG4gICAqL1xuICBoYXNDb25kaXRpb24obG9naWNhbElkOiBzdHJpbmcsIHByb3BzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmhhc0NvbmRpdGlvbihsb2dpY2FsSWQsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZmluZENvbmRpdGlvbnNgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBmaW5kQ29uZGl0aW9ucyhsb2dpY2FsSWQ6IHN0cmluZywgcHJvcHM/OiBhbnkpOiBSZXR1cm5WYWx1ZTxDb25kaXRpb24+W10ge1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0aGlzLnRlbXBsYXRlLmZpbmRDb25kaXRpb25zKGxvZ2ljYWxJZCwgcHJvcHMpO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb25kaXRpb25zKS5tYXAoKFtpZCwgY29uZGl0aW9uXSkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBkZWY6IGNvbmRpdGlvbiB9O1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogcHJvdmlkZXMgc29tZSBzeW50YXggc3VnYXJzIGZvciBgTWF0Y2hgIGNsYXNzIGF0IGBhd3MtY2RrLWxpYi9hc3NlcnRpb25zYFxuICovXG5leHBvcnQgY2xhc3MgRXh0cmFNYXRjaCBleHRlbmRzIE1hdGNoIHtcbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYE1hdGNoLm9iamVjdEVxdWFscyh7IFJlZjogbG9naWNhbElkIH0pYFxuICAgKiBAcGFyYW0gbG9naWNhbElkIFxuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIHN0YXRpYyByZWYobG9naWNhbElkOiBzdHJpbmcpOiBNYXRjaGVyIHtcbiAgICByZXR1cm4gTWF0Y2gub2JqZWN0RXF1YWxzKHsgUmVmOiBsb2dpY2FsSWQgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYE1hdGNoLm9iamVjdEVxdWFscyh7XCJGbjo6R2V0QXR0XCI6IFtsb2dpY2FsSWQsIGF0dHJpYnV0ZV19KWBcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCBcbiAgICogQHBhcmFtIGF0dHJpYnV0ZSBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBzdGF0aWMgZ2V0QXR0KGxvZ2ljYWxJZDogc3RyaW5nLCBhdHRyaWJ1dGU6IHN0cmluZyk6IE1hdGNoZXIge1xuICAgIHJldHVybiBNYXRjaC5vYmplY3RFcXVhbHMoe1wiRm46OkdldEF0dFwiOiBbbG9naWNhbElkLCBhdHRyaWJ1dGVdfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYE1hdGNoLm9iamVjdEVxdWFscyh7XCJGbjo6R2V0QXR0XCI6IFtsb2dpY2FsSWQsIFwiQXJuXCJdfSlgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgc3RhdGljIGdldEF0dEFybihsb2dpY2FsSWQ6IHN0cmluZyk6IE1hdGNoZXIge1xuICAgIHJldHVybiB0aGlzLmdldEF0dChsb2dpY2FsSWQsIFwiQXJuXCIpO1xuICB9XG59XG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2VydGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQWtFO0FBY2xFOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBRXhCLFlBQW9CLFFBQWtCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxHQUFHLElBQTJDO1FBRTlDLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FDYixHQUFHLElBQTBDO1FBRTdDLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixHQUFHLElBQTRDO1FBRS9DLE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUNiLElBQWtFLEVBQ2xFLEtBQWE7UUFFYixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCx5QkFBeUIsQ0FBSSxDQUFtQixFQUFFLEtBQWE7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNEOzs7T0FHRztJ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QU0sQ0FBQyxTQUFpQixFQUFFLFNBQWlCO1FBQ2hELE9BQU8sa0JBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFpQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQTFCRCxnQ0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZSwgTWF0Y2gsIE1hdGNoZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBJbnB1dFJlc291cmNlLFxuICBNYXBwaW5nLFxuICBPdXRwdXRSZXNvdXJjZSxcbiAgSW5wdXRQYXJhbXRlcixcbiAgT3V0cHV0UGFyYW1ldGVyLFxuICBSZXR1cm5WYWx1ZSxcbiAgSW5wdXRPdXRwdXQsXG4gIE91dHB1dE91dHB1dCxcbiAgSW5wdXRSZXNvdXJjZVdpdGhvdXRUeXBlLFxufSBmcm9tIFwiLi90eXBlZC1yZXNvdXJjZVwiO1xuXG4vKipcbiAqIGFsbW9zdCBzYW1lIGNsYXNzIGFzIGBUZW1wbGF0ZWAgY2xhc3MgYXQgXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCIsIGJ1dCB5b3UgY2FuIHVzZSB0aGlzIHdpdGggcHJvcGVyIHR5cGUgZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkVGVtcGxhdGUge1xuICB0ZW1wbGF0ZTogVGVtcGxhdGU7XG4gIHByaXZhdGUgY29uc3RydWN0b3IodGVtcGxhdGU6IFRlbXBsYXRlKSB7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmZyb21TdGFja2AgYnV0IHJldHVybnMgYFR5cGVkVGVtcGxhdGVgXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0YWNrKFxuICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIFRlbXBsYXRlLmZyb21TdGFjaz5cbiAgKTogVHlwZWRUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlZFRlbXBsYXRlKFRlbXBsYXRlLmZyb21TdGFjayguLi5hcmdzKSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmZyb21KU09OYCBidXQgcmV0dXJucyBgVHlwZWRUZW1wbGF0ZWBcbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBUZW1wbGF0ZS5mcm9tSlNPTj5cbiAgKTogVHlwZWRUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBUeXBlZFRlbXBsYXRlKFRlbXBsYXRlLmZyb21KU09OKC4uLmFyZ3MpKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZnJvbVN0cmluZ2AgYnV0IHJldHVybnMgYFR5cGVkVGVtcGxhdGVgXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyhcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBUZW1wbGF0ZS5mcm9tU3RyaW5nPlxuICApOiBUeXBlZFRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IFR5cGVkVGVtcGxhdGUoVGVtcGxhdGUuZnJvbVN0cmluZyguLi5hcmdzKSk7XG4gIH1cblxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUucmVzb3VyY2VDb3VudElzYFxuICAgKiBAcGFyYW0gdHlwZSBcbiAgICogQHBhcmFtIGNvdW50IFxuICAgKi9cbiAgcmVzb3VyY2VDb3VudElzPFQ+KFxuICAgIHR5cGU6IChyZXNvdXJjZT86IElucHV0UmVzb3VyY2VXaXRob3V0VHlwZTxUPikgPT4gSW5wdXRSZXNvdXJjZTxUPixcbiAgICBjb3VudDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUucmVzb3VyY2VDb3VudElzKHR5cGUoKS5UeXBlLCBjb3VudCk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLnJlc291cmNlUHJvcGVydGllc0NvdW50SXNgXG4gICAqIEBwYXJhbSByXG4gICAqIEBwYXJhbSBjb3VudFxuICAgKi9cbiAgcmVzb3VyY2VQcm9wZXJ0aWVzQ291bnRJczxUPihyOiBJbnB1dFJlc291cmNlPFQ+LCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5yZXNvdXJjZVByb3BlcnRpZXNDb3VudElzKHIuVHlwZSwgci5Qcm9wZXJ0aWVzLCBjb3VudCk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllc2BcbiAgICogQHBhcmFtIHJcbiAgICovXG4gIGhhc1Jlc291cmNlUHJvcGVydGllczxUPihyOiBJbnB1dFJlc291cmNlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoci5UeXBlLCByLlByb3BlcnRpZXMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5oYXNSZXNvdXJjZWBcbiAgICogQHBhcmFtIHJcbiAgICovXG4gIGhhc1Jlc291cmNlPFQ+KHI6IElucHV0UmVzb3VyY2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmhhc1Jlc291cmNlKHIuVHlwZSwgcik7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmZpbmRSZXNvdXJjZXNgXG4gICAqIEBwYXJhbSByXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBmaW5kUmVzb3VyY2VzPFQ+KHI6IElucHV0UmVzb3VyY2U8VD4pOiBSZXR1cm5WYWx1ZTxPdXRwdXRSZXNvdXJjZTxUPj5bXSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy50ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKHIuVHlwZSwgcikgYXMge1xuICAgICAgW2lkIGluIHN0cmluZ106IE91dHB1dFJlc291cmNlPFQ+O1xuICAgIH07XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc291cmNlcykubWFwKChbaWQsIHJlc291cmNlXSkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBkZWY6IHJlc291cmNlIH07XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmFsbFJlc291cmNlc2BcbiAgICogQHBhcmFtIHJcbiAgICovXG4gIGFsbFJlc291cmNlczxUPihyOiBJbnB1dFJlc291cmNlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5hbGxSZXNvdXJjZXMoci5UeXBlLCByKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuYWxsUmVzb3VyY2VQcm9wZXJ0aWVzYFxuICAgKiBAcGFyYW0gclxuICAgKi9cbiAgYWxsUmVzb3VyY2VzUHJvcGVydGllczxUPihyOiBJbnB1dFJlc291cmNlPFQ+KTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZS5hbGxSZXNvdXJjZXNQcm9wZXJ0aWVzKHIuVHlwZSwgci5Qcm9wZXJ0aWVzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuaGFzUGFyYW1ldGVyYFxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKi9cbiAgaGFzUGFyYW1ldGVyKGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wczogSW5wdXRQYXJhbXRlcik6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUuaGFzUGFyYW1ldGVyKGxvZ2ljYWxJZCwgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5maW5kUGFyYW1ldGVyc2BcbiAgICogQHBhcmFtIGxvZ2ljYWxJZFxuICAgKiBAcGFyYW0gcHJvcHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGZpbmRQYXJhbWV0ZXJzKFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIHByb3BzPzogSW5wdXRQYXJhbXRlclxuICApOiBSZXR1cm5WYWx1ZTxPdXRwdXRQYXJhbWV0ZXI+W10ge1xuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB0aGlzLnRlbXBsYXRlLmZpbmRQYXJhbWV0ZXJzKGxvZ2ljYWxJZCwgcHJvcHMpO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhwYXJhbWV0ZXJzKS5tYXAoKFtpZCwgcGFyYW1ldGVyXSkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IGlkLCBkZWY6IHBhcmFtZXRlciBhcyBPdXRwdXRQYXJhbWV0ZXIgfTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuaGFzT3V0cHV0YFxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKi9cbiAgaGFzT3V0cHV0KGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wczogSW5wdXRPdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlLmhhc091dHB1dChsb2dpY2FsSWQsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZmluZE91dHB1dHNgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWRcbiAgICogQHBhcmFtIHByb3BzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBmaW5kT3V0cHV0cyhcbiAgICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IElucHV0T3V0cHV0XG4gICk6IFJldHVyblZhbHVlPE91dHB1dE91dHB1dD5bXSB7XG4gICAgY29uc3Qgb3V0cHV0cyA9IHRoaXMudGVtcGxhdGUuZmluZE91dHB1dHMobG9naWNhbElkLCBwcm9wcyk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG91dHB1dHMpLm1hcCgoW2lkLCBvdXRwdXRdKSA9PiB7XG4gICAgICByZXR1cm4geyBpZDogaWQsIGRlZjogb3V0cHV0IGFzIE91dHB1dE91dHB1dCB9O1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5oYXNNYXBwaW5nYFxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKi9cbiAgaGFzTWFwcGluZyhsb2dpY2FsSWQ6IHN0cmluZywgcHJvcHM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUuaGFzTWFwcGluZyhsb2dpY2FsSWQsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgVGVtcGxhdGUuZmluZE1hcHBpbmdzYFxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBwcm9wc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZmluZE1hcHBpbmdzKGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wcz86IGFueSk6IFJldHVyblZhbHVlPE1hcHBpbmc+W10ge1xuICAgIGNvbnN0IG1hcHBpbmdzID0gdGhpcy50ZW1wbGF0ZS5maW5kTWFwcGluZ3MobG9naWNhbElkLCBwcm9wcyk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcHBpbmdzKS5tYXAoKFtpZCwgbWFwcGluZ10pID0+IHtcbiAgICAgIHJldHVybiB7IGlkOiBpZCwgZGVmOiBtYXBwaW5nIH07XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYFRlbXBsYXRlLmhhc0NvbmRpdGlvbmBcbiAgICogQHBhcmFtIGxvZ2ljYWxJZFxuICAgKiBAcGFyYW0gcHJvcHNcbiAgICovXG4gIGhhc0NvbmRpdGlvbihsb2dpY2FsSWQ6IHN0cmluZywgcHJvcHM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGUuaGFzQ29uZGl0aW9uKGxvZ2ljYWxJZCwgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBzYW1lIGZ1bmN0aW9uIGFzIGBUZW1wbGF0ZS5maW5kQ29uZGl0aW9uc2BcbiAgICogQHBhcmFtIGxvZ2ljYWxJZFxuICAgKiBAcGFyYW0gcHJvcHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGZpbmRDb25kaXRpb25zKGxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wcz86IGFueSk6IFJldHVyblZhbHVlPENvbmRpdGlvbj5bXSB7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IHRoaXMudGVtcGxhdGUuZmluZENvbmRpdGlvbnMobG9naWNhbElkLCBwcm9wcyk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbnMpLm1hcCgoW2lkLCBjb25kaXRpb25dKSA9PiB7XG4gICAgICByZXR1cm4geyBpZDogaWQsIGRlZjogY29uZGl0aW9uIH07XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBwcm92aWRlcyBzb21lIHN5bnRheCBzdWdhcnMgZm9yIGBNYXRjaGAgY2xhc3MgYXQgYGF3cy1jZGstbGliL2Fzc2VydGlvbnNgXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHRyYU1hdGNoIGV4dGVuZHMgTWF0Y2gge1xuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgTWF0Y2gub2JqZWN0RXF1YWxzKHsgUmVmOiBsb2dpY2FsSWQgfSlgXG4gICAqIEBwYXJhbSBsb2dpY2FsSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIHN0YXRpYyByZWYobG9naWNhbElkOiBzdHJpbmcpOiBNYXRjaGVyIHtcbiAgICByZXR1cm4gTWF0Y2gub2JqZWN0RXF1YWxzKHsgUmVmOiBsb2dpY2FsSWQgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHNhbWUgZnVuY3Rpb24gYXMgYE1hdGNoLm9iamVjdEVxdWFscyh7XCJGbjo6R2V0QXR0XCI6IFtsb2dpY2FsSWQsIGF0dHJpYnV0ZV19KWBcbiAgICogQHBhcmFtIGxvZ2ljYWxJZFxuICAgKiBAcGFyYW0gYXR0cmlidXRlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBzdGF0aWMgZ2V0QXR0KGxvZ2ljYWxJZDogc3RyaW5nLCBhdHRyaWJ1dGU6IHN0cmluZyk6IE1hdGNoZXIge1xuICAgIHJldHVybiBNYXRjaC5vYmplY3RFcXVhbHMoeyBcIkZuOjpHZXRBdHRcIjogW2xvZ2ljYWxJZCwgYXR0cmlidXRlXSB9KTtcbiAgfVxuICAvKipcbiAgICogc2FtZSBmdW5jdGlvbiBhcyBgTWF0Y2gub2JqZWN0RXF1YWxzKHtcIkZuOjpHZXRBdHRcIjogW2xvZ2ljYWxJZCwgXCJBcm5cIl19KWBcbiAgICogQHBhcmFtIGxvZ2ljYWxJZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGdldEF0dEFybihsb2dpY2FsSWQ6IHN0cmluZyk6IE1hdGNoZXIge1xuICAgIHJldHVybiB0aGlzLmdldEF0dChsb2dpY2FsSWQsIFwiQXJuXCIpO1xuICB9XG59XG4iXX0=
|
package/lib/typed-resource.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Matcher } from "aws-cdk-lib/assertions";
|
|
2
|
-
type Primitives = string | number | boolean | undefined | null | symbol | bigint;
|
|
2
|
+
type Primitives = string | number | boolean | undefined | null | symbol | bigint | string[] | number[] | boolean[] | bigint[];
|
|
3
3
|
/**
|
|
4
4
|
* make properties of `T` asignable Matcher recirsively and other arbitrary json objects for primitive type fields
|
|
5
5
|
*/
|
package/lib/typed-resource.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlZC1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0Y2hlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5cbnR5cGUgUHJpbWl0aXZlcyA9XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgYm9vbGVhblxuICB8IHVuZGVmaW5lZFxuICB8IG51bGxcbiAgfCBzeW1ib2xcbiAgfCBiaWdpbnQgfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgYm9vbGVhbltdIHwgYmlnaW50W107XG4vKipcbiAqIG1ha2UgcHJvcGVydGllcyBvZiBgVGAgYXNpZ25hYmxlIE1hdGNoZXIgcmVjaXJzaXZlbHkgYW5kIG90aGVyIGFyYml0cmFyeSBqc29uIG9iamVjdHMgZm9yIHByaW1pdGl2ZSB0eXBlIGZpZWxkc1xuICovXG50eXBlIEFsc29NYXRjaGFibGU8VD4gPSB7XG4gIFtwIGluIGtleW9mIFRdPzogVFtwXSBleHRlbmRzIFByaW1pdGl2ZXNcbiAgPyBUW3BdIHwgTWF0Y2hlciB8IHsgW2tleSBpbiBzdHJpbmddOiBhbnkgfVxuICA6IEFsc29NYXRjaGFibGU8VFtwXT4gfCBNYXRjaGVyO1xufTtcbi8qKlxuICogbWFrZSBwcm9wZXJ0aWVzIG9mIGBUYCBhc2lnbmFibGUgYXJiaXRyYXJ5IGpzb24gb2JqZWN0c1xuICovXG50eXBlIEFsc29Bbnk8VD4gPSB7XG4gIFtwIGluIGtleW9mIFRdOiBUW3BdIGV4dGVuZHMgUHJpbWl0aXZlc1xuICA/IFRbcF0gfCB7IFtrZXkgaW4gc3RyaW5nXTogYW55IH1cbiAgOiBBbHNvQW55PFRbcF0+O1xufTtcblxuLyoqXG4gKiBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBiYXNlZCBvbiB0aGUgZGVmaW5pdGlvbiBhdCBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vamFfanAvQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvZHVjdC1hdHRyaWJ1dGUtcmVmZXJlbmNlLmh0bWxcbiAqL1xuaW50ZXJmYWNlIEJhc2VSZXNvdXJjZSB7XG4gIENyZWF0aW9uUG9saWN5PzogYW55O1xuICBEZWxldGlvblBvbGljeT86IFwiRGVsZXRlXCIgfCBcIlJldGFpblwiIHwgXCJSZXRhaW5FeGNlcHRPbkNyZWF0ZVwiIHwgXCJTbmFwc2hvdFwiO1xuICBEZXBlbmRzT24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgTWV0YWRhdGE/OiBhbnk7XG4gIFVwZGF0ZVBvbGljeT86IGFueTtcbiAgVXBkYXRlUmVwbGFjZVBvbGljeT86IFwiRGVsZXRlXCIgfCBcIlJldGFpblwiIHwgXCJTbmFwc2hvdFwiO1xuICBDb25kaXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRSZXNvdXJjZTxUPiBleHRlbmRzIEFsc29NYXRjaGFibGU8QmFzZVJlc291cmNlPiB7XG4gIFByb3BlcnRpZXM/OiBBbHNvTWF0Y2hhYmxlPFQ+O1xuICBUeXBlOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0UmVzb3VyY2VXaXRob3V0VHlwZTxUPlxuICBleHRlbmRzIE9taXQ8SW5wdXRSZXNvdXJjZTxUPiwgXCJUeXBlXCI+IHsgfVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRSZXNvdXJjZTxUPiBleHRlbmRzIEFsc29Bbnk8QmFzZVJlc291cmNlPiB7XG4gIFByb3BlcnRpZXM/OiBBbHNvQW55PFQ+O1xuICBUeXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogaW50ZXJmYWNlIG9mIHJldHVybiB2YWx1ZSBvZiBUeXBlZFRlbXBsYXRlJ3MgbWV0aG9kc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHVyblZhbHVlPFQ+IHtcbiAgLyoqXG4gICAqIGxvZ2ljYWwgaWQgb2YgY2xvdWRmb3JtYXRpb24gcmVzb3VyY2VzLCBwYXJhbWV0ZXJzLCBvdXRwdXRzLi4uXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICAvKipcbiAgICogZGVmaW5pdGlvbiBvZiBjbG91ZGZvcm1hdGlvbiByZXNvdXJjZXMsIHBhcmFtZXRlcnMsIG91dHB1dHMuLi5cbiAgICovXG4gIGRlZjogVDtcbn1cblxuLyoqXG4gKiBpbnRlcmZhY2Ugb2YgY2xvdWRmb3JtYXRpb24gdGVtcGxhdGUgb3V0cHV0XG4gKi9cbmludGVyZmFjZSBPdXRwdXQge1xuICBEZXNjcmlwdGlvbj86IGFueTtcbiAgVmFsdWU6IGFueTtcbiAgRXhwb3J0Pzoge1xuICAgIE5hbWU6IGFueTtcbiAgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRPdXRwdXQgZXh0ZW5kcyBBbHNvTWF0Y2hhYmxlPE91dHB1dD4geyB9XG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dE91dHB1dCBleHRlbmRzIEFsc29Bbnk8T3V0cHV0PiB7IH1cbi8qKlxuICogaW50ZXJmYWNlIG9mIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIHBhcmFtZXRlclxuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgQWxsb3dlZFBhdHRlcm4/OiBzdHJpbmc7XG4gIEFsbG93ZWRWYWx1ZXM/OiBhbnlbXTtcbiAgQ29uc3RyYWludERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBEZWZhdWx0PzogYW55O1xuICBEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgTWF4TGVuZ3RoPzogbnVtYmVyO1xuICBNYXhWYWx1ZT86IG51bWJlcjtcbiAgTWluTGVuZ3RoPzogbnVtYmVyO1xuICBNaW5WYWx1ZT86IG51bWJlcjtcbiAgTm9FY2hvPzogYm9vbGVhbjtcbiAgVHlwZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFBhcmFtdGVyIGV4dGVuZHMgQWxzb01hdGNoYWJsZTxQYXJhbWV0ZXI+IHsgfVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRQYXJhbWV0ZXIgZXh0ZW5kcyBBbHNvQW55PFBhcmFtZXRlcj4geyB9XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbiA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnk7XG4gIH07XG59O1xuZXhwb3J0IHR5cGUgTWFwcGluZyA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnk7XG4gIH07XG59O1xuIl19
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An array of key-value pairs to apply to this resource.
|
|
3
|
+
*/
|
|
4
|
+
export type Tags = Tag[];
|
|
1
5
|
/**
|
|
2
6
|
* The AWS::AccessAnalyzer::Analyzer type specifies an analyzer of the user's account
|
|
3
7
|
*/
|
|
@@ -57,16 +61,42 @@ export interface Tag {
|
|
|
57
61
|
*/
|
|
58
62
|
Key: string;
|
|
59
63
|
/**
|
|
60
|
-
* The value for the tag. You can specify a value that is
|
|
64
|
+
* The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
|
|
61
65
|
*/
|
|
62
|
-
Value
|
|
66
|
+
Value?: string;
|
|
63
67
|
}
|
|
64
68
|
/**
|
|
65
69
|
* The Configuration for Unused Access Analyzer
|
|
66
70
|
*/
|
|
67
71
|
export interface UnusedAccessConfiguration {
|
|
68
72
|
/**
|
|
69
|
-
* The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and
|
|
73
|
+
* The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days.
|
|
70
74
|
*/
|
|
71
75
|
UnusedAccessAge?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Contains information about rules for the analyzer.
|
|
78
|
+
*/
|
|
79
|
+
AnalysisRule?: {
|
|
80
|
+
/**
|
|
81
|
+
* A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings.
|
|
82
|
+
*/
|
|
83
|
+
Exclusions?: AnalysisRuleCriteria[];
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The criteria for an analysis rule for an analyzer.
|
|
88
|
+
*/
|
|
89
|
+
export interface AnalysisRuleCriteria {
|
|
90
|
+
/**
|
|
91
|
+
* A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers.
|
|
92
|
+
*/
|
|
93
|
+
AccountIds?: string[];
|
|
94
|
+
/**
|
|
95
|
+
* An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
|
|
96
|
+
*
|
|
97
|
+
* For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:.
|
|
98
|
+
*
|
|
99
|
+
* For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key.
|
|
100
|
+
*/
|
|
101
|
+
ResourceTags?: Tags[];
|
|
72
102
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFjY2Vzc2FuYWx5emVyLWFuYWx5emVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFjY2Vzc2FuYWx5emVyLWFuYWx5emVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICovXG5leHBvcnQgdHlwZSBUYWdzID0gVGFnW11cblxuLyoqXG4gKiBUaGUgQVdTOjpBY2Nlc3NBbmFseXplcjo6QW5hbHl6ZXIgdHlwZSBzcGVjaWZpZXMgYW4gYW5hbHl6ZXIgb2YgdGhlIHVzZXIncyBhY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19BQ0NFU1NBTkFMWVpFUl9BTkFMWVpFUiB7XG4vKipcbiAqIEFuYWx5emVyIG5hbWVcbiAqL1xuQW5hbHl6ZXJOYW1lPzogc3RyaW5nXG5BcmNoaXZlUnVsZXM/OiBBcmNoaXZlUnVsZVtdXG4vKipcbiAqIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBhbmFseXplclxuICovXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFwcGx5IHRvIHRoaXMgcmVzb3VyY2UuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIGFuYWx5emVyLCBtdXN0IGJlIG9uZSBvZiBBQ0NPVU5ULCBPUkdBTklaQVRJT04sIEFDQ09VTlRfVU5VU0VEX0FDQ0VTUyBvciBPUkdBTklaQVRJT05fVU5VU0VEX0FDQ0VTU1xuICovXG5UeXBlOiBzdHJpbmdcbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhbmFseXplclxuICovXG5BbmFseXplckNvbmZpZ3VyYXRpb24/OiB7XG5VbnVzZWRBY2Nlc3NDb25maWd1cmF0aW9uPzogVW51c2VkQWNjZXNzQ29uZmlndXJhdGlvblxufVxufVxuLyoqXG4gKiBBbiBBY2Nlc3MgQW5hbHl6ZXIgYXJjaGl2ZSBydWxlLiBBcmNoaXZlIHJ1bGVzIGF1dG9tYXRpY2FsbHkgYXJjaGl2ZSBuZXcgZmluZGluZ3MgdGhhdCBtZWV0IHRoZSBjcml0ZXJpYSB5b3UgZGVmaW5lIHdoZW4geW91IGNyZWF0ZSB0aGUgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmNoaXZlUnVsZSB7XG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbkZpbHRlcjogRmlsdGVyW11cbi8qKlxuICogVGhlIGFyY2hpdmUgcnVsZSBuYW1lXG4gKi9cblJ1bGVOYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbkNvbnRhaW5zPzogc3RyaW5nW11cbkVxPzogc3RyaW5nW11cbkV4aXN0cz86IGJvb2xlYW5cblByb3BlcnR5OiBzdHJpbmdcbk5lcT86IHN0cmluZ1tdXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyNyBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS4gXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NSBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS4gXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBDb25maWd1cmF0aW9uIGZvciBVbnVzZWQgQWNjZXNzIEFuYWx5emVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW51c2VkQWNjZXNzQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBzcGVjaWZpZWQgYWNjZXNzIGFnZSBpbiBkYXlzIGZvciB3aGljaCB0byBnZW5lcmF0ZSBmaW5kaW5ncyBmb3IgdW51c2VkIGFjY2Vzcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBzcGVjaWZ5IDkwIGRheXMsIHRoZSBhbmFseXplciB3aWxsIGdlbmVyYXRlIGZpbmRpbmdzIGZvciBJQU0gZW50aXRpZXMgd2l0aGluIHRoZSBhY2NvdW50cyBvZiB0aGUgc2VsZWN0ZWQgb3JnYW5pemF0aW9uIGZvciBhbnkgYWNjZXNzIHRoYXQgaGFzbid0IGJlZW4gdXNlZCBpbiA5MCBvciBtb3JlIGRheXMgc2luY2UgdGhlIGFuYWx5emVyJ3MgbGFzdCBzY2FuLiBZb3UgY2FuIGNob29zZSBhIHZhbHVlIGJldHdlZW4gMSBhbmQgMzY1IGRheXMuXG4gKi9cblVudXNlZEFjY2Vzc0FnZT86IG51bWJlclxuLyoqXG4gKiBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBydWxlcyBmb3IgdGhlIGFuYWx5emVyLlxuICovXG5BbmFseXNpc1J1bGU/OiB7XG4vKipcbiAqIEEgbGlzdCBvZiBydWxlcyBmb3IgdGhlIGFuYWx5emVyIGNvbnRhaW5pbmcgY3JpdGVyaWEgdG8gZXhjbHVkZSBmcm9tIGFuYWx5c2lzLiBFbnRpdGllcyB0aGF0IG1lZXQgdGhlIHJ1bGUgY3JpdGVyaWEgd2lsbCBub3QgZ2VuZXJhdGUgZmluZGluZ3MuXG4gKi9cbkV4Y2x1c2lvbnM/OiBBbmFseXNpc1J1bGVDcml0ZXJpYVtdXG59XG59XG4vKipcbiAqIFRoZSBjcml0ZXJpYSBmb3IgYW4gYW5hbHlzaXMgcnVsZSBmb3IgYW4gYW5hbHl6ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHlzaXNSdWxlQ3JpdGVyaWEge1xuLyoqXG4gKiBBIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRvIGFwcGx5IHRvIHRoZSBhbmFseXNpcyBydWxlIGNyaXRlcmlhLiBUaGUgYWNjb3VudHMgY2Fubm90IGluY2x1ZGUgdGhlIG9yZ2FuaXphdGlvbiBhbmFseXplciBvd25lciBhY2NvdW50LiBBY2NvdW50IElEcyBjYW4gb25seSBiZSBhcHBsaWVkIHRvIHRoZSBhbmFseXNpcyBydWxlIGNyaXRlcmlhIGZvciBvcmdhbml6YXRpb24tbGV2ZWwgYW5hbHl6ZXJzLlxuICovXG5BY2NvdW50SWRzPzogc3RyaW5nW11cbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIG1hdGNoIGZvciB5b3VyIHJlc291cmNlcy4gWW91IGNhbiB1c2UgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKiBcbiAqIEZvciB0aGUgdGFnIGtleSwgeW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi5cbiAqIFxuICogRm9yIHRoZSB0YWcgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgY2hhcmFjdGVycyBpbiBsZW5ndGguIElmIHRoZSBzcGVjaWZpZWQgdGFnIHZhbHVlIGlzIDAgY2hhcmFjdGVycywgdGhlIHJ1bGUgaXMgYXBwbGllZCB0byBhbGwgcHJpbmNpcGFscyB3aXRoIHRoZSBzcGVjaWZpZWQgdGFnIGtleS5cbiAqL1xuUmVzb3VyY2VUYWdzPzogVGFnc1tdXG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Type definition for AWS::ApiGateway::BasePathMappingV2
|
|
3
|
+
*/
|
|
4
|
+
export interface _AWS_APIGATEWAY_BASEPATHMAPPINGV2 {
|
|
5
|
+
/**
|
|
6
|
+
* The base path name that callers of the API must provide in the URL after the domain name.
|
|
7
|
+
*/
|
|
8
|
+
BasePath?: string;
|
|
9
|
+
/**
|
|
10
|
+
* The Arn of an AWS::ApiGateway::DomainNameV2 resource.
|
|
11
|
+
*/
|
|
12
|
+
DomainNameArn: string;
|
|
13
|
+
/**
|
|
14
|
+
* The ID of the API.
|
|
15
|
+
*/
|
|
16
|
+
RestApiId: string;
|
|
17
|
+
/**
|
|
18
|
+
* The name of the API's stage.
|
|
19
|
+
*/
|
|
20
|
+
Stage?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Amazon Resource Name (ARN) of the resource.
|
|
23
|
+
*/
|
|
24
|
+
BasePathMappingArn?: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYmFzZXBhdGhtYXBwaW5ndjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtYXBpZ2F0ZXdheS1iYXNlcGF0aG1hcHBpbmd2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6QXBpR2F0ZXdheTo6QmFzZVBhdGhNYXBwaW5nVjJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0FQSUdBVEVXQVlfQkFTRVBBVEhNQVBQSU5HVjIge1xuLyoqXG4gKiBUaGUgYmFzZSBwYXRoIG5hbWUgdGhhdCBjYWxsZXJzIG9mIHRoZSBBUEkgbXVzdCBwcm92aWRlIGluIHRoZSBVUkwgYWZ0ZXIgdGhlIGRvbWFpbiBuYW1lLlxuICovXG5CYXNlUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQXJuIG9mIGFuIEFXUzo6QXBpR2F0ZXdheTo6RG9tYWluTmFtZVYyIHJlc291cmNlLlxuICovXG5Eb21haW5OYW1lQXJuOiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBBUEkuXG4gKi9cblJlc3RBcGlJZDogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBBUEkncyBzdGFnZS5cbiAqL1xuU3RhZ2U/OiBzdHJpbmdcbi8qKlxuICogQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHJlc291cmNlLlxuICovXG5CYXNlUGF0aE1hcHBpbmdBcm4/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Type definition for AWS::ApiGateway::DomainNameAccessAssociation.
|
|
3
|
+
*/
|
|
4
|
+
export interface _AWS_APIGATEWAY_DOMAINNAMEACCESSASSOCIATION {
|
|
5
|
+
/**
|
|
6
|
+
* The amazon resource name (ARN) of the domain name access association resource.
|
|
7
|
+
*/
|
|
8
|
+
DomainNameAccessAssociationArn?: string;
|
|
9
|
+
/**
|
|
10
|
+
* The amazon resource name (ARN) of the domain name resource.
|
|
11
|
+
*/
|
|
12
|
+
DomainNameArn: string;
|
|
13
|
+
/**
|
|
14
|
+
* The source of the domain name access association resource.
|
|
15
|
+
*/
|
|
16
|
+
AccessAssociationSource: string;
|
|
17
|
+
/**
|
|
18
|
+
* The source type of the domain name access association resource.
|
|
19
|
+
*/
|
|
20
|
+
AccessAssociationSourceType: "VPCE";
|
|
21
|
+
/**
|
|
22
|
+
* An array of arbitrary tags (key-value pairs) to associate with the domainname access association.
|
|
23
|
+
*/
|
|
24
|
+
Tags?: Tag[];
|
|
25
|
+
}
|
|
26
|
+
export interface Tag {
|
|
27
|
+
Value: string;
|
|
28
|
+
Key: string;
|
|
29
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktZG9tYWlubmFtZWFjY2Vzc2Fzc29jaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFwaWdhdGV3YXktZG9tYWlubmFtZWFjY2Vzc2Fzc29jaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpBcGlHYXRld2F5OjpEb21haW5OYW1lQWNjZXNzQXNzb2NpYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19BUElHQVRFV0FZX0RPTUFJTk5BTUVBQ0NFU1NBU1NPQ0lBVElPTiB7XG4vKipcbiAqIFRoZSBhbWF6b24gcmVzb3VyY2UgbmFtZSAoQVJOKSBvZiB0aGUgZG9tYWluIG5hbWUgYWNjZXNzIGFzc29jaWF0aW9uIHJlc291cmNlLlxuICovXG5Eb21haW5OYW1lQWNjZXNzQXNzb2NpYXRpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFtYXpvbiByZXNvdXJjZSBuYW1lIChBUk4pIG9mIHRoZSBkb21haW4gbmFtZSByZXNvdXJjZS5cbiAqL1xuRG9tYWluTmFtZUFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRvbWFpbiBuYW1lIGFjY2VzcyBhc3NvY2lhdGlvbiByZXNvdXJjZS5cbiAqL1xuQWNjZXNzQXNzb2NpYXRpb25Tb3VyY2U6IHN0cmluZ1xuLyoqXG4gKiBUaGUgc291cmNlIHR5cGUgb2YgdGhlIGRvbWFpbiBuYW1lIGFjY2VzcyBhc3NvY2lhdGlvbiByZXNvdXJjZS5cbiAqL1xuQWNjZXNzQXNzb2NpYXRpb25Tb3VyY2VUeXBlOiBcIlZQQ0VcIlxuLyoqXG4gKiBBbiBhcnJheSBvZiBhcmJpdHJhcnkgdGFncyAoa2V5LXZhbHVlIHBhaXJzKSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgZG9tYWlubmFtZSBhY2Nlc3MgYXNzb2NpYXRpb24uXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuVmFsdWU6IHN0cmluZ1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Type definition for AWS::ApiGateway::DomainNameV2.
|
|
3
|
+
*/
|
|
4
|
+
export interface _AWS_APIGATEWAY_DOMAINNAMEV2 {
|
|
5
|
+
CertificateArn?: string;
|
|
6
|
+
DomainName?: string;
|
|
7
|
+
EndpointConfiguration?: EndpointConfiguration;
|
|
8
|
+
SecurityPolicy?: string;
|
|
9
|
+
Policy?: ({
|
|
10
|
+
[k: string]: unknown;
|
|
11
|
+
} | string);
|
|
12
|
+
ManagementPolicy?: ({
|
|
13
|
+
[k: string]: unknown;
|
|
14
|
+
} | string);
|
|
15
|
+
DomainNameId?: string;
|
|
16
|
+
/**
|
|
17
|
+
* The amazon resource name (ARN) of the domain name resource.
|
|
18
|
+
*/
|
|
19
|
+
DomainNameArn?: string;
|
|
20
|
+
Tags?: Tag[];
|
|
21
|
+
}
|
|
22
|
+
export interface EndpointConfiguration {
|
|
23
|
+
Types?: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface Tag {
|
|
26
|
+
Key?: string;
|
|
27
|
+
Value?: string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktZG9tYWlubmFtZXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFwaWdhdGV3YXktZG9tYWlubmFtZXYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpBcGlHYXRld2F5OjpEb21haW5OYW1lVjIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19BUElHQVRFV0FZX0RPTUFJTk5BTUVWMiB7XG5DZXJ0aWZpY2F0ZUFybj86IHN0cmluZ1xuRG9tYWluTmFtZT86IHN0cmluZ1xuRW5kcG9pbnRDb25maWd1cmF0aW9uPzogRW5kcG9pbnRDb25maWd1cmF0aW9uXG5TZWN1cml0eVBvbGljeT86IHN0cmluZ1xuUG9saWN5PzogKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59IHwgc3RyaW5nKVxuTWFuYWdlbWVudFBvbGljeT86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSB8IHN0cmluZylcbkRvbWFpbk5hbWVJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYW1hem9uIHJlc291cmNlIG5hbWUgKEFSTikgb2YgdGhlIGRvbWFpbiBuYW1lIHJlc291cmNlLlxuICovXG5Eb21haW5OYW1lQXJuPzogc3RyaW5nXG5UYWdzPzogVGFnW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRDb25maWd1cmF0aW9uIHtcblR5cGVzPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbktleT86IHN0cmluZ1xuVmFsdWU/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -77,6 +77,7 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
|
|
|
77
77
|
TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration;
|
|
78
78
|
Arn?: string;
|
|
79
79
|
StepScalingPolicyConfiguration?: StepScalingPolicyConfiguration;
|
|
80
|
+
PredictiveScalingPolicyConfiguration?: PredictiveScalingPolicyConfiguration;
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
82
83
|
* A target tracking scaling policy.
|
|
@@ -290,3 +291,100 @@ export interface StepAdjustment {
|
|
|
290
291
|
*/
|
|
291
292
|
ScalingAdjustment: number;
|
|
292
293
|
}
|
|
294
|
+
export interface PredictiveScalingPolicyConfiguration {
|
|
295
|
+
MaxCapacityBreachBehavior?: string;
|
|
296
|
+
MaxCapacityBuffer?: number;
|
|
297
|
+
Mode?: string;
|
|
298
|
+
MetricSpecifications: PredictiveScalingMetricSpecification[];
|
|
299
|
+
SchedulingBufferTime?: number;
|
|
300
|
+
}
|
|
301
|
+
export interface PredictiveScalingMetricSpecification {
|
|
302
|
+
CustomizedLoadMetricSpecification?: PredictiveScalingCustomizedLoadMetric;
|
|
303
|
+
PredefinedLoadMetricSpecification?: PredictiveScalingPredefinedLoadMetric;
|
|
304
|
+
TargetValue: number;
|
|
305
|
+
PredefinedScalingMetricSpecification?: PredictiveScalingPredefinedScalingMetric;
|
|
306
|
+
CustomizedCapacityMetricSpecification?: PredictiveScalingCustomizedCapacityMetric;
|
|
307
|
+
CustomizedScalingMetricSpecification?: PredictiveScalingCustomizedScalingMetric;
|
|
308
|
+
PredefinedMetricPairSpecification?: PredictiveScalingPredefinedMetricPair;
|
|
309
|
+
}
|
|
310
|
+
export interface PredictiveScalingCustomizedLoadMetric {
|
|
311
|
+
MetricDataQueries: PredictiveScalingMetricDataQuery[];
|
|
312
|
+
}
|
|
313
|
+
export interface PredictiveScalingMetricDataQuery {
|
|
314
|
+
/**
|
|
315
|
+
* Indicates whether to return the timestamps and raw data values of this metric.
|
|
316
|
+
*/
|
|
317
|
+
ReturnData?: boolean;
|
|
318
|
+
/**
|
|
319
|
+
* The math expression to perform on the returned data, if this object is performing a math expression.
|
|
320
|
+
*/
|
|
321
|
+
Expression?: string;
|
|
322
|
+
/**
|
|
323
|
+
* A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.
|
|
324
|
+
*/
|
|
325
|
+
Label?: string;
|
|
326
|
+
MetricStat?: PredictiveScalingMetricStat;
|
|
327
|
+
/**
|
|
328
|
+
* A short name that identifies the object's results in the response.
|
|
329
|
+
*/
|
|
330
|
+
Id?: string;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Information about the metric data to return.
|
|
334
|
+
*/
|
|
335
|
+
export interface PredictiveScalingMetricStat {
|
|
336
|
+
/**
|
|
337
|
+
* The statistic to return. It can include any CloudWatch statistic or extended statistic.
|
|
338
|
+
*/
|
|
339
|
+
Stat?: string;
|
|
340
|
+
Metric?: PredictiveScalingMetric;
|
|
341
|
+
/**
|
|
342
|
+
* The unit to use for the returned data points.
|
|
343
|
+
*/
|
|
344
|
+
Unit?: string;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* The CloudWatch metric to return, including the metric name, namespace, and dimensions.
|
|
348
|
+
*/
|
|
349
|
+
export interface PredictiveScalingMetric {
|
|
350
|
+
/**
|
|
351
|
+
* The name of the metric.
|
|
352
|
+
*/
|
|
353
|
+
MetricName?: string;
|
|
354
|
+
/**
|
|
355
|
+
* The dimensions for the metric.
|
|
356
|
+
*/
|
|
357
|
+
Dimensions?: PredictiveScalingMetricDimension[];
|
|
358
|
+
/**
|
|
359
|
+
* The namespace of the metric.
|
|
360
|
+
*/
|
|
361
|
+
Namespace?: string;
|
|
362
|
+
}
|
|
363
|
+
export interface PredictiveScalingMetricDimension {
|
|
364
|
+
/**
|
|
365
|
+
* The value of the dimension.
|
|
366
|
+
*/
|
|
367
|
+
Value?: string;
|
|
368
|
+
/**
|
|
369
|
+
* The name of the dimension.
|
|
370
|
+
*/
|
|
371
|
+
Name?: string;
|
|
372
|
+
}
|
|
373
|
+
export interface PredictiveScalingPredefinedLoadMetric {
|
|
374
|
+
PredefinedMetricType: string;
|
|
375
|
+
ResourceLabel?: string;
|
|
376
|
+
}
|
|
377
|
+
export interface PredictiveScalingPredefinedScalingMetric {
|
|
378
|
+
PredefinedMetricType: string;
|
|
379
|
+
ResourceLabel?: string;
|
|
380
|
+
}
|
|
381
|
+
export interface PredictiveScalingCustomizedCapacityMetric {
|
|
382
|
+
MetricDataQueries: PredictiveScalingMetricDataQuery[];
|
|
383
|
+
}
|
|
384
|
+
export interface PredictiveScalingCustomizedScalingMetric {
|
|
385
|
+
MetricDataQueries: PredictiveScalingMetricDataQuery[];
|
|
386
|
+
}
|
|
387
|
+
export interface PredictiveScalingPredefinedMetricPair {
|
|
388
|
+
PredefinedMetricType: string;
|
|
389
|
+
ResourceLabel?: string;
|
|
390
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBBbWF6b24gRU1SXG4gKiAgIGBgU3RlcFNjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIER5bmFtb0RCLCBBbWF6b24gQ29tcHJlaGVuZCwgTGFtYmRhLCBBbWF6b24gS2V5c3BhY2VzLCBBbWF6b24gTVNLLCBBbWF6b24gRWxhc3RpQ2FjaGUsIG9yIE5lcHR1bmUuXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgICBgYGVjczpzZXJ2aWNlOkRlc2lyZWRDb3VudGBgIC0gVGhlIHRhc2sgY291bnQgb2YgYW4gRUNTIHNlcnZpY2UuXG4gKiAgICsgICBgYGVsYXN0aWNtYXByZWR1Y2U6aW5zdGFuY2Vncm91cDpJbnN0YW5jZUNvdW50YGAgLSBUaGUgaW5zdGFuY2UgY291bnQgb2YgYW4gRU1SIEluc3RhbmNlIEdyb3VwLlxuICogICArICAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgIGBgYXBwc3RyZWFtOmZsZWV0OkRlc2lyZWRDYXBhY2l0eWBgIC0gVGhlIGNhcGFjaXR5IG9mIGFuIEFwcFN0cmVhbSAyLjAgZmxlZXQuXG4gKiAgICsgICBgYGR5bmFtb2RiOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiB0YWJsZS5cbiAqICAgKyAgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgICBgYGR5bmFtb2RiOmluZGV4OlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGBkeW5hbW9kYjppbmRleDpXcml0ZUNhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgIGBgc2FnZW1ha2VyOnZhcmlhbnQ6RGVzaXJlZEluc3RhbmNlQ291bnRgYCAtIFRoZSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyBmb3IgYSBTYWdlTWFrZXIgbW9kZWwgZW5kcG9pbnQgdmFyaWFudC5cbiAqICAgKyAgIGBgY3VzdG9tLXJlc291cmNlOlJlc291cmNlVHlwZTpQcm9wZXJ0eWBgIC0gVGhlIHNjYWxhYmxlIGRpbWVuc2lvbiBmb3IgYSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZWQgYnkgeW91ciBvd24gYXBwbGljYXRpb24gb3Igc2VydmljZS5cbiAqICAgKyAgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICAgYGBjb21wcmVoZW5kOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGVudGl0eSByZWNvZ25pemVyIGVuZHBvaW50LlxuICogICArICAgYGBsYW1iZGE6ZnVuY3Rpb246UHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOldyaXRlQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHdyaXRlIGNhcGFjaXR5IGZvciBhbiBBbWF6b24gS2V5c3BhY2VzIHRhYmxlLlxuICogICArICAgYGBrYWZrYTpicm9rZXItc3RvcmFnZTpWb2x1bWVTaXplYGAgLSBUaGUgcHJvdmlzaW9uZWQgdm9sdW1lIHNpemUgKGluIEdpQikgZm9yIGJyb2tlcnMgaW4gYW4gQW1hem9uIE1TSyBjbHVzdGVyLlxuICogICArICAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYGVsYXN0aWNhY2hlOnJlcGxpY2F0aW9uLWdyb3VwOlJlcGxpY2FzYGAgLSBUaGUgbnVtYmVyIG9mIHJlcGxpY2FzIHBlciBub2RlIGdyb3VwIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYG5lcHR1bmU6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgcmVhZCByZXBsaWNhcyBpbiBhbiBBbWF6b24gTmVwdHVuZSBEQiBjbHVzdGVyLlxuICogICArICAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICAgYGBzYWdlbWFrZXI6aW5mZXJlbmNlLWNvbXBvbmVudDpEZXNpcmVkQ29weUNvdW50YGAgLSBUaGUgbnVtYmVyIG9mIGNvcGllcyBhY3Jvc3MgYW4gZW5kcG9pbnQgZm9yIGEgU2FnZU1ha2VyIGluZmVyZW5jZSBjb21wb25lbnQuXG4gKiAgICsgICBgYHdvcmtzcGFjZXM6d29ya3NwYWNlc3Bvb2w6RGVzaXJlZFVzZXJTZXNzaW9uc2BgIC0gVGhlIG51bWJlciBvZiB1c2VyIHNlc3Npb25zIGZvciB0aGUgV29ya1NwYWNlcyBpbiB0aGUgcG9vbC5cbiAqL1xuU2NhbGFibGVEaW1lbnNpb24/OiBzdHJpbmdcblRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG5Bcm4/OiBzdHJpbmdcblN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxufVxuLyoqXG4gKiBBIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxlLW91dCBhY3Rpdml0eSB0byB0YWtlIGVmZmVjdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZU91dENvb2xkb3duPzogbnVtYmVyXG4vKipcbiAqIFRoZSB0YXJnZXQgdmFsdWUgZm9yIHRoZSBtZXRyaWMuIEFsdGhvdWdoIHRoaXMgcHJvcGVydHkgYWNjZXB0cyBudW1iZXJzIG9mIHR5cGUgRG91YmxlLCBpdCB3b24ndCBhY2NlcHQgdmFsdWVzIHRoYXQgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlLiBWYWx1ZXMgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgLTJeMzYwIHRvIDJeMzYwLiBUaGUgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIG51bWJlciBiYXNlZCBvbiB0aGUgY2hvaWNlIG9mIG1ldHJpYy4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtZXRyaWMgaXMgQ1BVIHV0aWxpemF0aW9uLCB0aGVuIHRoZSB0YXJnZXQgdmFsdWUgaXMgYSBwZXJjZW50IHZhbHVlIHRoYXQgcmVwcmVzZW50cyBob3cgbXVjaCBvZiB0aGUgQ1BVIGNhbiBiZSB1c2VkIGJlZm9yZSBzY2FsaW5nIG91dC5cbiAqL1xuVGFyZ2V0VmFsdWU6IG51bWJlclxuQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24/OiBDdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBzY2FsZSBpbiBieSB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGlzIGRpc2FibGVkLiBJZiB0aGUgdmFsdWUgaXMgYGB0cnVlYGAsIHNjYWxlIGluIGlzIGRpc2FibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IHdvbid0IHJlbW92ZSBjYXBhY2l0eSBmcm9tIHRoZSBzY2FsYWJsZSB0YXJnZXQuIE90aGVyd2lzZSwgc2NhbGUgaW4gaXMgZW5hYmxlZCBhbmQgdGhlIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBjYW4gcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBmYWxzZWBgLlxuICovXG5EaXNhYmxlU2NhbGVJbj86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCBhZnRlciBhIHNjYWxlLWluIGFjdGl2aXR5IGNvbXBsZXRlcyBiZWZvcmUgYW5vdGhlciBzY2FsZS1pbiBhY3Rpdml0eSBjYW4gc3RhcnQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBmb3IgZGVmYXVsdCB2YWx1ZXMsIHNlZSBbRGVmaW5lIGNvb2xkb3duIHBlcmlvZHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvdGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LW92ZXJ2aWV3Lmh0bWwjdGFyZ2V0LXRyYWNraW5nLWNvb2xkb3duKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqL1xuU2NhbGVJbkNvb2xkb3duPzogbnVtYmVyXG5QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIEEgY3VzdG9taXplZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0J3MgcmV0dXJuZWQgYnkgYSBjYWxsIHRvIFtMaXN0TWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldHJpY3MuaHRtbCkuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1ldHJpY3MgdG8gaW5jbHVkZSBpbiB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LCBhcyBhIG1ldHJpYyBkYXRhIHF1ZXJ5LiBUaGlzIGNhbiBpbmNsdWRlIGJvdGggcmF3IG1ldHJpYyBhbmQgbWV0cmljIG1hdGggZXhwcmVzc2lvbnMuXG4gKi9cbk1ldHJpY3M/OiBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeVtdXG4vKipcbiAqIFRoZSBzdGF0aXN0aWMgb2YgdGhlIG1ldHJpYy5cbiAqL1xuU3RhdGlzdGljPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaW1lbnNpb25zIG9mIHRoZSBtZXRyaWMuIFxuICogIENvbmRpdGlvbmFsOiBJZiB5b3UgcHVibGlzaGVkIHlvdXIgbWV0cmljIHdpdGggZGltZW5zaW9ucywgeW91IG11c3Qgc3BlY2lmeSB0aGUgc2FtZSBkaW1lbnNpb25zIGluIHlvdXIgc2NhbGluZyBwb2xpY3kuXG4gKi9cbkRpbWVuc2lvbnM/OiBNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgdW5pdCBvZiB0aGUgbWV0cmljLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSB1bml0cyB0aGF0IENsb3VkV2F0Y2ggc3VwcG9ydHMsIHNlZSB0aGUgW01ldHJpY0RhdHVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWNEYXR1bS5odG1sKSBkYXRhIHR5cGUgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuVW5pdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBBbHNvIGRlZmluZXMgd2hldGhlciB0aGlzIGNhbGwgaXMgcmV0dXJuaW5nIGRhdGEgZm9yIG9uZSBtZXRyaWMgb25seSwgb3Igd2hldGhlciBpdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uIG9uIHRoZSB2YWx1ZXMgb2YgcmV0dXJuZWQgbWV0cmljIHN0YXRpc3RpY3MgdG8gY3JlYXRlIGEgbmV3IHRpbWUgc2VyaWVzLiBBIHRpbWUgc2VyaWVzIGlzIGEgc2VyaWVzIG9mIGRhdGEgcG9pbnRzLCBlYWNoIG9mIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHRpbWVzdGFtcC5cbiAqICBZb3UgY2FuIGNhbGwgZm9yIGEgc2luZ2xlIG1ldHJpYyBvciBwZXJmb3JtIG1hdGggZXhwcmVzc2lvbnMgb24gbXVsdGlwbGUgbWV0cmljcy4gQW55IGV4cHJlc3Npb25zIHVzZWQgaW4gYSBtZXRyaWMgc3BlY2lmaWNhdGlvbiBtdXN0IGV2ZW50dWFsbHkgcmV0dXJuIGEgc2luZ2xlIHRpbWUgc2VyaWVzLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBleGFtcGxlcywgc2VlIFtDcmVhdGUgYSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgZm9yIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyB1c2luZyBtZXRyaWMgbWF0aF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctdGFyZ2V0LXRyYWNraW5nLW1ldHJpYy1tYXRoLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICogICBgYFRhcmdldFRyYWNraW5nTWV0cmljRGF0YVF1ZXJ5YGAgaXMgYSBwcm9wZXJ0eSBvZiB0aGUgW0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeSBDdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LWN1c3RvbWl6ZWRtZXRyaWNzcGVjaWZpY2F0aW9uLmh0bWwpIHByb3BlcnR5IHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnkge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXR1cm4gdGhlIHRpbWVzdGFtcHMgYW5kIHJhdyBkYXRhIHZhbHVlcyBvZiB0aGlzIG1ldHJpYy4gXG4gKiAgSWYgeW91IHVzZSBhbnkgbWF0aCBleHByZXNzaW9ucywgc3BlY2lmeSBgYHRydWVgYCBmb3IgdGhpcyB2YWx1ZSBmb3Igb25seSB0aGUgZmluYWwgbWF0aCBleHByZXNzaW9uIHRoYXQgdGhlIG1ldHJpYyBzcGVjaWZpY2F0aW9uIGlzIGJhc2VkIG9uLiBZb3UgbXVzdCBzcGVjaWZ5IGBgZmFsc2VgYCBmb3IgYGBSZXR1cm5EYXRhYGAgZm9yIGFsbCB0aGUgb3RoZXIgbWV0cmljcyBhbmQgZXhwcmVzc2lvbnMgdXNlZCBpbiB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKiAgSWYgeW91IGFyZSBvbmx5IHJldHJpZXZpbmcgbWV0cmljcyBhbmQgbm90IHBlcmZvcm1pbmcgYW55IG1hdGggZXhwcmVzc2lvbnMsIGRvIG5vdCBzcGVjaWZ5IGFueXRoaW5nIGZvciBgYFJldHVybkRhdGFgYC4gVGhpcyBzZXRzIGl0IHRvIGl0cyBkZWZhdWx0IChgYHRydWVgYCkuXG4gKi9cblJldHVybkRhdGE/OiBib29sZWFuXG4vKipcbiAqIFRoZSBtYXRoIGV4cHJlc3Npb24gdG8gcGVyZm9ybSBvbiB0aGUgcmV0dXJuZWQgZGF0YSwgaWYgdGhpcyBvYmplY3QgaXMgcGVyZm9ybWluZyBhIG1hdGggZXhwcmVzc2lvbi4gVGhpcyBleHByZXNzaW9uIGNhbiB1c2UgdGhlIGBgSWRgYCBvZiB0aGUgb3RoZXIgbWV0cmljcyB0byByZWZlciB0byB0aG9zZSBtZXRyaWNzLCBhbmQgY2FuIGFsc28gdXNlIHRoZSBgYElkYGAgb2Ygb3RoZXIgZXhwcmVzc2lvbnMgdG8gdXNlIHRoZSByZXN1bHQgb2YgdGhvc2UgZXhwcmVzc2lvbnMuIFxuICogIENvbmRpdGlvbmFsOiBXaXRoaW4gZWFjaCBgYFRhcmdldFRyYWNraW5nTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0LCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYEV4cHJlc3Npb25gYCBvciBgYE1ldHJpY1N0YXRgYCwgYnV0IG5vdCBib3RoLlxuICovXG5FeHByZXNzaW9uPzogc3RyaW5nXG4vKipcbiAqIEEgaHVtYW4tcmVhZGFibGUgbGFiZWwgZm9yIHRoaXMgbWV0cmljIG9yIGV4cHJlc3Npb24uIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaWYgdGhpcyBpcyBhIG1hdGggZXhwcmVzc2lvbiwgc28gdGhhdCB5b3Uga25vdyB3aGF0IHRoZSB2YWx1ZSByZXByZXNlbnRzLlxuICovXG5MYWJlbD86IHN0cmluZ1xuTWV0cmljU3RhdD86IFRhcmdldFRyYWNraW5nTWV0cmljU3RhdFxuLyoqXG4gKiBBIHNob3J0IG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBvYmplY3QncyByZXN1bHRzIGluIHRoZSByZXNwb25zZS4gVGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdHMgc3BlY2lmaWVkIGZvciBhIHNpbmdsZSBzY2FsaW5nIHBvbGljeS4gSWYgeW91IGFyZSBwZXJmb3JtaW5nIG1hdGggZXhwcmVzc2lvbnMgb24gdGhpcyBzZXQgb2YgZGF0YSwgdGhpcyBuYW1lIHJlcHJlc2VudHMgdGhhdCBkYXRhIGFuZCBjYW4gc2VydmUgYXMgYSB2YXJpYWJsZSBpbiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24uIFRoZSB2YWxpZCBjaGFyYWN0ZXJzIGFyZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxvd2VyY2FzZSBsZXR0ZXIuXG4gKi9cbklkPzogc3RyaW5nXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0LCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYEV4cHJlc3Npb25gYCBvciBgYE1ldHJpY1N0YXRgYCwgYnV0IG5vdCBib3RoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljU3RhdCB7XG4vKipcbiAqIFRoZSBzdGF0aXN0aWMgdG8gcmV0dXJuLiBJdCBjYW4gaW5jbHVkZSBhbnkgQ2xvdWRXYXRjaCBzdGF0aXN0aWMgb3IgZXh0ZW5kZWQgc3RhdGlzdGljLiBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcywgc2VlIHRoZSB0YWJsZSBpbiBbU3RhdGlzdGljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvY2xvdWR3YXRjaF9jb25jZXB0cy5odG1sI1N0YXRpc3RpYykgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBVc2VyIEd1aWRlKi5cbiAqICBUaGUgbW9zdCBjb21tb25seSB1c2VkIG1ldHJpYyBmb3Igc2NhbGluZyBpcyBgYEF2ZXJhZ2VgYC5cbiAqL1xuU3RhdD86IHN0cmluZ1xuTWV0cmljPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNcbi8qKlxuICogVGhlIHVuaXQgdG8gdXNlIGZvciB0aGUgcmV0dXJuZWQgZGF0YSBwb2ludHMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBDbG91ZFdhdGNoIG1ldHJpYyB0byByZXR1cm4sIGluY2x1ZGluZyB0aGUgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMuIFRvIGdldCB0aGUgZXhhY3QgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMsIGluc3BlY3QgdGhlIFtNZXRyaWNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpYy5odG1sKSBvYmplY3QgdGhhdCBpcyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBtZXRyaWMuIEZvciB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZGltZW5zaW9ucywgc2VlIHRoZSBBV1MgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgZnJvbSB0aGUgdGFibGUgaW4gW3NlcnZpY2VzIHRoYXQgcHVibGlzaCBDbG91ZFdhdGNoIG1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2F3cy1zZXJ2aWNlcy1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbCkgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBVc2VyIEd1aWRlKi4gXG4gKiAgQ29uZGl0aW9uYWw6IElmIHlvdSBwdWJsaXNoZWQgeW91ciBtZXRyaWMgd2l0aCBkaW1lbnNpb25zLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGRpbWVuc2lvbnMgaW4geW91ciBzY2FsaW5nIHBvbGljeS5cbiAqL1xuRGltZW5zaW9ucz86IFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uW11cbi8qKlxuICogVGhlIG5hbWVzcGFjZSBvZiB0aGUgbWV0cmljLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICovXG5OYW1lc3BhY2U/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBUYXJnZXRUcmFja2luZ01ldHJpY0RpbWVuc2lvbmBgIHNwZWNpZmllcyBhIG5hbWUvdmFsdWUgcGFpciB0aGF0IGlzIHBhcnQgb2YgdGhlIGlkZW50aXR5IG9mIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRoZSBgYERpbWVuc2lvbnNgYCBwcm9wZXJ0eSBvZiB0aGUgW0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeSBUYXJnZXRUcmFja2luZ01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LXRhcmdldHRyYWNraW5nbWV0cmljLmh0bWwpIHByb3BlcnR5IHR5cGUuIER1cGxpY2F0ZSBkaW1lbnNpb25zIGFyZSBub3QgYWxsb3dlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RpbWVuc2lvbiB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIGBgTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY0RpbWVuc2lvbiB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiBBIHByZWRlZmluZWQgbWV0cmljLiBZb3UgY2FuIHNwZWNpZnkgZWl0aGVyIGEgcHJlZGVmaW5lZCBtZXRyaWMgb3IgYSBjdXN0b21pemVkIG1ldHJpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSBtZXRyaWMgdHlwZS4gVGhlIGBgQUxCUmVxdWVzdENvdW50UGVyVGFyZ2V0YGAgbWV0cmljIHR5cGUgYXBwbGllcyBvbmx5IHRvIFNwb3QgZmxlZXQgcmVxdWVzdHMgYW5kIEVDUyBzZXJ2aWNlcy5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBJZGVudGlmaWVzIHRoZSByZXNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG1ldHJpYyB0eXBlLiBZb3UgY2FuJ3Qgc3BlY2lmeSBhIHJlc291cmNlIGxhYmVsIHVubGVzcyB0aGUgbWV0cmljIHR5cGUgaXMgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBhbmQgdGhlcmUgaXMgYSB0YXJnZXQgZ3JvdXAgYXR0YWNoZWQgdG8gdGhlIFNwb3QgRmxlZXQgb3IgRUNTIHNlcnZpY2UuXG4gKiAgWW91IGNyZWF0ZSB0aGUgcmVzb3VyY2UgbGFiZWwgYnkgYXBwZW5kaW5nIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSBsb2FkIGJhbGFuY2VyIEFSTiBhbmQgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIHRhcmdldCBncm91cCBBUk4gaW50byBhIHNpbmdsZSB2YWx1ZSwgc2VwYXJhdGVkIGJ5IGEgZm9yd2FyZCBzbGFzaCAoLykuIFRoZSBmb3JtYXQgb2YgdGhlIHJlc291cmNlIGxhYmVsIGlzOlxuICogICBgYGFwcC9teS1hbGIvNzc4ZDQxMjMxYjE0MWEwZi90YXJnZXRncm91cC9teS1hbGItdGFyZ2V0LWdyb3VwLzk0M2YwMTdmMTAwYmVjZmZgYC5cbiAqICBXaGVyZTpcbiAqICAgKyAgYXBwLzxsb2FkLWJhbGFuY2VyLW5hbWU+Lzxsb2FkLWJhbGFuY2VyLWlkPiBpcyB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgbG9hZCBiYWxhbmNlciBBUk5cbiAqICAgKyAgdGFyZ2V0Z3JvdXAvPHRhcmdldC1ncm91cC1uYW1lPi88dGFyZ2V0LWdyb3VwLWlkPiBpcyB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTi5cbiAqICAgXG4gKiAgVG8gZmluZCB0aGUgQVJOIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCB1c2UgdGhlIFtEZXNjcmliZUxvYWRCYWxhbmNlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUxvYWRCYWxhbmNlcnMuaHRtbCkgQVBJIG9wZXJhdGlvbi4gVG8gZmluZCB0aGUgQVJOIGZvciB0aGUgdGFyZ2V0IGdyb3VwLCB1c2UgdGhlIFtEZXNjcmliZVRhcmdldEdyb3Vwc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVGFyZ2V0R3JvdXBzLmh0bWwpIEFQSSBvcGVyYXRpb24uXG4gKi9cblJlc291cmNlTGFiZWw/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBzdGVwIHNjYWxpbmcgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBhZ2dyZWdhdGlvbiB0eXBlIGZvciB0aGUgQ2xvdWRXYXRjaCBtZXRyaWNzLiBWYWxpZCB2YWx1ZXMgYXJlIGBgTWluaW11bWBgLCBgYE1heGltdW1gYCwgYW5kIGBgQXZlcmFnZWBgLiBJZiB0aGUgYWdncmVnYXRpb24gdHlwZSBpcyBudWxsLCB0aGUgdmFsdWUgaXMgdHJlYXRlZCBhcyBgYEF2ZXJhZ2VgYC5cbiAqL1xuTWV0cmljQWdncmVnYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gc2Vjb25kcywgdG8gd2FpdCBmb3IgYSBwcmV2aW91cyBzY2FsaW5nIGFjdGl2aXR5IHRvIHRha2UgZWZmZWN0LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAzMDAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0Nvb2xkb3duIHBlcmlvZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9zdGVwLXNjYWxpbmctcG9saWN5LW92ZXJ2aWV3Lmh0bWwjc3RlcC1zY2FsaW5nLWNvb2xkb3duKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqL1xuQ29vbGRvd24/OiBudW1iZXJcbi8qKlxuICogQSBzZXQgb2YgYWRqdXN0bWVudHMgdGhhdCBlbmFibGUgeW91IHRvIHNjYWxlIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBhbGFybSBicmVhY2guXG4gKiAgQXQgbGVhc3Qgb25lIHN0ZXAgYWRqdXN0bWVudCBpcyByZXF1aXJlZCBpZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBzdGVwIHNjYWxpbmcgcG9saWN5IGNvbmZpZ3VyYXRpb24uXG4gKi9cblN0ZXBBZGp1c3RtZW50cz86IFN0ZXBBZGp1c3RtZW50W11cbi8qKlxuICogVGhlIG1pbmltdW0gdmFsdWUgdG8gc2NhbGUgYnkgd2hlbiB0aGUgYWRqdXN0bWVudCB0eXBlIGlzIGBgUGVyY2VudENoYW5nZUluQ2FwYWNpdHlgYC4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhhdCB5b3UgY3JlYXRlIGEgc3RlcCBzY2FsaW5nIHBvbGljeSB0byBzY2FsZSBvdXQgYW4gQW1hem9uIEVDUyBzZXJ2aWNlIGJ5IDI1IHBlcmNlbnQgYW5kIHlvdSBzcGVjaWZ5IGEgYGBNaW5BZGp1c3RtZW50TWFnbml0dWRlYGAgb2YgMi4gSWYgdGhlIHNlcnZpY2UgaGFzIDQgdGFza3MgYW5kIHRoZSBzY2FsaW5nIHBvbGljeSBpcyBwZXJmb3JtZWQsIDI1IHBlcmNlbnQgb2YgNCBpcyAxLiBIb3dldmVyLCBiZWNhdXNlIHlvdSBzcGVjaWZpZWQgYSBgYE1pbkFkanVzdG1lbnRNYWduaXR1ZGVgYCBvZiAyLCBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGVzIG91dCB0aGUgc2VydmljZSBieSAyIHRhc2tzLlxuICovXG5NaW5BZGp1c3RtZW50TWFnbml0dWRlPzogbnVtYmVyXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBgYFNjYWxpbmdBZGp1c3RtZW50YGAgdmFsdWUgaW4gdGhlIGBgU3RlcEFkanVzdG1lbnRgYCBwcm9wZXJ0eSBpcyBhbiBhYnNvbHV0ZSBudW1iZXIgb3IgYSBwZXJjZW50YWdlIG9mIHRoZSBjdXJyZW50IGNhcGFjaXR5LlxuICovXG5BZGp1c3RtZW50VHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFN0ZXBBZGp1c3RtZW50YGAgc3BlY2lmaWVzIGEgc3RlcCBhZGp1c3RtZW50IGZvciB0aGUgYGBTdGVwQWRqdXN0bWVudHNgYCBwcm9wZXJ0eSBvZiB0aGUgW0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeSBTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1zdGVwc2NhbGluZ3BvbGljeWNvbmZpZ3VyYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS4gXG4gKiAgRm9yIHRoZSBmb2xsb3dpbmcgZXhhbXBsZXMsIHN1cHBvc2UgdGhhdCB5b3UgaGF2ZSBhbiBhbGFybSB3aXRoIGEgYnJlYWNoIHRocmVzaG9sZCBvZiA1MDogXG4gKiAgICsgIFRvIHRyaWdnZXIgYSBzdGVwIGFkanVzdG1lbnQgd2hlbiB0aGUgbWV0cmljIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byA1MCBhbmQgbGVzcyB0aGFuIDYwLCBzcGVjaWZ5IGEgbG93ZXIgYm91bmQgb2YgMCBhbmQgYW4gdXBwZXIgYm91bmQgb2YgMTAuIFxuICogICArICBUbyB0cmlnZ2VyIGEgc3RlcCBhZGp1c3RtZW50IHdoZW4gdGhlIG1ldHJpYyBpcyBncmVhdGVyIHRoYW4gNDAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1MCwgc3BlY2lmeSBhIGxvd2VyIGJvdW5kIG9mIC0xMCBhbmQgYW4gdXBwZXIgYm91bmQgb2YgMC4gXG4gKiAgIFxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1N0ZXAgYWRqdXN0bWVudHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXN0ZXAtc2NhbGluZy1wb2xpY2llcy5odG1sI2FzLXNjYWxpbmctc3RlcHMpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICogIFlvdSBjYW4gZmluZCBhIHNhbXBsZSB0ZW1wbGF0ZSBzbmlwcGV0IGluIHRoZSBbRXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kuaHRtbCNhd3MtcmVzb3VyY2UtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LS1leGFtcGxlcykgc2VjdGlvbiBvZiB0aGUgYGBBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3lgYCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBBZGp1c3RtZW50IHtcbi8qKlxuICogVGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhbGFybSB0aHJlc2hvbGQgYW5kIHRoZSBDbG91ZFdhdGNoIG1ldHJpYy4gSWYgdGhlIG1ldHJpYyB2YWx1ZSBpcyBhYm92ZSB0aGUgYnJlYWNoIHRocmVzaG9sZCwgdGhlIHVwcGVyIGJvdW5kIGlzIGV4Y2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIHVwcGVyIGJvdW5kKS4gT3RoZXJ3aXNlLCBpdCBpcyBpbmNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSB1cHBlciBib3VuZCkuIEEgbnVsbCB2YWx1ZSBpbmRpY2F0ZXMgcG9zaXRpdmUgaW5maW5pdHkuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgdXBwZXIgb3IgbG93ZXIgYm91bmQuXG4gKi9cbk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZD86IG51bWJlclxuLyoqXG4gKiBUaGUgbG93ZXIgYm91bmQgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFsYXJtIHRocmVzaG9sZCBhbmQgdGhlIENsb3VkV2F0Y2ggbWV0cmljLiBJZiB0aGUgbWV0cmljIHZhbHVlIGlzIGFib3ZlIHRoZSBicmVhY2ggdGhyZXNob2xkLCB0aGUgbG93ZXIgYm91bmQgaXMgaW5jbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgbG93ZXIgYm91bmQpLiBPdGhlcndpc2UsIGl0IGlzIGV4Y2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIGxvd2VyIGJvdW5kKS4gQSBudWxsIHZhbHVlIGluZGljYXRlcyBuZWdhdGl2ZSBpbmZpbml0eS5cbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSB1cHBlciBvciBsb3dlciBib3VuZC5cbiAqL1xuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBhbW91bnQgYnkgd2hpY2ggdG8gc2NhbGUuIFRoZSBhZGp1c3RtZW50IGlzIGJhc2VkIG9uIHRoZSB2YWx1ZSB0aGF0IHlvdSBzcGVjaWZpZWQgaW4gdGhlIGBgQWRqdXN0bWVudFR5cGVgYCBwcm9wZXJ0eSAoZWl0aGVyIGFuIGFic29sdXRlIG51bWJlciBvciBhIHBlcmNlbnRhZ2UpLiBBIHBvc2l0aXZlIHZhbHVlIGFkZHMgdG8gdGhlIGN1cnJlbnQgY2FwYWNpdHkgYW5kIGEgbmVnYXRpdmUgbnVtYmVyIHN1YnRyYWN0cyBmcm9tIHRoZSBjdXJyZW50IGNhcGFjaXR5LlxuICovXG5TY2FsaW5nQWRqdXN0bWVudDogbnVtYmVyXG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBBbWF6b24gRU1SXG4gKiAgIGBgU3RlcFNjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIER5bmFtb0RCLCBBbWF6b24gQ29tcHJlaGVuZCwgTGFtYmRhLCBBbWF6b24gS2V5c3BhY2VzLCBBbWF6b24gTVNLLCBBbWF6b24gRWxhc3RpQ2FjaGUsIG9yIE5lcHR1bmUuXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgICBgYGVjczpzZXJ2aWNlOkRlc2lyZWRDb3VudGBgIC0gVGhlIHRhc2sgY291bnQgb2YgYW4gRUNTIHNlcnZpY2UuXG4gKiAgICsgICBgYGVsYXN0aWNtYXByZWR1Y2U6aW5zdGFuY2Vncm91cDpJbnN0YW5jZUNvdW50YGAgLSBUaGUgaW5zdGFuY2UgY291bnQgb2YgYW4gRU1SIEluc3RhbmNlIEdyb3VwLlxuICogICArICAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgIGBgYXBwc3RyZWFtOmZsZWV0OkRlc2lyZWRDYXBhY2l0eWBgIC0gVGhlIGNhcGFjaXR5IG9mIGFuIEFwcFN0cmVhbSAyLjAgZmxlZXQuXG4gKiAgICsgICBgYGR5bmFtb2RiOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiB0YWJsZS5cbiAqICAgKyAgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgICBgYGR5bmFtb2RiOmluZGV4OlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGBkeW5hbW9kYjppbmRleDpXcml0ZUNhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgIGBgc2FnZW1ha2VyOnZhcmlhbnQ6RGVzaXJlZEluc3RhbmNlQ291bnRgYCAtIFRoZSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyBmb3IgYSBTYWdlTWFrZXIgbW9kZWwgZW5kcG9pbnQgdmFyaWFudC5cbiAqICAgKyAgIGBgY3VzdG9tLXJlc291cmNlOlJlc291cmNlVHlwZTpQcm9wZXJ0eWBgIC0gVGhlIHNjYWxhYmxlIGRpbWVuc2lvbiBmb3IgYSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZWQgYnkgeW91ciBvd24gYXBwbGljYXRpb24gb3Igc2VydmljZS5cbiAqICAgKyAgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICAgYGBjb21wcmVoZW5kOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGVudGl0eSByZWNvZ25pemVyIGVuZHBvaW50LlxuICogICArICAgYGBsYW1iZGE6ZnVuY3Rpb246UHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOldyaXRlQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHdyaXRlIGNhcGFjaXR5IGZvciBhbiBBbWF6b24gS2V5c3BhY2VzIHRhYmxlLlxuICogICArICAgYGBrYWZrYTpicm9rZXItc3RvcmFnZTpWb2x1bWVTaXplYGAgLSBUaGUgcHJvdmlzaW9uZWQgdm9sdW1lIHNpemUgKGluIEdpQikgZm9yIGJyb2tlcnMgaW4gYW4gQW1hem9uIE1TSyBjbHVzdGVyLlxuICogICArICAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYGVsYXN0aWNhY2hlOnJlcGxpY2F0aW9uLWdyb3VwOlJlcGxpY2FzYGAgLSBUaGUgbnVtYmVyIG9mIHJlcGxpY2FzIHBlciBub2RlIGdyb3VwIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYG5lcHR1bmU6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgcmVhZCByZXBsaWNhcyBpbiBhbiBBbWF6b24gTmVwdHVuZSBEQiBjbHVzdGVyLlxuICogICArICAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICAgYGBzYWdlbWFrZXI6aW5mZXJlbmNlLWNvbXBvbmVudDpEZXNpcmVkQ29weUNvdW50YGAgLSBUaGUgbnVtYmVyIG9mIGNvcGllcyBhY3Jvc3MgYW4gZW5kcG9pbnQgZm9yIGEgU2FnZU1ha2VyIGluZmVyZW5jZSBjb21wb25lbnQuXG4gKiAgICsgICBgYHdvcmtzcGFjZXM6d29ya3NwYWNlc3Bvb2w6RGVzaXJlZFVzZXJTZXNzaW9uc2BgIC0gVGhlIG51bWJlciBvZiB1c2VyIHNlc3Npb25zIGZvciB0aGUgV29ya1NwYWNlcyBpbiB0aGUgcG9vbC5cbiAqL1xuU2NhbGFibGVEaW1lbnNpb24/OiBzdHJpbmdcblRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG5Bcm4/OiBzdHJpbmdcblN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxuUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIEEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgcHJldmlvdXMgc2NhbGUtb3V0IGFjdGl2aXR5IHRvIHRha2UgZWZmZWN0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZm9yIGRlZmF1bHQgdmFsdWVzLCBzZWUgW0RlZmluZSBjb29sZG93biBwZXJpb2RzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeS1vdmVydmlldy5odG1sI3RhcmdldC10cmFja2luZy1jb29sZG93bikgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKi9cblNjYWxlT3V0Q29vbGRvd24/OiBudW1iZXJcbi8qKlxuICogVGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIG1ldHJpYy4gQWx0aG91Z2ggdGhpcyBwcm9wZXJ0eSBhY2NlcHRzIG51bWJlcnMgb2YgdHlwZSBEb3VibGUsIGl0IHdvbid0IGFjY2VwdCB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIHRvbyBzbWFsbCBvciB0b28gbGFyZ2UuIFZhbHVlcyBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiAtMl4zNjAgdG8gMl4zNjAuIFRoZSB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgbnVtYmVyIGJhc2VkIG9uIHRoZSBjaG9pY2Ugb2YgbWV0cmljLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1ldHJpYyBpcyBDUFUgdXRpbGl6YXRpb24sIHRoZW4gdGhlIHRhcmdldCB2YWx1ZSBpcyBhIHBlcmNlbnQgdmFsdWUgdGhhdCByZXByZXNlbnRzIGhvdyBtdWNoIG9mIHRoZSBDUFUgY2FuIGJlIHVzZWQgYmVmb3JlIHNjYWxpbmcgb3V0LlxuICovXG5UYXJnZXRWYWx1ZTogbnVtYmVyXG5DdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbj86IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNjYWxlIGluIGJ5IHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgaXMgZGlzYWJsZWQuIElmIHRoZSB2YWx1ZSBpcyBgYHRydWVgYCwgc2NhbGUgaW4gaXMgZGlzYWJsZWQgYW5kIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgd29uJ3QgcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gT3RoZXJ3aXNlLCBzY2FsZSBpbiBpcyBlbmFibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGNhbiByZW1vdmUgY2FwYWNpdHkgZnJvbSB0aGUgc2NhbGFibGUgdGFyZ2V0LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYGZhbHNlYGAuXG4gKi9cbkRpc2FibGVTY2FsZUluPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIGFmdGVyIGEgc2NhbGUtaW4gYWN0aXZpdHkgY29tcGxldGVzIGJlZm9yZSBhbm90aGVyIHNjYWxlLWluIGFjdGl2aXR5IGNhbiBzdGFydC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZUluQ29vbGRvd24/OiBudW1iZXJcblByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb25cbn1cbi8qKlxuICogQSBjdXN0b21pemVkIG1ldHJpYy4gWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhIHByZWRlZmluZWQgbWV0cmljIG9yIGEgY3VzdG9taXplZCBtZXRyaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWV0cmljLiBUbyBnZXQgdGhlIGV4YWN0IG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLCBpbnNwZWN0IHRoZSBbTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWMuaHRtbCkgb2JqZWN0IHRoYXQncyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWV0cmljcyB0byBpbmNsdWRlIGluIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3ksIGFzIGEgbWV0cmljIGRhdGEgcXVlcnkuIFRoaXMgY2FuIGluY2x1ZGUgYm90aCByYXcgbWV0cmljIGFuZCBtZXRyaWMgbWF0aCBleHByZXNzaW9ucy5cbiAqL1xuTWV0cmljcz86IFRhcmdldFRyYWNraW5nTWV0cmljRGF0YVF1ZXJ5W11cbi8qKlxuICogVGhlIHN0YXRpc3RpYyBvZiB0aGUgbWV0cmljLlxuICovXG5TdGF0aXN0aWM/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRpbWVuc2lvbnMgb2YgdGhlIG1ldHJpYy4gXG4gKiAgQ29uZGl0aW9uYWw6IElmIHlvdSBwdWJsaXNoZWQgeW91ciBtZXRyaWMgd2l0aCBkaW1lbnNpb25zLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGRpbWVuc2lvbnMgaW4geW91ciBzY2FsaW5nIHBvbGljeS5cbiAqL1xuRGltZW5zaW9ucz86IE1ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSB1bml0IG9mIHRoZSBtZXRyaWMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uIEFsc28gZGVmaW5lcyB3aGV0aGVyIHRoaXMgY2FsbCBpcyByZXR1cm5pbmcgZGF0YSBmb3Igb25lIG1ldHJpYyBvbmx5LCBvciB3aGV0aGVyIGl0IGlzIHBlcmZvcm1pbmcgYSBtYXRoIGV4cHJlc3Npb24gb24gdGhlIHZhbHVlcyBvZiByZXR1cm5lZCBtZXRyaWMgc3RhdGlzdGljcyB0byBjcmVhdGUgYSBuZXcgdGltZSBzZXJpZXMuIEEgdGltZSBzZXJpZXMgaXMgYSBzZXJpZXMgb2YgZGF0YSBwb2ludHMsIGVhY2ggb2Ygd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIGEgdGltZXN0YW1wLlxuICogIFlvdSBjYW4gY2FsbCBmb3IgYSBzaW5nbGUgbWV0cmljIG9yIHBlcmZvcm0gbWF0aCBleHByZXNzaW9ucyBvbiBtdWx0aXBsZSBtZXRyaWNzLiBBbnkgZXhwcmVzc2lvbnMgdXNlZCBpbiBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uIG11c3QgZXZlbnR1YWxseSByZXR1cm4gYSBzaW5nbGUgdGltZSBzZXJpZXMuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzLCBzZWUgW0NyZWF0ZSBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBmb3IgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzaW5nIG1ldHJpYyBtYXRoXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy10YXJnZXQtdHJhY2tpbmctbWV0cmljLW1hdGguaHRtbCkgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0cyBzcGVjaWZpZWQgZm9yIGEgc2luZ2xlIHNjYWxpbmcgcG9saWN5LiBJZiB5b3UgYXJlIHBlcmZvcm1pbmcgbWF0aCBleHByZXNzaW9ucyBvbiB0aGlzIHNldCBvZiBkYXRhLCB0aGlzIG5hbWUgcmVwcmVzZW50cyB0aGF0IGRhdGEgYW5kIGNhbiBzZXJ2ZSBhcyBhIHZhcmlhYmxlIGluIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gVGhlIHZhbGlkIGNoYXJhY3RlcnMgYXJlIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbG93ZXJjYXNlIGxldHRlci5cbiAqL1xuSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi5cbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljIGZvciBzY2FsaW5nIGlzIGBgQXZlcmFnZWBgLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBUYXJnZXRUcmFja2luZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdW5pdHMgdGhhdCBDbG91ZFdhdGNoIHN1cHBvcnRzLCBzZWUgdGhlIFtNZXRyaWNEYXR1bV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljRGF0dW0uaHRtbCkgZGF0YSB0eXBlIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggQVBJIFJlZmVyZW5jZSouXG4gKi9cblVuaXQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIHRvIHJldHVybiwgaW5jbHVkaW5nIHRoZSBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byBbTGlzdE1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRyaWNzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpYy4gRm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkaW1lbnNpb25zLCBzZWUgdGhlIEFXUyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBmcm9tIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBDb25kaXRpb25hbDogSWYgeW91IHB1Ymxpc2hlZCB5b3VyIG1ldHJpYyB3aXRoIGRpbWVuc2lvbnMsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgZGltZW5zaW9ucyBpbiB5b3VyIHNjYWxpbmcgcG9saWN5LlxuICovXG5EaW1lbnNpb25zPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHRhYmxlIGluIFtzZXJ2aWNlcyB0aGF0IHB1Ymxpc2ggQ2xvdWRXYXRjaCBtZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9hd3Mtc2VydmljZXMtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWwpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFRhcmdldFRyYWNraW5nTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktdGFyZ2V0dHJhY2tpbmdtZXRyaWMuaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBNZXRyaWNEaW1lbnNpb25gYCBzcGVjaWZpZXMgYSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eSBvZiBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0aGUgYGBEaW1lbnNpb25zYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1jdXN0b21pemVkbWV0cmljc3BlY2lmaWNhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBEdXBsaWNhdGUgZGltZW5zaW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRpbWVuc2lvbi5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcHJlZGVmaW5lZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLiBUaGUgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBtZXRyaWMgdHlwZSBhcHBsaWVzIG9ubHkgdG8gU3BvdCBmbGVldCByZXF1ZXN0cyBhbmQgRUNTIHNlcnZpY2VzLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXMgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWV0cmljIHR5cGUuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcmVzb3VyY2UgbGFiZWwgdW5sZXNzIHRoZSBtZXRyaWMgdHlwZSBpcyBgYEFMQlJlcXVlc3RDb3VudFBlclRhcmdldGBgIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBncm91cCBhdHRhY2hlZCB0byB0aGUgU3BvdCBGbGVldCBvciBFQ1Mgc2VydmljZS5cbiAqICBZb3UgY3JlYXRlIHRoZSByZXNvdXJjZSBsYWJlbCBieSBhcHBlbmRpbmcgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOIGFuZCB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTiBpbnRvIGEgc2luZ2xlIHZhbHVlLCBzZXBhcmF0ZWQgYnkgYSBmb3J3YXJkIHNsYXNoICgvKS4gVGhlIGZvcm1hdCBvZiB0aGUgcmVzb3VyY2UgbGFiZWwgaXM6XG4gKiAgIGBgYXBwL215LWFsYi83NzhkNDEyMzFiMTQxYTBmL3RhcmdldGdyb3VwL215LWFsYi10YXJnZXQtZ3JvdXAvOTQzZjAxN2YxMDBiZWNmZmBgLlxuICogIFdoZXJlOlxuICogICArICBhcHAvPGxvYWQtYmFsYW5jZXItbmFtZT4vPGxvYWQtYmFsYW5jZXItaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSBsb2FkIGJhbGFuY2VyIEFSTlxuICogICArICB0YXJnZXRncm91cC88dGFyZ2V0LWdyb3VwLW5hbWU+Lzx0YXJnZXQtZ3JvdXAtaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSB0YXJnZXQgZ3JvdXAgQVJOLlxuICogICBcbiAqICBUbyBmaW5kIHRoZSBBUk4gZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIsIHVzZSB0aGUgW0Rlc2NyaWJlTG9hZEJhbGFuY2Vyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTG9hZEJhbGFuY2Vycy5odG1sKSBBUEkgb3BlcmF0aW9uLiBUbyBmaW5kIHRoZSBBUk4gZm9yIHRoZSB0YXJnZXQgZ3JvdXAsIHVzZSB0aGUgW0Rlc2NyaWJlVGFyZ2V0R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVUYXJnZXRHcm91cHMuaHRtbCkgQVBJIG9wZXJhdGlvbi5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBBIHN0ZXAgc2NhbGluZyBwb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFnZ3JlZ2F0aW9uIHR5cGUgZm9yIHRoZSBDbG91ZFdhdGNoIG1ldHJpY3MuIFZhbGlkIHZhbHVlcyBhcmUgYGBNaW5pbXVtYGAsIGBgTWF4aW11bWBgLCBhbmQgYGBBdmVyYWdlYGAuIElmIHRoZSBhZ2dyZWdhdGlvbiB0eXBlIGlzIG51bGwsIHRoZSB2YWx1ZSBpcyB0cmVhdGVkIGFzIGBgQXZlcmFnZWBgLlxuICovXG5NZXRyaWNBZ2dyZWdhdGlvblR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxpbmcgYWN0aXZpdHkgdG8gdGFrZSBlZmZlY3QuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDMwMC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29vbGRvd24gcGVyaW9kXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3N0ZXAtc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCNzdGVwLXNjYWxpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5Db29sZG93bj86IG51bWJlclxuLyoqXG4gKiBBIHNldCBvZiBhZGp1c3RtZW50cyB0aGF0IGVuYWJsZSB5b3UgdG8gc2NhbGUgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGFsYXJtIGJyZWFjaC5cbiAqICBBdCBsZWFzdCBvbmUgc3RlcCBhZGp1c3RtZW50IGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgYWRkaW5nIGEgbmV3IHN0ZXAgc2NhbGluZyBwb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqL1xuU3RlcEFkanVzdG1lbnRzPzogU3RlcEFkanVzdG1lbnRbXVxuLyoqXG4gKiBUaGUgbWluaW11bSB2YWx1ZSB0byBzY2FsZSBieSB3aGVuIHRoZSBhZGp1c3RtZW50IHR5cGUgaXMgYGBQZXJjZW50Q2hhbmdlSW5DYXBhY2l0eWBgLiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IHlvdSBjcmVhdGUgYSBzdGVwIHNjYWxpbmcgcG9saWN5IHRvIHNjYWxlIG91dCBhbiBBbWF6b24gRUNTIHNlcnZpY2UgYnkgMjUgcGVyY2VudCBhbmQgeW91IHNwZWNpZnkgYSBgYE1pbkFkanVzdG1lbnRNYWduaXR1ZGVgYCBvZiAyLiBJZiB0aGUgc2VydmljZSBoYXMgNCB0YXNrcyBhbmQgdGhlIHNjYWxpbmcgcG9saWN5IGlzIHBlcmZvcm1lZCwgMjUgcGVyY2VudCBvZiA0IGlzIDEuIEhvd2V2ZXIsIGJlY2F1c2UgeW91IHNwZWNpZmllZCBhIGBgTWluQWRqdXN0bWVudE1hZ25pdHVkZWBgIG9mIDIsIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBzY2FsZXMgb3V0IHRoZSBzZXJ2aWNlIGJ5IDIgdGFza3MuXG4gKi9cbk1pbkFkanVzdG1lbnRNYWduaXR1ZGU/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGBgU2NhbGluZ0FkanVzdG1lbnRgYCB2YWx1ZSBpbiB0aGUgYGBTdGVwQWRqdXN0bWVudGBgIHByb3BlcnR5IGlzIGFuIGFic29sdXRlIG51bWJlciBvciBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cbkFkanVzdG1lbnRUeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIGBgU3RlcEFkanVzdG1lbnRgYCBzcGVjaWZpZXMgYSBzdGVwIGFkanVzdG1lbnQgZm9yIHRoZSBgYFN0ZXBBZGp1c3RtZW50c2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LXN0ZXBzY2FsaW5ncG9saWN5Y29uZmlndXJhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBcbiAqICBGb3IgdGhlIGZvbGxvd2luZyBleGFtcGxlcywgc3VwcG9zZSB0aGF0IHlvdSBoYXZlIGFuIGFsYXJtIHdpdGggYSBicmVhY2ggdGhyZXNob2xkIG9mIDUwOiBcbiAqICAgKyAgVG8gdHJpZ2dlciBhIHN0ZXAgYWRqdXN0bWVudCB3aGVuIHRoZSBtZXRyaWMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDUwIGFuZCBsZXNzIHRoYW4gNjAsIHNwZWNpZnkgYSBsb3dlciBib3VuZCBvZiAwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAxMC4gXG4gKiAgICsgIFRvIHRyaWdnZXIgYSBzdGVwIGFkanVzdG1lbnQgd2hlbiB0aGUgbWV0cmljIGlzIGdyZWF0ZXIgdGhhbiA0MCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUwLCBzcGVjaWZ5IGEgbG93ZXIgYm91bmQgb2YgLTEwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAwLiBcbiAqICAgXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3RlcCBhZGp1c3RtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwjYXMtc2NhbGluZy1zdGVwcykgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbiBmaW5kIGEgc2FtcGxlIHRlbXBsYXRlIHNuaXBwZXQgaW4gdGhlIFtFeGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5odG1sI2F3cy1yZXNvdXJjZS1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktLWV4YW1wbGVzKSBzZWN0aW9uIG9mIHRoZSBgYEFXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeWBgIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEFkanVzdG1lbnQge1xuLyoqXG4gKiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFsYXJtIHRocmVzaG9sZCBhbmQgdGhlIENsb3VkV2F0Y2ggbWV0cmljLiBJZiB0aGUgbWV0cmljIHZhbHVlIGlzIGFib3ZlIHRoZSBicmVhY2ggdGhyZXNob2xkLCB0aGUgdXBwZXIgYm91bmQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgbGVzcyB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgdXBwZXIgYm91bmQpLiBPdGhlcndpc2UsIGl0IGlzIGluY2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIHVwcGVyIGJvdW5kKS4gQSBudWxsIHZhbHVlIGluZGljYXRlcyBwb3NpdGl2ZSBpbmZpbml0eS5cbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSB1cHBlciBvciBsb3dlciBib3VuZC5cbiAqL1xuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBsb3dlciBib3VuZCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWxhcm0gdGhyZXNob2xkIGFuZCB0aGUgQ2xvdWRXYXRjaCBtZXRyaWMuIElmIHRoZSBtZXRyaWMgdmFsdWUgaXMgYWJvdmUgdGhlIGJyZWFjaCB0aHJlc2hvbGQsIHRoZSBsb3dlciBib3VuZCBpcyBpbmNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSBsb3dlciBib3VuZCkuIE90aGVyd2lzZSwgaXQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgbG93ZXIgYm91bmQpLiBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIG5lZ2F0aXZlIGluZmluaXR5LlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHVwcGVyIG9yIGxvd2VyIGJvdW5kLlxuICovXG5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGFtb3VudCBieSB3aGljaCB0byBzY2FsZS4gVGhlIGFkanVzdG1lbnQgaXMgYmFzZWQgb24gdGhlIHZhbHVlIHRoYXQgeW91IHNwZWNpZmllZCBpbiB0aGUgYGBBZGp1c3RtZW50VHlwZWBgIHByb3BlcnR5IChlaXRoZXIgYW4gYWJzb2x1dGUgbnVtYmVyIG9yIGEgcGVyY2VudGFnZSkuIEEgcG9zaXRpdmUgdmFsdWUgYWRkcyB0byB0aGUgY3VycmVudCBjYXBhY2l0eSBhbmQgYSBuZWdhdGl2ZSBudW1iZXIgc3VidHJhY3RzIGZyb20gdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cblNjYWxpbmdBZGp1c3RtZW50OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbk1heENhcGFjaXR5QnJlYWNoQmVoYXZpb3I/OiBzdHJpbmdcbk1heENhcGFjaXR5QnVmZmVyPzogbnVtYmVyXG5Nb2RlPzogc3RyaW5nXG5NZXRyaWNTcGVjaWZpY2F0aW9uczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uW11cblNjaGVkdWxpbmdCdWZmZXJUaW1lPzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nTWV0cmljU3BlY2lmaWNhdGlvbiB7XG5DdXN0b21pemVkTG9hZE1ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRMb2FkTWV0cmljXG5QcmVkZWZpbmVkTG9hZE1ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRMb2FkTWV0cmljXG5UYXJnZXRWYWx1ZTogbnVtYmVyXG5QcmVkZWZpbmVkU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRTY2FsaW5nTWV0cmljXG5DdXN0b21pemVkQ2FwYWNpdHlNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkQ2FwYWNpdHlNZXRyaWNcbkN1c3RvbWl6ZWRTY2FsaW5nTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZFNjYWxpbmdNZXRyaWNcblByZWRlZmluZWRNZXRyaWNQYWlyU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZE1ldHJpY1BhaXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkTG9hZE1ldHJpYyB7XG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLlxuICovXG5SZXR1cm5EYXRhPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF0aCBleHByZXNzaW9uIHRvIHBlcmZvcm0gb24gdGhlIHJldHVybmVkIGRhdGEsIGlmIHRoaXMgb2JqZWN0IGlzIHBlcmZvcm1pbmcgYSBtYXRoIGV4cHJlc3Npb24uXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLlxuICovXG5JZD86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nTWV0cmljU3RhdCB7XG4vKipcbiAqIFRoZSBzdGF0aXN0aWMgdG8gcmV0dXJuLiBJdCBjYW4gaW5jbHVkZSBhbnkgQ2xvdWRXYXRjaCBzdGF0aXN0aWMgb3IgZXh0ZW5kZWQgc3RhdGlzdGljLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy5cbiAqL1xuVW5pdD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgQ2xvdWRXYXRjaCBtZXRyaWMgdG8gcmV0dXJuLCBpbmNsdWRpbmcgdGhlIG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLiBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBtZXRyaWMuXG4gKi9cbkRpbWVuc2lvbnM/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTG9hZE1ldHJpYyB7XG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWMge1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpYyB7XG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRTY2FsaW5nTWV0cmljIHtcbk1ldHJpY0RhdGFRdWVyaWVzOiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeVtdXG59XG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZE1ldHJpY1BhaXIge1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuIl19
|
|
@@ -52,6 +52,10 @@ export interface _AWS_APPLICATIONINSIGHTS_APPLICATION {
|
|
|
52
52
|
* The SNS topic provided to Application Insights that is associated to the created opsItem.
|
|
53
53
|
*/
|
|
54
54
|
OpsItemSNSTopicArn?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Application Insights sends notifications to this SNS topic whenever there is a problem update in the associated application.
|
|
57
|
+
*/
|
|
58
|
+
SNSNotificationArn?: string;
|
|
55
59
|
/**
|
|
56
60
|
* The tags of Application Insights application.
|
|
57
61
|
*
|