@alphauspkgs/blue-sdk-ts 1.0.15 → 1.0.16

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,214 @@ 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("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSLtAQoeRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCRJRCgtleGVjdXRlVHlwZRgCIAEoDjI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0LkV4ZWN1dGVUeXBlImsKC0V4ZWN1dGVUeXBlEgsKB0RFRkFVTFQQABIUChBNQVJLX0FTX0VYRUNVVEVEEAESEQoNVU5ET19FWEVDVVRFRBACEhMKD1NVQk1JVF9URU1QTEFURRADEhEKDVJFVFJZX0VYRUNVVEUQBCJKCh9FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlEicKBnJlc3VsdBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiwwEKHExpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSEAoIc3RhdHVzZXMYAiADKAkSTAoHZmlsdGVycxgDIAMoCzI7LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdC5GaWx0ZXJzRW50cnkaLgoMRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9QMKFVJlY29tbWVuZGF0aW9uU3VtbWFyeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnRhcmdldBgDIAEoCRISCgp0YXJnZXROYW1lGBIgASgJEhAKCGNhdGVnb3J5GAQgASgJEgwKBHR5cGUYBSABKAkSDgoGdmVuZG9yGA0gASgJEg4KBnNvdXJjZRgTIAEoCRIMCgRjb2RlGA4gASgJEhQKB3NlcnZpY2UYDyABKAlIAIgBARITCgZyZWdpb24YECABKAlIAYgBARIXCgpyZXNvdXJjZUlkGBEgASgJSAKIAQESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYBiABKAESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYByABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgIIAEoARIRCgRyaXNrGAkgASgJSAOIAQESEwoGZWZmb3J0GAogASgJSASIAQESDgoGc3RhdHVzGAsgASgJEjIKEWFkZGl0aW9uYWxEZXRhaWxzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQiKQoaR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QSCwoDaWRzGAEgAygJIpIFChtHZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2USWwoPcmVjb21tZW5kYXRpb25zGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UuUmVjb21tZW5kYXRpb25EZXRhaWwalQQKFFJlY29tbWVuZGF0aW9uRGV0YWlsEgoKAmlkGAEgASgJEgwKBG5hbWUYCSABKAkSDgoGdmVuZG9yGAIgASgJEg4KBnNvdXJjZRgDIAEoCRIMCgRjb2RlGAQgASgJEhQKB3NlcnZpY2UYBSABKAlIAIgBARIOCgZ0YXJnZXQYByABKAkSEgoKdGFyZ2V0TmFtZRgIIAEoCRIUCgxkYXRlRGV0ZWN0ZWQYBiABKAkSEwoGcmVnaW9uGAogASgJSAGIAQESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYCyABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgMIAEoARIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgNIAEoARIXCgpyZXNvdXJjZUlkGA4gASgJSAKIAQESEAoIY2F0ZWdvcnkYDyABKAkSDAoEdHlwZRgQIAEoCRITCgtsYXN0VXBkYXRlZBgRIAEoCRIOCgZzdGF0dXMYEiABKAkSEQoEcmlzaxgTIAEoCUgDiAEBEhMKBmVmZm9ydBgUIAEoCUgEiAEBEigKB2RldGFpbHMYFSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QgoKCF9zZXJ2aWNlQgkKB19yZWdpb25CDQoLX3Jlc291cmNlSWRCBwoFX3Jpc2tCCQoHX2VmZm9ydCLqAQobR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEk4KC2dyYW51bGFyaXR5GAQgASgOMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QuR3JhbnVsYXJpdHkiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiJqChxHZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlEgwKBGRhdGUYASABKAkSFAoMZm9yZWNhc3RDb3N0GAIgASgBEhIKCnVwcGVyQm91bmQYAyABKAESEgoKbG93ZXJCb3VuZBgEIAEoASIWChRMaXN0Rm9yZWNhc3RzUmVxdWVzdCJcChVMaXN0Rm9yZWNhc3RzUmVzcG9uc2USQwoTY29zdEZvcmVjYXN0RGV0YWlscxgBIAMoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RGb3JlY2FzdERldGFpbHMi8wEKGUNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSFAoMZm9yZWNhc3ROYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEi8KCWNvc3RHcm91cBgDIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAQgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAUgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYBiADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQigAIKGkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IiQKFkdldENvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkivwIKF0dldENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50EhEKCWNyZWF0ZWRCeRgIIAEoCRIUCgxjcmVhdGlvbkRhdGUYCSABKAkSFwoPbGFzdFVwZGF0ZWREYXRlGAogASgJIv8BChlVcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IsICChpVcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSInChlEZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIigKGkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJIm8KFkdldENvc3RVc2FnZVYyUmVzcG9uc2USDQoFdmFsdWUYASABKAESDAoEZGF0ZRgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSKAoHZGV0YWlscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QivwQKFUdldENvc3RVc2FnZVYyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJICgtncmFudWxhcml0eRgEIAEoDjIzLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAUgAygJEkIKCGNhdGVnb3J5GAYgASgOMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QuQ2F0ZWdvcnkSEAoIY3VycmVuY3kYByABKAkSOgoKYXdzT3B0aW9ucxgIIAEoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF3c09wdGlvbnMSRAoPYXp1cmVjc3BPcHRpb25zGAkgASgLMisuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwQXp1cmVDc3BPcHRpb25zEjoKCmdjcE9wdGlvbnMYCiABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBHY3BPcHRpb25zIkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiOQoIQ2F0ZWdvcnkSGAoUQ2F0ZWdvcnlfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAiIZChdQb3B1bGF0ZURlbW9EYXRhUmVxdWVzdCIaChhQb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiFgoUUmVzZXREZW1vRGF0YVJlcXVlc3QiFwoVUmVzZXREZW1vRGF0YVJlc3BvbnNlIt8GChlDb250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRJKCgptZXRyaWNUeXBlGAMgASgOMjYuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0Lk1ldHJpY1R5cGUSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSUAoLZ3JhbnVsYXJpdHkYBiABKA4yOy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuVGltZUdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAcgAygJEksKB2ZpbHRlcnMYCCADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWESTAoLc2VydmljZVR5cGUYCSABKA4yNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuU2VydmljZVR5cGUazwEKDkZpbHRlckNyaXRlcmlhEgsKA2tleRgBIAEoCRJbCghvcGVyYXRvchgCIAEoDjJJLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5GaWx0ZXJDcml0ZXJpYS5GaWx0ZXJPcGVyYXRvchINCgV2YWx1ZRgDIAEoCSJECg5GaWx0ZXJPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiRgoPVGltZUdyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiWgoKTWV0cmljVHlwZRIWChJNRVRSSUNfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAhIOCgpFRkZJQ0lFTkNZEAMSDwoLVU5VU0VEX0NPU1QQBCI4CgtTZXJ2aWNlVHlwZRIXChNTRVJWSUNFX1VOU1BFQ0lGSUVEEAASBwoDRUNTEAESBwoDRUtTEAIi1woKGkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlEksKB3Jlc3VsdHMYASADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQSUwoKaGlnaGxpZ2h0cxgCIAEoCzI/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]);
49
+ fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3QirQEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRpYCgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCCJSChVVcGRhdGVVc2VyUm9sZVJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIQCghyb2xlX2lkcxgCIAMoCRIWCg5jb3N0X2dyb3VwX2lkcxgDIAMoCSIYChZVcGRhdGVVc2VyUm9sZVJlc3BvbnNlIh8KEURlbGV0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhQKEkRlbGV0ZVVzZXJSZXNwb25zZSJNChJJbnZpdGVVc2Vyc1JlcXVlc3QSDgoGZW1haWxzGAEgAygJEg8KB3JvbGVfaWQYAiABKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiFQoTSW52aXRlVXNlcnNSZXNwb25zZSLtAQoeRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCRJRCgtleGVjdXRlVHlwZRgCIAEoDjI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0LkV4ZWN1dGVUeXBlImsKC0V4ZWN1dGVUeXBlEgsKB0RFRkFVTFQQABIUChBNQVJLX0FTX0VYRUNVVEVEEAESEQoNVU5ET19FWEVDVVRFRBACEhMKD1NVQk1JVF9URU1QTEFURRADEhEKDVJFVFJZX0VYRUNVVEUQBCJKCh9FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlEicKBnJlc3VsdBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiwwEKHExpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSEAoIc3RhdHVzZXMYAiADKAkSTAoHZmlsdGVycxgDIAMoCzI7LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdC5GaWx0ZXJzRW50cnkaLgoMRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9QMKFVJlY29tbWVuZGF0aW9uU3VtbWFyeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnRhcmdldBgDIAEoCRISCgp0YXJnZXROYW1lGBIgASgJEhAKCGNhdGVnb3J5GAQgASgJEgwKBHR5cGUYBSABKAkSDgoGdmVuZG9yGA0gASgJEg4KBnNvdXJjZRgTIAEoCRIMCgRjb2RlGA4gASgJEhQKB3NlcnZpY2UYDyABKAlIAIgBARITCgZyZWdpb24YECABKAlIAYgBARIXCgpyZXNvdXJjZUlkGBEgASgJSAKIAQESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYBiABKAESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYByABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgIIAEoARIRCgRyaXNrGAkgASgJSAOIAQESEwoGZWZmb3J0GAogASgJSASIAQESDgoGc3RhdHVzGAsgASgJEjIKEWFkZGl0aW9uYWxEZXRhaWxzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQiKQoaR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QSCwoDaWRzGAEgAygJIpIFChtHZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2USWwoPcmVjb21tZW5kYXRpb25zGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UuUmVjb21tZW5kYXRpb25EZXRhaWwalQQKFFJlY29tbWVuZGF0aW9uRGV0YWlsEgoKAmlkGAEgASgJEgwKBG5hbWUYCSABKAkSDgoGdmVuZG9yGAIgASgJEg4KBnNvdXJjZRgDIAEoCRIMCgRjb2RlGAQgASgJEhQKB3NlcnZpY2UYBSABKAlIAIgBARIOCgZ0YXJnZXQYByABKAkSEgoKdGFyZ2V0TmFtZRgIIAEoCRIUCgxkYXRlRGV0ZWN0ZWQYBiABKAkSEwoGcmVnaW9uGAogASgJSAGIAQESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYCyABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgMIAEoARIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgNIAEoARIXCgpyZXNvdXJjZUlkGA4gASgJSAKIAQESEAoIY2F0ZWdvcnkYDyABKAkSDAoEdHlwZRgQIAEoCRITCgtsYXN0VXBkYXRlZBgRIAEoCRIOCgZzdGF0dXMYEiABKAkSEQoEcmlzaxgTIAEoCUgDiAEBEhMKBmVmZm9ydBgUIAEoCUgEiAEBEigKB2RldGFpbHMYFSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QgoKCF9zZXJ2aWNlQgkKB19yZWdpb25CDQoLX3Jlc291cmNlSWRCBwoFX3Jpc2tCCQoHX2VmZm9ydCLqAQobR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEk4KC2dyYW51bGFyaXR5GAQgASgOMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QuR3JhbnVsYXJpdHkiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiJqChxHZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlEgwKBGRhdGUYASABKAkSFAoMZm9yZWNhc3RDb3N0GAIgASgBEhIKCnVwcGVyQm91bmQYAyABKAESEgoKbG93ZXJCb3VuZBgEIAEoASIWChRMaXN0Rm9yZWNhc3RzUmVxdWVzdCJcChVMaXN0Rm9yZWNhc3RzUmVzcG9uc2USQwoTY29zdEZvcmVjYXN0RGV0YWlscxgBIAMoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RGb3JlY2FzdERldGFpbHMi8wEKGUNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSFAoMZm9yZWNhc3ROYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEi8KCWNvc3RHcm91cBgDIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAQgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAUgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYBiADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQigAIKGkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IiQKFkdldENvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkivwIKF0dldENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50EhEKCWNyZWF0ZWRCeRgIIAEoCRIUCgxjcmVhdGlvbkRhdGUYCSABKAkSFwoPbGFzdFVwZGF0ZWREYXRlGAogASgJIv8BChlVcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IsICChpVcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSInChlEZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIigKGkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJIm8KFkdldENvc3RVc2FnZVYyUmVzcG9uc2USDQoFdmFsdWUYASABKAESDAoEZGF0ZRgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSKAoHZGV0YWlscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QivwQKFUdldENvc3RVc2FnZVYyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJICgtncmFudWxhcml0eRgEIAEoDjIzLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAUgAygJEkIKCGNhdGVnb3J5GAYgASgOMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QuQ2F0ZWdvcnkSEAoIY3VycmVuY3kYByABKAkSOgoKYXdzT3B0aW9ucxgIIAEoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF3c09wdGlvbnMSRAoPYXp1cmVjc3BPcHRpb25zGAkgASgLMisuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwQXp1cmVDc3BPcHRpb25zEjoKCmdjcE9wdGlvbnMYCiABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBHY3BPcHRpb25zIkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiOQoIQ2F0ZWdvcnkSGAoUQ2F0ZWdvcnlfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAiIZChdQb3B1bGF0ZURlbW9EYXRhUmVxdWVzdCIaChhQb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiFgoUUmVzZXREZW1vRGF0YVJlcXVlc3QiFwoVUmVzZXREZW1vRGF0YVJlc3BvbnNlIt8GChlDb250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRJKCgptZXRyaWNUeXBlGAMgASgOMjYuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0Lk1ldHJpY1R5cGUSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSUAoLZ3JhbnVsYXJpdHkYBiABKA4yOy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuVGltZUdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAcgAygJEksKB2ZpbHRlcnMYCCADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWESTAoLc2VydmljZVR5cGUYCSABKA4yNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuU2VydmljZVR5cGUazwEKDkZpbHRlckNyaXRlcmlhEgsKA2tleRgBIAEoCRJbCghvcGVyYXRvchgCIAEoDjJJLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5GaWx0ZXJDcml0ZXJpYS5GaWx0ZXJPcGVyYXRvchINCgV2YWx1ZRgDIAEoCSJECg5GaWx0ZXJPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiRgoPVGltZUdyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiWgoKTWV0cmljVHlwZRIWChJNRVRSSUNfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAhIOCgpFRkZJQ0lFTkNZEAMSDwoLVU5VU0VEX0NPU1QQBCI4CgtTZXJ2aWNlVHlwZRIXChNTRVJWSUNFX1VOU1BFQ0lGSUVEEAASBwoDRUNTEAESBwoDRUtTEAIi1woKGkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlEksKB3Jlc3VsdHMYASADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQSUwoKaGlnaGxpZ2h0cxgCIAEoCzI/LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHRzEhEKCXRvdGFsQ29zdBgDIAEoARIVCg1hdmdFZmZpY2llbmN5GAQgASgBGkQKCkNvc3RNZXRyaWMSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJEhQKDHVudXNlZEFtb3VudBgDIAEoARqQAQoLVXNhZ2VNZXRyaWMSDAoEdW5pdBgBIAEoCRIWCg5yZXNlcnZlZEFtb3VudBgCIAEoARIUCgxhY3R1YWxBbW91bnQYAyABKAESEgoKZWZmaWNpZW5jeRgEIAEoARIWCg5jcHVVdGlsaXphdGlvbhgFIAEoARIZChFtZW1vcnlVdGlsaXphdGlvbhgGIAEoARrBAQoPTWV0cmljRGF0YVBvaW50EgwKBGRhdGUYASABKAkSRwoEY29zdBgCIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuQ29zdE1ldHJpY0gAEkkKBXVzYWdlGAMgASgLMjguYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Vc2FnZU1ldHJpY0gAQgwKCm1ldHJpY0RhdGEaTAoRUmVzb3VyY2VIaWdobGlnaHQSEgoKcmVzb3VyY2VJZBgBIAEoCRIUCgxyZXNvdXJjZU5hbWUYAiABKAkSDQoFdmFsdWUYAyABKAEahAMKElJlc291cmNlSGlnaGxpZ2h0cxJaChJoaWdoZXN0Q2x1c3RlckNvc3QYASABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0ElkKEWhpZ2hlc3RVbnVzZWRDb3N0GAIgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJbChNoaWdoZXN0V29ya2xvYWRDb3N0GAMgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJaChJoaWdoZXN0Q29tcHV0ZUNvc3QYBCABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0GvoBCg1Hcm91cGVkUmVzdWx0El4KCmF0dHJpYnV0ZXMYASADKAsySi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQuQXR0cmlidXRlc0VudHJ5ElYKEG1ldHJpY0RhdGFQb2ludHMYAiADKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLk1ldHJpY0RhdGFQb2ludBoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKPBAoYR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIRCglzdGFydFRpbWUYAyABKAkSDwoHZW5kVGltZRgEIAEoCRJLCgtncmFudWxhcml0eRgFIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAYgAygJEkIKB2ZpbHRlcnMYByADKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIawgEKBkZpbHRlchILCgNrZXkYASABKAkSTAoIb3BlcmF0b3IYAiABKA4yOi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIuT3BlcmF0b3ISDgoGdmFsdWVzGAMgAygJEg0KBXZhbHVlGAQgASgJIj4KCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASCQoFRVFVQUwQARINCglOT1RfRVFVQUwQAiJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIqcEChlHZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlEkMKB3Jlc3VsdHMYASADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuUmVzdWx0GigKBENvc3QSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJGiUKBVVzYWdlEgwKBHVuaXQYASABKAkSDgoGYW1vdW50GAIgASgBGpgBCgZNZXRyaWMSDAoEZGF0ZRgBIAEoCRI+CgRjb3N0GAIgASgLMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLkNvc3QSQAoFdXNhZ2UYAyABKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuVXNhZ2Ua2AEKBlJlc3VsdBJWCgphdHRyaWJ1dGVzGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdC5BdHRyaWJ1dGVzRW50cnkSQwoHbWV0cmljcxgCIAMoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5NZXRyaWMaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiGwoZR2V0RXhlY3V0aW9uU3RhdHVzUmVxdWVzdCJXChpHZXRFeGVjdXRpb25TdGF0dXNSZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIjgKFlZlcmlmeUFQSUFjY2Vzc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg4KBnRhcmdldBgCIAEoCSIpChdWZXJpZnlBUElBY2Nlc3NSZXNwb25zZRIOCgZyZXN1bHQYASABKAgiZQoaR2V0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QSCgoCaWQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSFAoMcGVyaW9kT3B0aW9uGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJImEKG0dldFJlY29tbWVuZGF0aW9uVjJSZXNwb25zZRJCCgRkYXRhGAEgASgLMjQuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uUmVjb21tZW5kYXRpb25EYXRhIlEKEU9uYm9hcmRPcmdSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSDQoFb3JnSWQYBCABKAkiQwoST25ib2FyZE9yZ1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiTQoTSW52aXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAMoCRIQCghpc1Jlc2VuZBgCIAEoCBIVCg1pbnZpdGVBc0FkbWluGAMgASgIIiUKFEludml0ZU1lbWJlclJlc3BvbnNlEg0KBWVtYWlsGAEgAygJIqQBChNBY3RpdmF0ZVVzZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIYChBwcmV2aW91c1Bhc3N3b3JkGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGbG9jYWxlGAUgASgJEg0KBWVtYWlsGAYgASgJEg8KB2lzQXV0aDAYByABKAgSEwoLYXV0aDBVc2VySWQYCCABKAkiRQoUQWN0aXZhdGVVc2VyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJYChNDcmVhdGVNZW1iZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSEgoKY29zdGdyb3VwcxgEIAMoCSJFChRDcmVhdGVNZW1iZXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhMKEUdldE1lbWJlcnNSZXF1ZXN0IkMKEkdldE1lbWJlcnNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF0dldE1lbWJlckRldGFpbHNSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJJChhHZXRNZW1iZXJEZXRhaWxzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlHZXRNZW1iZXJDb3N0R3JvdXBSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJUChpHZXRNZW1iZXJDb3N0R3JvdXBSZXNwb25zZRI2Cgpjb3N0R3JvdXBzGAEgAygLMiIuYmx1ZWFwaS5hcGkuY292ZXIuTWVtYmVyQ29zdEdyb3VwIkAKHVVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIPCgdpc0FkbWluGAIgASgIIk8KHlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhcKFUdldFVzZXJEZXRhaWxzUmVxdWVzdCJHChZHZXRVc2VyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckF2YXRhclJlcXVlc3QSDgoGYXZhdGFyGAEgASgJIkkKGFVwZGF0ZVVzZXJBdmF0YXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJJY29uUmVxdWVzdBIMCgRpY29uGAEgASgJIkcKFlVwZGF0ZVVzZXJJY29uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIxChtVcGRhdGVVc2VyQ29sb3JUaGVtZVJlcXVlc3QSEgoKY29sb3JUaGVtZRgBIAEoCSJNChxVcGRhdGVVc2VyQ29sb3JUaGVtZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJQoVVXBkYXRlVXNlck5hbWVSZXF1ZXN0EgwKBG5hbWUYASABKAkiRwoWVXBkYXRlVXNlck5hbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIicKFlVwZGF0ZVVzZXJFbWFpbFJlcXVlc3QSDQoFZW1haWwYASABKAkiSAoXVXBkYXRlVXNlckVtYWlsUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlVcGRhdGVVc2VyTWFpblZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJLChpVcGRhdGVVc2VyTWFpblZpZXdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkkKGFJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBIYChBwcmV2aW91c1Bhc3N3b3JkGAEgASgJEhMKC25ld1Bhc3N3b3JkGAIgASgJIkoKGVJlc2V0VXNlclBhc3N3b3JkUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdVcGRhdGVVc2VyTG9jYWxlUmVxdWVzdBIOCgZsb2NhbGUYASABKAkiSQoYVXBkYXRlVXNlckxvY2FsZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiLQoZVXBkYXRlVXNlckFwcFRoZW1lUmVxdWVzdBIQCghhcHBUaGVtZRgBIAEoCSJLChpVcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkMKGVVwZGF0ZVVzZXJUaW1lem9uZVJlcXVlc3QSEAoIdGltZVpvbmUYASABKAkSFAoMYXV0b1RpbWVab25lGAIgASgIIksKGlVwZGF0ZVVzZXJUaW1lem9uZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0EhIKCmF0dHJpYnV0ZXMYASADKAkiTQocVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKE0RlbGV0ZU1lbWJlclJlcXVlc3QSDgoGdXNlcklkGAEgASgJIiYKFERlbGV0ZU1lbWJlclJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSImChRSZXNldFBhc3N3b3JkUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiJwoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSK7AQoRQ3JlYXRlVmlld1JlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIRCglpc1ByaXZhdGUYAyABKAgSEgoKaXNFZGl0YWJsZRgEIAEoCBIMCgRpY29uGAUgASgJEhIKCnJlcG9ydFR5cGUYBiABKAkSEgoKY29sb3JUaGVtZRgHIAEoCRIUCgxyZXBvcnRQZXJpb2QYCCABKAkSEAoIY3VycmVuY3kYCSABKAkiQwoSQ3JlYXRlVmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiEQoPR2V0Vmlld3NSZXF1ZXN0IkEKEEdldFZpZXdzUmVzcG9uc2USLQoIdmlld0xpc3QYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3TGlzdCInChVHZXRDdXJyZW50Vmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIkcKFkdldEN1cnJlbnRWaWV3UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSIZChdHZXRGYXZvcml0ZVZpZXdzUmVxdWVzdCJLChhHZXRGYXZvcml0ZVZpZXdzUmVzcG9uc2USLwoJZmF2b3JpdGVzGAEgAygLMhwuYmx1ZWFwaS5hcGkuY292ZXIuRmF2b3JpdGVzIiQKElB1Ymxpc2hWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiIgoTUHVibGlzaFZpZXdSZXNwb25zZRILCgN1cmwYASABKAkiJAoSQWRkRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIlChNBZGRGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSInChVSZW1vdmVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJIigKFlJlbW92ZUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIo8BChFVcGRhdGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIMCgRpY29uGAQgASgJEhEKCWlzUHJpdmF0ZRgFIAEoCBISCgppc0VkaXRhYmxlGAYgASgIEhIKCmNvbG9yVGhlbWUYByABKAkiJAoSVXBkYXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJYChdVcGRhdGVWaWV3TGF5b3V0UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSLQoGbGF5b3V0GAIgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJJChhVcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2USLQoGbGF5b3V0GAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xheW91dCKaAQoXVXBkYXRlVmlld1dpZGdldFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCHdpZGdldElkGAIgASgJEigKB29wdGlvbnMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjMKCHJlcXVlc3RzGAQgAygLMiEuYmx1ZWFwaS5hcGkuY292ZXIuTGF5b3V0UmVxdWVzdHMiXwoYVXBkYXRlVmlld1dpZGdldFJlc3BvbnNlEhAKCHdpZGdldElkGAEgASgJEjEKCndpZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5XaWRnZXREYXRhIkEKG1VwZGF0ZVZpZXdDb2xvclRoZW1lUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKY29sb3JUaGVtZRgCIAEoCSJNChxVcGRhdGVWaWV3Q29sb3JUaGVtZVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiPQoZVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEAoIY3VycmVuY3kYAiABKAkiSwoaVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSI1ChtTZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QSFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiNgocU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRIWCg51cGRhdGVDdXJyZW5jeRgBIAEoAyIdChtHZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QiWQocR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIWCg51cGRhdGVDdXJyZW5jeRgCIAEoAxISCgpsYXN0VXBkYXRlGAMgASgJIj4KGExpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBIRCglzdGFydERhdGUYASABKAkSDwoHZW5kRGF0ZRgCIAEoCSJiChlMaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjYKDWV4Y2hhbmdlUmF0ZXMYAiADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkV4Y2hhbmdlUmF0ZXMiQgoNRXhjaGFuZ2VSYXRlcxINCgVtb250aBgBIAEoCRIUCgxleGNoYW5nZVJhdGUYAiABKAISDAoEZGF0ZRgDIAEoCSIjChFEZWxldGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJAoSRGVsZXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJlChpVcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSNwoNc2lkZW1lbnVzdGF0ZRgCIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlNpZGVNZW51U3RhdGUiLQobVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJAChpBZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSItChtBZGRTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIkMKHVJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRISCgptZW51SXRlbUlkGAIgASgJIjAKHlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAki0wEKFkNyZWF0ZUNvc3RHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIuCgR0eXBlGAcgASgOMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwVHlwZRITCgtkZXNjcmlwdGlvbhgCIAEoCRINCgVpbWFnZRgDIAEoCRIMCgRpY29uGAQgASgJEhIKCmNvbG9yVGhlbWUYBSABKAkSNQoMY29tYmluYXRpb25zGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlIKF0NyZWF0ZUNvc3RHcm91cFJlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIhYKFEdldENvc3RHcm91cHNSZXF1ZXN0IlAKFUdldENvc3RHcm91cHNSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIxChpHZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJWChtHZXRDb3N0R3JvdXBEZXRhaWxzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiPwoaVXBkYXRlQ29zdEdyb3VwTmFtZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEbmFtZRgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2USDAoEbmFtZRgBIAEoCSJNCiFVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiOQoiVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXNwb25zZRITCgtkZXNjcmlwdGlvbhgBIAEoCSJBChtVcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDQoFaW1hZ2UYAiABKAkiLQocVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXNwb25zZRINCgVpbWFnZRgBIAEoCSI/ChpVcGRhdGVDb3N0R3JvdXBJY29uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIMCgRpY29uGAIgASgJIisKG1VwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZRIMCgRpY29uGAEgASgJIksKIFVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiNwohVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlc3BvbnNlEhIKCmNvbG9yVGhlbWUYASABKAkicAoiVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRI1Cgxjb21iaW5hdGlvbnMYAiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMiXAojVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2USNQoMY29tYmluYXRpb25zGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIkMKHEFzc2lnbkNvc3RHcm91cE1lbWJlclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIkQKHUFzc2lnbkNvc3RHcm91cE1lbWJlclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJDChxSZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiLQoWRGVsZXRlQ29zdEdyb3VwUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSIuChdEZWxldGVDb3N0R3JvdXBSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCSIyCiJHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXF1ZXN0EgwKBHR5cGUYASABKAkihwEKI0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlc3BvbnNlEhEKCWxhdW5jaFVybBgBIAEoCRITCgt0ZW1wbGF0ZVVybBgCIAEoCRIRCglzdGFja05hbWUYAyABKAkSEQoJcHJpbmNpcGFsGAQgASgJEhIKCmV4dGVybmFsSWQYBSABKAkiGgoYTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0IikKF0dldEFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSLaAgoNQWNjb3VudEFjY2VzcxIOCgZ0YXJnZXQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSDwoHcGF5ZXJJZBgEIAEoCRIPCgdyb2xlQXJuGAUgASgJEhIKCmV4dGVybmFsSWQYBiABKAkSDwoHc3RhY2tJZBgHIAEoCRITCgtzdGFja1JlZ2lvbhgIIAEoCRITCgt0ZW1wbGF0ZVVybBgJIAEoCRISCgpidWNrZXROYW1lGAogASgJEg4KBnByZWZpeBgLIAEoCRISCgpyZXBvcnROYW1lGAwgASgJEkEKEnJlZ2lzdHJhdGlvblN0YXR1cxgNIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLlJlZ2lzdHJhdGlvblN0YXR1cxIOCgZzdGF0dXMYDiABKAkSEwoLbGFzdFVwZGF0ZWQYDyABKAkiQwoaQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEhUKDWZyb21UZXJyYWZvcm0YAiABKAgiRAoiQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJIiwKGlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSI8ChpEZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJIi8KG0RlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZRIQCgh0YXJnZXRJZBgBIAEoCSJQChZSZWdpc3RlckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEwoLYWNjb3VudE5hbWUYAyABKAki5gEKEUxpc3RBc3NldHNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSGgoSd2l0aFJlY29tbWVuZGF0aW9uGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyKPAQoRTGlzdEFzc2V0c0ZpbHRlcnMSRwoKYW5kRmlsdGVycxgBIAMoCzIzLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIr0BCghSZXNvdXJjZRIMCgRkYXRlGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg8KB3NlcnZpY2UYBSABKAkSEgoKcmVzb3VyY2VJZBgGIAEoCRIUCgxyZXNvdXJjZVR5cGUYByABKAkSDAoEY29zdBgIIAEoARISCgpwcm9wZXJ0aWVzGAkgASgJEhYKDnJlY29tbWVuZGF0aW9uGAogASgJIuYBChdHZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhQKDGNvbWJpbmVEYXRlcxgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMiawoYR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlEjAKB3N1bW1hcnkYASADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkFzc2V0c1N1bW1hcnkSHQoVcmVjb21tZW5kYXRpb25TdW1tYXJ5GAIgASgJIlgKDUFzc2V0c1N1bW1hcnkSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSFgoOdG90YWxSZXNvdXJjZXMYAyABKAMSEQoJdG90YWxDb3N0GAQgASgBIjoKI1Jlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJImkKJFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIsCghhY2NvdW50cxgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLkFjY291bnQixwQKE0dldENvc3RVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSFAoMZ3JvdXBCeU1vbnRoGAQgASgIEg0KBWxpbWl0GAUgASgDEhAKCGNhdGVnb3J5GAYgASgJEg8KB2dyb3VwQnkYByABKAkSFwoPaW5jbHVkZVplcm9Db3N0GAggASgIEkMKCmF3c09wdGlvbnMYCSABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEkcKDGF6dXJlT3B0aW9ucxgKIAEoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxJDCgpnY3BPcHRpb25zGAsgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxJNCg9henVyZWNzcE9wdGlvbnMYDCABKAsyNC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSSQoNY3VzdG9tT3B0aW9ucxgNIAEoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFwoPaW5jbHVkZUZvcmVjYXN0GA4gASgIEhAKCGN1cnJlbmN5GA8gASgJIucBCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJItkBCh9HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycyL+AgodR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAki7AEKIkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSKBAwogR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAkiqQEKHlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJUCgphbmRGaWx0ZXJzGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvYDCghDb3N0SXRlbRIOCgZ2ZW5kb3IYASABKAkSDAoEZGF0ZRgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSEQoJdXNhZ2VUeXBlGBAgASgJEhIKCmNoYXJnZVR5cGUYESABKAkSDAoEY29zdBgFIAEoARIPCgdkZXRhaWxzGAYgASgJEjQKCGZvcmVjYXN0GAcgASgLMiIuYmx1ZWFwaS5hcGkuY292ZXIuQXdzQ29zdEZvcmVjYXN0Eg4KBnJlZ2lvbhgIIAEoCRIWCg5iaWxsaW5nQWNjb3VudBgJIAEoCRIQCgh0YWdWYWx1ZRgKIAEoCRISCgpsYXN0VXBkYXRlGAsgASgJEgwKBHVuaXQYDCABKAkSEAoIY2F0ZWdvcnkYDSABKAkSDgoGdGFnZ2VkGA4gASgIEhUKDW51bWJlck9mVW5pdHMYEiABKAESRgoOdW5pdGNvc3RtZXRyaWMYDyADKAsyLi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtLlVuaXRjb3N0bWV0cmljRW50cnkSGgoSYWxsb2NhdGlvbkNhdGVnb3J5GBMgASgJGjUKE1VuaXRjb3N0bWV0cmljRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASI6CiNHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJZCiRHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USMQoIcmVzb3VyY2UYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZURhdGEieAoZTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSFAoMcmVzb3VyY2VUeXBlGAQgASgJEg4KBnJlZ2lvbhgFIAEoCSJpChpNb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIUCgxyZXNvdXJjZVR5cGUYAyABKAkSDgoGcmVnaW9uGAQgASgJImEKGFRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSDgoGcmVnaW9uGAQgASgJIlIKGVRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSDgoGcmVnaW9uGAMgASgJIkMKF1VwbG9hZENoYXJnZUNvZGVSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIMCgRmaWxlGAMgASgMIlIKGFVwbG9hZENoYXJnZUNvZGVSZXNwb25zZRIMCgRuYW1lGAEgASgJEigKBnN0YXR1cxgCIAEoDjIYLmJsdWVhcGkuY292ZXIudjEuU3RhdHVzIkgKEkFzc2lnblBheWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg8KB3BheWVySWQYAyABKAkiOQoTQXNzaWduUGF5ZXJSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCSIiChBHZXRQYXllcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIjChFHZXRQYXllcnNSZXNwb25zZRIOCgZwYXllcnMYASADKAkiOQoSR2V0QWNjb3VudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRBY2NvdW50c1Jlc3BvbnNlEhAKCGFjY291bnRzGAEgAygJIjkKEkdldFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0U2VydmljZXNSZXNwb25zZRIQCghzZXJ2aWNlcxgBIAMoCSI4ChFHZXRSZWdpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJQoSR2V0UmVnaW9uc1Jlc3BvbnNlEg8KB3JlZ2lvbnMYASADKAkiNQoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIj4KD0dldFRhZ3NSZXNwb25zZRIrCgd0YWdEYXRhGAEgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSIgCg9MaXN0RmVlc1JlcXVlc3QSDQoFbW9udGgYASABKAki7QIKCkZlZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSEAoIbGluZVR5cGUYBiABKAkSDwoHZmVlVHlwZRgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCRIPCgdzdGFydGVkGAogASgJEhQKDHRpbWVJbnRlcnZhbBgLIAEoCRITCgtwcm9kdWN0TmFtZRgMIAEoCRIQCghjdXJyZW5jeRgNIAEoCRITCgtzcGxpdFN0YXR1cxgOIAEoCRITCgtpc0FsbG9jYXRlZBgPIAEoCBIRCglpc0FwcGxpZWQYECABKAgSFQoNdW5ibGVuZGVkQ29zdBgRIAEoARIRCglzb3VyY2VGZWUYEiABKAkSEgoKbGFzdFVwZGF0ZRgTIAEoCSIiChFSZXN0b3JlRmVlUmVxdWVzdBINCgVmZWVJZBgBIAEoCSJRChZHZXRDb3N0R3JvdXBGZWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJImYKB0ZlZUl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAEiSQoJQWxsb2NhdG9yEgwKBHR5cGUYASABKAkSDQoFdmFsdWUYAiABKAkSDwoHZm9ybXVsYRgDIAEoCRIOCgZtb250aHMYBCABKAMiaAoIQ3JpdGVyaWESMAoDYW5kGAEgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5Dcml0ZXJpYS5BbmRFbnRyeRoqCghBbmRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqICChRDb3N0QWxsb2NhdG9yRGV0YWlscxIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISEgoKY3JlYXRlVGltZRgIIAEoCRISCgp1cGRhdGVUaW1lGAkgASgJEgwKBG5hbWUYCiABKAkSEwoLZGVzY3JpcHRpb24YCyABKAki+gEKFENvc3RBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJIhcKFUxpc3RBbGxvY2F0b3JzUmVxdWVzdCLwAQoWQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRISCgpleHBpcmF0aW9uGAIgASgDEhIKCnN0YXJ0TW9udGgYAyABKAkSFgoOZGVmYXVsdEFjY291bnQYBCABKAkSMQoIY3JpdGVyaWEYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAYgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCSIyCh5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkisQEKH0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USWAoJYXR0cmlidXRlGAEgAygLMkUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlLkFsbG9jYXRpb25BdHRyaWJ1dGUaNAoTQWxsb2NhdGlvbkF0dHJpYnV0ZRIMCgR0eXBlGAEgASgJEg8KB3NlcnZpY2UYAiADKAkiPgobR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0EgwKBHR5cGUYASABKAkSEQoJYWNjb3VudElkGAIgASgJIusBChxHZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlElAKBnNvdXJjZRgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZS5BbGxvY2F0aW9uU291cmNlcxIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YRpMChFBbGxvY2F0aW9uU291cmNlcxITCgthY2NvdW50TmFtZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWNvc3RHcm91cBgDIAEoCSIkChZEZWxldGVBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJIkcKHFByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QSJwoGcGFyYW1zGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItCh1Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZRIMCgRsaW5lGAEgASgJItQEChNBY2NvdW50VXNhZ2VEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBGRhdGUYBSABKAkSEwoLcHJvZHVjdENvZGUYBiABKAkSEwoLc2VydmljZUNvZGUYByABKAkSDgoGcmVnaW9uGAggASgJEgwKBHpvbmUYCSABKAkSEQoJdXNhZ2VUeXBlGAogASgJEhQKDGluc3RhbmNlVHlwZRgLIAEoCRIRCglvcGVyYXRpb24YDCABKAkSEQoJaW52b2ljZUlkGA0gASgJEhMKC2Rlc2NyaXB0aW9uGA4gASgJEhIKCnJlc291cmNlSWQYDyABKAkSDAoEdGFncxgQIAEoCRIWCg5jb3N0Q2F0ZWdvcmllcxgRIAEoCRITCgt1c2FnZUFtb3VudBgSIAEoARIZChF0cnVlVW5ibGVuZGVkQ29zdBgTIAEoARIVCg11bmJsZW5kZWRDb3N0GBQgASgBEhUKDWVmZmVjdGl2ZUNvc3QYFSABKAESFQoNYW1vcnRpemVkQ29zdBgWIAEoARIaChJwdWJsaWNPbkRlbWFuZENvc3QYFyABKAESGwoTdW51c2VkQW1vcnRpemVkQ29zdBgYIAEoARISCgpsYXN0VXBkYXRlGBkgASgJEhMKC3NwbGl0U3RhdHVzGBogASgJEhMKC2lzQWxsb2NhdGVkGBsgASgIEhEKCWlzQXBwbGllZBgcIAEoCBIOCgZzb3VyY2UYHSABKAkiPQoXTGlzdEFjY291bnRVc2FnZVJlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiMgoaUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QSFAoMYWxsb2NhdGlvbklkGAEgASgJIiMKFVJlc3RvcmVTYXZpbmdzUmVxdWVzdBIKCgJpZBgBIAEoCSK6AgoOU2F2aW5nc0RldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSDAoEdHlwZRgGIAEoCRILCgNhcm4YByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEgoKb2ZmZXJDbGFzcxgJIAEoCRIQCghvbmRlbWFuZBgKIAEoARIVCg1lZmZlY3RpdmVDb3N0GAsgASgBEg8KB3NhdmluZ3MYDCABKAESEwoLc3BsaXRTdGF0dXMYDSABKAkSEwoLaXNBbGxvY2F0ZWQYDiABKAgSEQoJaXNBcHBsaWVkGA8gASgIEg4KBnNvdXJjZRgQIAEoCRISCgpsYXN0VXBkYXRlGBEgASgJImoKHUdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhEKCXN0YXJ0RGF0ZRgDIAEoCRIPCgdlbmREYXRlGAQgASgJIoABCg5BbGxvY2F0aW9uSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoARIRCgljb3N0R3JvdXAYByABKAkiXwoXUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QSDgoGc291cmNlGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSDQoFZW1haWwYAyABKAkSEQoJc3VidXNlcklkGAQgASgJIjAKGFByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgilQIKCkRhdGFBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEg0KBW9yZ0lkGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCRISCgpsYXN0VXBkYXRlGAcgASgJEhIKCmNyZWF0ZVRpbWUYCCABKAkSDgoGdmVuZG9yGAkgASgJIu0BChlSZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSMQoKZ2NwT3B0aW9ucxgEIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zIusBChdVcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCSIXChVMaXN0RGF0YUFjY2Vzc1JlcXVlc3QiIQofTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdCJxCiBMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI+ChF1bnJlZ2lzdGVyZWRBY2N0cxgCIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuVW5yZWdpc3RlcmVkQWNjdHMiVAoRVW5yZWdpc3RlcmVkQWNjdHMSCgoCaWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEgoKbGFzdFVwZGF0ZRgEIAEoCSJ8ChVCaWxsaW5nQWNjb3VudFJlcXVlc3QSEQoJYmlsbGluZ0lkGAEgASgJEhEKCWRhdGFzZXRJZBgCIAEoCRIVCg1kYXRhc2V0UmVnaW9uGAMgASgJEhEKCXByb2plY3RJZBgEIAEoCRITCgtiaWxsaW5nTmFtZRgFIAEoCSJUCh1HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJImEKIkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEhUKDWFwcGxpY2F0aW9uSWQYAiABKAkSEQoJc2VjcmV0S2V5GAMgASgJIiUKFEFkZE1wblNldHRpbmdSZXF1ZXN0Eg0KBW1wbklkGAEgASgJItYBChxHZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIVCg1hdHRyaWJ1dGVUeXBlGAIgASgJEhMKC2Nvc3RHcm91cElkGAMgASgJEj0KFGV4aXN0aW5nQ29tYmluYXRpb25zGAQgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEjsKEmN1cnJlbnRDb21iaW5hdGlvbhgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJ3Ch1HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZRIpCgZyZXN1bHQYASADKAsyGS5ibHVlYXBpLmFwaS5jb3Zlci5SZXN1bHQSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiJgoUR2V0Q2F0ZWdvcmllc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIkYKFUdldENhdGVnb3JpZXNSZXNwb25zZRItCghjYXRlZ29yeRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLkNhdGVnb3J5IhIKEEdldEFsZXJ0c1JlcXVlc3QiRAoRR2V0QWxlcnRzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIoYBChJDcmVhdGVBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtmaXhlZEFtb3VudBgCIAEoAhISCgpwZXJjZW50YWdlGAMgASgCEhMKC2dyYW51bGFyaXR5GAQgASgJEhIKCmNvc3RHcm91cHMYBSADKAkSEAoIY2hhbm5lbHMYBiADKAkiRgoTQ3JlYXRlQWxlcnRSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiJAoWR2V0QWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJKChdHZXRBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIAoSRGVsZXRlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiEKE0RlbGV0ZUFsZXJ0UmVzcG9uc2USCgoCaWQYASABKAkimQEKGVVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtmaXhlZEFtb3VudBgDIAEoAhISCgpwZXJjZW50YWdlGAQgASgCEhMKC2dyYW51bGFyaXR5GAUgASgJEhIKCmNvc3RHcm91cHMYBiADKAkSEAoIY2hhbm5lbHMYByADKAkiTQoaVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiIKEkdldENoYW5uZWxzUmVxdWVzdBIMCgR0eXBlGAEgASgJIkoKE0dldENoYW5uZWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSJGChRDcmVhdGVDaGFubmVsUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSEgoKd2ViaG9va1VybBgDIAEoCSJMChVDcmVhdGVDaGFubmVsUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSImChhHZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiUAoZR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiIKFERlbGV0ZUNoYW5uZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiMKFURlbGV0ZUNoYW5uZWxSZXNwb25zZRIKCgJpZBgBIAEoCSJZChtVcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhIKCndlYmhvb2tVcmwYBCABKAkiUwocVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIs8BCiFHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSLwoJYXdzSW5wdXRzGAIgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQXdzSW5wdXRzEjMKC2F6dXJlSW5wdXRzGAMgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVJbnB1dHMSLwoJZ2NwSW5wdXRzGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuR2NwSW5wdXRzIokCCiJHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEkkKEmF3c1JlY29tbWVuZGF0aW9ucxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UmVjb21tZW5kYXRpb25zEk0KFGF6dXJlUmVjb21tZW5kYXRpb25zGAIgASgLMi8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJJChJnY3BSZWNvbW1lbmRhdGlvbnMYAyABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BEaXNjb3VudFJlY29tbWVuZGF0aW9ucyJXChxHZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJIuEBCgtBbm9tYWx5RGF0YRIPCgdhY2NvdW50GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdwcm9kdWN0GAQgASgJEgwKBGRhdGUYBSABKAkSEQoJdG90YWxDb3N0GAYgASgCEhEKCWlzQW5vbWFseRgHIAEoCBISCgpsb3dlckxpbWl0GAggASgCEhIKCnVwcGVyTGltaXQYCSABKAISEwoLYW5vbWFseUNvc3QYCiABKAISGgoSYW5vbWFseVByb2JhYmlsaXR5GAsgASgCIoUBCiRDcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSEwoLZnJlcXVlbmNpZXMYASADKAMSEgoKY29zdEdyb3VwcxgCIAMoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEAoIY2hhbm5lbHMYBCADKAkSDAoEbmFtZRgFIAEoCSI2CihNYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIpEBCiRVcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhAKCGNoYW5uZWxzGAMgAygJEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEhIKCmNvc3RHcm91cHMYBSADKAkSDAoEbmFtZRgGIAEoCSLpAQoXRGlzY291bnRFeHBpcnlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEjUKCmNvc3RHcm91cHMYBSADKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIPCgdkZXRhaWxzGAYgASgJEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscxIMCgRuYW1lGAggASgJIiQKIkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QihQEKGUNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEQoJZnJlcXVlbmN5GAMgASgJEhMKC2Nvc3RHcm91cElkGAQgASgJEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAUgAygJIisKHU1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJItABChBBbm9tYWx5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBG5hbWUYAyABKAkSFAoMYWxlcnRFbmFibGVkGAQgASgIEhEKCWZyZXF1ZW5jeRgFIAEoCRI2Cgtjb3N0R3JvdXBJZBgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscyIZChdMaXN0QW5vbWFseUFsZXJ0UmVxdWVzdCKRAQoZVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIcChRub3RpZmljYXRpb25DaGFubmVscxgEIAMoCRIRCglmcmVxdWVuY3kYBSABKAkSEwoLY29zdEdyb3VwSWQYBiABKAkiiQEKFlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjb21wYW55GAQgASgJEgwKBHJvbGUYBSABKAkSDgoGYW1vdW50GAYgASgJEhEKCWludGVudGlvbhgHIAEoCSIvChdSZWdpc3Rlck5ld1VzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgiJgoVR2V0VXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIs4BChZHZXRVc2VyUHJvZmlsZVJlc3BvbnNlEhkKEWhhc0NyZWF0ZWRQcm9maWxlGAEgASgIEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSFAoMZW1haWxBZGRyZXNzGAcgASgJEhIKCmxpbmtTb3VyY2UYCCABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCSABKAgirgEKGFVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgirwEKGVVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2USDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIkgKEkxpc3RCdWRnZXRzUmVxdWVzdBIfChdpbmNsdWRlU3BlbmRBbmRGb3JlY2FzdBgBIAEoCBIRCgljb3N0R3JvdXAYAiABKAkiSAoTTGlzdEJ1ZGdldHNSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIeChBHZXRCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIkYKEUdldEJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkgKE0NyZWF0ZUJ1ZGdldFJlcXVlc3QSMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUQ3JlYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiIQoTRGVsZXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSIiChREZWxldGVCdWRnZXRSZXNwb25zZRIKCgJpZBgBIAEoCSJUChNVcGRhdGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJEjEKCmJ1ZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFFVwZGF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIksKLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QSGQoRcmVnaXN0cmF0aW9uVG9rZW4YASABKAkiYQovUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2USGgoSaXNBbGxvd2VkVG9PbmJvYXJkGAEgASgIEhIKCmN1c3RvbWVySWQYAiABKAkiJgokR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0IvIBCiVHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlEhYKDmRhdGVSZWdpc3RlcmVkGAEgASgJEhoKEnN1YnNjcmlwdGlvbkV4cGlyeRgCIAEoCRIQCghkYXlzTGVmdBgDIAEoBRIUCgxpc1N1YnNjcmliZWQYBCABKAgSEQoJaXNFeHBpcmVkGAUgASgIEgwKBHBsYW4YBiABKAkSDgoGYW1vdW50GAcgASgJEhUKDXBheW1lbnRPcHRpb24YCCABKAkSFQoNcGF5bWVudE1ldGhvZBgJIAEoCRIOCgZjcmVkaXQYCiABKAEiswEKFkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgRyb2xlGAIgASgJEg0KBXVzYWdlGAMgASgJEhEKCWludGVudGlvbhgEIAEoCRITCgtjb21wYW55TmFtZRgFIAEoCRIUCgxlbWFpbEFkZHJlc3MYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCIZChdDcmVhdGVQcm9maWxpbmdSZXNwb25zZSI5ChtBZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QSGgoSY3VzdG9tZXJJZGVudGlmaWVyGAEgASgJIh4KHEFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UieAoXR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSEgoKcmVwb3J0VHlwZRgEIAEoCRIQCghjdXJyZW5jeRgFIAEoCSKuAgoYR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEj0KEGV4ZWN1dGl2ZVN1bW1hcnkYBCABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRpdmVTdW1tYXJ5El8KIW9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRgFIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLk9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRI5Cg5zYXZpbmdzU3VtbWFyeRgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLlNhdmluZ3NTdW1tYXJ5IqoCChlMaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgHIAEoCRIMCgR0eXBlGAggASgJEg4KBnNwVHlwZRgJIAEoCRIRCglyYXRlTW9kZWwYCiABKAkSFQoNcGF5bWVudE9wdGlvbhgLIAEoCRIMCgR0ZXJtGAwgASgJEg8KB3NlcnZpY2UYDSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgOIAEoCRIQCghjdXJyZW5jeRgPIAEoCSLVAgobTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRJQCgxyYXRlU2V0dGluZ3MYBCABKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdC5SYXRlU2V0dGluZ3MSEAoIY3VycmVuY3kYBSABKAkajgEKDFJhdGVTZXR0aW5ncxIOCgZzcFR5cGUYASABKAkSEQoJcmF0ZU1vZGVsGAIgASgJEhUKDXBheW1lbnRPcHRpb24YAyABKAkSDAoEdGVybRgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhUKDW9mZmVyaW5nQ2xhc3MYBiABKAkSDgoGdmVuZG9yGAcgASgJItoGChpMaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEhYKDnJlY29tbWVuZGF0aW9uGAIgASgJEg8KB3NlcnZpY2UYAyABKAkSHgoWZXN0aW1hdGVkTW9udGhseVNhdmluZxgEIAEoARIcChRlc3RpbWF0ZWRNb250aGx5Q29zdBgFIAEoARIPCgdzY29yaW5nGAYgASgJEg4KBnZlbmRvchgHIAEoCRIQCghjYXRlZ29yeRgIIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYCSABKAkSFAoMZXJyb3JNZXNzYWdlGAogASgJEhEKCWFjY291bnRJZBgLIAEoCRITCgthY2NvdW50TmFtZRgMIAEoCRIUCgxpbnN0YW5jZU5hbWUYDSABKAkSEgoKaW5zdGFuY2VJZBgOIAEoCRIUCgxpbnN0YW5jZVR5cGUYDyABKAkSDgoGcmVnaW9uGBAgASgJEhIKCmNvbW1pdG1lbnQYESABKAESDgoGc3BUeXBlGBIgASgJEhgKEG51bWJlclRvUHVyY2hhc2UYEyABKAMSDgoGcmlUeXBlGBQgASgJEgwKBHR5cGUYFSABKAkSDgoGc291cmNlGBYgASgJEhcKD2RhdGVSZWNvbW1lbmRlZBgXIAEoCRIbChNyZWNvbW1lbmRhdGlvbkdyb3VwGBggASgJEhUKDWxhc3RVcGRhdGVkQXQYGSABKAkSUwoOcHVyY2hhc2VPcHRpb24YGiABKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlLlB1cmNoYXNlT3B0aW9uGs8BCg5QdXJjaGFzZU9wdGlvbhIOCgZzcFR5cGUYASABKAkSFQoNb2ZmZXJpbmdDbGFzcxgCIAEoCRISCgpjb21taXRtZW50GAMgASgBEhgKEG51bWJlclRvUHVyY2hhc2UYBCABKAMSFQoNcGF5bWVudE9wdGlvbhgFIAEoCRIMCgR0ZXJtGAYgASgJEhkKEWN1cnJlbnRHZW5lcmF0aW9uGAcgASgIEhMKC3NlcnZpY2VUeXBlGAggASgJEhMKC3VwZnJvbnRDb3N0GAkgASgBIlEKGEdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIUCgxwZXJpb2RPcHRpb24YAyABKAkiXgoZR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZRJBChJyZWNvbW1lbmRhdGlvbkRhdGEYASABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5BV1NSZWNvbW1lbmRhdGlvbnMiRAoaRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QSGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIMCgR0eXBlGAIgASgJIpQDChtFeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2USTAoJYXdzT3B0aW9uGAEgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQVdTT3B0aW9uSAASTAoJZ2NwT3B0aW9uGAIgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuR0NQT3B0aW9uSAASVgoOYXp1cmVDc3BPcHRpb24YAyABKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BenVyZUNTUE9wdGlvbkgAGlgKCUFXU09wdGlvbhIaChJhcHByb3ZlVGVtcGxhdGVVcmwYASABKAkSGAoQcmVjb21tZW5kYXRpb25JZBgCIAEoCRIVCg1jdXJyZW50U3RhdHVzGAMgASgJGgsKCUdDUE9wdGlvbhoQCg5BenVyZUNTUE9wdGlvbkIICgZWZW5kb3IiIwoVTWFya0FzRXhlY3V0ZWRSZXF1ZXN0EgoKAmlkGAEgAygJIhgKFk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiLwohVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgAygJIiQKIlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UipwEKGk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhQKDHBlcmlvZE9wdGlvbhgGIAEoCRIQCghjdXJyZW5jeRgHIAEoCSJ2ChtPcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2USVwodZXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMYAiADKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscyJgCiFTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDwoHYW5vbWFseRgCIAEoCBIVCg12aXN1YWxCdWlsZGVyGAMgASgIInQKIlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOZXZlbnRJbmRpY2F0b3IYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5FdmVudEluZGljYXRvciJ7CiFTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJdGhyZXNob2xkGAIgASgCEhQKDGlzUGVyY2VudGFnZRgDIAEoCBIYChBwYXN0RGF0YUluTW9udGhzGAQgASgDInQKIlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOYW5vbWFseU9wdGlvbnMYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5Bbm9tYWx5T3B0aW9ucyIvChhTZXRPcmdGaXNjYWxNb250aFJlcXVlc3QSEwoLZmlzY2FsTW9udGgYASABKAkiMAoZU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCSIaChhHZXRPcmdGaXNjYWxNb250aFJlcXVlc3QiSAoZR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCRIWCg5kYXRlUmVnaXN0ZXJlZBgCIAEoCSJbChtUcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCRINCgVwYXllchgDIAEoCRINCgVvcmdJZBgEIAEoCSIuChxUcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlEg4KBnRhcmdldBgBIAEoCSJFCiBVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBIhChl1c2VOZXdDb3N0R3JvdXBDcmVhdGlvblVJGAEgASgIIlIKIVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhYKFExpc3RVbml0VHlwZXNSZXF1ZXN0Ik4KFUxpc3RVbml0VHlwZXNSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEitgEKFUNyZWF0ZVVuaXRUeXBlUmVxdWVzdBIQCgh1bml0TmFtZRgBIAEoCRIuCgl1bml0SXRlbXMYAiADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYAyADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgEIAEoCSJPChZDcmVhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIgChJHZXRVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiTAoTR2V0VW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiwgEKFVVwZGF0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgh1bml0TmFtZRgCIAEoCRIuCgl1bml0SXRlbXMYAyADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYBCADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgFIAEoCSJPChZVcGRhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIjChVEZWxldGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiJAoWRGVsZXRlVW5pdFR5cGVSZXNwb25zZRIKCgJpZBgBIAEoCSJPChFNZXJnZVVuaXRzUmVxdWVzdBITCgt1bml0Q29zdElkcxgBIAMoCRIQCgh1bml0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCSJNChJNZXJnZVVuaXRzUmVzcG9uc2USNwoObWVyZ2VkVW5pdENvc3QYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiGwoZTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdCJWChpMaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI4Cg5zdWdnZXN0ZWRVbml0cxgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQicgoaTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCRITCgt1bml0SXRlbUlkcxgCIAMoCRIQCgh1bml0TmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJdChtNZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USPgoUbWVyZ2VkU3VnZ2VzdGVkVW5pdHMYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0IjoKHkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJIjYKH0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2USEwoLdW5pdENvc3RJZHMYASADKAkiHAoaTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QiZQobTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uItMCChxDcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EhoKEnNoYXJlZFJlc291cmNlTmFtZRgBIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAiABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAMgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgEIAEoARITCgt1bmFsbG9jYXRlZBgFIAEoARITCgtkZXNjcmlwdGlvbhgGIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHUNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIicKGUdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiZAoaR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i3wIKHFVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAIgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgDIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YBCADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAUgASgBEhMKC3VuYWxsb2NhdGVkGAYgASgBEhMKC2Rlc2NyaXB0aW9uGAcgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iKgocRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSIrCh1EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRIKCgJpZBgBIAEoCSJXChZMaXN0VW5pdE1ldHJpY3NSZXF1ZXN0EhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAEgASgJEhIKCmRhdGFTb3VyY2UYAiABKAkSDgoGc3RhdHVzGAMgASgJIk0KF0xpc3RVbml0TWV0cmljc1Jlc3BvbnNlEjIKC3VuaXRNZXRyaWNzGAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyK5AQoXQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QSEgoKbWV0cmljTmFtZRgBIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgCIAEoCRISCgpkYXRhU291cmNlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhMKC2Nvc3Rncm91cElkGAUgAygJEjEKCnNvdXJjZUluZm8YBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGENyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIiChRHZXRVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSJKChVHZXRVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMixQEKF1VwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJEhIKCm1ldHJpY05hbWUYAiABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAyABKAkSEgoKZGF0YVNvdXJjZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRITCgtjb3N0Z3JvdXBJZBgGIAMoCRIxCgpzb3VyY2VJbmZvGAcgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhVcGRhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiJQoXRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiJgoYRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlEgoKAmlkGAEgASgJImYKGVByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QSFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRIQCghzaGVldFVybBgCIAEoCRIRCglzaGVldE5hbWUYAyABKAkSDQoFcmFuZ2UYBCABKAkiWQoaUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2USDgoGaGVhZGVyGAEgAygJEisKB3Jvd0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5Sb3dEYXRhIjMKH0NvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QSEAoIc2hlZXRVcmwYASABKAkiTQogQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2USFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRISCgpzaGVldE5hbWVzGAIgAygJInYKHEdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEg4KBnJlZ2lvbhgCIAEoCRIMCgR0eXBlGAMgASgJEhEKCW5hbWVzcGFjZRgEIAEoCRISCgptZXRyaWNOYW1lGAUgASgJIr4BCh1HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZRISCgpuYW1lc3BhY2VzGAEgAygJEg8KB21ldHJpY3MYAiADKAkSTQoKZGltZW5zaW9ucxgDIAMoCzI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UuRGltZW5zaW9uGikKCURpbWVuc2lvbhIMCgRuYW1lGAEgASgJEg4KBnZhbHVlcxgCIAMoCSKBAgoWR2V0RGlzY291bnRQbGFuUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSGAoQcmVkdWN0aW9uRGlzcGxheRgDIAEoCRIWCg5pbmNsdWRlRGV0YWlscxgEIAEoCBIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkSDwoHcGF5ZXJJZBgHIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgIIAEoCRIPCgdncm91cElkGAkgASgJEhMKC2Nvc3RHcm91cElkGAogASgJEhAKCGFjY291bnRzGAsgAygJEhAKCHNlcnZpY2VzGAwgAygJImcKF0dldERpc2NvdW50UGxhblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEGF3c0Rpc2NvdW50UGxhbnMYAiABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFBsYW5zInMKHExpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRIMCgR0eXBlGAUgASgJIskBCh1MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZRJUCg1ub25wZXJmb3JtaW5nGAEgAygLMj0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZS5Ob25wZXJmb3JtaW5nGlIKDU5vbnBlcmZvcm1pbmcSDAoEdHlwZRgBIAEoCRIPCgdhY2NvdW50GAIgASgJEhMKC3V0aWxpemF0aW9uGAMgASgBEg0KBXdhc3RlGAQgASgBInQKHExpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRINCgVsaW1pdBgFIAEoAyL5AQodTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2USXAoRdW50YWdnZWRSZXNvdXJjZXMYASADKAsyQS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlLlVudGFnZ2VkUmVzb3VyY2VzGnoKEVVudGFnZ2VkUmVzb3VyY2VzEhAKCHJlc291cmNlGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCWNvc3RHcm91cBgEIAEoCRIMCgRjb3N0GAUgASgBEg4KBnZlbmRvchgGIAEoCSo/CgZTdGF0dXMSCwoHUEVORElORxAAEg8KC0lOX1BST0dSRVNTEAESCwoHU1VDQ0VTUxACEgoKBkZBSUxFRBADMubiAQoFQ292ZXISdwoKT25ib2FyZE9yZxIjLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9vbmJvYXJkEn8KDEludml0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVzcG9uc2UiIIgCAYLT5JMCFzoBKiISL3YxL21lbWJlcnMvaW52aXRlEn4KDEFjdGl2YXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvYWN0aXZhdGUSdQoMQ3JlYXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXNwb25zZSIWgtPkkwIQOgEqIgsvdjEvbWVtYmVycxJvCgpHZXRNZW1iZXJzEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1Jlc3BvbnNlIhaIAgGC0+STAg0SCy92MS9tZW1iZXJzEooBChBHZXRNZW1iZXJEZXRhaWxzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlIh+IAgGC0+STAhYSFC92MS9tZW1iZXJzL3t1c2VySWR9EpoBChJHZXRNZW1iZXJDb3N0R3JvdXASKy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlc3BvbnNlIimIAgGC0+STAiASHi92MS9tZW1iZXJzL3t1c2VySWR9L2Nvc3Rncm91cBKnAQoWVXBkYXRlTWVtYmVyUGVybWlzc2lvbhIvLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZSIqiAIBgtPkkwIhOgEqGhwvdjEvbWVtYmVycy97dXNlcklkfS9pc2FkbWluEnMKDkdldFVzZXJEZXRhaWxzEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVzcG9uc2UiDoLT5JMCCBIGL3YxL21lEoMBChBVcGRhdGVVc2VyQXZhdGFyEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlc3BvbnNlIhiC0+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+STAhw6ASoiFy92MS9mb3JlY2FzdHMvZGF0YTpyZWFkMAESjwEKE0dldFJlY29tbWVuZGF0aW9uVjMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3JlY29tbWVuZGF0aW9ucxKcAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZWNvbW1lbmRhdGlvblN1bW1hcnkiKILT5JMCIjoBKiIdL3YxL3JlY29tbWVuZGF0aW9ucy9zdW1tYXJpZXMwARKlAQoXRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjMSMC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvcmVjb21tZW5kYXRpb24vZXhlY3V0ZRJ2CgtJbnZpdGVVc2VycxIkLmJsdWVhcGkuY292ZXIudjEuSW52aXRlVXNlcnNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVVc2Vyc1Jlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS91c2VyL2ludml0ZRJuCgpEZWxldGVVc2VyEiMuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVc2VyUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVXNlclJlc3BvbnNlIhWC0+STAg8qDS92MS91c2VyL3tpZH0SggEKDlVwZGF0ZVVzZXJSb2xlEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUm9sZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJSb2xlUmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL3VzZXIve3VzZXJfaWR9EmcKCUxpc3RVc2VycxIiLmJsdWVhcGkuY292ZXIudjEuTGlzdFVzZXJzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuTGlzdFVzZXJzUmVzcG9uc2UiEYLT5JMCCxIJL3YxL3VzZXJzEoABCgxSZWludml0ZVVzZXISJS5ibHVlYXBpLmNvdmVyLnYxLlJlaW52aXRlVXNlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLlJlaW52aXRlVXNlclJlc3BvbnNlIiGC0+STAhs6ASoiFi92MS91c2VyL3tpZH0vcmVpbnZpdGUalwGSQZMBEkIoQkVUQSkgQ292ZXIgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY292ZXIaTQoSU2VydmljZSBkZWZpbml0aW9uEjdodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vY292ZXIvQksKF2Nsb3VkLmFscGhhdXMuYXBpLmNvdmVyQgpDb3ZlclByb3RvWiRnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY292ZXJiBnByb3RvMw", [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.ReinviteUserRequest
53
+ */
54
+ export type ReinviteUserRequest = Message<"blueapi.cover.v1.ReinviteUserRequest"> & {
55
+ /**
56
+ * @generated from field: string id = 1;
57
+ */
58
+ id: string;
59
+ };
60
+
61
+ /**
62
+ * Describes the message blueapi.cover.v1.ReinviteUserRequest.
63
+ * Use `create(ReinviteUserRequestSchema)` to create a new message.
64
+ */
65
+ export const ReinviteUserRequestSchema: GenMessage<ReinviteUserRequest> = /*@__PURE__*/
66
+ messageDesc(file_cover_v1_cover, 0);
67
+
68
+ /**
69
+ * @generated from message blueapi.cover.v1.ReinviteUserResponse
70
+ */
71
+ export type ReinviteUserResponse = Message<"blueapi.cover.v1.ReinviteUserResponse"> & {
72
+ };
73
+
74
+ /**
75
+ * Describes the message blueapi.cover.v1.ReinviteUserResponse.
76
+ * Use `create(ReinviteUserResponseSchema)` to create a new message.
77
+ */
78
+ export const ReinviteUserResponseSchema: GenMessage<ReinviteUserResponse> = /*@__PURE__*/
79
+ messageDesc(file_cover_v1_cover, 1);
80
+
81
+ /**
82
+ * @generated from message blueapi.cover.v1.ListUsersRequest
83
+ */
84
+ export type ListUsersRequest = Message<"blueapi.cover.v1.ListUsersRequest"> & {
85
+ };
86
+
87
+ /**
88
+ * Describes the message blueapi.cover.v1.ListUsersRequest.
89
+ * Use `create(ListUsersRequestSchema)` to create a new message.
90
+ */
91
+ export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
92
+ messageDesc(file_cover_v1_cover, 2);
93
+
94
+ /**
95
+ * @generated from message blueapi.cover.v1.ListUsersResponse
96
+ */
97
+ export type ListUsersResponse = Message<"blueapi.cover.v1.ListUsersResponse"> & {
98
+ /**
99
+ * @generated from field: repeated blueapi.cover.v1.ListUsersResponse.UserSummary users = 1;
100
+ */
101
+ users: ListUsersResponse_UserSummary[];
102
+ };
103
+
104
+ /**
105
+ * Describes the message blueapi.cover.v1.ListUsersResponse.
106
+ * Use `create(ListUsersResponseSchema)` to create a new message.
107
+ */
108
+ export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
109
+ messageDesc(file_cover_v1_cover, 3);
110
+
111
+ /**
112
+ * @generated from message blueapi.cover.v1.ListUsersResponse.UserSummary
113
+ */
114
+ export type ListUsersResponse_UserSummary = Message<"blueapi.cover.v1.ListUsersResponse.UserSummary"> & {
115
+ /**
116
+ * @generated from field: string id = 1;
117
+ */
118
+ id: string;
119
+
120
+ /**
121
+ * @generated from field: string email = 2;
122
+ */
123
+ email: string;
124
+
125
+ /**
126
+ * @generated from field: string name = 3;
127
+ */
128
+ name: string;
129
+
130
+ /**
131
+ * @generated from field: repeated string roles = 4;
132
+ */
133
+ roles: string[];
134
+
135
+ /**
136
+ * @generated from field: bool activated = 5;
137
+ */
138
+ activated: boolean;
139
+ };
140
+
141
+ /**
142
+ * Describes the message blueapi.cover.v1.ListUsersResponse.UserSummary.
143
+ * Use `create(ListUsersResponse_UserSummarySchema)` to create a new message.
144
+ */
145
+ export const ListUsersResponse_UserSummarySchema: GenMessage<ListUsersResponse_UserSummary> = /*@__PURE__*/
146
+ messageDesc(file_cover_v1_cover, 3, 0);
147
+
148
+ /**
149
+ * @generated from message blueapi.cover.v1.UpdateUserRoleRequest
150
+ */
151
+ export type UpdateUserRoleRequest = Message<"blueapi.cover.v1.UpdateUserRoleRequest"> & {
152
+ /**
153
+ * @generated from field: string user_id = 1;
154
+ */
155
+ userId: string;
156
+
157
+ /**
158
+ * @generated from field: repeated string role_ids = 2;
159
+ */
160
+ roleIds: string[];
161
+
162
+ /**
163
+ * @generated from field: repeated string cost_group_ids = 3;
164
+ */
165
+ costGroupIds: string[];
166
+ };
167
+
168
+ /**
169
+ * Describes the message blueapi.cover.v1.UpdateUserRoleRequest.
170
+ * Use `create(UpdateUserRoleRequestSchema)` to create a new message.
171
+ */
172
+ export const UpdateUserRoleRequestSchema: GenMessage<UpdateUserRoleRequest> = /*@__PURE__*/
173
+ messageDesc(file_cover_v1_cover, 4);
174
+
175
+ /**
176
+ * @generated from message blueapi.cover.v1.UpdateUserRoleResponse
177
+ */
178
+ export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleResponse"> & {
179
+ };
180
+
181
+ /**
182
+ * Describes the message blueapi.cover.v1.UpdateUserRoleResponse.
183
+ * Use `create(UpdateUserRoleResponseSchema)` to create a new message.
184
+ */
185
+ export const UpdateUserRoleResponseSchema: GenMessage<UpdateUserRoleResponse> = /*@__PURE__*/
186
+ messageDesc(file_cover_v1_cover, 5);
187
+
188
+ /**
189
+ * @generated from message blueapi.cover.v1.DeleteUserRequest
190
+ */
191
+ export type DeleteUserRequest = Message<"blueapi.cover.v1.DeleteUserRequest"> & {
192
+ /**
193
+ * @generated from field: string id = 1;
194
+ */
195
+ id: string;
196
+ };
197
+
198
+ /**
199
+ * Describes the message blueapi.cover.v1.DeleteUserRequest.
200
+ * Use `create(DeleteUserRequestSchema)` to create a new message.
201
+ */
202
+ export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
203
+ messageDesc(file_cover_v1_cover, 6);
204
+
205
+ /**
206
+ * @generated from message blueapi.cover.v1.DeleteUserResponse
207
+ */
208
+ export type DeleteUserResponse = Message<"blueapi.cover.v1.DeleteUserResponse"> & {
209
+ };
210
+
211
+ /**
212
+ * Describes the message blueapi.cover.v1.DeleteUserResponse.
213
+ * Use `create(DeleteUserResponseSchema)` to create a new message.
214
+ */
215
+ export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
216
+ messageDesc(file_cover_v1_cover, 7);
217
+
218
+ /**
219
+ * @generated from message blueapi.cover.v1.InviteUsersRequest
220
+ */
221
+ export type InviteUsersRequest = Message<"blueapi.cover.v1.InviteUsersRequest"> & {
222
+ /**
223
+ * @generated from field: repeated string emails = 1;
224
+ */
225
+ emails: string[];
226
+
227
+ /**
228
+ * @generated from field: string role_id = 2;
229
+ */
230
+ roleId: string;
231
+
232
+ /**
233
+ * @generated from field: repeated string cost_group_ids = 3;
234
+ */
235
+ costGroupIds: string[];
236
+ };
237
+
238
+ /**
239
+ * Describes the message blueapi.cover.v1.InviteUsersRequest.
240
+ * Use `create(InviteUsersRequestSchema)` to create a new message.
241
+ */
242
+ export const InviteUsersRequestSchema: GenMessage<InviteUsersRequest> = /*@__PURE__*/
243
+ messageDesc(file_cover_v1_cover, 8);
244
+
245
+ /**
246
+ * @generated from message blueapi.cover.v1.InviteUsersResponse
247
+ */
248
+ export type InviteUsersResponse = Message<"blueapi.cover.v1.InviteUsersResponse"> & {
249
+ };
250
+
251
+ /**
252
+ * Describes the message blueapi.cover.v1.InviteUsersResponse.
253
+ * Use `create(InviteUsersResponseSchema)` to create a new message.
254
+ */
255
+ export const InviteUsersResponseSchema: GenMessage<InviteUsersResponse> = /*@__PURE__*/
256
+ messageDesc(file_cover_v1_cover, 9);
50
257
 
