@opsee/mcp-server 0.9.59 → 0.10.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.
Files changed (38) hide show
  1. package/gen/api/v1/billing_pb.d.ts +0 -40
  2. package/gen/api/v1/billing_pb.js +22 -36
  3. package/gen/api/v1/developer_metrics_pb.d.ts +9 -3
  4. package/gen/api/v1/developer_metrics_pb.js +2 -1
  5. package/gen/api/v1/models_pb.d.ts +116 -5
  6. package/gen/api/v1/models_pb.js +33 -26
  7. package/gen/api/v1/project_pb.d.ts +18 -13
  8. package/gen/api/v1/project_pb.js +1 -1
  9. package/gen/api/v1/vcs_connection_pb.d.ts +34 -3
  10. package/gen/api/v1/vcs_connection_pb.js +28 -20
  11. package/gen/api/v1/vcs_integration_pb.d.ts +11 -1
  12. package/gen/api/v1/vcs_integration_pb.js +2 -1
  13. package/gen/fk/foreign_key_pb.d.ts +22 -0
  14. package/gen/fk/foreign_key_pb.js +24 -0
  15. package/package.json +11 -11
  16. package/src/auth/kv-store.ts +12 -33
  17. package/src/auth/manager.ts +1 -6
  18. package/src/auth/oauth-provider.ts +32 -104
  19. package/src/auth/renew.ts +5 -15
  20. package/src/client/api.ts +3 -5
  21. package/src/server-http.ts +14 -30
  22. package/src/tools/acceptance-criteria.ts +4 -14
  23. package/src/tools/descriptions.ts +2 -7
  24. package/src/tools/doc-links.ts +4 -9
  25. package/src/tools/doc-spaces.ts +1 -1
  26. package/src/tools/docs.ts +8 -19
  27. package/src/tools/notifications.ts +2 -6
  28. package/src/tools/tasks-bulk.ts +3 -8
  29. package/src/tools/tasks-read-write.ts +1 -8
  30. package/src/utils/format/blocknote.ts +8 -23
  31. package/src/utils/tool-schema.ts +7 -29
  32. package/README.md +0 -304
  33. package/gen/api/v1/deployment_pb.d.ts +0 -277
  34. package/gen/api/v1/deployment_pb.js +0 -89
  35. package/gen/api/v1/environment_pb.d.ts +0 -277
  36. package/gen/api/v1/environment_pb.js +0 -89
  37. package/gen/api/v1/test_run_pb.d.ts +0 -277
  38. package/gen/api/v1/test_run_pb.js +0 -89
@@ -10,7 +10,7 @@ import { file_api_v1_vcs } from "./vcs_pb";
10
10
  * Describes the file api/v1/models.proto.
11
11
  */
12
12
  export const file_api_v1_models = /*@__PURE__*/
