@horietakehiro/aws-cdk-utul 0.41.51 → 0.41.52

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.
@@ -0,0 +1,135 @@
1
+ /**
2
+ * The scaling mode for the capacity provider.
3
+ */
4
+ export type CapacityProviderScalingMode = ("Auto" | "Manual");
5
+ /**
6
+ * The predefined metric for target tracking.
7
+ */
8
+ export type CapacityProviderPredefinedMetricType = "LambdaCapacityProviderAverageCPUUtilization";
9
+ /**
10
+ * Specifications for the types of EC2 instances that the capacity provider can use.
11
+ */
12
+ export type Architecture = ("x86_64" | "arm64");
13
+ /**
14
+ * Resource Type definition for AWS::Lambda::CapacityProvider
15
+ */
16
+ export interface _AWS_LAMBDA_CAPACITYPROVIDER {
17
+ /**
18
+ * The Amazon Resource Name (ARN) of the capacity provider. This is a read-only property that is automatically generated when the capacity provider is created.
19
+ */
20
+ Arn?: string;
21
+ /**
22
+ * The name of the capacity provider. The name must be unique within your AWS account and region. If you don't specify a name, CloudFormation generates one.
23
+ */
24
+ CapacityProviderName?: string;
25
+ CapacityProviderScalingConfig?: CapacityProviderScalingConfig;
26
+ InstanceRequirements?: InstanceRequirements;
27
+ /**
28
+ * The ARN of the AWS Key Management Service (KMS) key used by the capacity provider.
29
+ */
30
+ KmsKeyArn?: string;
31
+ PermissionsConfig: CapacityProviderPermissionsConfig;
32
+ /**
33
+ * The current state of the capacity provider.
34
+ */
35
+ State?: ("Pending" | "Active" | "Failed" | "Deleting");
36
+ /**
37
+ * A list of tags to apply to the capacity provider.
38
+ */
39
+ Tags?: Tag[];
40
+ VpcConfig: CapacityProviderVpcConfig;
41
+ }
42
+ /**
43
+ * The scaling configuration for the capacity provider.
44
+ */
45
+ export interface CapacityProviderScalingConfig {
46
+ /**
47
+ * The maximum number of EC2 instances that the capacity provider can scale up to.
48
+ */
49
+ MaxVCpuCount?: number;
50
+ ScalingMode?: CapacityProviderScalingMode;
51
+ /**
52
+ * A list of target tracking scaling policies for the capacity provider.
53
+ *
54
+ * @minItems 1
55
+ * @maxItems 10
56
+ */
57
+ ScalingPolicies?: TargetTrackingScalingPolicy[];
58
+ }
59
+ /**
60
+ * A target tracking scaling policy for the capacity provider.
61
+ */
62
+ export interface TargetTrackingScalingPolicy {
63
+ PredefinedMetricType: CapacityProviderPredefinedMetricType;
64
+ /**
65
+ * The target value for the metric as a percentage (for example, 70.0 for 70%).
66
+ */
67
+ TargetValue: number;
68
+ }
69
+ /**
70
+ * Specifications for the types of EC2 instances that the capacity provider can use.
71
+ */
72
+ export interface InstanceRequirements {
73
+ /**
74
+ * The instruction set architecture for EC2 instances. Specify either x86_64 or arm64.
75
+ *
76
+ * @minItems 1
77
+ * @maxItems 1
78
+ */
79
+ Architectures?: Architecture[];
80
+ /**
81
+ * A list of instance types that the capacity provider can use. Supports wildcards (for example, m5.*).
82
+ *
83
+ * @minItems 0
84
+ * @maxItems 400
85
+ */
86
+ AllowedInstanceTypes?: string[];
87
+ /**
88
+ * A list of instance types that the capacity provider should not use. Takes precedence over AllowedInstanceTypes.
89
+ *
90
+ * @minItems 0
91
+ * @maxItems 400
92
+ */
93
+ ExcludedInstanceTypes?: string[];
94
+ }
95
+ /**
96
+ * IAM permissions configuration for the capacity provider.
97
+ */
98
+ export interface CapacityProviderPermissionsConfig {
99
+ /**
100
+ * The ARN of the IAM role that Lambda assumes to manage the capacity provider.
101
+ */
102
+ CapacityProviderOperatorRoleArn: string;
103
+ }
104
+ /**
105
+ * A key-value pair that provides metadata for the capacity provider.
106
+ */
107
+ export interface Tag {
108
+ /**
109
+ * The key name of the tag.
110
+ */
111
+ Key: string;
112
+ /**
113
+ * The value for the tag.
114
+ */
115
+ Value?: string;
116
+ }
117
+ /**
118
+ * VPC configuration for the capacity provider.
119
+ */
120
+ export interface CapacityProviderVpcConfig {
121
+ /**
122
+ * A list of subnet IDs where the capacity provider can launch EC2 instances.
123
+ *
124
+ * @minItems 1
125
+ * @maxItems 16
126
+ */
127
+ SubnetIds: string[];
128
+ /**
129
+ * A list of security group IDs to associate with EC2 instances.
130
+ *
131
+ * @minItems 0
132
+ * @maxItems 5
133
+ */
134
+ SecurityGroupIds: string[];
135
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1jYXBhY2l0eXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS1jYXBhY2l0eXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBzY2FsaW5nIG1vZGUgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdNb2RlID0gKFwiQXV0b1wiIHwgXCJNYW51YWxcIilcbi8qKlxuICogVGhlIHByZWRlZmluZWQgbWV0cmljIGZvciB0YXJnZXQgdHJhY2tpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIENhcGFjaXR5UHJvdmlkZXJQcmVkZWZpbmVkTWV0cmljVHlwZSA9IFwiTGFtYmRhQ2FwYWNpdHlQcm92aWRlckF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiXG4vKipcbiAqIFNwZWNpZmljYXRpb25zIGZvciB0aGUgdHlwZXMgb2YgRUMyIGluc3RhbmNlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBcmNoaXRlY3R1cmUgPSAoXCJ4ODZfNjRcIiB8IFwiYXJtNjRcIilcblxuLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6TGFtYmRhOjpDYXBhY2l0eVByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19MQU1CREFfQ0FQQUNJVFlQUk9WSURFUiB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuIFRoaXMgaXMgYSByZWFkLW9ubHkgcHJvcGVydHkgdGhhdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB3aGVuIHRoZSBjYXBhY2l0eSBwcm92aWRlciBpcyBjcmVhdGVkLlxuICovXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNhcGFjaXR5IHByb3ZpZGVyLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4geW91ciBBV1MgYWNjb3VudCBhbmQgcmVnaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBvbmUuXG4gKi9cbkNhcGFjaXR5UHJvdmlkZXJOYW1lPzogc3RyaW5nXG5DYXBhY2l0eVByb3ZpZGVyU2NhbGluZ0NvbmZpZz86IENhcGFjaXR5UHJvdmlkZXJTY2FsaW5nQ29uZmlnXG5JbnN0YW5jZVJlcXVpcmVtZW50cz86IEluc3RhbmNlUmVxdWlyZW1lbnRzXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIGtleSB1c2VkIGJ5IHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuS21zS2V5QXJuPzogc3RyaW5nXG5QZXJtaXNzaW9uc0NvbmZpZzogQ2FwYWNpdHlQcm92aWRlclBlcm1pc3Npb25zQ29uZmlnXG4vKipcbiAqIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuU3RhdGU/OiAoXCJQZW5kaW5nXCIgfCBcIkFjdGl2ZVwiIHwgXCJGYWlsZWRcIiB8IFwiRGVsZXRpbmdcIilcbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5UYWdzPzogVGFnW11cblZwY0NvbmZpZzogQ2FwYWNpdHlQcm92aWRlclZwY0NvbmZpZ1xufVxuLyoqXG4gKiBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIGZvciB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlQcm92aWRlclNjYWxpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gc2NhbGUgdXAgdG8uXG4gKi9cbk1heFZDcHVDb3VudD86IG51bWJlclxuU2NhbGluZ01vZGU/OiBDYXBhY2l0eVByb3ZpZGVyU2NhbGluZ01vZGVcbi8qKlxuICogQSBsaXN0IG9mIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljaWVzIGZvciB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuU2NhbGluZ1BvbGljaWVzPzogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5W11cbn1cbi8qKlxuICogQSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kge1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IENhcGFjaXR5UHJvdmlkZXJQcmVkZWZpbmVkTWV0cmljVHlwZVxuLyoqXG4gKiBUaGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgbWV0cmljIGFzIGEgcGVyY2VudGFnZSAoZm9yIGV4YW1wbGUsIDcwLjAgZm9yIDcwJSkuXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWNhdGlvbnMgZm9yIHRoZSB0eXBlcyBvZiBFQzIgaW5zdGFuY2VzIHRoYXQgdGhlIGNhcGFjaXR5IHByb3ZpZGVyIGNhbiB1c2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VSZXF1aXJlbWVudHMge1xuLyoqXG4gKiBUaGUgaW5zdHJ1Y3Rpb24gc2V0IGFyY2hpdGVjdHVyZSBmb3IgRUMyIGluc3RhbmNlcy4gU3BlY2lmeSBlaXRoZXIgeDg2XzY0IG9yIGFybTY0LlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuQXJjaGl0ZWN0dXJlcz86IEFyY2hpdGVjdHVyZVtdXG4vKipcbiAqIEEgbGlzdCBvZiBpbnN0YW5jZSB0eXBlcyB0aGF0IHRoZSBjYXBhY2l0eSBwcm92aWRlciBjYW4gdXNlLiBTdXBwb3J0cyB3aWxkY2FyZHMgKGZvciBleGFtcGxlLCBtNS4qKS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA0MDBcbiAqL1xuQWxsb3dlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgaW5zdGFuY2UgdHlwZXMgdGhhdCB0aGUgY2FwYWNpdHkgcHJvdmlkZXIgc2hvdWxkIG5vdCB1c2UuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciBBbGxvd2VkSW5zdGFuY2VUeXBlcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA0MDBcbiAqL1xuRXhjbHVkZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogSUFNIHBlcm1pc3Npb25zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eVByb3ZpZGVyUGVybWlzc2lvbnNDb25maWcge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZSB0aGF0IExhbWJkYSBhc3N1bWVzIHRvIG1hbmFnZSB0aGUgY2FwYWNpdHkgcHJvdmlkZXIuXG4gKi9cbkNhcGFjaXR5UHJvdmlkZXJPcGVyYXRvclJvbGVBcm46IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRoYXQgcHJvdmlkZXMgbWV0YWRhdGEgZm9yIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLlxuICovXG5WYWx1ZT86IHN0cmluZ1xufVxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UHJvdmlkZXJWcGNDb25maWcge1xuLyoqXG4gKiBBIGxpc3Qgb2Ygc3VibmV0IElEcyB3aGVyZSB0aGUgY2FwYWNpdHkgcHJvdmlkZXIgY2FuIGxhdW5jaCBFQzIgaW5zdGFuY2VzLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldElkczogc3RyaW5nW11cbi8qKlxuICogQSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwIElEcyB0byBhc3NvY2lhdGUgd2l0aCBFQzIgaW5zdGFuY2VzLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkczogc3RyaW5nW11cbn1cbiJdfQ==
@@ -8,6 +8,7 @@
8
8
  * For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*
9
9
  */
10
10
  export interface _AWS_LAMBDA_FUNCTION {
11
+ FunctionScalingConfig?: FunctionScalingConfig;
11
12
  /**
12
13
  * A description of the function.
13
14
  */
@@ -48,6 +49,7 @@ export interface _AWS_LAMBDA_FUNCTION {
48
49
  * If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).
49
50
  */
50
51
  KmsKeyArn?: string;
52
+ PublishToLatestPublished?: boolean;
51
53
  /**
52
54
  * The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
53
55
  */
@@ -76,6 +78,7 @@ export interface _AWS_LAMBDA_FUNCTION {
76
78
  * The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
77
79
  */
78
80
  Timeout?: number;
81
+ CapacityProviderConfig?: CapacityProviderConfig;
79
82
  /**
80
83
  * The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
81
84
  */
@@ -104,6 +107,16 @@ export interface _AWS_LAMBDA_FUNCTION {
104
107
  */
105
108
  Architectures?: ("x86_64" | "arm64")[];
106
109
  }
110
+ export interface FunctionScalingConfig {
111
+ /**
112
+ * The minimum number of execution environments to maintain for the function.
113
+ */
114
+ MinExecutionEnvironments?: number;
115
+ /**
116
+ * The maximum number of execution environments that can be provisioned for the function.
117
+ */
118
+ MaxExecutionEnvironments?: number;
119
+ }
107
120
  /**
108
121
  * Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
109
122
  */
@@ -224,6 +237,23 @@ export interface DeadLetterConfig {
224
237
  */
225
238
  TargetArn?: string;
226
239
  }
240
+ export interface CapacityProviderConfig {
241
+ LambdaManagedInstancesCapacityProviderConfig: LambdaManagedInstancesCapacityProviderConfig;
242
+ }
243
+ export interface LambdaManagedInstancesCapacityProviderConfig {
244
+ /**
245
+ * The amount of memory in GiB allocated per vCPU for execution environments.
246
+ */
247
+ ExecutionEnvironmentMemoryGiBPerVCpu?: number;
248
+ /**
249
+ * The Amazon Resource Name (ARN) of the capacity provider.
250
+ */
251
+ CapacityProviderArn: string;
252
+ /**
253
+ * The maximum number of concurrent execution environments that can run on each compute instance.
254
+ */
255
+ PerExecutionEnvironmentMaxConcurrency?: number;
256
+ }
227
257
  export interface SnapStartResponse {
228
258
  /**
229
259
  * When you provide a [qualified Amazon Resource Name (ARN)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using), this response element indicates whether SnapStart is activated for the specified function version.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UgY3JlYXRlcyBhIExhbWJkYSBmdW5jdGlvbi4gVG8gY3JlYXRlIGEgZnVuY3Rpb24sIHlvdSBuZWVkIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKSBhbmQgYW4gW2V4ZWN1dGlvbiByb2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW50cm8tZXhlY3V0aW9uLXJvbGUuaHRtbCkuIFRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZSBvciBjb250YWluZXIgaW1hZ2UgdGhhdCBjb250YWlucyB5b3VyIGZ1bmN0aW9uIGNvZGUuIFRoZSBleGVjdXRpb24gcm9sZSBncmFudHMgdGhlIGZ1bmN0aW9uIHBlcm1pc3Npb24gdG8gdXNlIEFXUyBzZXJ2aWNlcywgc3VjaCBhcyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGZvciBsb2cgc3RyZWFtaW5nIGFuZCBBV1MgWC1SYXkgZm9yIHJlcXVlc3QgdHJhY2luZy5cbiAqICBZb3Ugc2V0IHRoZSBwYWNrYWdlIHR5cGUgdG8gYGBJbWFnZWBgIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpLiBGb3IgdGhlc2UgZnVuY3Rpb25zLCBpbmNsdWRlIHRoZSBVUkkgb2YgdGhlIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBbSW1hZ2VVcmkgcHJvcGVydHkgb2YgdGhlIENvZGUgcHJvcGVydHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLmh0bWwjY2ZuLWxhbWJkYS1mdW5jdGlvbi1jb2RlLWltYWdldXJpKS4gWW91IGRvIG5vdCBuZWVkIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgYW5kIHJ1bnRpbWUgcHJvcGVydGllcy4gXG4gKiAgWW91IHNldCB0aGUgcGFja2FnZSB0eXBlIHRvIGBgWmlwYGAgaWYgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIFsuemlwIGZpbGUgYXJjaGl2ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sI2dldHRpbmdzdGFydGVkLXBhY2thZ2UtemlwKS4gRm9yIHRoZXNlIGZ1bmN0aW9ucywgc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgeW91ciAuemlwIGZpbGUgaW4gdGhlIGBgQ29kZWBgIHByb3BlcnR5LiBBbHRlcm5hdGl2ZWx5LCBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucywgeW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBpbmxpbmUgaW4gdGhlIFtaaXBGaWxlIHByb3BlcnR5IG9mIHRoZSBDb2RlIHByb3BlcnR5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS16aXBmaWxlKS4gSW4gYm90aCBjYXNlcywgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIGFuZCBydW50aW1lIHByb3BlcnRpZXMuXG4gKiAgWW91IGNhbiB1c2UgW2NvZGUgc2lnbmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1jb2Rlc2lnbmluZy5odG1sKSBpZiB5b3VyIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIC56aXAgZmlsZSBhcmNoaXZlLiBUbyBlbmFibGUgY29kZSBzaWduaW5nIGZvciB0aGlzIGZ1bmN0aW9uLCBzcGVjaWZ5IHRoZSBBUk4gb2YgYSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbi4gV2hlbiBhIHVzZXIgYXR0ZW1wdHMgdG8gZGVwbG95IGEgY29kZSBwYWNrYWdlIHdpdGggYGBVcGRhdGVGdW5jdGlvbkNvZGVgYCwgTGFtYmRhIGNoZWNrcyB0aGF0IHRoZSBjb2RlIHBhY2thZ2UgaGFzIGEgdmFsaWQgc2lnbmF0dXJlIGZyb20gYSB0cnVzdGVkIHB1Ymxpc2hlci4gVGhlIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICogIFdoZW4geW91IHVwZGF0ZSBhIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UsIENGTnNob3J0IGNhbGxzIHRoZSBbVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9hcGkvQVBJX1VwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sKSBhbmQgW1VwZGF0ZUZ1bmN0aW9uQ29kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9VcGRhdGVGdW5jdGlvbkNvZGUuaHRtbClMQU0gQVBJcyB1bmRlciB0aGUgaG9vZC4gQmVjYXVzZSB0aGVzZSBjYWxscyBoYXBwZW4gc2VxdWVudGlhbGx5LCBhbmQgaW52b2NhdGlvbnMgY2FuIGhhcHBlbiBiZXR3ZWVuIHRoZXNlIGNhbGxzLCB5b3VyIGZ1bmN0aW9uIG1heSBlbmNvdW50ZXIgZXJyb3JzIGluIHRoZSB0aW1lIGJldHdlZW4gdGhlIGNhbGxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYW5kIHRoZSBjb2RlIHRoYXQgcmVmZXJlbmNlcyB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIGluIHRoZSBzYW1lIENGTnNob3J0IHVwZGF0ZSwgeW91IG1heSBzZWUgaW52b2NhdGlvbiBlcnJvcnMgcmVsYXRlZCB0byBhIG1pc3NpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHlvdSBjYW4gaW52b2tlIHlvdXIgZnVuY3Rpb24gYWdhaW5zdCBhIHZlcnNpb24gb3IgYWxpYXMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIGBgJExBVEVTVGBgIHZlcnNpb24uXG4gKiAgTm90ZSB0aGF0IHlvdSBjb25maWd1cmUgW3Byb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9wcm92aXNpb25lZC1jb25jdXJyZW5jeS5odG1sKSBvbiBhIGBgQVdTOjpMYW1iZGE6OlZlcnNpb25gYCBvciBhIGBgQVdTOjpMYW1iZGE6OkFsaWFzYGAuXG4gKiAgRm9yIGEgY29tcGxldGUgaW50cm9kdWN0aW9uIHRvIExhbWJkYSBmdW5jdGlvbnMsIHNlZSBbV2hhdCBpcyBMYW1iZGE/XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtd2VsY29tZS5odG1sKSBpbiB0aGUgKkxhbWJkYSBkZXZlbG9wZXIgZ3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfTEFNQkRBX0ZVTkNUSU9OIHtcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5UcmFjaW5nQ29uZmlnPzogVHJhY2luZ0NvbmZpZ1xuVnBjQ29uZmlnPzogVnBjQ29uZmlnXG5SdW50aW1lTWFuYWdlbWVudENvbmZpZz86IFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnXG4vKipcbiAqIFRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGV4ZWN1dGlvbnMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5SZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zPzogbnVtYmVyXG5TbmFwU3RhcnQ/OiBTbmFwU3RhcnRcbi8qKlxuICogQ29ubmVjdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIEVGUyBmaWxlIHN5c3RlbS4gVG8gY29ubmVjdCBhIGZ1bmN0aW9uIHRvIGEgZmlsZSBzeXN0ZW0sIGEgbW91bnQgdGFyZ2V0IG11c3QgYmUgYXZhaWxhYmxlIGluIGV2ZXJ5IEF2YWlsYWJpbGl0eSBab25lIHRoYXQgeW91ciBmdW5jdGlvbiBjb25uZWN0cyB0by4gSWYgeW91ciB0ZW1wbGF0ZSBjb250YWlucyBhbiBbQVdTOjpFRlM6Ok1vdW50VGFyZ2V0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWZzLW1vdW50dGFyZ2V0Lmh0bWwpIHJlc291cmNlLCB5b3UgbXVzdCBhbHNvIHNwZWNpZnkgYSBgYERlcGVuZHNPbmBgIGF0dHJpYnV0ZSB0byBlbnN1cmUgdGhhdCB0aGUgbW91bnQgdGFyZ2V0IGlzIGNyZWF0ZWQgb3IgdXBkYXRlZCBiZWZvcmUgdGhlIGZ1bmN0aW9uLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVzaW5nIHRoZSBgYERlcGVuZHNPbmBgIGF0dHJpYnV0ZSwgc2VlIFtEZXBlbmRzT24gQXR0cmlidXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtYXR0cmlidXRlLWRlcGVuZHNvbi5odG1sKS5cbiAqIFxuICogQG1heEl0ZW1zIDFcbiAqL1xuRmlsZVN5c3RlbUNvbmZpZ3M/OiBGaWxlU3lzdGVtQ29uZmlnW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbiwgdXAgdG8gNjQgY2hhcmFjdGVycyBpbiBsZW5ndGguIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGdlbmVyYXRlcyBvbmUuXG4gKiAgSWYgeW91IHNwZWNpZnkgYSBuYW1lLCB5b3UgY2Fubm90IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5GdW5jdGlvbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZ1bmN0aW9uJ3MgW3J1bnRpbWVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sKS4gUnVudGltZSBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFNwZWNpZnlpbmcgYSBydW50aW1lIHJlc3VsdHMgaW4gYW4gZXJyb3IgaWYgeW91J3JlIGRlcGxveWluZyBhIGZ1bmN0aW9uIHVzaW5nIGEgY29udGFpbmVyIGltYWdlLlxuICogIFRoZSBmb2xsb3dpbmcgbGlzdCBpbmNsdWRlcyBkZXByZWNhdGVkIHJ1bnRpbWVzLiBMYW1iZGEgYmxvY2tzIGNyZWF0aW5nIG5ldyBmdW5jdGlvbnMgYW5kIHVwZGF0aW5nIGV4aXN0aW5nIGZ1bmN0aW9ucyBzaG9ydGx5IGFmdGVyIGVhY2ggcnVudGltZSBpcyBkZXByZWNhdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSdW50aW1lIHVzZSBhZnRlciBkZXByZWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLXJ1bnRpbWVzLmh0bWwjcnVudGltZS1kZXByZWNhdGlvbi1sZXZlbHMpLlxuICogIEZvciBhIGxpc3Qgb2YgYWxsIGN1cnJlbnRseSBzdXBwb3J0ZWQgcnVudGltZXMsIHNlZSBbU3VwcG9ydGVkIHJ1bnRpbWVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtcnVudGltZXMuaHRtbCNydW50aW1lcy1zdXBwb3J0ZWQpLlxuICovXG5SdW50aW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEtNU2xvbmcgKEtNUykgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdGhhdCdzIHVzZWQgdG8gZW5jcnlwdCB0aGUgZm9sbG93aW5nIHJlc291cmNlczpcbiAqICAgKyAgVGhlIGZ1bmN0aW9uJ3MgW2Vudmlyb25tZW50IHZhcmlhYmxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1lbnZ2YXJzLmh0bWwjY29uZmlndXJhdGlvbi1lbnZ2YXJzLWVuY3J5cHRpb24pLlxuICogICArICBUaGUgZnVuY3Rpb24ncyBbTGFtYmRhIFNuYXBTdGFydF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc25hcHN0YXJ0LXNlY3VyaXR5Lmh0bWwpIHNuYXBzaG90cy5cbiAqICAgKyAgV2hlbiB1c2VkIHdpdGggYGBTb3VyY2VLTVNLZXlBcm5gYCwgdGhlIHVuemlwcGVkIHZlcnNpb24gb2YgdGhlIC56aXAgZGVwbG95bWVudCBwYWNrYWdlIHRoYXQncyB1c2VkIGZvciBmdW5jdGlvbiBpbnZvY2F0aW9ucy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3BlY2lmeWluZyBhIGN1c3RvbWVyIG1hbmFnZWQga2V5IGZvciBMYW1iZGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2VuY3J5cHQtemlwLXBhY2thZ2UuaHRtbCNlbmFibGUtemlwLWN1c3RvbS1lbmNyeXB0aW9uKS5cbiAqICAgKyAgVGhlIG9wdGltaXplZCB2ZXJzaW9uIG9mIHRoZSBjb250YWluZXIgaW1hZ2UgdGhhdCdzIHVzZWQgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zLiBOb3RlIHRoYXQgdGhpcyBpcyBub3QgdGhlIHNhbWUga2V5IHRoYXQncyB1c2VkIHRvIHByb3RlY3QgeW91ciBjb250YWluZXIgaW1hZ2UgaW4gdGhlIEFtYXpvbiBFbGFzdGljIENvbnRhaW5lciBSZWdpc3RyeSAoQW1hem9uIEVDUikuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0Z1bmN0aW9uIGxpZmVjeWNsZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW1hZ2VzLWNyZWF0ZS5odG1sI2ltYWdlcy1saWZlY3ljbGUpLlxuICogICBcbiAqICBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIGN1c3RvbWVyIG1hbmFnZWQga2V5LCBMYW1iZGEgdXNlcyBhbiBbb3duZWQga2V5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20va21zL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9jb25jZXB0cy5odG1sI2F3cy1vd25lZC1jbWspIG9yIGFuIFtdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW1hbmFnZWQtY21rKS5cbiAqL1xuS21zS2V5QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlcGxveW1lbnQgcGFja2FnZS4gU2V0IHRvIGBgSW1hZ2VgYCBmb3IgY29udGFpbmVyIGltYWdlIGFuZCBzZXQgYGBaaXBgYCBmb3IgLnppcCBmaWxlIGFyY2hpdmUuXG4gKi9cblBhY2thZ2VUeXBlPzogKFwiSW1hZ2VcIiB8IFwiWmlwXCIpXG4vKipcbiAqIFRvIGVuYWJsZSBjb2RlIHNpZ25pbmcgZm9yIHRoaXMgZnVuY3Rpb24sIHNwZWNpZnkgdGhlIEFSTiBvZiBhIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uLiBBIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICovXG5Db2RlU2lnbmluZ0NvbmZpZ0Fybj86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgW2Z1bmN0aW9uIGxheWVyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1sYXllcnMuaHRtbCkgdG8gYWRkIHRvIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4gU3BlY2lmeSBlYWNoIGxheWVyIGJ5IGl0cyBBUk4sIGluY2x1ZGluZyB0aGUgdmVyc2lvbi5cbiAqL1xuTGF5ZXJzPzogc3RyaW5nW11cblRlbmFuY3lDb25maWc/OiBUZW5hbmN5Q29uZmlnXG4vKipcbiAqIEEgbGlzdCBvZiBbdGFnc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvdGFnZ2luZy5odG1sKSB0byBhcHBseSB0byB0aGUgZnVuY3Rpb24uXG4gKiAgIFlvdSBtdXN0IGhhdmUgdGhlIGBgbGFtYmRhOlRhZ1Jlc291cmNlYGAsIGBgbGFtYmRhOlVudGFnUmVzb3VyY2VgYCwgYW5kIGBgbGFtYmRhOkxpc3RUYWdzYGAgcGVybWlzc2lvbnMgZm9yIHlvdXIgW3ByaW5jaXBhbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2lkX3JvbGVzX3Rlcm1zLWFuZC1jb25jZXB0cy5odG1sKSB0byBtYW5hZ2UgdGhlIENGTiBzdGFjay4gSWYgeW91IGRvbid0IGhhdmUgdGhlc2UgcGVybWlzc2lvbnMsIHRoZXJlIG1pZ2h0IGJlIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBzdGFjay1sZXZlbCB0YWdzIHByb3BhZ2F0aW5nIHRvIHRoZSByZXNvdXJjZSBkdXJpbmcgcmVzb3VyY2UgY3JlYXRpb24gYW5kIHVwZGF0ZS5cbiAqL1xuVGFncz86IFRhZ1tdXG5JbWFnZUNvbmZpZz86IEltYWdlQ29uZmlnXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgW21lbW9yeSBhdmFpbGFibGUgdG8gdGhlIGZ1bmN0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWZ1bmN0aW9uLWNvbW1vbi5odG1sI2NvbmZpZ3VyYXRpb24tbWVtb3J5LWNvbnNvbGUpIGF0IHJ1bnRpbWUuIEluY3JlYXNpbmcgdGhlIGZ1bmN0aW9uIG1lbW9yeSBhbHNvIGluY3JlYXNlcyBpdHMgQ1BVIGFsbG9jYXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEyOCBNQi4gVGhlIHZhbHVlIGNhbiBiZSBhbnkgbXVsdGlwbGUgb2YgMSBNQi4gTm90ZSB0aGF0IG5ldyBBV1MgYWNjb3VudHMgaGF2ZSByZWR1Y2VkIGNvbmN1cnJlbmN5IGFuZCBtZW1vcnkgcXVvdGFzLiBBV1MgcmFpc2VzIHRoZXNlIHF1b3RhcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHlvdXIgdXNhZ2UuIFlvdSBjYW4gYWxzbyByZXF1ZXN0IGEgcXVvdGEgaW5jcmVhc2UuXG4gKi9cbk1lbW9yeVNpemU/OiBudW1iZXJcbkRlYWRMZXR0ZXJDb25maWc/OiBEZWFkTGV0dGVyQ29uZmlnXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgdGhhdCBMYW1iZGEgYWxsb3dzIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSBzdG9wcGluZyBpdC4gVGhlIGRlZmF1bHQgaXMgMyBzZWNvbmRzLiBUaGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIGlzIDkwMCBzZWNvbmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtMYW1iZGEgZXhlY3V0aW9uIGVudmlyb25tZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy1jb250ZXh0Lmh0bWwpLlxuICovXG5UaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgd2l0aGluIHlvdXIgY29kZSB0aGF0IExhbWJkYSBjYWxscyB0byBydW4geW91ciBmdW5jdGlvbi4gSGFuZGxlciBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFRoZSBmb3JtYXQgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZS4gSXQgY2FuIGFsc28gaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBvdGhlciBxdWFsaWZpZXJzLCBkZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBwcm9ncmFtbWluZyBtb2RlbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1wcm9nbW9kZWwuaHRtbCkuXG4gKi9cbkhhbmRsZXI/OiBzdHJpbmdcblNuYXBTdGFydFJlc3BvbnNlPzogU25hcFN0YXJ0UmVzcG9uc2VcbkNvZGU6IENvZGVcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiByb2xlLlxuICovXG5Sb2xlOiBzdHJpbmdcbkxvZ2dpbmdDb25maWc/OiBMb2dnaW5nQ29uZmlnXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgeW91ciBmdW5jdGlvbidzIHJlY3Vyc2l2ZSBsb29wIGRldGVjdGlvbiBjb25maWd1cmF0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBBbGxvd2BgYW5kIExhbWJkYSBkZXRlY3RzIHlvdXIgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBhcyBwYXJ0IG9mIGEgcmVjdXJzaXZlIGxvb3AsIGl0IGRvZXNuJ3QgdGFrZSBhbnkgYWN0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBUZXJtaW5hdGVgYCBhbmQgTGFtYmRhIGRldGVjdHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFzIHBhcnQgb2YgYSByZWN1cnNpdmUgbG9vcCwgaXQgc3RvcHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFuZCBub3RpZmllcyB5b3UuXG4gKi9cblJlY3Vyc2l2ZUxvb3A/OiAoXCJBbGxvd1wiIHwgXCJUZXJtaW5hdGVcIilcbkVudmlyb25tZW50PzogRW52aXJvbm1lbnRcbkFybj86IHN0cmluZ1xuRXBoZW1lcmFsU3RvcmFnZT86IEVwaGVtZXJhbFN0b3JhZ2Vcbi8qKlxuICogVGhlIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmUgdGhhdCB0aGUgZnVuY3Rpb24gc3VwcG9ydHMuIEVudGVyIGEgc3RyaW5nIGFycmF5IHdpdGggb25lIG9mIHRoZSB2YWxpZCB2YWx1ZXMgKGFybTY0IG9yIHg4Nl82NCkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgeDg2XzY0YGAuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5BcmNoaXRlY3R1cmVzPzogKFwieDg2XzY0XCIgfCBcImFybTY0XCIpW11cbn1cbi8qKlxuICogU2V0IGBgTW9kZWBgIHRvIGBgQWN0aXZlYGAgdG8gc2FtcGxlIGFuZCB0cmFjZSBhIHN1YnNldCBvZiBpbmNvbWluZyByZXF1ZXN0cyB3aXRoIFtYLVJheV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMteHJheS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFjaW5nQ29uZmlnIHtcbi8qKlxuICogVGhlIHRyYWNpbmcgbW9kZS5cbiAqL1xuTW9kZT86IChcIkFjdGl2ZVwiIHwgXCJQYXNzVGhyb3VnaFwiKVxufVxuLyoqXG4gKiBGb3IgbmV0d29yayBjb25uZWN0aXZpdHkgdG8gQVdTIHJlc291cmNlcyBpbiBhIFZQQywgc3BlY2lmeSBhIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIGFuZCBzdWJuZXRzIGluIHRoZSBWUEMuIFdoZW4geW91IGNvbm5lY3QgYSBmdW5jdGlvbiB0byBhIFZQQywgaXQgY2FuIGFjY2VzcyByZXNvdXJjZXMgYW5kIHRoZSBpbnRlcm5ldCBvbmx5IHRocm91Z2ggdGhhdCBWUEMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbmZpZ3VyaW5nIGEgTGFtYmRhIGZ1bmN0aW9uIHRvIGFjY2VzcyByZXNvdXJjZXMgaW4gYSBWUENdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdnBjLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4vKipcbiAqIEFsbG93cyBvdXRib3VuZCBJUHY2IHRyYWZmaWMgb24gVlBDIGZ1bmN0aW9ucyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gZHVhbC1zdGFjayBzdWJuZXRzLlxuICovXG5JcHY2QWxsb3dlZEZvckR1YWxTdGFjaz86IGJvb2xlYW5cbi8qKlxuICogQSBsaXN0IG9mIFZQQyBzZWN1cml0eSBncm91cCBJRHMuXG4gKiBcbiAqIEBtYXhJdGVtcyA1XG4gKi9cblNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgVlBDIHN1Ym5ldCBJRHMuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5TdWJuZXRJZHM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTZXRzIHRoZSBydW50aW1lIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBmb3IgYSBmdW5jdGlvbidzIHZlcnNpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1bnRpbWUgdXBkYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtdXBkYXRlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnIHtcbi8qKlxuICogU3BlY2lmeSB0aGUgcnVudGltZSB1cGRhdGUgbW9kZS5cbiAqICAgKyAgKkF1dG8gKGRlZmF1bHQpKiAtIEF1dG9tYXRpY2FsbHkgdXBkYXRlIHRvIHRoZSBtb3N0IHJlY2VudCBhbmQgc2VjdXJlIHJ1bnRpbWUgdmVyc2lvbiB1c2luZyBhIFtUd28tcGhhc2UgcnVudGltZSB2ZXJzaW9uIHJvbGxvdXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLXVwZGF0ZS5odG1sI3J1bnRpbWUtbWFuYWdlbWVudC10d28tcGhhc2UpLiBUaGlzIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgbW9zdCBjdXN0b21lcnMgdG8gZW5zdXJlIHRoZXkgYWx3YXlzIGJlbmVmaXQgZnJvbSBydW50aW1lIHVwZGF0ZXMuXG4gKiAgICsgICpGdW5jdGlvblVwZGF0ZSogLSBMQU0gdXBkYXRlcyB0aGUgcnVudGltZSBvZiB5b3UgZnVuY3Rpb24gdG8gdGhlIG1vc3QgcmVjZW50IGFuZCBzZWN1cmUgcnVudGltZSB2ZXJzaW9uIHdoZW4geW91IHVwZGF0ZSB5b3VyIGZ1bmN0aW9uLiBUaGlzIGFwcHJvYWNoIHN5bmNocm9uaXplcyBydW50aW1lIHVwZGF0ZXMgd2l0aCBmdW5jdGlvbiBkZXBsb3ltZW50cywgZ2l2aW5nIHlvdSBjb250cm9sIG92ZXIgd2hlbiBydW50aW1lIHVwZGF0ZXMgYXJlIGFwcGxpZWQgYW5kIGFsbG93aW5nIHlvdSB0byBkZXRlY3QgYW5kIG1pdGlnYXRlIHJhcmUgcnVudGltZSB1cGRhdGUgaW5jb21wYXRpYmlsaXRpZXMgZWFybHkuIFdoZW4gdXNpbmcgdGhpcyBzZXR0aW5nLCB5b3UgbmVlZCB0byByZWd1bGFybHkgdXBkYXRlIHlvdXIgZnVuY3Rpb25zIHRvIGtlZXAgdGhlaXIgcnVudGltZSB1cC10by1kYXRlLlxuICogICArICAqTWFudWFsKiAtIFlvdSBzcGVjaWZ5IGEgcnVudGltZSB2ZXJzaW9uIGluIHlvdXIgZnVuY3Rpb24gY29uZmlndXJhdGlvbi4gVGhlIGZ1bmN0aW9uIHdpbGwgdXNlIHRoaXMgcnVudGltZSB2ZXJzaW9uIGluZGVmaW5pdGVseS4gSW4gdGhlIHJhcmUgY2FzZSB3aGVyZSBhIG5ldyBydW50aW1lIHZlcnNpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggYW4gZXhpc3RpbmcgZnVuY3Rpb24sIHRoaXMgYWxsb3dzIHlvdSB0byByb2xsIGJhY2sgeW91ciBmdW5jdGlvbiB0byBhbiBlYXJsaWVyIHJ1bnRpbWUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUm9sbCBiYWNrIGEgcnVudGltZSB2ZXJzaW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy11cGRhdGUuaHRtbCNydW50aW1lLW1hbmFnZW1lbnQtcm9sbGJhY2spLlxuICogICBcbiAqICAqVmFsaWQgVmFsdWVzKjogYGBBdXRvYGAgfCBgYEZ1bmN0aW9uVXBkYXRlYGAgfCBgYE1hbnVhbGBgXG4gKi9cblVwZGF0ZVJ1bnRpbWVPbjogKFwiQXV0b1wiIHwgXCJGdW5jdGlvblVwZGF0ZVwiIHwgXCJNYW51YWxcIilcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgcnVudGltZSB2ZXJzaW9uIHlvdSB3YW50IHRoZSBmdW5jdGlvbiB0byB1c2UuXG4gKiAgIFRoaXMgaXMgb25seSByZXF1aXJlZCBpZiB5b3UncmUgdXNpbmcgdGhlICpNYW51YWwqIHJ1bnRpbWUgdXBkYXRlIG1vZGUuXG4gKi9cblJ1bnRpbWVWZXJzaW9uQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBmdW5jdGlvbidzIFtTbmFwU3RhcnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NuYXBzdGFydC5odG1sKSBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNuYXBTdGFydCB7XG4vKipcbiAqIFNldCBgYEFwcGx5T25gYCB0byBgYFB1Ymxpc2hlZFZlcnNpb25zYGAgdG8gY3JlYXRlIGEgc25hcHNob3Qgb2YgdGhlIGluaXRpYWxpemVkIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB3aGVuIHlvdSBwdWJsaXNoIGEgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuQXBwbHlPbjogKFwiUHVibGlzaGVkVmVyc2lvbnNcIiB8IFwiTm9uZVwiKVxufVxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBjb25uZWN0aW9uIGJldHdlZW4gYSBMYW1iZGEgZnVuY3Rpb24gYW5kIGFuIFtBbWF6b24gRUZTIGZpbGUgc3lzdGVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWZpbGVzeXN0ZW0uaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN5c3RlbUNvbmZpZyB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIEVGUyBhY2Nlc3MgcG9pbnQgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGZpbGUgc3lzdGVtLlxuICovXG5Bcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgcGF0aCB3aGVyZSB0aGUgZnVuY3Rpb24gY2FuIGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0sIHN0YXJ0aW5nIHdpdGggYGAvbW50L2BgLlxuICovXG5Mb2NhbE1vdW50UGF0aDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRlbmFuY3lDb25maWcge1xuLyoqXG4gKiBEZXRlcm1pbmVzIGhvdyB5b3VyIExhbWJkYSBmdW5jdGlvbiBpc29sYXRlcyBleGVjdXRpb24gZW52aXJvbm1lbnRzIGJldHdlZW4gdGVuYW50cy5cbiAqL1xuVGVuYW50SXNvbGF0aW9uTW9kZTogXCJQRVJfVEVOQU5UXCJcbn1cbi8qKlxuICogQSBbdGFnXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy90YWdnaW5nLmh0bWwpIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoaXMgdGFnLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IGZvciB0aGlzIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiB2YWx1ZXMgdGhhdCBvdmVycmlkZSB0aGUgY29udGFpbmVyIGltYWdlIERvY2tlcmZpbGUgc2V0dGluZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbnRhaW5lciBpbWFnZSBzZXR0aW5nc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW1hZ2VzLWNyZWF0ZS5odG1sI2ltYWdlcy1wYXJtcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VDb25maWcge1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiBUaGUgbGVuZ3RoIG9mIHRoZSBkaXJlY3Rvcnkgc3RyaW5nIGNhbm5vdCBleGNlZWQgMSwwMDAgY2hhcmFjdGVycy5cbiAqL1xuV29ya2luZ0RpcmVjdG9yeT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgcGFyYW1ldGVycyB0aGF0IHlvdSB3YW50IHRvIHBhc3MgaW4gd2l0aCBFTlRSWVBPSU5ULiBZb3UgY2FuIHNwZWNpZnkgYSBtYXhpbXVtIG9mIDEsNTAwIHBhcmFtZXRlcnMgaW4gdGhlIGxpc3QuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNTAwXG4gKi9cbkNvbW1hbmQ/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGVudHJ5IHBvaW50IHRvIHRoZWlyIGFwcGxpY2F0aW9uLCB3aGljaCBpcyB0eXBpY2FsbHkgdGhlIGxvY2F0aW9uIG9mIHRoZSBydW50aW1lIGV4ZWN1dGFibGUuIFlvdSBjYW4gc3BlY2lmeSBhIG1heGltdW0gb2YgMSw1MDAgc3RyaW5nIGVudHJpZXMgaW4gdGhlIGxpc3QuXG4gKiBcbiAqIEBtYXhJdGVtcyAxNTAwXG4gKi9cbkVudHJ5UG9pbnQ/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBBIGRlYWQtbGV0dGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHF1ZXVlIG9yIHRvcGljIHdoZXJlIExhbWJkYSBzZW5kcyBhc3luY2hyb25vdXMgZXZlbnRzIHdoZW4gdGhleSBmYWlsIHByb2Nlc3NpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0RlYWQtbGV0dGVyIHF1ZXVlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1hc3luYy5odG1sI2ludm9jYXRpb24tZGxxKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWFkTGV0dGVyQ29uZmlnIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIGFuIEFtYXpvbiBTUVMgcXVldWUgb3IgQW1hem9uIFNOUyB0b3BpYy5cbiAqL1xuVGFyZ2V0QXJuPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFNuYXBTdGFydFJlc3BvbnNlIHtcbi8qKlxuICogV2hlbiB5b3UgcHJvdmlkZSBhIFtxdWFsaWZpZWQgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTildKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tdmVyc2lvbnMuaHRtbCN2ZXJzaW9uaW5nLXZlcnNpb25zLXVzaW5nKSwgdGhpcyByZXNwb25zZSBlbGVtZW50IGluZGljYXRlcyB3aGV0aGVyIFNuYXBTdGFydCBpcyBhY3RpdmF0ZWQgZm9yIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuT3B0aW1pemF0aW9uU3RhdHVzPzogKFwiT25cIiB8IFwiT2ZmXCIpXG4vKipcbiAqIFdoZW4gc2V0IHRvIGBgUHVibGlzaGVkVmVyc2lvbnNgYCwgTGFtYmRhIGNyZWF0ZXMgYSBzbmFwc2hvdCBvZiB0aGUgZXhlY3V0aW9uIGVudmlyb25tZW50IHdoZW4geW91IHB1Ymxpc2ggYSBmdW5jdGlvbiB2ZXJzaW9uLlxuICovXG5BcHBseU9uPzogKFwiUHVibGlzaGVkVmVyc2lvbnNcIiB8IFwiTm9uZVwiKVxufVxuLyoqXG4gKiBUaGUgY29kZSBmb3IgdGhlIGZ1bmN0aW9uLiBZb3UgY2FuIGRlZmluZSB5b3VyIGZ1bmN0aW9uIGNvZGUgaW4gbXVsdGlwbGUgd2F5czpcbiAqICAgKyAgRm9yIC56aXAgZGVwbG95bWVudCBwYWNrYWdlcywgeW91IGNhbiBzcGVjaWZ5IHRoZSBTMyBsb2NhdGlvbiBvZiB0aGUgLnppcCBmaWxlIGluIHRoZSBgYFMzQnVja2V0YGAsIGBgUzNLZXlgYCwgYW5kIGBgUzNPYmplY3RWZXJzaW9uYGAgcHJvcGVydGllcy5cbiAqICAgKyAgRm9yIC56aXAgZGVwbG95bWVudCBwYWNrYWdlcywgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IGRlZmluZSB0aGUgZnVuY3Rpb24gY29kZSBpbmxpbmUgaW4gdGhlIGBgWmlwRmlsZWBgIHByb3BlcnR5LiBUaGlzIG1ldGhvZCB3b3JrcyBvbmx5IGZvciBOb2RlLmpzIGFuZCBQeXRob24gZnVuY3Rpb25zLlxuICogICArICBGb3IgY29udGFpbmVyIGltYWdlcywgc3BlY2lmeSB0aGUgVVJJIG9mIHlvdXIgY29udGFpbmVyIGltYWdlIGluIHRoZSBFQ1IgcmVnaXN0cnkgaW4gdGhlIGBgSW1hZ2VVcmlgYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgS01TbG9uZyAoS01TKSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHlvdXIgZnVuY3Rpb24ncyAuemlwIGRlcGxveW1lbnQgcGFja2FnZS4gSWYgeW91IGRvbid0IHByb3ZpZGUgYSBjdXN0b21lciBtYW5hZ2VkIGtleSwgTGFtYmRhIHVzZXMgYW4gW293bmVkIGtleV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ttcy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY29uY2VwdHMuaHRtbCNhd3Mtb3duZWQtY21rKS5cbiAqL1xuU291cmNlS01TS2V5QXJuPzogc3RyaW5nXG4vKipcbiAqIEZvciB2ZXJzaW9uZWQgb2JqZWN0cywgdGhlIHZlcnNpb24gb2YgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBvYmplY3QgdG8gdXNlLlxuICovXG5TM09iamVjdFZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogQW4gQW1hem9uIFMzIGJ1Y2tldCBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHlvdXIgZnVuY3Rpb24uIFRoZSBidWNrZXQgY2FuIGJlIGluIGEgZGlmZmVyZW50IEFXUy1hY2NvdW50LlxuICovXG5TM0J1Y2tldD86IHN0cmluZ1xuLyoqXG4gKiAoTm9kZS5qcyBhbmQgUHl0aG9uKSBUaGUgc291cmNlIGNvZGUgb2YgeW91ciBMYW1iZGEgZnVuY3Rpb24uIElmIHlvdSBpbmNsdWRlIHlvdXIgZnVuY3Rpb24gc291cmNlIGlubGluZSB3aXRoIHRoaXMgcGFyYW1ldGVyLCBDRk4gcGxhY2VzIGl0IGluIGEgZmlsZSBuYW1lZCBgYGluZGV4YGAgYW5kIHppcHMgaXQgdG8gY3JlYXRlIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKS4gVGhpcyB6aXAgZmlsZSBjYW5ub3QgZXhjZWVkIDRNQi4gRm9yIHRoZSBgYEhhbmRsZXJgYCBwcm9wZXJ0eSwgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGhhbmRsZXIgaWRlbnRpZmllciBtdXN0IGJlIGBgaW5kZXhgYC4gRm9yIGV4YW1wbGUsIGBgaW5kZXguaGFuZGxlcmBgLlxuICogICBXaGVuIHlvdSBzcGVjaWZ5IHNvdXJjZSBjb2RlIGlubGluZSBmb3IgYSBOb2RlLmpzIGZ1bmN0aW9uLCB0aGUgYGBpbmRleGBgIGZpbGUgdGhhdCBDRk4gY3JlYXRlcyB1c2VzIHRoZSBleHRlbnNpb24gYGAuanNgYC4gVGhpcyBtZWFucyB0aGF0IExBTSB0cmVhdHMgdGhlIGZpbGUgYXMgYSBDb21tb25KUyBtb2R1bGUuIEVTIG1vZHVsZXMgYXJlbid0IHN1cHBvcnRlZCBmb3IgaW5saW5lIGZ1bmN0aW9ucy5cbiAqICAgIEZvciBKU09OLCB5b3UgbXVzdCBlc2NhcGUgcXVvdGVzIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgc3VjaCBhcyBuZXdsaW5lIChgYFxcbmBgKSB3aXRoIGEgYmFja3NsYXNoLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgZnVuY3Rpb24gdGhhdCBpbnRlcmFjdHMgd2l0aCBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gY3VzdG9tIHJlc291cmNlLCB5b3UgZG9uJ3QgaGF2ZSB0byB3cml0ZSB5b3VyIG93biBmdW5jdGlvbnMgdG8gc2VuZCByZXNwb25zZXMgdG8gdGhlIGN1c3RvbSByZXNvdXJjZSB0aGF0IGludm9rZWQgdGhlIGZ1bmN0aW9uLiBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvdmlkZXMgYSByZXNwb25zZSBtb2R1bGUgKFtjZm4tcmVzcG9uc2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS1jZm5yZXNwb25zZW1vZHVsZS5odG1sKSkgdGhhdCBzaW1wbGlmaWVzIHNlbmRpbmcgcmVzcG9uc2VzLiBTZWUgW1VzaW5nIExhbWJkYSB3aXRoIENsb3VkRm9ybWF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy1jbG91ZGZvcm1hdGlvbi5odG1sKSBmb3IgZGV0YWlscy5cbiAqL1xuWmlwRmlsZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFMzIGtleSBvZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlLlxuICovXG5TM0tleT86IHN0cmluZ1xuLyoqXG4gKiBVUkkgb2YgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpIGluIHRoZSBBbWF6b24gRUNSIHJlZ2lzdHJ5LlxuICovXG5JbWFnZVVyaT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgZnVuY3Rpb24ncyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2luZ0NvbmZpZyB7XG4vKipcbiAqIFRoZSBmb3JtYXQgaW4gd2hpY2ggTGFtYmRhIHNlbmRzIHlvdXIgZnVuY3Rpb24ncyBhcHBsaWNhdGlvbiBhbmQgc3lzdGVtIGxvZ3MgdG8gQ2xvdWRXYXRjaC4gU2VsZWN0IGJldHdlZW4gcGxhaW4gdGV4dCBhbmQgc3RydWN0dXJlZCBKU09OLlxuICovXG5Mb2dGb3JtYXQ/OiAoXCJUZXh0XCIgfCBcIkpTT05cIilcbi8qKlxuICogU2V0IHRoaXMgcHJvcGVydHkgdG8gZmlsdGVyIHRoZSBhcHBsaWNhdGlvbiBsb2dzIGZvciB5b3VyIGZ1bmN0aW9uIHRoYXQgTGFtYmRhIHNlbmRzIHRvIENsb3VkV2F0Y2guIExhbWJkYSBvbmx5IHNlbmRzIGFwcGxpY2F0aW9uIGxvZ3MgYXQgdGhlIHNlbGVjdGVkIGxldmVsIG9mIGRldGFpbCBhbmQgbG93ZXIsIHdoZXJlIGBgVFJBQ0VgYCBpcyB0aGUgaGlnaGVzdCBsZXZlbCBhbmQgYGBGQVRBTGBgIGlzIHRoZSBsb3dlc3QuXG4gKi9cbkFwcGxpY2F0aW9uTG9nTGV2ZWw/OiAoXCJUUkFDRVwiIHwgXCJERUJVR1wiIHwgXCJJTkZPXCIgfCBcIldBUk5cIiB8IFwiRVJST1JcIiB8IFwiRkFUQUxcIilcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBDbG91ZFdhdGNoIGxvZyBncm91cCB0aGUgZnVuY3Rpb24gc2VuZHMgbG9ncyB0by4gQnkgZGVmYXVsdCwgTGFtYmRhIGZ1bmN0aW9ucyBzZW5kIGxvZ3MgdG8gYSBkZWZhdWx0IGxvZyBncm91cCBuYW1lZCBgYC9hd3MvbGFtYmRhLzxmdW5jdGlvbiBuYW1lPmBgLiBUbyB1c2UgYSBkaWZmZXJlbnQgbG9nIGdyb3VwLCBlbnRlciBhbiBleGlzdGluZyBsb2cgZ3JvdXAgb3IgZW50ZXIgYSBuZXcgbG9nIGdyb3VwIG5hbWUuXG4gKi9cbkxvZ0dyb3VwPzogc3RyaW5nXG4vKipcbiAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZpbHRlciB0aGUgc3lzdGVtIGxvZ3MgZm9yIHlvdXIgZnVuY3Rpb24gdGhhdCBMYW1iZGEgc2VuZHMgdG8gQ2xvdWRXYXRjaC4gTGFtYmRhIG9ubHkgc2VuZHMgc3lzdGVtIGxvZ3MgYXQgdGhlIHNlbGVjdGVkIGxldmVsIG9mIGRldGFpbCBhbmQgbG93ZXIsIHdoZXJlIGBgREVCVUdgYCBpcyB0aGUgaGlnaGVzdCBsZXZlbCBhbmQgYGBXQVJOYGAgaXMgdGhlIGxvd2VzdC5cbiAqL1xuU3lzdGVtTG9nTGV2ZWw/OiAoXCJERUJVR1wiIHwgXCJJTkZPXCIgfCBcIldBUk5cIilcbn1cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIGFjY2Vzc2libGUgZnJvbSBmdW5jdGlvbiBjb2RlIGR1cmluZyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZSBrZXktdmFsdWUgcGFpcnMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZW52dmFycy5odG1sKS5cbiAqICBJZiB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGEgdGltZSBvciBhIGR1cmF0aW9uLCBlbmNsb3NlIHRoZSB2YWx1ZSBpbiBxdW90ZXMuXG4gKi9cblZhcmlhYmxlcz86IHtcbi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYHVuZGVmaW5lZGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiW2EtekEtWl1bYS16QS1aMC05X10rXCIuXG4gKi9cbltrOiBzdHJpbmddOiBzdHJpbmdcbn1cbn1cbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGZ1bmN0aW9uJ3MgYGAvdG1wYGAgZGlyZWN0b3J5IGluIE1CLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MTIsIGJ1dCBpdCBjYW4gYmUgYW55IHdob2xlIG51bWJlciBiZXR3ZWVuIDUxMiBhbmQgMTAsMjQwIE1CLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVwaGVtZXJhbFN0b3JhZ2Uge1xuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgZnVuY3Rpb24ncyBgYC90bXBgYCBkaXJlY3RvcnkuXG4gKi9cblNpemU6IG51bWJlclxufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UgY3JlYXRlcyBhIExhbWJkYSBmdW5jdGlvbi4gVG8gY3JlYXRlIGEgZnVuY3Rpb24sIHlvdSBuZWVkIGEgW2RlcGxveW1lbnQgcGFja2FnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sKSBhbmQgYW4gW2V4ZWN1dGlvbiByb2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW50cm8tZXhlY3V0aW9uLXJvbGUuaHRtbCkuIFRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZSBvciBjb250YWluZXIgaW1hZ2UgdGhhdCBjb250YWlucyB5b3VyIGZ1bmN0aW9uIGNvZGUuIFRoZSBleGVjdXRpb24gcm9sZSBncmFudHMgdGhlIGZ1bmN0aW9uIHBlcm1pc3Npb24gdG8gdXNlIEFXUyBzZXJ2aWNlcywgc3VjaCBhcyBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzIGZvciBsb2cgc3RyZWFtaW5nIGFuZCBBV1MgWC1SYXkgZm9yIHJlcXVlc3QgdHJhY2luZy5cbiAqICBZb3Ugc2V0IHRoZSBwYWNrYWdlIHR5cGUgdG8gYGBJbWFnZWBgIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSBbY29udGFpbmVyIGltYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtaW1hZ2VzLmh0bWwpLiBGb3IgdGhlc2UgZnVuY3Rpb25zLCBpbmNsdWRlIHRoZSBVUkkgb2YgdGhlIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBbSW1hZ2VVcmkgcHJvcGVydHkgb2YgdGhlIENvZGUgcHJvcGVydHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWxhbWJkYS1mdW5jdGlvbi1jb2RlLmh0bWwjY2ZuLWxhbWJkYS1mdW5jdGlvbi1jb2RlLWltYWdldXJpKS4gWW91IGRvIG5vdCBuZWVkIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgYW5kIHJ1bnRpbWUgcHJvcGVydGllcy4gXG4gKiAgWW91IHNldCB0aGUgcGFja2FnZSB0eXBlIHRvIGBgWmlwYGAgaWYgdGhlIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIFsuemlwIGZpbGUgYXJjaGl2ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZ2V0dGluZ3N0YXJ0ZWQtcGFja2FnZS5odG1sI2dldHRpbmdzdGFydGVkLXBhY2thZ2UtemlwKS4gRm9yIHRoZXNlIGZ1bmN0aW9ucywgc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgeW91ciAuemlwIGZpbGUgaW4gdGhlIGBgQ29kZWBgIHByb3BlcnR5LiBBbHRlcm5hdGl2ZWx5LCBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucywgeW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBpbmxpbmUgaW4gdGhlIFtaaXBGaWxlIHByb3BlcnR5IG9mIHRoZSBDb2RlIHByb3BlcnR5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1sYW1iZGEtZnVuY3Rpb24tY29kZS5odG1sI2Nmbi1sYW1iZGEtZnVuY3Rpb24tY29kZS16aXBmaWxlKS4gSW4gYm90aCBjYXNlcywgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBoYW5kbGVyIGFuZCBydW50aW1lIHByb3BlcnRpZXMuXG4gKiAgWW91IGNhbiB1c2UgW2NvZGUgc2lnbmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1jb2Rlc2lnbmluZy5odG1sKSBpZiB5b3VyIGRlcGxveW1lbnQgcGFja2FnZSBpcyBhIC56aXAgZmlsZSBhcmNoaXZlLiBUbyBlbmFibGUgY29kZSBzaWduaW5nIGZvciB0aGlzIGZ1bmN0aW9uLCBzcGVjaWZ5IHRoZSBBUk4gb2YgYSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbi4gV2hlbiBhIHVzZXIgYXR0ZW1wdHMgdG8gZGVwbG95IGEgY29kZSBwYWNrYWdlIHdpdGggYGBVcGRhdGVGdW5jdGlvbkNvZGVgYCwgTGFtYmRhIGNoZWNrcyB0aGF0IHRoZSBjb2RlIHBhY2thZ2UgaGFzIGEgdmFsaWQgc2lnbmF0dXJlIGZyb20gYSB0cnVzdGVkIHB1Ymxpc2hlci4gVGhlIGNvZGUtc2lnbmluZyBjb25maWd1cmF0aW9uIGluY2x1ZGVzIGEgc2V0IG9mIHNpZ25pbmcgcHJvZmlsZXMsIHdoaWNoIGRlZmluZSB0aGUgdHJ1c3RlZCBwdWJsaXNoZXJzIGZvciB0aGlzIGZ1bmN0aW9uLlxuICogIFdoZW4geW91IHVwZGF0ZSBhIGBgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uYGAgcmVzb3VyY2UsIENGTnNob3J0IGNhbGxzIHRoZSBbVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9hcGkvQVBJX1VwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sKSBhbmQgW1VwZGF0ZUZ1bmN0aW9uQ29kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9VcGRhdGVGdW5jdGlvbkNvZGUuaHRtbClMQU0gQVBJcyB1bmRlciB0aGUgaG9vZC4gQmVjYXVzZSB0aGVzZSBjYWxscyBoYXBwZW4gc2VxdWVudGlhbGx5LCBhbmQgaW52b2NhdGlvbnMgY2FuIGhhcHBlbiBiZXR3ZWVuIHRoZXNlIGNhbGxzLCB5b3VyIGZ1bmN0aW9uIG1heSBlbmNvdW50ZXIgZXJyb3JzIGluIHRoZSB0aW1lIGJldHdlZW4gdGhlIGNhbGxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYW5kIHRoZSBjb2RlIHRoYXQgcmVmZXJlbmNlcyB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlIGluIHRoZSBzYW1lIENGTnNob3J0IHVwZGF0ZSwgeW91IG1heSBzZWUgaW52b2NhdGlvbiBlcnJvcnMgcmVsYXRlZCB0byBhIG1pc3NpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHlvdSBjYW4gaW52b2tlIHlvdXIgZnVuY3Rpb24gYWdhaW5zdCBhIHZlcnNpb24gb3IgYWxpYXMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIGBgJExBVEVTVGBgIHZlcnNpb24uXG4gKiAgTm90ZSB0aGF0IHlvdSBjb25maWd1cmUgW3Byb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9wcm92aXNpb25lZC1jb25jdXJyZW5jeS5odG1sKSBvbiBhIGBgQVdTOjpMYW1iZGE6OlZlcnNpb25gYCBvciBhIGBgQVdTOjpMYW1iZGE6OkFsaWFzYGAuXG4gKiAgRm9yIGEgY29tcGxldGUgaW50cm9kdWN0aW9uIHRvIExhbWJkYSBmdW5jdGlvbnMsIHNlZSBbV2hhdCBpcyBMYW1iZGE/XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtd2VsY29tZS5odG1sKSBpbiB0aGUgKkxhbWJkYSBkZXZlbG9wZXIgZ3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfTEFNQkRBX0ZVTkNUSU9OIHtcbkZ1bmN0aW9uU2NhbGluZ0NvbmZpZz86IEZ1bmN0aW9uU2NhbGluZ0NvbmZpZ1xuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcblRyYWNpbmdDb25maWc/OiBUcmFjaW5nQ29uZmlnXG5WcGNDb25maWc/OiBWcGNDb25maWdcblJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnPzogUnVudGltZU1hbmFnZW1lbnRDb25maWdcbi8qKlxuICogVGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgZXhlY3V0aW9ucyB0byByZXNlcnZlIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cblJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXJcblNuYXBTdGFydD86IFNuYXBTdGFydFxuLyoqXG4gKiBDb25uZWN0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gRUZTIGZpbGUgc3lzdGVtLiBUbyBjb25uZWN0IGEgZnVuY3Rpb24gdG8gYSBmaWxlIHN5c3RlbSwgYSBtb3VudCB0YXJnZXQgbXVzdCBiZSBhdmFpbGFibGUgaW4gZXZlcnkgQXZhaWxhYmlsaXR5IFpvbmUgdGhhdCB5b3VyIGZ1bmN0aW9uIGNvbm5lY3RzIHRvLiBJZiB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIGFuIFtBV1M6OkVGUzo6TW91bnRUYXJnZXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lZnMtbW91bnR0YXJnZXQuaHRtbCkgcmVzb3VyY2UsIHlvdSBtdXN0IGFsc28gc3BlY2lmeSBhIGBgRGVwZW5kc09uYGAgYXR0cmlidXRlIHRvIGVuc3VyZSB0aGF0IHRoZSBtb3VudCB0YXJnZXQgaXMgY3JlYXRlZCBvciB1cGRhdGVkIGJlZm9yZSB0aGUgZnVuY3Rpb24uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgdGhlIGBgRGVwZW5kc09uYGAgYXR0cmlidXRlLCBzZWUgW0RlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtZGVwZW5kc29uLmh0bWwpLlxuICogXG4gKiBAbWF4SXRlbXMgMVxuICovXG5GaWxlU3lzdGVtQ29uZmlncz86IEZpbGVTeXN0ZW1Db25maWdbXVxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLCB1cCB0byA2NCBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk4gZ2VuZXJhdGVzIG9uZS5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cbkZ1bmN0aW9uTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgZnVuY3Rpb24ncyBbcnVudGltZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLXJ1bnRpbWVzLmh0bWwpLiBSdW50aW1lIGlzIHJlcXVpcmVkIGlmIHRoZSBkZXBsb3ltZW50IHBhY2thZ2UgaXMgYSAuemlwIGZpbGUgYXJjaGl2ZS4gU3BlY2lmeWluZyBhIHJ1bnRpbWUgcmVzdWx0cyBpbiBhbiBlcnJvciBpZiB5b3UncmUgZGVwbG95aW5nIGEgZnVuY3Rpb24gdXNpbmcgYSBjb250YWluZXIgaW1hZ2UuXG4gKiAgVGhlIGZvbGxvd2luZyBsaXN0IGluY2x1ZGVzIGRlcHJlY2F0ZWQgcnVudGltZXMuIExhbWJkYSBibG9ja3MgY3JlYXRpbmcgbmV3IGZ1bmN0aW9ucyBhbmQgdXBkYXRpbmcgZXhpc3RpbmcgZnVuY3Rpb25zIHNob3J0bHkgYWZ0ZXIgZWFjaCBydW50aW1lIGlzIGRlcHJlY2F0ZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1bnRpbWUgdXNlIGFmdGVyIGRlcHJlY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtcnVudGltZXMuaHRtbCNydW50aW1lLWRlcHJlY2F0aW9uLWxldmVscykuXG4gKiAgRm9yIGEgbGlzdCBvZiBhbGwgY3VycmVudGx5IHN1cHBvcnRlZCBydW50aW1lcywgc2VlIFtTdXBwb3J0ZWQgcnVudGltZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sI3J1bnRpbWVzLXN1cHBvcnRlZCkuXG4gKi9cblJ1bnRpbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgS01TbG9uZyAoS01TKSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHRoZSBmb2xsb3dpbmcgcmVzb3VyY2VzOlxuICogICArICBUaGUgZnVuY3Rpb24ncyBbZW52aXJvbm1lbnQgdmFyaWFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWVudnZhcnMuaHRtbCNjb25maWd1cmF0aW9uLWVudnZhcnMtZW5jcnlwdGlvbikuXG4gKiAgICsgIFRoZSBmdW5jdGlvbidzIFtMYW1iZGEgU25hcFN0YXJ0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zbmFwc3RhcnQtc2VjdXJpdHkuaHRtbCkgc25hcHNob3RzLlxuICogICArICBXaGVuIHVzZWQgd2l0aCBgYFNvdXJjZUtNU0tleUFybmBgLCB0aGUgdW56aXBwZWQgdmVyc2lvbiBvZiB0aGUgLnppcCBkZXBsb3ltZW50IHBhY2thZ2UgdGhhdCdzIHVzZWQgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXkgZm9yIExhbWJkYV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZW5jcnlwdC16aXAtcGFja2FnZS5odG1sI2VuYWJsZS16aXAtY3VzdG9tLWVuY3J5cHRpb24pLlxuICogICArICBUaGUgb3B0aW1pemVkIHZlcnNpb24gb2YgdGhlIGNvbnRhaW5lciBpbWFnZSB0aGF0J3MgdXNlZCBmb3IgZnVuY3Rpb24gaW52b2NhdGlvbnMuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgc2FtZSBrZXkgdGhhdCdzIHVzZWQgdG8gcHJvdGVjdCB5b3VyIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgQW1hem9uIEVsYXN0aWMgQ29udGFpbmVyIFJlZ2lzdHJ5IChBbWF6b24gRUNSKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRnVuY3Rpb24gbGlmZWN5Y2xlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbWFnZXMtY3JlYXRlLmh0bWwjaW1hZ2VzLWxpZmVjeWNsZSkuXG4gKiAgIFxuICogIElmIHlvdSBkb24ndCBwcm92aWRlIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXksIExhbWJkYSB1c2VzIGFuIFtvd25lZCBrZXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW93bmVkLWNtaykgb3IgYW4gW10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ttcy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY29uY2VwdHMuaHRtbCNhd3MtbWFuYWdlZC1jbWspLlxuICovXG5LbXNLZXlBcm4/OiBzdHJpbmdcblB1Ymxpc2hUb0xhdGVzdFB1Ymxpc2hlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHR5cGUgb2YgZGVwbG95bWVudCBwYWNrYWdlLiBTZXQgdG8gYGBJbWFnZWBgIGZvciBjb250YWluZXIgaW1hZ2UgYW5kIHNldCBgYFppcGBgIGZvciAuemlwIGZpbGUgYXJjaGl2ZS5cbiAqL1xuUGFja2FnZVR5cGU/OiAoXCJJbWFnZVwiIHwgXCJaaXBcIilcbi8qKlxuICogVG8gZW5hYmxlIGNvZGUgc2lnbmluZyBmb3IgdGhpcyBmdW5jdGlvbiwgc3BlY2lmeSB0aGUgQVJOIG9mIGEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24uIEEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBzZXQgb2Ygc2lnbmluZyBwcm9maWxlcywgd2hpY2ggZGVmaW5lIHRoZSB0cnVzdGVkIHB1Ymxpc2hlcnMgZm9yIHRoaXMgZnVuY3Rpb24uXG4gKi9cbkNvZGVTaWduaW5nQ29uZmlnQXJuPzogc3RyaW5nXG4vKipcbiAqIEEgbGlzdCBvZiBbZnVuY3Rpb24gbGF5ZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWxheWVycy5odG1sKSB0byBhZGQgdG8gdGhlIGZ1bmN0aW9uJ3MgZXhlY3V0aW9uIGVudmlyb25tZW50LiBTcGVjaWZ5IGVhY2ggbGF5ZXIgYnkgaXRzIEFSTiwgaW5jbHVkaW5nIHRoZSB2ZXJzaW9uLlxuICovXG5MYXllcnM/OiBzdHJpbmdbXVxuVGVuYW5jeUNvbmZpZz86IFRlbmFuY3lDb25maWdcbi8qKlxuICogQSBsaXN0IG9mIFt0YWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy90YWdnaW5nLmh0bWwpIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbi5cbiAqICAgWW91IG11c3QgaGF2ZSB0aGUgYGBsYW1iZGE6VGFnUmVzb3VyY2VgYCwgYGBsYW1iZGE6VW50YWdSZXNvdXJjZWBgLCBhbmQgYGBsYW1iZGE6TGlzdFRhZ3NgYCBwZXJtaXNzaW9ucyBmb3IgeW91ciBbcHJpbmNpcGFsXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvaWRfcm9sZXNfdGVybXMtYW5kLWNvbmNlcHRzLmh0bWwpIHRvIG1hbmFnZSB0aGUgQ0ZOIHN0YWNrLiBJZiB5b3UgZG9uJ3QgaGF2ZSB0aGVzZSBwZXJtaXNzaW9ucywgdGhlcmUgbWlnaHQgYmUgdW5leHBlY3RlZCBiZWhhdmlvciB3aXRoIHN0YWNrLWxldmVsIHRhZ3MgcHJvcGFnYXRpbmcgdG8gdGhlIHJlc291cmNlIGR1cmluZyByZXNvdXJjZSBjcmVhdGlvbiBhbmQgdXBkYXRlLlxuICovXG5UYWdzPzogVGFnW11cbkltYWdlQ29uZmlnPzogSW1hZ2VDb25maWdcbi8qKlxuICogVGhlIGFtb3VudCBvZiBbbWVtb3J5IGF2YWlsYWJsZSB0byB0aGUgZnVuY3Rpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZnVuY3Rpb24tY29tbW9uLmh0bWwjY29uZmlndXJhdGlvbi1tZW1vcnktY29uc29sZSkgYXQgcnVudGltZS4gSW5jcmVhc2luZyB0aGUgZnVuY3Rpb24gbWVtb3J5IGFsc28gaW5jcmVhc2VzIGl0cyBDUFUgYWxsb2NhdGlvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTI4IE1CLiBUaGUgdmFsdWUgY2FuIGJlIGFueSBtdWx0aXBsZSBvZiAxIE1CLiBOb3RlIHRoYXQgbmV3IEFXUyBhY2NvdW50cyBoYXZlIHJlZHVjZWQgY29uY3VycmVuY3kgYW5kIG1lbW9yeSBxdW90YXMuIEFXUyByYWlzZXMgdGhlc2UgcXVvdGFzIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24geW91ciB1c2FnZS4gWW91IGNhbiBhbHNvIHJlcXVlc3QgYSBxdW90YSBpbmNyZWFzZS5cbiAqL1xuTWVtb3J5U2l6ZT86IG51bWJlclxuRGVhZExldHRlckNvbmZpZz86IERlYWRMZXR0ZXJDb25maWdcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IExhbWJkYSBhbGxvd3MgYSBmdW5jdGlvbiB0byBydW4gYmVmb3JlIHN0b3BwaW5nIGl0LiBUaGUgZGVmYXVsdCBpcyAzIHNlY29uZHMuIFRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgaXMgOTAwIHNlY29uZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBleGVjdXRpb24gZW52aXJvbm1lbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLWNvbnRleHQuaHRtbCkuXG4gKi9cblRpbWVvdXQ/OiBudW1iZXJcbkNhcGFjaXR5UHJvdmlkZXJDb25maWc/OiBDYXBhY2l0eVByb3ZpZGVyQ29uZmlnXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgd2l0aGluIHlvdXIgY29kZSB0aGF0IExhbWJkYSBjYWxscyB0byBydW4geW91ciBmdW5jdGlvbi4gSGFuZGxlciBpcyByZXF1aXJlZCBpZiB0aGUgZGVwbG95bWVudCBwYWNrYWdlIGlzIGEgLnppcCBmaWxlIGFyY2hpdmUuIFRoZSBmb3JtYXQgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZS4gSXQgY2FuIGFsc28gaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBvdGhlciBxdWFsaWZpZXJzLCBkZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhbWJkYSBwcm9ncmFtbWluZyBtb2RlbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1wcm9nbW9kZWwuaHRtbCkuXG4gKi9cbkhhbmRsZXI/OiBzdHJpbmdcblNuYXBTdGFydFJlc3BvbnNlPzogU25hcFN0YXJ0UmVzcG9uc2VcbkNvZGU6IENvZGVcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiByb2xlLlxuICovXG5Sb2xlOiBzdHJpbmdcbkxvZ2dpbmdDb25maWc/OiBMb2dnaW5nQ29uZmlnXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgeW91ciBmdW5jdGlvbidzIHJlY3Vyc2l2ZSBsb29wIGRldGVjdGlvbiBjb25maWd1cmF0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBBbGxvd2BgYW5kIExhbWJkYSBkZXRlY3RzIHlvdXIgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBhcyBwYXJ0IG9mIGEgcmVjdXJzaXZlIGxvb3AsIGl0IGRvZXNuJ3QgdGFrZSBhbnkgYWN0aW9uLlxuICogIFdoZW4gdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBUZXJtaW5hdGVgYCBhbmQgTGFtYmRhIGRldGVjdHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFzIHBhcnQgb2YgYSByZWN1cnNpdmUgbG9vcCwgaXQgc3RvcHMgeW91ciBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGFuZCBub3RpZmllcyB5b3UuXG4gKi9cblJlY3Vyc2l2ZUxvb3A/OiAoXCJBbGxvd1wiIHwgXCJUZXJtaW5hdGVcIilcbkVudmlyb25tZW50PzogRW52aXJvbm1lbnRcbkFybj86IHN0cmluZ1xuRXBoZW1lcmFsU3RvcmFnZT86IEVwaGVtZXJhbFN0b3JhZ2Vcbi8qKlxuICogVGhlIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmUgdGhhdCB0aGUgZnVuY3Rpb24gc3VwcG9ydHMuIEVudGVyIGEgc3RyaW5nIGFycmF5IHdpdGggb25lIG9mIHRoZSB2YWxpZCB2YWx1ZXMgKGFybTY0IG9yIHg4Nl82NCkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgeDg2XzY0YGAuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5BcmNoaXRlY3R1cmVzPzogKFwieDg2XzY0XCIgfCBcImFybTY0XCIpW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TY2FsaW5nQ29uZmlnIHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgdG8gbWFpbnRhaW4gZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuTWluRXhlY3V0aW9uRW52aXJvbm1lbnRzPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBleGVjdXRpb24gZW52aXJvbm1lbnRzIHRoYXQgY2FuIGJlIHByb3Zpc2lvbmVkIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbk1heEV4ZWN1dGlvbkVudmlyb25tZW50cz86IG51bWJlclxufVxuLyoqXG4gKiBTZXQgYGBNb2RlYGAgdG8gYGBBY3RpdmVgYCB0byBzYW1wbGUgYW5kIHRyYWNlIGEgc3Vic2V0IG9mIGluY29taW5nIHJlcXVlc3RzIHdpdGggW1gtUmF5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9zZXJ2aWNlcy14cmF5Lmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgdHJhY2luZyBtb2RlLlxuICovXG5Nb2RlPzogKFwiQWN0aXZlXCIgfCBcIlBhc3NUaHJvdWdoXCIpXG59XG4vKipcbiAqIEZvciBuZXR3b3JrIGNvbm5lY3Rpdml0eSB0byBBV1MgcmVzb3VyY2VzIGluIGEgVlBDLCBzcGVjaWZ5IGEgbGlzdCBvZiBzZWN1cml0eSBncm91cHMgYW5kIHN1Ym5ldHMgaW4gdGhlIFZQQy4gV2hlbiB5b3UgY29ubmVjdCBhIGZ1bmN0aW9uIHRvIGEgVlBDLCBpdCBjYW4gYWNjZXNzIHJlc291cmNlcyBhbmQgdGhlIGludGVybmV0IG9ubHkgdGhyb3VnaCB0aGF0IFZQQy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29uZmlndXJpbmcgYSBMYW1iZGEgZnVuY3Rpb24gdG8gYWNjZXNzIHJlc291cmNlcyBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi12cGMuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbi8qKlxuICogQWxsb3dzIG91dGJvdW5kIElQdjYgdHJhZmZpYyBvbiBWUEMgZnVuY3Rpb25zIHRoYXQgYXJlIGNvbm5lY3RlZCB0byBkdWFsLXN0YWNrIHN1Ym5ldHMuXG4gKi9cbklwdjZBbGxvd2VkRm9yRHVhbFN0YWNrPzogYm9vbGVhblxuLyoqXG4gKiBBIGxpc3Qgb2YgVlBDIHNlY3VyaXR5IGdyb3VwIElEcy5cbiAqIFxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG4vKipcbiAqIEEgbGlzdCBvZiBWUEMgc3VibmV0IElEcy5cbiAqIFxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldElkcz86IHN0cmluZ1tdXG59XG4vKipcbiAqIFNldHMgdGhlIHJ1bnRpbWUgbWFuYWdlbWVudCBjb25maWd1cmF0aW9uIGZvciBhIGZ1bmN0aW9uJ3MgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUnVudGltZSB1cGRhdGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9ydW50aW1lcy11cGRhdGUuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZU1hbmFnZW1lbnRDb25maWcge1xuLyoqXG4gKiBTcGVjaWZ5IHRoZSBydW50aW1lIHVwZGF0ZSBtb2RlLlxuICogICArICAqQXV0byAoZGVmYXVsdCkqIC0gQXV0b21hdGljYWxseSB1cGRhdGUgdG8gdGhlIG1vc3QgcmVjZW50IGFuZCBzZWN1cmUgcnVudGltZSB2ZXJzaW9uIHVzaW5nIGEgW1R3by1waGFzZSBydW50aW1lIHZlcnNpb24gcm9sbG91dF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtdXBkYXRlLmh0bWwjcnVudGltZS1tYW5hZ2VtZW50LXR3by1waGFzZSkuIFRoaXMgaXMgdGhlIGJlc3QgY2hvaWNlIGZvciBtb3N0IGN1c3RvbWVycyB0byBlbnN1cmUgdGhleSBhbHdheXMgYmVuZWZpdCBmcm9tIHJ1bnRpbWUgdXBkYXRlcy5cbiAqICAgKyAgKkZ1bmN0aW9uVXBkYXRlKiAtIExBTSB1cGRhdGVzIHRoZSBydW50aW1lIG9mIHlvdSBmdW5jdGlvbiB0byB0aGUgbW9zdCByZWNlbnQgYW5kIHNlY3VyZSBydW50aW1lIHZlcnNpb24gd2hlbiB5b3UgdXBkYXRlIHlvdXIgZnVuY3Rpb24uIFRoaXMgYXBwcm9hY2ggc3luY2hyb25pemVzIHJ1bnRpbWUgdXBkYXRlcyB3aXRoIGZ1bmN0aW9uIGRlcGxveW1lbnRzLCBnaXZpbmcgeW91IGNvbnRyb2wgb3ZlciB3aGVuIHJ1bnRpbWUgdXBkYXRlcyBhcmUgYXBwbGllZCBhbmQgYWxsb3dpbmcgeW91IHRvIGRldGVjdCBhbmQgbWl0aWdhdGUgcmFyZSBydW50aW1lIHVwZGF0ZSBpbmNvbXBhdGliaWxpdGllcyBlYXJseS4gV2hlbiB1c2luZyB0aGlzIHNldHRpbmcsIHlvdSBuZWVkIHRvIHJlZ3VsYXJseSB1cGRhdGUgeW91ciBmdW5jdGlvbnMgdG8ga2VlcCB0aGVpciBydW50aW1lIHVwLXRvLWRhdGUuXG4gKiAgICsgICpNYW51YWwqIC0gWW91IHNwZWNpZnkgYSBydW50aW1lIHZlcnNpb24gaW4geW91ciBmdW5jdGlvbiBjb25maWd1cmF0aW9uLiBUaGUgZnVuY3Rpb24gd2lsbCB1c2UgdGhpcyBydW50aW1lIHZlcnNpb24gaW5kZWZpbml0ZWx5LiBJbiB0aGUgcmFyZSBjYXNlIHdoZXJlIGEgbmV3IHJ1bnRpbWUgdmVyc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBhbiBleGlzdGluZyBmdW5jdGlvbiwgdGhpcyBhbGxvd3MgeW91IHRvIHJvbGwgYmFjayB5b3VyIGZ1bmN0aW9uIHRvIGFuIGVhcmxpZXIgcnVudGltZSB2ZXJzaW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSb2xsIGJhY2sgYSBydW50aW1lIHZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLXVwZGF0ZS5odG1sI3J1bnRpbWUtbWFuYWdlbWVudC1yb2xsYmFjaykuXG4gKiAgIFxuICogICpWYWxpZCBWYWx1ZXMqOiBgYEF1dG9gYCB8IGBgRnVuY3Rpb25VcGRhdGVgYCB8IGBgTWFudWFsYGBcbiAqL1xuVXBkYXRlUnVudGltZU9uOiAoXCJBdXRvXCIgfCBcIkZ1bmN0aW9uVXBkYXRlXCIgfCBcIk1hbnVhbFwiKVxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIHZlcnNpb24geW91IHdhbnQgdGhlIGZ1bmN0aW9uIHRvIHVzZS5cbiAqICAgVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGlmIHlvdSdyZSB1c2luZyB0aGUgKk1hbnVhbCogcnVudGltZSB1cGRhdGUgbW9kZS5cbiAqL1xuUnVudGltZVZlcnNpb25Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGZ1bmN0aW9uJ3MgW1NuYXBTdGFydF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc25hcHN0YXJ0Lmh0bWwpIHNldHRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU25hcFN0YXJ0IHtcbi8qKlxuICogU2V0IGBgQXBwbHlPbmBgIHRvIGBgUHVibGlzaGVkVmVyc2lvbnNgYCB0byBjcmVhdGUgYSBzbmFwc2hvdCBvZiB0aGUgaW5pdGlhbGl6ZWQgZXhlY3V0aW9uIGVudmlyb25tZW50IHdoZW4geW91IHB1Ymxpc2ggYSBmdW5jdGlvbiB2ZXJzaW9uLlxuICovXG5BcHBseU9uOiAoXCJQdWJsaXNoZWRWZXJzaW9uc1wiIHwgXCJOb25lXCIpXG59XG4vKipcbiAqIERldGFpbHMgYWJvdXQgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiBhIExhbWJkYSBmdW5jdGlvbiBhbmQgYW4gW0FtYXpvbiBFRlMgZmlsZSBzeXN0ZW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZmlsZXN5c3RlbS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU3lzdGVtQ29uZmlnIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBBbWF6b24gRUZTIGFjY2VzcyBwb2ludCB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgZmlsZSBzeXN0ZW0uXG4gKi9cbkFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBwYXRoIHdoZXJlIHRoZSBmdW5jdGlvbiBjYW4gYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSwgc3RhcnRpbmcgd2l0aCBgYC9tbnQvYGAuXG4gKi9cbkxvY2FsTW91bnRQYXRoOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW5jeUNvbmZpZyB7XG4vKipcbiAqIERldGVybWluZXMgaG93IHlvdXIgTGFtYmRhIGZ1bmN0aW9uIGlzb2xhdGVzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgYmV0d2VlbiB0ZW5hbnRzLlxuICovXG5UZW5hbnRJc29sYXRpb25Nb2RlOiBcIlBFUl9URU5BTlRcIlxufVxuLyoqXG4gKiBBIFt0YWddKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3RhZ2dpbmcuaHRtbCkgdG8gYXBwbHkgdG8gdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhpcyB0YWcuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgZm9yIHRoaXMgdGFnLlxuICovXG5LZXk6IHN0cmluZ1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHZhbHVlcyB0aGF0IG92ZXJyaWRlIHRoZSBjb250YWluZXIgaW1hZ2UgRG9ja2VyZmlsZSBzZXR0aW5ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29udGFpbmVyIGltYWdlIHNldHRpbmdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbWFnZXMtY3JlYXRlLmh0bWwjaW1hZ2VzLXBhcm1zKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZUNvbmZpZyB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgd29ya2luZyBkaXJlY3RvcnkuIFRoZSBsZW5ndGggb2YgdGhlIGRpcmVjdG9yeSBzdHJpbmcgY2Fubm90IGV4Y2VlZCAxLDAwMCBjaGFyYWN0ZXJzLlxuICovXG5Xb3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXJzIHRoYXQgeW91IHdhbnQgdG8gcGFzcyBpbiB3aXRoIEVOVFJZUE9JTlQuIFlvdSBjYW4gc3BlY2lmeSBhIG1heGltdW0gb2YgMSw1MDAgcGFyYW1ldGVycyBpbiB0aGUgbGlzdC5cbiAqIFxuICogQG1heEl0ZW1zIDE1MDBcbiAqL1xuQ29tbWFuZD86IHN0cmluZ1tdXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZW50cnkgcG9pbnQgdG8gdGhlaXIgYXBwbGljYXRpb24sIHdoaWNoIGlzIHR5cGljYWxseSB0aGUgbG9jYXRpb24gb2YgdGhlIHJ1bnRpbWUgZXhlY3V0YWJsZS4gWW91IGNhbiBzcGVjaWZ5IGEgbWF4aW11bSBvZiAxLDUwMCBzdHJpbmcgZW50cmllcyBpbiB0aGUgbGlzdC5cbiAqIFxuICogQG1heEl0ZW1zIDE1MDBcbiAqL1xuRW50cnlQb2ludD86IHN0cmluZ1tdXG59XG4vKipcbiAqIEEgZGVhZC1sZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgcXVldWUgb3IgdG9waWMgd2hlcmUgTGFtYmRhIHNlbmRzIGFzeW5jaHJvbm91cyBldmVudHMgd2hlbiB0aGV5IGZhaWwgcHJvY2Vzc2luZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRGVhZC1sZXR0ZXIgcXVldWVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWFzeW5jLmh0bWwjaW52b2NhdGlvbi1kbHEpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYWRMZXR0ZXJDb25maWcge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYW4gQW1hem9uIFNRUyBxdWV1ZSBvciBBbWF6b24gU05TIHRvcGljLlxuICovXG5UYXJnZXRBcm4/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlQcm92aWRlckNvbmZpZyB7XG5MYW1iZGFNYW5hZ2VkSW5zdGFuY2VzQ2FwYWNpdHlQcm92aWRlckNvbmZpZzogTGFtYmRhTWFuYWdlZEluc3RhbmNlc0NhcGFjaXR5UHJvdmlkZXJDb25maWdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhTWFuYWdlZEluc3RhbmNlc0NhcGFjaXR5UHJvdmlkZXJDb25maWcge1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIG1lbW9yeSBpbiBHaUIgYWxsb2NhdGVkIHBlciB2Q1BVIGZvciBleGVjdXRpb24gZW52aXJvbm1lbnRzLlxuICovXG5FeGVjdXRpb25FbnZpcm9ubWVudE1lbW9yeUdpQlBlclZDcHU/OiBudW1iZXJcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBjYXBhY2l0eSBwcm92aWRlci5cbiAqL1xuQ2FwYWNpdHlQcm92aWRlckFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgdGhhdCBjYW4gcnVuIG9uIGVhY2ggY29tcHV0ZSBpbnN0YW5jZS5cbiAqL1xuUGVyRXhlY3V0aW9uRW52aXJvbm1lbnRNYXhDb25jdXJyZW5jeT86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBTbmFwU3RhcnRSZXNwb25zZSB7XG4vKipcbiAqIFdoZW4geW91IHByb3ZpZGUgYSBbcXVhbGlmaWVkIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLXZlcnNpb25zLmh0bWwjdmVyc2lvbmluZy12ZXJzaW9ucy11c2luZyksIHRoaXMgcmVzcG9uc2UgZWxlbWVudCBpbmRpY2F0ZXMgd2hldGhlciBTbmFwU3RhcnQgaXMgYWN0aXZhdGVkIGZvciB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHZlcnNpb24uXG4gKi9cbk9wdGltaXphdGlvblN0YXR1cz86IChcIk9uXCIgfCBcIk9mZlwiKVxuLyoqXG4gKiBXaGVuIHNldCB0byBgYFB1Ymxpc2hlZFZlcnNpb25zYGAsIExhbWJkYSBjcmVhdGVzIGEgc25hcHNob3Qgb2YgdGhlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB3aGVuIHlvdSBwdWJsaXNoIGEgZnVuY3Rpb24gdmVyc2lvbi5cbiAqL1xuQXBwbHlPbj86IChcIlB1Ymxpc2hlZFZlcnNpb25zXCIgfCBcIk5vbmVcIilcbn1cbi8qKlxuICogVGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbi4gWW91IGNhbiBkZWZpbmUgeW91ciBmdW5jdGlvbiBjb2RlIGluIG11bHRpcGxlIHdheXM6XG4gKiAgICsgIEZvciAuemlwIGRlcGxveW1lbnQgcGFja2FnZXMsIHlvdSBjYW4gc3BlY2lmeSB0aGUgUzMgbG9jYXRpb24gb2YgdGhlIC56aXAgZmlsZSBpbiB0aGUgYGBTM0J1Y2tldGBgLCBgYFMzS2V5YGAsIGFuZCBgYFMzT2JqZWN0VmVyc2lvbmBgIHByb3BlcnRpZXMuXG4gKiAgICsgIEZvciAuemlwIGRlcGxveW1lbnQgcGFja2FnZXMsIHlvdSBjYW4gYWx0ZXJuYXRpdmVseSBkZWZpbmUgdGhlIGZ1bmN0aW9uIGNvZGUgaW5saW5lIGluIHRoZSBgYFppcEZpbGVgYCBwcm9wZXJ0eS4gVGhpcyBtZXRob2Qgd29ya3Mgb25seSBmb3IgTm9kZS5qcyBhbmQgUHl0aG9uIGZ1bmN0aW9ucy5cbiAqICAgKyAgRm9yIGNvbnRhaW5lciBpbWFnZXMsIHNwZWNpZnkgdGhlIFVSSSBvZiB5b3VyIGNvbnRhaW5lciBpbWFnZSBpbiB0aGUgRUNSIHJlZ2lzdHJ5IGluIHRoZSBgYEltYWdlVXJpYGAgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZSB7XG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEtNU2xvbmcgKEtNUykgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdGhhdCdzIHVzZWQgdG8gZW5jcnlwdCB5b3VyIGZ1bmN0aW9uJ3MgLnppcCBkZXBsb3ltZW50IHBhY2thZ2UuIElmIHlvdSBkb24ndCBwcm92aWRlIGEgY3VzdG9tZXIgbWFuYWdlZCBrZXksIExhbWJkYSB1c2VzIGFuIFtvd25lZCBrZXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2NvbmNlcHRzLmh0bWwjYXdzLW93bmVkLWNtaykuXG4gKi9cblNvdXJjZUtNU0tleUFybj86IHN0cmluZ1xuLyoqXG4gKiBGb3IgdmVyc2lvbmVkIG9iamVjdHMsIHRoZSB2ZXJzaW9uIG9mIHRoZSBkZXBsb3ltZW50IHBhY2thZ2Ugb2JqZWN0IHRvIHVzZS5cbiAqL1xuUzNPYmplY3RWZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgaW4gdGhlIHNhbWUgQVdTLVJlZ2lvbiBhcyB5b3VyIGZ1bmN0aW9uLiBUaGUgYnVja2V0IGNhbiBiZSBpbiBhIGRpZmZlcmVudCBBV1MtYWNjb3VudC5cbiAqL1xuUzNCdWNrZXQ/OiBzdHJpbmdcbi8qKlxuICogKE5vZGUuanMgYW5kIFB5dGhvbikgVGhlIHNvdXJjZSBjb2RlIG9mIHlvdXIgTGFtYmRhIGZ1bmN0aW9uLiBJZiB5b3UgaW5jbHVkZSB5b3VyIGZ1bmN0aW9uIHNvdXJjZSBpbmxpbmUgd2l0aCB0aGlzIHBhcmFtZXRlciwgQ0ZOIHBsYWNlcyBpdCBpbiBhIGZpbGUgbmFtZWQgYGBpbmRleGBgIGFuZCB6aXBzIGl0IHRvIGNyZWF0ZSBhIFtkZXBsb3ltZW50IHBhY2thZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2dldHRpbmdzdGFydGVkLXBhY2thZ2UuaHRtbCkuIFRoaXMgemlwIGZpbGUgY2Fubm90IGV4Y2VlZCA0TUIuIEZvciB0aGUgYGBIYW5kbGVyYGAgcHJvcGVydHksIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBoYW5kbGVyIGlkZW50aWZpZXIgbXVzdCBiZSBgYGluZGV4YGAuIEZvciBleGFtcGxlLCBgYGluZGV4LmhhbmRsZXJgYC5cbiAqICAgV2hlbiB5b3Ugc3BlY2lmeSBzb3VyY2UgY29kZSBpbmxpbmUgZm9yIGEgTm9kZS5qcyBmdW5jdGlvbiwgdGhlIGBgaW5kZXhgYCBmaWxlIHRoYXQgQ0ZOIGNyZWF0ZXMgdXNlcyB0aGUgZXh0ZW5zaW9uIGBgLmpzYGAuIFRoaXMgbWVhbnMgdGhhdCBMQU0gdHJlYXRzIHRoZSBmaWxlIGFzIGEgQ29tbW9uSlMgbW9kdWxlLiBFUyBtb2R1bGVzIGFyZW4ndCBzdXBwb3J0ZWQgZm9yIGlubGluZSBmdW5jdGlvbnMuXG4gKiAgICBGb3IgSlNPTiwgeW91IG11c3QgZXNjYXBlIHF1b3RlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIHN1Y2ggYXMgbmV3bGluZSAoYGBcXG5gYCkgd2l0aCBhIGJhY2tzbGFzaC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIGZ1bmN0aW9uIHRoYXQgaW50ZXJhY3RzIHdpdGggYW4gQVdTIENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSwgeW91IGRvbid0IGhhdmUgdG8gd3JpdGUgeW91ciBvd24gZnVuY3Rpb25zIHRvIHNlbmQgcmVzcG9uc2VzIHRvIHRoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCBpbnZva2VkIHRoZSBmdW5jdGlvbi4gQVdTIENsb3VkRm9ybWF0aW9uIHByb3ZpZGVzIGEgcmVzcG9uc2UgbW9kdWxlIChbY2ZuLXJlc3BvbnNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9jZm4tbGFtYmRhLWZ1bmN0aW9uLWNvZGUtY2ZucmVzcG9uc2Vtb2R1bGUuaHRtbCkpIHRoYXQgc2ltcGxpZmllcyBzZW5kaW5nIHJlc3BvbnNlcy4gU2VlIFtVc2luZyBMYW1iZGEgd2l0aCBDbG91ZEZvcm1hdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMtY2xvdWRmb3JtYXRpb24uaHRtbCkgZm9yIGRldGFpbHMuXG4gKi9cblppcEZpbGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBTMyBrZXkgb2YgdGhlIGRlcGxveW1lbnQgcGFja2FnZS5cbiAqL1xuUzNLZXk/OiBzdHJpbmdcbi8qKlxuICogVVJJIG9mIGEgW2NvbnRhaW5lciBpbWFnZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLWltYWdlcy5odG1sKSBpbiB0aGUgQW1hem9uIEVDUiByZWdpc3RyeS5cbiAqL1xuSW1hZ2VVcmk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGZ1bmN0aW9uJ3MgQW1hem9uIENsb3VkV2F0Y2ggTG9ncyBjb25maWd1cmF0aW9uIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgZm9ybWF0IGluIHdoaWNoIExhbWJkYSBzZW5kcyB5b3VyIGZ1bmN0aW9uJ3MgYXBwbGljYXRpb24gYW5kIHN5c3RlbSBsb2dzIHRvIENsb3VkV2F0Y2guIFNlbGVjdCBiZXR3ZWVuIHBsYWluIHRleHQgYW5kIHN0cnVjdHVyZWQgSlNPTi5cbiAqL1xuTG9nRm9ybWF0PzogKFwiVGV4dFwiIHwgXCJKU09OXCIpXG4vKipcbiAqIFNldCB0aGlzIHByb3BlcnR5IHRvIGZpbHRlciB0aGUgYXBwbGljYXRpb24gbG9ncyBmb3IgeW91ciBmdW5jdGlvbiB0aGF0IExhbWJkYSBzZW5kcyB0byBDbG91ZFdhdGNoLiBMYW1iZGEgb25seSBzZW5kcyBhcHBsaWNhdGlvbiBsb2dzIGF0IHRoZSBzZWxlY3RlZCBsZXZlbCBvZiBkZXRhaWwgYW5kIGxvd2VyLCB3aGVyZSBgYFRSQUNFYGAgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgYW5kIGBgRkFUQUxgYCBpcyB0aGUgbG93ZXN0LlxuICovXG5BcHBsaWNhdGlvbkxvZ0xldmVsPzogKFwiVFJBQ0VcIiB8IFwiREVCVUdcIiB8IFwiSU5GT1wiIHwgXCJXQVJOXCIgfCBcIkVSUk9SXCIgfCBcIkZBVEFMXCIpXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24gQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgdGhlIGZ1bmN0aW9uIHNlbmRzIGxvZ3MgdG8uIEJ5IGRlZmF1bHQsIExhbWJkYSBmdW5jdGlvbnMgc2VuZCBsb2dzIHRvIGEgZGVmYXVsdCBsb2cgZ3JvdXAgbmFtZWQgYGAvYXdzL2xhbWJkYS88ZnVuY3Rpb24gbmFtZT5gYC4gVG8gdXNlIGEgZGlmZmVyZW50IGxvZyBncm91cCwgZW50ZXIgYW4gZXhpc3RpbmcgbG9nIGdyb3VwIG9yIGVudGVyIGEgbmV3IGxvZyBncm91cCBuYW1lLlxuICovXG5Mb2dHcm91cD86IHN0cmluZ1xuLyoqXG4gKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmaWx0ZXIgdGhlIHN5c3RlbSBsb2dzIGZvciB5b3VyIGZ1bmN0aW9uIHRoYXQgTGFtYmRhIHNlbmRzIHRvIENsb3VkV2F0Y2guIExhbWJkYSBvbmx5IHNlbmRzIHN5c3RlbSBsb2dzIGF0IHRoZSBzZWxlY3RlZCBsZXZlbCBvZiBkZXRhaWwgYW5kIGxvd2VyLCB3aGVyZSBgYERFQlVHYGAgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgYW5kIGBgV0FSTmBgIGlzIHRoZSBsb3dlc3QuXG4gKi9cblN5c3RlbUxvZ0xldmVsPzogKFwiREVCVUdcIiB8IFwiSU5GT1wiIHwgXCJXQVJOXCIpXG59XG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBhY2Nlc3NpYmxlIGZyb20gZnVuY3Rpb24gY29kZSBkdXJpbmcgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUga2V5LXZhbHVlIHBhaXJzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtVc2luZyBMYW1iZGEgZW52aXJvbm1lbnQgdmFyaWFibGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLWVudnZhcnMuaHRtbCkuXG4gKiAgSWYgdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBhIHRpbWUgb3IgYSBkdXJhdGlvbiwgZW5jbG9zZSB0aGUgdmFsdWUgaW4gcXVvdGVzLlxuICovXG5WYXJpYWJsZXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVpdW2EtekEtWjAtOV9dK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFRoZSBzaXplIG9mIHRoZSBmdW5jdGlvbidzIGBgL3RtcGBgIGRpcmVjdG9yeSBpbiBNQi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgNTEyLCBidXQgaXQgY2FuIGJlIGFueSB3aG9sZSBudW1iZXIgYmV0d2VlbiA1MTIgYW5kIDEwLDI0MCBNQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcGhlbWVyYWxTdG9yYWdlIHtcbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGZ1bmN0aW9uJ3MgYGAvdG1wYGAgZGlyZWN0b3J5LlxuICovXG5TaXplOiBudW1iZXJcbn1cbiJdfQ==
@@ -6,16 +6,6 @@ export interface _AWS_LAMBDA_VERSION {
6
6
  * The ARN of the version.
7
7
  */
8
8
  FunctionArn?: string;
9
- /**
10
- * The name of the Lambda function.
11
- */
12
- FunctionName: string;
13
- ProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfiguration;
14
- /**
15
- * A description for the version to override the description in the function configuration. Updates are not supported for this property.
16
- */
17
- Description?: string;
18
- RuntimePolicy?: RuntimePolicy;
19
9
  /**
20
10
  * The version number.
21
11
  */
@@ -24,6 +14,17 @@ export interface _AWS_LAMBDA_VERSION {
24
14
  * Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. Updates are not supported for this property.
25
15
  */
26
16
  CodeSha256?: string;
17
+ /**
18
+ * A description for the version to override the description in the function configuration. Updates are not supported for this property.
19
+ */
20
+ Description?: string;
21
+ /**
22
+ * The name of the Lambda function.
23
+ */
24
+ FunctionName: string;
25
+ ProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfiguration;
26
+ RuntimePolicy?: RuntimePolicy;
27
+ FunctionScalingConfig?: FunctionScalingConfig;
27
28
  }
28
29
  /**
29
30
  * Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property.
@@ -38,12 +39,25 @@ export interface ProvisionedConcurrencyConfiguration {
38
39
  * Specifies the runtime management configuration of a function. Displays runtimeVersionArn only for Manual.
39
40
  */
40
41
  export interface RuntimePolicy {
42
+ /**
43
+ * The ARN of the runtime the function is configured to use. If the runtime update mode is manual, the ARN is returned, otherwise null is returned.
44
+ */
45
+ RuntimeVersionArn?: string;
41
46
  /**
42
47
  * The runtime update mode.
43
48
  */
44
49
  UpdateRuntimeOn: string;
50
+ }
51
+ /**
52
+ * The scaling configuration to apply to the function, including minimum and maximum execution environment limits.
53
+ */
54
+ export interface FunctionScalingConfig {
45
55
  /**
46
- * The ARN of the runtime the function is configured to use. If the runtime update mode is manual, the ARN is returned, otherwise null is returned.
56
+ * The minimum number of execution environments to maintain for the function.
47
57
  */
48
- RuntimeVersionArn?: string;
58
+ MinExecutionEnvironments?: number;
59
+ /**
60
+ * The maximum number of execution environments that can be provisioned for the function.
61
+ */
62
+ MaxExecutionEnvironments?: number;
49
63
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpMYW1iZGE6OlZlcnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0xBTUJEQV9WRVJTSU9OIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgdmVyc2lvbi5cbiAqL1xuRnVuY3Rpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAqL1xuRnVuY3Rpb25OYW1lOiBzdHJpbmdcblByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc/OiBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvblxuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgdmVyc2lvbiB0byBvdmVycmlkZSB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24uIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5SdW50aW1lUG9saWN5PzogUnVudGltZVBvbGljeVxuLyoqXG4gKiBUaGUgdmVyc2lvbiBudW1iZXIuXG4gKi9cblZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogT25seSBwdWJsaXNoIGEgdmVyc2lvbiBpZiB0aGUgaGFzaCB2YWx1ZSBtYXRjaGVzIHRoZSB2YWx1ZSB0aGF0J3Mgc3BlY2lmaWVkLiBVc2UgdGhpcyBvcHRpb24gdG8gYXZvaWQgcHVibGlzaGluZyBhIHZlcnNpb24gaWYgdGhlIGZ1bmN0aW9uIGNvZGUgaGFzIGNoYW5nZWQgc2luY2UgeW91IGxhc3QgdXBkYXRlZCBpdC4gVXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAqL1xuQ29kZVNoYTI1Nj86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBjb25maWd1cmF0aW9uIGZvciBhIGZ1bmN0aW9uJ3MgdmVyc2lvbi4gVXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBhbW91bnQgb2YgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgdG8gYWxsb2NhdGUgZm9yIHRoZSB2ZXJzaW9uLlxuICovXG5Qcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zOiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBydW50aW1lIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBvZiBhIGZ1bmN0aW9uLiBEaXNwbGF5cyBydW50aW1lVmVyc2lvbkFybiBvbmx5IGZvciBNYW51YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVBvbGljeSB7XG4vKipcbiAqIFRoZSBydW50aW1lIHVwZGF0ZSBtb2RlLlxuICovXG5VcGRhdGVSdW50aW1lT246IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIHRoZSBmdW5jdGlvbiBpcyBjb25maWd1cmVkIHRvIHVzZS4gSWYgdGhlIHJ1bnRpbWUgdXBkYXRlIG1vZGUgaXMgbWFudWFsLCB0aGUgQVJOIGlzIHJldHVybmVkLCBvdGhlcndpc2UgbnVsbCBpcyByZXR1cm5lZC5cbiAqL1xuUnVudGltZVZlcnNpb25Bcm4/OiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpMYW1iZGE6OlZlcnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0xBTUJEQV9WRVJTSU9OIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgdmVyc2lvbi5cbiAqL1xuRnVuY3Rpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyLlxuICovXG5WZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIE9ubHkgcHVibGlzaCBhIHZlcnNpb24gaWYgdGhlIGhhc2ggdmFsdWUgbWF0Y2hlcyB0aGUgdmFsdWUgdGhhdCdzIHNwZWNpZmllZC4gVXNlIHRoaXMgb3B0aW9uIHRvIGF2b2lkIHB1Ymxpc2hpbmcgYSB2ZXJzaW9uIGlmIHRoZSBmdW5jdGlvbiBjb2RlIGhhcyBjaGFuZ2VkIHNpbmNlIHlvdSBsYXN0IHVwZGF0ZWQgaXQuIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG4gKi9cbkNvZGVTaGEyNTY/OiBzdHJpbmdcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBmb3IgdGhlIHZlcnNpb24gdG8gb3ZlcnJpZGUgdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBmdW5jdGlvbiBjb25maWd1cmF0aW9uLiBVcGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICovXG5GdW5jdGlvbk5hbWU6IHN0cmluZ1xuUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZz86IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWd1cmF0aW9uXG5SdW50aW1lUG9saWN5PzogUnVudGltZVBvbGljeVxuRnVuY3Rpb25TY2FsaW5nQ29uZmlnPzogRnVuY3Rpb25TY2FsaW5nQ29uZmlnXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGNvbmZpZ3VyYXRpb24gZm9yIGEgZnVuY3Rpb24ncyB2ZXJzaW9uLiBVcGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFtb3VudCBvZiBwcm92aXNpb25lZCBjb25jdXJyZW5jeSB0byBhbGxvY2F0ZSBmb3IgdGhlIHZlcnNpb24uXG4gKi9cblByb3Zpc2lvbmVkQ29uY3VycmVudEV4ZWN1dGlvbnM6IG51bWJlclxufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHJ1bnRpbWUgbWFuYWdlbWVudCBjb25maWd1cmF0aW9uIG9mIGEgZnVuY3Rpb24uIERpc3BsYXlzIHJ1bnRpbWVWZXJzaW9uQXJuIG9ubHkgZm9yIE1hbnVhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lUG9saWN5IHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgcnVudGltZSB0aGUgZnVuY3Rpb24gaXMgY29uZmlndXJlZCB0byB1c2UuIElmIHRoZSBydW50aW1lIHVwZGF0ZSBtb2RlIGlzIG1hbnVhbCwgdGhlIEFSTiBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIG51bGwgaXMgcmV0dXJuZWQuXG4gKi9cblJ1bnRpbWVWZXJzaW9uQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBydW50aW1lIHVwZGF0ZSBtb2RlLlxuICovXG5VcGRhdGVSdW50aW1lT246IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbiwgaW5jbHVkaW5nIG1pbmltdW0gYW5kIG1heGltdW0gZXhlY3V0aW9uIGVudmlyb25tZW50IGxpbWl0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNjYWxpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZXhlY3V0aW9uIGVudmlyb25tZW50cyB0byBtYWludGFpbiBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5NaW5FeGVjdXRpb25FbnZpcm9ubWVudHM/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgdGhhdCBjYW4gYmUgcHJvdmlzaW9uZWQgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuTWF4RXhlY3V0aW9uRW52aXJvbm1lbnRzPzogbnVtYmVyXG59XG4iXX0=
@@ -9,7 +9,7 @@ export interface _AWS_ORGANIZATIONS_POLICY {
9
9
  /**
10
10
  * The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2, SECURITYHUB_POLICY, S3_POLICY, INSPECTOR_POLICY, BEDROCK_POLICY, NETWORK_SECURITY_DIRECTOR_POLICY, UPGRADE_ROLLOUT_POLICY
11
11
  */
12
- Type: ("SERVICE_CONTROL_POLICY" | "AISERVICES_OPT_OUT_POLICY" | "BACKUP_POLICY" | "TAG_POLICY" | "CHATBOT_POLICY" | "RESOURCE_CONTROL_POLICY" | "DECLARATIVE_POLICY_EC2" | "SECURITYHUB_POLICY" | "S3_POLICY" | "INSPECTOR_POLICY" | "BEDROCK_POLICY" | "NETWORK_SECURITY_DIRECTOR_POLICY" | "UPGRADE_ROLLOUT_POLICY");
12
+ Type: ("SERVICE_CONTROL_POLICY" | "AISERVICES_OPT_OUT_POLICY" | "BACKUP_POLICY" | "TAG_POLICY" | "CHATBOT_POLICY" | "RESOURCE_CONTROL_POLICY" | "DECLARATIVE_POLICY_EC2" | "SECURITYHUB_POLICY" | "S3_POLICY" | "INSPECTOR_POLICY" | "BEDROCK_POLICY" | "UPGRADE_ROLLOUT_POLICY");
13
13
  /**
14
14
  * The Policy text content. For AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it.
15
15
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW9yZ2FuaXphdGlvbnMtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLW9yZ2FuaXphdGlvbnMtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBvbGljaWVzIGluIEFXUyBPcmdhbml6YXRpb25zIGVuYWJsZSB5b3UgdG8gbWFuYWdlIGRpZmZlcmVudCBmZWF0dXJlcyBvZiB0aGUgQVdTIGFjY291bnRzIGluIHlvdXIgb3JnYW5pemF0aW9uLiAgWW91IGNhbiB1c2UgcG9saWNpZXMgd2hlbiBhbGwgZmVhdHVyZXMgYXJlIGVuYWJsZWQgaW4geW91ciBvcmdhbml6YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19PUkdBTklaQVRJT05TX1BPTElDWSB7XG4vKipcbiAqIE5hbWUgb2YgdGhlIFBvbGljeVxuICovXG5OYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2YgcG9saWN5IHRvIGNyZWF0ZS4gWW91IGNhbiBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczogQUlTRVJWSUNFU19PUFRfT1VUX1BPTElDWSwgQkFDS1VQX1BPTElDWSwgU0VSVklDRV9DT05UUk9MX1BPTElDWSwgVEFHX1BPTElDWSwgQ0hBVEJPVF9QT0xJQ1ksIFJFU09VUkNFX0NPTlRST0xfUE9MSUNZLERFQ0xBUkFUSVZFX1BPTElDWV9FQzIsIFNFQ1VSSVRZSFVCX1BPTElDWSwgUzNfUE9MSUNZLCBJTlNQRUNUT1JfUE9MSUNZLCBCRURST0NLX1BPTElDWSwgTkVUV09SS19TRUNVUklUWV9ESVJFQ1RPUl9QT0xJQ1ksIFVQR1JBREVfUk9MTE9VVF9QT0xJQ1lcbiAqL1xuVHlwZTogKFwiU0VSVklDRV9DT05UUk9MX1BPTElDWVwiIHwgXCJBSVNFUlZJQ0VTX09QVF9PVVRfUE9MSUNZXCIgfCBcIkJBQ0tVUF9QT0xJQ1lcIiB8IFwiVEFHX1BPTElDWVwiIHwgXCJDSEFUQk9UX1BPTElDWVwiIHwgXCJSRVNPVVJDRV9DT05UUk9MX1BPTElDWVwiIHwgXCJERUNMQVJBVElWRV9QT0xJQ1lfRUMyXCIgfCBcIlNFQ1VSSVRZSFVCX1BPTElDWVwiIHwgXCJTM19QT0xJQ1lcIiB8IFwiSU5TUEVDVE9SX1BPTElDWVwiIHwgXCJCRURST0NLX1BPTElDWVwiIHwgXCJORVRXT1JLX1NFQ1VSSVRZX0RJUkVDVE9SX1BPTElDWVwiIHwgXCJVUEdSQURFX1JPTExPVVRfUE9MSUNZXCIpXG4vKipcbiAqIFRoZSBQb2xpY3kgdGV4dCBjb250ZW50LiBGb3IgQVdTIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlcyBmb3JtYXR0ZWQgaW4gWUFNTCwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdC4gQVdTIENsb3VkRm9ybWF0aW9uIGFsd2F5cyBjb252ZXJ0cyBhIFlBTUwgcG9saWN5IHRvIEpTT04gZm9ybWF0IGJlZm9yZSBzdWJtaXR0aW5nIGl0LlxuICovXG5Db250ZW50OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gfCBzdHJpbmcpXG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwb2xpY3lcbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogTGlzdCBvZiB1bmlxdWUgaWRlbnRpZmllcnMgKElEcykgb2YgdGhlIHJvb3QsIE9VLCBvciBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gYXR0YWNoIHRoZSBwb2xpY3kgdG9cbiAqL1xuVGFyZ2V0SWRzPzogc3RyaW5nW11cbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdGhhdCB5b3Ugd2FudCB0byBhdHRhY2ggdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcG9saWN5LiBGb3IgZWFjaCB0YWcgaW4gdGhlIGxpc3QsIHlvdSBtdXN0IHNwZWNpZnkgYm90aCBhIHRhZyBrZXkgYW5kIGEgdmFsdWUuIFlvdSBjYW4gc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBzdHJpbmcsIGJ1dCB5b3UgY2FuJ3Qgc2V0IGl0IHRvIG51bGwuXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBJZCBvZiB0aGUgUG9saWN5XG4gKi9cbklkPzogc3RyaW5nXG4vKipcbiAqIEFSTiBvZiB0aGUgUG9saWN5XG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBBIGJvb2xlYW4gdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIHBvbGljeSBpcyBhbiBBV1MgbWFuYWdlZCBwb2xpY3kuIElmIHRydWUsIHRoZW4geW91IGNhbiBhdHRhY2ggdGhlIHBvbGljeSB0byByb290cywgT1VzLCBvciBhY2NvdW50cywgYnV0IHlvdSBjYW5ub3QgZWRpdCBpdC5cbiAqL1xuQXdzTWFuYWdlZD86IGJvb2xlYW5cbn1cbi8qKlxuICogQSBjdXN0b20ga2V5LXZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIGEgcmVzb3VyY2Ugd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgaWRlbnRpZmllciwgb3IgbmFtZSwgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHN0cmluZyB2YWx1ZSB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgb2YgdGhlIHRhZy4gWW91IGNhbiBzZXQgdGhlIHZhbHVlIG9mIGEgdGFnIHRvIGFuIGVtcHR5IHN0cmluZywgYnV0IHlvdSBjYW4ndCBzZXQgdGhlIHZhbHVlIG9mIGEgdGFnIHRvIG51bGwuXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW9yZ2FuaXphdGlvbnMtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLW9yZ2FuaXphdGlvbnMtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBvbGljaWVzIGluIEFXUyBPcmdhbml6YXRpb25zIGVuYWJsZSB5b3UgdG8gbWFuYWdlIGRpZmZlcmVudCBmZWF0dXJlcyBvZiB0aGUgQVdTIGFjY291bnRzIGluIHlvdXIgb3JnYW5pemF0aW9uLiAgWW91IGNhbiB1c2UgcG9saWNpZXMgd2hlbiBhbGwgZmVhdHVyZXMgYXJlIGVuYWJsZWQgaW4geW91ciBvcmdhbml6YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19PUkdBTklaQVRJT05TX1BPTElDWSB7XG4vKipcbiAqIE5hbWUgb2YgdGhlIFBvbGljeVxuICovXG5OYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2YgcG9saWN5IHRvIGNyZWF0ZS4gWW91IGNhbiBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczogQUlTRVJWSUNFU19PUFRfT1VUX1BPTElDWSwgQkFDS1VQX1BPTElDWSwgU0VSVklDRV9DT05UUk9MX1BPTElDWSwgVEFHX1BPTElDWSwgQ0hBVEJPVF9QT0xJQ1ksIFJFU09VUkNFX0NPTlRST0xfUE9MSUNZLERFQ0xBUkFUSVZFX1BPTElDWV9FQzIsIFNFQ1VSSVRZSFVCX1BPTElDWSwgUzNfUE9MSUNZLCBJTlNQRUNUT1JfUE9MSUNZLCBCRURST0NLX1BPTElDWSwgTkVUV09SS19TRUNVUklUWV9ESVJFQ1RPUl9QT0xJQ1ksIFVQR1JBREVfUk9MTE9VVF9QT0xJQ1lcbiAqL1xuVHlwZTogKFwiU0VSVklDRV9DT05UUk9MX1BPTElDWVwiIHwgXCJBSVNFUlZJQ0VTX09QVF9PVVRfUE9MSUNZXCIgfCBcIkJBQ0tVUF9QT0xJQ1lcIiB8IFwiVEFHX1BPTElDWVwiIHwgXCJDSEFUQk9UX1BPTElDWVwiIHwgXCJSRVNPVVJDRV9DT05UUk9MX1BPTElDWVwiIHwgXCJERUNMQVJBVElWRV9QT0xJQ1lfRUMyXCIgfCBcIlNFQ1VSSVRZSFVCX1BPTElDWVwiIHwgXCJTM19QT0xJQ1lcIiB8IFwiSU5TUEVDVE9SX1BPTElDWVwiIHwgXCJCRURST0NLX1BPTElDWVwiIHwgXCJVUEdSQURFX1JPTExPVVRfUE9MSUNZXCIpXG4vKipcbiAqIFRoZSBQb2xpY3kgdGV4dCBjb250ZW50LiBGb3IgQVdTIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlcyBmb3JtYXR0ZWQgaW4gWUFNTCwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdC4gQVdTIENsb3VkRm9ybWF0aW9uIGFsd2F5cyBjb252ZXJ0cyBhIFlBTUwgcG9saWN5IHRvIEpTT04gZm9ybWF0IGJlZm9yZSBzdWJtaXR0aW5nIGl0LlxuICovXG5Db250ZW50OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gfCBzdHJpbmcpXG4vKipcbiAqIEh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwb2xpY3lcbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogTGlzdCBvZiB1bmlxdWUgaWRlbnRpZmllcnMgKElEcykgb2YgdGhlIHJvb3QsIE9VLCBvciBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gYXR0YWNoIHRoZSBwb2xpY3kgdG9cbiAqL1xuVGFyZ2V0SWRzPzogc3RyaW5nW11cbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdGhhdCB5b3Ugd2FudCB0byBhdHRhY2ggdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcG9saWN5LiBGb3IgZWFjaCB0YWcgaW4gdGhlIGxpc3QsIHlvdSBtdXN0IHNwZWNpZnkgYm90aCBhIHRhZyBrZXkgYW5kIGEgdmFsdWUuIFlvdSBjYW4gc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBzdHJpbmcsIGJ1dCB5b3UgY2FuJ3Qgc2V0IGl0IHRvIG51bGwuXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBJZCBvZiB0aGUgUG9saWN5XG4gKi9cbklkPzogc3RyaW5nXG4vKipcbiAqIEFSTiBvZiB0aGUgUG9saWN5XG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBBIGJvb2xlYW4gdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIHBvbGljeSBpcyBhbiBBV1MgbWFuYWdlZCBwb2xpY3kuIElmIHRydWUsIHRoZW4geW91IGNhbiBhdHRhY2ggdGhlIHBvbGljeSB0byByb290cywgT1VzLCBvciBhY2NvdW50cywgYnV0IHlvdSBjYW5ub3QgZWRpdCBpdC5cbiAqL1xuQXdzTWFuYWdlZD86IGJvb2xlYW5cbn1cbi8qKlxuICogQSBjdXN0b20ga2V5LXZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIGEgcmVzb3VyY2Ugd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgaWRlbnRpZmllciwgb3IgbmFtZSwgb2YgdGhlIHRhZy5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHN0cmluZyB2YWx1ZSB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgb2YgdGhlIHRhZy4gWW91IGNhbiBzZXQgdGhlIHZhbHVlIG9mIGEgdGFnIHRvIGFuIGVtcHR5IHN0cmluZywgYnV0IHlvdSBjYW4ndCBzZXQgdGhlIHZhbHVlIG9mIGEgdGFnIHRvIG51bGwuXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -858,6 +858,7 @@ import { _AWS_LAKEFORMATION_RESOURCE } from "./cfn-resource-types/aws-lakeformat
858
858
  import { _AWS_LAKEFORMATION_TAG } from "./cfn-resource-types/aws-lakeformation-tag";
859
859
  import { _AWS_LAKEFORMATION_TAGASSOCIATION } from "./cfn-resource-types/aws-lakeformation-tagassociation";
860
860
  import { _AWS_LAMBDA_ALIAS } from "./cfn-resource-types/aws-lambda-alias";
861
+ import { _AWS_LAMBDA_CAPACITYPROVIDER } from "./cfn-resource-types/aws-lambda-capacityprovider";
861
862
  import { _AWS_LAMBDA_CODESIGNINGCONFIG } from "./cfn-resource-types/aws-lambda-codesigningconfig";
862
863
  import { _AWS_LAMBDA_EVENTINVOKECONFIG } from "./cfn-resource-types/aws-lambda-eventinvokeconfig";
863
864
  import { _AWS_LAMBDA_EVENTSOURCEMAPPING } from "./cfn-resource-types/aws-lambda-eventsourcemapping";
@@ -2349,6 +2350,7 @@ export declare const AWS_LAKEFORMATION_RESOURCE: RESOURCE<_AWS_LAKEFORMATION_RES
2349
2350
  export declare const AWS_LAKEFORMATION_TAG: RESOURCE<_AWS_LAKEFORMATION_TAG>;
2350
2351
  export declare const AWS_LAKEFORMATION_TAGASSOCIATION: RESOURCE<_AWS_LAKEFORMATION_TAGASSOCIATION>;
2351
2352
  export declare const AWS_LAMBDA_ALIAS: RESOURCE<_AWS_LAMBDA_ALIAS>;
2353
+ export declare const AWS_LAMBDA_CAPACITYPROVIDER: RESOURCE<_AWS_LAMBDA_CAPACITYPROVIDER>;
2352
2354
  export declare const AWS_LAMBDA_CODESIGNINGCONFIG: RESOURCE<_AWS_LAMBDA_CODESIGNINGCONFIG>;
2353
2355
  export declare const AWS_LAMBDA_EVENTINVOKECONFIG: RESOURCE<_AWS_LAMBDA_EVENTINVOKECONFIG>;
2354
2356
  export declare const AWS_LAMBDA_EVENTSOURCEMAPPING: RESOURCE<_AWS_LAMBDA_EVENTSOURCEMAPPING>;