@silvana-one/orderbook 1.1.26 → 1.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node/index.cjs +237 -86
- package/dist/node/orderbook.d.ts +2 -0
- package/dist/node/orderbook.js +2 -0
- package/dist/node/orderbook.js.map +1 -1
- package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +253 -201
- package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +53 -66
- package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
- package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +988 -217
- package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +470 -43
- package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
- package/dist/node/settlement.d.ts +41 -30
- package/dist/node/settlement.js +40 -7
- package/dist/node/settlement.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.web.tsbuildinfo +1 -1
- package/dist/web/orderbook.d.ts +2 -0
- package/dist/web/orderbook.js +2 -0
- package/dist/web/orderbook.js.map +1 -1
- package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +253 -201
- package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +53 -66
- package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
- package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +988 -217
- package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +470 -43
- package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
- package/dist/web/settlement.d.ts +41 -30
- package/dist/web/settlement.js +40 -7
- package/dist/web/settlement.js.map +1 -1
- package/package.json +1 -1
- package/src/orderbook.ts +4 -0
- package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +297 -247
- package/src/proto/silvana/settlement/v1/settlement_pb.ts +1243 -333
- package/src/settlement.ts +206 -31
|
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
12
12
|
* Describes the file proto/silvana/orderbook/v1/orderbook.proto.
|
|
13
13
|
*/
|
|
14
14
|
export const file_proto_silvana_orderbook_v1_orderbook: GenFile = /*@__PURE__*/
|
|
15
|
-
fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAkiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IvcGCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQFCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXQiggEKDk9yZGVyYm9va0xldmVsEg0KBXByaWNlGAEgASgJEhYKDnRvdGFsX3F1YW50aXR5GAIgASgJEhMKC29yZGVyX2NvdW50GAMgASgNEjQKEGZpcnN0X29yZGVyX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItUBCg5PcmRlcmJvb2tEZXB0aBIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSMgoEYmlkcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjQKBm9mZmVycxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjEKDXNuYXBzaG90X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIuoSChJTZXR0bGVtZW50UHJvcG9zYWwSEwoLcHJvcG9zYWxfaWQYASABKAkSEQoJbWFya2V0X2lkGAIgASgJEg0KBWJ1eWVyGAMgASgJEg4KBnNlbGxlchgEIAEoCRIVCg1iYXNlX3F1YW50aXR5GAUgASgJEhYKDnF1b3RlX3F1YW50aXR5GAYgASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYByABKAkSNgoGc3RhdHVzGAggASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1cxIPCgd2ZXJzaW9uGAkgASgEEj0KF3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEkgKH3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESOwoVYnV5ZXJfcHJlY29uZmlybWF0aW9uGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEkoKIWJ1eWVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI8ChZzZWxsZXJfcHJlY29uZmlybWF0aW9uGA4gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEksKInNlbGxlcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESHQoQZHZwX3Byb3Bvc2FsX2NpZBgQIAEoCUgGiAEBEiMKFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYESABKAlIB4gBARIUCgdkdnBfY2lkGBIgASgJSAiIAQESGgoNZHZwX3VwZGF0ZV9pZBgTIAEoCUgJiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGBUgASgJSAqIAQESJwoaYWxsb2NhdGlvbl9idXllcl91cGRhdGVfaWQYFiABKAlIC4gBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYFyABKAlIDIgBARIoChthbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWQYGCABKAlIDYgBARIcCg9zZXR0bGVkX2R2cF9jaWQYGSABKAlIDogBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgaIAEoCUgPiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYGyABKAlIEIgBARIuCgpjcmVhdGVkX2F0GBwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9wcmVjb25maXJtZWRfYXQYHSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBGIAQESNwoOZHZwX2NyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBKIAQESOAoPZHZwX2FjY2VwdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjUKDGFsbG9jYXRlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARIzCgpzZXR0bGVkX2F0GCEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgViAEBEjUKDGNhbmNlbGxlZF9hdBgiIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARIyCglmYWlsZWRfYXQYIyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESGgoNZXJyb3JfbWVzc2FnZRgkIAEoCUgYiAEBEi4KCG1ldGFkYXRhGCUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgZiAEBEhEKCWJ1eWVyX2ZlZRgmIAEoCRISCgpzZWxsZXJfZmVlGCcgASgJEhsKDmJ1eWVyX2ZlZV9zZW50GCggASgISBqIAQESHAoPc2VsbGVyX2ZlZV9zZW50GCkgASgISBuIAQESHwoSYnV5ZXJfZmVlX3JlY2VpdmVkGCogASgISByIAQESIAoTc2VsbGVyX2ZlZV9yZWNlaXZlZBgrIAEoCEgdiAEBQhoKGF9wcmVjb25maXJtYXRpb25fcmVxdWVzdEIiCiBfcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdEIYChZfYnV5ZXJfcHJlY29uZmlybWF0aW9uQiQKIl9idXllcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCGQoXX3NlbGxlcl9wcmVjb25maXJtYXRpb25CJQojX3NlbGxlcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQh0KG19hbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZEIYChZfYWxsb2NhdGlvbl9zZWxsZXJfY2lkQh4KHF9hbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEgoQX3ByZWNvbmZpcm1lZF9hdEIRCg9fZHZwX2NyZWF0ZWRfYXRCEgoQX2R2cF9hY2NlcHRlZF9hdEIPCg1fYWxsb2NhdGVkX2F0Qg0KC19zZXR0bGVkX2F0Qg8KDV9jYW5jZWxsZWRfYXRCDAoKX2ZhaWxlZF9hdEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCEQoPX2J1eWVyX2ZlZV9zZW50QhIKEF9zZWxsZXJfZmVlX3NlbnRCFQoTX2J1eWVyX2ZlZV9yZWNlaXZlZEIWChRfc2VsbGVyX2ZlZV9yZWNlaXZlZCK7AQoKT3JkZXJNYXRjaBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAEgASgJEhQKDGJpZF9vcmRlcl9pZBgCIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgDIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAQgASgJEhUKDW1hdGNoZWRfcHJpY2UYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoCRIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSL5AwoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBARIuCiFsaXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMYCyABKA1IBogBARIgChhsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZXMYDCADKAlCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoQiQKIl9saXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMicQoRR2V0T3JkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIsoBChhHZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgBiAEBQggKBl9kZXB0aEIQCg5fZXh0ZXJuYWxfYXV0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCLKAgodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0IICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKOAQoeR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI7Cglwcm9wb3NhbHMYAyADKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSDQoFdG90YWwYBCABKA0isgEKHEdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoIo8BCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSPwoIcHJvcG9zYWwYAyABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWxIAIgBAUILCglfcHJvcG9zYWwihgIKFUdldEluc3RydW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIcCg9pbnN0cnVtZW50X3R5cGUYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIA4gBAUISChBfaW5zdHJ1bWVudF90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIoABChZHZXRJbnN0cnVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtpbnN0cnVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQSDQoFdG90YWwYBCABKA0irAMKEUdldE1hcmtldHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEjoKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZUgAiAEBEhwKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCUgBiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBCABKAlIAogBARIYCgthY3RpdmVfb25seRgFIAEoCEgDiAEBEhIKBWxpbWl0GAYgASgNSASIAQESEwoGb2Zmc2V0GAcgASgNSAWIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgGiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0i+wIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIncKF0dldE9yZGVySGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSKpAQoUR2V0TWFya2V0RGF0YVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEgoKbWFya2V0X2lkcxgCIAMoCRI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEi+gIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgigAEKFkdldFNldHRsZW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC3NldHRsZW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudBINCgV0b3RhbBgEIAEoDSLLAQoZU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCCAoGX2RlcHRoQhAKDl9leHRlcm5hbF9hdXRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiK9AQoWU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCDAoKX21hcmtldF9pZEIQCg5fZXh0ZXJuYWxfYXV0aCKtAwoLT3JkZXJVcGRhdGUSPwoKZXZlbnRfdHlwZRgBIAEoDjIrLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlLkV2ZW50VHlwZRIqCgVvcmRlchgCIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEjQKBW1hdGNoGAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJNYXRjaEgAiAEBEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwQEKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSRVZFTlRfVFlQRV9DUkVBVEVEEAESFgoSRVZFTlRfVFlQRV9VUERBVEVEEAISFQoRRVZFTlRfVFlQRV9GSUxMRUQQAxIfChtFVkVOVF9UWVBFX1BBUlRJQUxMWV9GSUxMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFEhYKEkVWRU5UX1RZUEVfRVhQSVJFRBAGQggKBl9tYXRjaCLCAQobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIMCgpfbWFya2V0X2lkQhAKDl9leHRlcm5hbF9hdXRoIokEChBTZXR0bGVtZW50VXBkYXRlEkQKCmV2ZW50X3R5cGUYASABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlLkV2ZW50VHlwZRI6Cghwcm9wb3NhbBgCIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsMCCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VWRU5UX1RZUEVfUFJPUE9TQUxfQ1JFQVRFRBABEigKJEVWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX1JFUVVFU1RFRBACEhsKF0VWRU5UX1RZUEVfUFJFQ09ORklSTUVEEAMSGgoWRVZFTlRfVFlQRV9EVlBfQ1JFQVRFRBAEEhsKF0VWRU5UX1RZUEVfRFZQX0FDQ0VQVEVEEAUSGAoURVZFTlRfVFlQRV9BTExPQ0FURUQQBhIWChJFVkVOVF9UWVBFX1NFVFRMRUQQBxIVChFFVkVOVF9UWVBFX0ZBSUxFRBAIEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAkSFgoSRVZFTlRfVFlQRV9VUERBVEVEEAoi8wQKElN1Ym1pdE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRINCgVwcmljZRgEIAEoCRIQCghxdWFudGl0eRgFIAEoCRI4Cg10aW1lX2luX2ZvcmNlGAYgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIdChB0cmFkZXJfb3JkZXJfcmVmGAggASgJSAGIAQESMQoLY3JlZGVudGlhbHMYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBAUINCgtfZXhwaXJlc19hdEITChFfdHJhZGVyX29yZGVyX3JlZkIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCEAoOX2V4dGVybmFsX2F1dGgicgoTU3VibWl0T3JkZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLwoFb3JkZXIYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlckgAiAEBQggKBl9vcmRlciKlAQoSQ2FuY2VsT3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCG9yZGVyX2lkGAIgASgEEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCJyChNDYW5jZWxPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIooGChJDcmVhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoKcGFydHlfbmFtZRgDIAEoCRISCgpwYXJ0eV90eXBlGAQgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAGIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAggASgJSAOIAQESKgoJdXNlcl9kYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgVlbWFpbBgKIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYCyABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgMIAEoCUgGiAEBEhMKBnNvdXJjZRgNIAEoCUgHiAEBEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhICIgBARIkChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgQIAEoCUgJiAEBEisKHmxpcXVpZGl0eV9wcm92aWRlcl9kZXNjcmlwdGlvbhgRIAEoCUgKiAEBQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkQggKBl9lbWFpbEINCgtfcHVibGljX2tleUIOCgxfaW52aXRlX2NvZGVCCQoHX3NvdXJjZUIQCg5fZXh0ZXJuYWxfYXV0aEIaChhfbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWVCIQofX2xpcXVpZGl0eV9wcm92aWRlcl9kZXNjcmlwdGlvbiJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5ItMFChJVcGRhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBEhIKBWVtYWlsGAsgASgJSAeIAQESFwoKcHVibGljX2tleRgMIAEoCUgIiAEBEhgKC2ludml0ZV9jb2RlGA0gASgJSAmIAQESEwoGc291cmNlGA4gASgJSAqIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgLiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb25CCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhAKDl9leHRlcm5hbF9hdXRoImMKE1VwZGF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHki2gEKFkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIVCg1jaGFuZ2VfcmVhc29uGAQgASgJEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCJnChdEZWFjdGl2YXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLnAQoWR2V0UGFydHlIaXN0b3J5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBEhMKBm9mZnNldBgEIAEoDUgBiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAogBAUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIqIBCg9HZXRQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoImAKEEdldFBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkiogIKEUdldFBhcnRpZXNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhcKCnBhcnR5X3R5cGUYAiABKAlIAIgBARIYCgthY3RpdmVfb25seRgDIAEoCEgBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSLgBAoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBBISCgVlbWFpbBgNIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYDiABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgPIAEoCUgGiAEBEg4KBnNvdXJjZRgQIAEoCUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlIo0CChFMaXF1aWRpdHlQcm92aWRlchIMCgRuYW1lGAEgASgJEhAKCHBhcnR5X2lkGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESOQoQbGFzdF9hY3RpdmVfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEwoRX2xhc3RfYWN0aXZlX3RpbWUiiwIKHEdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSGwoOYWN0aXZlX3NlY29uZHMYAiABKA1IAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIA4gBAUIRCg9fYWN0aXZlX3NlY29uZHNCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgilgEKHUdldExpcXVpZGl0eVByb3ZpZGVyc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRJEChNsaXF1aWRpdHlfcHJvdmlkZXJzGAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuTGlxdWlkaXR5UHJvdmlkZXISDQoFdG90YWwYBCABKA0iiAMKEFdhaXRpbmdMaXN0RW50cnkSCgoCaWQYASABKAQSFQoIcGFydHlfaWQYAiABKAlIAIgBARIqCgl1c2VyX2RhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgEIAEoCRISCgVlbWFpbBgFIAEoCUgBiAEBEhcKCnB1YmxpY19rZXkYBiABKAlIAogBARIUCgxpc19vbmJvYXJkZWQYByABKAgSDwoHdmVyc2lvbhgIIAEoBBIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEILCglfcGFydHlfaWRCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5QgsKCV9tZXRhZGF0YSKIAgoaQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSKgoJdXNlcl9kYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIOCgZzb3VyY2UYAyABKAkSEgoFZW1haWwYBCABKAlIAIgBARIXCgpwdWJsaWNfa2V5GAUgASgJSAGIAQESLgoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5QgsKCV9tZXRhZGF0YSJLChtBZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEgoKAmlkGAMgASgEIrEDCgVSb3VuZBIUCgxyb3VuZF9udW1iZXIYASABKAQSNAonaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAIgASgJSACIAQESNgopaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAyABKAlIAYgBARIYCgtjY191c2RfcmF0ZRgEIAEoCUgCiAEBEiQKF3RyYWZmaWNfY29zdF91c2RfcGVyX21iGAUgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCKgooX2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIsCipfaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25CDgoMX2NjX3VzZF9yYXRlQhoKGF90cmFmZmljX2Nvc3RfdXNkX3Blcl9tYiLvAgoGSW52aXRlEhMKC2ludml0ZV9jb2RlGAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFAoHcmV3YXJkcxgDIAEoCUgAiAEBEi4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjIKBnN0YXR1cxgFIAEoDjIiLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZVN0YXR1cxISCgpjb3VudF91c2VkGAYgASgNEhYKCW1heF9jb3VudBgHIAEoDUgCiAEBEhIKCmNyZWF0ZWRfYnkYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3Jld2FyZHNCCwoJX21ldGFkYXRhQgwKCl9tYXhfY291bnQiJwoQR2V0SW52aXRlUmVxdWVzdBITCgtpbnZpdGVfY29kZRgBIAEoCSJgChFHZXRJbnZpdGVSZXNwb25zZRINCgVmb3VuZBgBIAEoCBIxCgZpbnZpdGUYAiABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIksKEFVzZUludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkSFQoIcGFydHlfaWQYAiABKAlIAIgBAUILCglfcGFydHlfaWQicwoRVXNlSW52aXRlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjEKBmludml0ZRgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZUgAiAEBQgkKB19pbnZpdGUipgMKF0NyZWF0ZUluc3RydW1lbnRSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhUKDWluc3RydW1lbnRfaWQYAiABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGc3ltYm9sGAUgASgJEhgKC2Rlc2NyaXB0aW9uGAYgASgJSACIAQESEwoGaXNzdWVyGAcgASgJSAGIAQESFQoIcmVnaXN0cnkYCCABKAlIAogBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARITCgtuZXdzX3N5bWJvbBgKIAEoCRI+Cg1leHRlcm5hbF9hdXRoGA8gASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSASIAQFCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YUIQCg5fZXh0ZXJuYWxfYXV0aCJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IsUEChNDcmVhdGVNYXJrZXRSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2V4dGVybmFsX2F1dGgiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCLfAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgicAoeVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQqUQoJT3JkZXJUeXBlEhoKFk9SREVSX1RZUEVfVU5TUEVDSUZJRUQQABISCg5PUkRFUl9UWVBFX0JJRBABEhQKEE9SREVSX1RZUEVfT0ZGRVIQAiqtAQoLT3JkZXJTdGF0dXMSHAoYT1JERVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTT1JERVJfU1RBVFVTX0FDVElWRRABEhgKFE9SREVSX1NUQVRVU19QQVJUSUFMEAISFwoTT1JERVJfU1RBVFVTX0ZJTExFRBADEhoKFk9SREVSX1NUQVRVU19DQU5DRUxMRUQQBBIYChRPUkRFUl9TVEFUVVNfRVhQSVJFRBAFKogBCgtUaW1lSW5Gb3JjZRIdChlUSU1FX0lOX0ZPUkNFX1VOU1BFQ0lGSUVEEAASFQoRVElNRV9JTl9GT1JDRV9HVEMQARIVChFUSU1FX0lOX0ZPUkNFX0lPQxACEhUKEVRJTUVfSU5fRk9SQ0VfRk9LEAMSFQoRVElNRV9JTl9GT1JDRV9HVEQQBCraAgoQU2V0dGxlbWVudFN0YXR1cxIhCh1TRVRUTEVNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGVNFVFRMRU1FTlRfU1RBVFVTX0NSRUFURUQQARIiCh5TRVRUTEVNRU5UX1NUQVRVU19QUkVDT05GSVJNRUQQAhIpCiVTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9DUkVBVEVEEAMSKgomU0VUVExFTUVOVF9TVEFUVVNfRFZQX1JFUVVFU1RfQUNDRVBURUQQBBIrCidTRVRUTEVNRU5UX1NUQVRVU19JTlNUUlVNRU5UU19BTExPQ0FURUQQBRIdChlTRVRUTEVNRU5UX1NUQVRVU19TRVRUTEVEEAYSHwobU0VUVExFTUVOVF9TVEFUVVNfQ0FOQ0VMTEVEEAcSHAoYU0VUVExFTUVOVF9TVEFUVVNfRkFJTEVEEAgqdgoKTWFya2V0VHlwZRIbChdNQVJLRVRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE01BUktFVF9UWVBFX0dFTkVSQUwQARIdChlNQVJLRVRfVFlQRV9JTlNUSVRVVElPTkFMEAISEwoPTUFSS0VUX1RZUEVfT1RDEAMqlgEKDEludml0ZVN0YXR1cxIdChlJTlZJVEVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTSU5WSVRFX1NUQVRVU19WQUxJRBABEhkKFUlOVklURV9TVEFUVVNfRVhQSVJFRBACEhYKEklOVklURV9TVEFUVVNfVVNFRBADEhsKF0lOVklURV9TVEFUVVNfQ0FOQ0VMTEVEEAQylhcKEE9yZGVyYm9va1NlcnZpY2USXAoJR2V0T3JkZXJzEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1Jlc3BvbnNlEnQKEUdldE9yZGVyYm9va0RlcHRoEi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0Gi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRKDAQoWR2V0U2V0dGxlbWVudFByb3Bvc2FscxIzLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEoABChVHZXRTZXR0bGVtZW50UHJvcG9zYWwSMi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0GjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USawoOR2V0SW5zdHJ1bWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1Jlc3BvbnNlEl8KCkdldE1hcmtldHMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXNwb25zZRJuCg9HZXRPcmRlckhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USaAoNR2V0TWFya2V0RGF0YRIqLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXF1ZXN0Gisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlc3BvbnNlEmsKDkdldFNldHRsZW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlElkKCEdldFBhcnR5EiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXNwb25zZRJfCgpHZXRQYXJ0aWVzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVzcG9uc2USgAEKFUdldExpcXVpZGl0eVByb3ZpZGVycxIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRJ6ChNBZGRXYWl0aW5nTGlzdEVudHJ5EjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QaMS5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USXAoJR2V0SW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEludml0ZVJlc3BvbnNlElwKCVVzZUludml0ZRImLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5Vc2VJbnZpdGVSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwAUI0WjJnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO29yZGVyYm9va2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
|
|
15
|
+
fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAkiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IqwHCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESFgoJc2lnbmF0dXJlGBcgASgJSAaIAQESDQoFbm9uY2UYGCABKANCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXRCDAoKX3NpZ25hdHVyZSKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wUKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoCRIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhcKD2Jhc2VfaW5zdHJ1bWVudBgFIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAYgASgJEhUKDWJhc2VfcXVhbnRpdHkYByABKAkSFgoOcXVvdGVfcXVhbnRpdHkYCCABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgJIAEoCRIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgLIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgJEjYKBnN0YXR1cxgOIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXMSGgoNZXJyb3JfbWVzc2FnZRgPIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY2FuY2VsbGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjIKCWZhaWxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBAUIQCg5fZXJyb3JfbWVzc2FnZUINCgtfc2V0dGxlZF9hdEIPCg1fY2FuY2VsbGVkX2F0QgwKCl9mYWlsZWRfYXQiuwEKCk9yZGVyTWF0Y2gSHgoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgBIAEoCRIUCgxiaWRfb3JkZXJfaWQYAiABKAQSFgoOb2ZmZXJfb3JkZXJfaWQYAyABKAQSGAoQbWF0Y2hlZF9xdWFudGl0eRgEIAEoCRIVCg1tYXRjaGVkX3ByaWNlGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpwECgpTZXR0bGVtZW50EhUKDXNldHRsZW1lbnRfaWQYASABKAQSEwoLcHJvcG9zYWxfaWQYAiABKAkSEQoJbWFya2V0X2lkGAMgASgJEg0KBWJ1eWVyGAQgASgJEg4KBnNlbGxlchgFIAEoCRIXCg9iYXNlX2luc3RydW1lbnQYBiABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgHIAEoCRIVCg1iYXNlX3F1YW50aXR5GAggASgJEhYKDnF1b3RlX3F1YW50aXR5GAkgASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYCiABKAkSIAoYZHZwX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAsgASgJEiEKGWR2cF9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDCABKAkSJwofYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9idXllchgNIAEoCRIoCiBhbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgOIAEoCRIcCg9zZXR0bGVkX2R2cF9jaWQYDyABKAlIAIgBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgQIAEoCUgBiAEBEi4KCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhIKEF9zZXR0bGVkX2R2cF9jaWRCFwoVX3NldHRsZW1lbnRfdXBkYXRlX2lkIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSL5AwoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBARIuCiFsaXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMYCyABKA1IBogBARIgChhsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZXMYDCADKAlCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoQiQKIl9saXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMicQoRR2V0T3JkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIsoBChhHZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgBiAEBQggKBl9kZXB0aEIQCg5fZXh0ZXJuYWxfYXV0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCLKAgodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0IICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKOAQoeR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI7Cglwcm9wb3NhbHMYAyADKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSDQoFdG90YWwYBCABKA0isgEKHEdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoIo8BCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSPwoIcHJvcG9zYWwYAyABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWxIAIgBAUILCglfcHJvcG9zYWwihgIKFUdldEluc3RydW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIcCg9pbnN0cnVtZW50X3R5cGUYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIA4gBAUISChBfaW5zdHJ1bWVudF90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIoABChZHZXRJbnN0cnVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtpbnN0cnVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQSDQoFdG90YWwYBCABKA0irAMKEUdldE1hcmtldHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEjoKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZUgAiAEBEhwKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCUgBiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBCABKAlIAogBARIYCgthY3RpdmVfb25seRgFIAEoCEgDiAEBEhIKBWxpbWl0GAYgASgNSASIAQESEwoGb2Zmc2V0GAcgASgNSAWIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgGiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0i+wIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIncKF0dldE9yZGVySGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSKpAQoUR2V0TWFya2V0RGF0YVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEgoKbWFya2V0X2lkcxgCIAMoCRI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEi+gIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgigAEKFkdldFNldHRsZW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC3NldHRsZW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudBINCgV0b3RhbBgEIAEoDSLLAQoZU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCCAoGX2RlcHRoQhAKDl9leHRlcm5hbF9hdXRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiK9AQoWU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCDAoKX21hcmtldF9pZEIQCg5fZXh0ZXJuYWxfYXV0aCKtAwoLT3JkZXJVcGRhdGUSPwoKZXZlbnRfdHlwZRgBIAEoDjIrLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlLkV2ZW50VHlwZRIqCgVvcmRlchgCIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEjQKBW1hdGNoGAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJNYXRjaEgAiAEBEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwQEKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSRVZFTlRfVFlQRV9DUkVBVEVEEAESFgoSRVZFTlRfVFlQRV9VUERBVEVEEAISFQoRRVZFTlRfVFlQRV9GSUxMRUQQAxIfChtFVkVOVF9UWVBFX1BBUlRJQUxMWV9GSUxMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFEhYKEkVWRU5UX1RZUEVfRVhQSVJFRBAGQggKBl9tYXRjaCLCAQobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIMCgpfbWFya2V0X2lkQhAKDl9leHRlcm5hbF9hdXRoIvYCChBTZXR0bGVtZW50VXBkYXRlEkQKCmV2ZW50X3R5cGUYASABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlLkV2ZW50VHlwZRI6Cghwcm9wb3NhbBgCIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIrABCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VWRU5UX1RZUEVfUFJPUE9TQUxfQ1JFQVRFRBABEh0KGUVWRU5UX1RZUEVfU1RBVFVTX0NIQU5HRUQQAhIWChJFVkVOVF9UWVBFX1NFVFRMRUQQAxIVChFFVkVOVF9UWVBFX0ZBSUxFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUiqAUKElN1Ym1pdE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRINCgVwcmljZRgEIAEoCRIQCghxdWFudGl0eRgFIAEoCRI4Cg10aW1lX2luX2ZvcmNlGAYgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIdChB0cmFkZXJfb3JkZXJfcmVmGAggASgJSAGIAQESMQoLY3JlZGVudGlhbHMYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhYKCXNpZ25hdHVyZRgMIAEoCUgFiAEBEg0KBW5vbmNlGA0gASgDEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBogBAUINCgtfZXhwaXJlc19hdEITChFfdHJhZGVyX29yZGVyX3JlZkIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDAoKX3NpZ25hdHVyZUIQCg5fZXh0ZXJuYWxfYXV0aCJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIqUBChJDYW5jZWxPcmRlclJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIb3JkZXJfaWQYAiABKAQSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiigYKEkNyZWF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCCABKAlIA4gBARIqCgl1c2VyX2RhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKBWVtYWlsGAogASgJSASIAQESFwoKcHVibGljX2tleRgLIAEoCUgFiAEBEhgKC2ludml0ZV9jb2RlGAwgASgJSAaIAQESEwoGc291cmNlGA0gASgJSAeIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgIiAEBEiQKF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGBAgASgJSAmIAQESKwoebGlxdWlkaXR5X3Byb3ZpZGVyX2Rlc2NyaXB0aW9uGBEgASgJSAqIAQFCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCCwoJX21ldGFkYXRhQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhAKDl9leHRlcm5hbF9hdXRoQhoKGF9saXF1aWRpdHlfcHJvdmlkZXJfbmFtZUIhCh9fbGlxdWlkaXR5X3Byb3ZpZGVyX2Rlc2NyaXB0aW9uImMKE0NyZWF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHki0wUKElVwZGF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhcKCnBhcnR5X25hbWUYBCABKAlIAIgBARIdChB1c2VyX3NlcnZpY2VfY2lkGAUgASgJSAGIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgGIAEoCUgCiAEBEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgHIAEoCUgDiAEBEi8KCXVzZXJfZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIaCg1jaGFuZ2VfcmVhc29uGAogASgJSAaIAQESEgoFZW1haWwYCyABKAlIB4gBARIXCgpwdWJsaWNfa2V5GAwgASgJSAiIAQESGAoLaW52aXRlX2NvZGUYDSABKAlICYgBARITCgZzb3VyY2UYDiABKAlICogBARI+Cg1leHRlcm5hbF9hdXRoGA8gASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAuIAQFCDQoLX3BhcnR5X25hbWVCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIMCgpfdXNlcl9kYXRhQgsKCV9tZXRhZGF0YUIQCg5fY2hhbmdlX3JlYXNvbkIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQgkKB19zb3VyY2VCEAoOX2V4dGVybmFsX2F1dGgiYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLaAQoWRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhUKDWNoYW5nZV9yZWFzb24YBCABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoImcKF0RlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IucBChZHZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCHBhcnR5X2lkGAIgASgJEhIKBWxpbWl0GAMgASgNSACIAQESEwoGb2Zmc2V0GAQgASgNSAGIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgCiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIoECChFQYXJ0eUhpc3RvcnlFbnRyeRISCgpoaXN0b3J5X2lkGAEgASgEEhAKCHBhcnR5X2lkGAIgASgJEg4KBmFjdGlvbhgDIAEoCRISCgpjaGFuZ2VkX2J5GAQgASgJEhoKDWNoYW5nZV9yZWFzb24YBSABKAlIAIgBARIPCgd2ZXJzaW9uGAYgASgEEjMKDnBhcnR5X3NuYXBzaG90GAcgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkSLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2NoYW5nZV9yZWFzb24ihAEKF0dldFBhcnR5SGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI4CgdoaXN0b3J5GAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHlIaXN0b3J5RW50cnkSDQoFdG90YWwYBCABKA0iogEKD0dldFBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgiYAoQR2V0UGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKiAgoRR2V0UGFydGllc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFwoKcGFydHlfdHlwZRgCIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAMgASgISAGIAQESEgoFbGltaXQYBCABKA1IAogBARITCgZvZmZzZXQYBSABKA1IA4gBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSASIAQFCDQoLX3BhcnR5X3R5cGVCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoInMKEkdldFBhcnRpZXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoHcGFydGllcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Eg0KBXRvdGFsGAQgASgNIuAECgVQYXJ0eRIQCghwYXJ0eV9pZBgBIAEoCRISCgpwYXJ0eV9uYW1lGAIgASgJEhIKCnBhcnR5X3R5cGUYAyABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgEIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBSABKAlIAYgBARIRCglpc19hY3RpdmUYBiABKAgSLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAogASgJSAOIAQESKgoJdXNlcl9kYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgd2ZXJzaW9uGAwgASgEEhIKBWVtYWlsGA0gASgJSASIAQESFwoKcHVibGljX2tleRgOIAEoCUgFiAEBEhgKC2ludml0ZV9jb2RlGA8gASgJSAaIAQESDgoGc291cmNlGBAgASgJQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkQggKBl9lbWFpbEINCgtfcHVibGljX2tleUIOCgxfaW52aXRlX2NvZGUijQIKEUxpcXVpZGl0eVByb3ZpZGVyEgwKBG5hbWUYASABKAkSEAoIcGFydHlfaWQYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARI5ChBsYXN0X2FjdGl2ZV90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkITChFfbGFzdF9hY3RpdmVfdGltZSKLAgocR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIbCg5hY3RpdmVfc2Vjb25kcxgCIAEoDUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgDiAEBQhEKD19hY3RpdmVfc2Vjb25kc0IICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKWAQodR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEkQKE2xpcXVpZGl0eV9wcm92aWRlcnMYAyADKAsyJy5zaWx2YW5hLm9yZGVyYm9vay52MS5MaXF1aWRpdHlQcm92aWRlchINCgV0b3RhbBgEIAEoDSKIAwoQV2FpdGluZ0xpc3RFbnRyeRIKCgJpZBgBIAEoBBIVCghwYXJ0eV9pZBgCIAEoCUgAiAEBEioKCXVzZXJfZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDgoGc291cmNlGAQgASgJEhIKBWVtYWlsGAUgASgJSAGIAQESFwoKcHVibGljX2tleRgGIAEoCUgCiAEBEhQKDGlzX29uYm9hcmRlZBgHIAEoCBIPCgd2ZXJzaW9uGAggASgEEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9wYXJ0eV9pZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhIogCChpBZGRXYWl0aW5nTGlzdEVudHJ5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIqCgl1c2VyX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgDIAEoCRISCgVlbWFpbBgEIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYBSABKAlIAYgBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhIksKG0FkZFdhaXRpbmdMaXN0RW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSCgoCaWQYAyABKAQisQMKBVJvdW5kEhQKDHJvdW5kX251bWJlchgBIAEoBBI0Cidpc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAiABKAlIAIgBARI2Cilpc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgDIAEoCUgBiAEBEhgKC2NjX3VzZF9yYXRlGAQgASgJSAKIAQESJAoXdHJhZmZpY19jb3N0X3VzZF9wZXJfbWIYBSABKAlIA4gBARIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIqCihfaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIOCgxfY2NfdXNkX3JhdGVCGgoYX3RyYWZmaWNfY29zdF91c2RfcGVyX21iIqwFChJMYXRlc3RDb2VmZmljaWVudHMSNAonaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAEgASgJSACIAQESOgotaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kGAIgASgESAGIAQESNgopaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAyABKAlIAogBARI8Ci9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbl9yb3VuZBgEIAEoBEgDiAEBEhgKC2NjX3VzZF9yYXRlGAUgASgJSASIAQESHgoRY2NfdXNkX3JhdGVfcm91bmQYBiABKARIBYgBARIkChd0cmFmZmljX2Nvc3RfdXNkX3Blcl9tYhgHIAEoCUgGiAEBEioKHXRyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kGAggASgESAeIAQFCKgooX2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIwCi5faXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIyCjBfaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmRCDgoMX2NjX3VzZF9yYXRlQhQKEl9jY191c2RfcmF0ZV9yb3VuZEIaChhfdHJhZmZpY19jb3N0X3VzZF9wZXJfbWJCIAoeX3RyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kIrMBChRHZXRSb3VuZHNEYXRhUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBISCgVsaW1pdBgCIAEoDUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIICgZfbGltaXRCEAoOX2V4dGVybmFsX2F1dGgitgEKFUdldFJvdW5kc0RhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGcm91bmRzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUm91bmQSOAoGbGF0ZXN0GAQgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuTGF0ZXN0Q29lZmZpY2llbnRzEhQKDHRvdGFsX3JvdW5kcxgFIAEoDSLvAgoGSW52aXRlEhMKC2ludml0ZV9jb2RlGAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFAoHcmV3YXJkcxgDIAEoCUgAiAEBEi4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjIKBnN0YXR1cxgFIAEoDjIiLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZVN0YXR1cxISCgpjb3VudF91c2VkGAYgASgNEhYKCW1heF9jb3VudBgHIAEoDUgCiAEBEhIKCmNyZWF0ZWRfYnkYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3Jld2FyZHNCCwoJX21ldGFkYXRhQgwKCl9tYXhfY291bnQiJwoQR2V0SW52aXRlUmVxdWVzdBITCgtpbnZpdGVfY29kZRgBIAEoCSJgChFHZXRJbnZpdGVSZXNwb25zZRINCgVmb3VuZBgBIAEoCBIxCgZpbnZpdGUYAiABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIksKEFVzZUludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkSFQoIcGFydHlfaWQYAiABKAlIAIgBAUILCglfcGFydHlfaWQicwoRVXNlSW52aXRlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjEKBmludml0ZRgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZUgAiAEBQgkKB19pbnZpdGUipgMKF0NyZWF0ZUluc3RydW1lbnRSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhUKDWluc3RydW1lbnRfaWQYAiABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGc3ltYm9sGAUgASgJEhgKC2Rlc2NyaXB0aW9uGAYgASgJSACIAQESEwoGaXNzdWVyGAcgASgJSAGIAQESFQoIcmVnaXN0cnkYCCABKAlIAogBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARITCgtuZXdzX3N5bWJvbBgKIAEoCRI+Cg1leHRlcm5hbF9hdXRoGA8gASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSASIAQFCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YUIQCg5fZXh0ZXJuYWxfYXV0aCJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IsUEChNDcmVhdGVNYXJrZXRSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2V4dGVybmFsX2F1dGgiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCLfAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgicAoeVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQqUQoJT3JkZXJUeXBlEhoKFk9SREVSX1RZUEVfVU5TUEVDSUZJRUQQABISCg5PUkRFUl9UWVBFX0JJRBABEhQKEE9SREVSX1RZUEVfT0ZGRVIQAiqtAQoLT3JkZXJTdGF0dXMSHAoYT1JERVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTT1JERVJfU1RBVFVTX0FDVElWRRABEhgKFE9SREVSX1NUQVRVU19QQVJUSUFMEAISFwoTT1JERVJfU1RBVFVTX0ZJTExFRBADEhoKFk9SREVSX1NUQVRVU19DQU5DRUxMRUQQBBIYChRPUkRFUl9TVEFUVVNfRVhQSVJFRBAFKogBCgtUaW1lSW5Gb3JjZRIdChlUSU1FX0lOX0ZPUkNFX1VOU1BFQ0lGSUVEEAASFQoRVElNRV9JTl9GT1JDRV9HVEMQARIVChFUSU1FX0lOX0ZPUkNFX0lPQxACEhUKEVRJTUVfSU5fRk9SQ0VfRk9LEAMSFQoRVElNRV9JTl9GT1JDRV9HVEQQBCqyAQoQU2V0dGxlbWVudFN0YXR1cxIhCh1TRVRUTEVNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1BFTkRJTkcQARIdChlTRVRUTEVNRU5UX1NUQVRVU19TRVRUTEVEEAISHwobU0VUVExFTUVOVF9TVEFUVVNfQ0FOQ0VMTEVEEAMSHAoYU0VUVExFTUVOVF9TVEFUVVNfRkFJTEVEEAQqdgoKTWFya2V0VHlwZRIbChdNQVJLRVRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE01BUktFVF9UWVBFX0dFTkVSQUwQARIdChlNQVJLRVRfVFlQRV9JTlNUSVRVVElPTkFMEAISEwoPTUFSS0VUX1RZUEVfT1RDEAMqlgEKDEludml0ZVN0YXR1cxIdChlJTlZJVEVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTSU5WSVRFX1NUQVRVU19WQUxJRBABEhkKFUlOVklURV9TVEFUVVNfRVhQSVJFRBACEhYKEklOVklURV9TVEFUVVNfVVNFRBADEhsKF0lOVklURV9TVEFUVVNfQ0FOQ0VMTEVEEAQygBgKEE9yZGVyYm9va1NlcnZpY2USXAoJR2V0T3JkZXJzEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1Jlc3BvbnNlEnQKEUdldE9yZGVyYm9va0RlcHRoEi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0Gi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRKDAQoWR2V0U2V0dGxlbWVudFByb3Bvc2FscxIzLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEoABChVHZXRTZXR0bGVtZW50UHJvcG9zYWwSMi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0GjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USawoOR2V0SW5zdHJ1bWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1Jlc3BvbnNlEl8KCkdldE1hcmtldHMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXNwb25zZRJuCg9HZXRPcmRlckhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USaAoNR2V0TWFya2V0RGF0YRIqLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXF1ZXN0Gisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlc3BvbnNlEmsKDkdldFNldHRsZW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlElkKCEdldFBhcnR5EiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXNwb25zZRJfCgpHZXRQYXJ0aWVzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVzcG9uc2USgAEKFUdldExpcXVpZGl0eVByb3ZpZGVycxIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRJ6ChNBZGRXYWl0aW5nTGlzdEVudHJ5EjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QaMS5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USXAoJR2V0SW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEludml0ZVJlc3BvbnNlElwKCVVzZUludml0ZRImLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5Vc2VJbnZpdGVSZXNwb25zZRJoCg1HZXRSb3VuZHNEYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0Um91bmRzRGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSb3VuZHNEYXRhUmVzcG9uc2USYgoLQ3JlYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlc3BvbnNlEmIKC1VwZGF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXNwb25zZRJuCg9EZWFjdGl2YXRlUGFydHkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuRGVhY3RpdmF0ZVBhcnR5UmVzcG9uc2USbgoPR2V0UGFydHlIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5SGlzdG9yeVJlc3BvbnNlEnEKEENyZWF0ZUluc3RydW1lbnQSLS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVxdWVzdBouLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXNwb25zZRJlCgxDcmVhdGVNYXJrZXQSKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXF1ZXN0Giouc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVzcG9uc2USgwEKFlVwZGF0ZU1hcmtldFByaWNlRmVlZHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXNwb25zZRJuChJTdWJzY3JpYmVPcmRlcmJvb2sSLy5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0GiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlMAESZAoPU3Vic2NyaWJlT3JkZXJzEiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBohLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlMAEScwoUU3Vic2NyaWJlU2V0dGxlbWVudHMSMS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlMAFCNFoyZ2l0aHViLmNvbS9TaWx2YW5hT25lL2NhbnRvbi1hZ2VudC9wcm90bztvcmRlcmJvb2tiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* JWT authentication token (for server-signed tokens using JWT_PRIVATE_KEY)
|
|
@@ -401,6 +401,20 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
|
|
|
401
401
|
* @generated from field: optional google.protobuf.Timestamp cancelled_at = 22;
|
|
402
402
|
*/
|
|
403
403
|
cancelledAt?: Timestamp;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Base64-encoded Ed25519 signature for order authentication
|
|
407
|
+
*
|
|
408
|
+
* @generated from field: optional string signature = 23;
|
|
409
|
+
*/
|
|
410
|
+
signature?: string;
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Unique nonce per trader for replay protection
|
|
414
|
+
*
|
|
415
|
+
* @generated from field: int64 nonce = 24;
|
|
416
|
+
*/
|
|
417
|
+
nonce: bigint;
|
|
404
418
|
};
|
|
405
419
|
|
|
406
420
|
/**
|
|
@@ -492,7 +506,7 @@ export const OrderbookDepthSchema: GenMessage<OrderbookDepth> = /*@__PURE__*/
|
|
|
492
506
|
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
|
|
493
507
|
|
|
494
508
|
/**
|
|
495
|
-
* Settlement proposal message
|
|
509
|
+
* Settlement proposal message (simplified - immutable values + status only)
|
|
496
510
|
*
|
|
497
511
|
* @generated from message silvana.orderbook.v1.SettlementProposal
|
|
498
512
|
*/
|
|
@@ -519,217 +533,96 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
|
|
|
519
533
|
*/
|
|
520
534
|
seller: string;
|
|
521
535
|
|
|
536
|
+
/**
|
|
537
|
+
* @generated from field: string base_instrument = 5;
|
|
538
|
+
*/
|
|
539
|
+
baseInstrument: string;
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* @generated from field: string quote_instrument = 6;
|
|
543
|
+
*/
|
|
544
|
+
quoteInstrument: string;
|
|
545
|
+
|
|
522
546
|
/**
|
|
523
547
|
* DECIMAL(38,10) as string
|
|
524
548
|
*
|
|
525
|
-
* @generated from field: string base_quantity =
|
|
549
|
+
* @generated from field: string base_quantity = 7;
|
|
526
550
|
*/
|
|
527
551
|
baseQuantity: string;
|
|
528
552
|
|
|
529
553
|
/**
|
|
530
554
|
* DECIMAL(38,10) as string
|
|
531
555
|
*
|
|
532
|
-
* @generated from field: string quote_quantity =
|
|
556
|
+
* @generated from field: string quote_quantity = 8;
|
|
533
557
|
*/
|
|
534
558
|
quoteQuantity: string;
|
|
535
559
|
|
|
536
560
|
/**
|
|
537
561
|
* DECIMAL(38,10) as string
|
|
538
562
|
*
|
|
539
|
-
* @generated from field: string settlement_price =
|
|
563
|
+
* @generated from field: string settlement_price = 9;
|
|
540
564
|
*/
|
|
541
565
|
settlementPrice: string;
|
|
542
566
|
|
|
543
567
|
/**
|
|
544
|
-
*
|
|
545
|
-
*/
|
|
546
|
-
status: SettlementStatus;
|
|
547
|
-
|
|
548
|
-
/**
|
|
549
|
-
* Optimistic locking
|
|
568
|
+
* Fee schedule (set by matching engine, to be paid by parties)
|
|
550
569
|
*
|
|
551
|
-
*
|
|
552
|
-
*/
|
|
553
|
-
version: bigint;
|
|
554
|
-
|
|
555
|
-
/**
|
|
556
|
-
* Preconfirmation tracking
|
|
570
|
+
* DECIMAL(38,10) as string
|
|
557
571
|
*
|
|
558
|
-
* @generated from field:
|
|
559
|
-
*/
|
|
560
|
-
preconfirmationRequest?: JsonObject;
|
|
561
|
-
|
|
562
|
-
/**
|
|
563
|
-
* @generated from field: optional google.protobuf.Timestamp preconfirmation_request_sent_at = 11;
|
|
564
|
-
*/
|
|
565
|
-
preconfirmationRequestSentAt?: Timestamp;
|
|
566
|
-
|
|
567
|
-
/**
|
|
568
|
-
* @generated from field: optional google.protobuf.Struct buyer_preconfirmation = 12;
|
|
569
|
-
*/
|
|
570
|
-
buyerPreconfirmation?: JsonObject;
|
|
571
|
-
|
|
572
|
-
/**
|
|
573
|
-
* @generated from field: optional google.protobuf.Timestamp buyer_preconfirmation_received_at = 13;
|
|
574
|
-
*/
|
|
575
|
-
buyerPreconfirmationReceivedAt?: Timestamp;
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* @generated from field: optional google.protobuf.Struct seller_preconfirmation = 14;
|
|
572
|
+
* @generated from field: string dvp_processing_fee_buyer = 10;
|
|
579
573
|
*/
|
|
580
|
-
|
|
574
|
+
dvpProcessingFeeBuyer: string;
|
|
581
575
|
|
|
582
576
|
/**
|
|
583
|
-
*
|
|
584
|
-
*/
|
|
585
|
-
sellerPreconfirmationReceivedAt?: Timestamp;
|
|
586
|
-
|
|
587
|
-
/**
|
|
588
|
-
* Canton DVP integration fields
|
|
577
|
+
* DECIMAL(38,10) as string
|
|
589
578
|
*
|
|
590
|
-
* @generated from field:
|
|
591
|
-
*/
|
|
592
|
-
dvpProposalCid?: string;
|
|
593
|
-
|
|
594
|
-
/**
|
|
595
|
-
* @generated from field: optional string dvp_proposal_update_id = 17;
|
|
596
|
-
*/
|
|
597
|
-
dvpProposalUpdateId?: string;
|
|
598
|
-
|
|
599
|
-
/**
|
|
600
|
-
* @generated from field: optional string dvp_cid = 18;
|
|
579
|
+
* @generated from field: string dvp_processing_fee_seller = 11;
|
|
601
580
|
*/
|
|
602
|
-
|
|
581
|
+
dvpProcessingFeeSeller: string;
|
|
603
582
|
|
|
604
583
|
/**
|
|
605
|
-
*
|
|
606
|
-
*/
|
|
607
|
-
dvpUpdateId?: string;
|
|
608
|
-
|
|
609
|
-
/**
|
|
610
|
-
* Field 20 removed (was dvp_settlement_id - now using proposal_id as settlement ID)
|
|
584
|
+
* DECIMAL(38,10) as string
|
|
611
585
|
*
|
|
612
|
-
* @generated from field:
|
|
613
|
-
*/
|
|
614
|
-
allocationBuyerCid?: string;
|
|
615
|
-
|
|
616
|
-
/**
|
|
617
|
-
* @generated from field: optional string allocation_buyer_update_id = 22;
|
|
618
|
-
*/
|
|
619
|
-
allocationBuyerUpdateId?: string;
|
|
620
|
-
|
|
621
|
-
/**
|
|
622
|
-
* @generated from field: optional string allocation_seller_cid = 23;
|
|
623
|
-
*/
|
|
624
|
-
allocationSellerCid?: string;
|
|
625
|
-
|
|
626
|
-
/**
|
|
627
|
-
* @generated from field: optional string allocation_seller_update_id = 24;
|
|
628
|
-
*/
|
|
629
|
-
allocationSellerUpdateId?: string;
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
* @generated from field: optional string settled_dvp_cid = 25;
|
|
586
|
+
* @generated from field: string allocation_processing_fee_buyer = 12;
|
|
633
587
|
*/
|
|
634
|
-
|
|
588
|
+
allocationProcessingFeeBuyer: string;
|
|
635
589
|
|
|
636
590
|
/**
|
|
637
|
-
*
|
|
638
|
-
*/
|
|
639
|
-
settlementUpdateId?: string;
|
|
640
|
-
|
|
641
|
-
/**
|
|
642
|
-
* @generated from field: optional string settlement_completion_offset = 27;
|
|
643
|
-
*/
|
|
644
|
-
settlementCompletionOffset?: string;
|
|
645
|
-
|
|
646
|
-
/**
|
|
647
|
-
* Timestamps
|
|
591
|
+
* DECIMAL(38,10) as string
|
|
648
592
|
*
|
|
649
|
-
* @generated from field:
|
|
650
|
-
*/
|
|
651
|
-
createdAt?: Timestamp;
|
|
652
|
-
|
|
653
|
-
/**
|
|
654
|
-
* @generated from field: optional google.protobuf.Timestamp preconfirmed_at = 29;
|
|
593
|
+
* @generated from field: string allocation_processing_fee_seller = 13;
|
|
655
594
|
*/
|
|
656
|
-
|
|
595
|
+
allocationProcessingFeeSeller: string;
|
|
657
596
|
|
|
658
597
|
/**
|
|
659
|
-
* @generated from field:
|
|
598
|
+
* @generated from field: silvana.orderbook.v1.SettlementStatus status = 14;
|
|
660
599
|
*/
|
|
661
|
-
|
|
600
|
+
status: SettlementStatus;
|
|
662
601
|
|
|
663
602
|
/**
|
|
664
|
-
* @generated from field: optional
|
|
603
|
+
* @generated from field: optional string error_message = 15;
|
|
665
604
|
*/
|
|
666
|
-
|
|
605
|
+
errorMessage?: string;
|
|
667
606
|
|
|
668
607
|
/**
|
|
669
|
-
* @generated from field:
|
|
608
|
+
* @generated from field: google.protobuf.Timestamp created_at = 16;
|
|
670
609
|
*/
|
|
671
|
-
|
|
610
|
+
createdAt?: Timestamp;
|
|
672
611
|
|
|
673
612
|
/**
|
|
674
|
-
* @generated from field: optional google.protobuf.Timestamp settled_at =
|
|
613
|
+
* @generated from field: optional google.protobuf.Timestamp settled_at = 17;
|
|
675
614
|
*/
|
|
676
615
|
settledAt?: Timestamp;
|
|
677
616
|
|
|
678
617
|
/**
|
|
679
|
-
* @generated from field: optional google.protobuf.Timestamp cancelled_at =
|
|
618
|
+
* @generated from field: optional google.protobuf.Timestamp cancelled_at = 18;
|
|
680
619
|
*/
|
|
681
620
|
cancelledAt?: Timestamp;
|
|
682
621
|
|
|
683
622
|
/**
|
|
684
|
-
* @generated from field: optional google.protobuf.Timestamp failed_at =
|
|
623
|
+
* @generated from field: optional google.protobuf.Timestamp failed_at = 19;
|
|
685
624
|
*/
|
|
686
625
|
failedAt?: Timestamp;
|
|
687
|
-
|
|
688
|
-
/**
|
|
689
|
-
* @generated from field: optional string error_message = 36;
|
|
690
|
-
*/
|
|
691
|
-
errorMessage?: string;
|
|
692
|
-
|
|
693
|
-
/**
|
|
694
|
-
* @generated from field: optional google.protobuf.Struct metadata = 37;
|
|
695
|
-
*/
|
|
696
|
-
metadata?: JsonObject;
|
|
697
|
-
|
|
698
|
-
/**
|
|
699
|
-
* Fee tracking
|
|
700
|
-
*
|
|
701
|
-
* DECIMAL(38,10) as string
|
|
702
|
-
*
|
|
703
|
-
* @generated from field: string buyer_fee = 38;
|
|
704
|
-
*/
|
|
705
|
-
buyerFee: string;
|
|
706
|
-
|
|
707
|
-
/**
|
|
708
|
-
* DECIMAL(38,10) as string
|
|
709
|
-
*
|
|
710
|
-
* @generated from field: string seller_fee = 39;
|
|
711
|
-
*/
|
|
712
|
-
sellerFee: string;
|
|
713
|
-
|
|
714
|
-
/**
|
|
715
|
-
* @generated from field: optional bool buyer_fee_sent = 40;
|
|
716
|
-
*/
|
|
717
|
-
buyerFeeSent?: boolean;
|
|
718
|
-
|
|
719
|
-
/**
|
|
720
|
-
* @generated from field: optional bool seller_fee_sent = 41;
|
|
721
|
-
*/
|
|
722
|
-
sellerFeeSent?: boolean;
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
* @generated from field: optional bool buyer_fee_received = 42;
|
|
726
|
-
*/
|
|
727
|
-
buyerFeeReceived?: boolean;
|
|
728
|
-
|
|
729
|
-
/**
|
|
730
|
-
* @generated from field: optional bool seller_fee_received = 43;
|
|
731
|
-
*/
|
|
732
|
-
sellerFeeReceived?: boolean;
|
|
733
626
|
};
|
|
734
627
|
|
|
735
628
|
/**
|
|
@@ -790,7 +683,7 @@ export const OrderMatchSchema: GenMessage<OrderMatch> = /*@__PURE__*/
|
|
|
790
683
|
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 8);
|
|
791
684
|
|
|
792
685
|
/**
|
|
793
|
-
* Settlement (completed) message
|
|
686
|
+
* Settlement (completed) message - audit trail for completed settlements
|
|
794
687
|
*
|
|
795
688
|
* @generated from message silvana.orderbook.v1.Settlement
|
|
796
689
|
*/
|
|
@@ -824,51 +717,85 @@ export type Settlement = Message<"silvana.orderbook.v1.Settlement"> & {
|
|
|
824
717
|
*/
|
|
825
718
|
seller: string;
|
|
826
719
|
|
|
720
|
+
/**
|
|
721
|
+
* @generated from field: string base_instrument = 6;
|
|
722
|
+
*/
|
|
723
|
+
baseInstrument: string;
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* @generated from field: string quote_instrument = 7;
|
|
727
|
+
*/
|
|
728
|
+
quoteInstrument: string;
|
|
729
|
+
|
|
827
730
|
/**
|
|
828
731
|
* DECIMAL(38,10) as string
|
|
829
732
|
*
|
|
830
|
-
* @generated from field: string base_quantity =
|
|
733
|
+
* @generated from field: string base_quantity = 8;
|
|
831
734
|
*/
|
|
832
735
|
baseQuantity: string;
|
|
833
736
|
|
|
834
737
|
/**
|
|
835
738
|
* DECIMAL(38,10) as string
|
|
836
739
|
*
|
|
837
|
-
* @generated from field: string quote_quantity =
|
|
740
|
+
* @generated from field: string quote_quantity = 9;
|
|
838
741
|
*/
|
|
839
742
|
quoteQuantity: string;
|
|
840
743
|
|
|
841
744
|
/**
|
|
842
745
|
* DECIMAL(38,10) as string
|
|
843
746
|
*
|
|
844
|
-
* @generated from field: string settlement_price =
|
|
747
|
+
* @generated from field: string settlement_price = 10;
|
|
845
748
|
*/
|
|
846
749
|
settlementPrice: string;
|
|
847
750
|
|
|
848
751
|
/**
|
|
849
|
-
*
|
|
752
|
+
* Fees paid (copied from proposal for audit trail)
|
|
753
|
+
*
|
|
754
|
+
* DECIMAL(38,10) as string
|
|
755
|
+
*
|
|
756
|
+
* @generated from field: string dvp_processing_fee_buyer = 11;
|
|
850
757
|
*/
|
|
851
|
-
|
|
758
|
+
dvpProcessingFeeBuyer: string;
|
|
852
759
|
|
|
853
760
|
/**
|
|
854
|
-
*
|
|
761
|
+
* DECIMAL(38,10) as string
|
|
762
|
+
*
|
|
763
|
+
* @generated from field: string dvp_processing_fee_seller = 12;
|
|
855
764
|
*/
|
|
856
|
-
|
|
765
|
+
dvpProcessingFeeSeller: string;
|
|
857
766
|
|
|
858
767
|
/**
|
|
859
|
-
*
|
|
768
|
+
* DECIMAL(38,10) as string
|
|
769
|
+
*
|
|
770
|
+
* @generated from field: string allocation_processing_fee_buyer = 13;
|
|
860
771
|
*/
|
|
861
|
-
|
|
772
|
+
allocationProcessingFeeBuyer: string;
|
|
862
773
|
|
|
863
774
|
/**
|
|
864
|
-
*
|
|
775
|
+
* DECIMAL(38,10) as string
|
|
776
|
+
*
|
|
777
|
+
* @generated from field: string allocation_processing_fee_seller = 14;
|
|
865
778
|
*/
|
|
866
|
-
|
|
779
|
+
allocationProcessingFeeSeller: string;
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Final SettledDvp contract ID
|
|
783
|
+
*
|
|
784
|
+
* @generated from field: optional string settled_dvp_cid = 15;
|
|
785
|
+
*/
|
|
786
|
+
settledDvpCid?: string;
|
|
787
|
+
|
|
788
|
+
/**
|
|
789
|
+
* Canton update ID
|
|
790
|
+
*
|
|
791
|
+
* @generated from field: optional string settlement_update_id = 16;
|
|
792
|
+
*/
|
|
793
|
+
settlementUpdateId?: string;
|
|
867
794
|
|
|
868
795
|
/**
|
|
869
|
-
* @generated from field:
|
|
796
|
+
* @generated from field: google.protobuf.Timestamp settled_at = 17;
|
|
870
797
|
*/
|
|
871
|
-
|
|
798
|
+
settledAt?: Timestamp;
|
|
872
799
|
};
|
|
873
800
|
|
|
874
801
|
/**
|
|
@@ -1889,7 +1816,7 @@ export const SubscribeSettlementsRequestSchema: GenMessage<SubscribeSettlementsR
|
|
|
1889
1816
|
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 33);
|
|
1890
1817
|
|
|
1891
1818
|
/**
|
|
1892
|
-
* Settlement update event
|
|
1819
|
+
* Settlement update event (for streaming - simplified to status changes)
|
|
1893
1820
|
*
|
|
1894
1821
|
* @generated from message silvana.orderbook.v1.SettlementUpdate
|
|
1895
1822
|
*/
|
|
@@ -1927,56 +1854,39 @@ export enum SettlementUpdate_EventType {
|
|
|
1927
1854
|
UNSPECIFIED = 0,
|
|
1928
1855
|
|
|
1929
1856
|
/**
|
|
1857
|
+
* New proposal created
|
|
1858
|
+
*
|
|
1930
1859
|
* @generated from enum value: EVENT_TYPE_PROPOSAL_CREATED = 1;
|
|
1931
1860
|
*/
|
|
1932
1861
|
PROPOSAL_CREATED = 1,
|
|
1933
1862
|
|
|
1934
1863
|
/**
|
|
1935
|
-
*
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
/**
|
|
1940
|
-
* @generated from enum value: EVENT_TYPE_PRECONFIRMED = 3;
|
|
1941
|
-
*/
|
|
1942
|
-
PRECONFIRMED = 3,
|
|
1943
|
-
|
|
1944
|
-
/**
|
|
1945
|
-
* @generated from enum value: EVENT_TYPE_DVP_CREATED = 4;
|
|
1946
|
-
*/
|
|
1947
|
-
DVP_CREATED = 4,
|
|
1948
|
-
|
|
1949
|
-
/**
|
|
1950
|
-
* @generated from enum value: EVENT_TYPE_DVP_ACCEPTED = 5;
|
|
1951
|
-
*/
|
|
1952
|
-
DVP_ACCEPTED = 5,
|
|
1953
|
-
|
|
1954
|
-
/**
|
|
1955
|
-
* @generated from enum value: EVENT_TYPE_ALLOCATED = 6;
|
|
1956
|
-
*/
|
|
1957
|
-
ALLOCATED = 6,
|
|
1958
|
-
|
|
1959
|
-
/**
|
|
1960
|
-
* @generated from enum value: EVENT_TYPE_SETTLED = 7;
|
|
1864
|
+
* Status changed (pending → settled/cancelled/failed)
|
|
1865
|
+
*
|
|
1866
|
+
* @generated from enum value: EVENT_TYPE_STATUS_CHANGED = 2;
|
|
1961
1867
|
*/
|
|
1962
|
-
|
|
1868
|
+
STATUS_CHANGED = 2,
|
|
1963
1869
|
|
|
1964
1870
|
/**
|
|
1965
|
-
*
|
|
1871
|
+
* Settlement completed
|
|
1872
|
+
*
|
|
1873
|
+
* @generated from enum value: EVENT_TYPE_SETTLED = 3;
|
|
1966
1874
|
*/
|
|
1967
|
-
|
|
1875
|
+
SETTLED = 3,
|
|
1968
1876
|
|
|
1969
1877
|
/**
|
|
1970
|
-
*
|
|
1878
|
+
* Settlement failed
|
|
1879
|
+
*
|
|
1880
|
+
* @generated from enum value: EVENT_TYPE_FAILED = 4;
|
|
1971
1881
|
*/
|
|
1972
|
-
|
|
1882
|
+
FAILED = 4,
|
|
1973
1883
|
|
|
1974
1884
|
/**
|
|
1975
|
-
*
|
|
1885
|
+
* Settlement cancelled
|
|
1976
1886
|
*
|
|
1977
|
-
* @generated from enum value:
|
|
1887
|
+
* @generated from enum value: EVENT_TYPE_CANCELLED = 5;
|
|
1978
1888
|
*/
|
|
1979
|
-
|
|
1889
|
+
CANCELLED = 5,
|
|
1980
1890
|
}
|
|
1981
1891
|
|
|
1982
1892
|
/**
|
|
@@ -2050,6 +1960,20 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
|
|
|
2050
1960
|
*/
|
|
2051
1961
|
metadata?: JsonObject;
|
|
2052
1962
|
|
|
1963
|
+
/**
|
|
1964
|
+
* Base64-encoded Ed25519 signature for order authentication
|
|
1965
|
+
*
|
|
1966
|
+
* @generated from field: optional string signature = 12;
|
|
1967
|
+
*/
|
|
1968
|
+
signature?: string;
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* Unique nonce per trader for replay protection
|
|
1972
|
+
*
|
|
1973
|
+
* @generated from field: int64 nonce = 13;
|
|
1974
|
+
*/
|
|
1975
|
+
nonce: bigint;
|
|
1976
|
+
|
|
2053
1977
|
/**
|
|
2054
1978
|
* Alternative auth for external accounts
|
|
2055
1979
|
*
|
|
@@ -3208,6 +3132,142 @@ export type Round = Message<"silvana.orderbook.v1.Round"> & {
|
|
|
3208
3132
|
export const RoundSchema: GenMessage<Round> = /*@__PURE__*/
|
|
3209
3133
|
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 59);
|
|
3210
3134
|
|
|
3135
|
+
/**
|
|
3136
|
+
* Latest coefficient values (may come from different rounds)
|
|
3137
|
+
*
|
|
3138
|
+
* @generated from message silvana.orderbook.v1.LatestCoefficients
|
|
3139
|
+
*/
|
|
3140
|
+
export type LatestCoefficients = Message<"silvana.orderbook.v1.LatestCoefficients"> & {
|
|
3141
|
+
/**
|
|
3142
|
+
* Issuance coefficient for featured apps (from most recent round with value)
|
|
3143
|
+
*
|
|
3144
|
+
* @generated from field: optional string issuance_per_featured_app_reward_coupon = 1;
|
|
3145
|
+
*/
|
|
3146
|
+
issuancePerFeaturedAppRewardCoupon?: string;
|
|
3147
|
+
|
|
3148
|
+
/**
|
|
3149
|
+
* @generated from field: optional uint64 issuance_per_featured_app_reward_coupon_round = 2;
|
|
3150
|
+
*/
|
|
3151
|
+
issuancePerFeaturedAppRewardCouponRound?: bigint;
|
|
3152
|
+
|
|
3153
|
+
/**
|
|
3154
|
+
* Issuance coefficient for unfeatured apps (from most recent round with value)
|
|
3155
|
+
*
|
|
3156
|
+
* @generated from field: optional string issuance_per_unfeatured_app_reward_coupon = 3;
|
|
3157
|
+
*/
|
|
3158
|
+
issuancePerUnfeaturedAppRewardCoupon?: string;
|
|
3159
|
+
|
|
3160
|
+
/**
|
|
3161
|
+
* @generated from field: optional uint64 issuance_per_unfeatured_app_reward_coupon_round = 4;
|
|
3162
|
+
*/
|
|
3163
|
+
issuancePerUnfeaturedAppRewardCouponRound?: bigint;
|
|
3164
|
+
|
|
3165
|
+
/**
|
|
3166
|
+
* CC/USD exchange rate (from most recent round with value)
|
|
3167
|
+
*
|
|
3168
|
+
* @generated from field: optional string cc_usd_rate = 5;
|
|
3169
|
+
*/
|
|
3170
|
+
ccUsdRate?: string;
|
|
3171
|
+
|
|
3172
|
+
/**
|
|
3173
|
+
* @generated from field: optional uint64 cc_usd_rate_round = 6;
|
|
3174
|
+
*/
|
|
3175
|
+
ccUsdRateRound?: bigint;
|
|
3176
|
+
|
|
3177
|
+
/**
|
|
3178
|
+
* Traffic cost in USD per MB (from most recent round with value)
|
|
3179
|
+
*
|
|
3180
|
+
* @generated from field: optional string traffic_cost_usd_per_mb = 7;
|
|
3181
|
+
*/
|
|
3182
|
+
trafficCostUsdPerMb?: string;
|
|
3183
|
+
|
|
3184
|
+
/**
|
|
3185
|
+
* @generated from field: optional uint64 traffic_cost_usd_per_mb_round = 8;
|
|
3186
|
+
*/
|
|
3187
|
+
trafficCostUsdPerMbRound?: bigint;
|
|
3188
|
+
};
|
|
3189
|
+
|
|
3190
|
+
/**
|
|
3191
|
+
* Describes the message silvana.orderbook.v1.LatestCoefficients.
|
|
3192
|
+
* Use `create(LatestCoefficientsSchema)` to create a new message.
|
|
3193
|
+
*/
|
|
3194
|
+
export const LatestCoefficientsSchema: GenMessage<LatestCoefficients> = /*@__PURE__*/
|
|
3195
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 60);
|
|
3196
|
+
|
|
3197
|
+
/**
|
|
3198
|
+
* Get rounds data with latest coefficients
|
|
3199
|
+
*
|
|
3200
|
+
* @generated from message silvana.orderbook.v1.GetRoundsDataRequest
|
|
3201
|
+
*/
|
|
3202
|
+
export type GetRoundsDataRequest = Message<"silvana.orderbook.v1.GetRoundsDataRequest"> & {
|
|
3203
|
+
/**
|
|
3204
|
+
* @generated from field: silvana.orderbook.v1.JWTAuth auth = 1;
|
|
3205
|
+
*/
|
|
3206
|
+
auth?: JWTAuth;
|
|
3207
|
+
|
|
3208
|
+
/**
|
|
3209
|
+
* Default: 10, max: 100
|
|
3210
|
+
*
|
|
3211
|
+
* @generated from field: optional uint32 limit = 2;
|
|
3212
|
+
*/
|
|
3213
|
+
limit?: number;
|
|
3214
|
+
|
|
3215
|
+
/**
|
|
3216
|
+
* @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
|
|
3217
|
+
*/
|
|
3218
|
+
externalAuth?: ExternalAuth;
|
|
3219
|
+
};
|
|
3220
|
+
|
|
3221
|
+
/**
|
|
3222
|
+
* Describes the message silvana.orderbook.v1.GetRoundsDataRequest.
|
|
3223
|
+
* Use `create(GetRoundsDataRequestSchema)` to create a new message.
|
|
3224
|
+
*/
|
|
3225
|
+
export const GetRoundsDataRequestSchema: GenMessage<GetRoundsDataRequest> = /*@__PURE__*/
|
|
3226
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 61);
|
|
3227
|
+
|
|
3228
|
+
/**
|
|
3229
|
+
* @generated from message silvana.orderbook.v1.GetRoundsDataResponse
|
|
3230
|
+
*/
|
|
3231
|
+
export type GetRoundsDataResponse = Message<"silvana.orderbook.v1.GetRoundsDataResponse"> & {
|
|
3232
|
+
/**
|
|
3233
|
+
* @generated from field: bool success = 1;
|
|
3234
|
+
*/
|
|
3235
|
+
success: boolean;
|
|
3236
|
+
|
|
3237
|
+
/**
|
|
3238
|
+
* @generated from field: string message = 2;
|
|
3239
|
+
*/
|
|
3240
|
+
message: string;
|
|
3241
|
+
|
|
3242
|
+
/**
|
|
3243
|
+
* Last N rounds ordered by round_number DESC
|
|
3244
|
+
*
|
|
3245
|
+
* @generated from field: repeated silvana.orderbook.v1.Round rounds = 3;
|
|
3246
|
+
*/
|
|
3247
|
+
rounds: Round[];
|
|
3248
|
+
|
|
3249
|
+
/**
|
|
3250
|
+
* Latest non-NULL values for each coefficient
|
|
3251
|
+
*
|
|
3252
|
+
* @generated from field: silvana.orderbook.v1.LatestCoefficients latest = 4;
|
|
3253
|
+
*/
|
|
3254
|
+
latest?: LatestCoefficients;
|
|
3255
|
+
|
|
3256
|
+
/**
|
|
3257
|
+
* Total rounds in database
|
|
3258
|
+
*
|
|
3259
|
+
* @generated from field: uint32 total_rounds = 5;
|
|
3260
|
+
*/
|
|
3261
|
+
totalRounds: number;
|
|
3262
|
+
};
|
|
3263
|
+
|
|
3264
|
+
/**
|
|
3265
|
+
* Describes the message silvana.orderbook.v1.GetRoundsDataResponse.
|
|
3266
|
+
* Use `create(GetRoundsDataResponseSchema)` to create a new message.
|
|
3267
|
+
*/
|
|
3268
|
+
export const GetRoundsDataResponseSchema: GenMessage<GetRoundsDataResponse> = /*@__PURE__*/
|
|
3269
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 62);
|
|
3270
|
+
|
|
3211
3271
|
/**
|
|
3212
3272
|
* Invite code for user onboarding
|
|
3213
3273
|
*
|
|
@@ -3272,7 +3332,7 @@ export type Invite = Message<"silvana.orderbook.v1.Invite"> & {
|
|
|
3272
3332
|
* Use `create(InviteSchema)` to create a new message.
|
|
3273
3333
|
*/
|
|
3274
3334
|
export const InviteSchema: GenMessage<Invite> = /*@__PURE__*/
|
|
3275
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3335
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 63);
|
|
3276
3336
|
|
|
3277
3337
|
/**
|
|
3278
3338
|
* Get invite by code
|
|
@@ -3291,7 +3351,7 @@ export type GetInviteRequest = Message<"silvana.orderbook.v1.GetInviteRequest">
|
|
|
3291
3351
|
* Use `create(GetInviteRequestSchema)` to create a new message.
|
|
3292
3352
|
*/
|
|
3293
3353
|
export const GetInviteRequestSchema: GenMessage<GetInviteRequest> = /*@__PURE__*/
|
|
3294
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3354
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 64);
|
|
3295
3355
|
|
|
3296
3356
|
/**
|
|
3297
3357
|
* @generated from message silvana.orderbook.v1.GetInviteResponse
|
|
@@ -3313,7 +3373,7 @@ export type GetInviteResponse = Message<"silvana.orderbook.v1.GetInviteResponse"
|
|
|
3313
3373
|
* Use `create(GetInviteResponseSchema)` to create a new message.
|
|
3314
3374
|
*/
|
|
3315
3375
|
export const GetInviteResponseSchema: GenMessage<GetInviteResponse> = /*@__PURE__*/
|
|
3316
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3376
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 65);
|
|
3317
3377
|
|
|
3318
3378
|
/**
|
|
3319
3379
|
* Use invite code (increments count, marks used if at max)
|
|
@@ -3339,7 +3399,7 @@ export type UseInviteRequest = Message<"silvana.orderbook.v1.UseInviteRequest">
|
|
|
3339
3399
|
* Use `create(UseInviteRequestSchema)` to create a new message.
|
|
3340
3400
|
*/
|
|
3341
3401
|
export const UseInviteRequestSchema: GenMessage<UseInviteRequest> = /*@__PURE__*/
|
|
3342
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3402
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 66);
|
|
3343
3403
|
|
|
3344
3404
|
/**
|
|
3345
3405
|
* @generated from message silvana.orderbook.v1.UseInviteResponse
|
|
@@ -3368,7 +3428,7 @@ export type UseInviteResponse = Message<"silvana.orderbook.v1.UseInviteResponse"
|
|
|
3368
3428
|
* Use `create(UseInviteResponseSchema)` to create a new message.
|
|
3369
3429
|
*/
|
|
3370
3430
|
export const UseInviteResponseSchema: GenMessage<UseInviteResponse> = /*@__PURE__*/
|
|
3371
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3431
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 67);
|
|
3372
3432
|
|
|
3373
3433
|
/**
|
|
3374
3434
|
* Create a new instrument
|
|
@@ -3447,7 +3507,7 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
|
|
|
3447
3507
|
* Use `create(CreateInstrumentRequestSchema)` to create a new message.
|
|
3448
3508
|
*/
|
|
3449
3509
|
export const CreateInstrumentRequestSchema: GenMessage<CreateInstrumentRequest> = /*@__PURE__*/
|
|
3450
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3510
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 68);
|
|
3451
3511
|
|
|
3452
3512
|
/**
|
|
3453
3513
|
* @generated from message silvana.orderbook.v1.CreateInstrumentResponse
|
|
@@ -3474,7 +3534,7 @@ export type CreateInstrumentResponse = Message<"silvana.orderbook.v1.CreateInstr
|
|
|
3474
3534
|
* Use `create(CreateInstrumentResponseSchema)` to create a new message.
|
|
3475
3535
|
*/
|
|
3476
3536
|
export const CreateInstrumentResponseSchema: GenMessage<CreateInstrumentResponse> = /*@__PURE__*/
|
|
3477
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3537
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 69);
|
|
3478
3538
|
|
|
3479
3539
|
/**
|
|
3480
3540
|
* Create a new market
|
|
@@ -3571,7 +3631,7 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
|
|
|
3571
3631
|
* Use `create(CreateMarketRequestSchema)` to create a new message.
|
|
3572
3632
|
*/
|
|
3573
3633
|
export const CreateMarketRequestSchema: GenMessage<CreateMarketRequest> = /*@__PURE__*/
|
|
3574
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3634
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 70);
|
|
3575
3635
|
|
|
3576
3636
|
/**
|
|
3577
3637
|
* @generated from message silvana.orderbook.v1.CreateMarketResponse
|
|
@@ -3598,7 +3658,7 @@ export type CreateMarketResponse = Message<"silvana.orderbook.v1.CreateMarketRes
|
|
|
3598
3658
|
* Use `create(CreateMarketResponseSchema)` to create a new message.
|
|
3599
3659
|
*/
|
|
3600
3660
|
export const CreateMarketResponseSchema: GenMessage<CreateMarketResponse> = /*@__PURE__*/
|
|
3601
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3661
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 71);
|
|
3602
3662
|
|
|
3603
3663
|
/**
|
|
3604
3664
|
* Update price feeds for an existing market
|
|
@@ -3636,7 +3696,7 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
|
|
|
3636
3696
|
* Use `create(UpdateMarketPriceFeedsRequestSchema)` to create a new message.
|
|
3637
3697
|
*/
|
|
3638
3698
|
export const UpdateMarketPriceFeedsRequestSchema: GenMessage<UpdateMarketPriceFeedsRequest> = /*@__PURE__*/
|
|
3639
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3699
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 72);
|
|
3640
3700
|
|
|
3641
3701
|
/**
|
|
3642
3702
|
* @generated from message silvana.orderbook.v1.UpdateMarketPriceFeedsResponse
|
|
@@ -3665,7 +3725,7 @@ export type UpdateMarketPriceFeedsResponse = Message<"silvana.orderbook.v1.Updat
|
|
|
3665
3725
|
* Use `create(UpdateMarketPriceFeedsResponseSchema)` to create a new message.
|
|
3666
3726
|
*/
|
|
3667
3727
|
export const UpdateMarketPriceFeedsResponseSchema: GenMessage<UpdateMarketPriceFeedsResponse> = /*@__PURE__*/
|
|
3668
|
-
messageDesc(file_proto_silvana_orderbook_v1_orderbook,
|
|
3728
|
+
messageDesc(file_proto_silvana_orderbook_v1_orderbook, 73);
|
|
3669
3729
|
|
|
3670
3730
|
/**
|
|
3671
3731
|
* Order type enumeration
|
|
@@ -3789,7 +3849,7 @@ export const TimeInForceSchema: GenEnum<TimeInForce> = /*@__PURE__*/
|
|
|
3789
3849
|
enumDesc(file_proto_silvana_orderbook_v1_orderbook, 2);
|
|
3790
3850
|
|
|
3791
3851
|
/**
|
|
3792
|
-
* Settlement status enumeration
|
|
3852
|
+
* Settlement status enumeration (simplified - 4 states only)
|
|
3793
3853
|
*
|
|
3794
3854
|
* @generated from enum silvana.orderbook.v1.SettlementStatus
|
|
3795
3855
|
*/
|
|
@@ -3800,44 +3860,24 @@ export enum SettlementStatus {
|
|
|
3800
3860
|
UNSPECIFIED = 0,
|
|
3801
3861
|
|
|
3802
3862
|
/**
|
|
3803
|
-
* @generated from enum value:
|
|
3863
|
+
* @generated from enum value: SETTLEMENT_STATUS_PENDING = 1;
|
|
3804
3864
|
*/
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
/**
|
|
3808
|
-
* @generated from enum value: SETTLEMENT_STATUS_PRECONFIRMED = 2;
|
|
3809
|
-
*/
|
|
3810
|
-
PRECONFIRMED = 2,
|
|
3811
|
-
|
|
3812
|
-
/**
|
|
3813
|
-
* @generated from enum value: SETTLEMENT_STATUS_DVP_REQUEST_CREATED = 3;
|
|
3814
|
-
*/
|
|
3815
|
-
DVP_REQUEST_CREATED = 3,
|
|
3816
|
-
|
|
3817
|
-
/**
|
|
3818
|
-
* @generated from enum value: SETTLEMENT_STATUS_DVP_REQUEST_ACCEPTED = 4;
|
|
3819
|
-
*/
|
|
3820
|
-
DVP_REQUEST_ACCEPTED = 4,
|
|
3865
|
+
PENDING = 1,
|
|
3821
3866
|
|
|
3822
3867
|
/**
|
|
3823
|
-
* @generated from enum value:
|
|
3868
|
+
* @generated from enum value: SETTLEMENT_STATUS_SETTLED = 2;
|
|
3824
3869
|
*/
|
|
3825
|
-
|
|
3870
|
+
SETTLED = 2,
|
|
3826
3871
|
|
|
3827
3872
|
/**
|
|
3828
|
-
* @generated from enum value:
|
|
3873
|
+
* @generated from enum value: SETTLEMENT_STATUS_CANCELLED = 3;
|
|
3829
3874
|
*/
|
|
3830
|
-
|
|
3875
|
+
CANCELLED = 3,
|
|
3831
3876
|
|
|
3832
3877
|
/**
|
|
3833
|
-
* @generated from enum value:
|
|
3878
|
+
* @generated from enum value: SETTLEMENT_STATUS_FAILED = 4;
|
|
3834
3879
|
*/
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
/**
|
|
3838
|
-
* @generated from enum value: SETTLEMENT_STATUS_FAILED = 8;
|
|
3839
|
-
*/
|
|
3840
|
-
FAILED = 8,
|
|
3880
|
+
FAILED = 4,
|
|
3841
3881
|
}
|
|
3842
3882
|
|
|
3843
3883
|
/**
|
|
@@ -4069,6 +4109,16 @@ export const OrderbookService: GenService<{
|
|
|
4069
4109
|
input: typeof UseInviteRequestSchema;
|
|
4070
4110
|
output: typeof UseInviteResponseSchema;
|
|
4071
4111
|
},
|
|
4112
|
+
/**
|
|
4113
|
+
* Rounds operations
|
|
4114
|
+
*
|
|
4115
|
+
* @generated from rpc silvana.orderbook.v1.OrderbookService.GetRoundsData
|
|
4116
|
+
*/
|
|
4117
|
+
getRoundsData: {
|
|
4118
|
+
methodKind: "unary";
|
|
4119
|
+
input: typeof GetRoundsDataRequestSchema;
|
|
4120
|
+
output: typeof GetRoundsDataResponseSchema;
|
|
4121
|
+
},
|
|
4072
4122
|
/**
|
|
4073
4123
|
* Admin operations (require operator authentication)
|
|
4074
4124
|
*
|