@effect-aws/client-iot-wireless 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,200 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DefaultIoTWirelessServiceLayer = exports.IoTWirelessServiceLayer = exports.BaseIoTWirelessServiceLayer = exports.IoTWireless = exports.IoTWirelessService = exports.makeIoTWirelessService = void 0;
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ const client_iot_wireless_1 = require("@aws-sdk/client-iot-wireless");
9
+ const effect_1 = require("effect");
10
+ const Errors_1 = require("./Errors");
11
+ const IoTWirelessClientInstance_1 = require("./IoTWirelessClientInstance");
12
+ const IoTWirelessClientInstanceConfig_1 = require("./IoTWirelessClientInstanceConfig");
13
+ const commands = {
14
+ AssociateAwsAccountWithPartnerAccountCommand: client_iot_wireless_1.AssociateAwsAccountWithPartnerAccountCommand,
15
+ AssociateMulticastGroupWithFuotaTaskCommand: client_iot_wireless_1.AssociateMulticastGroupWithFuotaTaskCommand,
16
+ AssociateWirelessDeviceWithFuotaTaskCommand: client_iot_wireless_1.AssociateWirelessDeviceWithFuotaTaskCommand,
17
+ AssociateWirelessDeviceWithMulticastGroupCommand: client_iot_wireless_1.AssociateWirelessDeviceWithMulticastGroupCommand,
18
+ AssociateWirelessDeviceWithThingCommand: client_iot_wireless_1.AssociateWirelessDeviceWithThingCommand,
19
+ AssociateWirelessGatewayWithCertificateCommand: client_iot_wireless_1.AssociateWirelessGatewayWithCertificateCommand,
20
+ AssociateWirelessGatewayWithThingCommand: client_iot_wireless_1.AssociateWirelessGatewayWithThingCommand,
21
+ CancelMulticastGroupSessionCommand: client_iot_wireless_1.CancelMulticastGroupSessionCommand,
22
+ CreateDestinationCommand: client_iot_wireless_1.CreateDestinationCommand,
23
+ CreateDeviceProfileCommand: client_iot_wireless_1.CreateDeviceProfileCommand,
24
+ CreateFuotaTaskCommand: client_iot_wireless_1.CreateFuotaTaskCommand,
25
+ CreateMulticastGroupCommand: client_iot_wireless_1.CreateMulticastGroupCommand,
26
+ CreateNetworkAnalyzerConfigurationCommand: client_iot_wireless_1.CreateNetworkAnalyzerConfigurationCommand,
27
+ CreateServiceProfileCommand: client_iot_wireless_1.CreateServiceProfileCommand,
28
+ CreateWirelessDeviceCommand: client_iot_wireless_1.CreateWirelessDeviceCommand,
29
+ CreateWirelessGatewayCommand: client_iot_wireless_1.CreateWirelessGatewayCommand,
30
+ CreateWirelessGatewayTaskCommand: client_iot_wireless_1.CreateWirelessGatewayTaskCommand,
31
+ CreateWirelessGatewayTaskDefinitionCommand: client_iot_wireless_1.CreateWirelessGatewayTaskDefinitionCommand,
32
+ DeleteDestinationCommand: client_iot_wireless_1.DeleteDestinationCommand,
33
+ DeleteDeviceProfileCommand: client_iot_wireless_1.DeleteDeviceProfileCommand,
34
+ DeleteFuotaTaskCommand: client_iot_wireless_1.DeleteFuotaTaskCommand,
35
+ DeleteMulticastGroupCommand: client_iot_wireless_1.DeleteMulticastGroupCommand,
36
+ DeleteNetworkAnalyzerConfigurationCommand: client_iot_wireless_1.DeleteNetworkAnalyzerConfigurationCommand,
37
+ DeleteQueuedMessagesCommand: client_iot_wireless_1.DeleteQueuedMessagesCommand,
38
+ DeleteServiceProfileCommand: client_iot_wireless_1.DeleteServiceProfileCommand,
39
+ DeleteWirelessDeviceCommand: client_iot_wireless_1.DeleteWirelessDeviceCommand,
40
+ DeleteWirelessDeviceImportTaskCommand: client_iot_wireless_1.DeleteWirelessDeviceImportTaskCommand,
41
+ DeleteWirelessGatewayCommand: client_iot_wireless_1.DeleteWirelessGatewayCommand,
42
+ DeleteWirelessGatewayTaskCommand: client_iot_wireless_1.DeleteWirelessGatewayTaskCommand,
43
+ DeleteWirelessGatewayTaskDefinitionCommand: client_iot_wireless_1.DeleteWirelessGatewayTaskDefinitionCommand,
44
+ DeregisterWirelessDeviceCommand: client_iot_wireless_1.DeregisterWirelessDeviceCommand,
45
+ DisassociateAwsAccountFromPartnerAccountCommand: client_iot_wireless_1.DisassociateAwsAccountFromPartnerAccountCommand,
46
+ DisassociateMulticastGroupFromFuotaTaskCommand: client_iot_wireless_1.DisassociateMulticastGroupFromFuotaTaskCommand,
47
+ DisassociateWirelessDeviceFromFuotaTaskCommand: client_iot_wireless_1.DisassociateWirelessDeviceFromFuotaTaskCommand,
48
+ DisassociateWirelessDeviceFromMulticastGroupCommand: client_iot_wireless_1.DisassociateWirelessDeviceFromMulticastGroupCommand,
49
+ DisassociateWirelessDeviceFromThingCommand: client_iot_wireless_1.DisassociateWirelessDeviceFromThingCommand,
50
+ DisassociateWirelessGatewayFromCertificateCommand: client_iot_wireless_1.DisassociateWirelessGatewayFromCertificateCommand,
51
+ DisassociateWirelessGatewayFromThingCommand: client_iot_wireless_1.DisassociateWirelessGatewayFromThingCommand,
52
+ GetDestinationCommand: client_iot_wireless_1.GetDestinationCommand,
53
+ GetDeviceProfileCommand: client_iot_wireless_1.GetDeviceProfileCommand,
54
+ GetEventConfigurationByResourceTypesCommand: client_iot_wireless_1.GetEventConfigurationByResourceTypesCommand,
55
+ GetFuotaTaskCommand: client_iot_wireless_1.GetFuotaTaskCommand,
56
+ GetLogLevelsByResourceTypesCommand: client_iot_wireless_1.GetLogLevelsByResourceTypesCommand,
57
+ GetMetricConfigurationCommand: client_iot_wireless_1.GetMetricConfigurationCommand,
58
+ GetMetricsCommand: client_iot_wireless_1.GetMetricsCommand,
59
+ GetMulticastGroupCommand: client_iot_wireless_1.GetMulticastGroupCommand,
60
+ GetMulticastGroupSessionCommand: client_iot_wireless_1.GetMulticastGroupSessionCommand,
61
+ GetNetworkAnalyzerConfigurationCommand: client_iot_wireless_1.GetNetworkAnalyzerConfigurationCommand,
62
+ GetPartnerAccountCommand: client_iot_wireless_1.GetPartnerAccountCommand,
63
+ GetPositionCommand: client_iot_wireless_1.GetPositionCommand,
64
+ GetPositionConfigurationCommand: client_iot_wireless_1.GetPositionConfigurationCommand,
65
+ GetPositionEstimateCommand: client_iot_wireless_1.GetPositionEstimateCommand,
66
+ GetResourceEventConfigurationCommand: client_iot_wireless_1.GetResourceEventConfigurationCommand,
67
+ GetResourceLogLevelCommand: client_iot_wireless_1.GetResourceLogLevelCommand,
68
+ GetResourcePositionCommand: client_iot_wireless_1.GetResourcePositionCommand,
69
+ GetServiceEndpointCommand: client_iot_wireless_1.GetServiceEndpointCommand,
70
+ GetServiceProfileCommand: client_iot_wireless_1.GetServiceProfileCommand,
71
+ GetWirelessDeviceCommand: client_iot_wireless_1.GetWirelessDeviceCommand,
72
+ GetWirelessDeviceImportTaskCommand: client_iot_wireless_1.GetWirelessDeviceImportTaskCommand,
73
+ GetWirelessDeviceStatisticsCommand: client_iot_wireless_1.GetWirelessDeviceStatisticsCommand,
74
+ GetWirelessGatewayCommand: client_iot_wireless_1.GetWirelessGatewayCommand,
75
+ GetWirelessGatewayCertificateCommand: client_iot_wireless_1.GetWirelessGatewayCertificateCommand,
76
+ GetWirelessGatewayFirmwareInformationCommand: client_iot_wireless_1.GetWirelessGatewayFirmwareInformationCommand,
77
+ GetWirelessGatewayStatisticsCommand: client_iot_wireless_1.GetWirelessGatewayStatisticsCommand,
78
+ GetWirelessGatewayTaskCommand: client_iot_wireless_1.GetWirelessGatewayTaskCommand,
79
+ GetWirelessGatewayTaskDefinitionCommand: client_iot_wireless_1.GetWirelessGatewayTaskDefinitionCommand,
80
+ ListDestinationsCommand: client_iot_wireless_1.ListDestinationsCommand,
81
+ ListDeviceProfilesCommand: client_iot_wireless_1.ListDeviceProfilesCommand,
82
+ ListDevicesForWirelessDeviceImportTaskCommand: client_iot_wireless_1.ListDevicesForWirelessDeviceImportTaskCommand,
83
+ ListEventConfigurationsCommand: client_iot_wireless_1.ListEventConfigurationsCommand,
84
+ ListFuotaTasksCommand: client_iot_wireless_1.ListFuotaTasksCommand,
85
+ ListMulticastGroupsCommand: client_iot_wireless_1.ListMulticastGroupsCommand,
86
+ ListMulticastGroupsByFuotaTaskCommand: client_iot_wireless_1.ListMulticastGroupsByFuotaTaskCommand,
87
+ ListNetworkAnalyzerConfigurationsCommand: client_iot_wireless_1.ListNetworkAnalyzerConfigurationsCommand,
88
+ ListPartnerAccountsCommand: client_iot_wireless_1.ListPartnerAccountsCommand,
89
+ ListPositionConfigurationsCommand: client_iot_wireless_1.ListPositionConfigurationsCommand,
90
+ ListQueuedMessagesCommand: client_iot_wireless_1.ListQueuedMessagesCommand,
91
+ ListServiceProfilesCommand: client_iot_wireless_1.ListServiceProfilesCommand,
92
+ ListTagsForResourceCommand: client_iot_wireless_1.ListTagsForResourceCommand,
93
+ ListWirelessDeviceImportTasksCommand: client_iot_wireless_1.ListWirelessDeviceImportTasksCommand,
94
+ ListWirelessDevicesCommand: client_iot_wireless_1.ListWirelessDevicesCommand,
95
+ ListWirelessGatewayTaskDefinitionsCommand: client_iot_wireless_1.ListWirelessGatewayTaskDefinitionsCommand,
96
+ ListWirelessGatewaysCommand: client_iot_wireless_1.ListWirelessGatewaysCommand,
97
+ PutPositionConfigurationCommand: client_iot_wireless_1.PutPositionConfigurationCommand,
98
+ PutResourceLogLevelCommand: client_iot_wireless_1.PutResourceLogLevelCommand,
99
+ ResetAllResourceLogLevelsCommand: client_iot_wireless_1.ResetAllResourceLogLevelsCommand,
100
+ ResetResourceLogLevelCommand: client_iot_wireless_1.ResetResourceLogLevelCommand,
101
+ SendDataToMulticastGroupCommand: client_iot_wireless_1.SendDataToMulticastGroupCommand,
102
+ SendDataToWirelessDeviceCommand: client_iot_wireless_1.SendDataToWirelessDeviceCommand,
103
+ StartBulkAssociateWirelessDeviceWithMulticastGroupCommand: client_iot_wireless_1.StartBulkAssociateWirelessDeviceWithMulticastGroupCommand,
104
+ StartBulkDisassociateWirelessDeviceFromMulticastGroupCommand: client_iot_wireless_1.StartBulkDisassociateWirelessDeviceFromMulticastGroupCommand,
105
+ StartFuotaTaskCommand: client_iot_wireless_1.StartFuotaTaskCommand,
106
+ StartMulticastGroupSessionCommand: client_iot_wireless_1.StartMulticastGroupSessionCommand,
107
+ StartSingleWirelessDeviceImportTaskCommand: client_iot_wireless_1.StartSingleWirelessDeviceImportTaskCommand,
108
+ StartWirelessDeviceImportTaskCommand: client_iot_wireless_1.StartWirelessDeviceImportTaskCommand,
109
+ TagResourceCommand: client_iot_wireless_1.TagResourceCommand,
110
+ TestWirelessDeviceCommand: client_iot_wireless_1.TestWirelessDeviceCommand,
111
+ UntagResourceCommand: client_iot_wireless_1.UntagResourceCommand,
112
+ UpdateDestinationCommand: client_iot_wireless_1.UpdateDestinationCommand,
113
+ UpdateEventConfigurationByResourceTypesCommand: client_iot_wireless_1.UpdateEventConfigurationByResourceTypesCommand,
114
+ UpdateFuotaTaskCommand: client_iot_wireless_1.UpdateFuotaTaskCommand,
115
+ UpdateLogLevelsByResourceTypesCommand: client_iot_wireless_1.UpdateLogLevelsByResourceTypesCommand,
116
+ UpdateMetricConfigurationCommand: client_iot_wireless_1.UpdateMetricConfigurationCommand,
117
+ UpdateMulticastGroupCommand: client_iot_wireless_1.UpdateMulticastGroupCommand,
118
+ UpdateNetworkAnalyzerConfigurationCommand: client_iot_wireless_1.UpdateNetworkAnalyzerConfigurationCommand,
119
+ UpdatePartnerAccountCommand: client_iot_wireless_1.UpdatePartnerAccountCommand,
120
+ UpdatePositionCommand: client_iot_wireless_1.UpdatePositionCommand,
121
+ UpdateResourceEventConfigurationCommand: client_iot_wireless_1.UpdateResourceEventConfigurationCommand,
122
+ UpdateResourcePositionCommand: client_iot_wireless_1.UpdateResourcePositionCommand,
123
+ UpdateWirelessDeviceCommand: client_iot_wireless_1.UpdateWirelessDeviceCommand,
124
+ UpdateWirelessDeviceImportTaskCommand: client_iot_wireless_1.UpdateWirelessDeviceImportTaskCommand,
125
+ UpdateWirelessGatewayCommand: client_iot_wireless_1.UpdateWirelessGatewayCommand,
126
+ };
127
+ /**
128
+ * @since 1.0.0
129
+ * @category constructors
130
+ */
131
+ exports.makeIoTWirelessService = effect_1.Effect.gen(function* (_) {
132
+ const client = yield* _(IoTWirelessClientInstance_1.IoTWirelessClientInstance);
133
+ return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
134
+ const CommandCtor = commands[command];
135
+ const methodImpl = (args, options) => effect_1.Effect.tryPromise({
136
+ try: (abortSignal) => client.send(new CommandCtor(args), {
137
+ ...(options !== null && options !== void 0 ? options : {}),
138
+ abortSignal,
139
+ }),
140
+ catch: (e) => {
141
+ if (e instanceof client_iot_wireless_1.IoTWirelessServiceException &&
142
+ Errors_1.AllServiceErrors.includes(e.name)) {
143
+ const ServiceException = effect_1.Data.tagged(e.name);
144
+ return ServiceException({
145
+ ...e,
146
+ message: e.message,
147
+ stack: e.stack,
148
+ });
149
+ }
150
+ if (e instanceof Error) {
151
+ return (0, Errors_1.SdkError)({
152
+ ...e,
153
+ name: "SdkError",
154
+ message: e.message,
155
+ stack: e.stack,
156
+ });
157
+ }
158
+ throw e;
159
+ },
160
+ });
161
+ const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
162
+ return { ...acc, [methodName]: methodImpl };
163
+ }, {});
164
+ });
165
+ /**
166
+ * @since 1.0.0
167
+ * @category models
168
+ */
169
+ class IoTWirelessService extends effect_1.Effect.Tag("@effect-aws/client-iot-wireless/IoTWirelessService")() {
170
+ }
171
+ exports.IoTWirelessService = IoTWirelessService;
172
+ _a = IoTWirelessService;
173
+ IoTWirelessService.defaultLayer = effect_1.Layer.effect(_a, exports.makeIoTWirelessService).pipe(effect_1.Layer.provide(IoTWirelessClientInstance_1.IoTWirelessClientInstanceLayer), effect_1.Layer.provide(IoTWirelessClientInstanceConfig_1.DefaultIoTWirelessClientConfigLayer));
174
+ IoTWirelessService.layer = (config) => effect_1.Layer.effect(_a, exports.makeIoTWirelessService).pipe(effect_1.Layer.provide(IoTWirelessClientInstance_1.IoTWirelessClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(IoTWirelessClientInstanceConfig_1.IoTWirelessClientInstanceConfig, IoTWirelessClientInstanceConfig_1.makeDefaultIoTWirelessClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
175
+ IoTWirelessService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeIoTWirelessService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(IoTWirelessClientInstance_1.IoTWirelessClientInstance, effect_1.Effect.map(IoTWirelessClientInstanceConfig_1.makeDefaultIoTWirelessClientInstanceConfig, evaluate))));
176
+ /**
177
+ * @since 1.0.0
178
+ * @category models
179
+ * @alias IoTWirelessService
180
+ */
181
+ exports.IoTWireless = IoTWirelessService;
182
+ /**
183
+ * @since 1.0.0
184
+ * @category layers
185
+ * @deprecated use IoTWireless.baseLayer instead
186
+ */
187
+ exports.BaseIoTWirelessServiceLayer = effect_1.Layer.effect(IoTWirelessService, exports.makeIoTWirelessService);
188
+ /**
189
+ * @since 1.0.0
190
+ * @category layers
191
+ * @deprecated use IoTWireless.layer instead
192
+ */
193
+ exports.IoTWirelessServiceLayer = exports.BaseIoTWirelessServiceLayer.pipe(effect_1.Layer.provide(IoTWirelessClientInstance_1.IoTWirelessClientInstanceLayer));
194
+ /**
195
+ * @since 1.0.0
196
+ * @category layers
197
+ * @deprecated use IoTWireless.defaultLayer instead
198
+ */
199
+ exports.DefaultIoTWirelessServiceLayer = IoTWirelessService.defaultLayer;
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW9UV2lyZWxlc3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0lvVFdpcmVsZXNzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0dBRUc7QUFDSCxzRUFvVnNDO0FBQ3RDLG1DQUFxRDtBQUNyRCxxQ0FXa0I7QUFDbEIsMkVBR3FDO0FBQ3JDLHVGQUkyQztBQWEzQyxNQUFNLFFBQVEsR0FBRztJQUNmLDRDQUE0QyxFQUE1QyxrRUFBNEM7SUFDNUMsMkNBQTJDLEVBQTNDLGlFQUEyQztJQUMzQywyQ0FBMkMsRUFBM0MsaUVBQTJDO0lBQzNDLGdEQUFnRCxFQUFoRCxzRUFBZ0Q7SUFDaEQsdUNBQXVDLEVBQXZDLDZEQUF1QztJQUN2Qyw4Q0FBOEMsRUFBOUMsb0VBQThDO0lBQzlDLHdDQUF3QyxFQUF4Qyw4REFBd0M7SUFDeEMsa0NBQWtDLEVBQWxDLHdEQUFrQztJQUNsQyx3QkFBd0IsRUFBeEIsOENBQXdCO0lBQ3hCLDBCQUEwQixFQUExQixnREFBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLDRDQUFzQjtJQUN0QiwyQkFBMkIsRUFBM0IsaURBQTJCO0lBQzNCLHlDQUF5QyxFQUF6QywrREFBeUM7SUFDekMsMkJBQTJCLEVBQTNCLGlEQUEyQjtJQUMzQiwyQkFBMkIsRUFBM0IsaURBQTJCO0lBQzNCLDRCQUE0QixFQUE1QixrREFBNEI7SUFDNUIsZ0NBQWdDLEVBQWhDLHNEQUFnQztJQUNoQywwQ0FBMEMsRUFBMUMsZ0VBQTBDO0lBQzFDLHdCQUF3QixFQUF4Qiw4Q0FBd0I7SUFDeEIsMEJBQTBCLEVBQTFCLGdEQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsNENBQXNCO0lBQ3RCLDJCQUEyQixFQUEzQixpREFBMkI7SUFDM0IseUNBQXlDLEVBQXpDLCtEQUF5QztJQUN6QywyQkFBMkIsRUFBM0IsaURBQTJCO0lBQzNCLDJCQUEyQixFQUEzQixpREFBMkI7SUFDM0IsMkJBQTJCLEVBQTNCLGlEQUEyQjtJQUMzQixxQ0FBcUMsRUFBckMsMkRBQXFDO0lBQ3JDLDRCQUE0QixFQUE1QixrREFBNEI7SUFDNUIsZ0NBQWdDLEVBQWhDLHNEQUFnQztJQUNoQywwQ0FBMEMsRUFBMUMsZ0VBQTBDO0lBQzFDLCtCQUErQixFQUEvQixxREFBK0I7SUFDL0IsK0NBQStDLEVBQS9DLHFFQUErQztJQUMvQyw4Q0FBOEMsRUFBOUMsb0VBQThDO0lBQzlDLDhDQUE4QyxFQUE5QyxvRUFBOEM7SUFDOUMsbURBQW1ELEVBQW5ELHlFQUFtRDtJQUNuRCwwQ0FBMEMsRUFBMUMsZ0VBQTBDO0lBQzFDLGlEQUFpRCxFQUFqRCx1RUFBaUQ7SUFDakQsMkNBQTJDLEVBQTNDLGlFQUEyQztJQUMzQyxxQkFBcUIsRUFBckIsMkNBQXFCO0lBQ3JCLHVCQUF1QixFQUF2Qiw2Q0FBdUI7SUFDdkIsMkNBQTJDLEVBQTNDLGlFQUEyQztJQUMzQyxtQkFBbUIsRUFBbkIseUNBQW1CO0lBQ25CLGtDQUFrQyxFQUFsQyx3REFBa0M7SUFDbEMsNkJBQTZCLEVBQTdCLG1EQUE2QjtJQUM3QixpQkFBaUIsRUFBakIsdUNBQWlCO0lBQ2pCLHdCQUF3QixFQUF4Qiw4Q0FBd0I7SUFDeEIsK0JBQStCLEVBQS9CLHFEQUErQjtJQUMvQixzQ0FBc0MsRUFBdEMsNERBQXNDO0lBQ3RDLHdCQUF3QixFQUF4Qiw4Q0FBd0I7SUFDeEIsa0JBQWtCLEVBQWxCLHdDQUFrQjtJQUNsQiwrQkFBK0IsRUFBL0IscURBQStCO0lBQy9CLDBCQUEwQixFQUExQixnREFBMEI7SUFDMUIsb0NBQW9DLEVBQXBDLDBEQUFvQztJQUNwQywwQkFBMEIsRUFBMUIsZ0RBQTBCO0lBQzFCLDBCQUEwQixFQUExQixnREFBMEI7SUFDMUIseUJBQXlCLEVBQXpCLCtDQUF5QjtJQUN6Qix3QkFBd0IsRUFBeEIsOENBQXdCO0lBQ3hCLHdCQUF3QixFQUF4Qiw4Q0FBd0I7SUFDeEIsa0NBQWtDLEVBQWxDLHdEQUFrQztJQUNsQyxrQ0FBa0MsRUFBbEMsd0RBQWtDO0lBQ2xDLHlCQUF5QixFQUF6QiwrQ0FBeUI7SUFDekIsb0NBQW9DLEVBQXBDLDBEQUFvQztJQUNwQyw0Q0FBNEMsRUFBNUMsa0VBQTRDO0lBQzVDLG1DQUFtQyxFQUFuQyx5REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLG1EQUE2QjtJQUM3Qix1Q0FBdUMsRUFBdkMsNkRBQXVDO0lBQ3ZDLHVCQUF1QixFQUF2Qiw2Q0FBdUI7SUFDdkIseUJBQXlCLEVBQXpCLCtDQUF5QjtJQUN6Qiw2Q0FBNkMsRUFBN0MsbUVBQTZDO0lBQzdDLDhCQUE4QixFQUE5QixvREFBOEI7SUFDOUIscUJBQXFCLEVBQXJCLDJDQUFxQjtJQUNyQiwwQkFBMEIsRUFBMUIsZ0RBQTBCO0lBQzFCLHFDQUFxQyxFQUFyQywyREFBcUM7SUFDckMsd0NBQXdDLEVBQXhDLDhEQUF3QztJQUN4QywwQkFBMEIsRUFBMUIsZ0RBQTBCO0lBQzFCLGlDQUFpQyxFQUFqQyx1REFBaUM7SUFDakMseUJBQXlCLEVBQXpCLCtDQUF5QjtJQUN6QiwwQkFBMEIsRUFBMUIsZ0RBQTBCO0lBQzFCLDBCQUEwQixFQUExQixnREFBMEI7SUFDMUIsb0NBQW9DLEVBQXBDLDBEQUFvQztJQUNwQywwQkFBMEIsRUFBMUIsZ0RBQTBCO0lBQzFCLHlDQUF5QyxFQUF6QywrREFBeUM7SUFDekMsMkJBQTJCLEVBQTNCLGlEQUEyQjtJQUMzQiwrQkFBK0IsRUFBL0IscURBQStCO0lBQy9CLDBCQUEwQixFQUExQixnREFBMEI7SUFDMUIsZ0NBQWdDLEVBQWhDLHNEQUFnQztJQUNoQyw0QkFBNEIsRUFBNUIsa0RBQTRCO0lBQzVCLCtCQUErQixFQUEvQixxREFBK0I7SUFDL0IsK0JBQStCLEVBQS9CLHFEQUErQjtJQUMvQix5REFBeUQsRUFBekQsK0VBQXlEO0lBQ3pELDREQUE0RCxFQUE1RCxrRkFBNEQ7SUFDNUQscUJBQXFCLEVBQXJCLDJDQUFxQjtJQUNyQixpQ0FBaUMsRUFBakMsdURBQWlDO0lBQ2pDLDBDQUEwQyxFQUExQyxnRUFBMEM7SUFDMUMsb0NBQW9DLEVBQXBDLDBEQUFvQztJQUNwQyxrQkFBa0IsRUFBbEIsd0NBQWtCO0lBQ2xCLHlCQUF5QixFQUF6QiwrQ0FBeUI7SUFDekIsb0JBQW9CLEVBQXBCLDBDQUFvQjtJQUNwQix3QkFBd0IsRUFBeEIsOENBQXdCO0lBQ3hCLDhDQUE4QyxFQUE5QyxvRUFBOEM7SUFDOUMsc0JBQXNCLEVBQXRCLDRDQUFzQjtJQUN0QixxQ0FBcUMsRUFBckMsMkRBQXFDO0lBQ3JDLGdDQUFnQyxFQUFoQyxzREFBZ0M7SUFDaEMsMkJBQTJCLEVBQTNCLGlEQUEyQjtJQUMzQix5Q0FBeUMsRUFBekMsK0RBQXlDO0lBQ3pDLDJCQUEyQixFQUEzQixpREFBMkI7SUFDM0IscUJBQXFCLEVBQXJCLDJDQUFxQjtJQUNyQix1Q0FBdUMsRUFBdkMsNkRBQXVDO0lBQ3ZDLDZCQUE2QixFQUE3QixtREFBNkI7SUFDN0IsMkJBQTJCLEVBQTNCLGlEQUEyQjtJQUMzQixxQ0FBcUMsRUFBckMsMkRBQXFDO0lBQ3JDLDRCQUE0QixFQUE1QixrREFBNEI7Q0FDN0IsQ0FBQztBQXN4REY7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDM0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFEQUF5QixDQUFDLENBQUM7SUFFbkQsT0FBTyxlQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDMUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLE9BQTRCLEVBQUUsRUFBRSxDQUM3RCxlQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLEdBQUcsQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxFQUFFLENBQUM7Z0JBQ2xCLFdBQVc7YUFDWixDQUFDO1lBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFDRSxDQUFDLFlBQVksaURBQTJCO29CQUN4Qyx5QkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNqQyxDQUFDO29CQUNELE1BQU0sZ0JBQWdCLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FFbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUVWLE9BQU8sZ0JBQWdCLENBQUM7d0JBQ3RCLEdBQUcsQ0FBQzt3QkFDSixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxJQUFBLGlCQUFRLEVBQUM7d0JBQ2QsR0FBRyxDQUFDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN0RSxVQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUF3QixDQUFDO0FBQ2hDLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxlQUFNLENBQUMsR0FBRyxDQUNoRCxvREFBb0QsQ0FDckQsRUFBMkM7O0FBRjVDLGdEQWlDQzs7QUE5QmlCLCtCQUFZLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDekMsRUFBSSxFQUNKLDhCQUFzQixDQUN2QixDQUFDLElBQUksQ0FDSixjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLEVBQzdDLGNBQUssQ0FBQyxPQUFPLENBQUMscUVBQW1DLENBQUMsQ0FDbkQsQUFOMkIsQ0FNMUI7QUFDYyx3QkFBSyxHQUFHLENBQUMsTUFBK0IsRUFBRSxFQUFFLENBQzFELGNBQUssQ0FBQyxNQUFNLENBQUMsRUFBSSxFQUFFLDhCQUFzQixDQUFDLENBQUMsSUFBSSxDQUM3QyxjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLEVBQzdDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVixpRUFBK0IsRUFDL0IsNEVBQTBDLENBQUMsSUFBSSxDQUM3QyxlQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksNEJBQVMsR0FBRyxDQUMxQixRQUF1RSxFQUN2RSxFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsOEJBQXNCLENBQUMsQ0FBQyxJQUFJLENBQzdDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVixxREFBeUIsRUFDekIsZUFBTSxDQUFDLEdBQUcsQ0FBQyw0RUFBMEMsRUFBRSxRQUFRLENBQUMsQ0FDakUsQ0FDRixDQUNGLEFBVnNCLENBVXJCO0FBR047Ozs7R0FJRztBQUNVLFFBQUEsV0FBVyxHQUFHLGtCQUFrQixDQUFDO0FBRTlDOzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3JELGtCQUFrQixFQUNsQiw4QkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLG1DQUEyQixDQUFDLElBQUksQ0FDckUsY0FBSyxDQUFDLE9BQU8sQ0FBQywwREFBOEIsQ0FBQyxDQUM5QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsOEJBQThCLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgSW9UV2lyZWxlc3NTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIElvVFdpcmVsZXNzQ2xpZW50LFxuICB0eXBlIElvVFdpcmVsZXNzQ2xpZW50Q29uZmlnLFxuICBBc3NvY2lhdGVBd3NBY2NvdW50V2l0aFBhcnRuZXJBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVBd3NBY2NvdW50V2l0aFBhcnRuZXJBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZUF3c0FjY291bnRXaXRoUGFydG5lckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVNdWx0aWNhc3RHcm91cFdpdGhGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZU11bHRpY2FzdEdyb3VwV2l0aEZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVNdWx0aWNhc3RHcm91cFdpdGhGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aEZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhUaGluZ0NvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoVGhpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoVGhpbmdDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheVdpdGhDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoVGhpbmdDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheVdpdGhUaGluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoVGhpbmdDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kLFxuICB0eXBlIENhbmNlbE11bHRpY2FzdEdyb3VwU2Vzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEZXZpY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEZXZpY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURldmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIENyZWF0ZUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVXaXJlbGVzc0RldmljZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kLFxuICB0eXBlIENyZWF0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEZXZpY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZXZpY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURldmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIERlbGV0ZUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBEZWxldGVNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVRdWV1ZWRNZXNzYWdlc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUXVldWVkTWVzc2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUXVldWVkTWVzc2FnZXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVXaXJlbGVzc0RldmljZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIERlbGV0ZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBEZWxldGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kLFxuICB0eXBlIERlbGV0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kT3V0cHV0LFxuICBEZWxldGVXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyV2lyZWxlc3NEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVBd3NBY2NvdW50RnJvbVBhcnRuZXJBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVBd3NBY2NvdW50RnJvbVBhcnRuZXJBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUF3c0FjY291bnRGcm9tUGFydG5lckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVNdWx0aWNhc3RHcm91cEZyb21GdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZU11bHRpY2FzdEdyb3VwRnJvbUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVNdWx0aWNhc3RHcm91cEZyb21GdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21GdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21GdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21NdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21UaGluZ0NvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tVGhpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tVGhpbmdDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheUZyb21DZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tVGhpbmdDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheUZyb21UaGluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tVGhpbmdDb21tYW5kT3V0cHV0LFxuICBHZXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXREZXZpY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBHZXREZXZpY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERldmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBHZXRFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICB0eXBlIEdldEV2ZW50Q29uZmlndXJhdGlvbkJ5UmVzb3VyY2VUeXBlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICBHZXRGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIEdldEZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBHZXRMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICB0eXBlIEdldExvZ0xldmVsc0J5UmVzb3VyY2VUeXBlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICBHZXRNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1ldHJpY0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRNZXRyaWNzQ29tbWFuZCxcbiAgdHlwZSBHZXRNZXRyaWNzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1ldHJpY3NDb21tYW5kT3V0cHV0LFxuICBHZXRNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgR2V0TXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBHZXRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kLFxuICB0eXBlIEdldE11bHRpY2FzdEdyb3VwU2Vzc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kT3V0cHV0LFxuICBHZXROZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXROZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRQYXJ0bmVyQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgR2V0UGFydG5lckFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UGFydG5lckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBHZXRQb3NpdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0UG9zaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9zaXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIEdldFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRQb3NpdGlvbkVzdGltYXRlQ29tbWFuZCxcbiAgdHlwZSBHZXRQb3NpdGlvbkVzdGltYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvc2l0aW9uRXN0aW1hdGVDb21tYW5kT3V0cHV0LFxuICBHZXRSZXNvdXJjZUV2ZW50Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0UmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZCxcbiAgdHlwZSBHZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJlc291cmNlTG9nTGV2ZWxDb21tYW5kT3V0cHV0LFxuICBHZXRSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJlc291cmNlUG9zaXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2aWNlRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBHZXRTZXJ2aWNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0U2VydmljZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0RldmljZUNvbW1hbmQsXG4gIHR5cGUgR2V0V2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0V2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIEdldFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0RldmljZVN0YXRpc3RpY3NDb21tYW5kLFxuICB0eXBlIEdldFdpcmVsZXNzRGV2aWNlU3RhdGlzdGljc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRXaXJlbGVzc0RldmljZVN0YXRpc3RpY3NDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlDb21tYW5kLFxuICB0eXBlIEdldFdpcmVsZXNzR2F0ZXdheUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRXaXJlbGVzc0dhdGV3YXlDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgR2V0V2lyZWxlc3NHYXRld2F5Q2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0V2lyZWxlc3NHYXRld2F5Q2VydGlmaWNhdGVDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlGaXJtd2FyZUluZm9ybWF0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRXaXJlbGVzc0dhdGV3YXlGaXJtd2FyZUluZm9ybWF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFdpcmVsZXNzR2F0ZXdheUZpcm13YXJlSW5mb3JtYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlTdGF0aXN0aWNzQ29tbWFuZCxcbiAgdHlwZSBHZXRXaXJlbGVzc0dhdGV3YXlTdGF0aXN0aWNzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFdpcmVsZXNzR2F0ZXdheVN0YXRpc3RpY3NDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZCxcbiAgdHlwZSBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kT3V0cHV0LFxuICBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0V2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0V2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0RGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0RGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGV2aWNlUHJvZmlsZXNDb21tYW5kLFxuICB0eXBlIExpc3REZXZpY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGV2aWNlUHJvZmlsZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGV2aWNlc0ZvcldpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgTGlzdERldmljZXNGb3JXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERldmljZXNGb3JXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBMaXN0RXZlbnRDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEV2ZW50Q29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEV2ZW50Q29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVvdGFUYXNrc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEZ1b3RhVGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEZ1b3RhVGFza3NDb21tYW5kT3V0cHV0LFxuICBMaXN0TXVsdGljYXN0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TXVsdGljYXN0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNdWx0aWNhc3RHcm91cHNDb21tYW5kT3V0cHV0LFxuICBMaXN0TXVsdGljYXN0R3JvdXBzQnlGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIExpc3RNdWx0aWNhc3RHcm91cHNCeUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TXVsdGljYXN0R3JvdXBzQnlGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBMaXN0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3ROZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFydG5lckFjY291bnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UGFydG5lckFjY291bnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQYXJ0bmVyQWNjb3VudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9zaXRpb25Db25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvc2l0aW9uQ29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvc2l0aW9uQ29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0UXVldWVkTWVzc2FnZXNDb21tYW5kLFxuICB0eXBlIExpc3RRdWV1ZWRNZXNzYWdlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UXVldWVkTWVzc2FnZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0U2VydmljZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2VydmljZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2aWNlUHJvZmlsZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0V2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICBMaXN0V2lyZWxlc3NEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0V2lyZWxlc3NEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RXaXJlbGVzc0RldmljZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0V2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0V2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0V2lyZWxlc3NHYXRld2F5c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFdpcmVsZXNzR2F0ZXdheXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFdpcmVsZXNzR2F0ZXdheXNDb21tYW5kT3V0cHV0LFxuICBQdXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlc291cmNlTG9nTGV2ZWxDb21tYW5kT3V0cHV0LFxuICBSZXNldEFsbFJlc291cmNlTG9nTGV2ZWxzQ29tbWFuZCxcbiAgdHlwZSBSZXNldEFsbFJlc291cmNlTG9nTGV2ZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0QWxsUmVzb3VyY2VMb2dMZXZlbHNDb21tYW5kT3V0cHV0LFxuICBSZXNldFJlc291cmNlTG9nTGV2ZWxDb21tYW5kLFxuICB0eXBlIFJlc2V0UmVzb3VyY2VMb2dMZXZlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldFJlc291cmNlTG9nTGV2ZWxDb21tYW5kT3V0cHV0LFxuICBTZW5kRGF0YVRvTXVsdGljYXN0R3JvdXBDb21tYW5kLFxuICB0eXBlIFNlbmREYXRhVG9NdWx0aWNhc3RHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kRGF0YVRvTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBTZW5kRGF0YVRvV2lyZWxlc3NEZXZpY2VDb21tYW5kLFxuICB0eXBlIFNlbmREYXRhVG9XaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kRGF0YVRvV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydEJ1bGtBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgU3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBTdGFydEJ1bGtEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21NdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgU3RhcnRCdWxrRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRCdWxrRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBTdGFydEZ1b3RhVGFza0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRGdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBTdGFydE11bHRpY2FzdEdyb3VwU2Vzc2lvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kT3V0cHV0LFxuICBTdGFydFNpbmdsZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRTaW5nbGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTaW5nbGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBTdGFydFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBUZXN0V2lyZWxlc3NEZXZpY2VDb21tYW5kLFxuICB0eXBlIFRlc3RXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0V2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUV2ZW50Q29uZmlndXJhdGlvbkJ5UmVzb3VyY2VUeXBlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW90YVRhc2tDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUxvZ0xldmVsc0J5UmVzb3VyY2VUeXBlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU1ldHJpY0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYXJ0bmVyQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUGFydG5lckFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUGFydG5lckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQb3NpdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUG9zaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUG9zaXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVSZXNvdXJjZUV2ZW50Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVJlc291cmNlUG9zaXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVXaXJlbGVzc0RldmljZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWlvdC13aXJlbGVzc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZSxcbiAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9Jb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9Jb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQXNzb2NpYXRlQXdzQWNjb3VudFdpdGhQYXJ0bmVyQWNjb3VudENvbW1hbmQsXG4gIEFzc29jaWF0ZU11bHRpY2FzdEdyb3VwV2l0aEZ1b3RhVGFza0NvbW1hbmQsXG4gIEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aEZ1b3RhVGFza0NvbW1hbmQsXG4gIEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aE11bHRpY2FzdEdyb3VwQ29tbWFuZCxcbiAgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoVGhpbmdDb21tYW5kLFxuICBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoQ2VydGlmaWNhdGVDb21tYW5kLFxuICBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoVGhpbmdDb21tYW5kLFxuICBDYW5jZWxNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kLFxuICBDcmVhdGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIENyZWF0ZURldmljZVByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVGdW90YVRhc2tDb21tYW5kLFxuICBDcmVhdGVNdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIENyZWF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBDcmVhdGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmQsXG4gIENyZWF0ZVdpcmVsZXNzRGV2aWNlQ29tbWFuZCxcbiAgQ3JlYXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZCxcbiAgQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmQsXG4gIENyZWF0ZVdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVEZXZpY2VQcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlRnVvdGFUYXNrQ29tbWFuZCxcbiAgRGVsZXRlTXVsdGljYXN0R3JvdXBDb21tYW5kLFxuICBEZWxldGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUXVldWVkTWVzc2FnZXNDb21tYW5kLFxuICBEZWxldGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZVdpcmVsZXNzRGV2aWNlQ29tbWFuZCxcbiAgRGVsZXRlV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZCxcbiAgRGVsZXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZCxcbiAgRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmQsXG4gIERlbGV0ZVdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9uQ29tbWFuZCxcbiAgRGVyZWdpc3RlcldpcmVsZXNzRGV2aWNlQ29tbWFuZCxcbiAgRGlzYXNzb2NpYXRlQXdzQWNjb3VudEZyb21QYXJ0bmVyQWNjb3VudENvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZU11bHRpY2FzdEdyb3VwRnJvbUZ1b3RhVGFza0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbUZ1b3RhVGFza0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbU11bHRpY2FzdEdyb3VwQ29tbWFuZCxcbiAgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tVGhpbmdDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tQ2VydGlmaWNhdGVDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tVGhpbmdDb21tYW5kLFxuICBHZXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIEdldERldmljZVByb2ZpbGVDb21tYW5kLFxuICBHZXRFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICBHZXRGdW90YVRhc2tDb21tYW5kLFxuICBHZXRMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICBHZXRNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0TWV0cmljc0NvbW1hbmQsXG4gIEdldE11bHRpY2FzdEdyb3VwQ29tbWFuZCxcbiAgR2V0TXVsdGljYXN0R3JvdXBTZXNzaW9uQ29tbWFuZCxcbiAgR2V0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldFBhcnRuZXJBY2NvdW50Q29tbWFuZCxcbiAgR2V0UG9zaXRpb25Db21tYW5kLFxuICBHZXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRQb3NpdGlvbkVzdGltYXRlQ29tbWFuZCxcbiAgR2V0UmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZCxcbiAgR2V0UmVzb3VyY2VQb3NpdGlvbkNvbW1hbmQsXG4gIEdldFNlcnZpY2VFbmRwb2ludENvbW1hbmQsXG4gIEdldFNlcnZpY2VQcm9maWxlQ29tbWFuZCxcbiAgR2V0V2lyZWxlc3NEZXZpY2VDb21tYW5kLFxuICBHZXRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kLFxuICBHZXRXaXJlbGVzc0RldmljZVN0YXRpc3RpY3NDb21tYW5kLFxuICBHZXRXaXJlbGVzc0dhdGV3YXlDb21tYW5kLFxuICBHZXRXaXJlbGVzc0dhdGV3YXlDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIEdldFdpcmVsZXNzR2F0ZXdheUZpcm13YXJlSW5mb3JtYXRpb25Db21tYW5kLFxuICBHZXRXaXJlbGVzc0dhdGV3YXlTdGF0aXN0aWNzQ29tbWFuZCxcbiAgR2V0V2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmQsXG4gIEdldFdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9uQ29tbWFuZCxcbiAgTGlzdERlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIExpc3REZXZpY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3REZXZpY2VzRm9yV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZCxcbiAgTGlzdEV2ZW50Q29uZmlndXJhdGlvbnNDb21tYW5kLFxuICBMaXN0RnVvdGFUYXNrc0NvbW1hbmQsXG4gIExpc3RNdWx0aWNhc3RHcm91cHNDb21tYW5kLFxuICBMaXN0TXVsdGljYXN0R3JvdXBzQnlGdW90YVRhc2tDb21tYW5kLFxuICBMaXN0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICBMaXN0UGFydG5lckFjY291bnRzQ29tbWFuZCxcbiAgTGlzdFBvc2l0aW9uQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICBMaXN0UXVldWVkTWVzc2FnZXNDb21tYW5kLFxuICBMaXN0U2VydmljZVByb2ZpbGVzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIExpc3RXaXJlbGVzc0RldmljZUltcG9ydFRhc2tzQ29tbWFuZCxcbiAgTGlzdFdpcmVsZXNzRGV2aWNlc0NvbW1hbmQsXG4gIExpc3RXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbnNDb21tYW5kLFxuICBMaXN0V2lyZWxlc3NHYXRld2F5c0NvbW1hbmQsXG4gIFB1dFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFB1dFJlc291cmNlTG9nTGV2ZWxDb21tYW5kLFxuICBSZXNldEFsbFJlc291cmNlTG9nTGV2ZWxzQ29tbWFuZCxcbiAgUmVzZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZCxcbiAgU2VuZERhdGFUb011bHRpY2FzdEdyb3VwQ29tbWFuZCxcbiAgU2VuZERhdGFUb1dpcmVsZXNzRGV2aWNlQ29tbWFuZCxcbiAgU3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kLFxuICBTdGFydEJ1bGtEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21NdWx0aWNhc3RHcm91cENvbW1hbmQsXG4gIFN0YXJ0RnVvdGFUYXNrQ29tbWFuZCxcbiAgU3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kLFxuICBTdGFydFNpbmdsZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmQsXG4gIFN0YXJ0V2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0V2lyZWxlc3NEZXZpY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlRGVzdGluYXRpb25Db21tYW5kLFxuICBVcGRhdGVFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICBVcGRhdGVGdW90YVRhc2tDb21tYW5kLFxuICBVcGRhdGVMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kLFxuICBVcGRhdGVNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kLFxuICBVcGRhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUGFydG5lckFjY291bnRDb21tYW5kLFxuICBVcGRhdGVQb3NpdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVJlc291cmNlRXZlbnRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUmVzb3VyY2VQb3NpdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVdpcmVsZXNzRGV2aWNlQ29tbWFuZCxcbiAgVXBkYXRlV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZCxcbiAgVXBkYXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBJb1RXaXJlbGVzc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlQXdzQWNjb3VudFdpdGhQYXJ0bmVyQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVBd3NBY2NvdW50V2l0aFBhcnRuZXJBY2NvdW50KFxuICAgIGFyZ3M6IEFzc29jaWF0ZUF3c0FjY291bnRXaXRoUGFydG5lckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVBd3NBY2NvdW50V2l0aFBhcnRuZXJBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVNdWx0aWNhc3RHcm91cFdpdGhGdW90YVRhc2tDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlTXVsdGljYXN0R3JvdXBXaXRoRnVvdGFUYXNrKFxuICAgIGFyZ3M6IEFzc29jaWF0ZU11bHRpY2FzdEdyb3VwV2l0aEZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZU11bHRpY2FzdEdyb3VwV2l0aEZ1b3RhVGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoRnVvdGFUYXNrQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aEZ1b3RhVGFzayhcbiAgICBhcmdzOiBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhGdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aE11bHRpY2FzdEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aE11bHRpY2FzdEdyb3VwKFxuICAgIGFyZ3M6IEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aE11bHRpY2FzdEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aFRoaW5nQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aFRoaW5nKFxuICAgIGFyZ3M6IEFzc29jaWF0ZVdpcmVsZXNzRGV2aWNlV2l0aFRoaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoVGhpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheVdpdGhDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoQ2VydGlmaWNhdGUoXG4gICAgYXJnczogQXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5V2l0aENlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5V2l0aENlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlXaXRoVGhpbmdDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5V2l0aFRoaW5nKFxuICAgIGFyZ3M6IEFzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheVdpdGhUaGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheVdpdGhUaGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsTXVsdGljYXN0R3JvdXBTZXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbE11bHRpY2FzdEdyb3VwU2Vzc2lvbihcbiAgICBhcmdzOiBDYW5jZWxNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURldmljZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRGV2aWNlUHJvZmlsZShcbiAgICBhcmdzOiBDcmVhdGVEZXZpY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRGV2aWNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1b3RhVGFza0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVGdW90YVRhc2soXG4gICAgYXJnczogQ3JlYXRlRnVvdGFUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRnVvdGFUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNdWx0aWNhc3RHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNdWx0aWNhc3RHcm91cChcbiAgICBhcmdzOiBDcmVhdGVNdWx0aWNhc3RHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU11bHRpY2FzdEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogQ3JlYXRlTmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZpY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVNlcnZpY2VQcm9maWxlKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZpY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmljZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVXaXJlbGVzc0RldmljZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVXaXJlbGVzc0RldmljZShcbiAgICBhcmdzOiBDcmVhdGVXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVdpcmVsZXNzRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlV2lyZWxlc3NHYXRld2F5KFxuICAgIGFyZ3M6IENyZWF0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlV2lyZWxlc3NHYXRld2F5VGFzayhcbiAgICBhcmdzOiBDcmVhdGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb24oXG4gICAgYXJnczogQ3JlYXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVzdGluYXRpb24oXG4gICAgYXJnczogRGVsZXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGV2aWNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZXZpY2VQcm9maWxlKFxuICAgIGFyZ3M6IERlbGV0ZURldmljZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZXZpY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW90YVRhc2tDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVvdGFUYXNrKFxuICAgIGFyZ3M6IERlbGV0ZUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUZ1b3RhVGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTXVsdGljYXN0R3JvdXAoXG4gICAgYXJnczogRGVsZXRlTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVRdWV1ZWRNZXNzYWdlc0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVRdWV1ZWRNZXNzYWdlcyhcbiAgICBhcmdzOiBEZWxldGVRdWV1ZWRNZXNzYWdlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVF1ZXVlZE1lc3NhZ2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTZXJ2aWNlUHJvZmlsZShcbiAgICBhcmdzOiBEZWxldGVTZXJ2aWNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNlcnZpY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVXaXJlbGVzc0RldmljZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVXaXJlbGVzc0RldmljZShcbiAgICBhcmdzOiBEZWxldGVXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVdpcmVsZXNzRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrKFxuICAgIGFyZ3M6IERlbGV0ZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVdpcmVsZXNzR2F0ZXdheShcbiAgICBhcmdzOiBEZWxldGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVXaXJlbGVzc0dhdGV3YXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlV2lyZWxlc3NHYXRld2F5VGFzayhcbiAgICBhcmdzOiBEZWxldGVXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb24oXG4gICAgYXJnczogRGVsZXRlV2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVyZWdpc3RlcldpcmVsZXNzRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIGRlcmVnaXN0ZXJXaXJlbGVzc0RldmljZShcbiAgICBhcmdzOiBEZXJlZ2lzdGVyV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXJlZ2lzdGVyV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlQXdzQWNjb3VudEZyb21QYXJ0bmVyQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVBd3NBY2NvdW50RnJvbVBhcnRuZXJBY2NvdW50KFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZUF3c0FjY291bnRGcm9tUGFydG5lckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVBd3NBY2NvdW50RnJvbVBhcnRuZXJBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZU11bHRpY2FzdEdyb3VwRnJvbUZ1b3RhVGFza0NvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVNdWx0aWNhc3RHcm91cEZyb21GdW90YVRhc2soXG4gICAgYXJnczogRGlzYXNzb2NpYXRlTXVsdGljYXN0R3JvdXBGcm9tRnVvdGFUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlTXVsdGljYXN0R3JvdXBGcm9tRnVvdGFUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tRnVvdGFUYXNrQ29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbUZ1b3RhVGFzayhcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21GdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21GdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbU11bHRpY2FzdEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbU11bHRpY2FzdEdyb3VwKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbU11bHRpY2FzdEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbVRoaW5nQ29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbVRoaW5nKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZVdpcmVsZXNzRGV2aWNlRnJvbVRoaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tVGhpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheUZyb21DZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tQ2VydGlmaWNhdGUoXG4gICAgYXJnczogRGlzYXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5RnJvbUNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5RnJvbUNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhc3NvY2lhdGVXaXJlbGVzc0dhdGV3YXlGcm9tVGhpbmdDb21tYW5kfVxuICAgKi9cbiAgZGlzYXNzb2NpYXRlV2lyZWxlc3NHYXRld2F5RnJvbVRoaW5nKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheUZyb21UaGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2Fzc29jaWF0ZVdpcmVsZXNzR2F0ZXdheUZyb21UaGluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RGVzdGluYXRpb24oXG4gICAgYXJnczogR2V0RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGV2aWNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBnZXREZXZpY2VQcm9maWxlKFxuICAgIGFyZ3M6IEdldERldmljZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZXZpY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXZlbnRDb25maWd1cmF0aW9uQnlSZXNvdXJjZVR5cGVzKFxuICAgIGFyZ3M6IEdldEV2ZW50Q29uZmlndXJhdGlvbkJ5UmVzb3VyY2VUeXBlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV2ZW50Q29uZmlndXJhdGlvbkJ5UmVzb3VyY2VUeXBlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBBY2Nlc3NEZW5pZWRFcnJvciB8IEludGVybmFsU2VydmVyRXJyb3IgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVvdGFUYXNrQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1b3RhVGFzayhcbiAgICBhcmdzOiBHZXRGdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0xldmVsc0J5UmVzb3VyY2VUeXBlc0NvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dMZXZlbHNCeVJlc291cmNlVHlwZXMoXG4gICAgYXJnczogR2V0TG9nTGV2ZWxzQnlSZXNvdXJjZVR5cGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nTGV2ZWxzQnlSZXNvdXJjZVR5cGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldE1ldHJpY0NvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogR2V0TWV0cmljQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1ldHJpY0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1ldHJpY3NDb21tYW5kfVxuICAgKi9cbiAgZ2V0TWV0cmljcyhcbiAgICBhcmdzOiBHZXRNZXRyaWNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TWV0cmljc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZ2V0TXVsdGljYXN0R3JvdXAoXG4gICAgYXJnczogR2V0TXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TXVsdGljYXN0R3JvdXBTZXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGdldE11bHRpY2FzdEdyb3VwU2Vzc2lvbihcbiAgICBhcmdzOiBHZXRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXROZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UGFydG5lckFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgZ2V0UGFydG5lckFjY291bnQoXG4gICAgYXJnczogR2V0UGFydG5lckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQYXJ0bmVyQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb3NpdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRQb3NpdGlvbihcbiAgICBhcmdzOiBHZXRQb3NpdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBvc2l0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0UG9zaXRpb25Db25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9zaXRpb25Fc3RpbWF0ZUNvbW1hbmR9XG4gICAqL1xuICBnZXRQb3NpdGlvbkVzdGltYXRlKFxuICAgIGFyZ3M6IEdldFBvc2l0aW9uRXN0aW1hdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQb3NpdGlvbkVzdGltYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSZXNvdXJjZUV2ZW50Q29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRSZXNvdXJjZUV2ZW50Q29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXRSZXNvdXJjZUV2ZW50Q29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJlc291cmNlRXZlbnRDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZH1cbiAgICovXG4gIGdldFJlc291cmNlTG9nTGV2ZWwoXG4gICAgYXJnczogR2V0UmVzb3VyY2VMb2dMZXZlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJlc291cmNlTG9nTGV2ZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJlc291cmNlUG9zaXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0UmVzb3VyY2VQb3NpdGlvbihcbiAgICBhcmdzOiBHZXRSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UmVzb3VyY2VQb3NpdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGdldFNlcnZpY2VFbmRwb2ludChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTZXJ2aWNlRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICBnZXRTZXJ2aWNlUHJvZmlsZShcbiAgICBhcmdzOiBHZXRTZXJ2aWNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNlcnZpY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRXaXJlbGVzc0RldmljZUNvbW1hbmR9XG4gICAqL1xuICBnZXRXaXJlbGVzc0RldmljZShcbiAgICBhcmdzOiBHZXRXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFdpcmVsZXNzRGV2aWNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgZ2V0V2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrKFxuICAgIGFyZ3M6IEdldFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0V2lyZWxlc3NEZXZpY2VTdGF0aXN0aWNzQ29tbWFuZH1cbiAgICovXG4gIGdldFdpcmVsZXNzRGV2aWNlU3RhdGlzdGljcyhcbiAgICBhcmdzOiBHZXRXaXJlbGVzc0RldmljZVN0YXRpc3RpY3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRXaXJlbGVzc0RldmljZVN0YXRpc3RpY3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFdpcmVsZXNzR2F0ZXdheUNvbW1hbmR9XG4gICAqL1xuICBnZXRXaXJlbGVzc0dhdGV3YXkoXG4gICAgYXJnczogR2V0V2lyZWxlc3NHYXRld2F5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0V2lyZWxlc3NHYXRld2F5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRXaXJlbGVzc0dhdGV3YXlDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICBnZXRXaXJlbGVzc0dhdGV3YXlDZXJ0aWZpY2F0ZShcbiAgICBhcmdzOiBHZXRXaXJlbGVzc0dhdGV3YXlDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFdpcmVsZXNzR2F0ZXdheUNlcnRpZmljYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRXaXJlbGVzc0dhdGV3YXlGaXJtd2FyZUluZm9ybWF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldFdpcmVsZXNzR2F0ZXdheUZpcm13YXJlSW5mb3JtYXRpb24oXG4gICAgYXJnczogR2V0V2lyZWxlc3NHYXRld2F5RmlybXdhcmVJbmZvcm1hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFdpcmVsZXNzR2F0ZXdheUZpcm13YXJlSW5mb3JtYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFdpcmVsZXNzR2F0ZXdheVN0YXRpc3RpY3NDb21tYW5kfVxuICAgKi9cbiAgZ2V0V2lyZWxlc3NHYXRld2F5U3RhdGlzdGljcyhcbiAgICBhcmdzOiBHZXRXaXJlbGVzc0dhdGV3YXlTdGF0aXN0aWNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0V2lyZWxlc3NHYXRld2F5U3RhdGlzdGljc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0V2lyZWxlc3NHYXRld2F5VGFza0NvbW1hbmR9XG4gICAqL1xuICBnZXRXaXJlbGVzc0dhdGV3YXlUYXNrKFxuICAgIGFyZ3M6IEdldFdpcmVsZXNzR2F0ZXdheVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbihcbiAgICBhcmdzOiBHZXRXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3REZXN0aW5hdGlvbnMoXG4gICAgYXJnczogTGlzdERlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGV2aWNlUHJvZmlsZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERldmljZVByb2ZpbGVzKFxuICAgIGFyZ3M6IExpc3REZXZpY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REZXZpY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REZXZpY2VzRm9yV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIGxpc3REZXZpY2VzRm9yV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrKFxuICAgIGFyZ3M6IExpc3REZXZpY2VzRm9yV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERldmljZXNGb3JXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFdmVudENvbmZpZ3VyYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RFdmVudENvbmZpZ3VyYXRpb25zKFxuICAgIGFyZ3M6IExpc3RFdmVudENvbmZpZ3VyYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV2ZW50Q29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVvdGFUYXNrc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVvdGFUYXNrcyhcbiAgICBhcmdzOiBMaXN0RnVvdGFUYXNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RGdW90YVRhc2tzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE11bHRpY2FzdEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TXVsdGljYXN0R3JvdXBzKFxuICAgIGFyZ3M6IExpc3RNdWx0aWNhc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TXVsdGljYXN0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE11bHRpY2FzdEdyb3Vwc0J5RnVvdGFUYXNrQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNdWx0aWNhc3RHcm91cHNCeUZ1b3RhVGFzayhcbiAgICBhcmdzOiBMaXN0TXVsdGljYXN0R3JvdXBzQnlGdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TXVsdGljYXN0R3JvdXBzQnlGdW90YVRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3ROZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbnMoXG4gICAgYXJnczogTGlzdE5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhcnRuZXJBY2NvdW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UGFydG5lckFjY291bnRzKFxuICAgIGFyZ3M6IExpc3RQYXJ0bmVyQWNjb3VudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UGFydG5lckFjY291bnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb3NpdGlvbkNvbmZpZ3VyYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQb3NpdGlvbkNvbmZpZ3VyYXRpb25zKFxuICAgIGFyZ3M6IExpc3RQb3NpdGlvbkNvbmZpZ3VyYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvc2l0aW9uQ29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UXVldWVkTWVzc2FnZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFF1ZXVlZE1lc3NhZ2VzKFxuICAgIGFyZ3M6IExpc3RRdWV1ZWRNZXNzYWdlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RRdWV1ZWRNZXNzYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZpY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U2VydmljZVByb2ZpbGVzKFxuICAgIGFyZ3M6IExpc3RTZXJ2aWNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U2VydmljZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RXaXJlbGVzc0RldmljZUltcG9ydFRhc2tzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RXaXJlbGVzc0RldmljZUltcG9ydFRhc2tzKFxuICAgIGFyZ3M6IExpc3RXaXJlbGVzc0RldmljZUltcG9ydFRhc2tzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RXaXJlbGVzc0RldmljZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFdpcmVsZXNzRGV2aWNlcyhcbiAgICBhcmdzOiBMaXN0V2lyZWxlc3NEZXZpY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFdpcmVsZXNzRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RXaXJlbGVzc0dhdGV3YXlUYXNrRGVmaW5pdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9ucyhcbiAgICBhcmdzOiBMaXN0V2lyZWxlc3NHYXRld2F5VGFza0RlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFdpcmVsZXNzR2F0ZXdheVRhc2tEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RXaXJlbGVzc0dhdGV3YXlzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RXaXJlbGVzc0dhdGV3YXlzKFxuICAgIGFyZ3M6IExpc3RXaXJlbGVzc0dhdGV3YXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFdpcmVsZXNzR2F0ZXdheXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRQb3NpdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0UG9zaXRpb25Db25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFB1dFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFBvc2l0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VMb2dMZXZlbENvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZUxvZ0xldmVsKFxuICAgIGFyZ3M6IFB1dFJlc291cmNlTG9nTGV2ZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldEFsbFJlc291cmNlTG9nTGV2ZWxzQ29tbWFuZH1cbiAgICovXG4gIHJlc2V0QWxsUmVzb3VyY2VMb2dMZXZlbHMoXG4gICAgYXJnczogUmVzZXRBbGxSZXNvdXJjZUxvZ0xldmVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc2V0QWxsUmVzb3VyY2VMb2dMZXZlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc2V0UmVzb3VyY2VMb2dMZXZlbENvbW1hbmR9XG4gICAqL1xuICByZXNldFJlc291cmNlTG9nTGV2ZWwoXG4gICAgYXJnczogUmVzZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXRSZXNvdXJjZUxvZ0xldmVsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kRGF0YVRvTXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgc2VuZERhdGFUb011bHRpY2FzdEdyb3VwKFxuICAgIGFyZ3M6IFNlbmREYXRhVG9NdWx0aWNhc3RHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmREYXRhVG9NdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2VuZERhdGFUb1dpcmVsZXNzRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHNlbmREYXRhVG9XaXJlbGVzc0RldmljZShcbiAgICBhcmdzOiBTZW5kRGF0YVRvV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZW5kRGF0YVRvV2lyZWxlc3NEZXZpY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXAoXG4gICAgYXJnczogU3RhcnRCdWxrQXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VXaXRoTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEJ1bGtBc3NvY2lhdGVXaXJlbGVzc0RldmljZVdpdGhNdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRCdWxrRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRCdWxrRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXAoXG4gICAgYXJnczogU3RhcnRCdWxrRGlzYXNzb2NpYXRlV2lyZWxlc3NEZXZpY2VGcm9tTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEJ1bGtEaXNhc3NvY2lhdGVXaXJlbGVzc0RldmljZUZyb21NdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRGdW90YVRhc2tDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRGdW90YVRhc2soXG4gICAgYXJnczogU3RhcnRGdW90YVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEZ1b3RhVGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb24oXG4gICAgYXJnczogU3RhcnRNdWx0aWNhc3RHcm91cFNlc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydE11bHRpY2FzdEdyb3VwU2Vzc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTaW5nbGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRTaW5nbGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2soXG4gICAgYXJnczogU3RhcnRTaW5nbGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFNpbmdsZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRXaXJlbGVzc0RldmljZUltcG9ydFRhc2soXG4gICAgYXJnczogU3RhcnRXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFdpcmVsZXNzRGV2aWNlSW1wb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0V2lyZWxlc3NEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgdGVzdFdpcmVsZXNzRGV2aWNlKFxuICAgIGFyZ3M6IFRlc3RXaXJlbGVzc0RldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RXaXJlbGVzc0RldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGVzdGluYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGVzdGluYXRpb24oXG4gICAgYXJnczogVXBkYXRlRGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRXZlbnRDb25maWd1cmF0aW9uQnlSZXNvdXJjZVR5cGVzQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUV2ZW50Q29uZmlndXJhdGlvbkJ5UmVzb3VyY2VUeXBlcyhcbiAgICBhcmdzOiBVcGRhdGVFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVFdmVudENvbmZpZ3VyYXRpb25CeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW90YVRhc2tDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVvdGFUYXNrKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1b3RhVGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUZ1b3RhVGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTG9nTGV2ZWxzQnlSZXNvdXJjZVR5cGVzQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUxvZ0xldmVsc0J5UmVzb3VyY2VUeXBlcyhcbiAgICBhcmdzOiBVcGRhdGVMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVMb2dMZXZlbHNCeVJlc291cmNlVHlwZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU1ldHJpY0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTWV0cmljQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVNZXRyaWNDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTWV0cmljQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTXVsdGljYXN0R3JvdXAoXG4gICAgYXJnczogVXBkYXRlTXVsdGljYXN0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVNdWx0aWNhc3RHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTmV0d29ya0FuYWx5emVyQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZU5ldHdvcmtBbmFseXplckNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVOZXR3b3JrQW5hbHl6ZXJDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQYXJ0bmVyQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQYXJ0bmVyQWNjb3VudChcbiAgICBhcmdzOiBVcGRhdGVQYXJ0bmVyQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVBhcnRuZXJBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBvc2l0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBvc2l0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZVBvc2l0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUG9zaXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVJlc291cmNlRXZlbnRDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVJlc291cmNlRXZlbnRDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZVJlc291cmNlRXZlbnRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUmVzb3VyY2VFdmVudENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVJlc291cmNlUG9zaXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUmVzb3VyY2VQb3NpdGlvbihcbiAgICBhcmdzOiBVcGRhdGVSZXNvdXJjZVBvc2l0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUmVzb3VyY2VQb3NpdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlV2lyZWxlc3NEZXZpY2UoXG4gICAgYXJnczogVXBkYXRlV2lyZWxlc3NEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVXaXJlbGVzc0RldmljZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlV2lyZWxlc3NEZXZpY2VJbXBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVdpcmVsZXNzRGV2aWNlSW1wb3J0VGFzayhcbiAgICBhcmdzOiBVcGRhdGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVXaXJlbGVzc0RldmljZUltcG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVdpcmVsZXNzR2F0ZXdheUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVXaXJlbGVzc0dhdGV3YXkoXG4gICAgYXJnczogVXBkYXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlV2lyZWxlc3NHYXRld2F5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUlvVFdpcmVsZXNzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKElvVFdpcmVsZXNzQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBJb1RXaXJlbGVzc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248SW9UV2lyZWxlc3NTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBJb1RXaXJlbGVzc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBJb1RXaXJlbGVzc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1pb3Qtd2lyZWxlc3MvSW9UV2lyZWxlc3NTZXJ2aWNlXCIsXG4pPElvVFdpcmVsZXNzU2VydmljZSwgSW9UV2lyZWxlc3NTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gICAgdGhpcyxcbiAgICBtYWtlSW9UV2lyZWxlc3NTZXJ2aWNlLFxuICApLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdElvVFdpcmVsZXNzQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBJb1RXaXJlbGVzc0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUlvVFdpcmVsZXNzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogSW9UV2lyZWxlc3NDbGllbnRDb25maWcpID0+IElvVFdpcmVsZXNzQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VJb1RXaXJlbGVzc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIElvVFdpcmVsZXNzU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgSW9UV2lyZWxlc3MgPSBJb1RXaXJlbGVzc1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgSW9UV2lyZWxlc3MuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VJb1RXaXJlbGVzc1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgSW9UV2lyZWxlc3NTZXJ2aWNlLFxuICBtYWtlSW9UV2lyZWxlc3NTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBJb1RXaXJlbGVzcy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBJb1RXaXJlbGVzc1NlcnZpY2VMYXllciA9IEJhc2VJb1RXaXJlbGVzc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKElvVFdpcmVsZXNzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIElvVFdpcmVsZXNzLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW9UV2lyZWxlc3NTZXJ2aWNlTGF5ZXIgPSBJb1RXaXJlbGVzc1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
@@ -0,0 +1,12 @@
1
+ import { Data } from "effect";
2
+ export const AllServiceErrors = [
3
+ "AccessDeniedException",
4
+ "ConflictException",
5
+ "InternalServerException",
6
+ "ResourceNotFoundException",
7
+ "ThrottlingException",
8
+ "TooManyTagsException",
9
+ "ValidationException",
10
+ ];
11
+ export const SdkError = Data.tagged("SdkError");
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtDQUN0QixDQUFDO0FBZUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQVcsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbixcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEludGVybmFsU2VydmVyRXhjZXB0aW9uLFxuICBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1pb3Qtd2lyZWxlc3NcIjtcbmltcG9ydCB7IERhdGEgfSBmcm9tIFwiZWZmZWN0XCI7XG5cbmV4cG9ydCBjb25zdCBBbGxTZXJ2aWNlRXJyb3JzID0gW1xuICBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICBcIkNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gIFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUaHJvdHRsaW5nRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGhyb3R0bGluZ0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUb29NYW55VGFnc0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRvb01hbnlUYWdzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { IoTWirelessClient } from "@aws-sdk/client-iot-wireless";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import { DefaultIoTWirelessClientConfigLayer, IoTWirelessClientInstanceConfig, } from "./IoTWirelessClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category tags
12
+ */
13
+ export class IoTWirelessClientInstance extends Context.Tag("@effect-aws/client-iot-wireless/IoTWirelessClientInstance")() {
14
+ }
15
+ /**
16
+ * @since 1.0.0
17
+ * @category constructors
18
+ */
19
+ export const makeIoTWirelessClientInstance = Effect.map(IoTWirelessClientInstanceConfig, (config) => new IoTWirelessClient(config));
20
+ /**
21
+ * @since 1.0.0
22
+ * @category layers
23
+ */
24
+ export const IoTWirelessClientInstanceLayer = Layer.effect(IoTWirelessClientInstance, makeIoTWirelessClientInstance);
25
+ /**
26
+ * @since 1.0.0
27
+ * @category layers
28
+ */
29
+ export const DefaultIoTWirelessClientInstanceLayer = IoTWirelessClientInstanceLayer.pipe(Layer.provide(DefaultIoTWirelessClientConfigLayer));
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Jb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLCtCQUErQixHQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxPQUFPLENBQUMsR0FBRyxDQUN4RCwyREFBMkQsQ0FDNUQsRUFBZ0Q7Q0FBRztBQUVwRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNyRCwrQkFBK0IsRUFDL0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQzFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUN4RCx5QkFBeUIsRUFDekIsNkJBQTZCLENBQzlCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FDaEQsOEJBQThCLENBQUMsSUFBSSxDQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgeyBJb1RXaXJlbGVzc0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtaW90LXdpcmVsZXNzXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRDb25maWdMYXllcixcbiAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIElvVFdpcmVsZXNzQ2xpZW50SW5zdGFuY2UgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtaW90LXdpcmVsZXNzL0lvVFdpcmVsZXNzQ2xpZW50SW5zdGFuY2VcIixcbik8SW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZSwgSW9UV2lyZWxlc3NDbGllbnQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlID0gRWZmZWN0Lm1hcChcbiAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IElvVFdpcmVsZXNzQ2xpZW50KGNvbmZpZyksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlLFxuICBtYWtlSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUxheWVyID1cbiAgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0SW9UV2lyZWxlc3NDbGllbnRDb25maWdMYXllciksXG4gICk7XG4iXX0=
@@ -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 IoTWirelessClientInstanceConfig extends Context.Tag("@effect-aws/client-iot-wireless/IoTWirelessClientInstanceConfig")() {
7
+ }
8
+ /**
9
+ * @since 1.0.0
10
+ * @category constructors
11
+ */
12
+ export const makeDefaultIoTWirelessClientInstanceConfig = 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 DefaultIoTWirelessClientConfigLayer = Layer.effect(IoTWirelessClientInstanceConfig, makeDefaultIoTWirelessClientInstanceConfig);
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Jb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFekQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQzlELGlFQUFpRSxDQUNsRSxFQUE0RDtDQUFHO0FBRWhFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUNyRCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFTDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUM3RCwrQkFBK0IsRUFDL0IsMENBQTBDLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgdHlwZSB7IElvVFdpcmVsZXNzQ2xpZW50Q29uZmlnIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1pb3Qtd2lyZWxlc3NcIjtcbmltcG9ydCB7IENvbnRleHQsIEVmZmVjdCwgTGF5ZXIsIFJ1bnRpbWUgfSBmcm9tIFwiZWZmZWN0XCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZyBleHRlbmRzIENvbnRleHQuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1pb3Qtd2lyZWxlc3MvSW9UV2lyZWxlc3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiLFxuKTxJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLCBJb1RXaXJlbGVzc0NsaWVudENvbmZpZz4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZURlZmF1bHRJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PElvVFdpcmVsZXNzQ2xpZW50Q29uZmlnPiA9XG4gIEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gICAgY29uc3QgcnVudGltZSA9IHlpZWxkKiBfKEVmZmVjdC5ydW50aW1lPG5ldmVyPigpKTtcbiAgICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2dlcjoge1xuICAgICAgICBpbmZvKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICB3YXJuKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhY2UobSkge1xuICAgICAgICAgIEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRJb1RXaXJlbGVzc0NsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBJb1RXaXJlbGVzc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBtYWtlRGVmYXVsdElvVFdpcmVsZXNzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19