@silvana-one/orderbook 1.1.23 → 1.1.25

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 (30) hide show
  1. package/dist/node/index.cjs +130 -40
  2. package/dist/node/orderbook.d.ts +32 -1
  3. package/dist/node/orderbook.js +35 -1
  4. package/dist/node/orderbook.js.map +1 -1
  5. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +525 -0
  6. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +99 -7
  7. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  8. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +139 -1
  9. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +47 -33
  10. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  11. package/dist/node/settlement.d.ts +3 -0
  12. package/dist/node/settlement.js.map +1 -1
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tsconfig.web.tsbuildinfo +1 -1
  15. package/dist/web/orderbook.d.ts +32 -1
  16. package/dist/web/orderbook.js +35 -1
  17. package/dist/web/orderbook.js.map +1 -1
  18. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +525 -0
  19. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +99 -7
  20. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  21. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +139 -1
  22. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +47 -33
  23. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  24. package/dist/web/settlement.d.ts +3 -0
  25. package/dist/web/settlement.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/orderbook.ts +62 -0
  28. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +631 -7
  29. package/src/proto/silvana/settlement/v1/settlement_pb.ts +191 -33
  30. package/src/settlement.ts +3 -0
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file proto/silvana/settlement/v1/settlement.proto.
13
13
  */
14
14
  export const file_proto_silvana_settlement_v1_settlement: GenFile = /*@__PURE__*/
