@effect-aws/client-cloudwatch-logs 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.
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultCloudWatchLogsServiceLayer = exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer = exports.makeCloudWatchLogsService = exports.CloudWatchLogsService = void 0;
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
8
+ const effect_1 = require("effect");
9
+ const CloudWatchLogsClientInstance_1 = require("./CloudWatchLogsClientInstance");
10
+ const CloudWatchLogsClientInstanceConfig_1 = require("./CloudWatchLogsClientInstanceConfig");
11
+ const Errors_1 = require("./Errors");
12
+ const commands = {
13
+ AssociateKmsKeyCommand: client_cloudwatch_logs_1.AssociateKmsKeyCommand,
14
+ CancelExportTaskCommand: client_cloudwatch_logs_1.CancelExportTaskCommand,
15
+ CreateDeliveryCommand: client_cloudwatch_logs_1.CreateDeliveryCommand,
16
+ CreateExportTaskCommand: client_cloudwatch_logs_1.CreateExportTaskCommand,
17
+ CreateLogAnomalyDetectorCommand: client_cloudwatch_logs_1.CreateLogAnomalyDetectorCommand,
18
+ CreateLogGroupCommand: client_cloudwatch_logs_1.CreateLogGroupCommand,
19
+ CreateLogStreamCommand: client_cloudwatch_logs_1.CreateLogStreamCommand,
20
+ DeleteAccountPolicyCommand: client_cloudwatch_logs_1.DeleteAccountPolicyCommand,
21
+ DeleteDataProtectionPolicyCommand: client_cloudwatch_logs_1.DeleteDataProtectionPolicyCommand,
22
+ DeleteDeliveryCommand: client_cloudwatch_logs_1.DeleteDeliveryCommand,
23
+ DeleteDeliveryDestinationCommand: client_cloudwatch_logs_1.DeleteDeliveryDestinationCommand,
24
+ DeleteDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.DeleteDeliveryDestinationPolicyCommand,
25
+ DeleteDeliverySourceCommand: client_cloudwatch_logs_1.DeleteDeliverySourceCommand,
26
+ DeleteDestinationCommand: client_cloudwatch_logs_1.DeleteDestinationCommand,
27
+ DeleteLogAnomalyDetectorCommand: client_cloudwatch_logs_1.DeleteLogAnomalyDetectorCommand,
28
+ DeleteLogGroupCommand: client_cloudwatch_logs_1.DeleteLogGroupCommand,
29
+ DeleteLogStreamCommand: client_cloudwatch_logs_1.DeleteLogStreamCommand,
30
+ DeleteMetricFilterCommand: client_cloudwatch_logs_1.DeleteMetricFilterCommand,
31
+ DeleteQueryDefinitionCommand: client_cloudwatch_logs_1.DeleteQueryDefinitionCommand,
32
+ DeleteResourcePolicyCommand: client_cloudwatch_logs_1.DeleteResourcePolicyCommand,
33
+ DeleteRetentionPolicyCommand: client_cloudwatch_logs_1.DeleteRetentionPolicyCommand,
34
+ DeleteSubscriptionFilterCommand: client_cloudwatch_logs_1.DeleteSubscriptionFilterCommand,
35
+ DescribeAccountPoliciesCommand: client_cloudwatch_logs_1.DescribeAccountPoliciesCommand,
36
+ DescribeConfigurationTemplatesCommand: client_cloudwatch_logs_1.DescribeConfigurationTemplatesCommand,
37
+ DescribeDeliveriesCommand: client_cloudwatch_logs_1.DescribeDeliveriesCommand,
38
+ DescribeDeliveryDestinationsCommand: client_cloudwatch_logs_1.DescribeDeliveryDestinationsCommand,
39
+ DescribeDeliverySourcesCommand: client_cloudwatch_logs_1.DescribeDeliverySourcesCommand,
40
+ DescribeDestinationsCommand: client_cloudwatch_logs_1.DescribeDestinationsCommand,
41
+ DescribeExportTasksCommand: client_cloudwatch_logs_1.DescribeExportTasksCommand,
42
+ DescribeLogGroupsCommand: client_cloudwatch_logs_1.DescribeLogGroupsCommand,
43
+ DescribeLogStreamsCommand: client_cloudwatch_logs_1.DescribeLogStreamsCommand,
44
+ DescribeMetricFiltersCommand: client_cloudwatch_logs_1.DescribeMetricFiltersCommand,
45
+ DescribeQueriesCommand: client_cloudwatch_logs_1.DescribeQueriesCommand,
46
+ DescribeQueryDefinitionsCommand: client_cloudwatch_logs_1.DescribeQueryDefinitionsCommand,
47
+ DescribeResourcePoliciesCommand: client_cloudwatch_logs_1.DescribeResourcePoliciesCommand,
48
+ DescribeSubscriptionFiltersCommand: client_cloudwatch_logs_1.DescribeSubscriptionFiltersCommand,
49
+ DisassociateKmsKeyCommand: client_cloudwatch_logs_1.DisassociateKmsKeyCommand,
50
+ FilterLogEventsCommand: client_cloudwatch_logs_1.FilterLogEventsCommand,
51
+ GetDataProtectionPolicyCommand: client_cloudwatch_logs_1.GetDataProtectionPolicyCommand,
52
+ GetDeliveryCommand: client_cloudwatch_logs_1.GetDeliveryCommand,
53
+ GetDeliveryDestinationCommand: client_cloudwatch_logs_1.GetDeliveryDestinationCommand,
54
+ GetDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.GetDeliveryDestinationPolicyCommand,
55
+ GetDeliverySourceCommand: client_cloudwatch_logs_1.GetDeliverySourceCommand,
56
+ GetLogAnomalyDetectorCommand: client_cloudwatch_logs_1.GetLogAnomalyDetectorCommand,
57
+ GetLogEventsCommand: client_cloudwatch_logs_1.GetLogEventsCommand,
58
+ GetLogGroupFieldsCommand: client_cloudwatch_logs_1.GetLogGroupFieldsCommand,
59
+ GetLogRecordCommand: client_cloudwatch_logs_1.GetLogRecordCommand,
60
+ GetQueryResultsCommand: client_cloudwatch_logs_1.GetQueryResultsCommand,
61
+ ListAnomaliesCommand: client_cloudwatch_logs_1.ListAnomaliesCommand,
62
+ ListLogAnomalyDetectorsCommand: client_cloudwatch_logs_1.ListLogAnomalyDetectorsCommand,
63
+ ListTagsForResourceCommand: client_cloudwatch_logs_1.ListTagsForResourceCommand,
64
+ ListTagsLogGroupCommand: client_cloudwatch_logs_1.ListTagsLogGroupCommand,
65
+ PutAccountPolicyCommand: client_cloudwatch_logs_1.PutAccountPolicyCommand,
66
+ PutDataProtectionPolicyCommand: client_cloudwatch_logs_1.PutDataProtectionPolicyCommand,
67
+ PutDeliveryDestinationCommand: client_cloudwatch_logs_1.PutDeliveryDestinationCommand,
68
+ PutDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.PutDeliveryDestinationPolicyCommand,
69
+ PutDeliverySourceCommand: client_cloudwatch_logs_1.PutDeliverySourceCommand,
70
+ PutDestinationCommand: client_cloudwatch_logs_1.PutDestinationCommand,
71
+ PutDestinationPolicyCommand: client_cloudwatch_logs_1.PutDestinationPolicyCommand,
72
+ PutLogEventsCommand: client_cloudwatch_logs_1.PutLogEventsCommand,
73
+ PutMetricFilterCommand: client_cloudwatch_logs_1.PutMetricFilterCommand,
74
+ PutQueryDefinitionCommand: client_cloudwatch_logs_1.PutQueryDefinitionCommand,
75
+ PutResourcePolicyCommand: client_cloudwatch_logs_1.PutResourcePolicyCommand,
76
+ PutRetentionPolicyCommand: client_cloudwatch_logs_1.PutRetentionPolicyCommand,
77
+ PutSubscriptionFilterCommand: client_cloudwatch_logs_1.PutSubscriptionFilterCommand,
78
+ StartLiveTailCommand: client_cloudwatch_logs_1.StartLiveTailCommand,
79
+ StartQueryCommand: client_cloudwatch_logs_1.StartQueryCommand,
80
+ StopQueryCommand: client_cloudwatch_logs_1.StopQueryCommand,
81
+ TagLogGroupCommand: client_cloudwatch_logs_1.TagLogGroupCommand,
82
+ TagResourceCommand: client_cloudwatch_logs_1.TagResourceCommand,
83
+ TestMetricFilterCommand: client_cloudwatch_logs_1.TestMetricFilterCommand,
84
+ UntagLogGroupCommand: client_cloudwatch_logs_1.UntagLogGroupCommand,
85
+ UntagResourceCommand: client_cloudwatch_logs_1.UntagResourceCommand,
86
+ UpdateAnomalyCommand: client_cloudwatch_logs_1.UpdateAnomalyCommand,
87
+ UpdateDeliveryConfigurationCommand: client_cloudwatch_logs_1.UpdateDeliveryConfigurationCommand,
88
+ UpdateLogAnomalyDetectorCommand: client_cloudwatch_logs_1.UpdateLogAnomalyDetectorCommand,
89
+ };
90
+ /**
91
+ * @since 1.0.0
92
+ * @category models
93
+ */
94
+ class CloudWatchLogsService extends effect_1.Effect.Tag("@effect-aws/client-cloudwatch-logs/CloudWatchLogsService")() {
95
+ }
96
+ exports.CloudWatchLogsService = CloudWatchLogsService;
97
+ /**
98
+ * @since 1.0.0
99
+ * @category constructors
100
+ */
101
+ exports.makeCloudWatchLogsService = effect_1.Effect.gen(function* (_) {
102
+ const client = yield* _(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstance);
103
+ return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
104
+ const CommandCtor = commands[command];
105
+ const methodImpl = (args, options) => effect_1.Effect.tryPromise({
106
+ try: (abortSignal) => client.send(new CommandCtor(args), {
107
+ ...(options !== null && options !== void 0 ? options : {}),
108
+ abortSignal,
109
+ }),
110
+ catch: (e) => {
111
+ if (e instanceof client_cloudwatch_logs_1.CloudWatchLogsServiceException &&
112
+ Errors_1.AllServiceErrors.includes(e.name)) {
113
+ const ServiceException = effect_1.Data.tagged(e.name);
114
+ return ServiceException({
115
+ ...e,
116
+ message: e.message,
117
+ stack: e.stack,
118
+ });
119
+ }
120
+ if (e instanceof Error) {
121
+ return (0, Errors_1.SdkError)({
122
+ ...e,
123
+ name: "SdkError",
124
+ message: e.message,
125
+ stack: e.stack,
126
+ });
127
+ }
128
+ throw e;
129
+ },
130
+ });
131
+ const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
132
+ return { ...acc, [methodName]: methodImpl };
133
+ }, {});
134
+ });
135
+ /**
136
+ * @since 1.0.0
137
+ * @category layers
138
+ */
139
+ exports.BaseCloudWatchLogsServiceLayer = effect_1.Layer.effect(CloudWatchLogsService, exports.makeCloudWatchLogsService);
140
+ /**
141
+ * @since 1.0.0
142
+ * @category layers
143
+ */
144
+ exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer.pipe(effect_1.Layer.provide(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstanceLayer));
145
+ /**
146
+ * @since 1.0.0
147
+ * @category layers
148
+ */
149
+ exports.DefaultCloudWatchLogsServiceLayer = exports.CloudWatchLogsServiceLayer.pipe(effect_1.Layer.provide(CloudWatchLogsClientInstanceConfig_1.DefaultCloudWatchLogsClientConfigLayer));
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILDRFQXNPeUM7QUFDekMsbUNBQXFEO0FBQ3JELGlGQUd3QztBQUN4Qyw2RkFBOEY7QUFDOUYscUNBcUJrQjtBQVVsQixNQUFNLFFBQVEsR0FBRztJQUNmLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIsdUJBQXVCLEVBQXZCLGdEQUF1QjtJQUN2QixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIsMEJBQTBCLEVBQTFCLG1EQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsMERBQWlDO0lBQ2pDLHFCQUFxQixFQUFyQiw4Q0FBcUI7SUFDckIsZ0NBQWdDLEVBQWhDLHlEQUFnQztJQUNoQyxzQ0FBc0MsRUFBdEMsK0RBQXNDO0lBQ3RDLDJCQUEyQixFQUEzQixvREFBMkI7SUFDM0Isd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4QiwrQkFBK0IsRUFBL0Isd0RBQStCO0lBQy9CLHFCQUFxQixFQUFyQiw4Q0FBcUI7SUFDckIsc0JBQXNCLEVBQXRCLCtDQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsa0RBQXlCO0lBQ3pCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsMkJBQTJCLEVBQTNCLG9EQUEyQjtJQUMzQiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IsOEJBQThCLEVBQTlCLHVEQUE4QjtJQUM5QixxQ0FBcUMsRUFBckMsOERBQXFDO0lBQ3JDLHlCQUF5QixFQUF6QixrREFBeUI7SUFDekIsbUNBQW1DLEVBQW5D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QUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUEyQixDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUN4RCxxQkFBcUIsRUFDckIsaUNBQXlCLENBQzFCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FDM0UsY0FBSyxDQUFDLE9BQU8sQ0FBQyxnRUFBaUMsQ0FBQyxDQUNqRCxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FDNUMsa0NBQTBCLENBQUMsSUFBSSxDQUM3QixjQUFLLENBQUMsT0FBTyxDQUFDLDJFQUFzQyxDQUFDLENBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sXG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ1JlY29yZENvbW1hbmQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbm9tYWxpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TGl2ZVRhaWxDb21tYW5kLFxuICB0eXBlIFN0YXJ0TGl2ZVRhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICB0eXBlIFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFub21hbHlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvcixcbiAgSW52YWxpZE9wZXJhdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTZXF1ZW5jZVRva2VuRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkUXVlcnlFcnJvcixcbiAgT3BlcmF0aW9uQWJvcnRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBVbnJlY29nbml6ZWRDbGllbnRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICBDcmVhdGVEZWxpdmVyeUNvbW1hbmQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBDcmVhdGVMb2dHcm91cENvbW1hbmQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgRGVsZXRlTG9nR3JvdXBDb21tYW5kLFxuICBEZWxldGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kLFxuICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgR2V0TG9nUmVjb3JkQ29tbWFuZCxcbiAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCxcbiAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICBQdXRBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgUHV0RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICBTdG9wUXVlcnlDb21tYW5kLFxuICBUYWdMb2dHcm91cENvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbEV4cG9ydFRhc2soXG4gICAgYXJnczogQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IENyZWF0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV4cG9ydFRhc2soXG4gICAgYXJnczogQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0dyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjY291bnRQb2xpY3koXG4gICAgYXJnczogRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgYXJnczogRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxvZ0dyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dTdHJlYW0oXG4gICAgYXJnczogRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVF1ZXJ5RGVmaW5pdGlvbihcbiAgICBhcmdzOiBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJldGVudGlvblBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgYXJnczogRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnRQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5U291cmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXhwb3J0VGFza3MoXG4gICAgYXJnczogRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMb2dTdHJlYW1zKFxuICAgIGFyZ3M6IERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU1ldHJpY0ZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUXVlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZVF1ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyeURlZmluaXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVLbXNLZXkoXG4gICAgYXJnczogRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGaWx0ZXJMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZmlsdGVyTG9nRXZlbnRzKFxuICAgIGFyZ3M6IEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5KFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nRXZlbnRzKFxuICAgIGFyZ3M6IEdldExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0dyb3VwRmllbGRzKFxuICAgIGFyZ3M6IEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ1JlY29yZENvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dSZWNvcmQoXG4gICAgYXJnczogR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRRdWVyeVJlc3VsdHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UXVlcnlSZXN1bHRzKFxuICAgIGFyZ3M6IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbm9tYWxpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFub21hbGllcyhcbiAgICBhcmdzOiBMaXN0QW5vbWFsaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExvZ0Fub21hbHlEZXRlY3RvcnMoXG4gICAgYXJnczogTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0xvZ0dyb3VwKFxuICAgIGFyZ3M6IExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEFjY291bnRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0QWNjb3VudFBvbGljeShcbiAgICBhcmdzOiBQdXRBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5RGVzdGluYXRpb24oXG4gICAgYXJnczogUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dERlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IFB1dERlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXREZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIHB1dExvZ0V2ZW50cyhcbiAgICBhcmdzOiBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRDbGllbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0TWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0UXVlcnlEZWZpbml0aW9uKFxuICAgIGFyZ3M6IFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0U3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydExpdmVUYWlsQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TGl2ZVRhaWwoXG4gICAgYXJnczogU3RhcnRMaXZlVGFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TGl2ZVRhaWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFF1ZXJ5KFxuICAgIGFyZ3M6IFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUXVlcnlFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wUXVlcnlDb21tYW5kfVxuICAgKi9cbiAgc3RvcFF1ZXJ5KFxuICAgIGFyZ3M6IFN0b3BRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ0xvZ0dyb3VwQ29tbWFuZH1cbiAgICovXG4gIHRhZ0xvZ0dyb3VwKFxuICAgIGFyZ3M6IFRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnTG9nR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHRlc3RNZXRyaWNGaWx0ZXIoXG4gICAgYXJnczogVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICB1bnRhZ0xvZ0dyb3VwKFxuICAgIGFyZ3M6IFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBbm9tYWx5Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFub21hbHkoXG4gICAgYXJnczogVXBkYXRlQW5vbWFseUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFub21hbHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlXCIsXG4pPENsb3VkV2F0Y2hMb2dzU2VydmljZSwgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZSxcbiAgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9IEJhc2VDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdENsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID1cbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIucGlwZShcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import type { AccessDeniedException, ConflictException, DataAlreadyAcceptedException, InvalidOperationException, InvalidParameterException, InvalidSequenceTokenException, LimitExceededException, MalformedQueryException, OperationAbortedException, ResourceAlreadyExistsException, ResourceNotFoundException, ServiceQuotaExceededException, ServiceUnavailableException, SessionStreamingException, SessionTimeoutException, ThrottlingException, TooManyTagsException, UnrecognizedClientException, ValidationException } from "@aws-sdk/client-cloudwatch-logs";
2
+ import { Data } from "effect";
3
+ export declare const AllServiceErrors: string[];
4
+ export type TaggedException<T extends {
5
+ name: string;
6
+ }> = T & {
7
+ readonly _tag: T["name"];
8
+ };
9
+ export type AccessDeniedError = TaggedException<AccessDeniedException>;
10
+ export type ConflictError = TaggedException<ConflictException>;
11
+ export type DataAlreadyAcceptedError = TaggedException<DataAlreadyAcceptedException>;
12
+ export type InvalidOperationError = TaggedException<InvalidOperationException>;
13
+ export type InvalidParameterError = TaggedException<InvalidParameterException>;
14
+ export type InvalidSequenceTokenError = TaggedException<InvalidSequenceTokenException>;
15
+ export type LimitExceededError = TaggedException<LimitExceededException>;
16
+ export type MalformedQueryError = TaggedException<MalformedQueryException>;
17
+ export type OperationAbortedError = TaggedException<OperationAbortedException>;
18
+ export type ResourceAlreadyExistsError = TaggedException<ResourceAlreadyExistsException>;
19
+ export type ResourceNotFoundError = TaggedException<ResourceNotFoundException>;
20
+ export type ServiceQuotaExceededError = TaggedException<ServiceQuotaExceededException>;
21
+ export type ServiceUnavailableError = TaggedException<ServiceUnavailableException>;
22
+ export type SessionStreamingError = TaggedException<SessionStreamingException>;
23
+ export type SessionTimeoutError = TaggedException<SessionTimeoutException>;
24
+ export type ThrottlingError = TaggedException<ThrottlingException>;
25
+ export type TooManyTagsError = TaggedException<TooManyTagsException>;
26
+ export type UnrecognizedClientError = TaggedException<UnrecognizedClientException>;
27
+ export type ValidationError = TaggedException<ValidationException>;
28
+ export type SdkError = TaggedException<Error & {
29
+ name: "SdkError";
30
+ }>;
31
+ export declare const SdkError: Data.Case.Constructor<SdkError, "_tag">;
package/lib/Errors.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SdkError = exports.AllServiceErrors = void 0;
4
+ const effect_1 = require("effect");
5
+ exports.AllServiceErrors = [
6
+ "AccessDeniedException",
7
+ "ConflictException",
8
+ "DataAlreadyAcceptedException",
9
+ "InvalidOperationException",
10
+ "InvalidParameterException",
11
+ "InvalidSequenceTokenException",
12
+ "LimitExceededException",
13
+ "MalformedQueryException",
14
+ "OperationAbortedException",
15
+ "ResourceAlreadyExistsException",
16
+ "ResourceNotFoundException",
17
+ "ServiceQuotaExceededException",
18
+ "ServiceUnavailableException",
19
+ "SessionStreamingException",
20
+ "SessionTimeoutException",
21
+ "ThrottlingException",
22
+ "TooManyTagsException",
23
+ "UnrecognizedClientException",
24
+ "ValidationException",
25
+ ];
26
+ exports.SdkError = effect_1.Data.tagged("SdkError");
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsbUNBQThCO0FBRWpCLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0Isd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsZ0NBQWdDO0lBQ2hDLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsNkJBQTZCO0lBQzdCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0Qiw2QkFBNkI7SUFDN0IscUJBQXFCO0NBQ3RCLENBQUM7QUFpQ1csUUFBQSxRQUFRLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FBVyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLFxuICBDb25mbGljdEV4Y2VwdGlvbixcbiAgRGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbixcbiAgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbixcbiAgSW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbixcbiAgSW52YWxpZFNlcXVlbmNlVG9rZW5FeGNlcHRpb24sXG4gIExpbWl0RXhjZWVkZWRFeGNlcHRpb24sXG4gIE1hbGZvcm1lZFF1ZXJ5RXhjZXB0aW9uLFxuICBPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24sXG4gIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24sXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uLFxuICBTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb24sXG4gIFNlc3Npb25TdHJlYW1pbmdFeGNlcHRpb24sXG4gIFNlc3Npb25UaW1lb3V0RXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVW5yZWNvZ25pemVkQ2xpZW50RXhjZXB0aW9uLFxuICBWYWxpZGF0aW9uRXhjZXB0aW9uLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNsb3Vkd2F0Y2gtbG9nc1wiO1xuaW1wb3J0IHsgRGF0YSB9IGZyb20gXCJlZmZlY3RcIjtcblxuZXhwb3J0IGNvbnN0IEFsbFNlcnZpY2VFcnJvcnMgPSBbXG4gIFwiQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gIFwiQ29uZmxpY3RFeGNlcHRpb25cIixcbiAgXCJEYXRhQWxyZWFkeUFjY2VwdGVkRXhjZXB0aW9uXCIsXG4gIFwiSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvblwiLFxuICBcIkludmFsaWRQYXJhbWV0ZXJFeGNlcHRpb25cIixcbiAgXCJJbnZhbGlkU2VxdWVuY2VUb2tlbkV4Y2VwdGlvblwiLFxuICBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJNYWxmb3JtZWRRdWVyeUV4Y2VwdGlvblwiLFxuICBcIk9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb25cIixcbiAgXCJSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb25cIixcbiAgXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gIFwiU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJTZXJ2aWNlVW5hdmFpbGFibGVFeGNlcHRpb25cIixcbiAgXCJTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uXCIsXG4gIFwiU2Vzc2lvblRpbWVvdXRFeGNlcHRpb25cIixcbiAgXCJUaHJvdHRsaW5nRXhjZXB0aW9uXCIsXG4gIFwiVG9vTWFueVRhZ3NFeGNlcHRpb25cIixcbiAgXCJVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb25cIixcbiAgXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCIsXG5dO1xuXG5leHBvcnQgdHlwZSBUYWdnZWRFeGNlcHRpb248VCBleHRlbmRzIHsgbmFtZTogc3RyaW5nIH0+ID0gVCAmIHtcbiAgcmVhZG9ubHkgX3RhZzogVFtcIm5hbWVcIl07XG59O1xuXG5leHBvcnQgdHlwZSBBY2Nlc3NEZW5pZWRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxBY2Nlc3NEZW5pZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgQ29uZmxpY3RFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxDb25mbGljdEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBEYXRhQWxyZWFkeUFjY2VwdGVkRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248RGF0YUFscmVhZHlBY2NlcHRlZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkT3BlcmF0aW9uRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRTZXF1ZW5jZVRva2VuRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIExpbWl0RXhjZWVkZWRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIE1hbGZvcm1lZFF1ZXJ5RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248TWFsZm9ybWVkUXVlcnlFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgT3BlcmF0aW9uQWJvcnRlZEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPE9wZXJhdGlvbkFib3J0ZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VBbHJlYWR5RXhpc3RzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFJlc291cmNlTm90Rm91bmRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248U2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248U2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlc3Npb25TdHJlYW1pbmdFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxTZXNzaW9uU3RyZWFtaW5nRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlc3Npb25UaW1lb3V0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248U2Vzc2lvblRpbWVvdXRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVGhyb3R0bGluZ0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRocm90dGxpbmdFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVG9vTWFueVRhZ3NFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxUb29NYW55VGFnc0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBVbnJlY29nbml6ZWRDbGllbnRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxVbnJlY29nbml6ZWRDbGllbnRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFZhbGlkYXRpb25FeGNlcHRpb24+O1xuXG5leHBvcnQgdHlwZSBTZGtFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxFcnJvciAmIHsgbmFtZTogXCJTZGtFcnJvclwiIH0+O1xuZXhwb3J0IGNvbnN0IFNka0Vycm9yID0gRGF0YS50YWdnZWQ8U2RrRXJyb3I+KFwiU2RrRXJyb3JcIik7XG4iXX0=
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { CloudWatchLogsClient } from "@aws-sdk/client-cloudwatch-logs";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import { DefaultCloudWatchLogsClientConfigLayer, CloudWatchLogsClientInstanceConfig, } from "./CloudWatchLogsClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category tags
12
+ */
13
+ export class CloudWatchLogsClientInstance extends Context.Tag("@effect-aws/client-cloudwatch-logs/CloudWatchLogsClientInstance")() {
14
+ }
15
+ /**
16
+ * @since 1.0.0
17
+ * @category constructors
18
+ */
19
+ export const makeCloudWatchLogsClientInstance = Effect.map(CloudWatchLogsClientInstanceConfig, (config) => new CloudWatchLogsClient(config));
20
+ /**
21
+ * @since 1.0.0
22
+ * @category layers
23
+ */
24
+ export const CloudWatchLogsClientInstanceLayer = Layer.effect(CloudWatchLogsClientInstance, makeCloudWatchLogsClientInstance);
25
+ /**
26
+ * @since 1.0.0
27
+ * @category layers
28
+ */
29
+ export const DefaultCloudWatchLogsClientInstanceLayer = CloudWatchLogsClientInstanceLayer.pipe(Layer.provide(DefaultCloudWatchLogsClientConfigLayer));
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9DbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLGtDQUFrQyxHQUNuQyxNQUFNLHNDQUFzQyxDQUFDO0FBRTlDOzs7R0FHRztBQUNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxPQUFPLENBQUMsR0FBRyxDQUMzRCxpRUFBaUUsQ0FDbEUsRUFBc0Q7Q0FBRztBQUUxRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUN4RCxrQ0FBa0MsRUFDbEMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUMzRCw0QkFBNEIsRUFDNUIsZ0NBQWdDLENBQ2pDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FDbkQsaUNBQWlDLENBQUMsSUFBSSxDQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgeyBDbG91ZFdhdGNoTG9nc0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWdMYXllcixcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VcIixcbik8Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSwgQ2xvdWRXYXRjaExvZ3NDbGllbnQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlID0gRWZmZWN0Lm1hcChcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IENsb3VkV2F0Y2hMb2dzQ2xpZW50KGNvbmZpZyksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICBtYWtlQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyID1cbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWdMYXllciksXG4gICk7XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { Context, Effect, Layer, Runtime } from "effect";
2
+ /**
3
+ * @since 1.0.0
4
+ * @category tags
5
+ */
6
+ export class CloudWatchLogsClientInstanceConfig extends Context.Tag("@effect-aws/client-cloudwatch-logs/CloudWatchLogsClientInstanceConfig")() {
7
+ }
8
+ /**
9
+ * @since 1.0.0
10
+ * @category constructors
11
+ */
12
+ export const makeDefaultCloudWatchLogsClientInstanceConfig = Effect.gen(function* (_) {
13
+ const runtime = yield* _(Effect.runtime());
14
+ const runSync = Runtime.runSync(runtime);
15
+ return {
16
+ logger: {
17
+ info(m) {
18
+ Effect.logInfo(m).pipe(runSync);
19
+ },
20
+ warn(m) {
21
+ Effect.logWarning(m).pipe(runSync);
22
+ },
23
+ error(m) {
24
+ Effect.logError(m).pipe(runSync);
25
+ },
26
+ debug(m) {
27
+ Effect.logDebug(m).pipe(runSync);
28
+ },
29
+ trace(m) {
30
+ Effect.logTrace(m).pipe(runSync);
31
+ },
32
+ },
33
+ };
34
+ });
35
+ /**
36
+ * @since 1.0.0
37
+ * @category layers
38
+ */
39
+ export const DefaultCloudWatchLogsClientConfigLayer = Layer.effect(CloudWatchLogsClientInstanceConfig, makeDefaultCloudWatchLogsClientInstanceConfig);
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9DbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFekQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQ2pFLHVFQUF1RSxDQUN4RSxFQUFrRTtDQUFHO0FBRXRFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZDQUE2QyxHQUN4RCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFTDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNoRSxrQ0FBa0MsRUFDbEMsNkNBQTZDLENBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3NcIjtcbmltcG9ydCB7IENvbnRleHQsIEVmZmVjdCwgTGF5ZXIsIFJ1bnRpbWUgfSBmcm9tIFwiZWZmZWN0XCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyBleHRlbmRzIENvbnRleHQuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiLFxuKTxDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLCBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZz4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZURlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnPiA9XG4gIEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gICAgY29uc3QgcnVudGltZSA9IHlpZWxkKiBfKEVmZmVjdC5ydW50aW1lPG5ldmVyPigpKTtcbiAgICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2dlcjoge1xuICAgICAgICBpbmZvKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICB3YXJuKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhY2UobSkge1xuICAgICAgICAgIEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBtYWtlRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19