51
258
  /**
52
259
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
@@ -68,7 +275,7 @@ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRe
68
275
  * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
69
276
  */
70
277
  export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
71
- messageDesc(file_cover_v1_cover, 0);
278
+ messageDesc(file_cover_v1_cover, 10);
72
279
 
73
280
  /**
74
281
  * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
@@ -104,7 +311,7 @@ export enum ExecuteRecommendationV3Request_ExecuteType {
104
311
  * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
105
312
  */
106
313
  export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
107
- enumDesc(file_cover_v1_cover, 0, 0);
314
+ enumDesc(file_cover_v1_cover, 10, 0);
108
315
 
109
316
  /**
110
317
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
@@ -121,7 +328,7 @@ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteR
121
328
  * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
122
329
  */
123
330
  export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
124
- messageDesc(file_cover_v1_cover, 1);
331
+ messageDesc(file_cover_v1_cover, 11);
125
332
 
126
333
  /**
127
334
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -148,7 +355,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
148
355
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
149
356
  */
150
357
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
151
- messageDesc(file_cover_v1_cover, 2);
358
+ messageDesc(file_cover_v1_cover, 12);
152
359
 
153
360
  /**
154
361
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -255,7 +462,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
255
462
  * Use `create(RecommendationSummarySchema)` to create a new message.
256
463
  */