15
- fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAingEKFFNldHRsZW1lbnRJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSDgoGc3ltYm9sGAIgASgJEhAKCHJlZ2lzdHJ5GAMgASgJEhAKCHF1YW50aXR5GAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKBBAoZU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRITCgtidXllcl9wYXJ0eRgEIAEoCRIUCgxzZWxsZXJfcGFydHkYBSABKAkSRAoPYmFzZV9pbnN0cnVtZW50GAYgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EkUKEHF1b3RlX2luc3RydW1lbnQYByABKAsyKy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEluc3RydW1lbnQSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIzCg9hbGxvY2F0ZV9iZWZvcmUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXNldHRsZV9iZWZvcmUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9tZXRhZGF0YSKJAgoWUHJlY29uZmlybWF0aW9uUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEkIKCHByb3Bvc2FsGAMgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USGAoQcmVxdWVzdGluZ19wYXJ0eRgEIAEoCRIuCgpyZXNwb25kX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgV0ZXJtcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIICgZfdGVybXMivwIKF1ByZWNvbmZpcm1hdGlvbkRlY2lzaW9uEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQAoIcmVzcG9uc2UYAyABKA4yLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVzcG9uc2USHQoQcmVqZWN0aW9uX3JlYXNvbhgEIAEoCUgAiAEBEjAKCmNvbmRpdGlvbnMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESEQoJc2lnbmVkX2J5GAYgASgJEi4KCmRlY2lkZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9yZWplY3Rpb25fcmVhc29uQg0KC19jb25kaXRpb25zItgBChJEdnBDb250cmFjdENyZWF0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIYChBkdnBfcHJvcG9zYWxfY2lkGAMgASgJEh4KFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBCABKAkSFgoOcHJvcG9zZXJfcGFydHkYBSABKAkSFAoMY291bnRlcnBhcnR5GAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq8BChNEdnBDb250cmFjdEFjY2VwdGVkEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIVCg1kdnBfdXBkYXRlX2lkGAQgASgJEhMKC2FjY2VwdGVkX2J5GAUgASgJEi8KC2FjY2VwdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLbAgoQQWxsb2NhdGlvblN0YXR1cxITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEhAKCHBhcnR5X2lkGAQgASgJEhYKDmFsbG9jYXRpb25fY2lkGAUgASgJEhwKFGFsbG9jYXRpb25fdXBkYXRlX2lkGAYgASgJEhUKDWluc3RydW1lbnRfaWQYByABKAkSEAoIcXVhbnRpdHkYCCABKAkSFAoMaXNfYWxsb2NhdGVkGAkgASgIEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIAIgBARIwCgxhbGxvY2F0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIqoCChlTZXR0bGVtZW50RXhlY3V0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYBCABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgGIAEoCRIVCg1pc19zdWNjZXNzZnVsGAcgASgIEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIAIgBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSKKAQoPVXNlclNlcnZpY2VJbmZvEhAKCHBhcnR5X2lkGAEgASgJEhgKEHVzZXJfc2VydmljZV9jaWQYAiABKAkSGwoTb3BlcmF0b3JfY29uZmlnX2NpZBgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL5AQoTU2V0dGxlbWVudEhhbmRzaGFrZRIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhEKCXBhcnR5X2lkcxgCIAMoCRI9Cg11c2VyX3NlcnZpY2VzGAMgAygLMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVzZXJTZXJ2aWNlSW5mbxIWCg5vcGVyYXRvcl9wYXJ0eRgEIAEoCRIyCgxjYXBhYmlsaXRpZXMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX2NhcGFiaWxpdGllcyK4AQoMSGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEh0KEHJlamVjdGlvbl9yZWFzb24YAiABKAlIAIgBARISCgpzZXNzaW9uX2lkGAMgASgJEh0KFXN1cHBvcnRlZF9pbnN0cnVtZW50cxgEIAMoCRIvCgtzZXJ2ZXJfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb24iZwoJSGVhcnRiZWF0EhIKCnNlc3Npb25faWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQimgYKFVNlcnZlclRvQ2FudG9uTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI8Cg1oYW5kc2hha2VfYWNrGAMgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhhbmRzaGFrZUFja0gAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJECghwcm9wb3NhbBgFIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlSAASUAoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYBiABKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVxdWVzdEgAEkAKC2R2cF9jcmVhdGVkGAcgASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0Q3JlYXRlZEgAEkIKDGR2cF9hY2NlcHRlZBgIIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDb250cmFjdEFjY2VwdGVkSAASRAoRYWxsb2NhdGlvbl9zdGF0dXMYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblN0YXR1c0gAEk0KEXNldHRsZW1lbnRfc3RhdHVzGAogASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXNIABI7Cgdjb21tYW5kGAsgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kSAASNwoFcXVlcnkYDCABKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFF1ZXJ5SAASKwoHc2VudF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHbWVzc2FnZSLwBQoVQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlEhIKCnNlc3Npb25faWQYASABKAkSFwoPc2VxdWVuY2VfbnVtYmVyGAIgASgEEj8KCWhhbmRzaGFrZRgDIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50SGFuZHNoYWtlSAASNQoJaGVhcnRiZWF0GAQgASgLMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhlYXJ0YmVhdEgAEkkKD3ByZWNvbmZpcm1hdGlvbhgFIAEoCzIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25EZWNpc2lvbkgAEkAKDGR2cF9jcmVhdGlvbhgGIAEoCzIoLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDcmVhdGlvblJlcG9ydEgAEkQKDmR2cF9hY2NlcHRhbmNlGAcgASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cEFjY2VwdGFuY2VSZXBvcnRIABI9CgphbGxvY2F0aW9uGAggASgLMicuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkFsbG9jYXRpb25SZXBvcnRIABI9CgpzZXR0bGVtZW50GAkgASgLMicuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRSZXBvcnRIABI9CghyZXNwb25zZRgKIAEoCzIpLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UmVzcG9uc2VIABIzCgVlcnJvchgLIAEoCzIiLnNpbHZhbmEuc2V0dGxlbWVudC52MS5FcnJvclJlcG9ydEgAEjUKBnN0YXR1cxgMIAEoCzIjLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TdGF0dXNVcGRhdGVIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIqICChFEdnBDcmVhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHQoQZHZwX3Byb3Bvc2FsX2NpZBgEIAEoCUgAiAEBEiMKFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBSABKAlIAYgBARIaCg1lcnJvcl9tZXNzYWdlGAYgASgJSAKIAQESLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2UigQIKE0R2cEFjY2VwdGFuY2VSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEhQKB2R2cF9jaWQYBCABKAlIAIgBARIaCg1kdnBfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi8KC2FjY2VwdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZHZwX2NpZEIQCg5fZHZwX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSLnAgoQQWxsb2NhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEg8KB3N1Y2Nlc3MYBCABKAgSGwoOYWxsb2NhdGlvbl9jaWQYBSABKAlIAIgBARIhChRhbGxvY2F0aW9uX3VwZGF0ZV9pZBgGIAEoCUgBiAEBEhQKDGhvbGRpbmdfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAKIAQESMAoMYWxsb2NhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIRCg9fYWxsb2NhdGlvbl9jaWRCFwoVX2FsbG9jYXRpb25fdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIv4CChBTZXR0bGVtZW50UmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIcCg9zZXR0bGVkX2R2cF9jaWQYBCABKAlIAIgBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgFIAEoCUgBiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBiABKAlIAogBARIVCg1hcmNoaXZlZF9jaWRzGAcgAygJEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIA4gBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEIQCg5fZXJyb3JfbWVzc2FnZSKHAgoLRXJyb3JSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USEgoKZXJyb3JfY29kZRgEIAEoCRIVCg1lcnJvcl9tZXNzYWdlGAUgASgJEi0KB2RldGFpbHMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLwoLb2NjdXJyZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9kZXRhaWxzIoYCCgxTdGF0dXNVcGRhdGUSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI9Cg1jdXJyZW50X3N0YWdlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRTdGFnZRIUCgdtZXNzYWdlGAQgASgJSACIAQESLQoHbWV0cmljcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIKCghfbWV0cmljcyLSAwoRU2V0dGxlbWVudENvbW1hbmQSSgoMY29tbWFuZF90eXBlGAEgASgOMjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kLkNvbW1hbmRUeXBlEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhUKDXNldHRsZW1lbnRfaWQYAyABKAkSMAoKcGFyYW1ldGVycxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIuCgpleGVjdXRlX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLTAQoLQ29tbWFuZFR5cGUSHAoYQ09NTUFORF9UWVBFX1VOU1BFQ0lGSUVEEAASJAogQ09NTUFORF9UWVBFX0NSRUFURV9EVlBfUFJPUE9TQUwQARIbChdDT01NQU5EX1RZUEVfQUNDRVBUX0RWUBACEhkKFUNPTU1BTkRfVFlQRV9BTExPQ0FURRADEhcKE0NPTU1BTkRfVFlQRV9TRVRUTEUQBBIXChNDT01NQU5EX1RZUEVfQ0FOQ0VMEAUSFgoSQ09NTUFORF9UWVBFX1JFVFJZEAZCDQoLX3BhcmFtZXRlcnMi3wMKD1NldHRsZW1lbnRRdWVyeRJECgpxdWVyeV90eXBlGAEgASgOMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRRdWVyeS5RdWVyeVR5cGUSFQoIcGFydHlfaWQYAiABKAlIAIgBARIYCgtjb250cmFjdF9pZBgDIAEoCUgBiAEBEhoKDWluc3RydW1lbnRfaWQYBCABKAlIAogBARIwCgpwYXJhbWV0ZXJzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBIsgBCglRdWVyeVR5cGUSGgoWUVVFUllfVFlQRV9VTlNQRUNJRklFRBAAEhsKF1FVRVJZX1RZUEVfR0VUX0hPTERJTkdTEAESHwobUVVFUllfVFlQRV9HRVRfVVNFUl9TRVJWSUNFEAISGwoXUVVFUllfVFlQRV9HRVRfQ09OVFJBQ1QQAxIkCiBRVUVSWV9UWVBFX0dFVF9BTExPQ0FUSU9OX1NUQVRVUxAEEh4KGlFVRVJZX1RZUEVfQ0hFQ0tfTElRVUlESVRZEAVCCwoJX3BhcnR5X2lkQg4KDF9jb250cmFjdF9pZEIQCg5faW5zdHJ1bWVudF9pZEINCgtfcGFyYW1ldGVycyKuAQoSU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSFAoHbWVzc2FnZRgCIAEoCUgAiAEBEioKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESMAoMcmVzcG9uZGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIHCgVfZGF0YSKBAQoaR2V0UGVuZGluZ1Byb3Bvc2Fsc1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBQggKBl9saW1pdCJxChtHZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USQwoJcHJvcG9zYWxzGAEgAygLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USDQoFdG90YWwYAiABKA0iaAoaR2V0U2V0dGxlbWVudFN0YXR1c1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIVCg1zZXR0bGVtZW50X2lkGAIgASgJIuADChtHZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USHQoQZHZwX3Byb3Bvc2FsX2NpZBgEIAEoCUgAiAEBEhQKB2R2cF9jaWQYBSABKAlIAYgBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgGIAEoCUgCiAEBEiIKFWFsbG9jYXRpb25fc2VsbGVyX2NpZBgHIAEoCUgDiAEBEhwKD3NldHRsZWRfZHZwX2NpZBgIIAEoCUgEiAEBEhoKDWVycm9yX21lc3NhZ2UYCSABKAlIBYgBARIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEITChFfZHZwX3Byb3Bvc2FsX2NpZEIKCghfZHZwX2NpZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCGAoWX2FsbG9jYXRpb25fc2VsbGVyX2NpZEISChBfc2V0dGxlZF9kdnBfY2lkQhAKDl9lcnJvcl9tZXNzYWdlIpUBChxTdWJtaXRQcmVjb25maXJtYXRpb25SZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSQAoIZGVjaXNpb24YAiABKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uRGVjaXNpb24ixgoKH1VwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGAUgASgJSAGIAQESFAoHZHZwX2NpZBgGIAEoCUgCiAEBEhoKDWR2cF91cGRhdGVfaWQYByABKAlIA4gBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgIIAEoCUgEiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGAkgASgJSAWIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGAogASgJSAaIAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGAsgASgJSAeIAQESHAoPc2V0dGxlZF9kdnBfY2lkGAwgASgJSAiIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYDSABKAlICYgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GA4gASgJSAqIAQESPgoJbmV3X3N0YWdlGA8gASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRTdGFnZUgLiAEBEhoKDWVycm9yX21lc3NhZ2UYECABKAlIDIgBARIuCghtZXRhZGF0YRgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIDYgBARIbCg5idXllcl9mZWVfc2VudBgSIAEoCEgOiAEBEhwKD3NlbGxlcl9mZWVfc2VudBgTIAEoCEgPiAEBEiAKE2J1eWVyX2ZlZV91cGRhdGVfaWQYFCABKAlIEIgBARIhChRzZWxsZXJfZmVlX3VwZGF0ZV9pZBgVIAEoCUgRiAEBEjoKEWJ1eWVyX2ZlZV9wYWlkX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjsKEnNlbGxlcl9mZWVfcGFpZF9hdBgXIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIE4gBAUITChFfZHZwX3Byb3Bvc2FsX2NpZEIZChdfZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZEIKCghfZHZwX2NpZEIQCg5fZHZwX3VwZGF0ZV9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEIMCgpfbmV3X3N0YWdlQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIRCg9fYnV5ZXJfZmVlX3NlbnRCEgoQX3NlbGxlcl9mZWVfc2VudEIWChRfYnV5ZXJfZmVlX3VwZGF0ZV9pZEIXChVfc2VsbGVyX2ZlZV91cGRhdGVfaWRCFAoSX2J1eWVyX2ZlZV9wYWlkX2F0QhUKE19zZWxsZXJfZmVlX3BhaWRfYXQimAEKIFVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRITCgtuZXdfdmVyc2lvbhgDIAEoBBI9Cg1jdXJyZW50X3N0YWdlGAQgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRTdGFnZSJ5ChhEaXNjbG9zZWRDb250cmFjdE1lc3NhZ2USEwoLY29udHJhY3RfaWQYASABKAkSEwoLdGVtcGxhdGVfaWQYAiABKAkSGgoSY3JlYXRlZF9ldmVudF9ibG9iGAMgASgJEhcKD3N5bmNocm9uaXplcl9pZBgEIAEoCSKrAQocU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEkEKCGNvbnRyYWN0GAMgASgLMi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLkRpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZSJBCh1TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkihgEKHEdldERpc2Nsb3NlZENvbnRyYWN0c1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRISCgVvd25lchgDIAEoCUgAiAEBQggKBl9vd25lciJjCh1HZXREaXNjbG9zZWRDb250cmFjdHNSZXNwb25zZRJCCgljb250cmFjdHMYASADKAsyLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuRGlzY2xvc2VkQ29udHJhY3RNZXNzYWdlIsABChdSZWNvcmRTZXR0bGVtZW50UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhcKD3NldHRsZWRfZHZwX2NpZBgDIAEoCRIcChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgEIAEoCRIkChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAUgASgJIlMKGFJlY29yZFNldHRsZW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFQoNc2V0dGxlbWVudF9pZBgDIAEoCSLCCAoYUmVjb3JkVHJhbnNhY3Rpb25SZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSNwoHdHhfdHlwZRgCIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5UcmFuc2FjdGlvblR5cGUSFAoMc2VuZGVyX3BhcnR5GAMgASgJEjYKC3NlbmRlcl90eXBlGAQgASgOMiEuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlbmRlclR5cGUSFgoJdXBkYXRlX2lkGAUgASgJSACIAQESGgoNc3VibWlzc2lvbl9pZBgGIAEoCUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYByABKAlIAogBARIWCgltYXJrZXRfaWQYCCABKAlIA4gBARIZCgxjb3VudGVycGFydHkYCSABKAlIBIgBARIYCgtjb250cmFjdF9pZBgKIAEoCUgFiAEBEhgKC2Nob2ljZV9uYW1lGAsgASgJSAaIAQESEwoGYW1vdW50GAwgASgJSAeIAQESGwoOcmV3YXJkc19hbW91bnQYDSABKAlICIgBARIaCg1yZXdhcmRzX3JvdW5kGA4gASgESAmIAQESHAoPdHJhZmZpY19yZXF1ZXN0GA8gASgESAqIAQESHQoQdHJhZmZpY19yZXNwb25zZRgQIAEoBEgLiAEBEhoKDXRyYWZmaWNfdG90YWwYESABKARIDIgBARIkChdhY3Rpdml0eV9tYXJrZXJfY3JlYXRlZBgSIAEoBEgNiAEBEjgKBnJlc3VsdBgTIAEoDjIoLnNpbHZhbmEuc2V0dGxlbWVudC52MS5UcmFuc2FjdGlvblJlc3VsdBIaCg1lcnJvcl9tZXNzYWdlGBQgASgJSA6IAQESLgoIbWV0YWRhdGEYFSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SA+IAQESLAoGdXBkYXRlGBYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgQiAEBQgwKCl91cGRhdGVfaWRCEAoOX3N1Ym1pc3Npb25faWRCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCDAoKX21hcmtldF9pZEIPCg1fY291bnRlcnBhcnR5Qg4KDF9jb250cmFjdF9pZEIOCgxfY2hvaWNlX25hbWVCCQoHX2Ftb3VudEIRCg9fcmV3YXJkc19hbW91bnRCEAoOX3Jld2FyZHNfcm91bmRCEgoQX3RyYWZmaWNfcmVxdWVzdEITChFfdHJhZmZpY19yZXNwb25zZUIQCg5fdHJhZmZpY190b3RhbEIaChhfYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWRCEAoOX2Vycm9yX21lc3NhZ2VCCwoJX21ldGFkYXRhQgkKB191cGRhdGUiVQoZUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFgoOdHJhbnNhY3Rpb25faWQYAyABKAQikQMKHEdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIZCgxzZW5kZXJfcGFydHkYAiABKAlIAIgBARI8Cgd0eF90eXBlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYBCABKAlIAogBARI9CgZyZXN1bHQYBSABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHRIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg8KDV9zZW5kZXJfcGFydHlCCgoIX3R4X3R5cGVCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJ0Ch1HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRJECgx0cmFuc2FjdGlvbnMYASADKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25IaXN0b3J5RW50cnkSDQoFdG90YWwYAiABKA0iyAgKF1RyYW5zYWN0aW9uSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEi4KCmNyZWF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKBnVwZGF0ZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlKoUECg9TZXR0bGVtZW50U3RhZ2USIAocU0VUVExFTUVOVF9TVEFHRV9VTlNQRUNJRklFRBAAEiYKIlNFVFRMRU1FTlRfU1RBR0VfUFJPUE9TQUxfUkVDRUlWRUQQARIsCihTRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1BVElPTl9QRU5ESU5HEAISIQodU0VUVExFTUVOVF9TVEFHRV9QUkVDT05GSVJNRUQQAxIqCiZTRVRUTEVNRU5UX1NUQUdFX0RWUF9QUk9QT1NBTF9DUkVBVElORxAEEikKJVNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFURUQQBRIiCh5TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRJTkcQBhIhCh1TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRFRBAHEh8KG1NFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVElORxAIEh4KGlNFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVEVEEAkSHQoZU0VUVExFTUVOVF9TVEFHRV9TRVRUTElORxAKEhwKGFNFVFRMRU1FTlRfU1RBR0VfU0VUVExFRBALEhsKF1NFVFRMRU1FTlRfU1RBR0VfRkFJTEVEEAwSHgoaU0VUVExFTUVOVF9TVEFHRV9DQU5DRUxMRUQQDSqNAQoXUHJlY29uZmlybWF0aW9uUmVzcG9uc2USKAokUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1VOU1BFQ0lGSUVEEAASIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX0FDQ0VQVBABEiMKH1BSRUNPTkZJUk1BVElPTl9SRVNQT05TRV9SRUpFQ1QQAiptCglQYXJ0eVJvbGUSGgoWUEFSVFlfUk9MRV9VTlNQRUNJRklFRBAAEhQKEFBBUlRZX1JPTEVfQlVZRVIQARIVChFQQVJUWV9ST0xFX1NFTExFUhACEhcKE1BBUlRZX1JPTEVfT1BFUkFUT1IQAyrgAwoPVHJhbnNhY3Rpb25UeXBlEiAKHFRSQU5TQUNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIpCiVUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUEAESMAosVFJBTlNBQ1RJT05fVFlQRV9VU0VSX1NFUlZJQ0VfUkVRVUVTVF9BQ0NFUFQQAhIoCiRUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9DQU5DRUwQAxIgChxUUkFOU0FDVElPTl9UWVBFX0RWUF9QUk9QT1NFEAQSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQUNDRVBUEAUSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQ0FOQ0VMEAYSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfU0VUVExFEAcSHQoZVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURRAIEiQKIFRSQU5TQUNUSU9OX1RZUEVfQUxMT0NBVEVfQ0FOQ0VMEAkSIQodVFJBTlNBQ1RJT05fVFlQRV9GRUVfVFJBTlNGRVIQChIaChZUUkFOU0FDVElPTl9UWVBFX01FUkdFEAsSGwoXVFJBTlNBQ1RJT05fVFlQRV9VTkxPQ0sQDCqIAQoKU2VuZGVyVHlwZRIbChdTRU5ERVJfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNFTkRFUl9UWVBFX09QRVJBVE9SEAESFAoQU0VOREVSX1RZUEVfVVNFUhACEhUKEVNFTkRFUl9UWVBFX0JVWUVSEAMSFgoSU0VOREVSX1RZUEVfU0VMTEVSEAQqlgEKEVRyYW5zYWN0aW9uUmVzdWx0EiIKHlRSQU5TQUNUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9QRU5ESU5HEAESHgoaVFJBTlNBQ1RJT05fUkVTVUxUX1NVQ0NFU1MQAhIdChlUUkFOU0FDVElPTl9SRVNVTFRfRkFJTEVEEAMy8wkKEVNldHRsZW1lbnRTZXJ2aWNlEnIKEFNldHRsZW1lbnRTdHJlYW0SLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlGiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlcnZlclRvQ2FudG9uTWVzc2FnZSgBMAESfAoTR2V0UGVuZGluZ1Byb3Bvc2FscxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USfAoTR2V0U2V0dGxlbWVudFN0YXR1cxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USZAoVU3VibWl0UHJlY29uZmlybWF0aW9uEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSiwEKGFVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbBI2LnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0Gjcuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEoIBChVTYXZlRGlzY2xvc2VkQ29udHJhY3QSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXNwb25zZRKCAQoVR2V0RGlzY2xvc2VkQ29udHJhY3RzEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldERpc2Nsb3NlZENvbnRyYWN0c1JlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVzcG9uc2UScwoQUmVjb3JkU2V0dGxlbWVudBIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVxdWVzdBovLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVzcG9uc2USdgoRUmVjb3JkVHJhbnNhY3Rpb24SLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkVHJhbnNhY3Rpb25SZXF1ZXN0GjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFRyYW5zYWN0aW9uUmVzcG9uc2USggEKFUdldFRyYW5zYWN0aW9uSGlzdG9yeRIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFRyYW5zYWN0aW9uSGlzdG9yeVJlc3BvbnNlQjVaM2dpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87c2V0dGxlbWVudGIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAingEKFFNldHRsZW1lbnRJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSDgoGc3ltYm9sGAIgASgJEhAKCHJlZ2lzdHJ5GAMgASgJEhAKCHF1YW50aXR5GAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKBBAoZU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRITCgtidXllcl9wYXJ0eRgEIAEoCRIUCgxzZWxsZXJfcGFydHkYBSABKAkSRAoPYmFzZV9pbnN0cnVtZW50GAYgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EkUKEHF1b3RlX2luc3RydW1lbnQYByABKAsyKy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEluc3RydW1lbnQSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIzCg9hbGxvY2F0ZV9iZWZvcmUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXNldHRsZV9iZWZvcmUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9tZXRhZGF0YSKJAgoWUHJlY29uZmlybWF0aW9uUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEkIKCHByb3Bvc2FsGAMgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USGAoQcmVxdWVzdGluZ19wYXJ0eRgEIAEoCRIuCgpyZXNwb25kX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgV0ZXJtcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIICgZfdGVybXMivwIKF1ByZWNvbmZpcm1hdGlvbkRlY2lzaW9uEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQAoIcmVzcG9uc2UYAyABKA4yLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVzcG9uc2USHQoQcmVqZWN0aW9uX3JlYXNvbhgEIAEoCUgAiAEBEjAKCmNvbmRpdGlvbnMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESEQoJc2lnbmVkX2J5GAYgASgJEi4KCmRlY2lkZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9yZWplY3Rpb25fcmVhc29uQg0KC19jb25kaXRpb25zItgBChJEdnBDb250cmFjdENyZWF0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIYChBkdnBfcHJvcG9zYWxfY2lkGAMgASgJEh4KFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBCABKAkSFgoOcHJvcG9zZXJfcGFydHkYBSABKAkSFAoMY291bnRlcnBhcnR5GAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq8BChNEdnBDb250cmFjdEFjY2VwdGVkEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIVCg1kdnBfdXBkYXRlX2lkGAQgASgJEhMKC2FjY2VwdGVkX2J5GAUgASgJEi8KC2FjY2VwdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLbAgoQQWxsb2NhdGlvblN0YXR1cxITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEhAKCHBhcnR5X2lkGAQgASgJEhYKDmFsbG9jYXRpb25fY2lkGAUgASgJEhwKFGFsbG9jYXRpb25fdXBkYXRlX2lkGAYgASgJEhUKDWluc3RydW1lbnRfaWQYByABKAkSEAoIcXVhbnRpdHkYCCABKAkSFAoMaXNfYWxsb2NhdGVkGAkgASgIEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIAIgBARIwCgxhbGxvY2F0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIqoCChlTZXR0bGVtZW50RXhlY3V0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYBCABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgGIAEoCRIVCg1pc19zdWNjZXNzZnVsGAcgASgIEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIAIgBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSKKAQoPVXNlclNlcnZpY2VJbmZvEhAKCHBhcnR5X2lkGAEgASgJEhgKEHVzZXJfc2VydmljZV9jaWQYAiABKAkSGwoTb3BlcmF0b3JfY29uZmlnX2NpZBgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL5AQoTU2V0dGxlbWVudEhhbmRzaGFrZRIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhEKCXBhcnR5X2lkcxgCIAMoCRI9Cg11c2VyX3NlcnZpY2VzGAMgAygLMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVzZXJTZXJ2aWNlSW5mbxIWCg5vcGVyYXRvcl9wYXJ0eRgEIAEoCRIyCgxjYXBhYmlsaXRpZXMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX2NhcGFiaWxpdGllcyK4AQoMSGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEh0KEHJlamVjdGlvbl9yZWFzb24YAiABKAlIAIgBARISCgpzZXNzaW9uX2lkGAMgASgJEh0KFXN1cHBvcnRlZF9pbnN0cnVtZW50cxgEIAMoCRIvCgtzZXJ2ZXJfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb24iZwoJSGVhcnRiZWF0EhIKCnNlc3Npb25faWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQiZwoVTGlxdWlkaXR5UHJvdmlkZXJQaW5nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqAEKFUxpcXVpZGl0eVByb3ZpZGVyUG9uZxIfChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBARIvCgtzZXJ2ZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2Ui2wYKFVNlcnZlclRvQ2FudG9uTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI8Cg1oYW5kc2hha2VfYWNrGAMgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhhbmRzaGFrZUFja0gAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJECghwcm9wb3NhbBgFIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlSAASUAoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYBiABKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVxdWVzdEgAEkAKC2R2cF9jcmVhdGVkGAcgASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0Q3JlYXRlZEgAEkIKDGR2cF9hY2NlcHRlZBgIIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDb250cmFjdEFjY2VwdGVkSAASRAoRYWxsb2NhdGlvbl9zdGF0dXMYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblN0YXR1c0gAEk0KEXNldHRsZW1lbnRfc3RhdHVzGAogASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXNIABI7Cgdjb21tYW5kGAsgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kSAASNwoFcXVlcnkYDCABKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFF1ZXJ5SAASPwoHbHBfcG9uZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBvbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIrEGChVDYW50b25Ub1NlcnZlck1lc3NhZ2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9zZXF1ZW5jZV9udW1iZXIYAiABKAQSPwoJaGFuZHNoYWtlGAMgASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRIYW5kc2hha2VIABI1CgloZWFydGJlYXQYBCABKAsyIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGVhcnRiZWF0SAASSQoPcHJlY29uZmlybWF0aW9uGAUgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uSAASQAoMZHZwX2NyZWF0aW9uGAYgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENyZWF0aW9uUmVwb3J0SAASRAoOZHZwX2FjY2VwdGFuY2UYByABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQWNjZXB0YW5jZVJlcG9ydEgAEj0KCmFsbG9jYXRpb24YCCABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblJlcG9ydEgAEj0KCnNldHRsZW1lbnQYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlcG9ydEgAEj0KCHJlc3BvbnNlGAogASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRSZXNwb25zZUgAEjMKBWVycm9yGAsgASgLMiIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkVycm9yUmVwb3J0SAASNQoGc3RhdHVzGAwgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN0YXR1c1VwZGF0ZUgAEj8KB2xwX3BpbmcYDiABKAsyLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuTGlxdWlkaXR5UHJvdmlkZXJQaW5nSAASKwoHc2VudF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHbWVzc2FnZSKiAgoRRHZwQ3JlYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIoECChNEdnBBY2NlcHRhbmNlUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIUCgdkdnBfY2lkGAQgASgJSACIAQESGgoNZHZwX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIAogBARIvCgthY2NlcHRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2Ui5wIKEEFsbG9jYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI0CgpwYXJ0eV9yb2xlGAMgASgOMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlBhcnR5Um9sZRIPCgdzdWNjZXNzGAQgASgIEhsKDmFsbG9jYXRpb25fY2lkGAUgASgJSACIAQESIQoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAlIAYgBARIUCgxob2xkaW5nX2NpZHMYByADKAkSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgCiAEBEjAKDGFsbG9jYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEQoPX2FsbG9jYXRpb25fY2lkQhcKFV9hbGxvY2F0aW9uX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSL+AgoQU2V0dGxlbWVudFJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHAoPc2V0dGxlZF9kdnBfY2lkGAQgASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAlIAYgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJSAKIAQESFQoNYXJjaGl2ZWRfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAOIAQESLgoKc2V0dGxlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEAoOX2Vycm9yX21lc3NhZ2UihwIKC0Vycm9yUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhIKCmVycm9yX2NvZGUYBCABKAkSFQoNZXJyb3JfbWVzc2FnZRgFIAEoCRItCgdkZXRhaWxzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi8KC29jY3VycmVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZGV0YWlscyKGAgoMU3RhdHVzVXBkYXRlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSPQoNY3VycmVudF9zdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USFAoHbWVzc2FnZRgEIAEoCUgAiAEBEi0KB21ldHJpY3MYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCCgoIX21ldHJpY3Mi0gMKEVNldHRsZW1lbnRDb21tYW5kEkoKDGNvbW1hbmRfdHlwZRgBIAEoDjI0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50Q29tbWFuZC5Db21tYW5kVHlwZRITCgtwcm9wb3NhbF9pZBgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJEjAKCnBhcmFtZXRlcnMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoKZXhlY3V0ZV9ieRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wEKC0NvbW1hbmRUeXBlEhwKGENPTU1BTkRfVFlQRV9VTlNQRUNJRklFRBAAEiQKIENPTU1BTkRfVFlQRV9DUkVBVEVfRFZQX1BST1BPU0FMEAESGwoXQ09NTUFORF9UWVBFX0FDQ0VQVF9EVlAQAhIZChVDT01NQU5EX1RZUEVfQUxMT0NBVEUQAxIXChNDT01NQU5EX1RZUEVfU0VUVExFEAQSFwoTQ09NTUFORF9UWVBFX0NBTkNFTBAFEhYKEkNPTU1BTkRfVFlQRV9SRVRSWRAGQg0KC19wYXJhbWV0ZXJzIt8DCg9TZXR0bGVtZW50UXVlcnkSRAoKcXVlcnlfdHlwZRgBIAEoDjIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnkuUXVlcnlUeXBlEhUKCHBhcnR5X2lkGAIgASgJSACIAQESGAoLY29udHJhY3RfaWQYAyABKAlIAYgBARIaCg1pbnN0cnVtZW50X2lkGAQgASgJSAKIAQESMAoKcGFyYW1ldGVycxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBASLIAQoJUXVlcnlUeXBlEhoKFlFVRVJZX1RZUEVfVU5TUEVDSUZJRUQQABIbChdRVUVSWV9UWVBFX0dFVF9IT0xESU5HUxABEh8KG1FVRVJZX1RZUEVfR0VUX1VTRVJfU0VSVklDRRACEhsKF1FVRVJZX1RZUEVfR0VUX0NPTlRSQUNUEAMSJAogUVVFUllfVFlQRV9HRVRfQUxMT0NBVElPTl9TVEFUVVMQBBIeChpRVUVSWV9UWVBFX0NIRUNLX0xJUVVJRElUWRAFQgsKCV9wYXJ0eV9pZEIOCgxfY29udHJhY3RfaWRCEAoOX2luc3RydW1lbnRfaWRCDQoLX3BhcmFtZXRlcnMirgEKElNldHRsZW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhQKB21lc3NhZ2UYAiABKAlIAIgBARIqCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjAKDHJlc3BvbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCBwoFX2RhdGEigQEKGkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBAUIICgZfbGltaXQicQobR2V0UGVuZGluZ1Byb3Bvc2Fsc1Jlc3BvbnNlEkMKCXByb3Bvc2FscxgBIAMoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlEg0KBXRvdGFsGAIgASgNImgKGkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSFQoNc2V0dGxlbWVudF9pZBgCIAEoCSLgAwobR2V0U2V0dGxlbWVudFN0YXR1c1Jlc3BvbnNlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIUCgdkdnBfY2lkGAUgASgJSAGIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYBiABKAlIAogBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYByABKAlIA4gBARIcCg9zZXR0bGVkX2R2cF9jaWQYCCABKAlIBIgBARIaCg1lcnJvcl9tZXNzYWdlGAkgASgJSAWIAQESLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX2R2cF9wcm9wb3NhbF9jaWRCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIQCg5fZXJyb3JfbWVzc2FnZSKVAQocU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEkAKCGRlY2lzaW9uGAIgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uIsYKCh9VcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIdChBkdnBfcHJvcG9zYWxfY2lkGAQgASgJSACIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhQKB2R2cF9jaWQYBiABKAlIAogBARIaCg1kdnBfdXBkYXRlX2lkGAcgASgJSAOIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYCCABKAlIBIgBARInChphbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZBgJIAEoCUgFiAEBEiIKFWFsbG9jYXRpb25fc2VsbGVyX2NpZBgKIAEoCUgGiAEBEigKG2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZBgLIAEoCUgHiAEBEhwKD3NldHRsZWRfZHZwX2NpZBgMIAEoCUgIiAEBEiEKFHNldHRsZW1lbnRfdXBkYXRlX2lkGA0gASgJSAmIAQESKQocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgOIAEoCUgKiAEBEj4KCW5ld19zdGFnZRgPIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2VIC4gBARIaCg1lcnJvcl9tZXNzYWdlGBAgASgJSAyIAQESLgoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SA2IAQESGwoOYnV5ZXJfZmVlX3NlbnQYEiABKAhIDogBARIcCg9zZWxsZXJfZmVlX3NlbnQYEyABKAhID4gBARIgChNidXllcl9mZWVfdXBkYXRlX2lkGBQgASgJSBCIAQESIQoUc2VsbGVyX2ZlZV91cGRhdGVfaWQYFSABKAlIEYgBARI6ChFidXllcl9mZWVfcGFpZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIEogBARI7ChJzZWxsZXJfZmVlX3BhaWRfYXQYFyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBOIAQFCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQh0KG19hbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZEIYChZfYWxsb2NhdGlvbl9zZWxsZXJfY2lkQh4KHF9hbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCDAoKX25ld19zdGFnZUIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCEQoPX2J1eWVyX2ZlZV9zZW50QhIKEF9zZWxsZXJfZmVlX3NlbnRCFgoUX2J1eWVyX2ZlZV91cGRhdGVfaWRCFwoVX3NlbGxlcl9mZWVfdXBkYXRlX2lkQhQKEl9idXllcl9mZWVfcGFpZF9hdEIVChNfc2VsbGVyX2ZlZV9wYWlkX2F0IpgBCiBVcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSEwoLbmV3X3ZlcnNpb24YAyABKAQSPQoNY3VycmVudF9zdGFnZRgEIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2UieQoYRGlzY2xvc2VkQ29udHJhY3RNZXNzYWdlEhMKC2NvbnRyYWN0X2lkGAEgASgJEhMKC3RlbXBsYXRlX2lkGAIgASgJEhoKEmNyZWF0ZWRfZXZlbnRfYmxvYhgDIAEoCRIXCg9zeW5jaHJvbml6ZXJfaWQYBCABKAkiqwEKHFNhdmVEaXNjbG9zZWRDb250cmFjdFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRJBCghjb250cmFjdBgDIAEoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2UiQQodU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJIoYBChxHZXREaXNjbG9zZWRDb250cmFjdHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSEgoFb3duZXIYAyABKAlIAIgBAUIICgZfb3duZXIiYwodR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVzcG9uc2USQgoJY29udHJhY3RzGAEgAygLMi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLkRpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZSLcAgoXUmVjb3JkU2V0dGxlbWVudFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYAyABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBCABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgFIAEoCRIUCgdkdnBfY2lkGAYgASgJSACIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYByABKAlIAYgBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYCCABKAlIAogBAUIKCghfZHZwX2NpZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCGAoWX2FsbG9jYXRpb25fc2VsbGVyX2NpZCJTChhSZWNvcmRTZXR0bGVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEhUKDXNldHRsZW1lbnRfaWQYAyABKAkitgkKGFJlY29yZFRyYW5zYWN0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEiwKBnVwZGF0ZRgWIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBcgASgJEhMKC2RhbWxfY2hvaWNlGBggASgJEjIKDGRhbWxfY2hvaWNlcxgZIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMiVQoZUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFgoOdHJhbnNhY3Rpb25faWQYAyABKAQikQMKHEdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIZCgxzZW5kZXJfcGFydHkYAiABKAlIAIgBARI8Cgd0eF90eXBlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYBCABKAlIAogBARI9CgZyZXN1bHQYBSABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHRIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg8KDV9zZW5kZXJfcGFydHlCCgoIX3R4X3R5cGVCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJ0Ch1HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRJECgx0cmFuc2FjdGlvbnMYASADKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25IaXN0b3J5RW50cnkSDQoFdG90YWwYAiABKA0ivAkKF1RyYW5zYWN0aW9uSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEi4KCmNyZWF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKBnVwZGF0ZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBggASgJEhMKC2RhbWxfY2hvaWNlGBkgASgJEjIKDGRhbWxfY2hvaWNlcxgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMqhQQKD1NldHRsZW1lbnRTdGFnZRIgChxTRVRUTEVNRU5UX1NUQUdFX1VOU1BFQ0lGSUVEEAASJgoiU0VUVExFTUVOVF9TVEFHRV9QUk9QT1NBTF9SRUNFSVZFRBABEiwKKFNFVFRMRU1FTlRfU1RBR0VfUFJFQ09ORklSTUFUSU9OX1BFTkRJTkcQAhIhCh1TRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1FRBADEioKJlNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFUSU5HEAQSKQolU0VUVExFTUVOVF9TVEFHRV9EVlBfUFJPUE9TQUxfQ1JFQVRFRBAFEiIKHlNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVElORxAGEiEKHVNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVEVEEAcSHwobU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FUSU5HEAgSHgoaU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FURUQQCRIdChlTRVRUTEVNRU5UX1NUQUdFX1NFVFRMSU5HEAoSHAoYU0VUVExFTUVOVF9TVEFHRV9TRVRUTEVEEAsSGwoXU0VUVExFTUVOVF9TVEFHRV9GQUlMRUQQDBIeChpTRVRUTEVNRU5UX1NUQUdFX0NBTkNFTExFRBANKo0BChdQcmVjb25maXJtYXRpb25SZXNwb25zZRIoCiRQUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfVU5TUEVDSUZJRUQQABIjCh9QUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfQUNDRVBUEAESIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1JFSkVDVBACKm0KCVBhcnR5Um9sZRIaChZQQVJUWV9ST0xFX1VOU1BFQ0lGSUVEEAASFAoQUEFSVFlfUk9MRV9CVVlFUhABEhUKEVBBUlRZX1JPTEVfU0VMTEVSEAISFwoTUEFSVFlfUk9MRV9PUEVSQVRPUhADKvwDCg9UcmFuc2FjdGlvblR5cGUSIAocVFJBTlNBQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEikKJVRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX1JFUVVFU1QQARIwCixUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUX0FDQ0VQVBACEigKJFRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX0NBTkNFTBADEiAKHFRSQU5TQUNUSU9OX1RZUEVfRFZQX1BST1BPU0UQBBIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9BQ0NFUFQQBRIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9DQU5DRUwQBhIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9TRVRUTEUQBxIdChlUUkFOU0FDVElPTl9UWVBFX0FMTE9DQVRFEAgSJAogVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURV9DQU5DRUwQCRIhCh1UUkFOU0FDVElPTl9UWVBFX0ZFRV9UUkFOU0ZFUhAKEhoKFlRSQU5TQUNUSU9OX1RZUEVfTUVSR0UQCxIbChdUUkFOU0FDVElPTl9UWVBFX1VOTE9DSxAMEhoKFlRSQU5TQUNUSU9OX1RZUEVfT1RIRVIQDSqIAQoKU2VuZGVyVHlwZRIbChdTRU5ERVJfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNFTkRFUl9UWVBFX09QRVJBVE9SEAESFAoQU0VOREVSX1RZUEVfVVNFUhACEhUKEVNFTkRFUl9UWVBFX0JVWUVSEAMSFgoSU0VOREVSX1RZUEVfU0VMTEVSEAQqlgEKEVRyYW5zYWN0aW9uUmVzdWx0EiIKHlRSQU5TQUNUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9QRU5ESU5HEAESHgoaVFJBTlNBQ1RJT05fUkVTVUxUX1NVQ0NFU1MQAhIdChlUUkFOU0FDVElPTl9SRVNVTFRfRkFJTEVEEAMy8wkKEVNldHRsZW1lbnRTZXJ2aWNlEnIKEFNldHRsZW1lbnRTdHJlYW0SLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlGiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlcnZlclRvQ2FudG9uTWVzc2FnZSgBMAESfAoTR2V0UGVuZGluZ1Byb3Bvc2FscxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USfAoTR2V0U2V0dGxlbWVudFN0YXR1cxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USZAoVU3VibWl0UHJlY29uZmlybWF0aW9uEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSiwEKGFVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbBI2LnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0Gjcuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEoIBChVTYXZlRGlzY2xvc2VkQ29udHJhY3QSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXNwb25zZRKCAQoVR2V0RGlzY2xvc2VkQ29udHJhY3RzEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldERpc2Nsb3NlZENvbnRyYWN0c1JlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVzcG9uc2UScwoQUmVjb3JkU2V0dGxlbWVudBIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVxdWVzdBovLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVzcG9uc2USdgoRUmVjb3JkVHJhbnNhY3Rpb24SLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkVHJhbnNhY3Rpb25SZXF1ZXN0GjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFRyYW5zYWN0aW9uUmVzcG9uc2USggEKFUdldFRyYW5zYWN0aW9uSGlzdG9yeRIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFRyYW5zYWN0aW9uSGlzdG9yeVJlc3BvbnNlQjVaM2dpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87c2V0dGxlbWVudGIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
18
  * Canton node authentication (using Canton party JWT)
