@alphauspkgs/blue-sdk-ts 1.0.9 → 1.0.10

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.
@@ -46,7 +46,103 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
46
46
  * Describes the file cover/v1/cover.proto.
47
47
  */
48
48
  export const file_cover_v1_cover: GenFile = /*@__PURE__*/
49
- fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSKnAQocTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIZCgxkYXRlRGV0ZWN0ZWQYAiABKAlIAIgBARIWCglkYXRlU3RhcnQYAyABKAlIAYgBARIUCgdkYXRlRW5kGAQgASgJSAKIAQFCDwoNX2RhdGVEZXRlY3RlZEIMCgpfZGF0ZVN0YXJ0QgoKCF9kYXRlRW5kIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/AQoZVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCLCAgoaVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQSEQoJY3JlYXRlZEJ5GAggASgJEhQKDGNyZWF0aW9uRGF0ZRgJIAEoCRIXCg9sYXN0VXBkYXRlZERhdGUYCiABKAkiJwoZRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChpEZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCSJvChZHZXRDb3N0VXNhZ2VWMlJlc3BvbnNlEg0KBXZhbHVlGAEgASgBEgwKBGRhdGUYAiABKAkSDgoGdmVuZG9yGAMgASgJEigKB2RldGFpbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ir8EChVHZXRDb3N0VXNhZ2VWMlJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSSAoLZ3JhbnVsYXJpdHkYBCABKA4yMy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgFIAMoCRJCCghjYXRlZ29yeRgGIAEoDjIwLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkNhdGVnb3J5EhAKCGN1cnJlbmN5GAcgASgJEjoKCmF3c09wdGlvbnMYCCABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBBd3NPcHRpb25zEkQKD2F6dXJlY3NwT3B0aW9ucxgJIAEoCzIrLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF6dXJlQ3NwT3B0aW9ucxI6CgpnY3BPcHRpb25zGAogASgLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwR2NwT3B0aW9ucyJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIjkKCENhdGVnb3J5EhgKFENhdGVnb3J5X1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAIiGQoXUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QiGgoYUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhYKFFJlc2V0RGVtb0RhdGFSZXF1ZXN0IhcKFVJlc2V0RGVtb0RhdGFSZXNwb25zZSLfBgoZQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSSgoKbWV0cmljVHlwZRgDIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5NZXRyaWNUeXBlEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJElAKC2dyYW51bGFyaXR5GAYgASgOMjsuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlRpbWVHcmFudWxhcml0eRIQCghncm91cEJ5cxgHIAMoCRJLCgdmaWx0ZXJzGAggAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LkZpbHRlckNyaXRlcmlhEkwKC3NlcnZpY2VUeXBlGAkgASgOMjcuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlNlcnZpY2VUeXBlGs8BCg5GaWx0ZXJDcml0ZXJpYRILCgNrZXkYASABKAkSWwoIb3BlcmF0b3IYAiABKA4ySS5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWEuRmlsdGVyT3BlcmF0b3ISDQoFdmFsdWUYAyABKAkiRAoORmlsdGVyT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIJCgVFUVVBTBABEg0KCU5PVF9FUVVBTBACIkYKD1RpbWVHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIloKCk1ldHJpY1R5cGUSFgoSTUVUUklDX1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAISDgoKRUZGSUNJRU5DWRADEg8KC1VOVVNFRF9DT1NUEAQiOAoLU2VydmljZVR5cGUSFwoTU0VSVklDRV9VTlNQRUNJRklFRBAAEgcKA0VDUxABEgcKA0VLUxACItcKChpDb250YWluZXJDb3N0VXNhZ2VSZXNwb25zZRJLCgdyZXN1bHRzGAEgAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0ElMKCmhpZ2hsaWdodHMYAiABKAsyPy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0cxIRCgl0b3RhbENvc3QYAyABKAESFQoNYXZnRWZmaWNpZW5jeRgEIAEoARpECgpDb3N0TWV0cmljEg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRIUCgx1bnVzZWRBbW91bnQYAyABKAEakAEKC1VzYWdlTWV0cmljEgwKBHVuaXQYASABKAkSFgoOcmVzZXJ2ZWRBbW91bnQYAiABKAESFAoMYWN0dWFsQW1vdW50GAMgASgBEhIKCmVmZmljaWVuY3kYBCABKAESFgoOY3B1VXRpbGl6YXRpb24YBSABKAESGQoRbWVtb3J5VXRpbGl6YXRpb24YBiABKAEawQEKD01ldHJpY0RhdGFQb2ludBIMCgRkYXRlGAEgASgJEkcKBGNvc3QYAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkNvc3RNZXRyaWNIABJJCgV1c2FnZRgDIAEoCzI4LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuVXNhZ2VNZXRyaWNIAEIMCgptZXRyaWNEYXRhGkwKEVJlc291cmNlSGlnaGxpZ2h0EhIKCnJlc291cmNlSWQYASABKAkSFAoMcmVzb3VyY2VOYW1lGAIgASgJEg0KBXZhbHVlGAMgASgBGoQDChJSZXNvdXJjZUhpZ2hsaWdodHMSWgoSaGlnaGVzdENsdXN0ZXJDb3N0GAEgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJZChFoaWdoZXN0VW51c2VkQ29zdBgCIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWwoTaGlnaGVzdFdvcmtsb2FkQ29zdBgDIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWgoSaGlnaGVzdENvbXB1dGVDb3N0GAQgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBr6AQoNR3JvdXBlZFJlc3VsdBJeCgphdHRyaWJ1dGVzGAEgAygLMkouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0LkF0dHJpYnV0ZXNFbnRyeRJWChBtZXRyaWNEYXRhUG9pbnRzGAIgAygLMjwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5NZXRyaWNEYXRhUG9pbnQaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEijwQKGEdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSSwoLZ3JhbnVsYXJpdHkYBSABKA4yNi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgGIAMoCRJCCgdmaWx0ZXJzGAcgAygLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyGsIBCgZGaWx0ZXISCwoDa2V5GAEgASgJEkwKCG9wZXJhdG9yGAIgASgOMjouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyLk9wZXJhdG9yEg4KBnZhbHVlcxgDIAMoCRINCgV2YWx1ZRgEIAEoCSI+CghPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiKnBAoZR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZRJDCgdyZXN1bHRzGAEgAygLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdBooCgRDb3N0Eg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRolCgVVc2FnZRIMCgR1bml0GAEgASgJEg4KBmFtb3VudBgCIAEoARqYAQoGTWV0cmljEgwKBGRhdGUYASABKAkSPgoEY29zdBgCIAEoCzIwLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5Db3N0EkAKBXVzYWdlGAMgASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlVzYWdlGtgBCgZSZXN1bHQSVgoKYXR0cmlidXRlcxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5SZXN1bHQuQXR0cmlidXRlc0VudHJ5EkMKB21ldHJpY3MYAiADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuTWV0cmljGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIhsKGUdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QiVwoaR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSI4ChZWZXJpZnlBUElBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkiKQoXVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2USDgoGcmVzdWx0GAEgASgIImUKGkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCRIQCghjdXJyZW5jeRgEIAEoCSJhChtHZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2USQgoEZGF0YRgBIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLlJlY29tbWVuZGF0aW9uRGF0YSJRChFPbmJvYXJkT3JnUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBW9yZ0lkGAQgASgJIkMKEk9uYm9hcmRPcmdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIk0KE0ludml0ZU1lbWJlclJlcXVlc3QSDQoFZW1haWwYASADKAkSEAoIaXNSZXNlbmQYAiABKAgSFQoNaW52aXRlQXNBZG1pbhgDIAEoCCIlChRJbnZpdGVNZW1iZXJSZXNwb25zZRINCgVlbWFpbBgBIAMoCSKkAQoTQWN0aXZhdGVVc2VyUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSGAoQcHJldmlvdXNQYXNzd29yZBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBmxvY2FsZRgFIAEoCRINCgVlbWFpbBgGIAEoCRIPCgdpc0F1dGgwGAcgASgIEhMKC2F1dGgwVXNlcklkGAggASgJIkUKFEFjdGl2YXRlVXNlclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiWAoTQ3JlYXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNvc3Rncm91cHMYBCADKAkiRQoUQ3JlYXRlTWVtYmVyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSITChFHZXRNZW1iZXJzUmVxdWVzdCJDChJHZXRNZW1iZXJzUmVzcG9uc2USLQoIdXNlckRhdGEYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdHZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiSQoYR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiVAoaR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2USNgoKY29zdEdyb3VwcxgBIAMoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLk1lbWJlckNvc3RHcm91cCJACh1VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSDwoHaXNBZG1pbhgCIAEoCCJPCh5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIXChVHZXRVc2VyRGV0YWlsc1JlcXVlc3QiRwoWR2V0VXNlckRldGFpbHNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF1VwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0Eg4KBmF2YXRhchgBIAEoCSJJChhVcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChVVcGRhdGVVc2VySWNvblJlcXVlc3QSDAoEaWNvbhgBIAEoCSJHChZVcGRhdGVVc2VySWNvblJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0EhIKCmNvbG9yVGhlbWUYASABKAkiTQocVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIkcKFlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSInChZVcGRhdGVVc2VyRW1haWxSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkgKF1VwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiSwoaVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJJChhSZXNldFVzZXJQYXNzd29yZFJlcXVlc3QSGAoQcHJldmlvdXNQYXNzd29yZBgBIAEoCRITCgtuZXdQYXNzd29yZBgCIAEoCSJKChlSZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJIkkKGFVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIi0KGVVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QSEAoIYXBwVGhlbWUYASABKAkiSwoaVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJDChlVcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0EhAKCHRpbWVab25lGAEgASgJEhQKDGF1dG9UaW1lWm9uZRgCIAEoCCJLChpVcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIjEKG1VwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBISCgphdHRyaWJ1dGVzGAEgAygJIk0KHFVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChNEZWxldGVNZW1iZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSImChREZWxldGVNZW1iZXJSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiJgoUUmVzZXRQYXNzd29yZFJlcXVlc3QSDgoGdXNlcklkGAEgASgJIicKFVJlc2V0UGFzc3dvcmRSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiuwEKEUNyZWF0ZVZpZXdSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEQoJaXNQcml2YXRlGAMgASgIEhIKCmlzRWRpdGFibGUYBCABKAgSDAoEaWNvbhgFIAEoCRISCgpyZXBvcnRUeXBlGAYgASgJEhIKCmNvbG9yVGhlbWUYByABKAkSFAoMcmVwb3J0UGVyaW9kGAggASgJEhAKCGN1cnJlbmN5GAkgASgJIkMKEkNyZWF0ZVZpZXdSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIhEKD0dldFZpZXdzUmVxdWVzdCJBChBHZXRWaWV3c1Jlc3BvbnNlEi0KCHZpZXdMaXN0GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xpc3QiJwoVR2V0Q3VycmVudFZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJHChZHZXRDdXJyZW50Vmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiGQoXR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QiSwoYR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlEi8KCWZhdm9yaXRlcxgBIAMoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkZhdm9yaXRlcyIkChJQdWJsaXNoVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiIKE1B1Ymxpc2hWaWV3UmVzcG9uc2USCwoDdXJsGAEgASgJIiQKEkFkZEZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJQoTQWRkRmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiJwoVUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIoChZSZW1vdmVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSKPAQoRVXBkYXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDAoEaWNvbhgEIAEoCRIRCglpc1ByaXZhdGUYBSABKAgSEgoKaXNFZGl0YWJsZRgGIAEoCBISCgpjb2xvclRoZW1lGAcgASgJIiQKElVwZGF0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiWAoXVXBkYXRlVmlld0xheW91dFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEi0KBmxheW91dBgCIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLldpZGdldERhdGEiSQoYVXBkYXRlVmlld0xheW91dFJlc3BvbnNlEi0KBmxheW91dBgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdMYXlvdXQimgEKF1VwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIQCgh3aWRnZXRJZBgCIAEoCRIoCgdvcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXF1ZXN0cxgEIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkxheW91dFJlcXVlc3RzIl8KGFVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZRIQCgh3aWRnZXRJZBgBIAEoCRIxCgp3aWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJBChtVcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiTQocVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIj0KGVVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIksKGlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiNQobU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0EhYKDnVwZGF0ZUN1cnJlbmN5GAEgASgDIjYKHFNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiHQobR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0IlkKHEdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USDQoFb3JnSWQYASABKAkSFgoOdXBkYXRlQ3VycmVuY3kYAiABKAMSEgoKbGFzdFVwZGF0ZRgDIAEoCSI+ChhMaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiYgoZTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI2Cg1leGNoYW5nZVJhdGVzGAIgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5FeGNoYW5nZVJhdGVzIkIKDUV4Y2hhbmdlUmF0ZXMSDQoFbW9udGgYASABKAkSFAoMZXhjaGFuZ2VSYXRlGAIgASgCEgwKBGRhdGUYAyABKAkiIwoRRGVsZXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiQKEkRlbGV0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiZQoaVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEjcKDXNpZGVtZW51c3RhdGUYAiADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TaWRlTWVudVN0YXRlIi0KG1VwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiQAoaQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCm1lbnVJdGVtSWQYAiABKAkiLQobQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJDCh1SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSIwCh5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJItMBChZDcmVhdGVDb3N0R3JvdXBSZXF1ZXN0EgwKBG5hbWUYASABKAkSLgoEdHlwZRgHIAEoDjIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cFR5cGUSEwoLZGVzY3JpcHRpb24YAiABKAkSDQoFaW1hZ2UYAyABKAkSDAoEaWNvbhgEIAEoCRISCgpjb2xvclRoZW1lGAUgASgJEjUKDGNvbWJpbmF0aW9ucxgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJSChdDcmVhdGVDb3N0R3JvdXBSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIWChRHZXRDb3N0R3JvdXBzUmVxdWVzdCJQChVHZXRDb3N0R3JvdXBzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiMQoaR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiVgobR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIj8KGlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEgwKBG5hbWUYAiABKAkiKwobVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlEgwKBG5hbWUYASABKAkiTQohVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIjkKIlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2USEwoLZGVzY3JpcHRpb24YASABKAkiQQobVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg0KBWltYWdlGAIgASgJIi0KHFVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2USDQoFaW1hZ2UYASABKAkiPwoaVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEaWNvbhgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2USDAoEaWNvbhgBIAEoCSJLCiBVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpjb2xvclRoZW1lGAIgASgJIjcKIVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZRISCgpjb2xvclRoZW1lGAEgASgJInAKIlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSNQoMY29tYmluYXRpb25zGAIgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlwKI1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEjUKDGNvbWJpbmF0aW9ucxgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJDChxBc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiQwocUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiRAodUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIi0KFkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiLgoXRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkiMgoiR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBIMCgR0eXBlGAEgASgJIocBCiNHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZRIRCglsYXVuY2hVcmwYASABKAkSEwoLdGVtcGxhdGVVcmwYAiABKAkSEQoJc3RhY2tOYW1lGAMgASgJEhEKCXByaW5jaXBhbBgEIAEoCRISCgpleHRlcm5hbElkGAUgASgJIhoKGExpc3RBY2NvdW50QWNjZXNzUmVxdWVzdCIpChdHZXRBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAki2gIKDUFjY291bnRBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJEg8KB3BheWVySWQYBCABKAkSDwoHcm9sZUFybhgFIAEoCRISCgpleHRlcm5hbElkGAYgASgJEg8KB3N0YWNrSWQYByABKAkSEwoLc3RhY2tSZWdpb24YCCABKAkSEwoLdGVtcGxhdGVVcmwYCSABKAkSEgoKYnVja2V0TmFtZRgKIAEoCRIOCgZwcmVmaXgYCyABKAkSEgoKcmVwb3J0TmFtZRgMIAEoCRJBChJyZWdpc3RyYXRpb25TdGF0dXMYDSABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5SZWdpc3RyYXRpb25TdGF0dXMSDgoGc3RhdHVzGA4gASgJEhMKC2xhc3RVcGRhdGVkGA8gASgJIkMKGkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIVCg1mcm9tVGVycmFmb3JtGAIgASgIIkQKIkNyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldFJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCSIsChpVcGRhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkiPAoaRGVsZXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCSIvChtEZWxldGVBY2NvdW50QWNjZXNzUmVzcG9uc2USEAoIdGFyZ2V0SWQYASABKAkiUAoWUmVnaXN0ZXJBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhMKC2FjY291bnROYW1lGAMgASgJIuYBChFMaXN0QXNzZXRzUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhoKEndpdGhSZWNvbW1lbmRhdGlvbhgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMijwEKEUxpc3RBc3NldHNGaWx0ZXJzEkcKCmFuZEZpbHRlcnMYASADKAsyMy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK9AQoIUmVzb3VyY2USDAoEZGF0ZRgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhIKCnJlc291cmNlSWQYBiABKAkSFAoMcmVzb3VyY2VUeXBlGAcgASgJEgwKBGNvc3QYCCABKAESEgoKcHJvcGVydGllcxgJIAEoCRIWCg5yZWNvbW1lbmRhdGlvbhgKIAEoCSLmAQoXR2V0QXNzZXRzU3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEgoKc3RhcnRNb250aBgCIAEoCRIQCghlbmRNb250aBgDIAEoCRIUCgxjb21iaW5lRGF0ZXMYBCABKAgSNwoKYXdzT3B0aW9ucxgFIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMSQQoUYXdzUHJvcGVydGllc09wdGlvbnMYBiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzImsKGEdldEFzc2V0c1N1bW1hcnlSZXNwb25zZRIwCgdzdW1tYXJ5GAEgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5Bc3NldHNTdW1tYXJ5Eh0KFXJlY29tbWVuZGF0aW9uU3VtbWFyeRgCIAEoCSJYCg1Bc3NldHNTdW1tYXJ5EgwKBGRhdGUYASABKAkSDgoGdmVuZG9yGAIgASgJEhYKDnRvdGFsUmVzb3VyY2VzGAMgASgDEhEKCXRvdGFsQ29zdBgEIAEoASI6CiNSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJpCiRSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSLAoIYWNjb3VudHMYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5BY2NvdW50IscEChNHZXRDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEhQKDGdyb3VwQnlNb250aBgEIAEoCBINCgVsaW1pdBgFIAEoAxIQCghjYXRlZ29yeRgGIAEoCRIPCgdncm91cEJ5GAcgASgJEhcKD2luY2x1ZGVaZXJvQ29zdBgIIAEoCBJDCgphd3NPcHRpb25zGAkgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxJHCgxhenVyZU9wdGlvbnMYCiABKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZU9wdGlvbnMSQwoKZ2NwT3B0aW9ucxgLIAEoCzIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSTQoPYXp1cmVjc3BPcHRpb25zGAwgASgLMjQuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVDc3BPcHRpb25zEkkKDWN1c3RvbU9wdGlvbnMYDSABKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RDdXN0b21PcHRpb25zEhcKD2luY2x1ZGVGb3JlY2FzdBgOIAEoCBIQCghjdXJyZW5jeRgPIAEoCSLnAQodR2V0Q29zdFVzYWdlUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSLZAQofR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMi/gIKHUdldENvc3RVc2FnZVJlcXVlc3RHY3BPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJGCgxsYWJlbEZpbHRlcnMYBSADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJNChNwcm9qZWN0TGFiZWxGaWx0ZXJzGAYgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAcgASgJIuwBCiJHZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVDc3BPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYBSABKAkigQMKIEdldENvc3RVc2FnZVJlcXVlc3RDdXN0b21PcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJGCgxsYWJlbEZpbHRlcnMYBSADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJNChNwcm9qZWN0TGFiZWxGaWx0ZXJzGAYgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAcgASgJIqkBCh5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSVAoKYW5kRmlsdGVycxgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL2AwoIQ29zdEl0ZW0SDgoGdmVuZG9yGAEgASgJEgwKBGRhdGUYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEhEKCXVzYWdlVHlwZRgQIAEoCRISCgpjaGFyZ2VUeXBlGBEgASgJEgwKBGNvc3QYBSABKAESDwoHZGV0YWlscxgGIAEoCRI0Cghmb3JlY2FzdBgHIAEoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Nvc3RGb3JlY2FzdBIOCgZyZWdpb24YCCABKAkSFgoOYmlsbGluZ0FjY291bnQYCSABKAkSEAoIdGFnVmFsdWUYCiABKAkSEgoKbGFzdFVwZGF0ZRgLIAEoCRIMCgR1bml0GAwgASgJEhAKCGNhdGVnb3J5GA0gASgJEg4KBnRhZ2dlZBgOIAEoCBIVCg1udW1iZXJPZlVuaXRzGBIgASgBEkYKDnVuaXRjb3N0bWV0cmljGA8gAygLMi4uYmx1ZWFwaS5jb3Zlci52MS5Db3N0SXRlbS5Vbml0Y29zdG1ldHJpY0VudHJ5EhoKEmFsbG9jYXRpb25DYXRlZ29yeRgTIAEoCRo1ChNVbml0Y29zdG1ldHJpY0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiOgojR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiWQokR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlEjEKCHJlc291cmNlGAEgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VEYXRhIngKGU1vZGlmeVJlc291cmNlVHlwZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRISCgpyZXNvdXJjZUlkGAMgASgJEhQKDHJlc291cmNlVHlwZRgEIAEoCRIOCgZyZWdpb24YBSABKAkiaQoaTW9kaWZ5UmVzb3VyY2VUeXBlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSFAoMcmVzb3VyY2VUeXBlGAMgASgJEg4KBnJlZ2lvbhgEIAEoCSJhChhUZXJtaW5hdGVSZXNvdXJjZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRISCgpyZXNvdXJjZUlkGAMgASgJEg4KBnJlZ2lvbhgEIAEoCSJSChlUZXJtaW5hdGVSZXNvdXJjZVJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRISCgpyZXNvdXJjZUlkGAIgASgJEg4KBnJlZ2lvbhgDIAEoCSJDChdVcGxvYWRDaGFyZ2VDb2RlUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSDAoEZmlsZRgDIAEoDCJSChhVcGxvYWRDaGFyZ2VDb2RlUmVzcG9uc2USDAoEbmFtZRgBIAEoCRIoCgZzdGF0dXMYAiABKA4yGC5ibHVlYXBpLmNvdmVyLnYxLlN0YXR1cyJIChJBc3NpZ25QYXllclJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIPCgdwYXllcklkGAMgASgJIjkKE0Fzc2lnblBheWVyUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEg8KB3BheWVySWQYAiABKAkiIgoQR2V0UGF5ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiIwoRR2V0UGF5ZXJzUmVzcG9uc2USDgoGcGF5ZXJzGAEgAygJIjkKEkdldEFjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0QWNjb3VudHNSZXNwb25zZRIQCghhY2NvdW50cxgBIAMoCSI5ChJHZXRTZXJ2aWNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIicKE0dldFNlcnZpY2VzUmVzcG9uc2USEAoIc2VydmljZXMYASADKAkiOAoRR2V0UmVnaW9uc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIiUKEkdldFJlZ2lvbnNSZXNwb25zZRIPCgdyZWdpb25zGAEgAygJIjUKDkdldFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSI+Cg9HZXRUYWdzUmVzcG9uc2USKwoHdGFnRGF0YRgBIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiIAoPTGlzdEZlZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJIu0CCgpGZWVEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg0KBW1vbnRoGAUgASgJEhAKCGxpbmVUeXBlGAYgASgJEg8KB2ZlZVR5cGUYByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEwoLZGVzY3JpcHRpb24YCSABKAkSDwoHc3RhcnRlZBgKIAEoCRIUCgx0aW1lSW50ZXJ2YWwYCyABKAkSEwoLcHJvZHVjdE5hbWUYDCABKAkSEAoIY3VycmVuY3kYDSABKAkSEwoLc3BsaXRTdGF0dXMYDiABKAkSEwoLaXNBbGxvY2F0ZWQYDyABKAgSEQoJaXNBcHBsaWVkGBAgASgIEhUKDXVuYmxlbmRlZENvc3QYESABKAESEQoJc291cmNlRmVlGBIgASgJEhIKCmxhc3RVcGRhdGUYEyABKAkiIgoRUmVzdG9yZUZlZVJlcXVlc3QSDQoFZmVlSWQYASABKAkiUQoWR2V0Q29zdEdyb3VwRmVlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCSJmCgdGZWVJdGVtEg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEdHlwZRgFIAEoCRIMCgRjb3N0GAYgASgBIkkKCUFsbG9jYXRvchIMCgR0eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJEg8KB2Zvcm11bGEYAyABKAkSDgoGbW9udGhzGAQgASgDImgKCENyaXRlcmlhEjAKA2FuZBgBIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuQ3JpdGVyaWEuQW5kRW50cnkaKgoIQW5kRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAgoUQ29zdEFsbG9jYXRvckRldGFpbHMSCgoCaWQYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSEgoKZXhwaXJhdGlvbhgDIAEoAxISCgpzdGFydE1vbnRoGAQgASgJEhYKDmRlZmF1bHRBY2NvdW50GAUgASgJEjEKCGNyaXRlcmlhGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgHIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEhIKCmNyZWF0ZVRpbWUYCCABKAkSEgoKdXBkYXRlVGltZRgJIAEoCRIMCgRuYW1lGAogASgJEhMKC2Rlc2NyaXB0aW9uGAsgASgJIvoBChRDb3N0QWxsb2NhdG9yUmVxdWVzdBIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCSIXChVMaXN0QWxsb2NhdG9yc1JlcXVlc3Qi8AEKFkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkSEgoKZXhwaXJhdGlvbhgCIAEoAxISCgpzdGFydE1vbnRoGAMgASgJEhYKDmRlZmF1bHRBY2NvdW50GAQgASgJEjEKCGNyaXRlcmlhGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgGIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEgwKBG5hbWUYByABKAkSEwoLZGVzY3JpcHRpb24YCCABKAkiMgoeR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJIrEBCh9HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlElgKCWF0dHJpYnV0ZRgBIAMoCzJFLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZS5BbGxvY2F0aW9uQXR0cmlidXRlGjQKE0FsbG9jYXRpb25BdHRyaWJ1dGUSDAoEdHlwZRgBIAEoCRIPCgdzZXJ2aWNlGAIgAygJIj4KG0dldEFsbG9jYXRpb25Tb3VyY2VzUmVxdWVzdBIMCgR0eXBlGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCSLrAQocR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZRJQCgZzb3VyY2UYASADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2UuQWxsb2NhdGlvblNvdXJjZXMSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEaTAoRQWxsb2NhdGlvblNvdXJjZXMSEwoLYWNjb3VudE5hbWUYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgljb3N0R3JvdXAYAyABKAkiJAoWRGVsZXRlQWxsb2NhdG9yUmVxdWVzdBIKCgJpZBgBIAEoCSJHChxQcm94eUNyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0EicKBnBhcmFtcxgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiLQodUHJveHlDcmVhdGVDb21wbGV0aW9uUmVzcG9uc2USDAoEbGluZRgBIAEoCSLUBAoTQWNjb3VudFVzYWdlRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgRkYXRlGAUgASgJEhMKC3Byb2R1Y3RDb2RlGAYgASgJEhMKC3NlcnZpY2VDb2RlGAcgASgJEg4KBnJlZ2lvbhgIIAEoCRIMCgR6b25lGAkgASgJEhEKCXVzYWdlVHlwZRgKIAEoCRIUCgxpbnN0YW5jZVR5cGUYCyABKAkSEQoJb3BlcmF0aW9uGAwgASgJEhEKCWludm9pY2VJZBgNIAEoCRITCgtkZXNjcmlwdGlvbhgOIAEoCRISCgpyZXNvdXJjZUlkGA8gASgJEgwKBHRhZ3MYECABKAkSFgoOY29zdENhdGVnb3JpZXMYESABKAkSEwoLdXNhZ2VBbW91bnQYEiABKAESGQoRdHJ1ZVVuYmxlbmRlZENvc3QYEyABKAESFQoNdW5ibGVuZGVkQ29zdBgUIAEoARIVCg1lZmZlY3RpdmVDb3N0GBUgASgBEhUKDWFtb3J0aXplZENvc3QYFiABKAESGgoScHVibGljT25EZW1hbmRDb3N0GBcgASgBEhsKE3VudXNlZEFtb3J0aXplZENvc3QYGCABKAESEgoKbGFzdFVwZGF0ZRgZIAEoCRITCgtzcGxpdFN0YXR1cxgaIAEoCRITCgtpc0FsbG9jYXRlZBgbIAEoCBIRCglpc0FwcGxpZWQYHCABKAgSDgoGc291cmNlGB0gASgJIj0KF0xpc3RBY2NvdW50VXNhZ2VSZXF1ZXN0EhEKCXN0YXJ0RGF0ZRgBIAEoCRIPCgdlbmREYXRlGAIgASgJIjIKGlJlc3RvcmVBY2NvdW50VXNhZ2VSZXF1ZXN0EhQKDGFsbG9jYXRpb25JZBgBIAEoCSIjChVSZXN0b3JlU2F2aW5nc1JlcXVlc3QSCgoCaWQYASABKAkiugIKDlNhdmluZ3NEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg0KBW1vbnRoGAUgASgJEgwKBHR5cGUYBiABKAkSCwoDYXJuGAcgASgJEhMKC3Byb2R1Y3RDb2RlGAggASgJEhIKCm9mZmVyQ2xhc3MYCSABKAkSEAoIb25kZW1hbmQYCiABKAESFQoNZWZmZWN0aXZlQ29zdBgLIAEoARIPCgdzYXZpbmdzGAwgASgBEhMKC3NwbGl0U3RhdHVzGA0gASgJEhMKC2lzQWxsb2NhdGVkGA4gASgIEhEKCWlzQXBwbGllZBgPIAEoCBIOCgZzb3VyY2UYECABKAkSEgoKbGFzdFVwZGF0ZRgRIAEoCSJqCh1HZXRDb3N0R3JvdXBBbGxvY2F0aW9uUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIRCglzdGFydERhdGUYAyABKAkSDwoHZW5kRGF0ZRgEIAEoCSKAAQoOQWxsb2NhdGlvbkl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAESEQoJY29zdEdyb3VwGAcgASgJIl8KF1Byb2Nlc3NBdXRoMFVzZXJSZXF1ZXN0Eg4KBnNvdXJjZRgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEg0KBWVtYWlsGAMgASgJEhEKCXN1YnVzZXJJZBgEIAEoCSIwChhQcm9jZXNzQXV0aDBVc2VyUmVzcG9uc2USFAoMaXNBdXRob3JpemVkGAEgASgIIpUCCgpEYXRhQWNjZXNzEg4KBnRhcmdldBgBIAEoCRINCgVvcmdJZBgCIAEoCRIxCgpnY3BPcHRpb25zGAMgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBCABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgFIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMSEwoLYWNjb3VudFR5cGUYBiABKAkSEgoKbGFzdFVwZGF0ZRgHIAEoCRISCgpjcmVhdGVUaW1lGAggASgJEg4KBnZlbmRvchgJIAEoCSLtAQoZUmVnaXN0ZXJEYXRhQWNjZXNzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDgoGdGFyZ2V0GAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJEjEKCmdjcE9wdGlvbnMYBCABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAYgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucyLrAQoXVXBkYXRlRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCRIxCgpnY3BPcHRpb25zGAMgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBCABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgFIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMSEwoLYWNjb3VudFR5cGUYBiABKAkiFwoVTGlzdERhdGFBY2Nlc3NSZXF1ZXN0IiEKH0xpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1JlcXVlc3QicQogTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVzcG9uc2USDQoFb3JnSWQYASABKAkSPgoRdW5yZWdpc3RlcmVkQWNjdHMYAiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLlVucmVnaXN0ZXJlZEFjY3RzIlQKEVVucmVnaXN0ZXJlZEFjY3RzEgoKAmlkGAEgASgJEg8KB3BheWVySWQYAiABKAkSDgoGc3RhdHVzGAMgASgJEhIKCmxhc3RVcGRhdGUYBCABKAkifAoVQmlsbGluZ0FjY291bnRSZXF1ZXN0EhEKCWJpbGxpbmdJZBgBIAEoCRIRCglkYXRhc2V0SWQYAiABKAkSFQoNZGF0YXNldFJlZ2lvbhgDIAEoCRIRCglwcm9qZWN0SWQYBCABKAkSEwoLYmlsbGluZ05hbWUYBSABKAkiVAodR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCSJhCiJBZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHNSZXF1ZXN0EhEKCWFjY291bnRJZBgBIAEoCRIVCg1hcHBsaWNhdGlvbklkGAIgASgJEhEKCXNlY3JldEtleRgDIAEoCSIlChRBZGRNcG5TZXR0aW5nUmVxdWVzdBINCgVtcG5JZBgBIAEoCSLWAQocR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSFQoNYXR0cmlidXRlVHlwZRgCIAEoCRITCgtjb3N0R3JvdXBJZBgDIAEoCRI9ChRleGlzdGluZ0NvbWJpbmF0aW9ucxgEIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxI7ChJjdXJyZW50Q29tYmluYXRpb24YBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMidwodR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVzcG9uc2USKQoGcmVzdWx0GAEgAygLMhkuYmx1ZWFwaS5hcGkuY292ZXIuUmVzdWx0EisKB3RhZ0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhIiYKFEdldENhdGVnb3JpZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJGChVHZXRDYXRlZ29yaWVzUmVzcG9uc2USLQoIY2F0ZWdvcnkYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5DYXRlZ29yeSISChBHZXRBbGVydHNSZXF1ZXN0IkQKEUdldEFsZXJ0c1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSKGAQoSQ3JlYXRlQWxlcnRSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZml4ZWRBbW91bnQYAiABKAISEgoKcGVyY2VudGFnZRgDIAEoAhITCgtncmFudWxhcml0eRgEIAEoCRISCgpjb3N0R3JvdXBzGAUgAygJEhAKCGNoYW5uZWxzGAYgAygJIkYKE0NyZWF0ZUFsZXJ0UmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiQKFkdldEFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiSgoXR2V0QWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiAKEkRlbGV0ZUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSIhChNEZWxldGVBbGVydFJlc3BvbnNlEgoKAmlkGAEgASgJIpkBChlVcGRhdGVBbGVydERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZml4ZWRBbW91bnQYAyABKAISEgoKcGVyY2VudGFnZRgEIAEoAhITCgtncmFudWxhcml0eRgFIAEoCRISCgpjb3N0R3JvdXBzGAYgAygJEhAKCGNoYW5uZWxzGAcgAygJIk0KGlVwZGF0ZUFsZXJ0RGV0YWlsc1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIiChJHZXRDaGFubmVsc1JlcXVlc3QSDAoEdHlwZRgBIAEoCSJKChNHZXRDaGFubmVsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiRgoUQ3JlYXRlQ2hhbm5lbFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJEhIKCndlYmhvb2tVcmwYAyABKAkiTAoVQ3JlYXRlQ2hhbm5lbFJlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiJgoYR2V0Q2hhbm5lbERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJIlAKGUdldENoYW5uZWxEZXRhaWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSIiChREZWxldGVDaGFubmVsUmVxdWVzdBIKCgJpZBgBIAEoCSIjChVEZWxldGVDaGFubmVsUmVzcG9uc2USCgoCaWQYASABKAkiWQobVXBkYXRlQ2hhbm5lbERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRISCgp3ZWJob29rVXJsGAQgASgJIlMKHFVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSLPAQohR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEi8KCWF3c0lucHV0cxgCIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0lucHV0cxIzCgthenVyZUlucHV0cxgDIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlSW5wdXRzEi8KCWdjcElucHV0cxgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkdjcElucHV0cyKJAgoiR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXNwb25zZRJJChJhd3NSZWNvbW1lbmRhdGlvbnMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJNChRhenVyZVJlY29tbWVuZGF0aW9ucxgCIAEoCzIvLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlRGlzY291bnRSZWNvbW1lbmRhdGlvbnMSSQoSZ2NwUmVjb21tZW5kYXRpb25zGAMgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwRGlzY291bnRSZWNvbW1lbmRhdGlvbnMiVwocR2V0QW5vbWFseWluQ29zdEdyb3VwUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCSLhAQoLQW5vbWFseURhdGESDwoHYWNjb3VudBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHcHJvZHVjdBgEIAEoCRIMCgRkYXRlGAUgASgJEhEKCXRvdGFsQ29zdBgGIAEoAhIRCglpc0Fub21hbHkYByABKAgSEgoKbG93ZXJMaW1pdBgIIAEoAhISCgp1cHBlckxpbWl0GAkgASgCEhMKC2Fub21hbHlDb3N0GAogASgCEhoKEmFub21hbHlQcm9iYWJpbGl0eRgLIAEoAiKFAQokQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EhMKC2ZyZXF1ZW5jaWVzGAEgAygDEhIKCmNvc3RHcm91cHMYAiADKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhAKCGNoYW5uZWxzGAQgAygJEgwKBG5hbWUYBSABKAkiNgooTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSKRAQokVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGFsZXJ0RW5hYmxlZBgCIAEoCBIQCghjaGFubmVscxgDIAMoCRITCgtmcmVxdWVuY2llcxgEIAMoAxISCgpjb3N0R3JvdXBzGAUgAygJEgwKBG5hbWUYBiABKAki6QEKF0Rpc2NvdW50RXhwaXJ5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBITCgtmcmVxdWVuY2llcxgEIAMoAxI1Cgpjb3N0R3JvdXBzGAUgAygLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDb3N0R3JvdXASDwoHZGV0YWlscxgGIAEoCRIyCghjaGFubmVscxgHIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q2hhbm5lbHMSDAoEbmFtZRgIIAEoCSIkCiJMaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0IoUBChlDcmVhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgwKBG5hbWUYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhEKCWZyZXF1ZW5jeRgDIAEoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRIcChRub3RpZmljYXRpb25DaGFubmVscxgFIAMoCSIrCh1NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSLQAQoQQW5vbWFseUFsZXJ0RGF0YRIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgRuYW1lGAMgASgJEhQKDGFsZXJ0RW5hYmxlZBgEIAEoCBIRCglmcmVxdWVuY3kYBSABKAkSNgoLY29zdEdyb3VwSWQYBiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIyCghjaGFubmVscxgHIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q2hhbm5lbHMiGQoXTGlzdEFub21hbHlBbGVydFJlcXVlc3QikQEKGVVwZGF0ZUFub21hbHlBbGVydFJlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSHAoUbm90aWZpY2F0aW9uQ2hhbm5lbHMYBCADKAkSEQoJZnJlcXVlbmN5GAUgASgJEhMKC2Nvc3RHcm91cElkGAYgASgJIokBChZSZWdpc3Rlck5ld1VzZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY29tcGFueRgEIAEoCRIMCgRyb2xlGAUgASgJEg4KBmFtb3VudBgGIAEoCRIRCglpbnRlbnRpb24YByABKAkiLwoXUmVnaXN0ZXJOZXdVc2VyUmVzcG9uc2USFAoMaXNBdXRob3JpemVkGAEgASgIIiYKFUdldFVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCSLOAQoWR2V0VXNlclByb2ZpbGVSZXNwb25zZRIZChFoYXNDcmVhdGVkUHJvZmlsZRgBIAEoCBIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhQKDGVtYWlsQWRkcmVzcxgHIAEoCRISCgpsaW5rU291cmNlGAggASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAkgASgIIq4BChhVcGRhdGVVc2VyUHJvZmlsZVJlcXVlc3QSDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIq8BChlVcGRhdGVVc2VyUHJvZmlsZVJlc3BvbnNlEg0KBWVtYWlsGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCJIChJMaXN0QnVkZ2V0c1JlcXVlc3QSHwoXaW5jbHVkZVNwZW5kQW5kRm9yZWNhc3QYASABKAgSEQoJY29zdEdyb3VwGAIgASgJIkgKE0xpc3RCdWRnZXRzUmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiHgoQR2V0QnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSJGChFHZXRCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJIChNDcmVhdGVCdWRnZXRSZXF1ZXN0EjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFENyZWF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIiEKE0RlbGV0ZUJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkiIgoURGVsZXRlQnVkZ2V0UmVzcG9uc2USCgoCaWQYASABKAkiVAoTVXBkYXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCRIxCgpidWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJJChRVcGRhdGVCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJLCi5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXF1ZXN0EhkKEXJlZ2lzdHJhdGlvblRva2VuGAEgASgJImEKL1Jlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1Jlc3BvbnNlEhoKEmlzQWxsb3dlZFRvT25ib2FyZBgBIAEoCBISCgpjdXN0b21lcklkGAIgASgJIiYKJEdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVxdWVzdCLyAQolR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXNwb25zZRIWCg5kYXRlUmVnaXN0ZXJlZBgBIAEoCRIaChJzdWJzY3JpcHRpb25FeHBpcnkYAiABKAkSEAoIZGF5c0xlZnQYAyABKAUSFAoMaXNTdWJzY3JpYmVkGAQgASgIEhEKCWlzRXhwaXJlZBgFIAEoCBIMCgRwbGFuGAYgASgJEg4KBmFtb3VudBgHIAEoCRIVCg1wYXltZW50T3B0aW9uGAggASgJEhUKDXBheW1lbnRNZXRob2QYCSABKAkSDgoGY3JlZGl0GAogASgBIrMBChZDcmVhdGVQcm9maWxpbmdSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEcm9sZRgCIAEoCRINCgV1c2FnZRgDIAEoCRIRCglpbnRlbnRpb24YBCABKAkSEwoLY29tcGFueU5hbWUYBSABKAkSFAoMZW1haWxBZGRyZXNzGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgiGQoXQ3JlYXRlUHJvZmlsaW5nUmVzcG9uc2UiOQobQWRkSW5mb3RvTWFya2V0cGxhY2VSZXF1ZXN0EhoKEmN1c3RvbWVySWRlbnRpZmllchgBIAEoCSIeChxBZGRJbmZvdG9NYXJrZXRwbGFjZVJlc3BvbnNlIngKF0dldFJlcG9ydFN1bW1hcnlSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEhIKCnJlcG9ydFR5cGUYBCABKAkSEAoIY3VycmVuY3kYBSABKAkirgIKGEdldFJlcG9ydFN1bW1hcnlSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRI9ChBleGVjdXRpdmVTdW1tYXJ5GAQgASgLMiMuYmx1ZWFwaS5hcGkuY292ZXIuRXhlY3V0aXZlU3VtbWFyeRJfCiFvcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvblN1bW1hcnkYBSABKAsyNC5ibHVlYXBpLmFwaS5jb3Zlci5PcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvblN1bW1hcnkSOQoOc2F2aW5nc1N1bW1hcnkYBiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5TYXZpbmdzU3VtbWFyeSKqAgoZTGlzdFJlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSDgoGdmVuZG9yGAQgASgJEg4KBnNvdXJjZRgFIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYByABKAkSDAoEdHlwZRgIIAEoCRIOCgZzcFR5cGUYCSABKAkSEQoJcmF0ZU1vZGVsGAogASgJEhUKDXBheW1lbnRPcHRpb24YCyABKAkSDAoEdGVybRgMIAEoCRIPCgdzZXJ2aWNlGA0gASgJEhUKDW9mZmVyaW5nQ2xhc3MYDiABKAkSEAoIY3VycmVuY3kYDyABKAki1QIKG0xpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSUAoMcmF0ZVNldHRpbmdzGAQgASgLMjouYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QuUmF0ZVNldHRpbmdzEhAKCGN1cnJlbmN5GAUgASgJGo4BCgxSYXRlU2V0dGluZ3MSDgoGc3BUeXBlGAEgASgJEhEKCXJhdGVNb2RlbBgCIAEoCRIVCg1wYXltZW50T3B0aW9uGAMgASgJEgwKBHRlcm0YBCABKAkSDwoHc2VydmljZRgFIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAYgASgJEg4KBnZlbmRvchgHIAEoCSLaBgoaTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIWCg5yZWNvbW1lbmRhdGlvbhgCIAEoCRIPCgdzZXJ2aWNlGAMgASgJEh4KFmVzdGltYXRlZE1vbnRobHlTYXZpbmcYBCABKAESHAoUZXN0aW1hdGVkTW9udGhseUNvc3QYBSABKAESDwoHc2NvcmluZxgGIAEoCRIOCgZ2ZW5kb3IYByABKAkSEAoIY2F0ZWdvcnkYCCABKAkSGgoSb3B0aW1pemF0aW9uU3RhdHVzGAkgASgJEhQKDGVycm9yTWVzc2FnZRgKIAEoCRIRCglhY2NvdW50SWQYCyABKAkSEwoLYWNjb3VudE5hbWUYDCABKAkSFAoMaW5zdGFuY2VOYW1lGA0gASgJEhIKCmluc3RhbmNlSWQYDiABKAkSFAoMaW5zdGFuY2VUeXBlGA8gASgJEg4KBnJlZ2lvbhgQIAEoCRISCgpjb21taXRtZW50GBEgASgBEg4KBnNwVHlwZRgSIAEoCRIYChBudW1iZXJUb1B1cmNoYXNlGBMgASgDEg4KBnJpVHlwZRgUIAEoCRIMCgR0eXBlGBUgASgJEg4KBnNvdXJjZRgWIAEoCRIXCg9kYXRlUmVjb21tZW5kZWQYFyABKAkSGwoTcmVjb21tZW5kYXRpb25Hcm91cBgYIAEoCRIVCg1sYXN0VXBkYXRlZEF0GBkgASgJElMKDnB1cmNoYXNlT3B0aW9uGBogASgLMjsuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZS5QdXJjaGFzZU9wdGlvbhrPAQoOUHVyY2hhc2VPcHRpb24SDgoGc3BUeXBlGAEgASgJEhUKDW9mZmVyaW5nQ2xhc3MYAiABKAkSEgoKY29tbWl0bWVudBgDIAEoARIYChBudW1iZXJUb1B1cmNoYXNlGAQgASgDEhUKDXBheW1lbnRPcHRpb24YBSABKAkSDAoEdGVybRgGIAEoCRIZChFjdXJyZW50R2VuZXJhdGlvbhgHIAEoCBITCgtzZXJ2aWNlVHlwZRgIIAEoCRITCgt1cGZyb250Q29zdBgJIAEoASJRChhHZXRSZWNvbW1lbmRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSFAoMcGVyaW9kT3B0aW9uGAMgASgJIl4KGUdldFJlY29tbWVuZGF0aW9uUmVzcG9uc2USQQoScmVjb21tZW5kYXRpb25EYXRhGAEgASgLMiUuYmx1ZWFwaS5hcGkuY292ZXIuQVdTUmVjb21tZW5kYXRpb25zIkQKGkV4ZWN1dGVPcHRpbWl6YXRpb25SZXF1ZXN0EhgKEHJlY29tbWVuZGF0aW9uSWQYASABKAkSDAoEdHlwZRgCIAEoCSKUAwobRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlEkwKCWF3c09wdGlvbhgBIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkFXU09wdGlvbkgAEkwKCWdjcE9wdGlvbhgCIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkdDUE9wdGlvbkgAElYKDmF6dXJlQ3NwT3B0aW9uGAMgASgLMjwuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQXp1cmVDU1BPcHRpb25IABpYCglBV1NPcHRpb24SGgoSYXBwcm92ZVRlbXBsYXRlVXJsGAEgASgJEhgKEHJlY29tbWVuZGF0aW9uSWQYAiABKAkSFQoNY3VycmVudFN0YXR1cxgDIAEoCRoLCglHQ1BPcHRpb24aEAoOQXp1cmVDU1BPcHRpb25CCAoGVmVuZG9yIiMKFU1hcmtBc0V4ZWN1dGVkUmVxdWVzdBIKCgJpZBgBIAMoCSIYChZNYXJrQXNFeGVjdXRlZFJlc3BvbnNlIi8KIVVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAMoCSIkCiJVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIqcBChpPcHRpbWl6YXRpb25IaXN0b3J5UmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSDgoGdmVuZG9yGAQgASgJEg4KBnNvdXJjZRgFIAEoCRIUCgxwZXJpb2RPcHRpb24YBiABKAkSEAoIY3VycmVuY3kYByABKAkidgobT3B0aW1pemF0aW9uSGlzdG9yeVJlc3BvbnNlElcKHWV4ZWN1dGVkUmVjb21tZW5kYXRpb25EZXRhaWxzGAIgAygLMjAuYmx1ZWFwaS5hcGkuY292ZXIuRXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMiYAohU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg8KB2Fub21hbHkYAiABKAgSFQoNdmlzdWFsQnVpbGRlchgDIAEoCCJ0CiJTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEjkKDmV2ZW50SW5kaWNhdG9yGAIgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuRXZlbnRJbmRpY2F0b3IiewohU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXRocmVzaG9sZBgCIAEoAhIUCgxpc1BlcmNlbnRhZ2UYAyABKAgSGAoQcGFzdERhdGFJbk1vbnRocxgEIAEoAyJ0CiJTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1Jlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEjkKDmFub21hbHlPcHRpb25zGAIgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQW5vbWFseU9wdGlvbnMiLwoYU2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0EhMKC2Zpc2NhbE1vbnRoGAEgASgJIjAKGVNldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2USEwoLZmlzY2FsTW9udGgYASABKAkiGgoYR2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0IkgKGUdldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2USEwoLZmlzY2FsTW9udGgYASABKAkSFgoOZGF0ZVJlZ2lzdGVyZWQYAiABKAkiWwobVHJhbnNmZXJPcmdhbml6YXRpb25SZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZyZWdpb24YAiABKAkSDQoFcGF5ZXIYAyABKAkSDQoFb3JnSWQYBCABKAkiLgocVHJhbnNmZXJPcmdhbml6YXRpb25SZXNwb25zZRIOCgZ0YXJnZXQYASABKAkiRQogVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlcXVlc3QSIQoZdXNlTmV3Q29zdEdyb3VwQ3JlYXRpb25VSRgBIAEoCCJSCiFVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIWChRMaXN0VW5pdFR5cGVzUmVxdWVzdCJOChVMaXN0VW5pdFR5cGVzUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIrYBChVDcmVhdGVVbml0VHlwZVJlcXVlc3QSEAoIdW5pdE5hbWUYASABKAkSLgoJdW5pdEl0ZW1zGAIgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVW5pdEl0ZW0SRgoPc2hhcmVkUmVzb3VyY2VzGAMgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24SEwoLZGVzY3JpcHRpb24YBCABKAkiTwoWQ3JlYXRlVW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiIAoSR2V0VW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJIkwKE0dldFVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIsIBChVVcGRhdGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkSEAoIdW5pdE5hbWUYAiABKAkSLgoJdW5pdEl0ZW1zGAMgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVW5pdEl0ZW0SRgoPc2hhcmVkUmVzb3VyY2VzGAQgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24SEwoLZGVzY3JpcHRpb24YBSABKAkiTwoWVXBkYXRlVW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiIwoVRGVsZXRlVW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJIiQKFkRlbGV0ZVVuaXRUeXBlUmVzcG9uc2USCgoCaWQYASABKAkiTwoRTWVyZ2VVbml0c1JlcXVlc3QSEwoLdW5pdENvc3RJZHMYASADKAkSEAoIdW5pdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiTQoSTWVyZ2VVbml0c1Jlc3BvbnNlEjcKDm1lcmdlZFVuaXRDb3N0GAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIhsKGUxpc3RTdWdnZXN0ZWRVbml0c1JlcXVlc3QiVgoaTGlzdFN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USOAoOc3VnZ2VzdGVkVW5pdHMYASADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0InIKGk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXF1ZXN0EhgKEHN1Z2dlc3RlZFVuaXRJZHMYASADKAkSEwoLdW5pdEl0ZW1JZHMYAiADKAkSEAoIdW5pdE5hbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiXQobTWVyZ2VTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlEj4KFG1lcmdlZFN1Z2dlc3RlZFVuaXRzGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuU3VnZ2VzdGVkVW5pdCI6Ch5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCSI2Ch9DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlc3BvbnNlEhMKC3VuaXRDb3N0SWRzGAEgAygJIhwKGkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0ImUKG0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiLTAgocQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIaChJzaGFyZWRSZXNvdXJjZU5hbWUYASABKAkSTQobc2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb25zGAIgASgLMiguYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VzQ29tYmluYXRpb25zElYKDGRpc3RyaWJ1dGlvbhgDIAMoCzJALmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5EaXN0cmlidXRpb25FbnRyeRIRCglhbGxvY2F0ZWQYBCABKAESEwoLdW5hbGxvY2F0ZWQYBSABKAESEwoLZGVzY3JpcHRpb24YBiABKAkaMwoRRGlzdHJpYnV0aW9uRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJnCh1DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiInChlHZXRTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJImQKGkdldFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIt8CChxVcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEnNoYXJlZFJlc291cmNlTmFtZRgCIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAyABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAQgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgFIAEoARITCgt1bmFsbG9jYXRlZBgGIAEoARITCgtkZXNjcmlwdGlvbhgHIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHVVwZGF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIioKHERlbGV0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiKwodRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USCgoCaWQYASABKAkiVwoWTGlzdFVuaXRNZXRyaWNzUmVxdWVzdBIZChFhZ2dyZWdhdGlvbk1ldGhvZBgBIAEoCRISCgpkYXRhU291cmNlGAIgASgJEg4KBnN0YXR1cxgDIAEoCSJNChdMaXN0VW5pdE1ldHJpY3NSZXNwb25zZRIyCgt1bml0TWV0cmljcxgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiuQEKF0NyZWF0ZVVuaXRNZXRyaWNSZXF1ZXN0EhIKCm1ldHJpY05hbWUYASABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAiABKAkSEgoKZGF0YVNvdXJjZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRITCgtjb3N0Z3JvdXBJZBgFIAMoCRIxCgpzb3VyY2VJbmZvGAYgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhDcmVhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiIgoUR2V0VW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiSgoVR2V0VW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIsUBChdVcGRhdGVVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCRISCgptZXRyaWNOYW1lGAIgASgJEhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAMgASgJEhIKCmRhdGFTb3VyY2UYBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSEwoLY29zdGdyb3VwSWQYBiADKAkSMQoKc291cmNlSW5mbxgHIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlNvdXJjZUluZm8iTQoYVXBkYXRlVW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIiUKF0RlbGV0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJIiYKGERlbGV0ZVVuaXRNZXRyaWNSZXNwb25zZRIKCgJpZBgBIAEoCSJmChlQcmV2aWV3R29vZ2xlU2hlZXRSZXF1ZXN0EhUKDWdvb2dsZVNoZWV0SWQYASABKAkSEAoIc2hlZXRVcmwYAiABKAkSEQoJc2hlZXROYW1lGAMgASgJEg0KBXJhbmdlGAQgASgJIlkKGlByZXZpZXdHb29nbGVTaGVldFJlc3BvbnNlEg4KBmhlYWRlchgBIAMoCRIrCgdyb3dEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuUm93RGF0YSIzCh9Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXF1ZXN0EhAKCHNoZWV0VXJsGAEgASgJIk0KIENvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1Jlc3BvbnNlEhUKDWdvb2dsZVNoZWV0SWQYASABKAkSEgoKc2hlZXROYW1lcxgCIAMoCSJ2ChxHZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXF1ZXN0EhEKCWFjY291bnRJZBgBIAEoCRIOCgZyZWdpb24YAiABKAkSDAoEdHlwZRgDIAEoCRIRCgluYW1lc3BhY2UYBCABKAkSEgoKbWV0cmljTmFtZRgFIAEoCSK+AQodR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2USEgoKbmFtZXNwYWNlcxgBIAMoCRIPCgdtZXRyaWNzGAIgAygJEk0KCmRpbWVuc2lvbnMYAyADKAsyOS5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlLkRpbWVuc2lvbhopCglEaW1lbnNpb24SDAoEbmFtZRgBIAEoCRIOCgZ2YWx1ZXMYAiADKAkigQIKFkdldERpc2NvdW50UGxhblJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEhgKEHJlZHVjdGlvbkRpc3BsYXkYAyABKAkSFgoOaW5jbHVkZURldGFpbHMYBCABKAgSEAoIZnJvbURhdGUYBSABKAkSDgoGdG9EYXRlGAYgASgJEg8KB3BheWVySWQYByABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYCCABKAkSDwoHZ3JvdXBJZBgJIAEoCRITCgtjb3N0R3JvdXBJZBgKIAEoCRIQCghhY2NvdW50cxgLIAMoCRIQCghzZXJ2aWNlcxgMIAMoCSJnChdHZXREaXNjb3VudFBsYW5SZXNwb25zZRINCgVvcmdJZBgBIAEoCRI9ChBhd3NEaXNjb3VudFBsYW5zGAIgASgLMiMuYmx1ZWFwaS5hcGkuY292ZXIuQXdzRGlzY291bnRQbGFucyJzChxMaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIQCghmcm9tRGF0ZRgDIAEoCRIOCgZ0b0RhdGUYBCABKAkSDAoEdHlwZRgFIAEoCSLJAQodTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2USVAoNbm9ucGVyZm9ybWluZxgBIAMoCzI9LmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2UuTm9ucGVyZm9ybWluZxpSCg1Ob25wZXJmb3JtaW5nEgwKBHR5cGUYASABKAkSDwoHYWNjb3VudBgCIAEoCRITCgt1dGlsaXphdGlvbhgDIAEoARINCgV3YXN0ZRgEIAEoASJ0ChxMaXN0VW50YWdnZWRSZXNvdXJjZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIQCghmcm9tRGF0ZRgDIAEoCRIOCgZ0b0RhdGUYBCABKAkSDQoFbGltaXQYBSABKAMi+QEKHUxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlElwKEXVudGFnZ2VkUmVzb3VyY2VzGAEgAygLMkEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZS5VbnRhZ2dlZFJlc291cmNlcxp6ChFVbnRhZ2dlZFJlc291cmNlcxIQCghyZXNvdXJjZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWFjY291bnRJZBgDIAEoCRIRCgljb3N0R3JvdXAYBCABKAkSDAoEY29zdBgFIAEoARIOCgZ2ZW5kb3IYBiABKAkqPwoGU3RhdHVzEgsKB1BFTkRJTkcQABIPCgtJTl9QUk9HUkVTUxABEgsKB1NVQ0NFU1MQAhIKCgZGQUlMRUQQAzLW3AEKBUNvdmVyEncKCk9uYm9hcmRPcmcSIy5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5PbmJvYXJkT3JnUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL21lbWJlcnMvb25ib2FyZBJ8CgxJbnZpdGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkludml0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkludml0ZU1lbWJlclJlc3BvbnNlIh2C0+STAhc6ASoiEi92MS9tZW1iZXJzL2ludml0ZRJ+CgxBY3RpdmF0ZVVzZXISJS5ibHVlYXBpLmNvdmVyLnYxLkFjdGl2YXRlVXNlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkFjdGl2YXRlVXNlclJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tZW1iZXJzL2FjdGl2YXRlEnUKDENyZWF0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlTWVtYmVyUmVzcG9uc2UiFoLT5JMCEDoBKiILL3YxL21lbWJlcnMSbAoKR2V0TWVtYmVycxIjLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlcnNSZXNwb25zZSITgtPkkwINEgsvdjEvbWVtYmVycxKHAQoQR2V0TWVtYmVyRGV0YWlscxIpLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckRldGFpbHNSZXNwb25zZSIcgtPkkwIWEhQvdjEvbWVtYmVycy97dXNlcklkfRKXAQoSR2V0TWVtYmVyQ29zdEdyb3VwEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJDb3N0R3JvdXBSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJDb3N0R3JvdXBSZXNwb25zZSImgtPkkwIgEh4vdjEvbWVtYmVycy97dXNlcklkfS9jb3N0Z3JvdXASpAEKFlVwZGF0ZU1lbWJlclBlcm1pc3Npb24SLy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXF1ZXN0GjAuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2UiJ4LT5JMCIToBKhocL3YxL21lbWJlcnMve3VzZXJJZH0vaXNhZG1pbhJzCg5HZXRVc2VyRGV0YWlscxInLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlckRldGFpbHNSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1Jlc3BvbnNlIg6C0+STAggSBi92MS9tZRKDAQoQVXBkYXRlVXNlckF2YXRhchIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdmF0YXJSZXNwb25zZSIYgtPkkwISOgEqGg0vdjEvbWUvYXZhdGFyEnsKDlVwZGF0ZVVzZXJJY29uEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VySWNvblJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJJY29uUmVzcG9uc2UiFoLT5JMCEDoBKhoLL3YxL21lL2ljb24SkwEKFFVwZGF0ZVVzZXJDb2xvclRoZW1lEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQ29sb3JUaGVtZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJDb2xvclRoZW1lUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL21lL2NvbG9ydGhlbWUSewoOVXBkYXRlVXNlck5hbWUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJOYW1lUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck5hbWVSZXNwb25zZSIWgtPkkwIQOgEqGgsvdjEvbWUvbmFtZRJ/Cg9VcGRhdGVVc2VyRW1haWwSKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJFbWFpbFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlIheC0+STAhE6ASoaDC92MS9tZS9lbWFpbBKLAQoSVXBkYXRlVXNlck1haW5WaWV3EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTWFpblZpZXdSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTWFpblZpZXdSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvbWFpbnZpZXcSiAEKEVJlc2V0VXNlclBhc3N3b3JkEiouYmx1ZWFwaS5jb3Zlci52MS5SZXNldFVzZXJQYXNzd29yZFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0VXNlclBhc3N3b3JkUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL21lL3Bhc3N3b3JkEoMBChBVcGRhdGVVc2VyTG9jYWxlEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTG9jYWxlUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckxvY2FsZVJlc3BvbnNlIhiC0+STAhI6ASoaDS92MS9tZS9sb2NhbGUSiwEKElVwZGF0ZVVzZXJBcHBUaGVtZRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckFwcFRoZW1lUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL2FwcHRoZW1lEosBChJVcGRhdGVVc2VyVGltZXpvbmUSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJUaW1lem9uZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJUaW1lem9uZVJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS90aW1lem9uZRKTAQoUVXBkYXRlVXNlckF0dHJpYnV0ZXMSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvbWUvYXR0cmlidXRlcxJ7CgxEZWxldGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZU1lbWJlclJlc3BvbnNlIhyC0+STAhYqFC92MS9tZW1iZXJzL3t1c2VySWR9EoYBCg1SZXNldFBhc3N3b3JkEiYuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFBhc3N3b3JkUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVzZXRQYXNzd29yZFJlc3BvbnNlIiSC0+STAh46ASoiGS92MS9tZW1iZXJzL3Jlc2V0cGFzc3dvcmQSbQoKQ3JlYXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVZpZXdSZXNwb25zZSIUgtPkkwIOOgEqIgkvdjEvdmlld3MSZAoIR2V0Vmlld3MSIS5ibHVlYXBpLmNvdmVyLnYxLkdldFZpZXdzUmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuR2V0Vmlld3NSZXNwb25zZSIRgtPkkwILEgkvdjEvdmlld3MSfwoOR2V0Q3VycmVudFZpZXcSJy5ibHVlYXBpLmNvdmVyLnYxLkdldEN1cnJlbnRWaWV3UmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0Q3VycmVudFZpZXdSZXNwb25zZSIagtPkkwIUEhIvdjEvdmlld3Mve3ZpZXdJZH0ShgEKEEdldEZhdm9yaXRlVmlld3MSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEZhdm9yaXRlVmlld3NSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRGYXZvcml0ZVZpZXdzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3ZpZXdzL2Zhdm9yaXRlcxJ4CgtQdWJsaXNoVmlldxIkLmJsdWVhcGkuY292ZXIudjEuUHVibGlzaFZpZXdSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5QdWJsaXNoVmlld1Jlc3BvbnNlIhyC0+STAhY6ASoiES92MS92aWV3cy9wdWJsaXNoEn0KC0FkZEZhdm9yaXRlEiQuYmx1ZWFwaS5jb3Zlci52MS5BZGRGYXZvcml0ZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFkZEZhdm9yaXRlUmVzcG9uc2UiIYLT5JMCGzoBKhoWL3YxL3ZpZXdzL2Zhdm9yaXRlL2FkZBKJAQoOUmVtb3ZlRmF2b3JpdGUSJy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUZhdm9yaXRlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlRmF2b3JpdGVSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdmlld3MvZmF2b3JpdGUvcmVtb3ZlEnYKClVwZGF0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3UmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL3ZpZXdzL3t2aWV3SWR9Eo8BChBVcGRhdGVWaWV3TGF5b3V0EikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3TGF5b3V0UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0xheW91dFJlc3BvbnNlIiSC0+STAh46ASoaGS92MS92aWV3cy9sYXlvdXQve3ZpZXdJZH0SmgEKEFVwZGF0ZVZpZXdXaWRnZXQSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3V2lkZ2V0UmVzcG9uc2UiL4LT5JMCKToBKhokL3YxL3ZpZXdzL2xheW91dC97dmlld0lkfS97d2lkZ2V0SWR9Ep8BChRVcGRhdGVWaWV3Q29sb3JUaGVtZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0NvbG9yVGhlbWVSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q29sb3JUaGVtZVJlc3BvbnNlIiiC0+STAiI6ASoaHS92MS92aWV3cy97dmlld0lkfS9jb2xvcnRoZW1lEpcBChJVcGRhdGVWaWV3Q3VycmVuY3kSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlIiaC0+STAiA6ASoaGy92MS92aWV3cy97dmlld0lkfS9jdXJyZW5jeRKcAQoUU2V0T3JnVXBkYXRlQ3VycmVuY3kSLS5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvb3JnYW5pemF0aW9ucy9jdXJyZW5jeRKZAQoUR2V0T3JnVXBkYXRlQ3VycmVuY3kSLS5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZSIigtPkkwIcEhovdjEvb3JnYW5pemF0aW9ucy9jdXJyZW5jeRKNAQoRTGlzdEV4Y2hhbmdlUmF0ZXMSKi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZSIfgtPkkwIZEhcvdjEvb3JnYW5pemF0aW9ucy9yYXRlcxJzCgpEZWxldGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVmlld1Jlc3BvbnNlIhqC0+STAhQqEi92MS92aWV3cy97dmlld0lkfRKfAQoTVXBkYXRlU2lkZU1lbnVTdGF0ZRIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZSIrgtPkkwIlOgEqGiAvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnVzdGF0ZRKiAQoTQWRkU2lkZU1lbnVGYXZvcml0ZRIsLmJsdWVhcGkuY292ZXIudjEuQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkFkZFNpZGVNZW51RmF2b3JpdGVSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnVmYXZvcml0ZRKtAQoWUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZRIvLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXNwb25zZSIwgtPkkwIqOgEqIiUvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnV1bmZhdm9yaXRlEoEBCg9DcmVhdGVDb3N0R3JvdXASKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RHcm91cFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RHcm91cFJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9jb3N0Z3JvdXBzEngKDUdldENvc3RHcm91cHMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cHNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBzUmVzcG9uc2UiFoLT5JMCEBIOL3YxL2Nvc3Rncm91cHMSeAoNR2V0Q2F0ZWdvcmllcxImLmJsdWVhcGkuY292ZXIudjEuR2V0Q2F0ZWdvcmllc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldENhdGVnb3JpZXNSZXNwb25zZSIWgtPkkwIQEg4vdjEvY2F0ZWdvcmllcxKYAQoTR2V0Q29zdEdyb3VwRGV0YWlscxIsLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cERldGFpbHNSZXNwb25zZSIkgtPkkwIeEhwvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9EqABChNVcGRhdGVDb3N0R3JvdXBOYW1lEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBOYW1lUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlIiyC0+STAiY6ASoaIS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbmFtZRK8AQoaVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb24SMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXNwb25zZSIzgtPkkwItOgEqGigvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2Rlc2NyaXB0aW9uEqQBChRVcGRhdGVDb3N0R3JvdXBJbWFnZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJbWFnZVJlc3BvbnNlIi2C0+STAic6ASoaIi92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vaW1hZ2USoAEKE1VwZGF0ZUNvc3RHcm91cEljb24SLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEljb25SZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9pY29uErgBChlVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lEjIuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBozLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlc3BvbnNlIjKC0+STAiw6ASoaJy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vY29sb3J0aGVtZRLAAQobVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zEjQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0GjUuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZSI0gtPkkwIuOgEqGikvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2NvbWJpbmF0aW9ucxK7AQocUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9ucxI1LmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QaNi5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZSIsgtPkkwImEiQvdjEvY29zdGdyb3Vwcy9yZXNvbHZlL3tjb3N0R3JvdXBJZH0SrAEKFUFzc2lnbkNvc3RHcm91cE1lbWJlchIuLmJsdWVhcGkuY292ZXIudjEuQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2UiMoLT5JMCLDoBKiInL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9tZW1iZXIvYWRkEq8BChVSZW1vdmVDb3N0R3JvdXBNZW1iZXISLi5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUNvc3RHcm91cE1lbWJlclJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUNvc3RHcm91cE1lbWJlclJlc3BvbnNlIjWC0+STAi86ASoiKi92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbWVtYmVyL3JlbW92ZRKMAQoPRGVsZXRlQ29zdEdyb3VwEiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0R3JvdXBSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0R3JvdXBSZXNwb25zZSIkgtPkkwIeKhwvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9EqYBChtHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmwSNC5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlcXVlc3QaNS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlc3BvbnNlIhqC0+STAhQSEi92MS9hd3MvYWNjdGFjY2VzcxKKAQoRTGlzdEFjY291bnRBY2Nlc3MSKi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyImgtPkkwIgOgEqIhsvdjEvYXdzL2FjY3RhY2Nlc3MvYWxsOnJlYWQwARKDAQoQR2V0QWNjb3VudEFjY2VzcxIpLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiI4LT5JMCHRIbL3YxL2F3cy9hY2N0YWNjZXNzL3t0YXJnZXR9EnwKDUdldERhdGFBY2Nlc3MSLy5ibHVlYXBpLmNvdmVyLnYxLkdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5EYXRhQWNjZXNzIhyC0+STAhYSFC92MS9hY2NvdW50L3t0YXJnZXR9EnkKEERlbGV0ZURhdGFBY2Nlc3MSLy5ibHVlYXBpLmNvdmVyLnYxLkdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYqFC92MS9hY2NvdW50L3t0YXJnZXR9EoMBChNDcmVhdGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIdgtPkkwIXOgEqIhIvdjEvYXdzL2FjY3RhY2Nlc3MSnAEKG0NyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldBI0LmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyImgtPkkwIgOgEqIhsvdjEvYXdzL2FjY3RhY2Nlc3Mvc3RhY2tzZXQSigEKFkNyZWF0ZUFjY291bnRBY2Nlc3NDdXISLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiGC0+STAhs6ASoiFi92MS9hd3MvYWNjdGFjY2Vzcy9jdXISewoTVXBkYXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIiOC0+STAh0aGy92MS9hd3MvYWNjdGFjY2Vzcy97dGFyZ2V0fRKTAQoTRGVsZXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZSIfgtPkkwIZKhcvdjEvYWNjdGFjY2Vzcy97dGFyZ2V0fRJ0Cg9SZWdpc3RlckFjY291bnQSKC5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyQWNjb3VudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGToBKiIUL3YxL3t2ZW5kb3J9L2FjY291bnQScQoSUmVnaXN0ZXJEYXRhQWNjZXNzEisuYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhaC0+STAhA6ASoiCy92MS9hY2NvdW50EnAKEUFkZEJpbGxpbmdBY2NvdW50EicuYmx1ZWFwaS5jb3Zlci52MS5CaWxsaW5nQWNjb3VudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFDoBKiIPL3YxL2JpbGxpbmdhY2N0EncKDkxpc3REYXRhQWNjZXNzEicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RGF0YUFjY2Vzc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkRhdGFBY2Nlc3MiHILT5JMCFiIUL3YxL2FjY291bnQvYWxsOnJlYWQwARKoAQoYTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzEjEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXF1ZXN0GjIuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZSIlgtPkkwIfIh0vdjEvYWNjb3VudC91bnJlZ2lzdGVyZWQ6cmVhZBJ2ChBVcGRhdGVEYXRhQWNjZXNzEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZOgEqGhQvdjEvYWNjb3VudC97dGFyZ2V0fRJrCgpMaXN0QXNzZXRzEiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzUmVxdWVzdBoaLmJsdWVhcGkuY292ZXIudjEuUmVzb3VyY2UiGoLT5JMCFDoBKiIPL3YxL2Fzc2V0czpyZWFkMAESkwEKEEdldEFzc2V0c1N1bW1hcnkSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFzc2V0c1N1bW1hcnlSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRBc3NldHNTdW1tYXJ5UmVzcG9uc2UiKILT5JMCIhIgL3YxL2Fzc2V0cy9zdW1tYXJ5L3tjb3N0R3JvdXBJZH0ScgoMR2V0Q29zdFVzYWdlEiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0GhouYmx1ZWFwaS5jb3Zlci52MS5Db3N0SXRlbSIdgtPkkwIXOgEqIhIvdjEvY29zdHVzYWdlOnJlYWQwARLCAQocR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvbhI1LmJsdWVhcGkuY292ZXIudjEuR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlcXVlc3QaNi5ibHVlYXBpLmNvdmVyLnYxLkdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXNwb25zZSIzgtPkkwItEisvdjEvcmlnaHRzaXppbmdyZWNvbW1lbmRhdGlvbi97Y29zdEdyb3VwSWR9EpgBChJNb2RpZnlSZXNvdXJjZVR5cGUSKy5ibHVlYXBpLmNvdmVyLnYxLk1vZGlmeVJlc291cmNlVHlwZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLk1vZGlmeVJlc291cmNlVHlwZVJlc3BvbnNlIieC0+STAiE6ASoiHC92MS97dmVuZG9yfS9yZXNvdXJjZS9tb2RpZnkSmAEKEVRlcm1pbmF0ZVJlc291cmNlEiouYmx1ZWFwaS5jb3Zlci52MS5UZXJtaW5hdGVSZXNvdXJjZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2UiKoLT5JMCJDoBKiIfL3YxL3t2ZW5kb3J9L3Jlc291cmNlL3Rlcm1pbmF0ZRKNAQoQVXBsb2FkQ2hhcmdlQ29kZRIpLmJsdWVhcGkuY292ZXIudjEuVXBsb2FkQ2hhcmdlQ29kZVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwbG9hZENoYXJnZUNvZGVSZXNwb25zZSIggtPkkwIaOgEqIhUvdjEvY2hhcmdlY29kZS91cGxvYWQoARJ6CgtBc3NpZ25QYXllchIkLmJsdWVhcGkuY292ZXIudjEuQXNzaWduUGF5ZXJSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25QYXllclJlc3BvbnNlIh6C0+STAhg6ASoiEy92MS97dmVuZG9yfS9wYXllcnMScQoJR2V0UGF5ZXJzEiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRQYXllcnNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRQYXllcnNSZXNwb25zZSIbgtPkkwIVEhMvdjEve3ZlbmRvcn0vcGF5ZXJzEocBCgtHZXRBY2NvdW50cxIkLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50c1Jlc3BvbnNlIiuC0+STAiUSIy92MS97dmVuZG9yfS9hY2NvdW50cy97Y29zdEdyb3VwSWR9EocBCgtHZXRTZXJ2aWNlcxIkLmJsdWVhcGkuY292ZXIudjEuR2V0U2VydmljZXNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRTZXJ2aWNlc1Jlc3BvbnNlIiuC0+STAiUSIy92MS97dmVuZG9yfS9zZXJ2aWNlcy97Y29zdEdyb3VwSWR9EoMBCgpHZXRSZWdpb25zEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWdpb25zUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0UmVnaW9uc1Jlc3BvbnNlIiqC0+STAiQSIi92MS97dmVuZG9yfS9yZWdpb25zL3tjb3N0R3JvdXBJZH0SdwoHR2V0VGFncxIgLmJsdWVhcGkuY292ZXIudjEuR2V0VGFnc1JlcXVlc3QaIS5ibHVlYXBpLmNvdmVyLnYxLkdldFRhZ3NSZXNwb25zZSIngtPkkwIhEh8vdjEve3ZlbmRvcn0vdGFncy97Y29zdEdyb3VwSWR9EncKCExpc3RGZWVzEiEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RmVlc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiKILT5JMCIjoBKiIdL3YxL2FsbG9jYXRpb25zL2ZlZXMvYWxsOnJlYWQwARJ6CgpSZXN0b3JlRmVlEiMuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlRmVlUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIngtPkkwIhOgEqIhwvdjEvYWxsb2NhdGlvbnMvZmVlcy9yZXN0b3JlMAESfgoPR2V0Q29zdEdyb3VwRmVlEiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBGZWVSZXF1ZXN0GhkuYmx1ZWFwaS5jb3Zlci52MS5GZWVJdGVtIiSC0+STAh46ASoiGS92MS9hbGxvY2F0aW9ucy9mZWVzOnJlYWQwARJ7Cg5MaXN0QWxsb2NhdG9ycxInLmJsdWVhcGkuY292ZXIudjEuTGlzdEFsbG9jYXRvcnNSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIWgtPkkwIQEg4vdjEvYWxsb2NhdG9yczABEn4KD0NyZWF0ZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiGYLT5JMCEzoBKiIOL3YxL2FsbG9jYXRvcnMSoAEKF0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzEjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QaMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2UiIILT5JMCGhIYL3YxL2FsbG9jYXRvcnMvYXR0cmlidXRlEpQBChRHZXRBbGxvY2F0aW9uU291cmNlcxItLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlIh2C0+STAhcSFS92MS9hbGxvY2F0b3JzL3NvdXJjZRKBAQoPVXBkYXRlQWxsb2NhdG9yEiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiHoLT5JMCGDoBKhoTL3YxL2FsbG9jYXRvcnMve2lkfRJwCg9EZWxldGVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsbG9jYXRvclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiG4LT5JMCFSoTL3YxL2FsbG9jYXRvcnMve2lkfRKQAQoVUHJveHlDcmVhdGVDb21wbGV0aW9uEi4uYmx1ZWFwaS5jb3Zlci52MS5Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZSIUgtPkkwIOOgEqIgkvdjEveC9wY2MwARKKAQoUU2ltdWxhdGVGZWVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiKILT5JMCIjoBKiIdL3YxL2FsbG9jYXRpb25zL2ZlZXMvc2ltdWxhdGUwARKYAQoQTGlzdEFjY291bnRVc2FnZRIpLmJsdWVhcGkuY292ZXIudjEuTGlzdEFjY291bnRVc2FnZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiMILT5JMCKjoBKiIlL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9hbGw6cmVhZDABEp0BChNSZXN0b3JlQWNjb3VudFVzYWdlEiwuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlQWNjb3VudFVzYWdlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIvgtPkkwIpOgEqIiQvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL3Jlc3RvcmUwARKbAQoUU2ltdWxhdGVBY2NvdW50VXNhZ2USKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiMILT5JMCKjoBKiIlL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9zaW11bGF0ZTABEoEBCgtMaXN0U2F2aW5ncxIhLmJsdWVhcGkuY292ZXIudjEuTGlzdEZlZXNSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIrgtPkkwIlOgEqIiAvdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9hbGw6cmVhZDABEokBCg5SZXN0b3JlU2F2aW5ncxInLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZVNhdmluZ3NSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIqgtPkkwIkOgEqIh8vdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9yZXN0b3JlMAESjAEKD1NpbXVsYXRlU2F2aW5ncxIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiK4LT5JMCJToBKiIgL3YxL2FsbG9jYXRpb25zL3NhdmluZ3Mvc2ltdWxhdGUwARKOAQoWR2V0Q29zdEdyb3VwQWxsb2NhdGlvbhIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQWxsb2NhdGlvblJlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRpb25JdGVtIh+C0+STAhk6ASoiFC92MS9hbGxvY2F0aW9uczpyZWFkMAEShwEKEFByb2Nlc3NBdXRoMFVzZXISKS5ibHVlYXBpLmNvdmVyLnYxLlByb2Nlc3NBdXRoMFVzZXJSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5Qcm9jZXNzQXV0aDBVc2VyUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL21lbWJlcnMvYXV0aDASmwEKG0FkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFscxI0LmJsdWVhcGkuY292ZXIudjEuQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoOgEqIiMvdjEvYXp1cmUvY3JlZGVudGlhbHMvcGFydG5lcmNlbnRlchJ1Cg1BZGRNcG5TZXR0aW5nEiYuYmx1ZWFwaS5jb3Zlci52MS5BZGRNcG5TZXR0aW5nUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeOgEqIhkvdjEvYXp1cmUvY3JlZGVudGlhbHMvbXBuEpMBChVHZXRDb3N0R3JvdXBBdHRyaWJ1dGUSLi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEF0dHJpYnV0ZVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEF0dHJpYnV0ZVJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9hdHRyaWJ1dGVzEm8KCUdldEFsZXJ0cxIiLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnRzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnRzUmVzcG9uc2UiF4LT5JMCERIPL3YxL2FsZXJ0cy9jb3N0MAESdgoLQ3JlYXRlQWxlcnQSJC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsZXJ0UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxlcnRSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvYWxlcnRzL2Nvc3QShAEKD0dldEFsZXJ0RGV0YWlscxIoLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnREZXRhaWxzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnREZXRhaWxzUmVzcG9uc2UiHILT5JMCFhIUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SeAoLRGVsZXRlQWxlcnQSJC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsZXJ0UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxlcnRSZXNwb25zZSIcgtPkkwIWKhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRKQAQoSVXBkYXRlQWxlcnREZXRhaWxzEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbGVydERldGFpbHNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbGVydERldGFpbHNSZXNwb25zZSIfgtPkkwIZOgEqGhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRJ6CgtHZXRDaGFubmVscxIkLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsc1Jlc3BvbnNlIhyC0+STAhY6ASoiES92MS9jaGFubmVsczpyZWFkMAESeQoNQ3JlYXRlQ2hhbm5lbBImLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ2hhbm5lbFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNoYW5uZWxSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvY2hhbm5lbHMShwEKEUdldENoYW5uZWxEZXRhaWxzEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxEZXRhaWxzUmVzcG9uc2UiGYLT5JMCExIRL3YxL2NoYW5uZWxzL3tpZH0SewoNRGVsZXRlQ2hhbm5lbBImLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ2hhbm5lbFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNoYW5uZWxSZXNwb25zZSIZgtPkkwITKhEvdjEvY2hhbm5lbHMve2lkfRKTAQoUVXBkYXRlQ2hhbm5lbERldGFpbHMSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvY2hhbm5lbHMve2lkfRKgAQoaR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnMSMy5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvZGlzY291bnQSgAEKFUdldEFub21hbHlpbkNvc3RHcm91cBIuLmJsdWVhcGkuY292ZXIudjEuR2V0QW5vbWFseWluQ29zdEdyb3VwUmVxdWVzdBodLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseURhdGEiFoLT5JMCEDoBKiILL3YxL2Fub21hbHkwARKWAQodQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIlgtPkkwIfOgEqIhovdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudBKbAQodVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkOgEqGh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9EqwBChpHZXREaXNjb3VudEV4cGlyYXRpb25BbGVydBI6LmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGlzY291bnRFeHBpcnlBbGVydERhdGEiJ4LT5JMCIRIfL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRKtAQobTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjQuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EaXNjb3VudEV4cGlyeUFsZXJ0RGF0YSIrgtPkkwIlIiMvdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC9hbGw6cmVhZDABEpwBCh1EZWxldGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI6LmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIngtPkkwIhKh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9EngKEkNyZWF0ZUFub21hbHlBbGVydBIrLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXOgEqIhIvdjEvYWxlcnRzL2Fub21hbHkSfgoSRGVsZXRlQW5vbWFseUFsZXJ0Ei8uYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZKhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRKIAQoQTGlzdEFub21hbHlBbGVydBIpLmJsdWVhcGkuY292ZXIudjEuTGlzdEFub21hbHlBbGVydFJlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlBbGVydERhdGEiI4LT5JMCHSIbL3YxL2FsZXJ0cy9hbm9tYWx5L2FsbDpyZWFkMAEShwEKD0dldEFub21hbHlBbGVydBIvLmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlBbGVydERhdGEiH4LT5JMCGRIXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0SfQoSVXBkYXRlQW5vbWFseUFsZXJ0EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhw6ASoaFy92MS9hbGVydHMvYW5vbWFseS97aWR9EocBCg9SZWdpc3Rlck5ld1VzZXISKC5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyTmV3VXNlclJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tZW1iZXJzL3JlZ2lzdGVyEogBCg5HZXRVc2VyUHJvZmlsZRInLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclByb2ZpbGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUHJvZmlsZVJlc3BvbnNlIiOC0+STAh0SGy92MS9tZW1iZXJzL3Byb2ZpbGUve2VtYWlsfRKUAQoRVXBkYXRlVXNlclByb2ZpbGUSKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclByb2ZpbGVSZXNwb25zZSImgtPkkwIgOgEqGhsvdjEvbWVtYmVycy9wcm9maWxlL3tlbWFpbH0SeAoLTGlzdEJ1ZGdldHMSJC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RCdWRnZXRzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuTGlzdEJ1ZGdldHNSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvYnVkZ2V0OnJlYWQwARJtCglHZXRCdWRnZXQSIi5ibHVlYXBpLmNvdmVyLnYxLkdldEJ1ZGdldFJlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldEJ1ZGdldFJlc3BvbnNlIheC0+STAhESDy92MS9idWRnZXQve2lkfRJ0CgxDcmVhdGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUJ1ZGdldFJlc3BvbnNlIhWC0+STAg86ASoiCi92MS9idWRnZXQSdgoMRGVsZXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVCdWRnZXRSZXNwb25zZSIXgtPkkwIRKg8vdjEvYnVkZ2V0L3tpZH0SeQoMVXBkYXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVCdWRnZXRSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvYnVkZ2V0L3tpZH0S1wEKJ1Jlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZxJALmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVxdWVzdBpBLmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL21lbWJlcnMvYXdzL3N1YnNjcmlwdGlvbhKsAQodR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXMSNi5ibHVlYXBpLmNvdmVyLnYxLkdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVxdWVzdBo3LmJsdWVhcGkuY292ZXIudjEuR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXNwb25zZSIagtPkkwIUEhIvdjEvYmlsbGluZy9zdGF0dXMShgEKD0NyZWF0ZVByb2ZpbGluZxIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlUHJvZmlsaW5nUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlUHJvZmlsaW5nUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL21lbWJlcnMvcHJvZmlsZRKWAQoUQWRkSW5mb3RvTWFya2V0cGxhY2USLS5ibHVlYXBpLmNvdmVyLnYxLkFkZEluZm90b01hcmtldHBsYWNlUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuQWRkSW5mb3RvTWFya2V0cGxhY2VSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWFya2V0cGxhY2UvaW5mbxKcAQoQR2V0UmVwb3J0U3VtbWFyeRIpLmJsdWVhcGkuY292ZXIudjEuR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldFJlcG9ydFN1bW1hcnlSZXNwb25zZSIxgtPkkwIrEikvdjEvcmVwb3J0cy9pbnNpZ2h0L3N1bW1hcnkve2Nvc3RHcm91cElkfRKcAQoTTGlzdFJlY29tbWVuZGF0aW9ucxIrLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiKILT5JMCIhIgL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24wARKfAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YyEi0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlIieC0+STAiE6ASoiHC92MS9yZWNvbW1lbmRhdGlvbnMvYWxsOnJlYWQwARKbAQoRR2V0UmVjb21tZW5kYXRpb24SKi5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZSItgtPkkwInEiUvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi97aWR9EpwBChNHZXRSZWNvbW1lbmRhdGlvblYyEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WMlJlc3BvbnNlIiiC0+STAiISIC92MS9yZWNvbW1lbmRhdGlvbnMvZGV0YWlscy97aWR9EpoBChNFeGVjdXRlT3B0aW1pemF0aW9uEiwuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlIiaC0+STAiA6ASoiGy92MS9yZWNvbW1lbmRhdGlvbnMvZXhlY3V0ZRKdAQoSR2V0RXhlY3V0aW9uU3RhdHVzEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRFeGVjdXRpb25TdGF0dXNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRFeGVjdXRpb25TdGF0dXNSZXNwb25zZSIqgtPkkwIkEiIvdjEvcmVjb21tZW5kYXRpb25zL2V4ZWN1dGUvc3RhdHVzMAESmQEKDk1hcmtBc0V4ZWN1dGVkEicuYmx1ZWFwaS5jb3Zlci52MS5NYXJrQXNFeGVjdXRlZFJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiNILT5JMCLjoBKiIpL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vZXhlY3V0ZWQSuQEKGlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uEjMuYmx1ZWFwaS5jb3Zlci52MS5VbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vdW5kbxKkAQoTT3B0aW1pemF0aW9uSGlzdG9yeRIsLmJsdWVhcGkuY292ZXIudjEuT3B0aW1pemF0aW9uSGlzdG9yeVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLk9wdGltaXphdGlvbkhpc3RvcnlSZXNwb25zZSIwgtPkkwIqEigvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi9oaXN0b3J5Er8BChpTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvchIzLmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vZXZlbnRJbmRpY2F0b3ISuAEKGlNldENvc3RHcm91cEFub21hbHlPcHRpb25zEjMuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9hbm9tYWx5EpABChFTZXRPcmdGaXNjYWxNb250aBIqLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9yZXBvcnRzL2Zpc2NhbG1vbnRoEo0BChFHZXRPcmdGaXNjYWxNb250aBIqLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlIh+C0+STAhkSFy92MS9yZXBvcnRzL2Zpc2NhbG1vbnRoEqIBChRUcmFuc2Zlck9yZ2FuaXphdGlvbhItLmJsdWVhcGkuY292ZXIudjEuVHJhbnNmZXJPcmdhbml6YXRpb25SZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5UcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlIiuC0+STAiUSIy92MS9vcmdhbml6YXRpb25zL3RyYW5zZmVyL3t0YXJnZXR9EqkBChlVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJEjIuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBozLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlc3BvbnNlIiOC0+STAh06ASoaGC92MS9tZS9jb3N0Z3JvdXBjcmVhdGlvbhJ2Cg1MaXN0VW5pdFR5cGVzEiYuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdFR5cGVzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRUeXBlc1Jlc3BvbnNlIhSC0+STAg4SDC92MS91bml0Y29zdBJ8Cg5DcmVhdGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0VHlwZVJlc3BvbnNlIheC0+STAhE6ASoiDC92MS91bml0Y29zdBJ1CgtHZXRVbml0VHlwZRIkLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdFR5cGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0VHlwZVJlc3BvbnNlIhmC0+STAhMSES92MS91bml0Y29zdC97aWR9EoEBCg5VcGRhdGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0VHlwZVJlc3BvbnNlIhyC0+STAhY6ASoaES92MS91bml0Y29zdC97aWR9En4KDkRlbGV0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRUeXBlUmVzcG9uc2UiGYLT5JMCEyoRL3YxL3VuaXRjb3N0L3tpZH0SdgoKTWVyZ2VVbml0cxIjLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VVbml0c1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlVW5pdHNSZXNwb25zZSIdgtPkkwIXOgEqIhIvdjEvdW5pdGNvc3QvbWVyZ2USkQEKEkxpc3RTdWdnZXN0ZWRVbml0cxIrLmJsdWVhcGkuY292ZXIudjEuTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFN1Z2dlc3RlZFVuaXRzUmVzcG9uc2UiIILT5JMCGhIYL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0Ep0BChNNZXJnZVN1Z2dlc3RlZFVuaXRzEiwuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVN1Z2dlc3RlZFVuaXRzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlIimC0+STAiM6ASoiHi92MS91bml0Y29zdC9hdXRvc3VnZ2VzdC9tZXJnZRKqAQoXQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWQSMC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QvY3JlYXRlEpgBChNMaXN0U2hhcmVkUmVzb3VyY2VzEiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIiSC0+STAh4SHC92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMSoAEKFENyZWF0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzEpkBChFHZXRTaGFyZWRSZXNvdXJjZRIrLmJsdWVhcGkuY292ZXIudjEuR2V0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiKYLT5JMCIxIhL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EqUBChRVcGRhdGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EqIBChREZWxldGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiKYLT5JMCIyohL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EoQBCg9MaXN0VW5pdE1ldHJpY3MSKC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0TWV0cmljc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0TWV0cmljc1Jlc3BvbnNlIhyC0+STAhYSFC92MS91bml0Y29zdC9tZXRyaWNzEooBChBDcmVhdGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdE1ldHJpY1Jlc3BvbnNlIh+C0+STAhk6ASoiFC92MS91bml0Y29zdC9tZXRyaWNzEoMBCg1HZXRVbml0TWV0cmljEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0TWV0cmljUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdE1ldHJpY1Jlc3BvbnNlIiGC0+STAhsSGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0SjwEKEFVwZGF0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0TWV0cmljUmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRKMAQoQRGVsZXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRNZXRyaWNSZXNwb25zZSIhgtPkkwIbKhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9ErYBChhDb25maXJtR29vZ2xlU2hlZXRBY2Nlc3MSMS5ibHVlYXBpLmNvdmVyLnYxLkNvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QaMi5ibHVlYXBpLmNvdmVyLnYxLkNvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1Jlc3BvbnNlIjOC0+STAi06ASoiKC92MS91bml0Y29zdC9tZXRyaWNzL2dvb2dsZXNoZWV0L2NvbmZpcm0SpAEKElByZXZpZXdHb29nbGVTaGVldBIrLmJsdWVhcGkuY292ZXIudjEuUHJldmlld0dvb2dsZVNoZWV0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL3VuaXRjb3N0L21ldHJpY3MvZ29vZ2xlc2hlZXQvcHJldmlldxKqAQoVR2V0Q2xvdWR3YXRjaE1ldGFkYXRhEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZSIwgtPkkwIqEigvdjEvdW5pdGNvc3QvbWV0cmljcy9jbG91ZHdhdGNoL21ldGFkYXRhEoQBCg9WZXJpZnlBUElBY2Nlc3MSKC5ibHVlYXBpLmNvdmVyLnYxLlZlcmlmeUFQSUFjY2Vzc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlZlcmlmeUFQSUFjY2Vzc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9hcGlhY2Nlc3MvdmVyaWZ5EokBChFHZXRBSUNvc3RBbmRVc2FnZRIqLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlIhuC0+STAhU6ASoiEC92MS9haS9jb3N0dXNhZ2USlwEKFUdldENvbnRhaW5lckNvc3RVc2FnZRIrLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UiI4LT5JMCHToBKiIYL3YxL2NvbnRhaW5lcnMvY29zdHVzYWdlEocBChBQb3B1bGF0ZURlbW9EYXRhEikuYmx1ZWFwaS5jb3Zlci52MS5Qb3B1bGF0ZURlbW9EYXRhUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhyC0+STAhY6ASoiES92MS9kZW1vL3BvcHVsYXRlEnsKDVJlc2V0RGVtb0RhdGESJi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0RGVtb0RhdGFSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZXNldERlbW9EYXRhUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2RlbW8vcmVzZXQSmQEKD0dldERpc2NvdW50UGxhbhIoLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRQbGFuUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRQbGFuUmVzcG9uc2UiMYLT5JMCKzoBKiImL3YxL3t2ZW5kb3J9L2Rpc2NvdW50cGxhbi97b3JnSWR9OnJlYWQSfwoOR2V0Q29zdFVzYWdlVjISJy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXNwb25zZSIYgtPkkwISOgEqIg0vdjEvY29zdHVzYWdlMAESqAEKFUxpc3ROb25wZXJmb3JtaW5nUmF0ZRIuLmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3JlcG9ydHMvcmF0ZS9ub25wZXJmb3JtaW5nOnJlYWQSqAEKFUxpc3RVbnRhZ2dlZFJlc291cmNlcxIuLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3JlcG9ydHMvcmVzb3VyY2VzL3VudGFnZ2VkOnJlYWQSfwoNTGlzdEZvcmVjYXN0cxImLmJsdWVhcGkuY292ZXIudjEuTGlzdEZvcmVjYXN0c1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGb3JlY2FzdHNSZXNwb25zZSIdgtPkkwIXOgEqIhIvdjEvZm9yZWNhc3RzOnJlYWQSiQEKEkNyZWF0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiGILT5JMCEjoBKiINL3YxL2ZvcmVjYXN0cxKCAQoPR2V0Q29zdEZvcmVjYXN0EiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RSZXNwb25zZSIagtPkkwIUEhIvdjEvZm9yZWNhc3RzL3tpZH0SjgEKElVwZGF0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL2ZvcmVjYXN0cy97aWR9EosBChJEZWxldGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIhqC0+STAhQqEi92MS9mb3JlY2FzdHMve2lkfRKbAQoUR2V0Q29zdEZvcmVjYXN0c0RhdGESLS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZSIigtPkkwIcOgEqIhcvdjEvZm9yZWNhc3RzL2RhdGE6cmVhZDABEo8BChNHZXRSZWNvbW1lbmRhdGlvblYzEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlIhuC0+STAhUSEy92MS9yZWNvbW1lbmRhdGlvbnMSnAEKFUxpc3RSZWNvbW1lbmRhdGlvbnNWMxIuLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVjb21tZW5kYXRpb25TdW1tYXJ5IiiC0+STAiI6ASoiHS92MS9yZWNvbW1lbmRhdGlvbnMvc3VtbWFyaWVzMAEalwGSQZMBEkIoQkVUQSkgQ292ZXIgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY292ZXIaTQoSU2VydmljZSBkZWZpbml0aW9uEjdodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vY292ZXIvQksKF2Nsb3VkLmFscGhhdXMuYXBpLmNvdmVyQgpDb3ZlclByb3RvWiRnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY292ZXJiBnByb3RvMw", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
49
+ fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSLoAgoeRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCRJRCgtleGVjdXRlVHlwZRgCIAEoDjI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0LkV4ZWN1dGVUeXBlEkwKBm9wdGlvbhgDIAEoDjI3LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0Lk9wdGlvbkgAiAEBIkMKC0V4ZWN1dGVUeXBlEgsKB0RFRkFVTFQQABIUChBNQVJLX0FTX0VYRUNVVEVEEAESEQoNVU5ET19FWEVDVVRFRBACIkgKBk9wdGlvbhIWChJPUFRJT05fVU5TUEVDSUZJRUQQABITCg9TVUJNSVRfVEVNUExBVEUQARIRCg1SRVRSWV9FWEVDVVRFEAJCCQoHX29wdGlvbiJKCh9FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlEicKBnJlc3VsdBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QitQIKHExpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSEAoIc3RhdHVzZXMYAiADKAkSIgoVbGFzdERldGVjdGVkU3RhcnREYXRlGAMgASgJSACIAQESIAoTbGFzdERldGVjdGVkRW5kRGF0ZRgEIAEoCUgBiAEBEiIKFWRhdGVEZXRlY3RlZFN0YXJ0RGF0ZRgFIAEoCUgCiAEBEiAKE2RhdGVEZXRlY3RlZEVuZERhdGUYBiABKAlIA4gBAUIYChZfbGFzdERldGVjdGVkU3RhcnREYXRlQhYKFF9sYXN0RGV0ZWN0ZWRFbmREYXRlQhgKFl9kYXRlRGV0ZWN0ZWRTdGFydERhdGVCFgoUX2RhdGVEZXRlY3RlZEVuZERhdGUi9QMKFVJlY29tbWVuZGF0aW9uU3VtbWFyeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnRhcmdldBgDIAEoCRISCgp0YXJnZXROYW1lGBIgASgJEhAKCGNhdGVnb3J5GAQgASgJEgwKBHR5cGUYBSABKAkSDgoGdmVuZG9yGA0gASgJEg4KBnNvdXJjZRgTIAEoCRIMCgRjb2RlGA4gASgJEhQKB3NlcnZpY2UYDyABKAlIAIgBARITCgZyZWdpb24YECABKAlIAYgBARIXCgpyZXNvdXJjZUlkGBEgASgJSAKIAQESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYBiABKAESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYByABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgIIAEoARIRCgRyaXNrGAkgASgJSAOIAQESEwoGZWZmb3J0GAogASgJSASIAQESDgoGc3RhdHVzGAsgASgJEjIKEWFkZGl0aW9uYWxEZXRhaWxzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQiKQoaR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QSCwoDaWRzGAEgAygJIpIFChtHZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2USWwoPcmVjb21tZW5kYXRpb25zGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UuUmVjb21tZW5kYXRpb25EZXRhaWwalQQKFFJlY29tbWVuZGF0aW9uRGV0YWlsEgoKAmlkGAEgASgJEgwKBG5hbWUYCSABKAkSDgoGdmVuZG9yGAIgASgJEg4KBnNvdXJjZRgDIAEoCRIMCgRjb2RlGAQgASgJEhQKB3NlcnZpY2UYBSABKAlIAIgBARIOCgZ0YXJnZXQYByABKAkSEgoKdGFyZ2V0TmFtZRgIIAEoCRIUCgxkYXRlRGV0ZWN0ZWQYBiABKAkSEwoGcmVnaW9uGAogASgJSAGIAQESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYCyABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgMIAEoARIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgNIAEoARIXCgpyZXNvdXJjZUlkGA4gASgJSAKIAQESEAoIY2F0ZWdvcnkYDyABKAkSDAoEdHlwZRgQIAEoCRITCgtsYXN0VXBkYXRlZBgRIAEoCRIOCgZzdGF0dXMYEiABKAkSEQoEcmlzaxgTIAEoCUgDiAEBEhMKBmVmZm9ydBgUIAEoCUgEiAEBEigKB2RldGFpbHMYFSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QgoKCF9zZXJ2aWNlQgkKB19yZWdpb25CDQoLX3Jlc291cmNlSWRCBwoFX3Jpc2tCCQoHX2VmZm9ydCLqAQobR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEk4KC2dyYW51bGFyaXR5GAQgASgOMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QuR3JhbnVsYXJpdHkiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiJqChxHZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlEgwKBGRhdGUYASABKAkSFAoMZm9yZWNhc3RDb3N0GAIgASgBEhIKCnVwcGVyQm91bmQYAyABKAESEgoKbG93ZXJCb3VuZBgEIAEoASIWChRMaXN0Rm9yZWNhc3RzUmVxdWVzdCJcChVMaXN0Rm9yZWNhc3RzUmVzcG9uc2USQwoTY29zdEZvcmVjYXN0RGV0YWlscxgBIAMoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RGb3JlY2FzdERldGFpbHMi8wEKGUNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSFAoMZm9yZWNhc3ROYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEi8KCWNvc3RHcm91cBgDIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAQgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAUgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYBiADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQigAIKGkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IiQKFkdldENvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkivwIKF0dldENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50EhEKCWNyZWF0ZWRCeRgIIAEoCRIUCgxjcmVhdGlvbkRhdGUYCSABKAkSFwoPbGFzdFVwZGF0ZWREYXRlGAogASgJIv8BChlVcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IsICChpVcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSInChlEZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIigKGkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJIm8KFkdldENvc3RVc2FnZVYyUmVzcG9uc2USDQoFdmFsdWUYASABKAESDAoEZGF0ZRgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSKAoHZGV0YWlscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QivwQKFUdldENvc3RVc2FnZVYyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJICgtncmFudWxhcml0eRgEIAEoDjIzLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAUgAygJEkIKCGNhdGVnb3J5GAYgASgOMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QuQ2F0ZWdvcnkSEAoIY3VycmVuY3kYByABKAkSOgoKYXdzT3B0aW9ucxgIIAEoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF3c09wdGlvbnMSRAoPYXp1cmVjc3BPcHRpb25zGAkgASgLMisuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwQXp1cmVDc3BPcHRpb25zEjoKCmdjcE9wdGlvbnMYCiABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBHY3BPcHRpb25zIkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiOQoIQ2F0ZWdvcnkSGAoUQ2F0ZWdvcnlfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAiIZChdQb3B1bGF0ZURlbW9EYXRhUmVxdWVzdCIaChhQb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiFgoUUmVzZXREZW1vRGF0YVJlcXVlc3QiFwoVUmVzZXREZW1vRGF0YVJlc3BvbnNlIt8GChlDb250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRJKCgptZXRyaWNUeXBlGAMgASgOMjYuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0Lk1ldHJpY1R5cGUSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSUAoLZ3JhbnVsYXJpdHkYBiABKA4yOy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuVGltZUdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAcgAygJEksKB2ZpbHRlcnMYCCADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWESTAoLc2VydmljZVR5cGUYCSABKA4yNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuU2VydmljZVR5cGUazwEKDkZpbHRlckNyaXRlcmlhEgsKA2tleRgBIAEoCRJbCghvcGVyYXRvchgCIAEoDjJJLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5GaWx0ZXJDcml0ZXJpYS5GaWx0ZXJPcGVyYXRvchINCgV2YWx1ZRgDIAEoCSJECg5GaWx0ZXJPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiRgoPVGltZUdyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiWgoKTWV0cmljVHlwZRIWChJNRVRSSUNfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAhIOCgpFRkZJQ0lFTkNZEAMSDwoLVU5VU0VEX0NPU1QQBCI4CgtTZXJ2aWNlVHlwZRIXChNTRVJWSUNFX1VOU1BFQ0lGSUVEEAASBwoDRUNTEAESBwoDRUtTEAIi1woKGkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlEksKB3Jlc3VsdHMYASADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQSUwoKaGlnaGxpZ2h0cxgCIAEoCzI/LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHRzEhEKCXRvdGFsQ29zdBgDIAEoARIVCg1hdmdFZmZpY2llbmN5GAQgASgBGkQKCkNvc3RNZXRyaWMSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJEhQKDHVudXNlZEFtb3VudBgDIAEoARqQAQoLVXNhZ2VNZXRyaWMSDAoEdW5pdBgBIAEoCRIWCg5yZXNlcnZlZEFtb3VudBgCIAEoARIUCgxhY3R1YWxBbW91bnQYAyABKAESEgoKZWZmaWNpZW5jeRgEIAEoARIWCg5jcHVVdGlsaXphdGlvbhgFIAEoARIZChFtZW1vcnlVdGlsaXphdGlvbhgGIAEoARrBAQoPTWV0cmljRGF0YVBvaW50EgwKBGRhdGUYASABKAkSRwoEY29zdBgCIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuQ29zdE1ldHJpY0gAEkkKBXVzYWdlGAMgASgLMjguYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Vc2FnZU1ldHJpY0gAQgwKCm1ldHJpY0RhdGEaTAoRUmVzb3VyY2VIaWdobGlnaHQSEgoKcmVzb3VyY2VJZBgBIAEoCRIUCgxyZXNvdXJjZU5hbWUYAiABKAkSDQoFdmFsdWUYAyABKAEahAMKElJlc291cmNlSGlnaGxpZ2h0cxJaChJoaWdoZXN0Q2x1c3RlckNvc3QYASABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0ElkKEWhpZ2hlc3RVbnVzZWRDb3N0GAIgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJbChNoaWdoZXN0V29ya2xvYWRDb3N0GAMgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJaChJoaWdoZXN0Q29tcHV0ZUNvc3QYBCABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0GvoBCg1Hcm91cGVkUmVzdWx0El4KCmF0dHJpYnV0ZXMYASADKAsySi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQuQXR0cmlidXRlc0VudHJ5ElYKEG1ldHJpY0RhdGFQb2ludHMYAiADKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLk1ldHJpY0RhdGFQb2ludBoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKPBAoYR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIRCglzdGFydFRpbWUYAyABKAkSDwoHZW5kVGltZRgEIAEoCRJLCgtncmFudWxhcml0eRgFIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAYgAygJEkIKB2ZpbHRlcnMYByADKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIawgEKBkZpbHRlchILCgNrZXkYASABKAkSTAoIb3BlcmF0b3IYAiABKA4yOi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIuT3BlcmF0b3ISDgoGdmFsdWVzGAMgAygJEg0KBXZhbHVlGAQgASgJIj4KCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASCQoFRVFVQUwQARINCglOT1RfRVFVQUwQAiJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIqcEChlHZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlEkMKB3Jlc3VsdHMYASADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuUmVzdWx0GigKBENvc3QSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJGiUKBVVzYWdlEgwKBHVuaXQYASABKAkSDgoGYW1vdW50GAIgASgBGpgBCgZNZXRyaWMSDAoEZGF0ZRgBIAEoCRI+CgRjb3N0GAIgASgLMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLkNvc3QSQAoFdXNhZ2UYAyABKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuVXNhZ2Ua2AEKBlJlc3VsdBJWCgphdHRyaWJ1dGVzGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdC5BdHRyaWJ1dGVzRW50cnkSQwoHbWV0cmljcxgCIAMoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5NZXRyaWMaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiGwoZR2V0RXhlY3V0aW9uU3RhdHVzUmVxdWVzdCJXChpHZXRFeGVjdXRpb25TdGF0dXNSZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIjgKFlZlcmlmeUFQSUFjY2Vzc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg4KBnRhcmdldBgCIAEoCSIpChdWZXJpZnlBUElBY2Nlc3NSZXNwb25zZRIOCgZyZXN1bHQYASABKAgiZQoaR2V0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QSCgoCaWQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSFAoMcGVyaW9kT3B0aW9uGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJImEKG0dldFJlY29tbWVuZGF0aW9uVjJSZXNwb25zZRJCCgRkYXRhGAEgASgLMjQuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uUmVjb21tZW5kYXRpb25EYXRhIlEKEU9uYm9hcmRPcmdSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSDQoFb3JnSWQYBCABKAkiQwoST25ib2FyZE9yZ1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiTQoTSW52aXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAMoCRIQCghpc1Jlc2VuZBgCIAEoCBIVCg1pbnZpdGVBc0FkbWluGAMgASgIIiUKFEludml0ZU1lbWJlclJlc3BvbnNlEg0KBWVtYWlsGAEgAygJIqQBChNBY3RpdmF0ZVVzZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIYChBwcmV2aW91c1Bhc3N3b3JkGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGbG9jYWxlGAUgASgJEg0KBWVtYWlsGAYgASgJEg8KB2lzQXV0aDAYByABKAgSEwoLYXV0aDBVc2VySWQYCCABKAkiRQoUQWN0aXZhdGVVc2VyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJYChNDcmVhdGVNZW1iZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSEgoKY29zdGdyb3VwcxgEIAMoCSJFChRDcmVhdGVNZW1iZXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhMKEUdldE1lbWJlcnNSZXF1ZXN0IkMKEkdldE1lbWJlcnNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF0dldE1lbWJlckRldGFpbHNSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJJChhHZXRNZW1iZXJEZXRhaWxzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlHZXRNZW1iZXJDb3N0R3JvdXBSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJUChpHZXRNZW1iZXJDb3N0R3JvdXBSZXNwb25zZRI2Cgpjb3N0R3JvdXBzGAEgAygLMiIuYmx1ZWFwaS5hcGkuY292ZXIuTWVtYmVyQ29zdEdyb3VwIkAKHVVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIPCgdpc0FkbWluGAIgASgIIk8KHlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhcKFUdldFVzZXJEZXRhaWxzUmVxdWVzdCJHChZHZXRVc2VyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckF2YXRhclJlcXVlc3QSDgoGYXZhdGFyGAEgASgJIkkKGFVwZGF0ZVVzZXJBdmF0YXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJJY29uUmVxdWVzdBIMCgRpY29uGAEgASgJIkcKFlVwZGF0ZVVzZXJJY29uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIxChtVcGRhdGVVc2VyQ29sb3JUaGVtZVJlcXVlc3QSEgoKY29sb3JUaGVtZRgBIAEoCSJNChxVcGRhdGVVc2VyQ29sb3JUaGVtZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJQoVVXBkYXRlVXNlck5hbWVSZXF1ZXN0EgwKBG5hbWUYASABKAkiRwoWVXBkYXRlVXNlck5hbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIicKFlVwZGF0ZVVzZXJFbWFpbFJlcXVlc3QSDQoFZW1haWwYASABKAkiSAoXVXBkYXRlVXNlckVtYWlsUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlVcGRhdGVVc2VyTWFpblZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJLChpVcGRhdGVVc2VyTWFpblZpZXdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkkKGFJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBIYChBwcmV2aW91c1Bhc3N3b3JkGAEgASgJEhMKC25ld1Bhc3N3b3JkGAIgASgJIkoKGVJlc2V0VXNlclBhc3N3b3JkUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdVcGRhdGVVc2VyTG9jYWxlUmVxdWVzdBIOCgZsb2NhbGUYASABKAkiSQoYVXBkYXRlVXNlckxvY2FsZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiLQoZVXBkYXRlVXNlckFwcFRoZW1lUmVxdWVzdBIQCghhcHBUaGVtZRgBIAEoCSJLChpVcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkMKGVVwZGF0ZVVzZXJUaW1lem9uZVJlcXVlc3QSEAoIdGltZVpvbmUYASABKAkSFAoMYXV0b1RpbWVab25lGAIgASgIIksKGlVwZGF0ZVVzZXJUaW1lem9uZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0EhIKCmF0dHJpYnV0ZXMYASADKAkiTQocVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKE0RlbGV0ZU1lbWJlclJlcXVlc3QSDgoGdXNlcklkGAEgASgJIiYKFERlbGV0ZU1lbWJlclJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSImChRSZXNldFBhc3N3b3JkUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiJwoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSK7AQoRQ3JlYXRlVmlld1JlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIRCglpc1ByaXZhdGUYAyABKAgSEgoKaXNFZGl0YWJsZRgEIAEoCBIMCgRpY29uGAUgASgJEhIKCnJlcG9ydFR5cGUYBiABKAkSEgoKY29sb3JUaGVtZRgHIAEoCRIUCgxyZXBvcnRQZXJpb2QYCCABKAkSEAoIY3VycmVuY3kYCSABKAkiQwoSQ3JlYXRlVmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiEQoPR2V0Vmlld3NSZXF1ZXN0IkEKEEdldFZpZXdzUmVzcG9uc2USLQoIdmlld0xpc3QYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3TGlzdCInChVHZXRDdXJyZW50Vmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIkcKFkdldEN1cnJlbnRWaWV3UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSIZChdHZXRGYXZvcml0ZVZpZXdzUmVxdWVzdCJLChhHZXRGYXZvcml0ZVZpZXdzUmVzcG9uc2USLwoJZmF2b3JpdGVzGAEgAygLMhwuYmx1ZWFwaS5hcGkuY292ZXIuRmF2b3JpdGVzIiQKElB1Ymxpc2hWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiIgoTUHVibGlzaFZpZXdSZXNwb25zZRILCgN1cmwYASABKAkiJAoSQWRkRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIlChNBZGRGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSInChVSZW1vdmVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJIigKFlJlbW92ZUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIo8BChFVcGRhdGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIMCgRpY29uGAQgASgJEhEKCWlzUHJpdmF0ZRgFIAEoCBISCgppc0VkaXRhYmxlGAYgASgIEhIKCmNvbG9yVGhlbWUYByABKAkiJAoSVXBkYXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJYChdVcGRhdGVWaWV3TGF5b3V0UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSLQoGbGF5b3V0GAIgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJJChhVcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2USLQoGbGF5b3V0GAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xheW91dCKaAQoXVXBkYXRlVmlld1dpZGdldFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCHdpZGdldElkGAIgASgJEigKB29wdGlvbnMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjMKCHJlcXVlc3RzGAQgAygLMiEuYmx1ZWFwaS5hcGkuY292ZXIuTGF5b3V0UmVxdWVzdHMiXwoYVXBkYXRlVmlld1dpZGdldFJlc3BvbnNlEhAKCHdpZGdldElkGAEgASgJEjEKCndpZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5XaWRnZXREYXRhIkEKG1VwZGF0ZVZpZXdDb2xvclRoZW1lUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKY29sb3JUaGVtZRgCIAEoCSJNChxVcGRhdGVWaWV3Q29sb3JUaGVtZVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiPQoZVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEAoIY3VycmVuY3kYAiABKAkiSwoaVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSI1ChtTZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QSFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiNgocU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRIWCg51cGRhdGVDdXJyZW5jeRgBIAEoAyIdChtHZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QiWQocR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIWCg51cGRhdGVDdXJyZW5jeRgCIAEoAxISCgpsYXN0VXBkYXRlGAMgASgJIj4KGExpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBIRCglzdGFydERhdGUYASABKAkSDwoHZW5kRGF0ZRgCIAEoCSJiChlMaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjYKDWV4Y2hhbmdlUmF0ZXMYAiADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkV4Y2hhbmdlUmF0ZXMiQgoNRXhjaGFuZ2VSYXRlcxINCgVtb250aBgBIAEoCRIUCgxleGNoYW5nZVJhdGUYAiABKAISDAoEZGF0ZRgDIAEoCSIjChFEZWxldGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJAoSRGVsZXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJlChpVcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSNwoNc2lkZW1lbnVzdGF0ZRgCIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlNpZGVNZW51U3RhdGUiLQobVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJAChpBZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSItChtBZGRTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIkMKHVJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRISCgptZW51SXRlbUlkGAIgASgJIjAKHlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAki0wEKFkNyZWF0ZUNvc3RHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIuCgR0eXBlGAcgASgOMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwVHlwZRITCgtkZXNjcmlwdGlvbhgCIAEoCRINCgVpbWFnZRgDIAEoCRIMCgRpY29uGAQgASgJEhIKCmNvbG9yVGhlbWUYBSABKAkSNQoMY29tYmluYXRpb25zGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlIKF0NyZWF0ZUNvc3RHcm91cFJlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIhYKFEdldENvc3RHcm91cHNSZXF1ZXN0IlAKFUdldENvc3RHcm91cHNSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIxChpHZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJWChtHZXRDb3N0R3JvdXBEZXRhaWxzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiPwoaVXBkYXRlQ29zdEdyb3VwTmFtZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEbmFtZRgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2USDAoEbmFtZRgBIAEoCSJNCiFVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiOQoiVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXNwb25zZRITCgtkZXNjcmlwdGlvbhgBIAEoCSJBChtVcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDQoFaW1hZ2UYAiABKAkiLQocVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXNwb25zZRINCgVpbWFnZRgBIAEoCSI/ChpVcGRhdGVDb3N0R3JvdXBJY29uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIMCgRpY29uGAIgASgJIisKG1VwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZRIMCgRpY29uGAEgASgJIksKIFVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiNwohVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlc3BvbnNlEhIKCmNvbG9yVGhlbWUYASABKAkicAoiVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRI1Cgxjb21iaW5hdGlvbnMYAiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMiXAojVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2USNQoMY29tYmluYXRpb25zGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIkMKHEFzc2lnbkNvc3RHcm91cE1lbWJlclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIkQKHUFzc2lnbkNvc3RHcm91cE1lbWJlclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJDChxSZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiLQoWRGVsZXRlQ29zdEdyb3VwUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSIuChdEZWxldGVDb3N0R3JvdXBSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCSIyCiJHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXF1ZXN0EgwKBHR5cGUYASABKAkihwEKI0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlc3BvbnNlEhEKCWxhdW5jaFVybBgBIAEoCRITCgt0ZW1wbGF0ZVVybBgCIAEoCRIRCglzdGFja05hbWUYAyABKAkSEQoJcHJpbmNpcGFsGAQgASgJEhIKCmV4dGVybmFsSWQYBSABKAkiGgoYTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0IikKF0dldEFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSLaAgoNQWNjb3VudEFjY2VzcxIOCgZ0YXJnZXQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSDwoHcGF5ZXJJZBgEIAEoCRIPCgdyb2xlQXJuGAUgASgJEhIKCmV4dGVybmFsSWQYBiABKAkSDwoHc3RhY2tJZBgHIAEoCRITCgtzdGFja1JlZ2lvbhgIIAEoCRITCgt0ZW1wbGF0ZVVybBgJIAEoCRISCgpidWNrZXROYW1lGAogASgJEg4KBnByZWZpeBgLIAEoCRISCgpyZXBvcnROYW1lGAwgASgJEkEKEnJlZ2lzdHJhdGlvblN0YXR1cxgNIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLlJlZ2lzdHJhdGlvblN0YXR1cxIOCgZzdGF0dXMYDiABKAkSEwoLbGFzdFVwZGF0ZWQYDyABKAkiQwoaQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEhUKDWZyb21UZXJyYWZvcm0YAiABKAgiRAoiQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJIiwKGlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSI8ChpEZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJIi8KG0RlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZRIQCgh0YXJnZXRJZBgBIAEoCSJQChZSZWdpc3RlckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEwoLYWNjb3VudE5hbWUYAyABKAki5gEKEUxpc3RBc3NldHNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSGgoSd2l0aFJlY29tbWVuZGF0aW9uGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyKPAQoRTGlzdEFzc2V0c0ZpbHRlcnMSRwoKYW5kRmlsdGVycxgBIAMoCzIzLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIr0BCghSZXNvdXJjZRIMCgRkYXRlGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg8KB3NlcnZpY2UYBSABKAkSEgoKcmVzb3VyY2VJZBgGIAEoCRIUCgxyZXNvdXJjZVR5cGUYByABKAkSDAoEY29zdBgIIAEoARISCgpwcm9wZXJ0aWVzGAkgASgJEhYKDnJlY29tbWVuZGF0aW9uGAogASgJIuYBChdHZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhQKDGNvbWJpbmVEYXRlcxgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMiawoYR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlEjAKB3N1bW1hcnkYASADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkFzc2V0c1N1bW1hcnkSHQoVcmVjb21tZW5kYXRpb25TdW1tYXJ5GAIgASgJIlgKDUFzc2V0c1N1bW1hcnkSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSFgoOdG90YWxSZXNvdXJjZXMYAyABKAMSEQoJdG90YWxDb3N0GAQgASgBIjoKI1Jlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJImkKJFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIsCghhY2NvdW50cxgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLkFjY291bnQixwQKE0dldENvc3RVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSFAoMZ3JvdXBCeU1vbnRoGAQgASgIEg0KBWxpbWl0GAUgASgDEhAKCGNhdGVnb3J5GAYgASgJEg8KB2dyb3VwQnkYByABKAkSFwoPaW5jbHVkZVplcm9Db3N0GAggASgIEkMKCmF3c09wdGlvbnMYCSABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEkcKDGF6dXJlT3B0aW9ucxgKIAEoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxJDCgpnY3BPcHRpb25zGAsgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxJNCg9henVyZWNzcE9wdGlvbnMYDCABKAsyNC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSSQoNY3VzdG9tT3B0aW9ucxgNIAEoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFwoPaW5jbHVkZUZvcmVjYXN0GA4gASgIEhAKCGN1cnJlbmN5GA8gASgJIucBCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJItkBCh9HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycyL+AgodR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAki7AEKIkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSKBAwogR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAkiqQEKHlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJUCgphbmRGaWx0ZXJzGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvYDCghDb3N0SXRlbRIOCgZ2ZW5kb3IYASABKAkSDAoEZGF0ZRgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSEQoJdXNhZ2VUeXBlGBAgASgJEhIKCmNoYXJnZVR5cGUYESABKAkSDAoEY29zdBgFIAEoARIPCgdkZXRhaWxzGAYgASgJEjQKCGZvcmVjYXN0GAcgASgLMiIuYmx1ZWFwaS5hcGkuY292ZXIuQXdzQ29zdEZvcmVjYXN0Eg4KBnJlZ2lvbhgIIAEoCRIWCg5iaWxsaW5nQWNjb3VudBgJIAEoCRIQCgh0YWdWYWx1ZRgKIAEoCRISCgpsYXN0VXBkYXRlGAsgASgJEgwKBHVuaXQYDCABKAkSEAoIY2F0ZWdvcnkYDSABKAkSDgoGdGFnZ2VkGA4gASgIEhUKDW51bWJlck9mVW5pdHMYEiABKAESRgoOdW5pdGNvc3RtZXRyaWMYDyADKAsyLi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtLlVuaXRjb3N0bWV0cmljRW50cnkSGgoSYWxsb2NhdGlvbkNhdGVnb3J5GBMgASgJGjUKE1VuaXRjb3N0bWV0cmljRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASI6CiNHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJZCiRHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USMQoIcmVzb3VyY2UYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZURhdGEieAoZTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSFAoMcmVzb3VyY2VUeXBlGAQgASgJEg4KBnJlZ2lvbhgFIAEoCSJpChpNb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIUCgxyZXNvdXJjZVR5cGUYAyABKAkSDgoGcmVnaW9uGAQgASgJImEKGFRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSDgoGcmVnaW9uGAQgASgJIlIKGVRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSDgoGcmVnaW9uGAMgASgJIkMKF1VwbG9hZENoYXJnZUNvZGVSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIMCgRmaWxlGAMgASgMIlIKGFVwbG9hZENoYXJnZUNvZGVSZXNwb25zZRIMCgRuYW1lGAEgASgJEigKBnN0YXR1cxgCIAEoDjIYLmJsdWVhcGkuY292ZXIudjEuU3RhdHVzIkgKEkFzc2lnblBheWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg8KB3BheWVySWQYAyABKAkiOQoTQXNzaWduUGF5ZXJSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCSIiChBHZXRQYXllcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIjChFHZXRQYXllcnNSZXNwb25zZRIOCgZwYXllcnMYASADKAkiOQoSR2V0QWNjb3VudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRBY2NvdW50c1Jlc3BvbnNlEhAKCGFjY291bnRzGAEgAygJIjkKEkdldFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0U2VydmljZXNSZXNwb25zZRIQCghzZXJ2aWNlcxgBIAMoCSI4ChFHZXRSZWdpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJQoSR2V0UmVnaW9uc1Jlc3BvbnNlEg8KB3JlZ2lvbnMYASADKAkiNQoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIj4KD0dldFRhZ3NSZXNwb25zZRIrCgd0YWdEYXRhGAEgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSIgCg9MaXN0RmVlc1JlcXVlc3QSDQoFbW9udGgYASABKAki7QIKCkZlZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSEAoIbGluZVR5cGUYBiABKAkSDwoHZmVlVHlwZRgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCRIPCgdzdGFydGVkGAogASgJEhQKDHRpbWVJbnRlcnZhbBgLIAEoCRITCgtwcm9kdWN0TmFtZRgMIAEoCRIQCghjdXJyZW5jeRgNIAEoCRITCgtzcGxpdFN0YXR1cxgOIAEoCRITCgtpc0FsbG9jYXRlZBgPIAEoCBIRCglpc0FwcGxpZWQYECABKAgSFQoNdW5ibGVuZGVkQ29zdBgRIAEoARIRCglzb3VyY2VGZWUYEiABKAkSEgoKbGFzdFVwZGF0ZRgTIAEoCSIiChFSZXN0b3JlRmVlUmVxdWVzdBINCgVmZWVJZBgBIAEoCSJRChZHZXRDb3N0R3JvdXBGZWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJImYKB0ZlZUl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAEiSQoJQWxsb2NhdG9yEgwKBHR5cGUYASABKAkSDQoFdmFsdWUYAiABKAkSDwoHZm9ybXVsYRgDIAEoCRIOCgZtb250aHMYBCABKAMiaAoIQ3JpdGVyaWESMAoDYW5kGAEgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5Dcml0ZXJpYS5BbmRFbnRyeRoqCghBbmRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqICChRDb3N0QWxsb2NhdG9yRGV0YWlscxIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISEgoKY3JlYXRlVGltZRgIIAEoCRISCgp1cGRhdGVUaW1lGAkgASgJEgwKBG5hbWUYCiABKAkSEwoLZGVzY3JpcHRpb24YCyABKAki+gEKFENvc3RBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJIhcKFUxpc3RBbGxvY2F0b3JzUmVxdWVzdCLwAQoWQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRISCgpleHBpcmF0aW9uGAIgASgDEhIKCnN0YXJ0TW9udGgYAyABKAkSFgoOZGVmYXVsdEFjY291bnQYBCABKAkSMQoIY3JpdGVyaWEYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAYgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCSIyCh5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkisQEKH0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USWAoJYXR0cmlidXRlGAEgAygLMkUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlLkFsbG9jYXRpb25BdHRyaWJ1dGUaNAoTQWxsb2NhdGlvbkF0dHJpYnV0ZRIMCgR0eXBlGAEgASgJEg8KB3NlcnZpY2UYAiADKAkiPgobR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0EgwKBHR5cGUYASABKAkSEQoJYWNjb3VudElkGAIgASgJIusBChxHZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlElAKBnNvdXJjZRgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZS5BbGxvY2F0aW9uU291cmNlcxIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YRpMChFBbGxvY2F0aW9uU291cmNlcxITCgthY2NvdW50TmFtZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWNvc3RHcm91cBgDIAEoCSIkChZEZWxldGVBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJIkcKHFByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QSJwoGcGFyYW1zGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItCh1Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZRIMCgRsaW5lGAEgASgJItQEChNBY2NvdW50VXNhZ2VEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBGRhdGUYBSABKAkSEwoLcHJvZHVjdENvZGUYBiABKAkSEwoLc2VydmljZUNvZGUYByABKAkSDgoGcmVnaW9uGAggASgJEgwKBHpvbmUYCSABKAkSEQoJdXNhZ2VUeXBlGAogASgJEhQKDGluc3RhbmNlVHlwZRgLIAEoCRIRCglvcGVyYXRpb24YDCABKAkSEQoJaW52b2ljZUlkGA0gASgJEhMKC2Rlc2NyaXB0aW9uGA4gASgJEhIKCnJlc291cmNlSWQYDyABKAkSDAoEdGFncxgQIAEoCRIWCg5jb3N0Q2F0ZWdvcmllcxgRIAEoCRITCgt1c2FnZUFtb3VudBgSIAEoARIZChF0cnVlVW5ibGVuZGVkQ29zdBgTIAEoARIVCg11bmJsZW5kZWRDb3N0GBQgASgBEhUKDWVmZmVjdGl2ZUNvc3QYFSABKAESFQoNYW1vcnRpemVkQ29zdBgWIAEoARIaChJwdWJsaWNPbkRlbWFuZENvc3QYFyABKAESGwoTdW51c2VkQW1vcnRpemVkQ29zdBgYIAEoARISCgpsYXN0VXBkYXRlGBkgASgJEhMKC3NwbGl0U3RhdHVzGBogASgJEhMKC2lzQWxsb2NhdGVkGBsgASgIEhEKCWlzQXBwbGllZBgcIAEoCBIOCgZzb3VyY2UYHSABKAkiPQoXTGlzdEFjY291bnRVc2FnZVJlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiMgoaUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QSFAoMYWxsb2NhdGlvbklkGAEgASgJIiMKFVJlc3RvcmVTYXZpbmdzUmVxdWVzdBIKCgJpZBgBIAEoCSK6AgoOU2F2aW5nc0RldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSDAoEdHlwZRgGIAEoCRILCgNhcm4YByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEgoKb2ZmZXJDbGFzcxgJIAEoCRIQCghvbmRlbWFuZBgKIAEoARIVCg1lZmZlY3RpdmVDb3N0GAsgASgBEg8KB3NhdmluZ3MYDCABKAESEwoLc3BsaXRTdGF0dXMYDSABKAkSEwoLaXNBbGxvY2F0ZWQYDiABKAgSEQoJaXNBcHBsaWVkGA8gASgIEg4KBnNvdXJjZRgQIAEoCRISCgpsYXN0VXBkYXRlGBEgASgJImoKHUdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhEKCXN0YXJ0RGF0ZRgDIAEoCRIPCgdlbmREYXRlGAQgASgJIoABCg5BbGxvY2F0aW9uSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoARIRCgljb3N0R3JvdXAYByABKAkiXwoXUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QSDgoGc291cmNlGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSDQoFZW1haWwYAyABKAkSEQoJc3VidXNlcklkGAQgASgJIjAKGFByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgilQIKCkRhdGFBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEg0KBW9yZ0lkGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCRISCgpsYXN0VXBkYXRlGAcgASgJEhIKCmNyZWF0ZVRpbWUYCCABKAkSDgoGdmVuZG9yGAkgASgJIu0BChlSZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSMQoKZ2NwT3B0aW9ucxgEIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zIusBChdVcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCSIXChVMaXN0RGF0YUFjY2Vzc1JlcXVlc3QiIQofTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdCJxCiBMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI+ChF1bnJlZ2lzdGVyZWRBY2N0cxgCIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuVW5yZWdpc3RlcmVkQWNjdHMiVAoRVW5yZWdpc3RlcmVkQWNjdHMSCgoCaWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEgoKbGFzdFVwZGF0ZRgEIAEoCSJ8ChVCaWxsaW5nQWNjb3VudFJlcXVlc3QSEQoJYmlsbGluZ0lkGAEgASgJEhEKCWRhdGFzZXRJZBgCIAEoCRIVCg1kYXRhc2V0UmVnaW9uGAMgASgJEhEKCXByb2plY3RJZBgEIAEoCRITCgtiaWxsaW5nTmFtZRgFIAEoCSJUCh1HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJImEKIkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEhUKDWFwcGxpY2F0aW9uSWQYAiABKAkSEQoJc2VjcmV0S2V5GAMgASgJIiUKFEFkZE1wblNldHRpbmdSZXF1ZXN0Eg0KBW1wbklkGAEgASgJItYBChxHZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIVCg1hdHRyaWJ1dGVUeXBlGAIgASgJEhMKC2Nvc3RHcm91cElkGAMgASgJEj0KFGV4aXN0aW5nQ29tYmluYXRpb25zGAQgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEjsKEmN1cnJlbnRDb21iaW5hdGlvbhgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJ3Ch1HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZRIpCgZyZXN1bHQYASADKAsyGS5ibHVlYXBpLmFwaS5jb3Zlci5SZXN1bHQSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiJgoUR2V0Q2F0ZWdvcmllc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIkYKFUdldENhdGVnb3JpZXNSZXNwb25zZRItCghjYXRlZ29yeRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLkNhdGVnb3J5IhIKEEdldEFsZXJ0c1JlcXVlc3QiRAoRR2V0QWxlcnRzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIoYBChJDcmVhdGVBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtmaXhlZEFtb3VudBgCIAEoAhISCgpwZXJjZW50YWdlGAMgASgCEhMKC2dyYW51bGFyaXR5GAQgASgJEhIKCmNvc3RHcm91cHMYBSADKAkSEAoIY2hhbm5lbHMYBiADKAkiRgoTQ3JlYXRlQWxlcnRSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiJAoWR2V0QWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJKChdHZXRBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIAoSRGVsZXRlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiEKE0RlbGV0ZUFsZXJ0UmVzcG9uc2USCgoCaWQYASABKAkimQEKGVVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtmaXhlZEFtb3VudBgDIAEoAhISCgpwZXJjZW50YWdlGAQgASgCEhMKC2dyYW51bGFyaXR5GAUgASgJEhIKCmNvc3RHcm91cHMYBiADKAkSEAoIY2hhbm5lbHMYByADKAkiTQoaVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiIKEkdldENoYW5uZWxzUmVxdWVzdBIMCgR0eXBlGAEgASgJIkoKE0dldENoYW5uZWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSJGChRDcmVhdGVDaGFubmVsUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSEgoKd2ViaG9va1VybBgDIAEoCSJMChVDcmVhdGVDaGFubmVsUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSImChhHZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiUAoZR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiIKFERlbGV0ZUNoYW5uZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiMKFURlbGV0ZUNoYW5uZWxSZXNwb25zZRIKCgJpZBgBIAEoCSJZChtVcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhIKCndlYmhvb2tVcmwYBCABKAkiUwocVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIs8BCiFHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSLwoJYXdzSW5wdXRzGAIgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQXdzSW5wdXRzEjMKC2F6dXJlSW5wdXRzGAMgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVJbnB1dHMSLwoJZ2NwSW5wdXRzGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuR2NwSW5wdXRzIokCCiJHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEkkKEmF3c1JlY29tbWVuZGF0aW9ucxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UmVjb21tZW5kYXRpb25zEk0KFGF6dXJlUmVjb21tZW5kYXRpb25zGAIgASgLMi8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJJChJnY3BSZWNvbW1lbmRhdGlvbnMYAyABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BEaXNjb3VudFJlY29tbWVuZGF0aW9ucyJXChxHZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJIuEBCgtBbm9tYWx5RGF0YRIPCgdhY2NvdW50GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdwcm9kdWN0GAQgASgJEgwKBGRhdGUYBSABKAkSEQoJdG90YWxDb3N0GAYgASgCEhEKCWlzQW5vbWFseRgHIAEoCBISCgpsb3dlckxpbWl0GAggASgCEhIKCnVwcGVyTGltaXQYCSABKAISEwoLYW5vbWFseUNvc3QYCiABKAISGgoSYW5vbWFseVByb2JhYmlsaXR5GAsgASgCIoUBCiRDcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSEwoLZnJlcXVlbmNpZXMYASADKAMSEgoKY29zdEdyb3VwcxgCIAMoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEAoIY2hhbm5lbHMYBCADKAkSDAoEbmFtZRgFIAEoCSI2CihNYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIpEBCiRVcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhAKCGNoYW5uZWxzGAMgAygJEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEhIKCmNvc3RHcm91cHMYBSADKAkSDAoEbmFtZRgGIAEoCSLpAQoXRGlzY291bnRFeHBpcnlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEjUKCmNvc3RHcm91cHMYBSADKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIPCgdkZXRhaWxzGAYgASgJEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscxIMCgRuYW1lGAggASgJIiQKIkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QihQEKGUNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEQoJZnJlcXVlbmN5GAMgASgJEhMKC2Nvc3RHcm91cElkGAQgASgJEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAUgAygJIisKHU1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJItABChBBbm9tYWx5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBG5hbWUYAyABKAkSFAoMYWxlcnRFbmFibGVkGAQgASgIEhEKCWZyZXF1ZW5jeRgFIAEoCRI2Cgtjb3N0R3JvdXBJZBgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscyIZChdMaXN0QW5vbWFseUFsZXJ0UmVxdWVzdCKRAQoZVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIcChRub3RpZmljYXRpb25DaGFubmVscxgEIAMoCRIRCglmcmVxdWVuY3kYBSABKAkSEwoLY29zdEdyb3VwSWQYBiABKAkiiQEKFlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjb21wYW55GAQgASgJEgwKBHJvbGUYBSABKAkSDgoGYW1vdW50GAYgASgJEhEKCWludGVudGlvbhgHIAEoCSIvChdSZWdpc3Rlck5ld1VzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgiJgoVR2V0VXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIs4BChZHZXRVc2VyUHJvZmlsZVJlc3BvbnNlEhkKEWhhc0NyZWF0ZWRQcm9maWxlGAEgASgIEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSFAoMZW1haWxBZGRyZXNzGAcgASgJEhIKCmxpbmtTb3VyY2UYCCABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCSABKAgirgEKGFVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgirwEKGVVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2USDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIkgKEkxpc3RCdWRnZXRzUmVxdWVzdBIfChdpbmNsdWRlU3BlbmRBbmRGb3JlY2FzdBgBIAEoCBIRCgljb3N0R3JvdXAYAiABKAkiSAoTTGlzdEJ1ZGdldHNSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIeChBHZXRCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIkYKEUdldEJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkgKE0NyZWF0ZUJ1ZGdldFJlcXVlc3QSMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUQ3JlYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiIQoTRGVsZXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSIiChREZWxldGVCdWRnZXRSZXNwb25zZRIKCgJpZBgBIAEoCSJUChNVcGRhdGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJEjEKCmJ1ZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFFVwZGF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIksKLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QSGQoRcmVnaXN0cmF0aW9uVG9rZW4YASABKAkiYQovUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2USGgoSaXNBbGxvd2VkVG9PbmJvYXJkGAEgASgIEhIKCmN1c3RvbWVySWQYAiABKAkiJgokR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0IvIBCiVHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlEhYKDmRhdGVSZWdpc3RlcmVkGAEgASgJEhoKEnN1YnNjcmlwdGlvbkV4cGlyeRgCIAEoCRIQCghkYXlzTGVmdBgDIAEoBRIUCgxpc1N1YnNjcmliZWQYBCABKAgSEQoJaXNFeHBpcmVkGAUgASgIEgwKBHBsYW4YBiABKAkSDgoGYW1vdW50GAcgASgJEhUKDXBheW1lbnRPcHRpb24YCCABKAkSFQoNcGF5bWVudE1ldGhvZBgJIAEoCRIOCgZjcmVkaXQYCiABKAEiswEKFkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgRyb2xlGAIgASgJEg0KBXVzYWdlGAMgASgJEhEKCWludGVudGlvbhgEIAEoCRITCgtjb21wYW55TmFtZRgFIAEoCRIUCgxlbWFpbEFkZHJlc3MYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCIZChdDcmVhdGVQcm9maWxpbmdSZXNwb25zZSI5ChtBZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QSGgoSY3VzdG9tZXJJZGVudGlmaWVyGAEgASgJIh4KHEFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UieAoXR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSEgoKcmVwb3J0VHlwZRgEIAEoCRIQCghjdXJyZW5jeRgFIAEoCSKuAgoYR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEj0KEGV4ZWN1dGl2ZVN1bW1hcnkYBCABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRpdmVTdW1tYXJ5El8KIW9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRgFIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLk9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRI5Cg5zYXZpbmdzU3VtbWFyeRgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLlNhdmluZ3NTdW1tYXJ5IqoCChlMaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgHIAEoCRIMCgR0eXBlGAggASgJEg4KBnNwVHlwZRgJIAEoCRIRCglyYXRlTW9kZWwYCiABKAkSFQoNcGF5bWVudE9wdGlvbhgLIAEoCRIMCgR0ZXJtGAwgASgJEg8KB3NlcnZpY2UYDSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgOIAEoCRIQCghjdXJyZW5jeRgPIAEoCSLVAgobTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRJQCgxyYXRlU2V0dGluZ3MYBCABKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdC5SYXRlU2V0dGluZ3MSEAoIY3VycmVuY3kYBSABKAkajgEKDFJhdGVTZXR0aW5ncxIOCgZzcFR5cGUYASABKAkSEQoJcmF0ZU1vZGVsGAIgASgJEhUKDXBheW1lbnRPcHRpb24YAyABKAkSDAoEdGVybRgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhUKDW9mZmVyaW5nQ2xhc3MYBiABKAkSDgoGdmVuZG9yGAcgASgJItoGChpMaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEhYKDnJlY29tbWVuZGF0aW9uGAIgASgJEg8KB3NlcnZpY2UYAyABKAkSHgoWZXN0aW1hdGVkTW9udGhseVNhdmluZxgEIAEoARIcChRlc3RpbWF0ZWRNb250aGx5Q29zdBgFIAEoARIPCgdzY29yaW5nGAYgASgJEg4KBnZlbmRvchgHIAEoCRIQCghjYXRlZ29yeRgIIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYCSABKAkSFAoMZXJyb3JNZXNzYWdlGAogASgJEhEKCWFjY291bnRJZBgLIAEoCRITCgthY2NvdW50TmFtZRgMIAEoCRIUCgxpbnN0YW5jZU5hbWUYDSABKAkSEgoKaW5zdGFuY2VJZBgOIAEoCRIUCgxpbnN0YW5jZVR5cGUYDyABKAkSDgoGcmVnaW9uGBAgASgJEhIKCmNvbW1pdG1lbnQYESABKAESDgoGc3BUeXBlGBIgASgJEhgKEG51bWJlclRvUHVyY2hhc2UYEyABKAMSDgoGcmlUeXBlGBQgASgJEgwKBHR5cGUYFSABKAkSDgoGc291cmNlGBYgASgJEhcKD2RhdGVSZWNvbW1lbmRlZBgXIAEoCRIbChNyZWNvbW1lbmRhdGlvbkdyb3VwGBggASgJEhUKDWxhc3RVcGRhdGVkQXQYGSABKAkSUwoOcHVyY2hhc2VPcHRpb24YGiABKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlLlB1cmNoYXNlT3B0aW9uGs8BCg5QdXJjaGFzZU9wdGlvbhIOCgZzcFR5cGUYASABKAkSFQoNb2ZmZXJpbmdDbGFzcxgCIAEoCRISCgpjb21taXRtZW50GAMgASgBEhgKEG51bWJlclRvUHVyY2hhc2UYBCABKAMSFQoNcGF5bWVudE9wdGlvbhgFIAEoCRIMCgR0ZXJtGAYgASgJEhkKEWN1cnJlbnRHZW5lcmF0aW9uGAcgASgIEhMKC3NlcnZpY2VUeXBlGAggASgJEhMKC3VwZnJvbnRDb3N0GAkgASgBIlEKGEdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIUCgxwZXJpb2RPcHRpb24YAyABKAkiXgoZR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZRJBChJyZWNvbW1lbmRhdGlvbkRhdGEYASABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5BV1NSZWNvbW1lbmRhdGlvbnMiRAoaRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QSGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIMCgR0eXBlGAIgASgJIpQDChtFeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2USTAoJYXdzT3B0aW9uGAEgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQVdTT3B0aW9uSAASTAoJZ2NwT3B0aW9uGAIgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuR0NQT3B0aW9uSAASVgoOYXp1cmVDc3BPcHRpb24YAyABKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BenVyZUNTUE9wdGlvbkgAGlgKCUFXU09wdGlvbhIaChJhcHByb3ZlVGVtcGxhdGVVcmwYASABKAkSGAoQcmVjb21tZW5kYXRpb25JZBgCIAEoCRIVCg1jdXJyZW50U3RhdHVzGAMgASgJGgsKCUdDUE9wdGlvbhoQCg5BenVyZUNTUE9wdGlvbkIICgZWZW5kb3IiIwoVTWFya0FzRXhlY3V0ZWRSZXF1ZXN0EgoKAmlkGAEgAygJIhgKFk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiLwohVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgAygJIiQKIlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UipwEKGk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhQKDHBlcmlvZE9wdGlvbhgGIAEoCRIQCghjdXJyZW5jeRgHIAEoCSJ2ChtPcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2USVwodZXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMYAiADKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscyJgCiFTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDwoHYW5vbWFseRgCIAEoCBIVCg12aXN1YWxCdWlsZGVyGAMgASgIInQKIlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOZXZlbnRJbmRpY2F0b3IYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5FdmVudEluZGljYXRvciJ7CiFTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJdGhyZXNob2xkGAIgASgCEhQKDGlzUGVyY2VudGFnZRgDIAEoCBIYChBwYXN0RGF0YUluTW9udGhzGAQgASgDInQKIlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOYW5vbWFseU9wdGlvbnMYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5Bbm9tYWx5T3B0aW9ucyIvChhTZXRPcmdGaXNjYWxNb250aFJlcXVlc3QSEwoLZmlzY2FsTW9udGgYASABKAkiMAoZU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCSIaChhHZXRPcmdGaXNjYWxNb250aFJlcXVlc3QiSAoZR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCRIWCg5kYXRlUmVnaXN0ZXJlZBgCIAEoCSJbChtUcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCRINCgVwYXllchgDIAEoCRINCgVvcmdJZBgEIAEoCSIuChxUcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlEg4KBnRhcmdldBgBIAEoCSJFCiBVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBIhChl1c2VOZXdDb3N0R3JvdXBDcmVhdGlvblVJGAEgASgIIlIKIVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhYKFExpc3RVbml0VHlwZXNSZXF1ZXN0Ik4KFUxpc3RVbml0VHlwZXNSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEitgEKFUNyZWF0ZVVuaXRUeXBlUmVxdWVzdBIQCgh1bml0TmFtZRgBIAEoCRIuCgl1bml0SXRlbXMYAiADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYAyADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgEIAEoCSJPChZDcmVhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIgChJHZXRVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiTAoTR2V0VW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiwgEKFVVwZGF0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgh1bml0TmFtZRgCIAEoCRIuCgl1bml0SXRlbXMYAyADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYBCADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgFIAEoCSJPChZVcGRhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIjChVEZWxldGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiJAoWRGVsZXRlVW5pdFR5cGVSZXNwb25zZRIKCgJpZBgBIAEoCSJPChFNZXJnZVVuaXRzUmVxdWVzdBITCgt1bml0Q29zdElkcxgBIAMoCRIQCgh1bml0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCSJNChJNZXJnZVVuaXRzUmVzcG9uc2USNwoObWVyZ2VkVW5pdENvc3QYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiGwoZTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdCJWChpMaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI4Cg5zdWdnZXN0ZWRVbml0cxgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQicgoaTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCRITCgt1bml0SXRlbUlkcxgCIAMoCRIQCgh1bml0TmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJdChtNZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USPgoUbWVyZ2VkU3VnZ2VzdGVkVW5pdHMYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0IjoKHkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJIjYKH0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2USEwoLdW5pdENvc3RJZHMYASADKAkiHAoaTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QiZQobTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uItMCChxDcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EhoKEnNoYXJlZFJlc291cmNlTmFtZRgBIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAiABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAMgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgEIAEoARITCgt1bmFsbG9jYXRlZBgFIAEoARITCgtkZXNjcmlwdGlvbhgGIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHUNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIicKGUdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiZAoaR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i3wIKHFVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAIgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgDIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YBCADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAUgASgBEhMKC3VuYWxsb2NhdGVkGAYgASgBEhMKC2Rlc2NyaXB0aW9uGAcgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iKgocRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSIrCh1EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRIKCgJpZBgBIAEoCSJXChZMaXN0VW5pdE1ldHJpY3NSZXF1ZXN0EhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAEgASgJEhIKCmRhdGFTb3VyY2UYAiABKAkSDgoGc3RhdHVzGAMgASgJIk0KF0xpc3RVbml0TWV0cmljc1Jlc3BvbnNlEjIKC3VuaXRNZXRyaWNzGAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyK5AQoXQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QSEgoKbWV0cmljTmFtZRgBIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgCIAEoCRISCgpkYXRhU291cmNlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhMKC2Nvc3Rncm91cElkGAUgAygJEjEKCnNvdXJjZUluZm8YBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGENyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIiChRHZXRVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSJKChVHZXRVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMixQEKF1VwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJEhIKCm1ldHJpY05hbWUYAiABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAyABKAkSEgoKZGF0YVNvdXJjZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRITCgtjb3N0Z3JvdXBJZBgGIAMoCRIxCgpzb3VyY2VJbmZvGAcgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhVcGRhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiJQoXRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiJgoYRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlEgoKAmlkGAEgASgJImYKGVByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QSFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRIQCghzaGVldFVybBgCIAEoCRIRCglzaGVldE5hbWUYAyABKAkSDQoFcmFuZ2UYBCABKAkiWQoaUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2USDgoGaGVhZGVyGAEgAygJEisKB3Jvd0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5Sb3dEYXRhIjMKH0NvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QSEAoIc2hlZXRVcmwYASABKAkiTQogQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2USFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRISCgpzaGVldE5hbWVzGAIgAygJInYKHEdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEg4KBnJlZ2lvbhgCIAEoCRIMCgR0eXBlGAMgASgJEhEKCW5hbWVzcGFjZRgEIAEoCRISCgptZXRyaWNOYW1lGAUgASgJIr4BCh1HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZRISCgpuYW1lc3BhY2VzGAEgAygJEg8KB21ldHJpY3MYAiADKAkSTQoKZGltZW5zaW9ucxgDIAMoCzI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UuRGltZW5zaW9uGikKCURpbWVuc2lvbhIMCgRuYW1lGAEgASgJEg4KBnZhbHVlcxgCIAMoCSKBAgoWR2V0RGlzY291bnRQbGFuUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSGAoQcmVkdWN0aW9uRGlzcGxheRgDIAEoCRIWCg5pbmNsdWRlRGV0YWlscxgEIAEoCBIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkSDwoHcGF5ZXJJZBgHIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgIIAEoCRIPCgdncm91cElkGAkgASgJEhMKC2Nvc3RHcm91cElkGAogASgJEhAKCGFjY291bnRzGAsgAygJEhAKCHNlcnZpY2VzGAwgAygJImcKF0dldERpc2NvdW50UGxhblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEGF3c0Rpc2NvdW50UGxhbnMYAiABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFBsYW5zInMKHExpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRIMCgR0eXBlGAUgASgJIskBCh1MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZRJUCg1ub25wZXJmb3JtaW5nGAEgAygLMj0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZS5Ob25wZXJmb3JtaW5nGlIKDU5vbnBlcmZvcm1pbmcSDAoEdHlwZRgBIAEoCRIPCgdhY2NvdW50GAIgASgJEhMKC3V0aWxpemF0aW9uGAMgASgBEg0KBXdhc3RlGAQgASgBInQKHExpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRINCgVsaW1pdBgFIAEoAyL5AQodTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2USXAoRdW50YWdnZWRSZXNvdXJjZXMYASADKAsyQS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlLlVudGFnZ2VkUmVzb3VyY2VzGnoKEVVudGFnZ2VkUmVzb3VyY2VzEhAKCHJlc291cmNlGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCWNvc3RHcm91cBgEIAEoCRIMCgRjb3N0GAUgASgBEg4KBnZlbmRvchgGIAEoCSo/CgZTdGF0dXMSCwoHUEVORElORxAAEg8KC0lOX1BST0dSRVNTEAESCwoHU1VDQ0VTUxACEgoKBkZBSUxFRBADMv7dAQoFQ292ZXISdwoKT25ib2FyZE9yZxIjLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9vbmJvYXJkEnwKDEludml0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL21lbWJlcnMvaW52aXRlEn4KDEFjdGl2YXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvYWN0aXZhdGUSdQoMQ3JlYXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXNwb25zZSIWgtPkkwIQOgEqIgsvdjEvbWVtYmVycxJsCgpHZXRNZW1iZXJzEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1Jlc3BvbnNlIhOC0+STAg0SCy92MS9tZW1iZXJzEocBChBHZXRNZW1iZXJEZXRhaWxzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9tZW1iZXJzL3t1c2VySWR9EpcBChJHZXRNZW1iZXJDb3N0R3JvdXASKy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlc3BvbnNlIiaC0+STAiASHi92MS9tZW1iZXJzL3t1c2VySWR9L2Nvc3Rncm91cBKkAQoWVXBkYXRlTWVtYmVyUGVybWlzc2lvbhIvLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZSIngtPkkwIhOgEqGhwvdjEvbWVtYmVycy97dXNlcklkfS9pc2FkbWluEnMKDkdldFVzZXJEZXRhaWxzEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVzcG9uc2UiDoLT5JMCCBIGL3YxL21lEoMBChBVcGRhdGVVc2VyQXZhdGFyEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlc3BvbnNlIhiC0+STAhI6ASoaDS92MS9tZS9hdmF0YXISewoOVXBkYXRlVXNlckljb24SJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJJY29uUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckljb25SZXNwb25zZSIWgtPkkwIQOgEqGgsvdjEvbWUvaWNvbhKTAQoUVXBkYXRlVXNlckNvbG9yVGhlbWUSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJDb2xvclRoZW1lUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvbWUvY29sb3J0aGVtZRJ7Cg5VcGRhdGVVc2VyTmFtZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck5hbWVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTmFtZVJlc3BvbnNlIhaC0+STAhA6ASoaCy92MS9tZS9uYW1lEn8KD1VwZGF0ZVVzZXJFbWFpbBIoLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVzcG9uc2UiF4LT5JMCEToBKhoML3YxL21lL2VtYWlsEosBChJVcGRhdGVVc2VyTWFpblZpZXcSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1Jlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS9tYWludmlldxKIAQoRUmVzZXRVc2VyUGFzc3dvcmQSKi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuUmVzZXRVc2VyUGFzc3dvcmRSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvbWUvcGFzc3dvcmQSgwEKEFVwZGF0ZVVzZXJMb2NhbGUSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJMb2NhbGVSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTG9jYWxlUmVzcG9uc2UiGILT5JMCEjoBKhoNL3YxL21lL2xvY2FsZRKLAQoSVXBkYXRlVXNlckFwcFRoZW1lEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvYXBwdGhlbWUSiwEKElVwZGF0ZVVzZXJUaW1lem9uZRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL3RpbWV6b25lEpMBChRVcGRhdGVVc2VyQXR0cmlidXRlcxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXR0cmlidXRlc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9tZS9hdHRyaWJ1dGVzEnsKDERlbGV0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVzcG9uc2UiHILT5JMCFioUL3YxL21lbWJlcnMve3VzZXJJZH0ShgEKDVJlc2V0UGFzc3dvcmQSJi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0UGFzc3dvcmRSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFBhc3N3b3JkUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL21lbWJlcnMvcmVzZXRwYXNzd29yZBJtCgpDcmVhdGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVmlld1Jlc3BvbnNlIhSC0+STAg46ASoiCS92MS92aWV3cxJkCghHZXRWaWV3cxIhLmJsdWVhcGkuY292ZXIudjEuR2V0Vmlld3NSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRWaWV3c1Jlc3BvbnNlIhGC0+STAgsSCS92MS92aWV3cxJ/Cg5HZXRDdXJyZW50VmlldxInLmJsdWVhcGkuY292ZXIudjEuR2V0Q3VycmVudFZpZXdSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXJyZW50Vmlld1Jlc3BvbnNlIhqC0+STAhQSEi92MS92aWV3cy97dmlld0lkfRKGAQoQR2V0RmF2b3JpdGVWaWV3cxIpLmJsdWVhcGkuY292ZXIudjEuR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEZhdm9yaXRlVmlld3NSZXNwb25zZSIbgtPkkwIVEhMvdjEvdmlld3MvZmF2b3JpdGVzEngKC1B1Ymxpc2hWaWV3EiQuYmx1ZWFwaS5jb3Zlci52MS5QdWJsaXNoVmlld1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLlB1Ymxpc2hWaWV3UmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL3ZpZXdzL3B1Ymxpc2gSfQoLQWRkRmF2b3JpdGUSJC5ibHVlYXBpLmNvdmVyLnYxLkFkZEZhdm9yaXRlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWRkRmF2b3JpdGVSZXNwb25zZSIhgtPkkwIbOgEqGhYvdjEvdmlld3MvZmF2b3JpdGUvYWRkEokBCg5SZW1vdmVGYXZvcml0ZRInLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVGYXZvcml0ZVJlc3BvbnNlIiSC0+STAh46ASoaGS92MS92aWV3cy9mYXZvcml0ZS9yZW1vdmUSdgoKVXBkYXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvdmlld3Mve3ZpZXdJZH0SjwEKEFVwZGF0ZVZpZXdMYXlvdXQSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdMYXlvdXRSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3ZpZXdzL2xheW91dC97dmlld0lkfRKaAQoQVXBkYXRlVmlld1dpZGdldBIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1dpZGdldFJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZSIvgtPkkwIpOgEqGiQvdjEvdmlld3MvbGF5b3V0L3t2aWV3SWR9L3t3aWRnZXRJZH0SnwEKFFVwZGF0ZVZpZXdDb2xvclRoZW1lEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDb2xvclRoZW1lUmVzcG9uc2UiKILT5JMCIjoBKhodL3YxL3ZpZXdzL3t2aWV3SWR9L2NvbG9ydGhlbWUSlwEKElVwZGF0ZVZpZXdDdXJyZW5jeRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2UiJoLT5JMCIDoBKhobL3YxL3ZpZXdzL3t2aWV3SWR9L2N1cnJlbmN5EpwBChRTZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiWC0+STAh86ASoiGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5EpkBChRHZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiKC0+STAhwSGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5Eo0BChFMaXN0RXhjaGFuZ2VSYXRlcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlIh+C0+STAhkSFy92MS9vcmdhbml6YXRpb25zL3JhdGVzEnMKCkRlbGV0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVWaWV3UmVzcG9uc2UiGoLT5JMCFCoSL3YxL3ZpZXdzL3t2aWV3SWR9Ep8BChNVcGRhdGVTaWRlTWVudVN0YXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlIiuC0+STAiU6ASoaIC92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXN0YXRlEqIBChNBZGRTaWRlTWVudUZhdm9yaXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5BZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIi6C0+STAig6ASoiIy92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudWZhdm9yaXRlEq0BChZSZW1vdmVTaWRlTWVudUZhdm9yaXRlEi8uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBowLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIjCC0+STAio6ASoiJS92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXVuZmF2b3JpdGUSgQEKD0NyZWF0ZUNvc3RHcm91cBIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2Nvc3Rncm91cHMSeAoNR2V0Q29zdEdyb3VwcxImLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3Vwc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cHNSZXNwb25zZSIWgtPkkwIQEg4vdjEvY29zdGdyb3VwcxJ4Cg1HZXRDYXRlZ29yaWVzEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDYXRlZ29yaWVzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0Q2F0ZWdvcmllc1Jlc3BvbnNlIhaC0+STAhASDi92MS9jYXRlZ29yaWVzEpgBChNHZXRDb3N0R3JvdXBEZXRhaWxzEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlIiSC0+STAh4SHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SoAEKE1VwZGF0ZUNvc3RHcm91cE5hbWUSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9uYW1lErwBChpVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvbhIzLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlc3BvbnNlIjOC0+STAi06ASoaKC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vZGVzY3JpcHRpb24SpAEKFFVwZGF0ZUNvc3RHcm91cEltYWdlEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2UiLYLT5JMCJzoBKhoiL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9pbWFnZRKgAQoTVXBkYXRlQ29zdEdyb3VwSWNvbhIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2ljb24SuAEKGVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWUSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVzcG9uc2UiMoLT5JMCLDoBKhonL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9jb2xvcnRoZW1lEsABChtVcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnMSNC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QaNS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoaKS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vY29tYmluYXRpb25zErsBChxSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zEjUuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIiyC0+STAiYSJC92MS9jb3N0Z3JvdXBzL3Jlc29sdmUve2Nvc3RHcm91cElkfRKsAQoVQXNzaWduQ29zdEdyb3VwTWVtYmVyEi4uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZSIygtPkkwIsOgEqIicvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L21lbWJlci9hZGQSrwEKFVJlbW92ZUNvc3RHcm91cE1lbWJlchIuLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2UiNYLT5JMCLzoBKiIqL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9tZW1iZXIvcmVtb3ZlEowBCg9EZWxldGVDb3N0R3JvdXASKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlc3BvbnNlIiSC0+STAh4qHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SpgEKG0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybBI0LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBo1LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVzcG9uc2UiGoLT5JMCFBISL3YxL2F3cy9hY2N0YWNjZXNzEooBChFMaXN0QWNjb3VudEFjY2VzcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9hbGw6cmVhZDABEoMBChBHZXRBY2NvdW50QWNjZXNzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIjgtPkkwIdEhsvdjEvYXdzL2FjY3RhY2Nlc3Mve3RhcmdldH0SfAoNR2V0RGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkRhdGFBY2Nlc3MiHILT5JMCFhIUL3YxL2FjY291bnQve3RhcmdldH0SeQoQRGVsZXRlRGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFioUL3YxL2FjY291bnQve3RhcmdldH0SgwEKE0NyZWF0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIh2C0+STAhc6ASoiEi92MS9hd3MvYWNjdGFjY2VzcxKcAQobQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0EjQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXRSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9zdGFja3NldBKKAQoWQ3JlYXRlQWNjb3VudEFjY2Vzc0N1chIsLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiIYLT5JMCGzoBKiIWL3YxL2F3cy9hY2N0YWNjZXNzL2N1chJ7ChNVcGRhdGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iI4LT5JMCHRobL3YxL2F3cy9hY2N0YWNjZXNzL3t0YXJnZXR9EpMBChNEZWxldGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWNjb3VudEFjY2Vzc1Jlc3BvbnNlIh+C0+STAhkqFy92MS9hY2N0YWNjZXNzL3t0YXJnZXR9EnQKD1JlZ2lzdGVyQWNjb3VudBIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZOgEqIhQvdjEve3ZlbmRvcn0vYWNjb3VudBJxChJSZWdpc3RlckRhdGFBY2Nlc3MSKy5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiFoLT5JMCEDoBKiILL3YxL2FjY291bnQScAoRQWRkQmlsbGluZ0FjY291bnQSJy5ibHVlYXBpLmNvdmVyLnYxLkJpbGxpbmdBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUOgEqIg8vdjEvYmlsbGluZ2FjY3QSdwoOTGlzdERhdGFBY2Nlc3MSJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3REYXRhQWNjZXNzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRGF0YUFjY2VzcyIcgtPkkwIWIhQvdjEvYWNjb3VudC9hbGw6cmVhZDABEqgBChhMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHMSMS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1Jlc3BvbnNlIiWC0+STAh8iHS92MS9hY2NvdW50L3VucmVnaXN0ZXJlZDpyZWFkEnYKEFVwZGF0ZURhdGFBY2Nlc3MSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZURhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhk6ASoaFC92MS9hY2NvdW50L3t0YXJnZXR9EmsKCkxpc3RBc3NldHMSIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNSZXF1ZXN0GhouYmx1ZWFwaS5jb3Zlci52MS5SZXNvdXJjZSIagtPkkwIUOgEqIg8vdjEvYXNzZXRzOnJlYWQwARKTAQoQR2V0QXNzZXRzU3VtbWFyeRIpLmJsdWVhcGkuY292ZXIudjEuR2V0QXNzZXRzU3VtbWFyeVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEFzc2V0c1N1bW1hcnlSZXNwb25zZSIogtPkkwIiEiAvdjEvYXNzZXRzL3N1bW1hcnkve2Nvc3RHcm91cElkfRJyCgxHZXRDb3N0VXNhZ2USJS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3QaGi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtIh2C0+STAhc6ASoiEi92MS9jb3N0dXNhZ2U6cmVhZDABEsIBChxHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uEjUuYmx1ZWFwaS5jb3Zlci52MS5HZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjOC0+STAi0SKy92MS9yaWdodHNpemluZ3JlY29tbWVuZGF0aW9uL3tjb3N0R3JvdXBJZH0SmAEKEk1vZGlmeVJlc291cmNlVHlwZRIrLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L3Jlc291cmNlL21vZGlmeRKYAQoRVGVybWluYXRlUmVzb3VyY2USKi5ibHVlYXBpLmNvdmVyLnYxLlRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuVGVybWluYXRlUmVzb3VyY2VSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEve3ZlbmRvcn0vcmVzb3VyY2UvdGVybWluYXRlEo0BChBVcGxvYWRDaGFyZ2VDb2RlEikuYmx1ZWFwaS5jb3Zlci52MS5VcGxvYWRDaGFyZ2VDb2RlUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBsb2FkQ2hhcmdlQ29kZVJlc3BvbnNlIiCC0+STAho6ASoiFS92MS9jaGFyZ2Vjb2RlL3VwbG9hZCgBEnoKC0Fzc2lnblBheWVyEiQuYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25QYXllclJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnblBheWVyUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxJxCglHZXRQYXllcnMSIi5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1Jlc3BvbnNlIhuC0+STAhUSEy92MS97dmVuZG9yfS9wYXllcnMShwEKC0dldEFjY291bnRzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L2FjY291bnRzL3tjb3N0R3JvdXBJZH0ShwEKC0dldFNlcnZpY2VzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRTZXJ2aWNlc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFNlcnZpY2VzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L3NlcnZpY2VzL3tjb3N0R3JvdXBJZH0SgwEKCkdldFJlZ2lvbnMSIy5ibHVlYXBpLmNvdmVyLnYxLkdldFJlZ2lvbnNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWdpb25zUmVzcG9uc2UiKoLT5JMCJBIiL3YxL3t2ZW5kb3J9L3JlZ2lvbnMve2Nvc3RHcm91cElkfRJ3CgdHZXRUYWdzEiAuYmx1ZWFwaS5jb3Zlci52MS5HZXRUYWdzUmVxdWVzdBohLmJsdWVhcGkuY292ZXIudjEuR2V0VGFnc1Jlc3BvbnNlIieC0+STAiESHy92MS97dmVuZG9yfS90YWdzL3tjb3N0R3JvdXBJZH0SdwoITGlzdEZlZXMSIS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGZWVzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9hbGw6cmVhZDABEnoKClJlc3RvcmVGZWUSIy5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVGZWVSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIieC0+STAiE6ASoiHC92MS9hbGxvY2F0aW9ucy9mZWVzL3Jlc3RvcmUwARJ+Cg9HZXRDb3N0R3JvdXBGZWUSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEZlZVJlcXVlc3QaGS5ibHVlYXBpLmNvdmVyLnYxLkZlZUl0ZW0iJILT5JMCHjoBKiIZL3YxL2FsbG9jYXRpb25zL2ZlZXM6cmVhZDABEnsKDkxpc3RBbGxvY2F0b3JzEicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWxsb2NhdG9yc1JlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIhaC0+STAhASDi92MS9hbGxvY2F0b3JzMAESfgoPQ3JlYXRlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIZgtPkkwITOgEqIg4vdjEvYWxsb2NhdG9ycxKgAQoXR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXMSMC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZSIggtPkkwIaEhgvdjEvYWxsb2NhdG9ycy9hdHRyaWJ1dGUSlAEKFEdldEFsbG9jYXRpb25Tb3VyY2VzEi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL2FsbG9jYXRvcnMvc291cmNlEoEBCg9VcGRhdGVBbGxvY2F0b3ISJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIegtPkkwIYOgEqGhMvdjEvYWxsb2NhdG9ycy97aWR9EnAKD0RlbGV0ZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxsb2NhdG9yUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIbgtPkkwIVKhMvdjEvYWxsb2NhdG9ycy97aWR9EpABChVQcm94eUNyZWF0ZUNvbXBsZXRpb24SLi5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlc3BvbnNlIhSC0+STAg46ASoiCS92MS94L3BjYzABEooBChRTaW11bGF0ZUZlZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9zaW11bGF0ZTABEpgBChBMaXN0QWNjb3VudFVzYWdlEikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWNjb3VudFVzYWdlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL2FsbDpyZWFkMAESnQEKE1Jlc3RvcmVBY2NvdW50VXNhZ2USLC5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVBY2NvdW50VXNhZ2VSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIi+C0+STAik6ASoiJC92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2UvcmVzdG9yZTABEpsBChRTaW11bGF0ZUFjY291bnRVc2FnZRIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL3NpbXVsYXRlMAESgQEKC0xpc3RTYXZpbmdzEiEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RmVlc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiuC0+STAiU6ASoiIC92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL2FsbDpyZWFkMAESiQEKDlJlc3RvcmVTYXZpbmdzEicuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlU2F2aW5nc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiqC0+STAiQ6ASoiHy92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL3Jlc3RvcmUwARKMAQoPU2ltdWxhdGVTYXZpbmdzEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIrgtPkkwIlOgEqIiAvdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9zaW11bGF0ZTABEo4BChZHZXRDb3N0R3JvdXBBbGxvY2F0aW9uEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBbGxvY2F0aW9uUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdGlvbkl0ZW0iH4LT5JMCGToBKiIUL3YxL2FsbG9jYXRpb25zOnJlYWQwARKHAQoQUHJvY2Vzc0F1dGgwVXNlchIpLmJsdWVhcGkuY292ZXIudjEuUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvbWVtYmVycy9hdXRoMBKbAQobQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzEjQuYmx1ZWFwaS5jb3Zlci52MS5BZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAig6ASoiIy92MS9henVyZS9jcmVkZW50aWFscy9wYXJ0bmVyY2VudGVyEnUKDUFkZE1wblNldHRpbmcSJi5ibHVlYXBpLmNvdmVyLnYxLkFkZE1wblNldHRpbmdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh46ASoiGS92MS9henVyZS9jcmVkZW50aWFscy9tcG4SkwEKFUdldENvc3RHcm91cEF0dHJpYnV0ZRIuLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2F0dHJpYnV0ZXMSbwoJR2V0QWxlcnRzEiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXNwb25zZSIXgtPkkwIREg8vdjEvYWxlcnRzL2Nvc3QwARJ2CgtDcmVhdGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGVydFJlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9hbGVydHMvY29zdBKEAQoPR2V0QWxlcnREZXRhaWxzEiguYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXNwb25zZSIcgtPkkwIWEhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRJ4CgtEZWxldGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGVydFJlc3BvbnNlIhyC0+STAhYqFC92MS9hbGVydHMvY29zdC97aWR9EpABChJVcGRhdGVBbGVydERldGFpbHMSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1Jlc3BvbnNlIh+C0+STAhk6ASoaFC92MS9hbGVydHMvY29zdC97aWR9EnoKC0dldENoYW5uZWxzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxzUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2NoYW5uZWxzOnJlYWQwARJ5Cg1DcmVhdGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ2hhbm5lbFJlc3BvbnNlIheC0+STAhE6ASoiDC92MS9jaGFubmVscxKHAQoRR2V0Q2hhbm5lbERldGFpbHMSKi5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxEZXRhaWxzUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZSIZgtPkkwITEhEvdjEvY2hhbm5lbHMve2lkfRJ7Cg1EZWxldGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ2hhbm5lbFJlc3BvbnNlIhmC0+STAhMqES92MS9jaGFubmVscy97aWR9EpMBChRVcGRhdGVDaGFubmVsRGV0YWlscxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ2hhbm5lbERldGFpbHNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDaGFubmVsRGV0YWlsc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9jaGFubmVscy97aWR9EqABChpHZXREaXNjb3VudFJlY29tbWVuZGF0aW9ucxIzLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIheC0+STAhE6ASoiDC92MS9kaXNjb3VudBKAAQoVR2V0QW5vbWFseWluQ29zdEdyb3VwEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5RGF0YSIWgtPkkwIQOgEqIgsvdjEvYW5vbWFseTABEpYBCh1DcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiWC0+STAh86ASoiGi92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50EpsBCh1VcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoaHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SrAEKGkdldERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EaXNjb3VudEV4cGlyeUFsZXJ0RGF0YSIngtPkkwIhEh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9Eq0BChtMaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNC5ibHVlYXBpLmNvdmVyLnYxLkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRpc2NvdW50RXhwaXJ5QWxlcnREYXRhIiuC0+STAiUiIy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L2FsbDpyZWFkMAESnAEKHURlbGV0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiEqHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SeAoSQ3JlYXRlQW5vbWFseUFsZXJ0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhc6ASoiEi92MS9hbGVydHMvYW5vbWFseRJ+ChJEZWxldGVBbm9tYWx5QWxlcnQSLy5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhkqFy92MS9hbGVydHMvYW5vbWFseS97aWR9EogBChBMaXN0QW5vbWFseUFsZXJ0EikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIjgtPkkwIdIhsvdjEvYWxlcnRzL2Fub21hbHkvYWxsOnJlYWQwARKHAQoPR2V0QW5vbWFseUFsZXJ0Ei8uYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIfgtPkkwIZEhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRJ9ChJVcGRhdGVBbm9tYWx5QWxlcnQSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHDoBKhoXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0ShwEKD1JlZ2lzdGVyTmV3VXNlchIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvcmVnaXN0ZXISiAEKDkdldFVzZXJQcm9maWxlEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUHJvZmlsZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJQcm9maWxlUmVzcG9uc2UiI4LT5JMCHRIbL3YxL21lbWJlcnMvcHJvZmlsZS97ZW1haWx9EpQBChFVcGRhdGVVc2VyUHJvZmlsZRIqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclByb2ZpbGVSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUHJvZmlsZVJlc3BvbnNlIiaC0+STAiA6ASoaGy92MS9tZW1iZXJzL3Byb2ZpbGUve2VtYWlsfRJ4CgtMaXN0QnVkZ2V0cxIkLmJsdWVhcGkuY292ZXIudjEuTGlzdEJ1ZGdldHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QnVkZ2V0c1Jlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9idWRnZXQ6cmVhZDABEm0KCUdldEJ1ZGdldBIiLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVzcG9uc2UiF4LT5JMCERIPL3YxL2J1ZGdldC97aWR9EnQKDENyZWF0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVzcG9uc2UiFYLT5JMCDzoBKiIKL3YxL2J1ZGdldBJ2CgxEZWxldGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlc3BvbnNlIheC0+STAhEqDy92MS9idWRnZXQve2lkfRJ5CgxVcGRhdGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9idWRnZXQve2lkfRLXAQonUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nEkAuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXF1ZXN0GkEuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvbWVtYmVycy9hd3Mvc3Vic2NyaXB0aW9uEqwBCh1HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1cxI2LmJsdWVhcGkuY292ZXIudjEuR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0GjcuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlIhqC0+STAhQSEi92MS9iaWxsaW5nL3N0YXR1cxKGAQoPQ3JlYXRlUHJvZmlsaW5nEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9wcm9maWxlEpYBChRBZGRJbmZvdG9NYXJrZXRwbGFjZRItLmJsdWVhcGkuY292ZXIudjEuQWRkSW5mb3RvTWFya2V0cGxhY2VSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5BZGRJbmZvdG9NYXJrZXRwbGFjZVJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tYXJrZXRwbGFjZS9pbmZvEpwBChBHZXRSZXBvcnRTdW1tYXJ5EikuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZXBvcnRTdW1tYXJ5UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlIjGC0+STAisSKS92MS9yZXBvcnRzL2luc2lnaHQvc3VtbWFyeS97Y29zdEdyb3VwSWR9EpwBChNMaXN0UmVjb21tZW5kYXRpb25zEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZSIogtPkkwIiEiAvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbjABEp8BChVMaXN0UmVjb21tZW5kYXRpb25zVjISLS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3JlY29tbWVuZGF0aW9ucy9hbGw6cmVhZDABEpsBChFHZXRSZWNvbW1lbmRhdGlvbhIqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25SZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIi2C0+STAicSJS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL3tpZH0SnAEKE0dldFJlY29tbWVuZGF0aW9uVjISLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2UiKILT5JMCIhIgL3YxL3JlY29tbWVuZGF0aW9ucy9kZXRhaWxzL3tpZH0SmgEKE0V4ZWN1dGVPcHRpbWl6YXRpb24SLC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL3JlY29tbWVuZGF0aW9ucy9leGVjdXRlEp0BChJHZXRFeGVjdXRpb25TdGF0dXMSKy5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1Jlc3BvbnNlIiqC0+STAiQSIi92MS9yZWNvbW1lbmRhdGlvbnMvZXhlY3V0ZS9zdGF0dXMwARKZAQoOTWFya0FzRXhlY3V0ZWQSJy5ibHVlYXBpLmNvdmVyLnYxLk1hcmtBc0V4ZWN1dGVkUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuTWFya0FzRXhlY3V0ZWRSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi9leGVjdXRlZBK5AQoaVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb24SMy5ibHVlYXBpLmNvdmVyLnYxLlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXNwb25zZSIwgtPkkwIqOgEqIiUvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi91bmRvEqQBChNPcHRpbWl6YXRpb25IaXN0b3J5EiwuYmx1ZWFwaS5jb3Zlci52MS5PcHRpbWl6YXRpb25IaXN0b3J5UmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuT3B0aW1pemF0aW9uSGlzdG9yeVJlc3BvbnNlIjCC0+STAioSKC92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL2hpc3RvcnkSvwEKGlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yEjMuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2UiNoLT5JMCMDoBKiIrL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9ldmVudEluZGljYXRvchK4AQoaU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnMSMy5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2Fub21hbHkSkAEKEVNldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSjQEKEUdldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiH4LT5JMCGRIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSogEKFFRyYW5zZmVyT3JnYW5pemF0aW9uEi0uYmx1ZWFwaS5jb3Zlci52MS5UcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlRyYW5zZmVyT3JnYW5pemF0aW9uUmVzcG9uc2UiK4LT5JMCJRIjL3YxL29yZ2FuaXphdGlvbnMvdHJhbnNmZXIve3RhcmdldH0SqQEKGVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUkSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVzcG9uc2UiI4LT5JMCHToBKhoYL3YxL21lL2Nvc3Rncm91cGNyZWF0aW9uEnYKDUxpc3RVbml0VHlwZXMSJi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0VHlwZXNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdFR5cGVzUmVzcG9uc2UiFILT5JMCDhIML3YxL3VuaXRjb3N0EnwKDkNyZWF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRUeXBlUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL3VuaXRjb3N0EnUKC0dldFVuaXRUeXBlEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0VHlwZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRUeXBlUmVzcG9uc2UiGYLT5JMCExIRL3YxL3VuaXRjb3N0L3tpZH0SgQEKDlVwZGF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRUeXBlUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL3VuaXRjb3N0L3tpZH0SfgoORGVsZXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdFR5cGVSZXNwb25zZSIZgtPkkwITKhEvdjEvdW5pdGNvc3Qve2lkfRJ2CgpNZXJnZVVuaXRzEiMuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVVuaXRzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VVbml0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS91bml0Y29zdC9tZXJnZRKRAQoSTGlzdFN1Z2dlc3RlZFVuaXRzEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZSIggtPkkwIaEhgvdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QSnQEKE01lcmdlU3VnZ2VzdGVkVW5pdHMSLC5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2UiKYLT5JMCIzoBKiIeL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0L21lcmdlEqoBChdDcmVhdGVVbml0RnJvbVN1Z2dlc3RlZBIwLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS91bml0Y29zdC9hdXRvc3VnZ2VzdC9jcmVhdGUSmAEKE0xpc3RTaGFyZWRSZXNvdXJjZXMSLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiJILT5JMCHhIcL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcxKgAQoUQ3JlYXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMSmQEKEUdldFNoYXJlZFJlc291cmNlEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjEiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SpQEKFFVwZGF0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SogEKFERlbGV0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjKiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0ShAEKD0xpc3RVbml0TWV0cmljcxIoLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL3VuaXRjb3N0L21ldHJpY3MSigEKEENyZWF0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0TWV0cmljUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL3VuaXRjb3N0L21ldHJpY3MSgwEKDUdldFVuaXRNZXRyaWMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRNZXRyaWNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0TWV0cmljUmVzcG9uc2UiIYLT5JMCGxIZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRKPAQoQVXBkYXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRNZXRyaWNSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9EowBChBEZWxldGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlIiGC0+STAhsqGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0StgEKGENvbmZpcm1Hb29nbGVTaGVldEFjY2VzcxIxLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVxdWVzdBoyLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL3VuaXRjb3N0L21ldHJpY3MvZ29vZ2xlc2hlZXQvY29uZmlybRKkAQoSUHJldmlld0dvb2dsZVNoZWV0EisuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXNwb25zZSIzgtPkkwItOgEqIigvdjEvdW5pdGNvc3QvbWV0cmljcy9nb29nbGVzaGVldC9wcmV2aWV3EqoBChVHZXRDbG91ZHdhdGNoTWV0YWRhdGESLi5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlIjCC0+STAioSKC92MS91bml0Y29zdC9tZXRyaWNzL2Nsb3Vkd2F0Y2gvbWV0YWRhdGEShAEKD1ZlcmlmeUFQSUFjY2VzcxIoLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL2FwaWFjY2Vzcy92ZXJpZnkSiQEKEUdldEFJQ29zdEFuZFVzYWdlEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UiG4LT5JMCFToBKiIQL3YxL2FpL2Nvc3R1c2FnZRKXAQoVR2V0Q29udGFpbmVyQ29zdFVzYWdlEisuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEvY29udGFpbmVycy9jb3N0dXNhZ2UShwEKEFBvcHVsYXRlRGVtb0RhdGESKS5ibHVlYXBpLmNvdmVyLnYxLlBvcHVsYXRlRGVtb0RhdGFSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5Qb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2RlbW8vcG9wdWxhdGUSewoNUmVzZXREZW1vRGF0YRImLmJsdWVhcGkuY292ZXIudjEuUmVzZXREZW1vRGF0YVJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0RGVtb0RhdGFSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvZGVtby9yZXNldBKZAQoPR2V0RGlzY291bnRQbGFuEiguYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXNwb25zZSIxgtPkkwIrOgEqIiYvdjEve3ZlbmRvcn0vZGlzY291bnRwbGFuL3tvcmdJZH06cmVhZBJ/Cg5HZXRDb3N0VXNhZ2VWMhInLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlc3BvbnNlIhiC0+STAhI6ASoiDS92MS9jb3N0dXNhZ2UwARKoAQoVTGlzdE5vbnBlcmZvcm1pbmdSYXRlEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yYXRlL25vbnBlcmZvcm1pbmc6cmVhZBKoAQoVTGlzdFVudGFnZ2VkUmVzb3VyY2VzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yZXNvdXJjZXMvdW50YWdnZWQ6cmVhZBJ/Cg1MaXN0Rm9yZWNhc3RzEiYuYmx1ZWFwaS5jb3Zlci52MS5MaXN0Rm9yZWNhc3RzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuTGlzdEZvcmVjYXN0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS9mb3JlY2FzdHM6cmVhZBKJAQoSQ3JlYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIYgtPkkwISOgEqIg0vdjEvZm9yZWNhc3RzEoIBCg9HZXRDb3N0Rm9yZWNhc3QSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlc3BvbnNlIhqC0+STAhQSEi92MS9mb3JlY2FzdHMve2lkfRKOAQoSVXBkYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvZm9yZWNhc3RzL3tpZH0SiwEKEkRlbGV0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiGoLT5JMCFCoSL3YxL2ZvcmVjYXN0cy97aWR9EpsBChRHZXRDb3N0Rm9yZWNhc3RzRGF0YRItLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9mb3JlY2FzdHMvZGF0YTpyZWFkMAESjwEKE0dldFJlY29tbWVuZGF0aW9uVjMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3JlY29tbWVuZGF0aW9ucxKcAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZWNvbW1lbmRhdGlvblN1bW1hcnkiKILT5JMCIjoBKiIdL3YxL3JlY29tbWVuZGF0aW9ucy9zdW1tYXJpZXMwARKlAQoXRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjMSMC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvcmVjb21tZW5kYXRpb24vZXhlY3V0ZRqXAZJBkwESQihCRVRBKSBDb3ZlciBBUEkuIEJhc2UgVVJMOiBodHRwczovL2FwaS5hbHBoYXVzLmNsb3VkL20vYmx1ZS9jb3ZlchpNChJTZXJ2aWNlIGRlZmluaXRpb24SN2h0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9jb3Zlci9CSwoXY2xvdWQuYWxwaGF1cy5hcGkuY292ZXJCCkNvdmVyUHJvdG9aJGdpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS9jb3ZlcmIGcHJvdG8z", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
50
+
51
+ /**
52
+ * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
53
+ */
54
+ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRecommendationV3Request"> & {
55
+ /**
56
+ * @generated from field: repeated string ids = 1;
57
+ */
58
+ ids: string[];
59
+
60
+ /**
61
+ * @generated from field: blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType executeType = 2;
62
+ */
63
+ executeType: ExecuteRecommendationV3Request_ExecuteType;
64
+
65
+ /**
66
+ * @generated from field: optional blueapi.cover.v1.ExecuteRecommendationV3Request.Option option = 3;
67
+ */
68
+ option?: ExecuteRecommendationV3Request_Option;
69
+ };
70
+
71
+ /**
72
+ * Describes the message blueapi.cover.v1.ExecuteRecommendationV3Request.
73
+ * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
74
+ */
75
+ export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
76
+ messageDesc(file_cover_v1_cover, 0);
77
+
78
+ /**
79
+ * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
80
+ */
81
+ export enum ExecuteRecommendationV3Request_ExecuteType {
82
+ /**
83
+ * @generated from enum value: DEFAULT = 0;
84
+ */
85
+ DEFAULT = 0,
86
+
87
+ /**
88
+ * @generated from enum value: MARK_AS_EXECUTED = 1;
89
+ */
90
+ MARK_AS_EXECUTED = 1,
91
+
92
+ /**
93
+ * @generated from enum value: UNDO_EXECUTED = 2;
94
+ */
95
+ UNDO_EXECUTED = 2,
96
+ }
97
+
98
+ /**
99
+ * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
100
+ */
101
+ export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
102
+ enumDesc(file_cover_v1_cover, 0, 0);
103
+
104
+ /**
105
+ * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.Option
106
+ */
107
+ export enum ExecuteRecommendationV3Request_Option {
108
+ /**
109
+ * @generated from enum value: OPTION_UNSPECIFIED = 0;
110
+ */
111
+ OPTION_UNSPECIFIED = 0,
112
+
113
+ /**
114
+ * @generated from enum value: SUBMIT_TEMPLATE = 1;
115
+ */
116
+ SUBMIT_TEMPLATE = 1,
117
+
118
+ /**
119
+ * @generated from enum value: RETRY_EXECUTE = 2;
120
+ */
121
+ RETRY_EXECUTE = 2,
122
+ }
123
+
124
+ /**
125
+ * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.Option.
126
+ */
127
+ export const ExecuteRecommendationV3Request_OptionSchema: GenEnum<ExecuteRecommendationV3Request_Option> = /*@__PURE__*/
128
+ enumDesc(file_cover_v1_cover, 0, 1);
129
+
130
+ /**
131
+ * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
132
+ */
133
+ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteRecommendationV3Response"> & {
134
+ /**
135
+ * @generated from field: google.protobuf.Struct result = 1;
136
+ */
137
+ result?: JsonObject;
138
+ };
139
+
140
+ /**
141
+ * Describes the message blueapi.cover.v1.ExecuteRecommendationV3Response.
142
+ * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
143
+ */
144
+ export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
145
+ messageDesc(file_cover_v1_cover, 1);
50
146
 