257
464
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
258
- messageDesc(file_cover_v1_cover, 3);
465
+ messageDesc(file_cover_v1_cover, 13);
259
466
 
260
467
  /**
261
468
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -272,7 +479,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
272
479
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
273
480
  */
274
481
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
275
- messageDesc(file_cover_v1_cover, 4);
482
+ messageDesc(file_cover_v1_cover, 14);
276
483
 
277
484
  /**
278
485
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -289,7 +496,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
289
496
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
290
497
  */
291
498
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
292
- messageDesc(file_cover_v1_cover, 5);
499
+ messageDesc(file_cover_v1_cover, 15);
293
500
 
294
501
  /**
295
502
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -406,7 +613,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
406
613
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
407
614
  */
408
615
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
409
- messageDesc(file_cover_v1_cover, 5, 0);
616
+ messageDesc(file_cover_v1_cover, 15, 0);
410
617
 
411
618
  /**
412
619
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -444,7 +651,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
444
651
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
445
652
  */
446
653
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
447
- messageDesc(file_cover_v1_cover, 6);
654
+ messageDesc(file_cover_v1_cover, 16);
448
655
 
449
656
  /**
450
657
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -470,7 +677,7 @@ export enum GetCostForecastsDataRequest_Granularity {
470
677
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
471
678
  */