@@ -702,6 +702,74 @@ export type Heartbeat = Message<"silvana.settlement.v1.Heartbeat"> & {
702
702
  export const HeartbeatSchema: GenMessage<Heartbeat> = /*@__PURE__*/
703
703
  messageDesc(file_proto_silvana_settlement_v1_settlement, 12);
704
704
 
705
+ /**
706
+ * Liquidity provider ping message (Canton node to server)
707
+ * Sent periodically by settlement agents to indicate LP is active
708
+ *
709
+ * @generated from message silvana.settlement.v1.LiquidityProviderPing
710
+ */
711
+ export type LiquidityProviderPing = Message<"silvana.settlement.v1.LiquidityProviderPing"> & {
712
+ /**
713
+ * LP name to update activity for
714
+ *
715
+ * @generated from field: string liquidity_provider_name = 1;
716
+ */
717
+ liquidityProviderName: string;
718
+
719
+ /**
720
+ * @generated from field: google.protobuf.Timestamp timestamp = 2;
721
+ */
722
+ timestamp?: Timestamp;
723
+ };
724
+
725
+ /**
726
+ * Describes the message silvana.settlement.v1.LiquidityProviderPing.
727
+ * Use `create(LiquidityProviderPingSchema)` to create a new message.
728
+ */
729
+ export const LiquidityProviderPingSchema: GenMessage<LiquidityProviderPing> = /*@__PURE__*/
730
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
731
+
732
+ /**
733
+ * Liquidity provider pong message (server to Canton node)
734
+ * Acknowledgment of ping receipt
735
+ *
736
+ * @generated from message silvana.settlement.v1.LiquidityProviderPong
737
+ */
738
+ export type LiquidityProviderPong = Message<"silvana.settlement.v1.LiquidityProviderPong"> & {
739
+ /**
740
+ * LP name that was updated
741
+ *
742
+ * @generated from field: string liquidity_provider_name = 1;
743
+ */
744
+ liquidityProviderName: string;
745
+
746
+ /**
747
+ * Whether the update succeeded
748
+ *
749
+ * @generated from field: bool success = 2;
750
+ */
751
+ success: boolean;
752
+
753
+ /**
754
+ * Error details if failed
755
+ *
756
+ * @generated from field: optional string error_message = 3;
757
+ */
758
+ errorMessage?: string;
759
+
760
+ /**
761
+ * @generated from field: google.protobuf.Timestamp server_time = 4;
762
+ */
763
+ serverTime?: Timestamp;
764
+ };
765
+
766
+ /**
767
+ * Describes the message silvana.settlement.v1.LiquidityProviderPong.
768
+ * Use `create(LiquidityProviderPongSchema)` to create a new message.
769
+ */
770
+ export const LiquidityProviderPongSchema: GenMessage<LiquidityProviderPong> = /*@__PURE__*/
771
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
772
+
705
773
  /**
706
774
  * Stream message from server to Canton node
707
775
  *
@@ -781,6 +849,14 @@ export type ServerToCantonMessage = Message<"silvana.settlement.v1.ServerToCanto
781
849
  */
782
850
  value: SettlementQuery;
783
851
  case: "query";
852
+ } | {
853
+ /**
854
+ * Pong acknowledgment for LP activity ping
855
+ *
856
+ * @generated from field: silvana.settlement.v1.LiquidityProviderPong lp_pong = 14;
857
+ */
858
+ value: LiquidityProviderPong;
859
+ case: "lpPong";
784
860
  } | { case: undefined; value?: undefined };