51
147
  /**
52
148
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -58,19 +154,29 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
58
154
  costgroupId: string;
59
155
 
60
156
  /**
61
- * @generated from field: optional string dateDetected = 2;
157
+ * @generated from field: repeated string statuses = 2;
62
158
  */
63
- dateDetected?: string;
159
+ statuses: string[];
64
160
 
65
161
  /**
66
- * @generated from field: optional string dateStart = 3;
162
+ * @generated from field: optional string lastDetectedStartDate = 3;
67
163
  */
68
- dateStart?: string;
164
+ lastDetectedStartDate?: string;
69
165
 
70
166
  /**
71
- * @generated from field: optional string dateEnd = 4;
167
+ * @generated from field: optional string lastDetectedEndDate = 4;
72
168
  */
73
- dateEnd?: string;
169
+ lastDetectedEndDate?: string;
170
+
171
+ /**
172
+ * @generated from field: optional string dateDetectedStartDate = 5;
173
+ */
174
+ dateDetectedStartDate?: string;
175
+
176
+ /**
177
+ * @generated from field: optional string dateDetectedEndDate = 6;
178
+ */
179
+ dateDetectedEndDate?: string;
74
180
  };
75
181
 
76
182
  /**
@@ -78,7 +184,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
78
184
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
79
185
  */