472
679
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
473
- enumDesc(file_cover_v1_cover, 6, 0);
680
+ enumDesc(file_cover_v1_cover, 16, 0);
474
681
 
475
682
  /**
476
683
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -502,7 +709,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
502
709
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
503
710
  */
504
711
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
505
- messageDesc(file_cover_v1_cover, 7);
712
+ messageDesc(file_cover_v1_cover, 17);
506
713
 
507
714
  /**
508
715
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -515,7 +722,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
515
722
  * Use `create(ListForecastsRequestSchema)` to create a new message.
516
723
  */
517
724
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
518
- messageDesc(file_cover_v1_cover, 8);
725
+ messageDesc(file_cover_v1_cover, 18);
519
726
 
520
727
  /**
521
728
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -532,7 +739,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
532
739
  * Use `create(ListForecastsResponseSchema)` to create a new message.
533
740
  */
534
741
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
535
- messageDesc(file_cover_v1_cover, 9);
742
+ messageDesc(file_cover_v1_cover, 19);
536
743
 
537
744
  /**
538
745
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -586,7 +793,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
586
793
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
587
794
  */
588
795
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
589
- messageDesc(file_cover_v1_cover, 10);
796
+ messageDesc(file_cover_v1_cover, 20);
590
797
 
591
798
  /**
592
799
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -633,7 +840,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
633
840
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
634
841
  */
635
842
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
636
- messageDesc(file_cover_v1_cover, 11);
843
+ messageDesc(file_cover_v1_cover, 21);
637
844
 
638
845
  /**
639
846
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -652,7 +859,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
652
859
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
653
860
  */
654
861
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
655
- messageDesc(file_cover_v1_cover, 12);
862
+ messageDesc(file_cover_v1_cover, 22);
656
863
 
657
864
  /**
658
865
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -714,7 +921,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
714
921
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
715
922
  */
716
923
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
717
- messageDesc(file_cover_v1_cover, 13);
924
+ messageDesc(file_cover_v1_cover, 23);
718
925
 
719
926
  /**
720
927
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -775,7 +982,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
775
982
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
776
983
  */
777
984
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
778
- messageDesc(file_cover_v1_cover, 14);
985
+ messageDesc(file_cover_v1_cover, 24);
779
986
 
780
987
  /**
781
988
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -837,7 +1044,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
837
1044
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
838
1045
  */
839
1046
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
840
- messageDesc(file_cover_v1_cover, 15);
1047
+ messageDesc(file_cover_v1_cover, 25);
841
1048
 
842
1049
  /**
843
1050
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -856,7 +1063,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
856
1063
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
857
1064
  */
858
1065
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
859
- messageDesc(file_cover_v1_cover, 16);
1066
+ messageDesc(file_cover_v1_cover, 26);
860
1067
 
861
1068
  /**
862
1069
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -873,7 +1080,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
873
1080
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
874
1081
  */
875
1082
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
876
- messageDesc(file_cover_v1_cover, 17);
1083
+ messageDesc(file_cover_v1_cover, 27);
877
1084
 
878
1085
  /**
879
1086
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -905,7 +1112,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
905
1112
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
906
1113
  */
907
1114
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
908
- messageDesc(file_cover_v1_cover, 18);
1115
+ messageDesc(file_cover_v1_cover, 28);
909
1116
 
910
1117
  /**
911
1118
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -967,7 +1174,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
967
1174
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
968
1175
  */
969
1176
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
970
- messageDesc(file_cover_v1_cover, 19);
1177
+ messageDesc(file_cover_v1_cover, 29);
971
1178
 
972
1179
  /**
973
1180
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -993,7 +1200,7 @@ export enum GetCostUsageV2Request_Granularity {
993
1200
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
994
1201
  */
995
1202
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
996
- enumDesc(file_cover_v1_cover, 19, 0);
1203
+ enumDesc(file_cover_v1_cover, 29, 0);
997
1204
 
998
1205
  /**
999
1206
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -1019,7 +1226,7 @@ export enum GetCostUsageV2Request_Category {
1019
1226
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
1020
1227
  */
1021
1228
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
1022
- enumDesc(file_cover_v1_cover, 19, 1);
1229
+ enumDesc(file_cover_v1_cover, 29, 1);
1023
1230
 
1024
1231
  /**
1025
1232
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -1032,7 +1239,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
1032
1239
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
1033
1240
  */
1034
1241
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
1035
- messageDesc(file_cover_v1_cover, 20);
1242
+ messageDesc(file_cover_v1_cover, 30);
1036
1243
 
1037
1244
  /**
1038
1245
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -1045,7 +1252,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
1045
1252
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
1046
1253
  */
1047
1254
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
1048
- messageDesc(file_cover_v1_cover, 21);
1255
+ messageDesc(file_cover_v1_cover, 31);
1049
1256
 
1050
1257
  /**
1051
1258
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -1058,7 +1265,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
1058
1265
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
1059
1266
  */
1060
1267
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
1061
- messageDesc(file_cover_v1_cover, 22);
1268
+ messageDesc(file_cover_v1_cover, 32);
1062
1269
 
1063
1270
  /**
1064
1271
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1071,7 +1278,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1071
1278
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1072
1279
  */
1073
1280
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1074
- messageDesc(file_cover_v1_cover, 23);
1281
+ messageDesc(file_cover_v1_cover, 33);
1075
1282
 
1076
1283
  /**
1077
1284
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1128,7 +1335,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1128
1335
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1129
1336
  */
1130
1337
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1131
- messageDesc(file_cover_v1_cover, 24);
1338
+ messageDesc(file_cover_v1_cover, 34);
1132
1339
 
1133
1340
  /**
1134
1341
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1155,7 +1362,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1155
1362
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1156
1363
  */
1157
1364
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1158
- messageDesc(file_cover_v1_cover, 24, 0);
1365
+ messageDesc(file_cover_v1_cover, 34, 0);
1159
1366
 
1160
1367
  /**
1161
1368
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1181,7 +1388,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1181
1388
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1182
1389
  */
1183
1390
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1184
- enumDesc(file_cover_v1_cover, 24, 0, 0);
1391
+ enumDesc(file_cover_v1_cover, 34, 0, 0);
1185
1392
 
1186
1393
  /**
1187
1394
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1207,7 +1414,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1207
1414
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1208
1415
  */
1209
1416
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1210
- enumDesc(file_cover_v1_cover, 24, 0);
1417
+ enumDesc(file_cover_v1_cover, 34, 0);
1211
1418
 
1212
1419
  /**
1213
1420
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1243,7 +1450,7 @@ export enum ContainerCostUsageRequest_MetricType {
1243
1450
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1244
1451
  */
1245
1452
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1246
- enumDesc(file_cover_v1_cover, 24, 1);
1453
+ enumDesc(file_cover_v1_cover, 34, 1);
1247
1454
 
1248
1455
  /**
1249
1456
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1269,7 +1476,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1269
1476
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1270
1477
  */
1271
1478
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1272
- enumDesc(file_cover_v1_cover, 24, 2);
1479
+ enumDesc(file_cover_v1_cover, 34, 2);
1273
1480
 
1274
1481
  /**
1275
1482
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1301,7 +1508,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1301
1508
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1302
1509
  */
1303
1510
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1304
- messageDesc(file_cover_v1_cover, 25);
1511
+ messageDesc(file_cover_v1_cover, 35);
1305
1512
 
1306
1513
  /**
1307
1514
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1328,7 +1535,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1328
1535
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1329
1536
  */
1330
1537
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1331
- messageDesc(file_cover_v1_cover, 25, 0);
1538
+ messageDesc(file_cover_v1_cover, 35, 0);
1332
1539
 
1333
1540
  /**
1334
1541
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1370,7 +1577,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1370
1577
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1371
1578
  */
1372
1579
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1373
- messageDesc(file_cover_v1_cover, 25, 1);
1580
+ messageDesc(file_cover_v1_cover, 35, 1);
1374
1581
 
1375
1582
  /**
1376
1583
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1404,7 +1611,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1404
1611
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1405
1612
  */
1406
1613
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1407
- messageDesc(file_cover_v1_cover, 25, 2);
1614
+ messageDesc(file_cover_v1_cover, 35, 2);
1408
1615
 
1409
1616
  /**
1410
1617
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1431,7 +1638,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1431
1638
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1432
1639
  */
1433
1640
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1434
- messageDesc(file_cover_v1_cover, 25, 3);
1641
+ messageDesc(file_cover_v1_cover, 35, 3);
1435
1642
 
1436
1643
  /**
1437
1644
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1463,7 +1670,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1463
1670
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1464
1671
  */
1465
1672
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1466
- messageDesc(file_cover_v1_cover, 25, 4);
1673
+ messageDesc(file_cover_v1_cover, 35, 4);
1467
1674
 
1468
1675
  /**
1469
1676
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1485,7 +1692,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1485
1692
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1486
1693
  */
1487
1694
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1488
- messageDesc(file_cover_v1_cover, 25, 5);
1695
+ messageDesc(file_cover_v1_cover, 35, 5);
1489
1696
 
1490
1697
  /**
1491
1698
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1532,7 +1739,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1532
1739
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1533
1740
  */
1534
1741
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1535
- messageDesc(file_cover_v1_cover, 26);
1742
+ messageDesc(file_cover_v1_cover, 36);
1536
1743
 
1537
1744
  /**
1538
1745
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1567,7 +1774,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1567
1774
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1568
1775
  */
1569
1776
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1570
- messageDesc(file_cover_v1_cover, 26, 0);
1777
+ messageDesc(file_cover_v1_cover, 36, 0);
1571
1778
 
1572
1779
  /**
1573
1780
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1593,7 +1800,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1593
1800
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1594
1801
  */
1595
1802
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1596
- enumDesc(file_cover_v1_cover, 26, 0, 0);
1803
+ enumDesc(file_cover_v1_cover, 36, 0, 0);
1597
1804
 
1598
1805
  /**
1599
1806
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1619,7 +1826,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1619
1826
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1620
1827
  */
1621
1828
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1622
- enumDesc(file_cover_v1_cover, 26, 0);
1829
+ enumDesc(file_cover_v1_cover, 36, 0);
1623
1830
 
1624
1831
  /**
1625
1832
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1636,7 +1843,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1636
1843
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1637
1844
  */
1638
1845
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1639
- messageDesc(file_cover_v1_cover, 27);
1846
+ messageDesc(file_cover_v1_cover, 37);
1640
1847
 
1641
1848
  /**
1642
1849
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1658,7 +1865,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1658
1865
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1659
1866
  */
1660
1867
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
1661
- messageDesc(file_cover_v1_cover, 27, 0);
1868
+ messageDesc(file_cover_v1_cover, 37, 0);
1662
1869
 
1663
1870
  /**
1664
1871
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -1680,7 +1887,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
1680
1887
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
1681
1888
  */
1682
1889
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
1683
- messageDesc(file_cover_v1_cover, 27, 1);
1890
+ messageDesc(file_cover_v1_cover, 37, 1);
1684
1891
 
1685
1892
  /**
1686
1893
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -1707,7 +1914,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
1707
1914
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
1708
1915
  */
1709
1916
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
1710
- messageDesc(file_cover_v1_cover, 27, 2);
1917
+ messageDesc(file_cover_v1_cover, 37, 2);
1711
1918
 
1712
1919
  /**
1713
1920
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -1729,7 +1936,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
1729
1936
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
1730
1937
  */
1731
1938
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
1732
- messageDesc(file_cover_v1_cover, 27, 3);
1939
+ messageDesc(file_cover_v1_cover, 37, 3);
1733
1940
 
1734
1941
  /**
1735
1942
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -1742,7 +1949,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
1742
1949
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
1743
1950
  */
1744
1951
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
1745
- messageDesc(file_cover_v1_cover, 28);
1952
+ messageDesc(file_cover_v1_cover, 38);
1746
1953
 
1747
1954
  /**
1748
1955
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -1769,7 +1976,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
1769
1976
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
1770
1977
  */
1771
1978
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
1772
- messageDesc(file_cover_v1_cover, 29);
1979
+ messageDesc(file_cover_v1_cover, 39);
1773
1980
 
1774
1981
  /**
1775
1982
  * Only supports gcp for now.
@@ -1797,7 +2004,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
1797
2004
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
1798
2005
  */
1799
2006
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
1800
- messageDesc(file_cover_v1_cover, 30);
2007
+ messageDesc(file_cover_v1_cover, 40);
1801
2008
 
1802
2009
  /**
1803
2010
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -1814,7 +2021,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
1814
2021
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
1815
2022
  */
1816
2023
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
1817
- messageDesc(file_cover_v1_cover, 31);
2024
+ messageDesc(file_cover_v1_cover, 41);
1818
2025
 
1819
2026
  /**
1820
2027
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -1846,7 +2053,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
1846
2053
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
1847
2054
  */
1848
2055
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
1849
- messageDesc(file_cover_v1_cover, 32);
2056
+ messageDesc(file_cover_v1_cover, 42);
1850
2057
 
1851
2058
  /**
1852
2059
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -1863,7 +2070,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
1863
2070
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
1864
2071
  */
1865
2072
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
1866
- messageDesc(file_cover_v1_cover, 33);
2073
+ messageDesc(file_cover_v1_cover, 43);
1867
2074
 
1868
2075
  /**
1869
2076
  * Request message for OnboardOrg
@@ -1897,7 +2104,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
1897
2104
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
1898
2105
  */
1899
2106
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
1900
- messageDesc(file_cover_v1_cover, 34);
2107
+ messageDesc(file_cover_v1_cover, 44);
1901
2108
 
1902
2109
  /**
1903
2110
  * Response message for OnboardOrg
@@ -1916,7 +2123,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
1916
2123
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
1917
2124
  */
1918
2125
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
1919
- messageDesc(file_cover_v1_cover, 35);
2126
+ messageDesc(file_cover_v1_cover, 45);
1920
2127
 
1921
2128
  /**
1922
2129
  * Request message for InviteMember
@@ -1945,7 +2152,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
1945
2152
  * Use `create(InviteMemberRequestSchema)` to create a new message.
1946
2153
  */
1947
2154
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
1948
- messageDesc(file_cover_v1_cover, 36);
2155
+ messageDesc(file_cover_v1_cover, 46);
1949
2156
 
1950
2157
  /**
1951
2158
  * Response message for InviteMember
@@ -1964,7 +2171,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
1964
2171
  * Use `create(InviteMemberResponseSchema)` to create a new message.
1965
2172
  */
1966
2173
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
1967
- messageDesc(file_cover_v1_cover, 37);
2174
+ messageDesc(file_cover_v1_cover, 47);
1968
2175
 
1969
2176
  /**
1970
2177
  * Request message for ActivateUser
@@ -2022,7 +2229,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
2022
2229
  * Use `create(ActivateUserRequestSchema)` to create a new message.
2023
2230
  */
2024
2231
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
2025
- messageDesc(file_cover_v1_cover, 38);
2232
+ messageDesc(file_cover_v1_cover, 48);
2026
2233
 
2027
2234
  /**
2028
2235
  * Response message for ActivateUser
@@ -2041,7 +2248,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
2041
2248
  * Use `create(ActivateUserResponseSchema)` to create a new message.
2042
2249
  */
2043
2250
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
2044
- messageDesc(file_cover_v1_cover, 39);
2251
+ messageDesc(file_cover_v1_cover, 49);
2045
2252
 
2046
2253
  /**
2047
2254
  * Request message for CreateMember
@@ -2075,7 +2282,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2075
2282
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2076
2283
  */
2077
2284
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2078
- messageDesc(file_cover_v1_cover, 40);
2285
+ messageDesc(file_cover_v1_cover, 50);
2079
2286
 
2080
2287
  /**
2081
2288
  * Response message for CreateMember
@@ -2094,7 +2301,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2094
2301
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2095
2302
  */
2096
2303
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2097
- messageDesc(file_cover_v1_cover, 41);
2304
+ messageDesc(file_cover_v1_cover, 51);
2098
2305
 
2099
2306
  /**
2100
2307
  * Request message for GetMembers
@@ -2109,7 +2316,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2109
2316
  * Use `create(GetMembersRequestSchema)` to create a new message.
2110
2317
  */
2111
2318
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2112
- messageDesc(file_cover_v1_cover, 42);
2319
+ messageDesc(file_cover_v1_cover, 52);
2113
2320
 
2114
2321
  /**
2115
2322
  * Response message for GetMembers
@@ -2128,7 +2335,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2128
2335
  * Use `create(GetMembersResponseSchema)` to create a new message.
2129
2336
  */
2130
2337
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2131
- messageDesc(file_cover_v1_cover, 43);
2338
+ messageDesc(file_cover_v1_cover, 53);
2132
2339
 
2133
2340
  /**
2134
2341
  * Request message for GetMemberDetails
@@ -2149,7 +2356,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2149
2356
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2150
2357
  */
2151
2358
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2152
- messageDesc(file_cover_v1_cover, 44);
2359
+ messageDesc(file_cover_v1_cover, 54);
2153
2360
 
2154
2361
  /**
2155
2362
  * Response message for GetMemberDetails
@@ -2168,7 +2375,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2168
2375
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2169
2376
  */
2170
2377
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2171
- messageDesc(file_cover_v1_cover, 45);
2378
+ messageDesc(file_cover_v1_cover, 55);
2172
2379
 
2173
2380
  /**
2174
2381
  * Request message for GetMemberCostGroup
@@ -2189,7 +2396,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2189
2396
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2190
2397
  */
2191
2398
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2192
- messageDesc(file_cover_v1_cover, 46);
2399
+ messageDesc(file_cover_v1_cover, 56);
2193
2400
 
2194
2401
  /**
2195
2402
  * Response message for GetMemberCostGroup
@@ -2208,7 +2415,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2208
2415
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2209
2416
  */
2210
2417
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2211
- messageDesc(file_cover_v1_cover, 47);
2418
+ messageDesc(file_cover_v1_cover, 57);
2212
2419
 
2213
2420
  /**
2214
2421
  * Request message for UpdateMemberPermission
@@ -2236,7 +2443,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2236
2443
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2237
2444
  */
2238
2445
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2239
- messageDesc(file_cover_v1_cover, 48);
2446
+ messageDesc(file_cover_v1_cover, 58);
2240
2447
 
2241
2448
  /**
2242
2449
  * Response message for UpdateMemberPermission
@@ -2255,7 +2462,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2255
2462
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2256
2463
  */
2257
2464
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2258
- messageDesc(file_cover_v1_cover, 49);
2465
+ messageDesc(file_cover_v1_cover, 59);
2259
2466
 
2260
2467
  /**
2261
2468
  * Request message for GetUserDetails
@@ -2270,7 +2477,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2270
2477
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2271
2478
  */
2272
2479
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2273
- messageDesc(file_cover_v1_cover, 50);
2480
+ messageDesc(file_cover_v1_cover, 60);
2274
2481
 
2275
2482
  /**
2276
2483
  * Response message for GetUserDetails
@@ -2289,7 +2496,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2289
2496
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2290
2497
  */
2291
2498
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2292
- messageDesc(file_cover_v1_cover, 51);
2499
+ messageDesc(file_cover_v1_cover, 61);
2293
2500
 
2294
2501
  /**
2295
2502
  * Request message for UpdateUserAvatar
@@ -2308,7 +2515,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2308
2515
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2309
2516
  */
2310
2517
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2311
- messageDesc(file_cover_v1_cover, 52);
2518
+ messageDesc(file_cover_v1_cover, 62);
2312
2519
 
2313
2520
  /**
2314
2521
  * Response message for UpdateUserAvatar
@@ -2327,7 +2534,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2327
2534
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2328
2535
  */
2329
2536
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2330
- messageDesc(file_cover_v1_cover, 53);
2537
+ messageDesc(file_cover_v1_cover, 63);
2331
2538
 
2332
2539
  /**
2333
2540
  * Request message for UpdateUserIcon
@@ -2346,7 +2553,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2346
2553
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2347
2554
  */
2348
2555
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2349
- messageDesc(file_cover_v1_cover, 54);
2556
+ messageDesc(file_cover_v1_cover, 64);
2350
2557
 
2351
2558
  /**
2352
2559
  * Response message for UpdateUserIcon
@@ -2365,7 +2572,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2365
2572
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2366
2573
  */
2367
2574
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2368
- messageDesc(file_cover_v1_cover, 55);
2575
+ messageDesc(file_cover_v1_cover, 65);
2369
2576
 
2370
2577
  /**
2371
2578
  * Request message for UpdateUserColorTheme
@@ -2384,7 +2591,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2384
2591
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2385
2592
  */
2386
2593
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2387
- messageDesc(file_cover_v1_cover, 56);
2594
+ messageDesc(file_cover_v1_cover, 66);
2388
2595
 
2389
2596
  /**
2390
2597
  * Response message for UpdateUserColorTheme
@@ -2403,7 +2610,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2403
2610
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2404
2611
  */
2405
2612
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2406
- messageDesc(file_cover_v1_cover, 57);
2613
+ messageDesc(file_cover_v1_cover, 67);
2407
2614
 
2408
2615
  /**
2409
2616
  * Request message for UpdateUserName
@@ -2422,7 +2629,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2422
2629
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2423
2630
  */
2424
2631
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2425
- messageDesc(file_cover_v1_cover, 58);
2632
+ messageDesc(file_cover_v1_cover, 68);
2426
2633
 
2427
2634
  /**
2428
2635
  * Response message for UpdateUserName
@@ -2441,7 +2648,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2441
2648
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2442
2649
  */
2443
2650
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2444
- messageDesc(file_cover_v1_cover, 59);
2651
+ messageDesc(file_cover_v1_cover, 69);
2445
2652
 
2446
2653
  /**
2447
2654
  * Request message for UpdateUserEmail
@@ -2460,7 +2667,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2460
2667
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2461
2668
  */
2462
2669
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2463
- messageDesc(file_cover_v1_cover, 60);
2670
+ messageDesc(file_cover_v1_cover, 70);
2464
2671
 
2465
2672
  /**
2466
2673
  * Response message for UpdateUserEmail
@@ -2479,7 +2686,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2479
2686
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2480
2687
  */
2481
2688
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2482
- messageDesc(file_cover_v1_cover, 61);
2689
+ messageDesc(file_cover_v1_cover, 71);
2483
2690
 
2484
2691
  /**
2485
2692
  * Request message for UpdateUserMainView
@@ -2498,7 +2705,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2498
2705
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2499
2706
  */
