@effect-aws/client-elasticache 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,9 +88,11 @@ const commands = {
88
88
  };
89
89
  /**
90
90
  * @since 1.0.0
91
- * @category tags
91
+ * @category models
92
92
  */
93
- exports.ElastiCacheService = effect_1.Context.GenericTag("@effect-aws/client-elasticache/ElastiCacheService");
93
+ class ElastiCacheService extends effect_1.Effect.Tag("@effect-aws/client-elasticache/ElastiCacheService")() {
94
+ }
95
+ exports.ElastiCacheService = ElastiCacheService;
94
96
  /**
95
97
  * @since 1.0.0
96
98
  * @category constructors
@@ -102,7 +104,8 @@ exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
102
104
  const methodImpl = (args, options) => effect_1.Effect.tryPromise({
103
105
  try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
104
106
  catch: (e) => {
105
- if (e instanceof client_elasticache_1.ElastiCacheServiceException) {
107
+ if (e instanceof client_elasticache_1.ElastiCacheServiceException &&
108
+ Errors_1.AllServiceErrors.includes(e.name)) {
106
109
  const ServiceException = effect_1.Data.tagged(e.name);
107
110
  return ServiceException({
108
111
  ...e,
@@ -129,7 +132,7 @@ exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
129
132
  * @since 1.0.0
130
133
  * @category layers
131
134
  */
132
- exports.BaseElastiCacheServiceLayer = effect_1.Layer.effect(exports.ElastiCacheService, exports.makeElastiCacheService);
135
+ exports.BaseElastiCacheServiceLayer = effect_1.Layer.effect(ElastiCacheService, exports.makeElastiCacheService);
133
136
  /**
134
137
  * @since 1.0.0
135
138
  * @category layers
@@ -140,4 +143,4 @@ exports.ElastiCacheServiceLayer = exports.BaseElastiCacheServiceLayer.pipe(effec
140
143
  * @category layers
141
144
  */