785
861
 
786
862
  /**
@@ -794,7 +870,7 @@ export type ServerToCantonMessage = Message<"silvana.settlement.v1.ServerToCanto
794
870
  * Use `create(ServerToCantonMessageSchema)` to create a new message.
795
871
  */
796
872
  export const ServerToCantonMessageSchema: GenMessage<ServerToCantonMessage> = /*@__PURE__*/
797
- messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
873
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
798
874
 
799
875
  /**
800
876
  * Stream message from Canton node to server
@@ -875,6 +951,14 @@ export type CantonToServerMessage = Message<"silvana.settlement.v1.CantonToServe
875
951
  */
876
952
  value: StatusUpdate;
877
953
  case: "status";
954
+ } | {
955
+ /**
956
+ * Ping from settlement agent for LP activity
957
+ *
958
+ * @generated from field: silvana.settlement.v1.LiquidityProviderPing lp_ping = 14;
959
+ */
960
+ value: LiquidityProviderPing;
961
+ case: "lpPing";
878
962
  } | { case: undefined; value?: undefined };
879
963
 
880
964
  /**
@@ -888,7 +972,7 @@ export type CantonToServerMessage = Message<"silvana.settlement.v1.CantonToServe
888
972
  * Use `create(CantonToServerMessageSchema)` to create a new message.
889
973
  */