2500
2707
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2501
- messageDesc(file_cover_v1_cover, 62);
2708
+ messageDesc(file_cover_v1_cover, 72);
2502
2709
 
2503
2710
  /**
2504
2711
  * Response message for UpdateUserMainView
@@ -2517,7 +2724,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2517
2724
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2518
2725
  */
2519
2726
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2520
- messageDesc(file_cover_v1_cover, 63);
2727
+ messageDesc(file_cover_v1_cover, 73);
2521
2728
 
2522
2729
  /**
2523
2730
  * Request message for ResetUserPassword
@@ -2541,7 +2748,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2541
2748
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2542
2749
  */
2543
2750
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2544
- messageDesc(file_cover_v1_cover, 64);
2751
+ messageDesc(file_cover_v1_cover, 74);
2545
2752
 
2546
2753
  /**
2547
2754
  * Response message for ResetUserPassword
@@ -2560,7 +2767,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2560
2767
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2561
2768
  */
2562
2769
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2563
- messageDesc(file_cover_v1_cover, 65);
2770
+ messageDesc(file_cover_v1_cover, 75);
2564
2771
 
2565
2772
  /**
2566
2773
  * Request message for UpdateUserLocale
@@ -2579,7 +2786,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2579
2786
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2580
2787
  */
2581
2788
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2582
- messageDesc(file_cover_v1_cover, 66);
2789
+ messageDesc(file_cover_v1_cover, 76);
2583
2790
 
2584
2791
  /**
2585
2792
  * Response message for UpdateUserLocale
@@ -2598,7 +2805,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2598
2805
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2599
2806
  */
2600
2807
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2601
- messageDesc(file_cover_v1_cover, 67);
2808
+ messageDesc(file_cover_v1_cover, 77);
2602
2809
 
2603
2810
  /**
2604
2811
  * Request message for UpdateUserAppTheme
@@ -2617,7 +2824,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2617
2824
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2618
2825
  */
2619
2826
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2620
- messageDesc(file_cover_v1_cover, 68);
2827
+ messageDesc(file_cover_v1_cover, 78);
2621
2828
 
2622
2829
  /**
2623
2830
  * Response message for UpdateUserAppTheme
@@ -2636,7 +2843,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2636
2843
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2637
2844
  */
2638
2845
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2639
- messageDesc(file_cover_v1_cover, 69);
2846
+ messageDesc(file_cover_v1_cover, 79);
2640
2847
 
2641
2848
  /**
2642
2849
  * Request message for UpdateUserTimezone
@@ -2660,7 +2867,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
2660
2867
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
2661
2868
  */
2662
2869
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
2663
- messageDesc(file_cover_v1_cover, 70);
2870
+ messageDesc(file_cover_v1_cover, 80);
2664
2871
 
2665
2872
  /**
2666
2873
  * Response message for UpdateUserTimezone
@@ -2679,7 +2886,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
2679
2886
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
2680
2887
  */
2681
2888
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
2682
- messageDesc(file_cover_v1_cover, 71);
2889
+ messageDesc(file_cover_v1_cover, 81);
2683
2890
 
2684
2891
  /**
2685
2892
  * Request message for UpdateUserAttributes
@@ -2698,7 +2905,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
2698
2905
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
2699
2906
  */
2700
2907
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
2701
- messageDesc(file_cover_v1_cover, 72);
2908
+ messageDesc(file_cover_v1_cover, 82);
2702
2909
 
2703
2910
  /**
2704
2911
  * Response message for UpdateUserAttributes
@@ -2717,7 +2924,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
2717
2924
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
2718
2925
  */
2719
2926
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
2720
- messageDesc(file_cover_v1_cover, 73);
2927
+ messageDesc(file_cover_v1_cover, 83);
2721
2928
 
2722
2929
  /**
2723
2930
  * Request message for DeleteMember
@@ -2738,7 +2945,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
2738
2945
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
2739
2946
  */
2740
2947
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
2741
- messageDesc(file_cover_v1_cover, 74);
2948
+ messageDesc(file_cover_v1_cover, 84);
2742
2949
 
2743
2950
  /**
2744
2951
  * Response message for DeleteMember
@@ -2757,7 +2964,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
2757
2964
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
2758
2965
  */
2759
2966
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
2760
- messageDesc(file_cover_v1_cover, 75);
2967
+ messageDesc(file_cover_v1_cover, 85);
2761
2968
 
2762
2969
  /**
2763
2970
  * Request message for ResetPassword
@@ -2778,7 +2985,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
2778
2985
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
2779
2986
  */
2780
2987
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
2781
- messageDesc(file_cover_v1_cover, 76);
2988
+ messageDesc(file_cover_v1_cover, 86);
2782
2989
 
2783
2990
  /**
2784
2991
  * Response message for ResetPassword
@@ -2797,7 +3004,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
2797
3004
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
2798
3005
  */
2799
3006
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
2800
- messageDesc(file_cover_v1_cover, 77);
3007
+ messageDesc(file_cover_v1_cover, 87);
2801
3008
 
2802
3009
  /**
2803
3010
  * Request message for CreateView
@@ -2856,7 +3063,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
2856
3063
  * Use `create(CreateViewRequestSchema)` to create a new message.
2857
3064
  */
2858
3065
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
2859
- messageDesc(file_cover_v1_cover, 78);
3066
+ messageDesc(file_cover_v1_cover, 88);
2860
3067
 
2861
3068
  /**
2862
3069
  * Response message for CreateView
@@ -2875,7 +3082,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
2875
3082
  * Use `create(CreateViewResponseSchema)` to create a new message.
2876
3083
  */
2877
3084
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
2878
- messageDesc(file_cover_v1_cover, 79);
3085
+ messageDesc(file_cover_v1_cover, 89);
2879
3086
 
2880
3087
  /**
2881
3088
  * Request message for GetViews
@@ -2890,7 +3097,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
2890
3097
  * Use `create(GetViewsRequestSchema)` to create a new message.
2891
3098
  */
2892
3099
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
2893
- messageDesc(file_cover_v1_cover, 80);
3100
+ messageDesc(file_cover_v1_cover, 90);
2894
3101
 
2895
3102
  /**
2896
3103
  * Response message for GetViews
@@ -2909,7 +3116,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
2909
3116
  * Use `create(GetViewsResponseSchema)` to create a new message.
2910
3117
  */
2911
3118
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
2912
- messageDesc(file_cover_v1_cover, 81);
3119
+ messageDesc(file_cover_v1_cover, 91);
2913
3120
 
2914
3121
  /**
2915
3122
  * Request message for GetCurrentView
@@ -2930,7 +3137,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
2930
3137
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
2931
3138
  */
2932
3139
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
2933
- messageDesc(file_cover_v1_cover, 82);
3140
+ messageDesc(file_cover_v1_cover, 92);
2934
3141
 
2935
3142
  /**
2936
3143
  * Response message for GetCurrentView
@@ -2949,7 +3156,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
2949
3156
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
2950
3157
  */
2951
3158
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
2952
- messageDesc(file_cover_v1_cover, 83);
3159
+ messageDesc(file_cover_v1_cover, 93);
2953
3160
 
2954
3161
  /**
2955
3162
  * Request message for GetFavoriteViews
@@ -2964,7 +3171,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
2964
3171
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
2965
3172
  */
2966
3173
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
2967
- messageDesc(file_cover_v1_cover, 84);
3174
+ messageDesc(file_cover_v1_cover, 94);
2968
3175
 
2969
3176
  /**
2970
3177
  * Response message for GetFavoriteViews
@@ -2983,7 +3190,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
2983
3190
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
2984
3191
  */
2985
3192
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
2986
- messageDesc(file_cover_v1_cover, 85);
3193
+ messageDesc(file_cover_v1_cover, 95);
2987
3194
 
2988
3195
  /**
2989
3196
  * Request message for PublishView
@@ -3004,7 +3211,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
3004
3211
  * Use `create(PublishViewRequestSchema)` to create a new message.
3005
3212
  */
3006
3213
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
3007
- messageDesc(file_cover_v1_cover, 86);
3214
+ messageDesc(file_cover_v1_cover, 96);
3008
3215
 
3009
3216
  /**
3010
3217
  * Response message for PublishView
@@ -3023,7 +3230,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
3023
3230
  * Use `create(PublishViewResponseSchema)` to create a new message.
3024
3231
  */
3025
3232
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
3026
- messageDesc(file_cover_v1_cover, 87);
3233
+ messageDesc(file_cover_v1_cover, 97);
3027
3234
 
3028
3235
  /**
3029
3236
  * Request message for AddFavorite
@@ -3044,7 +3251,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
3044
3251
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
3045
3252
  */
3046
3253
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
3047
- messageDesc(file_cover_v1_cover, 88);
3254
+ messageDesc(file_cover_v1_cover, 98);
3048
3255
 
3049
3256
  /**
3050
3257
  * Response message for AddFavorite
@@ -3063,7 +3270,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
3063
3270
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
3064
3271
  */
3065
3272
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
3066
- messageDesc(file_cover_v1_cover, 89);
3273
+ messageDesc(file_cover_v1_cover, 99);
3067
3274
 
3068
3275
  /**
3069
3276
  * Request message for RemoveFavorite
@@ -3084,7 +3291,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3084
3291
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3085
3292
  */
3086
3293
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3087
- messageDesc(file_cover_v1_cover, 90);
3294
+ messageDesc(file_cover_v1_cover, 100);
3088
3295
 
3089
3296
  /**
3090
3297
  * Response message for RemoveFavorite
@@ -3103,7 +3310,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3103
3310
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3104
3311
  */
3105
3312
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3106
- messageDesc(file_cover_v1_cover, 91);
3313
+ messageDesc(file_cover_v1_cover, 101);
3107
3314
 
3108
3315
  /**
3109
3316
  * Request message for UpdateView
@@ -3154,7 +3361,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3154
3361
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3155
3362
  */
3156
3363
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3157
- messageDesc(file_cover_v1_cover, 92);
3364
+ messageDesc(file_cover_v1_cover, 102);
3158
3365
 
3159
3366
  /**
3160
3367
  * Response message for UpdateView
@@ -3173,7 +3380,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3173
3380
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3174
3381
  */
3175
3382
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3176
- messageDesc(file_cover_v1_cover, 93);
3383
+ messageDesc(file_cover_v1_cover, 103);
3177
3384
 
3178
3385
  /**
3179
3386
  * Request message for UpdateViewLayout
@@ -3199,7 +3406,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3199
3406
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3200
3407
  */
3201
3408
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3202
- messageDesc(file_cover_v1_cover, 94);
3409
+ messageDesc(file_cover_v1_cover, 104);
3203
3410
 
3204
3411
  /**
3205
3412
  * Response message for UpdateViewLayout
@@ -3218,7 +3425,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3218
3425
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3219
3426
  */
3220
3427
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3221
- messageDesc(file_cover_v1_cover, 95);
3428
+ messageDesc(file_cover_v1_cover, 105);
3222
3429
 
3223
3430
  /**
3224
3431
  * Request message for UpdateViewWidget
@@ -3256,7 +3463,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3256
3463
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3257
3464
  */
3258
3465
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3259
- messageDesc(file_cover_v1_cover, 96);
3466
+ messageDesc(file_cover_v1_cover, 106);
3260
3467
 
3261
3468
  /**
3262
3469
  * Response message for UpdateViewWidget
@@ -3280,7 +3487,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3280
3487
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3281
3488
  */
3282
3489
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3283
- messageDesc(file_cover_v1_cover, 97);
3490
+ messageDesc(file_cover_v1_cover, 107);
3284
3491
 
3285
3492
  /**
3286
3493
  * Request message for UpdateViewColorTheme
@@ -3304,7 +3511,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3304
3511
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3305
3512
  */
3306
3513
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3307
- messageDesc(file_cover_v1_cover, 98);
3514
+ messageDesc(file_cover_v1_cover, 108);
3308
3515
 
3309
3516
  /**
3310
3517
  * Response message for UpdateViewColorTheme
@@ -3323,7 +3530,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3323
3530
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3324
3531
  */
3325
3532
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3326
- messageDesc(file_cover_v1_cover, 99);
3533
+ messageDesc(file_cover_v1_cover, 109);
3327
3534
 
3328
3535
  /**
3329
3536
  * Request message for UpdateViewCurrency
@@ -3347,7 +3554,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3347
3554
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3348
3555
  */
3349
3556
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3350
- messageDesc(file_cover_v1_cover, 100);
3557
+ messageDesc(file_cover_v1_cover, 110);
3351
3558
 
3352
3559
  /**
3353
3560
  * Response message for UpdateViewCurrency
@@ -3366,7 +3573,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3366
3573
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3367
3574
  */
3368
3575
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3369
- messageDesc(file_cover_v1_cover, 101);
3576
+ messageDesc(file_cover_v1_cover, 111);
3370
3577
 
3371
3578
  /**
3372
3579
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3385,7 +3592,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3385
3592
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3386
3593
  */
3387
3594
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3388
- messageDesc(file_cover_v1_cover, 102);
3595
+ messageDesc(file_cover_v1_cover, 112);
3389
3596
 
3390
3597
  /**
3391
3598
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3402,7 +3609,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3402
3609
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3403
3610
  */
3404
3611
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3405
- messageDesc(file_cover_v1_cover, 103);
3612
+ messageDesc(file_cover_v1_cover, 113);
3406
3613
 
3407
3614
  /**
3408
3615
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3415,7 +3622,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3415
3622
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3416
3623
  */
3417
3624
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3418
- messageDesc(file_cover_v1_cover, 104);
3625
+ messageDesc(file_cover_v1_cover, 114);
3419
3626
 
3420
3627
  /**
3421
3628
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3442,7 +3649,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3442
3649
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3443
3650
  */
3444
3651
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3445
- messageDesc(file_cover_v1_cover, 105);
3652
+ messageDesc(file_cover_v1_cover, 115);
3446
3653
 
3447
3654
  /**
3448
3655
  * Request message for ListExchangeRates
@@ -3470,7 +3677,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3470
3677
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3471
3678
  */
3472
3679
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3473
- messageDesc(file_cover_v1_cover, 106);
3680
+ messageDesc(file_cover_v1_cover, 116);
3474
3681
 
3475
3682
  /**
3476
3683
  * Response message for ListExchangeRates
@@ -3494,7 +3701,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3494
3701
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3495
3702
  */
3496
3703
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3497
- messageDesc(file_cover_v1_cover, 107);
3704
+ messageDesc(file_cover_v1_cover, 117);
3498
3705
 
3499
3706
  /**
3500
3707
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3521,7 +3728,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3521
3728
  * Use `create(ExchangeRatesSchema)` to create a new message.
3522
3729
  */
3523
3730
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3524
- messageDesc(file_cover_v1_cover, 108);
3731
+ messageDesc(file_cover_v1_cover, 118);
3525
3732
 
3526
3733
  /**
3527
3734
  * Request message for DeleteView
@@ -3542,7 +3749,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3542
3749
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3543
3750
  */
3544
3751
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3545
- messageDesc(file_cover_v1_cover, 109);
3752
+ messageDesc(file_cover_v1_cover, 119);
3546
3753
 
3547
3754
  /**
3548
3755
  * Response message for DeleteView
@@ -3561,7 +3768,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3561
3768
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3562
3769
  */
3563
3770
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3564
- messageDesc(file_cover_v1_cover, 110);
3771
+ messageDesc(file_cover_v1_cover, 120);
3565
3772
 
3566
3773
  /**
3567
3774
  * Request message for UpdateSideMenuState
@@ -3587,7 +3794,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3587
3794
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3588
3795
  */
3589
3796
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3590
- messageDesc(file_cover_v1_cover, 111);
3797
+ messageDesc(file_cover_v1_cover, 121);
3591
3798
 
3592
3799
  /**
3593
3800
  * Response message for UpdateSideMenuState
@@ -3606,7 +3813,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3606
3813
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3607
3814
  */
3608
3815
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3609
- messageDesc(file_cover_v1_cover, 112);
3816
+ messageDesc(file_cover_v1_cover, 122);
3610
3817
 
3611
3818
  /**
3612
3819
  * Request message for AddSideMenuFavorite
@@ -3632,7 +3839,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3632
3839
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3633
3840
  */
3634
3841
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3635
- messageDesc(file_cover_v1_cover, 113);
3842
+ messageDesc(file_cover_v1_cover, 123);
3636
3843
 
3637
3844
  /**
3638
3845
  * Response message for AddSideMenuFavorite
@@ -3651,7 +3858,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3651
3858
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3652
3859
  */
3653
3860
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3654
- messageDesc(file_cover_v1_cover, 114);
3861
+ messageDesc(file_cover_v1_cover, 124);
3655
3862
 
3656
3863
  /**
3657
3864
  * Request message for RemoveSideMenuFavorite
@@ -3677,7 +3884,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
3677
3884
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
3678
3885
  */
3679
3886
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
3680
- messageDesc(file_cover_v1_cover, 115);
3887
+ messageDesc(file_cover_v1_cover, 125);
3681
3888
 
3682
3889
  /**
3683
3890
  * Response message for RemoveSideMenuFavorite
@@ -3696,7 +3903,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
3696
3903
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
3697
3904
  */
3698
3905
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
3699
- messageDesc(file_cover_v1_cover, 116);
3906
+ messageDesc(file_cover_v1_cover, 126);
3700
3907
 
3701
3908
  /**
3702
3909
  * Request message for CreateCostGroup
@@ -3745,7 +3952,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
3745
3952
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
3746
3953
  */
3747
3954
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
3748
- messageDesc(file_cover_v1_cover, 117);
3955
+ messageDesc(file_cover_v1_cover, 127);
3749
3956
 
3750
3957
  /**
3751
3958
  * Response message for CreateCostGroup
@@ -3764,7 +3971,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
3764
3971
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
3765
3972
  */
3766
3973
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
3767
- messageDesc(file_cover_v1_cover, 118);
3974
+ messageDesc(file_cover_v1_cover, 128);
3768
3975
 
3769
3976
  /**
3770
3977
  * Request message for GetCostGroups
@@ -3779,7 +3986,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
3779
3986
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
3780
3987
  */
3781
3988
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
3782
- messageDesc(file_cover_v1_cover, 119);
3989
+ messageDesc(file_cover_v1_cover, 129);
3783
3990
 
3784
3991
  /**
3785
3992
  * Response message for GetCostGroups
@@ -3798,7 +4005,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
3798
4005
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
3799
4006
  */
3800
4007
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
3801
- messageDesc(file_cover_v1_cover, 120);
4008
+ messageDesc(file_cover_v1_cover, 130);
3802
4009
 
3803
4010
  /**
3804
4011
  * Request message for GetCostGroupDetails
@@ -3819,7 +4026,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
3819
4026
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
3820
4027
  */
3821
4028
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
3822
- messageDesc(file_cover_v1_cover, 121);
4029
+ messageDesc(file_cover_v1_cover, 131);
3823
4030
 
3824
4031
  /**
3825
4032
  * Response message for GetCostGroupDetails
@@ -3838,7 +4045,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
3838
4045
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
3839
4046
  */
3840
4047
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
3841
- messageDesc(file_cover_v1_cover, 122);
4048
+ messageDesc(file_cover_v1_cover, 132);
3842
4049
 
3843
4050
  /**
3844
4051
  * Request message for UpdateCostGroupName
@@ -3866,7 +4073,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
3866
4073
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
3867
4074
  */
3868
4075
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
3869
- messageDesc(file_cover_v1_cover, 123);
4076
+ messageDesc(file_cover_v1_cover, 133);
3870
4077
 
3871
4078
  /**
3872
4079
  * Response message for UpdateCostGroupName
@@ -3885,7 +4092,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
3885
4092
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
3886
4093
  */
3887
4094
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
3888
- messageDesc(file_cover_v1_cover, 124);
4095
+ messageDesc(file_cover_v1_cover, 134);
3889
4096
 
3890
4097
  /**
3891
4098
  * Request message for UpdateCostGroupDescription
@@ -3913,7 +4120,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
3913
4120
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
3914
4121
  */
3915
4122
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
3916
- messageDesc(file_cover_v1_cover, 125);
4123
+ messageDesc(file_cover_v1_cover, 135);
3917
4124
 
3918
4125
  /**
3919
4126
  * Response message for UpdateCostGroupDescription
@@ -3932,7 +4139,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
3932
4139
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
3933
4140
  */
3934
4141
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
3935
- messageDesc(file_cover_v1_cover, 126);
4142
+ messageDesc(file_cover_v1_cover, 136);
3936
4143
 
3937
4144
  /**
3938
4145
  * Request message for UpdateCostGroupImage
@@ -3960,7 +4167,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
3960
4167
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
3961
4168
  */
3962
4169
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
3963
- messageDesc(file_cover_v1_cover, 127);
4170
+ messageDesc(file_cover_v1_cover, 137);
3964
4171
 
3965
4172
  /**
3966
4173
  * Response message for UpdateCostGroupImage
@@ -3979,7 +4186,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
3979
4186
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
3980
4187
  */
3981
4188
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
3982
- messageDesc(file_cover_v1_cover, 128);
4189
+ messageDesc(file_cover_v1_cover, 138);
3983
4190
 
3984
4191
  /**
3985
4192
  * Request message for UpdateCostGroupIcon
@@ -4007,7 +4214,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
4007
4214
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
4008
4215
  */
4009
4216
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
4010
- messageDesc(file_cover_v1_cover, 129);
4217
+ messageDesc(file_cover_v1_cover, 139);
4011
4218
 
4012
4219
  /**
4013
4220
  * Response message for UpdateCostGroupIcon
@@ -4026,7 +4233,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
4026
4233
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
4027
4234
  */
4028
4235
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
4029
- messageDesc(file_cover_v1_cover, 130);
4236
+ messageDesc(file_cover_v1_cover, 140);
4030
4237
 
4031
4238
  /**
4032
4239
  * Request message for UpdateCostGroupColorTheme
@@ -4054,7 +4261,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
4054
4261
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
4055
4262
  */
4056
4263
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
4057
- messageDesc(file_cover_v1_cover, 131);
4264
+ messageDesc(file_cover_v1_cover, 141);
4058
4265
 
4059
4266
  /**
4060
4267
  * Response message for UpdateCostGroupColorTheme
@@ -4073,7 +4280,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4073
4280
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4074
4281
  */
4075
4282
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4076
- messageDesc(file_cover_v1_cover, 132);
4283
+ messageDesc(file_cover_v1_cover, 142);
4077
4284
 
4078
4285
  /**
4079
4286
  * Request message for UpdateCostGroupCombinations
@@ -4099,7 +4306,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4099
4306
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4100
4307
  */
4101
4308
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4102
- messageDesc(file_cover_v1_cover, 133);
4309
+ messageDesc(file_cover_v1_cover, 143);
4103
4310
 
4104
4311
  /**
4105
4312
  * Response message for UpdateCostGroupCombinations
@@ -4118,7 +4325,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4118
4325
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4119
4326
  */
4120
4327
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4121
- messageDesc(file_cover_v1_cover, 134);
4328
+ messageDesc(file_cover_v1_cover, 144);
4122
4329
 
4123
4330
  /**
4124
4331
  * Request message for AssignCostGroupMember
@@ -4146,7 +4353,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4146
4353
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4147
4354
  */
4148
4355
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4149
- messageDesc(file_cover_v1_cover, 135);
4356
+ messageDesc(file_cover_v1_cover, 145);
4150
4357
 
4151
4358
  /**
4152
4359
  * Response message for AssignCostGroupMember
@@ -4170,7 +4377,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4170
4377
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4171
4378
  */
4172
4379
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4173
- messageDesc(file_cover_v1_cover, 136);
4380
+ messageDesc(file_cover_v1_cover, 146);
4174
4381
 
4175
4382
  /**
4176
4383
  * Request message for RemoveCostGroupMember
@@ -4198,7 +4405,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4198
4405
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4199
4406
  */
4200
4407
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4201
- messageDesc(file_cover_v1_cover, 137);
4408
+ messageDesc(file_cover_v1_cover, 147);
4202
4409
 
4203
4410
  /**
4204
4411
  * Response message for RemoveCostGroupMember
@@ -4222,7 +4429,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4222
4429
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4223
4430
  */
4224
4431
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4225
- messageDesc(file_cover_v1_cover, 138);
4432
+ messageDesc(file_cover_v1_cover, 148);
4226
4433
 
4227
4434
  /**
4228
4435
  * Request message for DeleteCostGroup
@@ -4243,7 +4450,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4243
4450
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4244
4451
  */
4245
4452
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4246
- messageDesc(file_cover_v1_cover, 139);
4453
+ messageDesc(file_cover_v1_cover, 149);
4247
4454
 
4248
4455
  /**
4249
4456
  * Response message for DeleteCostGroup
@@ -4262,7 +4469,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4262
4469
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4263
4470
  */
