@alphauspkgs/blue-sdk-ts 1.0.1

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.
Files changed (265) hide show
  1. package/README.md +32 -0
  2. package/admin/v1/admin_pb.js +239 -0
  3. package/admin/v1/admin_pb.ts +1604 -0
  4. package/admin/v1/client.js +9 -0
  5. package/admin/v1/client.ts +7 -0
  6. package/api/account_pb.js +22 -0
  7. package/api/account_pb.ts +132 -0
  8. package/api/accountgroup_pb.js +18 -0
  9. package/api/accountgroup_pb.ts +56 -0
  10. package/api/adjustment_pb.js +26 -0
  11. package/api/adjustment_pb.ts +102 -0
  12. package/api/apiclient_pb.js +16 -0
  13. package/api/apiclient_pb.ts +66 -0
  14. package/api/audit_pb.js +21 -0
  15. package/api/audit_pb.ts +70 -0
  16. package/api/aws/breakeven_pb.js +21 -0
  17. package/api/aws/breakeven_pb.ts +93 -0
  18. package/api/aws/calculator_pb.js +31 -0
  19. package/api/aws/calculator_pb.ts +138 -0
  20. package/api/aws/cost_pb.js +22 -0
  21. package/api/aws/cost_pb.ts +315 -0
  22. package/api/aws/recommendation_pb.js +36 -0
  23. package/api/aws/recommendation_pb.ts +338 -0
  24. package/api/aws/reduction_pb.js +31 -0
  25. package/api/aws/reduction_pb.ts +416 -0
  26. package/api/azure/cost_pb.js +21 -0
  27. package/api/azure/cost_pb.ts +268 -0
  28. package/api/azureea/cost_pb.js +16 -0
  29. package/api/azureea/cost_pb.ts +141 -0
  30. package/api/budget_pb.js +57 -0
  31. package/api/budget_pb.ts +293 -0
  32. package/api/costtag_pb.js +17 -0
  33. package/api/costtag_pb.ts +77 -0
  34. package/api/cover/accountaccess_pb.js +46 -0
  35. package/api/cover/accountaccess_pb.ts +334 -0
  36. package/api/cover/alert_pb.js +36 -0
  37. package/api/cover/alert_pb.ts +183 -0
  38. package/api/cover/applyrecommendation_pb.js +41 -0
  39. package/api/cover/applyrecommendation_pb.ts +133 -0
  40. package/api/cover/asset_pb.js +26 -0
  41. package/api/cover/asset_pb.ts +305 -0
  42. package/api/cover/attribute_pb.js +21 -0
  43. package/api/cover/attribute_pb.ts +58 -0
  44. package/api/cover/budget_pb.js +42 -0
  45. package/api/cover/budget_pb.ts +275 -0
  46. package/api/cover/costforecast_pb.js +16 -0
  47. package/api/cover/costforecast_pb.ts +81 -0
  48. package/api/cover/costgroup_pb.js +89 -0
  49. package/api/cover/costgroup_pb.ts +473 -0
  50. package/api/cover/discountplan_pb.js +31 -0
  51. package/api/cover/discountplan_pb.ts +461 -0
  52. package/api/cover/discountrecommendation_pb.js +96 -0
  53. package/api/cover/discountrecommendation_pb.ts +500 -0
  54. package/api/cover/insightreport_pb.js +26 -0
  55. package/api/cover/insightreport_pb.ts +167 -0
  56. package/api/cover/optimizationrecommendation_pb.js +262 -0
  57. package/api/cover/optimizationrecommendation_pb.ts +1964 -0
  58. package/api/cover/recommendation/aws_pb.js +407 -0
  59. package/api/cover/recommendation/aws_pb.ts +2418 -0
  60. package/api/cover/recommendation/azurecsp_pb.js +16 -0
  61. package/api/cover/recommendation/azurecsp_pb.ts +27 -0
  62. package/api/cover/recommendation/gcp_pb.js +27 -0
  63. package/api/cover/recommendation/gcp_pb.ts +91 -0
  64. package/api/cover/recommendation/octoaws_pb.js +22 -0
  65. package/api/cover/recommendation/octoaws_pb.ts +55 -0
  66. package/api/cover/recommendation/octoazurecsp_pb.js +16 -0
  67. package/api/cover/recommendation/octoazurecsp_pb.ts +27 -0
  68. package/api/cover/recommendation/octogcp_pb.js +16 -0
  69. package/api/cover/recommendation/octogcp_pb.ts +27 -0
  70. package/api/cover/recommendation/recommendation_pb.js +27 -0
  71. package/api/cover/recommendation/recommendation_pb.ts +190 -0
  72. package/api/cover/rightsizingrecommendation_pb.js +21 -0
  73. package/api/cover/rightsizingrecommendation_pb.ts +133 -0
  74. package/api/cover/unitcost_pb.js +82 -0
  75. package/api/cover/unitcost_pb.ts +576 -0
  76. package/api/cover/user_pb.js +26 -0
  77. package/api/cover/user_pb.ts +330 -0
  78. package/api/cover/view_pb.js +53 -0
  79. package/api/cover/view_pb.ts +393 -0
  80. package/api/coverage_pb.js +31 -0
  81. package/api/coverage_pb.ts +132 -0
  82. package/api/forecast_pb.js +61 -0
  83. package/api/forecast_pb.ts +346 -0
  84. package/api/gcp/cost_pb.js +16 -0
  85. package/api/gcp/cost_pb.ts +128 -0
  86. package/api/grouprootuser_pb.js +21 -0
  87. package/api/grouprootuser_pb.ts +390 -0
  88. package/api/invoice_pb.js +96 -0
  89. package/api/invoice_pb.ts +905 -0
  90. package/api/keyvalue_pb.js +21 -0
  91. package/api/keyvalue_pb.ts +72 -0
  92. package/api/notification_pb.js +46 -0
  93. package/api/notification_pb.ts +232 -0
  94. package/api/pricing/details_pb.js +17 -0
  95. package/api/pricing/details_pb.ts +172 -0
  96. package/api/rbac_pb.js +31 -0
  97. package/api/rbac_pb.ts +142 -0
  98. package/api/ripple/accessgroup_pb.js +16 -0
  99. package/api/ripple/accessgroup_pb.ts +48 -0
  100. package/api/ripple/billinggroup_pb.js +16 -0
  101. package/api/ripple/billinggroup_pb.ts +154 -0
  102. package/api/ripple/customfield_pb.js +16 -0
  103. package/api/ripple/customfield_pb.ts +49 -0
  104. package/api/ripple/customizedbillingservice_pb.js +175 -0
  105. package/api/ripple/customizedbillingservice_pb.ts +455 -0
  106. package/api/ripple/duedate_pb.js +16 -0
  107. package/api/ripple/duedate_pb.ts +58 -0
  108. package/api/ripple/exchangerate_pb.js +41 -0
  109. package/api/ripple/exchangerate_pb.ts +205 -0
  110. package/api/ripple/invoicelayout_pb.js +46 -0
  111. package/api/ripple/invoicelayout_pb.ts +547 -0
  112. package/api/ripple/org_pb.js +16 -0
  113. package/api/ripple/org_pb.ts +51 -0
  114. package/api/ripple/payer_pb.js +18 -0
  115. package/api/ripple/payer_pb.ts +60 -0
  116. package/api/ripple/reseller_pb.js +21 -0
  117. package/api/ripple/reseller_pb.ts +168 -0
  118. package/api/ripple/rounding_pb.js +46 -0
  119. package/api/ripple/rounding_pb.ts +69 -0
  120. package/api/ripple/untaggedgroup_pb.js +28 -0
  121. package/api/ripple/untaggedgroup_pb.ts +151 -0
  122. package/api/ripple/v1/accountsupportplan_pb.js +59 -0
  123. package/api/ripple/v1/accountsupportplan_pb.ts +98 -0
  124. package/api/ripple/v1/adjustmententry_pb.js +31 -0
  125. package/api/ripple/v1/adjustmententry_pb.ts +275 -0
  126. package/api/ripple/v1/dashboard_pb.js +61 -0
  127. package/api/ripple/v1/dashboard_pb.ts +661 -0
  128. package/api/ripple/v1/export_pb.js +16 -0
  129. package/api/ripple/v1/export_pb.ts +49 -0
  130. package/api/ripple/v1/invoiceservicediscounts_pb.js +48 -0
  131. package/api/ripple/v1/invoiceservicediscounts_pb.ts +298 -0
  132. package/api/ripple/yearmonth_pb.js +16 -0
  133. package/api/ripple/yearmonth_pb.ts +35 -0
  134. package/api/user_pb.js +26 -0
  135. package/api/user_pb.ts +124 -0
  136. package/api/utilization_pb.js +21 -0
  137. package/api/utilization_pb.ts +78 -0
  138. package/api/wave/adjustment_pb.js +16 -0
  139. package/api/wave/adjustment_pb.ts +105 -0
  140. package/api/wave/budget_pb.js +27 -0
  141. package/api/wave/budget_pb.ts +122 -0
  142. package/billing/v1/billing_pb.js +952 -0
  143. package/billing/v1/billing_pb.ts +7570 -0
  144. package/billing/v1/client.js +9 -0
  145. package/billing/v1/client.ts +7 -0
  146. package/conn/conn.js +38 -0
  147. package/conn/conn.ts +46 -0
  148. package/cost/v1/client.js +9 -0
  149. package/cost/v1/client.ts +7 -0
  150. package/cost/v1/cost_pb.js +721 -0
  151. package/cost/v1/cost_pb.ts +5845 -0
  152. package/cover/v1/client.js +9 -0
  153. package/cover/v1/client.ts +7 -0
  154. package/cover/v1/cover_pb.js +2085 -0
  155. package/cover/v1/cover_pb.ts +12883 -0
  156. package/flow/v1/client.js +9 -0
  157. package/flow/v1/client.ts +7 -0
  158. package/flow/v1/flow_pb.js +265 -0
  159. package/flow/v1/flow_pb.ts +2496 -0
  160. package/google/api/annotations_pb.js +29 -0
  161. package/google/api/annotations_pb.ts +39 -0
  162. package/google/api/auth_pb.js +47 -0
  163. package/google/api/auth_pb.ts +295 -0
  164. package/google/api/backend_pb.js +31 -0
  165. package/google/api/backend_pb.ts +97 -0
  166. package/google/api/billing_pb.js +32 -0
  167. package/google/api/billing_pb.ts +104 -0
  168. package/google/api/client_pb.js +101 -0
  169. package/google/api/client_pb.ts +114 -0
  170. package/google/api/config_change_pb.js +71 -0
  171. package/google/api/config_change_pb.ts +161 -0
  172. package/google/api/consumer_pb.js +73 -0
  173. package/google/api/consumer_pb.ts +156 -0
  174. package/google/api/context_pb.js +31 -0
  175. package/google/api/context_pb.ts +105 -0
  176. package/google/api/control_pb.js +26 -0
  177. package/google/api/control_pb.ts +52 -0
  178. package/google/api/distribution_pb.js +58 -0
  179. package/google/api/distribution_pb.ts +388 -0
  180. package/google/api/documentation_pb.js +36 -0
  181. package/google/api/documentation_pb.ts +238 -0
  182. package/google/api/endpoint_pb.js +27 -0
  183. package/google/api/endpoint_pb.ts +105 -0
  184. package/google/api/field_behavior_pb.js +103 -0
  185. package/google/api/field_behavior_pb.ts +119 -0
  186. package/google/api/http_pb.js +36 -0
  187. package/google/api/http_pb.ts +420 -0
  188. package/google/api/httpbody_pb.js +27 -0
  189. package/google/api/httpbody_pb.ts +103 -0
  190. package/google/api/label_pb.js +56 -0
  191. package/google/api/label_pb.ts +97 -0
  192. package/google/api/launch_stage_pb.js +92 -0
  193. package/google/api/launch_stage_pb.ts +105 -0
  194. package/google/api/log_pb.js +27 -0
  195. package/google/api/log_pb.ts +86 -0
  196. package/google/api/logging_pb.js +32 -0
  197. package/google/api/logging_pb.ts +124 -0
  198. package/google/api/metric_pb.js +128 -0
  199. package/google/api/metric_pb.ts +322 -0
  200. package/google/api/monitored_resource_pb.js +38 -0
  201. package/google/api/monitored_resource_pb.ts +188 -0
  202. package/google/api/monitoring_pb.js +32 -0
  203. package/google/api/monitoring_pb.ts +130 -0
  204. package/google/api/quota_pb.js +37 -0
  205. package/google/api/quota_pb.ts +351 -0
  206. package/google/api/resource_pb.js +118 -0
  207. package/google/api/resource_pb.ts +410 -0
  208. package/google/api/service_pb.js +45 -0
  209. package/google/api/service_pb.ts +302 -0
  210. package/google/api/source_info_pb.js +27 -0
  211. package/google/api/source_info_pb.ts +51 -0
  212. package/google/api/system_parameter_pb.js +36 -0
  213. package/google/api/system_parameter_pb.ts +157 -0
  214. package/google/api/usage_pb.js +32 -0
  215. package/google/api/usage_pb.ts +141 -0
  216. package/google/longrunning/operations_pb.js +90 -0
  217. package/google/longrunning/operations_pb.ts +434 -0
  218. package/google/rpc/code_pb.js +244 -0
  219. package/google/rpc/code_pb.ts +268 -0
  220. package/google/rpc/context/attribute_context_pb.js +57 -0
  221. package/google/rpc/context/attribute_context_pb.ts +532 -0
  222. package/google/rpc/error_details_pb.js +92 -0
  223. package/google/rpc/error_details_pb.ts +513 -0
  224. package/google/rpc/status_pb.js +27 -0
  225. package/google/rpc/status_pb.ts +74 -0
  226. package/iam/v1/client.js +9 -0
  227. package/iam/v1/client.ts +8 -0
  228. package/iam/v1/iam_pb.js +285 -0
  229. package/iam/v1/iam_pb.ts +1698 -0
  230. package/kvstore/v1/kvstore_pb.js +40 -0
  231. package/kvstore/v1/kvstore_pb.ts +155 -0
  232. package/operations/v1/operations_pb.js +52 -0
  233. package/operations/v1/operations_pb.ts +235 -0
  234. package/org/v1/client.js +9 -0
  235. package/org/v1/client.ts +7 -0
  236. package/org/v1/org_pb.js +61 -0
  237. package/org/v1/org_pb.ts +321 -0
  238. package/package.json +22 -0
  239. package/preferences/v1/client.js +9 -0
  240. package/preferences/v1/client.ts +8 -0
  241. package/preferences/v1/preferences_pb.js +29 -0
  242. package/preferences/v1/preferences_pb.ts +63 -0
  243. package/pricing/v1/client.js +9 -0
  244. package/pricing/v1/client.ts +7 -0
  245. package/pricing/v1/pricing_pb.js +60 -0
  246. package/pricing/v1/pricing_pb.ts +311 -0
  247. package/prism/v1/client.js +9 -0
  248. package/prism/v1/client.ts +7 -0
  249. package/prism/v1/prism_pb.js +250 -0
  250. package/prism/v1/prism_pb.ts +1396 -0
  251. package/protoc-gen-openapiv2/options/annotations_pb.js +58 -0
  252. package/protoc-gen-openapiv2/options/annotations_pb.ts +72 -0
  253. package/protoc-gen-openapiv2/options/openapiv2_pb.js +253 -0
  254. package/protoc-gen-openapiv2/options/openapiv2_pb.ts +1313 -0
  255. package/protos/entity_pb.js +17 -0
  256. package/protos/entity_pb.ts +49 -0
  257. package/protos/message_pb.js +16 -0
  258. package/protos/message_pb.ts +40 -0
  259. package/protos/operation_pb.js +33 -0
  260. package/protos/operation_pb.ts +198 -0
  261. package/tsconfig.json +12 -0
  262. package/vortex/v1/client.js +9 -0
  263. package/vortex/v1/client.ts +7 -0
  264. package/vortex/v1/vortex_pb.js +65 -0
  265. package/vortex/v1/vortex_pb.ts +280 -0
