diff --git a/.repository-projection.json b/.repository-projection.json index ba77c3b..05b7d47 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "deixic-node", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "e2e8bfa24848edcccdf5f7e5f5dda61c979e6607", + "sourceSha": "2a7522b52a13fe770f480745fa7b41ac2188a9e7", "destinationRepository": "dx-corp/deixic-node", - "priorProjectedBase": "b07a014c0f8f67c0e37a261ea8b56bb58b47ea72", + "priorProjectedBase": "e54e12ddb9b087f4573da4888b09bb80253b2d71", "definitionDigest": "1984dfa11c2bd95dd871179573e2ab3783be7a6af86d9bf3cd0d1a3f10b15b86", - "toolDigest": "d0c2f4acb3916b1207c5c9b7b2b8e6e5c772938c", - "contentDigest": "9ce0740137f4bce97cee42ff2f751c26f1cce0ecda527f6044496affcb9c097d", + "toolDigest": "0b559427b4956119349f84f6b203c0877aaec738", + "contentDigest": "6d9992776d9f4f41a822f89af8314bc44044b36af09c7a759f72a73fd986fa55", "publicationEligible": true } diff --git a/sdk/deixic/typescript/src/protocol.ts b/sdk/deixic/typescript/src/protocol.ts index d655c1d..795dcdb 100644 --- a/sdk/deixic/typescript/src/protocol.ts +++ b/sdk/deixic/typescript/src/protocol.ts @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file deixicpublic/v1/sdk.proto. */ export const file_deixicpublic_v1_sdk: GenFile = /*@__PURE__*/ - fileDesc("ChlkZWl4aWNwdWJsaWMvdjEvc2RrLnByb3RvEg9kZWl4aWNwdWJsaWMudjEiNgoFU2NvcGUSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCSJTCgtFcnJvckRldGFpbBIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCRIRCglyZXRyeWFibGUYBCABKAgiugMKCFRhc2tUdXJuEg8KB3R1cm5faWQYASABKAkSEAoIc2VxdWVuY2UYAiABKAMSFwoPdXNlcl9tZXNzYWdlX2lkGAMgASgJEhwKFGFzc2lzdGFudF9tZXNzYWdlX2lkGAQgASgJEikKBXN0YXRlGAUgASgOMhouZGVpeGljcHVibGljLnYxLlR1cm5TdGF0ZRI2Cg53YWl0aW5nX3JlYXNvbhgGIAEoDjIeLmRlaXhpY3B1YmxpYy52MS5XYWl0aW5nUmVhc29uEhQKDGZpcnN0X2N1cnNvchgHIAEoAxITCgtsYXN0X2N1cnNvchgIIAEoAxI0Cg50ZXJtaW5hbF9lcnJvchgJIAEoCzIcLmRlaXhpY3B1YmxpYy52MS5FcnJvckRldGFpbBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsQBCgZUaHJlYWQSCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSFQoNcmVwbGF5X2N1cnNvchgDIAEoAxIcChRhY3RpdmVfdHVybl9zZXF1ZW5jZRgEIAEoAxIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgx1bnJlYWRfY291bnQYBiABKAUSEgoKb3Blbl9jb3VudBgHIAEoBRIQCghhcmNoaXZlZBgIIAEoCCKYAQoLVGFza01lc3NhZ2USCgoCaWQYASABKAkSKgoEcm9sZRgCIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5NZXNzYWdlUm9sZRIMCgRib2R5GAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3JlY2VpcHRfaWRzGAUgAygJIkkKEUV2aWRlbmNlUmVmZXJlbmNlEgwKBGtpbmQYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSCwoDdXJpGAQgASgJIvgCCglUYXNrRXZlbnQSDgoGY3Vyc29yGAEgASgDEgoKAmlkGAIgASgJEg8KB3R1cm5faWQYAyABKAkSKAoEa2luZBgEIAEoDjIaLmRlaXhpY3B1YmxpYy52MS5FdmVudEtpbmQSDAoEdGV4dBgFIAEoCRI0CghldmlkZW5jZRgGIAMoCzIiLmRlaXhpY3B1YmxpYy52MS5FdmlkZW5jZVJlZmVyZW5jZRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpyZXF1ZXN0X2lkGAggASgJEjIKDHJlcXVlc3Rfa2luZBgJIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5SZXF1ZXN0S2luZBIRCgl0b29sX25hbWUYCiABKAkSDwoHY2FsbF9pZBgLIAEoCRI0Cg50ZXJtaW5hbF9lcnJvchgMIAEoCzIcLmRlaXhpY3B1YmxpYy52MS5FcnJvckRldGFpbCJwCg1SZWNlaXB0QWN0aW9uEgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEgwKBGtpbmQYAyABKAkSHQoVcmVxdWlyZXNfY29uZmlybWF0aW9uGAQgASgIEhcKD2Rpc2FibGVkX3JlYXNvbhgFIAEoCSJ4CgxDb2RpbmdPdXRwdXQSDAoEcGF0aBgBIAEoCRIRCglvYmplY3RfaWQYAiABKAkSEgoKdmVyc2lvbl9pZBgDIAEoCRIOCgZzaGEyNTYYBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoBBIPCgdjb250ZW50GAYgASgMIqsBChBDb2RpbmdBY2NlcHRhbmNlEhAKCGFjY2VwdGVkGAEgASgIEhcKD2NvbnRyYWN0X2RpZ2VzdBgCIAEoCRIZChFzdWJtaXNzaW9uX2RpZ2VzdBgDIAEoCRIPCgdyZWFzb25zGAQgAygJEhAKCHJldmlzaW9uGAUgASgJEi4KB291dHB1dHMYBiADKAsyHS5kZWl4aWNwdWJsaWMudjEuQ29kaW5nT3V0cHV0Is4CCgdSZWNlaXB0EgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSDQoFdGl0bGUYAyABKAkSDwoHc3VtbWFyeRgEIAEoCRIsCgVzdGF0ZRgFIAEoDjIdLmRlaXhpY3B1YmxpYy52MS5SZWNlaXB0U3RhdGUSLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoPYWxsb3dlZF9hY3Rpb25zGAcgAygLMh4uZGVpeGljcHVibGljLnYxLlJlY2VpcHRBY3Rpb24SNAoIZXZpZGVuY2UYCCADKAsyIi5kZWl4aWNwdWJsaWMudjEuRXZpZGVuY2VSZWZlcmVuY2USPAoRY29kaW5nX2FjY2VwdGFuY2UYCSABKAsyIS5kZWl4aWNwdWJsaWMudjEuQ29kaW5nQWNjZXB0YW5jZSIxCg5Nb2RlbFNlbGVjdGlvbhIQCghwcm92aWRlchgBIAEoCRINCgVtb2RlbBgCIAEoCSJWCg5BdmFpbGFibGVNb2RlbBIQCghwcm92aWRlchgBIAEoCRINCgVtb2RlbBgCIAEoCRINCgVyZWFkeRgDIAEoCBIUCgxkaXNwbGF5X25hbWUYBCABKAki/gEKDlNldHVwUmVhZGluZXNzEhIKCmFjY2Vzc2libGUYASABKAgSHAoUbWlzc2luZ19yZXF1aXJlbWVudHMYAiADKAkSMgoJc2VsZWN0aW9uGAMgASgLMh8uZGVpeGljcHVibGljLnYxLk1vZGVsU2VsZWN0aW9uEjYKDWRlZmF1bHRfbW9kZWwYBCABKAsyHy5kZWl4aWNwdWJsaWMudjEuQXZhaWxhYmxlTW9kZWwSOQoQYXZhaWxhYmxlX21vZGVscxgFIAMoCzIfLmRlaXhpY3B1YmxpYy52MS5BdmFpbGFibGVNb2RlbBITCgtuZXh0X2FjdGlvbhgGIAEoCSKKAQoYR2V0TW9kZWxSZWFkaW5lc3NSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEjIKCXNlbGVjdGlvbhgCIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5Nb2RlbFNlbGVjdGlvbhITCgtlbnZpcm9ubWVudBgDIAEoCSKqAgoZR2V0TW9kZWxSZWFkaW5lc3NSZXNwb25zZRIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRIyCglzZWxlY3Rpb24YAiABKAsyHy5kZWl4aWNwdWJsaWMudjEuTW9kZWxTZWxlY3Rpb24SEwoLZW52aXJvbm1lbnQYAyABKAkSMwoFc3RhdGUYBCABKA4yJC5kZWl4aWNwdWJsaWMudjEuTW9kZWxSZWFkaW5lc3NTdGF0ZRI2CgxuZXh0X2FjdGlvbnMYBSADKA4yIC5kZWl4aWNwdWJsaWMudjEuTW9kZWxOZXh0QWN0aW9uEjAKDGV2YWx1YXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAibwoKQ2xpZW50UnVsZRIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIVCg1ib2R5X21hcmtkb3duGAMgASgJEi8KBXNjb3BlGAQgASgOMiAuZGVpeGljcHVibGljLnYxLkNsaWVudFJ1bGVTY29wZSJMCgtDbGllbnRTa2lsbBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXF1aXJlZBgEIAEoCCJHCg9DbGllbnRNY3BTZXJ2ZXISDAoEbmFtZRgBIAEoCRITCgt1cmxfcGF0dGVybhgCIAEoCRIRCgl0cmFuc3BvcnQYAyABKAkicgoPQ2xpZW50TWNwUG9saWN5EiwKBG1vZGUYASABKA4yHi5kZWl4aWNwdWJsaWMudjEuQ2xpZW50TWNwTW9kZRIxCgdzZXJ2ZXJzGAIgAygLMiAuZGVpeGljcHVibGljLnYxLkNsaWVudE1jcFNlcnZlciI+ChVHZXRDbGllbnRTZXR1cFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUipQIKFkdldENsaWVudFNldHVwUmVzcG9uc2USJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSDwoHdmVyc2lvbhgCIAEoBBItCglpc3N1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBXJ1bGVzGAQgAygLMhsuZGVpeGljcHVibGljLnYxLkNsaWVudFJ1bGUSLAoGc2tpbGxzGAUgAygLMhwuZGVpeGljcHVibGljLnYxLkNsaWVudFNraWxsEi0KA21jcBgGIAEoCzIgLmRlaXhpY3B1YmxpYy52MS5DbGllbnRNY3BQb2xpY3kSGwoTc2FuZGJveF9wb2xpY3lfdG9tbBgHIAEoCSI+Cg1Jc3N1ZUV2aWRlbmNlEgwKBGtpbmQYASABKAkSEQoJc291cmNlX2lkGAIgASgJEgwKBHRleHQYAyABKAkiawoMSXNzdWVDb250ZXh0EhoKEnJlcHJvZHVjdGlvbl9zdGVwcxgBIAEoCRINCgVtb2RlbBgCIAEoCRIwCghldmlkZW5jZRgDIAMoCzIeLmRlaXhpY3B1YmxpYy52MS5Jc3N1ZUV2aWRlbmNlIuwBChhTdWJtaXRJc3N1ZVJlcG9ydFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEwoLZGVzY3JpcHRpb24YAiABKAkSGQoRZXhwZWN0ZWRfYmVoYXZpb3IYAyABKAkSEwoLYXBwX3ZlcnNpb24YBCABKAkSGwoTaW5jbHVkZV9kaWFnbm9zdGljcxgFIAEoCBIXCg9pZGVtcG90ZW5jeV9rZXkYBiABKAkSLgoHY29udGV4dBgHIAEoCzIdLmRlaXhpY3B1YmxpYy52MS5Jc3N1ZUNvbnRleHQiLAoLSXNzdWVSZXBvcnQSCgoCaWQYASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIkkKGVN1Ym1pdElzc3VlUmVwb3J0UmVzcG9uc2USLAoGcmVwb3J0GAEgASgLMhwuZGVpeGljcHVibGljLnYxLklzc3VlUmVwb3J0IjEKDUJ1c2luZXNzTW9uZXkSDgoGYW1vdW50GAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIiwKF0J1c2luZXNzT2JqZWN0UmVmZXJlbmNlEhEKCW9iamVjdF9pZBgBIAEoCSI4ChlCdXNpbmVzc0FydGlmYWN0UmVmZXJlbmNlEhsKE2FydGlmYWN0X3ZlcnNpb25faWQYASABKAkiIgoQQnVzaW5lc3NUZXh0TGlzdBIOCgZ2YWx1ZXMYASADKAkimwMKEkJ1c2luZXNzRmllbGRWYWx1ZRIQCghmaWVsZF9pZBgBIAEoCRIOCgR0ZXh0GAIgASgJSAASEQoHaW50ZWdlchgDIAEoA0gAEhEKB2Jvb2xlYW4YBCABKAhIABIRCgdkZWNpbWFsGAUgASgJSAASLwoFbW9uZXkYBiABKAsyHi5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NNb25leUgAEhQKCmVudW1fdmFsdWUYByABKAlIABIOCgRkYXRlGAggASgJSAASEwoJdGltZXN0YW1wGAkgASgJSAASPQoJcmVmZXJlbmNlGAogASgLMiguZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0UmVmZXJlbmNlSAASPgoIYXJ0aWZhY3QYCyABKAsyKi5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NBcnRpZmFjdFJlZmVyZW5jZUgAEjYKCXRleHRfbGlzdBgMIAEoCzIhLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1RleHRMaXN0SABCBwoFdmFsdWUi2QEKDkJ1c2luZXNzT2JqZWN0EhEKCW9iamVjdF9pZBgBIAEoCRIPCgd0eXBlX2lkGAIgASgJEhcKD3NjaGVtYV9yZXZpc2lvbhgDIAEoAxIQCghyZXZpc2lvbhgEIAEoAxIzCgZ2YWx1ZXMYBSADKAsyIy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NGaWVsZFZhbHVlEg8KB2RlbGV0ZWQYBiABKAgSEgoKdXBkYXRlZF9hdBgJIAEoCRISCgpjcmVhdGVkX2F0GAogASgJSgQIBxAISgQICBAJIsQBChtDcmVhdGVCdXNpbmVzc09iamVjdFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSDwoHdHlwZV9pZBgEIAEoCRIXCg9zY2hlbWFfcmV2aXNpb24YBSABKAMSMwoGdmFsdWVzGAYgAygLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzRmllbGRWYWx1ZSJPChxDcmVhdGVCdXNpbmVzc09iamVjdFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCJoChhHZXRCdXNpbmVzc09iamVjdFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIRCglvYmplY3RfaWQYBCABKAlKBAgDEARKBAgFEAYiTAoZR2V0QnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3Qi4QEKG1VwZGF0ZUJ1c2luZXNzT2JqZWN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIRCglvYmplY3RfaWQYBCABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBSABKAMSMwoGdmFsdWVzGAYgAygLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzRmllbGRWYWx1ZRIXCg9zY2hlbWFfcmV2aXNpb24YByABKAMiTwocVXBkYXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QikwEKG0RlbGV0ZUJ1c2luZXNzT2JqZWN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIRCglvYmplY3RfaWQYBCABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBSABKAMiTwocRGVsZXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QihAEKGkxpc3RCdXNpbmVzc09iamVjdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDwoHdHlwZV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRIXCg9hZnRlcl9vYmplY3RfaWQYBSABKAkiZwobTGlzdEJ1c2luZXNzT2JqZWN0c1Jlc3BvbnNlEjAKB29iamVjdHMYASADKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QSFgoObmV4dF9vYmplY3RfaWQYAiABKAkiWAoXQnVzaW5lc3NCbHVlcHJpbnRPcmlnaW4SFAoMYmx1ZXByaW50X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKAMSFgoOc291cmNlX3R5cGVfaWQYAyABKAkiVgoXQnVzaW5lc3NPYmplY3RUeXBlRmllbGQSEAoIZmllbGRfaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSFwoPc291cmNlX21hcHBhYmxlGAMgASgIIt0BChJCdXNpbmVzc09iamVjdFR5cGUSDwoHdHlwZV9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhAKCHJldmlzaW9uGAMgASgDEkIKEGJsdWVwcmludF9vcmlnaW4YBCABKAsyKC5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NCbHVlcHJpbnRPcmlnaW4SGAoQZGlzcGxheV9maWVsZF9pZBgFIAEoCRI4CgZmaWVsZHMYBiADKAsyKC5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3RUeXBlRmllbGQidQoeTGlzdEJ1c2luZXNzT2JqZWN0VHlwZXNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDQoFbGltaXQYAyABKAUSFQoNYWZ0ZXJfdHlwZV9pZBgEIAEoCSJyCh9MaXN0QnVzaW5lc3NPYmplY3RUeXBlc1Jlc3BvbnNlEjkKDG9iamVjdF90eXBlcxgBIAMoCzIjLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFR5cGUSFAoMbmV4dF90eXBlX2lkGAIgASgJInUKEUJ1c2luZXNzQmx1ZXByaW50EhQKDGJsdWVwcmludF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgDEhYKDmNvbnRlbnRfZGlnZXN0GAMgASgJEgwKBG5hbWUYBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkiTgodTGlzdEJ1c2luZXNzQmx1ZXByaW50c1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCSJYCh5MaXN0QnVzaW5lc3NCbHVlcHJpbnRzUmVzcG9uc2USNgoKYmx1ZXByaW50cxgBIAMoCzIiLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc0JsdWVwcmludCJuChpCdXNpbmVzc1NvdXJjZUZpZWxkTWFwcGluZxIQCghmaWVsZF9pZBgBIAEoCRI+Cghwcm9wZXJ0eRgCIAEoDjIsLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1NvdXJjZUZpZWxkUHJvcGVydHkiqwIKH0JpbmRCdXNpbmVzc09iamVjdFNvdXJjZVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSEQoJb2JqZWN0X2lkGAQgASgJEhkKEWV4cGVjdGVkX3JldmlzaW9uGAUgASgDEhUKDWNvbm5lY3Rpb25faWQYBiABKAkSGAoQZmFtaWx5X3N0YWJsZV9pZBgHIAEoCRIRCglyZWNvcmRfaWQYCCABKAkSEQoJZ3JvdXBfaWRzGAkgAygJEjsKBmZpZWxkcxgKIAMoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1NvdXJjZUZpZWxkTWFwcGluZyJTCiBCaW5kQnVzaW5lc3NPYmplY3RTb3VyY2VSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QiaQoaQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXASGAoQc291cmNlX29iamVjdF9pZBgBIAEoCRIXCg9yZWxhdGlvbnNoaXBfaWQYAiABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgDIAEoCSK9AQomTGlzdEJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwc1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSFwoPcmVsYXRpb25zaGlwX2lkGAQgASgJEg0KBWxpbWl0GAUgASgFEhEKCWFmdGVyX2tleRgGIAEoCRIWCg5wZWVyX29iamVjdF9pZBgHIAEoCSJ/CidMaXN0QnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBzUmVzcG9uc2USQgoNcmVsYXRpb25zaGlwcxgBIAMoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIQCghuZXh0X2tleRgCIAEoCSLPAQonQ3JlYXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEkEKDHJlbGF0aW9uc2hpcBgEIAEoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIZChFleHBlY3RlZF9yZXZpc2lvbhgFIAEoAyJbCihDcmVhdGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCLPAQonRGVsZXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEkEKDHJlbGF0aW9uc2hpcBgEIAEoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIZChFleHBlY3RlZF9yZXZpc2lvbhgFIAEoAyJbCihEZWxldGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCKLAQoHUHJvZ3JhbRISCgpwcm9ncmFtX2lkGAEgASgJEhAKCHJldmlzaW9uGAIgASgDEgwKBG5hbWUYAyABKAkSDAoEZ29hbBgEIAEoCRITCgtvd25lcl9sYWJlbBgFIAEoCRIQCghkdWVfZGF0ZRgGIAEoCRIXCg9wbGFubmluZ19zdGF0dXMYByABKAkiVgoRR2V0UHJvZ3JhbVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRISCgpwcm9ncmFtX2lkGAMgASgJIj8KEkdldFByb2dyYW1SZXNwb25zZRIpCgdwcm9ncmFtGAEgASgLMhguZGVpeGljcHVibGljLnYxLlByb2dyYW0ioQEKFENyZWF0ZVByb2dyYW1SZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEgwKBG5hbWUYBCABKAkSDAoEZ29hbBgFIAEoCRITCgtvd25lcl9sYWJlbBgGIAEoCRIQCghkdWVfZGF0ZRgHIAEoCSJCChVDcmVhdGVQcm9ncmFtUmVzcG9uc2USKQoHcHJvZ3JhbRgBIAEoCzIYLmRlaXhpY3B1YmxpYy52MS5Qcm9ncmFtIukBChRVcGRhdGVQcm9ncmFtUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRISCgpwcm9ncmFtX2lkGAQgASgJEhkKEWV4cGVjdGVkX3JldmlzaW9uGAUgASgDEgwKBG5hbWUYBiABKAkSDAoEZ29hbBgHIAEoCRITCgtvd25lcl9sYWJlbBgIIAEoCRIQCghkdWVfZGF0ZRgJIAEoCRIXCg9wbGFubmluZ19zdGF0dXMYCiABKAkiQgoVVXBkYXRlUHJvZ3JhbVJlc3BvbnNlEikKB3Byb2dyYW0YASABKAsyGC5kZWl4aWNwdWJsaWMudjEuUHJvZ3JhbSJTChJCbHVlcHJpbnRTZWxlY3Rpb24SFAoMYmx1ZXByaW50X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKAMSFgoOY29udGVudF9kaWdlc3QYAyABKAkiaAoXQ29tcGxpYW5jZUxpYnJhcnlDaGFuZ2USOgoEa2luZBgBIAEoDjIsLmRlaXhpY3B1YmxpYy52MS5Db21wbGlhbmNlTGlicmFyeUNoYW5nZUtpbmQSEQoJb2JqZWN0X2lkGAIgASgJIpoCCiFSZWNvbmNpbGVDb21wbGlhbmNlTGlicmFyeVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSFwoPbGlicmFyeV90eXBlX2lkGAQgASgJEjcKCnNlbGVjdGlvbnMYBSADKAsyIy5kZWl4aWNwdWJsaWMudjEuQmx1ZXByaW50U2VsZWN0aW9uEhwKFGV4cGVjdGVkX3BsYW5fZGlnZXN0GAYgASgJEj0KBG1vZGUYByABKA4yLy5kZWl4aWNwdWJsaWMudjEuQ29tcGxpYW5jZUxpYnJhcnlSZWNvbmNpbGVNb2RlIp8BCiJSZWNvbmNpbGVDb21wbGlhbmNlTGlicmFyeVJlc3BvbnNlEhgKEGxpYnJhcnlfY2xvbmVfaWQYASABKAkSEwoLcGxhbl9kaWdlc3QYAiABKAkSOQoHY2hhbmdlcxgDIAMoCzIoLmRlaXhpY3B1YmxpYy52MS5Db21wbGlhbmNlTGlicmFyeUNoYW5nZRIPCgdhcHBsaWVkGAQgASgIIm8KEEdldFRocmVhZFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEg0KBWxpbWl0GAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkiogIKEUdldFRocmVhZFJlc3BvbnNlEicKBnRocmVhZBgBIAEoCzIXLmRlaXhpY3B1YmxpYy52MS5UaHJlYWQSLgoIbWVzc2FnZXMYAiADKAsyHC5kZWl4aWNwdWJsaWMudjEuVGFza01lc3NhZ2USKgoIcmVjZWlwdHMYAyADKAsyGC5kZWl4aWNwdWJsaWMudjEuUmVjZWlwdBIoCgV0dXJucxgEIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybhIVCg1yZXBsYXlfY3Vyc29yGAUgASgDEhcKD25leHRfcGFnZV90b2tlbhgGIAEoCRIuCgVzZXR1cBgHIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5TZXR1cFJlYWRpbmVzcyJNChJMaXN0VGhyZWFkc1JlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEAoIYXJjaGl2ZWQYAiABKAgiPwoTTGlzdFRocmVhZHNSZXNwb25zZRIoCgd0aHJlYWRzGAEgAygLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZCJeChNSZW5hbWVUaHJlYWRSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRINCgV0aXRsZRgDIAEoCSJQChRSZW5hbWVUaHJlYWRSZXNwb25zZRInCgZ0aHJlYWQYASABKAsyFy5kZWl4aWNwdWJsaWMudjEuVGhyZWFkEg8KB2NoYW5nZWQYAiABKAgiewoUQXJjaGl2ZVRocmVhZFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEhAKCGFyY2hpdmVkGAMgASgIEhcKD2lkZW1wb3RlbmN5X2tleRgEIAEoCSJjChVBcmNoaXZlVGhyZWFkUmVzcG9uc2USJwoGdGhyZWFkGAEgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIPCgdjaGFuZ2VkGAIgASgIEhAKCHJlcGxheWVkGAMgASgIInIKEUxpc3RFdmVudHNSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRIUCgxhZnRlcl9jdXJzb3IYAyABKAMSDQoFbGltaXQYBCABKAUi3QEKEkxpc3RFdmVudHNSZXNwb25zZRIqCgZldmVudHMYASADKAsyGi5kZWl4aWNwdWJsaWMudjEuVGFza0V2ZW50EhMKC25leHRfY3Vyc29yGAIgASgDEhAKCGhhc19tb3JlGAMgASgIEhYKDnJlc2V0X3JlcXVpcmVkGAQgASgIEikKCHNuYXBzaG90GAUgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIxCg5zbmFwc2hvdF90dXJucxgGIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybiJkChJXYXRjaEV2ZW50c1JlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEhQKDGFmdGVyX2N1cnNvchgDIAEoAyLMAQoTV2F0Y2hFdmVudHNSZXNwb25zZRIqCgZldmVudHMYASADKAsyGi5kZWl4aWNwdWJsaWMudjEuVGFza0V2ZW50EhMKC25leHRfY3Vyc29yGAIgASgDEhYKDnJlc2V0X3JlcXVpcmVkGAMgASgIEikKCHNuYXBzaG90GAQgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIxCg5zbmFwc2hvdF90dXJucxgFIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybiL+AQoOQ29kaW5nQ29udHJhY3QSFQoNcmVwb3NpdG9yeV9pZBgBIAEoCRISCgpnZW5lcmF0aW9uGAIgASgEEh4KFnJlcXVpcmVkX2Fzc2VydGlvbl9pZHMYAyADKAkSFgoOcmVxdWlyZV9yZXZpZXcYBCABKAgSGAoQcmVxdWlyZV9iZWhhdmlvchgFIAEoCBIeChZyZWFkaW5lc3NfcmVxdWlyZW1lbnRzGAYgAygJEhgKEGF1dGhvcml6ZWRfc2tpcHMYByADKAkSHwoXYXV0aG9yaXplZF9kaXNwb3NpdGlvbnMYCCADKAkSFAoMb3V0cHV0X3BhdGhzGAkgAygJIr8CChFTdWJtaXRUYXNrUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRIRCgl0aHJlYWRfaWQYAiABKAkSDAoEYm9keRgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkSHAoUY29udGludWF0aW9uX3Rhc2tfaWQYBSABKAkSGgoScmVmZXJlbmNlX3Rhc2tfaWRzGAYgAygJEjgKD21vZGVsX3NlbGVjdGlvbhgHIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5Nb2RlbFNlbGVjdGlvbhI4Cg9jb2RpbmdfY29udHJhY3QYCCABKAsyHy5kZWl4aWNwdWJsaWMudjEuQ29kaW5nQ29udHJhY3QSGwoTcHJvamVjdF9yZXNvdXJjZV9pZBgJIAEoCSK4AQoSU3VibWl0VGFza1Jlc3BvbnNlEi0KB21lc3NhZ2UYASABKAsyHC5kZWl4aWNwdWJsaWMudjEuVGFza01lc3NhZ2USMAoNYWNjZXB0ZWRfdHVybhgCIAEoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybhIVCg1yZXBsYXlfY3Vyc29yGAMgASgDEioKCHJlY2VpcHRzGAQgAygLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQiigEKFEludGVycnVwdFRhc2tSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRIPCgd0dXJuX2lkGAMgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgEIAEoCRIOCgZyZWFzb24YBSABKAkiewoVSW50ZXJydXB0VGFza1Jlc3BvbnNlEg8KB3R1cm5faWQYASABKAkSEAoIcmVwbGF5ZWQYAiABKAgSKAoFdHVybnMYAyADKAsyGS5kZWl4aWNwdWJsaWMudjEuVGFza1R1cm4SFQoNcmVwbGF5X2N1cnNvchgEIAEoAyKnAgoXUmVzcG9uZFRvUmVxdWVzdFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEg8KB3R1cm5faWQYAyABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCRIPCgdjYWxsX2lkGAUgASgJEjIKDHJlcXVlc3Rfa2luZBgGIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5SZXF1ZXN0S2luZBIvCgZhY3Rpb24YByABKA4yHy5kZWl4aWNwdWJsaWMudjEuUmVzcG9uc2VBY3Rpb24SDAoEdGV4dBgIIAEoCRIQCghpc19lcnJvchgJIAEoCBIXCg9pZGVtcG90ZW5jeV9rZXkYCiABKAkibQoYUmVzcG9uZFRvUmVxdWVzdFJlc3BvbnNlEhAKCHJlcGxheWVkGAEgASgIEigKBXR1cm5zGAIgAygLMhkuZGVpeGljcHVibGljLnYxLlRhc2tUdXJuEhUKDXJlcGxheV9jdXJzb3IYAyABKAMiiAEKEUdldFJlY2VpcHRSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhIKCnJlY2VpcHRfaWQYAiABKAkSEQoJdGhyZWFkX2lkGAMgASgJEiUKHWluY2x1ZGVfY29kaW5nX291dHB1dF9jb250ZW50GAQgASgIIj8KEkdldFJlY2VpcHRSZXNwb25zZRIpCgdyZWNlaXB0GAEgASgLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQihAEKG1Jlc29sdmVSZWNlaXB0QWN0aW9uUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRISCgpyZWNlaXB0X2lkGAIgASgJEhEKCWFjdGlvbl9pZBgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkiSQocUmVzb2x2ZVJlY2VpcHRBY3Rpb25SZXNwb25zZRIpCgdyZWNlaXB0GAEgASgLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQigwEKDlZvaWNlU2VsZWN0aW9uEigKBG1vZGUYASABKA4yGi5kZWl4aWNwdWJsaWMudjEuVm9pY2VNb2RlEhEKCXZvaWNlX2lkcxgCIAMoCRI0ChB0b25lX2FkanVzdG1lbnRzGAMgAygOMhouZGVpeGljcHVibGljLnYxLlZvaWNlVG9uZSKFAQoXU3VibWl0Vm9pY2VkVGFza1JlcXVlc3QSMAoEdGFzaxgBIAEoCzIiLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVxdWVzdBI4Cg92b2ljZV9zZWxlY3Rpb24YAiABKAsyHy5kZWl4aWNwdWJsaWMudjEuVm9pY2VTZWxlY3Rpb24iTwoYU3VibWl0Vm9pY2VkVGFza1Jlc3BvbnNlEjMKBnJlc3VsdBgBIAEoCzIjLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVzcG9uc2UiPwoWR2V0Vm9pY2VDYXRhbG9nUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZSJSCgpCcmFuZFZvaWNlEhAKCHZvaWNlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHdmVyc2lvbhgEIAEoBCKYAQoXR2V0Vm9pY2VDYXRhbG9nUmVzcG9uc2USJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSDwoHZW5hYmxlZBgCIAEoCBIYChBkZWZhdWx0X3ZvaWNlX2lkGAMgASgJEisKBnZvaWNlcxgEIAMoCzIbLmRlaXhpY3B1YmxpYy52MS5CcmFuZFZvaWNlItEBCgdDb250cm9sEhIKCmNvbnRyb2xfaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSLAoFc3RhdGUYBCABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAUgASgJEi8KC2Fzc2Vzc2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglvd25lcl9pZHMYByADKAkSEAoIcmV2aXNpb24YCCABKAMiZwoTTGlzdENvbnRyb2xzUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEg0KBWxpbWl0GAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkiWwoUTGlzdENvbnRyb2xzUmVzcG9uc2USKgoIY29udHJvbHMYASADKAsyGC5kZWl4aWNwdWJsaWMudjEuQ29udHJvbBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiVgoRR2V0Q29udHJvbFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRISCgpjb250cm9sX2lkGAMgASgJIlgKEkNvbnRyb2xSZXF1aXJlbWVudBIUCgxmcmFtZXdvcmtfaWQYASABKAkSFgoOcmVxdWlyZW1lbnRfaWQYAiABKAkSFAoMcmV2aWV3X3N0YXRlGAMgASgJIpcBChBDb250cm9sVGVzdFN0YXRlEg8KB3Rlc3RfaWQYASABKAkSLAoFc3RhdGUYAiABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAMgASgJEi8KC2Fzc2Vzc2VkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUAQoSR2V0Q29udHJvbFJlc3BvbnNlEikKB2NvbnRyb2wYASABKAsyGC5kZWl4aWNwdWJsaWMudjEuQ29udHJvbBI5CgxyZXF1aXJlbWVudHMYAiADKAsyIy5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFJlcXVpcmVtZW50EjAKBXRlc3RzGAMgAygLMiEuZGVpeGljcHVibGljLnYxLkNvbnRyb2xUZXN0U3RhdGUSFAoMZXZpZGVuY2VfaWRzGAQgAygJEhAKCGNvbXBsZXRlGAUgASgIItUBCgRUZXN0Eg8KB3Rlc3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIsCgVzdGF0ZRgDIAEoDjIdLmRlaXhpY3B1YmxpYy52MS5Db250cm9sU3RhdGUSEwoLcmVhc29uX2NvZGUYBCABKAkSLwoLYXNzZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2NvbnRyb2xfaWRzGAYgAygJEhAKCHJldmlzaW9uGAcgASgDEhMKC2RlYWN0aXZhdGVkGAggASgIIo4BChBMaXN0VGVzdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDQoFbGltaXQYAyABKAUSEgoKcGFnZV90b2tlbhgEIAEoCRITCgtjb250cm9sX2lkcxgFIAMoCRITCgtkZWFjdGl2YXRlZBgGIAEoCCJzChFMaXN0VGVzdHNSZXNwb25zZRIkCgV0ZXN0cxgBIAMoCzIVLmRlaXhpY3B1YmxpYy52MS5UZXN0Eg0KBXRvdGFsGAIgASgNEhcKD25leHRfcGFnZV90b2tlbhgDIAEoCRIQCghjb21wbGV0ZRgEIAEoCCLkAQoSVGVzdFJlc291cmNlUmVzdWx0EhMKC3Jlc291cmNlX2lkGAEgASgJEhUKDXJlc291cmNlX2tpbmQYAiABKAkSLwoFc3RhdGUYAyABKA4yIC5kZWl4aWNwdWJsaWMudjEuVGVzdFJlc3VsdFN0YXRlEg4KBnJlYXNvbhgEIAEoCRIwCgxldmFsdWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3N0YXRlX3NpbmNlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJQCg5HZXRUZXN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEg8KB3Rlc3RfaWQYAyABKAkitwEKD0dldFRlc3RSZXNwb25zZRIjCgR0ZXN0GAEgASgLMhUuZGVpeGljcHVibGljLnYxLlRlc3QSNgoJcmVzb3VyY2VzGAIgAygLMiMuZGVpeGljcHVibGljLnYxLlRlc3RSZXNvdXJjZVJlc3VsdBI1ChFsYXN0X2V2YWx1YXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIY29tcGxldGUYBCABKAgingIKCEV2aWRlbmNlEhMKC2V2aWRlbmNlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSLAoFc3RhdGUYAyABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAQgASgJEhMKC2NvbnRyb2xfaWRzGAUgAygJEhUKDWZyYW1ld29ya19pZHMYBiADKAkSKgoGZHVlX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJjdXJyZW50X3ZlcnNpb25faWQYCCABKAkSDgoGc3RhdHVzGAkgASgJEhYKDmFwcHJvdmFsX3N0YXRlGAogASgJEhAKCHJldmlzaW9uGAsgASgDInwKE0xpc3RFdmlkZW5jZVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRINCgVsaW1pdBgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJEhMKC2NvbnRyb2xfaWRzGAUgAygJIn0KFExpc3RFdmlkZW5jZVJlc3BvbnNlEisKCGV2aWRlbmNlGAEgAygLMhkuZGVpeGljcHVibGljLnYxLkV2aWRlbmNlEg0KBXRvdGFsGAIgASgNEhcKD25leHRfcGFnZV90b2tlbhgDIAEoCRIQCghjb21wbGV0ZRgEIAEoCCLaAQoPRXZpZGVuY2VWZXJzaW9uEhIKCnZlcnNpb25faWQYASABKAkSMAoMY29sbGVjdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzaGEyNTYYAyABKAkSMAoMY292ZXJzX3N0YXJ0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjb3ZlcnNfZW5kGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdjdXJyZW50GAYgASgIIoQBChtMaXN0RXZpZGVuY2VWZXJzaW9uc1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRITCgtldmlkZW5jZV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJIn0KHExpc3RFdmlkZW5jZVZlcnNpb25zUmVzcG9uc2USMgoIdmVyc2lvbnMYASADKAsyIC5kZWl4aWNwdWJsaWMudjEuRXZpZGVuY2VWZXJzaW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRIQCghjb21wbGV0ZRgDIAEoCCJzChlHZXRFdmlkZW5jZUNvbnRlbnRSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLZXZpZGVuY2VfaWQYAyABKAkSEgoKdmVyc2lvbl9pZBgEIAEoCSJ5ChpHZXRFdmlkZW5jZUNvbnRlbnRSZXNwb25zZRISCgp2ZXJzaW9uX2lkGAEgASgJEhAKCGZpbGVuYW1lGAIgASgJEhQKDGNvbnRlbnRfdHlwZRgDIAEoCRIPCgdjb250ZW50GAQgASgMEg4KBnNoYTI1NhgFIAEoCSKuAgoFQXNzZXQSEAoIYXNzZXRfaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgphc3NldF90eXBlGAMgASgJEhAKCG93bmVyX2lkGAQgASgJEhoKEm93bmVyX2Rpc3BsYXlfbmFtZRgFIAEoCRITCgtlbnZpcm9ubWVudBgGIAEoCRIOCgZzb3VyY2UYByABKAkSHgoWbWFuYWdlZF9ieV9wcm92aWRlcl9pZBgIIAEoCRIOCgZzdGF0dXMYCSABKAkSMAoMbGFzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJzb3VyY2Vfb2JzZXJ2ZWRfYXQYCyABKAkSDAoEdGFncxgMIAMoCRISCgpzb3VyY2VfdXJsGA0gASgJImcKEUxpc3RBc3NldHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEgoKcGFnZV90b2tlbhgDIAEoCRIPCgd0eXBlX2lkGAQgASgJInwKEkxpc3RBc3NldHNSZXNwb25zZRImCgZhc3NldHMYASADKAsyFi5kZWl4aWNwdWJsaWMudjEuQXNzZXQSDQoFdG90YWwYAiABKAUSFgoOdG90YWxfaXNfZXhhY3QYAyABKAgSFwoPbmV4dF9wYWdlX3Rva2VuGAQgASgJIlIKD0dldEFzc2V0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGFzc2V0X2lkGAMgASgJIjkKEEdldEFzc2V0UmVzcG9uc2USJQoFYXNzZXQYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuQXNzZXQipAIKBUF1ZGl0EhAKCGF1ZGl0X2lkGAEgASgJEhIKCnByb2dyYW1faWQYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzdGF0dXMYBCABKAkSEwoLcmVwb3J0X3R5cGUYBSABKAkSEgoKZnJhbWV3b3JrcxgGIAMoCRIZChFwZXJpb2Rfc3RhcnRfZGF0ZRgHIAEoCRIXCg9wZXJpb2RfZW5kX2RhdGUYCCABKAkSEgoKYXNfb2ZfZGF0ZRgJIAEoCRIVCg1hdWRpdF9maXJtX2lkGAogASgJEhIKCmF1ZGl0X2Zpcm0YCyABKAkSFQoNbGVhZF9vd25lcl9pZBgMIAEoCRISCgpjcmVhdGVkX2F0GA0gASgJEhAKCHJldmlzaW9uGA4gASgDIn0KEUxpc3RBdWRpdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEgoKcHJvZ3JhbV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRIWCg5hZnRlcl9hdWRpdF9pZBgFIAEoCSJTChJMaXN0QXVkaXRzUmVzcG9uc2USJgoGYXVkaXRzGAEgAygLMhYuZGVpeGljcHVibGljLnYxLkF1ZGl0EhUKDW5leHRfYXVkaXRfaWQYAiABKAkiUgoPR2V0QXVkaXRSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEAoIYXVkaXRfaWQYAyABKAkiOQoQR2V0QXVkaXRSZXNwb25zZRIlCgVhdWRpdBgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5BdWRpdCKkAgoQQXVkaXRSZXF1ZXN0SXRlbRIPCgdpdGVtX2lkGAEgASgJEhIKCnJlcXVlc3RfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSFAoMcmVxdWVzdF90eXBlGAUgASgJEhMKC2NvbnRyb2xfaWRzGAYgAygJEhAKCG93bmVyX2lkGAcgASgJEg4KBnN0YXR1cxgIIAEoCRIQCghkdWVfZGF0ZRgJIAEoCRIRCglkdWVfc3RhdGUYCiABKAkSFgoOZXZpZGVuY2VfY291bnQYCyABKA0SGAoQbGFzdF9jYXB0dXJlZF9hdBgMIAEoCRIRCglyZWFkaW5lc3MYDSABKAkSEAoIcmV2aXNpb24YDiABKAMiegoSQXVkaXRSZXF1ZXN0Q291bnRzEg0KBXRvdGFsGAEgASgNEgwKBG9wZW4YAiABKA0SGgoSZXZpZGVuY2Vfc3VibWl0dGVkGAMgASgNEhkKEWNoYW5nZXNfcmVxdWVzdGVkGAQgASgNEhAKCGFjY2VwdGVkGAUgASgNIlsKGExpc3RBdWRpdFJlcXVlc3RzUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGF1ZGl0X2lkGAMgASgJIoUBChlMaXN0QXVkaXRSZXF1ZXN0c1Jlc3BvbnNlEjMKCHJlcXVlc3RzGAEgAygLMiEuZGVpeGljcHVibGljLnYxLkF1ZGl0UmVxdWVzdEl0ZW0SMwoGY291bnRzGAIgASgLMiMuZGVpeGljcHVibGljLnYxLkF1ZGl0UmVxdWVzdENvdW50cyJuChpHZXRBdWRpdFJlcXVlc3RJdGVtUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGF1ZGl0X2lkGAMgASgJEg8KB2l0ZW1faWQYBCABKAkiUQobR2V0QXVkaXRSZXF1ZXN0SXRlbVJlc3BvbnNlEjIKB3JlcXVlc3QYASABKAsyIS5kZWl4aWNwdWJsaWMudjEuQXVkaXRSZXF1ZXN0SXRlbSrXAQoJVHVyblN0YXRlEhoKFlRVUk5fU1RBVEVfVU5TUEVDSUZJRUQQABIXChNUVVJOX1NUQVRFX0FDQ0VQVEVEEAESFgoSVFVSTl9TVEFURV9SVU5OSU5HEAISFgoSVFVSTl9TVEFURV9XQUlUSU5HEAMSGAoUVFVSTl9TVEFURV9SRVNQT05ERUQQBBIYChRUVVJOX1NUQVRFX0NPTVBMRVRFRBAFEhUKEVRVUk5fU1RBVEVfRkFJTEVEEAYSGgoWVFVSTl9TVEFURV9JTlRFUlJVUFRFRBAHKq4BCg1XYWl0aW5nUmVhc29uEh4KGldBSVRJTkdfUkVBU09OX1VOU1BFQ0lGSUVEEAASGwoXV0FJVElOR19SRUFTT05fQVBQUk9WQUwQARIdChlXQUlUSU5HX1JFQVNPTl9VU0VSX0lOUFVUEAISHgoaV0FJVElOR19SRUFTT05fQ0xJRU5UX1RPT0wQAxIhCh1XQUlUSU5HX1JFQVNPTl9FWFRFUk5BTF9SRVRSWRAEKncKC01lc3NhZ2VSb2xlEhwKGE1FU1NBR0VfUk9MRV9VTlNQRUNJRklFRBAAEhUKEU1FU1NBR0VfUk9MRV9VU0VSEAESGgoWTUVTU0FHRV9ST0xFX0FTU0lTVEFOVBACEhcKE01FU1NBR0VfUk9MRV9TWVNURU0QAyqaBAoJRXZlbnRLaW5kEhoKFkVWRU5UX0tJTkRfVU5TUEVDSUZJRUQQABIcChhFVkVOVF9LSU5EX1RVUk5fQUNDRVBURUQQARIbChdFVkVOVF9LSU5EX1RVUk5fU1RBUlRFRBACEhcKE0VWRU5UX0tJTkRfUFJPR1JFU1MQAxIgChxFVkVOVF9LSU5EX0FQUFJPVkFMX1JFUVVJUkVEEAQSHQoZRVZFTlRfS0lORF9JTlBVVF9SRVFVSVJFRBAFEiAKHEVWRU5UX0tJTkRfQVJUSUZBQ1RfUkVDT1JERUQQBhIdChlFVkVOVF9LSU5EX1RVUk5fQ09NUExFVEVEEAcSGgoWRVZFTlRfS0lORF9UVVJOX0ZBSUxFRBAIEh8KG0VWRU5UX0tJTkRfVFVSTl9JTlRFUlJVUFRFRBAJEiMKH0VWRU5UX0tJTkRfQ0xJRU5UX1RPT0xfUkVRVUlSRUQQChImCiJFVkVOVF9LSU5EX0VYVEVSTkFMX1JFVFJZX1JFUVVJUkVEEAsSIwofRVZFTlRfS0lORF9BU1NJU1RBTlRfVEVYVF9ERUxUQRAMEiYKIkVWRU5UX0tJTkRfQVNTSVNUQU5UX1RFWFRfT0JTRVJWRUQQDRImCiJFVkVOVF9LSU5EX01PREVMX0FUVEVNUFRfQUJBTkRPTkVEEA4SHAoYRVZFTlRfS0lORF9UT09MX1BST1BPU0VEEA8qogEKC1JlcXVlc3RLaW5kEhwKGFJFUVVFU1RfS0lORF9VTlNQRUNJRklFRBAAEhkKFVJFUVVFU1RfS0lORF9BUFBST1ZBTBABEhsKF1JFUVVFU1RfS0lORF9VU0VSX0lOUFVUEAISHAoYUkVRVUVTVF9LSU5EX0NMSUVOVF9UT09MEAMSHwobUkVRVUVTVF9LSU5EX0VYVEVSTkFMX1JFVFJZEAQqoAMKDFJlY2VpcHRTdGF0ZRIdChlSRUNFSVBUX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVUkVDRUlQVF9TVEFURV9VTktOT1dOEAESGgoWUkVDRUlQVF9TVEFURV9QUk9QT1NFRBACEhgKFFJFQ0VJUFRfU1RBVEVfUVVFVUVEEAMSIgoeUkVDRUlQVF9TVEFURV9XQUlUSU5HX0FQUFJPVkFMEAQSGQoVUkVDRUlQVF9TVEFURV9CTE9DS0VEEAUSHQoZUkVDRUlQVF9TVEFURV9ORUVEU19JTlBVVBAGEh0KGVJFQ0VJUFRfU1RBVEVfVU5BVkFJTEFCTEUQBxIZChVSRUNFSVBUX1NUQVRFX1JVTk5JTkcQCBIbChdSRUNFSVBUX1NUQVRFX1NVQ0NFRURFRBAJEhoKFlJFQ0VJUFRfU1RBVEVfVkVSSUZJRUQQChIYChRSRUNFSVBUX1NUQVRFX0RFTklFRBALEhsKF1JFQ0VJUFRfU1RBVEVfQ0FOQ0VMTEVEEAwSGAoUUkVDRUlQVF9TVEFURV9GQUlMRUQQDSrAAgoTTW9kZWxSZWFkaW5lc3NTdGF0ZRIlCiFNT0RFTF9SRUFESU5FU1NfU1RBVEVfVU5TUEVDSUZJRUQQABIfChtNT0RFTF9SRUFESU5FU1NfU1RBVEVfUkVBRFkQARItCilNT0RFTF9SRUFESU5FU1NfU1RBVEVfQUNUSVZBVElPTl9SRVFVSVJFRBACEioKJk1PREVMX1JFQURJTkVTU19TVEFURV9GVU5ESU5HX1JFUVVJUkVEEAMSJwojTU9ERUxfUkVBRElORVNTX1NUQVRFX0xJTUlUX1JFQUNIRUQQBBIqCiZNT0RFTF9SRUFESU5FU1NfU1RBVEVfQUNDRVNTX1NVU1BFTkRFRBAFEjEKLU1PREVMX1JFQURJTkVTU19TVEFURV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRRAGKqIBCg9Nb2RlbE5leHRBY3Rpb24SIQodTU9ERUxfTkVYVF9BQ1RJT05fVU5TUEVDSUZJRUQQABIrCidNT0RFTF9ORVhUX0FDVElPTl9DT05UQUNUX0FETUlOSVNUUkFUT1IQARIiCh5NT0RFTF9ORVhUX0FDVElPTl9WSUVXX0ZVTkRJTkcQAhIbChdNT0RFTF9ORVhUX0FDVElPTl9SRVRSWRADKnkKD0NsaWVudFJ1bGVTY29wZRIhCh1DTElFTlRfUlVMRV9TQ09QRV9VTlNQRUNJRklFRBAAEiIKHkNMSUVOVF9SVUxFX1NDT1BFX09SR0FOSVpBVElPThABEh8KG0NMSUVOVF9SVUxFX1NDT1BFX1dPUktTUEFDRRACKocBCg1DbGllbnRNY3BNb2RlEh8KG0NMSUVOVF9NQ1BfTU9ERV9VTlNQRUNJRklFRBAAEhgKFENMSUVOVF9NQ1BfTU9ERV9PUEVOEAESHQoZQ0xJRU5UX01DUF9NT0RFX0FMTE9XTElTVBACEhwKGENMSUVOVF9NQ1BfTU9ERV9ERU5ZTElTVBADKq4BChtCdXNpbmVzc1NvdXJjZUZpZWxkUHJvcGVydHkSLgoqQlVTSU5FU1NfU09VUkNFX0ZJRUxEX1BST1BFUlRZX1VOU1BFQ0lGSUVEEAASLworQlVTSU5FU1NfU09VUkNFX0ZJRUxEX1BST1BFUlRZX0RJU1BMQVlfTkFNRRABEi4KKkJVU0lORVNTX1NPVVJDRV9GSUVMRF9QUk9QRVJUWV9FWFRFUk5BTF9JRBACKq8BCh5Db21wbGlhbmNlTGlicmFyeVJlY29uY2lsZU1vZGUSMQotQ09NUExJQU5DRV9MSUJSQVJZX1JFQ09OQ0lMRV9NT0RFX1VOU1BFQ0lGSUVEEAASLQopQ09NUExJQU5DRV9MSUJSQVJZX1JFQ09OQ0lMRV9NT0RFX1BSRVZJRVcQARIrCidDT01QTElBTkNFX0xJQlJBUllfUkVDT05DSUxFX01PREVfQVBQTFkQAirZAgobQ29tcGxpYW5jZUxpYnJhcnlDaGFuZ2VLaW5kEi4KKkNPTVBMSUFOQ0VfTElCUkFSWV9DSEFOR0VfS0lORF9VTlNQRUNJRklFRBAAEiYKIkNPTVBMSUFOQ0VfTElCUkFSWV9DSEFOR0VfS0lORF9BREQQARIpCiVDT01QTElBTkNFX0xJQlJBUllfQ0hBTkdFX0tJTkRfVVBEQVRFEAISKwonQ09NUExJQU5DRV9MSUJSQVJZX0NIQU5HRV9LSU5EX1dJVEhEUkFXEAMSKgomQ09NUExJQU5DRV9MSUJSQVJZX0NIQU5HRV9LSU5EX01BUFBJTkcQBBIrCidDT01QTElBTkNFX0xJQlJBUllfQ0hBTkdFX0tJTkRfQ09ORkxJQ1QQBRIxCi1DT01QTElBTkNFX0xJQlJBUllfQ0hBTkdFX0tJTkRfUFJFU0VSVkVfTE9DQUwQBirUAQoOUmVzcG9uc2VBY3Rpb24SHwobUkVTUE9OU0VfQUNUSU9OX1VOU1BFQ0lGSUVEEAASGwoXUkVTUE9OU0VfQUNUSU9OX0FQUFJPVkUQARIYChRSRVNQT05TRV9BQ1RJT05fREVOWRACEhoKFlJFU1BPTlNFX0FDVElPTl9BTlNXRVIQAxIZChVSRVNQT05TRV9BQ1RJT05fUkVUUlkQBBIYChRSRVNQT05TRV9BQ1RJT05fU0tJUBAFEhkKFVJFU1BPTlNFX0FDVElPTl9BQk9SVBAGKn0KCVZvaWNlTW9kZRIaChZWT0lDRV9NT0RFX1VOU1BFQ0lGSUVEEAASIAocVk9JQ0VfTU9ERV9XT1JLU1BBQ0VfREVGQVVMVBABEhoKFlZPSUNFX01PREVfQlJBTkRfVk9JQ0UQAhIWChJWT0lDRV9NT0RFX05FVVRSQUwQAyptCglWb2ljZVRvbmUSGgoWVk9JQ0VfVE9ORV9VTlNQRUNJRklFRBAAEhYKElZPSUNFX1RPTkVfQ09OQ0lTRRABEhUKEVZPSUNFX1RPTkVfRk9STUFMEAISFQoRVk9JQ0VfVE9ORV9XQVJNRVIQAyrZAQoMQ29udHJvbFN0YXRlEh0KGUNPTlRST0xfU1RBVEVfVU5TUEVDSUZJRUQQABIaChZDT05UUk9MX1NUQVRFX1ZFUklGSUVEEAESGQoVQ09OVFJPTF9TVEFURV9GQUlMSU5HEAISGQoVQ09OVFJPTF9TVEFURV9VTktOT1dOEAMSGgoWQ09OVFJPTF9TVEFURV9BVFRFU1RFRBAEEiAKHENPTlRST0xfU1RBVEVfTk9UX0FQUExJQ0FCTEUQBRIaChZDT05UUk9MX1NUQVRFX0VYQ0VQVEVEEAYqoAIKD1Rlc3RSZXN1bHRTdGF0ZRIhCh1URVNUX1JFU1VMVF9TVEFURV9VTlNQRUNJRklFRBAAEh4KGlRFU1RfUkVTVUxUX1NUQVRFX1ZFUklGSUVEEAESHQoZVEVTVF9SRVNVTFRfU1RBVEVfRkFJTElORxACEiMKH1RFU1RfUkVTVUxUX1NUQVRFX0lOREVURVJNSU5BVEUQAxIdChlURVNUX1JFU1VMVF9TVEFURV9OT1RfUlVOEAQSJAogVEVTVF9SRVNVTFRfU1RBVEVfTk9UX0FQUExJQ0FCTEUQBRIeChpURVNUX1JFU1VMVF9TVEFURV9FWENFUFRFRBAGEiEKHVRFU1RfUkVTVUxUX1NUQVRFX05PVF9SVU5OSU5HEAcyjyQKE0RlaXhpY1B1YmxpY1NlcnZpY2USUgoJR2V0VGhyZWFkEiEuZGVpeGljcHVibGljLnYxLkdldFRocmVhZFJlcXVlc3QaIi5kZWl4aWNwdWJsaWMudjEuR2V0VGhyZWFkUmVzcG9uc2USWAoLTGlzdFRocmVhZHMSIy5kZWl4aWNwdWJsaWMudjEuTGlzdFRocmVhZHNSZXF1ZXN0GiQuZGVpeGljcHVibGljLnYxLkxpc3RUaHJlYWRzUmVzcG9uc2USWwoMUmVuYW1lVGhyZWFkEiQuZGVpeGljcHVibGljLnYxLlJlbmFtZVRocmVhZFJlcXVlc3QaJS5kZWl4aWNwdWJsaWMudjEuUmVuYW1lVGhyZWFkUmVzcG9uc2USXgoNQXJjaGl2ZVRocmVhZBIlLmRlaXhpY3B1YmxpYy52MS5BcmNoaXZlVGhyZWFkUmVxdWVzdBomLmRlaXhpY3B1YmxpYy52MS5BcmNoaXZlVGhyZWFkUmVzcG9uc2USVQoKTGlzdEV2ZW50cxIiLmRlaXhpY3B1YmxpYy52MS5MaXN0RXZlbnRzUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5MaXN0RXZlbnRzUmVzcG9uc2USWgoLV2F0Y2hFdmVudHMSIy5kZWl4aWNwdWJsaWMudjEuV2F0Y2hFdmVudHNSZXF1ZXN0GiQuZGVpeGljcHVibGljLnYxLldhdGNoRXZlbnRzUmVzcG9uc2UwARJVCgpTdWJtaXRUYXNrEiIuZGVpeGljcHVibGljLnYxLlN1Ym1pdFRhc2tSZXF1ZXN0GiMuZGVpeGljcHVibGljLnYxLlN1Ym1pdFRhc2tSZXNwb25zZRJnChBTdWJtaXRWb2ljZWRUYXNrEiguZGVpeGljcHVibGljLnYxLlN1Ym1pdFZvaWNlZFRhc2tSZXF1ZXN0GikuZGVpeGljcHVibGljLnYxLlN1Ym1pdFZvaWNlZFRhc2tSZXNwb25zZRJkCg9HZXRWb2ljZUNhdGFsb2cSJy5kZWl4aWNwdWJsaWMudjEuR2V0Vm9pY2VDYXRhbG9nUmVxdWVzdBooLmRlaXhpY3B1YmxpYy52MS5HZXRWb2ljZUNhdGFsb2dSZXNwb25zZRJeCg1JbnRlcnJ1cHRUYXNrEiUuZGVpeGljcHVibGljLnYxLkludGVycnVwdFRhc2tSZXF1ZXN0GiYuZGVpeGljcHVibGljLnYxLkludGVycnVwdFRhc2tSZXNwb25zZRJnChBSZXNwb25kVG9SZXF1ZXN0EiguZGVpeGljcHVibGljLnYxLlJlc3BvbmRUb1JlcXVlc3RSZXF1ZXN0GikuZGVpeGljcHVibGljLnYxLlJlc3BvbmRUb1JlcXVlc3RSZXNwb25zZRJVCgpHZXRSZWNlaXB0EiIuZGVpeGljcHVibGljLnYxLkdldFJlY2VpcHRSZXF1ZXN0GiMuZGVpeGljcHVibGljLnYxLkdldFJlY2VpcHRSZXNwb25zZRJzChRSZXNvbHZlUmVjZWlwdEFjdGlvbhIsLmRlaXhpY3B1YmxpYy52MS5SZXNvbHZlUmVjZWlwdEFjdGlvblJlcXVlc3QaLS5kZWl4aWNwdWJsaWMudjEuUmVzb2x2ZVJlY2VpcHRBY3Rpb25SZXNwb25zZRJqChFHZXRNb2RlbFJlYWRpbmVzcxIpLmRlaXhpY3B1YmxpYy52MS5HZXRNb2RlbFJlYWRpbmVzc1JlcXVlc3QaKi5kZWl4aWNwdWJsaWMudjEuR2V0TW9kZWxSZWFkaW5lc3NSZXNwb25zZRJhCg5HZXRDbGllbnRTZXR1cBImLmRlaXhpY3B1YmxpYy52MS5HZXRDbGllbnRTZXR1cFJlcXVlc3QaJy5kZWl4aWNwdWJsaWMudjEuR2V0Q2xpZW50U2V0dXBSZXNwb25zZRJqChFTdWJtaXRJc3N1ZVJlcG9ydBIpLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRJc3N1ZVJlcG9ydFJlcXVlc3QaKi5kZWl4aWNwdWJsaWMudjEuU3VibWl0SXNzdWVSZXBvcnRSZXNwb25zZRJzChRDcmVhdGVCdXNpbmVzc09iamVjdBIsLmRlaXhpY3B1YmxpYy52MS5DcmVhdGVCdXNpbmVzc09iamVjdFJlcXVlc3QaLS5kZWl4aWNwdWJsaWMudjEuQ3JlYXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRJqChFHZXRCdXNpbmVzc09iamVjdBIpLmRlaXhpY3B1YmxpYy52MS5HZXRCdXNpbmVzc09iamVjdFJlcXVlc3QaKi5kZWl4aWNwdWJsaWMudjEuR2V0QnVzaW5lc3NPYmplY3RSZXNwb25zZRJzChRVcGRhdGVCdXNpbmVzc09iamVjdBIsLmRlaXhpY3B1YmxpYy52MS5VcGRhdGVCdXNpbmVzc09iamVjdFJlcXVlc3QaLS5kZWl4aWNwdWJsaWMudjEuVXBkYXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRJzChREZWxldGVCdXNpbmVzc09iamVjdBIsLmRlaXhpY3B1YmxpYy52MS5EZWxldGVCdXNpbmVzc09iamVjdFJlcXVlc3QaLS5kZWl4aWNwdWJsaWMudjEuRGVsZXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRJwChNMaXN0QnVzaW5lc3NPYmplY3RzEisuZGVpeGljcHVibGljLnYxLkxpc3RCdXNpbmVzc09iamVjdHNSZXF1ZXN0GiwuZGVpeGljcHVibGljLnYxLkxpc3RCdXNpbmVzc09iamVjdHNSZXNwb25zZRJ8ChdMaXN0QnVzaW5lc3NPYmplY3RUeXBlcxIvLmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NPYmplY3RUeXBlc1JlcXVlc3QaMC5kZWl4aWNwdWJsaWMudjEuTGlzdEJ1c2luZXNzT2JqZWN0VHlwZXNSZXNwb25zZRJ5ChZMaXN0QnVzaW5lc3NCbHVlcHJpbnRzEi4uZGVpeGljcHVibGljLnYxLkxpc3RCdXNpbmVzc0JsdWVwcmludHNSZXF1ZXN0Gi8uZGVpeGljcHVibGljLnYxLkxpc3RCdXNpbmVzc0JsdWVwcmludHNSZXNwb25zZRJ/ChhCaW5kQnVzaW5lc3NPYmplY3RTb3VyY2USMC5kZWl4aWNwdWJsaWMudjEuQmluZEJ1c2luZXNzT2JqZWN0U291cmNlUmVxdWVzdBoxLmRlaXhpY3B1YmxpYy52MS5CaW5kQnVzaW5lc3NPYmplY3RTb3VyY2VSZXNwb25zZRKUAQofTGlzdEJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwcxI3LmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBzUmVxdWVzdBo4LmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBzUmVzcG9uc2USlwEKIENyZWF0ZUJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwEjguZGVpeGljcHVibGljLnYxLkNyZWF0ZUJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwUmVxdWVzdBo5LmRlaXhpY3B1YmxpYy52MS5DcmVhdGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlc3BvbnNlEpcBCiBEZWxldGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBI4LmRlaXhpY3B1YmxpYy52MS5EZWxldGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlcXVlc3QaOS5kZWl4aWNwdWJsaWMudjEuRGVsZXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXNwb25zZRJVCgpHZXRQcm9ncmFtEiIuZGVpeGljcHVibGljLnYxLkdldFByb2dyYW1SZXF1ZXN0GiMuZGVpeGljcHVibGljLnYxLkdldFByb2dyYW1SZXNwb25zZRJeCg1DcmVhdGVQcm9ncmFtEiUuZGVpeGljcHVibGljLnYxLkNyZWF0ZVByb2dyYW1SZXF1ZXN0GiYuZGVpeGljcHVibGljLnYxLkNyZWF0ZVByb2dyYW1SZXNwb25zZRJeCg1VcGRhdGVQcm9ncmFtEiUuZGVpeGljcHVibGljLnYxLlVwZGF0ZVByb2dyYW1SZXF1ZXN0GiYuZGVpeGljcHVibGljLnYxLlVwZGF0ZVByb2dyYW1SZXNwb25zZRKFAQoaUmVjb25jaWxlQ29tcGxpYW5jZUxpYnJhcnkSMi5kZWl4aWNwdWJsaWMudjEuUmVjb25jaWxlQ29tcGxpYW5jZUxpYnJhcnlSZXF1ZXN0GjMuZGVpeGljcHVibGljLnYxLlJlY29uY2lsZUNvbXBsaWFuY2VMaWJyYXJ5UmVzcG9uc2USWwoMTGlzdENvbnRyb2xzEiQuZGVpeGljcHVibGljLnYxLkxpc3RDb250cm9sc1JlcXVlc3QaJS5kZWl4aWNwdWJsaWMudjEuTGlzdENvbnRyb2xzUmVzcG9uc2USVQoKR2V0Q29udHJvbBIiLmRlaXhpY3B1YmxpYy52MS5HZXRDb250cm9sUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5HZXRDb250cm9sUmVzcG9uc2USUgoJTGlzdFRlc3RzEiEuZGVpeGljcHVibGljLnYxLkxpc3RUZXN0c1JlcXVlc3QaIi5kZWl4aWNwdWJsaWMudjEuTGlzdFRlc3RzUmVzcG9uc2USTAoHR2V0VGVzdBIfLmRlaXhpY3B1YmxpYy52MS5HZXRUZXN0UmVxdWVzdBogLmRlaXhpY3B1YmxpYy52MS5HZXRUZXN0UmVzcG9uc2USWwoMTGlzdEV2aWRlbmNlEiQuZGVpeGljcHVibGljLnYxLkxpc3RFdmlkZW5jZVJlcXVlc3QaJS5kZWl4aWNwdWJsaWMudjEuTGlzdEV2aWRlbmNlUmVzcG9uc2UScwoUTGlzdEV2aWRlbmNlVmVyc2lvbnMSLC5kZWl4aWNwdWJsaWMudjEuTGlzdEV2aWRlbmNlVmVyc2lvbnNSZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLkxpc3RFdmlkZW5jZVZlcnNpb25zUmVzcG9uc2USbQoSR2V0RXZpZGVuY2VDb250ZW50EiouZGVpeGljcHVibGljLnYxLkdldEV2aWRlbmNlQ29udGVudFJlcXVlc3QaKy5kZWl4aWNwdWJsaWMudjEuR2V0RXZpZGVuY2VDb250ZW50UmVzcG9uc2USVQoKTGlzdEFzc2V0cxIiLmRlaXhpY3B1YmxpYy52MS5MaXN0QXNzZXRzUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5MaXN0QXNzZXRzUmVzcG9uc2USTwoIR2V0QXNzZXQSIC5kZWl4aWNwdWJsaWMudjEuR2V0QXNzZXRSZXF1ZXN0GiEuZGVpeGljcHVibGljLnYxLkdldEFzc2V0UmVzcG9uc2USVQoKTGlzdEF1ZGl0cxIiLmRlaXhpY3B1YmxpYy52MS5MaXN0QXVkaXRzUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5MaXN0QXVkaXRzUmVzcG9uc2USTwoIR2V0QXVkaXQSIC5kZWl4aWNwdWJsaWMudjEuR2V0QXVkaXRSZXF1ZXN0GiEuZGVpeGljcHVibGljLnYxLkdldEF1ZGl0UmVzcG9uc2USagoRTGlzdEF1ZGl0UmVxdWVzdHMSKS5kZWl4aWNwdWJsaWMudjEuTGlzdEF1ZGl0UmVxdWVzdHNSZXF1ZXN0GiouZGVpeGljcHVibGljLnYxLkxpc3RBdWRpdFJlcXVlc3RzUmVzcG9uc2UScAoTR2V0QXVkaXRSZXF1ZXN0SXRlbRIrLmRlaXhpY3B1YmxpYy52MS5HZXRBdWRpdFJlcXVlc3RJdGVtUmVxdWVzdBosLmRlaXhpY3B1YmxpYy52MS5HZXRBdWRpdFJlcXVlc3RJdGVtUmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9keC1jb3JwL2RlaXhpYy1nby9kZWl4aWNwdWJsaWMvdjE7ZGVpeGljcHVibGljdjFiBnByb3RvMw", [file_google_protobuf_timestamp]); + fileDesc("ChlkZWl4aWNwdWJsaWMvdjEvc2RrLnByb3RvEg9kZWl4aWNwdWJsaWMudjEiNgoFU2NvcGUSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCSJTCgtFcnJvckRldGFpbBIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCRIRCglyZXRyeWFibGUYBCABKAgiugMKCFRhc2tUdXJuEg8KB3R1cm5faWQYASABKAkSEAoIc2VxdWVuY2UYAiABKAMSFwoPdXNlcl9tZXNzYWdlX2lkGAMgASgJEhwKFGFzc2lzdGFudF9tZXNzYWdlX2lkGAQgASgJEikKBXN0YXRlGAUgASgOMhouZGVpeGljcHVibGljLnYxLlR1cm5TdGF0ZRI2Cg53YWl0aW5nX3JlYXNvbhgGIAEoDjIeLmRlaXhpY3B1YmxpYy52MS5XYWl0aW5nUmVhc29uEhQKDGZpcnN0X2N1cnNvchgHIAEoAxITCgtsYXN0X2N1cnNvchgIIAEoAxI0Cg50ZXJtaW5hbF9lcnJvchgJIAEoCzIcLmRlaXhpY3B1YmxpYy52MS5FcnJvckRldGFpbBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsQBCgZUaHJlYWQSCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSFQoNcmVwbGF5X2N1cnNvchgDIAEoAxIcChRhY3RpdmVfdHVybl9zZXF1ZW5jZRgEIAEoAxIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgx1bnJlYWRfY291bnQYBiABKAUSEgoKb3Blbl9jb3VudBgHIAEoBRIQCghhcmNoaXZlZBgIIAEoCCKYAQoLVGFza01lc3NhZ2USCgoCaWQYASABKAkSKgoEcm9sZRgCIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5NZXNzYWdlUm9sZRIMCgRib2R5GAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3JlY2VpcHRfaWRzGAUgAygJIkkKEUV2aWRlbmNlUmVmZXJlbmNlEgwKBGtpbmQYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSCwoDdXJpGAQgASgJIvgCCglUYXNrRXZlbnQSDgoGY3Vyc29yGAEgASgDEgoKAmlkGAIgASgJEg8KB3R1cm5faWQYAyABKAkSKAoEa2luZBgEIAEoDjIaLmRlaXhpY3B1YmxpYy52MS5FdmVudEtpbmQSDAoEdGV4dBgFIAEoCRI0CghldmlkZW5jZRgGIAMoCzIiLmRlaXhpY3B1YmxpYy52MS5FdmlkZW5jZVJlZmVyZW5jZRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpyZXF1ZXN0X2lkGAggASgJEjIKDHJlcXVlc3Rfa2luZBgJIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5SZXF1ZXN0S2luZBIRCgl0b29sX25hbWUYCiABKAkSDwoHY2FsbF9pZBgLIAEoCRI0Cg50ZXJtaW5hbF9lcnJvchgMIAEoCzIcLmRlaXhpY3B1YmxpYy52MS5FcnJvckRldGFpbCJwCg1SZWNlaXB0QWN0aW9uEgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEgwKBGtpbmQYAyABKAkSHQoVcmVxdWlyZXNfY29uZmlybWF0aW9uGAQgASgIEhcKD2Rpc2FibGVkX3JlYXNvbhgFIAEoCSJ4CgxDb2RpbmdPdXRwdXQSDAoEcGF0aBgBIAEoCRIRCglvYmplY3RfaWQYAiABKAkSEgoKdmVyc2lvbl9pZBgDIAEoCRIOCgZzaGEyNTYYBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoBBIPCgdjb250ZW50GAYgASgMIqsBChBDb2RpbmdBY2NlcHRhbmNlEhAKCGFjY2VwdGVkGAEgASgIEhcKD2NvbnRyYWN0X2RpZ2VzdBgCIAEoCRIZChFzdWJtaXNzaW9uX2RpZ2VzdBgDIAEoCRIPCgdyZWFzb25zGAQgAygJEhAKCHJldmlzaW9uGAUgASgJEi4KB291dHB1dHMYBiADKAsyHS5kZWl4aWNwdWJsaWMudjEuQ29kaW5nT3V0cHV0Is4CCgdSZWNlaXB0EgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSDQoFdGl0bGUYAyABKAkSDwoHc3VtbWFyeRgEIAEoCRIsCgVzdGF0ZRgFIAEoDjIdLmRlaXhpY3B1YmxpYy52MS5SZWNlaXB0U3RhdGUSLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoPYWxsb3dlZF9hY3Rpb25zGAcgAygLMh4uZGVpeGljcHVibGljLnYxLlJlY2VpcHRBY3Rpb24SNAoIZXZpZGVuY2UYCCADKAsyIi5kZWl4aWNwdWJsaWMudjEuRXZpZGVuY2VSZWZlcmVuY2USPAoRY29kaW5nX2FjY2VwdGFuY2UYCSABKAsyIS5kZWl4aWNwdWJsaWMudjEuQ29kaW5nQWNjZXB0YW5jZSIxCg5Nb2RlbFNlbGVjdGlvbhIQCghwcm92aWRlchgBIAEoCRINCgVtb2RlbBgCIAEoCSJWCg5BdmFpbGFibGVNb2RlbBIQCghwcm92aWRlchgBIAEoCRINCgVtb2RlbBgCIAEoCRINCgVyZWFkeRgDIAEoCBIUCgxkaXNwbGF5X25hbWUYBCABKAki/gEKDlNldHVwUmVhZGluZXNzEhIKCmFjY2Vzc2libGUYASABKAgSHAoUbWlzc2luZ19yZXF1aXJlbWVudHMYAiADKAkSMgoJc2VsZWN0aW9uGAMgASgLMh8uZGVpeGljcHVibGljLnYxLk1vZGVsU2VsZWN0aW9uEjYKDWRlZmF1bHRfbW9kZWwYBCABKAsyHy5kZWl4aWNwdWJsaWMudjEuQXZhaWxhYmxlTW9kZWwSOQoQYXZhaWxhYmxlX21vZGVscxgFIAMoCzIfLmRlaXhpY3B1YmxpYy52MS5BdmFpbGFibGVNb2RlbBITCgtuZXh0X2FjdGlvbhgGIAEoCSKKAQoYR2V0TW9kZWxSZWFkaW5lc3NSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEjIKCXNlbGVjdGlvbhgCIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5Nb2RlbFNlbGVjdGlvbhITCgtlbnZpcm9ubWVudBgDIAEoCSKqAgoZR2V0TW9kZWxSZWFkaW5lc3NSZXNwb25zZRIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRIyCglzZWxlY3Rpb24YAiABKAsyHy5kZWl4aWNwdWJsaWMudjEuTW9kZWxTZWxlY3Rpb24SEwoLZW52aXJvbm1lbnQYAyABKAkSMwoFc3RhdGUYBCABKA4yJC5kZWl4aWNwdWJsaWMudjEuTW9kZWxSZWFkaW5lc3NTdGF0ZRI2CgxuZXh0X2FjdGlvbnMYBSADKA4yIC5kZWl4aWNwdWJsaWMudjEuTW9kZWxOZXh0QWN0aW9uEjAKDGV2YWx1YXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAibwoKQ2xpZW50UnVsZRIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIVCg1ib2R5X21hcmtkb3duGAMgASgJEi8KBXNjb3BlGAQgASgOMiAuZGVpeGljcHVibGljLnYxLkNsaWVudFJ1bGVTY29wZSJMCgtDbGllbnRTa2lsbBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXF1aXJlZBgEIAEoCCJHCg9DbGllbnRNY3BTZXJ2ZXISDAoEbmFtZRgBIAEoCRITCgt1cmxfcGF0dGVybhgCIAEoCRIRCgl0cmFuc3BvcnQYAyABKAkicgoPQ2xpZW50TWNwUG9saWN5EiwKBG1vZGUYASABKA4yHi5kZWl4aWNwdWJsaWMudjEuQ2xpZW50TWNwTW9kZRIxCgdzZXJ2ZXJzGAIgAygLMiAuZGVpeGljcHVibGljLnYxLkNsaWVudE1jcFNlcnZlciI+ChVHZXRDbGllbnRTZXR1cFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUipQIKFkdldENsaWVudFNldHVwUmVzcG9uc2USJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSDwoHdmVyc2lvbhgCIAEoBBItCglpc3N1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBXJ1bGVzGAQgAygLMhsuZGVpeGljcHVibGljLnYxLkNsaWVudFJ1bGUSLAoGc2tpbGxzGAUgAygLMhwuZGVpeGljcHVibGljLnYxLkNsaWVudFNraWxsEi0KA21jcBgGIAEoCzIgLmRlaXhpY3B1YmxpYy52MS5DbGllbnRNY3BQb2xpY3kSGwoTc2FuZGJveF9wb2xpY3lfdG9tbBgHIAEoCSI+Cg1Jc3N1ZUV2aWRlbmNlEgwKBGtpbmQYASABKAkSEQoJc291cmNlX2lkGAIgASgJEgwKBHRleHQYAyABKAkiawoMSXNzdWVDb250ZXh0EhoKEnJlcHJvZHVjdGlvbl9zdGVwcxgBIAEoCRINCgVtb2RlbBgCIAEoCRIwCghldmlkZW5jZRgDIAMoCzIeLmRlaXhpY3B1YmxpYy52MS5Jc3N1ZUV2aWRlbmNlIuwBChhTdWJtaXRJc3N1ZVJlcG9ydFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEwoLZGVzY3JpcHRpb24YAiABKAkSGQoRZXhwZWN0ZWRfYmVoYXZpb3IYAyABKAkSEwoLYXBwX3ZlcnNpb24YBCABKAkSGwoTaW5jbHVkZV9kaWFnbm9zdGljcxgFIAEoCBIXCg9pZGVtcG90ZW5jeV9rZXkYBiABKAkSLgoHY29udGV4dBgHIAEoCzIdLmRlaXhpY3B1YmxpYy52MS5Jc3N1ZUNvbnRleHQiLAoLSXNzdWVSZXBvcnQSCgoCaWQYASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIkkKGVN1Ym1pdElzc3VlUmVwb3J0UmVzcG9uc2USLAoGcmVwb3J0GAEgASgLMhwuZGVpeGljcHVibGljLnYxLklzc3VlUmVwb3J0IjEKDUJ1c2luZXNzTW9uZXkSDgoGYW1vdW50GAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIiwKF0J1c2luZXNzT2JqZWN0UmVmZXJlbmNlEhEKCW9iamVjdF9pZBgBIAEoCSI4ChlCdXNpbmVzc0FydGlmYWN0UmVmZXJlbmNlEhsKE2FydGlmYWN0X3ZlcnNpb25faWQYASABKAkiIgoQQnVzaW5lc3NUZXh0TGlzdBIOCgZ2YWx1ZXMYASADKAkimwMKEkJ1c2luZXNzRmllbGRWYWx1ZRIQCghmaWVsZF9pZBgBIAEoCRIOCgR0ZXh0GAIgASgJSAASEQoHaW50ZWdlchgDIAEoA0gAEhEKB2Jvb2xlYW4YBCABKAhIABIRCgdkZWNpbWFsGAUgASgJSAASLwoFbW9uZXkYBiABKAsyHi5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NNb25leUgAEhQKCmVudW1fdmFsdWUYByABKAlIABIOCgRkYXRlGAggASgJSAASEwoJdGltZXN0YW1wGAkgASgJSAASPQoJcmVmZXJlbmNlGAogASgLMiguZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0UmVmZXJlbmNlSAASPgoIYXJ0aWZhY3QYCyABKAsyKi5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NBcnRpZmFjdFJlZmVyZW5jZUgAEjYKCXRleHRfbGlzdBgMIAEoCzIhLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1RleHRMaXN0SABCBwoFdmFsdWUi2QEKDkJ1c2luZXNzT2JqZWN0EhEKCW9iamVjdF9pZBgBIAEoCRIPCgd0eXBlX2lkGAIgASgJEhcKD3NjaGVtYV9yZXZpc2lvbhgDIAEoAxIQCghyZXZpc2lvbhgEIAEoAxIzCgZ2YWx1ZXMYBSADKAsyIy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NGaWVsZFZhbHVlEg8KB2RlbGV0ZWQYBiABKAgSEgoKdXBkYXRlZF9hdBgJIAEoCRISCgpjcmVhdGVkX2F0GAogASgJSgQIBxAISgQICBAJIsQBChtDcmVhdGVCdXNpbmVzc09iamVjdFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSDwoHdHlwZV9pZBgEIAEoCRIXCg9zY2hlbWFfcmV2aXNpb24YBSABKAMSMwoGdmFsdWVzGAYgAygLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzRmllbGRWYWx1ZSJPChxDcmVhdGVCdXNpbmVzc09iamVjdFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCJoChhHZXRCdXNpbmVzc09iamVjdFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIRCglvYmplY3RfaWQYBCABKAlKBAgDEARKBAgFEAYiTAoZR2V0QnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3Qi4QEKG1VwZGF0ZUJ1c2luZXNzT2JqZWN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIRCglvYmplY3RfaWQYBCABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBSABKAMSMwoGdmFsdWVzGAYgAygLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzRmllbGRWYWx1ZRIXCg9zY2hlbWFfcmV2aXNpb24YByABKAMiTwocVXBkYXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QikwEKG0RlbGV0ZUJ1c2luZXNzT2JqZWN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIRCglvYmplY3RfaWQYBCABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBSABKAMiTwocRGVsZXRlQnVzaW5lc3NPYmplY3RSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QihAEKGkxpc3RCdXNpbmVzc09iamVjdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDwoHdHlwZV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRIXCg9hZnRlcl9vYmplY3RfaWQYBSABKAkiZwobTGlzdEJ1c2luZXNzT2JqZWN0c1Jlc3BvbnNlEjAKB29iamVjdHMYASADKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QSFgoObmV4dF9vYmplY3RfaWQYAiABKAkiWAoXQnVzaW5lc3NCbHVlcHJpbnRPcmlnaW4SFAoMYmx1ZXByaW50X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKAMSFgoOc291cmNlX3R5cGVfaWQYAyABKAkipQIKF0J1c2luZXNzT2JqZWN0VHlwZUZpZWxkEhAKCGZpZWxkX2lkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhcKD3NvdXJjZV9tYXBwYWJsZRgDIAEoCBIMCgRuYW1lGAQgASgJEjAKBGtpbmQYBSABKA4yIi5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NGaWVsZEtpbmQSEAoIcmVxdWlyZWQYBiABKAgSDgoGdW5pcXVlGAcgASgIEhMKC2VudW1fdmFsdWVzGAggAygJEhkKEXJlZmVyZW5jZV90eXBlX2lkGAkgASgJEhMKC2Rlc2NyaXB0aW9uGAogASgJEhcKCm1heF9sZW5ndGgYCyABKA1IAIgBAUINCgtfbWF4X2xlbmd0aCJfCh5CdXNpbmVzc09iamVjdFR5cGVSZWxhdGlvbnNoaXASFwoPcmVsYXRpb25zaGlwX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSFgoOdGFyZ2V0X3R5cGVfaWQYAyABKAkizwIKEkJ1c2luZXNzT2JqZWN0VHlwZRIPCgd0eXBlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEAoIcmV2aXNpb24YAyABKAMSQgoQYmx1ZXByaW50X29yaWdpbhgEIAEoCzIoLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc0JsdWVwcmludE9yaWdpbhIYChBkaXNwbGF5X2ZpZWxkX2lkGAUgASgJEjgKBmZpZWxkcxgGIAMoCzIoLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFR5cGVGaWVsZBJGCg1yZWxhdGlvbnNoaXBzGAcgAygLMi8uZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0VHlwZVJlbGF0aW9uc2hpcBITCgtwbHVyYWxfbmFtZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCSK9AQofRGVmaW5lQnVzaW5lc3NPYmplY3RUeXBlUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRI3CgpkZWZpbml0aW9uGAQgASgLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0VHlwZRIZChFleHBlY3RlZF9yZXZpc2lvbhgFIAEoAyJbCiBEZWZpbmVCdXNpbmVzc09iamVjdFR5cGVSZXNwb25zZRI3CgpkZWZpbml0aW9uGAEgASgLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0VHlwZSJwChxHZXRCdXNpbmVzc09iamVjdFR5cGVSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDwoHdHlwZV9pZBgDIAEoCRIQCghyZXZpc2lvbhgEIAEoAyJYCh1HZXRCdXNpbmVzc09iamVjdFR5cGVSZXNwb25zZRI3CgpkZWZpbml0aW9uGAEgASgLMiMuZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0VHlwZSLdAQobVXBzZXJ0QnVzaW5lc3NPYmplY3RSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEg8KB3R5cGVfaWQYBCABKAkSFwoPc2NoZW1hX3JldmlzaW9uGAUgASgDEhcKD3VuaXF1ZV9maWVsZF9pZBgGIAEoCRIzCgZ2YWx1ZXMYByADKAsyIy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NGaWVsZFZhbHVlImAKHFVwc2VydEJ1c2luZXNzT2JqZWN0UmVzcG9uc2USLwoGb2JqZWN0GAEgASgLMh8uZGVpeGljcHVibGljLnYxLkJ1c2luZXNzT2JqZWN0Eg8KB2NyZWF0ZWQYAiABKAgidQoeTGlzdEJ1c2luZXNzT2JqZWN0VHlwZXNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDQoFbGltaXQYAyABKAUSFQoNYWZ0ZXJfdHlwZV9pZBgEIAEoCSJyCh9MaXN0QnVzaW5lc3NPYmplY3RUeXBlc1Jlc3BvbnNlEjkKDG9iamVjdF90eXBlcxgBIAMoCzIjLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFR5cGUSFAoMbmV4dF90eXBlX2lkGAIgASgJInUKEUJ1c2luZXNzQmx1ZXByaW50EhQKDGJsdWVwcmludF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgDEhYKDmNvbnRlbnRfZGlnZXN0GAMgASgJEgwKBG5hbWUYBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkiTgodTGlzdEJ1c2luZXNzQmx1ZXByaW50c1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCSJYCh5MaXN0QnVzaW5lc3NCbHVlcHJpbnRzUmVzcG9uc2USNgoKYmx1ZXByaW50cxgBIAMoCzIiLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc0JsdWVwcmludCJuChpCdXNpbmVzc1NvdXJjZUZpZWxkTWFwcGluZxIQCghmaWVsZF9pZBgBIAEoCRI+Cghwcm9wZXJ0eRgCIAEoDjIsLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1NvdXJjZUZpZWxkUHJvcGVydHkiqwIKH0JpbmRCdXNpbmVzc09iamVjdFNvdXJjZVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSEQoJb2JqZWN0X2lkGAQgASgJEhkKEWV4cGVjdGVkX3JldmlzaW9uGAUgASgDEhUKDWNvbm5lY3Rpb25faWQYBiABKAkSGAoQZmFtaWx5X3N0YWJsZV9pZBgHIAEoCRIRCglyZWNvcmRfaWQYCCABKAkSEQoJZ3JvdXBfaWRzGAkgAygJEjsKBmZpZWxkcxgKIAMoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc1NvdXJjZUZpZWxkTWFwcGluZyJTCiBCaW5kQnVzaW5lc3NPYmplY3RTb3VyY2VSZXNwb25zZRIvCgZvYmplY3QYASABKAsyHy5kZWl4aWNwdWJsaWMudjEuQnVzaW5lc3NPYmplY3QiaQoaQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXASGAoQc291cmNlX29iamVjdF9pZBgBIAEoCRIXCg9yZWxhdGlvbnNoaXBfaWQYAiABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgDIAEoCSK9AQomTGlzdEJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwc1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSFwoPcmVsYXRpb25zaGlwX2lkGAQgASgJEg0KBWxpbWl0GAUgASgFEhEKCWFmdGVyX2tleRgGIAEoCRIWCg5wZWVyX29iamVjdF9pZBgHIAEoCSJ/CidMaXN0QnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBzUmVzcG9uc2USQgoNcmVsYXRpb25zaGlwcxgBIAMoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIQCghuZXh0X2tleRgCIAEoCSLPAQonQ3JlYXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEkEKDHJlbGF0aW9uc2hpcBgEIAEoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIZChFleHBlY3RlZF9yZXZpc2lvbhgFIAEoAyJbCihDcmVhdGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCLPAQonRGVsZXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEkEKDHJlbGF0aW9uc2hpcBgEIAEoCzIrLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBIZChFleHBlY3RlZF9yZXZpc2lvbhgFIAEoAyJbCihEZWxldGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlc3BvbnNlEi8KBm9iamVjdBgBIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5CdXNpbmVzc09iamVjdCKLAQoHUHJvZ3JhbRISCgpwcm9ncmFtX2lkGAEgASgJEhAKCHJldmlzaW9uGAIgASgDEgwKBG5hbWUYAyABKAkSDAoEZ29hbBgEIAEoCRITCgtvd25lcl9sYWJlbBgFIAEoCRIQCghkdWVfZGF0ZRgGIAEoCRIXCg9wbGFubmluZ19zdGF0dXMYByABKAkiVgoRR2V0UHJvZ3JhbVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRISCgpwcm9ncmFtX2lkGAMgASgJIj8KEkdldFByb2dyYW1SZXNwb25zZRIpCgdwcm9ncmFtGAEgASgLMhguZGVpeGljcHVibGljLnYxLlByb2dyYW0ioQEKFENyZWF0ZVByb2dyYW1SZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEgwKBG5hbWUYBCABKAkSDAoEZ29hbBgFIAEoCRITCgtvd25lcl9sYWJlbBgGIAEoCRIQCghkdWVfZGF0ZRgHIAEoCSJCChVDcmVhdGVQcm9ncmFtUmVzcG9uc2USKQoHcHJvZ3JhbRgBIAEoCzIYLmRlaXhpY3B1YmxpYy52MS5Qcm9ncmFtIukBChRVcGRhdGVQcm9ncmFtUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRISCgpwcm9ncmFtX2lkGAQgASgJEhkKEWV4cGVjdGVkX3JldmlzaW9uGAUgASgDEgwKBG5hbWUYBiABKAkSDAoEZ29hbBgHIAEoCRITCgtvd25lcl9sYWJlbBgIIAEoCRIQCghkdWVfZGF0ZRgJIAEoCRIXCg9wbGFubmluZ19zdGF0dXMYCiABKAkiQgoVVXBkYXRlUHJvZ3JhbVJlc3BvbnNlEikKB3Byb2dyYW0YASABKAsyGC5kZWl4aWNwdWJsaWMudjEuUHJvZ3JhbSJTChJCbHVlcHJpbnRTZWxlY3Rpb24SFAoMYmx1ZXByaW50X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKAMSFgoOY29udGVudF9kaWdlc3QYAyABKAkiaAoXQ29tcGxpYW5jZUxpYnJhcnlDaGFuZ2USOgoEa2luZBgBIAEoDjIsLmRlaXhpY3B1YmxpYy52MS5Db21wbGlhbmNlTGlicmFyeUNoYW5nZUtpbmQSEQoJb2JqZWN0X2lkGAIgASgJIpoCCiFSZWNvbmNpbGVDb21wbGlhbmNlTGlicmFyeVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSFwoPbGlicmFyeV90eXBlX2lkGAQgASgJEjcKCnNlbGVjdGlvbnMYBSADKAsyIy5kZWl4aWNwdWJsaWMudjEuQmx1ZXByaW50U2VsZWN0aW9uEhwKFGV4cGVjdGVkX3BsYW5fZGlnZXN0GAYgASgJEj0KBG1vZGUYByABKA4yLy5kZWl4aWNwdWJsaWMudjEuQ29tcGxpYW5jZUxpYnJhcnlSZWNvbmNpbGVNb2RlIp8BCiJSZWNvbmNpbGVDb21wbGlhbmNlTGlicmFyeVJlc3BvbnNlEhgKEGxpYnJhcnlfY2xvbmVfaWQYASABKAkSEwoLcGxhbl9kaWdlc3QYAiABKAkSOQoHY2hhbmdlcxgDIAMoCzIoLmRlaXhpY3B1YmxpYy52MS5Db21wbGlhbmNlTGlicmFyeUNoYW5nZRIPCgdhcHBsaWVkGAQgASgIIm8KEEdldFRocmVhZFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEg0KBWxpbWl0GAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkiogIKEUdldFRocmVhZFJlc3BvbnNlEicKBnRocmVhZBgBIAEoCzIXLmRlaXhpY3B1YmxpYy52MS5UaHJlYWQSLgoIbWVzc2FnZXMYAiADKAsyHC5kZWl4aWNwdWJsaWMudjEuVGFza01lc3NhZ2USKgoIcmVjZWlwdHMYAyADKAsyGC5kZWl4aWNwdWJsaWMudjEuUmVjZWlwdBIoCgV0dXJucxgEIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybhIVCg1yZXBsYXlfY3Vyc29yGAUgASgDEhcKD25leHRfcGFnZV90b2tlbhgGIAEoCRIuCgVzZXR1cBgHIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5TZXR1cFJlYWRpbmVzcyJNChJMaXN0VGhyZWFkc1JlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEAoIYXJjaGl2ZWQYAiABKAgiPwoTTGlzdFRocmVhZHNSZXNwb25zZRIoCgd0aHJlYWRzGAEgAygLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZCJeChNSZW5hbWVUaHJlYWRSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRINCgV0aXRsZRgDIAEoCSJQChRSZW5hbWVUaHJlYWRSZXNwb25zZRInCgZ0aHJlYWQYASABKAsyFy5kZWl4aWNwdWJsaWMudjEuVGhyZWFkEg8KB2NoYW5nZWQYAiABKAgiewoUQXJjaGl2ZVRocmVhZFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEhAKCGFyY2hpdmVkGAMgASgIEhcKD2lkZW1wb3RlbmN5X2tleRgEIAEoCSJjChVBcmNoaXZlVGhyZWFkUmVzcG9uc2USJwoGdGhyZWFkGAEgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIPCgdjaGFuZ2VkGAIgASgIEhAKCHJlcGxheWVkGAMgASgIInIKEUxpc3RFdmVudHNSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRIUCgxhZnRlcl9jdXJzb3IYAyABKAMSDQoFbGltaXQYBCABKAUi3QEKEkxpc3RFdmVudHNSZXNwb25zZRIqCgZldmVudHMYASADKAsyGi5kZWl4aWNwdWJsaWMudjEuVGFza0V2ZW50EhMKC25leHRfY3Vyc29yGAIgASgDEhAKCGhhc19tb3JlGAMgASgIEhYKDnJlc2V0X3JlcXVpcmVkGAQgASgIEikKCHNuYXBzaG90GAUgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIxCg5zbmFwc2hvdF90dXJucxgGIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybiJkChJXYXRjaEV2ZW50c1JlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEhQKDGFmdGVyX2N1cnNvchgDIAEoAyLMAQoTV2F0Y2hFdmVudHNSZXNwb25zZRIqCgZldmVudHMYASADKAsyGi5kZWl4aWNwdWJsaWMudjEuVGFza0V2ZW50EhMKC25leHRfY3Vyc29yGAIgASgDEhYKDnJlc2V0X3JlcXVpcmVkGAMgASgIEikKCHNuYXBzaG90GAQgASgLMhcuZGVpeGljcHVibGljLnYxLlRocmVhZBIxCg5zbmFwc2hvdF90dXJucxgFIAMoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybiL+AQoOQ29kaW5nQ29udHJhY3QSFQoNcmVwb3NpdG9yeV9pZBgBIAEoCRISCgpnZW5lcmF0aW9uGAIgASgEEh4KFnJlcXVpcmVkX2Fzc2VydGlvbl9pZHMYAyADKAkSFgoOcmVxdWlyZV9yZXZpZXcYBCABKAgSGAoQcmVxdWlyZV9iZWhhdmlvchgFIAEoCBIeChZyZWFkaW5lc3NfcmVxdWlyZW1lbnRzGAYgAygJEhgKEGF1dGhvcml6ZWRfc2tpcHMYByADKAkSHwoXYXV0aG9yaXplZF9kaXNwb3NpdGlvbnMYCCADKAkSFAoMb3V0cHV0X3BhdGhzGAkgAygJIr8CChFTdWJtaXRUYXNrUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRIRCgl0aHJlYWRfaWQYAiABKAkSDAoEYm9keRgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkSHAoUY29udGludWF0aW9uX3Rhc2tfaWQYBSABKAkSGgoScmVmZXJlbmNlX3Rhc2tfaWRzGAYgAygJEjgKD21vZGVsX3NlbGVjdGlvbhgHIAEoCzIfLmRlaXhpY3B1YmxpYy52MS5Nb2RlbFNlbGVjdGlvbhI4Cg9jb2RpbmdfY29udHJhY3QYCCABKAsyHy5kZWl4aWNwdWJsaWMudjEuQ29kaW5nQ29udHJhY3QSGwoTcHJvamVjdF9yZXNvdXJjZV9pZBgJIAEoCSK4AQoSU3VibWl0VGFza1Jlc3BvbnNlEi0KB21lc3NhZ2UYASABKAsyHC5kZWl4aWNwdWJsaWMudjEuVGFza01lc3NhZ2USMAoNYWNjZXB0ZWRfdHVybhgCIAEoCzIZLmRlaXhpY3B1YmxpYy52MS5UYXNrVHVybhIVCg1yZXBsYXlfY3Vyc29yGAMgASgDEioKCHJlY2VpcHRzGAQgAygLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQiigEKFEludGVycnVwdFRhc2tSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhEKCXRocmVhZF9pZBgCIAEoCRIPCgd0dXJuX2lkGAMgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgEIAEoCRIOCgZyZWFzb24YBSABKAkiewoVSW50ZXJydXB0VGFza1Jlc3BvbnNlEg8KB3R1cm5faWQYASABKAkSEAoIcmVwbGF5ZWQYAiABKAgSKAoFdHVybnMYAyADKAsyGS5kZWl4aWNwdWJsaWMudjEuVGFza1R1cm4SFQoNcmVwbGF5X2N1cnNvchgEIAEoAyKnAgoXUmVzcG9uZFRvUmVxdWVzdFJlcXVlc3QSJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSEQoJdGhyZWFkX2lkGAIgASgJEg8KB3R1cm5faWQYAyABKAkSEgoKcmVxdWVzdF9pZBgEIAEoCRIPCgdjYWxsX2lkGAUgASgJEjIKDHJlcXVlc3Rfa2luZBgGIAEoDjIcLmRlaXhpY3B1YmxpYy52MS5SZXF1ZXN0S2luZBIvCgZhY3Rpb24YByABKA4yHy5kZWl4aWNwdWJsaWMudjEuUmVzcG9uc2VBY3Rpb24SDAoEdGV4dBgIIAEoCRIQCghpc19lcnJvchgJIAEoCBIXCg9pZGVtcG90ZW5jeV9rZXkYCiABKAkibQoYUmVzcG9uZFRvUmVxdWVzdFJlc3BvbnNlEhAKCHJlcGxheWVkGAEgASgIEigKBXR1cm5zGAIgAygLMhkuZGVpeGljcHVibGljLnYxLlRhc2tUdXJuEhUKDXJlcGxheV9jdXJzb3IYAyABKAMiiAEKEUdldFJlY2VpcHRSZXF1ZXN0EiUKBXNjb3BlGAEgASgLMhYuZGVpeGljcHVibGljLnYxLlNjb3BlEhIKCnJlY2VpcHRfaWQYAiABKAkSEQoJdGhyZWFkX2lkGAMgASgJEiUKHWluY2x1ZGVfY29kaW5nX291dHB1dF9jb250ZW50GAQgASgIIj8KEkdldFJlY2VpcHRSZXNwb25zZRIpCgdyZWNlaXB0GAEgASgLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQihAEKG1Jlc29sdmVSZWNlaXB0QWN0aW9uUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZRISCgpyZWNlaXB0X2lkGAIgASgJEhEKCWFjdGlvbl9pZBgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkiSQocUmVzb2x2ZVJlY2VpcHRBY3Rpb25SZXNwb25zZRIpCgdyZWNlaXB0GAEgASgLMhguZGVpeGljcHVibGljLnYxLlJlY2VpcHQigwEKDlZvaWNlU2VsZWN0aW9uEigKBG1vZGUYASABKA4yGi5kZWl4aWNwdWJsaWMudjEuVm9pY2VNb2RlEhEKCXZvaWNlX2lkcxgCIAMoCRI0ChB0b25lX2FkanVzdG1lbnRzGAMgAygOMhouZGVpeGljcHVibGljLnYxLlZvaWNlVG9uZSKFAQoXU3VibWl0Vm9pY2VkVGFza1JlcXVlc3QSMAoEdGFzaxgBIAEoCzIiLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVxdWVzdBI4Cg92b2ljZV9zZWxlY3Rpb24YAiABKAsyHy5kZWl4aWNwdWJsaWMudjEuVm9pY2VTZWxlY3Rpb24iTwoYU3VibWl0Vm9pY2VkVGFza1Jlc3BvbnNlEjMKBnJlc3VsdBgBIAEoCzIjLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVzcG9uc2UiPwoWR2V0Vm9pY2VDYXRhbG9nUmVxdWVzdBIlCgVzY29wZRgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5TY29wZSJSCgpCcmFuZFZvaWNlEhAKCHZvaWNlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHdmVyc2lvbhgEIAEoBCKYAQoXR2V0Vm9pY2VDYXRhbG9nUmVzcG9uc2USJQoFc2NvcGUYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuU2NvcGUSDwoHZW5hYmxlZBgCIAEoCBIYChBkZWZhdWx0X3ZvaWNlX2lkGAMgASgJEisKBnZvaWNlcxgEIAMoCzIbLmRlaXhpY3B1YmxpYy52MS5CcmFuZFZvaWNlItEBCgdDb250cm9sEhIKCmNvbnRyb2xfaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSLAoFc3RhdGUYBCABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAUgASgJEi8KC2Fzc2Vzc2VkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglvd25lcl9pZHMYByADKAkSEAoIcmV2aXNpb24YCCABKAMiZwoTTGlzdENvbnRyb2xzUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEg0KBWxpbWl0GAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkiWwoUTGlzdENvbnRyb2xzUmVzcG9uc2USKgoIY29udHJvbHMYASADKAsyGC5kZWl4aWNwdWJsaWMudjEuQ29udHJvbBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiVgoRR2V0Q29udHJvbFJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRISCgpjb250cm9sX2lkGAMgASgJIlgKEkNvbnRyb2xSZXF1aXJlbWVudBIUCgxmcmFtZXdvcmtfaWQYASABKAkSFgoOcmVxdWlyZW1lbnRfaWQYAiABKAkSFAoMcmV2aWV3X3N0YXRlGAMgASgJIpcBChBDb250cm9sVGVzdFN0YXRlEg8KB3Rlc3RfaWQYASABKAkSLAoFc3RhdGUYAiABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAMgASgJEi8KC2Fzc2Vzc2VkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUAQoSR2V0Q29udHJvbFJlc3BvbnNlEikKB2NvbnRyb2wYASABKAsyGC5kZWl4aWNwdWJsaWMudjEuQ29udHJvbBI5CgxyZXF1aXJlbWVudHMYAiADKAsyIy5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFJlcXVpcmVtZW50EjAKBXRlc3RzGAMgAygLMiEuZGVpeGljcHVibGljLnYxLkNvbnRyb2xUZXN0U3RhdGUSFAoMZXZpZGVuY2VfaWRzGAQgAygJEhAKCGNvbXBsZXRlGAUgASgIItUBCgRUZXN0Eg8KB3Rlc3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIsCgVzdGF0ZRgDIAEoDjIdLmRlaXhpY3B1YmxpYy52MS5Db250cm9sU3RhdGUSEwoLcmVhc29uX2NvZGUYBCABKAkSLwoLYXNzZXNzZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2NvbnRyb2xfaWRzGAYgAygJEhAKCHJldmlzaW9uGAcgASgDEhMKC2RlYWN0aXZhdGVkGAggASgIIo4BChBMaXN0VGVzdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSDQoFbGltaXQYAyABKAUSEgoKcGFnZV90b2tlbhgEIAEoCRITCgtjb250cm9sX2lkcxgFIAMoCRITCgtkZWFjdGl2YXRlZBgGIAEoCCJzChFMaXN0VGVzdHNSZXNwb25zZRIkCgV0ZXN0cxgBIAMoCzIVLmRlaXhpY3B1YmxpYy52MS5UZXN0Eg0KBXRvdGFsGAIgASgNEhcKD25leHRfcGFnZV90b2tlbhgDIAEoCRIQCghjb21wbGV0ZRgEIAEoCCLkAQoSVGVzdFJlc291cmNlUmVzdWx0EhMKC3Jlc291cmNlX2lkGAEgASgJEhUKDXJlc291cmNlX2tpbmQYAiABKAkSLwoFc3RhdGUYAyABKA4yIC5kZWl4aWNwdWJsaWMudjEuVGVzdFJlc3VsdFN0YXRlEg4KBnJlYXNvbhgEIAEoCRIwCgxldmFsdWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3N0YXRlX3NpbmNlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJQCg5HZXRUZXN0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEg8KB3Rlc3RfaWQYAyABKAkitwEKD0dldFRlc3RSZXNwb25zZRIjCgR0ZXN0GAEgASgLMhUuZGVpeGljcHVibGljLnYxLlRlc3QSNgoJcmVzb3VyY2VzGAIgAygLMiMuZGVpeGljcHVibGljLnYxLlRlc3RSZXNvdXJjZVJlc3VsdBI1ChFsYXN0X2V2YWx1YXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIY29tcGxldGUYBCABKAgingIKCEV2aWRlbmNlEhMKC2V2aWRlbmNlX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSLAoFc3RhdGUYAyABKA4yHS5kZWl4aWNwdWJsaWMudjEuQ29udHJvbFN0YXRlEhMKC3JlYXNvbl9jb2RlGAQgASgJEhMKC2NvbnRyb2xfaWRzGAUgAygJEhUKDWZyYW1ld29ya19pZHMYBiADKAkSKgoGZHVlX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJjdXJyZW50X3ZlcnNpb25faWQYCCABKAkSDgoGc3RhdHVzGAkgASgJEhYKDmFwcHJvdmFsX3N0YXRlGAogASgJEhAKCHJldmlzaW9uGAsgASgDInwKE0xpc3RFdmlkZW5jZVJlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRINCgVsaW1pdBgDIAEoBRISCgpwYWdlX3Rva2VuGAQgASgJEhMKC2NvbnRyb2xfaWRzGAUgAygJIn0KFExpc3RFdmlkZW5jZVJlc3BvbnNlEisKCGV2aWRlbmNlGAEgAygLMhkuZGVpeGljcHVibGljLnYxLkV2aWRlbmNlEg0KBXRvdGFsGAIgASgNEhcKD25leHRfcGFnZV90b2tlbhgDIAEoCRIQCghjb21wbGV0ZRgEIAEoCCLaAQoPRXZpZGVuY2VWZXJzaW9uEhIKCnZlcnNpb25faWQYASABKAkSMAoMY29sbGVjdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzaGEyNTYYAyABKAkSMAoMY292ZXJzX3N0YXJ0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjb3ZlcnNfZW5kGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdjdXJyZW50GAYgASgIIoQBChtMaXN0RXZpZGVuY2VWZXJzaW9uc1JlcXVlc3QSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRITCgtldmlkZW5jZV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRISCgpwYWdlX3Rva2VuGAUgASgJIn0KHExpc3RFdmlkZW5jZVZlcnNpb25zUmVzcG9uc2USMgoIdmVyc2lvbnMYASADKAsyIC5kZWl4aWNwdWJsaWMudjEuRXZpZGVuY2VWZXJzaW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRIQCghjb21wbGV0ZRgDIAEoCCJzChlHZXRFdmlkZW5jZUNvbnRlbnRSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLZXZpZGVuY2VfaWQYAyABKAkSEgoKdmVyc2lvbl9pZBgEIAEoCSJ5ChpHZXRFdmlkZW5jZUNvbnRlbnRSZXNwb25zZRISCgp2ZXJzaW9uX2lkGAEgASgJEhAKCGZpbGVuYW1lGAIgASgJEhQKDGNvbnRlbnRfdHlwZRgDIAEoCRIPCgdjb250ZW50GAQgASgMEg4KBnNoYTI1NhgFIAEoCSKuAgoFQXNzZXQSEAoIYXNzZXRfaWQYASABKAkSDAoEbmFtZRgCIAEoCRISCgphc3NldF90eXBlGAMgASgJEhAKCG93bmVyX2lkGAQgASgJEhoKEm93bmVyX2Rpc3BsYXlfbmFtZRgFIAEoCRITCgtlbnZpcm9ubWVudBgGIAEoCRIOCgZzb3VyY2UYByABKAkSHgoWbWFuYWdlZF9ieV9wcm92aWRlcl9pZBgIIAEoCRIOCgZzdGF0dXMYCSABKAkSMAoMbGFzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJzb3VyY2Vfb2JzZXJ2ZWRfYXQYCyABKAkSDAoEdGFncxgMIAMoCRISCgpzb3VyY2VfdXJsGA0gASgJImcKEUxpc3RBc3NldHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEgoKcGFnZV90b2tlbhgDIAEoCRIPCgd0eXBlX2lkGAQgASgJInwKEkxpc3RBc3NldHNSZXNwb25zZRImCgZhc3NldHMYASADKAsyFi5kZWl4aWNwdWJsaWMudjEuQXNzZXQSDQoFdG90YWwYAiABKAUSFgoOdG90YWxfaXNfZXhhY3QYAyABKAgSFwoPbmV4dF9wYWdlX3Rva2VuGAQgASgJIlIKD0dldEFzc2V0UmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGFzc2V0X2lkGAMgASgJIjkKEEdldEFzc2V0UmVzcG9uc2USJQoFYXNzZXQYASABKAsyFi5kZWl4aWNwdWJsaWMudjEuQXNzZXQipAIKBUF1ZGl0EhAKCGF1ZGl0X2lkGAEgASgJEhIKCnByb2dyYW1faWQYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzdGF0dXMYBCABKAkSEwoLcmVwb3J0X3R5cGUYBSABKAkSEgoKZnJhbWV3b3JrcxgGIAMoCRIZChFwZXJpb2Rfc3RhcnRfZGF0ZRgHIAEoCRIXCg9wZXJpb2RfZW5kX2RhdGUYCCABKAkSEgoKYXNfb2ZfZGF0ZRgJIAEoCRIVCg1hdWRpdF9maXJtX2lkGAogASgJEhIKCmF1ZGl0X2Zpcm0YCyABKAkSFQoNbGVhZF9vd25lcl9pZBgMIAEoCRISCgpjcmVhdGVkX2F0GA0gASgJEhAKCHJldmlzaW9uGA4gASgDIn0KEUxpc3RBdWRpdHNSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEgoKcHJvZ3JhbV9pZBgDIAEoCRINCgVsaW1pdBgEIAEoBRIWCg5hZnRlcl9hdWRpdF9pZBgFIAEoCSJTChJMaXN0QXVkaXRzUmVzcG9uc2USJgoGYXVkaXRzGAEgAygLMhYuZGVpeGljcHVibGljLnYxLkF1ZGl0EhUKDW5leHRfYXVkaXRfaWQYAiABKAkiUgoPR2V0QXVkaXRSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEAoIYXVkaXRfaWQYAyABKAkiOQoQR2V0QXVkaXRSZXNwb25zZRIlCgVhdWRpdBgBIAEoCzIWLmRlaXhpY3B1YmxpYy52MS5BdWRpdCKkAgoQQXVkaXRSZXF1ZXN0SXRlbRIPCgdpdGVtX2lkGAEgASgJEhIKCnJlcXVlc3RfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSFAoMcmVxdWVzdF90eXBlGAUgASgJEhMKC2NvbnRyb2xfaWRzGAYgAygJEhAKCG93bmVyX2lkGAcgASgJEg4KBnN0YXR1cxgIIAEoCRIQCghkdWVfZGF0ZRgJIAEoCRIRCglkdWVfc3RhdGUYCiABKAkSFgoOZXZpZGVuY2VfY291bnQYCyABKA0SGAoQbGFzdF9jYXB0dXJlZF9hdBgMIAEoCRIRCglyZWFkaW5lc3MYDSABKAkSEAoIcmV2aXNpb24YDiABKAMiegoSQXVkaXRSZXF1ZXN0Q291bnRzEg0KBXRvdGFsGAEgASgNEgwKBG9wZW4YAiABKA0SGgoSZXZpZGVuY2Vfc3VibWl0dGVkGAMgASgNEhkKEWNoYW5nZXNfcmVxdWVzdGVkGAQgASgNEhAKCGFjY2VwdGVkGAUgASgNIlsKGExpc3RBdWRpdFJlcXVlc3RzUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGF1ZGl0X2lkGAMgASgJIoUBChlMaXN0QXVkaXRSZXF1ZXN0c1Jlc3BvbnNlEjMKCHJlcXVlc3RzGAEgAygLMiEuZGVpeGljcHVibGljLnYxLkF1ZGl0UmVxdWVzdEl0ZW0SMwoGY291bnRzGAIgASgLMiMuZGVpeGljcHVibGljLnYxLkF1ZGl0UmVxdWVzdENvdW50cyJuChpHZXRBdWRpdFJlcXVlc3RJdGVtUmVxdWVzdBIXCg9vcmdhbml6YXRpb25faWQYASABKAkSFAoMd29ya3NwYWNlX2lkGAIgASgJEhAKCGF1ZGl0X2lkGAMgASgJEg8KB2l0ZW1faWQYBCABKAkiUQobR2V0QXVkaXRSZXF1ZXN0SXRlbVJlc3BvbnNlEjIKB3JlcXVlc3QYASABKAsyIS5kZWl4aWNwdWJsaWMudjEuQXVkaXRSZXF1ZXN0SXRlbSrXAQoJVHVyblN0YXRlEhoKFlRVUk5fU1RBVEVfVU5TUEVDSUZJRUQQABIXChNUVVJOX1NUQVRFX0FDQ0VQVEVEEAESFgoSVFVSTl9TVEFURV9SVU5OSU5HEAISFgoSVFVSTl9TVEFURV9XQUlUSU5HEAMSGAoUVFVSTl9TVEFURV9SRVNQT05ERUQQBBIYChRUVVJOX1NUQVRFX0NPTVBMRVRFRBAFEhUKEVRVUk5fU1RBVEVfRkFJTEVEEAYSGgoWVFVSTl9TVEFURV9JTlRFUlJVUFRFRBAHKq4BCg1XYWl0aW5nUmVhc29uEh4KGldBSVRJTkdfUkVBU09OX1VOU1BFQ0lGSUVEEAASGwoXV0FJVElOR19SRUFTT05fQVBQUk9WQUwQARIdChlXQUlUSU5HX1JFQVNPTl9VU0VSX0lOUFVUEAISHgoaV0FJVElOR19SRUFTT05fQ0xJRU5UX1RPT0wQAxIhCh1XQUlUSU5HX1JFQVNPTl9FWFRFUk5BTF9SRVRSWRAEKncKC01lc3NhZ2VSb2xlEhwKGE1FU1NBR0VfUk9MRV9VTlNQRUNJRklFRBAAEhUKEU1FU1NBR0VfUk9MRV9VU0VSEAESGgoWTUVTU0FHRV9ST0xFX0FTU0lTVEFOVBACEhcKE01FU1NBR0VfUk9MRV9TWVNURU0QAyqaBAoJRXZlbnRLaW5kEhoKFkVWRU5UX0tJTkRfVU5TUEVDSUZJRUQQABIcChhFVkVOVF9LSU5EX1RVUk5fQUNDRVBURUQQARIbChdFVkVOVF9LSU5EX1RVUk5fU1RBUlRFRBACEhcKE0VWRU5UX0tJTkRfUFJPR1JFU1MQAxIgChxFVkVOVF9LSU5EX0FQUFJPVkFMX1JFUVVJUkVEEAQSHQoZRVZFTlRfS0lORF9JTlBVVF9SRVFVSVJFRBAFEiAKHEVWRU5UX0tJTkRfQVJUSUZBQ1RfUkVDT1JERUQQBhIdChlFVkVOVF9LSU5EX1RVUk5fQ09NUExFVEVEEAcSGgoWRVZFTlRfS0lORF9UVVJOX0ZBSUxFRBAIEh8KG0VWRU5UX0tJTkRfVFVSTl9JTlRFUlJVUFRFRBAJEiMKH0VWRU5UX0tJTkRfQ0xJRU5UX1RPT0xfUkVRVUlSRUQQChImCiJFVkVOVF9LSU5EX0VYVEVSTkFMX1JFVFJZX1JFUVVJUkVEEAsSIwofRVZFTlRfS0lORF9BU1NJU1RBTlRfVEVYVF9ERUxUQRAMEiYKIkVWRU5UX0tJTkRfQVNTSVNUQU5UX1RFWFRfT0JTRVJWRUQQDRImCiJFVkVOVF9LSU5EX01PREVMX0FUVEVNUFRfQUJBTkRPTkVEEA4SHAoYRVZFTlRfS0lORF9UT09MX1BST1BPU0VEEA8qogEKC1JlcXVlc3RLaW5kEhwKGFJFUVVFU1RfS0lORF9VTlNQRUNJRklFRBAAEhkKFVJFUVVFU1RfS0lORF9BUFBST1ZBTBABEhsKF1JFUVVFU1RfS0lORF9VU0VSX0lOUFVUEAISHAoYUkVRVUVTVF9LSU5EX0NMSUVOVF9UT09MEAMSHwobUkVRVUVTVF9LSU5EX0VYVEVSTkFMX1JFVFJZEAQqoAMKDFJlY2VpcHRTdGF0ZRIdChlSRUNFSVBUX1NUQVRFX1VOU1BFQ0lGSUVEEAASGQoVUkVDRUlQVF9TVEFURV9VTktOT1dOEAESGgoWUkVDRUlQVF9TVEFURV9QUk9QT1NFRBACEhgKFFJFQ0VJUFRfU1RBVEVfUVVFVUVEEAMSIgoeUkVDRUlQVF9TVEFURV9XQUlUSU5HX0FQUFJPVkFMEAQSGQoVUkVDRUlQVF9TVEFURV9CTE9DS0VEEAUSHQoZUkVDRUlQVF9TVEFURV9ORUVEU19JTlBVVBAGEh0KGVJFQ0VJUFRfU1RBVEVfVU5BVkFJTEFCTEUQBxIZChVSRUNFSVBUX1NUQVRFX1JVTk5JTkcQCBIbChdSRUNFSVBUX1NUQVRFX1NVQ0NFRURFRBAJEhoKFlJFQ0VJUFRfU1RBVEVfVkVSSUZJRUQQChIYChRSRUNFSVBUX1NUQVRFX0RFTklFRBALEhsKF1JFQ0VJUFRfU1RBVEVfQ0FOQ0VMTEVEEAwSGAoUUkVDRUlQVF9TVEFURV9GQUlMRUQQDSrAAgoTTW9kZWxSZWFkaW5lc3NTdGF0ZRIlCiFNT0RFTF9SRUFESU5FU1NfU1RBVEVfVU5TUEVDSUZJRUQQABIfChtNT0RFTF9SRUFESU5FU1NfU1RBVEVfUkVBRFkQARItCilNT0RFTF9SRUFESU5FU1NfU1RBVEVfQUNUSVZBVElPTl9SRVFVSVJFRBACEioKJk1PREVMX1JFQURJTkVTU19TVEFURV9GVU5ESU5HX1JFUVVJUkVEEAMSJwojTU9ERUxfUkVBRElORVNTX1NUQVRFX0xJTUlUX1JFQUNIRUQQBBIqCiZNT0RFTF9SRUFESU5FU1NfU1RBVEVfQUNDRVNTX1NVU1BFTkRFRBAFEjEKLU1PREVMX1JFQURJTkVTU19TVEFURV9URU1QT1JBUklMWV9VTkFWQUlMQUJMRRAGKqIBCg9Nb2RlbE5leHRBY3Rpb24SIQodTU9ERUxfTkVYVF9BQ1RJT05fVU5TUEVDSUZJRUQQABIrCidNT0RFTF9ORVhUX0FDVElPTl9DT05UQUNUX0FETUlOSVNUUkFUT1IQARIiCh5NT0RFTF9ORVhUX0FDVElPTl9WSUVXX0ZVTkRJTkcQAhIbChdNT0RFTF9ORVhUX0FDVElPTl9SRVRSWRADKnkKD0NsaWVudFJ1bGVTY29wZRIhCh1DTElFTlRfUlVMRV9TQ09QRV9VTlNQRUNJRklFRBAAEiIKHkNMSUVOVF9SVUxFX1NDT1BFX09SR0FOSVpBVElPThABEh8KG0NMSUVOVF9SVUxFX1NDT1BFX1dPUktTUEFDRRACKocBCg1DbGllbnRNY3BNb2RlEh8KG0NMSUVOVF9NQ1BfTU9ERV9VTlNQRUNJRklFRBAAEhgKFENMSUVOVF9NQ1BfTU9ERV9PUEVOEAESHQoZQ0xJRU5UX01DUF9NT0RFX0FMTE9XTElTVBACEhwKGENMSUVOVF9NQ1BfTU9ERV9ERU5ZTElTVBADKp8DChFCdXNpbmVzc0ZpZWxkS2luZBIjCh9CVVNJTkVTU19GSUVMRF9LSU5EX1VOU1BFQ0lGSUVEEAASHAoYQlVTSU5FU1NfRklFTERfS0lORF9URVhUEAESHwobQlVTSU5FU1NfRklFTERfS0lORF9JTlRFR0VSEAISHwobQlVTSU5FU1NfRklFTERfS0lORF9CT09MRUFOEAMSHwobQlVTSU5FU1NfRklFTERfS0lORF9ERUNJTUFMEAQSHQoZQlVTSU5FU1NfRklFTERfS0lORF9NT05FWRAFEhwKGEJVU0lORVNTX0ZJRUxEX0tJTkRfRU5VTRAGEhwKGEJVU0lORVNTX0ZJRUxEX0tJTkRfREFURRAHEiEKHUJVU0lORVNTX0ZJRUxEX0tJTkRfVElNRVNUQU1QEAgSIQodQlVTSU5FU1NfRklFTERfS0lORF9SRUZFUkVOQ0UQCRIgChxCVVNJTkVTU19GSUVMRF9LSU5EX0FSVElGQUNUEAoSIQodQlVTSU5FU1NfRklFTERfS0lORF9URVhUX0xJU1QQCyquAQobQnVzaW5lc3NTb3VyY2VGaWVsZFByb3BlcnR5Ei4KKkJVU0lORVNTX1NPVVJDRV9GSUVMRF9QUk9QRVJUWV9VTlNQRUNJRklFRBAAEi8KK0JVU0lORVNTX1NPVVJDRV9GSUVMRF9QUk9QRVJUWV9ESVNQTEFZX05BTUUQARIuCipCVVNJTkVTU19TT1VSQ0VfRklFTERfUFJPUEVSVFlfRVhURVJOQUxfSUQQAiqvAQoeQ29tcGxpYW5jZUxpYnJhcnlSZWNvbmNpbGVNb2RlEjEKLUNPTVBMSUFOQ0VfTElCUkFSWV9SRUNPTkNJTEVfTU9ERV9VTlNQRUNJRklFRBAAEi0KKUNPTVBMSUFOQ0VfTElCUkFSWV9SRUNPTkNJTEVfTU9ERV9QUkVWSUVXEAESKwonQ09NUExJQU5DRV9MSUJSQVJZX1JFQ09OQ0lMRV9NT0RFX0FQUExZEAIq2QIKG0NvbXBsaWFuY2VMaWJyYXJ5Q2hhbmdlS2luZBIuCipDT01QTElBTkNFX0xJQlJBUllfQ0hBTkdFX0tJTkRfVU5TUEVDSUZJRUQQABImCiJDT01QTElBTkNFX0xJQlJBUllfQ0hBTkdFX0tJTkRfQUREEAESKQolQ09NUExJQU5DRV9MSUJSQVJZX0NIQU5HRV9LSU5EX1VQREFURRACEisKJ0NPTVBMSUFOQ0VfTElCUkFSWV9DSEFOR0VfS0lORF9XSVRIRFJBVxADEioKJkNPTVBMSUFOQ0VfTElCUkFSWV9DSEFOR0VfS0lORF9NQVBQSU5HEAQSKwonQ09NUExJQU5DRV9MSUJSQVJZX0NIQU5HRV9LSU5EX0NPTkZMSUNUEAUSMQotQ09NUExJQU5DRV9MSUJSQVJZX0NIQU5HRV9LSU5EX1BSRVNFUlZFX0xPQ0FMEAYq1AEKDlJlc3BvbnNlQWN0aW9uEh8KG1JFU1BPTlNFX0FDVElPTl9VTlNQRUNJRklFRBAAEhsKF1JFU1BPTlNFX0FDVElPTl9BUFBST1ZFEAESGAoUUkVTUE9OU0VfQUNUSU9OX0RFTlkQAhIaChZSRVNQT05TRV9BQ1RJT05fQU5TV0VSEAMSGQoVUkVTUE9OU0VfQUNUSU9OX1JFVFJZEAQSGAoUUkVTUE9OU0VfQUNUSU9OX1NLSVAQBRIZChVSRVNQT05TRV9BQ1RJT05fQUJPUlQQBip9CglWb2ljZU1vZGUSGgoWVk9JQ0VfTU9ERV9VTlNQRUNJRklFRBAAEiAKHFZPSUNFX01PREVfV09SS1NQQUNFX0RFRkFVTFQQARIaChZWT0lDRV9NT0RFX0JSQU5EX1ZPSUNFEAISFgoSVk9JQ0VfTU9ERV9ORVVUUkFMEAMqbQoJVm9pY2VUb25lEhoKFlZPSUNFX1RPTkVfVU5TUEVDSUZJRUQQABIWChJWT0lDRV9UT05FX0NPTkNJU0UQARIVChFWT0lDRV9UT05FX0ZPUk1BTBACEhUKEVZPSUNFX1RPTkVfV0FSTUVSEAMq2QEKDENvbnRyb2xTdGF0ZRIdChlDT05UUk9MX1NUQVRFX1VOU1BFQ0lGSUVEEAASGgoWQ09OVFJPTF9TVEFURV9WRVJJRklFRBABEhkKFUNPTlRST0xfU1RBVEVfRkFJTElORxACEhkKFUNPTlRST0xfU1RBVEVfVU5LTk9XThADEhoKFkNPTlRST0xfU1RBVEVfQVRURVNURUQQBBIgChxDT05UUk9MX1NUQVRFX05PVF9BUFBMSUNBQkxFEAUSGgoWQ09OVFJPTF9TVEFURV9FWENFUFRFRBAGKqACCg9UZXN0UmVzdWx0U3RhdGUSIQodVEVTVF9SRVNVTFRfU1RBVEVfVU5TUEVDSUZJRUQQABIeChpURVNUX1JFU1VMVF9TVEFURV9WRVJJRklFRBABEh0KGVRFU1RfUkVTVUxUX1NUQVRFX0ZBSUxJTkcQAhIjCh9URVNUX1JFU1VMVF9TVEFURV9JTkRFVEVSTUlOQVRFEAMSHQoZVEVTVF9SRVNVTFRfU1RBVEVfTk9UX1JVThAEEiQKIFRFU1RfUkVTVUxUX1NUQVRFX05PVF9BUFBMSUNBQkxFEAUSHgoaVEVTVF9SRVNVTFRfU1RBVEVfRVhDRVBURUQQBhIhCh1URVNUX1JFU1VMVF9TVEFURV9OT1RfUlVOTklORxAHMv0mChNEZWl4aWNQdWJsaWNTZXJ2aWNlElIKCUdldFRocmVhZBIhLmRlaXhpY3B1YmxpYy52MS5HZXRUaHJlYWRSZXF1ZXN0GiIuZGVpeGljcHVibGljLnYxLkdldFRocmVhZFJlc3BvbnNlElgKC0xpc3RUaHJlYWRzEiMuZGVpeGljcHVibGljLnYxLkxpc3RUaHJlYWRzUmVxdWVzdBokLmRlaXhpY3B1YmxpYy52MS5MaXN0VGhyZWFkc1Jlc3BvbnNlElsKDFJlbmFtZVRocmVhZBIkLmRlaXhpY3B1YmxpYy52MS5SZW5hbWVUaHJlYWRSZXF1ZXN0GiUuZGVpeGljcHVibGljLnYxLlJlbmFtZVRocmVhZFJlc3BvbnNlEl4KDUFyY2hpdmVUaHJlYWQSJS5kZWl4aWNwdWJsaWMudjEuQXJjaGl2ZVRocmVhZFJlcXVlc3QaJi5kZWl4aWNwdWJsaWMudjEuQXJjaGl2ZVRocmVhZFJlc3BvbnNlElUKCkxpc3RFdmVudHMSIi5kZWl4aWNwdWJsaWMudjEuTGlzdEV2ZW50c1JlcXVlc3QaIy5kZWl4aWNwdWJsaWMudjEuTGlzdEV2ZW50c1Jlc3BvbnNlEloKC1dhdGNoRXZlbnRzEiMuZGVpeGljcHVibGljLnYxLldhdGNoRXZlbnRzUmVxdWVzdBokLmRlaXhpY3B1YmxpYy52MS5XYXRjaEV2ZW50c1Jlc3BvbnNlMAESVQoKU3VibWl0VGFzaxIiLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRUYXNrUmVzcG9uc2USZwoQU3VibWl0Vm9pY2VkVGFzaxIoLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRWb2ljZWRUYXNrUmVxdWVzdBopLmRlaXhpY3B1YmxpYy52MS5TdWJtaXRWb2ljZWRUYXNrUmVzcG9uc2USZAoPR2V0Vm9pY2VDYXRhbG9nEicuZGVpeGljcHVibGljLnYxLkdldFZvaWNlQ2F0YWxvZ1JlcXVlc3QaKC5kZWl4aWNwdWJsaWMudjEuR2V0Vm9pY2VDYXRhbG9nUmVzcG9uc2USXgoNSW50ZXJydXB0VGFzaxIlLmRlaXhpY3B1YmxpYy52MS5JbnRlcnJ1cHRUYXNrUmVxdWVzdBomLmRlaXhpY3B1YmxpYy52MS5JbnRlcnJ1cHRUYXNrUmVzcG9uc2USZwoQUmVzcG9uZFRvUmVxdWVzdBIoLmRlaXhpY3B1YmxpYy52MS5SZXNwb25kVG9SZXF1ZXN0UmVxdWVzdBopLmRlaXhpY3B1YmxpYy52MS5SZXNwb25kVG9SZXF1ZXN0UmVzcG9uc2USVQoKR2V0UmVjZWlwdBIiLmRlaXhpY3B1YmxpYy52MS5HZXRSZWNlaXB0UmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5HZXRSZWNlaXB0UmVzcG9uc2UScwoUUmVzb2x2ZVJlY2VpcHRBY3Rpb24SLC5kZWl4aWNwdWJsaWMudjEuUmVzb2x2ZVJlY2VpcHRBY3Rpb25SZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLlJlc29sdmVSZWNlaXB0QWN0aW9uUmVzcG9uc2USagoRR2V0TW9kZWxSZWFkaW5lc3MSKS5kZWl4aWNwdWJsaWMudjEuR2V0TW9kZWxSZWFkaW5lc3NSZXF1ZXN0GiouZGVpeGljcHVibGljLnYxLkdldE1vZGVsUmVhZGluZXNzUmVzcG9uc2USYQoOR2V0Q2xpZW50U2V0dXASJi5kZWl4aWNwdWJsaWMudjEuR2V0Q2xpZW50U2V0dXBSZXF1ZXN0GicuZGVpeGljcHVibGljLnYxLkdldENsaWVudFNldHVwUmVzcG9uc2USagoRU3VibWl0SXNzdWVSZXBvcnQSKS5kZWl4aWNwdWJsaWMudjEuU3VibWl0SXNzdWVSZXBvcnRSZXF1ZXN0GiouZGVpeGljcHVibGljLnYxLlN1Ym1pdElzc3VlUmVwb3J0UmVzcG9uc2UScwoUQ3JlYXRlQnVzaW5lc3NPYmplY3QSLC5kZWl4aWNwdWJsaWMudjEuQ3JlYXRlQnVzaW5lc3NPYmplY3RSZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLkNyZWF0ZUJ1c2luZXNzT2JqZWN0UmVzcG9uc2USagoRR2V0QnVzaW5lc3NPYmplY3QSKS5kZWl4aWNwdWJsaWMudjEuR2V0QnVzaW5lc3NPYmplY3RSZXF1ZXN0GiouZGVpeGljcHVibGljLnYxLkdldEJ1c2luZXNzT2JqZWN0UmVzcG9uc2UScwoUVXBkYXRlQnVzaW5lc3NPYmplY3QSLC5kZWl4aWNwdWJsaWMudjEuVXBkYXRlQnVzaW5lc3NPYmplY3RSZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLlVwZGF0ZUJ1c2luZXNzT2JqZWN0UmVzcG9uc2UScwoURGVsZXRlQnVzaW5lc3NPYmplY3QSLC5kZWl4aWNwdWJsaWMudjEuRGVsZXRlQnVzaW5lc3NPYmplY3RSZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLkRlbGV0ZUJ1c2luZXNzT2JqZWN0UmVzcG9uc2UScAoTTGlzdEJ1c2luZXNzT2JqZWN0cxIrLmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NPYmplY3RzUmVxdWVzdBosLmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NPYmplY3RzUmVzcG9uc2USfAoXTGlzdEJ1c2luZXNzT2JqZWN0VHlwZXMSLy5kZWl4aWNwdWJsaWMudjEuTGlzdEJ1c2luZXNzT2JqZWN0VHlwZXNSZXF1ZXN0GjAuZGVpeGljcHVibGljLnYxLkxpc3RCdXNpbmVzc09iamVjdFR5cGVzUmVzcG9uc2USfwoYRGVmaW5lQnVzaW5lc3NPYmplY3RUeXBlEjAuZGVpeGljcHVibGljLnYxLkRlZmluZUJ1c2luZXNzT2JqZWN0VHlwZVJlcXVlc3QaMS5kZWl4aWNwdWJsaWMudjEuRGVmaW5lQnVzaW5lc3NPYmplY3RUeXBlUmVzcG9uc2USdgoVR2V0QnVzaW5lc3NPYmplY3RUeXBlEi0uZGVpeGljcHVibGljLnYxLkdldEJ1c2luZXNzT2JqZWN0VHlwZVJlcXVlc3QaLi5kZWl4aWNwdWJsaWMudjEuR2V0QnVzaW5lc3NPYmplY3RUeXBlUmVzcG9uc2UScwoUVXBzZXJ0QnVzaW5lc3NPYmplY3QSLC5kZWl4aWNwdWJsaWMudjEuVXBzZXJ0QnVzaW5lc3NPYmplY3RSZXF1ZXN0Gi0uZGVpeGljcHVibGljLnYxLlVwc2VydEJ1c2luZXNzT2JqZWN0UmVzcG9uc2USeQoWTGlzdEJ1c2luZXNzQmx1ZXByaW50cxIuLmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NCbHVlcHJpbnRzUmVxdWVzdBovLmRlaXhpY3B1YmxpYy52MS5MaXN0QnVzaW5lc3NCbHVlcHJpbnRzUmVzcG9uc2USfwoYQmluZEJ1c2luZXNzT2JqZWN0U291cmNlEjAuZGVpeGljcHVibGljLnYxLkJpbmRCdXNpbmVzc09iamVjdFNvdXJjZVJlcXVlc3QaMS5kZWl4aWNwdWJsaWMudjEuQmluZEJ1c2luZXNzT2JqZWN0U291cmNlUmVzcG9uc2USlAEKH0xpc3RCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcHMSNy5kZWl4aWNwdWJsaWMudjEuTGlzdEJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwc1JlcXVlc3QaOC5kZWl4aWNwdWJsaWMudjEuTGlzdEJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwc1Jlc3BvbnNlEpcBCiBDcmVhdGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcBI4LmRlaXhpY3B1YmxpYy52MS5DcmVhdGVCdXNpbmVzc09iamVjdFJlbGF0aW9uc2hpcFJlcXVlc3QaOS5kZWl4aWNwdWJsaWMudjEuQ3JlYXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXNwb25zZRKXAQogRGVsZXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXASOC5kZWl4aWNwdWJsaWMudjEuRGVsZXRlQnVzaW5lc3NPYmplY3RSZWxhdGlvbnNoaXBSZXF1ZXN0GjkuZGVpeGljcHVibGljLnYxLkRlbGV0ZUJ1c2luZXNzT2JqZWN0UmVsYXRpb25zaGlwUmVzcG9uc2USVQoKR2V0UHJvZ3JhbRIiLmRlaXhpY3B1YmxpYy52MS5HZXRQcm9ncmFtUmVxdWVzdBojLmRlaXhpY3B1YmxpYy52MS5HZXRQcm9ncmFtUmVzcG9uc2USXgoNQ3JlYXRlUHJvZ3JhbRIlLmRlaXhpY3B1YmxpYy52MS5DcmVhdGVQcm9ncmFtUmVxdWVzdBomLmRlaXhpY3B1YmxpYy52MS5DcmVhdGVQcm9ncmFtUmVzcG9uc2USXgoNVXBkYXRlUHJvZ3JhbRIlLmRlaXhpY3B1YmxpYy52MS5VcGRhdGVQcm9ncmFtUmVxdWVzdBomLmRlaXhpY3B1YmxpYy52MS5VcGRhdGVQcm9ncmFtUmVzcG9uc2UShQEKGlJlY29uY2lsZUNvbXBsaWFuY2VMaWJyYXJ5EjIuZGVpeGljcHVibGljLnYxLlJlY29uY2lsZUNvbXBsaWFuY2VMaWJyYXJ5UmVxdWVzdBozLmRlaXhpY3B1YmxpYy52MS5SZWNvbmNpbGVDb21wbGlhbmNlTGlicmFyeVJlc3BvbnNlElsKDExpc3RDb250cm9scxIkLmRlaXhpY3B1YmxpYy52MS5MaXN0Q29udHJvbHNSZXF1ZXN0GiUuZGVpeGljcHVibGljLnYxLkxpc3RDb250cm9sc1Jlc3BvbnNlElUKCkdldENvbnRyb2wSIi5kZWl4aWNwdWJsaWMudjEuR2V0Q29udHJvbFJlcXVlc3QaIy5kZWl4aWNwdWJsaWMudjEuR2V0Q29udHJvbFJlc3BvbnNlElIKCUxpc3RUZXN0cxIhLmRlaXhpY3B1YmxpYy52MS5MaXN0VGVzdHNSZXF1ZXN0GiIuZGVpeGljcHVibGljLnYxLkxpc3RUZXN0c1Jlc3BvbnNlEkwKB0dldFRlc3QSHy5kZWl4aWNwdWJsaWMudjEuR2V0VGVzdFJlcXVlc3QaIC5kZWl4aWNwdWJsaWMudjEuR2V0VGVzdFJlc3BvbnNlElsKDExpc3RFdmlkZW5jZRIkLmRlaXhpY3B1YmxpYy52MS5MaXN0RXZpZGVuY2VSZXF1ZXN0GiUuZGVpeGljcHVibGljLnYxLkxpc3RFdmlkZW5jZVJlc3BvbnNlEnMKFExpc3RFdmlkZW5jZVZlcnNpb25zEiwuZGVpeGljcHVibGljLnYxLkxpc3RFdmlkZW5jZVZlcnNpb25zUmVxdWVzdBotLmRlaXhpY3B1YmxpYy52MS5MaXN0RXZpZGVuY2VWZXJzaW9uc1Jlc3BvbnNlEm0KEkdldEV2aWRlbmNlQ29udGVudBIqLmRlaXhpY3B1YmxpYy52MS5HZXRFdmlkZW5jZUNvbnRlbnRSZXF1ZXN0GisuZGVpeGljcHVibGljLnYxLkdldEV2aWRlbmNlQ29udGVudFJlc3BvbnNlElUKCkxpc3RBc3NldHMSIi5kZWl4aWNwdWJsaWMudjEuTGlzdEFzc2V0c1JlcXVlc3QaIy5kZWl4aWNwdWJsaWMudjEuTGlzdEFzc2V0c1Jlc3BvbnNlEk8KCEdldEFzc2V0EiAuZGVpeGljcHVibGljLnYxLkdldEFzc2V0UmVxdWVzdBohLmRlaXhpY3B1YmxpYy52MS5HZXRBc3NldFJlc3BvbnNlElUKCkxpc3RBdWRpdHMSIi5kZWl4aWNwdWJsaWMudjEuTGlzdEF1ZGl0c1JlcXVlc3QaIy5kZWl4aWNwdWJsaWMudjEuTGlzdEF1ZGl0c1Jlc3BvbnNlEk8KCEdldEF1ZGl0EiAuZGVpeGljcHVibGljLnYxLkdldEF1ZGl0UmVxdWVzdBohLmRlaXhpY3B1YmxpYy52MS5HZXRBdWRpdFJlc3BvbnNlEmoKEUxpc3RBdWRpdFJlcXVlc3RzEikuZGVpeGljcHVibGljLnYxLkxpc3RBdWRpdFJlcXVlc3RzUmVxdWVzdBoqLmRlaXhpY3B1YmxpYy52MS5MaXN0QXVkaXRSZXF1ZXN0c1Jlc3BvbnNlEnAKE0dldEF1ZGl0UmVxdWVzdEl0ZW0SKy5kZWl4aWNwdWJsaWMudjEuR2V0QXVkaXRSZXF1ZXN0SXRlbVJlcXVlc3QaLC5kZWl4aWNwdWJsaWMudjEuR2V0QXVkaXRSZXF1ZXN0SXRlbVJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZHgtY29ycC9kZWl4aWMtZ28vZGVpeGljcHVibGljL3YxO2RlaXhpY3B1YmxpY3YxYgZwcm90bzM", [file_google_protobuf_timestamp]); /** * @generated from message deixicpublic.v1.Scope @@ -1535,9 +1535,55 @@ export type BusinessObjectTypeField = Message<"deixicpublic.v1.BusinessObjectTyp groupId: string; /** + * Output only: derived from the field kind. + * * @generated from field: bool source_mappable = 3; */ sourceMappable: boolean; + + /** + * @generated from field: string name = 4; + */ + name: string; + + /** + * @generated from field: deixicpublic.v1.BusinessFieldKind kind = 5; + */ + kind: BusinessFieldKind; + + /** + * @generated from field: bool required = 6; + */ + required: boolean; + + /** + * At most one live record of the type holds a given value. + * + * @generated from field: bool unique = 7; + */ + unique: boolean; + + /** + * @generated from field: repeated string enum_values = 8; + */ + enumValues: string[]; + + /** + * @generated from field: string reference_type_id = 9; + */ + referenceTypeId: string; + + /** + * @generated from field: string description = 10; + */ + description: string; + + /** + * TEXT only: maximum Unicode code points, from 1 through 8192. + * + * @generated from field: optional uint32 max_length = 11; + */ + maxLength?: number | undefined; }; /** @@ -1547,6 +1593,33 @@ export type BusinessObjectTypeField = Message<"deixicpublic.v1.BusinessObjectTyp export const BusinessObjectTypeFieldSchema: GenMessage = /*@__PURE__*/ messageDesc(file_deixicpublic_v1_sdk, 44); +/** + * @generated from message deixicpublic.v1.BusinessObjectTypeRelationship + */ +export type BusinessObjectTypeRelationship = Message<"deixicpublic.v1.BusinessObjectTypeRelationship"> & { + /** + * @generated from field: string relationship_id = 1; + */ + relationshipId: string; + + /** + * @generated from field: string name = 2; + */ + name: string; + + /** + * @generated from field: string target_type_id = 3; + */ + targetTypeId: string; +}; + +/** + * Describes the message deixicpublic.v1.BusinessObjectTypeRelationship. + * Use `create(BusinessObjectTypeRelationshipSchema)` to create a new message. + */ +export const BusinessObjectTypeRelationshipSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 45); + /** * @generated from message deixicpublic.v1.BusinessObjectType */ @@ -1562,11 +1635,15 @@ export type BusinessObjectType = Message<"deixicpublic.v1.BusinessObjectType"> & name: string; /** + * Output only: the published revision. + * * @generated from field: int64 revision = 3; */ revision: bigint; /** + * Output only: assigned when a built-in blueprint member is cloned. + * * @generated from field: deixicpublic.v1.BusinessBlueprintOrigin blueprint_origin = 4; */ blueprintOrigin?: BusinessBlueprintOrigin | undefined; @@ -1580,6 +1657,21 @@ export type BusinessObjectType = Message<"deixicpublic.v1.BusinessObjectType"> & * @generated from field: repeated deixicpublic.v1.BusinessObjectTypeField fields = 6; */ fields: BusinessObjectTypeField[]; + + /** + * @generated from field: repeated deixicpublic.v1.BusinessObjectTypeRelationship relationships = 7; + */ + relationships: BusinessObjectTypeRelationship[]; + + /** + * @generated from field: string plural_name = 8; + */ + pluralName: string; + + /** + * @generated from field: string description = 9; + */ + description: string; }; /** @@ -1587,7 +1679,189 @@ export type BusinessObjectType = Message<"deixicpublic.v1.BusinessObjectType"> & * Use `create(BusinessObjectTypeSchema)` to create a new message. */ export const BusinessObjectTypeSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 45); + messageDesc(file_deixicpublic_v1_sdk, 46); + +/** + * @generated from message deixicpublic.v1.DefineBusinessObjectTypeRequest + */ +export type DefineBusinessObjectTypeRequest = Message<"deixicpublic.v1.DefineBusinessObjectTypeRequest"> & { + /** + * @generated from field: string organization_id = 1; + */ + organizationId: string; + + /** + * @generated from field: string workspace_id = 2; + */ + workspaceId: string; + + /** + * @generated from field: string idempotency_key = 3; + */ + idempotencyKey: string; + + /** + * @generated from field: deixicpublic.v1.BusinessObjectType definition = 4; + */ + definition?: BusinessObjectType | undefined; + + /** + * The revision this change replaces; 0 creates the type. + * + * @generated from field: int64 expected_revision = 5; + */ + expectedRevision: bigint; +}; + +/** + * Describes the message deixicpublic.v1.DefineBusinessObjectTypeRequest. + * Use `create(DefineBusinessObjectTypeRequestSchema)` to create a new message. + */ +export const DefineBusinessObjectTypeRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 47); + +/** + * @generated from message deixicpublic.v1.DefineBusinessObjectTypeResponse + */ +export type DefineBusinessObjectTypeResponse = Message<"deixicpublic.v1.DefineBusinessObjectTypeResponse"> & { + /** + * @generated from field: deixicpublic.v1.BusinessObjectType definition = 1; + */ + definition?: BusinessObjectType | undefined; +}; + +/** + * Describes the message deixicpublic.v1.DefineBusinessObjectTypeResponse. + * Use `create(DefineBusinessObjectTypeResponseSchema)` to create a new message. + */ +export const DefineBusinessObjectTypeResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 48); + +/** + * @generated from message deixicpublic.v1.GetBusinessObjectTypeRequest + */ +export type GetBusinessObjectTypeRequest = Message<"deixicpublic.v1.GetBusinessObjectTypeRequest"> & { + /** + * @generated from field: string organization_id = 1; + */ + organizationId: string; + + /** + * @generated from field: string workspace_id = 2; + */ + workspaceId: string; + + /** + * @generated from field: string type_id = 3; + */ + typeId: string; + + /** + * A published revision, from DefineBusinessObjectType or ListBusinessObjectTypes. + * + * @generated from field: int64 revision = 4; + */ + revision: bigint; +}; + +/** + * Describes the message deixicpublic.v1.GetBusinessObjectTypeRequest. + * Use `create(GetBusinessObjectTypeRequestSchema)` to create a new message. + */ +export const GetBusinessObjectTypeRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 49); + +/** + * @generated from message deixicpublic.v1.GetBusinessObjectTypeResponse + */ +export type GetBusinessObjectTypeResponse = Message<"deixicpublic.v1.GetBusinessObjectTypeResponse"> & { + /** + * @generated from field: deixicpublic.v1.BusinessObjectType definition = 1; + */ + definition?: BusinessObjectType | undefined; +}; + +/** + * Describes the message deixicpublic.v1.GetBusinessObjectTypeResponse. + * Use `create(GetBusinessObjectTypeResponseSchema)` to create a new message. + */ +export const GetBusinessObjectTypeResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 50); + +/** + * @generated from message deixicpublic.v1.UpsertBusinessObjectRequest + */ +export type UpsertBusinessObjectRequest = Message<"deixicpublic.v1.UpsertBusinessObjectRequest"> & { + /** + * @generated from field: string organization_id = 1; + */ + organizationId: string; + + /** + * @generated from field: string workspace_id = 2; + */ + workspaceId: string; + + /** + * @generated from field: string idempotency_key = 3; + */ + idempotencyKey: string; + + /** + * @generated from field: string type_id = 4; + */ + typeId: string; + + /** + * Published schema revision for a new record; zero keeps an existing record's. + * + * @generated from field: int64 schema_revision = 5; + */ + schemaRevision: bigint; + + /** + * A field the type declares unique; `values` must carry it. + * + * @generated from field: string unique_field_id = 6; + */ + uniqueFieldId: string; + + /** + * @generated from field: repeated deixicpublic.v1.BusinessFieldValue values = 7; + */ + values: BusinessFieldValue[]; +}; + +/** + * Describes the message deixicpublic.v1.UpsertBusinessObjectRequest. + * Use `create(UpsertBusinessObjectRequestSchema)` to create a new message. + */ +export const UpsertBusinessObjectRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 51); + +/** + * @generated from message deixicpublic.v1.UpsertBusinessObjectResponse + */ +export type UpsertBusinessObjectResponse = Message<"deixicpublic.v1.UpsertBusinessObjectResponse"> & { + /** + * @generated from field: deixicpublic.v1.BusinessObject object = 1; + */ + object?: BusinessObject | undefined; + + /** + * True when this call created the record, false when it updated one. + * + * @generated from field: bool created = 2; + */ + created: boolean; +}; + +/** + * Describes the message deixicpublic.v1.UpsertBusinessObjectResponse. + * Use `create(UpsertBusinessObjectResponseSchema)` to create a new message. + */ +export const UpsertBusinessObjectResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_deixicpublic_v1_sdk, 52); /** * @generated from message deixicpublic.v1.ListBusinessObjectTypesRequest @@ -1619,7 +1893,7 @@ export type ListBusinessObjectTypesRequest = Message<"deixicpublic.v1.ListBusine * Use `create(ListBusinessObjectTypesRequestSchema)` to create a new message. */ export const ListBusinessObjectTypesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 46); + messageDesc(file_deixicpublic_v1_sdk, 53); /** * @generated from message deixicpublic.v1.ListBusinessObjectTypesResponse @@ -1641,7 +1915,7 @@ export type ListBusinessObjectTypesResponse = Message<"deixicpublic.v1.ListBusin * Use `create(ListBusinessObjectTypesResponseSchema)` to create a new message. */ export const ListBusinessObjectTypesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 47); + messageDesc(file_deixicpublic_v1_sdk, 54); /** * @generated from message deixicpublic.v1.BusinessBlueprint @@ -1678,7 +1952,7 @@ export type BusinessBlueprint = Message<"deixicpublic.v1.BusinessBlueprint"> & { * Use `create(BusinessBlueprintSchema)` to create a new message. */ export const BusinessBlueprintSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 48); + messageDesc(file_deixicpublic_v1_sdk, 55); /** * @generated from message deixicpublic.v1.ListBusinessBlueprintsRequest @@ -1700,7 +1974,7 @@ export type ListBusinessBlueprintsRequest = Message<"deixicpublic.v1.ListBusines * Use `create(ListBusinessBlueprintsRequestSchema)` to create a new message. */ export const ListBusinessBlueprintsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 49); + messageDesc(file_deixicpublic_v1_sdk, 56); /** * @generated from message deixicpublic.v1.ListBusinessBlueprintsResponse @@ -1717,7 +1991,7 @@ export type ListBusinessBlueprintsResponse = Message<"deixicpublic.v1.ListBusine * Use `create(ListBusinessBlueprintsResponseSchema)` to create a new message. */ export const ListBusinessBlueprintsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 50); + messageDesc(file_deixicpublic_v1_sdk, 57); /** * @generated from message deixicpublic.v1.BusinessSourceFieldMapping @@ -1739,7 +2013,7 @@ export type BusinessSourceFieldMapping = Message<"deixicpublic.v1.BusinessSource * Use `create(BusinessSourceFieldMappingSchema)` to create a new message. */ export const BusinessSourceFieldMappingSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 51); + messageDesc(file_deixicpublic_v1_sdk, 58); /** * @generated from message deixicpublic.v1.BindBusinessObjectSourceRequest @@ -1801,7 +2075,7 @@ export type BindBusinessObjectSourceRequest = Message<"deixicpublic.v1.BindBusin * Use `create(BindBusinessObjectSourceRequestSchema)` to create a new message. */ export const BindBusinessObjectSourceRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 52); + messageDesc(file_deixicpublic_v1_sdk, 59); /** * @generated from message deixicpublic.v1.BindBusinessObjectSourceResponse @@ -1818,7 +2092,7 @@ export type BindBusinessObjectSourceResponse = Message<"deixicpublic.v1.BindBusi * Use `create(BindBusinessObjectSourceResponseSchema)` to create a new message. */ export const BindBusinessObjectSourceResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 53); + messageDesc(file_deixicpublic_v1_sdk, 60); /** * @generated from message deixicpublic.v1.BusinessObjectRelationship @@ -1845,7 +2119,7 @@ export type BusinessObjectRelationship = Message<"deixicpublic.v1.BusinessObject * Use `create(BusinessObjectRelationshipSchema)` to create a new message. */ export const BusinessObjectRelationshipSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 54); + messageDesc(file_deixicpublic_v1_sdk, 61); /** * @generated from message deixicpublic.v1.ListBusinessObjectRelationshipsRequest @@ -1892,7 +2166,7 @@ export type ListBusinessObjectRelationshipsRequest = Message<"deixicpublic.v1.Li * Use `create(ListBusinessObjectRelationshipsRequestSchema)` to create a new message. */ export const ListBusinessObjectRelationshipsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 55); + messageDesc(file_deixicpublic_v1_sdk, 62); /** * @generated from message deixicpublic.v1.ListBusinessObjectRelationshipsResponse @@ -1914,7 +2188,7 @@ export type ListBusinessObjectRelationshipsResponse = Message<"deixicpublic.v1.L * Use `create(ListBusinessObjectRelationshipsResponseSchema)` to create a new message. */ export const ListBusinessObjectRelationshipsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 56); + messageDesc(file_deixicpublic_v1_sdk, 63); /** * @generated from message deixicpublic.v1.CreateBusinessObjectRelationshipRequest @@ -1951,7 +2225,7 @@ export type CreateBusinessObjectRelationshipRequest = Message<"deixicpublic.v1.C * Use `create(CreateBusinessObjectRelationshipRequestSchema)` to create a new message. */ export const CreateBusinessObjectRelationshipRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 57); + messageDesc(file_deixicpublic_v1_sdk, 64); /** * @generated from message deixicpublic.v1.CreateBusinessObjectRelationshipResponse @@ -1968,7 +2242,7 @@ export type CreateBusinessObjectRelationshipResponse = Message<"deixicpublic.v1. * Use `create(CreateBusinessObjectRelationshipResponseSchema)` to create a new message. */ export const CreateBusinessObjectRelationshipResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 58); + messageDesc(file_deixicpublic_v1_sdk, 65); /** * @generated from message deixicpublic.v1.DeleteBusinessObjectRelationshipRequest @@ -2005,7 +2279,7 @@ export type DeleteBusinessObjectRelationshipRequest = Message<"deixicpublic.v1.D * Use `create(DeleteBusinessObjectRelationshipRequestSchema)` to create a new message. */ export const DeleteBusinessObjectRelationshipRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 59); + messageDesc(file_deixicpublic_v1_sdk, 66); /** * @generated from message deixicpublic.v1.DeleteBusinessObjectRelationshipResponse @@ -2022,7 +2296,7 @@ export type DeleteBusinessObjectRelationshipResponse = Message<"deixicpublic.v1. * Use `create(DeleteBusinessObjectRelationshipResponseSchema)` to create a new message. */ export const DeleteBusinessObjectRelationshipResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 60); + messageDesc(file_deixicpublic_v1_sdk, 67); /** * @generated from message deixicpublic.v1.Program @@ -2071,7 +2345,7 @@ export type Program = Message<"deixicpublic.v1.Program"> & { * Use `create(ProgramSchema)` to create a new message. */ export const ProgramSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 61); + messageDesc(file_deixicpublic_v1_sdk, 68); /** * @generated from message deixicpublic.v1.GetProgramRequest @@ -2098,7 +2372,7 @@ export type GetProgramRequest = Message<"deixicpublic.v1.GetProgramRequest"> & { * Use `create(GetProgramRequestSchema)` to create a new message. */ export const GetProgramRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 62); + messageDesc(file_deixicpublic_v1_sdk, 69); /** * @generated from message deixicpublic.v1.GetProgramResponse @@ -2115,7 +2389,7 @@ export type GetProgramResponse = Message<"deixicpublic.v1.GetProgramResponse"> & * Use `create(GetProgramResponseSchema)` to create a new message. */ export const GetProgramResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 63); + messageDesc(file_deixicpublic_v1_sdk, 70); /** * @generated from message deixicpublic.v1.CreateProgramRequest @@ -2162,7 +2436,7 @@ export type CreateProgramRequest = Message<"deixicpublic.v1.CreateProgramRequest * Use `create(CreateProgramRequestSchema)` to create a new message. */ export const CreateProgramRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 64); + messageDesc(file_deixicpublic_v1_sdk, 71); /** * @generated from message deixicpublic.v1.CreateProgramResponse @@ -2179,7 +2453,7 @@ export type CreateProgramResponse = Message<"deixicpublic.v1.CreateProgramRespon * Use `create(CreateProgramResponseSchema)` to create a new message. */ export const CreateProgramResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 65); + messageDesc(file_deixicpublic_v1_sdk, 72); /** * @generated from message deixicpublic.v1.UpdateProgramRequest @@ -2243,7 +2517,7 @@ export type UpdateProgramRequest = Message<"deixicpublic.v1.UpdateProgramRequest * Use `create(UpdateProgramRequestSchema)` to create a new message. */ export const UpdateProgramRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 66); + messageDesc(file_deixicpublic_v1_sdk, 73); /** * @generated from message deixicpublic.v1.UpdateProgramResponse @@ -2260,7 +2534,7 @@ export type UpdateProgramResponse = Message<"deixicpublic.v1.UpdateProgramRespon * Use `create(UpdateProgramResponseSchema)` to create a new message. */ export const UpdateProgramResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 67); + messageDesc(file_deixicpublic_v1_sdk, 74); /** * @generated from message deixicpublic.v1.BlueprintSelection @@ -2287,7 +2561,7 @@ export type BlueprintSelection = Message<"deixicpublic.v1.BlueprintSelection"> & * Use `create(BlueprintSelectionSchema)` to create a new message. */ export const BlueprintSelectionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 68); + messageDesc(file_deixicpublic_v1_sdk, 75); /** * @generated from message deixicpublic.v1.ComplianceLibraryChange @@ -2309,7 +2583,7 @@ export type ComplianceLibraryChange = Message<"deixicpublic.v1.ComplianceLibrary * Use `create(ComplianceLibraryChangeSchema)` to create a new message. */ export const ComplianceLibraryChangeSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 69); + messageDesc(file_deixicpublic_v1_sdk, 76); /** * Preview returns the plan digest; apply must name that digest and is polled @@ -2359,7 +2633,7 @@ export type ReconcileComplianceLibraryRequest = Message<"deixicpublic.v1.Reconci * Use `create(ReconcileComplianceLibraryRequestSchema)` to create a new message. */ export const ReconcileComplianceLibraryRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 70); + messageDesc(file_deixicpublic_v1_sdk, 77); /** * @generated from message deixicpublic.v1.ReconcileComplianceLibraryResponse @@ -2391,7 +2665,7 @@ export type ReconcileComplianceLibraryResponse = Message<"deixicpublic.v1.Reconc * Use `create(ReconcileComplianceLibraryResponseSchema)` to create a new message. */ export const ReconcileComplianceLibraryResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 71); + messageDesc(file_deixicpublic_v1_sdk, 78); /** * @generated from message deixicpublic.v1.GetThreadRequest @@ -2423,7 +2697,7 @@ export type GetThreadRequest = Message<"deixicpublic.v1.GetThreadRequest"> & { * Use `create(GetThreadRequestSchema)` to create a new message. */ export const GetThreadRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 72); + messageDesc(file_deixicpublic_v1_sdk, 79); /** * @generated from message deixicpublic.v1.GetThreadResponse @@ -2470,7 +2744,7 @@ export type GetThreadResponse = Message<"deixicpublic.v1.GetThreadResponse"> & { * Use `create(GetThreadResponseSchema)` to create a new message. */ export const GetThreadResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 73); + messageDesc(file_deixicpublic_v1_sdk, 80); /** * @generated from message deixicpublic.v1.ListThreadsRequest @@ -2492,7 +2766,7 @@ export type ListThreadsRequest = Message<"deixicpublic.v1.ListThreadsRequest"> & * Use `create(ListThreadsRequestSchema)` to create a new message. */ export const ListThreadsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 74); + messageDesc(file_deixicpublic_v1_sdk, 81); /** * @generated from message deixicpublic.v1.ListThreadsResponse @@ -2509,7 +2783,7 @@ export type ListThreadsResponse = Message<"deixicpublic.v1.ListThreadsResponse"> * Use `create(ListThreadsResponseSchema)` to create a new message. */ export const ListThreadsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 75); + messageDesc(file_deixicpublic_v1_sdk, 82); /** * @generated from message deixicpublic.v1.RenameThreadRequest @@ -2536,7 +2810,7 @@ export type RenameThreadRequest = Message<"deixicpublic.v1.RenameThreadRequest"> * Use `create(RenameThreadRequestSchema)` to create a new message. */ export const RenameThreadRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 76); + messageDesc(file_deixicpublic_v1_sdk, 83); /** * @generated from message deixicpublic.v1.RenameThreadResponse @@ -2558,7 +2832,7 @@ export type RenameThreadResponse = Message<"deixicpublic.v1.RenameThreadResponse * Use `create(RenameThreadResponseSchema)` to create a new message. */ export const RenameThreadResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 77); + messageDesc(file_deixicpublic_v1_sdk, 84); /** * @generated from message deixicpublic.v1.ArchiveThreadRequest @@ -2590,7 +2864,7 @@ export type ArchiveThreadRequest = Message<"deixicpublic.v1.ArchiveThreadRequest * Use `create(ArchiveThreadRequestSchema)` to create a new message. */ export const ArchiveThreadRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 78); + messageDesc(file_deixicpublic_v1_sdk, 85); /** * @generated from message deixicpublic.v1.ArchiveThreadResponse @@ -2617,7 +2891,7 @@ export type ArchiveThreadResponse = Message<"deixicpublic.v1.ArchiveThreadRespon * Use `create(ArchiveThreadResponseSchema)` to create a new message. */ export const ArchiveThreadResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 79); + messageDesc(file_deixicpublic_v1_sdk, 86); /** * @generated from message deixicpublic.v1.ListEventsRequest @@ -2649,7 +2923,7 @@ export type ListEventsRequest = Message<"deixicpublic.v1.ListEventsRequest"> & { * Use `create(ListEventsRequestSchema)` to create a new message. */ export const ListEventsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 80); + messageDesc(file_deixicpublic_v1_sdk, 87); /** * @generated from message deixicpublic.v1.ListEventsResponse @@ -2691,7 +2965,7 @@ export type ListEventsResponse = Message<"deixicpublic.v1.ListEventsResponse"> & * Use `create(ListEventsResponseSchema)` to create a new message. */ export const ListEventsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 81); + messageDesc(file_deixicpublic_v1_sdk, 88); /** * @generated from message deixicpublic.v1.WatchEventsRequest @@ -2718,7 +2992,7 @@ export type WatchEventsRequest = Message<"deixicpublic.v1.WatchEventsRequest"> & * Use `create(WatchEventsRequestSchema)` to create a new message. */ export const WatchEventsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 82); + messageDesc(file_deixicpublic_v1_sdk, 89); /** * @generated from message deixicpublic.v1.WatchEventsResponse @@ -2755,7 +3029,7 @@ export type WatchEventsResponse = Message<"deixicpublic.v1.WatchEventsResponse"> * Use `create(WatchEventsResponseSchema)` to create a new message. */ export const WatchEventsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 83); + messageDesc(file_deixicpublic_v1_sdk, 90); /** * @generated from message deixicpublic.v1.CodingContract @@ -2812,7 +3086,7 @@ export type CodingContract = Message<"deixicpublic.v1.CodingContract"> & { * Use `create(CodingContractSchema)` to create a new message. */ export const CodingContractSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 84); + messageDesc(file_deixicpublic_v1_sdk, 91); /** * @generated from message deixicpublic.v1.SubmitTaskRequest @@ -2869,7 +3143,7 @@ export type SubmitTaskRequest = Message<"deixicpublic.v1.SubmitTaskRequest"> & { * Use `create(SubmitTaskRequestSchema)` to create a new message. */ export const SubmitTaskRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 85); + messageDesc(file_deixicpublic_v1_sdk, 92); /** * @generated from message deixicpublic.v1.SubmitTaskResponse @@ -2901,7 +3175,7 @@ export type SubmitTaskResponse = Message<"deixicpublic.v1.SubmitTaskResponse"> & * Use `create(SubmitTaskResponseSchema)` to create a new message. */ export const SubmitTaskResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 86); + messageDesc(file_deixicpublic_v1_sdk, 93); /** * @generated from message deixicpublic.v1.InterruptTaskRequest @@ -2938,7 +3212,7 @@ export type InterruptTaskRequest = Message<"deixicpublic.v1.InterruptTaskRequest * Use `create(InterruptTaskRequestSchema)` to create a new message. */ export const InterruptTaskRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 87); + messageDesc(file_deixicpublic_v1_sdk, 94); /** * @generated from message deixicpublic.v1.InterruptTaskResponse @@ -2970,7 +3244,7 @@ export type InterruptTaskResponse = Message<"deixicpublic.v1.InterruptTaskRespon * Use `create(InterruptTaskResponseSchema)` to create a new message. */ export const InterruptTaskResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 88); + messageDesc(file_deixicpublic_v1_sdk, 95); /** * @generated from message deixicpublic.v1.RespondToRequestRequest @@ -3032,7 +3306,7 @@ export type RespondToRequestRequest = Message<"deixicpublic.v1.RespondToRequestR * Use `create(RespondToRequestRequestSchema)` to create a new message. */ export const RespondToRequestRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 89); + messageDesc(file_deixicpublic_v1_sdk, 96); /** * @generated from message deixicpublic.v1.RespondToRequestResponse @@ -3059,7 +3333,7 @@ export type RespondToRequestResponse = Message<"deixicpublic.v1.RespondToRequest * Use `create(RespondToRequestResponseSchema)` to create a new message. */ export const RespondToRequestResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 90); + messageDesc(file_deixicpublic_v1_sdk, 97); /** * @generated from message deixicpublic.v1.GetReceiptRequest @@ -3091,7 +3365,7 @@ export type GetReceiptRequest = Message<"deixicpublic.v1.GetReceiptRequest"> & { * Use `create(GetReceiptRequestSchema)` to create a new message. */ export const GetReceiptRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 91); + messageDesc(file_deixicpublic_v1_sdk, 98); /** * @generated from message deixicpublic.v1.GetReceiptResponse @@ -3108,7 +3382,7 @@ export type GetReceiptResponse = Message<"deixicpublic.v1.GetReceiptResponse"> & * Use `create(GetReceiptResponseSchema)` to create a new message. */ export const GetReceiptResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 92); + messageDesc(file_deixicpublic_v1_sdk, 99); /** * @generated from message deixicpublic.v1.ResolveReceiptActionRequest @@ -3140,7 +3414,7 @@ export type ResolveReceiptActionRequest = Message<"deixicpublic.v1.ResolveReceip * Use `create(ResolveReceiptActionRequestSchema)` to create a new message. */ export const ResolveReceiptActionRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 93); + messageDesc(file_deixicpublic_v1_sdk, 100); /** * @generated from message deixicpublic.v1.ResolveReceiptActionResponse @@ -3157,7 +3431,7 @@ export type ResolveReceiptActionResponse = Message<"deixicpublic.v1.ResolveRecei * Use `create(ResolveReceiptActionResponseSchema)` to create a new message. */ export const ResolveReceiptActionResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 94); + messageDesc(file_deixicpublic_v1_sdk, 101); /** * @generated from message deixicpublic.v1.VoiceSelection @@ -3186,7 +3460,7 @@ export type VoiceSelection = Message<"deixicpublic.v1.VoiceSelection"> & { * Use `create(VoiceSelectionSchema)` to create a new message. */ export const VoiceSelectionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 95); + messageDesc(file_deixicpublic_v1_sdk, 102); /** * @generated from message deixicpublic.v1.SubmitVoicedTaskRequest @@ -3208,7 +3482,7 @@ export type SubmitVoicedTaskRequest = Message<"deixicpublic.v1.SubmitVoicedTaskR * Use `create(SubmitVoicedTaskRequestSchema)` to create a new message. */ export const SubmitVoicedTaskRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 96); + messageDesc(file_deixicpublic_v1_sdk, 103); /** * @generated from message deixicpublic.v1.SubmitVoicedTaskResponse @@ -3225,7 +3499,7 @@ export type SubmitVoicedTaskResponse = Message<"deixicpublic.v1.SubmitVoicedTask * Use `create(SubmitVoicedTaskResponseSchema)` to create a new message. */ export const SubmitVoicedTaskResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 97); + messageDesc(file_deixicpublic_v1_sdk, 104); /** * @generated from message deixicpublic.v1.GetVoiceCatalogRequest @@ -3242,7 +3516,7 @@ export type GetVoiceCatalogRequest = Message<"deixicpublic.v1.GetVoiceCatalogReq * Use `create(GetVoiceCatalogRequestSchema)` to create a new message. */ export const GetVoiceCatalogRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 98); + messageDesc(file_deixicpublic_v1_sdk, 105); /** * @generated from message deixicpublic.v1.BrandVoice @@ -3274,7 +3548,7 @@ export type BrandVoice = Message<"deixicpublic.v1.BrandVoice"> & { * Use `create(BrandVoiceSchema)` to create a new message. */ export const BrandVoiceSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 99); + messageDesc(file_deixicpublic_v1_sdk, 106); /** * @generated from message deixicpublic.v1.GetVoiceCatalogResponse @@ -3306,7 +3580,7 @@ export type GetVoiceCatalogResponse = Message<"deixicpublic.v1.GetVoiceCatalogRe * Use `create(GetVoiceCatalogResponseSchema)` to create a new message. */ export const GetVoiceCatalogResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 100); + messageDesc(file_deixicpublic_v1_sdk, 107); /** * @generated from message deixicpublic.v1.Control @@ -3360,7 +3634,7 @@ export type Control = Message<"deixicpublic.v1.Control"> & { * Use `create(ControlSchema)` to create a new message. */ export const ControlSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 101); + messageDesc(file_deixicpublic_v1_sdk, 108); /** * @generated from message deixicpublic.v1.ListControlsRequest @@ -3396,7 +3670,7 @@ export type ListControlsRequest = Message<"deixicpublic.v1.ListControlsRequest"> * Use `create(ListControlsRequestSchema)` to create a new message. */ export const ListControlsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 102); + messageDesc(file_deixicpublic_v1_sdk, 109); /** * @generated from message deixicpublic.v1.ListControlsResponse @@ -3418,7 +3692,7 @@ export type ListControlsResponse = Message<"deixicpublic.v1.ListControlsResponse * Use `create(ListControlsResponseSchema)` to create a new message. */ export const ListControlsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 103); + messageDesc(file_deixicpublic_v1_sdk, 110); /** * @generated from message deixicpublic.v1.GetControlRequest @@ -3445,7 +3719,7 @@ export type GetControlRequest = Message<"deixicpublic.v1.GetControlRequest"> & { * Use `create(GetControlRequestSchema)` to create a new message. */ export const GetControlRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 104); + messageDesc(file_deixicpublic_v1_sdk, 111); /** * One framework requirement a control maps to. @@ -3476,7 +3750,7 @@ export type ControlRequirement = Message<"deixicpublic.v1.ControlRequirement"> & * Use `create(ControlRequirementSchema)` to create a new message. */ export const ControlRequirementSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 105); + messageDesc(file_deixicpublic_v1_sdk, 112); /** * One test that verifies a control, with its own state. @@ -3510,7 +3784,7 @@ export type ControlTestState = Message<"deixicpublic.v1.ControlTestState"> & { * Use `create(ControlTestStateSchema)` to create a new message. */ export const ControlTestStateSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 106); + messageDesc(file_deixicpublic_v1_sdk, 113); /** * @generated from message deixicpublic.v1.GetControlResponse @@ -3549,7 +3823,7 @@ export type GetControlResponse = Message<"deixicpublic.v1.GetControlResponse"> & * Use `create(GetControlResponseSchema)` to create a new message. */ export const GetControlResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 107); + messageDesc(file_deixicpublic_v1_sdk, 114); /** * @generated from message deixicpublic.v1.Test @@ -3605,7 +3879,7 @@ export type Test = Message<"deixicpublic.v1.Test"> & { * Use `create(TestSchema)` to create a new message. */ export const TestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 108); + messageDesc(file_deixicpublic_v1_sdk, 115); /** * @generated from message deixicpublic.v1.ListTestsRequest @@ -3655,7 +3929,7 @@ export type ListTestsRequest = Message<"deixicpublic.v1.ListTestsRequest"> & { * Use `create(ListTestsRequestSchema)` to create a new message. */ export const ListTestsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 109); + messageDesc(file_deixicpublic_v1_sdk, 116); /** * @generated from message deixicpublic.v1.ListTestsResponse @@ -3691,7 +3965,7 @@ export type ListTestsResponse = Message<"deixicpublic.v1.ListTestsResponse"> & { * Use `create(ListTestsResponseSchema)` to create a new message. */ export const ListTestsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 110); + messageDesc(file_deixicpublic_v1_sdk, 117); /** * @generated from message deixicpublic.v1.TestResourceResult @@ -3733,7 +4007,7 @@ export type TestResourceResult = Message<"deixicpublic.v1.TestResourceResult"> & * Use `create(TestResourceResultSchema)` to create a new message. */ export const TestResourceResultSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 111); + messageDesc(file_deixicpublic_v1_sdk, 118); /** * @generated from message deixicpublic.v1.GetTestRequest @@ -3760,7 +4034,7 @@ export type GetTestRequest = Message<"deixicpublic.v1.GetTestRequest"> & { * Use `create(GetTestRequestSchema)` to create a new message. */ export const GetTestRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 112); + messageDesc(file_deixicpublic_v1_sdk, 119); /** * @generated from message deixicpublic.v1.GetTestResponse @@ -3794,7 +4068,7 @@ export type GetTestResponse = Message<"deixicpublic.v1.GetTestResponse"> & { * Use `create(GetTestResponseSchema)` to create a new message. */ export const GetTestResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 113); + messageDesc(file_deixicpublic_v1_sdk, 120); /** * @generated from message deixicpublic.v1.Evidence @@ -3869,7 +4143,7 @@ export type Evidence = Message<"deixicpublic.v1.Evidence"> & { * Use `create(EvidenceSchema)` to create a new message. */ export const EvidenceSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 114); + messageDesc(file_deixicpublic_v1_sdk, 121); /** * @generated from message deixicpublic.v1.ListEvidenceRequest @@ -3912,7 +4186,7 @@ export type ListEvidenceRequest = Message<"deixicpublic.v1.ListEvidenceRequest"> * Use `create(ListEvidenceRequestSchema)` to create a new message. */ export const ListEvidenceRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 115); + messageDesc(file_deixicpublic_v1_sdk, 122); /** * @generated from message deixicpublic.v1.ListEvidenceResponse @@ -3948,7 +4222,7 @@ export type ListEvidenceResponse = Message<"deixicpublic.v1.ListEvidenceResponse * Use `create(ListEvidenceResponseSchema)` to create a new message. */ export const ListEvidenceResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 116); + messageDesc(file_deixicpublic_v1_sdk, 123); /** * @generated from message deixicpublic.v1.EvidenceVersion @@ -3992,7 +4266,7 @@ export type EvidenceVersion = Message<"deixicpublic.v1.EvidenceVersion"> & { * Use `create(EvidenceVersionSchema)` to create a new message. */ export const EvidenceVersionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 117); + messageDesc(file_deixicpublic_v1_sdk, 124); /** * @generated from message deixicpublic.v1.ListEvidenceVersionsRequest @@ -4031,7 +4305,7 @@ export type ListEvidenceVersionsRequest = Message<"deixicpublic.v1.ListEvidenceV * Use `create(ListEvidenceVersionsRequestSchema)` to create a new message. */ export const ListEvidenceVersionsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 118); + messageDesc(file_deixicpublic_v1_sdk, 125); /** * @generated from message deixicpublic.v1.ListEvidenceVersionsResponse @@ -4058,7 +4332,7 @@ export type ListEvidenceVersionsResponse = Message<"deixicpublic.v1.ListEvidence * Use `create(ListEvidenceVersionsResponseSchema)` to create a new message. */ export const ListEvidenceVersionsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 119); + messageDesc(file_deixicpublic_v1_sdk, 126); /** * @generated from message deixicpublic.v1.GetEvidenceContentRequest @@ -4090,7 +4364,7 @@ export type GetEvidenceContentRequest = Message<"deixicpublic.v1.GetEvidenceCont * Use `create(GetEvidenceContentRequestSchema)` to create a new message. */ export const GetEvidenceContentRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 120); + messageDesc(file_deixicpublic_v1_sdk, 127); /** * @generated from message deixicpublic.v1.GetEvidenceContentResponse @@ -4129,7 +4403,7 @@ export type GetEvidenceContentResponse = Message<"deixicpublic.v1.GetEvidenceCon * Use `create(GetEvidenceContentResponseSchema)` to create a new message. */ export const GetEvidenceContentResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 121); + messageDesc(file_deixicpublic_v1_sdk, 128); /** * @generated from message deixicpublic.v1.Asset @@ -4216,7 +4490,7 @@ export type Asset = Message<"deixicpublic.v1.Asset"> & { * Use `create(AssetSchema)` to create a new message. */ export const AssetSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 122); + messageDesc(file_deixicpublic_v1_sdk, 129); /** * @generated from message deixicpublic.v1.ListAssetsRequest @@ -4252,7 +4526,7 @@ export type ListAssetsRequest = Message<"deixicpublic.v1.ListAssetsRequest"> & { * Use `create(ListAssetsRequestSchema)` to create a new message. */ export const ListAssetsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 123); + messageDesc(file_deixicpublic_v1_sdk, 130); /** * @generated from message deixicpublic.v1.ListAssetsResponse @@ -4286,7 +4560,7 @@ export type ListAssetsResponse = Message<"deixicpublic.v1.ListAssetsResponse"> & * Use `create(ListAssetsResponseSchema)` to create a new message. */ export const ListAssetsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 124); + messageDesc(file_deixicpublic_v1_sdk, 131); /** * @generated from message deixicpublic.v1.GetAssetRequest @@ -4313,7 +4587,7 @@ export type GetAssetRequest = Message<"deixicpublic.v1.GetAssetRequest"> & { * Use `create(GetAssetRequestSchema)` to create a new message. */ export const GetAssetRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 125); + messageDesc(file_deixicpublic_v1_sdk, 132); /** * @generated from message deixicpublic.v1.GetAssetResponse @@ -4330,7 +4604,7 @@ export type GetAssetResponse = Message<"deixicpublic.v1.GetAssetResponse"> & { * Use `create(GetAssetResponseSchema)` to create a new message. */ export const GetAssetResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 126); + messageDesc(file_deixicpublic_v1_sdk, 133); /** * @generated from message deixicpublic.v1.Audit @@ -4418,7 +4692,7 @@ export type Audit = Message<"deixicpublic.v1.Audit"> & { * Use `create(AuditSchema)` to create a new message. */ export const AuditSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 127); + messageDesc(file_deixicpublic_v1_sdk, 134); /** * @generated from message deixicpublic.v1.ListAuditsRequest @@ -4457,7 +4731,7 @@ export type ListAuditsRequest = Message<"deixicpublic.v1.ListAuditsRequest"> & { * Use `create(ListAuditsRequestSchema)` to create a new message. */ export const ListAuditsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 128); + messageDesc(file_deixicpublic_v1_sdk, 135); /** * @generated from message deixicpublic.v1.ListAuditsResponse @@ -4479,7 +4753,7 @@ export type ListAuditsResponse = Message<"deixicpublic.v1.ListAuditsResponse"> & * Use `create(ListAuditsResponseSchema)` to create a new message. */ export const ListAuditsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 129); + messageDesc(file_deixicpublic_v1_sdk, 136); /** * @generated from message deixicpublic.v1.GetAuditRequest @@ -4506,7 +4780,7 @@ export type GetAuditRequest = Message<"deixicpublic.v1.GetAuditRequest"> & { * Use `create(GetAuditRequestSchema)` to create a new message. */ export const GetAuditRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 130); + messageDesc(file_deixicpublic_v1_sdk, 137); /** * @generated from message deixicpublic.v1.GetAuditResponse @@ -4523,7 +4797,7 @@ export type GetAuditResponse = Message<"deixicpublic.v1.GetAuditResponse"> & { * Use `create(GetAuditResponseSchema)` to create a new message. */ export const GetAuditResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 131); + messageDesc(file_deixicpublic_v1_sdk, 138); /** * One item on an audit's request list (the auditor's information request list). @@ -4611,7 +4885,7 @@ export type AuditRequestItem = Message<"deixicpublic.v1.AuditRequestItem"> & { * Use `create(AuditRequestItemSchema)` to create a new message. */ export const AuditRequestItemSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 132); + messageDesc(file_deixicpublic_v1_sdk, 139); /** * @generated from message deixicpublic.v1.AuditRequestCounts @@ -4648,7 +4922,7 @@ export type AuditRequestCounts = Message<"deixicpublic.v1.AuditRequestCounts"> & * Use `create(AuditRequestCountsSchema)` to create a new message. */ export const AuditRequestCountsSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 133); + messageDesc(file_deixicpublic_v1_sdk, 140); /** * @generated from message deixicpublic.v1.ListAuditRequestsRequest @@ -4675,7 +4949,7 @@ export type ListAuditRequestsRequest = Message<"deixicpublic.v1.ListAuditRequest * Use `create(ListAuditRequestsRequestSchema)` to create a new message. */ export const ListAuditRequestsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 134); + messageDesc(file_deixicpublic_v1_sdk, 141); /** * @generated from message deixicpublic.v1.ListAuditRequestsResponse @@ -4697,7 +4971,7 @@ export type ListAuditRequestsResponse = Message<"deixicpublic.v1.ListAuditReques * Use `create(ListAuditRequestsResponseSchema)` to create a new message. */ export const ListAuditRequestsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 135); + messageDesc(file_deixicpublic_v1_sdk, 142); /** * @generated from message deixicpublic.v1.GetAuditRequestItemRequest @@ -4729,7 +5003,7 @@ export type GetAuditRequestItemRequest = Message<"deixicpublic.v1.GetAuditReques * Use `create(GetAuditRequestItemRequestSchema)` to create a new message. */ export const GetAuditRequestItemRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 136); + messageDesc(file_deixicpublic_v1_sdk, 143); /** * @generated from message deixicpublic.v1.GetAuditRequestItemResponse @@ -4746,7 +5020,7 @@ export type GetAuditRequestItemResponse = Message<"deixicpublic.v1.GetAuditReque * Use `create(GetAuditRequestItemResponseSchema)` to create a new message. */ export const GetAuditRequestItemResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_deixicpublic_v1_sdk, 137); + messageDesc(file_deixicpublic_v1_sdk, 144); /** * @generated from enum deixicpublic.v1.TurnState @@ -5211,6 +5485,77 @@ export enum ClientMcpMode { export const ClientMcpModeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_deixicpublic_v1_sdk, 9); +/** + * @generated from enum deixicpublic.v1.BusinessFieldKind + */ +export enum BusinessFieldKind { + /** + * @generated from enum value: BUSINESS_FIELD_KIND_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_TEXT = 1; + */ + TEXT = 1, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_INTEGER = 2; + */ + INTEGER = 2, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_BOOLEAN = 3; + */ + BOOLEAN = 3, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_DECIMAL = 4; + */ + DECIMAL = 4, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_MONEY = 5; + */ + MONEY = 5, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_ENUM = 6; + */ + ENUM = 6, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_DATE = 7; + */ + DATE = 7, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_TIMESTAMP = 8; + */ + TIMESTAMP = 8, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_REFERENCE = 9; + */ + REFERENCE = 9, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_ARTIFACT = 10; + */ + ARTIFACT = 10, + + /** + * @generated from enum value: BUSINESS_FIELD_KIND_TEXT_LIST = 11; + */ + TEXT_LIST = 11, +} + +/** + * Describes the enum deixicpublic.v1.BusinessFieldKind. + */ +export const BusinessFieldKindSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_deixicpublic_v1_sdk, 10); + /** * Binds a record to a caller-named connection resource. The response is the * projected record; the binding itself stays with the implementation. @@ -5238,7 +5583,7 @@ export enum BusinessSourceFieldProperty { * Describes the enum deixicpublic.v1.BusinessSourceFieldProperty. */ export const BusinessSourceFieldPropertySchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 10); + enumDesc(file_deixicpublic_v1_sdk, 11); /** * @generated from enum deixicpublic.v1.ComplianceLibraryReconcileMode @@ -5264,7 +5609,7 @@ export enum ComplianceLibraryReconcileMode { * Describes the enum deixicpublic.v1.ComplianceLibraryReconcileMode. */ export const ComplianceLibraryReconcileModeSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 11); + enumDesc(file_deixicpublic_v1_sdk, 12); /** * @generated from enum deixicpublic.v1.ComplianceLibraryChangeKind @@ -5310,7 +5655,7 @@ export enum ComplianceLibraryChangeKind { * Describes the enum deixicpublic.v1.ComplianceLibraryChangeKind. */ export const ComplianceLibraryChangeKindSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 12); + enumDesc(file_deixicpublic_v1_sdk, 13); /** * @generated from enum deixicpublic.v1.ResponseAction @@ -5356,7 +5701,7 @@ export enum ResponseAction { * Describes the enum deixicpublic.v1.ResponseAction. */ export const ResponseActionSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 13); + enumDesc(file_deixicpublic_v1_sdk, 14); /** * IDs select Settings-owned voices. Clients never supply trusted guidance. @@ -5389,7 +5734,7 @@ export enum VoiceMode { * Describes the enum deixicpublic.v1.VoiceMode. */ export const VoiceModeSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 14); + enumDesc(file_deixicpublic_v1_sdk, 15); /** * @generated from enum deixicpublic.v1.VoiceTone @@ -5420,7 +5765,7 @@ export enum VoiceTone { * Describes the enum deixicpublic.v1.VoiceTone. */ export const VoiceToneSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 15); + enumDesc(file_deixicpublic_v1_sdk, 16); /** * A control's current verification state, from the same owner read the @@ -5472,7 +5817,7 @@ export enum ControlState { * Describes the enum deixicpublic.v1.ControlState. */ export const ControlStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 16); + enumDesc(file_deixicpublic_v1_sdk, 17); /** * A resource's latest result for one test. @@ -5527,7 +5872,7 @@ export enum TestResultState { * Describes the enum deixicpublic.v1.TestResultState. */ export const TestResultStateSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_deixicpublic_v1_sdk, 17); + enumDesc(file_deixicpublic_v1_sdk, 18); /** * This is the complete application SDK wire contract. Public messages are @@ -5714,6 +6059,37 @@ export const DeixicPublicService: GenService<{ input: typeof ListBusinessObjectTypesRequestSchema; output: typeof ListBusinessObjectTypesResponseSchema; }, + /** + * Publishes a workspace type revision; expected_revision 0 creates the type. + * + * @generated from rpc deixicpublic.v1.DeixicPublicService.DefineBusinessObjectType + */ + defineBusinessObjectType: { + methodKind: "unary"; + input: typeof DefineBusinessObjectTypeRequestSchema; + output: typeof DefineBusinessObjectTypeResponseSchema; + }, + /** + * Reads one immutable published revision of a type. + * + * @generated from rpc deixicpublic.v1.DeixicPublicService.GetBusinessObjectType + */ + getBusinessObjectType: { + methodKind: "unary"; + input: typeof GetBusinessObjectTypeRequestSchema; + output: typeof GetBusinessObjectTypeResponseSchema; + }, + /** + * Creates the record whose declared unique field holds the given value, or + * updates the one that already does, atomically on the server. + * + * @generated from rpc deixicpublic.v1.DeixicPublicService.UpsertBusinessObject + */ + upsertBusinessObject: { + methodKind: "unary"; + input: typeof UpsertBusinessObjectRequestSchema; + output: typeof UpsertBusinessObjectResponseSchema; + }, /** * @generated from rpc deixicpublic.v1.DeixicPublicService.ListBusinessBlueprints */