4264
4471
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4265
- messageDesc(file_cover_v1_cover, 140);
4472
+ messageDesc(file_cover_v1_cover, 150);
4266
4473
 
4267
4474
  /**
4268
4475
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4283,7 +4490,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4283
4490
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4284
4491
  */
4285
4492
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4286
- messageDesc(file_cover_v1_cover, 141);
4493
+ messageDesc(file_cover_v1_cover, 151);
4287
4494
 
4288
4495
  /**
4289
4496
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4332,7 +4539,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4332
4539
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4333
4540
  */
4334
4541
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4335
- messageDesc(file_cover_v1_cover, 142);
4542
+ messageDesc(file_cover_v1_cover, 152);
4336
4543
 
4337
4544
  /**
4338
4545
  * Request message for the ListAccountAccess rpc.
@@ -4347,7 +4554,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4347
4554
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4348
4555
  */
4349
4556
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4350
- messageDesc(file_cover_v1_cover, 143);
4557
+ messageDesc(file_cover_v1_cover, 153);
4351
4558
 
4352
4559
  /**
4353
4560
  * Request message for the GetAccountAccess rpc.
@@ -4368,7 +4575,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4368
4575
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4369
4576
  */
4370
4577
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4371
- messageDesc(file_cover_v1_cover, 144);
4578
+ messageDesc(file_cover_v1_cover, 154);
4372
4579
 
4373
4580
  /**
4374
4581
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4487,7 +4694,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4487
4694
  * Use `create(AccountAccessSchema)` to create a new message.
4488
4695
  */
4489
4696
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4490
- messageDesc(file_cover_v1_cover, 145);
4697
+ messageDesc(file_cover_v1_cover, 155);
4491
4698
 
4492
4699
  /**
4493
4700
  * Request message for the CreateAccountAccess rpc.
@@ -4515,7 +4722,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4515
4722
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4516
4723
  */
4517
4724
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4518
- messageDesc(file_cover_v1_cover, 146);
4725
+ messageDesc(file_cover_v1_cover, 156);
4519
4726
 
4520
4727
  /**
4521
4728
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4543,7 +4750,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4543
4750
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4544
4751
  */
4545
4752
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4546
- messageDesc(file_cover_v1_cover, 147);
4753
+ messageDesc(file_cover_v1_cover, 157);
4547
4754
 
4548
4755
  /**
4549
4756
  * Request message for the UpdateAccountAccess rpc.
@@ -4564,7 +4771,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4564
4771
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4565
4772
  */
4566
4773
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4567
- messageDesc(file_cover_v1_cover, 148);
4774
+ messageDesc(file_cover_v1_cover, 158);
4568
4775
 
4569
4776
  /**
4570
4777
  * Request message for the DeleteAccountAccess rpc.
@@ -4590,7 +4797,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4590
4797
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4591
4798
  */
4592
4799
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4593
- messageDesc(file_cover_v1_cover, 149);
4800
+ messageDesc(file_cover_v1_cover, 159);
4594
4801
 
4595
4802
  /**
4596
4803
  * Response message for the DeleteAccountAccess rpc.
@@ -4609,7 +4816,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4609
4816
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4610
4817
  */
4611
4818
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4612
- messageDesc(file_cover_v1_cover, 150);
4819
+ messageDesc(file_cover_v1_cover, 160);
4613
4820
 
4614
4821
  /**
4615
4822
  * Request message for the RegisterAccount rpc.
@@ -4644,7 +4851,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4644
4851
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4645
4852
  */
4646
4853
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4647
- messageDesc(file_cover_v1_cover, 151);
4854
+ messageDesc(file_cover_v1_cover, 161);
4648
4855
 
4649
4856
  /**
4650
4857
  * Request message for the Asset.ListResources rpc.
@@ -4700,7 +4907,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
4700
4907
  * Use `create(ListAssetsRequestSchema)` to create a new message.
4701
4908
  */
4702
4909
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
4703
- messageDesc(file_cover_v1_cover, 152);
4910
+ messageDesc(file_cover_v1_cover, 162);
4704
4911
 
4705
4912
  /**
4706
4913
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -4717,7 +4924,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
4717
4924
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
4718
4925
  */
4719
4926
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
4720
- messageDesc(file_cover_v1_cover, 153);
4927
+ messageDesc(file_cover_v1_cover, 163);
4721
4928
 
4722
4929
  /**
4723
4930
  * @generated from message blueapi.cover.v1.Resource
@@ -4799,7 +5006,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
4799
5006
  * Use `create(ResourceSchema)` to create a new message.
4800
5007
  */
4801
5008
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
4802
- messageDesc(file_cover_v1_cover, 154);
5009
+ messageDesc(file_cover_v1_cover, 164);
4803
5010
 
4804
5011
  /**
4805
5012
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -4853,7 +5060,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
4853
5060
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
4854
5061
  */
4855
5062
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
4856
- messageDesc(file_cover_v1_cover, 155);
5063
+ messageDesc(file_cover_v1_cover, 165);
4857
5064
 
4858
5065
  /**
4859
5066
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -4877,7 +5084,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
4877
5084
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
4878
5085
  */
4879
5086
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
4880
- messageDesc(file_cover_v1_cover, 156);
5087
+ messageDesc(file_cover_v1_cover, 166);
4881
5088
 
4882
5089
  /**
4883
5090
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -4917,7 +5124,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
4917
5124
  * Use `create(AssetsSummarySchema)` to create a new message.
4918
5125
  */
4919
5126
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
4920
- messageDesc(file_cover_v1_cover, 157);
5127
+ messageDesc(file_cover_v1_cover, 167);
4921
5128
 
4922
5129
  /**
4923
5130
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -4936,7 +5143,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
4936
5143
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
4937
5144
  */
4938
5145
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
4939
- messageDesc(file_cover_v1_cover, 158);
5146
+ messageDesc(file_cover_v1_cover, 168);
4940
5147
 
4941
5148
  /**
4942
5149
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -4958,7 +5165,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
4958
5165
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
4959
5166
  */
4960
5167
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
4961
- messageDesc(file_cover_v1_cover, 159);
5168
+ messageDesc(file_cover_v1_cover, 169);
4962
5169
 
4963
5170
  /**
4964
5171
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5082,7 +5289,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5082
5289
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5083
5290
  */
5084
5291
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5085
- messageDesc(file_cover_v1_cover, 160);
5292
+ messageDesc(file_cover_v1_cover, 170);
5086
5293
 
5087
5294
  /**
5088
5295
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5136,7 +5343,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5136
5343
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5137
5344
  */
5138
5345
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5139
- messageDesc(file_cover_v1_cover, 161);
5346
+ messageDesc(file_cover_v1_cover, 171);
5140
5347
 
5141
5348
  /**
5142
5349
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5182,7 +5389,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5182
5389
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5183
5390
  */
5184
5391
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5185
- messageDesc(file_cover_v1_cover, 162);
5392
+ messageDesc(file_cover_v1_cover, 172);
5186
5393
 
5187
5394
  /**
5188
5395
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5244,7 +5451,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5244
5451
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5245
5452
  */
5246
5453
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5247
- messageDesc(file_cover_v1_cover, 163);
5454
+ messageDesc(file_cover_v1_cover, 173);
5248
5455
 
5249
5456
  /**
5250
5457
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5296,7 +5503,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5296
5503
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5297
5504
  */
5298
5505
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5299
- messageDesc(file_cover_v1_cover, 164);
5506
+ messageDesc(file_cover_v1_cover, 174);
5300
5507
 
5301
5508
  /**
5302
5509
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5358,7 +5565,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5358
5565
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5359
5566
  */
5360
5567
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5361
- messageDesc(file_cover_v1_cover, 165);
5568
+ messageDesc(file_cover_v1_cover, 175);
5362
5569
 
5363
5570
  /**
5364
5571
  * 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.
@@ -5379,7 +5586,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5379
5586
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5380
5587
  */
5381
5588
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5382
- messageDesc(file_cover_v1_cover, 166);
5589
+ messageDesc(file_cover_v1_cover, 176);
5383
5590
 
5384
5591
  /**
5385
5592
  * Response message wrapper for cloud costs.
@@ -5517,7 +5724,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5517
5724
  * Use `create(CostItemSchema)` to create a new message.
5518
5725
  */
5519
5726
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5520
- messageDesc(file_cover_v1_cover, 167);
5727
+ messageDesc(file_cover_v1_cover, 177);
5521
5728
 
5522
5729
  /**
5523
5730
  * Request message for GetRightSizingRecommendation
@@ -5538,7 +5745,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5538
5745
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5539
5746
  */
5540
5747
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5541
- messageDesc(file_cover_v1_cover, 168);
5748
+ messageDesc(file_cover_v1_cover, 178);
5542
5749
 
5543
5750
  /**
5544
5751
  * Response message for GetRightSizingRecommendation
@@ -5557,7 +5764,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5557
5764
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5558
5765
  */
5559
5766
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5560
- messageDesc(file_cover_v1_cover, 169);
5767
+ messageDesc(file_cover_v1_cover, 179);
5561
5768
 
5562
5769
  /**
5563
5770
  * Request message for ModifyResourceType
@@ -5606,7 +5813,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5606
5813
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5607
5814
  */
5608
5815
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5609
- messageDesc(file_cover_v1_cover, 170);
5816
+ messageDesc(file_cover_v1_cover, 180);
5610
5817
 
5611
5818
  /**
5612
5819
  * Response message for ModifyResourceType
@@ -5640,7 +5847,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5640
5847
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5641
5848
  */
5642
5849
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5643
- messageDesc(file_cover_v1_cover, 171);
5850
+ messageDesc(file_cover_v1_cover, 181);
5644
5851
 
5645
5852
  /**
5646
5853
  * Request message for TerminateResource
@@ -5682,7 +5889,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
5682
5889
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
5683
5890
  */
5684
5891
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
5685
- messageDesc(file_cover_v1_cover, 172);
5892
+ messageDesc(file_cover_v1_cover, 182);
5686
5893
 
5687
5894
  /**
5688
5895
  * Response message for TerminateResource
@@ -5711,7 +5918,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
5711
5918
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
5712
5919
  */
5713
5920
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
5714
- messageDesc(file_cover_v1_cover, 173);
5921
+ messageDesc(file_cover_v1_cover, 183);
5715
5922
 
5716
5923
  /**
5717
5924
  * (WIP): Request message for Upload Charge Code
@@ -5752,7 +5959,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
5752
5959
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
5753
5960
  */
5754
5961
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
5755
- messageDesc(file_cover_v1_cover, 174);
5962
+ messageDesc(file_cover_v1_cover, 184);
5756
5963
 
5757
5964
  /**
5758
5965
  * (WIP): Response message for Upload Charge Code
@@ -5780,7 +5987,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
5780
5987
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
5781
5988
  */
5782
5989
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
5783
- messageDesc(file_cover_v1_cover, 175);
5990
+ messageDesc(file_cover_v1_cover, 185);
5784
5991
 
5785
5992
  /**
5786
5993
  * Request message for AssignPayer
@@ -5815,7 +6022,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
5815
6022
  * Use `create(AssignPayerRequestSchema)` to create a new message.
5816
6023
  */
5817
6024
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
5818
- messageDesc(file_cover_v1_cover, 176);
6025
+ messageDesc(file_cover_v1_cover, 186);
5819
6026
 
5820
6027
  /**
5821
6028
  * Response message for AssignPayer
@@ -5839,7 +6046,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
5839
6046
  * Use `create(AssignPayerResponseSchema)` to create a new message.
5840
6047
  */
5841
6048
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
5842
- messageDesc(file_cover_v1_cover, 177);
6049
+ messageDesc(file_cover_v1_cover, 187);
5843
6050
 
5844
6051
  /**
5845
6052
  * Request message for GetPayers
@@ -5860,7 +6067,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
5860
6067
  * Use `create(GetPayersRequestSchema)` to create a new message.
5861
6068
  */
5862
6069
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
5863
- messageDesc(file_cover_v1_cover, 178);
6070
+ messageDesc(file_cover_v1_cover, 188);
5864
6071
 
5865
6072
  /**
5866
6073
  * Response message for GetPayers
@@ -5879,7 +6086,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
5879
6086
  * Use `create(GetPayersResponseSchema)` to create a new message.
5880
6087
  */
5881
6088
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
5882
- messageDesc(file_cover_v1_cover, 179);
6089
+ messageDesc(file_cover_v1_cover, 189);
5883
6090
 
5884
6091
  /**
5885
6092
  * Request message for GetAccounts
@@ -5905,7 +6112,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
5905
6112
  * Use `create(GetAccountsRequestSchema)` to create a new message.
5906
6113
  */
5907
6114
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
5908
- messageDesc(file_cover_v1_cover, 180);
6115
+ messageDesc(file_cover_v1_cover, 190);
5909
6116
 
5910
6117
  /**
5911
6118
  * Response message for GetAccounts
@@ -5924,7 +6131,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
5924
6131
  * Use `create(GetAccountsResponseSchema)` to create a new message.
5925
6132
  */
5926
6133
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
5927
- messageDesc(file_cover_v1_cover, 181);
6134
+ messageDesc(file_cover_v1_cover, 191);
5928
6135
 
5929
6136
  /**
5930
6137
  * Request message for GetServices
@@ -5950,7 +6157,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
5950
6157
  * Use `create(GetServicesRequestSchema)` to create a new message.
5951
6158
  */
5952
6159
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
5953
- messageDesc(file_cover_v1_cover, 182);
6160
+ messageDesc(file_cover_v1_cover, 192);
5954
6161
 
5955
6162
  /**
5956
6163
  * Response message for GetServices
@@ -5969,7 +6176,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
5969
6176
  * Use `create(GetServicesResponseSchema)` to create a new message.
5970
6177
  */
5971
6178
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
5972
- messageDesc(file_cover_v1_cover, 183);
6179
+ messageDesc(file_cover_v1_cover, 193);
5973
6180
 
5974
6181
  /**
5975
6182
  * Request message for GetRegions
@@ -5995,7 +6202,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
5995
6202
  * Use `create(GetRegionsRequestSchema)` to create a new message.
5996
6203
  */
5997
6204
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
5998
- messageDesc(file_cover_v1_cover, 184);
6205
+ messageDesc(file_cover_v1_cover, 194);
5999
6206
 
6000
6207
  /**
6001
6208
  * Response message for GetRegions
@@ -6014,7 +6221,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
6014
6221
  * Use `create(GetRegionsResponseSchema)` to create a new message.
6015
6222
  */
6016
6223
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
6017
- messageDesc(file_cover_v1_cover, 185);
6224
+ messageDesc(file_cover_v1_cover, 195);
6018
6225
 
6019
6226
  /**
6020
6227
  * Request message for GetTags
@@ -6040,7 +6247,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
6040
6247
  * Use `create(GetTagsRequestSchema)` to create a new message.
6041
6248
  */
6042
6249
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
6043
- messageDesc(file_cover_v1_cover, 186);
6250
+ messageDesc(file_cover_v1_cover, 196);
6044
6251
 
6045
6252
  /**
6046
6253
  * Response message for GetTags
@@ -6059,7 +6266,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
6059
6266
  * Use `create(GetTagsResponseSchema)` to create a new message.
6060
6267
  */
6061
6268
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
6062
- messageDesc(file_cover_v1_cover, 187);
6269
+ messageDesc(file_cover_v1_cover, 197);
6063
6270
 
6064
6271
  /**
6065
6272
  * Request message for the ListFees rpc.
@@ -6078,7 +6285,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6078
6285
  * Use `create(ListFeesRequestSchema)` to create a new message.
6079
6286
  */
6080
6287
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6081
- messageDesc(file_cover_v1_cover, 188);
6288
+ messageDesc(file_cover_v1_cover, 198);
6082
6289
 
6083
6290
  /**
6084
6291
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6187,7 +6394,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6187
6394
  * Use `create(FeeDetailsSchema)` to create a new message.
6188
6395
  */
6189
6396
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6190
- messageDesc(file_cover_v1_cover, 189);
6397
+ messageDesc(file_cover_v1_cover, 199);
6191
6398
 
6192
6399
  /**
6193
6400
  * Request message for the RestoreFee rpc.
@@ -6208,7 +6415,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6208
6415
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6209
6416
  */
6210
6417
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6211
- messageDesc(file_cover_v1_cover, 190);
6418
+ messageDesc(file_cover_v1_cover, 200);
6212
6419
 
6213
6420
  /**
6214
6421
  * Request message for the GetCostGroupFee rpc.
@@ -6239,7 +6446,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6239
6446
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6240
6447
  */
6241
6448
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6242
- messageDesc(file_cover_v1_cover, 191);
6449
+ messageDesc(file_cover_v1_cover, 201);
6243
6450
 
6244
6451
  /**
6245
6452
  * Response message wrapper for cost group fees.
@@ -6283,7 +6490,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6283
6490
  * Use `create(FeeItemSchema)` to create a new message.
6284
6491
  */
6285
6492
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6286
- messageDesc(file_cover_v1_cover, 192);
6493
+ messageDesc(file_cover_v1_cover, 202);
6287
6494
 
6288
6495
  /**
6289
6496
  * @generated from message blueapi.cover.v1.Allocator
@@ -6323,7 +6530,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6323
6530
  * Use `create(AllocatorSchema)` to create a new message.
6324
6531
  */
6325
6532
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6326
- messageDesc(file_cover_v1_cover, 193);
6533
+ messageDesc(file_cover_v1_cover, 203);
6327
6534
 
6328
6535
  /**
6329
6536
  * 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.
@@ -6342,7 +6549,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6342
6549
  * Use `create(CriteriaSchema)` to create a new message.
6343
6550
  */
6344
6551
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6345
- messageDesc(file_cover_v1_cover, 194);
6552
+ messageDesc(file_cover_v1_cover, 204);
6346
6553
 
6347
6554
  /**
6348
6555
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6415,7 +6622,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6415
6622
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6416
6623
  */
6417
6624
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6418
- messageDesc(file_cover_v1_cover, 195);
6625
+ messageDesc(file_cover_v1_cover, 205);
6419
6626
 
6420
6627
  /**
6421
6628
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6478,7 +6685,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6478
6685
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6479
6686
  */
6480
6687
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6481
- messageDesc(file_cover_v1_cover, 196);
6688
+ messageDesc(file_cover_v1_cover, 206);
6482
6689
 
6483
6690
  /**
6484
6691
  * Request message for the ListAllocators rpc.
@@ -6493,7 +6700,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6493
6700
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6494
6701
  */
6495
6702
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6496
- messageDesc(file_cover_v1_cover, 197);
6703
+ messageDesc(file_cover_v1_cover, 207);
6497
6704
 
6498
6705
  /**
6499
6706
  * Request message for the CreateAllocator rpc.
@@ -6555,7 +6762,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6555
6762
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6556
6763
  */
6557
6764
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6558
- messageDesc(file_cover_v1_cover, 198);
6765
+ messageDesc(file_cover_v1_cover, 208);
6559
6766
 
6560
6767
  /**
6561
6768
  * Request message for the GetAllocationAttributes rpc.
@@ -6574,7 +6781,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6574
6781
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6575
6782
  */
6576
6783
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6577
- messageDesc(file_cover_v1_cover, 199);
6784
+ messageDesc(file_cover_v1_cover, 209);
6578
6785
 
6579
6786
  /**
6580
6787
  * Response message for the GetAllocationAttributes rpc.
@@ -6593,7 +6800,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6593
6800
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6594
6801
  */
6595
6802
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6596
- messageDesc(file_cover_v1_cover, 200);
6803
+ messageDesc(file_cover_v1_cover, 210);
6597
6804
 
6598
6805
  /**
6599
6806
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6615,7 +6822,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6615
6822
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6616
6823
  */
6617
6824
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6618
- messageDesc(file_cover_v1_cover, 200, 0);
6825
+ messageDesc(file_cover_v1_cover, 210, 0);
6619
6826
 
6620
6827
  /**
6621
6828
  * Request message for the GetAllocationSources rpc.
@@ -6639,7 +6846,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6639
6846
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6640
6847
  */
6641
6848
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6642
- messageDesc(file_cover_v1_cover, 201);
6849
+ messageDesc(file_cover_v1_cover, 211);
6643
6850
 
6644
6851
  /**
6645
6852
  * Response message for the GetAllocationSources rpc.
@@ -6663,7 +6870,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
6663
6870
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
6664
6871
  */
6665
6872
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
6666
- messageDesc(file_cover_v1_cover, 202);
6873
+ messageDesc(file_cover_v1_cover, 212);
6667
6874
 
6668
6875
  /**
6669
6876
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -6690,7 +6897,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
6690
6897
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
6691
6898
  */
6692
6899
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
6693
- messageDesc(file_cover_v1_cover, 202, 0);
6900
+ messageDesc(file_cover_v1_cover, 212, 0);
6694
6901
 
6695
6902
  /**
6696
6903
  * Request message for the DeleteAllocator rpc.
@@ -6711,7 +6918,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
6711
6918
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
6712
6919
  */
6713
6920
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
6714
- messageDesc(file_cover_v1_cover, 203);
6921
+ messageDesc(file_cover_v1_cover, 213);
6715
6922
 
6716
6923
  /**
6717
6924
  * Request message for the ProxyCreateCompletion rpc.
@@ -6730,7 +6937,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
6730
6937
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
6731
6938
  */
6732
6939
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
6733
- messageDesc(file_cover_v1_cover, 204);
6940
+ messageDesc(file_cover_v1_cover, 214);
6734
6941
 
6735
6942
  /**
6736
6943
  * Response message for the ProxyCreateCompletion rpc.
@@ -6749,7 +6956,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
6749
6956
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
6750
6957
  */
6751
6958
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
6752
- messageDesc(file_cover_v1_cover, 205);
6959
+ messageDesc(file_cover_v1_cover, 215);
6753
6960
 
6754
6961
  /**
6755
6962
  * Response message for SimulateAccountCostAllocator rpc.
@@ -6908,7 +7115,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
6908
7115
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
6909
7116
  */
6910
7117
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
6911
- messageDesc(file_cover_v1_cover, 206);
7118
+ messageDesc(file_cover_v1_cover, 216);
6912
7119
 
6913
7120
  /**
6914
7121
  * Request message for the RestoreAccountUsage rpc.
@@ -6932,7 +7139,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
6932
7139
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
6933
7140
  */
6934
7141
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
6935
- messageDesc(file_cover_v1_cover, 207);
7142
+ messageDesc(file_cover_v1_cover, 217);
6936
7143
 
6937
7144
  /**
6938
7145
  * Request message for the RestoreAccountUsage rpc.
@@ -6953,7 +7160,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
6953
7160
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
6954
7161
  */
6955
7162
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
6956
- messageDesc(file_cover_v1_cover, 208);
7163
+ messageDesc(file_cover_v1_cover, 218);
6957
7164
 
6958
7165
  /**
6959
7166
  * Request message for the RestoreSavings rpc.
@@ -6974,7 +7181,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
6974
7181
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
6975
7182
  */
6976
7183
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
6977
- messageDesc(file_cover_v1_cover, 209);
7184
+ messageDesc(file_cover_v1_cover, 219);
6978
7185
 
6979
7186
  /**
6980
7187
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7073,7 +7280,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7073
7280
  * Use `create(SavingsDetailsSchema)` to create a new message.
7074
7281
  */
7075
7282
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7076
- messageDesc(file_cover_v1_cover, 210);
7283
+ messageDesc(file_cover_v1_cover, 220);
7077
7284
 
7078
7285
  /**
7079
7286
  * Request message for the GetCostGroupAllocation rpc.
@@ -7111,7 +7318,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7111
7318
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7112
7319
  */
7113
7320
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7114
- messageDesc(file_cover_v1_cover, 211);
7321
+ messageDesc(file_cover_v1_cover, 221);
7115
7322
 
7116
7323
  /**
7117
7324
  * Response message wrapper for cost group allocations.
@@ -7160,7 +7367,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7160
7367
  * Use `create(AllocationItemSchema)` to create a new message.
7161
7368
  */
7162
7369
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7163
- messageDesc(file_cover_v1_cover, 212);
7370
+ messageDesc(file_cover_v1_cover, 222);
7164
7371
 
7165
7372
  /**
7166
7373
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7194,7 +7401,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7194
7401
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7195
7402
  */
7196
7403
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7197
- messageDesc(file_cover_v1_cover, 213);
7404
+ messageDesc(file_cover_v1_cover, 223);
7198
7405
 
7199
7406
  /**
7200
7407
  * Response message wrapper for adding user from Auth0 as root
@@ -7213,7 +7420,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7213
7420
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7214
7421
  */
7215
7422
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7216
- messageDesc(file_cover_v1_cover, 214);
7423
+ messageDesc(file_cover_v1_cover, 224);
7217
7424
 
