@effect-aws/client-bedrock 1.0.0 → 1.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-aws/client-bedrock
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`b24f980`](https://github.com/floydspace/effect-aws/commit/b24f98045ee3383c54d1152054e5b77f01d5f5e3) Thanks [@floydspace](https://github.com/floydspace)! - update services
8
+
9
+ ## 1.1.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#80](https://github.com/floydspace/effect-aws/pull/80) [`4b16fbe`](https://github.com/floydspace/effect-aws/commit/4b16fbebce8131df7798ee92f43cf6b7df3e907c) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
14
+
3
15
  ## 1.0.0
4
16
 
5
17
  ### Major Changes
package/README.md CHANGED
@@ -14,13 +14,13 @@ npm install --save @effect-aws/client-bedrock
14
14
  With default BedrockClient instance:
15
15
 
16
16
  ```typescript
17
- import { BedrockService, DefaultBedrockServiceLayer } from "@effect-aws/client-bedrock";
17
+ import { Bedrock } from "@effect-aws/client-bedrock";
18
18
 
19
- const program = BedrockService.listCustomModels(args);
19
+ const program = Bedrock.listCustomModels(args);
20
20
 
21
21
  const result = pipe(
22
22
  program,
23
- Effect.provide(DefaultBedrockServiceLayer),
23
+ Effect.provide(Bedrock.defaultLayer),
24
24
  Effect.runPromise,
25
25
  );
26
26
  ```
@@ -28,23 +28,15 @@ const result = pipe(
28
28
  With custom BedrockClient instance:
29
29
 
30
30
  ```typescript
31
- import {
32
- BedrockService,
33
- BaseBedrockServiceLayer,
34
- BedrockClientInstance,
35
- } from "@effect-aws/client-bedrock";
31
+ import { Bedrock } from "@effect-aws/client-bedrock";
36
32
 
37
- const program = BedrockService.listCustomModels(args);
38
-
39
- const BedrockClientInstanceLayer = Layer.succeed(
40
- BedrockClientInstance,
41
- new BedrockClient({ region: "eu-central-1" }),
42
- );
33
+ const program = Bedrock.listCustomModels(args);
43
34
 
44
35
  const result = await pipe(
45
36
  program,
46
- Effect.provide(BaseBedrockServiceLayer),
47
- Effect.provide(BedrockClientInstanceLayer),
37
+ Effect.provide(
38
+ Bedrock.baseLayer(() => new BedrockClient({ region: "eu-central-1" })),
39
+ ),
48
40
  Effect.runPromise,
49
41
  );
50
42
  ```
@@ -52,34 +44,15 @@ const result = await pipe(
52
44
  With custom BedrockClient configuration:
53
45
 
54
46
  ```typescript
55
- import {
56
- BedrockService,
57
- BaseBedrockServiceLayer,
58
- DefaultBedrockClientConfigLayer,
59
- BedrockClientInstance,
60
- BedrockClientInstanceConfig,
61
- } from "@effect-aws/client-bedrock";
62
-
63
- const program = BedrockService.listCustomModels(args);
64
-
65
- const BedrockClientInstanceLayer = Layer.provide(
66
- Layer.effect(
67
- BedrockClientInstance,
68
- BedrockClientInstanceConfig.pipe(
69
- Effect.map(
70
- (config) => new BedrockClient({ ...config, region: "eu-central-1" }),
71
- ),
72
- ),
73
- ),
74
- DefaultBedrockClientConfigLayer,
75
- );
47
+ import { Bedrock } from "@effect-aws/client-bedrock";
48
+
49
+ const program = Bedrock.listCustomModels(args);
76
50
 
77
51
  const result = await pipe(
78
52
  program,
79
- Effect.provide(BaseBedrockServiceLayer),
80
- Effect.provide(BedrockClientInstanceLayer),
53
+ Effect.provide(Bedrock.layer({ region: "eu-central-1" })),
81
54
  Effect.runPromiseExit,
82
55
  );
83
56
  ```
84
57
 
85
- or map over `DefaultBedrockClientConfigLayer` layer context and update the configuration...
58
+ or use `Bedrock.baseLayer((default) => new BedrockClient({ ...default, region: "eu-central-1" }))`
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { type BatchDeleteEvaluationJobCommandInput, type BatchDeleteEvaluationJobCommandOutput, type CreateEvaluationJobCommandInput, type CreateEvaluationJobCommandOutput, type CreateGuardrailCommandInput, type CreateGuardrailCommandOutput, type CreateGuardrailVersionCommandInput, type CreateGuardrailVersionCommandOutput, type CreateInferenceProfileCommandInput, type CreateInferenceProfileCommandOutput, type CreateModelCopyJobCommandInput, type CreateModelCopyJobCommandOutput, type CreateModelCustomizationJobCommandInput, type CreateModelCustomizationJobCommandOutput, type CreateModelImportJobCommandInput, type CreateModelImportJobCommandOutput, type CreateModelInvocationJobCommandInput, type CreateModelInvocationJobCommandOutput, type CreateProvisionedModelThroughputCommandInput, type CreateProvisionedModelThroughputCommandOutput, type DeleteCustomModelCommandInput, type DeleteCustomModelCommandOutput, type DeleteGuardrailCommandInput, type DeleteGuardrailCommandOutput, type DeleteImportedModelCommandInput, type DeleteImportedModelCommandOutput, type DeleteInferenceProfileCommandInput, type DeleteInferenceProfileCommandOutput, type DeleteModelInvocationLoggingConfigurationCommandInput, type DeleteModelInvocationLoggingConfigurationCommandOutput, type DeleteProvisionedModelThroughputCommandInput, type DeleteProvisionedModelThroughputCommandOutput, type GetCustomModelCommandInput, type GetCustomModelCommandOutput, type GetEvaluationJobCommandInput, type GetEvaluationJobCommandOutput, type GetFoundationModelCommandInput, type GetFoundationModelCommandOutput, type GetGuardrailCommandInput, type GetGuardrailCommandOutput, type GetImportedModelCommandInput, type GetImportedModelCommandOutput, type GetInferenceProfileCommandInput, type GetInferenceProfileCommandOutput, type GetModelCopyJobCommandInput, type GetModelCopyJobCommandOutput, type GetModelCustomizationJobCommandInput, type GetModelCustomizationJobCommandOutput, type GetModelImportJobCommandInput, type GetModelImportJobCommandOutput, type GetModelInvocationJobCommandInput, type GetModelInvocationJobCommandOutput, type GetModelInvocationLoggingConfigurationCommandInput, type GetModelInvocationLoggingConfigurationCommandOutput, type GetProvisionedModelThroughputCommandInput, type GetProvisionedModelThroughputCommandOutput, type ListCustomModelsCommandInput, type ListCustomModelsCommandOutput, type ListEvaluationJobsCommandInput, type ListEvaluationJobsCommandOutput, type ListFoundationModelsCommandInput, type ListFoundationModelsCommandOutput, type ListGuardrailsCommandInput, type ListGuardrailsCommandOutput, type ListImportedModelsCommandInput, type ListImportedModelsCommandOutput, type ListInferenceProfilesCommandInput, type ListInferenceProfilesCommandOutput, type ListModelCopyJobsCommandInput, type ListModelCopyJobsCommandOutput, type ListModelCustomizationJobsCommandInput, type ListModelCustomizationJobsCommandOutput, type ListModelImportJobsCommandInput, type ListModelImportJobsCommandOutput, type ListModelInvocationJobsCommandInput, type ListModelInvocationJobsCommandOutput, type ListProvisionedModelThroughputsCommandInput, type ListProvisionedModelThroughputsCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type PutModelInvocationLoggingConfigurationCommandInput, type PutModelInvocationLoggingConfigurationCommandOutput, type StopEvaluationJobCommandInput, type StopEvaluationJobCommandOutput, type StopModelCustomizationJobCommandInput, type StopModelCustomizationJobCommandOutput, type StopModelInvocationJobCommandInput, type StopModelInvocationJobCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateGuardrailCommandInput, type UpdateGuardrailCommandOutput, type UpdateProvisionedModelThroughputCommandInput, type UpdateProvisionedModelThroughputCommandOutput } from "@aws-sdk/client-bedrock";
4
+ import { type BedrockClient, type BedrockClientConfig, type BatchDeleteEvaluationJobCommandInput, type BatchDeleteEvaluationJobCommandOutput, type CreateEvaluationJobCommandInput, type CreateEvaluationJobCommandOutput, type CreateGuardrailCommandInput, type CreateGuardrailCommandOutput, type CreateGuardrailVersionCommandInput, type CreateGuardrailVersionCommandOutput, type CreateInferenceProfileCommandInput, type CreateInferenceProfileCommandOutput, type CreateMarketplaceModelEndpointCommandInput, type CreateMarketplaceModelEndpointCommandOutput, type CreateModelCopyJobCommandInput, type CreateModelCopyJobCommandOutput, type CreateModelCustomizationJobCommandInput, type CreateModelCustomizationJobCommandOutput, type CreateModelImportJobCommandInput, type CreateModelImportJobCommandOutput, type CreateModelInvocationJobCommandInput, type CreateModelInvocationJobCommandOutput, type CreateProvisionedModelThroughputCommandInput, type CreateProvisionedModelThroughputCommandOutput, type DeleteCustomModelCommandInput, type DeleteCustomModelCommandOutput, type DeleteGuardrailCommandInput, type DeleteGuardrailCommandOutput, type DeleteImportedModelCommandInput, type DeleteImportedModelCommandOutput, type DeleteInferenceProfileCommandInput, type DeleteInferenceProfileCommandOutput, type DeleteMarketplaceModelEndpointCommandInput, type DeleteMarketplaceModelEndpointCommandOutput, type DeleteModelInvocationLoggingConfigurationCommandInput, type DeleteModelInvocationLoggingConfigurationCommandOutput, type DeleteProvisionedModelThroughputCommandInput, type DeleteProvisionedModelThroughputCommandOutput, type DeregisterMarketplaceModelEndpointCommandInput, type DeregisterMarketplaceModelEndpointCommandOutput, type GetCustomModelCommandInput, type GetCustomModelCommandOutput, type GetEvaluationJobCommandInput, type GetEvaluationJobCommandOutput, type GetFoundationModelCommandInput, type GetFoundationModelCommandOutput, type GetGuardrailCommandInput, type GetGuardrailCommandOutput, type GetImportedModelCommandInput, type GetImportedModelCommandOutput, type GetInferenceProfileCommandInput, type GetInferenceProfileCommandOutput, type GetMarketplaceModelEndpointCommandInput, type GetMarketplaceModelEndpointCommandOutput, type GetModelCopyJobCommandInput, type GetModelCopyJobCommandOutput, type GetModelCustomizationJobCommandInput, type GetModelCustomizationJobCommandOutput, type GetModelImportJobCommandInput, type GetModelImportJobCommandOutput, type GetModelInvocationJobCommandInput, type GetModelInvocationJobCommandOutput, type GetModelInvocationLoggingConfigurationCommandInput, type GetModelInvocationLoggingConfigurationCommandOutput, type GetPromptRouterCommandInput, type GetPromptRouterCommandOutput, type GetProvisionedModelThroughputCommandInput, type GetProvisionedModelThroughputCommandOutput, type ListCustomModelsCommandInput, type ListCustomModelsCommandOutput, type ListEvaluationJobsCommandInput, type ListEvaluationJobsCommandOutput, type ListFoundationModelsCommandInput, type ListFoundationModelsCommandOutput, type ListGuardrailsCommandInput, type ListGuardrailsCommandOutput, type ListImportedModelsCommandInput, type ListImportedModelsCommandOutput, type ListInferenceProfilesCommandInput, type ListInferenceProfilesCommandOutput, type ListMarketplaceModelEndpointsCommandInput, type ListMarketplaceModelEndpointsCommandOutput, type ListModelCopyJobsCommandInput, type ListModelCopyJobsCommandOutput, type ListModelCustomizationJobsCommandInput, type ListModelCustomizationJobsCommandOutput, type ListModelImportJobsCommandInput, type ListModelImportJobsCommandOutput, type ListModelInvocationJobsCommandInput, type ListModelInvocationJobsCommandOutput, type ListPromptRoutersCommandInput, type ListPromptRoutersCommandOutput, type ListProvisionedModelThroughputsCommandInput, type ListProvisionedModelThroughputsCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type PutModelInvocationLoggingConfigurationCommandInput, type PutModelInvocationLoggingConfigurationCommandOutput, type RegisterMarketplaceModelEndpointCommandInput, type RegisterMarketplaceModelEndpointCommandOutput, type StopEvaluationJobCommandInput, type StopEvaluationJobCommandOutput, type StopModelCustomizationJobCommandInput, type StopModelCustomizationJobCommandOutput, type StopModelInvocationJobCommandInput, type StopModelInvocationJobCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateGuardrailCommandInput, type UpdateGuardrailCommandOutput, type UpdateMarketplaceModelEndpointCommandInput, type UpdateMarketplaceModelEndpointCommandOutput, type UpdateProvisionedModelThroughputCommandInput, type UpdateProvisionedModelThroughputCommandOutput } from "@aws-sdk/client-bedrock";
5
5
  import { Effect, Layer } from "effect";
6
6
  import { BedrockClientInstance } from "./BedrockClientInstance";
7
- import { AccessDeniedError, ConflictError, InternalServerError, ResourceNotFoundError, ServiceQuotaExceededError, ThrottlingError, TooManyTagsError, ValidationError, SdkError } from "./Errors";
7
+ import { BedrockClientInstanceConfig } from "./BedrockClientInstanceConfig";
8
+ import { AccessDeniedError, ConflictError, InternalServerError, ResourceNotFoundError, ServiceQuotaExceededError, ServiceUnavailableError, ThrottlingError, TooManyTagsError, ValidationError, SdkError } from "./Errors";
8
9
  /**
9
- * @since 1.0.1
10
+ * @since 1.0.0
10
11
  */
11
12
  export interface HttpHandlerOptions {
12
13
  /**
@@ -37,6 +38,10 @@ interface BedrockService$ {
37
38
  * @see {@link CreateInferenceProfileCommand}
38
39
  */
39
40
  createInferenceProfile(args: CreateInferenceProfileCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateInferenceProfileCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | TooManyTagsError | ValidationError>;
41
+ /**
42
+ * @see {@link CreateMarketplaceModelEndpointCommand}
43
+ */
44
+ createMarketplaceModelEndpoint(args: CreateMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError>;
40
45
  /**
41
46
  * @see {@link CreateModelCopyJobCommand}
42
47
  */
@@ -73,6 +78,10 @@ interface BedrockService$ {
73
78
  * @see {@link DeleteInferenceProfileCommand}
74
79
  */
75
80
  deleteInferenceProfile(args: DeleteInferenceProfileCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteInferenceProfileCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
81
+ /**
82
+ * @see {@link DeleteMarketplaceModelEndpointCommand}
83
+ */
84
+ deleteMarketplaceModelEndpoint(args: DeleteMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
76
85
  /**
77
86
  * @see {@link DeleteModelInvocationLoggingConfigurationCommand}
78
87
  */
@@ -81,6 +90,10 @@ interface BedrockService$ {
81
90
  * @see {@link DeleteProvisionedModelThroughputCommand}
82
91
  */
83
92
  deleteProvisionedModelThroughput(args: DeleteProvisionedModelThroughputCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteProvisionedModelThroughputCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
93
+ /**
94
+ * @see {@link DeregisterMarketplaceModelEndpointCommand}
95
+ */
96
+ deregisterMarketplaceModelEndpoint(args: DeregisterMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeregisterMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ServiceUnavailableError | ThrottlingError | ValidationError>;
84
97
  /**
85
98
  * @see {@link GetCustomModelCommand}
86
99
  */
@@ -105,6 +118,10 @@ interface BedrockService$ {
105
118
  * @see {@link GetInferenceProfileCommand}
106
119
  */
107
120
  getInferenceProfile(args: GetInferenceProfileCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetInferenceProfileCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
121
+ /**
122
+ * @see {@link GetMarketplaceModelEndpointCommand}
123
+ */
124
+ getMarketplaceModelEndpoint(args: GetMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
108
125
  /**
109
126
  * @see {@link GetModelCopyJobCommand}
110
127
  */
@@ -125,6 +142,10 @@ interface BedrockService$ {
125
142
  * @see {@link GetModelInvocationLoggingConfigurationCommand}
126
143
  */
127
144
  getModelInvocationLoggingConfiguration(args: GetModelInvocationLoggingConfigurationCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetModelInvocationLoggingConfigurationCommandOutput, SdkError | AccessDeniedError | InternalServerError | ThrottlingError>;
145
+ /**
146
+ * @see {@link GetPromptRouterCommand}
147
+ */
148
+ getPromptRouter(args: GetPromptRouterCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetPromptRouterCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
128
149
  /**
129
150
  * @see {@link GetProvisionedModelThroughputCommand}
130
151
  */
@@ -153,6 +174,10 @@ interface BedrockService$ {
153
174
  * @see {@link ListInferenceProfilesCommand}
154
175
  */
155
176
  listInferenceProfiles(args: ListInferenceProfilesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListInferenceProfilesCommandOutput, SdkError | AccessDeniedError | InternalServerError | ThrottlingError | ValidationError>;
177
+ /**
178
+ * @see {@link ListMarketplaceModelEndpointsCommand}
179
+ */
180
+ listMarketplaceModelEndpoints(args: ListMarketplaceModelEndpointsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListMarketplaceModelEndpointsCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
156
181
  /**
157
182
  * @see {@link ListModelCopyJobsCommand}
158
183
  */
@@ -169,6 +194,10 @@ interface BedrockService$ {
169
194
  * @see {@link ListModelInvocationJobsCommand}
170
195
  */
171
196
  listModelInvocationJobs(args: ListModelInvocationJobsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListModelInvocationJobsCommandOutput, SdkError | AccessDeniedError | InternalServerError | ThrottlingError | ValidationError>;
197
+ /**
198
+ * @see {@link ListPromptRoutersCommand}
199
+ */
200
+ listPromptRouters(args: ListPromptRoutersCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListPromptRoutersCommandOutput, SdkError | AccessDeniedError | InternalServerError | ThrottlingError | ValidationError>;
172
201
  /**
173
202
  * @see {@link ListProvisionedModelThroughputsCommand}
174
203
  */
@@ -181,6 +210,10 @@ interface BedrockService$ {
181
210
  * @see {@link PutModelInvocationLoggingConfigurationCommand}
182
211
  */
183
212
  putModelInvocationLoggingConfiguration(args: PutModelInvocationLoggingConfigurationCommandInput, options?: HttpHandlerOptions): Effect.Effect<PutModelInvocationLoggingConfigurationCommandOutput, SdkError | AccessDeniedError | InternalServerError | ThrottlingError | ValidationError>;
213
+ /**
214
+ * @see {@link RegisterMarketplaceModelEndpointCommand}
215
+ */
216
+ registerMarketplaceModelEndpoint(args: RegisterMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<RegisterMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ServiceUnavailableError | ThrottlingError | ValidationError>;
184
217
  /**
185
218
  * @see {@link StopEvaluationJobCommand}
186
219
  */
@@ -205,11 +238,20 @@ interface BedrockService$ {
205
238
  * @see {@link UpdateGuardrailCommand}
206
239
  */
207
240
  updateGuardrail(args: UpdateGuardrailCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateGuardrailCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError>;
241
+ /**
242
+ * @see {@link UpdateMarketplaceModelEndpointCommand}
243
+ */
244
+ updateMarketplaceModelEndpoint(args: UpdateMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateMarketplaceModelEndpointCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError>;
208
245
  /**
209
246
  * @see {@link UpdateProvisionedModelThroughputCommand}
210
247
  */
211
248
  updateProvisionedModelThroughput(args: UpdateProvisionedModelThroughputCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateProvisionedModelThroughputCommandOutput, SdkError | AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError>;
212
249
  }
250
+ /**
251
+ * @since 1.0.0
252
+ * @category constructors
253
+ */
254
+ export declare const makeBedrockService: Effect.Effect<BedrockService$, never, BedrockClientInstance>;
213
255
  declare const BedrockService_base: import("effect/Context").TagClass<BedrockService, "@effect-aws/client-bedrock/BedrockService", BedrockService$> & {
214
256
  readonly _: Effect.Effect<BedrockService$["_"], never, BedrockService>;
215
257
  batchDeleteEvaluationJob: (args: BatchDeleteEvaluationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<BatchDeleteEvaluationJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
@@ -217,6 +259,7 @@ declare const BedrockService_base: import("effect/Context").TagClass<BedrockServ
217
259
  createGuardrail: (args: CreateGuardrailCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateGuardrailCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | TooManyTagsError | ValidationError | SdkError, BedrockService>;
218
260
  createGuardrailVersion: (args: CreateGuardrailVersionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateGuardrailVersionCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError | SdkError, BedrockService>;
219
261
  createInferenceProfile: (args: CreateInferenceProfileCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateInferenceProfileCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | TooManyTagsError | ValidationError | SdkError, BedrockService>;
262
+ createMarketplaceModelEndpoint: (args: CreateMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateMarketplaceModelEndpointCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError | SdkError, BedrockService>;
220
263
  createModelCopyJob: (args: CreateModelCopyJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateModelCopyJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | TooManyTagsError | SdkError, BedrockService>;
221
264
  createModelCustomizationJob: (args: CreateModelCustomizationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateModelCustomizationJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | TooManyTagsError | ValidationError | SdkError, BedrockService>;
222
265
  createModelImportJob: (args: CreateModelImportJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateModelImportJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | TooManyTagsError | ValidationError | SdkError, BedrockService>;
@@ -226,19 +269,23 @@ declare const BedrockService_base: import("effect/Context").TagClass<BedrockServ
226
269
  deleteGuardrail: (args: DeleteGuardrailCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteGuardrailCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
227
270
  deleteImportedModel: (args: DeleteImportedModelCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteImportedModelCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
228
271
  deleteInferenceProfile: (args: DeleteInferenceProfileCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteInferenceProfileCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
272
+ deleteMarketplaceModelEndpoint: (args: DeleteMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteMarketplaceModelEndpointCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
229
273
  deleteModelInvocationLoggingConfiguration: (args: DeleteModelInvocationLoggingConfigurationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteModelInvocationLoggingConfigurationCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | SdkError, BedrockService>;
230
274
  deleteProvisionedModelThroughput: (args: DeleteProvisionedModelThroughputCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteProvisionedModelThroughputCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
275
+ deregisterMarketplaceModelEndpoint: (args: DeregisterMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeregisterMarketplaceModelEndpointCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, BedrockService>;
231
276
  getCustomModel: (args: GetCustomModelCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetCustomModelCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
232
277
  getEvaluationJob: (args: GetEvaluationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetEvaluationJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
233
278
  getFoundationModel: (args: GetFoundationModelCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetFoundationModelCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
234
279
  getGuardrail: (args: GetGuardrailCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetGuardrailCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
235
280
  getImportedModel: (args: GetImportedModelCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetImportedModelCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
236
281
  getInferenceProfile: (args: GetInferenceProfileCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetInferenceProfileCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
282
+ getMarketplaceModelEndpoint: (args: GetMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetMarketplaceModelEndpointCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
237
283
  getModelCopyJob: (args: GetModelCopyJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetModelCopyJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
238
284
  getModelCustomizationJob: (args: GetModelCustomizationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetModelCustomizationJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
239
285
  getModelImportJob: (args: GetModelImportJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetModelImportJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
240
286
  getModelInvocationJob: (args: GetModelInvocationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetModelInvocationJobCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
241
287
  getModelInvocationLoggingConfiguration: (args: GetModelInvocationLoggingConfigurationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetModelInvocationLoggingConfigurationCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | SdkError, BedrockService>;
288
+ getPromptRouter: (args: GetPromptRouterCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetPromptRouterCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
242
289
  getProvisionedModelThroughput: (args: GetProvisionedModelThroughputCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetProvisionedModelThroughputCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
243
290
  listCustomModels: (args: ListCustomModelsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListCustomModelsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
244
291
  listEvaluationJobs: (args: ListEvaluationJobsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListEvaluationJobsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
@@ -246,19 +293,23 @@ declare const BedrockService_base: import("effect/Context").TagClass<BedrockServ
246
293
  listGuardrails: (args: ListGuardrailsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListGuardrailsCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
247
294
  listImportedModels: (args: ListImportedModelsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListImportedModelsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
248
295
  listInferenceProfiles: (args: ListInferenceProfilesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListInferenceProfilesCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
296
+ listMarketplaceModelEndpoints: (args: ListMarketplaceModelEndpointsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListMarketplaceModelEndpointsCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
249
297
  listModelCopyJobs: (args: ListModelCopyJobsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListModelCopyJobsCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
250
298
  listModelCustomizationJobs: (args: ListModelCustomizationJobsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListModelCustomizationJobsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
251
299
  listModelImportJobs: (args: ListModelImportJobsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListModelImportJobsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
252
300
  listModelInvocationJobs: (args: ListModelInvocationJobsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListModelInvocationJobsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
301
+ listPromptRouters: (args: ListPromptRoutersCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListPromptRoutersCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
253
302
  listProvisionedModelThroughputs: (args: ListProvisionedModelThroughputsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListProvisionedModelThroughputsCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
254
303
  listTagsForResource: (args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsForResourceCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
255
304
  putModelInvocationLoggingConfiguration: (args: PutModelInvocationLoggingConfigurationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PutModelInvocationLoggingConfigurationCommandOutput, AccessDeniedError | InternalServerError | ThrottlingError | ValidationError | SdkError, BedrockService>;
305
+ registerMarketplaceModelEndpoint: (args: RegisterMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RegisterMarketplaceModelEndpointCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ServiceUnavailableError | ThrottlingError | ValidationError | SdkError, BedrockService>;
256
306
  stopEvaluationJob: (args: StopEvaluationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopEvaluationJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
257
307
  stopModelCustomizationJob: (args: StopModelCustomizationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopModelCustomizationJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
258
308
  stopModelInvocationJob: (args: StopModelInvocationJobCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopModelInvocationJobCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
259
309
  tagResource: (args: TagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | TooManyTagsError | ValidationError | SdkError, BedrockService>;
260
310
  untagResource: (args: UntagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
261
311
  updateGuardrail: (args: UpdateGuardrailCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateGuardrailCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError | SdkError, BedrockService>;
312
+ updateMarketplaceModelEndpoint: (args: UpdateMarketplaceModelEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateMarketplaceModelEndpointCommandOutput, AccessDeniedError | ConflictError | InternalServerError | ResourceNotFoundError | ServiceQuotaExceededError | ThrottlingError | ValidationError | SdkError, BedrockService>;
262
313
  updateProvisionedModelThroughput: (args: UpdateProvisionedModelThroughputCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateProvisionedModelThroughputCommandOutput, AccessDeniedError | InternalServerError | ResourceNotFoundError | ThrottlingError | ValidationError | SdkError, BedrockService>;
263
314
  } & {
264
315
  use: <X>(body: (_: BedrockService$) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | BedrockService> : Effect.Effect<X, never, BedrockService>;
@@ -268,25 +319,32 @@ declare const BedrockService_base: import("effect/Context").TagClass<BedrockServ
268
319
  * @category models
269
320
  */
270
321
  export declare class BedrockService extends BedrockService_base {
322
+ static readonly defaultLayer: Layer.Layer<BedrockService, never, never>;
323
+ static readonly layer: (config: BedrockClientConfig) => Layer.Layer<BedrockService, never, never>;
324
+ static readonly baseLayer: (evaluate: (defaultConfig: BedrockClientConfig) => BedrockClient) => Layer.Layer<BedrockService, never, never>;
271
325
  }
272
326
  /**
273
327
  * @since 1.0.0
274
- * @category constructors
328
+ * @category models
329
+ * @alias BedrockService
275
330
  */
276
- export declare const makeBedrockService: Effect.Effect<BedrockService$, never, BedrockClientInstance>;
331
+ export declare const Bedrock: typeof BedrockService;
277
332
  /**
278
333
  * @since 1.0.0
279
334
  * @category layers
335
+ * @deprecated use Bedrock.baseLayer instead
280
336
  */
281
337
  export declare const BaseBedrockServiceLayer: Layer.Layer<BedrockService, never, BedrockClientInstance>;
282
338
  /**
283
339
  * @since 1.0.0
284
340
  * @category layers
341
+ * @deprecated use Bedrock.layer instead
285
342
  */
286
- export declare const BedrockServiceLayer: Layer.Layer<BedrockService, never, import("./BedrockClientInstanceConfig").BedrockClientInstanceConfig>;
343
+ export declare const BedrockServiceLayer: Layer.Layer<BedrockService, never, BedrockClientInstanceConfig>;
287
344
  /**
288
345
  * @since 1.0.0
289
346
  * @category layers
347
+ * @deprecated use Bedrock.defaultLayer instead
290
348
  */
291
349
  export declare const DefaultBedrockServiceLayer: Layer.Layer<BedrockService, never, never>;
292
350
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultBedrockServiceLayer = exports.BedrockServiceLayer = exports.BaseBedrockServiceLayer = exports.makeBedrockService = exports.BedrockService = void 0;
4
+ exports.DefaultBedrockServiceLayer = exports.BedrockServiceLayer = exports.BaseBedrockServiceLayer = exports.Bedrock = exports.BedrockService = exports.makeBedrockService = void 0;
4
5
  /**
5
6
  * @since 1.0.0
6
7
  */
@@ -15,6 +16,7 @@ const commands = {
15
16
  CreateGuardrailCommand: client_bedrock_1.CreateGuardrailCommand,
16
17
  CreateGuardrailVersionCommand: client_bedrock_1.CreateGuardrailVersionCommand,
17
18
  CreateInferenceProfileCommand: client_bedrock_1.CreateInferenceProfileCommand,
19
+ CreateMarketplaceModelEndpointCommand: client_bedrock_1.CreateMarketplaceModelEndpointCommand,
18
20
  CreateModelCopyJobCommand: client_bedrock_1.CreateModelCopyJobCommand,
19
21
  CreateModelCustomizationJobCommand: client_bedrock_1.CreateModelCustomizationJobCommand,
20
22
  CreateModelImportJobCommand: client_bedrock_1.CreateModelImportJobCommand,
@@ -24,19 +26,23 @@ const commands = {
24
26
  DeleteGuardrailCommand: client_bedrock_1.DeleteGuardrailCommand,
25
27
  DeleteImportedModelCommand: client_bedrock_1.DeleteImportedModelCommand,
26
28
  DeleteInferenceProfileCommand: client_bedrock_1.DeleteInferenceProfileCommand,
29
+ DeleteMarketplaceModelEndpointCommand: client_bedrock_1.DeleteMarketplaceModelEndpointCommand,
27
30
  DeleteModelInvocationLoggingConfigurationCommand: client_bedrock_1.DeleteModelInvocationLoggingConfigurationCommand,
28
31
  DeleteProvisionedModelThroughputCommand: client_bedrock_1.DeleteProvisionedModelThroughputCommand,
32
+ DeregisterMarketplaceModelEndpointCommand: client_bedrock_1.DeregisterMarketplaceModelEndpointCommand,
29
33
  GetCustomModelCommand: client_bedrock_1.GetCustomModelCommand,
30
34
  GetEvaluationJobCommand: client_bedrock_1.GetEvaluationJobCommand,
31
35
  GetFoundationModelCommand: client_bedrock_1.GetFoundationModelCommand,
32
36
  GetGuardrailCommand: client_bedrock_1.GetGuardrailCommand,
33
37
  GetImportedModelCommand: client_bedrock_1.GetImportedModelCommand,
34
38
  GetInferenceProfileCommand: client_bedrock_1.GetInferenceProfileCommand,
39
+ GetMarketplaceModelEndpointCommand: client_bedrock_1.GetMarketplaceModelEndpointCommand,
35
40
  GetModelCopyJobCommand: client_bedrock_1.GetModelCopyJobCommand,
36
41
  GetModelCustomizationJobCommand: client_bedrock_1.GetModelCustomizationJobCommand,
37
42
  GetModelImportJobCommand: client_bedrock_1.GetModelImportJobCommand,
38
43
  GetModelInvocationJobCommand: client_bedrock_1.GetModelInvocationJobCommand,
39
44
  GetModelInvocationLoggingConfigurationCommand: client_bedrock_1.GetModelInvocationLoggingConfigurationCommand,
45
+ GetPromptRouterCommand: client_bedrock_1.GetPromptRouterCommand,
40
46
  GetProvisionedModelThroughputCommand: client_bedrock_1.GetProvisionedModelThroughputCommand,
41
47
  ListCustomModelsCommand: client_bedrock_1.ListCustomModelsCommand,
42
48
  ListEvaluationJobsCommand: client_bedrock_1.ListEvaluationJobsCommand,
@@ -44,28 +50,25 @@ const commands = {
44
50
  ListGuardrailsCommand: client_bedrock_1.ListGuardrailsCommand,
45
51
  ListImportedModelsCommand: client_bedrock_1.ListImportedModelsCommand,
46
52
  ListInferenceProfilesCommand: client_bedrock_1.ListInferenceProfilesCommand,
53
+ ListMarketplaceModelEndpointsCommand: client_bedrock_1.ListMarketplaceModelEndpointsCommand,
47
54
  ListModelCopyJobsCommand: client_bedrock_1.ListModelCopyJobsCommand,
48
55
  ListModelCustomizationJobsCommand: client_bedrock_1.ListModelCustomizationJobsCommand,
49
56
  ListModelImportJobsCommand: client_bedrock_1.ListModelImportJobsCommand,
50
57
  ListModelInvocationJobsCommand: client_bedrock_1.ListModelInvocationJobsCommand,
58
+ ListPromptRoutersCommand: client_bedrock_1.ListPromptRoutersCommand,
51
59
  ListProvisionedModelThroughputsCommand: client_bedrock_1.ListProvisionedModelThroughputsCommand,
52
60
  ListTagsForResourceCommand: client_bedrock_1.ListTagsForResourceCommand,
53
61
  PutModelInvocationLoggingConfigurationCommand: client_bedrock_1.PutModelInvocationLoggingConfigurationCommand,
62
+ RegisterMarketplaceModelEndpointCommand: client_bedrock_1.RegisterMarketplaceModelEndpointCommand,
54
63
  StopEvaluationJobCommand: client_bedrock_1.StopEvaluationJobCommand,
55
64
  StopModelCustomizationJobCommand: client_bedrock_1.StopModelCustomizationJobCommand,
56
65
  StopModelInvocationJobCommand: client_bedrock_1.StopModelInvocationJobCommand,
57
66
  TagResourceCommand: client_bedrock_1.TagResourceCommand,
58
67
  UntagResourceCommand: client_bedrock_1.UntagResourceCommand,
59
68
  UpdateGuardrailCommand: client_bedrock_1.UpdateGuardrailCommand,
69
+ UpdateMarketplaceModelEndpointCommand: client_bedrock_1.UpdateMarketplaceModelEndpointCommand,
60
70
  UpdateProvisionedModelThroughputCommand: client_bedrock_1.UpdateProvisionedModelThroughputCommand,
61
71
  };
62
- /**
63
- * @since 1.0.0
64
- * @category models
65
- */
66
- class BedrockService extends effect_1.Effect.Tag("@effect-aws/client-bedrock/BedrockService")() {
67
- }
68
- exports.BedrockService = BedrockService;
69
72
  /**
70
73
  * @since 1.0.0
71
74
  * @category constructors
@@ -104,19 +107,39 @@ exports.makeBedrockService = effect_1.Effect.gen(function* (_) {
104
107
  return { ...acc, [methodName]: methodImpl };
105
108
  }, {});
106
109
  });
110
+ /**
111
+ * @since 1.0.0
112
+ * @category models
113
+ */
114
+ class BedrockService extends effect_1.Effect.Tag("@effect-aws/client-bedrock/BedrockService")() {
115
+ }
116
+ exports.BedrockService = BedrockService;
117
+ _a = BedrockService;
118
+ BedrockService.defaultLayer = effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer), effect_1.Layer.provide(BedrockClientInstanceConfig_1.DefaultBedrockClientConfigLayer));
119
+ BedrockService.layer = (config) => effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(BedrockClientInstanceConfig_1.BedrockClientInstanceConfig, BedrockClientInstanceConfig_1.makeDefaultBedrockClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
120
+ BedrockService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(BedrockClientInstance_1.BedrockClientInstance, effect_1.Effect.map(BedrockClientInstanceConfig_1.makeDefaultBedrockClientInstanceConfig, evaluate))));
121
+ /**
122
+ * @since 1.0.0
123
+ * @category models
124
+ * @alias BedrockService
125
+ */
126
+ exports.Bedrock = BedrockService;
107
127
  /**
108
128
  * @since 1.0.0
109
129
  * @category layers
130
+ * @deprecated use Bedrock.baseLayer instead
110
131
  */
111
132
  exports.BaseBedrockServiceLayer = effect_1.Layer.effect(BedrockService, exports.makeBedrockService);
112
133
  /**
113
134
  * @since 1.0.0
114
135
  * @category layers
136
+ * @deprecated use Bedrock.layer instead
115
137
  */
116
138
  exports.BedrockServiceLayer = exports.BaseBedrockServiceLayer.pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer));
117
139
  /**
118
140
  * @since 1.0.0
119
141
  * @category layers
142
+ * @deprecated use Bedrock.defaultLayer instead
120
143
  */
121
- exports.DefaultBedrockServiceLayer = exports.BedrockServiceLayer.pipe(effect_1.Layer.provide(BedrockClientInstanceConfig_1.DefaultBedrockClientConfigLayer));
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQmVkcm9ja1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCw0REFrSmlDO0FBQ2pDLG1DQUFxRDtBQUNyRCxtRUFHaUM7QUFDakMsK0VBQWdGO0FBQ2hGLHFDQVlrQjtBQWFsQixNQUFNLFFBQVEsR0FBRztJQUNmLCtCQUErQixFQUEvQixnREFBK0I7SUFDL0IsMEJBQTBCLEVBQTFCLDJDQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsdUNBQXNCO0lBQ3RCLDZCQUE2QixFQUE3Qiw4Q0FBNkI7SUFDN0IsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3Qix5QkFBeUIsRUFBekIsMENBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQyxtREFBa0M7SUFDbEMsMkJBQTJCLEVBQTNCLDRDQUEyQjtJQUMzQiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLHVDQUF1QyxFQUF2Qyx3REFBdUM7SUFDdkMsd0JBQXdCLEVBQXhCLHlDQUF3QjtJQUN4QixzQkFBc0IsRUFBdEIsdUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3QixnREFBZ0QsRUFBaEQsaUVBQWdEO0lBQ2hELHVDQUF1QyxFQUF2Qyx3REFBdUM7SUFDdkMscUJBQXFCLEVBQXJCLHNDQUFxQjtJQUNyQix1QkFBdUIsRUFBdkIsd0NBQXVCO0lBQ3ZCLHlCQUF5QixFQUF6QiwwQ0FBeUI7SUFDekIsbUJBQW1CLEVBQW5CLG9DQUFtQjtJQUNuQix1QkFBdUIsRUFBdkIsd0NBQXVCO0lBQ3ZCLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLHVDQUFzQjtJQUN0QiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLHdCQUF3QixFQUF4Qix5Q0FBd0I7SUFDeEIsNEJBQTRCLEVBQTVCLDZDQUE0QjtJQUM1Qiw2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QyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQW9CLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLHVCQUF1QixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ2pELGNBQWMsRUFDZCwwQkFBa0IsQ0FDbkIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUM3RCxjQUFLLENBQUMsT0FBTyxDQUFDLGtEQUEwQixDQUFDLENBQzFDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLDJCQUFtQixDQUFDLElBQUksQ0FDaEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyw2REFBK0IsQ0FBQyxDQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgQmVkcm9ja1NlcnZpY2VFeGNlcHRpb24sXG4gIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIEdldEN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgdHlwZSBHZXRDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmQsXG4gIHR5cGUgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgR2V0R3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIEdldEltcG9ydGVkTW9kZWxDb21tYW5kLFxuICB0eXBlIEdldEltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsQ29weUpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kLFxuICB0eXBlIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHdWFyZHJhaWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3VhcmRyYWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3VhcmRyYWlsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kLFxuICB0eXBlIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtYmVkcm9ja1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQmVkcm9ja0NsaWVudEluc3RhbmNlLFxuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vQmVkcm9ja0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBUaHJvdHRsaW5nRXJyb3IsXG4gIFRvb01hbnlUYWdzRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4xXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kLFxuICBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kLFxuICBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZCxcbiAgR2V0R3VhcmRyYWlsQ29tbWFuZCxcbiAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBHZXRNb2RlbENvcHlKb2JDb21tYW5kLFxuICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZCxcbiAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZCxcbiAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kLFxuICBMaXN0R3VhcmRyYWlsc0NvbW1hbmQsXG4gIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmQsXG4gIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZCxcbiAgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZCxcbiAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kLFxuICBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBCZWRyb2NrU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgYmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHdWFyZHJhaWxWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNb2RlbENvcHlKb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNb2RlbEltcG9ydEpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ3VzdG9tTW9kZWwoXG4gICAgYXJnczogRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUd1YXJkcmFpbChcbiAgICBhcmdzOiBEZWxldGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW1wb3J0ZWRNb2RlbChcbiAgICBhcmdzOiBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbmZlcmVuY2VQcm9maWxlKFxuICAgIGFyZ3M6IERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjY2Vzc0RlbmllZEVycm9yIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvciB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDdXN0b21Nb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRDdXN0b21Nb2RlbChcbiAgICBhcmdzOiBHZXRDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldEV2YWx1YXRpb25Kb2IoXG4gICAgYXJnczogR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRGb3VuZGF0aW9uTW9kZWwoXG4gICAgYXJnczogR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgZ2V0R3VhcmRyYWlsKFxuICAgIGFyZ3M6IEdldEd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRJbXBvcnRlZE1vZGVsKFxuICAgIGFyZ3M6IEdldEltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGdldEluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsQ29weUpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbENvcHlKb2IoXG4gICAgYXJnczogR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWNjZXNzRGVuaWVkRXJyb3IgfCBJbnRlcm5hbFNlcnZlckVycm9yIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEN1c3RvbU1vZGVscyhcbiAgICBhcmdzOiBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXZhbHVhdGlvbkpvYnMoXG4gICAgYXJnczogTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZvdW5kYXRpb25Nb2RlbHMoXG4gICAgYXJnczogTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHdWFyZHJhaWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RHdWFyZHJhaWxzKFxuICAgIGFyZ3M6IExpc3RHdWFyZHJhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEd1YXJkcmFpbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW1wb3J0ZWRNb2RlbHMoXG4gICAgYXJnczogTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbmZlcmVuY2VQcm9maWxlcyhcbiAgICBhcmdzOiBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TW9kZWxDb3B5Sm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TW9kZWxDdXN0b21pemF0aW9uSm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TW9kZWxJbXBvcnRKb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsSW52b2NhdGlvbkpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0cyhcbiAgICBhcmdzOiBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgc3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBzdG9wTW9kZWxJbnZvY2F0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVHdWFyZHJhaWwoXG4gICAgYXJnczogVXBkYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgQmVkcm9ja1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1iZWRyb2NrL0JlZHJvY2tTZXJ2aWNlXCIsXG4pPEJlZHJvY2tTZXJ2aWNlLCBCZWRyb2NrU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VCZWRyb2NrU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEJlZHJvY2tDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBCZWRyb2NrU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VCZWRyb2NrU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBCZWRyb2NrU2VydmljZSxcbiAgbWFrZUJlZHJvY2tTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBCYXNlQmVkcm9ja1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEJlZHJvY2tDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0QmVkcm9ja1NlcnZpY2VMYXllciA9IEJlZHJvY2tTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
144
+ exports.DefaultBedrockServiceLayer = BedrockService.defaultLayer;
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQmVkcm9ja1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsNERBK0tpQztBQUNqQyxtQ0FBcUQ7QUFDckQsbUVBR2lDO0FBQ2pDLCtFQUl1QztBQUN2QyxxQ0Fha0I7QUFhbEIsTUFBTSxRQUFRLEdBQUc7SUFDZiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLHVDQUFzQjtJQUN0Qiw2QkFBNkIsRUFBN0IsOENBQTZCO0lBQzdCLDZCQUE2QixFQUE3Qiw4Q0FBNkI7SUFDN0IscUNBQXFDLEVBQXJDLHNEQUFxQztJQUNyQyx5QkFBeUIsRUFBekIsMENBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQyxtREFBa0M7SUFDbEMsMkJBQTJCLEVBQTNCLDRDQUEyQjtJQUMzQiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLHVDQUF1QyxFQUF2Qyx3REFBdUM7SUFDdkMsd0JBQXdCLEVBQXhCLHlDQUF3QjtJQUN4QixzQkFBc0IsRUFBdEIsdUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3QixxQ0FBcUMsRUFBckMsc0RBQXFDO0lBQ3JDLGdEQUFnRCxFQUFoRCxpRUFBZ0Q7SUFDaEQsdUNBQXVDLEVBQXZDLHdEQUF1QztJQUN2Qyx5Q0FBeUMsRUFBekMsMERBQXlDO0lBQ3pDLHFCQUFxQixFQUFyQixzQ0FBcUI7SUFDckIsdUJBQXVCLEVBQXZCLHdDQUF1QjtJQUN2Qix5QkFBeUIsRUFBekIsMENBQXlCO0lBQ3pCLG1CQUFtQixFQUFuQixvQ0FBbUI7SUFDbkIsdUJBQXVCLEVBQXZCLHdDQUF1QjtJQUN2QiwwQkFBMEIsRUFBMUIsMkNBQTBCO0lBQzFCLGtDQUFrQyxFQUFsQyxtREFBa0M7SUFDbEMs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LE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDakUsQ0FDRixDQUNGLENBQ0YsQUFYa0IsQ0FXakI7QUFDWSx3QkFBUyxHQUFHLENBQzFCLFFBQStELEVBQy9ELEVBQUUsQ0FDRixjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSwwQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDekMsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLDZDQUFxQixFQUNyQixlQUFNLENBQUMsR0FBRyxDQUFDLG9FQUFzQyxFQUFFLFFBQVEsQ0FBQyxDQUM3RCxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsY0FBYyxDQUFDO0FBRXRDOzs7O0dBSUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ2pELGNBQWMsRUFDZCwwQkFBa0IsQ0FDbkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDN0QsY0FBSyxDQUFDLE9BQU8sQ0FBQyxrREFBMEIsQ0FBQyxDQUMxQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsMEJBQTBCLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIEJlZHJvY2tDbGllbnQsXG4gIHR5cGUgQmVkcm9ja0NsaWVudENvbmZpZyxcbiAgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kLFxuICB0eXBlIEdldEN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZCxcbiAgdHlwZSBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0R3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBHZXRHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0R3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIHR5cGUgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbENvcHlKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICB0eXBlIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRQcm9tcHRSb3V0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UHJvbXB0Um91dGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kLFxuICB0eXBlIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEd1YXJkcmFpbHNDb21tYW5kLFxuICB0eXBlIExpc3RHdWFyZHJhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHdWFyZHJhaWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb21wdFJvdXRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2UsXG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9CZWRyb2NrQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRCZWRyb2NrQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0QmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0JlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IsXG4gIFRocm90dGxpbmdFcnJvcixcbiAgVG9vTWFueVRhZ3NFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmQsXG4gIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kLFxuICBEZWxldGVHdWFyZHJhaWxDb21tYW5kLFxuICBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZCxcbiAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kLFxuICBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZCxcbiAgR2V0R3VhcmRyYWlsQ29tbWFuZCxcbiAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBHZXRNb2RlbENvcHlKb2JDb21tYW5kLFxuICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZCxcbiAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZCxcbiAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kLFxuICBMaXN0R3VhcmRyYWlsc0NvbW1hbmQsXG4gIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmQsXG4gIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZCxcbiAgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZCxcbiAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBCZWRyb2NrU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgYmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHdWFyZHJhaWxWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDb3B5Sm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbU1vZGVsKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHdWFyZHJhaWwoXG4gICAgYXJnczogRGVsZXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUltcG9ydGVkTW9kZWwoXG4gICAgYXJnczogRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5mZXJlbmNlUHJvZmlsZShcbiAgICBhcmdzOiBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWNjZXNzRGVuaWVkRXJyb3IgfCBJbnRlcm5hbFNlcnZlckVycm9yIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEN1c3RvbU1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEN1c3RvbU1vZGVsKFxuICAgIGFyZ3M6IEdldEN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEZvdW5kYXRpb25Nb2RlbChcbiAgICBhcmdzOiBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICBnZXRHdWFyZHJhaWwoXG4gICAgYXJnczogR2V0R3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0R3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEltcG9ydGVkTW9kZWwoXG4gICAgYXJnczogR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZ2V0SW5mZXJlbmNlUHJvZmlsZShcbiAgICBhcmdzOiBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGdldE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsQ29weUpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbENvcHlKb2IoXG4gICAgYXJnczogR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWNjZXNzRGVuaWVkRXJyb3IgfCBJbnRlcm5hbFNlcnZlckVycm9yIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFByb21wdFJvdXRlckNvbW1hbmR9XG4gICAqL1xuICBnZXRQcm9tcHRSb3V0ZXIoXG4gICAgYXJnczogR2V0UHJvbXB0Um91dGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBnZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDdXN0b21Nb2RlbHMoXG4gICAgYXJnczogTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2YWx1YXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGb3VuZGF0aW9uTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3VhcmRyYWlsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0R3VhcmRyYWlscyhcbiAgICBhcmdzOiBMaXN0R3VhcmRyYWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RHdWFyZHJhaWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEltcG9ydGVkTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5mZXJlbmNlUHJvZmlsZXMoXG4gICAgYXJnczogTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHMoXG4gICAgYXJnczogTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ29weUpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsSW1wb3J0Sm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbEludm9jYXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvbXB0Um91dGVycyhcbiAgICBhcmdzOiBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzKFxuICAgIGFyZ3M6IExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgc3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBzdG9wTW9kZWxJbnZvY2F0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVHdWFyZHJhaWwoXG4gICAgYXJnczogVXBkYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50KFxuICAgIGFyZ3M6IFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VCZWRyb2NrU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEJlZHJvY2tDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBCZWRyb2NrU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtYmVkcm9jay9CZWRyb2NrU2VydmljZVwiLFxuKTxCZWRyb2NrU2VydmljZSwgQmVkcm9ja1NlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQmVkcm9ja1NlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogQmVkcm9ja0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUJlZHJvY2tTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0QmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBCZWRyb2NrQ2xpZW50Q29uZmlnKSA9PiBCZWRyb2NrQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VCZWRyb2NrU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBCZWRyb2NrQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIEJlZHJvY2tTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBCZWRyb2NrID0gQmVkcm9ja1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQmVkcm9jay5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEJlZHJvY2tTZXJ2aWNlLFxuICBtYWtlQmVkcm9ja1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIEJlZHJvY2subGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmVkcm9ja1NlcnZpY2VMYXllciA9IEJhc2VCZWRyb2NrU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoQmVkcm9ja0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBCZWRyb2NrLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0QmVkcm9ja1NlcnZpY2VMYXllciA9IEJlZHJvY2tTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
package/lib/Errors.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AccessDeniedException, ConflictException, InternalServerException, ResourceNotFoundException, ServiceQuotaExceededException, ThrottlingException, TooManyTagsException, ValidationException } from "@aws-sdk/client-bedrock";
1
+ import type { AccessDeniedException, ConflictException, InternalServerException, ResourceNotFoundException, ServiceQuotaExceededException, ServiceUnavailableException, ThrottlingException, TooManyTagsException, ValidationException } from "@aws-sdk/client-bedrock";
2
2
  import { Data } from "effect";
3
3
  export declare const AllServiceErrors: string[];
4
4
  export type TaggedException<T extends {
@@ -11,6 +11,7 @@ export type ConflictError = TaggedException<ConflictException>;
11
11
  export type InternalServerError = TaggedException<InternalServerException>;
12
12
  export type ResourceNotFoundError = TaggedException<ResourceNotFoundException>;
13
13
  export type ServiceQuotaExceededError = TaggedException<ServiceQuotaExceededException>;
14
+ export type ServiceUnavailableError = TaggedException<ServiceUnavailableException>;
14
15
  export type ThrottlingError = TaggedException<ThrottlingException>;
15
16
  export type TooManyTagsError = TaggedException<TooManyTagsException>;
16
17
  export type ValidationError = TaggedException<ValidationException>;
package/lib/Errors.js CHANGED
@@ -8,9 +8,10 @@ exports.AllServiceErrors = [
8
8
  "InternalServerException",
9
9
  "ResourceNotFoundException",
10
10
  "ServiceQuotaExceededException",
11
+ "ServiceUnavailableException",
11
12
  "ThrottlingException",
12
13
  "TooManyTagsException",
13
14
  "ValidationException",
14
15
  ];
15
16
  exports.SdkError = effect_1.Data.tagged("SdkError");
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSxtQ0FBOEI7QUFFakIsUUFBQSxnQkFBZ0IsR0FBRztJQUM5Qix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsK0JBQStCO0lBQy9CLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIscUJBQXFCO0NBQ3RCLENBQUM7QUFpQlcsUUFBQSxRQUFRLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FBVyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLFxuICBDb25mbGljdEV4Y2VwdGlvbixcbiAgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sXG4gIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gIFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFRocm90dGxpbmdFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxUaHJvdHRsaW5nRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFRvb01hbnlUYWdzRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VG9vTWFueVRhZ3NFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFZhbGlkYXRpb25FeGNlcHRpb24+O1xuXG5leHBvcnQgdHlwZSBTZGtFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxFcnJvciAmIHsgbmFtZTogXCJTZGtFcnJvclwiIH0+O1xuZXhwb3J0IGNvbnN0IFNka0Vycm9yID0gRGF0YS50YWdnZWQ8U2RrRXJyb3I+KFwiU2RrRXJyb3JcIik7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSxtQ0FBOEI7QUFFakIsUUFBQSxnQkFBZ0IsR0FBRztJQUM5Qix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsK0JBQStCO0lBQy9CLDZCQUE2QjtJQUM3QixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtDQUN0QixDQUFDO0FBbUJXLFFBQUEsUUFBUSxHQUFHLGFBQUksQ0FBQyxNQUFNLENBQVcsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbixcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEludGVybmFsU2VydmVyRXhjZXB0aW9uLFxuICBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvbixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gIFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUaHJvdHRsaW5nRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGhyb3R0bGluZ0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUb29NYW55VGFnc0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRvb01hbnlUYWdzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19
@@ -1,10 +1,11 @@
1
+ var _a;
1
2
  /**
2
3
  * @since 1.0.0
3
4
  */
4
- import { BedrockServiceException, BatchDeleteEvaluationJobCommand, CreateEvaluationJobCommand, CreateGuardrailCommand, CreateGuardrailVersionCommand, CreateInferenceProfileCommand, CreateModelCopyJobCommand, CreateModelCustomizationJobCommand, CreateModelImportJobCommand, CreateModelInvocationJobCommand, CreateProvisionedModelThroughputCommand, DeleteCustomModelCommand, DeleteGuardrailCommand, DeleteImportedModelCommand, DeleteInferenceProfileCommand, DeleteModelInvocationLoggingConfigurationCommand, DeleteProvisionedModelThroughputCommand, GetCustomModelCommand, GetEvaluationJobCommand, GetFoundationModelCommand, GetGuardrailCommand, GetImportedModelCommand, GetInferenceProfileCommand, GetModelCopyJobCommand, GetModelCustomizationJobCommand, GetModelImportJobCommand, GetModelInvocationJobCommand, GetModelInvocationLoggingConfigurationCommand, GetProvisionedModelThroughputCommand, ListCustomModelsCommand, ListEvaluationJobsCommand, ListFoundationModelsCommand, ListGuardrailsCommand, ListImportedModelsCommand, ListInferenceProfilesCommand, ListModelCopyJobsCommand, ListModelCustomizationJobsCommand, ListModelImportJobsCommand, ListModelInvocationJobsCommand, ListProvisionedModelThroughputsCommand, ListTagsForResourceCommand, PutModelInvocationLoggingConfigurationCommand, StopEvaluationJobCommand, StopModelCustomizationJobCommand, StopModelInvocationJobCommand, TagResourceCommand, UntagResourceCommand, UpdateGuardrailCommand, UpdateProvisionedModelThroughputCommand, } from "@aws-sdk/client-bedrock";
5
+ import { BedrockServiceException, BatchDeleteEvaluationJobCommand, CreateEvaluationJobCommand, CreateGuardrailCommand, CreateGuardrailVersionCommand, CreateInferenceProfileCommand, CreateMarketplaceModelEndpointCommand, CreateModelCopyJobCommand, CreateModelCustomizationJobCommand, CreateModelImportJobCommand, CreateModelInvocationJobCommand, CreateProvisionedModelThroughputCommand, DeleteCustomModelCommand, DeleteGuardrailCommand, DeleteImportedModelCommand, DeleteInferenceProfileCommand, DeleteMarketplaceModelEndpointCommand, DeleteModelInvocationLoggingConfigurationCommand, DeleteProvisionedModelThroughputCommand, DeregisterMarketplaceModelEndpointCommand, GetCustomModelCommand, GetEvaluationJobCommand, GetFoundationModelCommand, GetGuardrailCommand, GetImportedModelCommand, GetInferenceProfileCommand, GetMarketplaceModelEndpointCommand, GetModelCopyJobCommand, GetModelCustomizationJobCommand, GetModelImportJobCommand, GetModelInvocationJobCommand, GetModelInvocationLoggingConfigurationCommand, GetPromptRouterCommand, GetProvisionedModelThroughputCommand, ListCustomModelsCommand, ListEvaluationJobsCommand, ListFoundationModelsCommand, ListGuardrailsCommand, ListImportedModelsCommand, ListInferenceProfilesCommand, ListMarketplaceModelEndpointsCommand, ListModelCopyJobsCommand, ListModelCustomizationJobsCommand, ListModelImportJobsCommand, ListModelInvocationJobsCommand, ListPromptRoutersCommand, ListProvisionedModelThroughputsCommand, ListTagsForResourceCommand, PutModelInvocationLoggingConfigurationCommand, RegisterMarketplaceModelEndpointCommand, StopEvaluationJobCommand, StopModelCustomizationJobCommand, StopModelInvocationJobCommand, TagResourceCommand, UntagResourceCommand, UpdateGuardrailCommand, UpdateMarketplaceModelEndpointCommand, UpdateProvisionedModelThroughputCommand, } from "@aws-sdk/client-bedrock";
5
6
  import { Data, Effect, Layer, Record } from "effect";
6
7
  import { BedrockClientInstance, BedrockClientInstanceLayer, } from "./BedrockClientInstance";
7
- import { DefaultBedrockClientConfigLayer } from "./BedrockClientInstanceConfig";
8
+ import { DefaultBedrockClientConfigLayer, makeDefaultBedrockClientInstanceConfig, BedrockClientInstanceConfig, } from "./BedrockClientInstanceConfig";
8
9
  import { AllServiceErrors, SdkError, } from "./Errors";
9
10
  const commands = {
10
11
  BatchDeleteEvaluationJobCommand,
@@ -12,6 +13,7 @@ const commands = {
12
13
  CreateGuardrailCommand,
13
14
  CreateGuardrailVersionCommand,
14
15
  CreateInferenceProfileCommand,
16
+ CreateMarketplaceModelEndpointCommand,
15
17
  CreateModelCopyJobCommand,
16
18
  CreateModelCustomizationJobCommand,
17
19
  CreateModelImportJobCommand,
@@ -21,19 +23,23 @@ const commands = {
21
23
  DeleteGuardrailCommand,
22
24
  DeleteImportedModelCommand,
23
25
  DeleteInferenceProfileCommand,
26
+ DeleteMarketplaceModelEndpointCommand,
24
27
  DeleteModelInvocationLoggingConfigurationCommand,
25
28
  DeleteProvisionedModelThroughputCommand,
29
+ DeregisterMarketplaceModelEndpointCommand,
26
30
  GetCustomModelCommand,
27
31
  GetEvaluationJobCommand,
28
32
  GetFoundationModelCommand,
29
33
  GetGuardrailCommand,
30
34
  GetImportedModelCommand,
31
35
  GetInferenceProfileCommand,
36
+ GetMarketplaceModelEndpointCommand,
32
37
  GetModelCopyJobCommand,
33
38
  GetModelCustomizationJobCommand,
34
39
  GetModelImportJobCommand,
35
40
  GetModelInvocationJobCommand,
36
41
  GetModelInvocationLoggingConfigurationCommand,
42
+ GetPromptRouterCommand,
37
43
  GetProvisionedModelThroughputCommand,
38
44
  ListCustomModelsCommand,
39
45
  ListEvaluationJobsCommand,
@@ -41,27 +47,25 @@ const commands = {
41
47
  ListGuardrailsCommand,
42
48
  ListImportedModelsCommand,
43
49
  ListInferenceProfilesCommand,
50
+ ListMarketplaceModelEndpointsCommand,
44
51
  ListModelCopyJobsCommand,
45
52
  ListModelCustomizationJobsCommand,
46
53
  ListModelImportJobsCommand,
47
54
  ListModelInvocationJobsCommand,
55
+ ListPromptRoutersCommand,
48
56
  ListProvisionedModelThroughputsCommand,
49
57
  ListTagsForResourceCommand,
50
58
  PutModelInvocationLoggingConfigurationCommand,
59
+ RegisterMarketplaceModelEndpointCommand,
51
60
  StopEvaluationJobCommand,
52
61
  StopModelCustomizationJobCommand,
53
62
  StopModelInvocationJobCommand,
54
63
  TagResourceCommand,
55
64
  UntagResourceCommand,
56
65
  UpdateGuardrailCommand,
66
+ UpdateMarketplaceModelEndpointCommand,
57
67
  UpdateProvisionedModelThroughputCommand,
58
68
  };
59
- /**
60
- * @since 1.0.0
61
- * @category models
62
- */
63
- export class BedrockService extends Effect.Tag("@effect-aws/client-bedrock/BedrockService")() {
64
- }
65
69
  /**
66
70
  * @since 1.0.0
67
71
  * @category constructors
@@ -100,19 +104,38 @@ export const makeBedrockService = Effect.gen(function* (_) {
100
104
  return { ...acc, [methodName]: methodImpl };
101
105
  }, {});
102
106
  });
107
+ /**
108
+ * @since 1.0.0
109
+ * @category models
110
+ */
111
+ export class BedrockService extends Effect.Tag("@effect-aws/client-bedrock/BedrockService")() {
112
+ }
113
+ _a = BedrockService;
114
+ BedrockService.defaultLayer = Layer.effect(_a, makeBedrockService).pipe(Layer.provide(BedrockClientInstanceLayer), Layer.provide(DefaultBedrockClientConfigLayer));
115
+ BedrockService.layer = (config) => Layer.effect(_a, makeBedrockService).pipe(Layer.provide(BedrockClientInstanceLayer), Layer.provide(Layer.effect(BedrockClientInstanceConfig, makeDefaultBedrockClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
116
+ BedrockService.baseLayer = (evaluate) => Layer.effect(_a, makeBedrockService).pipe(Layer.provide(Layer.effect(BedrockClientInstance, Effect.map(makeDefaultBedrockClientInstanceConfig, evaluate))));
117
+ /**
118
+ * @since 1.0.0
119
+ * @category models
120
+ * @alias BedrockService
121
+ */
122
+ export const Bedrock = BedrockService;
103
123
  /**
104
124
  * @since 1.0.0
105
125
  * @category layers
126
+ * @deprecated use Bedrock.baseLayer instead
106
127
  */
107
128
  export const BaseBedrockServiceLayer = Layer.effect(BedrockService, makeBedrockService);
108
129
  /**
109
130
  * @since 1.0.0
110
131
  * @category layers
132
+ * @deprecated use Bedrock.layer instead
111
133
  */
112
134
  export const BedrockServiceLayer = BaseBedrockServiceLayer.pipe(Layer.provide(BedrockClientInstanceLayer));
113
135
  /**
114
136
  * @since 1.0.0
115
137
  * @category layers
138
+ * @deprecated use Bedrock.defaultLayer instead
116
139
  */
117
- export const DefaultBedrockServiceLayer = BedrockServiceLayer.pipe(Layer.provide(DefaultBedrockClientConfigLayer));
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQmVkcm9ja1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLCtCQUErQixFQUcvQiwwQkFBMEIsRUFHMUIsc0JBQXNCLEVBR3RCLDZCQUE2QixFQUc3Qiw2QkFBNkIsRUFHN0IseUJBQXlCLEVBR3pCLGtDQUFrQyxFQUdsQywyQkFBMkIsRUFHM0IsK0JBQStCLEVBRy9CLHVDQUF1QyxFQUd2Qyx3QkFBd0IsRUFHeEIsc0JBQXNCLEVBR3RCLDBCQUEwQixFQUcxQiw2QkFBNkIsRUFHN0IsZ0RBQWdELEVBR2hELHVDQUF1QyxFQUd2QyxxQkFBcUIsRUFHckIsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6QixtQkFBbUIsRUFHbkIsdUJBQXVCLEVBR3ZCLDBCQUEwQixFQUcxQixzQkFBc0IsRUFHdEIsK0JBQStCLEVBRy9CLHdCQUF3QixFQUd4Qiw0QkFBNEIsRUFHNUIsNkNBQTZDLEVBRzdDLG9DQUFvQyxFQUdwQyx1QkFBdUIsRUFHdkIseUJBQXlCLEVBR3pCLDJCQUEyQixFQUczQixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDRCQUE0QixFQUc1Qix3QkFBd0IsRUFHeEIsaUNBQWlDLEVBR2pDLDBCQUEwQixFQUcxQiw4QkFBOEIsRUFHOUIsc0NBQXNDLEVBR3RDLDBCQUEwQixFQUcxQiw2Q0FBNkMsRUFHN0Msd0JBQXdCLEVBR3hCLGdDQUFnQyxFQUdoQyw2QkFBNkIsRUFHN0Isa0JBQWtCLEVBR2xCLG9CQUFvQixFQUdwQixzQkFBc0IsRUFHdEIsdUNBQXVDLEdBR3hDLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyRCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JC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QUFDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN0RSxVQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFvQixDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDakQsY0FBYyxFQUNkLGtCQUFrQixDQUNuQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUM3RCxLQUFLLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQzFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uLFxuICBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHdWFyZHJhaWxDb21tYW5kLFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHdWFyZHJhaWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICBHZXRDdXN0b21Nb2RlbENvbW1hbmQsXG4gIHR5cGUgR2V0Q3VzdG9tTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kLFxuICB0eXBlIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kT3V0cHV0LFxuICBHZXRHdWFyZHJhaWxDb21tYW5kLFxuICB0eXBlIEdldEd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZCxcbiAgdHlwZSBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBHZXRNb2RlbENvcHlKb2JDb21tYW5kLFxuICB0eXBlIEdldE1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbENvcHlKb2JDb21tYW5kT3V0cHV0LFxuICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kT3V0cHV0LFxuICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0R3VhcmRyYWlsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEd1YXJkcmFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEd1YXJkcmFpbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kLFxuICB0eXBlIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kLFxuICB0eXBlIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kT3V0cHV0LFxuICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kT3V0cHV0LFxuICBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVHdWFyZHJhaWxDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWJlZHJvY2tcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZSxcbiAgQmVkcm9ja0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0JlZHJvY2tDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdEJlZHJvY2tDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0JlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVHdWFyZHJhaWxDb21tYW5kLFxuICBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZCxcbiAgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmQsXG4gIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmQsXG4gIERlbGV0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kLFxuICBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIEdldEN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmQsXG4gIEdldEd1YXJkcmFpbENvbW1hbmQsXG4gIEdldEltcG9ydGVkTW9kZWxDb21tYW5kLFxuICBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmQsXG4gIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZCxcbiAgTGlzdEd1YXJkcmFpbHNDb21tYW5kLFxuICBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kLFxuICBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kLFxuICBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmQsXG4gIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZCxcbiAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmQsXG4gIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZCxcbiAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVHdWFyZHJhaWxDb21tYW5kLFxuICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgQmVkcm9ja1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUd1YXJkcmFpbChcbiAgICBhcmdzOiBDcmVhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR3VhcmRyYWlsVmVyc2lvbihcbiAgICBhcmdzOiBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVJbmZlcmVuY2VQcm9maWxlKFxuICAgIGFyZ3M6IENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDb3B5Sm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbU1vZGVsKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHdWFyZHJhaWwoXG4gICAgYXJnczogRGVsZXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUltcG9ydGVkTW9kZWwoXG4gICAgYXJnczogRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5mZXJlbmNlUHJvZmlsZShcbiAgICBhcmdzOiBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBBY2Nlc3NEZW5pZWRFcnJvciB8IEludGVybmFsU2VydmVyRXJyb3IgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q3VzdG9tTW9kZWxDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q3VzdG9tTW9kZWwoXG4gICAgYXJnczogR2V0Q3VzdG9tTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IEdldEV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kfVxuICAgKi9cbiAgZ2V0Rm91bmRhdGlvbk1vZGVsKFxuICAgIGFyZ3M6IEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0R3VhcmRyYWlsQ29tbWFuZH1cbiAgICovXG4gIGdldEd1YXJkcmFpbChcbiAgICBhcmdzOiBHZXRHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEltcG9ydGVkTW9kZWxDb21tYW5kfVxuICAgKi9cbiAgZ2V0SW1wb3J0ZWRNb2RlbChcbiAgICBhcmdzOiBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBnZXRJbmZlcmVuY2VQcm9maWxlKFxuICAgIGFyZ3M6IEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbENvcHlKb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxDb3B5Sm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW1wb3J0Sm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbEludm9jYXRpb25Kb2IoXG4gICAgYXJnczogR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjY2Vzc0RlbmllZEVycm9yIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvciB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBnZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDdXN0b21Nb2RlbHMoXG4gICAgYXJnczogTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2YWx1YXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGb3VuZGF0aW9uTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3VhcmRyYWlsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0R3VhcmRyYWlscyhcbiAgICBhcmdzOiBMaXN0R3VhcmRyYWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RHdWFyZHJhaWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEltcG9ydGVkTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5mZXJlbmNlUHJvZmlsZXMoXG4gICAgYXJnczogTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ29weUpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsSW1wb3J0Sm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbEludm9jYXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHMoXG4gICAgYXJnczogTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBzdG9wRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIHN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2IoXG4gICAgYXJnczogU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgc3RvcE1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtYmVkcm9jay9CZWRyb2NrU2VydmljZVwiLFxuKTxCZWRyb2NrU2VydmljZSwgQmVkcm9ja1NlcnZpY2UkPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlQmVkcm9ja1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhCZWRyb2NrQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBCZWRyb2NrU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxCZWRyb2NrU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgQmVkcm9ja1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlQmVkcm9ja1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgQmVkcm9ja1NlcnZpY2UsXG4gIG1ha2VCZWRyb2NrU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCZWRyb2NrU2VydmljZUxheWVyID0gQmFzZUJlZHJvY2tTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBCZWRyb2NrU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdEJlZHJvY2tDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
140
+ export const DefaultBedrockServiceLayer = BedrockService.defaultLayer;
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQmVkcm9ja1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLHVCQUF1QixFQUd2QiwrQkFBK0IsRUFHL0IsMEJBQTBCLEVBRzFCLHNCQUFzQixFQUd0Qiw2QkFBNkIsRUFHN0IsNkJBQTZCLEVBRzdCLHFDQUFxQyxFQUdyQyx5QkFBeUIsRUFHekIsa0NBQWtDLEVBR2xDLDJCQUEyQixFQUczQiwrQkFBK0IsRUFHL0IsdUNBQXVDLEVBR3ZDLHdCQUF3QixFQUd4QixzQkFBc0IsRUFHdEIsMEJBQTBCLEVBRzFCLDZCQUE2QixFQUc3QixxQ0FBcUMsRUFHckMsZ0RBQWdELEVBR2hELHVDQUF1QyxFQUd2Qyx5Q0FBeUMsRUFHekMscUJBQXFCLEVBR3JCLHVCQUF1QixFQUd2Qix5QkFBeUIsRUFHekIsbUJBQW1CLEVBR25CLHVCQUF1QixFQUd2QiwwQkFBMEIsRUFHMUIsa0NBQWtDLEVBR2xDLHNCQUFzQixFQUd0QiwrQkFBK0IsRUFHL0Isd0JBQXdCLEVBR3hCLDRCQUE0QixFQUc1Qiw2Q0FBNkMsRUFHN0Msc0JBQXNCLEVBR3RCLG9DQUFvQyxFQUdwQyx1QkFBdUIsRUFHdkIseUJBQXlCLEVBR3pCLDJCQUEyQixFQUczQixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDRCQUE0QixFQUc1QixvQ0FBb0MsRUFHcEMsd0JBQXdCLEVBR3hCLGlDQUFpQyxFQUdqQywwQkFBMEIsRUFHMUIsOEJBQThCLEVBRzlCLHdCQUF3QixFQUd4QixzQ0FBc0MsRUFHdEMsMEJBQTBCLEVBRzFCLDZDQUE2QyxFQUc3Qyx1Q0FBdUMsRUFHdkMsd0JBQXdCLEVBR3hCLGdDQUFnQyxFQUdoQyw2QkFBNkIsRUFHN0Isa0JBQWtCLEVBR2xCLG9CQUFvQixFQUdwQixzQkFBc0IsRUFHdEIscUNBQXFDLEVBR3JDLHVDQUF1QyxHQUd4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U2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBCZWRyb2NrQ2xpZW50LFxuICB0eXBlIEJlZHJvY2tDbGllbnRDb25maWcsXG4gIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIERlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIEdldEN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgdHlwZSBHZXRDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDdXN0b21Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmQsXG4gIHR5cGUgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgR2V0R3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIEdldEltcG9ydGVkTW9kZWxDb21tYW5kLFxuICB0eXBlIEdldEltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRPdXRwdXQsXG4gIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICB0eXBlIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIEdldE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsQ29weUpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldFByb21wdFJvdXRlckNvbW1hbmQsXG4gIHR5cGUgR2V0UHJvbXB0Um91dGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFByb21wdFJvdXRlckNvbW1hbmRPdXRwdXQsXG4gIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kLFxuICB0eXBlIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHdWFyZHJhaWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3VhcmRyYWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3VhcmRyYWlsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kLFxuICB0eXBlIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBSZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtYmVkcm9ja1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQmVkcm9ja0NsaWVudEluc3RhbmNlLFxuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vQmVkcm9ja0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9CZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbFNlcnZlckVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yLFxuICBUaHJvdHRsaW5nRXJyb3IsXG4gIFRvb01hbnlUYWdzRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kLFxuICBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG4gIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIEdldEN1c3RvbU1vZGVsQ29tbWFuZCxcbiAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmQsXG4gIEdldEd1YXJkcmFpbENvbW1hbmQsXG4gIEdldEltcG9ydGVkTW9kZWxDb21tYW5kLFxuICBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZCxcbiAgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldFByb21wdFJvdXRlckNvbW1hbmQsXG4gIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmQsXG4gIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZCxcbiAgTGlzdEd1YXJkcmFpbHNDb21tYW5kLFxuICBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kLFxuICBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kLFxuICBMaXN0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50c0NvbW1hbmQsXG4gIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZCxcbiAgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZCxcbiAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kLFxuICBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmQsXG4gIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBSZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVHdWFyZHJhaWxDb21tYW5kLFxuICBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgQmVkcm9ja1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUd1YXJkcmFpbChcbiAgICBhcmdzOiBDcmVhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHdWFyZHJhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR3VhcmRyYWlsVmVyc2lvbihcbiAgICBhcmdzOiBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVJbmZlcmVuY2VQcm9maWxlKFxuICAgIGFyZ3M6IENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50KFxuICAgIGFyZ3M6IENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsQ29weUpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsSW1wb3J0Sm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNb2RlbEludm9jYXRpb25Kb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBDcmVhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDdXN0b21Nb2RlbChcbiAgICBhcmdzOiBEZWxldGVDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IERlbGV0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbXBvcnRlZE1vZGVsKFxuICAgIGFyZ3M6IERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBEZWxldGVNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjY2Vzc0RlbmllZEVycm9yIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvciB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBEZWxldGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDdXN0b21Nb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRDdXN0b21Nb2RlbChcbiAgICBhcmdzOiBHZXRDdXN0b21Nb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldEV2YWx1YXRpb25Kb2IoXG4gICAgYXJnczogR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZvdW5kYXRpb25Nb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRGb3VuZGF0aW9uTW9kZWwoXG4gICAgYXJnczogR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgZ2V0R3VhcmRyYWlsKFxuICAgIGFyZ3M6IEdldEd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmR9XG4gICAqL1xuICBnZXRJbXBvcnRlZE1vZGVsKFxuICAgIGFyZ3M6IEdldEltcG9ydGVkTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGdldEluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBnZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbENvcHlKb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxDb3B5Sm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW1wb3J0Sm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbEludm9jYXRpb25Kb2IoXG4gICAgYXJnczogR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjY2Vzc0RlbmllZEVycm9yIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvciB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm9tcHRSb3V0ZXJDb21tYW5kfVxuICAgKi9cbiAgZ2V0UHJvbXB0Um91dGVyKFxuICAgIGFyZ3M6IEdldFByb21wdFJvdXRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb21wdFJvdXRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgZ2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Q3VzdG9tTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RDdXN0b21Nb2RlbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RFdmFsdWF0aW9uSm9icyhcbiAgICBhcmdzOiBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Rm91bmRhdGlvbk1vZGVscyhcbiAgICBhcmdzOiBMaXN0Rm91bmRhdGlvbk1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEd1YXJkcmFpbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEd1YXJkcmFpbHMoXG4gICAgYXJnczogTGlzdEd1YXJkcmFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0R3VhcmRyYWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbXBvcnRlZE1vZGVscyhcbiAgICBhcmdzOiBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEluZmVyZW5jZVByb2ZpbGVzKFxuICAgIGFyZ3M6IExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzKFxuICAgIGFyZ3M6IExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbENvcHlKb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbEltcG9ydEpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TW9kZWxJbnZvY2F0aW9uSm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFByb21wdFJvdXRlcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFByb21wdFJvdXRlcnMoXG4gICAgYXJnczogTGlzdFByb21wdFJvdXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0cyhcbiAgICBhcmdzOiBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIHJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50KFxuICAgIGFyZ3M6IFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBzdG9wRXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIHN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2IoXG4gICAgYXJnczogU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgc3RvcE1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlQmVkcm9ja1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhCZWRyb2NrQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBCZWRyb2NrU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxCZWRyb2NrU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgQmVkcm9ja1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBCZWRyb2NrU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWJlZHJvY2svQmVkcm9ja1NlcnZpY2VcIixcbik8QmVkcm9ja1NlcnZpY2UsIEJlZHJvY2tTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QodGhpcywgbWFrZUJlZHJvY2tTZXJ2aWNlKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoQmVkcm9ja0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdEJlZHJvY2tDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IEJlZHJvY2tDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VCZWRyb2NrU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoQmVkcm9ja0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogQmVkcm9ja0NsaWVudENvbmZpZykgPT4gQmVkcm9ja0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQmVkcm9ja1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQmVkcm9ja0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRCZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBCZWRyb2NrU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgQmVkcm9jayA9IEJlZHJvY2tTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIEJlZHJvY2suYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VCZWRyb2NrU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBCZWRyb2NrU2VydmljZSxcbiAgbWFrZUJlZHJvY2tTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBCZWRyb2NrLmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBCYXNlQmVkcm9ja1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEJlZHJvY2tDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQmVkcm9jay5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBCZWRyb2NrU2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=
package/lib/esm/Errors.js CHANGED
@@ -5,9 +5,10 @@ export const AllServiceErrors = [
5
5
  "InternalServerException",
6
6
  "ResourceNotFoundException",
7
7
  "ServiceQuotaExceededException",
8
+ "ServiceUnavailableException",
8
9
  "ThrottlingException",
9
10
  "TooManyTagsException",
10
11
  "ValidationException",
11
12
  ];
12
13
  export const SdkError = Data.tagged("SdkError");
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixxQkFBcUI7Q0FDdEIsQ0FBQztBQWlCRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBVyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLFxuICBDb25mbGljdEV4Y2VwdGlvbixcbiAgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sXG4gIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gIFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFRocm90dGxpbmdFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxUaHJvdHRsaW5nRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFRvb01hbnlUYWdzRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VG9vTWFueVRhZ3NFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFZhbGlkYXRpb25FeGNlcHRpb24+O1xuXG5leHBvcnQgdHlwZSBTZGtFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxFcnJvciAmIHsgbmFtZTogXCJTZGtFcnJvclwiIH0+O1xuZXhwb3J0IGNvbnN0IFNka0Vycm9yID0gRGF0YS50YWdnZWQ8U2RrRXJyb3I+KFwiU2RrRXJyb3JcIik7XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsNkJBQTZCO0lBQzdCLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIscUJBQXFCO0NBQ3RCLENBQUM7QUFtQkYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQVcsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbixcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEludGVybmFsU2VydmVyRXhjZXB0aW9uLFxuICBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvbixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gIFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUaHJvdHRsaW5nRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGhyb3R0bGluZ0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUb29NYW55VGFnc0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRvb01hbnlUYWdzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.0.0",
36
+ "version": "1.2.0",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],