80
186
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
81
- messageDesc(file_cover_v1_cover, 0);
187
+ messageDesc(file_cover_v1_cover, 2);
82
188
 
83
189
  /**
84
190
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -185,7 +291,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
185
291
  * Use `create(RecommendationSummarySchema)` to create a new message.
186
292
  */
187
293
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
188
- messageDesc(file_cover_v1_cover, 1);
294
+ messageDesc(file_cover_v1_cover, 3);
189
295
 
190
296
  /**
191
297
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -202,7 +308,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
202
308
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
203
309
  */
204
310
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
205
- messageDesc(file_cover_v1_cover, 2);
311
+ messageDesc(file_cover_v1_cover, 4);
206
312
 
207
313
  /**
208
314
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -219,7 +325,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
219
325
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
220
326
  */
221
327
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
222
- messageDesc(file_cover_v1_cover, 3);
328
+ messageDesc(file_cover_v1_cover, 5);
223
329
 
224
330
  /**
225
331
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -336,7 +442,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
336
442
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
337
443
  */
338
444
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
339
- messageDesc(file_cover_v1_cover, 3, 0);
445
+ messageDesc(file_cover_v1_cover, 5, 0);
340
446
 
341
447
  /**
342
448
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -374,7 +480,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
374
480
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
375
481
  */