890
974
  export const CantonToServerMessageSchema: GenMessage<CantonToServerMessage> = /*@__PURE__*/
891
- messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
975
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
892
976
 
893
977
  /**
894
978
  * Report DVP proposal creation
@@ -939,7 +1023,7 @@ export type DvpCreationReport = Message<"silvana.settlement.v1.DvpCreationReport
939
1023
  * Use `create(DvpCreationReportSchema)` to create a new message.
940
1024
  */
941
1025
  export const DvpCreationReportSchema: GenMessage<DvpCreationReport> = /*@__PURE__*/
942
- messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
1026
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
943
1027
 
944
1028
  /**
945
1029
  * Report DVP acceptance
@@ -990,7 +1074,7 @@ export type DvpAcceptanceReport = Message<"silvana.settlement.v1.DvpAcceptanceRe
990
1074
  * Use `create(DvpAcceptanceReportSchema)` to create a new message.
991
1075
  */
992
1076
  export const DvpAcceptanceReportSchema: GenMessage<DvpAcceptanceReport> = /*@__PURE__*/
993
- messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
1077
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
994
1078
 
995
1079
  /**
996
1080
  * Report allocation completion
@@ -1053,7 +1137,7 @@ export type AllocationReport = Message<"silvana.settlement.v1.AllocationReport">
1053
1137
  * Use `create(AllocationReportSchema)` to create a new message.
1054
1138
  */
