@eide/foir-proto-ts 0.70.0 → 0.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/apps/v1/apps_service_pb.d.ts +12 -0
- package/src/apps/v1/apps_service_pb.js +1 -1
- package/src/identity/v1/identity_connect.d.ts +23 -1
- package/src/identity/v1/identity_connect.js +23 -1
- package/src/identity/v1/identity_pb.d.ts +143 -0
- package/src/identity/v1/identity_pb.js +33 -5
- package/src/records/v1/records_connect.d.ts +10 -1
- package/src/records/v1/records_connect.js +10 -1
- package/src/records/v1/records_pb.d.ts +170 -0
- package/src/records/v1/records_pb.js +104 -83
|
@@ -10,7 +10,7 @@ import { file_publish_v1_publish } from "../../publish/v1/publish_pb.js";
|
|
|
10
10
|
* Describes the file identity/v1/identity.proto.
|
|
11
11
|
*/
|
|
12
12
|
export const file_identity_v1_identity = /*@__PURE__*/
|
|
13
|
-
fileDesc("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEijwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEiwKBnN0YXR1cxgUIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1cxI6ChFlbWFpbF92ZXJpZmllZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI2Cg1sYXN0X2xvZ2luX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiwKBmFjY2VzcxgoIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcxIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhQKEl9lbWFpbF92ZXJpZmllZF9hdEIQCg5fbGFzdF9sb2dpbl9hdCLuAQoPQWRtaW5Vc2VyQWNjZXNzEgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhcKCnByb2plY3RfaWQYBCABKAlIAIgBARIlCgRyb2xlGAUgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIuCgpncmFudGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpncmFudGVkX2J5GDMgASgJSAGIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2dyYW50ZWRfYnki9QIKCEN1c3RvbWVyEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEisKBnN0YXR1cxgUIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzEjoKEWVtYWlsX3ZlcmlmaWVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWxhc3RfbG9naW5fYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCFAoSX2VtYWlsX3ZlcmlmaWVkX2F0QhAKDl9sYXN0X2xvZ2luX2F0IvQCCgZUZW5hbnQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIpCgZzdGF0dXMYFCABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXMSNQoMc3VzcGVuZGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEkIKGWNhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoTZGF0YV9yZXRlbnRpb25fZGF5cxgeIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fc3VzcGVuZGVkX2F0QhwKGl9jYW5jZWxsYXRpb25fc2NoZWR1bGVkX2F0It4GCgdQcm9qZWN0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIqCgZzdGF0dXMYFCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzEj4KFWRlbGV0aW9uX3NjaGVkdWxlZF9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpjcmVhdGVkX2J5GCggASgJSAKIAQESFwoKdXBkYXRlZF9ieRgpIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKDGRpc3BsYXlfbmFtZRg8IAEoCUgEiAEBEhUKCGxvZ29fdXJsGD0gASgJSAWIAQESGgoNcHJpbWFyeV9jb2xvchg+IAEoCUgGiAEBEhYKCWZyb21fbmFtZRg/IAEoCUgHiAEBEhUKCHJlcGx5X3RvGEAgASgJSAiIAQESGgoNc3VwcG9ydF9lbWFpbBhBIAEoCUgJiAEBEhkKDGFwcF9iYXNlX3VybBhCIAEoCUgKiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBhGIAEoCEgLiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGFAgASgISAyIAQFCDgoMX2Rlc2NyaXB0aW9uQhgKFl9kZWxldGlvbl9zY2hlZHVsZWRfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCKvAwoKSW52aXRhdGlvbhIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEwoLcHJvamVjdF9pZHMYBCADKAkSJQoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGUSLAoLaW52aXRlX3R5cGUYBiABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhIKCmludml0ZWRfYnkYByABKAkSFAoHbWVzc2FnZRgIIAEoCUgAiAEBEi0KBnN0YXR1cxgUIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0IukDChJDdXN0b21lckludml0YXRpb24SCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSFwoKaW52aXRlZF9ieRgFIAEoCUgAiAEBEhQKB21lc3NhZ2UYBiABKAlIAYgBARI1CgZzdGF0dXMYFCABKA4yJS5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESIQoUYWNjZXB0ZWRfY3VzdG9tZXJfaWQYICABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfaW52aXRlZF9ieUIKCghfbWVzc2FnZUIOCgxfYWNjZXB0ZWRfYXRCFwoVX2FjY2VwdGVkX2N1c3RvbWVyX2lkItkECgZBcGlLZXkSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRISCgprZXlfcHJlZml4GAUgASgJEikKCGtleV90eXBlGAYgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIUCgdyYXdfa2V5GAogASgJSACIAQESEQoJaXNfYWN0aXZlGBQgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYFSABKAVIAYgBARIzCgpleHBpcmVzX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEg4KBnNjb3BlcxgXIAMoCRIuCghtZXRhZGF0YRgYIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARI1CgxsYXN0X3VzZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEwoLdXNhZ2VfY291bnQYHyABKAUSEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfcmF3X2tleUIWChRfcmF0ZV9saW1pdF9wZXJfaG91ckINCgtfZXhwaXJlc19hdEILCglfbWV0YWRhdGFCDwoNX2xhc3RfdXNlZF9hdCKWAgoOU2Vzc2lvbkNvbnRleHQSFgoJdGVuYW50X2lkGAEgASgJSACIAQESFwoKcHJvamVjdF9pZBgCIAEoCUgBiAEBEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISGwoOZWZmZWN0aXZlX3JvbGUYBCABKAlIAogBARIuChFhdmFpbGFibGVfdGVuYW50cxgFIAMoCzITLmlkZW50aXR5LnYxLlRlbmFudBIwChJhdmFpbGFibGVfcHJvamVjdHMYBiADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0QgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEQoPX2VmZmVjdGl2ZV9yb2xlIn0KDExvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCJfCg1Mb2dpblJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIifwoTTG9naW5XaXRoT1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRILCgNvdHAYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiZgoUTG9naW5XaXRoT1RQUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciJwChFSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCIlChJSZXF1ZXN0T1RQUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIPCg1Mb2dvdXRSZXF1ZXN0IiEKDkxvZ291dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgitQEKD1JlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQESKgoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVIAogBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQgcKBV9yb2xlIjgKEFJlZ2lzdGVyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIjChJWZXJpZnlFbWFpbFJlcXVlc3QSDQoFdG9rZW4YASABKAkiJgoTVmVyaWZ5RW1haWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKHlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIyCh9SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMQogU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QSDQoFZW1haWwYASABKAkiNAohU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNQoWVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRjb2RlGAIgASgJIjwKF1ZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIdmVyaWZpZWQYAiABKAgiLAobUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIi8KHFJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI7ChRSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKAoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRwoVVXBkYXRlUGFzc3dvcmRSZXF1ZXN0EhgKEGN1cnJlbnRfcGFzc3dvcmQYASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIikKFlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChNSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiQwoUUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiGgoYR2V0U2Vzc2lvbkNvbnRleHRSZXF1ZXN0IkkKGUdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IigKE1N3aXRjaFRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkQKFFN3aXRjaFRlbmFudFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIqChRTd2l0Y2hQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkUKFVN3aXRjaFByb2plY3RSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiHAoaQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QiLgobQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiDgoMR2V0TWVSZXF1ZXN0IjUKDUdldE1lUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciLXAQoWQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgpmaXJzdF9uYW1lGAIgASgJSACIAQESFgoJbGFzdF9uYW1lGAMgASgJSAGIAQESEQoJdGVuYW50X2lkGAQgASgJEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIlCgRyb2xlGAYgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19wcm9qZWN0X2lkIj8KF0NyZWF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiIQoTR2V0QWRtaW5Vc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRHZXRBZG1pblVzZXJSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyItgBChZVcGRhdGVBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKCmZpcnN0X25hbWUYAiABKAlIAIgBARIWCglsYXN0X25hbWUYAyABKAlIAYgBARIXCgphdmF0YXJfdXJsGAQgASgJSAKIAQESMQoGc3RhdHVzGAUgASgOMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyU3RhdHVzSAOIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybEIJCgdfc3RhdHVzIj8KF1VwZGF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiyQEKFUxpc3RBZG1pblVzZXJzUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARIqCgRyb2xlGAIgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUgBiAEBEjEKBnN0YXR1cxgDIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1c0gCiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc2VhcmNoQgcKBV9yb2xlQgkKB19zdGF0dXMiTgoWTGlzdEFkbWluVXNlcnNSZXNwb25zZRIlCgVpdGVtcxgBIAMoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchINCgV0b3RhbBgCIAEoBSKNAQoSR3JhbnRBY2Nlc3NSZXF1ZXN0EhUKDWFkbWluX3VzZXJfaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhcKCnByb2plY3RfaWQYAyABKAlIAIgBARIlCgRyb2xlGAQgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUINCgtfcHJvamVjdF9pZCJDChNHcmFudEFjY2Vzc1Jlc3BvbnNlEiwKBmFjY2VzcxgBIAEoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcyIoChNSZXZva2VBY2Nlc3NSZXF1ZXN0EhEKCWFjY2Vzc19pZBgBIAEoCSInChRSZXZva2VBY2Nlc3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkoKFUNyZWF0ZUN1c3RvbWVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJBChZDcmVhdGVDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiIAoSR2V0Q3VzdG9tZXJSZXF1ZXN0EgoKAmlkGAEgASgJIj4KE0dldEN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciJ+ChVVcGRhdGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkSEgoFZW1haWwYAiABKAlIAIgBARIwCgZzdGF0dXMYAyABKA4yGy5pZGVudGl0eS52MS5DdXN0b21lclN0YXR1c0gBiAEBQggKBl9lbWFpbEIJCgdfc3RhdHVzIkEKFlVwZGF0ZUN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciIjChVEZWxldGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiKQoWRGVsZXRlQ3VzdG9tZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpIBChRMaXN0Q3VzdG9tZXJzUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARIwCgZzdGF0dXMYAiABKA4yGy5pZGVudGl0eS52MS5DdXN0b21lclN0YXR1c0gBiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc2VhcmNoQgkKB19zdGF0dXMiTAoVTGlzdEN1c3RvbWVyc1Jlc3BvbnNlEiQKBWl0ZW1zGAEgAygLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISDQoFdG90YWwYAiABKAUiJAoWU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSJCChdTdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIj4KGlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIuChtTZXRDdXN0b21lclBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLcAQofQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgppbnZpdGVkX2J5GAIgASgJSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBEhcKCnNlbmRfZW1haWwYBCABKAhIAogBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAUgASgJSAOIAQFCDQoLX2ludml0ZWRfYnlCCgoIX21lc3NhZ2VCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIqYBCh5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QSOgoGc3RhdHVzGAEgASgOMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uU3RhdHVzSACIAQESEwoGc2VhcmNoGAIgASgJSAGIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zdGF0dXNCCQoHX3NlYXJjaCJgCh9MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEg0KBXRvdGFsGAIgASgFIioKHEdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkiVAodR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbiItCh9SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjMKIFJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgijwEKH1Jlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSFwoKc2VuZF9lbWFpbBgCIAEoCEgAiAEBEiAKE2FjY2VwdF91cmxfb3ZlcnJpZGUYAyABKAlIAYgBAUINCgtfc2VuZF9lbWFpbEIWChRfYWNjZXB0X3VybF9vdmVycmlkZSJ6CiBSZXNlbmRDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEhIKCmFjY2VwdF91cmwYAiABKAkSDQoFdG9rZW4YAyABKAkiMgohVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIocBCiJWYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SLAoJcHJvdmlkZXJzGAIgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIlQKH0FjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQieAogQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lchIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSFQoNcmVmcmVzaF90b2tlbhgDIAEoCSIjChNDcmVhdGVUZW5hbnRSZXF1ZXN0EgwKBG5hbWUYASABKAkiOwoUQ3JlYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ih4KEEdldFRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiOAoRR2V0VGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IngKE1VwZGF0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEi4KBnN0YXR1cxgDIAEoDjIZLmlkZW50aXR5LnYxLlRlbmFudFN0YXR1c0gBiAEBQgcKBV9uYW1lQgkKB19zdGF0dXMiOwoUVXBkYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Im4KEkxpc3RUZW5hbnRzUmVxdWVzdBIuCgZzdGF0dXMYASABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXNIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJIChNMaXN0VGVuYW50c1Jlc3BvbnNlEiIKBWl0ZW1zGAEgAygLMhMuaWRlbnRpdHkudjEuVGVuYW50Eg0KBXRvdGFsGAIgASgFIiEKE0RlbGV0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlVGVuYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKfBgoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhEKCXRlbmFudF9pZBgDIAEoCRIgChNkZWZhdWx0X2xvY2FsZV9jb2RlGAQgASgJSAGIAQESKAobZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lGAUgASgJSAKIAQESJwoaZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWUYBiABKAlIA4gBARIiChVkZWZhdWx0X2xvY2FsZV9pc19ydGwYByABKAhIBIgBARIZCgxkaXNwbGF5X25hbWUYCiABKAlIBYgBARIVCghsb2dvX3VybBgLIAEoCUgGiAEBEhoKDXByaW1hcnlfY29sb3IYDCABKAlIB4gBARIWCglmcm9tX25hbWUYDSABKAlICIgBARIVCghyZXBseV90bxgOIAEoCUgJiAEBEhoKDXN1cHBvcnRfZW1haWwYDyABKAlICogBARIZCgxhcHBfYmFzZV91cmwYECABKAlIC4gBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhIDIgBARIkChdjdXN0b21lcl9zaWdudXBfZW5hYmxlZBgeIAEoCEgNiAEBQg4KDF9kZXNjcmlwdGlvbkIWChRfZGVmYXVsdF9sb2NhbGVfY29kZUIeChxfZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lQh0KG19kZWZhdWx0X2xvY2FsZV9uYXRpdmVfbmFtZUIYChZfZGVmYXVsdF9sb2NhbGVfaXNfcnRsQg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIaChhfY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQiPgoVQ3JlYXRlUHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ih8KEUdldFByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIjsKEkdldFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCLYBAoUVXBkYXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLwoGc3RhdHVzGAQgASgOMhouaWRlbnRpdHkudjEuUHJvamVjdFN0YXR1c0gCiAEBEhkKDGRpc3BsYXlfbmFtZRgKIAEoCUgDiAEBEhUKCGxvZ29fdXJsGAsgASgJSASIAQESGgoNcHJpbWFyeV9jb2xvchgMIAEoCUgFiAEBEhYKCWZyb21fbmFtZRgNIAEoCUgGiAEBEhUKCHJlcGx5X3RvGA4gASgJSAeIAQESGgoNc3VwcG9ydF9lbWFpbBgPIAEoCUgIiAEBEhkKDGFwcF9iYXNlX3VybBgQIAEoCUgJiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBgUIAEoCEgKiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGB4gASgISAuIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19zdGF0dXNCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVVcGRhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QigwEKE0xpc3RQcm9qZWN0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEi8KBnN0YXR1cxgCIAEoDjIaLmlkZW50aXR5LnYxLlByb2plY3RTdGF0dXNIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJKChRMaXN0UHJvamVjdHNSZXNwb25zZRIjCgVpdGVtcxgBIAMoCzIULmlkZW50aXR5LnYxLlByb2plY3QSDQoFdG90YWwYAiABKAUiIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiKAoVRGVsZXRlUHJvamVjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLQoYR2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJCChlHZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ii4KGFNldERlZmF1bHRQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkIKGVNldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QixwEKF0NyZWF0ZUludml0YXRpb25SZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRITCgtwcm9qZWN0X2lkcxgDIAMoCRIlCgRyb2xlGAQgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIsCgtpbnZpdGVfdHlwZRgFIAEoDjIXLmlkZW50aXR5LnYxLkludml0ZVR5cGUSFAoHbWVzc2FnZRgGIAEoCUgAiAEBQgoKCF9tZXNzYWdlIkcKGENyZWF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiKJAQoWTGlzdEludml0YXRpb25zUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSMgoGc3RhdHVzGAIgASgOMh0uaWRlbnRpdHkudjEuSW52aXRhdGlvblN0YXR1c0gAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc3RhdHVzIlAKF0xpc3RJbnZpdGF0aW9uc1Jlc3BvbnNlEiYKBWl0ZW1zGAEgAygLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbhINCgV0b3RhbBgCIAEoBSIwChdSZXZva2VJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJldm9rZUludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkwKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIlQKGEFjY2VwdEludml0YXRpb25SZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEhIKCnNlc3Npb25faWQYAiABKAkiKgoZVmFsaWRhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCSJJChpWYWxpZGF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiKQAgoTQ3JlYXRlQXBpS2V5UmVxdWVzdBIMCgRuYW1lGAEgASgJEikKCGtleV90eXBlGAIgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIOCgZzY29wZXMYAyADKAkSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgEIAEoBUgAiAEBEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFgoOYWxsb3dlZF9tb2RlbHMYBiADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAcgAygJQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyQg0KC19leHBpcmVzX2F0IjwKFENyZWF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiHgoQR2V0QXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI5ChFHZXRBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IjMKEkxpc3RBcGlLZXlzUmVxdWVzdBINCgVsaW1pdBgBIAEoBRIOCgZvZmZzZXQYAiABKAUiSAoTTGlzdEFwaUtleXNSZXNwb25zZRIiCgVpdGVtcxgBIAMoCzITLmlkZW50aXR5LnYxLkFwaUtleRINCgV0b3RhbBgCIAEoBSLEAQoTVXBkYXRlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESFgoJaXNfYWN0aXZlGAMgASgISAGIAQESDgoGc2NvcGVzGAQgAygJEhUKDXVwZGF0ZV9zY29wZXMYBiABKAgSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgFIAEoBUgCiAEBQgcKBV9uYW1lQgwKCl9pc19hY3RpdmVCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXIiPAoUVXBkYXRlQXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSIhChNSb3RhdGVBcGlLZXlSZXF1ZXN0EgoKAmlkGAEgASgJIjwKFFJvdGF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiIQoTUmV2b2tlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSInChRSZXZva2VBcGlLZXlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIrEFCgxBdXRoUHJvdmlkZXISCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSDAoEdHlwZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSEgoKaXNfZGVmYXVsdBgHIAEoCBIQCghwcmlvcml0eRgIIAEoBRIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSACIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKEHB1Ymxpc2hlZF9jb25maWcYPCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESHgoRcHVibGlzaGVkX2VuYWJsZWQYPSABKAhIA4gBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg+IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhMKEV9wdWJsaXNoZWRfY29uZmlnQhQKEl9wdWJsaXNoZWRfZW5hYmxlZEIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiewoYTGlzdEF1dGhQcm92aWRlcnNSZXF1ZXN0EhQKB2VuYWJsZWQYASABKAhIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCgoIX2VuYWJsZWRCCQoHX3NlYXJjaCJYChlMaXN0QXV0aFByb3ZpZGVyc1Jlc3BvbnNlEiwKCXByb3ZpZGVycxgBIAMoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlchINCgV0b3RhbBgCIAEoBSIkChZHZXRBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkYKF0dldEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyItsBChlDcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgdlbmFibGVkGAUgASgISACIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgBiAEBEhUKCHByaW9yaXR5GAcgASgFSAKIAQFCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGkNyZWF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIuoBChlVcGRhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIsCgZjb25maWcYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESFAoHZW5hYmxlZBgEIAEoCEgCiAEBEhcKCmlzX2RlZmF1bHQYBSABKAhIA4gBARIVCghwcmlvcml0eRgGIAEoBUgEiAEBQgcKBV9uYW1lQgkKB19jb25maWdCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGlVwZGF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIicKGURlbGV0ZUF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiLQoaRGVsZXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIoChpQdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSKAAQobUHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIioKHFVucHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiTAodVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiMQojR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiUQokR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyKoAQoiU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJSCiNTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciI3CilDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJZCipDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiHgocRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdCIyCh1FbmFibGVkT0F1dGhQcm92aWRlcnNSZXNwb25zZRIRCglwcm92aWRlcnMYASADKAkiKgoXTWludFNlcnZpY2VUb2tlblJlcXVlc3QSDwoHcHVycG9zZRgBIAEoCSJOChhNaW50U2VydmljZVRva2VuUmVzcG9uc2USDQoFdG9rZW4YASABKAkSDwoHcHVycG9zZRgCIAEoCRISCgpleHBpcmVzX2F0GAMgASgJIo4BChZVcGRhdGVNeVByb2ZpbGVSZXF1ZXN0EhcKCmZpcnN0X25hbWUYASABKAlIAIgBARIWCglsYXN0X25hbWUYAiABKAlIAYgBARIXCgphdmF0YXJfdXJsGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybCI/ChdVcGRhdGVNeVByb2ZpbGVSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyIh8KHUxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXF1ZXN0Io0BCg9PQXV0aENvbm5lY3Rpb24SEAoIcHJvdmlkZXIYASABKAkSGAoQcHJvdmlkZXJfdXNlcl9pZBgCIAEoCRISCgVlbWFpbBgDIAEoCUgAiAEBEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX2VtYWlsIlMKHkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXNwb25zZRIxCgtjb25uZWN0aW9ucxgBIAMoCzIcLmlkZW50aXR5LnYxLk9BdXRoQ29ubmVjdGlvbiIuChpVbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCSIuChtVbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIuCh1DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBINCgVlbWFpbBgBIAEoCSIzCh5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USEQoJYXZhaWxhYmxlGAEgASgIIo8BChtDb21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QSFwoKZmlyc3RfbmFtZRgBIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgCIAEoCUgBiAEBEhUKCHBhc3N3b3JkGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUILCglfcGFzc3dvcmQiWwocQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhkKDHJlZGlyZWN0X3VybBgCIAEoCUgAiAEBQg8KDV9yZWRpcmVjdF91cmwiLQoaQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCSIuChtDcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIwChdSZXNlbmRJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJlc2VuZEludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiIKFEdldEludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkQKFUdldEludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiIqChVBY3RpdmF0ZVRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIj0KFkFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IjAKG1N1c3BlbmRUZW5hbnRBY2NvdW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQwocU3VzcGVuZFRlbmFudEFjY291bnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiKAoTQ2FuY2VsVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiOwoUQ2FuY2VsVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IiwKF1JlYWN0aXZhdGVUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI/ChhSZWFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ii0KGE1hcmtUZW5hbnRQYXN0RHVlUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQAoZTWFya1RlbmFudFBhc3REdWVSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiJwoSQ2h1cm5UZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI6ChNDaHVyblRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIeChxHZXRDdXN0b21lckF1dGhDb25maWdSZXF1ZXN0IpoCChJDdXN0b21lckF1dGhDb25maWcSEQoJYWxnb3JpdGhtGAEgASgJEhMKBmlzc3VlchgCIAEoCUgAiAEBEhUKCGF1ZGllbmNlGAMgASgJSAGIAQESNwoOa2V5X3JvdGF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGAoLc2lnbmluZ19rZXkYBSABKAlIA4gBARIsCgZjbGFpbXMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCQoHX2lzc3VlckILCglfYXVkaWVuY2VCEQoPX2tleV9yb3RhdGVkX2F0Qg4KDF9zaWduaW5nX2tleUIJCgdfY2xhaW1zIlAKHUdldEN1c3RvbWVyQXV0aENvbmZpZ1Jlc3BvbnNlEi8KBmNvbmZpZxgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVyQXV0aENvbmZpZyIrChpWZXJpZnlDdXN0b21lclRva2VuUmVxdWVzdBINCgV0b2tlbhgBIAEoCSKzAgobVmVyaWZ5Q3VzdG9tZXJUb2tlblJlc3BvbnNlEg0KBXZhbGlkGAEgASgIEhIKBWVycm9yGAIgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYAyABKAlIAYgBARISCgVlbWFpbBgEIAEoCUgCiAEBEhYKCXRlbmFudF9pZBgFIAEoCUgDiAEBEhcKCnByb2plY3RfaWQYBiABKAlIBIgBARINCgVyb2xlcxgHIAMoCRIzCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQggKBl9lcnJvckIOCgxfY3VzdG9tZXJfaWRCCAoGX2VtYWlsQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDQoLX2V4cGlyZXNfYXQiJAoiR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdCLbAQoYQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEiEKGW5hdGl2ZV9tYW5hZ2VtZW50X2VuYWJsZWQYASABKAgSIgoVZXh0ZXJuYWxfcHJvdmlkZXJfdXJsGAIgASgJSACIAQESIwoWZXh0ZXJuYWxfcHJvdmlkZXJfbmFtZRgDIAEoCUgBiAEBEhMKBnJlYXNvbhgEIAEoCUgCiAEBQhgKFl9leHRlcm5hbF9wcm92aWRlcl91cmxCGQoXX2V4dGVybmFsX3Byb3ZpZGVyX25hbWVCCQoHX3JlYXNvbiJcCiNHZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRI1CgZzdGF0dXMYASABKAsyJS5pZGVudGl0eS52MS5DdXN0b21lck1hbmFnZW1lbnRTdGF0dXMiKAoVVmFsaWRhdGVBcGlLZXlSZXF1ZXN0Eg8KB2FwaV9rZXkYASABKAkizAEKFlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIQCghrZXlfdHlwZRgFIAEoCRIOCgZzY29wZXMYBiADKAkSFgoOYWxsb3dlZF9tb2RlbHMYByADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAggAygJEhsKE3JhdGVfbGltaXRfcGVyX2hvdXIYCSABKAUiNwoUQ3VzdG9tZXJMb2dpblJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkibQoVQ3VzdG9tZXJMb2dpblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIifwoXQ3VzdG9tZXJSZWdpc3RlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSMgoMcHJvZmlsZV9kYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQg8KDV9wcm9maWxlX2RhdGEicAoYQ3VzdG9tZXJSZWdpc3RlclJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiNAobQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiSwocQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCSIqChlDdXN0b21lclJlcXVlc3RPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIioKGkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEgwKBHNlbnQYASABKAgiOwoYQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCG90cF9jb2RlGAIgASgJInEKGUN1c3RvbWVyVmVyaWZ5T1RQUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSJwoIY3VzdG9tZXIYAyABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciI0CiNDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBINCgVlbWFpbBgBIAEoCSI0CiRDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDAoEc2VudBgBIAEoCCJDChxDdXN0b21lclJlc2V0UGFzc3dvcmRSZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIwCh1DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIItkBChlTdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhQKDHByb3ZpZGVyX2tleRgCIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCRIQCghpZF90b2tlbhgFIAEoCRIOCgZzY29wZXMYBiABKAkSMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUINCgtfZXhwaXJlc19hdCIcChpTdG9yZVByb3ZpZGVyVG9rZW5SZXNwb25zZSJEChdHZXRQcm92aWRlclRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIUCgxwcm92aWRlcl9rZXkYAiABKAkirQEKGEdldFByb3ZpZGVyVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRIQCghpZF90b2tlbhgDIAEoCRIOCgZzY29wZXMYBCABKAkSMwoKZXhwaXJlc19hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUINCgtfZXhwaXJlc19hdCIyChtEZWxldGVQcm92aWRlclRva2Vuc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiHgocRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXNwb25zZSqxAQoPQWRtaW5Vc2VyU3RhdHVzEiEKHUFETUlOX1VTRVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHAoYQURNSU5fVVNFUl9TVEFUVVNfQUNUSVZFEAESHQoZQURNSU5fVVNFUl9TVEFUVVNfUEVORElORxACEh8KG0FETUlOX1VTRVJfU1RBVFVTX1NVU1BFTkRFRBADEh0KGUFETUlOX1VTRVJfU1RBVFVTX0RFTEVURUQQBCqJAQoOQ3VzdG9tZXJTdGF0dXMSHwobQ1VTVE9NRVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWQ1VTVE9NRVJfU1RBVFVTX0FDVElWRRABEhsKF0NVU1RPTUVSX1NUQVRVU19QRU5ESU5HEAISHQoZQ1VTVE9NRVJfU1RBVFVTX1NVU1BFTkRFRBADKtkBCgxUZW5hbnRTdGF0dXMSHQoZVEVOQU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEh8KG1RFTkFOVF9TVEFUVVNfUEVORElOR19TRVRVUBABEhgKFFRFTkFOVF9TVEFUVVNfQUNUSVZFEAISGgoWVEVOQU5UX1NUQVRVU19QQVNUX0RVRRADEhsKF1RFTkFOVF9TVEFUVVNfU1VTUEVOREVEEAQSGwoXVEVOQU5UX1NUQVRVU19DQU5DRUxMRUQQBRIZChVURU5BTlRfU1RBVFVTX0NIVVJORUQQBipmCg1Qcm9qZWN0U3RhdHVzEh4KGlBST0pFQ1RfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUFJPSkVDVF9TVEFUVVNfQUNUSVZFEAESGgoWUFJPSkVDVF9TVEFUVVNfREVMRVRFRBACKqYBCgpBY2Nlc3NSb2xlEhsKF0FDQ0VTU19ST0xFX1VOU1BFQ0lGSUVEEAASHAoYQUNDRVNTX1JPTEVfVEVOQU5UX09XTkVSEAESHQoZQUNDRVNTX1JPTEVfUFJPSkVDVF9BRE1JThACEh4KGkFDQ0VTU19ST0xFX1BST0pFQ1RfRURJVE9SEAMSHgoaQUNDRVNTX1JPTEVfUFJPSkVDVF9WSUVXRVIQBCpkCgpJbnZpdGVUeXBlEhsKF0lOVklURV9UWVBFX1VOU1BFQ0lGSUVEEAASHAoYSU5WSVRFX1RZUEVfVEVOQU5UX09XTkVSEAESGwoXSU5WSVRFX1RZUEVfVEVBTV9NRU1CRVIQAiqyAQoQSW52aXRhdGlvblN0YXR1cxIhCh1JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGUlOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARIeChpJTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEh0KGUlOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxIdChlJTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQq5wEKGEN1c3RvbWVySW52aXRhdGlvblN0YXR1cxIqCiZDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX1BFTkRJTkcQARInCiNDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19BQ0NFUFRFRBACEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX0VYUElSRUQQAxImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19SRVZPS0VEEAQqXAoKQXBpS2V5VHlwZRIcChhBUElfS0VZX1RZUEVfVU5TUEVDSUZJRUQQABIXChNBUElfS0VZX1RZUEVfUFVCTElDEAESFwoTQVBJX0tFWV9UWVBFX1NFQ1JFVBACMqZNCg9JZGVudGl0eVNlcnZpY2USPgoFTG9naW4SGS5pZGVudGl0eS52MS5Mb2dpblJlcXVlc3QaGi5pZGVudGl0eS52MS5Mb2dpblJlc3BvbnNlElMKDExvZ2luV2l0aE9UUBIgLmlkZW50aXR5LnYxLkxvZ2luV2l0aE9UUFJlcXVlc3QaIS5pZGVudGl0eS52MS5Mb2dpbldpdGhPVFBSZXNwb25zZRJNCgpSZXF1ZXN0T1RQEh4uaWRlbnRpdHkudjEuUmVxdWVzdE9UUFJlcXVlc3QaHy5pZGVudGl0eS52MS5SZXF1ZXN0T1RQUmVzcG9uc2USQQoGTG9nb3V0EhouaWRlbnRpdHkudjEuTG9nb3V0UmVxdWVzdBobLmlkZW50aXR5LnYxLkxvZ291dFJlc3BvbnNlEkcKCFJlZ2lzdGVyEhwuaWRlbnRpdHkudjEuUmVnaXN0ZXJSZXF1ZXN0Gh0uaWRlbnRpdHkudjEuUmVnaXN0ZXJSZXNwb25zZRJQCgtWZXJpZnlFbWFpbBIfLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsUmVxdWVzdBogLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsUmVzcG9uc2USdAoXUmVzZW5kVmVyaWZpY2F0aW9uRW1haWwSKy5pZGVudGl0eS52MS5SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlcXVlc3QaLC5pZGVudGl0eS52MS5SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEnoKGVNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGUSLS5pZGVudGl0eS52MS5TZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVxdWVzdBouLmlkZW50aXR5LnYxLlNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGVSZXNwb25zZRJcCg9WZXJpZnlFbWFpbENvZGUSIy5pZGVudGl0eS52MS5WZXJpZnlFbWFpbENvZGVSZXF1ZXN0GiQuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxDb2RlUmVzcG9uc2USawoUUmVxdWVzdFBhc3N3b3JkUmVzZXQSKC5pZGVudGl0eS52MS5SZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QaKS5pZGVudGl0eS52MS5SZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlElYKDVJlc2V0UGFzc3dvcmQSIS5pZGVudGl0eS52MS5SZXNldFBhc3N3b3JkUmVxdWVzdBoiLmlkZW50aXR5LnYxLlJlc2V0UGFzc3dvcmRSZXNwb25zZRJZCg5VcGRhdGVQYXNzd29yZBIiLmlkZW50aXR5LnYxLlVwZGF0ZVBhc3N3b3JkUmVxdWVzdBojLmlkZW50aXR5LnYxLlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USUwoMUmVmcmVzaFRva2VuEiAuaWRlbnRpdHkudjEuUmVmcmVzaFRva2VuUmVxdWVzdBohLmlkZW50aXR5LnYxLlJlZnJlc2hUb2tlblJlc3BvbnNlEmIKEUdldFNlc3Npb25Db250ZXh0EiUuaWRlbnRpdHkudjEuR2V0U2Vzc2lvbkNvbnRleHRSZXF1ZXN0GiYuaWRlbnRpdHkudjEuR2V0U2Vzc2lvbkNvbnRleHRSZXNwb25zZRJTCgxTd2l0Y2hUZW5hbnQSIC5pZGVudGl0eS52MS5Td2l0Y2hUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuU3dpdGNoVGVuYW50UmVzcG9uc2USVgoNU3dpdGNoUHJvamVjdBIhLmlkZW50aXR5LnYxLlN3aXRjaFByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuU3dpdGNoUHJvamVjdFJlc3BvbnNlEmgKE0NsZWFyU2Vzc2lvbkNvbnRleHQSJy5pZGVudGl0eS52MS5DbGVhclNlc3Npb25Db250ZXh0UmVxdWVzdBooLmlkZW50aXR5LnYxLkNsZWFyU2Vzc2lvbkNvbnRleHRSZXNwb25zZRI+CgVHZXRNZRIZLmlkZW50aXR5LnYxLkdldE1lUmVxdWVzdBoaLmlkZW50aXR5LnYxLkdldE1lUmVzcG9uc2USXAoPQ3JlYXRlQWRtaW5Vc2VyEiMuaWRlbnRpdHkudjEuQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBokLmlkZW50aXR5LnYxLkNyZWF0ZUFkbWluVXNlclJlc3BvbnNlElMKDEdldEFkbWluVXNlchIgLmlkZW50aXR5LnYxLkdldEFkbWluVXNlclJlcXVlc3QaIS5pZGVudGl0eS52MS5HZXRBZG1pblVzZXJSZXNwb25zZRJcCg9VcGRhdGVBZG1pblVzZXISIy5pZGVudGl0eS52MS5VcGRhdGVBZG1pblVzZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuVXBkYXRlQWRtaW5Vc2VyUmVzcG9uc2USWQoOTGlzdEFkbWluVXNlcnMSIi5pZGVudGl0eS52MS5MaXN0QWRtaW5Vc2Vyc1JlcXVlc3QaIy5pZGVudGl0eS52MS5MaXN0QWRtaW5Vc2Vyc1Jlc3BvbnNlElAKC0dyYW50QWNjZXNzEh8uaWRlbnRpdHkudjEuR3JhbnRBY2Nlc3NSZXF1ZXN0GiAuaWRlbnRpdHkudjEuR3JhbnRBY2Nlc3NSZXNwb25zZRJTCgxSZXZva2VBY2Nlc3MSIC5pZGVudGl0eS52MS5SZXZva2VBY2Nlc3NSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUmV2b2tlQWNjZXNzUmVzcG9uc2USWQoOQ3JlYXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lclJlc3BvbnNlElAKC0dldEN1c3RvbWVyEh8uaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJSZXF1ZXN0GiAuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJSZXNwb25zZRJZCg5VcGRhdGVDdXN0b21lchIiLmlkZW50aXR5LnYxLlVwZGF0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLlVwZGF0ZUN1c3RvbWVyUmVzcG9uc2USWQoORGVsZXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5EZWxldGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5EZWxldGVDdXN0b21lclJlc3BvbnNlElYKDUxpc3RDdXN0b21lcnMSIS5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJzUmVxdWVzdBoiLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lcnNSZXNwb25zZRJcCg9TdXNwZW5kQ3VzdG9tZXISIy5pZGVudGl0eS52MS5TdXNwZW5kQ3VzdG9tZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuU3VzcGVuZEN1c3RvbWVyUmVzcG9uc2USaAoTU2V0Q3VzdG9tZXJQYXNzd29yZBInLmlkZW50aXR5LnYxLlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0GiguaWRlbnRpdHkudjEuU2V0Q3VzdG9tZXJQYXNzd29yZFJlc3BvbnNlEncKGENyZWF0ZUN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ0ChdMaXN0Q3VzdG9tZXJJbnZpdGF0aW9ucxIrLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lckludml0YXRpb25zUmVxdWVzdBosLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lckludml0YXRpb25zUmVzcG9uc2USbgoVR2V0Q3VzdG9tZXJJbnZpdGF0aW9uEikuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBoqLmlkZW50aXR5LnYxLkdldEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEncKGFJldm9rZUN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLlJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhSZXNlbmRDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5SZXNlbmRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USfQoaVmFsaWRhdGVDdXN0b21lckludml0YXRpb24SLi5pZGVudGl0eS52MS5WYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLy5pZGVudGl0eS52MS5WYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEncKGEFjY2VwdEN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLkFjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5BY2NlcHRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJTCgxDcmVhdGVUZW5hbnQSIC5pZGVudGl0eS52MS5DcmVhdGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuQ3JlYXRlVGVuYW50UmVzcG9uc2USSgoJR2V0VGVuYW50Eh0uaWRlbnRpdHkudjEuR2V0VGVuYW50UmVxdWVzdBoeLmlkZW50aXR5LnYxLkdldFRlbmFudFJlc3BvbnNlElMKDFVwZGF0ZVRlbmFudBIgLmlkZW50aXR5LnYxLlVwZGF0ZVRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5VcGRhdGVUZW5hbnRSZXNwb25zZRJQCgtMaXN0VGVuYW50cxIfLmlkZW50aXR5LnYxLkxpc3RUZW5hbnRzUmVxdWVzdBogLmlkZW50aXR5LnYxLkxpc3RUZW5hbnRzUmVzcG9uc2USUwoMRGVsZXRlVGVuYW50EiAuaWRlbnRpdHkudjEuRGVsZXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkRlbGV0ZVRlbmFudFJlc3BvbnNlElYKDUNyZWF0ZVByb2plY3QSIS5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJNCgpHZXRQcm9qZWN0Eh4uaWRlbnRpdHkudjEuR2V0UHJvamVjdFJlcXVlc3QaHy5pZGVudGl0eS52MS5HZXRQcm9qZWN0UmVzcG9uc2USVgoNVXBkYXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuVXBkYXRlUHJvamVjdFJlc3BvbnNlElMKDExpc3RQcm9qZWN0cxIgLmlkZW50aXR5LnYxLkxpc3RQcm9qZWN0c1JlcXVlc3QaIS5pZGVudGl0eS52MS5MaXN0UHJvamVjdHNSZXNwb25zZRJWCg1EZWxldGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5EZWxldGVQcm9qZWN0UmVzcG9uc2USYgoRR2V0RGVmYXVsdFByb2plY3QSJS5pZGVudGl0eS52MS5HZXREZWZhdWx0UHJvamVjdFJlcXVlc3QaJi5pZGVudGl0eS52MS5HZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEmIKEVNldERlZmF1bHRQcm9qZWN0EiUuaWRlbnRpdHkudjEuU2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0GiYuaWRlbnRpdHkudjEuU2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRJfChBDcmVhdGVJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuQ3JlYXRlSW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5DcmVhdGVJbnZpdGF0aW9uUmVzcG9uc2USXAoPTGlzdEludml0YXRpb25zEiMuaWRlbnRpdHkudjEuTGlzdEludml0YXRpb25zUmVxdWVzdBokLmlkZW50aXR5LnYxLkxpc3RJbnZpdGF0aW9uc1Jlc3BvbnNlEl8KEFJldm9rZUludml0YXRpb24SJC5pZGVudGl0eS52MS5SZXZva2VJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLlJldm9rZUludml0YXRpb25SZXNwb25zZRJfChBBY2NlcHRJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuQWNjZXB0SW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5BY2NlcHRJbnZpdGF0aW9uUmVzcG9uc2USZQoSVmFsaWRhdGVJbnZpdGF0aW9uEiYuaWRlbnRpdHkudjEuVmFsaWRhdGVJbnZpdGF0aW9uUmVxdWVzdBonLmlkZW50aXR5LnYxLlZhbGlkYXRlSW52aXRhdGlvblJlc3BvbnNlElMKDENyZWF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLkNyZWF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5DcmVhdGVBcGlLZXlSZXNwb25zZRJKCglHZXRBcGlLZXkSHS5pZGVudGl0eS52MS5HZXRBcGlLZXlSZXF1ZXN0Gh4uaWRlbnRpdHkudjEuR2V0QXBpS2V5UmVzcG9uc2USUAoLTGlzdEFwaUtleXMSHy5pZGVudGl0eS52MS5MaXN0QXBpS2V5c1JlcXVlc3QaIC5pZGVudGl0eS52MS5MaXN0QXBpS2V5c1Jlc3BvbnNlElMKDFVwZGF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLlVwZGF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5VcGRhdGVBcGlLZXlSZXNwb25zZRJTCgxSb3RhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5Sb3RhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUm90YXRlQXBpS2V5UmVzcG9uc2USUwoMUmV2b2tlQXBpS2V5EiAuaWRlbnRpdHkudjEuUmV2b2tlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlJldm9rZUFwaUtleVJlc3BvbnNlEmIKEUxpc3RBdXRoUHJvdmlkZXJzEiUuaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlcnNSZXF1ZXN0GiYuaWRlbnRpdHkudjEuTGlzdEF1dGhQcm92aWRlcnNSZXNwb25zZRJcCg9HZXRBdXRoUHJvdmlkZXISIy5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSQ3JlYXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuQ3JlYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLkNyZWF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmUKElVwZGF0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLlVwZGF0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5VcGRhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJEZWxldGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5EZWxldGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuRGVsZXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USaAoTUHVibGlzaEF1dGhQcm92aWRlchInLmlkZW50aXR5LnYxLlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0GiguaWRlbnRpdHkudjEuUHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEm4KFVVucHVibGlzaEF1dGhQcm92aWRlchIpLmlkZW50aXR5LnYxLlVucHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QaKi5pZGVudGl0eS52MS5VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRKDAQocR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1cxIwLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjEuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoABChtTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2gSLy5pZGVudGl0eS52MS5TY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXF1ZXN0GjAuaWRlbnRpdHkudjEuU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USlQEKIkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2gSNi5pZGVudGl0eS52MS5DYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBo3LmlkZW50aXR5LnYxLkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRJuChVFbmFibGVkT0F1dGhQcm92aWRlcnMSKS5pZGVudGl0eS52MS5FbmFibGVkT0F1dGhQcm92aWRlcnNSZXF1ZXN0GiouaWRlbnRpdHkudjEuRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVzcG9uc2USXwoQTWludFNlcnZpY2VUb2tlbhIkLmlkZW50aXR5LnYxLk1pbnRTZXJ2aWNlVG9rZW5SZXF1ZXN0GiUuaWRlbnRpdHkudjEuTWludFNlcnZpY2VUb2tlblJlc3BvbnNlElwKD1VwZGF0ZU15UHJvZmlsZRIjLmlkZW50aXR5LnYxLlVwZGF0ZU15UHJvZmlsZVJlcXVlc3QaJC5pZGVudGl0eS52MS5VcGRhdGVNeVByb2ZpbGVSZXNwb25zZRJxChZMaXN0TXlPQXV0aENvbm5lY3Rpb25zEiouaWRlbnRpdHkudjEuTGlzdE15T0F1dGhDb25uZWN0aW9uc1JlcXVlc3QaKy5pZGVudGl0eS52MS5MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVzcG9uc2USaAoTVW5saW5rT0F1dGhQcm92aWRlchInLmlkZW50aXR5LnYxLlVubGlua09BdXRoUHJvdmlkZXJSZXF1ZXN0GiguaWRlbnRpdHkudjEuVW5saW5rT0F1dGhQcm92aWRlclJlc3BvbnNlEnEKFkNoZWNrRW1haWxBdmFpbGFiaWxpdHkSKi5pZGVudGl0eS52MS5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBorLmlkZW50aXR5LnYxLkNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXNwb25zZRJrChRDb21wbGV0ZUFjY291bnRTZXR1cBIoLmlkZW50aXR5LnYxLkNvbXBsZXRlQWNjb3VudFNldHVwUmVxdWVzdBopLmlkZW50aXR5LnYxLkNvbXBsZXRlQWNjb3VudFNldHVwUmVzcG9uc2USaAoTQ3JlYXRlU2lnbnVwU2Vzc2lvbhInLmlkZW50aXR5LnYxLkNyZWF0ZVNpZ251cFNlc3Npb25SZXF1ZXN0GiguaWRlbnRpdHkudjEuQ3JlYXRlU2lnbnVwU2Vzc2lvblJlc3BvbnNlEl8KEFJlc2VuZEludml0YXRpb24SJC5pZGVudGl0eS52MS5SZXNlbmRJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLlJlc2VuZEludml0YXRpb25SZXNwb25zZRJWCg1HZXRJbnZpdGF0aW9uEiEuaWRlbnRpdHkudjEuR2V0SW52aXRhdGlvblJlcXVlc3QaIi5pZGVudGl0eS52MS5HZXRJbnZpdGF0aW9uUmVzcG9uc2USWQoOQWN0aXZhdGVUZW5hbnQSIi5pZGVudGl0eS52MS5BY3RpdmF0ZVRlbmFudFJlcXVlc3QaIy5pZGVudGl0eS52MS5BY3RpdmF0ZVRlbmFudFJlc3BvbnNlEmsKFFN1c3BlbmRUZW5hbnRBY2NvdW50EiguaWRlbnRpdHkudjEuU3VzcGVuZFRlbmFudEFjY291bnRSZXF1ZXN0GikuaWRlbnRpdHkudjEuU3VzcGVuZFRlbmFudEFjY291bnRSZXNwb25zZRJTCgxDYW5jZWxUZW5hbnQSIC5pZGVudGl0eS52MS5DYW5jZWxUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuQ2FuY2VsVGVuYW50UmVzcG9uc2USXwoQUmVhY3RpdmF0ZVRlbmFudBIkLmlkZW50aXR5LnYxLlJlYWN0aXZhdGVUZW5hbnRSZXF1ZXN0GiUuaWRlbnRpdHkudjEuUmVhY3RpdmF0ZVRlbmFudFJlc3BvbnNlEmIKEU1hcmtUZW5hbnRQYXN0RHVlEiUuaWRlbnRpdHkudjEuTWFya1RlbmFudFBhc3REdWVSZXF1ZXN0GiYuaWRlbnRpdHkudjEuTWFya1RlbmFudFBhc3REdWVSZXNwb25zZRJQCgtDaHVyblRlbmFudBIfLmlkZW50aXR5LnYxLkNodXJuVGVuYW50UmVxdWVzdBogLmlkZW50aXR5LnYxLkNodXJuVGVuYW50UmVzcG9uc2USbgoVR2V0Q3VzdG9tZXJBdXRoQ29uZmlnEikuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJBdXRoQ29uZmlnUmVxdWVzdBoqLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyQXV0aENvbmZpZ1Jlc3BvbnNlEmgKE1ZlcmlmeUN1c3RvbWVyVG9rZW4SJy5pZGVudGl0eS52MS5WZXJpZnlDdXN0b21lclRva2VuUmVxdWVzdBooLmlkZW50aXR5LnYxLlZlcmlmeUN1c3RvbWVyVG9rZW5SZXNwb25zZRKAAQobR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEi8uaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdBowLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1Jlc3BvbnNlElkKDlZhbGlkYXRlQXBpS2V5EiIuaWRlbnRpdHkudjEuVmFsaWRhdGVBcGlLZXlSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVmFsaWRhdGVBcGlLZXlSZXNwb25zZRJWCg1DdXN0b21lckxvZ2luEiEuaWRlbnRpdHkudjEuQ3VzdG9tZXJMb2dpblJlcXVlc3QaIi5pZGVudGl0eS52MS5DdXN0b21lckxvZ2luUmVzcG9uc2USXwoQQ3VzdG9tZXJSZWdpc3RlchIkLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVnaXN0ZXJSZXF1ZXN0GiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWdpc3RlclJlc3BvbnNlEmsKFEN1c3RvbWVyUmVmcmVzaFRva2VuEiguaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXF1ZXN0GikuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXNwb25zZRJlChJDdXN0b21lclJlcXVlc3RPVFASJi5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RPVFBSZXF1ZXN0GicuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0T1RQUmVzcG9uc2USYgoRQ3VzdG9tZXJWZXJpZnlPVFASJS5pZGVudGl0eS52MS5DdXN0b21lclZlcmlmeU9UUFJlcXVlc3QaJi5pZGVudGl0eS52MS5DdXN0b21lclZlcmlmeU9UUFJlc3BvbnNlEoMBChxDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0EjAuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QaMS5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USbgoVQ3VzdG9tZXJSZXNldFBhc3N3b3JkEikuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVxdWVzdBoqLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVzZXRQYXNzd29yZFJlc3BvbnNlEmUKElN0b3JlUHJvdmlkZXJUb2tlbhImLmlkZW50aXR5LnYxLlN0b3JlUHJvdmlkZXJUb2tlblJlcXVlc3QaJy5pZGVudGl0eS52MS5TdG9yZVByb3ZpZGVyVG9rZW5SZXNwb25zZRJfChBHZXRQcm92aWRlclRva2VuEiQuaWRlbnRpdHkudjEuR2V0UHJvdmlkZXJUb2tlblJlcXVlc3QaJS5pZGVudGl0eS52MS5HZXRQcm92aWRlclRva2VuUmVzcG9uc2USawoURGVsZXRlUHJvdmlkZXJUb2tlbnMSKC5pZGVudGl0eS52MS5EZWxldGVQcm92aWRlclRva2Vuc1JlcXVlc3QaKS5pZGVudGl0eS52MS5EZWxldGVQcm92aWRlclRva2Vuc1Jlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pZGVudGl0eS92MTtpZGVudGl0eXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish]);
|
|
13
|
+
fileDesc("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEijwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEiwKBnN0YXR1cxgUIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1cxI6ChFlbWFpbF92ZXJpZmllZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI2Cg1sYXN0X2xvZ2luX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiwKBmFjY2VzcxgoIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcxIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhQKEl9lbWFpbF92ZXJpZmllZF9hdEIQCg5fbGFzdF9sb2dpbl9hdCLuAQoPQWRtaW5Vc2VyQWNjZXNzEgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhcKCnByb2plY3RfaWQYBCABKAlIAIgBARIlCgRyb2xlGAUgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIuCgpncmFudGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpncmFudGVkX2J5GDMgASgJSAGIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2dyYW50ZWRfYnki9QIKCEN1c3RvbWVyEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEisKBnN0YXR1cxgUIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzEjoKEWVtYWlsX3ZlcmlmaWVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWxhc3RfbG9naW5fYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCFAoSX2VtYWlsX3ZlcmlmaWVkX2F0QhAKDl9sYXN0X2xvZ2luX2F0IvQCCgZUZW5hbnQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIpCgZzdGF0dXMYFCABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXMSNQoMc3VzcGVuZGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEkIKGWNhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoTZGF0YV9yZXRlbnRpb25fZGF5cxgeIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fc3VzcGVuZGVkX2F0QhwKGl9jYW5jZWxsYXRpb25fc2NoZWR1bGVkX2F0It4GCgdQcm9qZWN0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIqCgZzdGF0dXMYFCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzEj4KFWRlbGV0aW9uX3NjaGVkdWxlZF9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpjcmVhdGVkX2J5GCggASgJSAKIAQESFwoKdXBkYXRlZF9ieRgpIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKDGRpc3BsYXlfbmFtZRg8IAEoCUgEiAEBEhUKCGxvZ29fdXJsGD0gASgJSAWIAQESGgoNcHJpbWFyeV9jb2xvchg+IAEoCUgGiAEBEhYKCWZyb21fbmFtZRg/IAEoCUgHiAEBEhUKCHJlcGx5X3RvGEAgASgJSAiIAQESGgoNc3VwcG9ydF9lbWFpbBhBIAEoCUgJiAEBEhkKDGFwcF9iYXNlX3VybBhCIAEoCUgKiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBhGIAEoCEgLiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGFAgASgISAyIAQFCDgoMX2Rlc2NyaXB0aW9uQhgKFl9kZWxldGlvbl9zY2hlZHVsZWRfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCKvAwoKSW52aXRhdGlvbhIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEwoLcHJvamVjdF9pZHMYBCADKAkSJQoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGUSLAoLaW52aXRlX3R5cGUYBiABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhIKCmludml0ZWRfYnkYByABKAkSFAoHbWVzc2FnZRgIIAEoCUgAiAEBEi0KBnN0YXR1cxgUIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0IukDChJDdXN0b21lckludml0YXRpb24SCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSFwoKaW52aXRlZF9ieRgFIAEoCUgAiAEBEhQKB21lc3NhZ2UYBiABKAlIAYgBARI1CgZzdGF0dXMYFCABKA4yJS5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESIQoUYWNjZXB0ZWRfY3VzdG9tZXJfaWQYICABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfaW52aXRlZF9ieUIKCghfbWVzc2FnZUIOCgxfYWNjZXB0ZWRfYXRCFwoVX2FjY2VwdGVkX2N1c3RvbWVyX2lkItkECgZBcGlLZXkSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRISCgprZXlfcHJlZml4GAUgASgJEikKCGtleV90eXBlGAYgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIUCgdyYXdfa2V5GAogASgJSACIAQESEQoJaXNfYWN0aXZlGBQgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYFSABKAVIAYgBARIzCgpleHBpcmVzX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEg4KBnNjb3BlcxgXIAMoCRIuCghtZXRhZGF0YRgYIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARI1CgxsYXN0X3VzZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEwoLdXNhZ2VfY291bnQYHyABKAUSEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfcmF3X2tleUIWChRfcmF0ZV9saW1pdF9wZXJfaG91ckINCgtfZXhwaXJlc19hdEILCglfbWV0YWRhdGFCDwoNX2xhc3RfdXNlZF9hdCKWAgoOU2Vzc2lvbkNvbnRleHQSFgoJdGVuYW50X2lkGAEgASgJSACIAQESFwoKcHJvamVjdF9pZBgCIAEoCUgBiAEBEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISGwoOZWZmZWN0aXZlX3JvbGUYBCABKAlIAogBARIuChFhdmFpbGFibGVfdGVuYW50cxgFIAMoCzITLmlkZW50aXR5LnYxLlRlbmFudBIwChJhdmFpbGFibGVfcHJvamVjdHMYBiADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0QgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEQoPX2VmZmVjdGl2ZV9yb2xlIn0KDExvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCJfCg1Mb2dpblJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIifwoTTG9naW5XaXRoT1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRILCgNvdHAYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiZgoUTG9naW5XaXRoT1RQUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciJwChFSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCIlChJSZXF1ZXN0T1RQUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIPCg1Mb2dvdXRSZXF1ZXN0IiEKDkxvZ291dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgitQEKD1JlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQESKgoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVIAogBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQgcKBV9yb2xlIjgKEFJlZ2lzdGVyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIjChJWZXJpZnlFbWFpbFJlcXVlc3QSDQoFdG9rZW4YASABKAkiJgoTVmVyaWZ5RW1haWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKHlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIyCh9SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMQogU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QSDQoFZW1haWwYASABKAkiNAohU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNQoWVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRjb2RlGAIgASgJIjwKF1ZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIdmVyaWZpZWQYAiABKAgiLAobUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIi8KHFJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI7ChRSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKAoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRwoVVXBkYXRlUGFzc3dvcmRSZXF1ZXN0EhgKEGN1cnJlbnRfcGFzc3dvcmQYASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIikKFlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChNSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiQwoUUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiGgoYR2V0U2Vzc2lvbkNvbnRleHRSZXF1ZXN0IkkKGUdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IigKE1N3aXRjaFRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkQKFFN3aXRjaFRlbmFudFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIqChRTd2l0Y2hQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkUKFVN3aXRjaFByb2plY3RSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiHAoaQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QiLgobQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiDgoMR2V0TWVSZXF1ZXN0IjUKDUdldE1lUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciLXAQoWQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgpmaXJzdF9uYW1lGAIgASgJSACIAQESFgoJbGFzdF9uYW1lGAMgASgJSAGIAQESEQoJdGVuYW50X2lkGAQgASgJEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIlCgRyb2xlGAYgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19wcm9qZWN0X2lkIj8KF0NyZWF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiIQoTR2V0QWRtaW5Vc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRHZXRBZG1pblVzZXJSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyItgBChZVcGRhdGVBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKCmZpcnN0X25hbWUYAiABKAlIAIgBARIWCglsYXN0X25hbWUYAyABKAlIAYgBARIXCgphdmF0YXJfdXJsGAQgASgJSAKIAQESMQoGc3RhdHVzGAUgASgOMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyU3RhdHVzSAOIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybEIJCgdfc3RhdHVzIj8KF1VwZGF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiyQEKFUxpc3RBZG1pblVzZXJzUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARIqCgRyb2xlGAIgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUgBiAEBEjEKBnN0YXR1cxgDIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1c0gCiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc2VhcmNoQgcKBV9yb2xlQgkKB19zdGF0dXMiTgoWTGlzdEFkbWluVXNlcnNSZXNwb25zZRIlCgVpdGVtcxgBIAMoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchINCgV0b3RhbBgCIAEoBSKNAQoSR3JhbnRBY2Nlc3NSZXF1ZXN0EhUKDWFkbWluX3VzZXJfaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhcKCnByb2plY3RfaWQYAyABKAlIAIgBARIlCgRyb2xlGAQgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUINCgtfcHJvamVjdF9pZCJDChNHcmFudEFjY2Vzc1Jlc3BvbnNlEiwKBmFjY2VzcxgBIAEoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcyIoChNSZXZva2VBY2Nlc3NSZXF1ZXN0EhEKCWFjY2Vzc19pZBgBIAEoCSInChRSZXZva2VBY2Nlc3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkoKFUNyZWF0ZUN1c3RvbWVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJBChZDcmVhdGVDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiIAoSR2V0Q3VzdG9tZXJSZXF1ZXN0EgoKAmlkGAEgASgJIj4KE0dldEN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciJ+ChVVcGRhdGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkSEgoFZW1haWwYAiABKAlIAIgBARIwCgZzdGF0dXMYAyABKA4yGy5pZGVudGl0eS52MS5DdXN0b21lclN0YXR1c0gBiAEBQggKBl9lbWFpbEIJCgdfc3RhdHVzIkEKFlVwZGF0ZUN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciIjChVEZWxldGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiKQoWRGVsZXRlQ3VzdG9tZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpIBChRMaXN0Q3VzdG9tZXJzUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARIwCgZzdGF0dXMYAiABKA4yGy5pZGVudGl0eS52MS5DdXN0b21lclN0YXR1c0gBiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc2VhcmNoQgkKB19zdGF0dXMiTAoVTGlzdEN1c3RvbWVyc1Jlc3BvbnNlEiQKBWl0ZW1zGAEgAygLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISDQoFdG90YWwYAiABKAUiJAoWU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSJCChdTdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIj4KGlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIuChtTZXRDdXN0b21lclBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLcAQofQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgppbnZpdGVkX2J5GAIgASgJSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBEhcKCnNlbmRfZW1haWwYBCABKAhIAogBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAUgASgJSAOIAQFCDQoLX2ludml0ZWRfYnlCCgoIX21lc3NhZ2VCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIqYBCh5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QSOgoGc3RhdHVzGAEgASgOMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uU3RhdHVzSACIAQESEwoGc2VhcmNoGAIgASgJSAGIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zdGF0dXNCCQoHX3NlYXJjaCJgCh9MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEg0KBXRvdGFsGAIgASgFIioKHEdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkiVAodR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbiItCh9SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjMKIFJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgijwEKH1Jlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSFwoKc2VuZF9lbWFpbBgCIAEoCEgAiAEBEiAKE2FjY2VwdF91cmxfb3ZlcnJpZGUYAyABKAlIAYgBAUINCgtfc2VuZF9lbWFpbEIWChRfYWNjZXB0X3VybF9vdmVycmlkZSJ6CiBSZXNlbmRDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEhIKCmFjY2VwdF91cmwYAiABKAkSDQoFdG9rZW4YAyABKAkiMgohVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIocBCiJWYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SLAoJcHJvdmlkZXJzGAIgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIlQKH0FjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQieAogQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lchIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSFQoNcmVmcmVzaF90b2tlbhgDIAEoCSIjChNDcmVhdGVUZW5hbnRSZXF1ZXN0EgwKBG5hbWUYASABKAkiOwoUQ3JlYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ih4KEEdldFRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiOAoRR2V0VGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IngKE1VwZGF0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEi4KBnN0YXR1cxgDIAEoDjIZLmlkZW50aXR5LnYxLlRlbmFudFN0YXR1c0gBiAEBQgcKBV9uYW1lQgkKB19zdGF0dXMiOwoUVXBkYXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Im4KEkxpc3RUZW5hbnRzUmVxdWVzdBIuCgZzdGF0dXMYASABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXNIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJIChNMaXN0VGVuYW50c1Jlc3BvbnNlEiIKBWl0ZW1zGAEgAygLMhMuaWRlbnRpdHkudjEuVGVuYW50Eg0KBXRvdGFsGAIgASgFIiEKE0RlbGV0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlVGVuYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKfBgoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhEKCXRlbmFudF9pZBgDIAEoCRIgChNkZWZhdWx0X2xvY2FsZV9jb2RlGAQgASgJSAGIAQESKAobZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lGAUgASgJSAKIAQESJwoaZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWUYBiABKAlIA4gBARIiChVkZWZhdWx0X2xvY2FsZV9pc19ydGwYByABKAhIBIgBARIZCgxkaXNwbGF5X25hbWUYCiABKAlIBYgBARIVCghsb2dvX3VybBgLIAEoCUgGiAEBEhoKDXByaW1hcnlfY29sb3IYDCABKAlIB4gBARIWCglmcm9tX25hbWUYDSABKAlICIgBARIVCghyZXBseV90bxgOIAEoCUgJiAEBEhoKDXN1cHBvcnRfZW1haWwYDyABKAlICogBARIZCgxhcHBfYmFzZV91cmwYECABKAlIC4gBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhIDIgBARIkChdjdXN0b21lcl9zaWdudXBfZW5hYmxlZBgeIAEoCEgNiAEBQg4KDF9kZXNjcmlwdGlvbkIWChRfZGVmYXVsdF9sb2NhbGVfY29kZUIeChxfZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lQh0KG19kZWZhdWx0X2xvY2FsZV9uYXRpdmVfbmFtZUIYChZfZGVmYXVsdF9sb2NhbGVfaXNfcnRsQg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIaChhfY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQiPgoVQ3JlYXRlUHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ih8KEUdldFByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIjsKEkdldFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCLYBAoUVXBkYXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLwoGc3RhdHVzGAQgASgOMhouaWRlbnRpdHkudjEuUHJvamVjdFN0YXR1c0gCiAEBEhkKDGRpc3BsYXlfbmFtZRgKIAEoCUgDiAEBEhUKCGxvZ29fdXJsGAsgASgJSASIAQESGgoNcHJpbWFyeV9jb2xvchgMIAEoCUgFiAEBEhYKCWZyb21fbmFtZRgNIAEoCUgGiAEBEhUKCHJlcGx5X3RvGA4gASgJSAeIAQESGgoNc3VwcG9ydF9lbWFpbBgPIAEoCUgIiAEBEhkKDGFwcF9iYXNlX3VybBgQIAEoCUgJiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBgUIAEoCEgKiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGB4gASgISAuIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19zdGF0dXNCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVVcGRhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QigwEKE0xpc3RQcm9qZWN0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEi8KBnN0YXR1cxgCIAEoDjIaLmlkZW50aXR5LnYxLlByb2plY3RTdGF0dXNIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1cyJKChRMaXN0UHJvamVjdHNSZXNwb25zZRIjCgVpdGVtcxgBIAMoCzIULmlkZW50aXR5LnYxLlByb2plY3QSDQoFdG90YWwYAiABKAUiIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiKAoVRGVsZXRlUHJvamVjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLQoYR2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSJCChlHZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ii4KGFNldERlZmF1bHRQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkIKGVNldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QixwEKF0NyZWF0ZUludml0YXRpb25SZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRITCgtwcm9qZWN0X2lkcxgDIAMoCRIlCgRyb2xlGAQgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIsCgtpbnZpdGVfdHlwZRgFIAEoDjIXLmlkZW50aXR5LnYxLkludml0ZVR5cGUSFAoHbWVzc2FnZRgGIAEoCUgAiAEBQgoKCF9tZXNzYWdlIkcKGENyZWF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiKJAQoWTGlzdEludml0YXRpb25zUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSMgoGc3RhdHVzGAIgASgOMh0uaWRlbnRpdHkudjEuSW52aXRhdGlvblN0YXR1c0gAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfc3RhdHVzIlAKF0xpc3RJbnZpdGF0aW9uc1Jlc3BvbnNlEiYKBWl0ZW1zGAEgAygLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbhINCgV0b3RhbBgCIAEoBSIwChdSZXZva2VJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJldm9rZUludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkwKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIlQKGEFjY2VwdEludml0YXRpb25SZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEhIKCnNlc3Npb25faWQYAiABKAkiKgoZVmFsaWRhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCSJJChpWYWxpZGF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiKQAgoTQ3JlYXRlQXBpS2V5UmVxdWVzdBIMCgRuYW1lGAEgASgJEikKCGtleV90eXBlGAIgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIOCgZzY29wZXMYAyADKAkSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgEIAEoBUgAiAEBEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFgoOYWxsb3dlZF9tb2RlbHMYBiADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAcgAygJQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyQg0KC19leHBpcmVzX2F0IjwKFENyZWF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiHgoQR2V0QXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI5ChFHZXRBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IjMKEkxpc3RBcGlLZXlzUmVxdWVzdBINCgVsaW1pdBgBIAEoBRIOCgZvZmZzZXQYAiABKAUiSAoTTGlzdEFwaUtleXNSZXNwb25zZRIiCgVpdGVtcxgBIAMoCzITLmlkZW50aXR5LnYxLkFwaUtleRINCgV0b3RhbBgCIAEoBSLEAQoTVXBkYXRlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESFgoJaXNfYWN0aXZlGAMgASgISAGIAQESDgoGc2NvcGVzGAQgAygJEhUKDXVwZGF0ZV9zY29wZXMYBiABKAgSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgFIAEoBUgCiAEBQgcKBV9uYW1lQgwKCl9pc19hY3RpdmVCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXIiPAoUVXBkYXRlQXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSIhChNSb3RhdGVBcGlLZXlSZXF1ZXN0EgoKAmlkGAEgASgJIjwKFFJvdGF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiIQoTUmV2b2tlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSInChRSZXZva2VBcGlLZXlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIrEFCgxBdXRoUHJvdmlkZXISCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSDAoEdHlwZRgEIAEoCRInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYBiABKAgSEgoKaXNfZGVmYXVsdBgHIAEoCBIQCghwcmlvcml0eRgIIAEoBRIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSACIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKEHB1Ymxpc2hlZF9jb25maWcYPCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESHgoRcHVibGlzaGVkX2VuYWJsZWQYPSABKAhIA4gBARI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg+IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhMKEV9wdWJsaXNoZWRfY29uZmlnQhQKEl9wdWJsaXNoZWRfZW5hYmxlZEIXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXQiewoYTGlzdEF1dGhQcm92aWRlcnNSZXF1ZXN0EhQKB2VuYWJsZWQYASABKAhIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCgoIX2VuYWJsZWRCCQoHX3NlYXJjaCJYChlMaXN0QXV0aFByb3ZpZGVyc1Jlc3BvbnNlEiwKCXByb3ZpZGVycxgBIAMoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlchINCgV0b3RhbBgCIAEoBSIkChZHZXRBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkYKF0dldEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyItsBChlDcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgdlbmFibGVkGAUgASgISACIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgBiAEBEhUKCHByaW9yaXR5GAcgASgFSAKIAQFCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGkNyZWF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIuoBChlVcGRhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIsCgZjb25maWcYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESFAoHZW5hYmxlZBgEIAEoCEgCiAEBEhcKCmlzX2RlZmF1bHQYBSABKAhIA4gBARIVCghwcmlvcml0eRgGIAEoBUgEiAEBQgcKBV9uYW1lQgkKB19jb25maWdCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGlVwZGF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIicKGURlbGV0ZUF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiLQoaRGVsZXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIoChpQdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSKAAQobUHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIioKHFVucHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiTAodVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiMQojR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiUQokR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyKoAQoiU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJSCiNTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciI3CilDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJZCipDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiHgocRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdCIyCh1FbmFibGVkT0F1dGhQcm92aWRlcnNSZXNwb25zZRIRCglwcm92aWRlcnMYASADKAkiKgoXTWludFNlcnZpY2VUb2tlblJlcXVlc3QSDwoHcHVycG9zZRgBIAEoCSJOChhNaW50U2VydmljZVRva2VuUmVzcG9uc2USDQoFdG9rZW4YASABKAkSDwoHcHVycG9zZRgCIAEoCRISCgpleHBpcmVzX2F0GAMgASgJIo4BChZVcGRhdGVNeVByb2ZpbGVSZXF1ZXN0EhcKCmZpcnN0X25hbWUYASABKAlIAIgBARIWCglsYXN0X25hbWUYAiABKAlIAYgBARIXCgphdmF0YXJfdXJsGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybCI/ChdVcGRhdGVNeVByb2ZpbGVSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyIh8KHUxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXF1ZXN0Io0BCg9PQXV0aENvbm5lY3Rpb24SEAoIcHJvdmlkZXIYASABKAkSGAoQcHJvdmlkZXJfdXNlcl9pZBgCIAEoCRISCgVlbWFpbBgDIAEoCUgAiAEBEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX2VtYWlsIlMKHkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXNwb25zZRIxCgtjb25uZWN0aW9ucxgBIAMoCzIcLmlkZW50aXR5LnYxLk9BdXRoQ29ubmVjdGlvbiIuChpVbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCSIuChtVbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIuCh1DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBINCgVlbWFpbBgBIAEoCSIzCh5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USEQoJYXZhaWxhYmxlGAEgASgIIo8BChtDb21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QSFwoKZmlyc3RfbmFtZRgBIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgCIAEoCUgBiAEBEhUKCHBhc3N3b3JkGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUILCglfcGFzc3dvcmQiWwocQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhkKDHJlZGlyZWN0X3VybBgCIAEoCUgAiAEBQg8KDV9yZWRpcmVjdF91cmwiLQoaQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCSIuChtDcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIwChdSZXNlbmRJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJlc2VuZEludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiIKFEdldEludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkQKFUdldEludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiIqChVBY3RpdmF0ZVRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIj0KFkFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IjAKG1N1c3BlbmRUZW5hbnRBY2NvdW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQwocU3VzcGVuZFRlbmFudEFjY291bnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiKAoTQ2FuY2VsVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiOwoUQ2FuY2VsVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IiwKF1JlYWN0aXZhdGVUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI/ChhSZWFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ii0KGE1hcmtUZW5hbnRQYXN0RHVlUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQAoZTWFya1RlbmFudFBhc3REdWVSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiJwoSQ2h1cm5UZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI6ChNDaHVyblRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIeChxHZXRDdXN0b21lckF1dGhDb25maWdSZXF1ZXN0IpoCChJDdXN0b21lckF1dGhDb25maWcSEQoJYWxnb3JpdGhtGAEgASgJEhMKBmlzc3VlchgCIAEoCUgAiAEBEhUKCGF1ZGllbmNlGAMgASgJSAGIAQESNwoOa2V5X3JvdGF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGAoLc2lnbmluZ19rZXkYBSABKAlIA4gBARIsCgZjbGFpbXMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCQoHX2lzc3VlckILCglfYXVkaWVuY2VCEQoPX2tleV9yb3RhdGVkX2F0Qg4KDF9zaWduaW5nX2tleUIJCgdfY2xhaW1zIlAKHUdldEN1c3RvbWVyQXV0aENvbmZpZ1Jlc3BvbnNlEi8KBmNvbmZpZxgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVyQXV0aENvbmZpZyIrChpWZXJpZnlDdXN0b21lclRva2VuUmVxdWVzdBINCgV0b2tlbhgBIAEoCSKzAgobVmVyaWZ5Q3VzdG9tZXJUb2tlblJlc3BvbnNlEg0KBXZhbGlkGAEgASgIEhIKBWVycm9yGAIgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYAyABKAlIAYgBARISCgVlbWFpbBgEIAEoCUgCiAEBEhYKCXRlbmFudF9pZBgFIAEoCUgDiAEBEhcKCnByb2plY3RfaWQYBiABKAlIBIgBARINCgVyb2xlcxgHIAMoCRIzCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQggKBl9lcnJvckIOCgxfY3VzdG9tZXJfaWRCCAoGX2VtYWlsQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDQoLX2V4cGlyZXNfYXQiJAoiR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdCLbAQoYQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEiEKGW5hdGl2ZV9tYW5hZ2VtZW50X2VuYWJsZWQYASABKAgSIgoVZXh0ZXJuYWxfcHJvdmlkZXJfdXJsGAIgASgJSACIAQESIwoWZXh0ZXJuYWxfcHJvdmlkZXJfbmFtZRgDIAEoCUgBiAEBEhMKBnJlYXNvbhgEIAEoCUgCiAEBQhgKFl9leHRlcm5hbF9wcm92aWRlcl91cmxCGQoXX2V4dGVybmFsX3Byb3ZpZGVyX25hbWVCCQoHX3JlYXNvbiJcCiNHZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRI1CgZzdGF0dXMYASABKAsyJS5pZGVudGl0eS52MS5DdXN0b21lck1hbmFnZW1lbnRTdGF0dXMiKAoVVmFsaWRhdGVBcGlLZXlSZXF1ZXN0Eg8KB2FwaV9rZXkYASABKAkizAEKFlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIQCghrZXlfdHlwZRgFIAEoCRIOCgZzY29wZXMYBiADKAkSFgoOYWxsb3dlZF9tb2RlbHMYByADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAggAygJEhsKE3JhdGVfbGltaXRfcGVyX2hvdXIYCSABKAUiNwoUQ3VzdG9tZXJMb2dpblJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkibQoVQ3VzdG9tZXJMb2dpblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIifwoXQ3VzdG9tZXJSZWdpc3RlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSMgoMcHJvZmlsZV9kYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQg8KDV9wcm9maWxlX2RhdGEicAoYQ3VzdG9tZXJSZWdpc3RlclJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiNAobQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiSwocQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCSIqChlDdXN0b21lclJlcXVlc3RPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIioKGkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEgwKBHNlbnQYASABKAgiOwoYQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCG90cF9jb2RlGAIgASgJInEKGUN1c3RvbWVyVmVyaWZ5T1RQUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSJwoIY3VzdG9tZXIYAyABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciI0CiNDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBINCgVlbWFpbBgBIAEoCSI0CiRDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDAoEc2VudBgBIAEoCCJDChxDdXN0b21lclJlc2V0UGFzc3dvcmRSZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIwCh1DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIItkBChlTdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhQKDHByb3ZpZGVyX2tleRgCIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCRIQCghpZF90b2tlbhgFIAEoCRIOCgZzY29wZXMYBiABKAkSMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUINCgtfZXhwaXJlc19hdCIcChpTdG9yZVByb3ZpZGVyVG9rZW5SZXNwb25zZSKDAQoZU3RhcnRQcm92aWRlckxvZ2luUmVxdWVzdBIUCgxwcm92aWRlcl9rZXkYASABKAkSFgoJcmV0dXJuX3RvGAIgASgJSACIAQESGQoMcmVkaXJlY3RfdXJpGAMgASgJSAGIAQFCDAoKX3JldHVybl90b0IPCg1fcmVkaXJlY3RfdXJpIjIKGlN0YXJ0UHJvdmlkZXJMb2dpblJlc3BvbnNlEhQKDHJlZGlyZWN0X3VybBgBIAEoCSJPChpGaW5pc2hQcm92aWRlckxvZ2luUmVxdWVzdBIUCgxwcm92aWRlcl9rZXkYASABKAkSDAoEY29kZRgCIAEoCRINCgVzdGF0ZRgDIAEoCSJuChtGaW5pc2hQcm92aWRlckxvZ2luUmVzcG9uc2USEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFZW1haWwYAiABKAkSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkiRAoXR2V0UHJvdmlkZXJUb2tlblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSFAoMcHJvdmlkZXJfa2V5GAIgASgJIq0BChhHZXRQcm92aWRlclRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSEAoIaWRfdG9rZW4YAyABKAkSDgoGc2NvcGVzGAQgASgJEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiMgobRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIh4KHERlbGV0ZVByb3ZpZGVyVG9rZW5zUmVzcG9uc2UqsQEKD0FkbWluVXNlclN0YXR1cxIhCh1BRE1JTl9VU0VSX1NUQVRVU19VTlNQRUNJRklFRBAAEhwKGEFETUlOX1VTRVJfU1RBVFVTX0FDVElWRRABEh0KGUFETUlOX1VTRVJfU1RBVFVTX1BFTkRJTkcQAhIfChtBRE1JTl9VU0VSX1NUQVRVU19TVVNQRU5ERUQQAxIdChlBRE1JTl9VU0VSX1NUQVRVU19ERUxFVEVEEAQqiQEKDkN1c3RvbWVyU3RhdHVzEh8KG0NVU1RPTUVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFkNVU1RPTUVSX1NUQVRVU19BQ1RJVkUQARIbChdDVVNUT01FUl9TVEFUVVNfUEVORElORxACEh0KGUNVU1RPTUVSX1NUQVRVU19TVVNQRU5ERUQQAyrZAQoMVGVuYW50U3RhdHVzEh0KGVRFTkFOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtURU5BTlRfU1RBVFVTX1BFTkRJTkdfU0VUVVAQARIYChRURU5BTlRfU1RBVFVTX0FDVElWRRACEhoKFlRFTkFOVF9TVEFUVVNfUEFTVF9EVUUQAxIbChdURU5BTlRfU1RBVFVTX1NVU1BFTkRFRBAEEhsKF1RFTkFOVF9TVEFUVVNfQ0FOQ0VMTEVEEAUSGQoVVEVOQU5UX1NUQVRVU19DSFVSTkVEEAYqZgoNUHJvamVjdFN0YXR1cxIeChpQUk9KRUNUX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVBST0pFQ1RfU1RBVFVTX0FDVElWRRABEhoKFlBST0pFQ1RfU1RBVFVTX0RFTEVURUQQAiqmAQoKQWNjZXNzUm9sZRIbChdBQ0NFU1NfUk9MRV9VTlNQRUNJRklFRBAAEhwKGEFDQ0VTU19ST0xFX1RFTkFOVF9PV05FUhABEh0KGUFDQ0VTU19ST0xFX1BST0pFQ1RfQURNSU4QAhIeChpBQ0NFU1NfUk9MRV9QUk9KRUNUX0VESVRPUhADEh4KGkFDQ0VTU19ST0xFX1BST0pFQ1RfVklFV0VSEAQqZAoKSW52aXRlVHlwZRIbChdJTlZJVEVfVFlQRV9VTlNQRUNJRklFRBAAEhwKGElOVklURV9UWVBFX1RFTkFOVF9PV05FUhABEhsKF0lOVklURV9UWVBFX1RFQU1fTUVNQkVSEAIqsgEKEEludml0YXRpb25TdGF0dXMSIQodSU5WSVRBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlJTlZJVEFUSU9OX1NUQVRVU19QRU5ESU5HEAESHgoaSU5WSVRBVElPTl9TVEFUVVNfQUNDRVBURUQQAhIdChlJTlZJVEFUSU9OX1NUQVRVU19FWFBJUkVEEAMSHQoZSU5WSVRBVElPTl9TVEFUVVNfUkVWT0tFRBAEKucBChhDdXN0b21lckludml0YXRpb25TdGF0dXMSKgomQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19QRU5ESU5HEAESJwojQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfQUNDRVBURUQQAhImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19FWFBJUkVEEAMSJgoiQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfUkVWT0tFRBAEKlwKCkFwaUtleVR5cGUSHAoYQVBJX0tFWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTQVBJX0tFWV9UWVBFX1BVQkxJQxABEhcKE0FQSV9LRVlfVFlQRV9TRUNSRVQQAjL3TgoPSWRlbnRpdHlTZXJ2aWNlEj4KBUxvZ2luEhkuaWRlbnRpdHkudjEuTG9naW5SZXF1ZXN0GhouaWRlbnRpdHkudjEuTG9naW5SZXNwb25zZRJTCgxMb2dpbldpdGhPVFASIC5pZGVudGl0eS52MS5Mb2dpbldpdGhPVFBSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTG9naW5XaXRoT1RQUmVzcG9uc2USTQoKUmVxdWVzdE9UUBIeLmlkZW50aXR5LnYxLlJlcXVlc3RPVFBSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuUmVxdWVzdE9UUFJlc3BvbnNlEkEKBkxvZ291dBIaLmlkZW50aXR5LnYxLkxvZ291dFJlcXVlc3QaGy5pZGVudGl0eS52MS5Mb2dvdXRSZXNwb25zZRJHCghSZWdpc3RlchIcLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVxdWVzdBodLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVzcG9uc2USUAoLVmVyaWZ5RW1haWwSHy5pZGVudGl0eS52MS5WZXJpZnlFbWFpbFJlcXVlc3QaIC5pZGVudGl0eS52MS5WZXJpZnlFbWFpbFJlc3BvbnNlEnQKF1Jlc2VuZFZlcmlmaWNhdGlvbkVtYWlsEisuaWRlbnRpdHkudjEuUmVzZW5kVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0GiwuaWRlbnRpdHkudjEuUmVzZW5kVmVyaWZpY2F0aW9uRW1haWxSZXNwb25zZRJ6ChlTZW5kRW1haWxWZXJpZmljYXRpb25Db2RlEi0uaWRlbnRpdHkudjEuU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QaLi5pZGVudGl0eS52MS5TZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVzcG9uc2USXAoPVmVyaWZ5RW1haWxDb2RlEiMuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBokLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEmsKFFJlcXVlc3RQYXNzd29yZFJlc2V0EiguaWRlbnRpdHkudjEuUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0GikuaWRlbnRpdHkudjEuUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXNwb25zZRJWCg1SZXNldFBhc3N3b3JkEiEuaWRlbnRpdHkudjEuUmVzZXRQYXNzd29yZFJlcXVlc3QaIi5pZGVudGl0eS52MS5SZXNldFBhc3N3b3JkUmVzcG9uc2USWQoOVXBkYXRlUGFzc3dvcmQSIi5pZGVudGl0eS52MS5VcGRhdGVQYXNzd29yZFJlcXVlc3QaIy5pZGVudGl0eS52MS5VcGRhdGVQYXNzd29yZFJlc3BvbnNlElMKDFJlZnJlc2hUb2tlbhIgLmlkZW50aXR5LnYxLlJlZnJlc2hUb2tlblJlcXVlc3QaIS5pZGVudGl0eS52MS5SZWZyZXNoVG9rZW5SZXNwb25zZRJiChFHZXRTZXNzaW9uQ29udGV4dBIlLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVxdWVzdBomLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USUwoMU3dpdGNoVGVuYW50EiAuaWRlbnRpdHkudjEuU3dpdGNoVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLlN3aXRjaFRlbmFudFJlc3BvbnNlElYKDVN3aXRjaFByb2plY3QSIS5pZGVudGl0eS52MS5Td2l0Y2hQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlN3aXRjaFByb2plY3RSZXNwb25zZRJoChNDbGVhclNlc3Npb25Db250ZXh0EicuaWRlbnRpdHkudjEuQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QaKC5pZGVudGl0eS52MS5DbGVhclNlc3Npb25Db250ZXh0UmVzcG9uc2USPgoFR2V0TWUSGS5pZGVudGl0eS52MS5HZXRNZVJlcXVlc3QaGi5pZGVudGl0eS52MS5HZXRNZVJlc3BvbnNlElwKD0NyZWF0ZUFkbWluVXNlchIjLmlkZW50aXR5LnYxLkNyZWF0ZUFkbWluVXNlclJlcXVlc3QaJC5pZGVudGl0eS52MS5DcmVhdGVBZG1pblVzZXJSZXNwb25zZRJTCgxHZXRBZG1pblVzZXISIC5pZGVudGl0eS52MS5HZXRBZG1pblVzZXJSZXF1ZXN0GiEuaWRlbnRpdHkudjEuR2V0QWRtaW5Vc2VyUmVzcG9uc2USXAoPVXBkYXRlQWRtaW5Vc2VyEiMuaWRlbnRpdHkudjEuVXBkYXRlQWRtaW5Vc2VyUmVxdWVzdBokLmlkZW50aXR5LnYxLlVwZGF0ZUFkbWluVXNlclJlc3BvbnNlElkKDkxpc3RBZG1pblVzZXJzEiIuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXF1ZXN0GiMuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXNwb25zZRJQCgtHcmFudEFjY2VzcxIfLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVxdWVzdBogLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVzcG9uc2USUwoMUmV2b2tlQWNjZXNzEiAuaWRlbnRpdHkudjEuUmV2b2tlQWNjZXNzUmVxdWVzdBohLmlkZW50aXR5LnYxLlJldm9rZUFjY2Vzc1Jlc3BvbnNlElkKDkNyZWF0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJSZXNwb25zZRJQCgtHZXRDdXN0b21lchIfLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyUmVxdWVzdBogLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyUmVzcG9uc2USWQoOVXBkYXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5VcGRhdGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5VcGRhdGVDdXN0b21lclJlc3BvbnNlElkKDkRlbGV0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tZXJSZXNwb25zZRJWCg1MaXN0Q3VzdG9tZXJzEiEuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyc1JlcXVlc3QaIi5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJzUmVzcG9uc2USXAoPU3VzcGVuZEN1c3RvbWVyEiMuaWRlbnRpdHkudjEuU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBokLmlkZW50aXR5LnYxLlN1c3BlbmRDdXN0b21lclJlc3BvbnNlEmgKE1NldEN1c3RvbWVyUGFzc3dvcmQSJy5pZGVudGl0eS52MS5TZXRDdXN0b21lclBhc3N3b3JkUmVxdWVzdBooLmlkZW50aXR5LnYxLlNldEN1c3RvbWVyUGFzc3dvcmRSZXNwb25zZRJ3ChhDcmVhdGVDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdAoXTGlzdEN1c3RvbWVySW52aXRhdGlvbnMSKy5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QaLC5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEm4KFUdldEN1c3RvbWVySW52aXRhdGlvbhIpLmlkZW50aXR5LnYxLkdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhSZXZva2VDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLlJlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEn0KGlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uEi4uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi8uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhBY2NlcHRDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5BY2NlcHRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USUwoMQ3JlYXRlVGVuYW50EiAuaWRlbnRpdHkudjEuQ3JlYXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkNyZWF0ZVRlbmFudFJlc3BvbnNlEkoKCUdldFRlbmFudBIdLmlkZW50aXR5LnYxLkdldFRlbmFudFJlcXVlc3QaHi5pZGVudGl0eS52MS5HZXRUZW5hbnRSZXNwb25zZRJTCgxVcGRhdGVUZW5hbnQSIC5pZGVudGl0eS52MS5VcGRhdGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuVXBkYXRlVGVuYW50UmVzcG9uc2USUAoLTGlzdFRlbmFudHMSHy5pZGVudGl0eS52MS5MaXN0VGVuYW50c1JlcXVlc3QaIC5pZGVudGl0eS52MS5MaXN0VGVuYW50c1Jlc3BvbnNlElMKDERlbGV0ZVRlbmFudBIgLmlkZW50aXR5LnYxLkRlbGV0ZVRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5EZWxldGVUZW5hbnRSZXNwb25zZRJWCg1DcmVhdGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0UmVzcG9uc2USTQoKR2V0UHJvamVjdBIeLmlkZW50aXR5LnYxLkdldFByb2plY3RSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuR2V0UHJvamVjdFJlc3BvbnNlElYKDVVwZGF0ZVByb2plY3QSIS5pZGVudGl0eS52MS5VcGRhdGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RSZXNwb25zZRJTCgxMaXN0UHJvamVjdHMSIC5pZGVudGl0eS52MS5MaXN0UHJvamVjdHNSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTGlzdFByb2plY3RzUmVzcG9uc2USVgoNRGVsZXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLkRlbGV0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdFJlc3BvbnNlEmIKEUdldERlZmF1bHRQcm9qZWN0EiUuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0GiYuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRJiChFTZXREZWZhdWx0UHJvamVjdBIlLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVxdWVzdBomLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USXwoQQ3JlYXRlSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLkNyZWF0ZUludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuQ3JlYXRlSW52aXRhdGlvblJlc3BvbnNlElwKD0xpc3RJbnZpdGF0aW9ucxIjLmlkZW50aXR5LnYxLkxpc3RJbnZpdGF0aW9uc1JlcXVlc3QaJC5pZGVudGl0eS52MS5MaXN0SW52aXRhdGlvbnNSZXNwb25zZRJfChBSZXZva2VJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuUmV2b2tlSW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5SZXZva2VJbnZpdGF0aW9uUmVzcG9uc2USXwoQQWNjZXB0SW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLkFjY2VwdEludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuQWNjZXB0SW52aXRhdGlvblJlc3BvbnNlEmUKElZhbGlkYXRlSW52aXRhdGlvbhImLmlkZW50aXR5LnYxLlZhbGlkYXRlSW52aXRhdGlvblJlcXVlc3QaJy5pZGVudGl0eS52MS5WYWxpZGF0ZUludml0YXRpb25SZXNwb25zZRJTCgxDcmVhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5DcmVhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuQ3JlYXRlQXBpS2V5UmVzcG9uc2USSgoJR2V0QXBpS2V5Eh0uaWRlbnRpdHkudjEuR2V0QXBpS2V5UmVxdWVzdBoeLmlkZW50aXR5LnYxLkdldEFwaUtleVJlc3BvbnNlElAKC0xpc3RBcGlLZXlzEh8uaWRlbnRpdHkudjEuTGlzdEFwaUtleXNSZXF1ZXN0GiAuaWRlbnRpdHkudjEuTGlzdEFwaUtleXNSZXNwb25zZRJTCgxVcGRhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5VcGRhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuVXBkYXRlQXBpS2V5UmVzcG9uc2USUwoMUm90YXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuUm90YXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlJvdGF0ZUFwaUtleVJlc3BvbnNlElMKDFJldm9rZUFwaUtleRIgLmlkZW50aXR5LnYxLlJldm9rZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5SZXZva2VBcGlLZXlSZXNwb25zZRJiChFMaXN0QXV0aFByb3ZpZGVycxIlLmlkZW50aXR5LnYxLkxpc3RBdXRoUHJvdmlkZXJzUmVxdWVzdBomLmlkZW50aXR5LnYxLkxpc3RBdXRoUHJvdmlkZXJzUmVzcG9uc2USXAoPR2V0QXV0aFByb3ZpZGVyEiMuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUmVxdWVzdBokLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclJlc3BvbnNlEmUKEkNyZWF0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLkNyZWF0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5DcmVhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJVcGRhdGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5VcGRhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuVXBkYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSRGVsZXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuRGVsZXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLkRlbGV0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmgKE1B1Ymxpc2hBdXRoUHJvdmlkZXISJy5pZGVudGl0eS52MS5QdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBooLmlkZW50aXR5LnYxLlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRJuChVVbnB1Ymxpc2hBdXRoUHJvdmlkZXISKS5pZGVudGl0eS52MS5VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0GiouaWRlbnRpdHkudjEuVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USgwEKHEdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXMSMC5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVxdWVzdBoxLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXNwb25zZRKAAQobU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoEi8uaWRlbnRpdHkudjEuU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBowLmlkZW50aXR5LnYxLlNjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaFJlc3BvbnNlEpUBCiJDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoEjYuaWRlbnRpdHkudjEuQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QaNy5pZGVudGl0eS52MS5DYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USbgoVRW5hYmxlZE9BdXRoUHJvdmlkZXJzEikuaWRlbnRpdHkudjEuRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdBoqLmlkZW50aXR5LnYxLkVuYWJsZWRPQXV0aFByb3ZpZGVyc1Jlc3BvbnNlEl8KEE1pbnRTZXJ2aWNlVG9rZW4SJC5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuUmVxdWVzdBolLmlkZW50aXR5LnYxLk1pbnRTZXJ2aWNlVG9rZW5SZXNwb25zZRJcCg9VcGRhdGVNeVByb2ZpbGUSIy5pZGVudGl0eS52MS5VcGRhdGVNeVByb2ZpbGVSZXF1ZXN0GiQuaWRlbnRpdHkudjEuVXBkYXRlTXlQcm9maWxlUmVzcG9uc2UScQoWTGlzdE15T0F1dGhDb25uZWN0aW9ucxIqLmlkZW50aXR5LnYxLkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXF1ZXN0GisuaWRlbnRpdHkudjEuTGlzdE15T0F1dGhDb25uZWN0aW9uc1Jlc3BvbnNlEmgKE1VubGlua09BdXRoUHJvdmlkZXISJy5pZGVudGl0eS52MS5VbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBooLmlkZW50aXR5LnYxLlVubGlua09BdXRoUHJvdmlkZXJSZXNwb25zZRJxChZDaGVja0VtYWlsQXZhaWxhYmlsaXR5EiouaWRlbnRpdHkudjEuQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlcXVlc3QaKy5pZGVudGl0eS52MS5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USawoUQ29tcGxldGVBY2NvdW50U2V0dXASKC5pZGVudGl0eS52MS5Db21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QaKS5pZGVudGl0eS52MS5Db21wbGV0ZUFjY291bnRTZXR1cFJlc3BvbnNlEmgKE0NyZWF0ZVNpZ251cFNlc3Npb24SJy5pZGVudGl0eS52MS5DcmVhdGVTaWdudXBTZXNzaW9uUmVxdWVzdBooLmlkZW50aXR5LnYxLkNyZWF0ZVNpZ251cFNlc3Npb25SZXNwb25zZRJfChBSZXNlbmRJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuUmVzZW5kSW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5SZXNlbmRJbnZpdGF0aW9uUmVzcG9uc2USVgoNR2V0SW52aXRhdGlvbhIhLmlkZW50aXR5LnYxLkdldEludml0YXRpb25SZXF1ZXN0GiIuaWRlbnRpdHkudjEuR2V0SW52aXRhdGlvblJlc3BvbnNlElkKDkFjdGl2YXRlVGVuYW50EiIuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXNwb25zZRJrChRTdXNwZW5kVGVuYW50QWNjb3VudBIoLmlkZW50aXR5LnYxLlN1c3BlbmRUZW5hbnRBY2NvdW50UmVxdWVzdBopLmlkZW50aXR5LnYxLlN1c3BlbmRUZW5hbnRBY2NvdW50UmVzcG9uc2USUwoMQ2FuY2VsVGVuYW50EiAuaWRlbnRpdHkudjEuQ2FuY2VsVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkNhbmNlbFRlbmFudFJlc3BvbnNlEl8KEFJlYWN0aXZhdGVUZW5hbnQSJC5pZGVudGl0eS52MS5SZWFjdGl2YXRlVGVuYW50UmVxdWVzdBolLmlkZW50aXR5LnYxLlJlYWN0aXZhdGVUZW5hbnRSZXNwb25zZRJiChFNYXJrVGVuYW50UGFzdER1ZRIlLmlkZW50aXR5LnYxLk1hcmtUZW5hbnRQYXN0RHVlUmVxdWVzdBomLmlkZW50aXR5LnYxLk1hcmtUZW5hbnRQYXN0RHVlUmVzcG9uc2USUAoLQ2h1cm5UZW5hbnQSHy5pZGVudGl0eS52MS5DaHVyblRlbmFudFJlcXVlc3QaIC5pZGVudGl0eS52MS5DaHVyblRlbmFudFJlc3BvbnNlEm4KFUdldEN1c3RvbWVyQXV0aENvbmZpZxIpLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyQXV0aENvbmZpZ1JlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRDdXN0b21lckF1dGhDb25maWdSZXNwb25zZRJoChNWZXJpZnlDdXN0b21lclRva2VuEicuaWRlbnRpdHkudjEuVmVyaWZ5Q3VzdG9tZXJUb2tlblJlcXVlc3QaKC5pZGVudGl0eS52MS5WZXJpZnlDdXN0b21lclRva2VuUmVzcG9uc2USgAEKG0dldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1cxIvLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1JlcXVlc3QaMC5pZGVudGl0eS52MS5HZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRJZCg5WYWxpZGF0ZUFwaUtleRIiLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVxdWVzdBojLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USVgoNQ3VzdG9tZXJMb2dpbhIhLmlkZW50aXR5LnYxLkN1c3RvbWVyTG9naW5SZXF1ZXN0GiIuaWRlbnRpdHkudjEuQ3VzdG9tZXJMb2dpblJlc3BvbnNlEl8KEEN1c3RvbWVyUmVnaXN0ZXISJC5pZGVudGl0eS52MS5DdXN0b21lclJlZ2lzdGVyUmVxdWVzdBolLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVnaXN0ZXJSZXNwb25zZRJrChRDdXN0b21lclJlZnJlc2hUb2tlbhIoLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVxdWVzdBopLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVzcG9uc2USZQoSQ3VzdG9tZXJSZXF1ZXN0T1RQEiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0T1RQUmVxdWVzdBonLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEmIKEUN1c3RvbWVyVmVyaWZ5T1RQEiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0GiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXNwb25zZRKDAQocQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldBIwLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0GjEuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlEm4KFUN1c3RvbWVyUmVzZXRQYXNzd29yZBIpLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVzZXRQYXNzd29yZFJlcXVlc3QaKi5pZGVudGl0eS52MS5DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRJlChJTdG9yZVByb3ZpZGVyVG9rZW4SJi5pZGVudGl0eS52MS5TdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RvcmVQcm92aWRlclRva2VuUmVzcG9uc2USXwoQR2V0UHJvdmlkZXJUb2tlbhIkLmlkZW50aXR5LnYxLkdldFByb3ZpZGVyVG9rZW5SZXF1ZXN0GiUuaWRlbnRpdHkudjEuR2V0UHJvdmlkZXJUb2tlblJlc3BvbnNlEmsKFERlbGV0ZVByb3ZpZGVyVG9rZW5zEiguaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0GikuaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXNwb25zZRJlChJTdGFydFByb3ZpZGVyTG9naW4SJi5pZGVudGl0eS52MS5TdGFydFByb3ZpZGVyTG9naW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RhcnRQcm92aWRlckxvZ2luUmVzcG9uc2USaAoTRmluaXNoUHJvdmlkZXJMb2dpbhInLmlkZW50aXR5LnYxLkZpbmlzaFByb3ZpZGVyTG9naW5SZXF1ZXN0GiguaWRlbnRpdHkudjEuRmluaXNoUHJvdmlkZXJMb2dpblJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pZGVudGl0eS92MTtpZGVudGl0eXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish]);
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Describes the message identity.v1.AdminUser.
|
|
@@ -1489,33 +1489,61 @@ export const StoreProviderTokenRequestSchema = /*@__PURE__*/
|
|
|
1489
1489
|
export const StoreProviderTokenResponseSchema = /*@__PURE__*/
|
|
1490
1490
|
messageDesc(file_identity_v1_identity, 210);
|
|
1491
1491
|
|
|
1492
|
+
/**
|
|
1493
|
+
* Describes the message identity.v1.StartProviderLoginRequest.
|
|
1494
|
+
* Use `create(StartProviderLoginRequestSchema)` to create a new message.
|
|
1495
|
+
*/
|
|
1496
|
+
export const StartProviderLoginRequestSchema = /*@__PURE__*/
|
|
1497
|
+
messageDesc(file_identity_v1_identity, 211);
|
|
1498
|
+
|
|
1499
|
+
/**
|
|
1500
|
+
* Describes the message identity.v1.StartProviderLoginResponse.
|
|
1501
|
+
* Use `create(StartProviderLoginResponseSchema)` to create a new message.
|
|
1502
|
+
*/
|
|
1503
|
+
export const StartProviderLoginResponseSchema = /*@__PURE__*/
|
|
1504
|
+
messageDesc(file_identity_v1_identity, 212);
|
|
1505
|
+
|
|
1506
|
+
/**
|
|
1507
|
+
* Describes the message identity.v1.FinishProviderLoginRequest.
|
|
1508
|
+
* Use `create(FinishProviderLoginRequestSchema)` to create a new message.
|
|
1509
|
+
*/
|
|
1510
|
+
export const FinishProviderLoginRequestSchema = /*@__PURE__*/
|
|
1511
|
+
messageDesc(file_identity_v1_identity, 213);
|
|
1512
|
+
|
|
1513
|
+
/**
|
|
1514
|
+
* Describes the message identity.v1.FinishProviderLoginResponse.
|
|
1515
|
+
* Use `create(FinishProviderLoginResponseSchema)` to create a new message.
|
|
1516
|
+
*/
|
|
1517
|
+
export const FinishProviderLoginResponseSchema = /*@__PURE__*/
|
|
1518
|
+
messageDesc(file_identity_v1_identity, 214);
|
|
1519
|
+
|
|
1492
1520
|
/**
|
|
1493
1521
|
* Describes the message identity.v1.GetProviderTokenRequest.
|
|
1494
1522
|
* Use `create(GetProviderTokenRequestSchema)` to create a new message.
|
|
1495
1523
|
*/
|
|
1496
1524
|
export const GetProviderTokenRequestSchema = /*@__PURE__*/
|
|
1497
|
-
messageDesc(file_identity_v1_identity,
|
|
1525
|
+
messageDesc(file_identity_v1_identity, 215);
|
|
1498
1526
|
|
|
1499
1527
|
/**
|
|
1500
1528
|
* Describes the message identity.v1.GetProviderTokenResponse.
|
|
1501
1529
|
* Use `create(GetProviderTokenResponseSchema)` to create a new message.
|
|
1502
1530
|
*/
|
|
1503
1531
|
export const GetProviderTokenResponseSchema = /*@__PURE__*/
|
|
1504
|
-
messageDesc(file_identity_v1_identity,
|
|
1532
|
+
messageDesc(file_identity_v1_identity, 216);
|
|
1505
1533
|
|
|
1506
1534
|
/**
|
|
1507
1535
|
* Describes the message identity.v1.DeleteProviderTokensRequest.
|
|
1508
1536
|
* Use `create(DeleteProviderTokensRequestSchema)` to create a new message.
|
|
1509
1537
|
*/
|
|
1510
1538
|
export const DeleteProviderTokensRequestSchema = /*@__PURE__*/
|
|
1511
|
-
messageDesc(file_identity_v1_identity,
|
|
1539
|
+
messageDesc(file_identity_v1_identity, 217);
|
|
1512
1540
|
|
|
1513
1541
|
/**
|
|
1514
1542
|
* Describes the message identity.v1.DeleteProviderTokensResponse.
|
|
1515
1543
|
* Use `create(DeleteProviderTokensResponseSchema)` to create a new message.
|
|
1516
1544
|
*/
|
|
1517
1545
|
export const DeleteProviderTokensResponseSchema = /*@__PURE__*/
|
|
1518
|
-
messageDesc(file_identity_v1_identity,
|
|
1546
|
+
messageDesc(file_identity_v1_identity, 218);
|
|
1519
1547
|
|
|
1520
1548
|
/**
|
|
1521
1549
|
* Describes the enum identity.v1.AdminUserStatus.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
// @ts-nocheck
|
|
5
5
|
|
|
6
|
-
import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
|
|
6
|
+
import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
|
|
7
7
|
import { MethodKind } from "@bufbuild/protobuf";
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -414,6 +414,15 @@ export declare const RecordsService: {
|
|
|
414
414
|
readonly O: typeof SearchEmbeddingsResponse,
|
|
415
415
|
readonly kind: MethodKind.Unary,
|
|
416
416
|
},
|
|
417
|
+
/**
|
|
418
|
+
* @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
|
|
419
|
+
*/
|
|
420
|
+
readonly enqueueGenerateEmbedding: {
|
|
421
|
+
readonly name: "EnqueueGenerateEmbedding",
|
|
422
|
+
readonly I: typeof EnqueueGenerateEmbeddingRequest,
|
|
423
|
+
readonly O: typeof EnqueueGenerateEmbeddingResponse,
|
|
424
|
+
readonly kind: MethodKind.Unary,
|
|
425
|
+
},
|
|
417
426
|
}
|
|
418
427
|
};
|
|
419
428
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
// @ts-nocheck
|
|
5
5
|
|
|
6
|
-
import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
|
|
6
|
+
import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
|
|
7
7
|
import { MethodKind } from "@bufbuild/protobuf";
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -414,6 +414,15 @@ export const RecordsService = {
|
|
|
414
414
|
O: SearchEmbeddingsResponse,
|
|
415
415
|
kind: MethodKind.Unary,
|
|
416
416
|
},
|
|
417
|
+
/**
|
|
418
|
+
* @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
|
|
419
|
+
*/
|
|
420
|
+
enqueueGenerateEmbedding: {
|
|
421
|
+
name: "EnqueueGenerateEmbedding",
|
|
422
|
+
I: EnqueueGenerateEmbeddingRequest,
|
|
423
|
+
O: EnqueueGenerateEmbeddingResponse,
|
|
424
|
+
kind: MethodKind.Unary,
|
|
425
|
+
},
|
|
417
426
|
}
|
|
418
427
|
};
|
|
419
428
|
|
|
@@ -628,6 +628,44 @@ export declare type ListRecordsRequest = Message<"records.v1.ListRecordsRequest"
|
|
|
628
628
|
* @generated from field: bool preview = 8;
|
|
629
629
|
*/
|
|
630
630
|
preview: boolean;
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* Structural WhereInput from the api-public typed surface. Coexists with
|
|
634
|
+
* `filters` during the query/mutate redesign migration (see
|
|
635
|
+
* foir-platform/docs/query-mutate-redesign.md); Stage 6 removes `filters`.
|
|
636
|
+
* Empty/unset is treated as no-filter — callers pick which form to send.
|
|
637
|
+
*
|
|
638
|
+
* @generated from field: optional google.protobuf.Struct where = 9;
|
|
639
|
+
*/
|
|
640
|
+
where?: JsonObject | undefined;
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* Cursor pagination from Stage 3b of the query/mutate redesign.
|
|
644
|
+
* Coexists with limit/offset during the migration; Stage 6 removes the
|
|
645
|
+
* offset path. Direction is determined by which pair is set:
|
|
646
|
+
* * forward: first + (optional) after
|
|
647
|
+
* * backward: last + (optional) before
|
|
648
|
+
* Mixing first with last is an error. Cursors are opaque base64url
|
|
649
|
+
* tokens; format documented in services/platform/internal/handler/records/cursor.go.
|
|
650
|
+
*
|
|
651
|
+
* @generated from field: optional string after = 10;
|
|
652
|
+
*/
|
|
653
|
+
after?: string | undefined;
|
|
654
|
+
|
|
655
|
+
/**
|
|
656
|
+
* @generated from field: optional string before = 11;
|
|
657
|
+
*/
|
|
658
|
+
before?: string | undefined;
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* @generated from field: optional int32 first = 12;
|
|
662
|
+
*/
|
|
663
|
+
first?: number | undefined;
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* @generated from field: optional int32 last = 13;
|
|
667
|
+
*/
|
|
668
|
+
last?: number | undefined;
|
|
631
669
|
};
|
|
632
670
|
|
|
633
671
|
/**
|
|
@@ -649,6 +687,26 @@ export declare type ListRecordsResponse = Message<"records.v1.ListRecordsRespons
|
|
|
649
687
|
* @generated from field: int32 total = 2;
|
|
650
688
|
*/
|
|
651
689
|
total: number;
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Cursor-page metadata. Always emitted when the caller sent first/last/
|
|
693
|
+
* after/before; empty for legacy limit/offset callers (Stage 6 removes
|
|
694
|
+
* the legacy path so this becomes always-populated).
|
|
695
|
+
*
|
|
696
|
+
* @generated from field: optional records.v1.PageInfo page_info = 3;
|
|
697
|
+
*/
|
|
698
|
+
pageInfo?: PageInfo | undefined;
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
* Per-record cursors aligned by index with `records`. Same length as
|
|
702
|
+
* `records` when cursor pagination is active; empty otherwise.
|
|
703
|
+
* api-public surfaces these as Relay edge cursors so frontends can
|
|
704
|
+
* anchor optimistic inserts / cache reconciliation / deep links to a
|
|
705
|
+
* specific row, not just page boundaries.
|
|
706
|
+
*
|
|
707
|
+
* @generated from field: repeated string cursors = 4;
|
|
708
|
+
*/
|
|
709
|
+
cursors: string[];
|
|
652
710
|
};
|
|
653
711
|
|
|
654
712
|
/**
|
|
@@ -657,6 +715,42 @@ export declare type ListRecordsResponse = Message<"records.v1.ListRecordsRespons
|
|
|
657
715
|
*/
|
|
658
716
|
export declare const ListRecordsResponseSchema: GenMessage<ListRecordsResponse>;
|
|
659
717
|
|
|
718
|
+
/**
|
|
719
|
+
* PageInfo carries the cursor-page metadata for ListRecordsResponse.
|
|
720
|
+
* has_next_page / has_previous_page are relative to the requested
|
|
721
|
+
* direction; under forward pagination has_previous_page is true when
|
|
722
|
+
* `after` was supplied, under backward it's the inverse.
|
|
723
|
+
*
|
|
724
|
+
* @generated from message records.v1.PageInfo
|
|
725
|
+
*/
|
|
726
|
+
export declare type PageInfo = Message<"records.v1.PageInfo"> & {
|
|
727
|
+
/**
|
|
728
|
+
* @generated from field: bool has_next_page = 1;
|
|
729
|
+
*/
|
|
730
|
+
hasNextPage: boolean;
|
|
731
|
+
|
|
732
|
+
/**
|
|
733
|
+
* @generated from field: bool has_previous_page = 2;
|
|
734
|
+
*/
|
|
735
|
+
hasPreviousPage: boolean;
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* @generated from field: optional string start_cursor = 3;
|
|
739
|
+
*/
|
|
740
|
+
startCursor?: string | undefined;
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* @generated from field: optional string end_cursor = 4;
|
|
744
|
+
*/
|
|
745
|
+
endCursor?: string | undefined;
|
|
746
|
+
};
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* Describes the message records.v1.PageInfo.
|
|
750
|
+
* Use `create(PageInfoSchema)` to create a new message.
|
|
751
|
+
*/
|
|
752
|
+
export declare const PageInfoSchema: GenMessage<PageInfo>;
|
|
753
|
+
|
|
660
754
|
/**
|
|
661
755
|
* @generated from message records.v1.UpdateRecordRequest
|
|
662
756
|
*/
|
|
@@ -667,6 +761,11 @@ export declare type UpdateRecordRequest = Message<"records.v1.UpdateRecordReques
|
|
|
667
761
|
id: string;
|
|
668
762
|
|
|
669
763
|
/**
|
|
764
|
+
* Flat-merge data: when set, this struct is appended via JSONB `||` —
|
|
765
|
+
* top-level keys overwrite, nested composites are replaced wholesale.
|
|
766
|
+
* Coexists with `typed_update` during the migration; Stage 6 removes
|
|
767
|
+
* this field in favor of the typed path.
|
|
768
|
+
*
|
|
670
769
|
* @generated from field: google.protobuf.Struct data = 2;
|
|
671
770
|
*/
|
|
672
771
|
data?: JsonObject | undefined;
|
|
@@ -675,6 +774,17 @@ export declare type UpdateRecordRequest = Message<"records.v1.UpdateRecordReques
|
|
|
675
774
|
* @generated from field: optional string natural_key = 3;
|
|
676
775
|
*/
|
|
677
776
|
naturalKey?: string | undefined;
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* Typed UpdateInput tree from Stage 4 of the query/mutate redesign.
|
|
780
|
+
* When set, the handler walks it and emits per-leaf jsonb_set /
|
|
781
|
+
* increment / push / pull / connect operations instead of a flat
|
|
782
|
+
* merge. Mutually exclusive with `data` — sending both is an error.
|
|
783
|
+
* See foir-platform/docs/query-mutate-redesign.md.
|
|
784
|
+
*
|
|
785
|
+
* @generated from field: optional google.protobuf.Struct typed_update = 4;
|
|
786
|
+
*/
|
|
787
|
+
typedUpdate?: JsonObject | undefined;
|
|
678
788
|
};
|
|
679
789
|
|
|
680
790
|
/**
|
|
@@ -2221,6 +2331,58 @@ export declare type DeleteEmbeddingsResponse = Message<"records.v1.DeleteEmbeddi
|
|
|
2221
2331
|
*/
|
|
2222
2332
|
export declare const DeleteEmbeddingsResponseSchema: GenMessage<DeleteEmbeddingsResponse>;
|
|
2223
2333
|
|
|
2334
|
+
/**
|
|
2335
|
+
* EnqueueGenerateEmbeddingRequest asks the platform to enqueue a
|
|
2336
|
+
* "generate this record's embedding" job onto its background queue.
|
|
2337
|
+
* The caller (api-public's generateEmbedding mutation) supplies the
|
|
2338
|
+
* triple (record_id, model_key, source) — everything else (queue
|
|
2339
|
+
* name, payload shape, broker connection) is owned by the platform.
|
|
2340
|
+
*
|
|
2341
|
+
* @generated from message records.v1.EnqueueGenerateEmbeddingRequest
|
|
2342
|
+
*/
|
|
2343
|
+
export declare type EnqueueGenerateEmbeddingRequest = Message<"records.v1.EnqueueGenerateEmbeddingRequest"> & {
|
|
2344
|
+
/**
|
|
2345
|
+
* @generated from field: string record_id = 1;
|
|
2346
|
+
*/
|
|
2347
|
+
recordId: string;
|
|
2348
|
+
|
|
2349
|
+
/**
|
|
2350
|
+
* @generated from field: string model_key = 2;
|
|
2351
|
+
*/
|
|
2352
|
+
modelKey: string;
|
|
2353
|
+
|
|
2354
|
+
/**
|
|
2355
|
+
* source labels who triggered the embed (e.g. "manual", "import",
|
|
2356
|
+
* "hook"). Echoed verbatim onto the job payload for the worker's
|
|
2357
|
+
* audit log. Empty when the caller doesn't know.
|
|
2358
|
+
*
|
|
2359
|
+
* @generated from field: optional string source = 3;
|
|
2360
|
+
*/
|
|
2361
|
+
source?: string | undefined;
|
|
2362
|
+
};
|
|
2363
|
+
|
|
2364
|
+
/**
|
|
2365
|
+
* Describes the message records.v1.EnqueueGenerateEmbeddingRequest.
|
|
2366
|
+
* Use `create(EnqueueGenerateEmbeddingRequestSchema)` to create a new message.
|
|
2367
|
+
*/
|
|
2368
|
+
export declare const EnqueueGenerateEmbeddingRequestSchema: GenMessage<EnqueueGenerateEmbeddingRequest>;
|
|
2369
|
+
|
|
2370
|
+
/**
|
|
2371
|
+
* @generated from message records.v1.EnqueueGenerateEmbeddingResponse
|
|
2372
|
+
*/
|
|
2373
|
+
export declare type EnqueueGenerateEmbeddingResponse = Message<"records.v1.EnqueueGenerateEmbeddingResponse"> & {
|
|
2374
|
+
/**
|
|
2375
|
+
* @generated from field: bool enqueued = 1;
|
|
2376
|
+
*/
|
|
2377
|
+
enqueued: boolean;
|
|
2378
|
+
};
|
|
2379
|
+
|
|
2380
|
+
/**
|
|
2381
|
+
* Describes the message records.v1.EnqueueGenerateEmbeddingResponse.
|
|
2382
|
+
* Use `create(EnqueueGenerateEmbeddingResponseSchema)` to create a new message.
|
|
2383
|
+
*/
|
|
2384
|
+
export declare const EnqueueGenerateEmbeddingResponseSchema: GenMessage<EnqueueGenerateEmbeddingResponse>;
|
|
2385
|
+
|
|
2224
2386
|
/**
|
|
2225
2387
|
* @generated from message records.v1.SearchEmbeddingsRequest
|
|
2226
2388
|
*/
|
|
@@ -3034,5 +3196,13 @@ export declare const RecordsService: GenService<{
|
|
|
3034
3196
|
input: typeof SearchEmbeddingsRequestSchema;
|
|
3035
3197
|
output: typeof SearchEmbeddingsResponseSchema;
|
|
3036
3198
|
},
|
|
3199
|
+
/**
|
|
3200
|
+
* @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
|
|
3201
|
+
*/
|
|
3202
|
+
enqueueGenerateEmbedding: {
|
|
3203
|
+
methodKind: "unary";
|
|
3204
|
+
input: typeof EnqueueGenerateEmbeddingRequestSchema;
|
|
3205
|
+
output: typeof EnqueueGenerateEmbeddingResponseSchema;
|
|
3206
|
+
},
|
|
3037
3207
|
}>;
|
|
3038
3208
|
|