142
145
  exports.DefaultElastiCacheServiceLayer = exports.ElastiCacheServiceLayer.pipe(effect_1.Layer.provide(ElastiCacheClientInstanceConfig_1.DefaultElastiCacheClientConfigLayer));
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFFckMsbUNBQThEO0FBQzlELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBT2tCO0FBRWxCLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4Qix5Q0FBeUMsRUFBekMsOERBQXlDO0lBQ3pDLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1Qix3QkFBd0IsRUFBeEIsNkNBQXdCO0lBQ3hCLGtDQUFrQyxFQUFsQyx1REFBa0M7SUFDbEMsbUJBQW1CLEVBQW5CLHdDQUFtQjtJQUNuQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLG9DQUFvQyxFQUFwQyx5REFBb0M7SUFDcEMscUJBQXFCLEVBQXJCLDBDQUFxQjtJQUNyQixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwyQ0FBc0I7SUFDdEIsaURBQWlELEVBQWpELHNFQUFpRDtJQUNqRCwyQkFBMkIsRUFBM0IsZ0RBQTJCO0lBQzNCLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQywrQkFBK0IsRUFBL0Isb0RBQStCO0lBQy9CLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsbUNBQW1DLEVBQW5DLHdEQUFtQztJQUNuQyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsb0NBQW9DLEVBQXBDLHlEQUFvQztJQUNwQyxxQkFBcUIsRUFBckIsMENBQXFCO0lBQ3JCLGlCQUFpQixFQUFqQixzQ0FBaUI7SUFDakIsc0JBQXNCLEVBQXRCLDJDQUFzQjtJQUN0Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLGtDQUFrQyxFQUFsQyx1REFBa0M7SUFDbEMsbUNBQW1DLEVBQW5DLHdEQUFtQztJQUNuQyw4QkFBOEIsRUFBOUIsbURBQThCO0lBQzlCLGtDQUFrQyxFQUFsQyx1REFBa0M7SUFDbEMsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQyxzQ0FBc0MsRUFBdEMsMkRBQXNDO0lBQ3RDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsc0NBQXNDLEVBQXRDLDJEQUFzQztJQUN0QyxnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLGlDQUFpQyxFQUFqQyxzREFBaUM7SUFDakMsMENBQTBDLEVBQTFDLCtEQUEwQztJQUMxQywrQkFBK0IsRUFBL0Isb0RBQStCO0lBQy9CLHVDQUF1QyxFQUF2Qyw0REFBdUM7SUFDdkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3Qix3QkFBd0IsRUFBeEIsNkNBQXdCO0lBQ3hCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixvQkFBb0IsRUFBcEIseUNBQW9CO0lBQ3BCLHlDQUF5QyxFQUF6Qyw4REFBeUM7SUFDekMsb0NBQW9DLEVBQXBDLHlEQUFvQztJQUNwQyxxQ0FBcUMsRUFBckMsMERBQXFDO0lBQ3JDLGlEQUFpRCxFQUFqRCxzRUFBaUQ7SUFDakQsMkJBQTJCLEVBQTNCLGdEQUEyQjtJQUMzQix1Q0FBdUMsRUFBdkMsNERBQXVDO0lBQ3ZDLDBCQUEwQixFQUExQiwrQ0FBMEI7SUFDMUIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsbUNBQW1DLEVBQW5DLHdEQUFtQztJQUNuQyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLCtDQUErQyxFQUEvQyxvRUFBK0M7SUFDL0MsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwyQ0FBc0I7SUFDdEIseUNBQXlDLEVBQXpDLDhEQUF5QztJQUN6Qyw2Q0FBNkMsRUFBN0Msa0VBQTZDO0lBQzdDLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QiwrQkFBK0IsRUFBL0Isb0RBQStCO0lBQy9CLHNDQUFzQyxFQUF0QywyREFBc0M7SUFDdEMscUJBQXFCLEVBQXJCLDBDQUFxQjtJQUNyQixtQkFBbUIsRUFBbkIsd0NBQW1CO0lBQ25CLG9CQUFvQixFQUFwQix5Q0FBb0I7Q0FDckIsQ0FBQztBQWkvQkY7OztHQUdHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxnQkFBTyxDQUFDLFVBQVUsQ0FDbEQsbURBQW1ELENBQ3BELENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMzRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscURBQXlCLENBQUMsQ0FBQztJQUVuRCxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBWSxFQUFFLEVBQUUsQ0FDN0MsZUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNoQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxFQUFFLENBQUM7WUFDNUQsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksZ0RBQTJCLEVBQUUsQ0FBQztvQkFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQXVCLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3JELDBCQUFrQixFQUNsQiw4QkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsbUNBQTJCLENBQUMsSUFBSSxDQUNyRSxjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLENBQzlDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDhCQUE4QixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDeEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxRUFBbUMsQ0FBQyxDQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kLFxuICB0eXBlIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ29weVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5U25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVc2Vyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dCxcbiAgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUmVjb3JkLCBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSxcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0VsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEVsYXN0aUNhY2hlU2VydmljZUVycm9yLFxuICBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IHR5cGUgRWxhc3RpQ2FjaGVTZXJ2aWNlID0ge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRUYWdzVG9SZXNvdXJjZTogKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzOiAoXG4gICAgYXJnczogQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoQXBwbHlVcGRhdGVBY3Rpb246IChcbiAgICBhcmdzOiBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU3RvcFVwZGF0ZUFjdGlvbjogKFxuICAgIGFyZ3M6IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGxldGVNaWdyYXRpb246IChcbiAgICBhcmdzOiBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5U25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29weVNuYXBzaG90OiAoXG4gICAgYXJnczogQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ29weVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQ2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGU6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU25hcHNob3Q6IChcbiAgICBhcmdzOiBDcmVhdGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVVc2VyOiAoXG4gICAgYXJnczogQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlVXNlckdyb3VwOiAoXG4gICAgYXJnczogQ3JlYXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVjcmVhc2VSZXBsaWNhQ291bnQ6IChcbiAgICBhcmdzOiBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQ2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2ZXJsZXNzQ2FjaGU6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRDcmVkZW50aWFsc0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3Q6IChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTbmFwc2hvdDogKFxuICAgIGFyZ3M6IERlbGV0ZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXI6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXJHcm91cDogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlbGV0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlQ2FjaGVDbHVzdGVyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnM6IChcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlUGFyYW1ldGVyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzOiAoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZE91dHB1dCB8IFNka0Vycm9yIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzOiAoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV2ZW50c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZUV2ZW50czogKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHM6IChcbiAgICBhcmdzOiBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXBsaWNhdGlvbkdyb3VwczogKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXM6IChcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3M6IChcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU2VydmVybGVzc0NhY2hlczogKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzOiAoXG4gICAgYXJnczogRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVTZXJ2aWNlVXBkYXRlczogKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVTbmFwc2hvdHM6IChcbiAgICBhcmdzOiBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaWJlVXBkYXRlQWN0aW9uczogKFxuICAgIGFyZ3M6IERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZXNjcmliZVVzZXJHcm91cHM6IChcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpYmVVc2VyczogKFxuICAgIGFyZ3M6IERlc2NyaWJlVXNlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90OiAoXG4gICAgYXJnczogRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBpbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGluY3JlYXNlUmVwbGljYUNvdW50OiAoXG4gICAgYXJnczogSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zOiAoXG4gICAgYXJnczogTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFRhZ3NGb3JSZXNvdXJjZTogKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlDYWNoZUNsdXN0ZXI6IChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5Q2FjaGVTdWJuZXRHcm91cDogKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQgfCBTZGtFcnJvciB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cDogKFxuICAgIGFyZ3M6IE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVJlcGxpY2F0aW9uR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVNlcnZlcmxlc3NDYWNoZTogKFxuICAgIGFyZ3M6IE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmeVVzZXI6IChcbiAgICBhcmdzOiBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVVzZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBtb2RpZnlVc2VyR3JvdXA6IChcbiAgICBhcmdzOiBNb2RpZnlVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmc6IChcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwOiAoXG4gICAgYXJnczogUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlYm9vdENhY2hlQ2x1c3RlcjogKFxuICAgIGFyZ3M6IFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVRhZ3NGcm9tUmVzb3VyY2U6IChcbiAgICBhcmdzOiBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0IHwgU2RrRXJyb3IgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwOiAoXG4gICAgYXJnczogUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEVsYXN0aUNhY2hlU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzOiAoXG4gICAgYXJnczogUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICB8IFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzdGFydE1pZ3JhdGlvbjogKFxuICAgIGFyZ3M6IFN0YXJ0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RGYWlsb3ZlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0ZXN0RmFpbG92ZXI6IChcbiAgICBhcmdzOiBUZXN0RmFpbG92ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgfCBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0XG4gICAgfCBTZGtFcnJvclxuICAgIHwgRWxhc3RpQ2FjaGVTZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0TWlncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RNaWdyYXRpb246IChcbiAgICBhcmdzOiBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIHwgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXRcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFbGFzdGlDYWNoZVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgRWxhc3RpQ2FjaGVTZXJ2aWNlID0gQ29udGV4dC5HZW5lcmljVGFnPEVsYXN0aUNhY2hlU2VydmljZT4oXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWVsYXN0aWNhY2hlL0VsYXN0aUNhY2hlU2VydmljZVwiLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VFbGFzdGlDYWNoZVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgRWxhc3RpQ2FjaGVTZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEVsYXN0aUNhY2hlU2VydmljZSxcbiAgbWFrZUVsYXN0aUNhY2hlU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFFckMsbUNBQXFEO0FBQ3JELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBZ0ZrQjtBQUVsQixNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4Qiw2Q0FBd0I7SUFDeEIseUNBQXlDLEVBQXpDLDhEQUF5QztJQUN6Qyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLG1CQUFtQixFQUFuQix3Q0FBbUI7SUFDbkIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLCtCQUErQixFQUEvQixvREFBK0I7SUFDL0IsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QixtQ0FBbUMsRUFBbkMsd0RBQW1DO0lBQ25DLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixvQ0FBb0MsRUFBcEMseURBQW9DO0lBQ3BDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsaUJBQWlCLEVBQWpCLHNDQUFpQjtJQUNqQixzQkFBc0IsRUFBdEIsMkNBQXNCO0lBQ3RCLGlEQUFpRCxFQUFqRCxzRUFBaUQ7SUFDakQsMkJBQTJCLEVBQTNCLGdEQUEyQjtJQUMzQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2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LDJCQUEyQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3JELGtCQUFrQixFQUNsQiw4QkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsbUNBQTJCLENBQUMsSUFBSSxDQUNyRSxjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLENBQzlDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDhCQUE4QixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDeEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxRUFBbUMsQ0FBQyxDQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uLFxuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICB0eXBlIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDb3B5U25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXNlcnNDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSxcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0VsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFQSUNhbGxSYXRlRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENhY2hlU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlU2VjdXJpdHlHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIENhY2hlU3VibmV0R3JvdXBJblVzZUVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENsdXN0ZXJRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEZWZhdWx0VXNlckFzc29jaWF0ZWRUb1VzZXJHcm91cEZhdWx0RXJyb3IsXG4gIERlZmF1bHRVc2VyUmVxdWlyZWRFcnJvcixcbiAgRHVwbGljYXRlVXNlck5hbWVGYXVsdEVycm9yLFxuICBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW52YWxpZEFSTkZhdWx0RXJyb3IsXG4gIEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcixcbiAgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRLTVNLZXlGYXVsdEVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTbmFwc2hvdFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFN1Ym5ldEVycm9yLFxuICBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkVXNlclN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3IsXG4gIE5vT3BlcmF0aW9uRmF1bHRFcnJvcixcbiAgTm9kZUdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBOb2RlR3JvdXBzUGVyUmVwbGljYXRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeVVuZGVyTWlncmF0aW9uRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cE5vdFVuZGVyTWlncmF0aW9uRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWRDYWNoZU5vZGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yLFxuICBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTdWJuZXRJblVzZUVycm9yLFxuICBTdWJuZXROb3RBbGxvd2VkRmF1bHRFcnJvcixcbiAgVGFnTm90Rm91bmRGYXVsdEVycm9yLFxuICBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvcixcbiAgVGVzdEZhaWxvdmVyTm90QXZhaWxhYmxlRmF1bHRFcnJvcixcbiAgVXNlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBVc2VyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBVc2VyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgVXNlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVXNlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIEVsYXN0aUNhY2hlU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBhZGRUYWdzVG9SZXNvdXJjZShcbiAgICBhcmdzOiBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYmF0Y2hBcHBseVVwZGF0ZUFjdGlvbihcbiAgICBhcmdzOiBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYmF0Y2hTdG9wVXBkYXRlQWN0aW9uKFxuICAgIGFyZ3M6IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjb21wbGV0ZU1pZ3JhdGlvbihcbiAgICBhcmdzOiBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5U25hcHNob3QoXG4gICAgYXJnczogQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2x1c3RlclF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckNsdXN0ZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU2VydmVybGVzc0NhY2hlKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU25hcHNob3QoXG4gICAgYXJnczogQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlcihcbiAgICBhcmdzOiBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEdXBsaWNhdGVVc2VyTmFtZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFVzZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3JcbiAgICB8IER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgZGVjcmVhc2VSZXBsaWNhQ291bnQoXG4gICAgYXJnczogRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vT3BlcmF0aW9uRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2FjaGVTdWJuZXRHcm91cEluVXNlRXJyb3IgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNlcnZlcmxlc3NDYWNoZShcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVVzZXIoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVmYXVsdFVzZXJBc3NvY2lhdGVkVG9Vc2VyR3JvdXBGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFVzZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVVc2VyR3JvdXAoXG4gICAgYXJnczogRGVsZXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlQ2x1c3RlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkQ2FjaGVOb2RlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVNlcnZlcmxlc3NDYWNoZXMoXG4gICAgYXJnczogRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTZXJ2aWNlVXBkYXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTbmFwc2hvdHMoXG4gICAgYXJnczogRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVXBkYXRlQWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVVzZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVVc2VycyhcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgZXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VSZXBsaWNhQ291bnQoXG4gICAgYXJnczogSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVHcm91cHNQZXJSZXBsaWNhdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb09wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRBUk5GYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZENhY2hlTm9kZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgU3VibmV0SW5Vc2VFcnJvclxuICAgIHwgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVNlcnZlcmxlc3NDYWNoZShcbiAgICBhcmdzOiBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVVzZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlcihcbiAgICBhcmdzOiBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlckdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3JcbiAgICB8IER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZyhcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVib290Q2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzRnJvbVJlc291cmNlKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3MoXG4gICAgYXJnczogUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRNaWdyYXRpb24oXG4gICAgYXJnczogU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RGYWlsb3ZlckNvbW1hbmR9XG4gICAqL1xuICB0ZXN0RmFpbG92ZXIoXG4gICAgYXJnczogVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFQSUNhbGxSYXRlRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlc3RGYWlsb3Zlck5vdEF2YWlsYWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB0ZXN0TWlncmF0aW9uKFxuICAgIGFyZ3M6IFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cEFscmVhZHlVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWVsYXN0aWNhY2hlL0VsYXN0aUNhY2hlU2VydmljZVwiLFxuKTxFbGFzdGlDYWNoZVNlcnZpY2UsIEVsYXN0aUNhY2hlU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VFbGFzdGlDYWNoZVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEVsYXN0aUNhY2hlU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuICBtYWtlRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gQmFzZUVsYXN0aUNhY2hlU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0RWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRFbGFzdGlDYWNoZUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
package/lib/Errors.d.ts CHANGED
@@ -1,17 +1,87 @@
1
- import type { ElastiCacheServiceException, InvalidCredentialsException, InvalidParameterValueException, InvalidParameterCombinationException } from "@aws-sdk/client-elasticache";
2
- import * as Data from "effect/Data";
1
+ import type { APICallRateForCustomerExceededFault, AuthorizationAlreadyExistsFault, AuthorizationNotFoundFault, CacheClusterAlreadyExistsFault, CacheClusterNotFoundFault, CacheParameterGroupAlreadyExistsFault, CacheParameterGroupNotFoundFault, CacheParameterGroupQuotaExceededFault, CacheSecurityGroupAlreadyExistsFault, CacheSecurityGroupNotFoundFault, CacheSecurityGroupQuotaExceededFault, CacheSubnetGroupAlreadyExistsFault, CacheSubnetGroupInUse, CacheSubnetGroupNotFoundFault, CacheSubnetGroupQuotaExceededFault, CacheSubnetQuotaExceededFault, ClusterQuotaForCustomerExceededFault, DefaultUserAssociatedToUserGroupFault, DefaultUserRequired, DuplicateUserNameFault, GlobalReplicationGroupAlreadyExistsFault, GlobalReplicationGroupNotFoundFault, InsufficientCacheClusterCapacityFault, InvalidARNFault, InvalidCacheClusterStateFault, InvalidCacheParameterGroupStateFault, InvalidCacheSecurityGroupStateFault, InvalidCredentialsException, InvalidGlobalReplicationGroupStateFault, InvalidKMSKeyFault, InvalidParameterCombinationException, InvalidParameterValueException, InvalidReplicationGroupStateFault, InvalidServerlessCacheSnapshotStateFault, InvalidServerlessCacheStateFault, InvalidSnapshotStateFault, InvalidSubnet, InvalidUserGroupStateFault, InvalidUserStateFault, InvalidVPCNetworkStateFault, NoOperationFault, NodeGroupNotFoundFault, NodeGroupsPerReplicationGroupQuotaExceededFault, NodeQuotaForClusterExceededFault, NodeQuotaForCustomerExceededFault, ReplicationGroupAlreadyExistsFault, ReplicationGroupAlreadyUnderMigrationFault, ReplicationGroupNotFoundFault, ReplicationGroupNotUnderMigrationFault, ReservedCacheNodeAlreadyExistsFault, ReservedCacheNodeNotFoundFault, ReservedCacheNodeQuotaExceededFault, ReservedCacheNodesOfferingNotFoundFault, ServerlessCacheAlreadyExistsFault, ServerlessCacheNotFoundFault, ServerlessCacheQuotaForCustomerExceededFault, ServerlessCacheSnapshotAlreadyExistsFault, ServerlessCacheSnapshotNotFoundFault, ServerlessCacheSnapshotQuotaExceededFault, ServiceLinkedRoleNotFoundFault, ServiceUpdateNotFoundFault, SnapshotAlreadyExistsFault, SnapshotFeatureNotSupportedFault, SnapshotNotFoundFault, SnapshotQuotaExceededFault, SubnetInUse, SubnetNotAllowedFault, TagNotFoundFault, TagQuotaPerResourceExceeded, TestFailoverNotAvailableFault, UserAlreadyExistsFault, UserGroupAlreadyExistsFault, UserGroupNotFoundFault, UserGroupQuotaExceededFault, UserNotFoundFault, UserQuotaExceededFault } from "@aws-sdk/client-elasticache";
2
+ import { Data } from "effect";
3
+ export declare const AllServiceErrors: string[];
3
4
  export type TaggedException<T extends {
4
5
  name: string;
5
6
  }> = T & {
6
7
  readonly _tag: T["name"];
7
8
  };