376
482
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
377
- messageDesc(file_cover_v1_cover, 4);
483
+ messageDesc(file_cover_v1_cover, 6);
378
484
 
379
485
  /**
380
486
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -400,7 +506,7 @@ export enum GetCostForecastsDataRequest_Granularity {
400
506
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
401
507
  */
402
508
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
403
- enumDesc(file_cover_v1_cover, 4, 0);
509
+ enumDesc(file_cover_v1_cover, 6, 0);
404
510
 
405
511
  /**
406
512
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -432,7 +538,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
432
538
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
433
539
  */
434
540
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
435
- messageDesc(file_cover_v1_cover, 5);
541
+ messageDesc(file_cover_v1_cover, 7);
436
542
 
437
543
  /**
438
544
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -445,7 +551,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
445
551
  * Use `create(ListForecastsRequestSchema)` to create a new message.
446
552
  */
447
553
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
448
- messageDesc(file_cover_v1_cover, 6);
554
+ messageDesc(file_cover_v1_cover, 8);
449
555
 
450
556
  /**
451
557
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -462,7 +568,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
462
568
  * Use `create(ListForecastsResponseSchema)` to create a new message.
463
569
  */
464
570
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
465
- messageDesc(file_cover_v1_cover, 7);
571
+ messageDesc(file_cover_v1_cover, 9);
466
572
 
