@effect-aws/client-elasticache 1.0.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 +7 -0
- package/LICENSE +19 -0
- package/README.md +1 -0
- package/docgen.json +8 -0
- package/lib/ElastiCacheClientInstance.d.ts +31 -0
- package/lib/ElastiCacheClientInstance.js +57 -0
- package/lib/ElastiCacheClientInstanceConfig.d.ts +25 -0
- package/lib/ElastiCacheClientInstanceConfig.js +70 -0
- package/lib/ElastiCacheService.d.ts +340 -0
- package/lib/ElastiCacheService.js +143 -0
- package/lib/Errors.d.ts +18 -0
- package/lib/Errors.js +30 -0
- package/lib/esm/ElastiCacheClientInstance.js +30 -0
- package/lib/esm/ElastiCacheClientInstanceConfig.js +43 -0
- package/lib/esm/ElastiCacheService.js +140 -0
- package/lib/esm/Errors.js +4 -0
- package/lib/esm/index.js +5 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +21 -0
- package/package.json +56 -0
- package/project.json +77 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultElastiCacheServiceLayer = exports.ElastiCacheServiceLayer = exports.BaseElastiCacheServiceLayer = exports.makeElastiCacheService = exports.ElastiCacheService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
const client_elasticache_1 = require("@aws-sdk/client-elasticache");
|
|
8
|
+
const effect_1 = require("effect");
|
|
9
|
+
const ElastiCacheClientInstance_1 = require("./ElastiCacheClientInstance");
|
|
10
|
+
const ElastiCacheClientInstanceConfig_1 = require("./ElastiCacheClientInstanceConfig");
|
|
11
|
+
const Errors_1 = require("./Errors");
|
|
12
|
+
const commands = {
|
|
13
|
+
AddTagsToResourceCommand: client_elasticache_1.AddTagsToResourceCommand,
|
|
14
|
+
AuthorizeCacheSecurityGroupIngressCommand: client_elasticache_1.AuthorizeCacheSecurityGroupIngressCommand,
|
|
15
|
+
BatchApplyUpdateActionCommand: client_elasticache_1.BatchApplyUpdateActionCommand,
|
|
16
|
+
BatchStopUpdateActionCommand: client_elasticache_1.BatchStopUpdateActionCommand,
|
|
17
|
+
CompleteMigrationCommand: client_elasticache_1.CompleteMigrationCommand,
|
|
18
|
+
CopyServerlessCacheSnapshotCommand: client_elasticache_1.CopyServerlessCacheSnapshotCommand,
|
|
19
|
+
CopySnapshotCommand: client_elasticache_1.CopySnapshotCommand,
|
|
20
|
+
CreateCacheClusterCommand: client_elasticache_1.CreateCacheClusterCommand,
|
|
21
|
+
CreateCacheParameterGroupCommand: client_elasticache_1.CreateCacheParameterGroupCommand,
|
|
22
|
+
CreateCacheSecurityGroupCommand: client_elasticache_1.CreateCacheSecurityGroupCommand,
|
|
23
|
+
CreateCacheSubnetGroupCommand: client_elasticache_1.CreateCacheSubnetGroupCommand,
|
|
24
|
+
CreateGlobalReplicationGroupCommand: client_elasticache_1.CreateGlobalReplicationGroupCommand,
|
|
25
|
+
CreateReplicationGroupCommand: client_elasticache_1.CreateReplicationGroupCommand,
|
|
26
|
+
CreateServerlessCacheCommand: client_elasticache_1.CreateServerlessCacheCommand,
|
|
27
|
+
CreateServerlessCacheSnapshotCommand: client_elasticache_1.CreateServerlessCacheSnapshotCommand,
|
|
28
|
+
CreateSnapshotCommand: client_elasticache_1.CreateSnapshotCommand,
|
|
29
|
+
CreateUserCommand: client_elasticache_1.CreateUserCommand,
|
|
30
|
+
CreateUserGroupCommand: client_elasticache_1.CreateUserGroupCommand,
|
|
31
|
+
DecreaseNodeGroupsInGlobalReplicationGroupCommand: client_elasticache_1.DecreaseNodeGroupsInGlobalReplicationGroupCommand,
|
|
32
|
+
DecreaseReplicaCountCommand: client_elasticache_1.DecreaseReplicaCountCommand,
|
|
33
|
+
DeleteCacheClusterCommand: client_elasticache_1.DeleteCacheClusterCommand,
|
|
34
|
+
DeleteCacheParameterGroupCommand: client_elasticache_1.DeleteCacheParameterGroupCommand,
|
|
35
|
+
DeleteCacheSecurityGroupCommand: client_elasticache_1.DeleteCacheSecurityGroupCommand,
|
|
36
|
+
DeleteCacheSubnetGroupCommand: client_elasticache_1.DeleteCacheSubnetGroupCommand,
|
|
37
|
+
DeleteGlobalReplicationGroupCommand: client_elasticache_1.DeleteGlobalReplicationGroupCommand,
|
|
38
|
+
DeleteReplicationGroupCommand: client_elasticache_1.DeleteReplicationGroupCommand,
|
|
39
|
+
DeleteServerlessCacheCommand: client_elasticache_1.DeleteServerlessCacheCommand,
|
|
40
|
+
DeleteServerlessCacheSnapshotCommand: client_elasticache_1.DeleteServerlessCacheSnapshotCommand,
|
|
41
|
+
DeleteSnapshotCommand: client_elasticache_1.DeleteSnapshotCommand,
|
|
42
|
+
DeleteUserCommand: client_elasticache_1.DeleteUserCommand,
|
|
43
|
+
DeleteUserGroupCommand: client_elasticache_1.DeleteUserGroupCommand,
|
|
44
|
+
DescribeCacheClustersCommand: client_elasticache_1.DescribeCacheClustersCommand,
|
|
45
|
+
DescribeCacheEngineVersionsCommand: client_elasticache_1.DescribeCacheEngineVersionsCommand,
|
|
46
|
+
DescribeCacheParameterGroupsCommand: client_elasticache_1.DescribeCacheParameterGroupsCommand,
|
|
47
|
+
DescribeCacheParametersCommand: client_elasticache_1.DescribeCacheParametersCommand,
|
|
48
|
+
DescribeCacheSecurityGroupsCommand: client_elasticache_1.DescribeCacheSecurityGroupsCommand,
|
|
49
|
+
DescribeCacheSubnetGroupsCommand: client_elasticache_1.DescribeCacheSubnetGroupsCommand,
|
|
50
|
+
DescribeEngineDefaultParametersCommand: client_elasticache_1.DescribeEngineDefaultParametersCommand,
|
|
51
|
+
DescribeEventsCommand: client_elasticache_1.DescribeEventsCommand,
|
|
52
|
+
DescribeGlobalReplicationGroupsCommand: client_elasticache_1.DescribeGlobalReplicationGroupsCommand,
|
|
53
|
+
DescribeReplicationGroupsCommand: client_elasticache_1.DescribeReplicationGroupsCommand,
|
|
54
|
+
DescribeReservedCacheNodesCommand: client_elasticache_1.DescribeReservedCacheNodesCommand,
|
|
55
|
+
DescribeReservedCacheNodesOfferingsCommand: client_elasticache_1.DescribeReservedCacheNodesOfferingsCommand,
|
|
56
|
+
DescribeServerlessCachesCommand: client_elasticache_1.DescribeServerlessCachesCommand,
|
|
57
|
+
DescribeServerlessCacheSnapshotsCommand: client_elasticache_1.DescribeServerlessCacheSnapshotsCommand,
|
|
58
|
+
DescribeServiceUpdatesCommand: client_elasticache_1.DescribeServiceUpdatesCommand,
|
|
59
|
+
DescribeSnapshotsCommand: client_elasticache_1.DescribeSnapshotsCommand,
|
|
60
|
+
DescribeUpdateActionsCommand: client_elasticache_1.DescribeUpdateActionsCommand,
|
|
61
|
+
DescribeUserGroupsCommand: client_elasticache_1.DescribeUserGroupsCommand,
|
|
62
|
+
DescribeUsersCommand: client_elasticache_1.DescribeUsersCommand,
|
|
63
|
+
DisassociateGlobalReplicationGroupCommand: client_elasticache_1.DisassociateGlobalReplicationGroupCommand,
|
|
64
|
+
ExportServerlessCacheSnapshotCommand: client_elasticache_1.ExportServerlessCacheSnapshotCommand,
|
|
65
|
+
FailoverGlobalReplicationGroupCommand: client_elasticache_1.FailoverGlobalReplicationGroupCommand,
|
|
66
|
+
IncreaseNodeGroupsInGlobalReplicationGroupCommand: client_elasticache_1.IncreaseNodeGroupsInGlobalReplicationGroupCommand,
|
|
67
|
+
IncreaseReplicaCountCommand: client_elasticache_1.IncreaseReplicaCountCommand,
|
|
68
|
+
ListAllowedNodeTypeModificationsCommand: client_elasticache_1.ListAllowedNodeTypeModificationsCommand,
|
|
69
|
+
ListTagsForResourceCommand: client_elasticache_1.ListTagsForResourceCommand,
|
|
70
|
+
ModifyCacheClusterCommand: client_elasticache_1.ModifyCacheClusterCommand,
|
|
71
|
+
ModifyCacheParameterGroupCommand: client_elasticache_1.ModifyCacheParameterGroupCommand,
|
|
72
|
+
ModifyCacheSubnetGroupCommand: client_elasticache_1.ModifyCacheSubnetGroupCommand,
|
|
73
|
+
ModifyGlobalReplicationGroupCommand: client_elasticache_1.ModifyGlobalReplicationGroupCommand,
|
|
74
|
+
ModifyReplicationGroupCommand: client_elasticache_1.ModifyReplicationGroupCommand,
|
|
75
|
+
ModifyReplicationGroupShardConfigurationCommand: client_elasticache_1.ModifyReplicationGroupShardConfigurationCommand,
|
|
76
|
+
ModifyServerlessCacheCommand: client_elasticache_1.ModifyServerlessCacheCommand,
|
|
77
|
+
ModifyUserCommand: client_elasticache_1.ModifyUserCommand,
|
|
78
|
+
ModifyUserGroupCommand: client_elasticache_1.ModifyUserGroupCommand,
|
|
79
|
+
PurchaseReservedCacheNodesOfferingCommand: client_elasticache_1.PurchaseReservedCacheNodesOfferingCommand,
|
|
80
|
+
RebalanceSlotsInGlobalReplicationGroupCommand: client_elasticache_1.RebalanceSlotsInGlobalReplicationGroupCommand,
|
|
81
|
+
RebootCacheClusterCommand: client_elasticache_1.RebootCacheClusterCommand,
|
|
82
|
+
RemoveTagsFromResourceCommand: client_elasticache_1.RemoveTagsFromResourceCommand,
|
|
83
|
+
ResetCacheParameterGroupCommand: client_elasticache_1.ResetCacheParameterGroupCommand,
|
|
84
|
+
RevokeCacheSecurityGroupIngressCommand: client_elasticache_1.RevokeCacheSecurityGroupIngressCommand,
|
|
85
|
+
StartMigrationCommand: client_elasticache_1.StartMigrationCommand,
|
|
86
|
+
TestFailoverCommand: client_elasticache_1.TestFailoverCommand,
|
|
87
|
+
TestMigrationCommand: client_elasticache_1.TestMigrationCommand,
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @category tags
|
|
92
|
+
*/
|
|
93
|
+
exports.ElastiCacheService = effect_1.Context.GenericTag("@effect-aws/client-elasticache/ElastiCacheService");
|
|
94
|
+
/**
|
|
95
|
+
* @since 1.0.0
|
|
96
|
+
* @category constructors
|
|
97
|
+
*/
|
|
98
|
+
exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
|
|
99
|
+
const client = yield* _(ElastiCacheClientInstance_1.ElastiCacheClientInstance);
|
|
100
|
+
return effect_1.ReadonlyRecord.toEntries(commands).reduce((acc, [command]) => {
|
|
101
|
+
const CommandCtor = commands[command];
|
|
102
|
+
const methodImpl = (args, options) => effect_1.Effect.tryPromise({
|
|
103
|
+
try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
|
|
104
|
+
catch: (e) => {
|
|
105
|
+
if (e instanceof client_elasticache_1.ElastiCacheServiceException) {
|
|
106
|
+
const ServiceException = effect_1.Data.tagged(e.name);
|
|
107
|
+
return ServiceException({
|
|
108
|
+
...e,
|
|
109
|
+
message: e.message,
|
|
110
|
+
stack: e.stack,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (e instanceof Error) {
|
|
114
|
+
return (0, Errors_1.SdkError)({
|
|
115
|
+
...e,
|
|
116
|
+
name: "SdkError",
|
|
117
|
+
message: e.message,
|
|
118
|
+
stack: e.stack,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
throw e;
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
125
|
+
return { ...acc, [methodName]: methodImpl };
|
|
126
|
+
}, {});
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* @since 1.0.0
|
|
130
|
+
* @category layers
|
|
131
|
+
*/
|
|
132
|
+
exports.BaseElastiCacheServiceLayer = effect_1.Layer.effect(exports.ElastiCacheService, exports.makeElastiCacheService);
|
|
133
|
+
/**
|
|
134
|
+
* @since 1.0.0
|
|
135
|
+
* @category layers
|
|
136
|
+
*/
|
|
137
|
+
exports.ElastiCacheServiceLayer = exports.BaseElastiCacheServiceLayer.pipe(effect_1.Layer.provide(ElastiCacheClientInstance_1.ElastiCacheClientInstanceLayer));
|
|
138
|
+
/**
|
|
139
|
+
* @since 1.0.0
|
|
140
|
+
* @category layers
|
|
141
|
+
*/
|
|
142
|
+
exports.DefaultElastiCacheServiceLayer = exports.ElastiCacheServiceLayer.pipe(effect_1.Layer.provide(ElastiCacheClientInstanceConfig_1.DefaultElastiCacheClientConfigLayer));
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFFckMsbUNBQXNFO0FBQ3RFLDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBT2tCO0FBRWxCLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4Qix5Q0FBeUMsRUFBekMsOERBQXlDO0lBQ3pDLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1Qix3QkFBd0IsRUFBeEIsNkNBQXdCO0lBQ3hCLGtDQUFrQyxFQUFsQyx1REFBa0M7SUFDbEMsbUJBQW1CLEVBQW5CLHdDQUFtQjtJQUNuQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLG9DQUFvQyxFQUFwQyx5REFBb0M7SUFDcEMscUJBQXFCLEVBQXJCLDBDQUFxQjtJQUNyQixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwyQ0FBc0I7SUFDdEIsaURBQWlELEVBQWpELHNFQUFpRDtJQUNqRCwyQkFBMkIsRUFBM0IsZ0RBQTJCO0lBQzNCLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQywrQkFBK0IsRUFBL0Isb0RBQStCO0lBQy9CLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsbUNBQW1DLEVBQW5DLHdEQUFtQztJQUNuQyw2QkFBNkIsRUFBN0Isa0RBQTZC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QkFBdUIsR0FBRyxtQ0FBMkIsQ0FBQyxJQUFJLENBQ3JFLGNBQUssQ0FBQyxPQUFPLENBQUMsMERBQThCLENBQUMsQ0FDOUMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsOEJBQThCLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUN4RSxjQUFLLENBQUMsT0FBTyxDQUFDLHFFQUFtQyxDQUFDLENBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICB0eXBlIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDb3B5U25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXNlcnNDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24sXG4gIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kLFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIHR5cGUgVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCB7IHR5cGUgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCBSZWFkb25seVJlY29yZCwgRGF0YSB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UsXG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvcixcbiAgSW52YWxpZENyZWRlbnRpYWxzRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kLFxuICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBDb3B5U25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kLFxuICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIERlbGV0ZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIERlbGV0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kLFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kLFxuICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlVXNlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckNvbW1hbmQsXG4gIE1vZGlmeVVzZXJHcm91cENvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kLFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgU3RhcnRNaWdyYXRpb25Db21tYW5kLFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCB0eXBlIEVsYXN0aUNhY2hlU2VydmljZSA9IHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkVGFnc1RvUmVzb3VyY2U6IChcbiAgICBhcmdzOiBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzczogKFxuICAgIGFyZ3M6IEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBiYXRjaEFwcGx5VXBkYXRlQWN0aW9uOiAoXG4gICAgYXJnczogQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBiYXRjaFN0b3BVcGRhdGVBY3Rpb246IChcbiAgICBhcmdzOiBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBsZXRlTWlncmF0aW9uOiAoXG4gICAgYXJnczogQ29tcGxldGVNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90OiAoXG4gICAgYXJnczogQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29weVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNvcHlTbmFwc2hvdDogKFxuICAgIGFyZ3M6IENvcHlTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENvcHlTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDYWNoZUNsdXN0ZXI6IChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlU3VibmV0R3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmVybGVzc0NhY2hlOiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90OiAoXG4gICAgYXJnczogQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVNuYXBzaG90OiAoXG4gICAgYXJnczogQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVXNlcjogKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVVzZXJHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlY3JlYXNlUmVwbGljYUNvdW50OiAoXG4gICAgYXJnczogRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVDYWNoZUNsdXN0ZXI6IChcbiAgICBhcmdzOiBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVDYWNoZVNlY3VyaXR5R3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlU3VibmV0R3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmVybGVzc0NhY2hlOiAoXG4gICAgYXJnczogRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90OiAoXG4gICAgYXJnczogRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU25hcHNob3Q6IChcbiAgICBhcmdzOiBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyOiAoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVVc2VyR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlQ2x1c3RlcnM6IChcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3VwczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZVBhcmFtZXRlcnM6IChcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3VwczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3VwczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVFdmVudHM6IChcbiAgICBhcmdzOiBEZXNjcmliZUV2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHM6IChcbiAgICBhcmdzOiBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzOiAoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzOiAoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZVNlcnZlcmxlc3NDYWNoZXM6IChcbiAgICBhcmdzOiBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90czogKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU2VydmljZVVwZGF0ZXM6IChcbiAgICBhcmdzOiBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU25hcHNob3RzOiAoXG4gICAgYXJnczogRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZVVwZGF0ZUFjdGlvbnM6IChcbiAgICBhcmdzOiBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVVc2VyR3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVVzZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlVXNlcnM6IChcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVVc2Vyc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBleHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdDogKFxuICAgIGFyZ3M6IEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBmYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBpbmNyZWFzZVJlcGxpY2FDb3VudDogKFxuICAgIGFyZ3M6IEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uczogKFxuICAgIGFyZ3M6IExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RUYWdzRm9yUmVzb3VyY2U6IChcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5Q2FjaGVDbHVzdGVyOiAoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwOiAoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeUNhY2hlU3VibmV0R3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb246IChcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlTZXJ2ZXJsZXNzQ2FjaGU6IChcbiAgICBhcmdzOiBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5VXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlVc2VyOiAoXG4gICAgYXJnczogTW9kaWZ5VXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IE1vZGlmeVVzZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5VXNlckdyb3VwOiAoXG4gICAgYXJnczogTW9kaWZ5VXNlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nOiAoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZWJvb3RDYWNoZUNsdXN0ZXI6IChcbiAgICBhcmdzOiBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVUYWdzRnJvbVJlc291cmNlOiAoXG4gICAgYXJnczogUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cDogKFxuICAgIGFyZ3M6IFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzczogKFxuICAgIGFyZ3M6IFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRNaWdyYXRpb246IChcbiAgICBhcmdzOiBTdGFydE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFN0YXJ0TWlncmF0aW9uQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0RmFpbG92ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEZhaWxvdmVyOiAoXG4gICAgYXJnczogVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgVGVzdEZhaWxvdmVyQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0ZXN0TWlncmF0aW9uOiAoXG4gICAgYXJnczogVGVzdE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG59O1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IEVsYXN0aUNhY2hlU2VydmljZSA9IENvbnRleHQuR2VuZXJpY1RhZzxFbGFzdGlDYWNoZVNlcnZpY2U+KFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1lbGFzdGljYWNoZS9FbGFzdGlDYWNoZVNlcnZpY2VcIixcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRWxhc3RpQ2FjaGVTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlYWRvbmx5UmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgRWxhc3RpQ2FjaGVTZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEVsYXN0aUNhY2hlU2VydmljZSxcbiAgbWFrZUVsYXN0aUNhY2hlU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|
package/lib/Errors.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ElastiCacheServiceException, InvalidCredentialsException, InvalidParameterValueException, InvalidParameterCombinationException } from "@aws-sdk/client-elasticache";
|
|
2
|
+
import * as Data from "effect/Data";
|
|
3
|
+
export type TaggedException<T extends {
|
|
4
|
+
name: string;
|
|
5
|
+
}> = T & {
|
|
6
|
+
readonly _tag: T["name"];
|
|
7
|
+
};
|
|
8
|
+
export type InvalidCredentialsError = TaggedException<InvalidCredentialsException>;
|
|
9
|
+
export type InvalidParameterValueError = TaggedException<InvalidParameterValueException>;
|
|
10
|
+
export type InvalidParameterCombinationError = TaggedException<InvalidParameterCombinationException>;
|
|
11
|
+
export type ElastiCacheServiceError = TaggedException<ElastiCacheServiceException & {
|
|
12
|
+
name: "ElastiCacheServiceError";
|
|
13
|
+
}>;
|
|
14
|
+
export declare const ElastiCacheServiceError: Data.Case.Constructor<ElastiCacheServiceError, "_tag">;
|
|
15
|
+
export type SdkError = TaggedException<Error & {
|
|
16
|
+
name: "SdkError";
|
|
17
|
+
}>;
|
|
18
|
+
export declare const SdkError: Data.Case.Constructor<SdkError, "_tag">;
|
package/lib/Errors.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.SdkError = exports.ElastiCacheServiceError = void 0;
|
|
27
|
+
const Data = __importStar(require("effect/Data"));
|
|
28
|
+
exports.ElastiCacheServiceError = Data.tagged("ElastiCacheServiceError");
|
|
29
|
+
exports.SdkError = Data.tagged("SdkError");
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLGtEQUFvQztBQWdCdkIsUUFBQSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUNoRCx5QkFBeUIsQ0FDMUIsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQVcsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbixcbiAgSW52YWxpZENyZWRlbnRpYWxzRXhjZXB0aW9uLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFeGNlcHRpb24sXG4gIEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1lbGFzdGljYWNoZVwiO1xuaW1wb3J0ICogYXMgRGF0YSBmcm9tIFwiZWZmZWN0L0RhdGFcIjtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgSW52YWxpZENyZWRlbnRpYWxzRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248SW52YWxpZENyZWRlbnRpYWxzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRQYXJhbWV0ZXJWYWx1ZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FeGNlcHRpb24+O1xuXG5leHBvcnQgdHlwZSBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uICYgeyBuYW1lOiBcIkVsYXN0aUNhY2hlU2VydmljZUVycm9yXCIgfVxuPjtcbmV4cG9ydCBjb25zdCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvciA9IERhdGEudGFnZ2VkPEVsYXN0aUNhY2hlU2VydmljZUVycm9yPihcbiAgXCJFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclwiLFxuKTtcbmV4cG9ydCB0eXBlIFNka0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEVycm9yICYgeyBuYW1lOiBcIlNka0Vycm9yXCIgfT47XG5leHBvcnQgY29uc3QgU2RrRXJyb3IgPSBEYXRhLnRhZ2dlZDxTZGtFcnJvcj4oXCJTZGtFcnJvclwiKTtcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { ElastiCacheClient } from "@aws-sdk/client-elasticache";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
8
|
+
import { DefaultElastiCacheClientConfigLayer, ElastiCacheClientInstanceConfig, } from "./ElastiCacheClientInstanceConfig";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category tags
|
|
12
|
+
*/
|
|
13
|
+
export class ElastiCacheClientInstance extends Context.Tag("@effect-aws/client-elasticache/ElastiCacheClientInstance")() {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category constructors
|
|
18
|
+
*/
|
|
19
|
+
export const makeElastiCacheClientInstance = Effect.map(ElastiCacheClientInstanceConfig, (config) => new ElastiCacheClient(config));
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category layers
|
|
23
|
+
*/
|
|
24
|
+
export const ElastiCacheClientInstanceLayer = Layer.effect(ElastiCacheClientInstance, makeElastiCacheClientInstance);
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category layers
|
|
28
|
+
*/
|
|
29
|
+
export const DefaultElastiCacheClientInstanceLayer = ElastiCacheClientInstanceLayer.pipe(Layer.provide(DefaultElastiCacheClientConfigLayer));
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLCtCQUErQixHQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxPQUFPLENBQUMsR0FBRyxDQUN4RCwwREFBMEQsQ0FDM0QsRUFBZ0Q7Q0FBRztBQUVwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNyRCwrQkFBK0IsRUFDL0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQzFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUN4RCx5QkFBeUIsRUFDekIsNkJBQTZCLENBQzlCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FDaEQsOEJBQThCLENBQUMsSUFBSSxDQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgeyBFbGFzdGlDYWNoZUNsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIExheWVyIGZyb20gXCJlZmZlY3QvTGF5ZXJcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRFbGFzdGlDYWNoZUNsaWVudENvbmZpZ0xheWVyLFxuICBFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSBleHRlbmRzIENvbnRleHQuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1lbGFzdGljYWNoZS9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlXCIsXG4pPEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UsIEVsYXN0aUNhY2hlQ2xpZW50PigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSA9IEVmZmVjdC5tYXAoXG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIChjb25maWcpID0+IG5ldyBFbGFzdGlDYWNoZUNsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSxcbiAgbWFrZUVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciA9XG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllci5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Runtime from "effect/Runtime";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
* @category tags
|
|
8
|
+
*/
|
|
9
|
+
export class ElastiCacheClientInstanceConfig extends Context.Tag("@effect-aws/client-elasticache/ElastiCacheClientInstanceConfig")() {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category constructors
|
|
14
|
+
*/
|
|
15
|
+
export const makeDefaultElastiCacheClientInstanceConfig = Effect.gen(function* (_) {
|
|
16
|
+
const runtime = yield* _(Effect.runtime());
|
|
17
|
+
const runSync = Runtime.runSync(runtime);
|
|
18
|
+
return {
|
|
19
|
+
logger: {
|
|
20
|
+
info(m) {
|
|
21
|
+
Effect.logInfo(m).pipe(runSync);
|
|
22
|
+
},
|
|
23
|
+
warn(m) {
|
|
24
|
+
Effect.logWarning(m).pipe(runSync);
|
|
25
|
+
},
|
|
26
|
+
error(m) {
|
|
27
|
+
Effect.logError(m).pipe(runSync);
|
|
28
|
+
},
|
|
29
|
+
debug(m) {
|
|
30
|
+
Effect.logDebug(m).pipe(runSync);
|
|
31
|
+
},
|
|
32
|
+
trace(m) {
|
|
33
|
+
Effect.logTrace(m).pipe(runSync);
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* @since 1.0.0
|
|
40
|
+
* @category layers
|
|
41
|
+
*/
|
|
42
|
+
export const DefaultElastiCacheClientConfigLayer = Layer.effect(ElastiCacheClientInstanceConfig, makeDefaultElastiCacheClientInstanceConfig);
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsT0FBTyxDQUFDLEdBQUcsQ0FDOUQsZ0VBQWdFLENBQ2pFLEVBQTREO0NBQUc7QUFFaEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBUyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QyxPQUFPO1FBQ0wsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUFDLENBQUM7Z0JBQ0osTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVMOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQzdELCtCQUErQixFQUMvQiwwQ0FBMEMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB0eXBlIHsgRWxhc3RpQ2FjaGVDbGllbnRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWcgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtZWxhc3RpY2FjaGUvRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUNvbmZpZ1wiLFxuKTxFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnLCBFbGFzdGlDYWNoZUNsaWVudENvbmZpZz4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZURlZmF1bHRFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PEVsYXN0aUNhY2hlQ2xpZW50Q29uZmlnPiA9XG4gIEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gICAgY29uc3QgcnVudGltZSA9IHlpZWxkKiBfKEVmZmVjdC5ydW50aW1lPG5ldmVyPigpKTtcbiAgICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2dlcjoge1xuICAgICAgICBpbmZvKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICB3YXJuKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhY2UobSkge1xuICAgICAgICAgIEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRFbGFzdGlDYWNoZUNsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnLFxuICBtYWtlRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19
|