1055
1139
  export const AllocationReportSchema: GenMessage<AllocationReport> = /*@__PURE__*/
1056
- messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
1140
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1057
1141
 
1058
1142
  /**
1059
1143
  * Report settlement completion
@@ -1116,7 +1200,7 @@ export type SettlementReport = Message<"silvana.settlement.v1.SettlementReport">
1116
1200
  * Use `create(SettlementReportSchema)` to create a new message.
1117
1201
  */
1118
1202
  export const SettlementReportSchema: GenMessage<SettlementReport> = /*@__PURE__*/
1119
- messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
1203
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1120
1204
 
1121
1205
  /**
1122
1206
  * Error report
@@ -1167,7 +1251,7 @@ export type ErrorReport = Message<"silvana.settlement.v1.ErrorReport"> & {
1167
1251
  * Use `create(ErrorReportSchema)` to create a new message.
1168
1252
  */
1169
1253
  export const ErrorReportSchema: GenMessage<ErrorReport> = /*@__PURE__*/
1170
- messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1254
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1171
1255
 
1172
1256
  /**
1173
1257
  * Status update
@@ -1215,7 +1299,7 @@ export type StatusUpdate = Message<"silvana.settlement.v1.StatusUpdate"> & {
1215
1299
  * Use `create(StatusUpdateSchema)` to create a new message.
1216
1300
  */