467
573
  /**
468
574
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -516,7 +622,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
516
622
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
517
623
  */
518
624
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
519
- messageDesc(file_cover_v1_cover, 8);
625
+ messageDesc(file_cover_v1_cover, 10);
520
626
 
521
627
  /**
522
628
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -563,7 +669,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
563
669
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
564
670
  */
565
671
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
566
- messageDesc(file_cover_v1_cover, 9);
672
+ messageDesc(file_cover_v1_cover, 11);
567
673
 
568
674
  /**
569
675
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -582,7 +688,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
582
688
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
583
689
  */
584
690
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
585
- messageDesc(file_cover_v1_cover, 10);
691
+ messageDesc(file_cover_v1_cover, 12);
586
692
 
587
693
  /**
588
694
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -644,7 +750,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
644
750
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
645
751
  */
646
752
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
647
- messageDesc(file_cover_v1_cover, 11);
753
+ messageDesc(file_cover_v1_cover, 13);
648
754
 
649
755
  /**
650
756
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -705,7 +811,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
705
811
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
706
812
  */
707
813
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
708
- messageDesc(file_cover_v1_cover, 12);
814
+ messageDesc(file_cover_v1_cover, 14);
709
815
 
710
816
  /**
711
817
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -767,7 +873,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
767
873
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
768
874
  */