@@ -0,0 +1,407 @@
1
+ "use strict";
2
+ // @generated by protoc-gen-es v2.7.0 with parameter "target=ts"
3
+ // @generated from file api/cover/recommendation/aws.proto (package blueapi.api.cover.recommendation.aws, syntax proto3)
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AWSResourceDetails_RDSDetails_DBInstanceDetails_RDSMetricsSchema = exports.AWSResourceDetails_RDSDetails_DBInstanceDetails_StorageSchema = exports.AWSResourceDetails_RDSDetails_DBInstanceDetailsSchema = exports.AWSResourceDetails_RDSDetailsSchema = exports.AWSResourceDetails_EC2Details_RISpecsDetailsSchema = exports.AWSResourceDetails_EC2Details_InstanceDetails_EIPDetailsSchema = exports.AWSResourceDetails_EC2Details_InstanceDetails_EC2MetricsSchema = exports.AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetails_NatGatewayMetricsSchema = exports.AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetailsSchema = exports.AWSResourceDetails_EC2Details_InstanceDetailsSchema = exports.AWSResourceDetails_EC2DetailsSchema = exports.AWSResourceDetails_ElastiCacheDetails_NodeDetailsSchema = exports.AWSResourceDetails_ElastiCacheDetailsSchema = exports.AWSResourceDetails_RedshiftDetails_NodeDetailsSchema = exports.AWSResourceDetails_RedshiftDetails_ClusterDetailsSchema = exports.AWSResourceDetails_RedshiftDetailsSchema = exports.AWSResourceDetails_OpensearchDetails_InstanceDetailsSchema = exports.AWSResourceDetails_OpensearchDetailsSchema = exports.AWSResourceDetails_MemoryDBDetails_NodeDetailsSchema = exports.AWSResourceDetails_MemoryDBDetailsSchema = exports.AWSResourceDetails_S3Details_BucketDetailsSchema = exports.AWSResourceDetails_S3DetailsSchema = exports.AWSResourceDetails_ELBDetails_LoadBalancerSchema = exports.AWSResourceDetails_ELBDetailsSchema = exports.AWSResourceDetails_ReservedInstance_RIMetricsSchema = exports.AWSResourceDetails_ReservedInstanceSchema = exports.AWSResourceDetails_ComprehendDetails_EndpointSchema = exports.AWSResourceDetails_ComprehendDetailsSchema = exports.AWSResourceDetails_NetworkFirewallDetails_EndpointSchema = exports.AWSResourceDetails_NetworkFirewallDetailsSchema = exports.AWSResourceDetails_Route53DetailsSchema = exports.AWSResourceDetailsSchema = exports.CostOptimizationHubRecommendations_Details_CostCalculation_UsageTypesSchema = exports.CostOptimizationHubRecommendations_Details_CostCalculation_EstimatedDiscountsSchema = exports.CostOptimizationHubRecommendations_Details_CostCalculationSchema = exports.CostOptimizationHubRecommendations_DetailsSchema = exports.CostOptimizationHubRecommendationsSchema = exports.CostExplorerRecommendations_TerminateEC2Schema = exports.CostExplorerRecommendations_EC2Rightsize_DetailsSchema = exports.CostExplorerRecommendations_EC2RightsizeSchema = exports.CostExplorerRecommendations_DiscountPlans_SPOption_EstOutcomeFromPurchaseSPSchema = exports.CostExplorerRecommendations_DiscountPlans_SPOption_CurrentUtilizationDetailsSchema = exports.CostExplorerRecommendations_DiscountPlans_SPOptionSchema = exports.CostExplorerRecommendations_DiscountPlans_RIOption_EstOutcomeFromPurchaseRISchema = exports.CostExplorerRecommendations_DiscountPlans_RIOptionSchema = exports.CostExplorerRecommendations_DiscountPlansSchema = exports.CostExplorerRecommendationsSchema = exports.MetricData_MetricsSchema = exports.MetricDataSchema = exports.file_api_cover_recommendation_aws = void 0;
7
+ exports.AWSRecommendationsSchema = exports.TrustedAdvisorRecommendations_LambdaWithExcessiveTimeoutsSchema = exports.TrustedAdvisorRecommendations_UnderutilizedRedshiftClusterSchema = exports.TrustedAdvisorRecommendations_ComprehendUnderutilizedEndpointsSchema = exports.TrustedAdvisorRecommendations_EC2RILeaseExpirationSchema = exports.TrustedAdvisorRecommendations_AmazonEC2InstanceStoppedSchema = exports.TrustedAdvisorRecommendations_IdleLoadBalancerSchema = exports.TrustedAdvisorRecommendations_UnassociatedEIPSchema = exports.TrustedAdvisorRecommendations_UnderutilizedEBSVolumeSchema = exports.TrustedAdvisorRecommendations_LambdaHighErrorRatesSchema = exports.TrustedAdvisorRecommendations_S3IncompleteMPUSchema = exports.TrustedAdvisorRecommendations_RDSIdleDBInstancesSchema = exports.TrustedAdvisorRecommendations_LowUtilizationEC2InstancesSchema = exports.TrustedAdvisorRecommendations_AWSWellArchitectedHighRiskIssuesSchema = exports.TrustedAdvisorRecommendations_CommonDetailsSchema = exports.TrustedAdvisorRecommendations_EC2ConsolidationForMSSqlServerSchema = exports.TrustedAdvisorRecommendations_EC2OverProvisionedForMSSqlServerSchema = exports.TrustedAdvisorRecommendations_InactiveNATGatewaysSchema = exports.TrustedAdvisorRecommendations_NetworkFirewallEndpointAZIndependenceSchema = exports.TrustedAdvisorRecommendations_InactiveAWSNetworkFirewallSchema = exports.TrustedAdvisorRecommendations_Route53LatencyResourceRecordsSetsSchema = exports.TrustedAdvisorRecommendationsSchema = exports.AWSResourceDetails_LambdaDetails_FunctionDetailsSchema = exports.AWSResourceDetails_LambdaDetailsSchema = exports.AWSResourceDetails_ECSDetails_ServiceDetailsSchema = exports.AWSResourceDetails_ECSDetailsSchema = exports.AWSResourceDetails_EC2AutoScalingGroupDetails_InstanceConfigurationDetailsSchema = exports.AWSResourceDetails_EC2AutoScalingGroupDetailsSchema = exports.AWSResourceDetails_EBSDetails_VolumeDetailsSchema = exports.AWSResourceDetails_EBSDetailsSchema = void 0;
8
+ const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
9
+ /**
10
+ * Describes the file api/cover/recommendation/aws.proto.
11
+ */
12
+ exports.file_api_cover_recommendation_aws = (0, codegenv2_1.fileDesc)("CiJhcGkvY292ZXIvcmVjb21tZW5kYXRpb24vYXdzLnByb3RvEiRibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MitgEKCk1ldHJpY0RhdGESSQoHbWV0cmljcxgBIAMoCzI4LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5NZXRyaWNEYXRhLk1ldHJpY3MSHQoVbWF4TWV0cmljSW5QZXJjZW50YWdlGAIgASgBEhYKDm1ldHJpY0NhcGFjaXR5GAMgASgJGiYKB01ldHJpY3MSDAoEZGF0ZRgBIAEoCRINCgV2YWx1ZRgCIAEoASKaGgobQ29zdEV4cGxvcmVyUmVjb21tZW5kYXRpb25zEmQKDGVjMlJpZ2h0c2l6ZRgCIAEoCzJOLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5Db3N0RXhwbG9yZXJSZWNvbW1lbmRhdGlvbnMuRUMyUmlnaHRzaXplEmYKDWRpc2NvdW50UGxhbnMYASABKAsyTy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQ29zdEV4cGxvcmVyUmVjb21tZW5kYXRpb25zLkRpc2NvdW50UGxhbnMSZAoMdGVybWluYXRlRWMyGAMgASgLMk4uYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucy5UZXJtaW5hdGVFQzIalhMKDURpc2NvdW50UGxhbnMSFQoNcGF5bWVudE9wdGlvbhgBIAEoCRIMCgR0ZXJtGAIgASgJEhMKC3VwZnJvbnRDb3N0GAMgASgBEmoKCHJpT3B0aW9uGAQgASgLMlguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucy5EaXNjb3VudFBsYW5zLlJJT3B0aW9uEmoKCHNwT3B0aW9uGAUgASgLMlguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucy5EaXNjb3VudFBsYW5zLlNQT3B0aW9uGrwKCghSSU9wdGlvbhJXCgplYzJEZXRhaWxzGAEgASgLMkMuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJEZXRhaWxzElcKCnJkc0RldGFpbHMYCSABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJEU0RldGFpbHMSZwoSZWxhc3RpY2FjaGVEZXRhaWxzGAogASgLMksuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FbGFzdGlDYWNoZURldGFpbHMSYQoPcmVkc2hpZnREZXRhaWxzGAsgASgLMkguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5SZWRzaGlmdERldGFpbHMSZQoRb3BlbnNlYXJjaERldGFpbHMYDCABKAsySi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLk9wZW5zZWFyY2hEZXRhaWxzEmEKD21lbW9yeURCRGV0YWlscxgNIAEoCzJILmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuTWVtb3J5REJEZXRhaWxzEiIKGnJlY29tbWVuZGVkTm9ybWFsaXplZFVuaXRzGAIgASgBEi0KJXJlY29tbWVuZGVkTnVtYmVyT2ZJbnN0YW5jZVRvUHVyY2hhc2UYAyABKAESkwEKGGVzdE91dGNvbWVGcm9tUHVyY2hhc2VSSRgEIAEoCzJxLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5Db3N0RXhwbG9yZXJSZWNvbW1lbmRhdGlvbnMuRGlzY291bnRQbGFucy5SSU9wdGlvbi5Fc3RPdXRjb21lRnJvbVB1cmNoYXNlUkkSDgoGcmVnaW9uGAUgASgJEhgKEHNpemVGbGV4RWxpZ2libGUYBiABKAgSDwoHdGVuYW5jeRgHIAEoCRIZChFjdXJyZW50R2VuZXJhdGlvbhgIIAEoCBqoAwoYRXN0T3V0Y29tZUZyb21QdXJjaGFzZVJJEhYKDmF2ZVV0aWxpemF0aW9uGAEgASgBEiUKHWF2ZU5vcm1hbGl6ZXNVbml0c1VzZWRQZXJIb3VyGAIgASgBEiYKHmF2ZU51bWJlck9mSW5zdGFuY2VVc2VkUGVySG91chgDIAEoARIZChFicmVha0V2ZW5Jbk1vbnRocxgEIAEoARIbChNtb250aGx5T25EZW1hbmRDb3N0GAUgASgBEhUKDW1vbnRobHlSSUNvc3QYBiABKAESFgoObW9udGhseVNhdmluZ3MYByABKAESIAoYbW9udGhseVNhdmluZ3NQZXJjZW50YWdlGAggASgBEiUKHW1heE5vcm1hbGl6ZWRVbml0c1VzZWRQZXJIb3VyGAkgASgBEiUKHW1pbk5vcm1hbGl6ZWRVbml0c1VzZWRQZXJIb3VyGAogASgBEiYKHm1pbk51bWJlck9mSW5zdGFuY2VVc2VkUGVySG91chgLIAEoARImCh5tYXhOdW1iZXJPZkluc3RhbmNlVXNlZFBlckhvdXIYDCABKAEaswYKCFNQT3B0aW9uEgwKBHR5cGUYASABKAkSFAoMY3VycmVuY3lDb2RlGAIgASgJEiIKGmhvdXJseUNvbW1pdG1lbnRUb1B1cmNoYXNlGAMgASgBEhIKCm9mZmVyaW5nSWQYBCABKAkSlQEKGWN1cnJlbnRVdGlsaXphdGlvbkRldGFpbHMYBSABKAsyci5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQ29zdEV4cGxvcmVyUmVjb21tZW5kYXRpb25zLkRpc2NvdW50UGxhbnMuU1BPcHRpb24uQ3VycmVudFV0aWxpemF0aW9uRGV0YWlscxKTAQoYZXN0T3V0Y29tZUZyb21QdXJjaGFzZVNQGAYgASgLMnEuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucy5EaXNjb3VudFBsYW5zLlNQT3B0aW9uLkVzdE91dGNvbWVGcm9tUHVyY2hhc2VTUBrdAQoZQ3VycmVudFV0aWxpemF0aW9uRGV0YWlscxITCgthdmVDb3ZlcmFnZRgBIAEoARIcChRhdmVIb3VyT25EZW1hbmRTcGVuZBgCIAEoARIeChZtYXhIb3VybHlPbkRlbWFuZFNwZW5kGAMgASgBEh4KFm1pbkhvdXJseU9uRGVtYW5kU3BlbmQYBCABKAESIAoYZXhpc3RpbmdIb3VybHlDb21taXRtZW50GAUgASgBEisKI2VzdE9uRGVtYW5kQ29zdFdpdGhIb3VybHlDb21taXRtZW50GAYgASgBGrwBChhFc3RPdXRjb21lRnJvbVB1cmNoYXNlU1ASEwoLYXZlQ292ZXJhZ2UYASABKAESFgoOYXZlVXRpbGl6YXRpb24YAiABKAESHAoUbW9udGhseVNhdmluZ3NBbW91bnQYAyABKAESFAoMb25EZW1hbmRDb3N0GAQgASgBEgsKA3JvaRgFIAEoARIXCg9zYXZpbmdzUGxhbkNvc3QYBiABKAESGQoRc2F2aW5nc1BlcmNlbnRhZ2UYByABKAEarwMKDEVDMlJpZ2h0c2l6ZRJuCg5jdXJyZW50RGV0YWlscxgBIAEoCzJWLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5Db3N0RXhwbG9yZXJSZWNvbW1lbmRhdGlvbnMuRUMyUmlnaHRzaXplLkRldGFpbHMSdQoVcmVjb21tZW5kYXRpb25EZXRhaWxzGAIgASgLMlYuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucy5FQzJSaWdodHNpemUuRGV0YWlscxq3AQoHRGV0YWlscxITCgttb250aGx5Q29zdBgBIAEoARIcChRtb250aGx5U2F2aW5nc0Ftb3VudBgCIAEoARIgChhtb250aGx5U2F2aW5nc1BlcmNlbnRhZ2UYAyABKAESVwoKZWMyRGV0YWlscxgEIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscxp8CgxUZXJtaW5hdGVFQzISVwoKZWMyRGV0YWlscxgBIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscxITCgttb250aGx5Q29zdBgCIAEoASK8DAoiQ29zdE9wdGltaXphdGlvbkh1YlJlY29tbWVuZGF0aW9ucxJoCg5jdXJyZW50RGV0YWlscxgBIAEoCzJQLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5Db3N0T3B0aW1pemF0aW9uSHViUmVjb21tZW5kYXRpb25zLkRldGFpbHMSbwoVcmVjb21tZW5kYXRpb25EZXRhaWxzGAIgASgLMlAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RPcHRpbWl6YXRpb25IdWJSZWNvbW1lbmRhdGlvbnMuRGV0YWlscxq6CgoHRGV0YWlscxJ5Cg9jb3N0Q2FsY3VsYXRpb24YASABKAsyYC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQ29zdE9wdGltaXphdGlvbkh1YlJlY29tbWVuZGF0aW9ucy5EZXRhaWxzLkNvc3RDYWxjdWxhdGlvbhJXCgplYzJEZXRhaWxzGAIgASgLMkMuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJEZXRhaWxzElcKCnJkc0RldGFpbHMYAyABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJEU0RldGFpbHMSVwoKZWJzRGV0YWlscxgEIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUJTRGV0YWlscxJ3ChplYzJBdXRvU2NhbGluZ0dyb3VwRGV0YWlscxgFIAEoCzJTLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyQXV0b1NjYWxpbmdHcm91cERldGFpbHMSVwoKZWNzRGV0YWlscxgGIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUNTRGV0YWlscxJdCg1sYW1iZGFEZXRhaWxzGAcgASgLMkYuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5MYW1iZGFEZXRhaWxzGvcECg9Db3N0Q2FsY3VsYXRpb24SIgoaZXN0aW1hdGVkQ29zdEFmdGVyRGlzY291bnQYASABKAESIwobZXN0aW1hdGVkQ29zdEJlZm9yZURpc2NvdW50GAIgASgBEi4KJmVzdGltYXRlZE5ldFVudXNlZEFtb3J0aXplZENvbW1pdG1lbnRzGAMgASgBEo8BChJlc3RpbWF0ZWREaXNjb3VudHMYBCABKAsycy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQ29zdE9wdGltaXphdGlvbkh1YlJlY29tbWVuZGF0aW9ucy5EZXRhaWxzLkNvc3RDYWxjdWxhdGlvbi5Fc3RpbWF0ZWREaXNjb3VudHMSfwoKdXNhZ2VUeXBlcxgFIAMoCzJrLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5Db3N0T3B0aW1pemF0aW9uSHViUmVjb21tZW5kYXRpb25zLkRldGFpbHMuQ29zdENhbGN1bGF0aW9uLlVzYWdlVHlwZXMabAoSRXN0aW1hdGVkRGlzY291bnRzEiEKGXJlc2VydmVkSW5zdGFuY2VzRGlzY291bnQYASABKAESHAoUc2F2aW5nc1BsYW5zRGlzY291bnQYAiABKAESFQoNb3RoZXJEaXNjb3VudBgDIAEoARpqCgpVc2FnZVR5cGVzEhEKCW9wZXJhdGlvbhgBIAEoCRITCgtwcm9kdWN0Q29kZRgCIAEoCRIMCgR1bml0GAMgASgJEhMKC3VzYWdlQW1vdW50GAQgASgBEhEKCXVzYWdlVHlwZRgFIAEoCSKEKgoSQVdTUmVzb3VyY2VEZXRhaWxzGnwKDlJvdXRlNTNEZXRhaWxzEhYKDmhvc3RlZFpvbmVOYW1lGAEgASgJEhQKDGhvc3RlZFpvbmVJZBgCIAEoCRIdChVyZXNvdXJjZVJlY29yZFNldE5hbWUYAyABKAkSHQoVcmVzb3VyY2VSZWNvcmRTZXRUeXBlGAQgASgJGuUBChZOZXR3b3JrRmlyZXdhbGxEZXRhaWxzEmoKCGVuZHBvaW50GAEgASgLMlguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5OZXR3b3JrRmlyZXdhbGxEZXRhaWxzLkVuZHBvaW50EgsKA2FybhgCIAEoCRINCgV2cGNJZBgDIAEoCRIPCgdzdWJuZXRzGAQgAygJGjIKCEVuZHBvaW50EgoKAmlkGAEgASgJEg4KBnN1Ym5ldBgCIAEoCRIKCgJhehgDIAEoCRrgAQoRQ29tcHJlaGVuZERldGFpbHMSZQoIZW5kcG9pbnQYASABKAsyUy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkNvbXByZWhlbmREZXRhaWxzLkVuZHBvaW50GmQKCEVuZHBvaW50EgsKA2FybhgBIAEoCRIgChhwcm92aXNpb25lZEluZmVyZW5jZVVuaXQYAiABKAESGQoRYXV0b1NjYWxpbmdTdGF0dXMYAyABKAkSDgoGc3RhdHVzGAQgASgJGrcCChBSZXNlcnZlZEluc3RhbmNlEhYKDmV4cGlyYXRpb25EYXRlGAEgASgJEhUKDWluc3RhbmNlQ291bnQYAiABKAESFAoMaW5zdGFuY2VUeXBlGAMgASgJEhAKCHBsYXRmb3JtGAQgASgJEgoKAmlkGAUgASgJEmQKB21ldHJpY3MYBiABKAsyUy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJlc2VydmVkSW5zdGFuY2UuUklNZXRyaWNzGloKCVJJTWV0cmljcxJNCgt1dGlsaXphdGlvbhgBIAMoCzI4LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5NZXRyaWNEYXRhLk1ldHJpY3MakgEKCkVMQkRldGFpbHMSZgoMbG9hZEJhbGFuY2VyGAEgASgLMlAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FTEJEZXRhaWxzLkxvYWRCYWxhbmNlchocCgxMb2FkQmFsYW5jZXISDAoEbmFtZRgBIAEoCRqZAQoJUzNEZXRhaWxzEmAKBmJ1Y2tldBgBIAEoCzJQLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuUzNEZXRhaWxzLkJ1Y2tldERldGFpbHMaKgoNQnVja2V0RGV0YWlscxILCgNhcm4YASABKAkSDAoEbmFtZRgCIAEoCRqiAQoPTWVtb3J5REJEZXRhaWxzEmIKBG5vZGUYASABKAsyVC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLk1lbW9yeURCRGV0YWlscy5Ob2RlRGV0YWlscxorCgtOb2RlRGV0YWlscxIMCgR0eXBlGAEgASgJEg4KBmZhbWlseRgCIAEoCRrBAQoRT3BlbnNlYXJjaERldGFpbHMSbAoIaW5zdGFuY2UYASABKAsyWi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLk9wZW5zZWFyY2hEZXRhaWxzLkluc3RhbmNlRGV0YWlscxo+Cg9JbnN0YW5jZURldGFpbHMSFQoNaW5zdGFuY2VDbGFzcxgBIAEoCRIUCgxpbnN0YW5jZVNpemUYAiABKAkazwIKD1JlZHNoaWZ0RGV0YWlscxJoCgdjbHVzdGVyGAEgASgLMlcuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5SZWRzaGlmdERldGFpbHMuQ2x1c3RlckRldGFpbHMSYgoEbm9kZRgCIAEoCzJULmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuUmVkc2hpZnREZXRhaWxzLk5vZGVEZXRhaWxzGkEKDkNsdXN0ZXJEZXRhaWxzEgwKBHR5cGUYASABKAkSEQoJY2x1c3RlcklkGAIgASgJEg4KBnN0YXR1cxgDIAEoCRorCgtOb2RlRGV0YWlscxIMCgR0eXBlGAEgASgJEg4KBmZhbWlseRgCIAEoCRqoAQoSRWxhc3RpQ2FjaGVEZXRhaWxzEmUKBG5vZGUYASABKAsyVy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVsYXN0aUNhY2hlRGV0YWlscy5Ob2RlRGV0YWlscxorCgtOb2RlRGV0YWlscxIMCgR0eXBlGAEgASgJEg4KBmZhbWlseRgCIAEoCRqADQoKRUMyRGV0YWlscxJlCghpbnN0YW5jZRgBIAEoCzJTLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscy5JbnN0YW5jZURldGFpbHMSagoOcmlTcGVjc0RldGFpbHMYAiABKAsyUi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVDMkRldGFpbHMuUklTcGVjc0RldGFpbHMa9QoKD0luc3RhbmNlRGV0YWlscxIMCgR0eXBlGAEgASgJEhQKDGFyY2hpdGVjdHVyZRgLIAEoCRIPCgd0ZW5hbmN5GAIgASgJEhAKCHBsYXRmb3JtGAMgASgJEg4KBmZhbWlseRgEIAEoCRJvCgdtZXRyaWNzGAUgASgLMl4uYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJEZXRhaWxzLkluc3RhbmNlRGV0YWlscy5FQzJNZXRyaWNzEgwKBG5hbWUYBiABKAkSawoDZWlwGAcgASgLMl4uYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJEZXRhaWxzLkluc3RhbmNlRGV0YWlscy5FSVBEZXRhaWxzEg4KBnN0YXR1cxgIIAEoCRIMCgR2Q3B1GAkgASgJEnkKCm5hdEdhdGV3YXkYCiABKAsyZS5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVDMkRldGFpbHMuSW5zdGFuY2VEZXRhaWxzLk5hdEdhdGV3YXlEZXRhaWxzGokEChFOYXRHYXRld2F5RGV0YWlscxIKCgJpZBgBIAEoCRIQCghzdWJuZXRJZBgCIAEoCRINCgV2cGNJZBgDIAEoCRKIAQoHbWV0cmljcxgEIAEoCzJ3LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscy5JbnN0YW5jZURldGFpbHMuTmF0R2F0ZXdheURldGFpbHMuTmF0R2F0ZXdheU1ldHJpY3MauwIKEU5hdEdhdGV3YXlNZXRyaWNzEkkKD2J5dGVzSW5Gcm9tRGVzdBgBIAEoCzIwLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5NZXRyaWNEYXRhEkgKDmJ5dGVzSW5Gcm9tU3JjGAIgASgLMjAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLk1ldHJpY0RhdGESSAoOYnl0ZXNPdXRUb0Rlc3QYAyABKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuTWV0cmljRGF0YRJHCg1ieXRlc091dFRvU3JjGAQgASgLMjAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLk1ldHJpY0RhdGEa2AIKCkVDMk1ldHJpY3MSTwoVY3B1VXRpbGl6YXRpb25NZXRyaWNzGAEgASgLMjAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLk1ldHJpY0RhdGESUAoWZGlza1V0aWxpemF0aW9uTWV0cmljcxgCIAEoCzIwLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5NZXRyaWNEYXRhElMKGW5ldHdvcmtVdGlsaXphdGlvbk1ldHJpY3MYAyABKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuTWV0cmljRGF0YRJSChhtZW1vcnlVdGlsaXphdGlvbk1ldHJpY3MYBCABKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuTWV0cmljRGF0YRofCgpFSVBEZXRhaWxzEhEKCWlwQWRkcmVzcxgBIAEoCRonCg5SSVNwZWNzRGV0YWlscxIVCg1vZmZlcmluZ0NsYXNzGAEgASgJGssFCgpSRFNEZXRhaWxzEmkKCmRiSW5zdGFuY2UYASABKAsyVS5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJEU0RldGFpbHMuREJJbnN0YW5jZURldGFpbHMa0QQKEURCSW5zdGFuY2VEZXRhaWxzEm4KB3N0b3JhZ2UYASABKAsyXS5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJEU0RldGFpbHMuREJJbnN0YW5jZURldGFpbHMuU3RvcmFnZRIMCgRuYW1lGAkgASgJEhUKDWluc3RhbmNlQ2xhc3MYAiABKAkSEQoJZGJFZGl0aW9uGAMgASgJEhAKCGRiRW5naW5lGAQgASgJEhkKEWRlcGxveW1lbnRPcHRpb25zGAUgASgJEg4KBmZhbWlseRgGIAEoCRIPCgdtdWx0aUFaGAogASgJEhQKDGxpY2Vuc2VNb2RlbBgHIAEoCRJxCgdtZXRyaWNzGAggASgLMmAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5SRFNEZXRhaWxzLkRCSW5zdGFuY2VEZXRhaWxzLlJEU01ldHJpY3MaXgoHU3RvcmFnZRIcChRhbGxvY2F0ZWRTdG9yYWdlSW5HYhgBIAEoARIMCgRpb3BzGAIgASgBEhkKEXN0b3JhZ2VUaHJvdWdocHV0GAMgASgBEgwKBHR5cGUYBCABKAkaXQoKUkRTTWV0cmljcxJPChVjcHVVdGlsaXphdGlvbk1ldHJpY3MYASABKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuTWV0cmljRGF0YRruAQoKRUJTRGV0YWlscxJoCg12b2x1bWVEZXRhaWxzGAEgASgLMlEuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQlNEZXRhaWxzLlZvbHVtZURldGFpbHMadgoNVm9sdW1lRGV0YWlscxIXCg9hdHRhY2htZW50U3RhdGUYASABKAkSDAoEaW9wcxgCIAEoARISCgp0aHJvdWdocHV0GAMgASgBEhAKCHNpemVJbkdiGAQgASgBEgwKBHR5cGUYBSABKAkSCgoCaWQYBiABKAka4wEKGkVDMkF1dG9TY2FsaW5nR3JvdXBEZXRhaWxzEpYBChxpbnN0YW5jZUNvbmZpZ3VyYXRpb25EZXRhaWxzGAEgASgLMnAuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJBdXRvU2NhbGluZ0dyb3VwRGV0YWlscy5JbnN0YW5jZUNvbmZpZ3VyYXRpb25EZXRhaWxzGiwKHEluc3RhbmNlQ29uZmlndXJhdGlvbkRldGFpbHMSDAoEdHlwZRgBIAEoCRrRAQoKRUNTRGV0YWlscxJjCgdzZXJ2aWNlGAEgASgLMlIuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQ1NEZXRhaWxzLlNlcnZpY2VEZXRhaWxzGl4KDlNlcnZpY2VEZXRhaWxzEhQKDGFyY2hpdGVjdHVyZRgBIAEoCRIWCg5tZW1vcnlTaXplSW5NQhgCIAEoAxIQCghwbGF0Zm9ybRgDIAEoCRIMCgR2Q3B1GAQgASgBGtcBCg1MYW1iZGFEZXRhaWxzEmgKCGZ1bmN0aW9uGAEgASgLMlYuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5MYW1iZGFEZXRhaWxzLkZ1bmN0aW9uRGV0YWlscxpcCg9GdW5jdGlvbkRldGFpbHMSFAoMYXJjaGl0ZWN0dXJlGAEgASgJEhYKDm1lbW9yeVNpemVJbk1CGAIgASgDEgsKA2FybhgDIAEoCRIOCgZzdGF0dXMYBCABKAkiuTIKHVRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zEhYKDnNldmVyaXR5U3RhdHVzGAEgASgJEhkKEXJlY29tbWVuZGF0aW9uQXJuGAIgASgJEhcKD2V4Y2x1c2lvblN0YXR1cxgDIAEoCRKCAQoabG93VXRpbGl6YXRpb25FYzJJbnN0YW5jZXMYBCABKAsyXi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuTG93VXRpbGl6YXRpb25FQzJJbnN0YW5jZXMScgoScmRzSWRsZURiSW5zdGFuY2VzGAUgASgLMlYuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLlJEU0lkbGVEQkluc3RhbmNlcxJsCg9zM0luY29tcGxldGVNUFUYBiABKAsyUy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuUzNJbmNvbXBsZXRlTVBVEnYKFGxhbWJkYUhpZ2hFcnJvclJhdGVzGAcgASgLMlguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLkxhbWJkYUhpZ2hFcnJvclJhdGVzEnoKFnVuZGVydXRpbGl6ZWRFQlNWb2x1bWUYCCABKAsyWi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuVW5kZXJ1dGlsaXplZEVCU1ZvbHVtZRJsCg91bmFzc29jaWF0ZWRFSVAYCSABKAsyUy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuVW5hc3NvY2lhdGVkRUlQEm4KEGlkbGVMb2FkQmFsYW5jZXIYCiABKAsyVC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuSWRsZUxvYWRCYWxhbmNlchJ5ChNlYzJJbnN0YW5jZXNTdG9wcGVkGAsgASgLMlwuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLkFtYXpvbkVDMkluc3RhbmNlU3RvcHBlZBJ2ChRlYzJSSUxlYXNlRXhwaXJhdGlvbhgMIAEoCzJYLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5UcnVzdGVkQWR2aXNvclJlY29tbWVuZGF0aW9ucy5FQzJSSUxlYXNlRXhwaXJhdGlvbhKOAQogY29tcHJlaGVuZFVuZGVydXRpbGl6ZWRFbmRwb2ludHMYDSABKAsyZC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuQ29tcHJlaGVuZFVuZGVydXRpbGl6ZWRFbmRwb2ludHMShgEKHHVuZGVydXRpbGl6ZWRSZWRzaGlmdENsdXN0ZXIYDiABKAsyYC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuVW5kZXJ1dGlsaXplZFJlZHNoaWZ0Q2x1c3RlchKEAQobbGFtYmRhV2l0aEV4Y2Vzc2l2ZVRpbWVvdXRzGA8gASgLMl8uYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLkxhbWJkYVdpdGhFeGNlc3NpdmVUaW1lb3V0cxKOAQogYXdzV2VsbEFyY2hpdGVjdGVkSGlnaFJpc2tJc3N1ZXMYECABKAsyZC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuQVdTV2VsbEFyY2hpdGVjdGVkSGlnaFJpc2tJc3N1ZXMSaAoNY29tbW9uRGV0YWlscxgRIAEoCzJRLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5UcnVzdGVkQWR2aXNvclJlY29tbWVuZGF0aW9ucy5Db21tb25EZXRhaWxzEnQKE2luYWN0aXZlTmF0R2F0ZXdheXMYEiABKAsyVy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuSW5hY3RpdmVOQVRHYXRld2F5cxKYAQolbmV0d29ya0ZpcmV3YWxsRW5kcG9pbnRBWkluZGVwZW5kZW5jZRgTIAEoCzJpLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5UcnVzdGVkQWR2aXNvclJlY29tbWVuZGF0aW9ucy5OZXR3b3JrRmlyZXdhbGxFbmRwb2ludEFaSW5kZXBlbmRlbmNlEn8KF2luYWN0aXZlTmV0d29ya0ZpcmV3YWxsGBQgASgLMl4uYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLkluYWN0aXZlQVdTTmV0d29ya0ZpcmV3YWxsEosBCh1lYzJPdmVycHJvdmlzaW9uZWRNU1NxbFNlcnZlchgVIAEoCzJkLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5UcnVzdGVkQWR2aXNvclJlY29tbWVuZGF0aW9ucy5FQzJPdmVyUHJvdmlzaW9uZWRGb3JNU1NxbFNlcnZlchKHAQobZWMyQ29uc29saWRhdGlvbk1TU3FsU2VydmVyGBYgASgLMmIuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLlRydXN0ZWRBZHZpc29yUmVjb21tZW5kYXRpb25zLkVDMkNvbnNvbGlkYXRpb25Gb3JNU1NxbFNlcnZlchKPAQogcm91dGU1M0xhdGVuY3lSZXNvdXJjZVJlY29yZFNldHMYFyABKAsyZS5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMuUm91dGU1M0xhdGVuY3lSZXNvdXJjZVJlY29yZHNTZXRzGoQBCiFSb3V0ZTUzTGF0ZW5jeVJlc291cmNlUmVjb3Jkc1NldHMSXwoOcm91dGU1M0RldGFpbHMYASABKAsyRy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJvdXRlNTNEZXRhaWxzGqMBChpJbmFjdGl2ZUFXU05ldHdvcmtGaXJld2FsbBJoCg9maXJld2FsbERldGFpbHMYASABKAsyTy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLk5ldHdvcmtGaXJld2FsbERldGFpbHMSGwoTdG90YWxCeXRlc1Byb2Nlc3NlZBgCIAEoARqvAQolTmV0d29ya0ZpcmV3YWxsRW5kcG9pbnRBWkluZGVwZW5kZW5jZRJqCghlbmRwb2ludBgBIAEoCzJYLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuTmV0d29ya0ZpcmV3YWxsRGV0YWlscy5FbmRwb2ludBIaChJjcm9zc0FaU3VibmV0c0xpc3QYAiABKAka4wEKE0luYWN0aXZlTkFUR2F0ZXdheXMSgAEKEW5hdEdhdGV3YXlEZXRhaWxzGAEgASgLMmUuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5FQzJEZXRhaWxzLkluc3RhbmNlRGV0YWlscy5OYXRHYXRld2F5RGV0YWlscxIaChJ0b3RhbEJ5dGVzRnJvbURlc3QYAiABKAESGQoRdG90YWxCeXRlc0Zyb21TcmMYAyABKAESEgoKdG90YWxCeXRlcxgEIAEoARq9AQogRUMyT3ZlclByb3Zpc2lvbmVkRm9yTVNTcWxTZXJ2ZXISZwoKZWMyRGV0YWlscxgBIAEoCzJTLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscy5JbnN0YW5jZURldGFpbHMSDwoHbWF4VkNwdRgCIAEoCRIfChdyZWNvbW1lbmRlZEluc3RhbmNlVHlwZRgDIAEoCRq0AQoeRUMyQ29uc29saWRhdGlvbkZvck1TU3FsU2VydmVyEmcKCmVjMkRldGFpbHMYASABKAsyUy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVDMkRldGFpbHMuSW5zdGFuY2VEZXRhaWxzEg8KB21pblZDcHUYAiABKAkSGAoQc3FsU2VydmVyRWRpdGlvbhgDIAEoCRpRCg1Db21tb25EZXRhaWxzEhUKDWF3c0NvbmZpZ1J1bGUYASABKAkSFwoPaW5wdXRQYXJhbWV0ZXJzGAIgASgJEhAKCHJlc291cmNlGAMgASgJGq8CCiBBV1NXZWxsQXJjaGl0ZWN0ZWRIaWdoUmlza0lzc3VlcxITCgt3b3JrbG9hZEFybhgBIAEoCRIUCgx3b3JrbG9hZE5hbWUYAiABKAkSFAoMcmV2aWV3ZXJOYW1lGAMgASgJEhQKDHdvcmtsb2FkVHlwZRgEIAEoCRIbChN3b3JrbG9hZFN0YXJ0ZWREYXRlGAUgASgJEiAKGHdvcmtsb2FkTGFzdE1vZGlmaWVkRGF0ZRgGIAEoCRIVCg1udW1iZXJPZklESFJJGAcgASgJEhsKE251bWJlck9mSFJJUmVzb2x2ZWQYCCABKAkSIQoZbnVtYmVyT2ZRdWVzdGlvbnNBbnN3ZXJlZBgJIAEoCRIeChZ0b3RhbE51bWJlck9mUXVlc3Rpb25zGAogASgJGrUBChpMb3dVdGlsaXphdGlvbkVDMkluc3RhbmNlcxJYCgtlYzJJbnN0YW5jZRgBIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscxIgChhhdmVDcHVVdGlsaXphdGlvbkJ5MTREYXkYAiABKAESGwoTYXZlTmV0d29ya0lPQnkxNERheRgDIAEoARqJAQoSUkRTSWRsZURCSW5zdGFuY2VzElcKCnJkc0RldGFpbHMYASABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJEU0RldGFpbHMSGgoSZGF5c0xhc3RDb25uZWN0aW9uGAIgASgJGqsBCg9TM0luY29tcGxldGVNUFUSVQoJczNEZXRhaWxzGAEgASgLMkIuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5TM0RldGFpbHMSJAocbGlmZWN5Y2xlUnVsZUZvckRlbGV0aW5nSU1QVRgCIAEoCRIbChNkYXlzQWZ0ZXJJbml0aWF0aW9uGAMgASgJGrsCChRMYW1iZGFIaWdoRXJyb3JSYXRlcxIaChJhdmdEYWlseUVycm9yUmF0ZXMYASABKAESFwoPYXZnRGFpbHlJbnZva2VzGAIgASgBEhwKFGN1cnJlbnREYXlFcnJvclJhdGVzGAMgASgBEhkKEWN1cnJlbnREYXlJbnZva2VzGAQgASgBEhwKFGRhdGVGb3JNYXhFcnJvclJhdGVzGAUgASgJEhwKFGxvc3REYWlseUNvbXB1dGVDb3N0GAYgASgBEhoKEm1heERhaWx5RXJyb3JSYXRlcxgHIAEoARJdCg1sYW1iZGFEZXRhaWxzGAggASgLMkYuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5MYW1iZGFEZXRhaWxzGo0BChZVbmRlcnV0aWxpemVkRUJTVm9sdW1lElcKCmVic0RldGFpbHMYASABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVCU0RldGFpbHMSGgoSbW9udGhseVN0b3JhZ2VDb3N0GAIgASgBGoUBCg9VbmFzc29jaWF0ZWRFSVAScgoKZWlwRGV0YWlscxgBIAEoCzJeLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscy5JbnN0YW5jZURldGFpbHMuRUlQRGV0YWlscxp7ChBJZGxlTG9hZEJhbGFuY2VyElcKCmVsYkRldGFpbHMYASABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkVMQkRldGFpbHMSDgoGcmVhc29uGAIgASgJGrUBChhBbWF6b25FQzJJbnN0YW5jZVN0b3BwZWQSVwoKZWMyRGV0YWlscxgBIAEoCzJDLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuRUMyRGV0YWlscxIVCg1hd3NDb25maWdSdWxlGAIgASgJEhcKD2lucHV0UGFyYW1ldGVycxgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRq7AQoURUMyUklMZWFzZUV4cGlyYXRpb24SGgoSY3VycmVudE1vbnRobHlDb3N0GAEgASgBEhkKEWVzdE1vbnRobHlTYXZpbmdzGAIgASgBEg4KBnJlYXNvbhgDIAEoCRJcCglyaURldGFpbHMYBCABKAsySS5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLlJlc2VydmVkSW5zdGFuY2UamQEKIENvbXByZWhlbmRVbmRlcnV0aWxpemVkRW5kcG9pbnRzEmUKCGVuZHBvaW50GAEgASgLMlMuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkFXU1Jlc291cmNlRGV0YWlscy5Db21wcmVoZW5kRGV0YWlscy5FbmRwb2ludBIOCgZyZWFzb24YAiABKAkauQEKHFVuZGVydXRpbGl6ZWRSZWRzaGlmdENsdXN0ZXISaAoHY2x1c3RlchgBIAEoCzJXLmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLmF3cy5BV1NSZXNvdXJjZURldGFpbHMuUmVkc2hpZnREZXRhaWxzLkNsdXN0ZXJEZXRhaWxzEg4KBnJlYXNvbhgCIAEoCRIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgDIAEoARrzAgobTGFtYmRhV2l0aEV4Y2Vzc2l2ZVRpbWVvdXRzEhsKE21heERhaWx5VGltZW91dFJhdGUYASABKAESHgoWZGF0ZU9mRGFpbHlUaW1lb3V0UmF0ZRgCIAEoCRIbChNhdmVEYWlseVRpbWVvdXRSYXRlGAMgASgBEh8KF2Z1bmN0aW9uVGltZW91dFNldHRpbmdzGAQgASgBEhwKFGxvc3REYWlseUNvbXB1dGVDb3N0GAUgASgBEhcKD2F2ZURhaWx5SW52b2tlcxgGIAEoARIZChFjdXJyZW50RGF5SW52b2tlcxgHIAEoARIdChVjdXJyZW50RGF5VGltZW91dFJhdGUYCCABKAESaAoIZnVuY3Rpb24YCSABKAsyVi5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuQVdTUmVzb3VyY2VEZXRhaWxzLkxhbWJkYURldGFpbHMuRnVuY3Rpb25EZXRhaWxzIvMCChJBV1NSZWNvbW1lbmRhdGlvbnMSZgobY29zdEV4cGxvcmVyUmVjb21tZW5kYXRpb25zGAEgASgLMkEuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RFeHBsb3JlclJlY29tbWVuZGF0aW9ucxJ0CiJjb3N0T3B0aW1pemF0aW9uSHViUmVjb21tZW5kYXRpb25zGAIgASgLMkguYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uYXdzLkNvc3RPcHRpbWl6YXRpb25IdWJSZWNvbW1lbmRhdGlvbnMSagoddHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMYAyABKAsyQy5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5hd3MuVHJ1c3RlZEFkdmlzb3JSZWNvbW1lbmRhdGlvbnMSEwoLcmVzb3VyY2VBcm4YBCABKAlCjQEKLmNsb3VkLmFscGhhdXMuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb25CHkFwaUNvdmVyQXdzUmVjb21tZW5kYXRpb25Qcm90b1o7Z2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlLXNkay1nby9hcGkvY292ZXIvcmVjb21tZW5kYXRpb25iBnByb3RvMw");
13
+ /**
14
+ * Describes the message blueapi.api.cover.recommendation.aws.MetricData.
15
+ * Use `create(MetricDataSchema)` to create a new message.
16
+ */
17
+ exports.MetricDataSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 0);
18
+ /**
19
+ * Describes the message blueapi.api.cover.recommendation.aws.MetricData.Metrics.
20
+ * Use `create(MetricData_MetricsSchema)` to create a new message.
21
+ */
22
+ exports.MetricData_MetricsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 0, 0);
23
+ /**
24
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.
25
+ * Use `create(CostExplorerRecommendationsSchema)` to create a new message.
26
+ */
27
+ exports.CostExplorerRecommendationsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1);
28
+ /**
29
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.
30
+ * Use `create(CostExplorerRecommendations_DiscountPlansSchema)` to create a new message.
31
+ */
32
+ exports.CostExplorerRecommendations_DiscountPlansSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0);
33
+ /**
34
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.RIOption.
35
+ * Use `create(CostExplorerRecommendations_DiscountPlans_RIOptionSchema)` to create a new message.
36
+ */
37
+ exports.CostExplorerRecommendations_DiscountPlans_RIOptionSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0, 0);
38
+ /**
39
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.RIOption.EstOutcomeFromPurchaseRI.
40
+ * Use `create(CostExplorerRecommendations_DiscountPlans_RIOption_EstOutcomeFromPurchaseRISchema)` to create a new message.
41
+ */
42
+ exports.CostExplorerRecommendations_DiscountPlans_RIOption_EstOutcomeFromPurchaseRISchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0, 0, 0);
43
+ /**
44
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.SPOption.
45
+ * Use `create(CostExplorerRecommendations_DiscountPlans_SPOptionSchema)` to create a new message.
46
+ */
47
+ exports.CostExplorerRecommendations_DiscountPlans_SPOptionSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0, 1);
48
+ /**
49
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.SPOption.CurrentUtilizationDetails.
50
+ * Use `create(CostExplorerRecommendations_DiscountPlans_SPOption_CurrentUtilizationDetailsSchema)` to create a new message.
51
+ */
52
+ exports.CostExplorerRecommendations_DiscountPlans_SPOption_CurrentUtilizationDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0, 1, 0);
53
+ /**
54
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.DiscountPlans.SPOption.EstOutcomeFromPurchaseSP.
55
+ * Use `create(CostExplorerRecommendations_DiscountPlans_SPOption_EstOutcomeFromPurchaseSPSchema)` to create a new message.
56
+ */
57
+ exports.CostExplorerRecommendations_DiscountPlans_SPOption_EstOutcomeFromPurchaseSPSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 0, 1, 1);
58
+ /**
59
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.EC2Rightsize.
60
+ * Use `create(CostExplorerRecommendations_EC2RightsizeSchema)` to create a new message.
61
+ */
62
+ exports.CostExplorerRecommendations_EC2RightsizeSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 1);
63
+ /**
64
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.EC2Rightsize.Details.
65
+ * Use `create(CostExplorerRecommendations_EC2Rightsize_DetailsSchema)` to create a new message.
66
+ */
67
+ exports.CostExplorerRecommendations_EC2Rightsize_DetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 1, 0);
68
+ /**
69
+ * Describes the message blueapi.api.cover.recommendation.aws.CostExplorerRecommendations.TerminateEC2.
70
+ * Use `create(CostExplorerRecommendations_TerminateEC2Schema)` to create a new message.
71
+ */
72
+ exports.CostExplorerRecommendations_TerminateEC2Schema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 1, 2);
73
+ /**
74
+ * Describes the message blueapi.api.cover.recommendation.aws.CostOptimizationHubRecommendations.
75
+ * Use `create(CostOptimizationHubRecommendationsSchema)` to create a new message.
76
+ */
77
+ exports.CostOptimizationHubRecommendationsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 2);
78
+ /**
79
+ * Describes the message blueapi.api.cover.recommendation.aws.CostOptimizationHubRecommendations.Details.
80
+ * Use `create(CostOptimizationHubRecommendations_DetailsSchema)` to create a new message.
81
+ */
82
+ exports.CostOptimizationHubRecommendations_DetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 2, 0);
83
+ /**
84
+ * Describes the message blueapi.api.cover.recommendation.aws.CostOptimizationHubRecommendations.Details.CostCalculation.
85
+ * Use `create(CostOptimizationHubRecommendations_Details_CostCalculationSchema)` to create a new message.
86
+ */
87
+ exports.CostOptimizationHubRecommendations_Details_CostCalculationSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 2, 0, 0);
88
+ /**
89
+ * Describes the message blueapi.api.cover.recommendation.aws.CostOptimizationHubRecommendations.Details.CostCalculation.EstimatedDiscounts.
90
+ * Use `create(CostOptimizationHubRecommendations_Details_CostCalculation_EstimatedDiscountsSchema)` to create a new message.
91
+ */
92
+ exports.CostOptimizationHubRecommendations_Details_CostCalculation_EstimatedDiscountsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 2, 0, 0, 0);
93
+ /**
94
+ * Describes the message blueapi.api.cover.recommendation.aws.CostOptimizationHubRecommendations.Details.CostCalculation.UsageTypes.
95
+ * Use `create(CostOptimizationHubRecommendations_Details_CostCalculation_UsageTypesSchema)` to create a new message.
96
+ */
97
+ exports.CostOptimizationHubRecommendations_Details_CostCalculation_UsageTypesSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 2, 0, 0, 1);
98
+ /**
99
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.
100
+ * Use `create(AWSResourceDetailsSchema)` to create a new message.
101
+ */
102
+ exports.AWSResourceDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3);
103
+ /**
104
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.Route53Details.
105
+ * Use `create(AWSResourceDetails_Route53DetailsSchema)` to create a new message.
106
+ */
107
+ exports.AWSResourceDetails_Route53DetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 0);
108
+ /**
109
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.NetworkFirewallDetails.
110
+ * Use `create(AWSResourceDetails_NetworkFirewallDetailsSchema)` to create a new message.
111
+ */
112
+ exports.AWSResourceDetails_NetworkFirewallDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 1);
113
+ /**
114
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.NetworkFirewallDetails.Endpoint.
115
+ * Use `create(AWSResourceDetails_NetworkFirewallDetails_EndpointSchema)` to create a new message.
116
+ */
117
+ exports.AWSResourceDetails_NetworkFirewallDetails_EndpointSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 1, 0);
118
+ /**
119
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ComprehendDetails.
120
+ * Use `create(AWSResourceDetails_ComprehendDetailsSchema)` to create a new message.
121
+ */
122
+ exports.AWSResourceDetails_ComprehendDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 2);
123
+ /**
124
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ComprehendDetails.Endpoint.
125
+ * Use `create(AWSResourceDetails_ComprehendDetails_EndpointSchema)` to create a new message.
126
+ */
127
+ exports.AWSResourceDetails_ComprehendDetails_EndpointSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 2, 0);
128
+ /**
129
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ReservedInstance.
130
+ * Use `create(AWSResourceDetails_ReservedInstanceSchema)` to create a new message.
131
+ */
132
+ exports.AWSResourceDetails_ReservedInstanceSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 3);
133
+ /**
134
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ReservedInstance.RIMetrics.
135
+ * Use `create(AWSResourceDetails_ReservedInstance_RIMetricsSchema)` to create a new message.
136
+ */
137
+ exports.AWSResourceDetails_ReservedInstance_RIMetricsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 3, 0);
138
+ /**
139
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ELBDetails.
140
+ * Use `create(AWSResourceDetails_ELBDetailsSchema)` to create a new message.
141
+ */
142
+ exports.AWSResourceDetails_ELBDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 4);
143
+ /**
144
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ELBDetails.LoadBalancer.
145
+ * Use `create(AWSResourceDetails_ELBDetails_LoadBalancerSchema)` to create a new message.
146
+ */
147
+ exports.AWSResourceDetails_ELBDetails_LoadBalancerSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 4, 0);
148
+ /**
149
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.S3Details.
150
+ * Use `create(AWSResourceDetails_S3DetailsSchema)` to create a new message.
151
+ */
152
+ exports.AWSResourceDetails_S3DetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 5);
153
+ /**
154
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.S3Details.BucketDetails.
155
+ * Use `create(AWSResourceDetails_S3Details_BucketDetailsSchema)` to create a new message.
156
+ */
157
+ exports.AWSResourceDetails_S3Details_BucketDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 5, 0);
158
+ /**
159
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.MemoryDBDetails.
160
+ * Use `create(AWSResourceDetails_MemoryDBDetailsSchema)` to create a new message.
161
+ */
162
+ exports.AWSResourceDetails_MemoryDBDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 6);
163
+ /**
164
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.MemoryDBDetails.NodeDetails.
165
+ * Use `create(AWSResourceDetails_MemoryDBDetails_NodeDetailsSchema)` to create a new message.
166
+ */
167
+ exports.AWSResourceDetails_MemoryDBDetails_NodeDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 6, 0);
168
+ /**
169
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.OpensearchDetails.
170
+ * Use `create(AWSResourceDetails_OpensearchDetailsSchema)` to create a new message.
171
+ */
172
+ exports.AWSResourceDetails_OpensearchDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 7);
173
+ /**
174
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.OpensearchDetails.InstanceDetails.
175
+ * Use `create(AWSResourceDetails_OpensearchDetails_InstanceDetailsSchema)` to create a new message.
176
+ */
177
+ exports.AWSResourceDetails_OpensearchDetails_InstanceDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 7, 0);
178
+ /**
179
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RedshiftDetails.
180
+ * Use `create(AWSResourceDetails_RedshiftDetailsSchema)` to create a new message.
181
+ */
182
+ exports.AWSResourceDetails_RedshiftDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 8);
183
+ /**
184
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RedshiftDetails.ClusterDetails.
185
+ * Use `create(AWSResourceDetails_RedshiftDetails_ClusterDetailsSchema)` to create a new message.
186
+ */
187
+ exports.AWSResourceDetails_RedshiftDetails_ClusterDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 8, 0);
188
+ /**
189
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RedshiftDetails.NodeDetails.
190
+ * Use `create(AWSResourceDetails_RedshiftDetails_NodeDetailsSchema)` to create a new message.
191
+ */
192
+ exports.AWSResourceDetails_RedshiftDetails_NodeDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 8, 1);
193
+ /**
194
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ElastiCacheDetails.
195
+ * Use `create(AWSResourceDetails_ElastiCacheDetailsSchema)` to create a new message.
196
+ */
197
+ exports.AWSResourceDetails_ElastiCacheDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 9);
198
+ /**
199
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ElastiCacheDetails.NodeDetails.
200
+ * Use `create(AWSResourceDetails_ElastiCacheDetails_NodeDetailsSchema)` to create a new message.
201
+ */
202
+ exports.AWSResourceDetails_ElastiCacheDetails_NodeDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 9, 0);
203
+ /**
204
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.
205
+ * Use `create(AWSResourceDetails_EC2DetailsSchema)` to create a new message.
206
+ */
207
+ exports.AWSResourceDetails_EC2DetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10);
208
+ /**
209
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.InstanceDetails.
210
+ * Use `create(AWSResourceDetails_EC2Details_InstanceDetailsSchema)` to create a new message.
211
+ */
212
+ exports.AWSResourceDetails_EC2Details_InstanceDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 0);
213
+ /**
214
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.InstanceDetails.NatGatewayDetails.
215
+ * Use `create(AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetailsSchema)` to create a new message.
216
+ */
217
+ exports.AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 0, 0);
218
+ /**
219
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.InstanceDetails.NatGatewayDetails.NatGatewayMetrics.
220
+ * Use `create(AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetails_NatGatewayMetricsSchema)` to create a new message.
221
+ */
222
+ exports.AWSResourceDetails_EC2Details_InstanceDetails_NatGatewayDetails_NatGatewayMetricsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 0, 0, 0);
223
+ /**
224
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.InstanceDetails.EC2Metrics.
225
+ * Use `create(AWSResourceDetails_EC2Details_InstanceDetails_EC2MetricsSchema)` to create a new message.
226
+ */
227
+ exports.AWSResourceDetails_EC2Details_InstanceDetails_EC2MetricsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 0, 1);
228
+ /**
229
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.InstanceDetails.EIPDetails.
230
+ * Use `create(AWSResourceDetails_EC2Details_InstanceDetails_EIPDetailsSchema)` to create a new message.
231
+ */
232
+ exports.AWSResourceDetails_EC2Details_InstanceDetails_EIPDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 0, 2);
233
+ /**
234
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2Details.RISpecsDetails.
235
+ * Use `create(AWSResourceDetails_EC2Details_RISpecsDetailsSchema)` to create a new message.
236
+ */
237
+ exports.AWSResourceDetails_EC2Details_RISpecsDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 10, 1);
238
+ /**
239
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RDSDetails.
240
+ * Use `create(AWSResourceDetails_RDSDetailsSchema)` to create a new message.
241
+ */
242
+ exports.AWSResourceDetails_RDSDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 11);
243
+ /**
244
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RDSDetails.DBInstanceDetails.
245
+ * Use `create(AWSResourceDetails_RDSDetails_DBInstanceDetailsSchema)` to create a new message.
246
+ */
247
+ exports.AWSResourceDetails_RDSDetails_DBInstanceDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 11, 0);
248
+ /**
249
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RDSDetails.DBInstanceDetails.Storage.
250
+ * Use `create(AWSResourceDetails_RDSDetails_DBInstanceDetails_StorageSchema)` to create a new message.
251
+ */
252
+ exports.AWSResourceDetails_RDSDetails_DBInstanceDetails_StorageSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 11, 0, 0);
253
+ /**
254
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.RDSDetails.DBInstanceDetails.RDSMetrics.
255
+ * Use `create(AWSResourceDetails_RDSDetails_DBInstanceDetails_RDSMetricsSchema)` to create a new message.
256
+ */
257
+ exports.AWSResourceDetails_RDSDetails_DBInstanceDetails_RDSMetricsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 11, 0, 1);
258
+ /**
259
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EBSDetails.
260
+ * Use `create(AWSResourceDetails_EBSDetailsSchema)` to create a new message.
261
+ */
262
+ exports.AWSResourceDetails_EBSDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 12);
263
+ /**
264
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EBSDetails.VolumeDetails.
265
+ * Use `create(AWSResourceDetails_EBSDetails_VolumeDetailsSchema)` to create a new message.
266
+ */
267
+ exports.AWSResourceDetails_EBSDetails_VolumeDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 12, 0);
268
+ /**
269
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2AutoScalingGroupDetails.
270
+ * Use `create(AWSResourceDetails_EC2AutoScalingGroupDetailsSchema)` to create a new message.
271
+ */
272
+ exports.AWSResourceDetails_EC2AutoScalingGroupDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 13);
273
+ /**
274
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.EC2AutoScalingGroupDetails.InstanceConfigurationDetails.
275
+ * Use `create(AWSResourceDetails_EC2AutoScalingGroupDetails_InstanceConfigurationDetailsSchema)` to create a new message.
276
+ */
277
+ exports.AWSResourceDetails_EC2AutoScalingGroupDetails_InstanceConfigurationDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 13, 0);
278
+ /**
279
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ECSDetails.
280
+ * Use `create(AWSResourceDetails_ECSDetailsSchema)` to create a new message.
281
+ */
282
+ exports.AWSResourceDetails_ECSDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 14);
283
+ /**
284
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.ECSDetails.ServiceDetails.
285
+ * Use `create(AWSResourceDetails_ECSDetails_ServiceDetailsSchema)` to create a new message.
286
+ */
287
+ exports.AWSResourceDetails_ECSDetails_ServiceDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 14, 0);
288
+ /**
289
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.LambdaDetails.
290
+ * Use `create(AWSResourceDetails_LambdaDetailsSchema)` to create a new message.
291
+ */
292
+ exports.AWSResourceDetails_LambdaDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 15);
293
+ /**
294
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSResourceDetails.LambdaDetails.FunctionDetails.
295
+ * Use `create(AWSResourceDetails_LambdaDetails_FunctionDetailsSchema)` to create a new message.
296
+ */
297
+ exports.AWSResourceDetails_LambdaDetails_FunctionDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 3, 15, 0);
298
+ /**
299
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.
300
+ * Use `create(TrustedAdvisorRecommendationsSchema)` to create a new message.
301
+ */
302
+ exports.TrustedAdvisorRecommendationsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4);
303
+ /**
304
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.Route53LatencyResourceRecordsSets.
305
+ * Use `create(TrustedAdvisorRecommendations_Route53LatencyResourceRecordsSetsSchema)` to create a new message.
306
+ */
307
+ exports.TrustedAdvisorRecommendations_Route53LatencyResourceRecordsSetsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 0);
308
+ /**
309
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.InactiveAWSNetworkFirewall.
310
+ * Use `create(TrustedAdvisorRecommendations_InactiveAWSNetworkFirewallSchema)` to create a new message.
311
+ */
312
+ exports.TrustedAdvisorRecommendations_InactiveAWSNetworkFirewallSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 1);
313
+ /**
314
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.NetworkFirewallEndpointAZIndependence.
315
+ * Use `create(TrustedAdvisorRecommendations_NetworkFirewallEndpointAZIndependenceSchema)` to create a new message.
316
+ */
317
+ exports.TrustedAdvisorRecommendations_NetworkFirewallEndpointAZIndependenceSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 2);
318
+ /**
319
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.InactiveNATGateways.
320
+ * Use `create(TrustedAdvisorRecommendations_InactiveNATGatewaysSchema)` to create a new message.
321
+ */
322
+ exports.TrustedAdvisorRecommendations_InactiveNATGatewaysSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 3);
323
+ /**
324
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.EC2OverProvisionedForMSSqlServer.
325
+ * Use `create(TrustedAdvisorRecommendations_EC2OverProvisionedForMSSqlServerSchema)` to create a new message.
326
+ */
327
+ exports.TrustedAdvisorRecommendations_EC2OverProvisionedForMSSqlServerSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 4);
328
+ /**
329
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.EC2ConsolidationForMSSqlServer.
330
+ * Use `create(TrustedAdvisorRecommendations_EC2ConsolidationForMSSqlServerSchema)` to create a new message.
331
+ */
332
+ exports.TrustedAdvisorRecommendations_EC2ConsolidationForMSSqlServerSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 5);
333
+ /**
334
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.CommonDetails.
335
+ * Use `create(TrustedAdvisorRecommendations_CommonDetailsSchema)` to create a new message.
336
+ */
337
+ exports.TrustedAdvisorRecommendations_CommonDetailsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 6);
338
+ /**
339
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.AWSWellArchitectedHighRiskIssues.
340
+ * Use `create(TrustedAdvisorRecommendations_AWSWellArchitectedHighRiskIssuesSchema)` to create a new message.
341
+ */
342
+ exports.TrustedAdvisorRecommendations_AWSWellArchitectedHighRiskIssuesSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 7);
343
+ /**
344
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.LowUtilizationEC2Instances.
345
+ * Use `create(TrustedAdvisorRecommendations_LowUtilizationEC2InstancesSchema)` to create a new message.
346
+ */
347
+ exports.TrustedAdvisorRecommendations_LowUtilizationEC2InstancesSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 8);
348
+ /**
349
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.RDSIdleDBInstances.
350
+ * Use `create(TrustedAdvisorRecommendations_RDSIdleDBInstancesSchema)` to create a new message.
351
+ */
352
+ exports.TrustedAdvisorRecommendations_RDSIdleDBInstancesSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 9);
353
+ /**
354
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.S3IncompleteMPU.
355
+ * Use `create(TrustedAdvisorRecommendations_S3IncompleteMPUSchema)` to create a new message.
356
+ */
357
+ exports.TrustedAdvisorRecommendations_S3IncompleteMPUSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 10);
358
+ /**
359
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.LambdaHighErrorRates.
360
+ * Use `create(TrustedAdvisorRecommendations_LambdaHighErrorRatesSchema)` to create a new message.
361
+ */
362
+ exports.TrustedAdvisorRecommendations_LambdaHighErrorRatesSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 11);
363
+ /**
364
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.UnderutilizedEBSVolume.
365
+ * Use `create(TrustedAdvisorRecommendations_UnderutilizedEBSVolumeSchema)` to create a new message.
366
+ */
367
+ exports.TrustedAdvisorRecommendations_UnderutilizedEBSVolumeSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 12);
368
+ /**
369
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.UnassociatedEIP.
370
+ * Use `create(TrustedAdvisorRecommendations_UnassociatedEIPSchema)` to create a new message.
371
+ */
372
+ exports.TrustedAdvisorRecommendations_UnassociatedEIPSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 13);
373
+ /**
374
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.IdleLoadBalancer.
375
+ * Use `create(TrustedAdvisorRecommendations_IdleLoadBalancerSchema)` to create a new message.
376
+ */
377
+ exports.TrustedAdvisorRecommendations_IdleLoadBalancerSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 14);
378
+ /**
379
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.AmazonEC2InstanceStopped.
380
+ * Use `create(TrustedAdvisorRecommendations_AmazonEC2InstanceStoppedSchema)` to create a new message.
381
+ */
382
+ exports.TrustedAdvisorRecommendations_AmazonEC2InstanceStoppedSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 15);
383
+ /**
384
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.EC2RILeaseExpiration.
385
+ * Use `create(TrustedAdvisorRecommendations_EC2RILeaseExpirationSchema)` to create a new message.
386
+ */
387
+ exports.TrustedAdvisorRecommendations_EC2RILeaseExpirationSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 16);
388
+ /**
389
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.ComprehendUnderutilizedEndpoints.
390
+ * Use `create(TrustedAdvisorRecommendations_ComprehendUnderutilizedEndpointsSchema)` to create a new message.
391
+ */
392
+ exports.TrustedAdvisorRecommendations_ComprehendUnderutilizedEndpointsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 17);
393
+ /**
394
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.UnderutilizedRedshiftCluster.
395
+ * Use `create(TrustedAdvisorRecommendations_UnderutilizedRedshiftClusterSchema)` to create a new message.
396
+ */
397
+ exports.TrustedAdvisorRecommendations_UnderutilizedRedshiftClusterSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 18);
398
+ /**
399
+ * Describes the message blueapi.api.cover.recommendation.aws.TrustedAdvisorRecommendations.LambdaWithExcessiveTimeouts.
400
+ * Use `create(TrustedAdvisorRecommendations_LambdaWithExcessiveTimeoutsSchema)` to create a new message.
401
+ */
402
+ exports.TrustedAdvisorRecommendations_LambdaWithExcessiveTimeoutsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 4, 19);
403
+ /**
404
+ * Describes the message blueapi.api.cover.recommendation.aws.AWSRecommendations.
405
+ * Use `create(AWSRecommendationsSchema)` to create a new message.
406
+ */
407
+ exports.AWSRecommendationsSchema = (0, codegenv2_1.messageDesc)(exports.file_api_cover_recommendation_aws, 5);