9
+ export type APICallRateForCustomerExceededFaultError = TaggedException<APICallRateForCustomerExceededFault>;
10
+ export type AuthorizationAlreadyExistsFaultError = TaggedException<AuthorizationAlreadyExistsFault>;
11
+ export type AuthorizationNotFoundFaultError = TaggedException<AuthorizationNotFoundFault>;
12
+ export type CacheClusterAlreadyExistsFaultError = TaggedException<CacheClusterAlreadyExistsFault>;
13
+ export type CacheClusterNotFoundFaultError = TaggedException<CacheClusterNotFoundFault>;
14
+ export type CacheParameterGroupAlreadyExistsFaultError = TaggedException<CacheParameterGroupAlreadyExistsFault>;
15
+ export type CacheParameterGroupNotFoundFaultError = TaggedException<CacheParameterGroupNotFoundFault>;
16
+ export type CacheParameterGroupQuotaExceededFaultError = TaggedException<CacheParameterGroupQuotaExceededFault>;
17
+ export type CacheSecurityGroupAlreadyExistsFaultError = TaggedException<CacheSecurityGroupAlreadyExistsFault>;
18
+ export type CacheSecurityGroupNotFoundFaultError = TaggedException<CacheSecurityGroupNotFoundFault>;
19
+ export type CacheSecurityGroupQuotaExceededFaultError = TaggedException<CacheSecurityGroupQuotaExceededFault>;
20
+ export type CacheSubnetGroupAlreadyExistsFaultError = TaggedException<CacheSubnetGroupAlreadyExistsFault>;
21
+ export type CacheSubnetGroupInUseError = TaggedException<CacheSubnetGroupInUse>;
22
+ export type CacheSubnetGroupNotFoundFaultError = TaggedException<CacheSubnetGroupNotFoundFault>;
23
+ export type CacheSubnetGroupQuotaExceededFaultError = TaggedException<CacheSubnetGroupQuotaExceededFault>;
24
+ export type CacheSubnetQuotaExceededFaultError = TaggedException<CacheSubnetQuotaExceededFault>;
25
+ export type ClusterQuotaForCustomerExceededFaultError = TaggedException<ClusterQuotaForCustomerExceededFault>;
26
+ export type DefaultUserAssociatedToUserGroupFaultError = TaggedException<DefaultUserAssociatedToUserGroupFault>;
27
+ export type DefaultUserRequiredError = TaggedException<DefaultUserRequired>;
28
+ export type DuplicateUserNameFaultError = TaggedException<DuplicateUserNameFault>;
29
+ export type GlobalReplicationGroupAlreadyExistsFaultError = TaggedException<GlobalReplicationGroupAlreadyExistsFault>;
30
+ export type GlobalReplicationGroupNotFoundFaultError = TaggedException<GlobalReplicationGroupNotFoundFault>;
31
+ export type InsufficientCacheClusterCapacityFaultError = TaggedException<InsufficientCacheClusterCapacityFault>;
32
+ export type InvalidARNFaultError = TaggedException<InvalidARNFault>;
33
+ export type InvalidCacheClusterStateFaultError = TaggedException<InvalidCacheClusterStateFault>;
34
+ export type InvalidCacheParameterGroupStateFaultError = TaggedException<InvalidCacheParameterGroupStateFault>;
35
+ export type InvalidCacheSecurityGroupStateFaultError = TaggedException<InvalidCacheSecurityGroupStateFault>;
8
36
  export type InvalidCredentialsError = TaggedException<InvalidCredentialsException>;