769
875
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
770
- messageDesc(file_cover_v1_cover, 13);
876
+ messageDesc(file_cover_v1_cover, 15);
771
877
 
772
878
  /**
773
879
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -786,7 +892,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
786
892
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
787
893
  */
788
894
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
789
- messageDesc(file_cover_v1_cover, 14);
895
+ messageDesc(file_cover_v1_cover, 16);
790
896
 
791
897
  /**
792
898
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -803,7 +909,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
803
909
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
804
910
  */
805
911
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
806
- messageDesc(file_cover_v1_cover, 15);
912
+ messageDesc(file_cover_v1_cover, 17);
807
913
 
808
914
  /**
809
915
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -835,7 +941,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
835
941
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
836
942
  */
837
943
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
838
- messageDesc(file_cover_v1_cover, 16);
944
+ messageDesc(file_cover_v1_cover, 18);
839
945
 
840
946
  /**
841
947
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -897,7 +1003,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
897
1003
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
898
1004
  */
899
1005
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
900
- messageDesc(file_cover_v1_cover, 17);
1006
+ messageDesc(file_cover_v1_cover, 19);
901
1007
 
902
1008
  /**
903
1009
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -923,7 +1029,7 @@ export enum GetCostUsageV2Request_Granularity {
923
1029
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
924
1030
  */
925
1031
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
926
- enumDesc(file_cover_v1_cover, 17, 0);
1032
+ enumDesc(file_cover_v1_cover, 19, 0);
927
1033
 
928
1034
  /**
929
1035
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -949,7 +1055,7 @@ export enum GetCostUsageV2Request_Category {
949
1055
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
950
1056
  */
951
1057
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
952
- enumDesc(file_cover_v1_cover, 17, 1);
1058
+ enumDesc(file_cover_v1_cover, 19, 1);
953
1059
 
954
1060
  /**
955
1061
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -962,7 +1068,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
962
1068
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
963
1069
  */
964
1070
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
965
- messageDesc(file_cover_v1_cover, 18);
1071
+ messageDesc(file_cover_v1_cover, 20);
966
1072
 
967
1073
  /**
968
1074
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -975,7 +1081,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
975
1081
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
976
1082
  */
977
1083
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
978
- messageDesc(file_cover_v1_cover, 19);
1084
+ messageDesc(file_cover_v1_cover, 21);
979
1085
 
980
1086
  /**
981
1087
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -988,7 +1094,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
988
1094
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
989
1095
  */
990
1096
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
991
- messageDesc(file_cover_v1_cover, 20);
1097
+ messageDesc(file_cover_v1_cover, 22);
992
1098
 
993
1099
  /**
994
1100
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1001,7 +1107,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1001
1107
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1002
1108
  */
1003
1109
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1004
- messageDesc(file_cover_v1_cover, 21);
1110
+ messageDesc(file_cover_v1_cover, 23);
1005
1111
 
1006
1112
  /**
1007
1113
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1058,7 +1164,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1058
1164
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1059
1165
  */
1060
1166
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1061
- messageDesc(file_cover_v1_cover, 22);
1167
+ messageDesc(file_cover_v1_cover, 24);
1062
1168
 
1063
1169
  /**
1064
1170
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1085,7 +1191,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1085
1191
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1086
1192
  */
1087
1193
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1088
- messageDesc(file_cover_v1_cover, 22, 0);
1194
+ messageDesc(file_cover_v1_cover, 24, 0);
1089
1195
 
1090
1196
  /**
1091
1197
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1111,7 +1217,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1111
1217
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1112
1218
  */
1113
1219
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1114
- enumDesc(file_cover_v1_cover, 22, 0, 0);
1220
+ enumDesc(file_cover_v1_cover, 24, 0, 0);
1115
1221
 
1116
1222
  /**
1117
1223
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1137,7 +1243,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1137
1243
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1138
1244
  */
1139
1245
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1140
- enumDesc(file_cover_v1_cover, 22, 0);
1246
+ enumDesc(file_cover_v1_cover, 24, 0);
1141
1247
 
1142
1248
  /**
1143
1249
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1173,7 +1279,7 @@ export enum ContainerCostUsageRequest_MetricType {
1173
1279
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1174
1280
  */
1175
1281
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1176
- enumDesc(file_cover_v1_cover, 22, 1);
1282
+ enumDesc(file_cover_v1_cover, 24, 1);
1177
1283
 
1178
1284
  /**
1179
1285
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1199,7 +1305,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1199
1305
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1200
1306
  */
1201
1307
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1202
- enumDesc(file_cover_v1_cover, 22, 2);
1308
+ enumDesc(file_cover_v1_cover, 24, 2);
1203
1309
 
1204
1310
  /**
1205
1311
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1231,7 +1337,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1231
1337
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1232
1338
  */
1233
1339
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1234
- messageDesc(file_cover_v1_cover, 23);
1340
+ messageDesc(file_cover_v1_cover, 25);
1235
1341
 
1236
1342
  /**
1237
1343
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1258,7 +1364,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1258
1364
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1259
1365
  */
1260
1366
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1261
- messageDesc(file_cover_v1_cover, 23, 0);
1367
+ messageDesc(file_cover_v1_cover, 25, 0);
1262
1368
 
1263
1369
  /**
1264
1370
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1300,7 +1406,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1300
1406
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1301
1407
  */
1302
1408
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1303
- messageDesc(file_cover_v1_cover, 23, 1);
1409
+ messageDesc(file_cover_v1_cover, 25, 1);
1304
1410
 
1305
1411
  /**
1306
1412
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1334,7 +1440,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1334
1440
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1335
1441
  */
1336
1442
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1337
- messageDesc(file_cover_v1_cover, 23, 2);
1443
+ messageDesc(file_cover_v1_cover, 25, 2);
1338
1444
 
1339
1445
  /**
1340
1446
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1361,7 +1467,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1361
1467
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1362
1468
  */
1363
1469
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1364
- messageDesc(file_cover_v1_cover, 23, 3);
1470
+ messageDesc(file_cover_v1_cover, 25, 3);
1365
1471
 
1366
1472
  /**
1367
1473
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1393,7 +1499,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1393
1499
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1394
1500
  */
1395
1501
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1396
- messageDesc(file_cover_v1_cover, 23, 4);
1502
+ messageDesc(file_cover_v1_cover, 25, 4);
1397
1503
 
1398
1504
  /**
1399
1505
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1415,7 +1521,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1415
1521
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1416
1522
  */
1417
1523
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1418
- messageDesc(file_cover_v1_cover, 23, 5);
1524
+ messageDesc(file_cover_v1_cover, 25, 5);
1419
1525
 
1420
1526
  /**
1421
1527
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1462,7 +1568,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1462
1568
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1463
1569
  */
1464
1570
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1465
- messageDesc(file_cover_v1_cover, 24);
1571
+ messageDesc(file_cover_v1_cover, 26);
1466
1572
 
1467
1573
  /**
1468
1574
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1497,7 +1603,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1497
1603
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1498
1604
  */
1499
1605
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1500
- messageDesc(file_cover_v1_cover, 24, 0);
1606
+ messageDesc(file_cover_v1_cover, 26, 0);
1501
1607
 
1502
1608
  /**
1503
1609
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1523,7 +1629,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1523
1629
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1524
1630
  */
1525
1631
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1526
- enumDesc(file_cover_v1_cover, 24, 0, 0);
1632
+ enumDesc(file_cover_v1_cover, 26, 0, 0);
1527
1633
 
1528
1634
  /**
1529
1635
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1549,7 +1655,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1549
1655
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1550
1656
  */
1551
1657
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1552
- enumDesc(file_cover_v1_cover, 24, 0);
1658
+ enumDesc(file_cover_v1_cover, 26, 0);
1553
1659
 
1554
1660
  /**
1555
1661
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1566,7 +1672,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1566
1672
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1567
1673
  */
1568
1674
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1569
- messageDesc(file_cover_v1_cover, 25);
1675
+ messageDesc(file_cover_v1_cover, 27);
1570
1676
 
1571
1677
  /**
1572
1678
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1588,7 +1694,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1588
1694
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1589
1695
  */
1590
1696
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
1591
- messageDesc(file_cover_v1_cover, 25, 0);
1697
+ messageDesc(file_cover_v1_cover, 27, 0);
1592
1698
 
1593
1699
  /**
1594
1700
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -1610,7 +1716,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
1610
1716
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
1611
1717
  */
1612
1718
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
1613
- messageDesc(file_cover_v1_cover, 25, 1);
1719
+ messageDesc(file_cover_v1_cover, 27, 1);
1614
1720
 
1615
1721
  /**
1616
1722
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -1637,7 +1743,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
1637
1743
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
1638
1744
  */
1639
1745
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
1640
- messageDesc(file_cover_v1_cover, 25, 2);
1746
+ messageDesc(file_cover_v1_cover, 27, 2);
1641
1747
 
1642
1748
  /**
1643
1749
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -1659,7 +1765,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
1659
1765
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
1660
1766
  */
1661
1767
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
1662
- messageDesc(file_cover_v1_cover, 25, 3);
1768
+ messageDesc(file_cover_v1_cover, 27, 3);
1663
1769
 
1664
1770
  /**
1665
1771
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -1672,7 +1778,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
1672
1778
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
1673
1779
  */
1674
1780
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
1675
- messageDesc(file_cover_v1_cover, 26);
1781
+ messageDesc(file_cover_v1_cover, 28);
1676
1782
 
1677
1783
  /**
1678
1784
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -1699,7 +1805,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
1699
1805
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
1700
1806
  */
1701
1807
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
1702
- messageDesc(file_cover_v1_cover, 27);
1808
+ messageDesc(file_cover_v1_cover, 29);
1703
1809
 
1704
1810
  /**
1705
1811
  * Only supports gcp for now.
@@ -1727,7 +1833,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
1727
1833
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
1728
1834
  */
1729
1835
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
1730
- messageDesc(file_cover_v1_cover, 28);
1836
+ messageDesc(file_cover_v1_cover, 30);
1731
1837
 
1732
1838
  /**
1733
1839
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -1744,7 +1850,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
1744
1850
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
1745
1851
  */
1746
1852
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
1747
- messageDesc(file_cover_v1_cover, 29);
1853
+ messageDesc(file_cover_v1_cover, 31);
1748
1854
 
1749
1855
  /**
1750
1856
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -1776,7 +1882,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
1776
1882
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
1777
1883
  */
1778
1884
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
1779
- messageDesc(file_cover_v1_cover, 30);
1885
+ messageDesc(file_cover_v1_cover, 32);
1780
1886
 
1781
1887
  /**
1782
1888
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -1793,7 +1899,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
1793
1899
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
1794
1900
  */
1795
1901
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
1796
- messageDesc(file_cover_v1_cover, 31);
1902
+ messageDesc(file_cover_v1_cover, 33);
1797
1903
 
1798
1904
  /**
1799
1905
  * Request message for OnboardOrg
@@ -1827,7 +1933,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
1827
1933
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
1828
1934
  */
1829
1935
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
1830
- messageDesc(file_cover_v1_cover, 32);
1936
+ messageDesc(file_cover_v1_cover, 34);
1831
1937
 
1832
1938
  /**
1833
1939
  * Response message for OnboardOrg
@@ -1846,7 +1952,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
1846
1952
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
1847
1953
  */
1848
1954
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
1849
- messageDesc(file_cover_v1_cover, 33);
1955
+ messageDesc(file_cover_v1_cover, 35);
1850
1956
 
1851
1957
  /**
1852
1958
  * Request message for InviteMember
@@ -1875,7 +1981,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
1875
1981
  * Use `create(InviteMemberRequestSchema)` to create a new message.
1876
1982
  */
1877
1983
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
1878
- messageDesc(file_cover_v1_cover, 34);
1984
+ messageDesc(file_cover_v1_cover, 36);
1879
1985
 
1880
1986
  /**
1881
1987
  * Response message for InviteMember
@@ -1894,7 +2000,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
1894
2000
  * Use `create(InviteMemberResponseSchema)` to create a new message.
1895
2001
  */
1896
2002
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
1897
- messageDesc(file_cover_v1_cover, 35);
2003
+ messageDesc(file_cover_v1_cover, 37);
1898
2004
 
1899
2005
  /**
1900
2006
  * Request message for ActivateUser
@@ -1952,7 +2058,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
1952
2058
  * Use `create(ActivateUserRequestSchema)` to create a new message.
1953
2059
  */
1954
2060
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
1955
- messageDesc(file_cover_v1_cover, 36);
2061
+ messageDesc(file_cover_v1_cover, 38);
1956
2062
 
1957
2063
  /**
1958
2064
  * Response message for ActivateUser
@@ -1971,7 +2077,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
1971
2077
  * Use `create(ActivateUserResponseSchema)` to create a new message.
1972
2078
  */
1973
2079
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
1974
- messageDesc(file_cover_v1_cover, 37);
2080
+ messageDesc(file_cover_v1_cover, 39);
1975
2081
 
1976
2082
  /**
1977
2083
  * Request message for CreateMember
@@ -2005,7 +2111,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2005
2111
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2006
2112
  */
2007
2113
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2008
- messageDesc(file_cover_v1_cover, 38);
2114
+ messageDesc(file_cover_v1_cover, 40);
2009
2115
 
2010
2116
  /**
2011
2117
  * Response message for CreateMember
@@ -2024,7 +2130,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2024
2130
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2025
2131
  */
2026
2132
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2027
- messageDesc(file_cover_v1_cover, 39);
2133
+ messageDesc(file_cover_v1_cover, 41);
2028
2134
 
2029
2135
  /**
2030
2136
  * Request message for GetMembers
@@ -2039,7 +2145,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2039
2145
  * Use `create(GetMembersRequestSchema)` to create a new message.
2040
2146
  */
2041
2147
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2042
- messageDesc(file_cover_v1_cover, 40);
2148
+ messageDesc(file_cover_v1_cover, 42);
2043
2149
 
2044
2150
  /**
2045
2151
  * Response message for GetMembers
@@ -2058,7 +2164,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2058
2164
  * Use `create(GetMembersResponseSchema)` to create a new message.
2059
2165
  */
2060
2166
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2061
- messageDesc(file_cover_v1_cover, 41);
2167
+ messageDesc(file_cover_v1_cover, 43);
2062
2168
 
2063
2169
  /**
2064
2170
  * Request message for GetMemberDetails
@@ -2079,7 +2185,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2079
2185
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2080
2186
  */
2081
2187
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2082
- messageDesc(file_cover_v1_cover, 42);
2188
+ messageDesc(file_cover_v1_cover, 44);
2083
2189
 
2084
2190
  /**
2085
2191
  * Response message for GetMemberDetails
@@ -2098,7 +2204,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2098
2204
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2099
2205
  */
2100
2206
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2101
- messageDesc(file_cover_v1_cover, 43);
2207
+ messageDesc(file_cover_v1_cover, 45);
2102
2208
 
2103
2209
  /**
2104
2210
  * Request message for GetMemberCostGroup
@@ -2119,7 +2225,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2119
2225
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2120
2226
  */
2121
2227
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2122
- messageDesc(file_cover_v1_cover, 44);
2228
+ messageDesc(file_cover_v1_cover, 46);
2123
2229
 
2124
2230
  /**
2125
2231
  * Response message for GetMemberCostGroup
@@ -2138,7 +2244,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2138
2244
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2139
2245
  */
2140
2246
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2141
- messageDesc(file_cover_v1_cover, 45);
2247
+ messageDesc(file_cover_v1_cover, 47);
2142
2248
 
2143
2249
  /**
2144
2250
  * Request message for UpdateMemberPermission
@@ -2166,7 +2272,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2166
2272
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2167
2273
  */
2168
2274
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2169
- messageDesc(file_cover_v1_cover, 46);
2275
+ messageDesc(file_cover_v1_cover, 48);
2170
2276
 
2171
2277
  /**
2172
2278
  * Response message for UpdateMemberPermission
@@ -2185,7 +2291,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2185
2291
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2186
2292
  */
2187
2293
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2188
- messageDesc(file_cover_v1_cover, 47);
2294
+ messageDesc(file_cover_v1_cover, 49);
2189
2295
 
2190
2296
  /**
2191
2297
  * Request message for GetUserDetails
@@ -2200,7 +2306,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2200
2306
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2201
2307
  */
2202
2308
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2203
- messageDesc(file_cover_v1_cover, 48);
2309
+ messageDesc(file_cover_v1_cover, 50);
2204
2310
 
2205
2311
  /**
2206
2312
  * Response message for GetUserDetails
@@ -2219,7 +2325,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2219
2325
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2220
2326
  */
2221
2327
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2222
- messageDesc(file_cover_v1_cover, 49);
2328
+ messageDesc(file_cover_v1_cover, 51);
2223
2329
 
2224
2330
  /**
2225
2331
  * Request message for UpdateUserAvatar
@@ -2238,7 +2344,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2238
2344
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2239
2345
  */
2240
2346
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2241
- messageDesc(file_cover_v1_cover, 50);
2347
+ messageDesc(file_cover_v1_cover, 52);
2242
2348
 
2243
2349
  /**
2244
2350
  * Response message for UpdateUserAvatar
@@ -2257,7 +2363,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2257
2363
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2258
2364
  */
2259
2365
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2260
- messageDesc(file_cover_v1_cover, 51);
2366
+ messageDesc(file_cover_v1_cover, 53);
2261
2367
 
2262
2368
  /**
2263
2369
  * Request message for UpdateUserIcon
@@ -2276,7 +2382,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2276
2382
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2277
2383
  */
2278
2384
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2279
- messageDesc(file_cover_v1_cover, 52);
2385
+ messageDesc(file_cover_v1_cover, 54);
2280
2386
 
2281
2387
  /**
2282
2388
  * Response message for UpdateUserIcon
@@ -2295,7 +2401,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2295
2401
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2296
2402
  */
2297
2403
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2298
- messageDesc(file_cover_v1_cover, 53);
2404
+ messageDesc(file_cover_v1_cover, 55);
2299
2405
 
2300
2406
  /**
2301
2407
  * Request message for UpdateUserColorTheme
@@ -2314,7 +2420,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2314
2420
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2315
2421
  */
2316
2422
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2317
- messageDesc(file_cover_v1_cover, 54);
2423
+ messageDesc(file_cover_v1_cover, 56);
2318
2424
 
2319
2425
  /**
2320
2426
  * Response message for UpdateUserColorTheme
@@ -2333,7 +2439,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2333
2439
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2334
2440
  */
2335
2441
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2336
- messageDesc(file_cover_v1_cover, 55);
2442
+ messageDesc(file_cover_v1_cover, 57);
2337
2443
 
2338
2444
  /**
2339
2445
  * Request message for UpdateUserName
@@ -2352,7 +2458,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2352
2458
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2353
2459
  */
2354
2460
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2355
- messageDesc(file_cover_v1_cover, 56);
2461
+ messageDesc(file_cover_v1_cover, 58);
2356
2462
 
2357
2463
  /**
2358
2464
  * Response message for UpdateUserName
@@ -2371,7 +2477,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2371
2477
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2372
2478
  */
2373
2479
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2374
- messageDesc(file_cover_v1_cover, 57);
2480
+ messageDesc(file_cover_v1_cover, 59);
2375
2481
 
2376
2482
  /**
2377
2483
  * Request message for UpdateUserEmail
@@ -2390,7 +2496,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2390
2496
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2391
2497
  */
2392
2498
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2393
- messageDesc(file_cover_v1_cover, 58);
2499
+ messageDesc(file_cover_v1_cover, 60);
2394
2500
 
2395
2501
  /**
2396
2502
  * Response message for UpdateUserEmail
@@ -2409,7 +2515,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2409
2515
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2410
2516
  */
2411
2517
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2412
- messageDesc(file_cover_v1_cover, 59);
2518
+ messageDesc(file_cover_v1_cover, 61);
2413
2519
 
2414
2520
  /**
2415
2521
  * Request message for UpdateUserMainView
@@ -2428,7 +2534,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2428
2534
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2429
2535
  */
2430
2536
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2431
- messageDesc(file_cover_v1_cover, 60);
2537
+ messageDesc(file_cover_v1_cover, 62);
2432
2538
 
2433
2539
  /**
2434
2540
  * Response message for UpdateUserMainView
@@ -2447,7 +2553,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2447
2553
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2448
2554
  */
2449
2555
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2450
- messageDesc(file_cover_v1_cover, 61);
2556
+ messageDesc(file_cover_v1_cover, 63);
2451
2557
 
2452
2558
  /**
2453
2559
  * Request message for ResetUserPassword
@@ -2471,7 +2577,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2471
2577
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2472
2578
  */
2473
2579
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2474
- messageDesc(file_cover_v1_cover, 62);
2580
+ messageDesc(file_cover_v1_cover, 64);
2475
2581
 
2476
2582
  /**
2477
2583
  * Response message for ResetUserPassword
@@ -2490,7 +2596,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2490
2596
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2491
2597
  */
2492
2598
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2493
- messageDesc(file_cover_v1_cover, 63);
2599
+ messageDesc(file_cover_v1_cover, 65);
2494
2600
 
2495
2601
  /**
2496
2602
  * Request message for UpdateUserLocale
@@ -2509,7 +2615,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2509
2615
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2510
2616
  */
2511
2617
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2512
- messageDesc(file_cover_v1_cover, 64);
2618
+ messageDesc(file_cover_v1_cover, 66);
2513
2619
 
2514
2620
  /**
2515
2621
  * Response message for UpdateUserLocale
@@ -2528,7 +2634,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2528
2634
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2529
2635
  */
2530
2636
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2531
- messageDesc(file_cover_v1_cover, 65);
2637
+ messageDesc(file_cover_v1_cover, 67);
2532
2638
 
2533
2639
  /**
2534
2640
  * Request message for UpdateUserAppTheme
@@ -2547,7 +2653,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2547
2653
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2548
2654
  */
2549
2655
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2550
- messageDesc(file_cover_v1_cover, 66);
2656
+ messageDesc(file_cover_v1_cover, 68);
2551
2657
 
2552
2658
  /**
2553
2659
  * Response message for UpdateUserAppTheme
@@ -2566,7 +2672,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2566
2672
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2567
2673
  */
2568
2674
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2569
- messageDesc(file_cover_v1_cover, 67);
2675
+ messageDesc(file_cover_v1_cover, 69);
2570
2676
 
2571
2677
  /**
2572
2678
  * Request message for UpdateUserTimezone
@@ -2590,7 +2696,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
2590
2696
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
2591
2697
  */
2592
2698
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
2593
- messageDesc(file_cover_v1_cover, 68);
2699
+ messageDesc(file_cover_v1_cover, 70);
2594
2700
 
2595
2701
  /**
2596
2702
  * Response message for UpdateUserTimezone
@@ -2609,7 +2715,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
2609
2715
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
2610
2716
  */
2611
2717
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
2612
- messageDesc(file_cover_v1_cover, 69);
2718
+ messageDesc(file_cover_v1_cover, 71);
2613
2719
 
2614
2720
  /**
2615
2721
  * Request message for UpdateUserAttributes
@@ -2628,7 +2734,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
2628
2734
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
2629
2735
  */
2630
2736
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
2631
- messageDesc(file_cover_v1_cover, 70);
2737
+ messageDesc(file_cover_v1_cover, 72);
2632
2738
 
2633
2739
  /**
2634
2740
  * Response message for UpdateUserAttributes
@@ -2647,7 +2753,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
2647
2753
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
2648
2754
  */
2649
2755
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
2650
- messageDesc(file_cover_v1_cover, 71);
2756
+ messageDesc(file_cover_v1_cover, 73);
2651
2757
 
2652
2758
  /**
2653
2759
  * Request message for DeleteMember
@@ -2668,7 +2774,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
2668
2774
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
2669
2775
  */
2670
2776
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
2671
- messageDesc(file_cover_v1_cover, 72);
2777
+ messageDesc(file_cover_v1_cover, 74);
2672
2778
 
2673
2779
  /**
2674
2780
  * Response message for DeleteMember
@@ -2687,7 +2793,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
2687
2793
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
2688
2794
  */
2689
2795
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
2690
- messageDesc(file_cover_v1_cover, 73);
2796
+ messageDesc(file_cover_v1_cover, 75);
2691
2797
 
2692
2798
  /**
2693
2799
  * Request message for ResetPassword
@@ -2708,7 +2814,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
2708
2814
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
2709
2815
  */
2710
2816
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
2711
- messageDesc(file_cover_v1_cover, 74);
2817
+ messageDesc(file_cover_v1_cover, 76);
2712
2818
 
2713
2819
  /**
2714
2820
  * Response message for ResetPassword
@@ -2727,7 +2833,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
2727
2833
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
2728
2834
  */
2729
2835
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
2730
- messageDesc(file_cover_v1_cover, 75);
2836
+ messageDesc(file_cover_v1_cover, 77);
2731
2837
 
2732
2838
  /**
2733
2839
  * Request message for CreateView
@@ -2786,7 +2892,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
2786
2892
  * Use `create(CreateViewRequestSchema)` to create a new message.
2787
2893
  */
2788
2894
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
2789
- messageDesc(file_cover_v1_cover, 76);
2895
+ messageDesc(file_cover_v1_cover, 78);
2790
2896
 
2791
2897
  /**
2792
2898
  * Response message for CreateView
@@ -2805,7 +2911,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
2805
2911
  * Use `create(CreateViewResponseSchema)` to create a new message.
2806
2912
  */
2807
2913
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
2808
- messageDesc(file_cover_v1_cover, 77);
2914
+ messageDesc(file_cover_v1_cover, 79);
2809
2915
 
2810
2916
  /**
2811
2917
  * Request message for GetViews
@@ -2820,7 +2926,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
2820
2926
  * Use `create(GetViewsRequestSchema)` to create a new message.
2821
2927
  */
2822
2928
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
2823
- messageDesc(file_cover_v1_cover, 78);
2929
+ messageDesc(file_cover_v1_cover, 80);
2824
2930
 
2825
2931
  /**
2826
2932
  * Response message for GetViews
@@ -2839,7 +2945,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
2839
2945
  * Use `create(GetViewsResponseSchema)` to create a new message.
2840
2946
  */
2841
2947
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
2842
- messageDesc(file_cover_v1_cover, 79);
2948
+ messageDesc(file_cover_v1_cover, 81);
2843
2949
 
2844
2950
  /**
2845
2951
  * Request message for GetCurrentView
@@ -2860,7 +2966,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
2860
2966
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
2861
2967
  */
2862
2968
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
2863
- messageDesc(file_cover_v1_cover, 80);
2969
+ messageDesc(file_cover_v1_cover, 82);
2864
2970
 
2865
2971
  /**
2866
2972
  * Response message for GetCurrentView
@@ -2879,7 +2985,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
2879
2985
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
2880
2986
  */
2881
2987
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
2882
- messageDesc(file_cover_v1_cover, 81);
2988
+ messageDesc(file_cover_v1_cover, 83);
2883
2989
 
2884
2990
  /**
2885
2991
  * Request message for GetFavoriteViews
@@ -2894,7 +3000,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
2894
3000
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
2895
3001
  */
2896
3002
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
2897
- messageDesc(file_cover_v1_cover, 82);
3003
+ messageDesc(file_cover_v1_cover, 84);
2898
3004
 
2899
3005
  /**
2900
3006
  * Response message for GetFavoriteViews
@@ -2913,7 +3019,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
2913
3019
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
2914
3020
  */
2915
3021
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
2916
- messageDesc(file_cover_v1_cover, 83);
3022
+ messageDesc(file_cover_v1_cover, 85);
2917
3023
 
2918
3024
  /**
2919
3025
  * Request message for PublishView
@@ -2934,7 +3040,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
2934
3040
  * Use `create(PublishViewRequestSchema)` to create a new message.
2935
3041
  */
2936
3042
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
2937
- messageDesc(file_cover_v1_cover, 84);
3043
+ messageDesc(file_cover_v1_cover, 86);
2938
3044
 
2939
3045
  /**
2940
3046
  * Response message for PublishView
@@ -2953,7 +3059,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
2953
3059
  * Use `create(PublishViewResponseSchema)` to create a new message.
2954
3060
  */
2955
3061
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
2956
- messageDesc(file_cover_v1_cover, 85);
3062
+ messageDesc(file_cover_v1_cover, 87);
2957
3063
 
2958
3064
  /**
2959
3065
  * Request message for AddFavorite
@@ -2974,7 +3080,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
2974
3080
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
2975
3081
  */
2976
3082
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
2977
- messageDesc(file_cover_v1_cover, 86);
3083
+ messageDesc(file_cover_v1_cover, 88);
2978
3084
 
2979
3085
  /**
2980
3086
  * Response message for AddFavorite
@@ -2993,7 +3099,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
2993
3099
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
2994
3100
  */
2995
3101
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
2996
- messageDesc(file_cover_v1_cover, 87);
3102
+ messageDesc(file_cover_v1_cover, 89);
2997
3103
 
2998
3104
  /**
2999
3105
  * Request message for RemoveFavorite
@@ -3014,7 +3120,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3014
3120
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3015
3121
  */
3016
3122
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3017
- messageDesc(file_cover_v1_cover, 88);
3123
+ messageDesc(file_cover_v1_cover, 90);
3018
3124
 
3019
3125
  /**
3020
3126
  * Response message for RemoveFavorite
@@ -3033,7 +3139,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3033
3139
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3034
3140
  */
3035
3141
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3036
- messageDesc(file_cover_v1_cover, 89);
3142
+ messageDesc(file_cover_v1_cover, 91);
3037
3143
 
3038
3144
  /**
3039
3145
  * Request message for UpdateView
@@ -3084,7 +3190,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3084
3190
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3085
3191
  */
3086
3192
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3087
- messageDesc(file_cover_v1_cover, 90);
3193
+ messageDesc(file_cover_v1_cover, 92);
3088
3194
 
3089
3195
  /**
3090
3196
  * Response message for UpdateView
@@ -3103,7 +3209,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3103
3209
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3104
3210
  */
3105
3211
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3106
- messageDesc(file_cover_v1_cover, 91);
3212
+ messageDesc(file_cover_v1_cover, 93);
3107
3213
 
3108
3214
  /**
3109
3215
  * Request message for UpdateViewLayout
@@ -3129,7 +3235,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3129
3235
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3130
3236
  */
3131
3237
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3132
- messageDesc(file_cover_v1_cover, 92);
3238
+ messageDesc(file_cover_v1_cover, 94);
3133
3239
 
3134
3240
  /**
3135
3241
  * Response message for UpdateViewLayout
@@ -3148,7 +3254,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3148
3254
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3149
3255
  */
3150
3256
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3151
- messageDesc(file_cover_v1_cover, 93);
3257
+ messageDesc(file_cover_v1_cover, 95);
3152
3258
 
3153
3259
  /**
3154
3260
  * Request message for UpdateViewWidget
@@ -3186,7 +3292,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3186
3292
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3187
3293
  */
3188
3294
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3189
- messageDesc(file_cover_v1_cover, 94);
3295
+ messageDesc(file_cover_v1_cover, 96);
3190
3296
 
3191
3297
  /**
3192
3298
  * Response message for UpdateViewWidget
@@ -3210,7 +3316,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3210
3316
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3211
3317
  */
3212
3318
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3213
- messageDesc(file_cover_v1_cover, 95);
3319
+ messageDesc(file_cover_v1_cover, 97);
3214
3320
 
3215
3321
  /**
3216
3322
  * Request message for UpdateViewColorTheme
@@ -3234,7 +3340,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3234
3340
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3235
3341
  */
3236
3342
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3237
- messageDesc(file_cover_v1_cover, 96);
3343
+ messageDesc(file_cover_v1_cover, 98);
3238
3344
 
3239
3345
  /**
3240
3346
  * Response message for UpdateViewColorTheme
@@ -3253,7 +3359,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3253
3359
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3254
3360
  */
3255
3361
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3256
- messageDesc(file_cover_v1_cover, 97);
3362
+ messageDesc(file_cover_v1_cover, 99);
3257
3363
 
3258
3364
  /**
3259
3365
  * Request message for UpdateViewCurrency
@@ -3277,7 +3383,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3277
3383
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3278
3384
  */
3279
3385
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3280
- messageDesc(file_cover_v1_cover, 98);
3386
+ messageDesc(file_cover_v1_cover, 100);
3281
3387
 
3282
3388
  /**
3283
3389
  * Response message for UpdateViewCurrency
@@ -3296,7 +3402,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3296
3402
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3297
3403
  */
3298
3404
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3299
- messageDesc(file_cover_v1_cover, 99);
3405
+ messageDesc(file_cover_v1_cover, 101);
3300
3406
 
3301
3407
  /**
3302
3408
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3315,7 +3421,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3315
3421
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3316
3422
  */
3317
3423
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3318
- messageDesc(file_cover_v1_cover, 100);
3424
+ messageDesc(file_cover_v1_cover, 102);
3319
3425
 
3320
3426
  /**
3321
3427
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3332,7 +3438,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3332
3438
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3333
3439
  */
3334
3440
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3335
- messageDesc(file_cover_v1_cover, 101);
3441
+ messageDesc(file_cover_v1_cover, 103);
3336
3442
 
3337
3443
  /**
3338
3444
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3345,7 +3451,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3345
3451
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3346
3452
  */
3347
3453
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3348
- messageDesc(file_cover_v1_cover, 102);
3454
+ messageDesc(file_cover_v1_cover, 104);
3349
3455
 
3350
3456
  /**
3351
3457
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3372,7 +3478,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3372
3478
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3373
3479
  */
3374
3480
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3375
- messageDesc(file_cover_v1_cover, 103);
3481
+ messageDesc(file_cover_v1_cover, 105);
3376
3482
 
3377
3483
  /**
3378
3484
  * Request message for ListExchangeRates
@@ -3400,7 +3506,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3400
3506
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3401
3507
  */
3402
3508
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3403
- messageDesc(file_cover_v1_cover, 104);
3509
+ messageDesc(file_cover_v1_cover, 106);
3404
3510
 
3405
3511
  /**
3406
3512
  * Response message for ListExchangeRates
@@ -3424,7 +3530,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3424
3530
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3425
3531
  */
3426
3532
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3427
- messageDesc(file_cover_v1_cover, 105);
3533
+ messageDesc(file_cover_v1_cover, 107);
3428
3534
 
3429
3535
  /**
3430
3536
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3451,7 +3557,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3451
3557
  * Use `create(ExchangeRatesSchema)` to create a new message.
3452
3558
  */
3453
3559
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3454
- messageDesc(file_cover_v1_cover, 106);
3560
+ messageDesc(file_cover_v1_cover, 108);
3455
3561
 
3456
3562
  /**
3457
3563
  * Request message for DeleteView
@@ -3472,7 +3578,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3472
3578
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3473
3579
  */
3474
3580
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3475
- messageDesc(file_cover_v1_cover, 107);
3581
+ messageDesc(file_cover_v1_cover, 109);
3476
3582
 
3477
3583
  /**
3478
3584
  * Response message for DeleteView
@@ -3491,7 +3597,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3491
3597
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3492
3598
  */
3493
3599
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3494
- messageDesc(file_cover_v1_cover, 108);
3600
+ messageDesc(file_cover_v1_cover, 110);
3495
3601
 
3496
3602
  /**
3497
3603
  * Request message for UpdateSideMenuState
@@ -3517,7 +3623,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3517
3623
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3518
3624
  */
3519
3625
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3520
- messageDesc(file_cover_v1_cover, 109);
3626
+ messageDesc(file_cover_v1_cover, 111);
3521
3627
 
3522
3628
  /**
3523
3629
  * Response message for UpdateSideMenuState
@@ -3536,7 +3642,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3536
3642
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3537
3643
  */
3538
3644
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3539
- messageDesc(file_cover_v1_cover, 110);
3645
+ messageDesc(file_cover_v1_cover, 112);
3540
3646
 
3541
3647
  /**
3542
3648
  * Request message for AddSideMenuFavorite
@@ -3562,7 +3668,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3562
3668
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3563
3669
  */
3564
3670
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3565
- messageDesc(file_cover_v1_cover, 111);
3671
+ messageDesc(file_cover_v1_cover, 113);
3566
3672
 
3567
3673
  /**
3568
3674
  * Response message for AddSideMenuFavorite
@@ -3581,7 +3687,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3581
3687
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3582
3688
  */
3583
3689
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3584
- messageDesc(file_cover_v1_cover, 112);
3690
+ messageDesc(file_cover_v1_cover, 114);
3585
3691
 
3586
3692
  /**
3587
3693
  * Request message for RemoveSideMenuFavorite
@@ -3607,7 +3713,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
3607
3713
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
3608
3714
  */
3609
3715
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
3610
- messageDesc(file_cover_v1_cover, 113);
3716
+ messageDesc(file_cover_v1_cover, 115);
3611
3717
 
3612
3718
  /**
3613
3719
  * Response message for RemoveSideMenuFavorite
@@ -3626,7 +3732,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
3626
3732
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
3627
3733
  */
3628
3734
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
3629
- messageDesc(file_cover_v1_cover, 114);
3735
+ messageDesc(file_cover_v1_cover, 116);
3630
3736
 
3631
3737
  /**
3632
3738
  * Request message for CreateCostGroup
@@ -3675,7 +3781,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
3675
3781
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
3676
3782
  */
3677
3783
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
3678
- messageDesc(file_cover_v1_cover, 115);
3784
+ messageDesc(file_cover_v1_cover, 117);
3679
3785
 
3680
3786
  /**
3681
3787
  * Response message for CreateCostGroup
@@ -3694,7 +3800,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
3694
3800
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
3695
3801
  */