7218
7425
  /**
7219
7426
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7286,7 +7493,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7286
7493
  * Use `create(DataAccessSchema)` to create a new message.
7287
7494
  */
7288
7495
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7289
- messageDesc(file_cover_v1_cover, 215);
7496
+ messageDesc(file_cover_v1_cover, 225);
7290
7497
 
7291
7498
  /**
7292
7499
  * Request message for Register Data Access. For azure and gcp.
@@ -7342,7 +7549,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7342
7549
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7343
7550
  */
7344
7551
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7345
- messageDesc(file_cover_v1_cover, 216);
7552
+ messageDesc(file_cover_v1_cover, 226);
7346
7553
 
7347
7554
  /**
7348
7555
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7398,7 +7605,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7398
7605
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7399
7606
  */
7400
7607
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7401
- messageDesc(file_cover_v1_cover, 217);
7608
+ messageDesc(file_cover_v1_cover, 227);
7402
7609
 
7403
7610
  /**
7404
7611
  * Request message for ListDataAccess
@@ -7413,7 +7620,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7413
7620
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7414
7621
  */
7415
7622
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7416
- messageDesc(file_cover_v1_cover, 218);
7623
+ messageDesc(file_cover_v1_cover, 228);
7417
7624
 
7418
7625
  /**
7419
7626
  * Request message for ListUnregisteredAccounts
@@ -7428,7 +7635,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7428
7635
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7429
7636
  */
7430
7637
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7431
- messageDesc(file_cover_v1_cover, 219);
7638
+ messageDesc(file_cover_v1_cover, 229);
7432
7639
 
7433
7640
  /**
7434
7641
  * Response message for ListUnregisteredAccounts
@@ -7452,7 +7659,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7452
7659
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7453
7660
  */
7454
7661
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7455
- messageDesc(file_cover_v1_cover, 220);
7662
+ messageDesc(file_cover_v1_cover, 230);
7456
7663
 
7457
7664
  /**
7458
7665
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7486,7 +7693,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7486
7693
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7487
7694
  */
7488
7695
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7489
- messageDesc(file_cover_v1_cover, 221);
7696
+ messageDesc(file_cover_v1_cover, 231);
7490
7697
 
7491
7698
  /**
7492
7699
  * Request message for AddBillingAccount
@@ -7535,7 +7742,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7535
7742
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7536
7743
  */
7537
7744
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7538
- messageDesc(file_cover_v1_cover, 222);
7745
+ messageDesc(file_cover_v1_cover, 232);
7539
7746
 
7540
7747
  /**
7541
7748
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7568,7 +7775,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7568
7775
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7569
7776
  */
7570
7777
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7571
- messageDesc(file_cover_v1_cover, 223);
7778
+ messageDesc(file_cover_v1_cover, 233);
7572
7779
 
7573
7780
  /**
7574
7781
  * Request message for AddPartnerCenterCredentials
@@ -7603,7 +7810,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7603
7810
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7604
7811
  */
7605
7812
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7606
- messageDesc(file_cover_v1_cover, 224);
7813
+ messageDesc(file_cover_v1_cover, 234);
7607
7814
 
7608
7815
  /**
7609
7816
  * Request message for AddMpnSetting
@@ -7624,7 +7831,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7624
7831
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7625
7832
  */
7626
7833
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7627
- messageDesc(file_cover_v1_cover, 225);
7834
+ messageDesc(file_cover_v1_cover, 235);
7628
7835
 
7629
7836
  /**
7630
7837
  * Request message for GetCostGroupAttribute
@@ -7670,7 +7877,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
7670
7877
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
7671
7878
  */
7672
7879
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
7673
- messageDesc(file_cover_v1_cover, 226);
7880
+ messageDesc(file_cover_v1_cover, 236);
7674
7881
 
7675
7882
  /**
7676
7883
  * Response message for GetCostGroupAttribute
@@ -7694,7 +7901,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
7694
7901
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
7695
7902
  */
7696
7903
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
7697
- messageDesc(file_cover_v1_cover, 227);
7904
+ messageDesc(file_cover_v1_cover, 237);
7698
7905
 
7699
7906
  /**
7700
7907
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -7711,7 +7918,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
7711
7918
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
7712
7919
  */
7713
7920
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
7714
- messageDesc(file_cover_v1_cover, 228);
7921
+ messageDesc(file_cover_v1_cover, 238);
7715
7922
 
7716
7923
  /**
7717
7924
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -7728,7 +7935,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
7728
7935
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
7729
7936
  */
7730
7937
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
7731
- messageDesc(file_cover_v1_cover, 229);
7938
+ messageDesc(file_cover_v1_cover, 239);
7732
7939
 
7733
7940
  /**
7734
7941
  * Request message for GetAlerts
@@ -7743,7 +7950,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
7743
7950
  * Use `create(GetAlertsRequestSchema)` to create a new message.
7744
7951
  */
7745
7952
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
7746
- messageDesc(file_cover_v1_cover, 230);
7953
+ messageDesc(file_cover_v1_cover, 240);
7747
7954
 
7748
7955
  /**
7749
7956
  * Response message for GetAlerts
@@ -7762,7 +7969,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
7762
7969
  * Use `create(GetAlertsResponseSchema)` to create a new message.
7763
7970
  */
7764
7971
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
7765
- messageDesc(file_cover_v1_cover, 231);
7972
+ messageDesc(file_cover_v1_cover, 241);
7766
7973
 
7767
7974
  /**
7768
7975
  * Request message for CreateAlert
@@ -7816,7 +8023,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
7816
8023
  * Use `create(CreateAlertRequestSchema)` to create a new message.
7817
8024
  */
7818
8025
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
7819
- messageDesc(file_cover_v1_cover, 232);
8026
+ messageDesc(file_cover_v1_cover, 242);
7820
8027
 
7821
8028
  /**
7822
8029
  * Response message for CreateAlert
@@ -7835,7 +8042,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
7835
8042
  * Use `create(CreateAlertResponseSchema)` to create a new message.
7836
8043
  */
7837
8044
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
7838
- messageDesc(file_cover_v1_cover, 233);
8045
+ messageDesc(file_cover_v1_cover, 243);
7839
8046
 
7840
8047
  /**
7841
8048
  * Request message for GetAlertDetails
@@ -7856,7 +8063,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
7856
8063
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
7857
8064
  */
7858
8065
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
7859
- messageDesc(file_cover_v1_cover, 234);
8066
+ messageDesc(file_cover_v1_cover, 244);
7860
8067
 
7861
8068
  /**
7862
8069
  * Response message for GetAlertDetails
@@ -7875,7 +8082,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
7875
8082
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
7876
8083
  */
7877
8084
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
7878
- messageDesc(file_cover_v1_cover, 235);
8085
+ messageDesc(file_cover_v1_cover, 245);
7879
8086
 
7880
8087
  /**
7881
8088
  * Request message for DeleteAlert
@@ -7896,7 +8103,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
7896
8103
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
7897
8104
  */
7898
8105
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
7899
- messageDesc(file_cover_v1_cover, 236);
8106
+ messageDesc(file_cover_v1_cover, 246);
7900
8107
 
7901
8108
  /**
7902
8109
  * Response message for DeleteAlert
@@ -7915,7 +8122,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
7915
8122
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
7916
8123
  */
7917
8124
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
7918
- messageDesc(file_cover_v1_cover, 237);
8125
+ messageDesc(file_cover_v1_cover, 247);
7919
8126
 
7920
8127
  /**
7921
8128
  * Request message for UpdateAlertDetails
@@ -7977,7 +8184,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
7977
8184
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
7978
8185
  */
7979
8186
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
7980
- messageDesc(file_cover_v1_cover, 238);
8187
+ messageDesc(file_cover_v1_cover, 248);
7981
8188
 
7982
8189
  /**
7983
8190
  * Response message for UpdateAlertDetails
@@ -7996,7 +8203,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
7996
8203
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
7997
8204
  */
7998
8205
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
7999
- messageDesc(file_cover_v1_cover, 239);
8206
+ messageDesc(file_cover_v1_cover, 249);
8000
8207
 
8001
8208
  /**
8002
8209
  * Request message for GetChannels
@@ -8018,7 +8225,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
8018
8225
  * Use `create(GetChannelsRequestSchema)` to create a new message.
8019
8226
  */
8020
8227
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
8021
- messageDesc(file_cover_v1_cover, 240);
8228
+ messageDesc(file_cover_v1_cover, 250);
8022
8229
 
8023
8230
  /**
8024
8231
  * Response message for GetChannels
@@ -8037,7 +8244,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
8037
8244
  * Use `create(GetChannelsResponseSchema)` to create a new message.
8038
8245
  */
8039
8246
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
8040
- messageDesc(file_cover_v1_cover, 241);
8247
+ messageDesc(file_cover_v1_cover, 251);
8041
8248
 
8042
8249
  /**
8043
8250
  * Request message for CreateChannel
@@ -8072,7 +8279,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8072
8279
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8073
8280
  */
8074
8281
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8075
- messageDesc(file_cover_v1_cover, 242);
8282
+ messageDesc(file_cover_v1_cover, 252);
8076
8283
 
8077
8284
  /**
8078
8285
  * Response message for CreateChannel
@@ -8091,7 +8298,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8091
8298
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8092
8299
  */
8093
8300
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8094
- messageDesc(file_cover_v1_cover, 243);
8301
+ messageDesc(file_cover_v1_cover, 253);
8095
8302
 
8096
8303
  /**
8097
8304
  * Request message for GetChannelDetails
@@ -8112,7 +8319,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8112
8319
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8113
8320
  */
8114
8321
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8115
- messageDesc(file_cover_v1_cover, 244);
8322
+ messageDesc(file_cover_v1_cover, 254);
8116
8323
 
8117
8324
  /**
8118
8325
  * Response message for GetChannelDetails
@@ -8131,7 +8338,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8131
8338
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8132
8339
  */
8133
8340
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8134
- messageDesc(file_cover_v1_cover, 245);
8341
+ messageDesc(file_cover_v1_cover, 255);
8135
8342
 
8136
8343
  /**
8137
8344
  * Request message for DeleteChannel
@@ -8152,7 +8359,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8152
8359
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8153
8360
  */
8154
8361
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8155
- messageDesc(file_cover_v1_cover, 246);
8362
+ messageDesc(file_cover_v1_cover, 256);
8156
8363
 
8157
8364
  /**
8158
8365
  * Response message for DeleteChannel
@@ -8171,7 +8378,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8171
8378
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8172
8379
  */
8173
8380
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8174
- messageDesc(file_cover_v1_cover, 247);
8381
+ messageDesc(file_cover_v1_cover, 257);
8175
8382
 
8176
8383
  /**
8177
8384
  * Request message for UpdateChannelDetails
@@ -8214,7 +8421,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8214
8421
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8215
8422
  */
8216
8423
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8217
- messageDesc(file_cover_v1_cover, 248);
8424
+ messageDesc(file_cover_v1_cover, 258);
8218
8425
 
8219
8426
  /**
8220
8427
  * Response message for UpdateChannelDetails
@@ -8233,7 +8440,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8233
8440
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8234
8441
  */
8235
8442
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8236
- messageDesc(file_cover_v1_cover, 249);
8443
+ messageDesc(file_cover_v1_cover, 259);
8237
8444
 
8238
8445
  /**
8239
8446
  * Request message for GetDiscountRecomemendations
@@ -8275,7 +8482,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8275
8482
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8276
8483
  */
8277
8484
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8278
- messageDesc(file_cover_v1_cover, 250);
8485
+ messageDesc(file_cover_v1_cover, 260);
8279
8486
 
8280
8487
  /**
8281
8488
  * Response message for GetDiscountRecommendations
@@ -8304,7 +8511,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8304
8511
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8305
8512
  */
8306
8513
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8307
- messageDesc(file_cover_v1_cover, 251);
8514
+ messageDesc(file_cover_v1_cover, 261);
8308
8515
 
8309
8516
  /**
8310
8517
  * Request message for getting anomaly
@@ -8337,7 +8544,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8337
8544
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8338
8545
  */
8339
8546
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8340
- messageDesc(file_cover_v1_cover, 252);
8547
+ messageDesc(file_cover_v1_cover, 262);
8341
8548
 
8342
8549
  /**
8343
8550
  * Message response for anomaly detection
@@ -8416,7 +8623,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8416
8623
  * Use `create(AnomalyDataSchema)` to create a new message.
8417
8624
  */
8418
8625
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8419
- messageDesc(file_cover_v1_cover, 253);
8626
+ messageDesc(file_cover_v1_cover, 263);
8420
8627
 
8421
8628
  /**
8422
8629
  * Request message for CreateDiscountExpirationAlert
@@ -8467,7 +8674,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8467
8674
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8468
8675
  */
8469
8676
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8470
- messageDesc(file_cover_v1_cover, 254);
8677
+ messageDesc(file_cover_v1_cover, 264);
8471
8678
 
8472
8679
  /**
8473
8680
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8486,7 +8693,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8486
8693
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8487
8694
  */
8488
8695
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8489
- messageDesc(file_cover_v1_cover, 255);
8696
+ messageDesc(file_cover_v1_cover, 265);
8490
8697
 
8491
8698
  /**
8492
8699
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8540,7 +8747,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8540
8747
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8541
8748
  */
8542
8749
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8543
- messageDesc(file_cover_v1_cover, 256);
8750
+ messageDesc(file_cover_v1_cover, 266);
8544
8751
 
8545
8752
  /**
8546
8753
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8592,7 +8799,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8592
8799
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8593
8800
  */
8594
8801
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8595
- messageDesc(file_cover_v1_cover, 257);
8802
+ messageDesc(file_cover_v1_cover, 267);
8596
8803
 
8597
8804
  /**
8598
8805
  * Request message for ListDiscountExpirationAlert
@@ -8607,7 +8814,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8607
8814
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8608
8815
  */
8609
8816
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8610
- messageDesc(file_cover_v1_cover, 258);
8817
+ messageDesc(file_cover_v1_cover, 268);
8611
8818
 
8612
8819
  /**
8613
8820
  * Rquest message for CreateAnomalyAlert
@@ -8656,7 +8863,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
8656
8863
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
8657
8864
  */
8658
8865
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
8659
- messageDesc(file_cover_v1_cover, 259);
8866
+ messageDesc(file_cover_v1_cover, 269);
8660
8867
 
8661
8868
  /**
8662
8869
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -8675,7 +8882,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
8675
8882
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
8676
8883
  */
8677
8884
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
8678
- messageDesc(file_cover_v1_cover, 260);
8885
+ messageDesc(file_cover_v1_cover, 270);
8679
8886
 
8680
8887
  /**
8681
8888
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -8722,7 +8929,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
8722
8929
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
8723
8930
  */
8724
8931
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
8725
- messageDesc(file_cover_v1_cover, 261);
8932
+ messageDesc(file_cover_v1_cover, 271);
8726
8933
 
8727
8934
  /**
8728
8935
  * Request message for ListAnomalyAlert
@@ -8737,7 +8944,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
8737
8944
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
8738
8945
  */
8739
8946
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
8740
- messageDesc(file_cover_v1_cover, 262);
8947
+ messageDesc(file_cover_v1_cover, 272);
8741
8948
 
8742
8949
  /**
8743
8950
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -8791,7 +8998,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
8791
8998
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
8792
8999
  */
8793
9000
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
8794
- messageDesc(file_cover_v1_cover, 263);
9001
+ messageDesc(file_cover_v1_cover, 273);
8795
9002
 
8796
9003
  /**
8797
9004
  * Request message for RegisterNewUser
@@ -8854,7 +9061,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
8854
9061
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
8855
9062
  */
8856
9063
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
8857
- messageDesc(file_cover_v1_cover, 264);
9064
+ messageDesc(file_cover_v1_cover, 274);
8858
9065
 
8859
9066
  /**
8860
9067
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -8871,7 +9078,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
8871
9078
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
8872
9079
  */
8873
9080
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
8874
- messageDesc(file_cover_v1_cover, 265);
9081
+ messageDesc(file_cover_v1_cover, 275);
8875
9082
 
8876
9083
  /**
8877
9084
  * Request message for GetUserProfile
@@ -8892,7 +9099,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
8892
9099
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
8893
9100
  */
8894
9101
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
8895
- messageDesc(file_cover_v1_cover, 266);
9102
+ messageDesc(file_cover_v1_cover, 276);
8896
9103
 
8897
9104
  /**
8898
9105
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -8949,7 +9156,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
8949
9156
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
8950
9157
  */
8951
9158
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
8952
- messageDesc(file_cover_v1_cover, 267);
9159
+ messageDesc(file_cover_v1_cover, 277);
8953
9160
 
8954
9161
  /**
8955
9162
  * Request message for UpdateUserProfile
@@ -9005,7 +9212,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
9005
9212
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
9006
9213
  */
9007
9214
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
9008
- messageDesc(file_cover_v1_cover, 268);
9215
+ messageDesc(file_cover_v1_cover, 278);
9009
9216
 
9010
9217
  /**
9011
9218
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -9057,7 +9264,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
9057
9264
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
9058
9265
  */
9059
9266
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
9060
- messageDesc(file_cover_v1_cover, 269);
9267
+ messageDesc(file_cover_v1_cover, 279);
9061
9268
 
9062
9269
  /**
9063
9270
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9083,7 +9290,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9083
9290
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9084
9291
  */
9085
9292
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9086
- messageDesc(file_cover_v1_cover, 270);
9293
+ messageDesc(file_cover_v1_cover, 280);
9087
9294
 
9088
9295
  /**
9089
9296
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9100,7 +9307,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9100
9307
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9101
9308
  */
9102
9309
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9103
- messageDesc(file_cover_v1_cover, 271);
9310
+ messageDesc(file_cover_v1_cover, 281);
9104
9311
 
9105
9312
  /**
9106
9313
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9119,7 +9326,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9119
9326
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9120
9327
  */
9121
9328
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9122
- messageDesc(file_cover_v1_cover, 272);
9329
+ messageDesc(file_cover_v1_cover, 282);
9123
9330
 
9124
9331
  /**
9125
9332
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9136,7 +9343,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9136
9343
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9137
9344
  */
9138
9345
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9139
- messageDesc(file_cover_v1_cover, 273);
9346
+ messageDesc(file_cover_v1_cover, 283);
9140
9347
 
9141
9348
  /**
9142
9349
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9153,7 +9360,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9153
9360
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9154
9361
  */
9155
9362
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9156
- messageDesc(file_cover_v1_cover, 274);
9363
+ messageDesc(file_cover_v1_cover, 284);
9157
9364
 
9158
9365
  /**
9159
9366
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9170,7 +9377,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9170
9377
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9171
9378
  */
9172
9379
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9173
- messageDesc(file_cover_v1_cover, 275);
9380
+ messageDesc(file_cover_v1_cover, 285);
9174
9381
 
9175
9382
  /**
9176
9383
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9189,7 +9396,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9189
9396
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9190
9397
  */
9191
9398
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9192
- messageDesc(file_cover_v1_cover, 276);
9399
+ messageDesc(file_cover_v1_cover, 286);
9193
9400
 
9194
9401
  /**
9195
9402
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9206,7 +9413,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9206
9413
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9207
9414
  */
9208
9415
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9209
- messageDesc(file_cover_v1_cover, 277);
9416
+ messageDesc(file_cover_v1_cover, 287);
9210
9417
 
9211
9418
  /**
9212
9419
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9230,7 +9437,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9230
9437
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9231
9438
  */
9232
9439
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9233
- messageDesc(file_cover_v1_cover, 278);
9440
+ messageDesc(file_cover_v1_cover, 288);
9234
9441
 
9235
9442
  /**
9236
9443
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9247,7 +9454,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9247
9454
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9248
9455
  */
9249
9456
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9250
- messageDesc(file_cover_v1_cover, 279);
9457
+ messageDesc(file_cover_v1_cover, 289);
9251
9458
 
9252
9459
  /**
9253
9460
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9264,7 +9471,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9264
9471
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9265
9472
  */
9266
9473
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9267
- messageDesc(file_cover_v1_cover, 280);
9474
+ messageDesc(file_cover_v1_cover, 290);
9268
9475
 
9269
9476
  /**
9270
9477
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9286,7 +9493,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9286
9493
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9287
9494
  */
9288
9495
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9289
- messageDesc(file_cover_v1_cover, 281);
9496
+ messageDesc(file_cover_v1_cover, 291);
9290
9497
 
9291
9498
  /**
9292
9499
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9299,7 +9506,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9299
9506
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9300
9507
  */
9301
9508
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9302
- messageDesc(file_cover_v1_cover, 282);
9509
+ messageDesc(file_cover_v1_cover, 292);
9303
9510
 
9304
9511
  /**
9305
9512
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9361,7 +9568,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9361
9568
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9362
9569
  */
9363
9570
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9364
- messageDesc(file_cover_v1_cover, 283);
9571
+ messageDesc(file_cover_v1_cover, 293);
9365
9572
 
9366
9573
  /**
9367
9574
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9413,7 +9620,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9413
9620
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9414
9621
  */
9415
9622
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9416
- messageDesc(file_cover_v1_cover, 284);
9623
+ messageDesc(file_cover_v1_cover, 294);
9417
9624
 
9418
9625
  /**
9419
9626
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9426,7 +9633,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9426
9633
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9427
9634
  */
9428
9635
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9429
- messageDesc(file_cover_v1_cover, 285);
9636
+ messageDesc(file_cover_v1_cover, 295);
9430
9637
 
9431
9638
  /**
9432
9639
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9443,7 +9650,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9443
9650
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9444
9651
  */
9445
9652
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9446
- messageDesc(file_cover_v1_cover, 286);
9653
+ messageDesc(file_cover_v1_cover, 296);
9447
9654
 
9448
9655
  /**
9449
9656
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9456,7 +9663,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9456
9663
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9457
9664
  */
9458
9665
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9459
- messageDesc(file_cover_v1_cover, 287);
9666
+ messageDesc(file_cover_v1_cover, 297);
9460
9667
 
9461
9668
  /**
9462
9669
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9503,7 +9710,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9503
9710
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9504
9711
  */
9505
9712
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9506
- messageDesc(file_cover_v1_cover, 288);
9713
+ messageDesc(file_cover_v1_cover, 298);
9507
9714
 
9508
9715
  /**
9509
9716
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9545,7 +9752,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9545
9752
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9546
9753
  */
9547
9754
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9548
- messageDesc(file_cover_v1_cover, 289);
9755
+ messageDesc(file_cover_v1_cover, 299);
9549
9756
 
9550
9757
  /**
9551
9758
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9643,7 +9850,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9643
9850
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9644
9851
  */
9645
9852
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9646
- messageDesc(file_cover_v1_cover, 290);
9853
+ messageDesc(file_cover_v1_cover, 300);
9647
9854
 
9648
9855
  /**
9649
9856
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -9682,7 +9889,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
9682
9889
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
9683
9890
  */
9684
9891
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
9685
- messageDesc(file_cover_v1_cover, 291);
9892
+ messageDesc(file_cover_v1_cover, 301);
9686
9893
 
9687
9894
  /**
9688
9895
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -9729,7 +9936,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
9729
9936
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
9730
9937
  */
9731
9938
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
9732
- messageDesc(file_cover_v1_cover, 291, 0);
9939
+ messageDesc(file_cover_v1_cover, 301, 0);
9733
9940
 
9734
9941
  /**
9735
9942
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -9871,7 +10078,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
9871
10078
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
9872
10079
  */
9873
10080
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
9874
- messageDesc(file_cover_v1_cover, 292);
10081
+ messageDesc(file_cover_v1_cover, 302);
9875
10082
 
9876
10083
  /**
9877
10084
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -9928,7 +10135,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
9928
10135
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
9929
10136
  */
9930
10137
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
9931
- messageDesc(file_cover_v1_cover, 292, 0);
10138
+ messageDesc(file_cover_v1_cover, 302, 0);
9932
10139
 
9933
10140
  /**
9934
10141
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -9957,7 +10164,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
9957
10164
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
9958
10165
  */
9959
10166
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
9960
- messageDesc(file_cover_v1_cover, 293);
10167
+ messageDesc(file_cover_v1_cover, 303);
9961
10168
 
9962
10169
  /**
9963
10170
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -9974,7 +10181,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
9974
10181
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
9975
10182
  */
9976
10183
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
9977
- messageDesc(file_cover_v1_cover, 294);
10184
+ messageDesc(file_cover_v1_cover, 304);
9978
10185
 
9979
10186
  /**
9980
10187
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -9996,7 +10203,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
9996
10203
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
9997
10204
  */
9998
10205
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
9999
- messageDesc(file_cover_v1_cover, 295);
10206
+ messageDesc(file_cover_v1_cover, 305);
10000
10207
 
10001
10208
  /**
10002
10209
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -10031,7 +10238,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
10031
10238
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
10032
10239
  */