13
- fileDesc("ChNhcGkvdjEvbW9kZWxzLnByb3RvEgZhcGkudjEiJgoKUGVybWlzc2lvbhIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJImgKBFJvbGUSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIdCgdwYXJlbnRzGAMgAygLMgwuYXBpLnYxLlJvbGUSJwoLcGVybWlzc2lvbnMYBCADKAsyEi5hcGkudjEuUGVybWlzc2lvbiLhAgoEVXNlchIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEg0KBWVtYWlsGAIgASgJEhIKCmZpcnN0X25hbWUYAyABKAkSEQoJbGFzdF9uYW1lGAQgASgJEhEKCWZ1bGxfbmFtZRgFIAEoCRIVCg1wcm92aWRlcl9uYW1lGAYgASgJEhsKBXJvbGVzGAcgAygLMgwuYXBpLnYxLlJvbGUSJQoPZmxhdHRlbmVkX3JvbGVzGAggAygLMgwuYXBpLnYxLlJvbGUSEgoKY3JlYXRlZF9hdBgJIAEoCRISCgpjb21wYW55X2lkGAogASgNEiAKB2NvbXBhbnkYCyABKAsyDy5hcGkudjEuQ29tcGFueRINCgVwaG9uZRgMIAEoCRIYChBwaG9uZV9jb3VudHJ5X2lkGA0gASgNEhIKCmF2YXRhcl91cmwYDiABKAkSFAoMYXZhdGFyX2NvbG9yGA8gASgJItAECgdDb21wYW55EgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSDAoEbmFtZRgCIAEoCRIMCgRzbHVnGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESGAoLd2Vic2l0ZV91cmwYBSABKAlIAYgBARIVCghpbmR1c3RyeRgGIAEoCUgCiAEBEhEKBHNpemUYByABKAlIA4gBARIaCg1zZXR0aW5nc19qc29uGAggASgJSASIAQESEQoJaXNfYWN0aXZlGAkgASgIEhoKDWJpbGxpbmdfZW1haWwYCiABKAlIBYgBARIUCgdhZGRyZXNzGAsgASgJSAaIAQESFQoIYWRkcmVzczIYDCABKAlIB4gBARIRCgRjaXR5GA0gASgJSAiIAQESEgoFc3RhdGUYDiABKAlICYgBARIVCgh6aXBfY29kZRgPIAEoCUgKiAEBEhcKCmNvdW50cnlfaWQYECABKA1IC4gBARITCgZ0YXhfaWQYESABKAlIDIgBARIgCgdjb3VudHJ5GBIgASgLMg8uYXBpLnYxLkNvdW50cnlCDgoMX2Rlc2NyaXB0aW9uQg4KDF93ZWJzaXRlX3VybEILCglfaW5kdXN0cnlCBwoFX3NpemVCEAoOX3NldHRpbmdzX2pzb25CEAoOX2JpbGxpbmdfZW1haWxCCgoIX2FkZHJlc3NCCwoJX2FkZHJlc3MyQgcKBV9jaXR5QggKBl9zdGF0ZUILCglfemlwX2NvZGVCDQoLX2NvdW50cnlfaWRCCQoHX3RheF9pZCLkBAoMU3Vic2NyaXB0aW9uEgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSEgoKY29tcGFueV9pZBgCIAEoDRIaChJzdHJpcGVfY3VzdG9tZXJfaWQYAyABKAkSIwoWc3RyaXBlX3N1YnNjcmlwdGlvbl9pZBgEIAEoCUgAiAEBEg4KBnN0YXR1cxgFIAEoCRI9ChRjdXJyZW50X3BlcmlvZF9zdGFydBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChJjdXJyZW50X3BlcmlvZF9lbmQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESHgoRcGF5bWVudF9tZXRob2RfaWQYCCABKA1IA4gBARInCgVpdGVtcxgJIAMoCzIYLmFwaS52MS5TdWJzY3JpcHRpb25JdGVtEi0KDnBheW1lbnRfbWV0aG9kGAogASgLMhUuYXBpLnYxLlBheW1lbnRNZXRob2QSIAoHY29tcGFueRgLIAEoCzIPLmFwaS52MS5Db21wYW55Ei4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhkKF19zdHJpcGVfc3Vic2NyaXB0aW9uX2lkQhcKFV9jdXJyZW50X3BlcmlvZF9zdGFydEIVChNfY3VycmVudF9wZXJpb2RfZW5kQhQKEl9wYXltZW50X21ldGhvZF9pZCKAAgoQU3Vic2NyaXB0aW9uSXRlbRIKCgJpZBgBIAEoDRIXCg9zdWJzY3JpcHRpb25faWQYAiABKA0SFAoMcHJvZHVjdF90eXBlGAMgASgJEhAKCHF1YW50aXR5GAQgASgFEhIKCnVuaXRfcHJpY2UYBSABKAMSGAoQYmlsbGluZ19pbnRlcnZhbBgGIAEoCRIRCglpc19hY3RpdmUYByABKAgSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAixAIKDVBheW1lbnRNZXRob2QSCgoCaWQYASABKA0SDAoEdXVpZBgyIAEoCRISCgpjb21wYW55X2lkGAIgASgNEhgKEHN0cmlwZV9tZXRob2RfaWQYAyABKAkSDAoEdHlwZRgEIAEoCRINCgVsYXN0NBgFIAEoCRINCgVicmFuZBgGIAEoCRIUCgxleHBpcnlfbW9udGgYByABKAUSEwoLZXhwaXJ5X3llYXIYCCABKAUSEgoKaXNfZGVmYXVsdBgJIAEoCBIgCgdjb21wYW55GAogASgLMg8uYXBpLnYxLkNvbXBhbnkSLgoKY3JlYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAioAIKDVByb2R1Y3RDb25maWcSCgoCaWQYASABKA0SFAoMcHJvZHVjdF90eXBlGAIgASgJEhUKDW1vbnRobHlfcHJpY2UYAyABKAMSFAoMeWVhcmx5X3ByaWNlGAQgASgDEhUKDWZyZWVfcXVhbnRpdHkYBSABKAUSFAoMaXNfcmVjdXJyaW5nGAYgASgIEhkKEXN0cmlwZV9tb250aGx5X2lkGAcgASgJEhgKEHN0cmlwZV95ZWFybHlfaWQYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAizAIKDkNvbXBhbnlDcmVkaXRzEgoKAmlkGAEgASgNEhIKCmNvbXBhbnlfaWQYAiABKA0SFQoNdG90YWxfY3JlZGl0cxgDIAEoBRIUCgx1c2VkX2NyZWRpdHMYBCABKAUSGQoRYXZhaWxhYmxlX2NyZWRpdHMYBSABKAUSOgoRbGFzdF9hbGxvY2F0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESIAoHY29tcGFueRgHIAEoCzIPLmFwaS52MS5Db21wYW55Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhQKEl9sYXN0X2FsbG9jYXRlZF9hdCKjAgoRQ3JlZGl0VHJhbnNhY3Rpb24SCgoCaWQYASABKA0SEgoKY29tcGFueV9pZBgCIAEoDRIOCgZhbW91bnQYAyABKAUSDgoGcmVhc29uGAQgASgJEhgKC2VudGl0eV90eXBlGAUgASgJSACIAQESFgoJZW50aXR5X2lkGAYgASgJSAGIAQESGgoNbWV0YWRhdGFfanNvbhgHIAEoCUgCiAEBEiAKB2NvbXBhbnkYCCABKAsyDy5hcGkudjEuQ29tcGFueRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZEIQCg5fbWV0YWRhdGFfanNvbiL0AQoHUHJvamVjdBIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEgwKBG5hbWUYAiABKAkSDAoEc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgFIAEoCBIaCg1zZXR0aW5nc19qc29uGAYgASgJSAGIAQESEgoKY29tcGFueV9pZBgHIAEoDRIgCgdjb21wYW55GAggASgLMg8uYXBpLnYxLkNvbXBhbnkSEgoKc2hvcnRfbmFtZRgJIAEoCUIOCgxfZGVzY3JpcHRpb25CEAoOX3NldHRpbmdzX2pzb24ipQEKEVByb2plY3RNZW1iZXJzaGlwEgoKAmlkGAEgASgNEgwKBHJvbGUYAiABKAkSEwoLaXNfZmF2b3JpdGUYAyABKAgSEgoKcHJvamVjdF9pZBgEIAEoDRIgCgdwcm9qZWN0GAUgASgLMg8uYXBpLnYxLlByb2plY3QSDwoHdXNlcl9pZBgGIAEoDRIaCgR1c2VyGAcgASgLMgwuYXBpLnYxLlVzZXIiwgIKCERvY1NwYWNlEgoKAmlkGAEgASgNEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEhIKCnByb2plY3RfaWQYByABKA0SIAoHcHJvamVjdBgIIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgJIAEoDRIlCg9jcmVhdGVkX2J5X3VzZXIYCiABKAsyDC5hcGkudjEuVXNlchIaChJ1cGRhdGVkX2J5X3VzZXJfaWQYCyABKA0SJQoPdXBkYXRlZF9ieV91c2VyGAwgASgLMgwuYXBpLnYxLlVzZXJCDgoMX2Rlc2NyaXB0aW9uIvsDCgdEb2NQYWdlEgoKAmlkGAEgASgNEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSFwoPY3VycmVudF9jb250ZW50GAQgASgJEhQKDGNvbnRlbnRfdHlwZRgFIAEoCRIeChZjdXJyZW50X3ZlcnNpb25fbnVtYmVyGAYgASgFEg8KB2lzX3Jvb3QYByABKAgSEwoLaXNfYXJjaGl2ZWQYCCABKAgSFQoNZGlzcGxheV9vcmRlchgJIAEoBRIUCgxkb2Nfc3BhY2VfaWQYCiABKA0SIwoJZG9jX3NwYWNlGAsgASgLMhAuYXBpLnYxLkRvY1NwYWNlEhsKDnBhcmVudF9wYWdlX2lkGAwgASgNSACIAQESJAoLcGFyZW50X3BhZ2UYDSABKAsyDy5hcGkudjEuRG9jUGFnZRIkCgtjaGlsZF9wYWdlcxgOIAMoCzIPLmFwaS52MS5Eb2NQYWdlEhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgPIAEoDRIlCg9jcmVhdGVkX2J5X3VzZXIYECABKAsyDC5hcGkudjEuVXNlchIaChJ1cGRhdGVkX2J5X3VzZXJfaWQYESABKA0SJQoPdXBkYXRlZF9ieV91c2VyGBIgASgLMgwuYXBpLnYxLlVzZXJCEQoPX3BhcmVudF9wYWdlX2lkIvUCCg5Eb2NQYWdlVmVyc2lvbhIKCgJpZBgBIAEoDRIWCg52ZXJzaW9uX251bWJlchgCIAEoBRINCgV0aXRsZRgDIAEoCRIPCgdjb250ZW50GAQgASgJEhQKDGNvbnRlbnRfdHlwZRgFIAEoCRIbCg5jaGFuZ2Vfc3VtbWFyeRgGIAEoCUgAiAEBEhMKC2RvY19wYWdlX2lkGAcgASgNEiEKCGRvY19wYWdlGAggASgLMg8uYXBpLnYxLkRvY1BhZ2USGgoSY3JlYXRlZF9ieV91c2VyX2lkGAkgASgNEiUKD2NyZWF0ZWRfYnlfdXNlchgKIAEoCzIMLmFwaS52MS5Vc2VyEi4KCmNyZWF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhEKD19jaGFuZ2Vfc3VtbWFyeSKQCAoOVkNTSW50ZWdyYXRpb24SCgoCaWQYASABKA0SEgoKcmVwb19vd25lchgCIAEoCRIRCglyZXBvX25hbWUYAyABKAkSFwoPdG9rZW5fZW5jcnlwdGVkGAQgASgJEhYKDmRlZmF1bHRfYnJhbmNoGAUgASgJEhsKDndlYmhvb2tfc2VjcmV0GAYgASgJSACIAQESHQoQcGVybWlzc2lvbnNfanNvbhgHIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgIIAEoCBISCgpwcm9qZWN0X2lkGAkgASgNEiAKB3Byb2plY3QYCiABKAsyDy5hcGkudjEuUHJvamVjdBIcCg9pbnN0YWxsYXRpb25faWQYCyABKANIAogBARITCgZhcHBfaWQYDCABKAlIA4gBARIpChxpbnN0YWxsYXRpb25fdG9rZW5fZW5jcnlwdGVkGA0gASgJSASIAQESRgodaW5zdGFsbGF0aW9uX3Rva2VuX2V4cGlyZXNfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESGAoLb2F1dGhfc3RhdGUYDyABKAlIBogBARIYChBhdXRvX3N5bmNfaXNzdWVzGBAgASgIEhoKEmVuYWJsZV9wcl93ZWJob29rcxgRIAEoCBIlCghwcm92aWRlchgeIAEoDjITLmFwaS52MS5WQ1NQcm92aWRlchIZCgxpbnN0YW5jZV91cmwYHyABKAlIB4gBARIjChZhY2Nlc3NfdG9rZW5fZW5jcnlwdGVkGCAgASgJSAiIAQESJAoXcmVmcmVzaF90b2tlbl9lbmNyeXB0ZWQYISABKAlICYgBARI5ChB0b2tlbl9leHBpcmVzX2F0GCIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEhwKD2dpdGxhYl9ncm91cF9pZBgjIAEoA0gLiAEBEhsKDmdpdGxhYl91c2VyX2lkGCQgASgDSAyIAQFCEQoPX3dlYmhvb2tfc2VjcmV0QhMKEV9wZXJtaXNzaW9uc19qc29uQhIKEF9pbnN0YWxsYXRpb25faWRCCQoHX2FwcF9pZEIfCh1faW5zdGFsbGF0aW9uX3Rva2VuX2VuY3J5cHRlZEIgCh5faW5zdGFsbGF0aW9uX3Rva2VuX2V4cGlyZXNfYXRCDgoMX29hdXRoX3N0YXRlQg8KDV9pbnN0YW5jZV91cmxCGQoXX2FjY2Vzc190b2tlbl9lbmNyeXB0ZWRCGgoYX3JlZnJlc2hfdG9rZW5fZW5jcnlwdGVkQhMKEV90b2tlbl9leHBpcmVzX2F0QhIKEF9naXRsYWJfZ3JvdXBfaWRCEQoPX2dpdGxhYl91c2VyX2lkItAEChFQcm9qZWN0UmVwb3NpdG9yeRIKCgJpZBgBIAEoDRISCgpwcm9qZWN0X2lkGAIgASgNEiAKB3Byb2plY3QYAyABKAsyDy5hcGkudjEuUHJvamVjdBIaChJ2Y3NfaW50ZWdyYXRpb25faWQYBCABKA0SLwoPdmNzX2ludGVncmF0aW9uGAUgASgLMhYuYXBpLnYxLlZDU0ludGVncmF0aW9uEhUKDXJlcG9zaXRvcnlfaWQYBiABKAMSGAoQcmVwb3NpdG9yeV9vd25lchgHIAEoCRIXCg9yZXBvc2l0b3J5X25hbWUYCCABKAkSHAoUcmVwb3NpdG9yeV9mdWxsX25hbWUYCSABKAkSFgoOZGVmYXVsdF9icmFuY2gYCiABKAkSEgoKaXNfcHJpdmF0ZRgLIAEoCBIYCgtkZXNjcmlwdGlvbhgMIAEoCUgAiAEBEgsKA3VybBgNIAEoCRIRCglpc19hY3RpdmUYDiABKAgSLgoKY3JlYXRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQYXV0b19zeW5jX2lzc3VlcxgRIAEoCBIaChJlbmFibGVfcHJfd2ViaG9va3MYEiABKAgSJQoIcHJvdmlkZXIYEyABKA4yEy5hcGkudjEuVkNTUHJvdmlkZXISEQoJY2xvbmVfdXJsGBQgASgJQg4KDF9kZXNjcmlwdGlvbiK5AQoFQm9hcmQSCgoCaWQYASABKA0SDAoEdXVpZBgyIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESFQoNZGlzcGxheV9vcmRlchgEIAEoBRIRCglpc19hY3RpdmUYBSABKAgSEgoKcHJvamVjdF9pZBgGIAEoDRIgCgdwcm9qZWN0GAcgASgLMg8uYXBpLnYxLlByb2plY3RCDgoMX2Rlc2NyaXB0aW9uIo4CCgVDeWNsZRIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEhEKBGdvYWwYAyABKAlIAIgBARIuCgpzdGFydF9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRfZGF0ZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKcHJvamVjdF9pZBgGIAEoDRIgCgdwcm9qZWN0GAcgASgLMg8uYXBpLnYxLlByb2plY3QSEQoJaXNfYWN0aXZlGAggASgIEhgKC2Rlc2NyaXB0aW9uGAkgASgJSAGIAQFCBwoFX2dvYWxCDgoMX2Rlc2NyaXB0aW9uIt8BCgtCb2FyZENvbHVtbhIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEgwKBG5hbWUYAiABKAkSFQoNZGlzcGxheV9vcmRlchgDIAEoBRISCgVjb2xvchgEIAEoCUgAiAEBEhwKD2xpZmVjeWNsZV9zdGF0ZRgFIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgGIAEoCBIQCghib2FyZF9pZBgHIAEoDRIcCgVib2FyZBgIIAEoCzINLmFwaS52MS5Cb2FyZEIICgZfY29sb3JCEgoQX2xpZmVjeWNsZV9zdGF0ZSK+AQoIVGFza1R5cGUSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRISCgVjb2xvchgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARISCgpwcm9qZWN0X2lkGAUgASgNEiAKB3Byb2plY3QYBiABKAsyDy5hcGkudjEuUHJvamVjdBIVCg1kaXNwbGF5X29yZGVyGAcgASgFEhEKCWlzX2FjdGl2ZRgIIAEoCEIICgZfY29sb3JCBwoFX2ljb24ingEKDFRhc2tQcmlvcml0eRIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEg0KBWxldmVsGAMgASgFEhIKBWNvbG9yGAQgASgJSACIAQESEgoKcHJvamVjdF9pZBgFIAEoDRIgCgdwcm9qZWN0GAYgASgLMg8uYXBpLnYxLlByb2plY3QSEQoJaXNfYWN0aXZlGAcgASgIQggKBl9jb2xvciKjAQoFTGFiZWwSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRINCgVjb2xvchgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgNEiAKB3Byb2plY3QYBSABKAsyDy5hcGkudjEuUHJvamVjdBIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgHIAEoCEIOCgxfZGVzY3JpcHRpb24i5QEKCUNvbXBvbmVudBIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEgoKcHJvamVjdF9pZBgEIAEoDRIgCgdwcm9qZWN0GAUgASgLMg8uYXBpLnYxLlByb2plY3QSGQoMbGVhZF91c2VyX2lkGAYgASgNSAGIAQESHwoJbGVhZF91c2VyGAcgASgLMgwuYXBpLnYxLlVzZXISEQoJaXNfYWN0aXZlGAggASgIQg4KDF9kZXNjcmlwdGlvbkIPCg1fbGVhZF91c2VyX2lkIssOCgRUYXNrEgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSEgoKaWRlbnRpZmllchgCIAEoCRINCgV0aXRsZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWRpc3BsYXlfb3JkZXIYBSABKAkSGQoMc3RvcnlfcG9pbnRzGAYgASgFSAGIAQESHAoPZXN0aW1hdGVkX2hvdXJzGAcgASgBSAKIAQESGQoMYWN0dWFsX2hvdXJzGAggASgBSAOIAQESLAoIZHVlX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2FpX21vZGVfZW5hYmxlZBgKIAEoCBIaCg1tZXRhZGF0YV9qc29uGAsgASgJSASIAQESEAoIYm9hcmRfaWQYDCABKA0SHAoFYm9hcmQYDSABKAsyDS5hcGkudjEuQm9hcmQSFwoPYm9hcmRfY29sdW1uX2lkGA4gASgNEikKDGJvYXJkX2NvbHVtbhgPIAEoCzITLmFwaS52MS5Cb2FyZENvbHVtbhISCgpwcm9qZWN0X2lkGBAgASgNEiAKB3Byb2plY3QYESABKAsyDy5hcGkudjEuUHJvamVjdBIUCgx0YXNrX3R5cGVfaWQYEiABKA0SIwoJdGFza190eXBlGBMgASgLMhAuYXBpLnYxLlRhc2tUeXBlEhgKEHRhc2tfcHJpb3JpdHlfaWQYFCABKA0SKwoNdGFza19wcmlvcml0eRgVIAEoCzIULmFwaS52MS5UYXNrUHJpb3JpdHkSGAoQcmVwb3J0ZXJfdXNlcl9pZBgWIAEoDRIjCg1yZXBvcnRlcl91c2VyGBcgASgLMgwuYXBpLnYxLlVzZXISHQoQYXNzaWduZWRfdXNlcl9pZBgYIAEoDUgFiAEBEiMKDWFzc2lnbmVkX3VzZXIYGSABKAsyDC5hcGkudjEuVXNlchIbCg5wYXJlbnRfdGFza19pZBgaIAEoDUgGiAEBEiEKC3BhcmVudF90YXNrGBsgASgLMgwuYXBpLnYxLlRhc2sSEgoKY29tcGFueV9pZBgcIAEoDRIgCgdjb21wYW55GB0gASgLMg8uYXBpLnYxLkNvbXBhbnkSJgoLdGFza19sYWJlbHMYHiADKAsyES5hcGkudjEuVGFza0xhYmVsEi4KD3Rhc2tfY29tcG9uZW50cxgfIAMoCzIVLmFwaS52MS5UYXNrQ29tcG9uZW50EjIKEXRhc2tfY29udHJpYnV0b3JzGCAgAygLMhcuYXBpLnYxLlRhc2tDb250cmlidXRvchIxChF0YXNrX3JlcG9zaXRvcmllcxghIAMoCzIWLmFwaS52MS5UYXNrUmVwb3NpdG9yeRIzChJ0YXNrX3B1bGxfcmVxdWVzdHMYIiADKAsyFy5hcGkudjEuVGFza1B1bGxSZXF1ZXN0EhUKCGN5Y2xlX2lkGCMgASgNSAeIAQESHAoFY3ljbGUYJCABKAsyDS5hcGkudjEuQ3ljbGUSIgoJd29ya19sb2dzGCUgAygLMg8uYXBpLnYxLldvcmtMb2cSNAoLcmVzb2x2ZWRfYXQYJiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAiIAQESKwoOdGFza19kb2NfcGFnZXMYJyADKAsyEy5hcGkudjEuVGFza0RvY1BhZ2USLAoOdGFza19kb2N1bWVudHMYKCADKAsyFC5hcGkudjEuVGFza0RvY3VtZW50Ei4KCmNyZWF0ZWRfYXQYKSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYKiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiQKCW1pbGVzdG9uZRgrIAEoCzIRLmFwaS52MS5NaWxlc3RvbmUSOgoadGFza19kZXBlbmRlbmNpZXNfb3V0Z29pbmcYLCADKAsyFi5hcGkudjEuVGFza0RlcGVuZGVuY3kSOgoadGFza19kZXBlbmRlbmNpZXNfaW5jb21pbmcYLSADKAsyFi5hcGkudjEuVGFza0RlcGVuZGVuY3kSGQoMbWlsZXN0b25lX2lkGC4gASgNSAmIAQESGgoNaW5pdGlhdGl2ZV9pZBgvIAEoDUgKiAEBEiYKCmluaXRpYXRpdmUYMCABKAsyEi5hcGkudjEuSW5pdGlhdGl2ZUIOCgxfZGVzY3JpcHRpb25CDwoNX3N0b3J5X3BvaW50c0ISChBfZXN0aW1hdGVkX2hvdXJzQg8KDV9hY3R1YWxfaG91cnNCEAoOX21ldGFkYXRhX2pzb25CEwoRX2Fzc2lnbmVkX3VzZXJfaWRCEQoPX3BhcmVudF90YXNrX2lkQgsKCV9jeWNsZV9pZEIOCgxfcmVzb2x2ZWRfYXRCDwoNX21pbGVzdG9uZV9pZEIQCg5faW5pdGlhdGl2ZV9pZCJ0CglUYXNrTGFiZWwSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIaCgR0YXNrGAMgASgLMgwuYXBpLnYxLlRhc2sSEAoIbGFiZWxfaWQYBCABKA0SHAoFbGFiZWwYBSABKAsyDS5hcGkudjEuTGFiZWwihQEKD1Rhc2tDb250cmlidXRvchIKCgJpZBgBIAEoDRIMCgRyb2xlGAIgASgJEg8KB3Rhc2tfaWQYAyABKA0SGgoEdGFzaxgEIAEoCzIMLmFwaS52MS5UYXNrEg8KB3VzZXJfaWQYBSABKA0SGgoEdXNlchgGIAEoCzIMLmFwaS52MS5Vc2VyIoQBCg1UYXNrQ29tcG9uZW50EgoKAmlkGAEgASgNEg8KB3Rhc2tfaWQYAiABKA0SGgoEdGFzaxgDIAEoCzIMLmFwaS52MS5UYXNrEhQKDGNvbXBvbmVudF9pZBgEIAEoDRIkCgljb21wb25lbnQYBSABKAsyES5hcGkudjEuQ29tcG9uZW50ItABCg5UYXNrUmVwb3NpdG9yeRIKCgJpZBgBIAEoDRIPCgd0YXNrX2lkGAIgASgNEhoKEnZjc19pbnRlZ3JhdGlvbl9pZBgEIAEoDRIvCg92Y3NfaW50ZWdyYXRpb24YBSABKAsyFi5hcGkudjEuVkNTSW50ZWdyYXRpb24SHQoVcHJvamVjdF9yZXBvc2l0b3J5X2lkGAYgASgNEjUKEnByb2plY3RfcmVwb3NpdG9yeRgHIAEoCzIZLmFwaS52MS5Qcm9qZWN0UmVwb3NpdG9yeSJ2CgtUYXNrRG9jUGFnZRIKCgJpZBgBIAEoDRIPCgd0YXNrX2lkGAIgASgNEhMKC2RvY19wYWdlX2lkGAMgASgNEiEKCGRvY19wYWdlGAQgASgLMg8uYXBpLnYxLkRvY1BhZ2USEgoKY29tcGFueV9pZBgFIAEoDSJ4CgxUYXNrRG9jdW1lbnQSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRITCgtkb2N1bWVudF9pZBgDIAEoDRIiCghkb2N1bWVudBgEIAEoCzIQLmFwaS52MS5Eb2N1bWVudBISCgpjb21wYW55X2lkGAUgASgNIukBCg9UYXNrUHVsbFJlcXVlc3QSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIdChVwcm9qZWN0X3JlcG9zaXRvcnlfaWQYAyABKA0SNQoScHJvamVjdF9yZXBvc2l0b3J5GAQgASgLMhkuYXBpLnYxLlByb2plY3RSZXBvc2l0b3J5EhEKCXByX251bWJlchgFIAEoBRINCgV0aXRsZRgGIAEoCRILCgN1cmwYByABKAkSDQoFc3RhdGUYCCABKAkSJQoIcHJvdmlkZXIYCSABKA4yEy5hcGkudjEuVkNTUHJvdmlkZXIi3wMKB0NvbW1lbnQSCgoCaWQYASABKA0SDwoHY29udGVudBgCIAEoCRITCgtpc19pbnRlcm5hbBgDIAEoCBIUCgd0YXNrX2lkGAQgASgNSACIAQESGgoEdGFzaxgFIAEoCzIMLmFwaS52MS5UYXNrEhgKC2RvY19wYWdlX2lkGAYgASgNSAGIAQESIQoIZG9jX3BhZ2UYByABKAsyDy5hcGkudjEuRG9jUGFnZRIPCgd1c2VyX2lkGAggASgNEhoKBHVzZXIYCSABKAsyDC5hcGkudjEuVXNlchISCgpjb21wYW55X2lkGAogASgNEiAKB2NvbXBhbnkYCyABKAsyDy5hcGkudjEuQ29tcGFueRIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaCg1pbml0aWF0aXZlX2lkGA4gASgNSAKIAQESJgoKaW5pdGlhdGl2ZRgPIAEoCzISLmFwaS52MS5Jbml0aWF0aXZlQgoKCF90YXNrX2lkQg4KDF9kb2NfcGFnZV9pZEIQCg5faW5pdGlhdGl2ZV9pZCL8AgoKQXR0YWNobWVudBIKCgJpZBgBIAEoDRIQCghmaWxlbmFtZRgCIAEoCRIRCglmaWxlX3NpemUYAyABKAMSEQoJbWltZV90eXBlGAQgASgJEhQKDHN0b3JhZ2VfcGF0aBgFIAEoCRIXCgpwdWJsaWNfdXJsGAYgASgJSACIAQESFAoHdGFza19pZBgHIAEoDUgBiAEBEhoKBHRhc2sYCCABKAsyDC5hcGkudjEuVGFzaxIYCgtkb2NfcGFnZV9pZBgJIAEoDUgCiAEBEiEKCGRvY19wYWdlGAogASgLMg8uYXBpLnYxLkRvY1BhZ2USDwoHdXNlcl9pZBgLIAEoDRIaCgR1c2VyGAwgASgLMgwuYXBpLnYxLlVzZXISEgoKY29tcGFueV9pZBgNIAEoDRIgCgdjb21wYW55GA4gASgLMg8uYXBpLnYxLkNvbXBhbnlCDQoLX3B1YmxpY191cmxCCgoIX3Rhc2tfaWRCDgoMX2RvY19wYWdlX2lkIlEKC0FJUnVuU3RhdHVzEgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iaAoLQUlVbml0U3RhZ2USCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhUKDWRpc3BsYXlfb3JkZXIYBCABKAVCDgoMX2Rlc2NyaXB0aW9uIlIKDEFJVW5pdFN0YXR1cxIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uIlQKDkFJVW5pdENhdGVnb3J5EgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i6AUKDUFJV29ya2Zsb3dSdW4SCgoCaWQYASABKA0SHQoVYWlfY3JlZGl0c191c2VkX3RvdGFsGAIgASgFEhoKDW1ldGFkYXRhX2pzb24YAyABKAlIAIgBARIPCgd0YXNrX2lkGAQgASgNEhoKBHRhc2sYBSABKAsyDC5hcGkudjEuVGFzaxIcChR0cmlnZ2VyZWRfYnlfdXNlcl9pZBgGIAEoDRInChF0cmlnZ2VyZWRfYnlfdXNlchgHIAEoCzIMLmFwaS52MS5Vc2VyEhgKEGFpX3J1bl9zdGF0dXNfaWQYCCABKA0SKgoNYWlfcnVuX3N0YXR1cxgJIAEoCzITLmFwaS52MS5BSVJ1blN0YXR1cxIdChBjdXJyZW50X3N0YWdlX2lkGAogASgNSAGIAQESKgoNY3VycmVudF9zdGFnZRgLIAEoCzITLmFwaS52MS5BSVVuaXRTdGFnZRIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRuYW1lGA4gASgJEjMKCnN0YXJ0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESNQoMY29tcGxldGVkX2F0GBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEiIKFXJlc3RhcnRlZF9mcm9tX3J1bl9pZBgRIAEoDUgEiAEBEhoKDXNvdXJjZV9icmFuY2gYEiABKAlIBYgBAUIQCg5fbWV0YWRhdGFfanNvbkITChFfY3VycmVudF9zdGFnZV9pZEINCgtfc3RhcnRlZF9hdEIPCg1fY29tcGxldGVkX2F0QhgKFl9yZXN0YXJ0ZWRfZnJvbV9ydW5faWRCEAoOX3NvdXJjZV9icmFuY2gi+wcKDkFJV29ya2Zsb3dVbml0EgoKAmlkGAEgASgNEhYKDnNlcXVlbmNlX29yZGVyGAIgASgFEhgKEHdvcmtfZGVzY3JpcHRpb24YAyABKAkSFwoKdmNzX2JyYW5jaBgEIAEoCUgAiAEBEhcKCnZjc19wcl91cmwYBSABKAlIAYgBARIbCg5kZXBsb3ltZW50X3VybBgGIAEoCUgCiAEBEh4KEXRlc3RfcmVzdWx0c19qc29uGAcgASgJSAOIAQESFgoJZXJyb3JfbG9nGAggASgJSASIAQESFwoPYWlfY3JlZGl0c191c2VkGAkgASgFEhoKDW1ldGFkYXRhX2pzb24YCiABKAlIBYgBARIaChJhaV93b3JrZmxvd19ydW5faWQYCyABKA0SLgoPYWlfd29ya2Zsb3dfcnVuGAwgASgLMhUuYXBpLnYxLkFJV29ya2Zsb3dSdW4SDwoHdGFza19pZBgNIAEoDRIaCgR0YXNrGA4gASgLMgwuYXBpLnYxLlRhc2sSGgoSdmNzX2ludGVncmF0aW9uX2lkGA8gASgNEi8KD3Zjc19pbnRlZ3JhdGlvbhgQIAEoCzIWLmFwaS52MS5WQ1NJbnRlZ3JhdGlvbhIgChNhaV91bml0X2NhdGVnb3J5X2lkGBEgASgNSAaIAQESMAoQYWlfdW5pdF9jYXRlZ29yeRgSIAEoCzIWLmFwaS52MS5BSVVuaXRDYXRlZ29yeRIYChBhaV91bml0X3N0YWdlX2lkGBMgASgNEioKDWFpX3VuaXRfc3RhZ2UYFCABKAsyEy5hcGkudjEuQUlVbml0U3RhZ2USGQoRYWlfdW5pdF9zdGF0dXNfaWQYFSABKA0SLAoOYWlfdW5pdF9zdGF0dXMYFiABKAsyFC5hcGkudjEuQUlVbml0U3RhdHVzEh8KEmRlcGVuZHNfb25fdW5pdF9pZBgXIAEoDUgHiAEBEi8KD2RlcGVuZHNfb25fdW5pdBgYIAEoCzIWLmFwaS52MS5BSVdvcmtmbG93VW5pdBIuCgpjcmVhdGVkX2F0GBkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfdmNzX2JyYW5jaEINCgtfdmNzX3ByX3VybEIRCg9fZGVwbG95bWVudF91cmxCFAoSX3Rlc3RfcmVzdWx0c19qc29uQgwKCl9lcnJvcl9sb2dCEAoOX21ldGFkYXRhX2pzb25CFgoUX2FpX3VuaXRfY2F0ZWdvcnlfaWRCFQoTX2RlcGVuZHNfb25fdW5pdF9pZCL/AQoLRW52aXJvbm1lbnQSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIRCgR0eXBlGAMgASgJSACIAQESGgoNazhzX25hbWVzcGFjZRgEIAEoCUgBiAEBEhgKC2Jhc2VfZG9tYWluGAUgASgJSAKIAQESGgoNbWV0YWRhdGFfanNvbhgGIAEoCUgDiAEBEhIKCnByb2plY3RfaWQYByABKA0SIAoHcHJvamVjdBgIIAEoCzIPLmFwaS52MS5Qcm9qZWN0QgcKBV90eXBlQhAKDl9rOHNfbmFtZXNwYWNlQg4KDF9iYXNlX2RvbWFpbkIQCg5fbWV0YWRhdGFfanNvbiKiAgoKRGVwbG95bWVudBIKCgJpZBgBIAEoDRIOCgZzdGF0dXMYAiABKAkSEAoDdXJsGAMgASgJSACIAQESFQoIbG9nc191cmwYBCABKAlIAYgBARIaCg1tZXRhZGF0YV9qc29uGAUgASgJSAKIAQESFgoOZW52aXJvbm1lbnRfaWQYBiABKA0SKAoLZW52aXJvbm1lbnQYByABKAsyEy5hcGkudjEuRW52aXJvbm1lbnQSGgoSYWlfd29ya2Zsb3dfcnVuX2lkGAggASgNEi4KD2FpX3dvcmtmbG93X3J1bhgJIAEoCzIVLmFwaS52MS5BSVdvcmtmbG93UnVuQgYKBF91cmxCCwoJX2xvZ3NfdXJsQhAKDl9tZXRhZGF0YV9qc29uIvwBCgdUZXN0UnVuEgoKAmlkGAEgASgNEgwKBHR5cGUYAiABKAkSDgoGc3RhdHVzGAMgASgJEhYKCWZyYW1ld29yaxgEIAEoCUgAiAEBEhcKCnJlcG9ydF91cmwYBSABKAlIAYgBARIZCgxyZXN1bHRzX2pzb24YBiABKAlIAogBARIbChNhaV93b3JrZmxvd191bml0X2lkGAcgASgNEjAKEGFpX3dvcmtmbG93X3VuaXQYCCABKAsyFi5hcGkudjEuQUlXb3JrZmxvd1VuaXRCDAoKX2ZyYW1ld29ya0INCgtfcmVwb3J0X3VybEIPCg1fcmVzdWx0c19qc29uIsQCCgtBY3Rpdml0eUxvZxIKCgJpZBgBIAEoDRIOCgZhY3Rpb24YAiABKAkSEwoLZW50aXR5X3R5cGUYAyABKAkSEQoJZW50aXR5X2lkGAQgASgNEhMKC2Rlc2NyaXB0aW9uGAUgASgJEhoKDW1ldGFkYXRhX2pzb24YBiABKAlIAIgBARIXCgppcF9hZGRyZXNzGAcgASgJSAGIAQESFAoHdXNlcl9pZBgIIAEoDUgCiAEBEhoKBHVzZXIYCSABKAsyDC5hcGkudjEuVXNlchIXCgpwcm9qZWN0X2lkGAogASgNSAOIAQESIAoHcHJvamVjdBgLIAEoCzIPLmFwaS52MS5Qcm9qZWN0QhAKDl9tZXRhZGF0YV9qc29uQg0KC19pcF9hZGRyZXNzQgoKCF91c2VyX2lkQg0KC19wcm9qZWN0X2lkIocDCgxOb3RpZmljYXRpb24SCgoCaWQYASABKA0SDQoFdGl0bGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIZChFub3RpZmljYXRpb25fdHlwZRgEIAEoCRIYCgtlbnRpdHlfdHlwZRgFIAEoCUgAiAEBEhYKCWVudGl0eV9pZBgGIAEoDUgBiAEBEhcKCmFjdGlvbl91cmwYByABKAlIAogBARIPCgdpc19yZWFkGAggASgIEhYKDnNlbnRfdmlhX2VtYWlsGAkgASgIEhoKDW1ldGFkYXRhX2pzb24YCiABKAlIA4gBARIPCgd1c2VyX2lkGAsgASgNEhoKBHVzZXIYDCABKAsyDC5hcGkudjEuVXNlchISCgpjb21wYW55X2lkGA0gASgNEiAKB2NvbXBhbnkYDiABKAsyDy5hcGkudjEuQ29tcGFueUIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZEINCgtfYWN0aW9uX3VybEIQCg5fbWV0YWRhdGFfanNvbiJbCgdDb3VudHJ5EgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSEAoIaXNvX2NvZGUYAyABKAkSEQoJaXNvX2NvZGUyGAQgASgJEhEKCWRpYWxfY29kZRgFIAEoCSL1BAoIRG9jdW1lbnQSCgoCaWQYASABKA0SDAoEdXVpZBgyIAEoCRIQCghmaWxlbmFtZRgCIAEoCRIRCgltaW1lX3R5cGUYAyABKAkSDAoEc2l6ZRgEIAEoAxITCgtzdG9yYWdlX3VybBgFIAEoCRITCgZzaGEyNTYYBiABKAlIAIgBARIWCglkaXNrX25hbWUYByABKAlIAYgBARIRCgRraW5kGAggASgJSAKIAQESEQoJaXNfZm9sZGVyGAkgASgIEhYKCWZ1bGxfcGF0aBgKIAEoCUgDiAEBEh0KEHBhcmVudF9mb2xkZXJfaWQYCyABKA1IBIgBARInCg1wYXJlbnRfZm9sZGVyGAwgASgLMhAuYXBpLnYxLkRvY3VtZW50EhIKCnByb2plY3RfaWQYDSABKA0SIAoHcHJvamVjdBgOIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhIKCmNvbXBhbnlfaWQYDyABKA0SIAoHY29tcGFueRgQIAEoCzIPLmFwaS52MS5Db21wYW55EhsKE3VwbG9hZGVkX2J5X3VzZXJfaWQYESABKA0SJgoQdXBsb2FkZWRfYnlfdXNlchgSIAEoCzIMLmFwaS52MS5Vc2VyEi4KCmNyZWF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgkKB19zaGEyNTZCDAoKX2Rpc2tfbmFtZUIHCgVfa2luZEIMCgpfZnVsbF9wYXRoQhMKEV9wYXJlbnRfZm9sZGVyX2lkIt0BCgxEb2N1bWVudExpbmsSCgoCaWQYASABKA0SEQoJbGlua19raW5kGAIgASgJEg8KB2xpbmtfaWQYAyABKA0SEwoLZG9jdW1lbnRfaWQYBCABKA0SIgoIZG9jdW1lbnQYBSABKAsyEC5hcGkudjEuRG9jdW1lbnQSEgoKY29tcGFueV9pZBgGIAEoDRIgCgdjb21wYW55GAcgASgLMg8uYXBpLnYxLkNvbXBhbnkSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiAIKB1dvcmtMb2cSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIaCgR0YXNrGAMgASgLMgwuYXBpLnYxLlRhc2sSDwoHdXNlcl9pZBgEIAEoDRIaCgR1c2VyGAUgASgLMgwuYXBpLnYxLlVzZXISDQoFaG91cnMYBiABKAESGAoLZGVzY3JpcHRpb24YByABKAlIAIgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb24ihwMKCU1pbGVzdG9uZRIKCgJpZBgBIAEoDRIMCgR1dWlkGAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARIzCgpzdGFydF9kYXRlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjEKCGVuZF9kYXRlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEg4KBnN0YXR1cxgHIAEoCRISCgpwcm9qZWN0X2lkGAggASgNEiAKB3Byb2plY3QYCSABKAsyDy5hcGkudjEuUHJvamVjdBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CDQoLX3N0YXJ0X2RhdGVCCwoJX2VuZF9kYXRlIpgBCg1NaWxlc3RvbmVUYXNrEgoKAmlkGAEgASgNEhQKDG1pbGVzdG9uZV9pZBgCIAEoDRIkCgltaWxlc3RvbmUYAyABKAsyES5hcGkudjEuTWlsZXN0b25lEg8KB3Rhc2tfaWQYBCABKA0SGgoEdGFzaxgFIAEoCzIMLmFwaS52MS5UYXNrEhIKCmNvbXBhbnlfaWQYBiABKA0ipgEKEE1pbGVzdG9uZURvY1BhZ2USCgoCaWQYASABKA0SFAoMbWlsZXN0b25lX2lkGAIgASgNEiQKCW1pbGVzdG9uZRgDIAEoCzIRLmFwaS52MS5NaWxlc3RvbmUSEwoLZG9jX3BhZ2VfaWQYBCABKA0SIQoIZG9jX3BhZ2UYBSABKAsyDy5hcGkudjEuRG9jUGFnZRISCgpjb21wYW55X2lkGAYgASgNIscBChNNaWxlc3RvbmVSZXBvc2l0b3J5EgoKAmlkGAEgASgNEhQKDG1pbGVzdG9uZV9pZBgCIAEoDRIkCgltaWxlc3RvbmUYAyABKAsyES5hcGkudjEuTWlsZXN0b25lEh0KFXByb2plY3RfcmVwb3NpdG9yeV9pZBgEIAEoDRI1ChJwcm9qZWN0X3JlcG9zaXRvcnkYBSABKAsyGS5hcGkudjEuUHJvamVjdFJlcG9zaXRvcnkSEgoKY29tcGFueV9pZBgGIAEoDSKoAQoRTWlsZXN0b25lRG9jdW1lbnQSCgoCaWQYASABKA0SFAoMbWlsZXN0b25lX2lkGAIgASgNEiQKCW1pbGVzdG9uZRgDIAEoCzIRLmFwaS52MS5NaWxlc3RvbmUSEwoLZG9jdW1lbnRfaWQYBCABKA0SIgoIZG9jdW1lbnQYBSABKAsyEC5hcGkudjEuRG9jdW1lbnQSEgoKY29tcGFueV9pZBgGIAEoDSLZBAoKSW5pdGlhdGl2ZRIKCgJpZBgBIAEoDRIMCgR1dWlkGAIgASgJEg0KBXRpdGxlGAMgASgJEhQKB3N1bW1hcnkYBCABKAlIAIgBARIOCgZzdGF0dXMYBSABKAkSEQoJY29yZV9pZGVhGAYgASgJEh4KFmNvcmVfaWRlYV9jb250ZW50X3R5cGUYByABKAkSEwoLYW5jaG9yX3R5cGUYCCABKAkSFgoJYW5jaG9yX2lkGAkgASgNSAGIAQESEgoKcHJvamVjdF9pZBgKIAEoDRIgCgdwcm9qZWN0GAsgASgLMg8uYXBpLnYxLlByb2plY3QSEgoKY29tcGFueV9pZBgMIAEoDRIaChJjcmVhdGVkX2J5X3VzZXJfaWQYDSABKA0SJQoPY3JlYXRlZF9ieV91c2VyGA4gASgLMgwuYXBpLnYxLlVzZXISGgoSdXBkYXRlZF9ieV91c2VyX2lkGA8gASgNEiUKD3VwZGF0ZWRfYnlfdXNlchgQIAEoCzIMLmFwaS52MS5Vc2VyEi4KCmNyZWF0ZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKBXRhc2tzGBMgAygLMgwuYXBpLnYxLlRhc2sSNQoObWVtb3J5X2VudHJpZXMYFCADKAsyHS5hcGkudjEuSW5pdGlhdGl2ZU1lbW9yeUVudHJ5QgoKCF9zdW1tYXJ5QgwKCl9hbmNob3JfaWQiiwMKFUluaXRpYXRpdmVNZW1vcnlFbnRyeRIKCgJpZBgBIAEoDRIVCg1pbml0aWF0aXZlX2lkGAIgASgNEhIKCmNvbXBhbnlfaWQYAyABKA0SDAoEa2luZBgEIAEoCRIMCgRib2R5GAUgASgJEhQKDGNvbnRlbnRfdHlwZRgGIAEoCRIbCg5hdXRob3JfdXNlcl9pZBgHIAEoDUgAiAEBEiEKC2F1dGhvcl91c2VyGAggASgLMgwuYXBpLnYxLlVzZXISEAoIaXNfYWdlbnQYCSABKAgSEQoJaXNfc3lzdGVtGAogASgIEhMKC3NvdXJjZV90eXBlGAsgASgJEhYKCXNvdXJjZV9pZBgMIAEoDUgBiAEBEhcKCnNvdXJjZV91cmwYDSABKAlIAogBARIuCgpjcmVhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIRCg9fYXV0aG9yX3VzZXJfaWRCDAoKX3NvdXJjZV9pZEINCgtfc291cmNlX3VybCKkAgoOVGFza0RlcGVuZGVuY3kSCgoCaWQYASABKA0SFAoMZnJvbV90YXNrX2lkGAIgASgNEh8KCWZyb21fdGFzaxgDIAEoCzIMLmFwaS52MS5UYXNrEhIKCnRvX3Rhc2tfaWQYBCABKA0SHQoHdG9fdGFzaxgFIAEoCzIMLmFwaS52MS5UYXNrEigKBHR5cGUYBiABKA4yGi5hcGkudjEuVGFza0RlcGVuZGVuY3lUeXBlEhIKCmNvbXBhbnlfaWQYByABKA0SLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi3QEKF1Rhc2tBY2NlcHRhbmNlQ3JpdGVyaW9uEgoKAmlkGAEgASgNEg8KB3Rhc2tfaWQYAiABKA0SDAoEdGV4dBgDIAEoCRIMCgRkb25lGAQgASgIEhUKDWRpc3BsYXlfb3JkZXIYBSABKAUSEgoKY29tcGFueV9pZBgGIAEoDRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCrKAQoSVGFza0RlcGVuZGVuY3lUeXBlEiQKIFRBU0tfREVQRU5ERU5DWV9UWVBFX1VOU1BFQ0lGSUVEEAASHwobVEFTS19ERVBFTkRFTkNZX1RZUEVfQkxPQ0tTEAESIwofVEFTS19ERVBFTkRFTkNZX1RZUEVfQkxPQ0tFRF9CWRACEiMKH1RBU0tfREVQRU5ERU5DWV9UWVBFX0RVUExJQ0FURVMQAxIjCh9UQVNLX0RFUEVOREVOQ1lfVFlQRV9SRUxBVEVTX1RPEARCcAoKY29tLmFwaS52MUILTW9kZWxzUHJvdG9QAVocb3BzZWUvYmFja2VuZC9nZW4vYXBpL3YxO2dlbqICA0FYWKoCBkFwaS5WMcoCBkFwaVxWMeICEkFwaVxWMVxHUEJNZXRhZGF0YeoCB0FwaTo6VjFiBnByb3RvMw", [file_google_protobuf_timestamp, file_api_v1_vcs]);
13
+ fileDesc("ChNhcGkvdjEvbW9kZWxzLnByb3RvEgZhcGkudjEiJgoKUGVybWlzc2lvbhIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJImgKBFJvbGUSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIdCgdwYXJlbnRzGAMgAygLMgwuYXBpLnYxLlJvbGUSJwoLcGVybWlzc2lvbnMYBCADKAsyEi5hcGkudjEuUGVybWlzc2lvbiLhAgoEVXNlchIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEg0KBWVtYWlsGAIgASgJEhIKCmZpcnN0X25hbWUYAyABKAkSEQoJbGFzdF9uYW1lGAQgASgJEhEKCWZ1bGxfbmFtZRgFIAEoCRIVCg1wcm92aWRlcl9uYW1lGAYgASgJEhsKBXJvbGVzGAcgAygLMgwuYXBpLnYxLlJvbGUSJQoPZmxhdHRlbmVkX3JvbGVzGAggAygLMgwuYXBpLnYxLlJvbGUSEgoKY3JlYXRlZF9hdBgJIAEoCRISCgpjb21wYW55X2lkGAogASgNEiAKB2NvbXBhbnkYCyABKAsyDy5hcGkudjEuQ29tcGFueRINCgVwaG9uZRgMIAEoCRIYChBwaG9uZV9jb3VudHJ5X2lkGA0gASgNEhIKCmF2YXRhcl91cmwYDiABKAkSFAoMYXZhdGFyX2NvbG9yGA8gASgJItAECgdDb21wYW55EgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSDAoEbmFtZRgCIAEoCRIMCgRzbHVnGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESGAoLd2Vic2l0ZV91cmwYBSABKAlIAYgBARIVCghpbmR1c3RyeRgGIAEoCUgCiAEBEhEKBHNpemUYByABKAlIA4gBARIaCg1zZXR0aW5nc19qc29uGAggASgJSASIAQESEQoJaXNfYWN0aXZlGAkgASgIEhoKDWJpbGxpbmdfZW1haWwYCiABKAlIBYgBARIUCgdhZGRyZXNzGAsgASgJSAaIAQESFQoIYWRkcmVzczIYDCABKAlIB4gBARIRCgRjaXR5GA0gASgJSAiIAQESEgoFc3RhdGUYDiABKAlICYgBARIVCgh6aXBfY29kZRgPIAEoCUgKiAEBEhcKCmNvdW50cnlfaWQYECABKA1IC4gBARITCgZ0YXhfaWQYESABKAlIDIgBARIgCgdjb3VudHJ5GBIgASgLMg8uYXBpLnYxLkNvdW50cnlCDgoMX2Rlc2NyaXB0aW9uQg4KDF93ZWJzaXRlX3VybEILCglfaW5kdXN0cnlCBwoFX3NpemVCEAoOX3NldHRpbmdzX2pzb25CEAoOX2JpbGxpbmdfZW1haWxCCgoIX2FkZHJlc3NCCwoJX2FkZHJlc3MyQgcKBV9jaXR5QggKBl9zdGF0ZUILCglfemlwX2NvZGVCDQoLX2NvdW50cnlfaWRCCQoHX3RheF9pZCLkBAoMU3Vic2NyaXB0aW9uEgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSEgoKY29tcGFueV9pZBgCIAEoDRIaChJzdHJpcGVfY3VzdG9tZXJfaWQYAyABKAkSIwoWc3RyaXBlX3N1YnNjcmlwdGlvbl9pZBgEIAEoCUgAiAEBEg4KBnN0YXR1cxgFIAEoCRI9ChRjdXJyZW50X3BlcmlvZF9zdGFydBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChJjdXJyZW50X3BlcmlvZF9lbmQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESHgoRcGF5bWVudF9tZXRob2RfaWQYCCABKA1IA4gBARInCgVpdGVtcxgJIAMoCzIYLmFwaS52MS5TdWJzY3JpcHRpb25JdGVtEi0KDnBheW1lbnRfbWV0aG9kGAogASgLMhUuYXBpLnYxLlBheW1lbnRNZXRob2QSIAoHY29tcGFueRgLIAEoCzIPLmFwaS52MS5Db21wYW55Ei4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhkKF19zdHJpcGVfc3Vic2NyaXB0aW9uX2lkQhcKFV9jdXJyZW50X3BlcmlvZF9zdGFydEIVChNfY3VycmVudF9wZXJpb2RfZW5kQhQKEl9wYXltZW50X21ldGhvZF9pZCKAAgoQU3Vic2NyaXB0aW9uSXRlbRIKCgJpZBgBIAEoDRIXCg9zdWJzY3JpcHRpb25faWQYAiABKA0SFAoMcHJvZHVjdF90eXBlGAMgASgJEhAKCHF1YW50aXR5GAQgASgFEhIKCnVuaXRfcHJpY2UYBSABKAMSGAoQYmlsbGluZ19pbnRlcnZhbBgGIAEoCRIRCglpc19hY3RpdmUYByABKAgSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAixAIKDVBheW1lbnRNZXRob2QSCgoCaWQYASABKA0SDAoEdXVpZBgyIAEoCRISCgpjb21wYW55X2lkGAIgASgNEhgKEHN0cmlwZV9tZXRob2RfaWQYAyABKAkSDAoEdHlwZRgEIAEoCRINCgVsYXN0NBgFIAEoCRINCgVicmFuZBgGIAEoCRIUCgxleHBpcnlfbW9udGgYByABKAUSEwoLZXhwaXJ5X3llYXIYCCABKAUSEgoKaXNfZGVmYXVsdBgJIAEoCBIgCgdjb21wYW55GAogASgLMg8uYXBpLnYxLkNvbXBhbnkSLgoKY3JlYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAioAIKDVByb2R1Y3RDb25maWcSCgoCaWQYASABKA0SFAoMcHJvZHVjdF90eXBlGAIgASgJEhUKDW1vbnRobHlfcHJpY2UYAyABKAMSFAoMeWVhcmx5X3ByaWNlGAQgASgDEhUKDWZyZWVfcXVhbnRpdHkYBSABKAUSFAoMaXNfcmVjdXJyaW5nGAYgASgIEhkKEXN0cmlwZV9tb250aGx5X2lkGAcgASgJEhgKEHN0cmlwZV95ZWFybHlfaWQYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAizAIKDkNvbXBhbnlDcmVkaXRzEgoKAmlkGAEgASgNEhIKCmNvbXBhbnlfaWQYAiABKA0SFQoNdG90YWxfY3JlZGl0cxgDIAEoBRIUCgx1c2VkX2NyZWRpdHMYBCABKAUSGQoRYXZhaWxhYmxlX2NyZWRpdHMYBSABKAUSOgoRbGFzdF9hbGxvY2F0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESIAoHY29tcGFueRgHIAEoCzIPLmFwaS52MS5Db21wYW55Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhQKEl9sYXN0X2FsbG9jYXRlZF9hdCKjAgoRQ3JlZGl0VHJhbnNhY3Rpb24SCgoCaWQYASABKA0SEgoKY29tcGFueV9pZBgCIAEoDRIOCgZhbW91bnQYAyABKAUSDgoGcmVhc29uGAQgASgJEhgKC2VudGl0eV90eXBlGAUgASgJSACIAQESFgoJZW50aXR5X2lkGAYgASgJSAGIAQESGgoNbWV0YWRhdGFfanNvbhgHIAEoCUgCiAEBEiAKB2NvbXBhbnkYCCABKAsyDy5hcGkudjEuQ29tcGFueRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZW50aXR5X3R5cGVCDAoKX2VudGl0eV9pZEIQCg5fbWV0YWRhdGFfanNvbiL0AQoHUHJvamVjdBIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEgwKBG5hbWUYAiABKAkSDAoEc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgFIAEoCBIaCg1zZXR0aW5nc19qc29uGAYgASgJSAGIAQESEgoKY29tcGFueV9pZBgHIAEoDRIgCgdjb21wYW55GAggASgLMg8uYXBpLnYxLkNvbXBhbnkSEgoKc2hvcnRfbmFtZRgJIAEoCUIOCgxfZGVzY3JpcHRpb25CEAoOX3NldHRpbmdzX2pzb24ipQEKEVByb2plY3RNZW1iZXJzaGlwEgoKAmlkGAEgASgNEgwKBHJvbGUYAiABKAkSEwoLaXNfZmF2b3JpdGUYAyABKAgSEgoKcHJvamVjdF9pZBgEIAEoDRIgCgdwcm9qZWN0GAUgASgLMg8uYXBpLnYxLlByb2plY3QSDwoHdXNlcl9pZBgGIAEoDRIaCgR1c2VyGAcgASgLMgwuYXBpLnYxLlVzZXIiwgIKCERvY1NwYWNlEgoKAmlkGAEgASgNEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEhIKCnByb2plY3RfaWQYByABKA0SIAoHcHJvamVjdBgIIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgJIAEoDRIlCg9jcmVhdGVkX2J5X3VzZXIYCiABKAsyDC5hcGkudjEuVXNlchIaChJ1cGRhdGVkX2J5X3VzZXJfaWQYCyABKA0SJQoPdXBkYXRlZF9ieV91c2VyGAwgASgLMgwuYXBpLnYxLlVzZXJCDgoMX2Rlc2NyaXB0aW9uIvkDCgdEb2NQYWdlEgoKAmlkGAEgASgNEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSFwoPY3VycmVudF9jb250ZW50GAQgASgJEhQKDGNvbnRlbnRfdHlwZRgFIAEoCRIeChZjdXJyZW50X3ZlcnNpb25fbnVtYmVyGAYgASgFEg8KB2lzX3Jvb3QYByABKAgSEwoLaXNfYXJjaGl2ZWQYCCABKAgSFQoNZGlzcGxheV9vcmRlchgJIAEoBRIjCglkb2Nfc3BhY2UYCyABKAsyEC5hcGkudjEuRG9jU3BhY2USGwoOcGFyZW50X3BhZ2VfaWQYDCABKA1IAIgBARIkCgtwYXJlbnRfcGFnZRgNIAEoCzIPLmFwaS52MS5Eb2NQYWdlEiQKC2NoaWxkX3BhZ2VzGA4gAygLMg8uYXBpLnYxLkRvY1BhZ2USGgoSY3JlYXRlZF9ieV91c2VyX2lkGA8gASgNEiUKD2NyZWF0ZWRfYnlfdXNlchgQIAEoCzIMLmFwaS52MS5Vc2VyEhoKEnVwZGF0ZWRfYnlfdXNlcl9pZBgRIAEoDRIlCg91cGRhdGVkX2J5X3VzZXIYEiABKAsyDC5hcGkudjEuVXNlckIRCg9fcGFyZW50X3BhZ2VfaWRKBAgKEAtSDGRvY19zcGFjZV9pZCL1AgoORG9jUGFnZVZlcnNpb24SCgoCaWQYASABKA0SFgoOdmVyc2lvbl9udW1iZXIYAiABKAUSDQoFdGl0bGUYAyABKAkSDwoHY29udGVudBgEIAEoCRIUCgxjb250ZW50X3R5cGUYBSABKAkSGwoOY2hhbmdlX3N1bW1hcnkYBiABKAlIAIgBARITCgtkb2NfcGFnZV9pZBgHIAEoDRIhCghkb2NfcGFnZRgIIAEoCzIPLmFwaS52MS5Eb2NQYWdlEhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgJIAEoDRIlCg9jcmVhdGVkX2J5X3VzZXIYCiABKAsyDC5hcGkudjEuVXNlchIuCgpjcmVhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIRCg9fY2hhbmdlX3N1bW1hcnkikAgKDlZDU0ludGVncmF0aW9uEgoKAmlkGAEgASgNEhIKCnJlcG9fb3duZXIYAiABKAkSEQoJcmVwb19uYW1lGAMgASgJEhcKD3Rva2VuX2VuY3J5cHRlZBgEIAEoCRIWCg5kZWZhdWx0X2JyYW5jaBgFIAEoCRIbCg53ZWJob29rX3NlY3JldBgGIAEoCUgAiAEBEh0KEHBlcm1pc3Npb25zX2pzb24YByABKAlIAYgBARIRCglpc19hY3RpdmUYCCABKAgSEgoKcHJvamVjdF9pZBgJIAEoDRIgCgdwcm9qZWN0GAogASgLMg8uYXBpLnYxLlByb2plY3QSHAoPaW5zdGFsbGF0aW9uX2lkGAsgASgDSAKIAQESEwoGYXBwX2lkGAwgASgJSAOIAQESKQocaW5zdGFsbGF0aW9uX3Rva2VuX2VuY3J5cHRlZBgNIAEoCUgEiAEBEkYKHWluc3RhbGxhdGlvbl90b2tlbl9leHBpcmVzX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEhgKC29hdXRoX3N0YXRlGA8gASgJSAaIAQESGAoQYXV0b19zeW5jX2lzc3VlcxgQIAEoCBIaChJlbmFibGVfcHJfd2ViaG9va3MYESABKAgSJQoIcHJvdmlkZXIYHiABKA4yEy5hcGkudjEuVkNTUHJvdmlkZXISGQoMaW5zdGFuY2VfdXJsGB8gASgJSAeIAQESIwoWYWNjZXNzX3Rva2VuX2VuY3J5cHRlZBggIAEoCUgIiAEBEiQKF3JlZnJlc2hfdG9rZW5fZW5jcnlwdGVkGCEgASgJSAmIAQESOQoQdG9rZW5fZXhwaXJlc19hdBgiIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBICogBARIcCg9naXRsYWJfZ3JvdXBfaWQYIyABKANIC4gBARIbCg5naXRsYWJfdXNlcl9pZBgkIAEoA0gMiAEBQhEKD193ZWJob29rX3NlY3JldEITChFfcGVybWlzc2lvbnNfanNvbkISChBfaW5zdGFsbGF0aW9uX2lkQgkKB19hcHBfaWRCHwodX2luc3RhbGxhdGlvbl90b2tlbl9lbmNyeXB0ZWRCIAoeX2luc3RhbGxhdGlvbl90b2tlbl9leHBpcmVzX2F0Qg4KDF9vYXV0aF9zdGF0ZUIPCg1faW5zdGFuY2VfdXJsQhkKF19hY2Nlc3NfdG9rZW5fZW5jcnlwdGVkQhoKGF9yZWZyZXNoX3Rva2VuX2VuY3J5cHRlZEITChFfdG9rZW5fZXhwaXJlc19hdEISChBfZ2l0bGFiX2dyb3VwX2lkQhEKD19naXRsYWJfdXNlcl9pZCLQBAoRUHJvamVjdFJlcG9zaXRvcnkSCgoCaWQYASABKA0SEgoKcHJvamVjdF9pZBgCIAEoDRIgCgdwcm9qZWN0GAMgASgLMg8uYXBpLnYxLlByb2plY3QSGgoSdmNzX2ludGVncmF0aW9uX2lkGAQgASgNEi8KD3Zjc19pbnRlZ3JhdGlvbhgFIAEoCzIWLmFwaS52MS5WQ1NJbnRlZ3JhdGlvbhIVCg1yZXBvc2l0b3J5X2lkGAYgASgDEhgKEHJlcG9zaXRvcnlfb3duZXIYByABKAkSFwoPcmVwb3NpdG9yeV9uYW1lGAggASgJEhwKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAkgASgJEhYKDmRlZmF1bHRfYnJhbmNoGAogASgJEhIKCmlzX3ByaXZhdGUYCyABKAgSGAoLZGVzY3JpcHRpb24YDCABKAlIAIgBARILCgN1cmwYDSABKAkSEQoJaXNfYWN0aXZlGA4gASgIEi4KCmNyZWF0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEGF1dG9fc3luY19pc3N1ZXMYESABKAgSGgoSZW5hYmxlX3ByX3dlYmhvb2tzGBIgASgIEiUKCHByb3ZpZGVyGBMgASgOMhMuYXBpLnYxLlZDU1Byb3ZpZGVyEhEKCWNsb25lX3VybBgUIAEoCUIOCgxfZGVzY3JpcHRpb24iuQEKBUJvYXJkEgoKAmlkGAEgASgNEgwKBHV1aWQYMiABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhUKDWRpc3BsYXlfb3JkZXIYBCABKAUSEQoJaXNfYWN0aXZlGAUgASgIEhIKCnByb2plY3RfaWQYBiABKA0SIAoHcHJvamVjdBgHIAEoCzIPLmFwaS52MS5Qcm9qZWN0Qg4KDF9kZXNjcmlwdGlvbiKOAgoFQ3ljbGUSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIRCgRnb2FsGAMgASgJSACIAQESLgoKc3RhcnRfZGF0ZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kX2RhdGUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnByb2plY3RfaWQYBiABKA0SIAoHcHJvamVjdBgHIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhEKCWlzX2FjdGl2ZRgIIAEoCBIYCgtkZXNjcmlwdGlvbhgJIAEoCUgBiAEBQgcKBV9nb2FsQg4KDF9kZXNjcmlwdGlvbiLfAQoLQm9hcmRDb2x1bW4SCgoCaWQYASABKA0SDAoEdXVpZBgyIAEoCRIMCgRuYW1lGAIgASgJEhUKDWRpc3BsYXlfb3JkZXIYAyABKAUSEgoFY29sb3IYBCABKAlIAIgBARIcCg9saWZlY3ljbGVfc3RhdGUYBSABKAlIAYgBARIRCglpc19hY3RpdmUYBiABKAgSEAoIYm9hcmRfaWQYByABKA0SHAoFYm9hcmQYCCABKAsyDS5hcGkudjEuQm9hcmRCCAoGX2NvbG9yQhIKEF9saWZlY3ljbGVfc3RhdGUivgEKCFRhc2tUeXBlEgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSEgoFY29sb3IYAyABKAlIAIgBARIRCgRpY29uGAQgASgJSAGIAQESEgoKcHJvamVjdF9pZBgFIAEoDRIgCgdwcm9qZWN0GAYgASgLMg8uYXBpLnYxLlByb2plY3QSFQoNZGlzcGxheV9vcmRlchgHIAEoBRIRCglpc19hY3RpdmUYCCABKAhCCAoGX2NvbG9yQgcKBV9pY29uIp4BCgxUYXNrUHJpb3JpdHkSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRINCgVsZXZlbBgDIAEoBRISCgVjb2xvchgEIAEoCUgAiAEBEhIKCnByb2plY3RfaWQYBSABKA0SIAoHcHJvamVjdBgGIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhEKCWlzX2FjdGl2ZRgHIAEoCEIICgZfY29sb3IiowEKBUxhYmVsEgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSDQoFY29sb3IYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoDRIgCgdwcm9qZWN0GAUgASgLMg8uYXBpLnYxLlByb2plY3QSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARIRCglpc19hY3RpdmUYByABKAhCDgoMX2Rlc2NyaXB0aW9uIuUBCglDb21wb25lbnQSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhIKCnByb2plY3RfaWQYBCABKA0SIAoHcHJvamVjdBgFIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhkKDGxlYWRfdXNlcl9pZBgGIAEoDUgBiAEBEh8KCWxlYWRfdXNlchgHIAEoCzIMLmFwaS52MS5Vc2VyEhEKCWlzX2FjdGl2ZRgIIAEoCEIOCgxfZGVzY3JpcHRpb25CDwoNX2xlYWRfdXNlcl9pZCLiDgoEVGFzaxIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEhIKCmlkZW50aWZpZXIYAiABKAkSDQoFdGl0bGUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARIVCg1kaXNwbGF5X29yZGVyGAUgASgJEhkKDHN0b3J5X3BvaW50cxgGIAEoBUgBiAEBEhwKD2VzdGltYXRlZF9ob3VycxgHIAEoAUgCiAEBEhkKDGFjdHVhbF9ob3VycxgIIAEoAUgDiAEBEiwKCGR1ZV9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9haV9tb2RlX2VuYWJsZWQYCiABKAgSGgoNbWV0YWRhdGFfanNvbhgLIAEoCUgEiAEBEhAKCGJvYXJkX2lkGAwgASgNEhwKBWJvYXJkGA0gASgLMg0uYXBpLnYxLkJvYXJkEhcKD2JvYXJkX2NvbHVtbl9pZBgOIAEoDRIpCgxib2FyZF9jb2x1bW4YDyABKAsyEy5hcGkudjEuQm9hcmRDb2x1bW4SEgoKcHJvamVjdF9pZBgQIAEoDRIgCgdwcm9qZWN0GBEgASgLMg8uYXBpLnYxLlByb2plY3QSFAoMdGFza190eXBlX2lkGBIgASgNEiMKCXRhc2tfdHlwZRgTIAEoCzIQLmFwaS52MS5UYXNrVHlwZRIYChB0YXNrX3ByaW9yaXR5X2lkGBQgASgNEisKDXRhc2tfcHJpb3JpdHkYFSABKAsyFC5hcGkudjEuVGFza1ByaW9yaXR5EhgKEHJlcG9ydGVyX3VzZXJfaWQYFiABKA0SIwoNcmVwb3J0ZXJfdXNlchgXIAEoCzIMLmFwaS52MS5Vc2VyEh0KEGFzc2lnbmVkX3VzZXJfaWQYGCABKA1IBYgBARIjCg1hc3NpZ25lZF91c2VyGBkgASgLMgwuYXBpLnYxLlVzZXISGwoOcGFyZW50X3Rhc2tfaWQYGiABKA1IBogBARIhCgtwYXJlbnRfdGFzaxgbIAEoCzIMLmFwaS52MS5UYXNrEhIKCmNvbXBhbnlfaWQYHCABKA0SIAoHY29tcGFueRgdIAEoCzIPLmFwaS52MS5Db21wYW55EiYKC3Rhc2tfbGFiZWxzGB4gAygLMhEuYXBpLnYxLlRhc2tMYWJlbBIuCg90YXNrX2NvbXBvbmVudHMYHyADKAsyFS5hcGkudjEuVGFza0NvbXBvbmVudBIyChF0YXNrX2NvbnRyaWJ1dG9ycxggIAMoCzIXLmFwaS52MS5UYXNrQ29udHJpYnV0b3ISMQoRdGFza19yZXBvc2l0b3JpZXMYISADKAsyFi5hcGkudjEuVGFza1JlcG9zaXRvcnkSMwoSdGFza19wdWxsX3JlcXVlc3RzGCIgAygLMhcuYXBpLnYxLlRhc2tQdWxsUmVxdWVzdBIVCghjeWNsZV9pZBgjIAEoDUgHiAEBEhwKBWN5Y2xlGCQgASgLMg0uYXBpLnYxLkN5Y2xlEiIKCXdvcmtfbG9ncxglIAMoCzIPLmFwaS52MS5Xb3JrTG9nEjQKC3Jlc29sdmVkX2F0GCYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBEisKDnRhc2tfZG9jX3BhZ2VzGCcgAygLMhMuYXBpLnYxLlRhc2tEb2NQYWdlEiwKDnRhc2tfZG9jdW1lbnRzGCggAygLMhQuYXBpLnYxLlRhc2tEb2N1bWVudBIuCgpjcmVhdGVkX2F0GCkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GCogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIkCgltaWxlc3RvbmUYKyABKAsyES5hcGkudjEuTWlsZXN0b25lEjoKGnRhc2tfZGVwZW5kZW5jaWVzX291dGdvaW5nGCwgAygLMhYuYXBpLnYxLlRhc2tEZXBlbmRlbmN5EjoKGnRhc2tfZGVwZW5kZW5jaWVzX2luY29taW5nGC0gAygLMhYuYXBpLnYxLlRhc2tEZXBlbmRlbmN5EhkKDG1pbGVzdG9uZV9pZBguIAEoDUgJiAEBEhoKDWluaXRpYXRpdmVfaWQYLyABKA1ICogBARImCgppbml0aWF0aXZlGDAgASgLMhIuYXBpLnYxLkluaXRpYXRpdmUSFQoNY29tbWVudF9jb3VudBgxIAEoDUIOCgxfZGVzY3JpcHRpb25CDwoNX3N0b3J5X3BvaW50c0ISChBfZXN0aW1hdGVkX2hvdXJzQg8KDV9hY3R1YWxfaG91cnNCEAoOX21ldGFkYXRhX2pzb25CEwoRX2Fzc2lnbmVkX3VzZXJfaWRCEQoPX3BhcmVudF90YXNrX2lkQgsKCV9jeWNsZV9pZEIOCgxfcmVzb2x2ZWRfYXRCDwoNX21pbGVzdG9uZV9pZEIQCg5faW5pdGlhdGl2ZV9pZCJ0CglUYXNrTGFiZWwSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIaCgR0YXNrGAMgASgLMgwuYXBpLnYxLlRhc2sSEAoIbGFiZWxfaWQYBCABKA0SHAoFbGFiZWwYBSABKAsyDS5hcGkudjEuTGFiZWwihQEKD1Rhc2tDb250cmlidXRvchIKCgJpZBgBIAEoDRIMCgRyb2xlGAIgASgJEg8KB3Rhc2tfaWQYAyABKA0SGgoEdGFzaxgEIAEoCzIMLmFwaS52MS5UYXNrEg8KB3VzZXJfaWQYBSABKA0SGgoEdXNlchgGIAEoCzIMLmFwaS52MS5Vc2VyIoQBCg1UYXNrQ29tcG9uZW50EgoKAmlkGAEgASgNEg8KB3Rhc2tfaWQYAiABKA0SGgoEdGFzaxgDIAEoCzIMLmFwaS52MS5UYXNrEhQKDGNvbXBvbmVudF9pZBgEIAEoDRIkCgljb21wb25lbnQYBSABKAsyES5hcGkudjEuQ29tcG9uZW50ItABCg5UYXNrUmVwb3NpdG9yeRIKCgJpZBgBIAEoDRIPCgd0YXNrX2lkGAIgASgNEhoKEnZjc19pbnRlZ3JhdGlvbl9pZBgEIAEoDRIvCg92Y3NfaW50ZWdyYXRpb24YBSABKAsyFi5hcGkudjEuVkNTSW50ZWdyYXRpb24SHQoVcHJvamVjdF9yZXBvc2l0b3J5X2lkGAYgASgNEjUKEnByb2plY3RfcmVwb3NpdG9yeRgHIAEoCzIZLmFwaS52MS5Qcm9qZWN0UmVwb3NpdG9yeSJ2CgtUYXNrRG9jUGFnZRIKCgJpZBgBIAEoDRIPCgd0YXNrX2lkGAIgASgNEhMKC2RvY19wYWdlX2lkGAMgASgNEiEKCGRvY19wYWdlGAQgASgLMg8uYXBpLnYxLkRvY1BhZ2USEgoKY29tcGFueV9pZBgFIAEoDSJ4CgxUYXNrRG9jdW1lbnQSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRITCgtkb2N1bWVudF9pZBgDIAEoDRIiCghkb2N1bWVudBgEIAEoCzIQLmFwaS52MS5Eb2N1bWVudBISCgpjb21wYW55X2lkGAUgASgNIsUDCg9UYXNrUHVsbFJlcXVlc3QSCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIdChVwcm9qZWN0X3JlcG9zaXRvcnlfaWQYAyABKA0SNQoScHJvamVjdF9yZXBvc2l0b3J5GAQgASgLMhkuYXBpLnYxLlByb2plY3RSZXBvc2l0b3J5EhEKCXByX251bWJlchgFIAEoBRINCgV0aXRsZRgGIAEoCRILCgN1cmwYByABKAkSDQoFc3RhdGUYCCABKAkSJQoIcHJvdmlkZXIYCSABKA4yEy5hcGkudjEuVkNTUHJvdmlkZXISDgoGYXV0aG9yGAogASgJEg0KBWRyYWZ0GAsgASgIEhAKCGhlYWRfc2hhGAwgASgJEhMKC2hlYWRfYnJhbmNoGA0gASgJEhMKC2Jhc2VfYnJhbmNoGA4gASgJEhgKEG1lcmdlX2NvbW1pdF9zaGEYDyABKAkSEQoJYWRkaXRpb25zGBAgASgFEhEKCWRlbGV0aW9ucxgRIAEoBRIQCghjaV9zdGF0ZRgSIAEoCRIbChNjaV9mYWlsaW5nX2NvbnRleHRzGBMgAygJEhAKCGNpX3RvdGFsGBQgASgFIt8DCgdDb21tZW50EgoKAmlkGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEwoLaXNfaW50ZXJuYWwYAyABKAgSFAoHdGFza19pZBgEIAEoDUgAiAEBEhoKBHRhc2sYBSABKAsyDC5hcGkudjEuVGFzaxIYCgtkb2NfcGFnZV9pZBgGIAEoDUgBiAEBEiEKCGRvY19wYWdlGAcgASgLMg8uYXBpLnYxLkRvY1BhZ2USDwoHdXNlcl9pZBgIIAEoDRIaCgR1c2VyGAkgASgLMgwuYXBpLnYxLlVzZXISEgoKY29tcGFueV9pZBgKIAEoDRIgCgdjb21wYW55GAsgASgLMg8uYXBpLnYxLkNvbXBhbnkSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoNaW5pdGlhdGl2ZV9pZBgOIAEoDUgCiAEBEiYKCmluaXRpYXRpdmUYDyABKAsyEi5hcGkudjEuSW5pdGlhdGl2ZUIKCghfdGFza19pZEIOCgxfZG9jX3BhZ2VfaWRCEAoOX2luaXRpYXRpdmVfaWQi0AEKEFRhc2tTdWJzY3JpcHRpb24SCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIPCgd1c2VyX2lkGAMgASgNEhoKBHVzZXIYBCABKAsyDC5hcGkudjEuVXNlchISCgpjb21wYW55X2lkGAUgASgNEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvwCCgpBdHRhY2htZW50EgoKAmlkGAEgASgNEhAKCGZpbGVuYW1lGAIgASgJEhEKCWZpbGVfc2l6ZRgDIAEoAxIRCgltaW1lX3R5cGUYBCABKAkSFAoMc3RvcmFnZV9wYXRoGAUgASgJEhcKCnB1YmxpY191cmwYBiABKAlIAIgBARIUCgd0YXNrX2lkGAcgASgNSAGIAQESGgoEdGFzaxgIIAEoCzIMLmFwaS52MS5UYXNrEhgKC2RvY19wYWdlX2lkGAkgASgNSAKIAQESIQoIZG9jX3BhZ2UYCiABKAsyDy5hcGkudjEuRG9jUGFnZRIPCgd1c2VyX2lkGAsgASgNEhoKBHVzZXIYDCABKAsyDC5hcGkudjEuVXNlchISCgpjb21wYW55X2lkGA0gASgNEiAKB2NvbXBhbnkYDiABKAsyDy5hcGkudjEuQ29tcGFueUINCgtfcHVibGljX3VybEIKCghfdGFza19pZEIOCgxfZG9jX3BhZ2VfaWQiUQoLQUlSdW5TdGF0dXMSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBQg4KDF9kZXNjcmlwdGlvbiJoCgtBSVVuaXRTdGFnZRIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESFQoNZGlzcGxheV9vcmRlchgEIAEoBUIOCgxfZGVzY3JpcHRpb24iUgoMQUlVbml0U3RhdHVzEgoKAmlkGAEgASgNEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iVAoOQUlVbml0Q2F0ZWdvcnkSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBQg4KDF9kZXNjcmlwdGlvbiLoBQoNQUlXb3JrZmxvd1J1bhIKCgJpZBgBIAEoDRIdChVhaV9jcmVkaXRzX3VzZWRfdG90YWwYAiABKAUSGgoNbWV0YWRhdGFfanNvbhgDIAEoCUgAiAEBEg8KB3Rhc2tfaWQYBCABKA0SGgoEdGFzaxgFIAEoCzIMLmFwaS52MS5UYXNrEhwKFHRyaWdnZXJlZF9ieV91c2VyX2lkGAYgASgNEicKEXRyaWdnZXJlZF9ieV91c2VyGAcgASgLMgwuYXBpLnYxLlVzZXISGAoQYWlfcnVuX3N0YXR1c19pZBgIIAEoDRIqCg1haV9ydW5fc3RhdHVzGAkgASgLMhMuYXBpLnYxLkFJUnVuU3RhdHVzEh0KEGN1cnJlbnRfc3RhZ2VfaWQYCiABKA1IAYgBARIqCg1jdXJyZW50X3N0YWdlGAsgASgLMhMuYXBpLnYxLkFJVW5pdFN0YWdlEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYDiABKAkSMwoKc3RhcnRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARI1Cgxjb21wbGV0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQESIgoVcmVzdGFydGVkX2Zyb21fcnVuX2lkGBEgASgNSASIAQESGgoNc291cmNlX2JyYW5jaBgSIAEoCUgFiAEBQhAKDl9tZXRhZGF0YV9qc29uQhMKEV9jdXJyZW50X3N0YWdlX2lkQg0KC19zdGFydGVkX2F0Qg8KDV9jb21wbGV0ZWRfYXRCGAoWX3Jlc3RhcnRlZF9mcm9tX3J1bl9pZEIQCg5fc291cmNlX2JyYW5jaCL7BwoOQUlXb3JrZmxvd1VuaXQSCgoCaWQYASABKA0SFgoOc2VxdWVuY2Vfb3JkZXIYAiABKAUSGAoQd29ya19kZXNjcmlwdGlvbhgDIAEoCRIXCgp2Y3NfYnJhbmNoGAQgASgJSACIAQESFwoKdmNzX3ByX3VybBgFIAEoCUgBiAEBEhsKDmRlcGxveW1lbnRfdXJsGAYgASgJSAKIAQESHgoRdGVzdF9yZXN1bHRzX2pzb24YByABKAlIA4gBARIWCgllcnJvcl9sb2cYCCABKAlIBIgBARIXCg9haV9jcmVkaXRzX3VzZWQYCSABKAUSGgoNbWV0YWRhdGFfanNvbhgKIAEoCUgFiAEBEhoKEmFpX3dvcmtmbG93X3J1bl9pZBgLIAEoDRIuCg9haV93b3JrZmxvd19ydW4YDCABKAsyFS5hcGkudjEuQUlXb3JrZmxvd1J1bhIPCgd0YXNrX2lkGA0gASgNEhoKBHRhc2sYDiABKAsyDC5hcGkudjEuVGFzaxIaChJ2Y3NfaW50ZWdyYXRpb25faWQYDyABKA0SLwoPdmNzX2ludGVncmF0aW9uGBAgASgLMhYuYXBpLnYxLlZDU0ludGVncmF0aW9uEiAKE2FpX3VuaXRfY2F0ZWdvcnlfaWQYESABKA1IBogBARIwChBhaV91bml0X2NhdGVnb3J5GBIgASgLMhYuYXBpLnYxLkFJVW5pdENhdGVnb3J5EhgKEGFpX3VuaXRfc3RhZ2VfaWQYEyABKA0SKgoNYWlfdW5pdF9zdGFnZRgUIAEoCzITLmFwaS52MS5BSVVuaXRTdGFnZRIZChFhaV91bml0X3N0YXR1c19pZBgVIAEoDRIsCg5haV91bml0X3N0YXR1cxgWIAEoCzIULmFwaS52MS5BSVVuaXRTdGF0dXMSHwoSZGVwZW5kc19vbl91bml0X2lkGBcgASgNSAeIAQESLwoPZGVwZW5kc19vbl91bml0GBggASgLMhYuYXBpLnYxLkFJV29ya2Zsb3dVbml0Ei4KCmNyZWF0ZWRfYXQYGSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYGiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg0KC192Y3NfYnJhbmNoQg0KC192Y3NfcHJfdXJsQhEKD19kZXBsb3ltZW50X3VybEIUChJfdGVzdF9yZXN1bHRzX2pzb25CDAoKX2Vycm9yX2xvZ0IQCg5fbWV0YWRhdGFfanNvbkIWChRfYWlfdW5pdF9jYXRlZ29yeV9pZEIVChNfZGVwZW5kc19vbl91bml0X2lkIv8BCgtFbnZpcm9ubWVudBIKCgJpZBgBIAEoDRIMCgRuYW1lGAIgASgJEhEKBHR5cGUYAyABKAlIAIgBARIaCg1rOHNfbmFtZXNwYWNlGAQgASgJSAGIAQESGAoLYmFzZV9kb21haW4YBSABKAlIAogBARIaCg1tZXRhZGF0YV9qc29uGAYgASgJSAOIAQESEgoKcHJvamVjdF9pZBgHIAEoDRIgCgdwcm9qZWN0GAggASgLMg8uYXBpLnYxLlByb2plY3RCBwoFX3R5cGVCEAoOX2s4c19uYW1lc3BhY2VCDgoMX2Jhc2VfZG9tYWluQhAKDl9tZXRhZGF0YV9qc29uIqICCgpEZXBsb3ltZW50EgoKAmlkGAEgASgNEg4KBnN0YXR1cxgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIVCghsb2dzX3VybBgEIAEoCUgBiAEBEhoKDW1ldGFkYXRhX2pzb24YBSABKAlIAogBARIWCg5lbnZpcm9ubWVudF9pZBgGIAEoDRIoCgtlbnZpcm9ubWVudBgHIAEoCzITLmFwaS52MS5FbnZpcm9ubWVudBIaChJhaV93b3JrZmxvd19ydW5faWQYCCABKA0SLgoPYWlfd29ya2Zsb3dfcnVuGAkgASgLMhUuYXBpLnYxLkFJV29ya2Zsb3dSdW5CBgoEX3VybEILCglfbG9nc191cmxCEAoOX21ldGFkYXRhX2pzb24i/AEKB1Rlc3RSdW4SCgoCaWQYASABKA0SDAoEdHlwZRgCIAEoCRIOCgZzdGF0dXMYAyABKAkSFgoJZnJhbWV3b3JrGAQgASgJSACIAQESFwoKcmVwb3J0X3VybBgFIAEoCUgBiAEBEhkKDHJlc3VsdHNfanNvbhgGIAEoCUgCiAEBEhsKE2FpX3dvcmtmbG93X3VuaXRfaWQYByABKA0SMAoQYWlfd29ya2Zsb3dfdW5pdBgIIAEoCzIWLmFwaS52MS5BSVdvcmtmbG93VW5pdEIMCgpfZnJhbWV3b3JrQg0KC19yZXBvcnRfdXJsQg8KDV9yZXN1bHRzX2pzb24ipAMKC0FjdGl2aXR5TG9nEgoKAmlkGAEgASgNEg4KBmFjdGlvbhgCIAEoCRITCgtlbnRpdHlfdHlwZRgDIAEoCRIRCgllbnRpdHlfaWQYBCABKA0SEwoLZGVzY3JpcHRpb24YBSABKAkSGgoNbWV0YWRhdGFfanNvbhgGIAEoCUgAiAEBEhcKCmlwX2FkZHJlc3MYByABKAlIAYgBARIUCgd1c2VyX2lkGAggASgNSAKIAQESGgoEdXNlchgJIAEoCzIMLmFwaS52MS5Vc2VyEhcKCnByb2plY3RfaWQYCiABKA1IA4gBARIgCgdwcm9qZWN0GAsgASgLMg8uYXBpLnYxLlByb2plY3QSLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX21ldGFkYXRhX2pzb25CDQoLX2lwX2FkZHJlc3NCCgoIX3VzZXJfaWRCDQoLX3Byb2plY3RfaWQihwMKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoDRINCgV0aXRsZRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhkKEW5vdGlmaWNhdGlvbl90eXBlGAQgASgJEhgKC2VudGl0eV90eXBlGAUgASgJSACIAQESFgoJZW50aXR5X2lkGAYgASgNSAGIAQESFwoKYWN0aW9uX3VybBgHIAEoCUgCiAEBEg8KB2lzX3JlYWQYCCABKAgSFgoOc2VudF92aWFfZW1haWwYCSABKAgSGgoNbWV0YWRhdGFfanNvbhgKIAEoCUgDiAEBEg8KB3VzZXJfaWQYCyABKA0SGgoEdXNlchgMIAEoCzIMLmFwaS52MS5Vc2VyEhIKCmNvbXBhbnlfaWQYDSABKA0SIAoHY29tcGFueRgOIAEoCzIPLmFwaS52MS5Db21wYW55Qg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19hY3Rpb25fdXJsQhAKDl9tZXRhZGF0YV9qc29uIlsKB0NvdW50cnkSCgoCaWQYASABKA0SDAoEbmFtZRgCIAEoCRIQCghpc29fY29kZRgDIAEoCRIRCglpc29fY29kZTIYBCABKAkSEQoJZGlhbF9jb2RlGAUgASgJIvUECghEb2N1bWVudBIKCgJpZBgBIAEoDRIMCgR1dWlkGDIgASgJEhAKCGZpbGVuYW1lGAIgASgJEhEKCW1pbWVfdHlwZRgDIAEoCRIMCgRzaXplGAQgASgDEhMKC3N0b3JhZ2VfdXJsGAUgASgJEhMKBnNoYTI1NhgGIAEoCUgAiAEBEhYKCWRpc2tfbmFtZRgHIAEoCUgBiAEBEhEKBGtpbmQYCCABKAlIAogBARIRCglpc19mb2xkZXIYCSABKAgSFgoJZnVsbF9wYXRoGAogASgJSAOIAQESHQoQcGFyZW50X2ZvbGRlcl9pZBgLIAEoDUgEiAEBEicKDXBhcmVudF9mb2xkZXIYDCABKAsyEC5hcGkudjEuRG9jdW1lbnQSEgoKcHJvamVjdF9pZBgNIAEoDRIgCgdwcm9qZWN0GA4gASgLMg8uYXBpLnYxLlByb2plY3QSEgoKY29tcGFueV9pZBgPIAEoDRIgCgdjb21wYW55GBAgASgLMg8uYXBpLnYxLkNvbXBhbnkSGwoTdXBsb2FkZWRfYnlfdXNlcl9pZBgRIAEoDRImChB1cGxvYWRlZF9ieV91c2VyGBIgASgLMgwuYXBpLnYxLlVzZXISLgoKY3JlYXRlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHX3NoYTI1NkIMCgpfZGlza19uYW1lQgcKBV9raW5kQgwKCl9mdWxsX3BhdGhCEwoRX3BhcmVudF9mb2xkZXJfaWQi3QEKDERvY3VtZW50TGluaxIKCgJpZBgBIAEoDRIRCglsaW5rX2tpbmQYAiABKAkSDwoHbGlua19pZBgDIAEoDRITCgtkb2N1bWVudF9pZBgEIAEoDRIiCghkb2N1bWVudBgFIAEoCzIQLmFwaS52MS5Eb2N1bWVudBISCgpjb21wYW55X2lkGAYgASgNEiAKB2NvbXBhbnkYByABKAsyDy5hcGkudjEuQ29tcGFueRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKIAgoHV29ya0xvZxIKCgJpZBgBIAEoDRIPCgd0YXNrX2lkGAIgASgNEhoKBHRhc2sYAyABKAsyDC5hcGkudjEuVGFzaxIPCgd1c2VyX2lkGAQgASgNEhoKBHVzZXIYBSABKAsyDC5hcGkudjEuVXNlchINCgVob3VycxgGIAEoARIYCgtkZXNjcmlwdGlvbhgHIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbiKHAwoJTWlsZXN0b25lEgoKAmlkGAEgASgNEgwKBHV1aWQYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjMKCnN0YXJ0X2RhdGUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMQoIZW5kX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESDgoGc3RhdHVzGAcgASgJEhIKCnByb2plY3RfaWQYCCABKA0SIAoHcHJvamVjdBgJIAEoCzIPLmFwaS52MS5Qcm9qZWN0Ei4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGUimAEKDU1pbGVzdG9uZVRhc2sSCgoCaWQYASABKA0SFAoMbWlsZXN0b25lX2lkGAIgASgNEiQKCW1pbGVzdG9uZRgDIAEoCzIRLmFwaS52MS5NaWxlc3RvbmUSDwoHdGFza19pZBgEIAEoDRIaCgR0YXNrGAUgASgLMgwuYXBpLnYxLlRhc2sSEgoKY29tcGFueV9pZBgGIAEoDSKmAQoQTWlsZXN0b25lRG9jUGFnZRIKCgJpZBgBIAEoDRIUCgxtaWxlc3RvbmVfaWQYAiABKA0SJAoJbWlsZXN0b25lGAMgASgLMhEuYXBpLnYxLk1pbGVzdG9uZRITCgtkb2NfcGFnZV9pZBgEIAEoDRIhCghkb2NfcGFnZRgFIAEoCzIPLmFwaS52MS5Eb2NQYWdlEhIKCmNvbXBhbnlfaWQYBiABKA0ixwEKE01pbGVzdG9uZVJlcG9zaXRvcnkSCgoCaWQYASABKA0SFAoMbWlsZXN0b25lX2lkGAIgASgNEiQKCW1pbGVzdG9uZRgDIAEoCzIRLmFwaS52MS5NaWxlc3RvbmUSHQoVcHJvamVjdF9yZXBvc2l0b3J5X2lkGAQgASgNEjUKEnByb2plY3RfcmVwb3NpdG9yeRgFIAEoCzIZLmFwaS52MS5Qcm9qZWN0UmVwb3NpdG9yeRISCgpjb21wYW55X2lkGAYgASgNIqgBChFNaWxlc3RvbmVEb2N1bWVudBIKCgJpZBgBIAEoDRIUCgxtaWxlc3RvbmVfaWQYAiABKA0SJAoJbWlsZXN0b25lGAMgASgLMhEuYXBpLnYxLk1pbGVzdG9uZRITCgtkb2N1bWVudF9pZBgEIAEoDRIiCghkb2N1bWVudBgFIAEoCzIQLmFwaS52MS5Eb2N1bWVudBISCgpjb21wYW55X2lkGAYgASgNItkECgpJbml0aWF0aXZlEgoKAmlkGAEgASgNEgwKBHV1aWQYAiABKAkSDQoFdGl0bGUYAyABKAkSFAoHc3VtbWFyeRgEIAEoCUgAiAEBEg4KBnN0YXR1cxgFIAEoCRIRCgljb3JlX2lkZWEYBiABKAkSHgoWY29yZV9pZGVhX2NvbnRlbnRfdHlwZRgHIAEoCRITCgthbmNob3JfdHlwZRgIIAEoCRIWCglhbmNob3JfaWQYCSABKA1IAYgBARISCgpwcm9qZWN0X2lkGAogASgNEiAKB3Byb2plY3QYCyABKAsyDy5hcGkudjEuUHJvamVjdBISCgpjb21wYW55X2lkGAwgASgNEhoKEmNyZWF0ZWRfYnlfdXNlcl9pZBgNIAEoDRIlCg9jcmVhdGVkX2J5X3VzZXIYDiABKAsyDC5hcGkudjEuVXNlchIaChJ1cGRhdGVkX2J5X3VzZXJfaWQYDyABKA0SJQoPdXBkYXRlZF9ieV91c2VyGBAgASgLMgwuYXBpLnYxLlVzZXISLgoKY3JlYXRlZF9hdBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgSIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoFdGFza3MYEyADKAsyDC5hcGkudjEuVGFzaxI1Cg5tZW1vcnlfZW50cmllcxgUIAMoCzIdLmFwaS52MS5Jbml0aWF0aXZlTWVtb3J5RW50cnlCCgoIX3N1bW1hcnlCDAoKX2FuY2hvcl9pZCKLAwoVSW5pdGlhdGl2ZU1lbW9yeUVudHJ5EgoKAmlkGAEgASgNEhUKDWluaXRpYXRpdmVfaWQYAiABKA0SEgoKY29tcGFueV9pZBgDIAEoDRIMCgRraW5kGAQgASgJEgwKBGJvZHkYBSABKAkSFAoMY29udGVudF90eXBlGAYgASgJEhsKDmF1dGhvcl91c2VyX2lkGAcgASgNSACIAQESIQoLYXV0aG9yX3VzZXIYCCABKAsyDC5hcGkudjEuVXNlchIQCghpc19hZ2VudBgJIAEoCBIRCglpc19zeXN0ZW0YCiABKAgSEwoLc291cmNlX3R5cGUYCyABKAkSFgoJc291cmNlX2lkGAwgASgNSAGIAQESFwoKc291cmNlX3VybBgNIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhEKD19hdXRob3JfdXNlcl9pZEIMCgpfc291cmNlX2lkQg0KC19zb3VyY2VfdXJsIqQCCg5UYXNrRGVwZW5kZW5jeRIKCgJpZBgBIAEoDRIUCgxmcm9tX3Rhc2tfaWQYAiABKA0SHwoJZnJvbV90YXNrGAMgASgLMgwuYXBpLnYxLlRhc2sSEgoKdG9fdGFza19pZBgEIAEoDRIdCgd0b190YXNrGAUgASgLMgwuYXBpLnYxLlRhc2sSKAoEdHlwZRgGIAEoDjIaLmFwaS52MS5UYXNrRGVwZW5kZW5jeVR5cGUSEgoKY29tcGFueV9pZBgHIAEoDRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLdAQoXVGFza0FjY2VwdGFuY2VDcml0ZXJpb24SCgoCaWQYASABKA0SDwoHdGFza19pZBgCIAEoDRIMCgR0ZXh0GAMgASgJEgwKBGRvbmUYBCABKAgSFQoNZGlzcGxheV9vcmRlchgFIAEoBRISCgpjb21wYW55X2lkGAYgASgNEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKsoBChJUYXNrRGVwZW5kZW5jeVR5cGUSJAogVEFTS19ERVBFTkRFTkNZX1RZUEVfVU5TUEVDSUZJRUQQABIfChtUQVNLX0RFUEVOREVOQ1lfVFlQRV9CTE9DS1MQARIjCh9UQVNLX0RFUEVOREVOQ1lfVFlQRV9CTE9DS0VEX0JZEAISIwofVEFTS19ERVBFTkRFTkNZX1RZUEVfRFVQTElDQVRFUxADEiMKH1RBU0tfREVQRU5ERU5DWV9UWVBFX1JFTEFURVNfVE8QBEJwCgpjb20uYXBpLnYxQgtNb2RlbHNQcm90b1ABWhxvcHNlZS9iYWNrZW5kL2dlbi9hcGkvdjE7Z2VuogIDQVhYqgIGQXBpLlYxygIGQXBpXFYx4gISQXBpXFYxXEdQQk1ldGFkYXRh6gIHQXBpOjpWMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_api_v1_vcs]);
14
14
 
15
15
  /**
16
16
  * Describes the message api.v1.Permission.
@@ -243,180 +243,187 @@ export const TaskPullRequestSchema = /*@__PURE__*/
243
243
  export const CommentSchema = /*@__PURE__*/
244
244
  messageDesc(file_api_v1_models, 32);
245
245
 
246
+ /**
247
+ * Describes the message api.v1.TaskSubscription.
248
+ * Use `create(TaskSubscriptionSchema)` to create a new message.
249
+ */
250
+ export const TaskSubscriptionSchema = /*@__PURE__*/
251
+ messageDesc(file_api_v1_models, 33);
252
+
246
253
  /**
247
254
  * Describes the message api.v1.Attachment.
248
255
  * Use `create(AttachmentSchema)` to create a new message.
249
256
  */
250
257
  export const AttachmentSchema = /*@__PURE__*/
251
- messageDesc(file_api_v1_models, 33);
258
+ messageDesc(file_api_v1_models, 34);
252
259
 
253
260
  /**
254
261
  * Describes the message api.v1.AIRunStatus.
255
262
  * Use `create(AIRunStatusSchema)` to create a new message.
256
263
  */
257
264
  export const AIRunStatusSchema = /*@__PURE__*/
258
- messageDesc(file_api_v1_models, 34);
265
+ messageDesc(file_api_v1_models, 35);
259
266
 
260
267
  /**
261
268
  * Describes the message api.v1.AIUnitStage.
262
269
  * Use `create(AIUnitStageSchema)` to create a new message.
263
270
  */
264
271
  export const AIUnitStageSchema = /*@__PURE__*/
265
- messageDesc(file_api_v1_models, 35);
272
+ messageDesc(file_api_v1_models, 36);
266
273
 
267
274
  /**
268
275
  * Describes the message api.v1.AIUnitStatus.
269
276
  * Use `create(AIUnitStatusSchema)` to create a new message.
270
277
  */
271
278
  export const AIUnitStatusSchema = /*@__PURE__*/
272
- messageDesc(file_api_v1_models, 36);
279
+ messageDesc(file_api_v1_models, 37);
273
280
 
274
281
  /**
275
282
  * Describes the message api.v1.AIUnitCategory.
276
283
  * Use `create(AIUnitCategorySchema)` to create a new message.
277
284
  */
278
285
  export const AIUnitCategorySchema = /*@__PURE__*/
279
- messageDesc(file_api_v1_models, 37);
286
+ messageDesc(file_api_v1_models, 38);
280
287
 
281
288
  /**
282
289
  * Describes the message api.v1.AIWorkflowRun.
283
290
  * Use `create(AIWorkflowRunSchema)` to create a new message.
284
291
  */
285
292
  export const AIWorkflowRunSchema = /*@__PURE__*/
286
- messageDesc(file_api_v1_models, 38);
293
+ messageDesc(file_api_v1_models, 39);
287
294
 
288
295
  /**
289
296
  * Describes the message api.v1.AIWorkflowUnit.
290
297
  * Use `create(AIWorkflowUnitSchema)` to create a new message.
291
298
  */
292
299
  export const AIWorkflowUnitSchema = /*@__PURE__*/
293
- messageDesc(file_api_v1_models, 39);
300
+ messageDesc(file_api_v1_models, 40);
294
301
 
295
302
  /**
296
303
  * Describes the message api.v1.Environment.
297
304
  * Use `create(EnvironmentSchema)` to create a new message.
298
305
  */
299
306
  export const EnvironmentSchema = /*@__PURE__*/
300
- messageDesc(file_api_v1_models, 40);
307
+ messageDesc(file_api_v1_models, 41);
301
308
 
302
309
  /**
303
310
  * Describes the message api.v1.Deployment.
304
311
  * Use `create(DeploymentSchema)` to create a new message.
305
312
  */
306
313
  export const DeploymentSchema = /*@__PURE__*/
307
- messageDesc(file_api_v1_models, 41);
314
+ messageDesc(file_api_v1_models, 42);
308
315
 
309
316
  /**
310
317
  * Describes the message api.v1.TestRun.
311
318
  * Use `create(TestRunSchema)` to create a new message.
312
319
  */
313
320
  export const TestRunSchema = /*@__PURE__*/
314
- messageDesc(file_api_v1_models, 42);
321
+ messageDesc(file_api_v1_models, 43);
315
322
 
316
323
  /**
317
324
  * Describes the message api.v1.ActivityLog.
318
325
  * Use `create(ActivityLogSchema)` to create a new message.
319
326
  */
320
327
  export const ActivityLogSchema = /*@__PURE__*/
321
- messageDesc(file_api_v1_models, 43);
328
+ messageDesc(file_api_v1_models, 44);
322
329
 
323
330
  /**
324
331
  * Describes the message api.v1.Notification.
325
332
  * Use `create(NotificationSchema)` to create a new message.
326
333
  */
327
334
  export const NotificationSchema = /*@__PURE__*/
328
- messageDesc(file_api_v1_models, 44);
335
+ messageDesc(file_api_v1_models, 45);
329
336
 
330
337
  /**
331
338
  * Describes the message api.v1.Country.
332
339
  * Use `create(CountrySchema)` to create a new message.
333
340
  */
334
341
  export const CountrySchema = /*@__PURE__*/
335
- messageDesc(file_api_v1_models, 45);
342
+ messageDesc(file_api_v1_models, 46);
336
343
 
337
344
  /**
338
345
  * Describes the message api.v1.Document.
339
346
  * Use `create(DocumentSchema)` to create a new message.
340
347
  */
341
348
  export const DocumentSchema = /*@__PURE__*/
342
- messageDesc(file_api_v1_models, 46);
349
+ messageDesc(file_api_v1_models, 47);
343
350
 
344
351
  /**
345
352
  * Describes the message api.v1.DocumentLink.
346
353
  * Use `create(DocumentLinkSchema)` to create a new message.
347
354
  */
348
355
  export const DocumentLinkSchema = /*@__PURE__*/
349
- messageDesc(file_api_v1_models, 47);
356
+ messageDesc(file_api_v1_models, 48);
350
357
 
351
358
  /**
352
359
  * Describes the message api.v1.WorkLog.
353
360
  * Use `create(WorkLogSchema)` to create a new message.
354
361
  */
355
362
  export const WorkLogSchema = /*@__PURE__*/
356
- messageDesc(file_api_v1_models, 48);
363
+ messageDesc(file_api_v1_models, 49);
357
364
 
358
365
  /**
359
366
  * Describes the message api.v1.Milestone.
360
367
  * Use `create(MilestoneSchema)` to create a new message.
361
368
  */
362
369
  export const MilestoneSchema = /*@__PURE__*/
363
- messageDesc(file_api_v1_models, 49);
370
+ messageDesc(file_api_v1_models, 50);
364
371
 
365
372
  /**
366
373
  * Describes the message api.v1.MilestoneTask.
367
374
  * Use `create(MilestoneTaskSchema)` to create a new message.
368
375
  */
369
376
  export const MilestoneTaskSchema = /*@__PURE__*/
370
- messageDesc(file_api_v1_models, 50);
377
+ messageDesc(file_api_v1_models, 51);
371
378
 
372
379
  /**
373
380
  * Describes the message api.v1.MilestoneDocPage.
374
381
  * Use `create(MilestoneDocPageSchema)` to create a new message.
375
382
  */
376
383
  export const MilestoneDocPageSchema = /*@__PURE__*/
377
- messageDesc(file_api_v1_models, 51);
384
+ messageDesc(file_api_v1_models, 52);
378
385
 
379
386
  /**
380
387
  * Describes the message api.v1.MilestoneRepository.
381
388
  * Use `create(MilestoneRepositorySchema)` to create a new message.
382
389
  */
383
390
  export const MilestoneRepositorySchema = /*@__PURE__*/
384
- messageDesc(file_api_v1_models, 52);
391
+ messageDesc(file_api_v1_models, 53);
385
392
 
386
393
  /**
387
394
  * Describes the message api.v1.MilestoneDocument.
388
395
  * Use `create(MilestoneDocumentSchema)` to create a new message.
389
396
  */
390
397
  export const MilestoneDocumentSchema = /*@__PURE__*/
391
- messageDesc(file_api_v1_models, 53);
398
+ messageDesc(file_api_v1_models, 54);
392
399
 
393
400
  /**
394
401
  * Describes the message api.v1.Initiative.
395
402
  * Use `create(InitiativeSchema)` to create a new message.
396
403
  */
397
404
  export const InitiativeSchema = /*@__PURE__*/
398
- messageDesc(file_api_v1_models, 54);
405
+ messageDesc(file_api_v1_models, 55);
399
406
 
400
407
  /**
401
408
  * Describes the message api.v1.InitiativeMemoryEntry.
402
409
  * Use `create(InitiativeMemoryEntrySchema)` to create a new message.
403
410
  */
404
411
  export const InitiativeMemoryEntrySchema = /*@__PURE__*/
405
- messageDesc(file_api_v1_models, 55);
412
+ messageDesc(file_api_v1_models, 56);
406
413
 
407
414
  /**
408
415
  * Describes the message api.v1.TaskDependency.
409
416
  * Use `create(TaskDependencySchema)` to create a new message.
410
417
  */
411
418
  export const TaskDependencySchema = /*@__PURE__*/
412
- messageDesc(file_api_v1_models, 56);
419
+ messageDesc(file_api_v1_models, 57);
413
420
 
414
421
  /**
415
422
  * Describes the message api.v1.TaskAcceptanceCriterion.
416
423
  * Use `create(TaskAcceptanceCriterionSchema)` to create a new message.
417
424
  */
418
425
  export const TaskAcceptanceCriterionSchema = /*@__PURE__*/
419
- messageDesc(file_api_v1_models, 57);
426
+ messageDesc(file_api_v1_models, 58);
420
427
 
421
428
  /**
422
429
  * Describes the enum api.v1.TaskDependencyType.
@@ -63,6 +63,13 @@ export declare type AddProjectRequest = Message<"api.v1.AddProjectRequest"> & {
63
63
  export declare const AddProjectRequestSchema: GenMessage<AddProjectRequest>;
64
64
 
65
65
  /**
66
+ * EditProjectRequest is a partial update: every mutable field carries explicit
67
+ * presence, so "set this column to false/empty" is distinguishable from "the
68
+ * client did not send this field". A bare proto3 scalar makes both arrive as
69
+ * the zero value, which is how deactivating a project used to be swallowed
70
+ * (OPS-244). Validation rules on an optional field are only applied when the
71
+ * field is present, so an omitted name is "unchanged", not "empty name".
72
+ *
66
73
  * @generated from message api.v1.EditProjectRequest
67
74
  */
68
75
  export declare type EditProjectRequest = Message<"api.v1.EditProjectRequest"> & {
@@ -72,14 +79,17 @@ export declare type EditProjectRequest = Message<"api.v1.EditProjectRequest"> &
72
79
  id: number;
73
80
 
74
81
  /**
75
- * @generated from field: string name = 2;
82
+ * @generated from field: optional string name = 2;
76
83
  */
77
- name: string;
84
+ name?: string;
78
85
 
79
86
  /**
80
- * @generated from field: string slug = 3;
87
+ * min_len rejects an explicitly-empty slug loudly rather than blanking the
88
+ * column; omit the field entirely to leave the slug alone.
89
+ *
90
+ * @generated from field: optional string slug = 3;
81
91
  */
82
- slug: string;
92
+ slug?: string;
83
93
 
84
94
  /**
85
95
  * @generated from field: optional string description = 4;
@@ -87,9 +97,9 @@ export declare type EditProjectRequest = Message<"api.v1.EditProjectRequest"> &
87
97
  description?: string;
88
98
 
89
99
  /**
90
- * @generated from field: bool is_active = 5;
100
+ * @generated from field: optional bool is_active = 5;
91
101
  */
92
- isActive: boolean;
102
+ isActive?: boolean;
93
103
 
94
104
  /**
95
105
  * @generated from field: optional string settings_json = 6;
@@ -97,14 +107,9 @@ export declare type EditProjectRequest = Message<"api.v1.EditProjectRequest"> &
97
107
  settingsJson?: string;
98
108
 
99
109
  /**
100
- * @generated from field: uint32 company_id = 7;
110
+ * @generated from field: optional string short_name = 8;
101
111
  */
102
- companyId: number;
103
-
104
- /**
105
- * @generated from field: string short_name = 8;
106
- */
107
- shortName: string;
112
+ shortName?: string;
108
113
  };
109
114
 
110
115
  /**
@@ -14,7 +14,7 @@ import { file_api_v1_models } from "./models_pb";
14
14
  * Describes the file api/v1/project.proto.
15
15
  */
16
16
  export const file_api_v1_project = /*@__PURE__*/
17
- fileDesc("ChRhcGkvdjEvcHJvamVjdC5wcm90bxIGYXBpLnYxIusBChFBZGRQcm9qZWN0UmVxdWVzdBIXCgRuYW1lGAEgASgJQgn6QgZyBBABGGQSFQoEc2x1ZxgCIAEoCUIH+kIEcgIYMhIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgEIAEoCBIaCg1zZXR0aW5nc19qc29uGAUgASgJSAGIAQESEgoKY29tcGFueV9pZBgGIAEoDRInCgpzaG9ydF9uYW1lGAcgASgJQhP6QhByDhABGAQyCF5bQS1aXSskQg4KDF9kZXNjcmlwdGlvbkIQCg5fc2V0dGluZ3NfanNvbiKBAgoSRWRpdFByb2plY3RSZXF1ZXN0EhMKAmlkGAEgASgNQgf6QgQqAigBEhcKBG5hbWUYAiABKAlCCfpCBnIEEAEYZBIVCgRzbHVnGAMgASgJQgf6QgRyAhgyEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoJaXNfYWN0aXZlGAUgASgIEhoKDXNldHRpbmdzX2pzb24YBiABKAlIAYgBARISCgpjb21wYW55X2lkGAcgASgNEicKCnNob3J0X25hbWUYCCABKAlCE/pCEHIOEAEYBDIIXltBLVpdKyRCDgoMX2Rlc2NyaXB0aW9uQhAKDl9zZXR0aW5nc19qc29uIh8KEUdldFByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgNIjEKF0dldFByb2plY3RCeVVVSURSZXF1ZXN0EhYKBHV1aWQYASABKAlCCPpCBXIDsAEBInUKEkdldFByb2plY3RzUmVxdWVzdBIwCgpwYWdpbmF0aW9uGAEgASgLMhIuYXBpLnYxLlBhZ2luYXRpb25CCPpCBYoBAhABEi0KDmZpbHRlcl9vcHRpb25zGAIgASgLMhUuYXBpLnYxLkZpbHRlck9wdGlvbnMiIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKA0iYAoTR2V0UHJvamVjdHNSZXNwb25zZRIhCghwcm9qZWN0cxgBIAMoCzIPLmFwaS52MS5Qcm9qZWN0EiYKCnBhZ2luYXRpb24YAiABKAsyEi5hcGkudjEuUGFnaW5hdGlvbiI2ChJBZGRQcm9qZWN0UmVzcG9uc2USIAoHcHJvamVjdBgBIAEoCzIPLmFwaS52MS5Qcm9qZWN0IjcKE0VkaXRQcm9qZWN0UmVzcG9uc2USIAoHcHJvamVjdBgBIAEoCzIPLmFwaS52MS5Qcm9qZWN0IjYKEkdldFByb2plY3RSZXNwb25zZRIgCgdwcm9qZWN0GAEgASgLMg8uYXBpLnYxLlByb2plY3QiSgoTU2hhcmVQcm9qZWN0UmVxdWVzdBIbCgpwcm9qZWN0X2lkGAEgASgNQgf6QgQqAigBEhYKBWVtYWlsGAIgASgJQgf6QgRyAmABIicKFFNoYXJlUHJvamVjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLwoSQWNjZXB0U2hhcmVSZXF1ZXN0EhkKCHNoYXJlX2lkGAEgASgNQgf6QgQqAigBIiYKE0FjY2VwdFNoYXJlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIaChhHZXRQZW5kaW5nSW52aXRlc1JlcXVlc3QiQQoZR2V0UGVuZGluZ0ludml0ZXNSZXNwb25zZRIkCgZzaGFyZXMYASADKAsyFC5hcGkudjEuUHJvamVjdFNoYXJlIpEBCgxQcm9qZWN0U2hhcmUSCgoCaWQYASABKA0SEgoKcHJvamVjdF9pZBgCIAEoDRIgCgdwcm9qZWN0GAMgASgLMg8uYXBpLnYxLlByb2plY3QSFAoMaW52aXRlX2VtYWlsGAQgASgJEg4KBnN0YXR1cxgFIAEoCRIZChF0YXJnZXRfY29tcGFueV9pZBgGIAEoDTLtBwoOUHJvamVjdFNlcnZpY2USYAoKQWRkUHJvamVjdBIZLmFwaS52MS5BZGRQcm9qZWN0UmVxdWVzdBoaLmFwaS52MS5BZGRQcm9qZWN0UmVzcG9uc2UiG4LT5JMCFToBKiIQL2FwaS92MS9wcm9qZWN0cxJoCgtFZGl0UHJvamVjdBIaLmFwaS52MS5FZGl0UHJvamVjdFJlcXVlc3QaGy5hcGkudjEuRWRpdFByb2plY3RSZXNwb25zZSIggtPkkwIaOgEqGhUvYXBpL3YxL3Byb2plY3RzL3tpZH0SYgoKR2V0UHJvamVjdBIZLmFwaS52MS5HZXRQcm9qZWN0UmVxdWVzdBoaLmFwaS52MS5HZXRQcm9qZWN0UmVzcG9uc2UiHYLT5JMCFxIVL2FwaS92MS9wcm9qZWN0cy97aWR9EnUKEEdldFByb2plY3RCeVVVSUQSHy5hcGkudjEuR2V0UHJvamVjdEJ5VVVJRFJlcXVlc3QaGi5hcGkudjEuR2V0UHJvamVjdFJlc3BvbnNlIiSC0+STAh4SHC9hcGkvdjEvcHJvamVjdHMvdXVpZC97dXVpZH0SYAoLR2V0UHJvamVjdHMSGi5hcGkudjEuR2V0UHJvamVjdHNSZXF1ZXN0GhsuYXBpLnYxLkdldFByb2plY3RzUmVzcG9uc2UiGILT5JMCEhIQL2FwaS92MS9wcm9qZWN0cxJkCg1EZWxldGVQcm9qZWN0EhwuYXBpLnYxLkRlbGV0ZVByb2plY3RSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhcqFS9hcGkvdjEvcHJvamVjdHMve2lkfRJsCgxTaGFyZVByb2plY3QSGy5hcGkudjEuU2hhcmVQcm9qZWN0UmVxdWVzdBocLmFwaS52MS5TaGFyZVByb2plY3RSZXNwb25zZSIhgtPkkwIbOgEqIhYvYXBpL3YxL3Byb2plY3RzL3NoYXJlEnsKC0FjY2VwdFNoYXJlEhouYXBpLnYxLkFjY2VwdFNoYXJlUmVxdWVzdBobLmFwaS52MS5BY2NlcHRTaGFyZVJlc3BvbnNlIjOC0+STAi06ASoiKC9hcGkvdjEvcHJvamVjdHMvc2hhcmUve3NoYXJlX2lkfS9hY2NlcHQSgAEKEUdldFBlbmRpbmdJbnZpdGVzEiAuYXBpLnYxLkdldFBlbmRpbmdJbnZpdGVzUmVxdWVzdBohLmFwaS52MS5HZXRQZW5kaW5nSW52aXRlc1Jlc3BvbnNlIiaC0+STAiASHi9hcGkvdjEvcHJvamVjdHMvc2hhcmUvcGVuZGluZ0JxCgpjb20uYXBpLnYxQgxQcm9qZWN0UHJvdG9QAVocb3BzZWUvYmFja2VuZC9nZW4vYXBpL3YxO2dlbqICA0FYWKoCBkFwaS5WMcoCBkFwaVxWMeICEkFwaVxWMVxHUEJNZXRhZGF0YeoCB0FwaTo6VjFiBnByb3RvMw", [file_google_protobuf_empty, file_google_api_annotations, file_validate_validate, file_api_v1_pagination, file_api_v1_filter, file_api_v1_models]);
17
+ fileDesc("ChRhcGkvdjEvcHJvamVjdC5wcm90bxIGYXBpLnYxIusBChFBZGRQcm9qZWN0UmVxdWVzdBIXCgRuYW1lGAEgASgJQgn6QgZyBBABGGQSFQoEc2x1ZxgCIAEoCUIH+kIEcgIYMhIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKCWlzX2FjdGl2ZRgEIAEoCBIaCg1zZXR0aW5nc19qc29uGAUgASgJSAGIAQESEgoKY29tcGFueV9pZBgGIAEoDRInCgpzaG9ydF9uYW1lGAcgASgJQhP6QhByDhABGAQyCF5bQS1aXSskQg4KDF9kZXNjcmlwdGlvbkIQCg5fc2V0dGluZ3NfanNvbiLEAgoSRWRpdFByb2plY3RSZXF1ZXN0EhMKAmlkGAEgASgNQgf6QgQqAigBEhwKBG5hbWUYAiABKAlCCfpCBnIEEAEYZEgAiAEBEhwKBHNsdWcYAyABKAlCCfpCBnIEEAEYMkgBiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSAKIAQESFgoJaXNfYWN0aXZlGAUgASgISAOIAQESGgoNc2V0dGluZ3NfanNvbhgGIAEoCUgEiAEBEiwKCnNob3J0X25hbWUYCCABKAlCE/pCEHIOEAEYBDIIXltBLVpdKyRIBYgBAUIHCgVfbmFtZUIHCgVfc2x1Z0IOCgxfZGVzY3JpcHRpb25CDAoKX2lzX2FjdGl2ZUIQCg5fc2V0dGluZ3NfanNvbkINCgtfc2hvcnRfbmFtZUoECAcQCFIKY29tcGFueV9pZCIfChFHZXRQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoDSIxChdHZXRQcm9qZWN0QnlVVUlEUmVxdWVzdBIWCgR1dWlkGAEgASgJQgj6QgVyA7ABASJ1ChJHZXRQcm9qZWN0c1JlcXVlc3QSMAoKcGFnaW5hdGlvbhgBIAEoCzISLmFwaS52MS5QYWdpbmF0aW9uQgj6QgWKAQIQARItCg5maWx0ZXJfb3B0aW9ucxgCIAEoCzIVLmFwaS52MS5GaWx0ZXJPcHRpb25zIiIKFERlbGV0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgNImAKE0dldFByb2plY3RzUmVzcG9uc2USIQoIcHJvamVjdHMYASADKAsyDy5hcGkudjEuUHJvamVjdBImCgpwYWdpbmF0aW9uGAIgASgLMhIuYXBpLnYxLlBhZ2luYXRpb24iNgoSQWRkUHJvamVjdFJlc3BvbnNlEiAKB3Byb2plY3QYASABKAsyDy5hcGkudjEuUHJvamVjdCI3ChNFZGl0UHJvamVjdFJlc3BvbnNlEiAKB3Byb2plY3QYASABKAsyDy5hcGkudjEuUHJvamVjdCI2ChJHZXRQcm9qZWN0UmVzcG9uc2USIAoHcHJvamVjdBgBIAEoCzIPLmFwaS52MS5Qcm9qZWN0IkoKE1NoYXJlUHJvamVjdFJlcXVlc3QSGwoKcHJvamVjdF9pZBgBIAEoDUIH+kIEKgIoARIWCgVlbWFpbBgCIAEoCUIH+kIEcgJgASInChRTaGFyZVByb2plY3RSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi8KEkFjY2VwdFNoYXJlUmVxdWVzdBIZCghzaGFyZV9pZBgBIAEoDUIH+kIEKgIoASImChNBY2NlcHRTaGFyZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiGgoYR2V0UGVuZGluZ0ludml0ZXNSZXF1ZXN0IkEKGUdldFBlbmRpbmdJbnZpdGVzUmVzcG9uc2USJAoGc2hhcmVzGAEgAygLMhQuYXBpLnYxLlByb2plY3RTaGFyZSKRAQoMUHJvamVjdFNoYXJlEgoKAmlkGAEgASgNEhIKCnByb2plY3RfaWQYAiABKA0SIAoHcHJvamVjdBgDIAEoCzIPLmFwaS52MS5Qcm9qZWN0EhQKDGludml0ZV9lbWFpbBgEIAEoCRIOCgZzdGF0dXMYBSABKAkSGQoRdGFyZ2V0X2NvbXBhbnlfaWQYBiABKA0y7QcKDlByb2plY3RTZXJ2aWNlEmAKCkFkZFByb2plY3QSGS5hcGkudjEuQWRkUHJvamVjdFJlcXVlc3QaGi5hcGkudjEuQWRkUHJvamVjdFJlc3BvbnNlIhuC0+STAhU6ASoiEC9hcGkvdjEvcHJvamVjdHMSaAoLRWRpdFByb2plY3QSGi5hcGkudjEuRWRpdFByb2plY3RSZXF1ZXN0GhsuYXBpLnYxLkVkaXRQcm9qZWN0UmVzcG9uc2UiIILT5JMCGjoBKhoVL2FwaS92MS9wcm9qZWN0cy97aWR9EmIKCkdldFByb2plY3QSGS5hcGkudjEuR2V0UHJvamVjdFJlcXVlc3QaGi5hcGkudjEuR2V0UHJvamVjdFJlc3BvbnNlIh2C0+STAhcSFS9hcGkvdjEvcHJvamVjdHMve2lkfRJ1ChBHZXRQcm9qZWN0QnlVVUlEEh8uYXBpLnYxLkdldFByb2plY3RCeVVVSURSZXF1ZXN0GhouYXBpLnYxLkdldFByb2plY3RSZXNwb25zZSIkgtPkkwIeEhwvYXBpL3YxL3Byb2plY3RzL3V1aWQve3V1aWR9EmAKC0dldFByb2plY3RzEhouYXBpLnYxLkdldFByb2plY3RzUmVxdWVzdBobLmFwaS52MS5HZXRQcm9qZWN0c1Jlc3BvbnNlIhiC0+STAhISEC9hcGkvdjEvcHJvamVjdHMSZAoNRGVsZXRlUHJvamVjdBIcLmFwaS52MS5EZWxldGVQcm9qZWN0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXKhUvYXBpL3YxL3Byb2plY3RzL3tpZH0SbAoMU2hhcmVQcm9qZWN0EhsuYXBpLnYxLlNoYXJlUHJvamVjdFJlcXVlc3QaHC5hcGkudjEuU2hhcmVQcm9qZWN0UmVzcG9uc2UiIYLT5JMCGzoBKiIWL2FwaS92MS9wcm9qZWN0cy9zaGFyZRJ7CgtBY2NlcHRTaGFyZRIaLmFwaS52MS5BY2NlcHRTaGFyZVJlcXVlc3QaGy5hcGkudjEuQWNjZXB0U2hhcmVSZXNwb25zZSIzgtPkkwItOgEqIigvYXBpL3YxL3Byb2plY3RzL3NoYXJlL3tzaGFyZV9pZH0vYWNjZXB0EoABChFHZXRQZW5kaW5nSW52aXRlcxIgLmFwaS52MS5HZXRQZW5kaW5nSW52aXRlc1JlcXVlc3QaIS5hcGkudjEuR2V0UGVuZGluZ0ludml0ZXNSZXNwb25zZSImgtPkkwIgEh4vYXBpL3YxL3Byb2plY3RzL3NoYXJlL3BlbmRpbmdCcQoKY29tLmFwaS52MUIMUHJvamVjdFByb3RvUAFaHG9wc2VlL2JhY2tlbmQvZ2VuL2FwaS92MTtnZW6iAgNBWFiqAgZBcGkuVjHKAgZBcGlcVjHiAhJBcGlcVjFcR1BCTWV0YWRhdGHqAgdBcGk6OlYxYgZwcm90bzM", [file_google_protobuf_empty, file_google_api_annotations, file_validate_validate, file_api_v1_pagination, file_api_v1_filter, file_api_v1_models]);
18
18
 
19
19
  /**
20
20
  * Describes the message api.v1.AddProjectRequest.
@@ -5,7 +5,7 @@
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
6
6
  import type { Message } from "@bufbuild/protobuf";
7
7
  import type { VCSProvider } from "./vcs_pb";
8
- import type { ProjectRepository, VCSIntegration } from "./models_pb";
8
+ import type { ProjectRepository } from "./models_pb";
9
9
  import type { EmptySchema } from "@bufbuild/protobuf/wkt";
10
10
 
11
11
  /**
@@ -313,9 +313,9 @@ export declare const ConnectRepositoryRequestSchema: GenMessage<ConnectRepositor
313
313
  */
314
314
  export declare type ConnectRepositoryResponse = Message<"api.v1.ConnectRepositoryResponse"> & {
315
315
  /**
316
- * @generated from field: api.v1.VCSIntegration integration = 1;
316
+ * @generated from field: api.v1.ProjectRepository repository = 2;
317
317
  */
318
- integration?: VCSIntegration;
318
+ repository?: ProjectRepository;
319
319
  };
320
320
 
321
321
  /**
@@ -340,6 +340,27 @@ export declare type DisconnectRepositoryRequest = Message<"api.v1.DisconnectRepo
340
340
  */
341
341
  export declare const DisconnectRepositoryRequestSchema: GenMessage<DisconnectRepositoryRequest>;
342
342
 
343
+ /**
344
+ * @generated from message api.v1.DisconnectVCSAccountRequest
345
+ */
346
+ export declare type DisconnectVCSAccountRequest = Message<"api.v1.DisconnectVCSAccountRequest"> & {
347
+ /**
348
+ * @generated from field: uint32 project_id = 1;
349
+ */
350
+ projectId: number;
351
+
352
+ /**
353
+ * @generated from field: api.v1.VCSProvider provider = 2;
354
+ */
355
+ provider: VCSProvider;
356
+ };
357
+
358
+ /**
359
+ * Describes the message api.v1.DisconnectVCSAccountRequest.
360
+ * Use `create(DisconnectVCSAccountRequestSchema)` to create a new message.
361
+ */
362
+ export declare const DisconnectVCSAccountRequestSchema: GenMessage<DisconnectVCSAccountRequest>;
363
+
343
364
  /**
344
365
  * @generated from message api.v1.GetConnectionStatusRequest
345
366
  */
@@ -911,6 +932,16 @@ export declare const VCSConnectionService: GenService<{
911
932
  input: typeof DisconnectRepositoryRequestSchema;
912
933
  output: typeof EmptySchema;
913
934
  },
935
+ /**
936
+ * Disconnect an entire VCS account connection (all repos + stored credentials) for a provider
937
+ *
938
+ * @generated from rpc api.v1.VCSConnectionService.DisconnectVCSAccount
939
+ */
940
+ disconnectVCSAccount: {
941
+ methodKind: "unary";
942
+ input: typeof DisconnectVCSAccountRequestSchema;
943
+ output: typeof EmptySchema;
944
+ },
914
945
  /**
915
946
  * Get VCS connection status for a project
916
947
  *