3696
3802
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
3697
- messageDesc(file_cover_v1_cover, 116);
3803
+ messageDesc(file_cover_v1_cover, 118);
3698
3804
 
3699
3805
  /**
3700
3806
  * Request message for GetCostGroups
@@ -3709,7 +3815,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
3709
3815
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
3710
3816
  */
3711
3817
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
3712
- messageDesc(file_cover_v1_cover, 117);
3818
+ messageDesc(file_cover_v1_cover, 119);
3713
3819
 
3714
3820
  /**
3715
3821
  * Response message for GetCostGroups
@@ -3728,7 +3834,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
3728
3834
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
3729
3835
  */
3730
3836
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
3731
- messageDesc(file_cover_v1_cover, 118);
3837
+ messageDesc(file_cover_v1_cover, 120);
3732
3838
 
3733
3839
  /**
3734
3840
  * Request message for GetCostGroupDetails
@@ -3749,7 +3855,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
3749
3855
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
3750
3856
  */
3751
3857
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
3752
- messageDesc(file_cover_v1_cover, 119);
3858
+ messageDesc(file_cover_v1_cover, 121);
3753
3859
 
3754
3860
  /**
3755
3861
  * Response message for GetCostGroupDetails
@@ -3768,7 +3874,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
3768
3874
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
3769
3875
  */
3770
3876
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
3771
- messageDesc(file_cover_v1_cover, 120);
3877
+ messageDesc(file_cover_v1_cover, 122);
3772
3878
 
3773
3879
  /**
3774
3880
  * Request message for UpdateCostGroupName
@@ -3796,7 +3902,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
3796
3902
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
3797
3903
  */
3798
3904
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
3799
- messageDesc(file_cover_v1_cover, 121);
3905
+ messageDesc(file_cover_v1_cover, 123);
3800
3906
 
3801
3907
  /**
3802
3908
  * Response message for UpdateCostGroupName
@@ -3815,7 +3921,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
3815
3921
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
3816
3922
  */
3817
3923
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
3818
- messageDesc(file_cover_v1_cover, 122);
3924
+ messageDesc(file_cover_v1_cover, 124);
3819
3925
 
3820
3926
  /**
3821
3927
  * Request message for UpdateCostGroupDescription
@@ -3843,7 +3949,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
3843
3949
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
3844
3950
  */
3845
3951
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
3846
- messageDesc(file_cover_v1_cover, 123);
3952
+ messageDesc(file_cover_v1_cover, 125);
3847
3953
 
3848
3954
  /**
3849
3955
  * Response message for UpdateCostGroupDescription
@@ -3862,7 +3968,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
3862
3968
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
3863
3969
  */
3864
3970
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
3865
- messageDesc(file_cover_v1_cover, 124);
3971
+ messageDesc(file_cover_v1_cover, 126);
3866
3972
 
3867
3973
  /**
3868
3974
  * Request message for UpdateCostGroupImage
@@ -3890,7 +3996,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
3890
3996
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
3891
3997
  */
3892
3998
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
3893
- messageDesc(file_cover_v1_cover, 125);
3999
+ messageDesc(file_cover_v1_cover, 127);
3894
4000
 
3895
4001
  /**
3896
4002
  * Response message for UpdateCostGroupImage
@@ -3909,7 +4015,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
3909
4015
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
3910
4016
  */
3911
4017
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
3912
- messageDesc(file_cover_v1_cover, 126);
4018
+ messageDesc(file_cover_v1_cover, 128);
3913
4019
 
3914
4020
  /**
3915
4021
  * Request message for UpdateCostGroupIcon
@@ -3937,7 +4043,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
3937
4043
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
3938
4044
  */
3939
4045
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
3940
- messageDesc(file_cover_v1_cover, 127);
4046
+ messageDesc(file_cover_v1_cover, 129);
3941
4047
 
3942
4048
  /**
3943
4049
  * Response message for UpdateCostGroupIcon
@@ -3956,7 +4062,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
3956
4062
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
3957
4063
  */
3958
4064
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
3959
- messageDesc(file_cover_v1_cover, 128);
4065
+ messageDesc(file_cover_v1_cover, 130);
3960
4066
 
3961
4067
  /**
3962
4068
  * Request message for UpdateCostGroupColorTheme
@@ -3984,7 +4090,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
3984
4090
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
3985
4091
  */
3986
4092
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
3987
- messageDesc(file_cover_v1_cover, 129);
4093
+ messageDesc(file_cover_v1_cover, 131);
3988
4094
 
3989
4095
  /**
3990
4096
  * Response message for UpdateCostGroupColorTheme
@@ -4003,7 +4109,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4003
4109
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4004
4110
  */
4005
4111
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4006
- messageDesc(file_cover_v1_cover, 130);
4112
+ messageDesc(file_cover_v1_cover, 132);
4007
4113
 
4008
4114
  /**
4009
4115
  * Request message for UpdateCostGroupCombinations
@@ -4029,7 +4135,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4029
4135
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4030
4136
  */
4031
4137
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4032
- messageDesc(file_cover_v1_cover, 131);
4138
+ messageDesc(file_cover_v1_cover, 133);
4033
4139
 
4034
4140
  /**
4035
4141
  * Response message for UpdateCostGroupCombinations
@@ -4048,7 +4154,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4048
4154
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4049
4155
  */
4050
4156
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4051
- messageDesc(file_cover_v1_cover, 132);
4157
+ messageDesc(file_cover_v1_cover, 134);
4052
4158
 
4053
4159
  /**
4054
4160
  * Request message for AssignCostGroupMember
@@ -4076,7 +4182,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4076
4182
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4077
4183
  */
4078
4184
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4079
- messageDesc(file_cover_v1_cover, 133);
4185
+ messageDesc(file_cover_v1_cover, 135);
4080
4186
 
4081
4187
  /**
4082
4188
  * Response message for AssignCostGroupMember
@@ -4100,7 +4206,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4100
4206
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4101
4207
  */
4102
4208
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4103
- messageDesc(file_cover_v1_cover, 134);
4209
+ messageDesc(file_cover_v1_cover, 136);
4104
4210
 
4105
4211
  /**
4106
4212
  * Request message for RemoveCostGroupMember
@@ -4128,7 +4234,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4128
4234
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4129
4235
  */
4130
4236
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4131
- messageDesc(file_cover_v1_cover, 135);
4237
+ messageDesc(file_cover_v1_cover, 137);
4132
4238
 
4133
4239
  /**
4134
4240
  * Response message for RemoveCostGroupMember
@@ -4152,7 +4258,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4152
4258
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4153
4259
  */
4154
4260
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4155
- messageDesc(file_cover_v1_cover, 136);
4261
+ messageDesc(file_cover_v1_cover, 138);
4156
4262
 
4157
4263
  /**
4158
4264
  * Request message for DeleteCostGroup
@@ -4173,7 +4279,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4173
4279
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4174
4280
  */
4175
4281
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4176
- messageDesc(file_cover_v1_cover, 137);
4282
+ messageDesc(file_cover_v1_cover, 139);
4177
4283
 
4178
4284
  /**
4179
4285
  * Response message for DeleteCostGroup
@@ -4192,7 +4298,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4192
4298
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4193
4299
  */
4194
4300
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4195
- messageDesc(file_cover_v1_cover, 138);
4301
+ messageDesc(file_cover_v1_cover, 140);
4196
4302
 
4197
4303
  /**
4198
4304
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4213,7 +4319,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4213
4319
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4214
4320
  */
4215
4321
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4216
- messageDesc(file_cover_v1_cover, 139);
4322
+ messageDesc(file_cover_v1_cover, 141);
4217
4323
 
4218
4324
  /**
4219
4325
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4262,7 +4368,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4262
4368
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4263
4369
  */
4264
4370
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4265
- messageDesc(file_cover_v1_cover, 140);
4371
+ messageDesc(file_cover_v1_cover, 142);
4266
4372
 
4267
4373
  /**
4268
4374
  * Request message for the ListAccountAccess rpc.
@@ -4277,7 +4383,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4277
4383
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4278
4384
  */
4279
4385
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4280
- messageDesc(file_cover_v1_cover, 141);
4386
+ messageDesc(file_cover_v1_cover, 143);
4281
4387
 
4282
4388
  /**
4283
4389
  * Request message for the GetAccountAccess rpc.
@@ -4298,7 +4404,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4298
4404
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4299
4405
  */
4300
4406
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4301
- messageDesc(file_cover_v1_cover, 142);
4407
+ messageDesc(file_cover_v1_cover, 144);
4302
4408
 
4303
4409
  /**
4304
4410
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4417,7 +4523,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4417
4523
  * Use `create(AccountAccessSchema)` to create a new message.
4418
4524
  */
4419
4525
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4420
- messageDesc(file_cover_v1_cover, 143);
4526
+ messageDesc(file_cover_v1_cover, 145);
4421
4527
 
4422
4528
  /**
4423
4529
  * Request message for the CreateAccountAccess rpc.
@@ -4445,7 +4551,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4445
4551
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4446
4552
  */
4447
4553
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4448
- messageDesc(file_cover_v1_cover, 144);
4554
+ messageDesc(file_cover_v1_cover, 146);
4449
4555
 
4450
4556
  /**
4451
4557
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4473,7 +4579,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4473
4579
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4474
4580
  */
4475
4581
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4476
- messageDesc(file_cover_v1_cover, 145);
4582
+ messageDesc(file_cover_v1_cover, 147);
4477
4583
 
4478
4584
  /**
4479
4585
  * Request message for the UpdateAccountAccess rpc.
@@ -4494,7 +4600,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4494
4600
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4495
4601
  */
4496
4602
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4497
- messageDesc(file_cover_v1_cover, 146);
4603
+ messageDesc(file_cover_v1_cover, 148);
4498
4604
 
4499
4605
  /**
4500
4606
  * Request message for the DeleteAccountAccess rpc.
@@ -4520,7 +4626,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4520
4626
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4521
4627
  */
4522
4628
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4523
- messageDesc(file_cover_v1_cover, 147);
4629
+ messageDesc(file_cover_v1_cover, 149);
4524
4630
 
4525
4631
  /**
4526
4632
  * Response message for the DeleteAccountAccess rpc.
@@ -4539,7 +4645,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4539
4645
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4540
4646
  */
4541
4647
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4542
- messageDesc(file_cover_v1_cover, 148);
4648
+ messageDesc(file_cover_v1_cover, 150);
4543
4649
 
4544
4650
  /**
4545
4651
  * Request message for the RegisterAccount rpc.
@@ -4574,7 +4680,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4574
4680
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4575
4681
  */
4576
4682
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4577
- messageDesc(file_cover_v1_cover, 149);
4683
+ messageDesc(file_cover_v1_cover, 151);
4578
4684
 
4579
4685
  /**
4580
4686
  * Request message for the Asset.ListResources rpc.
@@ -4630,7 +4736,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
4630
4736
  * Use `create(ListAssetsRequestSchema)` to create a new message.
4631
4737
  */
4632
4738
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
4633
- messageDesc(file_cover_v1_cover, 150);
4739
+ messageDesc(file_cover_v1_cover, 152);
4634
4740
 
4635
4741
  /**
4636
4742
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -4647,7 +4753,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
4647
4753
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
4648
4754
  */
4649
4755
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
4650
- messageDesc(file_cover_v1_cover, 151);
4756
+ messageDesc(file_cover_v1_cover, 153);
4651
4757
 
4652
4758
  /**
4653
4759
  * @generated from message blueapi.cover.v1.Resource
@@ -4729,7 +4835,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
4729
4835
  * Use `create(ResourceSchema)` to create a new message.
4730
4836
  */
4731
4837
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
4732
- messageDesc(file_cover_v1_cover, 152);
4838
+ messageDesc(file_cover_v1_cover, 154);
4733
4839
 
4734
4840
  /**
4735
4841
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -4783,7 +4889,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
4783
4889
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
4784
4890
  */
4785
4891
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
4786
- messageDesc(file_cover_v1_cover, 153);
4892
+ messageDesc(file_cover_v1_cover, 155);
4787
4893
 
4788
4894
  /**
4789
4895
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -4807,7 +4913,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
4807
4913
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
4808
4914
  */
4809
4915
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
4810
- messageDesc(file_cover_v1_cover, 154);
4916
+ messageDesc(file_cover_v1_cover, 156);
4811
4917
 
4812
4918
  /**
4813
4919
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -4847,7 +4953,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
4847
4953
  * Use `create(AssetsSummarySchema)` to create a new message.
4848
4954
  */
4849
4955
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
4850
- messageDesc(file_cover_v1_cover, 155);
4956
+ messageDesc(file_cover_v1_cover, 157);
4851
4957
 
4852
4958
  /**
4853
4959
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -4866,7 +4972,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
4866
4972
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
4867
4973
  */
4868
4974
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
4869
- messageDesc(file_cover_v1_cover, 156);
4975
+ messageDesc(file_cover_v1_cover, 158);
4870
4976
 
4871
4977
  /**
4872
4978
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -4888,7 +4994,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
4888
4994
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
4889
4995
  */
4890
4996
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
4891
- messageDesc(file_cover_v1_cover, 157);
4997
+ messageDesc(file_cover_v1_cover, 159);
4892
4998
 
4893
4999
  /**
4894
5000
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5012,7 +5118,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5012
5118
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5013
5119
  */
5014
5120
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5015
- messageDesc(file_cover_v1_cover, 158);
5121
+ messageDesc(file_cover_v1_cover, 160);
5016
5122
 
5017
5123
  /**
5018
5124
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5066,7 +5172,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5066
5172
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5067
5173
  */
5068
5174
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5069
- messageDesc(file_cover_v1_cover, 159);
5175
+ messageDesc(file_cover_v1_cover, 161);
5070
5176
 
5071
5177
  /**
5072
5178
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5112,7 +5218,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5112
5218
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5113
5219
  */
5114
5220
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5115
- messageDesc(file_cover_v1_cover, 160);
5221
+ messageDesc(file_cover_v1_cover, 162);
5116
5222
 
5117
5223
  /**
5118
5224
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5174,7 +5280,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5174
5280
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5175
5281
  */
5176
5282
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5177
- messageDesc(file_cover_v1_cover, 161);
5283
+ messageDesc(file_cover_v1_cover, 163);
5178
5284
 
5179
5285
  /**
5180
5286
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5226,7 +5332,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5226
5332
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5227
5333
  */
5228
5334
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5229
- messageDesc(file_cover_v1_cover, 162);
5335
+ messageDesc(file_cover_v1_cover, 164);
5230
5336
 
5231
5337
  /**
5232
5338
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5288,7 +5394,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5288
5394
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5289
5395
  */
5290
5396
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5291
- messageDesc(file_cover_v1_cover, 163);
5397
+ messageDesc(file_cover_v1_cover, 165);
5292
5398
 
5293
5399
  /**
5294
5400
  * A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -5309,7 +5415,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5309
5415
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5310
5416
  */
5311
5417
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5312
- messageDesc(file_cover_v1_cover, 164);
5418
+ messageDesc(file_cover_v1_cover, 166);
5313
5419
 
5314
5420
  /**
5315
5421
  * Response message wrapper for cloud costs.
@@ -5447,7 +5553,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5447
5553
  * Use `create(CostItemSchema)` to create a new message.
5448
5554
  */
5449
5555
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5450
- messageDesc(file_cover_v1_cover, 165);
5556
+ messageDesc(file_cover_v1_cover, 167);
5451
5557
 
5452
5558
  /**
5453
5559
  * Request message for GetRightSizingRecommendation
@@ -5468,7 +5574,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5468
5574
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5469
5575
  */
5470
5576
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5471
- messageDesc(file_cover_v1_cover, 166);
5577
+ messageDesc(file_cover_v1_cover, 168);
5472
5578
 
5473
5579
  /**
5474
5580
  * Response message for GetRightSizingRecommendation
@@ -5487,7 +5593,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5487
5593
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5488
5594
  */
5489
5595
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5490
- messageDesc(file_cover_v1_cover, 167);
5596
+ messageDesc(file_cover_v1_cover, 169);
5491
5597
 
5492
5598
  /**
5493
5599
  * Request message for ModifyResourceType
@@ -5536,7 +5642,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5536
5642
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5537
5643
  */
5538
5644
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5539
- messageDesc(file_cover_v1_cover, 168);
5645
+ messageDesc(file_cover_v1_cover, 170);
5540
5646
 
5541
5647
  /**
5542
5648
  * Response message for ModifyResourceType
@@ -5570,7 +5676,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5570
5676
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5571
5677
  */
5572
5678
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5573
- messageDesc(file_cover_v1_cover, 169);
5679
+ messageDesc(file_cover_v1_cover, 171);
5574
5680
 
5575
5681
  /**
5576
5682
  * Request message for TerminateResource
@@ -5612,7 +5718,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
5612
5718
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
5613
5719
  */
5614
5720
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
5615
- messageDesc(file_cover_v1_cover, 170);
5721
+ messageDesc(file_cover_v1_cover, 172);
5616
5722
 
5617
5723
  /**
5618
5724
  * Response message for TerminateResource
@@ -5641,7 +5747,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
5641
5747
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
5642
5748
  */
5643
5749
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
5644
- messageDesc(file_cover_v1_cover, 171);
5750
+ messageDesc(file_cover_v1_cover, 173);
5645
5751
 
5646
5752
  /**
5647
5753
  * (WIP): Request message for Upload Charge Code
@@ -5682,7 +5788,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
5682
5788
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
5683
5789
  */
5684
5790
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
5685
- messageDesc(file_cover_v1_cover, 172);
5791
+ messageDesc(file_cover_v1_cover, 174);
5686
5792
 
5687
5793
  /**
5688
5794
  * (WIP): Response message for Upload Charge Code
@@ -5710,7 +5816,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
5710
5816
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
5711
5817
  */
5712
5818
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
5713
- messageDesc(file_cover_v1_cover, 173);
5819
+ messageDesc(file_cover_v1_cover, 175);
5714
5820
 
5715
5821
  /**
5716
5822
  * Request message for AssignPayer
@@ -5745,7 +5851,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
5745
5851
  * Use `create(AssignPayerRequestSchema)` to create a new message.
5746
5852
  */
5747
5853
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
5748
- messageDesc(file_cover_v1_cover, 174);
5854
+ messageDesc(file_cover_v1_cover, 176);
5749
5855
 
5750
5856
  /**
5751
5857
  * Response message for AssignPayer
@@ -5769,7 +5875,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
5769
5875
  * Use `create(AssignPayerResponseSchema)` to create a new message.
5770
5876
  */
5771
5877
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
5772
- messageDesc(file_cover_v1_cover, 175);
5878
+ messageDesc(file_cover_v1_cover, 177);
5773
5879
 
5774
5880
  /**
5775
5881
  * Request message for GetPayers
@@ -5790,7 +5896,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
5790
5896
  * Use `create(GetPayersRequestSchema)` to create a new message.
5791
5897
  */
5792
5898
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
5793
- messageDesc(file_cover_v1_cover, 176);
5899
+ messageDesc(file_cover_v1_cover, 178);
5794
5900
 
5795
5901
  /**
5796
5902
  * Response message for GetPayers
@@ -5809,7 +5915,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
5809
5915
  * Use `create(GetPayersResponseSchema)` to create a new message.
5810
5916
  */
5811
5917
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
5812
- messageDesc(file_cover_v1_cover, 177);
5918
+ messageDesc(file_cover_v1_cover, 179);
5813
5919
 
5814
5920
  /**
5815
5921
  * Request message for GetAccounts
@@ -5835,7 +5941,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
5835
5941
  * Use `create(GetAccountsRequestSchema)` to create a new message.
5836
5942
  */
5837
5943
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
5838
- messageDesc(file_cover_v1_cover, 178);
5944
+ messageDesc(file_cover_v1_cover, 180);
5839
5945
 
5840
5946
  /**
5841
5947
  * Response message for GetAccounts
@@ -5854,7 +5960,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
5854
5960
  * Use `create(GetAccountsResponseSchema)` to create a new message.
5855
5961
  */
5856
5962
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
5857
- messageDesc(file_cover_v1_cover, 179);
5963
+ messageDesc(file_cover_v1_cover, 181);
5858
5964
 
5859
5965
  /**
5860
5966
  * Request message for GetServices
@@ -5880,7 +5986,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
5880
5986
  * Use `create(GetServicesRequestSchema)` to create a new message.
5881
5987
  */
5882
5988
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
5883
- messageDesc(file_cover_v1_cover, 180);
5989
+ messageDesc(file_cover_v1_cover, 182);
5884
5990
 
5885
5991
  /**
5886
5992
  * Response message for GetServices
@@ -5899,7 +6005,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
5899
6005
  * Use `create(GetServicesResponseSchema)` to create a new message.
5900
6006
  */
5901
6007
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
5902
- messageDesc(file_cover_v1_cover, 181);
6008
+ messageDesc(file_cover_v1_cover, 183);
5903
6009
 
5904
6010
  /**
5905
6011
  * Request message for GetRegions
@@ -5925,7 +6031,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
5925
6031
  * Use `create(GetRegionsRequestSchema)` to create a new message.
5926
6032
  */
5927
6033
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
5928
- messageDesc(file_cover_v1_cover, 182);
6034
+ messageDesc(file_cover_v1_cover, 184);
5929
6035
 
5930
6036
  /**
5931
6037
  * Response message for GetRegions
@@ -5944,7 +6050,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
5944
6050
  * Use `create(GetRegionsResponseSchema)` to create a new message.
5945
6051
  */
5946
6052
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
5947
- messageDesc(file_cover_v1_cover, 183);
6053
+ messageDesc(file_cover_v1_cover, 185);
5948
6054
 
5949
6055
  /**
5950
6056
  * Request message for GetTags
@@ -5970,7 +6076,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
5970
6076
  * Use `create(GetTagsRequestSchema)` to create a new message.
5971
6077
  */
5972
6078
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
5973
- messageDesc(file_cover_v1_cover, 184);
6079
+ messageDesc(file_cover_v1_cover, 186);
5974
6080
 
5975
6081
  /**
5976
6082
  * Response message for GetTags
@@ -5989,7 +6095,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
5989
6095
  * Use `create(GetTagsResponseSchema)` to create a new message.
5990
6096
  */
5991
6097
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
5992
- messageDesc(file_cover_v1_cover, 185);
6098
+ messageDesc(file_cover_v1_cover, 187);
5993
6099
 
5994
6100
  /**
5995
6101
  * Request message for the ListFees rpc.
@@ -6008,7 +6114,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6008
6114
  * Use `create(ListFeesRequestSchema)` to create a new message.
6009
6115
  */
6010
6116
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6011
- messageDesc(file_cover_v1_cover, 186);
6117
+ messageDesc(file_cover_v1_cover, 188);
6012
6118
 
6013
6119
  /**
6014
6120
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6117,7 +6223,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6117
6223
  * Use `create(FeeDetailsSchema)` to create a new message.
6118
6224
  */
6119
6225
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6120
- messageDesc(file_cover_v1_cover, 187);
6226
+ messageDesc(file_cover_v1_cover, 189);
6121
6227
 
6122
6228
  /**
6123
6229
  * Request message for the RestoreFee rpc.
@@ -6138,7 +6244,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6138
6244
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6139
6245
  */
6140
6246
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6141
- messageDesc(file_cover_v1_cover, 188);
6247
+ messageDesc(file_cover_v1_cover, 190);
6142
6248
 
6143
6249
  /**
6144
6250
  * Request message for the GetCostGroupFee rpc.
@@ -6169,7 +6275,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6169
6275
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6170
6276
  */
6171
6277
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6172
- messageDesc(file_cover_v1_cover, 189);
6278
+ messageDesc(file_cover_v1_cover, 191);
6173
6279
 
6174
6280
  /**
6175
6281
  * Response message wrapper for cost group fees.
@@ -6213,7 +6319,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6213
6319
  * Use `create(FeeItemSchema)` to create a new message.
6214
6320
  */
6215
6321
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6216
- messageDesc(file_cover_v1_cover, 190);
6322
+ messageDesc(file_cover_v1_cover, 192);
6217
6323
 
6218
6324
  /**
6219
6325
  * @generated from message blueapi.cover.v1.Allocator
@@ -6253,7 +6359,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6253
6359
  * Use `create(AllocatorSchema)` to create a new message.
6254
6360
  */
6255
6361
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6256
- messageDesc(file_cover_v1_cover, 191);
6362
+ messageDesc(file_cover_v1_cover, 193);
6257
6363
 
6258
6364
  /**
6259
6365
  * A map of "key:value" attribute filters. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -6272,7 +6378,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6272
6378
  * Use `create(CriteriaSchema)` to create a new message.
6273
6379
  */
6274
6380
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6275
- messageDesc(file_cover_v1_cover, 192);
6381
+ messageDesc(file_cover_v1_cover, 194);
6276
6382
 
6277
6383
  /**
6278
6384
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6345,7 +6451,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6345
6451
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6346
6452
  */
6347
6453
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6348
- messageDesc(file_cover_v1_cover, 193);
6454
+ messageDesc(file_cover_v1_cover, 195);
6349
6455
 
6350
6456
  /**
6351
6457
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6408,7 +6514,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6408
6514
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6409
6515
  */
6410
6516
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6411
- messageDesc(file_cover_v1_cover, 194);
6517
+ messageDesc(file_cover_v1_cover, 196);
6412
6518
 
6413
6519
  /**
6414
6520
  * Request message for the ListAllocators rpc.
@@ -6423,7 +6529,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6423
6529
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6424
6530
  */
6425
6531
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6426
- messageDesc(file_cover_v1_cover, 195);
6532
+ messageDesc(file_cover_v1_cover, 197);
6427
6533
 
6428
6534
  /**
6429
6535
  * Request message for the CreateAllocator rpc.
@@ -6485,7 +6591,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6485
6591
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6486
6592
  */
6487
6593
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6488
- messageDesc(file_cover_v1_cover, 196);
6594
+ messageDesc(file_cover_v1_cover, 198);
6489
6595
 
6490
6596
  /**
6491
6597
  * Request message for the GetAllocationAttributes rpc.
@@ -6504,7 +6610,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6504
6610
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6505
6611
  */
6506
6612
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6507
- messageDesc(file_cover_v1_cover, 197);
6613
+ messageDesc(file_cover_v1_cover, 199);
6508
6614
 
6509
6615
  /**
6510
6616
  * Response message for the GetAllocationAttributes rpc.
@@ -6523,7 +6629,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6523
6629
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6524
6630
  */
6525
6631
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6526
- messageDesc(file_cover_v1_cover, 198);
6632
+ messageDesc(file_cover_v1_cover, 200);
6527
6633
 
6528
6634
  /**
6529
6635
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6545,7 +6651,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6545
6651
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6546
6652
  */
6547
6653
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6548
- messageDesc(file_cover_v1_cover, 198, 0);
6654
+ messageDesc(file_cover_v1_cover, 200, 0);
6549
6655
 
6550
6656
  /**
6551
6657
  * Request message for the GetAllocationSources rpc.
@@ -6569,7 +6675,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6569
6675
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6570
6676
  */
6571
6677
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6572
- messageDesc(file_cover_v1_cover, 199);
6678
+ messageDesc(file_cover_v1_cover, 201);
6573
6679
 
6574
6680
  /**
6575
6681
  * Response message for the GetAllocationSources rpc.
@@ -6593,7 +6699,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
6593
6699
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
6594
6700
  */
6595
6701
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
6596
- messageDesc(file_cover_v1_cover, 200);
6702
+ messageDesc(file_cover_v1_cover, 202);
6597
6703
 
6598
6704
  /**
6599
6705
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -6620,7 +6726,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
6620
6726
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
6621
6727
  */
6622
6728
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
6623
- messageDesc(file_cover_v1_cover, 200, 0);
6729
+ messageDesc(file_cover_v1_cover, 202, 0);
6624
6730
 
6625
6731
  /**
6626
6732
  * Request message for the DeleteAllocator rpc.
@@ -6641,7 +6747,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
6641
6747
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
6642
6748
  */
6643
6749
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
6644
- messageDesc(file_cover_v1_cover, 201);
6750
+ messageDesc(file_cover_v1_cover, 203);
6645
6751
 
6646
6752
  /**
6647
6753
  * Request message for the ProxyCreateCompletion rpc.
@@ -6660,7 +6766,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
6660
6766
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
6661
6767
  */
6662
6768
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
6663
- messageDesc(file_cover_v1_cover, 202);
6769
+ messageDesc(file_cover_v1_cover, 204);
6664
6770
 
6665
6771
  /**
6666
6772
  * Response message for the ProxyCreateCompletion rpc.
@@ -6679,7 +6785,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
6679
6785
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
6680
6786
  */
6681
6787
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
6682
- messageDesc(file_cover_v1_cover, 203);
6788
+ messageDesc(file_cover_v1_cover, 205);
6683
6789
 
6684
6790
  /**
6685
6791
  * Response message for SimulateAccountCostAllocator rpc.
@@ -6838,7 +6944,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
6838
6944
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
6839
6945
  */
6840
6946
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
6841
- messageDesc(file_cover_v1_cover, 204);
6947
+ messageDesc(file_cover_v1_cover, 206);
6842
6948
 
6843
6949
  /**
6844
6950
  * Request message for the RestoreAccountUsage rpc.
@@ -6862,7 +6968,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
6862
6968
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
6863
6969
  */
6864
6970
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
6865
- messageDesc(file_cover_v1_cover, 205);
6971
+ messageDesc(file_cover_v1_cover, 207);
6866
6972
 
6867
6973
  /**
6868
6974
  * Request message for the RestoreAccountUsage rpc.
@@ -6883,7 +6989,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
6883
6989
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
6884
6990
  */
6885
6991
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
6886
- messageDesc(file_cover_v1_cover, 206);
6992
+ messageDesc(file_cover_v1_cover, 208);
6887
6993
 
6888
6994
  /**
6889
6995
  * Request message for the RestoreSavings rpc.
@@ -6904,7 +7010,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
6904
7010
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
6905
7011
  */
6906
7012
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
6907
- messageDesc(file_cover_v1_cover, 207);
7013
+ messageDesc(file_cover_v1_cover, 209);
6908
7014
 
6909
7015
  /**
6910
7016
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7003,7 +7109,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7003
7109
  * Use `create(SavingsDetailsSchema)` to create a new message.
7004
7110
  */
7005
7111
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7006
- messageDesc(file_cover_v1_cover, 208);
7112
+ messageDesc(file_cover_v1_cover, 210);
7007
7113
 
7008
7114
  /**
7009
7115
  * Request message for the GetCostGroupAllocation rpc.
@@ -7041,7 +7147,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7041
7147
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7042
7148
  */
7043
7149
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7044
- messageDesc(file_cover_v1_cover, 209);
7150
+ messageDesc(file_cover_v1_cover, 211);
7045
7151
 
7046
7152
  /**
7047
7153
  * Response message wrapper for cost group allocations.
@@ -7090,7 +7196,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7090
7196
  * Use `create(AllocationItemSchema)` to create a new message.
7091
7197
  */
7092
7198
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7093
- messageDesc(file_cover_v1_cover, 210);
7199
+ messageDesc(file_cover_v1_cover, 212);
7094
7200
 
7095
7201
  /**
7096
7202
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7124,7 +7230,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7124
7230
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7125
7231
  */
7126
7232
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7127
- messageDesc(file_cover_v1_cover, 211);
7233
+ messageDesc(file_cover_v1_cover, 213);
7128
7234
 
7129
7235
  /**
7130
7236
  * Response message wrapper for adding user from Auth0 as root
@@ -7143,7 +7249,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7143
7249
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7144
7250
  */
7145
7251
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7146
- messageDesc(file_cover_v1_cover, 212);
7252
+ messageDesc(file_cover_v1_cover, 214);
7147
7253
 
7148
7254
  /**
7149
7255
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7216,7 +7322,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7216
7322
  * Use `create(DataAccessSchema)` to create a new message.
7217
7323
  */
7218
7324
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7219
- messageDesc(file_cover_v1_cover, 213);
7325
+ messageDesc(file_cover_v1_cover, 215);
7220
7326
 
7221
7327
  /**
7222
7328
  * Request message for Register Data Access. For azure and gcp.
@@ -7272,7 +7378,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7272
7378
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7273
7379
  */
7274
7380
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7275
- messageDesc(file_cover_v1_cover, 214);
7381
+ messageDesc(file_cover_v1_cover, 216);
7276
7382
 
7277
7383
  /**
7278
7384
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7328,7 +7434,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7328
7434
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7329
7435
  */
7330
7436
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7331
- messageDesc(file_cover_v1_cover, 215);
7437
+ messageDesc(file_cover_v1_cover, 217);
7332
7438
 
7333
7439
  /**
7334
7440
  * Request message for ListDataAccess
@@ -7343,7 +7449,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7343
7449
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7344
7450
  */
7345
7451
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7346
- messageDesc(file_cover_v1_cover, 216);
7452
+ messageDesc(file_cover_v1_cover, 218);
7347
7453
 
7348
7454
  /**
7349
7455
  * Request message for ListUnregisteredAccounts
@@ -7358,7 +7464,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7358
7464
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7359
7465
  */
7360
7466
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7361
- messageDesc(file_cover_v1_cover, 217);
7467
+ messageDesc(file_cover_v1_cover, 219);
7362
7468
 
7363
7469
  /**
7364
7470
  * Response message for ListUnregisteredAccounts
@@ -7382,7 +7488,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7382
7488
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7383
7489
  */
7384
7490
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7385
- messageDesc(file_cover_v1_cover, 218);
7491
+ messageDesc(file_cover_v1_cover, 220);
7386
7492
 
7387
7493
  /**
7388
7494
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7416,7 +7522,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7416
7522
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7417
7523
  */
7418
7524
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7419
- messageDesc(file_cover_v1_cover, 219);
7525
+ messageDesc(file_cover_v1_cover, 221);
7420
7526
 
7421
7527
  /**
7422
7528
  * Request message for AddBillingAccount
@@ -7465,7 +7571,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7465
7571
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7466
7572
  */
7467
7573
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7468
- messageDesc(file_cover_v1_cover, 220);
7574
+ messageDesc(file_cover_v1_cover, 222);
7469
7575
 
7470
7576
  /**
7471
7577
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7498,7 +7604,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7498
7604
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7499
7605
  */
7500
7606
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7501
- messageDesc(file_cover_v1_cover, 221);
7607
+ messageDesc(file_cover_v1_cover, 223);
7502
7608
 
7503
7609
  /**
7504
7610
  * Request message for AddPartnerCenterCredentials
@@ -7533,7 +7639,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7533
7639
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7534
7640
  */
7535
7641
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7536
- messageDesc(file_cover_v1_cover, 222);
7642
+ messageDesc(file_cover_v1_cover, 224);
7537
7643
 
7538
7644
  /**
7539
7645
  * Request message for AddMpnSetting
@@ -7554,7 +7660,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7554
7660
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7555
7661
  */
7556
7662
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7557
- messageDesc(file_cover_v1_cover, 223);
7663
+ messageDesc(file_cover_v1_cover, 225);
7558
7664
 
7559
7665
  /**
7560
7666
  * Request message for GetCostGroupAttribute
@@ -7600,7 +7706,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
7600
7706
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
7601
7707
  */
7602
7708
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
7603
- messageDesc(file_cover_v1_cover, 224);
7709
+ messageDesc(file_cover_v1_cover, 226);
7604
7710
 
7605
7711
  /**
7606
7712
  * Response message for GetCostGroupAttribute
@@ -7624,7 +7730,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
7624
7730
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
7625
7731
  */
7626
7732
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
7627
- messageDesc(file_cover_v1_cover, 225);
7733
+ messageDesc(file_cover_v1_cover, 227);
7628
7734
 
7629
7735
  /**
7630
7736
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -7641,7 +7747,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
7641
7747
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
7642
7748
  */
7643
7749
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
7644
- messageDesc(file_cover_v1_cover, 226);
7750
+ messageDesc(file_cover_v1_cover, 228);
7645
7751
 
7646
7752
  /**
7647
7753
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -7658,7 +7764,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
7658
7764
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
7659
7765
  */
7660
7766
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
7661
- messageDesc(file_cover_v1_cover, 227);
7767
+ messageDesc(file_cover_v1_cover, 229);
7662
7768
 
7663
7769
  /**
7664
7770
  * Request message for GetAlerts
@@ -7673,7 +7779,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
7673
7779
  * Use `create(GetAlertsRequestSchema)` to create a new message.
7674
7780
  */
7675
7781
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
7676
- messageDesc(file_cover_v1_cover, 228);
7782
+ messageDesc(file_cover_v1_cover, 230);
7677
7783
 
7678
7784
  /**
7679
7785
  * Response message for GetAlerts
@@ -7692,7 +7798,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
7692
7798
  * Use `create(GetAlertsResponseSchema)` to create a new message.
7693
7799
  */
7694
7800
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
7695
- messageDesc(file_cover_v1_cover, 229);
7801
+ messageDesc(file_cover_v1_cover, 231);
7696
7802
 
7697
7803
  /**
7698
7804
  * Request message for CreateAlert
@@ -7746,7 +7852,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
7746
7852
  * Use `create(CreateAlertRequestSchema)` to create a new message.
7747
7853
  */
7748
7854
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
7749
- messageDesc(file_cover_v1_cover, 230);
7855
+ messageDesc(file_cover_v1_cover, 232);
7750
7856
 
7751
7857
  /**
7752
7858
  * Response message for CreateAlert
@@ -7765,7 +7871,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
7765
7871
  * Use `create(CreateAlertResponseSchema)` to create a new message.
7766
7872
  */
7767
7873
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
7768
- messageDesc(file_cover_v1_cover, 231);
7874
+ messageDesc(file_cover_v1_cover, 233);
7769
7875
 
7770
7876
  /**
7771
7877
  * Request message for GetAlertDetails
@@ -7786,7 +7892,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
7786
7892
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
7787
7893
  */
7788
7894
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
7789
- messageDesc(file_cover_v1_cover, 232);
7895
+ messageDesc(file_cover_v1_cover, 234);
7790
7896
 
7791
7897
  /**
7792
7898
  * Response message for GetAlertDetails
@@ -7805,7 +7911,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
7805
7911
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
7806
7912
  */
7807
7913
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
7808
- messageDesc(file_cover_v1_cover, 233);
7914
+ messageDesc(file_cover_v1_cover, 235);
7809
7915
 
7810
7916
  /**
7811
7917
  * Request message for DeleteAlert
@@ -7826,7 +7932,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
7826
7932
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
7827
7933
  */
7828
7934
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
7829
- messageDesc(file_cover_v1_cover, 234);
7935
+ messageDesc(file_cover_v1_cover, 236);
7830
7936
 
7831
7937
  /**
7832
7938
  * Response message for DeleteAlert
@@ -7845,7 +7951,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
7845
7951
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
7846
7952
  */