1217
1301
  export const StatusUpdateSchema: GenMessage<StatusUpdate> = /*@__PURE__*/
1218
- messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1302
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1219
1303
 
1220
1304
  /**
1221
1305
  * Command to Canton node
@@ -1258,7 +1342,7 @@ export type SettlementCommand = Message<"silvana.settlement.v1.SettlementCommand
1258
1342
  * Use `create(SettlementCommandSchema)` to create a new message.
1259
1343
  */
1260
1344
  export const SettlementCommandSchema: GenMessage<SettlementCommand> = /*@__PURE__*/
1261
- messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1345
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1262
1346
 
1263
1347
  /**
1264
1348
  * @generated from enum silvana.settlement.v1.SettlementCommand.CommandType
@@ -1304,7 +1388,7 @@ export enum SettlementCommand_CommandType {
1304
1388
  * Describes the enum silvana.settlement.v1.SettlementCommand.CommandType.
1305
1389
  */
1306
1390
  export const SettlementCommand_CommandTypeSchema: GenEnum<SettlementCommand_CommandType> = /*@__PURE__*/
1307
- enumDesc(file_proto_silvana_settlement_v1_settlement, 21, 0);
1391
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 23, 0);
1308
1392
 
1309
1393
  /**
1310
1394
  * Query to Canton node
@@ -1343,7 +1427,7 @@ export type SettlementQuery = Message<"silvana.settlement.v1.SettlementQuery"> &
1343
1427
  * Use `create(SettlementQuerySchema)` to create a new message.
1344
1428
  */
1345
1429
  export const SettlementQuerySchema: GenMessage<SettlementQuery> = /*@__PURE__*/
1346
- messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1430
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1347
1431
 
1348
1432
  /**
1349
1433
  * @generated from enum silvana.settlement.v1.SettlementQuery.QueryType
@@ -1384,7 +1468,7 @@ export enum SettlementQuery_QueryType {
1384
1468
  * Describes the enum silvana.settlement.v1.SettlementQuery.QueryType.
1385
1469
  */
1386
1470
  export const SettlementQuery_QueryTypeSchema: GenEnum<SettlementQuery_QueryType> = /*@__PURE__*/
1387
- enumDesc(file_proto_silvana_settlement_v1_settlement, 22, 0);
1471
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 24, 0);
1388
1472
 
1389
1473
  /**
1390
1474
  * Response to command or query
@@ -1418,7 +1502,7 @@ export type SettlementResponse = Message<"silvana.settlement.v1.SettlementRespon
1418
1502
  * Use `create(SettlementResponseSchema)` to create a new message.
1419
1503
  */
1420
1504
  export const SettlementResponseSchema: GenMessage<SettlementResponse> = /*@__PURE__*/
1421
- messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1505
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1422
1506
 
1423
1507
  /**
1424
1508
  * @generated from message silvana.settlement.v1.GetPendingProposalsRequest
@@ -1445,7 +1529,7 @@ export type GetPendingProposalsRequest = Message<"silvana.settlement.v1.GetPendi
1445
1529
  * Use `create(GetPendingProposalsRequestSchema)` to create a new message.
1446
1530
  */
1447
1531
  export const GetPendingProposalsRequestSchema: GenMessage<GetPendingProposalsRequest> = /*@__PURE__*/
1448
- messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1532
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1449
1533
 
1450
1534
  /**
1451
1535
  * @generated from message silvana.settlement.v1.GetPendingProposalsResponse
@@ -1467,7 +1551,7 @@ export type GetPendingProposalsResponse = Message<"silvana.settlement.v1.GetPend
1467
1551
  * Use `create(GetPendingProposalsResponseSchema)` to create a new message.
1468
1552
  */
1469
1553
  export const GetPendingProposalsResponseSchema: GenMessage<GetPendingProposalsResponse> = /*@__PURE__*/
1470
- messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1554
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1471
1555
 
1472
1556
  /**
1473
1557
  * @generated from message silvana.settlement.v1.GetSettlementStatusRequest
@@ -1489,7 +1573,7 @@ export type GetSettlementStatusRequest = Message<"silvana.settlement.v1.GetSettl
1489
1573
  * Use `create(GetSettlementStatusRequestSchema)` to create a new message.
1490
1574
  */
1491
1575
  export const GetSettlementStatusRequestSchema: GenMessage<GetSettlementStatusRequest> = /*@__PURE__*/
1492
- messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1576
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1493
1577
 
1494
1578
  /**
1495
1579
  * @generated from message silvana.settlement.v1.GetSettlementStatusResponse
@@ -1553,7 +1637,7 @@ export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSett
1553
1637
  * Use `create(GetSettlementStatusResponseSchema)` to create a new message.
1554
1638
  */
1555
1639
  export const GetSettlementStatusResponseSchema: GenMessage<GetSettlementStatusResponse> = /*@__PURE__*/
1556
- messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1640
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1557
1641
 
1558
1642
  /**
1559
1643
  * @generated from message silvana.settlement.v1.SubmitPreconfirmationRequest
@@ -1575,7 +1659,7 @@ export type SubmitPreconfirmationRequest = Message<"silvana.settlement.v1.Submit
1575
1659
  * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1576
1660
  */
1577
1661
  export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1578
- messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1662
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1579
1663
 
1580
1664
  /**
1581
1665
  * Update settlement proposal request with optimistic locking
@@ -1724,7 +1808,7 @@ export type UpdateSettlementProposalRequest = Message<"silvana.settlement.v1.Upd
1724
1808
  * Use `create(UpdateSettlementProposalRequestSchema)` to create a new message.
1725
1809
  */
1726
1810
  export const UpdateSettlementProposalRequestSchema: GenMessage<UpdateSettlementProposalRequest> = /*@__PURE__*/
1727
- messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1811
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1728
1812
 
1729
1813
  /**
1730
1814
  * @generated from message silvana.settlement.v1.UpdateSettlementProposalResponse
@@ -1758,7 +1842,7 @@ export type UpdateSettlementProposalResponse = Message<"silvana.settlement.v1.Up
1758
1842
  * Use `create(UpdateSettlementProposalResponseSchema)` to create a new message.
1759
1843
  */
1760
1844
  export const UpdateSettlementProposalResponseSchema: GenMessage<UpdateSettlementProposalResponse> = /*@__PURE__*/
1761
- messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1845
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1762
1846
 
1763
1847
  /**
1764
1848
  * A disclosed contract for settlement
@@ -1801,7 +1885,7 @@ export type DisclosedContractMessage = Message<"silvana.settlement.v1.DisclosedC
1801
1885
  * Use `create(DisclosedContractMessageSchema)` to create a new message.
1802
1886
  */
1803
1887
  export const DisclosedContractMessageSchema: GenMessage<DisclosedContractMessage> = /*@__PURE__*/
1804
- messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1888
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1805
1889
 
1806
1890
  /**
1807
1891
  * Save disclosed contract request (buyer/seller saves their contracts during allocation)
@@ -1832,7 +1916,7 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1832
1916
  * Use `create(SaveDisclosedContractRequestSchema)` to create a new message.
1833
1917
  */
1834
1918
  export const SaveDisclosedContractRequestSchema: GenMessage<SaveDisclosedContractRequest> = /*@__PURE__*/
1835
- messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1919
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1836
1920
 