10033
10240
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
10034
- messageDesc(file_cover_v1_cover, 296);
10241
+ messageDesc(file_cover_v1_cover, 306);
10035
10242
 
10036
10243
  /**
10037
10244
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -10058,7 +10265,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
10058
10265
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
10059
10266
  */
10060
10267
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
10061
- messageDesc(file_cover_v1_cover, 296, 0);
10268
+ messageDesc(file_cover_v1_cover, 306, 0);
10062
10269
 
10063
10270
  /**
10064
10271
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10071,7 +10278,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10071
10278
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10072
10279
  */
10073
10280
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10074
- messageDesc(file_cover_v1_cover, 296, 1);
10281
+ messageDesc(file_cover_v1_cover, 306, 1);
10075
10282
 
10076
10283
  /**
10077
10284
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10084,7 +10291,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10084
10291
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10085
10292
  */
10086
10293
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10087
- messageDesc(file_cover_v1_cover, 296, 2);
10294
+ messageDesc(file_cover_v1_cover, 306, 2);
10088
10295
 
10089
10296
  /**
10090
10297
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10101,7 +10308,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10101
10308
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10102
10309
  */
10103
10310
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10104
- messageDesc(file_cover_v1_cover, 297);
10311
+ messageDesc(file_cover_v1_cover, 307);
10105
10312
 
10106
10313
  /**
10107
10314
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10114,7 +10321,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10114
10321
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10115
10322
  */
10116
10323
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10117
- messageDesc(file_cover_v1_cover, 298);
10324
+ messageDesc(file_cover_v1_cover, 308);
10118
10325
 
10119
10326
  /**
10120
10327
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10131,7 +10338,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10131
10338
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10132
10339
  */
10133
10340
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10134
- messageDesc(file_cover_v1_cover, 299);
10341
+ messageDesc(file_cover_v1_cover, 309);
10135
10342
 
10136
10343
  /**
10137
10344
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10144,7 +10351,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10144
10351
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10145
10352
  */
10146
10353
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10147
- messageDesc(file_cover_v1_cover, 300);
10354
+ messageDesc(file_cover_v1_cover, 310);
10148
10355
 
10149
10356
  /**
10150
10357
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10205,7 +10412,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10205
10412
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10206
10413
  */
10207
10414
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10208
- messageDesc(file_cover_v1_cover, 301);
10415
+ messageDesc(file_cover_v1_cover, 311);
10209
10416
 
10210
10417
  /**
10211
10418
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10222,7 +10429,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10222
10429
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10223
10430
  */
10224
10431
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10225
- messageDesc(file_cover_v1_cover, 302);
10432
+ messageDesc(file_cover_v1_cover, 312);
10226
10433
 
10227
10434
  /**
10228
10435
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10255,7 +10462,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10255
10462
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10256
10463
  */
10257
10464
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10258
- messageDesc(file_cover_v1_cover, 303);
10465
+ messageDesc(file_cover_v1_cover, 313);
10259
10466
 
10260
10467
  /**
10261
10468
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10277,7 +10484,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10277
10484
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10278
10485
  */
10279
10486
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10280
- messageDesc(file_cover_v1_cover, 304);
10487
+ messageDesc(file_cover_v1_cover, 314);
10281
10488
 
10282
10489
  /**
10283
10490
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10317,7 +10524,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10317
10524
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10318
10525
  */
10319
10526
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10320
- messageDesc(file_cover_v1_cover, 305);
10527
+ messageDesc(file_cover_v1_cover, 315);
10321
10528
 
10322
10529
  /**
10323
10530
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10339,7 +10546,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10339
10546
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10340
10547
  */
10341
10548
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10342
- messageDesc(file_cover_v1_cover, 306);
10549
+ messageDesc(file_cover_v1_cover, 316);
10343
10550
 
10344
10551
  /**
10345
10552
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10358,7 +10565,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10358
10565
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10359
10566
  */
10360
10567
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10361
- messageDesc(file_cover_v1_cover, 307);
10568
+ messageDesc(file_cover_v1_cover, 317);
10362
10569
 
10363
10570
  /**
10364
10571
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10375,7 +10582,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10375
10582
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10376
10583
  */
10377
10584
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10378
- messageDesc(file_cover_v1_cover, 308);
10585
+ messageDesc(file_cover_v1_cover, 318);
10379
10586
 
10380
10587
  /**
10381
10588
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10388,7 +10595,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10388
10595
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10389
10596
  */
10390
10597
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10391
- messageDesc(file_cover_v1_cover, 309);
10598
+ messageDesc(file_cover_v1_cover, 319);
10392
10599
 
10393
10600
  /**
10394
10601
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10410,7 +10617,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10410
10617
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10411
10618
  */
10412
10619
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10413
- messageDesc(file_cover_v1_cover, 310);
10620
+ messageDesc(file_cover_v1_cover, 320);
10414
10621
 
10415
10622
  /**
10416
10623
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10450,7 +10657,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10450
10657
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10451
10658
  */
10452
10659
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10453
- messageDesc(file_cover_v1_cover, 311);
10660
+ messageDesc(file_cover_v1_cover, 321);
10454
10661
 
10455
10662
  /**
10456
10663
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10467,7 +10674,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10467
10674
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10468
10675
  */
10469
10676
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10470
- messageDesc(file_cover_v1_cover, 312);
10677
+ messageDesc(file_cover_v1_cover, 322);
10471
10678
 
10472
10679
  /**
10473
10680
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10484,7 +10691,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10484
10691
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10485
10692
  */
10486
10693
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10487
- messageDesc(file_cover_v1_cover, 313);
10694
+ messageDesc(file_cover_v1_cover, 323);
10488
10695
 
10489
10696
  /**
10490
10697
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10501,7 +10708,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10501
10708
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10502
10709
  */
10503
10710
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10504
- messageDesc(file_cover_v1_cover, 314);
10711
+ messageDesc(file_cover_v1_cover, 324);
10505
10712
 
10506
10713
  /**
10507
10714
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10514,7 +10721,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10514
10721
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10515
10722
  */
10516
10723
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10517
- messageDesc(file_cover_v1_cover, 315);
10724
+ messageDesc(file_cover_v1_cover, 325);
10518
10725
 
10519
10726
  /**
10520
10727
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10531,7 +10738,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10531
10738
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10532
10739
  */
10533
10740
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10534
- messageDesc(file_cover_v1_cover, 316);
10741
+ messageDesc(file_cover_v1_cover, 326);
10535
10742
 
10536
10743
  /**
10537
10744
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10563,7 +10770,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10563
10770
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10564
10771
  */
10565
10772
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10566
- messageDesc(file_cover_v1_cover, 317);
10773
+ messageDesc(file_cover_v1_cover, 327);
10567
10774
 
10568
10775
  /**
10569
10776
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10580,7 +10787,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10580
10787
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10581
10788
  */
10582
10789
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10583
- messageDesc(file_cover_v1_cover, 318);
10790
+ messageDesc(file_cover_v1_cover, 328);
10584
10791
 
10585
10792
  /**
10586
10793
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10599,7 +10806,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10599
10806
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10600
10807
  */
10601
10808
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10602
- messageDesc(file_cover_v1_cover, 319);
10809
+ messageDesc(file_cover_v1_cover, 329);
10603
10810
 
10604
10811
  /**
10605
10812
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10616,7 +10823,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10616
10823
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10617
10824
  */
10618
10825
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10619
- messageDesc(file_cover_v1_cover, 320);
10826
+ messageDesc(file_cover_v1_cover, 330);
10620
10827
 
10621
10828
  /**
10622
10829
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -10663,7 +10870,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
10663
10870
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
10664
10871
  */
10665
10872
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
10666
- messageDesc(file_cover_v1_cover, 321);
10873
+ messageDesc(file_cover_v1_cover, 331);
10667
10874
 
10668
10875
  /**
10669
10876
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -10680,7 +10887,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
10680
10887
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
10681
10888
  */
10682
10889
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
10683
- messageDesc(file_cover_v1_cover, 322);
10890
+ messageDesc(file_cover_v1_cover, 332);
10684
10891
 
10685
10892
  /**
10686
10893
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -10699,7 +10906,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
10699
10906
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
10700
10907
  */
10701
10908
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
10702
- messageDesc(file_cover_v1_cover, 323);
10909
+ messageDesc(file_cover_v1_cover, 333);
10703
10910
 
10704
10911
  /**
10705
10912
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -10716,7 +10923,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
10716
10923
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
10717
10924
  */
10718
10925
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
10719
- messageDesc(file_cover_v1_cover, 324);
10926
+ messageDesc(file_cover_v1_cover, 334);
10720
10927
 
10721
10928
  /**
10722
10929
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -10743,7 +10950,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
10743
10950
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
10744
10951
  */
10745
10952
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
10746
- messageDesc(file_cover_v1_cover, 325);
10953
+ messageDesc(file_cover_v1_cover, 335);
10747
10954
 
10748
10955
  /**
10749
10956
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -10760,7 +10967,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
10760
10967
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
10761
10968
  */
10762
10969
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
10763
- messageDesc(file_cover_v1_cover, 326);
10970
+ messageDesc(file_cover_v1_cover, 336);
10764
10971
 
10765
10972
  /**
10766
10973
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -10773,7 +10980,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
10773
10980
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
10774
10981
  */
10775
10982
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
10776
- messageDesc(file_cover_v1_cover, 327);
10983
+ messageDesc(file_cover_v1_cover, 337);
10777
10984
 
10778
10985
  /**
10779
10986
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -10790,7 +10997,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
10790
10997
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
10791
10998
  */
10792
10999
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
10793
- messageDesc(file_cover_v1_cover, 328);
11000
+ messageDesc(file_cover_v1_cover, 338);
10794
11001
 
10795
11002
  /**
10796
11003
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -10822,7 +11029,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
10822
11029
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
10823
11030
  */
10824
11031
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
10825
- messageDesc(file_cover_v1_cover, 329);
11032
+ messageDesc(file_cover_v1_cover, 339);
10826
11033
 
10827
11034
  /**
10828
11035
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -10839,7 +11046,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
10839
11046
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
10840
11047
  */
10841
11048
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
10842
- messageDesc(file_cover_v1_cover, 330);
11049
+ messageDesc(file_cover_v1_cover, 340);
10843
11050
 
10844
11051
  /**
10845
11052
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -10856,7 +11063,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
10856
11063
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
10857
11064
  */
10858
11065
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
10859
- messageDesc(file_cover_v1_cover, 331);
11066
+ messageDesc(file_cover_v1_cover, 341);
10860
11067
 
10861
11068
  /**
10862
11069
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -10873,7 +11080,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
10873
11080
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
10874
11081
  */
10875
11082
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
10876
- messageDesc(file_cover_v1_cover, 332);
11083
+ messageDesc(file_cover_v1_cover, 342);
10877
11084
 
10878
11085
  /**
10879
11086
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -10886,7 +11093,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
10886
11093
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
10887
11094
  */
10888
11095
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
10889
- messageDesc(file_cover_v1_cover, 333);
11096
+ messageDesc(file_cover_v1_cover, 343);
10890
11097
 
10891
11098
  /**
10892
11099
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -10903,7 +11110,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
10903
11110
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
10904
11111
  */
10905
11112
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
10906
- messageDesc(file_cover_v1_cover, 334);
11113
+ messageDesc(file_cover_v1_cover, 344);
10907
11114
 
10908
11115
  /**
10909
11116
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -10947,7 +11154,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
10947
11154
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
10948
11155
  */
10949
11156
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
10950
- messageDesc(file_cover_v1_cover, 335);
11157
+ messageDesc(file_cover_v1_cover, 345);
10951
11158
 
10952
11159
  /**
10953
11160
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -10964,7 +11171,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
10964
11171
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
10965
11172
  */
10966
11173
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
10967
- messageDesc(file_cover_v1_cover, 336);
11174
+ messageDesc(file_cover_v1_cover, 346);
10968
11175
 
10969
11176
  /**
10970
11177
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -10983,7 +11190,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
10983
11190
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
10984
11191
  */
10985
11192
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
10986
- messageDesc(file_cover_v1_cover, 337);
11193
+ messageDesc(file_cover_v1_cover, 347);
10987
11194
 
10988
11195
  /**
10989
11196
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -11000,7 +11207,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
11000
11207
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
11001
11208
  */
11002
11209
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
11003
- messageDesc(file_cover_v1_cover, 338);
11210
+ messageDesc(file_cover_v1_cover, 348);
11004
11211
 
11005
11212
  /**
11006
11213
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -11061,7 +11268,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
11061
11268
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
11062
11269
  */
11063
11270
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
11064
- messageDesc(file_cover_v1_cover, 339);
11271
+ messageDesc(file_cover_v1_cover, 349);
11065
11272
 
11066
11273
  /**
11067
11274
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11078,7 +11285,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11078
11285
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11079
11286
  */
11080
11287
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11081
- messageDesc(file_cover_v1_cover, 340);
11288
+ messageDesc(file_cover_v1_cover, 350);
11082
11289
 
11083
11290
  /**
11084
11291
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11097,7 +11304,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11097
11304
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11098
11305
  */
11099
11306
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11100
- messageDesc(file_cover_v1_cover, 341);
11307
+ messageDesc(file_cover_v1_cover, 351);
11101
11308
 
11102
11309
  /**
11103
11310
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11114,7 +11321,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11114
11321
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11115
11322
  */
11116
11323
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11117
- messageDesc(file_cover_v1_cover, 342);
11324
+ messageDesc(file_cover_v1_cover, 352);
11118
11325
 
11119
11326
  /**
11120
11327
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11147,7 +11354,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11147
11354
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11148
11355
  */
11149
11356
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11150
- messageDesc(file_cover_v1_cover, 343);
11357
+ messageDesc(file_cover_v1_cover, 353);
11151
11358
 
11152
11359
  /**
11153
11360
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11164,7 +11371,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11164
11371
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11165
11372
  */
11166
11373
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11167
- messageDesc(file_cover_v1_cover, 344);
11374
+ messageDesc(file_cover_v1_cover, 354);
11168
11375
 
11169
11376
  /**
11170
11377
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11208,7 +11415,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11208
11415
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11209
11416
  */
11210
11417
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11211
- messageDesc(file_cover_v1_cover, 345);
11418
+ messageDesc(file_cover_v1_cover, 355);
11212
11419
 
11213
11420
  /**
11214
11421
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11225,7 +11432,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11225
11432
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11226
11433
  */
11227
11434
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11228
- messageDesc(file_cover_v1_cover, 346);
11435
+ messageDesc(file_cover_v1_cover, 356);
11229
11436
 
11230
11437
  /**
11231
11438
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11244,7 +11451,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11244
11451
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11245
11452
  */
11246
11453
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11247
- messageDesc(file_cover_v1_cover, 347);
11454
+ messageDesc(file_cover_v1_cover, 357);
11248
11455
 
11249
11456
  /**
11250
11457
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11261,7 +11468,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11261
11468
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11262
11469
  */
11263
11470
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11264
- messageDesc(file_cover_v1_cover, 348);
11471
+ messageDesc(file_cover_v1_cover, 358);
11265
11472
 
11266
11473
  /**
11267
11474
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11322,7 +11529,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11322
11529
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11323
11530
  */
11324
11531
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11325
- messageDesc(file_cover_v1_cover, 349);
11532
+ messageDesc(file_cover_v1_cover, 359);
11326
11533
 
11327
11534
  /**
11328
11535
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11339,7 +11546,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11339
11546
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11340
11547
  */
11341
11548
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11342
- messageDesc(file_cover_v1_cover, 350);
11549
+ messageDesc(file_cover_v1_cover, 360);
11343
11550
 
11344
11551
  /**
11345
11552
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11358,7 +11565,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11358
11565
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11359
11566
  */
11360
11567
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11361
- messageDesc(file_cover_v1_cover, 351);
11568
+ messageDesc(file_cover_v1_cover, 361);
11362
11569
 
11363
11570
  /**
11364
11571
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11375,7 +11582,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11375
11582
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11376
11583
  */
11377
11584
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11378
- messageDesc(file_cover_v1_cover, 352);
11585
+ messageDesc(file_cover_v1_cover, 362);
11379
11586
 
11380
11587
  /**
11381
11588
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11419,7 +11626,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11419
11626
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11420
11627
  */
11421
11628
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11422
- messageDesc(file_cover_v1_cover, 353);
11629
+ messageDesc(file_cover_v1_cover, 363);
11423
11630
 
11424
11631
  /**
11425
11632
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11445,7 +11652,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11445
11652
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11446
11653
  */
11447
11654
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11448
- messageDesc(file_cover_v1_cover, 354);
11655
+ messageDesc(file_cover_v1_cover, 364);
11449
11656
 
11450
11657
  /**
11451
11658
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11465,7 +11672,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11465
11672
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11466
11673
  */
11467
11674
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11468
- messageDesc(file_cover_v1_cover, 355);
11675
+ messageDesc(file_cover_v1_cover, 365);
11469
11676
 
11470
11677
  /**
11471
11678
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11493,7 +11700,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11493
11700
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11494
11701
  */
11495
11702
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11496
- messageDesc(file_cover_v1_cover, 356);
11703
+ messageDesc(file_cover_v1_cover, 366);
11497
11704
 
11498
11705
  /**
11499
11706
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11545,7 +11752,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11545
11752
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11546
11753
  */
11547
11754
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11548
- messageDesc(file_cover_v1_cover, 357);
11755
+ messageDesc(file_cover_v1_cover, 367);
11549
11756
 
11550
11757
  /**
11551
11758
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11572,7 +11779,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11572
11779
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11573
11780
  */
11574
11781
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11575
- messageDesc(file_cover_v1_cover, 358);
11782
+ messageDesc(file_cover_v1_cover, 368);
11576
11783
 
11577
11784
  /**
11578
11785
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11594,7 +11801,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11594
11801
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11595
11802
  */
11596
11803
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11597
- messageDesc(file_cover_v1_cover, 358, 0);
11804
+ messageDesc(file_cover_v1_cover, 368, 0);
11598
11805
 
11599
11806
  /**
11600
11807
  * Request message for GetDiscountPlan
@@ -11692,7 +11899,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
11692
11899
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
11693
11900
  */
11694
11901
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
11695
- messageDesc(file_cover_v1_cover, 359);
11902
+ messageDesc(file_cover_v1_cover, 369);
11696
11903
 
11697
11904
  /**
11698
11905
  * Response message for GetDiscountPlan
@@ -11716,7 +11923,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
11716
11923
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
11717
11924
  */
11718
11925
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
11719
- messageDesc(file_cover_v1_cover, 360);
11926
+ messageDesc(file_cover_v1_cover, 370);
11720
11927
 
11721
11928
  /**
11722
11929
  * Request message for ListNonperformingRate
@@ -11765,7 +11972,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
11765
11972
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
11766
11973
  */
11767
11974
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
11768
- messageDesc(file_cover_v1_cover, 361);
11975
+ messageDesc(file_cover_v1_cover, 371);
11769
11976
 
11770
11977
  /**
11771
11978
  * Response message for ListNonperformingRate
@@ -11784,7 +11991,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
11784
11991
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
11785
11992
  */
11786
11993
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
11787
- messageDesc(file_cover_v1_cover, 362);
11994
+ messageDesc(file_cover_v1_cover, 372);
11788
11995
 
11789
11996
  /**
11790
11997
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -11816,7 +12023,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
11816
12023
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
11817
12024
  */
11818
12025
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
11819
- messageDesc(file_cover_v1_cover, 362, 0);
12026
+ messageDesc(file_cover_v1_cover, 372, 0);
11820
12027
 
11821
12028
  /**
11822
12029
  * Request message for ListUntaggedResources
@@ -11865,7 +12072,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
11865
12072
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
11866
12073
  */
11867
12074
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
11868
- messageDesc(file_cover_v1_cover, 363);
12075
+ messageDesc(file_cover_v1_cover, 373);
11869
12076
 
11870
12077
  /**
11871
12078
  * Response message for ListUntaggedResources
@@ -11884,7 +12091,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
11884
12091
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
11885
12092
  */
11886
12093
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
11887
- messageDesc(file_cover_v1_cover, 364);
12094
+ messageDesc(file_cover_v1_cover, 374);
11888
12095
 
11889
12096
  /**
11890
12097
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -11926,7 +12133,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
11926
12133
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
11927
12134
  */
11928
12135
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
11929
- messageDesc(file_cover_v1_cover, 364, 0);
12136
+ messageDesc(file_cover_v1_cover, 374, 0);
11930
12137
 
11931
12138
  /**
11932
12139
  * Status of upload file
@@ -11981,6 +12188,7 @@ export const Cover: GenService<{
11981
12188
  * Invite members to the system
11982
12189
  *
11983
12190
  * @generated from rpc blueapi.cover.v1.Cover.InviteMember
12191
+ * @deprecated
11984
12192
  */
11985
12193
  inviteMember: {
11986
12194
  methodKind: "unary";
@@ -12011,6 +12219,7 @@ export const Cover: GenService<{
12011
12219
  * Get all the members/subusers of the company
12012
12220
  *
12013
12221
  * @generated from rpc blueapi.cover.v1.Cover.GetMembers
12222
+ * @deprecated
12014
12223
  */
12015
12224
  getMembers: {
12016
12225
  methodKind: "unary";
@@ -12021,6 +12230,7 @@ export const Cover: GenService<{
12021
12230
  * Get the details of the user
12022
12231
  *
12023
12232
  * @generated from rpc blueapi.cover.v1.Cover.GetMemberDetails
12233
+ * @deprecated
12024
12234
  */
12025
12235
  getMemberDetails: {
12026
12236
  methodKind: "unary";
@@ -12031,6 +12241,7 @@ export const Cover: GenService<{
12031
12241
  * Get the cost group to which the member is attached
12032
12242
  *
12033
12243
  * @generated from rpc blueapi.cover.v1.Cover.GetMemberCostGroup
12244
+ * @deprecated
12034
12245
  */
12035
12246
  getMemberCostGroup: {
12036
12247
  methodKind: "unary";
@@ -12041,6 +12252,7 @@ export const Cover: GenService<{
12041
12252
  * Modify member's permission
12042
12253
  *
12043
12254
  * @generated from rpc blueapi.cover.v1.Cover.UpdateMemberPermission
12255
+ * @deprecated
12044
12256
  */
12045
12257
  updateMemberPermission: {
12046
12258
  methodKind: "unary";
@@ -13895,6 +14107,56 @@ export const Cover: GenService<{
13895
14107
  input: typeof ExecuteRecommendationV3RequestSchema;
13896
14108
  output: typeof ExecuteRecommendationV3ResponseSchema;
13897
14109
  },
14110
+ /**
14111
+ * Invites users to join the organization and assigns them roles.
14112
+ *
14113
+ * @generated from rpc blueapi.cover.v1.Cover.InviteUsers
14114
+ */
14115
+ inviteUsers: {
14116
+ methodKind: "unary";
14117
+ input: typeof InviteUsersRequestSchema;
14118
+ output: typeof InviteUsersResponseSchema;
14119
+ },
14120
+ /**
14121
+ * Deletes a user from the organization.
14122
+ *
14123
+ * @generated from rpc blueapi.cover.v1.Cover.DeleteUser
14124
+ */
14125
+ deleteUser: {
14126
+ methodKind: "unary";
14127
+ input: typeof DeleteUserRequestSchema;
14128
+ output: typeof DeleteUserResponseSchema;
14129
+ },
14130
+ /**
14131
+ * Updates a user's role and cost group access.
14132
+ *
14133
+ * @generated from rpc blueapi.cover.v1.Cover.UpdateUserRole
14134
+ */
14135
+ updateUserRole: {
14136
+ methodKind: "unary";
14137
+ input: typeof UpdateUserRoleRequestSchema;
14138
+ output: typeof UpdateUserRoleResponseSchema;
14139
+ },
14140
+ /**
14141
+ * Lists all users in the organization
14142
+ *
14143
+ * @generated from rpc blueapi.cover.v1.Cover.ListUsers
14144
+ */
14145
+ listUsers: {
14146
+ methodKind: "unary";
14147
+ input: typeof ListUsersRequestSchema;
14148
+ output: typeof ListUsersResponseSchema;
14149
+ },
14150
+ /**
14151
+ * Reinvites a user to join the organization. This can be used when the user did not receive or lost the original invitation email.
14152
+ *
14153
+ * @generated from rpc blueapi.cover.v1.Cover.ReinviteUser
14154
+ */
14155
+ reinviteUser: {
14156
+ methodKind: "unary";
14157
+ input: typeof ReinviteUserRequestSchema;
14158
+ output: typeof ReinviteUserResponseSchema;
14159
+ },
13898
14160
  }> = /*@__PURE__*/
13899
14161
  serviceDesc(file_cover_v1_cover, 0);
13900
14162