7847
7953
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
7848
- messageDesc(file_cover_v1_cover, 235);
7954
+ messageDesc(file_cover_v1_cover, 237);
7849
7955
 
7850
7956
  /**
7851
7957
  * Request message for UpdateAlertDetails
@@ -7907,7 +8013,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
7907
8013
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
7908
8014
  */
7909
8015
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
7910
- messageDesc(file_cover_v1_cover, 236);
8016
+ messageDesc(file_cover_v1_cover, 238);
7911
8017
 
7912
8018
  /**
7913
8019
  * Response message for UpdateAlertDetails
@@ -7926,7 +8032,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
7926
8032
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
7927
8033
  */
7928
8034
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
7929
- messageDesc(file_cover_v1_cover, 237);
8035
+ messageDesc(file_cover_v1_cover, 239);
7930
8036
 
7931
8037
  /**
7932
8038
  * Request message for GetChannels
@@ -7948,7 +8054,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
7948
8054
  * Use `create(GetChannelsRequestSchema)` to create a new message.
7949
8055
  */
7950
8056
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
7951
- messageDesc(file_cover_v1_cover, 238);
8057
+ messageDesc(file_cover_v1_cover, 240);
7952
8058
 
7953
8059
  /**
7954
8060
  * Response message for GetChannels
@@ -7967,7 +8073,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
7967
8073
  * Use `create(GetChannelsResponseSchema)` to create a new message.
7968
8074
  */
7969
8075
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
7970
- messageDesc(file_cover_v1_cover, 239);
8076
+ messageDesc(file_cover_v1_cover, 241);
7971
8077
 
7972
8078
  /**
7973
8079
  * Request message for CreateChannel
@@ -8002,7 +8108,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8002
8108
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8003
8109
  */
8004
8110
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8005
- messageDesc(file_cover_v1_cover, 240);
8111
+ messageDesc(file_cover_v1_cover, 242);
8006
8112
 
8007
8113
  /**
8008
8114
  * Response message for CreateChannel
@@ -8021,7 +8127,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8021
8127
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8022
8128
  */
8023
8129
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8024
- messageDesc(file_cover_v1_cover, 241);
8130
+ messageDesc(file_cover_v1_cover, 243);
8025
8131
 
8026
8132
  /**
8027
8133
  * Request message for GetChannelDetails
@@ -8042,7 +8148,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8042
8148
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8043
8149
  */
8044
8150
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8045
- messageDesc(file_cover_v1_cover, 242);
8151
+ messageDesc(file_cover_v1_cover, 244);
8046
8152
 
8047
8153
  /**
8048
8154
  * Response message for GetChannelDetails
@@ -8061,7 +8167,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8061
8167
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8062
8168
  */
8063
8169
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8064
- messageDesc(file_cover_v1_cover, 243);
8170
+ messageDesc(file_cover_v1_cover, 245);
8065
8171
 
8066
8172
  /**
8067
8173
  * Request message for DeleteChannel
@@ -8082,7 +8188,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8082
8188
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8083
8189
  */
8084
8190
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8085
- messageDesc(file_cover_v1_cover, 244);
8191
+ messageDesc(file_cover_v1_cover, 246);
8086
8192
 
8087
8193
  /**
8088
8194
  * Response message for DeleteChannel
@@ -8101,7 +8207,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8101
8207
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8102
8208
  */
8103
8209
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8104
- messageDesc(file_cover_v1_cover, 245);
8210
+ messageDesc(file_cover_v1_cover, 247);
8105
8211
 
8106
8212
  /**
8107
8213
  * Request message for UpdateChannelDetails
@@ -8144,7 +8250,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8144
8250
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8145
8251
  */
8146
8252
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8147
- messageDesc(file_cover_v1_cover, 246);
8253
+ messageDesc(file_cover_v1_cover, 248);
8148
8254
 
8149
8255
  /**
8150
8256
  * Response message for UpdateChannelDetails
@@ -8163,7 +8269,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8163
8269
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8164
8270
  */
8165
8271
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8166
- messageDesc(file_cover_v1_cover, 247);
8272
+ messageDesc(file_cover_v1_cover, 249);
8167
8273
 
8168
8274
  /**
8169
8275
  * Request message for GetDiscountRecomemendations
@@ -8205,7 +8311,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8205
8311
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8206
8312
  */
8207
8313
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8208
- messageDesc(file_cover_v1_cover, 248);
8314
+ messageDesc(file_cover_v1_cover, 250);
8209
8315
 
8210
8316
  /**
8211
8317
  * Response message for GetDiscountRecommendations
@@ -8234,7 +8340,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8234
8340
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8235
8341
  */
8236
8342
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8237
- messageDesc(file_cover_v1_cover, 249);
8343
+ messageDesc(file_cover_v1_cover, 251);
8238
8344
 
8239
8345
  /**
8240
8346
  * Request message for getting anomaly
@@ -8267,7 +8373,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8267
8373
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8268
8374
  */
8269
8375
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8270
- messageDesc(file_cover_v1_cover, 250);
8376
+ messageDesc(file_cover_v1_cover, 252);
8271
8377
 
8272
8378
  /**
8273
8379
  * Message response for anomaly detection
@@ -8346,7 +8452,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8346
8452
  * Use `create(AnomalyDataSchema)` to create a new message.
8347
8453
  */
8348
8454
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8349
- messageDesc(file_cover_v1_cover, 251);
8455
+ messageDesc(file_cover_v1_cover, 253);
8350
8456
 
8351
8457
  /**
8352
8458
  * Request message for CreateDiscountExpirationAlert
@@ -8397,7 +8503,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8397
8503
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8398
8504
  */
8399
8505
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8400
- messageDesc(file_cover_v1_cover, 252);
8506
+ messageDesc(file_cover_v1_cover, 254);
8401
8507
 
8402
8508
  /**
8403
8509
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8416,7 +8522,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8416
8522
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8417
8523
  */
8418
8524
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8419
- messageDesc(file_cover_v1_cover, 253);
8525
+ messageDesc(file_cover_v1_cover, 255);
8420
8526
 
8421
8527
  /**
8422
8528
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8470,7 +8576,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8470
8576
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8471
8577
  */
8472
8578
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8473
- messageDesc(file_cover_v1_cover, 254);
8579
+ messageDesc(file_cover_v1_cover, 256);
8474
8580
 
8475
8581
  /**
8476
8582
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8522,7 +8628,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8522
8628
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8523
8629
  */
8524
8630
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8525
- messageDesc(file_cover_v1_cover, 255);
8631
+ messageDesc(file_cover_v1_cover, 257);
8526
8632
 
8527
8633
  /**
8528
8634
  * Request message for ListDiscountExpirationAlert
@@ -8537,7 +8643,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8537
8643
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8538
8644
  */
8539
8645
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8540
- messageDesc(file_cover_v1_cover, 256);
8646
+ messageDesc(file_cover_v1_cover, 258);
8541
8647
 
8542
8648
  /**
8543
8649
  * Rquest message for CreateAnomalyAlert
@@ -8586,7 +8692,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
8586
8692
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
8587
8693
  */
8588
8694
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
8589
- messageDesc(file_cover_v1_cover, 257);
8695
+ messageDesc(file_cover_v1_cover, 259);
8590
8696
 
8591
8697
  /**
8592
8698
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -8605,7 +8711,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
8605
8711
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
8606
8712
  */
8607
8713
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
8608
- messageDesc(file_cover_v1_cover, 258);
8714
+ messageDesc(file_cover_v1_cover, 260);
8609
8715
 
8610
8716
  /**
8611
8717
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -8652,7 +8758,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
8652
8758
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
8653
8759
  */
8654
8760
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
8655
- messageDesc(file_cover_v1_cover, 259);
8761
+ messageDesc(file_cover_v1_cover, 261);
8656
8762
 
8657
8763
  /**
8658
8764
  * Request message for ListAnomalyAlert
@@ -8667,7 +8773,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
8667
8773
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
8668
8774
  */
8669
8775
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
8670
- messageDesc(file_cover_v1_cover, 260);
8776
+ messageDesc(file_cover_v1_cover, 262);
8671
8777
 
8672
8778
  /**
8673
8779
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -8721,7 +8827,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
8721
8827
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
8722
8828
  */
8723
8829
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
8724
- messageDesc(file_cover_v1_cover, 261);
8830
+ messageDesc(file_cover_v1_cover, 263);
8725
8831
 
8726
8832
  /**
8727
8833
  * Request message for RegisterNewUser
@@ -8784,7 +8890,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
8784
8890
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
8785
8891
  */
8786
8892
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
8787
- messageDesc(file_cover_v1_cover, 262);
8893
+ messageDesc(file_cover_v1_cover, 264);
8788
8894
 
8789
8895
  /**
8790
8896
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -8801,7 +8907,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
8801
8907
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
8802
8908
  */
8803
8909
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
8804
- messageDesc(file_cover_v1_cover, 263);
8910
+ messageDesc(file_cover_v1_cover, 265);
8805
8911
 
8806
8912
  /**
8807
8913
  * Request message for GetUserProfile
@@ -8822,7 +8928,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
8822
8928
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
8823
8929
  */
8824
8930
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
8825
- messageDesc(file_cover_v1_cover, 264);
8931
+ messageDesc(file_cover_v1_cover, 266);
8826
8932
 
8827
8933
  /**
8828
8934
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -8879,7 +8985,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
8879
8985
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
8880
8986
  */
8881
8987
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
8882
- messageDesc(file_cover_v1_cover, 265);
8988
+ messageDesc(file_cover_v1_cover, 267);
8883
8989
 
8884
8990
  /**
8885
8991
  * Request message for UpdateUserProfile
@@ -8935,7 +9041,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
8935
9041
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
8936
9042
  */
8937
9043
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
8938
- messageDesc(file_cover_v1_cover, 266);
9044
+ messageDesc(file_cover_v1_cover, 268);
8939
9045
 
8940
9046
  /**
8941
9047
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -8987,7 +9093,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
8987
9093
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
8988
9094
  */
8989
9095
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
8990
- messageDesc(file_cover_v1_cover, 267);
9096
+ messageDesc(file_cover_v1_cover, 269);
8991
9097
 
8992
9098
  /**
8993
9099
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9013,7 +9119,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9013
9119
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9014
9120
  */
9015
9121
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9016
- messageDesc(file_cover_v1_cover, 268);
9122
+ messageDesc(file_cover_v1_cover, 270);
9017
9123
 
9018
9124
  /**
9019
9125
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9030,7 +9136,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9030
9136
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9031
9137
  */
9032
9138
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9033
- messageDesc(file_cover_v1_cover, 269);
9139
+ messageDesc(file_cover_v1_cover, 271);
9034
9140
 
9035
9141
  /**
9036
9142
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9049,7 +9155,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9049
9155
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9050
9156
  */
9051
9157
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9052
- messageDesc(file_cover_v1_cover, 270);
9158
+ messageDesc(file_cover_v1_cover, 272);
9053
9159
 
9054
9160
  /**
9055
9161
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9066,7 +9172,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9066
9172
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9067
9173
  */
9068
9174
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9069
- messageDesc(file_cover_v1_cover, 271);
9175
+ messageDesc(file_cover_v1_cover, 273);
9070
9176
 
9071
9177
  /**
9072
9178
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9083,7 +9189,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9083
9189
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9084
9190
  */
9085
9191
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9086
- messageDesc(file_cover_v1_cover, 272);
9192
+ messageDesc(file_cover_v1_cover, 274);
9087
9193
 
9088
9194
  /**
9089
9195
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9100,7 +9206,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9100
9206
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9101
9207
  */
9102
9208
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9103
- messageDesc(file_cover_v1_cover, 273);
9209
+ messageDesc(file_cover_v1_cover, 275);
9104
9210
 
9105
9211
  /**
9106
9212
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9119,7 +9225,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9119
9225
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9120
9226
  */
9121
9227
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9122
- messageDesc(file_cover_v1_cover, 274);
9228
+ messageDesc(file_cover_v1_cover, 276);
9123
9229
 
9124
9230
  /**
9125
9231
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9136,7 +9242,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9136
9242
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9137
9243
  */
9138
9244
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9139
- messageDesc(file_cover_v1_cover, 275);
9245
+ messageDesc(file_cover_v1_cover, 277);
9140
9246
 
9141
9247
  /**
9142
9248
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9160,7 +9266,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9160
9266
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9161
9267
  */
9162
9268
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9163
- messageDesc(file_cover_v1_cover, 276);
9269
+ messageDesc(file_cover_v1_cover, 278);
9164
9270
 
9165
9271
  /**
9166
9272
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9177,7 +9283,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9177
9283
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9178
9284
  */
9179
9285
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9180
- messageDesc(file_cover_v1_cover, 277);
9286
+ messageDesc(file_cover_v1_cover, 279);
9181
9287
 
9182
9288
  /**
9183
9289
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9194,7 +9300,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9194
9300
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9195
9301
  */
9196
9302
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9197
- messageDesc(file_cover_v1_cover, 278);
9303
+ messageDesc(file_cover_v1_cover, 280);
9198
9304
 
9199
9305
  /**
9200
9306
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9216,7 +9322,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9216
9322
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9217
9323
  */
9218
9324
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9219
- messageDesc(file_cover_v1_cover, 279);
9325
+ messageDesc(file_cover_v1_cover, 281);
9220
9326
 
9221
9327
  /**
9222
9328
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9229,7 +9335,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9229
9335
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9230
9336
  */
9231
9337
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9232
- messageDesc(file_cover_v1_cover, 280);
9338
+ messageDesc(file_cover_v1_cover, 282);
9233
9339
 
9234
9340
  /**
9235
9341
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9291,7 +9397,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9291
9397
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9292
9398
  */
9293
9399
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9294
- messageDesc(file_cover_v1_cover, 281);
9400
+ messageDesc(file_cover_v1_cover, 283);
9295
9401
 
9296
9402
  /**
9297
9403
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9343,7 +9449,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9343
9449
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9344
9450
  */
9345
9451
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9346
- messageDesc(file_cover_v1_cover, 282);
9452
+ messageDesc(file_cover_v1_cover, 284);
9347
9453
 
9348
9454
  /**
9349
9455
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9356,7 +9462,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9356
9462
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9357
9463
  */
9358
9464
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9359
- messageDesc(file_cover_v1_cover, 283);
9465
+ messageDesc(file_cover_v1_cover, 285);
9360
9466
 
9361
9467
  /**
9362
9468
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9373,7 +9479,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9373
9479
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9374
9480
  */
9375
9481
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9376
- messageDesc(file_cover_v1_cover, 284);
9482
+ messageDesc(file_cover_v1_cover, 286);
9377
9483
 
9378
9484
  /**
9379
9485
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9386,7 +9492,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9386
9492
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9387
9493
  */
9388
9494
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9389
- messageDesc(file_cover_v1_cover, 285);
9495
+ messageDesc(file_cover_v1_cover, 287);
9390
9496
 
9391
9497
  /**
9392
9498
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9433,7 +9539,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9433
9539
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9434
9540
  */
9435
9541
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9436
- messageDesc(file_cover_v1_cover, 286);
9542
+ messageDesc(file_cover_v1_cover, 288);
9437
9543
 
9438
9544
  /**
9439
9545
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9475,7 +9581,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9475
9581
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9476
9582
  */
9477
9583
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9478
- messageDesc(file_cover_v1_cover, 287);
9584
+ messageDesc(file_cover_v1_cover, 289);
9479
9585
 
9480
9586
  /**
9481
9587
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9573,7 +9679,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9573
9679
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9574
9680
  */
9575
9681
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9576
- messageDesc(file_cover_v1_cover, 288);
9682
+ messageDesc(file_cover_v1_cover, 290);
9577
9683
 
9578
9684
  /**
9579
9685
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -9612,7 +9718,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
9612
9718
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
9613
9719
  */
9614
9720
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
9615
- messageDesc(file_cover_v1_cover, 289);
9721
+ messageDesc(file_cover_v1_cover, 291);
9616
9722
 
9617
9723
  /**
9618
9724
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -9659,7 +9765,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
9659
9765
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
9660
9766
  */
9661
9767
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
9662
- messageDesc(file_cover_v1_cover, 289, 0);
9768
+ messageDesc(file_cover_v1_cover, 291, 0);
9663
9769
 
9664
9770
  /**
9665
9771
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -9801,7 +9907,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
9801
9907
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
9802
9908
  */
9803
9909
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
9804
- messageDesc(file_cover_v1_cover, 290);
9910
+ messageDesc(file_cover_v1_cover, 292);
9805
9911
 
9806
9912
  /**
9807
9913
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -9858,7 +9964,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
9858
9964
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
9859
9965
  */
9860
9966
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
9861
- messageDesc(file_cover_v1_cover, 290, 0);
9967
+ messageDesc(file_cover_v1_cover, 292, 0);
9862
9968
 
9863
9969
  /**
9864
9970
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -9887,7 +9993,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
9887
9993
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
9888
9994
  */
9889
9995
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
9890
- messageDesc(file_cover_v1_cover, 291);
9996
+ messageDesc(file_cover_v1_cover, 293);
9891
9997
 
9892
9998
  /**
9893
9999
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -9904,7 +10010,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
9904
10010
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
9905
10011
  */
9906
10012
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
9907
- messageDesc(file_cover_v1_cover, 292);
10013
+ messageDesc(file_cover_v1_cover, 294);
9908
10014
 
9909
10015
  /**
9910
10016
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -9926,7 +10032,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
9926
10032
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
9927
10033
  */
9928
10034
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
9929
- messageDesc(file_cover_v1_cover, 293);
10035
+ messageDesc(file_cover_v1_cover, 295);
9930
10036
 
9931
10037
  /**
9932
10038
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -9961,7 +10067,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
9961
10067
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
9962
10068
  */
9963
10069
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
9964
- messageDesc(file_cover_v1_cover, 294);
10070
+ messageDesc(file_cover_v1_cover, 296);
9965
10071
 
9966
10072
  /**
9967
10073
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -9988,7 +10094,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
9988
10094
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
9989
10095
  */
9990
10096
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
9991
- messageDesc(file_cover_v1_cover, 294, 0);
10097
+ messageDesc(file_cover_v1_cover, 296, 0);
9992
10098
 
9993
10099
  /**
9994
10100
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10001,7 +10107,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10001
10107
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10002
10108
  */
10003
10109
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10004
- messageDesc(file_cover_v1_cover, 294, 1);
10110
+ messageDesc(file_cover_v1_cover, 296, 1);
10005
10111
 
10006
10112
  /**
10007
10113
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10014,7 +10120,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10014
10120
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10015
10121
  */
10016
10122
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10017
- messageDesc(file_cover_v1_cover, 294, 2);
10123
+ messageDesc(file_cover_v1_cover, 296, 2);
10018
10124
 
10019
10125
  /**
10020
10126
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10031,7 +10137,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10031
10137
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10032
10138
  */
10033
10139
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10034
- messageDesc(file_cover_v1_cover, 295);
10140
+ messageDesc(file_cover_v1_cover, 297);
10035
10141
 
10036
10142
  /**
10037
10143
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10044,7 +10150,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10044
10150
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10045
10151
  */
10046
10152
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10047
- messageDesc(file_cover_v1_cover, 296);
10153
+ messageDesc(file_cover_v1_cover, 298);
10048
10154
 
10049
10155
  /**
10050
10156
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10061,7 +10167,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10061
10167
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10062
10168
  */
10063
10169
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10064
- messageDesc(file_cover_v1_cover, 297);
10170
+ messageDesc(file_cover_v1_cover, 299);
10065
10171
 
10066
10172
  /**
10067
10173
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10074,7 +10180,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10074
10180
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10075
10181
  */
10076
10182
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10077
- messageDesc(file_cover_v1_cover, 298);
10183
+ messageDesc(file_cover_v1_cover, 300);
10078
10184
 
10079
10185
  /**
10080
10186
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10135,7 +10241,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10135
10241
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10136
10242
  */
10137
10243
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10138
- messageDesc(file_cover_v1_cover, 299);
10244
+ messageDesc(file_cover_v1_cover, 301);
10139
10245
 
10140
10246
  /**
10141
10247
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10152,7 +10258,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10152
10258
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10153
10259
  */
10154
10260
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10155
- messageDesc(file_cover_v1_cover, 300);
10261
+ messageDesc(file_cover_v1_cover, 302);
10156
10262
 
10157
10263
  /**
10158
10264
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10185,7 +10291,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10185
10291
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10186
10292
  */
10187
10293
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10188
- messageDesc(file_cover_v1_cover, 301);
10294
+ messageDesc(file_cover_v1_cover, 303);
10189
10295
 
10190
10296
  /**
10191
10297
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10207,7 +10313,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10207
10313
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10208
10314
  */
10209
10315
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10210
- messageDesc(file_cover_v1_cover, 302);
10316
+ messageDesc(file_cover_v1_cover, 304);
10211
10317
 
10212
10318
  /**
10213
10319
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10247,7 +10353,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10247
10353
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10248
10354
  */
10249
10355
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10250
- messageDesc(file_cover_v1_cover, 303);
10356
+ messageDesc(file_cover_v1_cover, 305);
10251
10357
 
10252
10358
  /**
10253
10359
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10269,7 +10375,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10269
10375
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10270
10376
  */
10271
10377
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10272
- messageDesc(file_cover_v1_cover, 304);
10378
+ messageDesc(file_cover_v1_cover, 306);
10273
10379
 
10274
10380
  /**
10275
10381
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10288,7 +10394,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10288
10394
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10289
10395
  */
10290
10396
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10291
- messageDesc(file_cover_v1_cover, 305);
10397
+ messageDesc(file_cover_v1_cover, 307);
10292
10398
 
10293
10399
  /**
10294
10400
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10305,7 +10411,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10305
10411
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10306
10412
  */
10307
10413
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10308
- messageDesc(file_cover_v1_cover, 306);
10414
+ messageDesc(file_cover_v1_cover, 308);
10309
10415
 
10310
10416
  /**
10311
10417
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10318,7 +10424,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10318
10424
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10319
10425
  */
10320
10426
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10321
- messageDesc(file_cover_v1_cover, 307);
10427
+ messageDesc(file_cover_v1_cover, 309);
10322
10428
 
10323
10429
  /**
10324
10430
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10340,7 +10446,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10340
10446
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10341
10447
  */
10342
10448
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10343
- messageDesc(file_cover_v1_cover, 308);
10449
+ messageDesc(file_cover_v1_cover, 310);
10344
10450
 
10345
10451
  /**
10346
10452
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10380,7 +10486,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10380
10486
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10381
10487
  */
10382
10488
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10383
- messageDesc(file_cover_v1_cover, 309);
10489
+ messageDesc(file_cover_v1_cover, 311);
10384
10490
 
10385
10491
  /**
10386
10492
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10397,7 +10503,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10397
10503
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10398
10504
  */
10399
10505
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10400
- messageDesc(file_cover_v1_cover, 310);
10506
+ messageDesc(file_cover_v1_cover, 312);
10401
10507
 
10402
10508
  /**
10403
10509
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10414,7 +10520,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10414
10520
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10415
10521
  */
10416
10522
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10417
- messageDesc(file_cover_v1_cover, 311);
10523
+ messageDesc(file_cover_v1_cover, 313);
10418
10524
 
10419
10525
  /**
10420
10526
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10431,7 +10537,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10431
10537
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10432
10538
  */
10433
10539
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10434
- messageDesc(file_cover_v1_cover, 312);
10540
+ messageDesc(file_cover_v1_cover, 314);
10435
10541
 
10436
10542
  /**
10437
10543
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10444,7 +10550,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10444
10550
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10445
10551
  */
10446
10552
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10447
- messageDesc(file_cover_v1_cover, 313);
10553
+ messageDesc(file_cover_v1_cover, 315);
10448
10554
 
10449
10555
  /**
10450
10556
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10461,7 +10567,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10461
10567
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10462
10568
  */
10463
10569
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10464
- messageDesc(file_cover_v1_cover, 314);
10570
+ messageDesc(file_cover_v1_cover, 316);
10465
10571
 
10466
10572
  /**
10467
10573
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10493,7 +10599,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10493
10599
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10494
10600
  */
10495
10601
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10496
- messageDesc(file_cover_v1_cover, 315);
10602
+ messageDesc(file_cover_v1_cover, 317);
10497
10603
 
10498
10604
  /**
10499
10605
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10510,7 +10616,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10510
10616
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10511
10617
  */
10512
10618
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10513
- messageDesc(file_cover_v1_cover, 316);
10619
+ messageDesc(file_cover_v1_cover, 318);
10514
10620
 
10515
10621
  /**
10516
10622
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10529,7 +10635,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10529
10635
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10530
10636
  */
10531
10637
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10532
- messageDesc(file_cover_v1_cover, 317);
10638
+ messageDesc(file_cover_v1_cover, 319);
10533
10639
 
10534
10640
  /**
10535
10641
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10546,7 +10652,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10546
10652
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10547
10653
  */
10548
10654
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10549
- messageDesc(file_cover_v1_cover, 318);
10655
+ messageDesc(file_cover_v1_cover, 320);
10550
10656
 
10551
10657
  /**
10552
10658
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -10593,7 +10699,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
10593
10699
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
10594
10700
  */
10595
10701
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
10596
- messageDesc(file_cover_v1_cover, 319);
10702
+ messageDesc(file_cover_v1_cover, 321);
10597
10703
 
10598
10704
  /**
10599
10705
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -10610,7 +10716,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
10610
10716
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
10611
10717
  */
10612
10718
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
10613
- messageDesc(file_cover_v1_cover, 320);
10719
+ messageDesc(file_cover_v1_cover, 322);
10614
10720
 
10615
10721
  /**
10616
10722
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -10629,7 +10735,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
10629
10735
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
10630
10736
  */
10631
10737
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
10632
- messageDesc(file_cover_v1_cover, 321);
10738
+ messageDesc(file_cover_v1_cover, 323);
10633
10739
 
10634
10740
  /**
10635
10741
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -10646,7 +10752,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
10646
10752
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
10647
10753
  */
10648
10754
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
10649
- messageDesc(file_cover_v1_cover, 322);
10755
+ messageDesc(file_cover_v1_cover, 324);
10650
10756
 
10651
10757
  /**
10652
10758
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -10673,7 +10779,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
10673
10779
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
10674
10780
  */
10675
10781
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
10676
- messageDesc(file_cover_v1_cover, 323);
10782
+ messageDesc(file_cover_v1_cover, 325);
10677
10783
 
10678
10784
  /**
10679
10785
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -10690,7 +10796,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
10690
10796
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
10691
10797
  */
10692
10798
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
10693
- messageDesc(file_cover_v1_cover, 324);
10799
+ messageDesc(file_cover_v1_cover, 326);
10694
10800
 
10695
10801
  /**
10696
10802
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -10703,7 +10809,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
10703
10809
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
10704
10810
  */
10705
10811
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
10706
- messageDesc(file_cover_v1_cover, 325);
10812
+ messageDesc(file_cover_v1_cover, 327);
10707
10813
 
10708
10814
  /**
10709
10815
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -10720,7 +10826,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
10720
10826
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
10721
10827
  */
10722
10828
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
10723
- messageDesc(file_cover_v1_cover, 326);
10829
+ messageDesc(file_cover_v1_cover, 328);
10724
10830
 
10725
10831
  /**
10726
10832
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -10752,7 +10858,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
10752
10858
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
10753
10859
  */
10754
10860
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
10755
- messageDesc(file_cover_v1_cover, 327);
10861
+ messageDesc(file_cover_v1_cover, 329);
10756
10862
 
10757
10863
  /**
10758
10864
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -10769,7 +10875,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
10769
10875
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
10770
10876
  */
10771
10877
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
10772
- messageDesc(file_cover_v1_cover, 328);
10878
+ messageDesc(file_cover_v1_cover, 330);
10773
10879
 
10774
10880
  /**
10775
10881
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -10786,7 +10892,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
10786
10892
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
10787
10893
  */
10788
10894
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
10789
- messageDesc(file_cover_v1_cover, 329);
10895
+ messageDesc(file_cover_v1_cover, 331);
10790
10896
 
10791
10897
  /**
10792
10898
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -10803,7 +10909,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
10803
10909
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
10804
10910
  */
10805
10911
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
10806
- messageDesc(file_cover_v1_cover, 330);
10912
+ messageDesc(file_cover_v1_cover, 332);
10807
10913
 
10808
10914
  /**
10809
10915
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -10816,7 +10922,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
10816
10922
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
10817
10923
  */
10818
10924
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
10819
- messageDesc(file_cover_v1_cover, 331);
10925
+ messageDesc(file_cover_v1_cover, 333);
10820
10926
 
10821
10927
  /**
10822
10928
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -10833,7 +10939,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
10833
10939
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
10834
10940
  */
10835
10941
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
10836
- messageDesc(file_cover_v1_cover, 332);
10942
+ messageDesc(file_cover_v1_cover, 334);
10837
10943
 
10838
10944
  /**
10839
10945
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -10877,7 +10983,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
10877
10983
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
10878
10984
  */
10879
10985
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
10880
- messageDesc(file_cover_v1_cover, 333);
10986
+ messageDesc(file_cover_v1_cover, 335);
10881
10987
 
10882
10988
  /**
10883
10989
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -10894,7 +11000,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
10894
11000
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
10895
11001
  */
10896
11002
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
10897
- messageDesc(file_cover_v1_cover, 334);
11003
+ messageDesc(file_cover_v1_cover, 336);
10898
11004
 
10899
11005
  /**
10900
11006
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -10913,7 +11019,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
10913
11019
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
10914
11020
  */
10915
11021
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
10916
- messageDesc(file_cover_v1_cover, 335);
11022
+ messageDesc(file_cover_v1_cover, 337);
10917
11023
 
10918
11024
  /**
10919
11025
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -10930,7 +11036,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
10930
11036
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
10931
11037
  */
10932
11038
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
10933
- messageDesc(file_cover_v1_cover, 336);
11039
+ messageDesc(file_cover_v1_cover, 338);
10934
11040
 
10935
11041
  /**
10936
11042
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -10991,7 +11097,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
10991
11097
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
10992
11098
  */
10993
11099
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
10994
- messageDesc(file_cover_v1_cover, 337);
11100
+ messageDesc(file_cover_v1_cover, 339);
10995
11101
 
10996
11102
  /**
10997
11103
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11008,7 +11114,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11008
11114
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11009
11115
  */
11010
11116
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11011
- messageDesc(file_cover_v1_cover, 338);
11117
+ messageDesc(file_cover_v1_cover, 340);
11012
11118
 
11013
11119
  /**
11014
11120
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11027,7 +11133,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11027
11133
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11028
11134
  */
11029
11135
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11030
- messageDesc(file_cover_v1_cover, 339);
11136
+ messageDesc(file_cover_v1_cover, 341);
11031
11137
 
11032
11138
  /**
11033
11139
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11044,7 +11150,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11044
11150
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11045
11151
  */
11046
11152
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11047
- messageDesc(file_cover_v1_cover, 340);
11153
+ messageDesc(file_cover_v1_cover, 342);
11048
11154
 
11049
11155
  /**
11050
11156
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11077,7 +11183,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11077
11183
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11078
11184
  */
11079
11185
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11080
- messageDesc(file_cover_v1_cover, 341);
11186
+ messageDesc(file_cover_v1_cover, 343);
11081
11187
 
11082
11188
  /**
11083
11189
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11094,7 +11200,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11094
11200
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11095
11201
  */
11096
11202
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11097
- messageDesc(file_cover_v1_cover, 342);
11203
+ messageDesc(file_cover_v1_cover, 344);
11098
11204
 
11099
11205
  /**
11100
11206
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11138,7 +11244,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11138
11244
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11139
11245
  */
11140
11246
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11141
- messageDesc(file_cover_v1_cover, 343);
11247
+ messageDesc(file_cover_v1_cover, 345);
11142
11248
 
11143
11249
  /**
11144
11250
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11155,7 +11261,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11155
11261
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11156
11262
  */
11157
11263
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11158
- messageDesc(file_cover_v1_cover, 344);
11264
+ messageDesc(file_cover_v1_cover, 346);
11159
11265
 
11160
11266
  /**
11161
11267
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11174,7 +11280,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11174
11280
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11175
11281
  */
11176
11282
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11177
- messageDesc(file_cover_v1_cover, 345);
11283
+ messageDesc(file_cover_v1_cover, 347);
11178
11284
 
11179
11285
  /**
11180
11286
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11191,7 +11297,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11191
11297
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11192
11298
  */
11193
11299
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11194
- messageDesc(file_cover_v1_cover, 346);
11300
+ messageDesc(file_cover_v1_cover, 348);
11195
11301
 
11196
11302
  /**
11197
11303
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11252,7 +11358,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11252
11358
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11253
11359
  */
11254
11360
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11255
- messageDesc(file_cover_v1_cover, 347);
11361
+ messageDesc(file_cover_v1_cover, 349);
11256
11362
 
11257
11363
  /**
11258
11364
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11269,7 +11375,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11269
11375
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11270
11376
  */
11271
11377
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11272
- messageDesc(file_cover_v1_cover, 348);
11378
+ messageDesc(file_cover_v1_cover, 350);
11273
11379
 
11274
11380
  /**
11275
11381
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11288,7 +11394,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11288
11394
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11289
11395
  */
11290
11396
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11291
- messageDesc(file_cover_v1_cover, 349);
11397
+ messageDesc(file_cover_v1_cover, 351);
11292
11398
 
11293
11399
  /**
11294
11400
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11305,7 +11411,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11305
11411
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11306
11412
  */
11307
11413
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11308
- messageDesc(file_cover_v1_cover, 350);
11414
+ messageDesc(file_cover_v1_cover, 352);
11309
11415
 
11310
11416
  /**
11311
11417
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11349,7 +11455,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11349
11455
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11350
11456
  */
11351
11457
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11352
- messageDesc(file_cover_v1_cover, 351);
11458
+ messageDesc(file_cover_v1_cover, 353);
11353
11459
 
11354
11460
  /**
11355
11461
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11375,7 +11481,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11375
11481
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11376
11482
  */
11377
11483
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11378
- messageDesc(file_cover_v1_cover, 352);
11484
+ messageDesc(file_cover_v1_cover, 354);
11379
11485
 
11380
11486
  /**
11381
11487
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11395,7 +11501,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11395
11501
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11396
11502
  */
11397
11503
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11398
- messageDesc(file_cover_v1_cover, 353);
11504
+ messageDesc(file_cover_v1_cover, 355);
11399
11505
 
11400
11506
  /**
11401
11507
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11423,7 +11529,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11423
11529
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11424
11530
  */
11425
11531
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11426
- messageDesc(file_cover_v1_cover, 354);
11532
+ messageDesc(file_cover_v1_cover, 356);
11427
11533
 
11428
11534
  /**
11429
11535
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11475,7 +11581,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11475
11581
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11476
11582
  */
11477
11583
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11478
- messageDesc(file_cover_v1_cover, 355);
11584
+ messageDesc(file_cover_v1_cover, 357);
11479
11585
 
11480
11586
  /**
11481
11587
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11502,7 +11608,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11502
11608
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11503
11609
  */
11504
11610
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11505
- messageDesc(file_cover_v1_cover, 356);
11611
+ messageDesc(file_cover_v1_cover, 358);
11506
11612
 
11507
11613
  /**
11508
11614
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11524,7 +11630,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11524
11630
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11525
11631
  */
11526
11632
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11527
- messageDesc(file_cover_v1_cover, 356, 0);
11633
+ messageDesc(file_cover_v1_cover, 358, 0);
11528
11634
 
11529
11635
  /**
11530
11636
  * Request message for GetDiscountPlan
@@ -11622,7 +11728,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
11622
11728
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
11623
11729
  */
11624
11730
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
11625
- messageDesc(file_cover_v1_cover, 357);
11731
+ messageDesc(file_cover_v1_cover, 359);
11626
11732
 
11627
11733
  /**
11628
11734
  * Response message for GetDiscountPlan
@@ -11646,7 +11752,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
11646
11752
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
11647
11753
  */
11648
11754
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
11649
- messageDesc(file_cover_v1_cover, 358);
11755
+ messageDesc(file_cover_v1_cover, 360);
11650
11756
 
11651
11757
  /**
11652
11758
  * Request message for ListNonperformingRate
@@ -11695,7 +11801,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
11695
11801
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
11696
11802
  */
11697
11803
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
11698
- messageDesc(file_cover_v1_cover, 359);
11804
+ messageDesc(file_cover_v1_cover, 361);
11699
11805
 
11700
11806
  /**
11701
11807
  * Response message for ListNonperformingRate
@@ -11714,7 +11820,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
11714
11820
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
11715
11821
  */
11716
11822
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
11717
- messageDesc(file_cover_v1_cover, 360);
11823
+ messageDesc(file_cover_v1_cover, 362);
11718
11824
 
11719
11825
  /**
11720
11826
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -11746,7 +11852,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
11746
11852
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
11747
11853
  */
11748
11854
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
11749
- messageDesc(file_cover_v1_cover, 360, 0);
11855
+ messageDesc(file_cover_v1_cover, 362, 0);
11750
11856
 
11751
11857
  /**
11752
11858
  * Request message for ListUntaggedResources
@@ -11795,7 +11901,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
11795
11901
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
11796
11902
  */
11797
11903
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
11798
- messageDesc(file_cover_v1_cover, 361);
11904
+ messageDesc(file_cover_v1_cover, 363);
11799
11905
 
11800
11906
  /**
11801
11907
  * Response message for ListUntaggedResources
@@ -11814,7 +11920,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
11814
11920
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
11815
11921
  */
11816
11922
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
11817
- messageDesc(file_cover_v1_cover, 362);
11923
+ messageDesc(file_cover_v1_cover, 364);
11818
11924
 
11819
11925
  /**
11820
11926
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -11856,7 +11962,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
11856
11962
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
11857
11963
  */
11858
11964
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
11859
- messageDesc(file_cover_v1_cover, 362, 0);
11965
+ messageDesc(file_cover_v1_cover, 364, 0);
11860
11966
 
11861
11967
  /**
11862
11968
  * Status of upload file
@@ -13817,6 +13923,14 @@ export const Cover: GenService<{
13817
13923
  input: typeof ListRecommendationsV3RequestSchema;
13818
13924
  output: typeof RecommendationSummarySchema;
13819
13925
  },
13926
+ /**
13927
+ * @generated from rpc blueapi.cover.v1.Cover.ExecuteRecommendationV3
13928
+ */
13929
+ executeRecommendationV3: {
13930
+ methodKind: "unary";
13931
+ input: typeof ExecuteRecommendationV3RequestSchema;
13932
+ output: typeof ExecuteRecommendationV3ResponseSchema;
13933
+ },
13820
13934
  }> = /*@__PURE__*/
13821
13935
  serviceDesc(file_cover_v1_cover, 0);
13822
13936