9
- export type InvalidParameterValueError = TaggedException<InvalidParameterValueException>;
37
+ export type InvalidGlobalReplicationGroupStateFaultError = TaggedException<InvalidGlobalReplicationGroupStateFault>;
38
+ export type InvalidKMSKeyFaultError = TaggedException<InvalidKMSKeyFault>;
10
39
  export type InvalidParameterCombinationError = TaggedException<InvalidParameterCombinationException>;
11
- export type ElastiCacheServiceError = TaggedException<ElastiCacheServiceException & {
12
- name: "ElastiCacheServiceError";
13
- }>;
14
- export declare const ElastiCacheServiceError: Data.Case.Constructor<ElastiCacheServiceError, "_tag">;
40
+ export type InvalidParameterValueError = TaggedException<InvalidParameterValueException>;
41
+ export type InvalidReplicationGroupStateFaultError = TaggedException<InvalidReplicationGroupStateFault>;
42
+ export type InvalidServerlessCacheSnapshotStateFaultError = TaggedException<InvalidServerlessCacheSnapshotStateFault>;
43
+ export type InvalidServerlessCacheStateFaultError = TaggedException<InvalidServerlessCacheStateFault>;
44
+ export type InvalidSnapshotStateFaultError = TaggedException<InvalidSnapshotStateFault>;
45
+ export type InvalidSubnetError = TaggedException<InvalidSubnet>;
46
+ export type InvalidUserGroupStateFaultError = TaggedException<InvalidUserGroupStateFault>;
47
+ export type InvalidUserStateFaultError = TaggedException<InvalidUserStateFault>;
48
+ export type InvalidVPCNetworkStateFaultError = TaggedException<InvalidVPCNetworkStateFault>;
49
+ export type NoOperationFaultError = TaggedException<NoOperationFault>;
50
+ export type NodeGroupNotFoundFaultError = TaggedException<NodeGroupNotFoundFault>;
51
+ export type NodeGroupsPerReplicationGroupQuotaExceededFaultError = TaggedException<NodeGroupsPerReplicationGroupQuotaExceededFault>;
52
+ export type NodeQuotaForClusterExceededFaultError = TaggedException<NodeQuotaForClusterExceededFault>;
53
+ export type NodeQuotaForCustomerExceededFaultError = TaggedException<NodeQuotaForCustomerExceededFault>;
54
+ export type ReplicationGroupAlreadyExistsFaultError = TaggedException<ReplicationGroupAlreadyExistsFault>;
55
+ export type ReplicationGroupAlreadyUnderMigrationFaultError = TaggedException<ReplicationGroupAlreadyUnderMigrationFault>;
56
+ export type ReplicationGroupNotFoundFaultError = TaggedException<ReplicationGroupNotFoundFault>;
57
+ export type ReplicationGroupNotUnderMigrationFaultError = TaggedException<ReplicationGroupNotUnderMigrationFault>;
58
+ export type ReservedCacheNodeAlreadyExistsFaultError = TaggedException<ReservedCacheNodeAlreadyExistsFault>;
59
+ export type ReservedCacheNodeNotFoundFaultError = TaggedException<ReservedCacheNodeNotFoundFault>;
60
+ export type ReservedCacheNodeQuotaExceededFaultError = TaggedException<ReservedCacheNodeQuotaExceededFault>;
61
+ export type ReservedCacheNodesOfferingNotFoundFaultError = TaggedException<ReservedCacheNodesOfferingNotFoundFault>;
62
+ export type ServerlessCacheAlreadyExistsFaultError = TaggedException<ServerlessCacheAlreadyExistsFault>;
63
+ export type ServerlessCacheNotFoundFaultError = TaggedException<ServerlessCacheNotFoundFault>;
64
+ export type ServerlessCacheQuotaForCustomerExceededFaultError = TaggedException<ServerlessCacheQuotaForCustomerExceededFault>;
65
+ export type ServerlessCacheSnapshotAlreadyExistsFaultError = TaggedException<ServerlessCacheSnapshotAlreadyExistsFault>;
66
+ export type ServerlessCacheSnapshotNotFoundFaultError = TaggedException<ServerlessCacheSnapshotNotFoundFault>;
67
+ export type ServerlessCacheSnapshotQuotaExceededFaultError = TaggedException<ServerlessCacheSnapshotQuotaExceededFault>;
68
+ export type ServiceLinkedRoleNotFoundFaultError = TaggedException<ServiceLinkedRoleNotFoundFault>;
69
+ export type ServiceUpdateNotFoundFaultError = TaggedException<ServiceUpdateNotFoundFault>;
70
+ export type SnapshotAlreadyExistsFaultError = TaggedException<SnapshotAlreadyExistsFault>;
71
+ export type SnapshotFeatureNotSupportedFaultError = TaggedException<SnapshotFeatureNotSupportedFault>;
72
+ export type SnapshotNotFoundFaultError = TaggedException<SnapshotNotFoundFault>;
73
+ export type SnapshotQuotaExceededFaultError = TaggedException<SnapshotQuotaExceededFault>;
74
+ export type SubnetInUseError = TaggedException<SubnetInUse>;
75
+ export type SubnetNotAllowedFaultError = TaggedException<SubnetNotAllowedFault>;
76
+ export type TagNotFoundFaultError = TaggedException<TagNotFoundFault>;
77
+ export type TagQuotaPerResourceExceededError = TaggedException<TagQuotaPerResourceExceeded>;
78
+ export type TestFailoverNotAvailableFaultError = TaggedException<TestFailoverNotAvailableFault>;
79
+ export type UserAlreadyExistsFaultError = TaggedException<UserAlreadyExistsFault>;
80
+ export type UserGroupAlreadyExistsFaultError = TaggedException<UserGroupAlreadyExistsFault>;
81
+ export type UserGroupNotFoundFaultError = TaggedException<UserGroupNotFoundFault>;
82
+ export type UserGroupQuotaExceededFaultError = TaggedException<UserGroupQuotaExceededFault>;
83
+ export type UserNotFoundFaultError = TaggedException<UserNotFoundFault>;
84
+ export type UserQuotaExceededFaultError = TaggedException<UserQuotaExceededFault>;
15
85
  export type SdkError = TaggedException<Error & {
16
86
  name: "SdkError";
17
87
  }>;