@effect-aws/client-lambda 1.5.0 → 1.6.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-lambda
2
2
 
3
+ ## 1.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#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)
8
+
9
+ ## 1.5.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#75](https://github.com/floydspace/effect-aws/pull/75) [`9dc170d`](https://github.com/floydspace/effect-aws/commit/9dc170d975c04888bbc7ca7b241b4b5265668fb5) Thanks [@godu](https://github.com/godu)! - export the HttpHandlerOptions type
14
+
3
15
  ## 1.5.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # @effect-aws/client-lambda
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/%40effect-aws%2Fclient-lambda?color=brightgreen&label=npm%20package)](https://www.npmjs.com/package/@effect-aws/client-lambda)
4
+ [![npm downloads](https://img.shields.io/npm/dm/%40effect-aws%2Fclient-lambda)](https://www.npmjs.com/package/@effect-aws/client-lambda)
5
+
3
6
  ## Installation
4
7
 
5
8
  ```bash
@@ -11,13 +14,13 @@ npm install --save @effect-aws/client-lambda
11
14
  With default LambdaClient instance:
12
15
 
13
16
  ```typescript
14
- import { LambdaService, DefaultLambdaServiceLayer } from "@effect-aws/client-lambda";
17
+ import { Lambda } from "@effect-aws/client-lambda";
15
18
 
16
- const program = LambdaService.invoke(args);
19
+ const program = Lambda.invoke(args);
17
20
 
18
21
  const result = pipe(
19
22
  program,
20
- Effect.provide(DefaultLambdaServiceLayer),
23
+ Effect.provide(Lambda.defaultLayer),
21
24
  Effect.runPromise,
22
25
  );
23
26
  ```
@@ -25,23 +28,15 @@ const result = pipe(
25
28
  With custom LambdaClient instance:
26
29
 
27
30
  ```typescript
28
- import {
29
- LambdaService,
30
- BaseLambdaServiceLayer,
31
- LambdaClientInstance,
32
- } from "@effect-aws/client-lambda";
33
-
34
- const program = LambdaService.invoke(args);
31
+ import { Lambda } from "@effect-aws/client-lambda";
35
32
 
36
- const LambdaClientInstanceLayer = Layer.succeed(
37
- LambdaClientInstance,
38
- new LambdaClient({ region: "eu-central-1" }),
39
- );
33
+ const program = Lambda.invoke(args);
40
34
 
41
35
  const result = await pipe(
42
36
  program,
43
- Effect.provide(BaseLambdaServiceLayer),
44
- Effect.provide(LambdaClientInstanceLayer),
37
+ Effect.provide(
38
+ Lambda.baseLayer(() => new LambdaClient({ region: "eu-central-1" })),
39
+ ),
45
40
  Effect.runPromise,
46
41
  );
47
42
  ```
@@ -49,34 +44,15 @@ const result = await pipe(
49
44
  With custom LambdaClient configuration:
50
45
 
51
46
  ```typescript
52
- import {
53
- LambdaService,
54
- BaseLambdaServiceLayer,
55
- DefaultLambdaClientConfigLayer,
56
- LambdaClientInstance,
57
- LambdaClientInstanceConfig,
58
- } from "@effect-aws/client-lambda";
59
-
60
- const program = LambdaService.invoke(args);
61
-
62
- const LambdaClientInstanceLayer = Layer.provide(
63
- Layer.effect(
64
- LambdaClientInstance,
65
- LambdaClientInstanceConfig.pipe(
66
- Effect.map(
67
- (config) => new LambdaClient({ ...config, region: "eu-central-1" }),
68
- ),
69
- ),
70
- ),
71
- DefaultLambdaClientConfigLayer,
72
- );
47
+ import { Lambda } from "@effect-aws/client-lambda";
48
+
49
+ const program = Lambda.invoke(args);
73
50
 
74
51
  const result = await pipe(
75
52
  program,
76
- Effect.provide(BaseLambdaServiceLayer),
77
- Effect.provide(LambdaClientInstanceLayer),
53
+ Effect.provide(Lambda.layer({ region: "eu-central-1" })),
78
54
  Effect.runPromiseExit,
79
55
  );
80
56
  ```
81
57
 
82
- or map over `DefaultLambdaClientConfigLayer` layer context and update the configuration...
58
+ or use `Lambda.baseLayer((default) => new LambdaClient({ ...default, region: "eu-central-1" }))`
@@ -1,11 +1,15 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { type AddLayerVersionPermissionCommandInput, type AddLayerVersionPermissionCommandOutput, type AddPermissionCommandInput, type AddPermissionCommandOutput, type CreateAliasCommandInput, type CreateAliasCommandOutput, type CreateCodeSigningConfigCommandInput, type CreateCodeSigningConfigCommandOutput, type CreateEventSourceMappingCommandInput, type CreateEventSourceMappingCommandOutput, type CreateFunctionCommandInput, type CreateFunctionCommandOutput, type CreateFunctionUrlConfigCommandInput, type CreateFunctionUrlConfigCommandOutput, type DeleteAliasCommandInput, type DeleteAliasCommandOutput, type DeleteCodeSigningConfigCommandInput, type DeleteCodeSigningConfigCommandOutput, type DeleteEventSourceMappingCommandInput, type DeleteEventSourceMappingCommandOutput, type DeleteFunctionCommandInput, type DeleteFunctionCommandOutput, type DeleteFunctionCodeSigningConfigCommandInput, type DeleteFunctionCodeSigningConfigCommandOutput, type DeleteFunctionConcurrencyCommandInput, type DeleteFunctionConcurrencyCommandOutput, type DeleteFunctionEventInvokeConfigCommandInput, type DeleteFunctionEventInvokeConfigCommandOutput, type DeleteFunctionUrlConfigCommandInput, type DeleteFunctionUrlConfigCommandOutput, type DeleteLayerVersionCommandInput, type DeleteLayerVersionCommandOutput, type DeleteProvisionedConcurrencyConfigCommandInput, type DeleteProvisionedConcurrencyConfigCommandOutput, type GetAccountSettingsCommandInput, type GetAccountSettingsCommandOutput, type GetAliasCommandInput, type GetAliasCommandOutput, type GetCodeSigningConfigCommandInput, type GetCodeSigningConfigCommandOutput, type GetEventSourceMappingCommandInput, type GetEventSourceMappingCommandOutput, type GetFunctionCommandInput, type GetFunctionCommandOutput, type GetFunctionCodeSigningConfigCommandInput, type GetFunctionCodeSigningConfigCommandOutput, type GetFunctionConcurrencyCommandInput, type GetFunctionConcurrencyCommandOutput, type GetFunctionConfigurationCommandInput, type GetFunctionConfigurationCommandOutput, type GetFunctionEventInvokeConfigCommandInput, type GetFunctionEventInvokeConfigCommandOutput, type GetFunctionRecursionConfigCommandInput, type GetFunctionRecursionConfigCommandOutput, type GetFunctionUrlConfigCommandInput, type GetFunctionUrlConfigCommandOutput, type GetLayerVersionCommandInput, type GetLayerVersionCommandOutput, type GetLayerVersionByArnCommandInput, type GetLayerVersionByArnCommandOutput, type GetLayerVersionPolicyCommandInput, type GetLayerVersionPolicyCommandOutput, type GetPolicyCommandInput, type GetPolicyCommandOutput, type GetProvisionedConcurrencyConfigCommandInput, type GetProvisionedConcurrencyConfigCommandOutput, type GetRuntimeManagementConfigCommandInput, type GetRuntimeManagementConfigCommandOutput, type InvokeCommandInput, type InvokeCommandOutput, type InvokeAsyncCommandInput, type InvokeAsyncCommandOutput, type InvokeWithResponseStreamCommandInput, type InvokeWithResponseStreamCommandOutput, type ListAliasesCommandInput, type ListAliasesCommandOutput, type ListCodeSigningConfigsCommandInput, type ListCodeSigningConfigsCommandOutput, type ListEventSourceMappingsCommandInput, type ListEventSourceMappingsCommandOutput, type ListFunctionEventInvokeConfigsCommandInput, type ListFunctionEventInvokeConfigsCommandOutput, type ListFunctionsCommandInput, type ListFunctionsCommandOutput, type ListFunctionsByCodeSigningConfigCommandInput, type ListFunctionsByCodeSigningConfigCommandOutput, type ListFunctionUrlConfigsCommandInput, type ListFunctionUrlConfigsCommandOutput, type ListLayersCommandInput, type ListLayersCommandOutput, type ListLayerVersionsCommandInput, type ListLayerVersionsCommandOutput, type ListProvisionedConcurrencyConfigsCommandInput, type ListProvisionedConcurrencyConfigsCommandOutput, type ListTagsCommandInput, type ListTagsCommandOutput, type ListVersionsByFunctionCommandInput, type ListVersionsByFunctionCommandOutput, type PublishLayerVersionCommandInput, type PublishLayerVersionCommandOutput, type PublishVersionCommandInput, type PublishVersionCommandOutput, type PutFunctionCodeSigningConfigCommandInput, type PutFunctionCodeSigningConfigCommandOutput, type PutFunctionConcurrencyCommandInput, type PutFunctionConcurrencyCommandOutput, type PutFunctionEventInvokeConfigCommandInput, type PutFunctionEventInvokeConfigCommandOutput, type PutFunctionRecursionConfigCommandInput, type PutFunctionRecursionConfigCommandOutput, type PutProvisionedConcurrencyConfigCommandInput, type PutProvisionedConcurrencyConfigCommandOutput, type PutRuntimeManagementConfigCommandInput, type PutRuntimeManagementConfigCommandOutput, type RemoveLayerVersionPermissionCommandInput, type RemoveLayerVersionPermissionCommandOutput, type RemovePermissionCommandInput, type RemovePermissionCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAliasCommandInput, type UpdateAliasCommandOutput, type UpdateCodeSigningConfigCommandInput, type UpdateCodeSigningConfigCommandOutput, type UpdateEventSourceMappingCommandInput, type UpdateEventSourceMappingCommandOutput, type UpdateFunctionCodeCommandInput, type UpdateFunctionCodeCommandOutput, type UpdateFunctionConfigurationCommandInput, type UpdateFunctionConfigurationCommandOutput, type UpdateFunctionEventInvokeConfigCommandInput, type UpdateFunctionEventInvokeConfigCommandOutput, type UpdateFunctionUrlConfigCommandInput, type UpdateFunctionUrlConfigCommandOutput } from "@aws-sdk/client-lambda";
4
+ import { type LambdaClient, type LambdaClientConfig, type AddLayerVersionPermissionCommandInput, type AddLayerVersionPermissionCommandOutput, type AddPermissionCommandInput, type AddPermissionCommandOutput, type CreateAliasCommandInput, type CreateAliasCommandOutput, type CreateCodeSigningConfigCommandInput, type CreateCodeSigningConfigCommandOutput, type CreateEventSourceMappingCommandInput, type CreateEventSourceMappingCommandOutput, type CreateFunctionCommandInput, type CreateFunctionCommandOutput, type CreateFunctionUrlConfigCommandInput, type CreateFunctionUrlConfigCommandOutput, type DeleteAliasCommandInput, type DeleteAliasCommandOutput, type DeleteCodeSigningConfigCommandInput, type DeleteCodeSigningConfigCommandOutput, type DeleteEventSourceMappingCommandInput, type DeleteEventSourceMappingCommandOutput, type DeleteFunctionCommandInput, type DeleteFunctionCommandOutput, type DeleteFunctionCodeSigningConfigCommandInput, type DeleteFunctionCodeSigningConfigCommandOutput, type DeleteFunctionConcurrencyCommandInput, type DeleteFunctionConcurrencyCommandOutput, type DeleteFunctionEventInvokeConfigCommandInput, type DeleteFunctionEventInvokeConfigCommandOutput, type DeleteFunctionUrlConfigCommandInput, type DeleteFunctionUrlConfigCommandOutput, type DeleteLayerVersionCommandInput, type DeleteLayerVersionCommandOutput, type DeleteProvisionedConcurrencyConfigCommandInput, type DeleteProvisionedConcurrencyConfigCommandOutput, type GetAccountSettingsCommandInput, type GetAccountSettingsCommandOutput, type GetAliasCommandInput, type GetAliasCommandOutput, type GetCodeSigningConfigCommandInput, type GetCodeSigningConfigCommandOutput, type GetEventSourceMappingCommandInput, type GetEventSourceMappingCommandOutput, type GetFunctionCommandInput, type GetFunctionCommandOutput, type GetFunctionCodeSigningConfigCommandInput, type GetFunctionCodeSigningConfigCommandOutput, type GetFunctionConcurrencyCommandInput, type GetFunctionConcurrencyCommandOutput, type GetFunctionConfigurationCommandInput, type GetFunctionConfigurationCommandOutput, type GetFunctionEventInvokeConfigCommandInput, type GetFunctionEventInvokeConfigCommandOutput, type GetFunctionRecursionConfigCommandInput, type GetFunctionRecursionConfigCommandOutput, type GetFunctionUrlConfigCommandInput, type GetFunctionUrlConfigCommandOutput, type GetLayerVersionCommandInput, type GetLayerVersionCommandOutput, type GetLayerVersionByArnCommandInput, type GetLayerVersionByArnCommandOutput, type GetLayerVersionPolicyCommandInput, type GetLayerVersionPolicyCommandOutput, type GetPolicyCommandInput, type GetPolicyCommandOutput, type GetProvisionedConcurrencyConfigCommandInput, type GetProvisionedConcurrencyConfigCommandOutput, type GetRuntimeManagementConfigCommandInput, type GetRuntimeManagementConfigCommandOutput, type InvokeCommandInput, type InvokeCommandOutput, type InvokeAsyncCommandInput, type InvokeAsyncCommandOutput, type InvokeWithResponseStreamCommandInput, type InvokeWithResponseStreamCommandOutput, type ListAliasesCommandInput, type ListAliasesCommandOutput, type ListCodeSigningConfigsCommandInput, type ListCodeSigningConfigsCommandOutput, type ListEventSourceMappingsCommandInput, type ListEventSourceMappingsCommandOutput, type ListFunctionEventInvokeConfigsCommandInput, type ListFunctionEventInvokeConfigsCommandOutput, type ListFunctionUrlConfigsCommandInput, type ListFunctionUrlConfigsCommandOutput, type ListFunctionsCommandInput, type ListFunctionsCommandOutput, type ListFunctionsByCodeSigningConfigCommandInput, type ListFunctionsByCodeSigningConfigCommandOutput, type ListLayerVersionsCommandInput, type ListLayerVersionsCommandOutput, type ListLayersCommandInput, type ListLayersCommandOutput, type ListProvisionedConcurrencyConfigsCommandInput, type ListProvisionedConcurrencyConfigsCommandOutput, type ListTagsCommandInput, type ListTagsCommandOutput, type ListVersionsByFunctionCommandInput, type ListVersionsByFunctionCommandOutput, type PublishLayerVersionCommandInput, type PublishLayerVersionCommandOutput, type PublishVersionCommandInput, type PublishVersionCommandOutput, type PutFunctionCodeSigningConfigCommandInput, type PutFunctionCodeSigningConfigCommandOutput, type PutFunctionConcurrencyCommandInput, type PutFunctionConcurrencyCommandOutput, type PutFunctionEventInvokeConfigCommandInput, type PutFunctionEventInvokeConfigCommandOutput, type PutFunctionRecursionConfigCommandInput, type PutFunctionRecursionConfigCommandOutput, type PutProvisionedConcurrencyConfigCommandInput, type PutProvisionedConcurrencyConfigCommandOutput, type PutRuntimeManagementConfigCommandInput, type PutRuntimeManagementConfigCommandOutput, type RemoveLayerVersionPermissionCommandInput, type RemoveLayerVersionPermissionCommandOutput, type RemovePermissionCommandInput, type RemovePermissionCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAliasCommandInput, type UpdateAliasCommandOutput, type UpdateCodeSigningConfigCommandInput, type UpdateCodeSigningConfigCommandOutput, type UpdateEventSourceMappingCommandInput, type UpdateEventSourceMappingCommandOutput, type UpdateFunctionCodeCommandInput, type UpdateFunctionCodeCommandOutput, type UpdateFunctionConfigurationCommandInput, type UpdateFunctionConfigurationCommandOutput, type UpdateFunctionEventInvokeConfigCommandInput, type UpdateFunctionEventInvokeConfigCommandOutput, type UpdateFunctionUrlConfigCommandInput, type UpdateFunctionUrlConfigCommandOutput } from "@aws-sdk/client-lambda";
5
5
  import { Effect, Layer } from "effect";
6
6
  import { CodeSigningConfigNotFoundError, CodeStorageExceededError, CodeVerificationFailedError, EC2AccessDeniedError, EC2ThrottledError, EC2UnexpectedError, EFSIOError, EFSMountConnectivityError, EFSMountFailureError, EFSMountTimeoutError, ENILimitReachedError, InvalidCodeSignatureError, InvalidParameterValueError, InvalidRequestContentError, InvalidRuntimeError, InvalidSecurityGroupIDError, InvalidSubnetIDError, InvalidZipFileError, KMSAccessDeniedError, KMSDisabledError, KMSInvalidStateError, KMSNotFoundError, PolicyLengthExceededError, PreconditionFailedError, ProvisionedConcurrencyConfigNotFoundError, RecursiveInvocationError, RequestTooLargeError, ResourceConflictError, ResourceInUseError, ResourceNotFoundError, ResourceNotReadyError, ServiceError, SnapStartError, SnapStartNotReadyError, SnapStartTimeoutError, SubnetIPAddressLimitReachedError, TooManyRequestsError, UnsupportedMediaTypeError, SdkError } from "./Errors";
7
7
  import { LambdaClientInstance } from "./LambdaClientInstance";
8
- interface HttpHandlerOptions {
8
+ import { LambdaClientInstanceConfig } from "./LambdaClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export interface HttpHandlerOptions {
9
13
  /**
10
14
  * The maximum time in milliseconds that the connection phase of a request
11
15
  * may take before the connection attempt is abandoned.
@@ -178,6 +182,10 @@ interface LambdaService$ {
178
182
  * @see {@link ListFunctionEventInvokeConfigsCommand}
179
183
  */
180
184
  listFunctionEventInvokeConfigs(args: ListFunctionEventInvokeConfigsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListFunctionEventInvokeConfigsCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
185
+ /**
186
+ * @see {@link ListFunctionUrlConfigsCommand}
187
+ */
188
+ listFunctionUrlConfigs(args: ListFunctionUrlConfigsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListFunctionUrlConfigsCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
181
189
  /**
182
190
  * @see {@link ListFunctionsCommand}
183
191
  */
@@ -187,17 +195,13 @@ interface LambdaService$ {
187
195
  */
188
196
  listFunctionsByCodeSigningConfig(args: ListFunctionsByCodeSigningConfigCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListFunctionsByCodeSigningConfigCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError>;
189
197
  /**
190
- * @see {@link ListFunctionUrlConfigsCommand}
198
+ * @see {@link ListLayerVersionsCommand}
191
199
  */
192
- listFunctionUrlConfigs(args: ListFunctionUrlConfigsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListFunctionUrlConfigsCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
200
+ listLayerVersions(args: ListLayerVersionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListLayerVersionsCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
193
201
  /**
194
202
  * @see {@link ListLayersCommand}
195
203
  */
196
204
  listLayers(args: ListLayersCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListLayersCommandOutput, SdkError | InvalidParameterValueError | ServiceError | TooManyRequestsError>;
197
- /**
198
- * @see {@link ListLayerVersionsCommand}
199
- */
200
- listLayerVersions(args: ListLayerVersionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListLayerVersionsCommandOutput, SdkError | InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
201
205
  /**
202
206
  * @see {@link ListProvisionedConcurrencyConfigsCommand}
203
207
  */
@@ -287,6 +291,11 @@ interface LambdaService$ {
287
291
  */
288
292
  updateFunctionUrlConfig(args: UpdateFunctionUrlConfigCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateFunctionUrlConfigCommandOutput, SdkError | InvalidParameterValueError | ResourceConflictError | ResourceNotFoundError | ServiceError | TooManyRequestsError>;
289
293
  }
294
+ /**
295
+ * @since 1.0.0
296
+ * @category constructors
297
+ */
298
+ export declare const makeLambdaService: Effect.Effect<LambdaService$, never, LambdaClientInstance>;
290
299
  declare const LambdaService_base: import("effect/Context").TagClass<LambdaService, "@effect-aws/client-lambda/LambdaService", LambdaService$> & {
291
300
  readonly _: Effect.Effect<LambdaService$["_"], never, LambdaService>;
292
301
  addLayerVersionPermission: (args: AddLayerVersionPermissionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AddLayerVersionPermissionCommandOutput, InvalidParameterValueError | PolicyLengthExceededError | PreconditionFailedError | ResourceConflictError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
@@ -330,11 +339,11 @@ declare const LambdaService_base: import("effect/Context").TagClass<LambdaServic
330
339
  listCodeSigningConfigs: (args: ListCodeSigningConfigsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListCodeSigningConfigsCommandOutput, InvalidParameterValueError | ServiceError | SdkError, LambdaService>;
331
340
  listEventSourceMappings: (args: ListEventSourceMappingsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListEventSourceMappingsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
332
341
  listFunctionEventInvokeConfigs: (args: ListFunctionEventInvokeConfigsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListFunctionEventInvokeConfigsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
342
+ listFunctionUrlConfigs: (args: ListFunctionUrlConfigsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListFunctionUrlConfigsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
333
343
  listFunctions: (args: ListFunctionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListFunctionsCommandOutput, InvalidParameterValueError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
334
344
  listFunctionsByCodeSigningConfig: (args: ListFunctionsByCodeSigningConfigCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListFunctionsByCodeSigningConfigCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | SdkError, LambdaService>;
335
- listFunctionUrlConfigs: (args: ListFunctionUrlConfigsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListFunctionUrlConfigsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
336
- listLayers: (args: ListLayersCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListLayersCommandOutput, InvalidParameterValueError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
337
345
  listLayerVersions: (args: ListLayerVersionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListLayerVersionsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
346
+ listLayers: (args: ListLayersCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListLayersCommandOutput, InvalidParameterValueError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
338
347
  listProvisionedConcurrencyConfigs: (args: ListProvisionedConcurrencyConfigsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListProvisionedConcurrencyConfigsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
339
348
  listTags: (args: ListTagsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
340
349
  listVersionsByFunction: (args: ListVersionsByFunctionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListVersionsByFunctionCommandOutput, InvalidParameterValueError | ResourceNotFoundError | ServiceError | TooManyRequestsError | SdkError, LambdaService>;
@@ -365,25 +374,32 @@ declare const LambdaService_base: import("effect/Context").TagClass<LambdaServic
365
374
  * @category models
366
375
  */
367
376
  export declare class LambdaService extends LambdaService_base {
377
+ static readonly defaultLayer: Layer.Layer<LambdaService, never, never>;
378
+ static readonly layer: (config: LambdaClientConfig) => Layer.Layer<LambdaService, never, never>;
379
+ static readonly baseLayer: (evaluate: (defaultConfig: LambdaClientConfig) => LambdaClient) => Layer.Layer<LambdaService, never, never>;
368
380
  }
369
381
  /**
370
382
  * @since 1.0.0
371
- * @category constructors
383
+ * @category models
384
+ * @alias LambdaService
372
385
  */
373
- export declare const makeLambdaService: Effect.Effect<LambdaService$, never, LambdaClientInstance>;
386
+ export declare const Lambda: typeof LambdaService;
374
387
  /**
375
388
  * @since 1.0.0
376
389
  * @category layers
390
+ * @deprecated use Lambda.baseLayer instead
377
391
  */
378
392
  export declare const BaseLambdaServiceLayer: Layer.Layer<LambdaService, never, LambdaClientInstance>;
379
393
  /**
380
394
  * @since 1.0.0
381
395
  * @category layers
396
+ * @deprecated use Lambda.layer instead
382
397
  */
383
- export declare const LambdaServiceLayer: Layer.Layer<LambdaService, never, import("./LambdaClientInstanceConfig").LambdaClientInstanceConfig>;
398
+ export declare const LambdaServiceLayer: Layer.Layer<LambdaService, never, LambdaClientInstanceConfig>;
384
399
  /**
385
400
  * @since 1.0.0
386
401
  * @category layers
402
+ * @deprecated use Lambda.defaultLayer instead
387
403
  */
388
404
  export declare const DefaultLambdaServiceLayer: Layer.Layer<LambdaService, never, never>;
389
405
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultLambdaServiceLayer = exports.LambdaServiceLayer = exports.BaseLambdaServiceLayer = exports.makeLambdaService = exports.LambdaService = void 0;
4
+ exports.DefaultLambdaServiceLayer = exports.LambdaServiceLayer = exports.BaseLambdaServiceLayer = exports.Lambda = exports.LambdaService = exports.makeLambdaService = void 0;
4
5
  /**
5
6
  * @since 1.0.0
6
7
  */
@@ -51,11 +52,11 @@ const commands = {
51
52
  ListCodeSigningConfigsCommand: client_lambda_1.ListCodeSigningConfigsCommand,
52
53
  ListEventSourceMappingsCommand: client_lambda_1.ListEventSourceMappingsCommand,
53
54
  ListFunctionEventInvokeConfigsCommand: client_lambda_1.ListFunctionEventInvokeConfigsCommand,
55
+ ListFunctionUrlConfigsCommand: client_lambda_1.ListFunctionUrlConfigsCommand,
54
56
  ListFunctionsCommand: client_lambda_1.ListFunctionsCommand,
55
57
  ListFunctionsByCodeSigningConfigCommand: client_lambda_1.ListFunctionsByCodeSigningConfigCommand,
56
- ListFunctionUrlConfigsCommand: client_lambda_1.ListFunctionUrlConfigsCommand,
57
- ListLayersCommand: client_lambda_1.ListLayersCommand,
58
58
  ListLayerVersionsCommand: client_lambda_1.ListLayerVersionsCommand,
59
+ ListLayersCommand: client_lambda_1.ListLayersCommand,
59
60
  ListProvisionedConcurrencyConfigsCommand: client_lambda_1.ListProvisionedConcurrencyConfigsCommand,
60
61
  ListTagsCommand: client_lambda_1.ListTagsCommand,
61
62
  ListVersionsByFunctionCommand: client_lambda_1.ListVersionsByFunctionCommand,
@@ -79,13 +80,6 @@ const commands = {
79
80
  UpdateFunctionEventInvokeConfigCommand: client_lambda_1.UpdateFunctionEventInvokeConfigCommand,
80
81
  UpdateFunctionUrlConfigCommand: client_lambda_1.UpdateFunctionUrlConfigCommand,
81
82
  };
82
- /**
83
- * @since 1.0.0
84
- * @category models
85
- */
86
- class LambdaService extends effect_1.Effect.Tag("@effect-aws/client-lambda/LambdaService")() {
87
- }
88
- exports.LambdaService = LambdaService;
89
83
  /**
90
84
  * @since 1.0.0
91
85
  * @category constructors
@@ -124,19 +118,39 @@ exports.makeLambdaService = effect_1.Effect.gen(function* (_) {
124
118
  return { ...acc, [methodName]: methodImpl };
125
119
  }, {});
126
120
  });
121
+ /**
122
+ * @since 1.0.0
123
+ * @category models
124
+ */
125
+ class LambdaService extends effect_1.Effect.Tag("@effect-aws/client-lambda/LambdaService")() {
126
+ }
127
+ exports.LambdaService = LambdaService;
128
+ _a = LambdaService;
129
+ LambdaService.defaultLayer = effect_1.Layer.effect(_a, exports.makeLambdaService).pipe(effect_1.Layer.provide(LambdaClientInstance_1.LambdaClientInstanceLayer), effect_1.Layer.provide(LambdaClientInstanceConfig_1.DefaultLambdaClientConfigLayer));
130
+ LambdaService.layer = (config) => effect_1.Layer.effect(_a, exports.makeLambdaService).pipe(effect_1.Layer.provide(LambdaClientInstance_1.LambdaClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(LambdaClientInstanceConfig_1.LambdaClientInstanceConfig, LambdaClientInstanceConfig_1.makeDefaultLambdaClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
131
+ LambdaService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeLambdaService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(LambdaClientInstance_1.LambdaClientInstance, effect_1.Effect.map(LambdaClientInstanceConfig_1.makeDefaultLambdaClientInstanceConfig, evaluate))));
132
+ /**
133
+ * @since 1.0.0
134
+ * @category models
135
+ * @alias LambdaService
136
+ */
137
+ exports.Lambda = LambdaService;
127
138
  /**
128
139
  * @since 1.0.0
129
140
  * @category layers
141
+ * @deprecated use Lambda.baseLayer instead
130
142
  */
131
143
  exports.BaseLambdaServiceLayer = effect_1.Layer.effect(LambdaService, exports.makeLambdaService);
132
144
  /**
133
145
  * @since 1.0.0
134
146
  * @category layers
147
+ * @deprecated use Lambda.layer instead
135
148
  */
136
149
  exports.LambdaServiceLayer = exports.BaseLambdaServiceLayer.pipe(effect_1.Layer.provide(LambdaClientInstance_1.LambdaClientInstanceLayer));
137
150
  /**
138
151
  * @since 1.0.0
139
152
  * @category layers
153
+ * @deprecated use Lambda.defaultLayer instead
140
154
  */
141
- exports.DefaultLambdaServiceLayer = exports.LambdaServiceLayer.pipe(effect_1.Layer.provide(LambdaClientInstanceConfig_1.DefaultLambdaClientConfigLayer));
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MYW1iZGFTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsMERBOE1nQztBQUNoQyxtQ0FBcUQ7QUFDckQscUNBMENrQjtBQUNsQixpRUFHZ0M7QUFDaEMsNkVBQThFO0FBVTlFLE1BQU0sUUFBUSxHQUFHO0lBQ2YsZ0NBQWdDLEVBQWhDLGdEQUFnQztJQUNoQyxvQkFBb0IsRUFBcEIsb0NBQW9CO0lBQ3BCLGtCQUFrQixFQUFsQixrQ0FBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDhDQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsK0NBQStCO0lBQy9CLHFCQUFxQixFQUFyQixxQ0FBcUI7SUFDckIsOEJBQThCLEVBQTlCLDhDQUE4QjtJQUM5QixrQkFBa0IsRUFBbEIsa0NBQWtCO0lBQ2xCLDhCQUE4QixFQUE5Qiw4Q0FBOEI7SUFDOUIsK0JBQStCLEVBQS9CLCtDQUErQjtJQUMvQixxQkFBcUIsRUFBckIscUNBQXFCO0lBQ3JCLHNDQUFzQyxFQUF0QyxzREFBc0M7SUFDdEMsZ0NBQWdDLEVBQWhDLGdEQUFnQztJQUNoQyxzQ0FBc0MsRUFBdEMsc0RBQXNDO0lBQ3RDLDhCQUE4QixFQUE5Qiw4Q0FBOEI7SUFDOUIseUJBQXlCLEVBQXpCLHlDQUF5QjtJQUN6Qix5Q0FBeUMsRUFBekMseURBQXlDO0lBQ3pDLHlCQUF5QixFQUF6Qix5Q0FBeUI7SUFDekIsZUFBZSxFQUFmLCtCQUFlO0lBQ2YsMkJBQTJCLEVBQTNCLDJDQUEyQjtJQUMzQiw0QkFBNEIsRUFBNUIsNENBQTRCO0lBQzVCLGtCQUFrQixFQUFsQixrQ0FBa0I7SUFDbEIsbUNBQW1DLEVBQW5DLG1EQUFtQztJQUNuQyw2QkFBNkIsRUFBN0IsNkNBQTZCO0lBQzdCLCtCQUErQixFQUEvQiwrQ0FBK0I7SUFDL0IsbUNBQW1DLEVBQW5DLG1EQUFtQztJQUNuQyxpQ0FBaUMs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QUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUFHLDBCQUFrQixDQUFDLElBQUksQ0FDOUQsY0FBSyxDQUFDLE9BQU8sQ0FBQywyREFBOEIsQ0FBQyxDQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgTGFtYmRhU2VydmljZUV4Y2VwdGlvbixcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWxpYXNDb21tYW5kLFxuICB0eXBlIEdldEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICB0eXBlIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICB0eXBlIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICB0eXBlIEludm9rZUFzeW5jQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZUFzeW5jQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFsaWFzZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kLFxuICB0eXBlIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdExheWVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdExheWVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TGF5ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RMYXllclZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kLFxuICB0eXBlIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvcixcbiAgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yLFxuICBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXJyb3IsXG4gIEVDMkFjY2Vzc0RlbmllZEVycm9yLFxuICBFQzJUaHJvdHRsZWRFcnJvcixcbiAgRUMyVW5leHBlY3RlZEVycm9yLFxuICBFRlNJT0Vycm9yLFxuICBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yLFxuICBFRlNNb3VudEZhaWx1cmVFcnJvcixcbiAgRUZTTW91bnRUaW1lb3V0RXJyb3IsXG4gIEVOSUxpbWl0UmVhY2hlZEVycm9yLFxuICBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3IsXG4gIEludmFsaWRSdW50aW1lRXJyb3IsXG4gIEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvcixcbiAgSW52YWxpZFN1Ym5ldElERXJyb3IsXG4gIEludmFsaWRaaXBGaWxlRXJyb3IsXG4gIEtNU0FjY2Vzc0RlbmllZEVycm9yLFxuICBLTVNEaXNhYmxlZEVycm9yLFxuICBLTVNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS01TTm90Rm91bmRFcnJvcixcbiAgUG9saWN5TGVuZ3RoRXhjZWVkZWRFcnJvcixcbiAgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3IsXG4gIFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEVycm9yLFxuICBSZWN1cnNpdmVJbnZvY2F0aW9uRXJyb3IsXG4gIFJlcXVlc3RUb29MYXJnZUVycm9yLFxuICBSZXNvdXJjZUNvbmZsaWN0RXJyb3IsXG4gIFJlc291cmNlSW5Vc2VFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBSZXNvdXJjZU5vdFJlYWR5RXJyb3IsXG4gIFNlcnZpY2VFcnJvcixcbiAgU25hcFN0YXJ0RXJyb3IsXG4gIFNuYXBTdGFydE5vdFJlYWR5RXJyb3IsXG4gIFNuYXBTdGFydFRpbWVvdXRFcnJvcixcbiAgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXJyb3IsXG4gIFRvb01hbnlSZXF1ZXN0c0Vycm9yLFxuICBVbnN1cHBvcnRlZE1lZGlhVHlwZUVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIExhbWJkYUNsaWVudEluc3RhbmNlLFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9MYW1iZGFDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBBZGRQZXJtaXNzaW9uQ29tbWFuZCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kLFxuICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBEZWxldGVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kLFxuICBHZXRBbGlhc0NvbW1hbmQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kLFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBJbnZva2VDb21tYW5kLFxuICBJbnZva2VBc3luY0NvbW1hbmQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kLFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBMYW1iZGFTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgYWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbihcbiAgICBhcmdzOiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFBvbGljeUxlbmd0aEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRQZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZFBlcm1pc3Npb24oXG4gICAgYXJnczogQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQb2xpY3lMZW5ndGhFeGNlZWRlZEVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWxpYXMoXG4gICAgYXJnczogQ3JlYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVGdW5jdGlvbihcbiAgICBhcmdzOiBDcmVhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yXG4gICAgfCBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeShcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMYXllclZlcnNpb24oXG4gICAgYXJnczogRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmR9XG4gICAqL1xuICBnZXRBY2NvdW50U2V0dGluZ3MoXG4gICAgYXJnczogR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGdldEFsaWFzKFxuICAgIGFyZ3M6IEdldEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbihcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IEdldExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmR9XG4gICAqL1xuICBnZXRMYXllclZlcnNpb25CeUFybihcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRMYXllclZlcnNpb25Qb2xpY3koXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRQb2xpY3koXG4gICAgYXJnczogR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyhcbiAgICBhcmdzOiBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcoXG4gICAgYXJnczogR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbnZva2VDb21tYW5kfVxuICAgKi9cbiAgaW52b2tlKFxuICAgIGFyZ3M6IEludm9rZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEludm9rZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRUMyQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEVDMlRocm90dGxlZEVycm9yXG4gICAgfCBFQzJVbmV4cGVjdGVkRXJyb3JcbiAgICB8IEVGU0lPRXJyb3JcbiAgICB8IEVGU01vdW50Q29ubmVjdGl2aXR5RXJyb3JcbiAgICB8IEVGU01vdW50RmFpbHVyZUVycm9yXG4gICAgfCBFRlNNb3VudFRpbWVvdXRFcnJvclxuICAgIHwgRU5JTGltaXRSZWFjaGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFcnJvclxuICAgIHwgSW52YWxpZFJ1bnRpbWVFcnJvclxuICAgIHwgSW52YWxpZFNlY3VyaXR5R3JvdXBJREVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0SURFcnJvclxuICAgIHwgSW52YWxpZFppcEZpbGVFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBSZWN1cnNpdmVJbnZvY2F0aW9uRXJyb3JcbiAgICB8IFJlcXVlc3RUb29MYXJnZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RSZWFkeUVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFNuYXBTdGFydEVycm9yXG4gICAgfCBTbmFwU3RhcnROb3RSZWFkeUVycm9yXG4gICAgfCBTbmFwU3RhcnRUaW1lb3V0RXJyb3JcbiAgICB8IFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbnZva2VBc3luY0NvbW1hbmR9XG4gICAqL1xuICBpbnZva2VBc3luYyhcbiAgICBhcmdzOiBJbnZva2VBc3luY0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEludm9rZUFzeW5jQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFcnJvclxuICAgIHwgSW52YWxpZFJ1bnRpbWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgaW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtKFxuICAgIGFyZ3M6IEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRUMyQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEVDMlRocm90dGxlZEVycm9yXG4gICAgfCBFQzJVbmV4cGVjdGVkRXJyb3JcbiAgICB8IEVGU0lPRXJyb3JcbiAgICB8IEVGU01vdW50Q29ubmVjdGl2aXR5RXJyb3JcbiAgICB8IEVGU01vdW50RmFpbHVyZUVycm9yXG4gICAgfCBFRlNNb3VudFRpbWVvdXRFcnJvclxuICAgIHwgRU5JTGltaXRSZWFjaGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVxdWVzdENvbnRlbnRFcnJvclxuICAgIHwgSW52YWxpZFJ1bnRpbWVFcnJvclxuICAgIHwgSW52YWxpZFNlY3VyaXR5R3JvdXBJREVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0SURFcnJvclxuICAgIHwgSW52YWxpZFppcEZpbGVFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBSZWN1cnNpdmVJbnZvY2F0aW9uRXJyb3JcbiAgICB8IFJlcXVlc3RUb29MYXJnZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RSZWFkeUVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFNuYXBTdGFydEVycm9yXG4gICAgfCBTbmFwU3RhcnROb3RSZWFkeUVycm9yXG4gICAgfCBTbmFwU3RhcnRUaW1lb3V0RXJyb3JcbiAgICB8IFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWxpYXNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWxpYXNlcyhcbiAgICBhcmdzOiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdENvZGVTaWduaW5nQ29uZmlncyhcbiAgICBhcmdzOiBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXZlbnRTb3VyY2VNYXBwaW5ncyhcbiAgICBhcmdzOiBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9ucyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25VcmxDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMYXllcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExheWVycyhcbiAgICBhcmdzOiBMaXN0TGF5ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExheWVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMYXllclZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMYXllclZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RMYXllclZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlncyhcbiAgICBhcmdzOiBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3MoXG4gICAgYXJnczogTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWZXJzaW9uc0J5RnVuY3Rpb24oXG4gICAgYXJnczogTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoTGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBwdXRGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyhcbiAgICBhcmdzOiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnKFxuICAgIGFyZ3M6IFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24oXG4gICAgYXJnczogUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlUGVybWlzc2lvbihcbiAgICBhcmdzOiBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFsaWFzKFxuICAgIGFyZ3M6IFVwZGF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uQ29kZShcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yXG4gICAgfCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXJyb3JcbiAgICB8IEludmFsaWRDb2RlU2lnbmF0dXJlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yXG4gICAgfCBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWxhbWJkYS9MYW1iZGFTZXJ2aWNlXCIsXG4pPExhbWJkYVNlcnZpY2UsIExhbWJkYVNlcnZpY2UkPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlTGFtYmRhU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKExhbWJkYUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBMYW1iZGFTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUxhbWJkYVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgTGFtYmRhU2VydmljZSxcbiAgbWFrZUxhbWJkYVNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZUxheWVyID0gQmFzZUxhbWJkYVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBMYW1iZGFTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
155
+ exports.DefaultLambdaServiceLayer = LambdaService.defaultLayer;
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MYW1iZGFTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7R0FFRztBQUNILDBEQWdOZ0M7QUFDaEMsbUNBQXFEO0FBQ3JELHFDQTBDa0I7QUFDbEIsaUVBR2dDO0FBQ2hDLDZFQUlzQztBQWF0QyxNQUFNLFFBQVEsR0FBRztJQUNmLGdDQUFnQyxFQUFoQyxnREFBZ0M7SUFDaEMsb0JBQW9CLEVBQXBCLG9DQUFvQjtJQUNwQixrQkFBa0IsRUFBbEIsa0NBQWtCO0lBQ2xCLDhCQUE4QixFQUE5Qiw4Q0FBOEI7SUFDOUIsK0JBQStCLEVBQS9CLCtDQUErQjtJQUMvQixxQkFBcUIsRUFBckIscUNBQXFCO0lBQ3JCLDhCQUE4QixFQUE5Qiw4Q0FBOEI7SUFDOUIsa0JBQWtCLEVBQWxCLGtDQUFrQjtJQUNsQiw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLCtCQUErQixFQUEvQiwrQ0FBK0I7SUFDL0IscUJBQXFCLEVBQXJCLHFDQUFxQjtJQUNyQixzQ0FBc0MsRUFBdEMsc0RBQXNDO0lBQ3RDLGdDQUFnQyxFQUFoQyxnREFBZ0M7SUFDaEMsc0NBQXNDLEVBQXRDLHNEQUFzQztJQUN0Qyw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLHlCQUF5QixFQUF6Qix5Q0FBeUI7SUFDekIseUNBQXlDLEVBQXpDLHlEQUF5QztJQUN6Qyx5QkFBeUIsRUFBekIseUNBQXlCO0lBQ3pCLGVBQWUsRUFBZiwrQkFBZTtJQUNmLDJCQUEyQixFQUEzQiwyQ0FBMkI7SUFDM0IsNEJBQTRCLEVBQTVCLDRDQUE0QjtJQUM1QixrQkFBa0IsRUFBbEIsa0NBQWtCO0lBQ2xCLG1DQUFtQyxFQUFuQyxtREFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLDZDQUE2QjtJQUM3QiwrQkFBK0IsRUFBL0IsK0NBQStCO0lBQy9CLG1DQUFtQyxFQUFuQyxtREFBbUM7SUFDbkMsaUNBQWlD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cnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgTGFtYmRhQ2xpZW50LFxuICB0eXBlIExhbWJkYUNsaWVudENvbmZpZyxcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWxpYXNDb21tYW5kLFxuICB0eXBlIEdldEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICB0eXBlIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICB0eXBlIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICB0eXBlIEludm9rZUFzeW5jQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZUFzeW5jQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFsaWFzZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kLFxuICB0eXBlIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RMYXllclZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdExheWVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdExheWVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TGF5ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kLFxuICB0eXBlIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvcixcbiAgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yLFxuICBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXJyb3IsXG4gIEVDMkFjY2Vzc0RlbmllZEVycm9yLFxuICBFQzJUaHJvdHRsZWRFcnJvcixcbiAgRUMyVW5leHBlY3RlZEVycm9yLFxuICBFRlNJT0Vycm9yLFxuICBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yLFxuICBFRlNNb3VudEZhaWx1cmVFcnJvcixcbiAgRUZTTW91bnRUaW1lb3V0RXJyb3IsXG4gIEVOSUxpbWl0UmVhY2hlZEVycm9yLFxuICBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3IsXG4gIEludmFsaWRSdW50aW1lRXJyb3IsXG4gIEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvcixcbiAgSW52YWxpZFN1Ym5ldElERXJyb3IsXG4gIEludmFsaWRaaXBGaWxlRXJyb3IsXG4gIEtNU0FjY2Vzc0RlbmllZEVycm9yLFxuICBLTVNEaXNhYmxlZEVycm9yLFxuICBLTVNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS01TTm90Rm91bmRFcnJvcixcbiAgUG9saWN5TGVuZ3RoRXhjZWVkZWRFcnJvcixcbiAgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3IsXG4gIFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdOb3RGb3VuZEVycm9yLFxuICBSZWN1cnNpdmVJbnZvY2F0aW9uRXJyb3IsXG4gIFJlcXVlc3RUb29MYXJnZUVycm9yLFxuICBSZXNvdXJjZUNvbmZsaWN0RXJyb3IsXG4gIFJlc291cmNlSW5Vc2VFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBSZXNvdXJjZU5vdFJlYWR5RXJyb3IsXG4gIFNlcnZpY2VFcnJvcixcbiAgU25hcFN0YXJ0RXJyb3IsXG4gIFNuYXBTdGFydE5vdFJlYWR5RXJyb3IsXG4gIFNuYXBTdGFydFRpbWVvdXRFcnJvcixcbiAgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXJyb3IsXG4gIFRvb01hbnlSZXF1ZXN0c0Vycm9yLFxuICBVbnN1cHBvcnRlZE1lZGlhVHlwZUVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIExhbWJkYUNsaWVudEluc3RhbmNlLFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9MYW1iZGFDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnLFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBDcmVhdGVGdW5jdGlvbkNvbW1hbmQsXG4gIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kLFxuICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgR2V0QWxpYXNDb21tYW5kLFxuICBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgSW52b2tlQ29tbWFuZCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25zQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kLFxuICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgTGFtYmRhU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZExheWVyVmVyc2lvblBlcm1pc3Npb24oXG4gICAgYXJnczogQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQb2xpY3lMZW5ndGhFeGNlZWRlZEVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IEFkZFBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUG9saWN5TGVuZ3RoRXhjZWVkZWRFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb24oXG4gICAgYXJnczogQ3JlYXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXJyb3JcbiAgICB8IENvZGVWZXJpZmljYXRpb25GYWlsZWRFcnJvclxuICAgIHwgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBbGlhcyhcbiAgICBhcmdzOiBEZWxldGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbihcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjb3VudFNldHRpbmdzKFxuICAgIGFyZ3M6IEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBnZXRBbGlhcyhcbiAgICBhcmdzOiBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldENvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIGdldEV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb24oXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvbihcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uQnlBcm4oXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0UG9saWN5KFxuICAgIGFyZ3M6IEdldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnKFxuICAgIGFyZ3M6IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQ29tbWFuZH1cbiAgICovXG4gIGludm9rZShcbiAgICBhcmdzOiBJbnZva2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVDMkFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFQzJUaHJvdHRsZWRFcnJvclxuICAgIHwgRUMyVW5leHBlY3RlZEVycm9yXG4gICAgfCBFRlNJT0Vycm9yXG4gICAgfCBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXG4gICAgfCBFRlNNb3VudEZhaWx1cmVFcnJvclxuICAgIHwgRUZTTW91bnRUaW1lb3V0RXJyb3JcbiAgICB8IEVOSUxpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldElERXJyb3JcbiAgICB8IEludmFsaWRaaXBGaWxlRXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yXG4gICAgfCBSZXF1ZXN0VG9vTGFyZ2VFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFJlc291cmNlTm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTbmFwU3RhcnRFcnJvclxuICAgIHwgU25hcFN0YXJ0Tm90UmVhZHlFcnJvclxuICAgIHwgU25hcFN0YXJ0VGltZW91dEVycm9yXG4gICAgfCBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQXN5bmNDb21tYW5kfVxuICAgKi9cbiAgaW52b2tlQXN5bmMoXG4gICAgYXJnczogSW52b2tlQXN5bmNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGludm9rZVdpdGhSZXNwb25zZVN0cmVhbShcbiAgICBhcmdzOiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVDMkFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFQzJUaHJvdHRsZWRFcnJvclxuICAgIHwgRUMyVW5leHBlY3RlZEVycm9yXG4gICAgfCBFRlNJT0Vycm9yXG4gICAgfCBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXG4gICAgfCBFRlNNb3VudEZhaWx1cmVFcnJvclxuICAgIHwgRUZTTW91bnRUaW1lb3V0RXJyb3JcbiAgICB8IEVOSUxpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldElERXJyb3JcbiAgICB8IEludmFsaWRaaXBGaWxlRXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yXG4gICAgfCBSZXF1ZXN0VG9vTGFyZ2VFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFJlc291cmNlTm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTbmFwU3RhcnRFcnJvclxuICAgIHwgU25hcFN0YXJ0Tm90UmVhZHlFcnJvclxuICAgIHwgU25hcFN0YXJ0VGltZW91dEVycm9yXG4gICAgfCBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFsaWFzZXMoXG4gICAgYXJnczogTGlzdEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MoXG4gICAgYXJnczogTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2ZW50U291cmNlTWFwcGluZ3MoXG4gICAgYXJnczogTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvblVybENvbmZpZ3MoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25zKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RnVuY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZUVycm9yIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TGF5ZXJWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMYXllcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExheWVycyhcbiAgICBhcmdzOiBMaXN0TGF5ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExheWVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MoXG4gICAgYXJnczogTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnNCeUZ1bmN0aW9uKFxuICAgIGFyZ3M6IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaExheWVyVmVyc2lvbihcbiAgICBhcmdzOiBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2hWZXJzaW9uKFxuICAgIGFyZ3M6IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVibGlzaFZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25Db25jdXJyZW5jeShcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnKFxuICAgIGFyZ3M6IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyhcbiAgICBhcmdzOiBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVBlcm1pc3Npb24oXG4gICAgYXJnczogUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbGlhcyhcbiAgICBhcmdzOiBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvZGUoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yXG4gICAgfCBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IENvZGVWZXJpZmljYXRpb25GYWlsZWRFcnJvclxuICAgIHwgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VMYW1iZGFTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oTGFtYmRhQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPExhbWJkYVNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIExhbWJkYVNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtbGFtYmRhL0xhbWJkYVNlcnZpY2VcIixcbik8TGFtYmRhU2VydmljZSwgTGFtYmRhU2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VMYW1iZGFTZXJ2aWNlKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBMYW1iZGFDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VMYW1iZGFTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBMYW1iZGFDbGllbnRDb25maWcpID0+IExhbWJkYUNsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlTGFtYmRhU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBMYW1iZGFDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBMYW1iZGFTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBMYW1iZGEgPSBMYW1iZGFTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIExhbWJkYS5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUxhbWJkYVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgTGFtYmRhU2VydmljZSxcbiAgbWFrZUxhbWJkYVNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIExhbWJkYS5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBCYXNlTGFtYmRhU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIExhbWJkYS5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdExhbWJkYVNlcnZpY2VMYXllciA9IExhbWJkYVNlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
@@ -1,11 +1,12 @@
1
+ var _a;
1
2
  /**
2
3
  * @since 1.0.0
3
4
  */
4
- import { LambdaServiceException, AddLayerVersionPermissionCommand, AddPermissionCommand, CreateAliasCommand, CreateCodeSigningConfigCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteAliasCommand, DeleteCodeSigningConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCommand, DeleteFunctionCodeSigningConfigCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, DeleteProvisionedConcurrencyConfigCommand, GetAccountSettingsCommand, GetAliasCommand, GetCodeSigningConfigCommand, GetEventSourceMappingCommand, GetFunctionCommand, GetFunctionCodeSigningConfigCommand, GetFunctionConcurrencyCommand, GetFunctionConfigurationCommand, GetFunctionEventInvokeConfigCommand, GetFunctionRecursionConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionCommand, GetLayerVersionByArnCommand, GetLayerVersionPolicyCommand, GetPolicyCommand, GetProvisionedConcurrencyConfigCommand, GetRuntimeManagementConfigCommand, InvokeCommand, InvokeAsyncCommand, InvokeWithResponseStreamCommand, ListAliasesCommand, ListCodeSigningConfigsCommand, ListEventSourceMappingsCommand, ListFunctionEventInvokeConfigsCommand, ListFunctionsCommand, ListFunctionsByCodeSigningConfigCommand, ListFunctionUrlConfigsCommand, ListLayersCommand, ListLayerVersionsCommand, ListProvisionedConcurrencyConfigsCommand, ListTagsCommand, ListVersionsByFunctionCommand, PublishLayerVersionCommand, PublishVersionCommand, PutFunctionCodeSigningConfigCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutFunctionRecursionConfigCommand, PutProvisionedConcurrencyConfigCommand, PutRuntimeManagementConfigCommand, RemoveLayerVersionPermissionCommand, RemovePermissionCommand, TagResourceCommand, UntagResourceCommand, UpdateAliasCommand, UpdateCodeSigningConfigCommand, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionEventInvokeConfigCommand, UpdateFunctionUrlConfigCommand, } from "@aws-sdk/client-lambda";
5
+ import { LambdaServiceException, AddLayerVersionPermissionCommand, AddPermissionCommand, CreateAliasCommand, CreateCodeSigningConfigCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteAliasCommand, DeleteCodeSigningConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCommand, DeleteFunctionCodeSigningConfigCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, DeleteProvisionedConcurrencyConfigCommand, GetAccountSettingsCommand, GetAliasCommand, GetCodeSigningConfigCommand, GetEventSourceMappingCommand, GetFunctionCommand, GetFunctionCodeSigningConfigCommand, GetFunctionConcurrencyCommand, GetFunctionConfigurationCommand, GetFunctionEventInvokeConfigCommand, GetFunctionRecursionConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionCommand, GetLayerVersionByArnCommand, GetLayerVersionPolicyCommand, GetPolicyCommand, GetProvisionedConcurrencyConfigCommand, GetRuntimeManagementConfigCommand, InvokeCommand, InvokeAsyncCommand, InvokeWithResponseStreamCommand, ListAliasesCommand, ListCodeSigningConfigsCommand, ListEventSourceMappingsCommand, ListFunctionEventInvokeConfigsCommand, ListFunctionUrlConfigsCommand, ListFunctionsCommand, ListFunctionsByCodeSigningConfigCommand, ListLayerVersionsCommand, ListLayersCommand, ListProvisionedConcurrencyConfigsCommand, ListTagsCommand, ListVersionsByFunctionCommand, PublishLayerVersionCommand, PublishVersionCommand, PutFunctionCodeSigningConfigCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutFunctionRecursionConfigCommand, PutProvisionedConcurrencyConfigCommand, PutRuntimeManagementConfigCommand, RemoveLayerVersionPermissionCommand, RemovePermissionCommand, TagResourceCommand, UntagResourceCommand, UpdateAliasCommand, UpdateCodeSigningConfigCommand, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionEventInvokeConfigCommand, UpdateFunctionUrlConfigCommand, } from "@aws-sdk/client-lambda";
5
6
  import { Data, Effect, Layer, Record } from "effect";
6
7
  import { AllServiceErrors, SdkError, } from "./Errors";
7
8
  import { LambdaClientInstance, LambdaClientInstanceLayer, } from "./LambdaClientInstance";
8
- import { DefaultLambdaClientConfigLayer } from "./LambdaClientInstanceConfig";
9
+ import { DefaultLambdaClientConfigLayer, makeDefaultLambdaClientInstanceConfig, LambdaClientInstanceConfig, } from "./LambdaClientInstanceConfig";
9
10
  const commands = {
10
11
  AddLayerVersionPermissionCommand,
11
12
  AddPermissionCommand,
@@ -48,11 +49,11 @@ const commands = {
48
49
  ListCodeSigningConfigsCommand,
49
50
  ListEventSourceMappingsCommand,
50
51
  ListFunctionEventInvokeConfigsCommand,
52
+ ListFunctionUrlConfigsCommand,
51
53
  ListFunctionsCommand,
52
54
  ListFunctionsByCodeSigningConfigCommand,
53
- ListFunctionUrlConfigsCommand,
54
- ListLayersCommand,
55
55
  ListLayerVersionsCommand,
56
+ ListLayersCommand,
56
57
  ListProvisionedConcurrencyConfigsCommand,
57
58
  ListTagsCommand,
58
59
  ListVersionsByFunctionCommand,
@@ -76,12 +77,6 @@ const commands = {
76
77
  UpdateFunctionEventInvokeConfigCommand,
77
78
  UpdateFunctionUrlConfigCommand,
78
79
  };
79
- /**
80
- * @since 1.0.0
81
- * @category models
82
- */
83
- export class LambdaService extends Effect.Tag("@effect-aws/client-lambda/LambdaService")() {
84
- }
85
80
  /**
86
81
  * @since 1.0.0
87
82
  * @category constructors
@@ -120,19 +115,38 @@ export const makeLambdaService = Effect.gen(function* (_) {
120
115
  return { ...acc, [methodName]: methodImpl };
121
116
  }, {});
122
117
  });
118
+ /**
119
+ * @since 1.0.0
120
+ * @category models
121
+ */
122
+ export class LambdaService extends Effect.Tag("@effect-aws/client-lambda/LambdaService")() {
123
+ }
124
+ _a = LambdaService;
125
+ LambdaService.defaultLayer = Layer.effect(_a, makeLambdaService).pipe(Layer.provide(LambdaClientInstanceLayer), Layer.provide(DefaultLambdaClientConfigLayer));
126
+ LambdaService.layer = (config) => Layer.effect(_a, makeLambdaService).pipe(Layer.provide(LambdaClientInstanceLayer), Layer.provide(Layer.effect(LambdaClientInstanceConfig, makeDefaultLambdaClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
127
+ LambdaService.baseLayer = (evaluate) => Layer.effect(_a, makeLambdaService).pipe(Layer.provide(Layer.effect(LambdaClientInstance, Effect.map(makeDefaultLambdaClientInstanceConfig, evaluate))));
128
+ /**
129
+ * @since 1.0.0
130
+ * @category models
131
+ * @alias LambdaService
132
+ */
133
+ export const Lambda = LambdaService;
123
134
  /**
124
135
  * @since 1.0.0
125
136
  * @category layers
137
+ * @deprecated use Lambda.baseLayer instead
126
138
  */
127
139
  export const BaseLambdaServiceLayer = Layer.effect(LambdaService, makeLambdaService);
128
140
  /**
129
141
  * @since 1.0.0
130
142
  * @category layers
143
+ * @deprecated use Lambda.layer instead
131
144
  */
132
145
  export const LambdaServiceLayer = BaseLambdaServiceLayer.pipe(Layer.provide(LambdaClientInstanceLayer));
133
146
  /**
134
147
  * @since 1.0.0
135
148
  * @category layers
149
+ * @deprecated use Lambda.defaultLayer instead
136
150
  */
137
- export const DefaultLambdaServiceLayer = LambdaServiceLayer.pipe(Layer.provide(DefaultLambdaClientConfigLayer));
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYW1iZGFTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFHaEMsb0JBQW9CLEVBR3BCLGtCQUFrQixFQUdsQiw4QkFBOEIsRUFHOUIsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQiw4QkFBOEIsRUFHOUIsa0JBQWtCLEVBR2xCLDhCQUE4QixFQUc5QiwrQkFBK0IsRUFHL0IscUJBQXFCLEVBR3JCLHNDQUFzQyxFQUd0QyxnQ0FBZ0MsRUFHaEMsc0NBQXNDLEVBR3RDLDhCQUE4QixFQUc5Qix5QkFBeUIsRUFHekIseUNBQXlDLEVBR3pDLHlCQUF5QixFQUd6QixlQUFlLEVBR2YsMkJBQTJCLEVBRzNCLDRCQUE0QixFQUc1QixrQkFBa0IsRUFHbEIsbUNBQW1DLEVBR25DLDZCQUE2QixFQUc3QiwrQkFBK0IsRUFHL0IsbUNBQW1DLEVBR25DLGlDQUFpQyxFQUdqQywyQkFBMkIsRUFHM0Isc0JBQXNCLEVBR3RCLDJCQUEyQixFQUczQiw0QkFBNEIsRUFHNUIsZ0JBQWdCLEVBR2hCLHNDQUFzQyxFQUd0QyxpQ0FBaUMsRUFHakMsYUFBYSxFQUdiLGtCQUFrQixFQUdsQiwrQkFBK0IsRUFHL0Isa0JBQWtCLEVBR2xCLDZCQUE2QixFQUc3Qiw4QkFBOEIsRUFHOUIscUNBQXFDLEVBR3JDLG9CQUFvQixFQUdwQix1Q0FBdUMsRUFHdkMsNkJBQTZCLEVBRzdCLGlCQUFpQixFQUdqQix3QkFBd0IsRUFHeEIsd0NBQXdDLEVBR3hDLGVBQWUsRUFHZiw2QkFBNkIsRUFHN0IsMEJBQTBCLEVBRzFCLHFCQUFxQixFQUdyQixtQ0FBbUMsRUFHbkMsNkJBQTZCLEVBRzdCLG1DQUFtQyxFQUduQyxpQ0FBaUMsRUFHakMsc0NBQXNDLEVBR3RDLGlDQUFpQyxFQUdqQyxtQ0FBbUMsRUFH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O0FBQzNCLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDaEQsYUFBYSxFQUNiLGlCQUFpQixDQUNsQixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUMzRCxLQUFLLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQ3pDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQzlELEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIExhbWJkYVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZFBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIEFkZFBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEludm9rZUNvbW1hbmQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZUNvbW1hbmRPdXRwdXQsXG4gIEludm9rZUFzeW5jQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VBc3luY0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICB0eXBlIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICB0eXBlIExpc3RMYXllcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdExheWVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllclZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kLFxuICB0eXBlIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBQdWJsaXNoVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgdHlwZSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3IsXG4gIENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvcixcbiAgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yLFxuICBFQzJBY2Nlc3NEZW5pZWRFcnJvcixcbiAgRUMyVGhyb3R0bGVkRXJyb3IsXG4gIEVDMlVuZXhwZWN0ZWRFcnJvcixcbiAgRUZTSU9FcnJvcixcbiAgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvcixcbiAgRUZTTW91bnRGYWlsdXJlRXJyb3IsXG4gIEVGU01vdW50VGltZW91dEVycm9yLFxuICBFTklMaW1pdFJlYWNoZWRFcnJvcixcbiAgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIEludmFsaWRSZXF1ZXN0Q29udGVudEVycm9yLFxuICBJbnZhbGlkUnVudGltZUVycm9yLFxuICBJbnZhbGlkU2VjdXJpdHlHcm91cElERXJyb3IsXG4gIEludmFsaWRTdWJuZXRJREVycm9yLFxuICBJbnZhbGlkWmlwRmlsZUVycm9yLFxuICBLTVNBY2Nlc3NEZW5pZWRFcnJvcixcbiAgS01TRGlzYWJsZWRFcnJvcixcbiAgS01TSW52YWxpZFN0YXRlRXJyb3IsXG4gIEtNU05vdEZvdW5kRXJyb3IsXG4gIFBvbGljeUxlbmd0aEV4Y2VlZGVkRXJyb3IsXG4gIFByZWNvbmRpdGlvbkZhaWxlZEVycm9yLFxuICBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFcnJvcixcbiAgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yLFxuICBSZXF1ZXN0VG9vTGFyZ2VFcnJvcixcbiAgUmVzb3VyY2VDb25mbGljdEVycm9yLFxuICBSZXNvdXJjZUluVXNlRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgUmVzb3VyY2VOb3RSZWFkeUVycm9yLFxuICBTZXJ2aWNlRXJyb3IsXG4gIFNuYXBTdGFydEVycm9yLFxuICBTbmFwU3RhcnROb3RSZWFkeUVycm9yLFxuICBTbmFwU3RhcnRUaW1lb3V0RXJyb3IsXG4gIFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEVycm9yLFxuICBUb29NYW55UmVxdWVzdHNFcnJvcixcbiAgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBMYW1iZGFDbGllbnRJbnN0YW5jZSxcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vTGFtYmRhQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRMYW1iZGFDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0xhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBDcmVhdGVGdW5jdGlvbkNvbW1hbmQsXG4gIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kLFxuICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgR2V0QWxpYXNDb21tYW5kLFxuICBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgSW52b2tlQ29tbWFuZCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICBMaXN0TGF5ZXJzQ29tbWFuZCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kLFxuICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgTGFtYmRhU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZExheWVyVmVyc2lvblBlcm1pc3Npb24oXG4gICAgYXJnczogQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQb2xpY3lMZW5ndGhFeGNlZWRlZEVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IEFkZFBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUG9saWN5TGVuZ3RoRXhjZWVkZWRFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb24oXG4gICAgYXJnczogQ3JlYXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXJyb3JcbiAgICB8IENvZGVWZXJpZmljYXRpb25GYWlsZWRFcnJvclxuICAgIHwgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBbGlhcyhcbiAgICBhcmdzOiBEZWxldGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbihcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjb3VudFNldHRpbmdzKFxuICAgIGFyZ3M6IEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBnZXRBbGlhcyhcbiAgICBhcmdzOiBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldENvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIGdldEV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb24oXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvbihcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uQnlBcm4oXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0UG9saWN5KFxuICAgIGFyZ3M6IEdldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnKFxuICAgIGFyZ3M6IEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQ29tbWFuZH1cbiAgICovXG4gIGludm9rZShcbiAgICBhcmdzOiBJbnZva2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVDMkFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFQzJUaHJvdHRsZWRFcnJvclxuICAgIHwgRUMyVW5leHBlY3RlZEVycm9yXG4gICAgfCBFRlNJT0Vycm9yXG4gICAgfCBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXG4gICAgfCBFRlNNb3VudEZhaWx1cmVFcnJvclxuICAgIHwgRUZTTW91bnRUaW1lb3V0RXJyb3JcbiAgICB8IEVOSUxpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldElERXJyb3JcbiAgICB8IEludmFsaWRaaXBGaWxlRXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yXG4gICAgfCBSZXF1ZXN0VG9vTGFyZ2VFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFJlc291cmNlTm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTbmFwU3RhcnRFcnJvclxuICAgIHwgU25hcFN0YXJ0Tm90UmVhZHlFcnJvclxuICAgIHwgU25hcFN0YXJ0VGltZW91dEVycm9yXG4gICAgfCBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQXN5bmNDb21tYW5kfVxuICAgKi9cbiAgaW52b2tlQXN5bmMoXG4gICAgYXJnczogSW52b2tlQXN5bmNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGludm9rZVdpdGhSZXNwb25zZVN0cmVhbShcbiAgICBhcmdzOiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVDMkFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFQzJUaHJvdHRsZWRFcnJvclxuICAgIHwgRUMyVW5leHBlY3RlZEVycm9yXG4gICAgfCBFRlNJT0Vycm9yXG4gICAgfCBFRlNNb3VudENvbm5lY3Rpdml0eUVycm9yXG4gICAgfCBFRlNNb3VudEZhaWx1cmVFcnJvclxuICAgIHwgRUZTTW91bnRUaW1lb3V0RXJyb3JcbiAgICB8IEVOSUxpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcXVlc3RDb250ZW50RXJyb3JcbiAgICB8IEludmFsaWRSdW50aW1lRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUdyb3VwSURFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldElERXJyb3JcbiAgICB8IEludmFsaWRaaXBGaWxlRXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yXG4gICAgfCBSZXF1ZXN0VG9vTGFyZ2VFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFJlc291cmNlTm90UmVhZHlFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTbmFwU3RhcnRFcnJvclxuICAgIHwgU25hcFN0YXJ0Tm90UmVhZHlFcnJvclxuICAgIHwgU25hcFN0YXJ0VGltZW91dEVycm9yXG4gICAgfCBTdWJuZXRJUEFkZHJlc3NMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkTWVkaWFUeXBlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFsaWFzZXMoXG4gICAgYXJnczogTGlzdEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDb2RlU2lnbmluZ0NvbmZpZ3MoXG4gICAgYXJnczogTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2ZW50U291cmNlTWFwcGluZ3MoXG4gICAgYXJnczogTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvbnMoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW5jdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9uVXJsQ29uZmlncyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TGF5ZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMYXllcnMoXG4gICAgYXJnczogTGlzdExheWVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMYXllcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TGF5ZXJWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MoXG4gICAgYXJnczogTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnNCeUZ1bmN0aW9uKFxuICAgIGFyZ3M6IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaExheWVyVmVyc2lvbihcbiAgICBhcmdzOiBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2hWZXJzaW9uKFxuICAgIGFyZ3M6IFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVibGlzaFZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25Db25jdXJyZW5jeShcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnKFxuICAgIGFyZ3M6IFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyhcbiAgICBhcmdzOiBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVBlcm1pc3Npb24oXG4gICAgYXJnczogUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbGlhcyhcbiAgICBhcmdzOiBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvZGUoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yXG4gICAgfCBJbnZhbGlkQ29kZVNpZ25hdHVyZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IENvZGVWZXJpZmljYXRpb25GYWlsZWRFcnJvclxuICAgIHwgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYVNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1sYW1iZGEvTGFtYmRhU2VydmljZVwiLFxuKTxMYW1iZGFTZXJ2aWNlLCBMYW1iZGFTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUxhbWJkYVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhMYW1iZGFDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIExhbWJkYVNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248TGFtYmRhU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgTGFtYmRhU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIExhbWJkYVNlcnZpY2UsXG4gIG1ha2VMYW1iZGFTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IExhbWJkYVNlcnZpY2VMYXllciA9IEJhc2VMYW1iZGFTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0TGFtYmRhU2VydmljZUxheWVyID0gTGFtYmRhU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
151
+ export const DefaultLambdaServiceLayer = LambdaService.defaultLayer;
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYW1iZGFTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRztBQUNILE9BQU8sRUFDTCxzQkFBc0IsRUFHdEIsZ0NBQWdDLEVBR2hDLG9CQUFvQixFQUdwQixrQkFBa0IsRUFHbEIsOEJBQThCLEVBRzlCLCtCQUErQixFQUcvQixxQkFBcUIsRUFHckIsOEJBQThCLEVBRzlCLGtCQUFrQixFQUdsQiw4QkFBOEIsRUFHOUIsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQixzQ0FBc0MsRUFHdEMsZ0NBQWdDLEVBR2hDLHNDQUFzQyxFQUd0Qyw4QkFBOEIsRUFHOUIseUJBQXlCLEVBR3pCLHlDQUF5QyxFQUd6Qyx5QkFBeUIsRUFHekIsZUFBZSxFQUdmLDJCQUEyQixFQUczQiw0QkFBNEIsRUFHNUIsa0JBQWtCLEVBR2xCLG1DQUFtQyxFQUduQyw2QkFBNkIsRUFHN0IsK0JBQStCLEVBRy9CLG1DQUFtQyxFQUduQyxpQ0FBaUMsRUFHakMsMkJBQTJCLEVBRzNCLHNCQUFzQixFQUd0QiwyQkFBMkIsRUFHM0IsNEJBQTRCLEVBRzVCLGdCQUFnQixFQUdoQixzQ0FBc0MsRUFHdEMsaUNBQWlDLEVBR2pDLGFBQWEsRUFHYixrQkFBa0IsRUFHbEIsK0JBQStCLEVBRy9CLGtCQUFrQixFQUdsQiw2QkFBNkIsRUFHN0IsOEJBQThCLEVBRzlCLHFDQUFxQyxFQUdyQyw2QkFBNkIsRUFHN0Isb0JBQW9CLEVBR3BCLHVDQUF1QyxFQUd2Qyx3QkFBd0IsRUFHeEIsaUJBQWlCLEVBR2pCLHdDQUF3QyxFQUd4QyxlQUFlLEVBR2YsNkJBQTZCLEVBRzdCLDBCQUEwQixFQUcxQixxQkFBcUIsRUFHckIsbUNBQW1DLEVBR25DLDZCQUE2QixFQUc3QixtQ0FBbUMsRUFHbkMsaUNBQWlDLEVBR2pDLHNDQUFzQyxFQUd0QyxpQ0FBaUMsRUFHakMsbUNBQW1DLEVB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YSxFQUNiLGlCQUFpQixDQUNsQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUN6QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIExhbWJkYUNsaWVudCxcbiAgdHlwZSBMYW1iZGFDbGllbnRDb25maWcsXG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZFBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIEFkZFBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFsaWFzQ29tbWFuZCxcbiAgdHlwZSBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgdHlwZSBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEludm9rZUNvbW1hbmQsXG4gIHR5cGUgSW52b2tlQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZUNvbW1hbmRPdXRwdXQsXG4gIEludm9rZUFzeW5jQ29tbWFuZCxcbiAgdHlwZSBJbnZva2VBc3luY0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICB0eXBlIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RGdW5jdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllclZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICB0eXBlIExpc3RMYXllcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdExheWVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kLFxuICB0eXBlIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBQdWJsaXNoVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICB0eXBlIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgdHlwZSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3IsXG4gIENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvcixcbiAgQ29kZVZlcmlmaWNhdGlvbkZhaWxlZEVycm9yLFxuICBFQzJBY2Nlc3NEZW5pZWRFcnJvcixcbiAgRUMyVGhyb3R0bGVkRXJyb3IsXG4gIEVDMlVuZXhwZWN0ZWRFcnJvcixcbiAgRUZTSU9FcnJvcixcbiAgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvcixcbiAgRUZTTW91bnRGYWlsdXJlRXJyb3IsXG4gIEVGU01vdW50VGltZW91dEVycm9yLFxuICBFTklMaW1pdFJlYWNoZWRFcnJvcixcbiAgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIEludmFsaWRSZXF1ZXN0Q29udGVudEVycm9yLFxuICBJbnZhbGlkUnVudGltZUVycm9yLFxuICBJbnZhbGlkU2VjdXJpdHlHcm91cElERXJyb3IsXG4gIEludmFsaWRTdWJuZXRJREVycm9yLFxuICBJbnZhbGlkWmlwRmlsZUVycm9yLFxuICBLTVNBY2Nlc3NEZW5pZWRFcnJvcixcbiAgS01TRGlzYWJsZWRFcnJvcixcbiAgS01TSW52YWxpZFN0YXRlRXJyb3IsXG4gIEtNU05vdEZvdW5kRXJyb3IsXG4gIFBvbGljeUxlbmd0aEV4Y2VlZGVkRXJyb3IsXG4gIFByZWNvbmRpdGlvbkZhaWxlZEVycm9yLFxuICBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnTm90Rm91bmRFcnJvcixcbiAgUmVjdXJzaXZlSW52b2NhdGlvbkVycm9yLFxuICBSZXF1ZXN0VG9vTGFyZ2VFcnJvcixcbiAgUmVzb3VyY2VDb25mbGljdEVycm9yLFxuICBSZXNvdXJjZUluVXNlRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgUmVzb3VyY2VOb3RSZWFkeUVycm9yLFxuICBTZXJ2aWNlRXJyb3IsXG4gIFNuYXBTdGFydEVycm9yLFxuICBTbmFwU3RhcnROb3RSZWFkeUVycm9yLFxuICBTbmFwU3RhcnRUaW1lb3V0RXJyb3IsXG4gIFN1Ym5ldElQQWRkcmVzc0xpbWl0UmVhY2hlZEVycm9yLFxuICBUb29NYW55UmVxdWVzdHNFcnJvcixcbiAgVW5zdXBwb3J0ZWRNZWRpYVR5cGVFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBMYW1iZGFDbGllbnRJbnN0YW5jZSxcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vTGFtYmRhQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRMYW1iZGFDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0xhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIEFkZFBlcm1pc3Npb25Db21tYW5kLFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kLFxuICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQsXG4gIEdldEFsaWFzQ29tbWFuZCxcbiAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBHZXRMYXllclZlcnNpb25Db21tYW5kLFxuICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gIEludm9rZUNvbW1hbmQsXG4gIEludm9rZUFzeW5jQ29tbWFuZCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgTGlzdEFsaWFzZXNDb21tYW5kLFxuICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0TGF5ZXJzQ29tbWFuZCxcbiAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kLFxuICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxufTtcblxuaW50ZXJmYWNlIExhbWJkYVNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICBhZGRMYXllclZlcnNpb25QZXJtaXNzaW9uKFxuICAgIGFyZ3M6IEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUG9saWN5TGVuZ3RoRXhjZWVkZWRFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgYWRkUGVybWlzc2lvbihcbiAgICBhcmdzOiBBZGRQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFBvbGljeUxlbmd0aEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBbGlhcyhcbiAgICBhcmdzOiBDcmVhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUZ1bmN0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTaWduaW5nQ29uZmlnTm90Rm91bmRFcnJvclxuICAgIHwgQ29kZVN0b3JhZ2VFeGNlZWRlZEVycm9yXG4gICAgfCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXJyb3JcbiAgICB8IEludmFsaWRDb2RlU2lnbmF0dXJlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWxpYXMoXG4gICAgYXJnczogRGVsZXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb24oXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxheWVyVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU2VydmljZUVycm9yIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZH1cbiAgICovXG4gIGdldEFjY291bnRTZXR0aW5ncyhcbiAgICBhcmdzOiBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU2VydmljZUVycm9yIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWxpYXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWxpYXMoXG4gICAgYXJnczogR2V0QWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25Db25jdXJyZW5jeShcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25Db25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25SZWN1cnNpb25Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExheWVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRMYXllclZlcnNpb24oXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvbkJ5QXJuKFxuICAgIGFyZ3M6IEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvblBvbGljeShcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldFBvbGljeShcbiAgICBhcmdzOiBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKFxuICAgIGFyZ3M6IEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyhcbiAgICBhcmdzOiBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludm9rZUNvbW1hbmR9XG4gICAqL1xuICBpbnZva2UoXG4gICAgYXJnczogSW52b2tlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFQzJBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgRUMyVGhyb3R0bGVkRXJyb3JcbiAgICB8IEVDMlVuZXhwZWN0ZWRFcnJvclxuICAgIHwgRUZTSU9FcnJvclxuICAgIHwgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvclxuICAgIHwgRUZTTW91bnRGYWlsdXJlRXJyb3JcbiAgICB8IEVGU01vdW50VGltZW91dEVycm9yXG4gICAgfCBFTklMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXF1ZXN0Q29udGVudEVycm9yXG4gICAgfCBJbnZhbGlkUnVudGltZUVycm9yXG4gICAgfCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRJREVycm9yXG4gICAgfCBJbnZhbGlkWmlwRmlsZUVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IFJlY3Vyc2l2ZUludm9jYXRpb25FcnJvclxuICAgIHwgUmVxdWVzdFRvb0xhcmdlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdFJlYWR5RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgU25hcFN0YXJ0RXJyb3JcbiAgICB8IFNuYXBTdGFydE5vdFJlYWR5RXJyb3JcbiAgICB8IFNuYXBTdGFydFRpbWVvdXRFcnJvclxuICAgIHwgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZE1lZGlhVHlwZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludm9rZUFzeW5jQ29tbWFuZH1cbiAgICovXG4gIGludm9rZUFzeW5jKFxuICAgIGFyZ3M6IEludm9rZUFzeW5jQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW52b2tlQXN5bmNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRSZXF1ZXN0Q29udGVudEVycm9yXG4gICAgfCBJbnZhbGlkUnVudGltZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBpbnZva2VXaXRoUmVzcG9uc2VTdHJlYW0oXG4gICAgYXJnczogSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFQzJBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgRUMyVGhyb3R0bGVkRXJyb3JcbiAgICB8IEVDMlVuZXhwZWN0ZWRFcnJvclxuICAgIHwgRUZTSU9FcnJvclxuICAgIHwgRUZTTW91bnRDb25uZWN0aXZpdHlFcnJvclxuICAgIHwgRUZTTW91bnRGYWlsdXJlRXJyb3JcbiAgICB8IEVGU01vdW50VGltZW91dEVycm9yXG4gICAgfCBFTklMaW1pdFJlYWNoZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXF1ZXN0Q29udGVudEVycm9yXG4gICAgfCBJbnZhbGlkUnVudGltZUVycm9yXG4gICAgfCBJbnZhbGlkU2VjdXJpdHlHcm91cElERXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRJREVycm9yXG4gICAgfCBJbnZhbGlkWmlwRmlsZUVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IFJlY3Vyc2l2ZUludm9jYXRpb25FcnJvclxuICAgIHwgUmVxdWVzdFRvb0xhcmdlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdFJlYWR5RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgU25hcFN0YXJ0RXJyb3JcbiAgICB8IFNuYXBTdGFydE5vdFJlYWR5RXJyb3JcbiAgICB8IFNuYXBTdGFydFRpbWVvdXRFcnJvclxuICAgIHwgU3VibmV0SVBBZGRyZXNzTGltaXRSZWFjaGVkRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZE1lZGlhVHlwZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Q29kZVNpZ25pbmdDb25maWdzKFxuICAgIGFyZ3M6IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RFdmVudFNvdXJjZU1hcHBpbmdzKFxuICAgIGFyZ3M6IExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlncyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25VcmxDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9ucyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB8IFNlcnZpY2VFcnJvciB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExheWVyVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdExheWVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TGF5ZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMYXllcnMoXG4gICAgYXJnczogTGlzdExheWVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RMYXllcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlRXJyb3IgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzKFxuICAgIGFyZ3M6IExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFncyhcbiAgICBhcmdzOiBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgbGlzdFZlcnNpb25zQnlGdW5jdGlvbihcbiAgICBhcmdzOiBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2hMYXllclZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvZGVTdG9yYWdlRXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoVmVyc2lvbihcbiAgICBhcmdzOiBQdWJsaXNoVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb2RlU2lnbmluZ0NvbmZpZ05vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvblJlY3Vyc2lvbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEZ1bmN0aW9uUmVjdXJzaW9uQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKFxuICAgIGFyZ3M6IFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0UnVudGltZU1hbmFnZW1lbnRDb25maWcoXG4gICAgYXJnczogUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbihcbiAgICBhcmdzOiBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUHJlY29uZGl0aW9uRmFpbGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQWxpYXMoXG4gICAgYXJnczogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25Db2RlKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBDb2RlU3RvcmFnZUV4Y2VlZGVkRXJyb3JcbiAgICB8IENvZGVWZXJpZmljYXRpb25GYWlsZWRFcnJvclxuICAgIHwgSW52YWxpZENvZGVTaWduYXR1cmVFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFByZWNvbmRpdGlvbkZhaWxlZEVycm9yXG4gICAgfCBSZXNvdXJjZUNvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29kZVNpZ25pbmdDb25maWdOb3RGb3VuZEVycm9yXG4gICAgfCBDb2RlVmVyaWZpY2F0aW9uRmFpbGVkRXJyb3JcbiAgICB8IEludmFsaWRDb2RlU2lnbmF0dXJlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQcmVjb25kaXRpb25GYWlsZWRFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzb3VyY2VDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc291cmNlQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlTGFtYmRhU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKExhbWJkYUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgTGFtYmRhU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxMYW1iZGFTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBMYW1iZGFTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWxhbWJkYS9MYW1iZGFTZXJ2aWNlXCIsXG4pPExhbWJkYVNlcnZpY2UsIExhbWJkYVNlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlTGFtYmRhU2VydmljZSkucGlwZShcbiAgICBMYXllci5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogTGFtYmRhQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlTGFtYmRhU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogTGFtYmRhQ2xpZW50Q29uZmlnKSA9PiBMYW1iZGFDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUxhbWJkYVNlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgTGFtYmRhQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgTGFtYmRhU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgTGFtYmRhID0gTGFtYmRhU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBMYW1iZGEuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIExhbWJkYVNlcnZpY2UsXG4gIG1ha2VMYW1iZGFTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBMYW1iZGEubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZUxheWVyID0gQmFzZUxhbWJkYVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBMYW1iZGEuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBMYW1iZGFTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.5.0",
36
+ "version": "1.6.0",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],