1837
1921
  /**
1838
1922
  * Save disclosed contract response
@@ -1856,7 +1940,7 @@ export type SaveDisclosedContractResponse = Message<"silvana.settlement.v1.SaveD
1856
1940
  * Use `create(SaveDisclosedContractResponseSchema)` to create a new message.
1857
1941
  */
1858
1942
  export const SaveDisclosedContractResponseSchema: GenMessage<SaveDisclosedContractResponse> = /*@__PURE__*/
1859
- messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1943
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1860
1944
 
1861
1945
  /**
1862
1946
  * Get disclosed contracts request
@@ -1889,7 +1973,7 @@ export type GetDisclosedContractsRequest = Message<"silvana.settlement.v1.GetDis
1889
1973
  * Use `create(GetDisclosedContractsRequestSchema)` to create a new message.
1890
1974
  */
1891
1975
  export const GetDisclosedContractsRequestSchema: GenMessage<GetDisclosedContractsRequest> = /*@__PURE__*/
1892
- messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1976
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
1893
1977
 
1894
1978
  /**
1895
1979
  * Get disclosed contracts response
@@ -1908,7 +1992,7 @@ export type GetDisclosedContractsResponse = Message<"silvana.settlement.v1.GetDi
1908
1992
  * Use `create(GetDisclosedContractsResponseSchema)` to create a new message.
1909
1993
  */
1910
1994
  export const GetDisclosedContractsResponseSchema: GenMessage<GetDisclosedContractsResponse> = /*@__PURE__*/
1911
- messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1995
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
1912
1996
 
1913
1997
  /**
1914
1998
  * Record a completed settlement request
@@ -1949,6 +2033,29 @@ export type RecordSettlementRequest = Message<"silvana.settlement.v1.RecordSettl
1949
2033
  * @generated from field: string settlement_completion_offset = 5;
1950
2034
  */
1951
2035
  settlementCompletionOffset: string;
2036
+
2037
+ /**
2038
+ * Optional fields to correct DB state (on-chain is source of truth)
2039
+ *
2040
+ * DVP contract ID (if missing in DB)
2041
+ *
2042
+ * @generated from field: optional string dvp_cid = 6;
2043
+ */
2044
+ dvpCid?: string;
2045
+
2046
+ /**
2047
+ * Buyer's allocation CID
2048
+ *
2049
+ * @generated from field: optional string allocation_buyer_cid = 7;
2050
+ */
2051
+ allocationBuyerCid?: string;
2052
+
2053
+ /**
2054
+ * Seller's allocation CID
2055
+ *
2056
+ * @generated from field: optional string allocation_seller_cid = 8;
2057
+ */
2058
+ allocationSellerCid?: string;
1952
2059
  };
1953
2060
 
1954
2061
  /**
@@ -1956,7 +2063,7 @@ export type RecordSettlementRequest = Message<"silvana.settlement.v1.RecordSettl
1956
2063
  * Use `create(RecordSettlementRequestSchema)` to create a new message.
1957
2064
  */
1958
2065
  export const RecordSettlementRequestSchema: GenMessage<RecordSettlementRequest> = /*@__PURE__*/
1959
- messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
2066
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
1960
2067
 
1961
2068
  /**
1962
2069
  * Record settlement response
@@ -1987,7 +2094,7 @@ export type RecordSettlementResponse = Message<"silvana.settlement.v1.RecordSett
1987
2094
  * Use `create(RecordSettlementResponseSchema)` to create a new message.
1988
2095
  */
1989
2096
  export const RecordSettlementResponseSchema: GenMessage<RecordSettlementResponse> = /*@__PURE__*/
1990
- messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
2097
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
1991
2098
 
1992
2099
  /**
1993
2100
  * Record a transaction in history
@@ -2118,6 +2225,29 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2118
2225
  * @generated from field: optional google.protobuf.Struct update = 22;
2119
2226
  */
2120
2227
  update?: JsonObject;
2228
+
2229
+ /**
2230
+ * Daml template and choice info
2231
+ *
2232
+ * Daml template ID (required)
2233
+ *
2234
+ * @generated from field: string daml_template_id = 23;
2235
+ */
2236
+ damlTemplateId: string;
2237
+
2238
+ /**
2239
+ * Daml choice name (required)
2240
+ *
2241
+ * @generated from field: string daml_choice = 24;
2242
+ */
2243
+ damlChoice: string;
2244
+
2245
+ /**
2246
+ * Additional choice data as JSON
2247
+ *
2248
+ * @generated from field: optional google.protobuf.Struct daml_choices = 25;
2249
+ */
2250
+ damlChoices?: JsonObject;
2121
2251
  };
2122
2252
 
2123
2253
  /**
@@ -2125,7 +2255,7 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2125
2255
  * Use `create(RecordTransactionRequestSchema)` to create a new message.
2126
2256
  */
2127
2257
  export const RecordTransactionRequestSchema: GenMessage<RecordTransactionRequest> = /*@__PURE__*/
2128
- messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
2258
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2129
2259
 
2130
2260
  /**
2131
2261
  * @generated from message silvana.settlement.v1.RecordTransactionResponse
@@ -2154,7 +2284,7 @@ export type RecordTransactionResponse = Message<"silvana.settlement.v1.RecordTra
2154
2284
  * Use `create(RecordTransactionResponseSchema)` to create a new message.
2155
2285
  */
2156
2286
  export const RecordTransactionResponseSchema: GenMessage<RecordTransactionResponse> = /*@__PURE__*/
2157
- messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
2287
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2158
2288
 
2159
2289
  /**
2160
2290
  * Get transaction history
@@ -2203,7 +2333,7 @@ export type GetTransactionHistoryRequest = Message<"silvana.settlement.v1.GetTra
2203
2333
  * Use `create(GetTransactionHistoryRequestSchema)` to create a new message.
2204
2334
  */
2205
2335
  export const GetTransactionHistoryRequestSchema: GenMessage<GetTransactionHistoryRequest> = /*@__PURE__*/
2206
- messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2336
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2207
2337
 
2208
2338
  /**
2209
2339
  * @generated from message silvana.settlement.v1.GetTransactionHistoryResponse
@@ -2225,7 +2355,7 @@ export type GetTransactionHistoryResponse = Message<"silvana.settlement.v1.GetTr
2225
2355
  * Use `create(GetTransactionHistoryResponseSchema)` to create a new message.
2226
2356
  */
2227
2357
  export const GetTransactionHistoryResponseSchema: GenMessage<GetTransactionHistoryResponse> = /*@__PURE__*/
2228
- messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2358
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 43);
2229
2359
 
2230
2360
  /**
2231
2361
  * @generated from message silvana.settlement.v1.TransactionHistoryEntry
@@ -2347,6 +2477,29 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2347
2477
  * @generated from field: optional google.protobuf.Struct update = 23;
2348
2478
  */
2349
2479
  update?: JsonObject;
2480
+
2481
+ /**
2482
+ * Daml template and choice info
2483
+ *
2484
+ * Daml template ID
2485
+ *
2486
+ * @generated from field: string daml_template_id = 24;
2487
+ */
2488
+ damlTemplateId: string;
2489
+
2490
+ /**
2491
+ * Daml choice name
2492
+ *
2493
+ * @generated from field: string daml_choice = 25;
2494
+ */
2495
+ damlChoice: string;
2496
+
2497
+ /**
2498
+ * Additional choice data
2499
+ *
2500
+ * @generated from field: optional google.protobuf.Struct daml_choices = 26;
2501
+ */
2502
+ damlChoices?: JsonObject;
2350
2503
  };
2351
2504
 
2352
2505
  /**
@@ -2354,7 +2507,7 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2354
2507
  * Use `create(TransactionHistoryEntrySchema)` to create a new message.
2355
2508
  */
2356
2509
  export const TransactionHistoryEntrySchema: GenMessage<TransactionHistoryEntry> = /*@__PURE__*/
2357
- messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2510
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2358
2511
 
2359
2512
  /**
2360
2513
  * DVP settlement stage enumeration
@@ -2570,6 +2723,11 @@ export enum TransactionType {
2570
2723
  * @generated from enum value: TRANSACTION_TYPE_UNLOCK = 12;
2571
2724
  */
2572
2725
  UNLOCK = 12,
2726
+
2727
+ /**
2728
+ * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
2729
+ */
2730
+ OTHER = 13,
2573
2731
  }
2574
2732
 
2575
2733
  /**
package/src/settlement.ts CHANGED
@@ -249,6 +249,9 @@ export class SettlementClient {
249
249
  errorMessage?: string;
250
250
  metadata?: any;
251
251
  update?: any;
252
+ damlTemplateId: string;
253
+ damlChoice: string;
254
+ damlChoices?: any;
252
255
  }): Promise<RecordTransactionResponse> {
253
256
  return await this.wrapCall(async () => {
254
257
  const request = create(RecordTransactionRequestSchema, params);