@n1xyz/nord-ts 0.7.2 → 0.7.4

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.
@@ -25369,6 +25369,7 @@ __export(exports_nord_pb, {
25369
25369
  Receipt_TriggerAddedSchema: () => Receipt_TriggerAddedSchema,
25370
25370
  Receipt_TransferredSchema: () => Receipt_TransferredSchema,
25371
25371
  Receipt_TradeSchema: () => Receipt_TradeSchema,
25372
+ Receipt_TakeAllTakerResultSchema: () => Receipt_TakeAllTakerResultSchema,
25372
25373
  Receipt_TakeAllPositionsResultSchema: () => Receipt_TakeAllPositionsResultSchema,
25373
25374
  Receipt_TakeAllPositionSchema: () => Receipt_TakeAllPositionSchema,
25374
25375
  Receipt_TakeAllOrderUpdatesSchema: () => Receipt_TakeAllOrderUpdatesSchema,
@@ -25400,23 +25401,24 @@ __export(exports_nord_pb, {
25400
25401
  Receipt_InsertTokenResultSchema: () => Receipt_InsertTokenResultSchema,
25401
25402
  Receipt_InsertMarketResultSchema: () => Receipt_InsertMarketResultSchema,
25402
25403
  Receipt_FeeVaultTransferredSchema: () => Receipt_FeeVaultTransferredSchema,
25403
- Receipt_FeeTierUpdatedSchema: () => Receipt_FeeTierUpdatedSchema,
25404
- Receipt_FeeTierAddedSchema: () => Receipt_FeeTierAddedSchema,
25404
+ Receipt_FeeTierTypeUpdatedSchema: () => Receipt_FeeTierTypeUpdatedSchema,
25405
+ Receipt_FeeTierTypeAddedSchema: () => Receipt_FeeTierTypeAddedSchema,
25405
25406
  Receipt_DepositResultSchema: () => Receipt_DepositResultSchema,
25406
25407
  Receipt_CreateSessionResultSchema: () => Receipt_CreateSessionResultSchema,
25407
25408
  Receipt_ClearMarketResultSchema: () => Receipt_ClearMarketResultSchema,
25408
25409
  Receipt_ClearMarketClosedPositionSchema: () => Receipt_ClearMarketClosedPositionSchema,
25409
- Receipt_ClearMarketCancelledOrderSchema: () => Receipt_ClearMarketCancelledOrderSchema,
25410
25410
  Receipt_CancelledTriggerSchema: () => Receipt_CancelledTriggerSchema,
25411
+ Receipt_CancelledOrderSchema: () => Receipt_CancelledOrderSchema,
25411
25412
  Receipt_CancelOrderResultSchema: () => Receipt_CancelOrderResultSchema,
25412
25413
  Receipt_BackstopAccountSetSchema: () => Receipt_BackstopAccountSetSchema,
25413
25414
  Receipt_AtomicSubactionResultKindSchema: () => Receipt_AtomicSubactionResultKindSchema,
25414
25415
  Receipt_AtomicResultSchema: () => Receipt_AtomicResultSchema,
25415
25416
  Receipt_AclUpdatedSchema: () => Receipt_AclUpdatedSchema,
25416
- Receipt_AccountsTierUpdatedSchema: () => Receipt_AccountsTierUpdatedSchema,
25417
+ Receipt_AccountsFeeTierTypeModeUpdatedSchema: () => Receipt_AccountsFeeTierTypeModeUpdatedSchema,
25417
25418
  Receipt_AccountPlacementReceiptSchema: () => Receipt_AccountPlacementReceiptSchema,
25418
25419
  ReceiptSchema: () => ReceiptSchema,
25419
25420
  RFQQtyPlaceSchema: () => RFQQtyPlaceSchema,
25421
+ RFQExecutionSchema: () => RFQExecutionSchema,
25420
25422
  PythLazerTrustedSignerSchema: () => PythLazerTrustedSignerSchema,
25421
25423
  PlacementRoleSchema: () => PlacementRoleSchema,
25422
25424
  PlacementRole: () => PlacementRole,
@@ -25435,6 +25437,7 @@ __export(exports_nord_pb, {
25435
25437
  FillRFQResultSchema: () => FillRFQResultSchema,
25436
25438
  FillModeSchema: () => FillModeSchema,
25437
25439
  FillMode: () => FillMode,
25440
+ FeeTierTypeConfigSchema: () => FeeTierTypeConfigSchema,
25438
25441
  FeeTierConfigSchema: () => FeeTierConfigSchema,
25439
25442
  ErrorSchema: () => ErrorSchema,
25440
25443
  Error: () => Error2,
@@ -25444,14 +25447,11 @@ __export(exports_nord_pb, {
25444
25447
  CreateRfqMarket_MarginsSchema: () => CreateRfqMarket_MarginsSchema,
25445
25448
  CreateRfqMarket_DecimalsSchema: () => CreateRfqMarket_DecimalsSchema,
25446
25449
  CreateRfqMarketSchema: () => CreateRfqMarketSchema,
25447
- AtomicV2Schema: () => AtomicV2Schema,
25448
25450
  AtomicV1Schema: () => AtomicV1Schema,
25449
- AtomicSubactionV2Schema: () => AtomicSubactionV2Schema,
25450
25451
  AtomicSubactionSchema: () => AtomicSubactionSchema,
25451
25452
  AtomicSubactionKindV1Schema: () => AtomicSubactionKindV1Schema,
25452
25453
  AtomicSchema: () => AtomicSchema,
25453
25454
  AtomicRemoveTriggerSchema: () => AtomicRemoveTriggerSchema,
25454
- AtomicPlacementRequestSchema: () => AtomicPlacementRequestSchema,
25455
25455
  AtomicEditTriggerSchema: () => AtomicEditTriggerSchema,
25456
25456
  AtomicCancelOrderByIdSchema: () => AtomicCancelOrderByIdSchema,
25457
25457
  AtomicCancelOrderByClientIdSchema: () => AtomicCancelOrderByClientIdSchema,
@@ -25460,9 +25460,9 @@ __export(exports_nord_pb, {
25460
25460
  Action_WithdrawSchema: () => Action_WithdrawSchema,
25461
25461
  Action_UserSignatureFramingSchema: () => Action_UserSignatureFramingSchema,
25462
25462
  Action_UserSignatureFraming: () => Action_UserSignatureFraming,
25463
- Action_UpdateFeeTierSchema: () => Action_UpdateFeeTierSchema,
25463
+ Action_UpdateFeeTierTypeSchema: () => Action_UpdateFeeTierTypeSchema,
25464
25464
  Action_UpdateAclSchema: () => Action_UpdateAclSchema,
25465
- Action_UpdateAccountsTierSchema: () => Action_UpdateAccountsTierSchema,
25465
+ Action_UpdateAccountsFeeTierTypeModeSchema: () => Action_UpdateAccountsFeeTierTypeModeSchema,
25466
25466
  Action_UnpauseSchema: () => Action_UnpauseSchema,
25467
25467
  Action_UnfreezeMarketSchema: () => Action_UnfreezeMarketSchema,
25468
25468
  Action_TransferSchema: () => Action_TransferSchema,
@@ -25500,7 +25500,7 @@ __export(exports_nord_pb, {
25500
25500
  Action_CancelOrderByIdSchema: () => Action_CancelOrderByIdSchema,
25501
25501
  Action_CancelOrderByClientIdSchema: () => Action_CancelOrderByClientIdSchema,
25502
25502
  Action_AddTriggerSchema: () => Action_AddTriggerSchema,
25503
- Action_AddFeeTierSchema: () => Action_AddFeeTierSchema,
25503
+ Action_AddFeeTierTypeSchema: () => Action_AddFeeTierTypeSchema,
25504
25504
  ActionSchema: () => ActionSchema
25505
25505
  });
25506
25506
 
@@ -28741,7 +28741,7 @@ function fileDesc(b64, imports) {
28741
28741
  }
28742
28742
 
28743
28743
  // src/gen/nord_pb.ts
28744
- var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQiiAEKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKANCEQoPX3RpbWVvdXRfbWlsbGlzItQBCgxSZnFQbGFjZU9ubHkSEQoJbWFya2V0X2lkGAcgASgNEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESHAoPY2xpZW50X29yZGVyX2lkGAIgASgESAGIAQESDQoFcHJpY2UYAyABKAQSGAoEc2lkZRgEIAEoDjIKLm5vcmQuU2lkZRIMCgRiYXNlGAUgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBiABKANCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWQiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIqMBCg1GaWxsUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhgKEG1ha2VyX2FjY291bnRfaWQYAiABKA0SGAoQdGFrZXJfYWNjb3VudF9pZBgDIAEoDRIYCgtmaWxsZWRfc2l6ZRgEIAEoBEgAiAEBEhUKCHRyYWRlX2lkGAUgASgESAGIAQFCDgoMX2ZpbGxlZF9zaXplQgsKCV90cmFkZV9pZCIjCgxSZnFNYWtlcnNTZXQSEwoLYWNjb3VudF9pZHMYASADKA0iJgoLUkZRUXR5UGxhY2USFwoDcXR5GAEgASgLMgoubm9yZC5VMTI4Ij0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX3BwbRgBIAEoDRIVCg10YWtlcl9mZWVfcHBtGAIgASgNIvcBCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRIlCgttYXJrZXRfbW9kZRgJIAEoDjIQLm5vcmQuTWFya2V0TW9kZRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIrYBCgtWYXVsdEhlYWx0aBIqChFyYXdfYWNjb3VudF92YWx1ZRgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEisKEnNhZmVfYWNjb3VudF92YWx1ZRgCIAEoCzIKLm5vcmQuVTEyOEgBiAEBEiEKBnN0YXR1cxgDIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXNCFAoSX3Jhd19hY2NvdW50X3ZhbHVlQhUKE19zYWZlX2FjY291bnRfdmFsdWUisAEKC1ZhdWx0Q29uZmlnEh8KC2RlcG9zaXRfY2FwGAEgASgLMgoubm9yZC5VMTI4EiIKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNEh8KF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNEhsKE2RyYXdkb3duX2ZyZWV6ZV9icHMYBCABKA0SHgoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDSLMAgoQVmF1bHRDb25maWdQYXRjaBIkCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOEgAiAEBEicKGm9wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzGAIgASgNSAGIAQESJAoXZHJhd2Rvd25fcHJvdGVjdGlvbl9icHMYAyABKA1IAogBARIgChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNSAOIAQESIwoWZXBvY2hfbWluX2R1cmF0aW9uX3NlYxgFIAEoDUgEiAEBQg4KDF9kZXBvc2l0X2NhcEIdChtfb3Blbl9wb3NpdGlvbl9kaXNjb3VudF9icHNCGgoYX2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzQhYKFF9kcmF3ZG93bl9mcmVlemVfYnBzQhkKF19lcG9jaF9taW5fZHVyYXRpb25fc2VjIkgKC0NyZWF0ZVZhdWx0EhYKDm1hbmFnZXJfcHVia2V5GAEgASgMEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWciUwoRVXBkYXRlVmF1bHRDb25maWcSEAoIdmF1bHRfaWQYASABKA0SLAoMY29uZmlnX3BhdGNoGAIgASgLMhYubm9yZC5WYXVsdENvbmZpZ1BhdGNoIjsKD1NldFZhdWx0TWFuYWdlchIQCgh2YXVsdF9pZBgBIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgCIAEoDCI3Cg9WYXVsdFN5bmNFcG9jaHMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCgh2YXVsdF9pZBgCIAEoDSJOChFTdGFnZWRBZG1pbkFjdGlvbhIUCgxhZG1pbl9wdWJrZXkYASABKAwSIwoEa2luZBgCIAEoCzIVLm5vcmQuQWRtaW5BY3Rpb25LaW5kIrMECg9BZG1pbkFjdGlvbktpbmQSKQoMY3JlYXRlX3ZhdWx0GAEgASgLMhEubm9yZC5DcmVhdGVWYXVsdEgAEjYKE3VwZGF0ZV92YXVsdF9jb25maWcYAiABKAsyFy5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnSAASMgoRc2V0X3ZhdWx0X21hbmFnZXIYAyABKAsyFS5ub3JkLlNldFZhdWx0TWFuYWdlckgAEjIKEWNyZWF0ZV9yZnFfbWFya2V0GAQgASgLMhUubm9yZC5DcmVhdGVSZnFNYXJrZXRIABJWCiFzZXRfbWFya2V0X21vZGVfY2xvYl90cmFkaW5nX29ubHkYBSABKAsyKS5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5SAASNQoTc2V0X21hcmtldF9tb2RlX3JmcRgGIAEoCzIWLm5vcmQuU2V0TWFya2V0TW9kZVJGUUgAElAKHnNldF9tYXJrZXRfbW9kZV9jbG9iX3Bvc3Rfb25seRgHIAEoCzImLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHlIABI+ChRzZXRfbWFya2V0X21vZGVfY2xvYhgIIAEoCzIeLm5vcmQuQWN0aW9uLlNldE1hcmtldE1vZGVDTE9CSAASLAoOc2V0X3JmcV9tYWtlcnMYCSABKAsyEi5ub3JkLlNldFJmcU1ha2Vyc0gAQgYKBGtpbmQiRAoMVmF1bHREZXBvc2l0EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SDgoGYW1vdW50GAMgASgEIvUBCg1WYXVsdFdpdGhkcmF3EhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0SLgoHcmVxdWVzdBgDIAEoCzIbLm5vcmQuVmF1bHRXaXRoZHJhdy5SZXF1ZXN0SAASKgoFY2xhaW0YBCABKAsyGS5ub3JkLlZhdWx0V2l0aGRyYXcuQ2xhaW1IABpRCgdSZXF1ZXN0EhgKDnF1b3RlX25vdGlvbmFsGAEgASgESAASIgoMc2hhcmVfYW1vdW50GAIgASgLMgoubm9yZC5VMTI4SABCCAoGYW1vdW50GgcKBUNsYWltQgYKBGtpbmQingEKEkNyZWF0ZVZhdWx0UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIYChB2YXVsdF9hY2NvdW50X2lkGAIgASgNEhYKDm1hbmFnZXJfcHVia2V5GAMgASgMEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGY29uZmlnGAUgASgLMhEubm9yZC5WYXVsdENvbmZpZyJyChhVcGRhdGVWYXVsdENvbmZpZ1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SIQoGY29uZmlnGAIgASgLMhEubm9yZC5WYXVsdENvbmZpZxIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzIkIKFlNldFZhdWx0TWFuYWdlclJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwi4QEKFlZhdWx0U3luY0Vwb2Noc1JlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPY2xvc2VkX2Vwb2NoX2lkGAIgASgNEhgKEGNsYWltYWJsZV9hbW91bnQYAyABKAQSIQoGc3RhdHVzGAQgASgOMhEubm9yZC5WYXVsdFN0YXR1cxIhCgZlcG9jaHMYBSABKAsyES5ub3JkLlZhdWx0RXBvY2hzEiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EhUKDXF1b3RlX2JhbGFuY2UYByABKAMijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCJGChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhkKEXRhcmdldF9hY2NvdW50X2lkGAEgASgNEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIlcKFkF0b21pY1BsYWNlbWVudFJlcXVlc3QSEgoIdmF1bHRfaWQYASABKA1IABIgChZsaXF1aWRhdGlvbl9hY2NvdW50X2lkGAIgASgNSABCBwoFaW5uZXIiqwQKD0F0b21pY1N1YmFjdGlvbhIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgBiAEBEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAEi0KC2FkZF90cmlnZ2VyGAkgASgLMhYubm9yZC5BdG9taWNBZGRUcmlnZ2VySAASLwoMZWRpdF90cmlnZ2VyGAogASgLMhcubm9yZC5BdG9taWNFZGl0VHJpZ2dlckgAEjMKDnJlbW92ZV90cmlnZ2VyGAsgASgLMhkubm9yZC5BdG9taWNSZW1vdmVUcmlnZ2VySAASQAoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAwgASgLMhwubm9yZC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uSAASLAoOcmZxX3BsYWNlX29ubHkYDSABKAsyEi5ub3JkLlJmcVBsYWNlT25seUgAEiMKCXJmcV90cmFkZRgOIAEoCzIOLm5vcmQuUmZxVHJhZGVIAEIHCgVpbm5lckIXChVfZGVsZWdhdG9yX2FjY291bnRfaWQigQEKEUF0b21pY1N1YmFjdGlvblYyEjQKCXBsYWNlbWVudBgBIAEoCzIcLm5vcmQuQXRvbWljUGxhY2VtZW50UmVxdWVzdEgAiAEBEigKCXN1YmFjdGlvbhgCIAEoCzIVLm5vcmQuQXRvbWljU3ViYWN0aW9uQgwKCl9wbGFjZW1lbnQipAEKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYAyABKARIAYgBARImCgdhY3Rpb25zGAYgAygLMhUubm9yZC5BdG9taWNTdWJhY3Rpb25CDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCKoAQoIQXRvbWljVjISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESKAoHYWN0aW9ucxgGIAMoCzIXLm5vcmQuQXRvbWljU3ViYWN0aW9uVjJCDQoLX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZCI8ChZQeXRoTGF6ZXJUcnVzdGVkU2lnbmVyEg4KBnB1YmtleRgBIAEoDBISCgpleHBpcmVzX2F0GAIgASgDIpYBCg1UcmlnZ2VyUmVjb3JkEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEiAKBmxpbWl0cxgDIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIfCgRraW5kGAQgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAUgASgOMgoubm9yZC5TaWRlIpsBCgdUcmlnZ2VyEhUKDXRyaWdnZXJfcHJpY2UYASABKAQSHwoEa2luZBgCIAEoDjIRLm5vcmQuVHJpZ2dlcktpbmQSGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIgCgZsaW1pdHMYBCABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoGaW50ZW50GAUgASgOMgwubm9yZC5JbnRlbnQi/zMKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASJwoJYXRvbWljX3YxGCMgASgLMg4ubm9yZC5BdG9taWNWMUICGAFIABIyCg1mcmVlemVfbWFya2V0GCQgASgLMhkubm9yZC5BY3Rpb24uRnJlZXplTWFya2V0SAASNgoPdW5mcmVlemVfbWFya2V0GCUgASgLMhsubm9yZC5BY3Rpb24uVW5mcmVlemVNYXJrZXRIABIvCgxhZGRfZmVlX3RpZXIYJiABKAsyFy5ub3JkLkFjdGlvbi5BZGRGZWVUaWVySAASNQoPdXBkYXRlX2ZlZV90aWVyGCcgASgLMhoubm9yZC5BY3Rpb24uVXBkYXRlRmVlVGllckgAEj8KFHVwZGF0ZV9hY2NvdW50c190aWVyGCggASgLMh8ubm9yZC5BY3Rpb24uVXBkYXRlQWNjb3VudHNUaWVySAASLAoKdXBkYXRlX2FjbBgpIAEoCzIWLm5vcmQuQWN0aW9uLlVwZGF0ZUFjbEgAEjsKEmZlZV92YXVsdF90cmFuc2ZlchgqIAEoCzIdLm5vcmQuQWN0aW9uLkZlZVZhdWx0VHJhbnNmZXJIABI7ChJ0YWtlX2FsbF9wb3NpdGlvbnMYKyABKAsyHS5ub3JkLkFjdGlvbi5UYWtlQWxsUG9zaXRpb25zSAASRwoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgsIAEoCzIiLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlDbGllbnRJZEgAEjYKD2V4ZWN1dGVfdHJpZ2dlchgtIAEoCzIbLm5vcmQuQWN0aW9uLkV4ZWN1dGVUcmlnZ2VySAASPwoUc2V0X2JhY2tzdG9wX2FjY291bnQYLiABKAsyHy5ub3JkLkFjdGlvbi5TZXRCYWNrc3RvcEFjY291bnRIABIwCgxlZGl0X3RyaWdnZXIYLyABKAsyGC5ub3JkLkFjdGlvbi5FZGl0VHJpZ2dlckgAEh4KBmF0b21pYxgwIAEoCzIMLm5vcmQuQXRvbWljSAASKAoFYWRtaW4YMSABKAsyFy5ub3JkLlN0YWdlZEFkbWluQWN0aW9uSAASMAoMY2xlYXJfbWFya2V0GDIgASgLMhgubm9yZC5BY3Rpb24uQ2xlYXJNYXJrZXRIABIyChF2YXVsdF9zeW5jX2Vwb2Nocxg1IAEoCzIVLm5vcmQuVmF1bHRTeW5jRXBvY2hzSAASKwoNdmF1bHRfZGVwb3NpdBg2IAEoCzISLm5vcmQuVmF1bHREZXBvc2l0SAASLQoOdmF1bHRfd2l0aGRyYXcYNyABKAsyEy5ub3JkLlZhdWx0V2l0aGRyYXdIABIjCglhdG9taWNfdjIYOCABKAsyDi5ub3JkLkF0b21pY1YySAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABrjAQoNQ3JlYXRlU2Vzc2lvbhITCgt1c2VyX3B1YmtleRgBIAEoDBIWCg5zZXNzaW9uX3B1YmtleRgCIAEoDBIYChBleHBpcnlfdGltZXN0YW1wGAMgASgDEkEKEXNpZ25hdHVyZV9mcmFtaW5nGAQgASgOMiEubm9yZC5BY3Rpb24uVXNlclNpZ25hdHVyZUZyYW1pbmdIAIgBARIdChByZWZyZXNoX2RlYWRsaW5lGAUgASgDSAGIAQFCFAoSX3NpZ25hdHVyZV9mcmFtaW5nQhMKEV9yZWZyZXNoX2RlYWRsaW5lGosBCgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwSEgoKYWNsX3B1YmtleRgHIAEoDBoxChxTZXRNYXJrZXRNb2RlQ0xPQlRyYWRpbmdPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRouChlTZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5EhEKCW1hcmtldF9pZBgBIAEoDRomChFTZXRNYXJrZXRNb2RlQ0xPQhIRCgltYXJrZXRfaWQYASABKA0a7gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRISCgphY2xfcHVia2V5GAogASgMGqoECgpQbGFjZU9yZGVyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBEj0KFXNlbGZfdHJhZGVfcHJldmVudGlvbhgkIAEoDjIZLm5vcmQuU2VsZlRyYWRlUHJldmVudGlvbkgEiAEBEiEKCHJlZmVycmVyGCUgASgLMgoubm9yZC5VMTI4SAWIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhIKEF9jbGllbnRfb3JkZXJfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbkILCglfcmVmZXJyZXIaqQEKD0NhbmNlbE9yZGVyQnlJZBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCG9yZGVyX2lkGAIgASgEEiEKFGRlbGVnYXRvcl9hY2NvdW50X2lkGCAgASgNSACIAQESHgoRc2VuZGVyX2FjY291bnRfaWQYISABKA1IAYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCFAoSX3NlbmRlcl9hY2NvdW50X2lkGnoKFUNhbmNlbE9yZGVyQnlDbGllbnRJZBISCgpzZXNzaW9uX2lkGAEgASgEEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBBIeChFzZW5kZXJfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGmoKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEEhgKC2Rlc3RfcHVia2V5GAQgASgMSACIAQFCDgoMX2Rlc3RfcHVia2V5Gl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGlIKGFB5dGhMYXplclByaWNlRmVlZFVwZGF0ZRIPCgdwYXlsb2FkGAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDBISCgpwdWJsaWNfa2V5GAMgASgMGmcKGlB5dGhMYXplclNldFRydXN0ZWRTaWduZXJzEhIKCmFjbF9wdWJrZXkYASABKAwSNQoPdHJ1c3RlZF9zaWduZXJzGAIgAygLMhwubm9yZC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyGqsBChZQeXRoTGF6ZXJTZXRGZWVkU3ltYm9sEhIKCmFjbF9wdWJrZXkYASABKAwSQgoFZmVlZHMYAiADKAsyMy5ub3JkLkFjdGlvbi5QeXRoTGF6ZXJTZXRGZWVkU3ltYm9sLkZlZWRTeW1ib2xJbnB1dBo5Cg9GZWVkU3ltYm9sSW5wdXQSDwoHZmVlZF9pZBgBIAEoDRIVCg1vcmFjbGVfc3ltYm9sGAIgASgJGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBo0Cg5SZWZyZXNoU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxonChFTZWxmUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGhsKBVBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaHQoHVW5wYXVzZRISCgphY2xfcHVia2V5GAEgASgMGjwKElNldEJhY2tzdG9wQWNjb3VudBISCgphY2xfcHVia2V5GAEgASgMEhIKCmFjY291bnRfaWQYAiABKA0a+QEKCVJlY2lwaWVudBIxCgdzcGVjaWFsGAEgASgLMh4ubm9yZC5BY3Rpb24uUmVjaXBpZW50LlNwZWNpYWxIABItCgVvd25lZBgCIAEoCzIcLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Pd25lZEgAEjEKB3Vub3duZWQYAyABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUanwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIyCg10b19hY2NvdW50X2lkGAggASgLMhYubm9yZC5BY3Rpb24uUmVjaXBpZW50SACIAQFCEAoOX3RvX2FjY291bnRfaWQaWwoQRmVlVmF1bHRUcmFuc2ZlchISCgphY2xfcHVia2V5GAEgASgMEhEKCXJlY2lwaWVudBgCIAEoDRIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQavAEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIkCgd0cmlnZ2VyGAIgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgDIAEoDjIMLm5vcmQuSW50ZW50EhcKCmFjY291bnRfaWQYCiABKA1IAIgBARIhCghyZWZlcnJlchgLIAEoCzIKLm5vcmQuVTEyOEgBiAEBQg0KC19hY2NvdW50X2lkQgsKCV9yZWZlcnJlchqHAQoLRWRpdFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBISCgp0cmlnZ2VyX2lkGAIgASgEEigKC25ld190cmlnZ2VyGAMgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpyCg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEhIKCnRyaWdnZXJfaWQYAyABKAQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGkUKCkFkZEZlZVRpZXISEgoKYWNsX3B1YmtleRgBIAEoDBIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaVAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcSEgoKYWNsX3B1YmtleRgDIAEoDBpLChJVcGRhdGVBY2NvdW50c1RpZXISDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRISCgphY2xfcHVia2V5GAMgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kIstCCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpwCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0SEQoJbWFrZXJfZmVlGAcgASgEEhEKCXRha2VyX2ZlZRgIIAEoBBptChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDEh0KEHJlZnJlc2hfZGVhZGxpbmUYAyABKANIAIgBAUITChFfcmVmcmVzaF9kZWFkbGluZRpMChBDYW5jZWxsZWRUcmlnZ2VyEhIKCmFjY291bnRfaWQYASABKA0SJAoHdHJpZ2dlchgCIAEoCzITLm5vcmQuVHJpZ2dlclJlY29yZBraAQoLT3JkZXJVcGRhdGUSMAoGcmVhc29uGAEgASgOMiAubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlLlJlYXNvbhISCgphY2NvdW50X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEhYKDnJlbWFpbmluZ19zaXplGAQgASgEEhYKDmNhbmNlbGxlZF9zaXplGAUgASgEEg0KBXByaWNlGAYgASgEIjQKBlJlYXNvbhIPCgtSRURVQ0VfT05MWRAAEhkKFVNFTEZfVFJBREVfUFJFVkVOVElPThABGvcCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARI6ChJjYW5jZWxsZWRfdHJpZ2dlcnMYBSADKAsyHi5ub3JkLlJlY2VpcHQuQ2FuY2VsbGVkVHJpZ2dlchIwCg1vcmRlcl91cGRhdGVzGAYgAygLMhkubm9yZC5SZWNlaXB0Lk9yZGVyVXBkYXRlEjEKCXBsYWNlbWVudBgHIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZW1lbnRSZWNlaXB0QgkKB19wb3N0ZWRCEgoQX2NsaWVudF9vcmRlcl9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGnoKHFJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHQSNgoOdHJhZGVfb3JfcGxhY2UYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdBIiCgZhY3Rpb24YAiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZRqvAQoQUGxhY2VtZW50UmVjZWlwdBIhCgRyb2xlGAEgASgOMhMubm9yZC5QbGFjZW1lbnRSb2xlEjgKB2FjY291bnQYAiABKAsyJS5ub3JkLlJlY2VpcHQuQWNjb3VudFBsYWNlbWVudFJlY2VpcHRIABI0CgV2YXVsdBgDIAEoCzIjLm5vcmQuUmVjZWlwdC5WYXVsdFBsYWNlbWVudFJlY2VpcHRIAEIICgZ0YXJnZXQaGQoXQWNjb3VudFBsYWNlbWVudFJlY2VpcHQaTAoVVmF1bHRQbGFjZW1lbnRSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmhlYWx0aBgCIAEoCzIRLm5vcmQuVmF1bHRIZWFsdGga/gEKD1RyaWdnZXJFeGVjdXRlZBITCgtleGVjdXRvcl9pZBgBIAEoDRISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRIeCgd0cmlnZ2VyGAQgASgLMg0ubm9yZC5UcmlnZ2VyEhIKCnRyaWdnZXJfaWQYCCABKAQSMQoHc3VjY2VzcxgFIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASKQoHZmFpbHVyZRgGIAEoDjIWLm5vcmQuVHJpZ2dlckV4ZWNFcnJvckgAEhMKCWNhbmNlbGxlZBgHIAEoCEgAQggKBnN0YXR1cxoyCg5UYWtlQWxsQmFsYW5jZRIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQadwoPVGFrZUFsbFBvc2l0aW9uEhEKCW1hcmtldF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIkChBiYW5rcnVwdGN5X3F1b3RlGAQgASgLMgoubm9yZC5VMTI4GlMKE1Rha2VBbGxPcmRlclVwZGF0ZXMSEQoJbWFya2V0X2lkGAEgASgNEikKBm9yZGVycxgCIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRraAQoWVGFrZUFsbFBvc2l0aW9uc1Jlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAMgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgEIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgFIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGnMKGUNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXISEgoKYWNjb3VudF9pZBgBIAEoDRIQCghvcmRlcl9pZBgCIAEoBBIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBAUISChBfY2xpZW50X29yZGVyX2lkGq0BChlDbGVhck1hcmtldENsb3NlZFBvc2l0aW9uEhIKCmFjY291bnRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSGQoFcXVvdGUYBCABKAsyCi5ub3JkLlUxMjgSGQoRdHJhZGluZ19wbmxfZGVsdGEYBSABKAMSGQoRZnVuZGluZ19wbmxfZGVsdGEYBiABKAMaxQEKEUNsZWFyTWFya2V0UmVzdWx0EhEKCW1hcmtldF9pZBgBIAEoDRIXCg9jbGVhcmFuY2VfcHJpY2UYBSABKAQSQQoQY2FuY2VsbGVkX29yZGVycxgDIAMoCzInLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldENhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaKAoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0a/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgakAEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRJBChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMicubm9yZC5SZWNlaXB0LkNsZWFyTWFya2V0Q2FuY2VsbGVkT3JkZXIaPwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxIKCgJpZBgCIAEoDRpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQa7AMKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABIzCg10cmlnZ2VyX2FkZGVkGAMgASgLMhoubm9yZC5SZWNlaXB0LlRyaWdnZXJBZGRlZEgAEjcKD3RyaWdnZXJfcmVtb3ZlZBgEIAEoCzIcLm5vcmQuUmVjZWlwdC5UcmlnZ2VyUmVtb3ZlZEgAEjUKDnRyaWdnZXJfZWRpdGVkGAUgASgLMhsubm9yZC5SZWNlaXB0LlRyaWdnZXJFZGl0ZWRIABJOChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YBiABKAsyKi5ub3JkLlJlY2VpcHQuUmVkdWNlT3JkZXJMaXF1aWRhdGlvblJlc3VsdEgAEioKCnJmcV9yZXN1bHQYByABKAsyFC5ub3JkLlBsYWNlUkZRUmVzdWx0SAASLgoPcmZxX2ZpbGxfcmVzdWx0GAggASgLMhMubm9yZC5GaWxsUkZRUmVzdWx0SABCBwoFaW5uZXIaSAoMQXRvbWljUmVzdWx0EjgKB3Jlc3VsdHMYASADKAsyJy5ub3JkLlJlY2VpcHQuQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZEIGCgRraW5kKhgKBFNpZGUSBwoDQVNLEAASBwoDQklEEAEqHwoKTWFya2V0TW9kZRIICgRDTE9CEAASBwoDUkZREAEqYwoMTWFya2V0UmVnaW1lEhgKFE1BUktFVF9SRUdJTUVfTk9STUFMEAASGwoXTUFSS0VUX1JFR0lNRV9QT1NUX09OTFkQARIcChhNQVJLRVRfUkVHSU1FX1RSQURFX09OTFkQAiotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKiQKBkludGVudBIMCghERUNSRUFTRRAAEgwKCElOQ1JFQVNFEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqrgEKDVBsYWNlbWVudFJvbGUSIAocUExBQ0VNRU5UX1JPTEVfQUNDT1VOVF9PV05FUhAAEiAKHFBMQUNFTUVOVF9ST0xFX1ZBVUxUX01BTkFHRVIQARIeChpQTEFDRU1FTlRfUk9MRV9TVVBFUl9BRE1JThACEhoKFlBMQUNFTUVOVF9ST0xFX1RSSUdHRVIQAxIdChlQTEFDRU1FTlRfUk9MRV9MSVFVSURBVE9SEAQqMQoTU2VsZlRyYWRlUHJldmVudGlvbhIICgROT05FEAASEAoMRVhQSVJFX01BS0VSEAEqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKn0KEFRyaWdnZXJFeGVjRXJyb3ISDwoLTk9fUE9TSVRJT04QABITCg9QTEFOTklOR19GQUlMRUQQARIOCgpCQU5LUlVQVENZEAISFQoRUklTS19DSEVDS19GQUlMRUQQAxIcChhSRURVQ0VfT05MWV9DSEVDS19GQUlMRUQQBCofCg5TcGVjaWFsQWNjb3VudBINCglGRUVfVkFVTFQQACpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKugpCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIKCgVWQVVMVBCoAhIUCg9WQVVMVF9OT1RfRk9VTkQQqQISHQoYVkFVTFRfQUNUSU9OX05PVF9BTExPV0VEEKoCEhkKFFZBVUxUX1NUQVRVU19JTlZBTElEEKsCEiUKIFZBVUxUX1JFRFVDRV9PTkxZX09SREVSX1JFUVVJUkVEEKwCEiYKIVZBVUxUX0FDVElPTl9XT1VMRF9ERUdSQURFX1NUQVRVUxCtAhIZChRWQVVMVF9VU0VSX05PVF9GT1VORBCuAhIdChhWQVVMVF9VU0VSX0hBU19OT19TSEFSRVMQrwISHAoXVkFVTFRfUEVSTUlTU0lPTl9ERU5JRUQQtgISEgoNVkFVTFRfREVQT1NJVBCwAhIxCixWQVVMVF9ERVBPU0lUX0JPT1RTVFJBUF9SRVFVSVJFU19FTVBUWV9WQVVMVBCxAhIfChpWQVVMVF9ERVBPU0lUX0NBUF9FWENFRURFRBCyAhIpCiRWQVVMVF9ERVBPU0lUX1JFUVVJUkVTX0FDVElWRV9TVEFUVVMQswISLwoqVkFVTFRfREVQT1NJVF9DQVBfQkVMT1dfQ1VSUkVOVF9SQVdfRVFVSVRZELQCEhwKF1ZBVUxUX0RFUE9TSVRfVE9PX1NNQUxMELUCEhMKDlZBVUxUX1dJVEhEUkFXELgCEh4KGVZBVUxUX0lOU1VGRklDSUVOVF9TSEFSRVMQuQISLgopVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTk9OX0ZST1pFTl9TVEFUVVMQugISIgodVkFVTFRfTk9fQ0xBSU1BQkxFX1dJVEhEUkFXQUwQuwISJQogVkFVTFRfV0lUSERSQVdfUVVPVEVfVU5BVkFJTEFCTEUQvAISLQooVkFVTFRfRFVTVF9FWElUX1JFUVVJUkVTX0ZVTExfU0hBUkVfRVhJVBC9AhI1CjBWQVVMVF9MQVNUX1NIQVJFX1dJVEhEUkFXX1JFUVVJUkVTX0VNUFRZX0FDQ09VTlQQvgISKAojVkFVTFRfV0lUSERSQVdfUkVRVUlSRVNfTElWRV9TSEFSRVMQvwISEgoNVkFVTFRfQ09OVFJPTBDAAhIdChhWQVVMVF9FUE9DSF9OT1RfRUxJR0lCTEUQwQISMQosVkFVTFRfUFJFVklPVVNfRVBPQ0hfV0lUSERSQVdBTFNfTk9UX1BBWUFCTEUQwgISMgotVkFVTFRfRlJFRVpFX1RIUkVTSE9MRF9NVVNUX0VYQ0VFRF9QUk9URUNUSU9OEMMCEh0KGFZBVUxUX0NPTkZJR19QQVRDSF9FTVBUWRDEAhIoCiNWQVVMVF9OT19TVEFUVVNfVFJBTlNJVElPTl9SRVFVSVJFRBDFAhItCihWQVVMVF9GUk9aRU5fU1RBVFVTX1JFUVVJUkVTX1NVUEVSX0FETUlOEMYCEioKJVZBVUxUX05FV19DT05GSUdfV09VTERfREVHUkFERV9TVEFUVVMQxwISDgoJUkZRX0VSUk9SEMgCEhAKC1JGUV9USU1FT1VUEMkCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
28744
+ var file_nord = /* @__PURE__ */ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIh4KBFUxMjgSCgoCbG8YASABKAQSCgoCaGkYAiABKAQikAIKCFJmcVRyYWRlEhsKDnRpbWVvdXRfbWlsbGlzGAEgASgNSACIAQESEQoJbWFya2V0X2lkGAIgASgNEhAKCG9yZGVyX2lkGAMgASgEEg0KBXByaWNlGAQgASgEEhgKEHRpbWVzdGFtcF9taWxsaXMYBSABKAMSGwoOaXNfcmVkdWNlX29ubHkYBiABKAhIAYgBARIZCgxtaW5pbXVtX3NpemUYByABKARIAogBARIZCgxtYXhpbXVtX3NpemUYCCABKARIA4gBAUIRCg9fdGltZW91dF9taWxsaXNCEQoPX2lzX3JlZHVjZV9vbmx5Qg8KDV9taW5pbXVtX3NpemVCDwoNX21heGltdW1fc2l6ZSKwAgoMUmZxUGxhY2VPbmx5EhEKCW1hcmtldF9pZBgHIAEoDRIbCg50aW1lb3V0X21pbGxpcxgBIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBgCIAEoBEgBiAEBEg0KBXByaWNlGAMgASgEEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUSGAoQdGltZXN0YW1wX21pbGxpcxgGIAEoAxIMCgRzaXplGAggASgEEhkKDG1pbmltYWxfZmlsbBgJIAEoBEgCiAEBEhsKDmlzX3JlZHVjZV9vbmx5GAogASgISAOIAQFCEQoPX3RpbWVvdXRfbWlsbGlzQhIKEF9jbGllbnRfb3JkZXJfaWRCDwoNX21pbmltYWxfZmlsbEIRCg9faXNfcmVkdWNlX29ubHkiIwoMU2V0UmZxTWFrZXJzEhMKC2FjY291bnRfaWRzGAEgAygNIiUKEFNldE1hcmtldE1vZGVSRlESEQoJbWFya2V0X2lkGAEgASgNItMCCg9DcmVhdGVSZnFNYXJrZXQSMAoIZGVjaW1hbHMYASABKAsyHi5ub3JkLkNyZWF0ZVJmcU1hcmtldC5EZWNpbWFscxIuCgdtYXJnaW5zGAIgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuTWFyZ2lucxIuCgdzeW1ib2xzGAMgASgLMh0ubm9yZC5DcmVhdGVSZnFNYXJrZXQuU3ltYm9scxo5CghEZWNpbWFscxIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNGjwKB01hcmdpbnMSDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0aNQoHU3ltYm9scxITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJIpQBCg5SZnFUcmFkZUFjdGlvbhIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIcChRxdW90ZV90aW1lb3V0X21pbGxpcxgEIAEoDRITCgliYXNlX3NpemUYBSABKANIAEIKCghxdWFudGl0eUoECAYQByLbAgoPUmZxVHJhZGVSZWNlaXB0EhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIwCgdzdWNjZXNzGAMgASgLMh0ubm9yZC5SZnFUcmFkZVJlY2VpcHQuU3VjY2Vzc0gAEjYKB2ZhaWx1cmUYBCABKA4yIy5ub3JkLlJmcVRyYWRlUmVjZWlwdC5GYWlsdXJlUmVhc29uSAAaggEKB1N1Y2Nlc3MSEAoIcXVvdGVfaWQYASABKAQSGAoEc2lkZRgCIAEoDjIKLm5vcmQuU2lkZRIYChBmaWxsZWRfYmFzZV9zaXplGAMgASgEEiIKDnF1b3RlX25vdGlvbmFsGAQgASgLMgoubm9yZC5VMTI4Eg0KBXByaWNlGAUgASgEIioKDUZhaWx1cmVSZWFzb24SCwoHVElNRU9VVBAAEgwKCFJFSkVDVEVEEAFCCAoGcmVzdWx0IjoKDlBsYWNlUkZRUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhYKDnRpbWVvdXRfbWlsbGlzGAIgASgNIk4KDFJGUUV4ZWN1dGlvbhITCgtmaWxsZWRfc2l6ZRgBIAEoBBIQCgh0cmFkZV9pZBgCIAEoBBIXCg9leGVjdXRpb25fcHJpY2UYAyABKAQifAoNRmlsbFJGUVJlc3VsdBIQCghvcmRlcl9pZBgBIAEoBBIYChBtYWtlcl9hY2NvdW50X2lkGAIgASgNEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0SJQoJZXhlY3V0aW9uGAQgASgLMhIubm9yZC5SRlFFeGVjdXRpb24iIwoMUmZxTWFrZXJzU2V0EhMKC2FjY291bnRfaWRzGAEgAygNIiYKC1JGUVF0eVBsYWNlEhcKA3F0eRgBIAEoCzIKLm5vcmQuVTEyOCI9Cg1GZWVUaWVyQ29uZmlnEhUKDW1ha2VyX2ZlZV9wcG0YASABKA0SFQoNdGFrZXJfZmVlX3BwbRgCIAEoDSKBAQoRRmVlVGllclR5cGVDb25maWcSGgoSY2xvYl9tYWtlcl9mZWVfcHBtGAEgASgNEhoKEmNsb2JfdGFrZXJfZmVlX3BwbRgCIAEoDRIZChFyZnFfbWFrZXJfZmVlX3BwbRgDIAEoDRIZChFyZnFfdGFrZXJfZmVlX3BwbRgEIAEoDSL3AQoGTWFya2V0EhEKCW1hcmtldF9pZBgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIVCg1zaXplX2RlY2ltYWxzGAMgASgNEhUKDWJhc2VfdG9rZW5faWQYBCABKA0SJQoLbWFya2V0X3R5cGUYBSABKA4yEC5ub3JkLk1hcmtldFR5cGUSDwoHaW1mX2JwcxgGIAEoDRIPCgdjbWZfYnBzGAcgASgNEg8KB21tZl9icHMYCCABKA0SJQoLbWFya2V0X21vZGUYCSABKA4yEC5ub3JkLk1hcmtldE1vZGUSEwoLdmlld19zeW1ib2wYCiABKAkiWgoFVG9rZW4SEAoIdG9rZW5faWQYASABKA0SFgoOdG9rZW5fZGVjaW1hbHMYAiABKA0SEgoKd2VpZ2h0X2JwcxgEIAEoDRITCgt2aWV3X3N5bWJvbBgFIAEoCSK2AQoLVmF1bHRIZWFsdGgSKgoRcmF3X2FjY291bnRfdmFsdWUYASABKAsyCi5ub3JkLlUxMjhIAIgBARIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAYgBARIhCgZzdGF0dXMYAyABKA4yES5ub3JkLlZhdWx0U3RhdHVzQhQKEl9yYXdfYWNjb3VudF92YWx1ZUIVChNfc2FmZV9hY2NvdW50X3ZhbHVlIrABCgtWYXVsdENvbmZpZxIfCgtkZXBvc2l0X2NhcBgBIAEoCzIKLm5vcmQuVTEyOBIiChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDRIfChdkcmF3ZG93bl9wcm90ZWN0aW9uX2JwcxgDIAEoDRIbChNkcmF3ZG93bl9mcmVlemVfYnBzGAQgASgNEh4KFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA0izAIKEFZhdWx0Q29uZmlnUGF0Y2gSJAoLZGVwb3NpdF9jYXAYASABKAsyCi5ub3JkLlUxMjhIAIgBARInChpvcGVuX3Bvc2l0aW9uX2Rpc2NvdW50X2JwcxgCIAEoDUgBiAEBEiQKF2RyYXdkb3duX3Byb3RlY3Rpb25fYnBzGAMgASgNSAKIAQESIAoTZHJhd2Rvd25fZnJlZXplX2JwcxgEIAEoDUgDiAEBEiMKFmVwb2NoX21pbl9kdXJhdGlvbl9zZWMYBSABKA1IBIgBAUIOCgxfZGVwb3NpdF9jYXBCHQobX29wZW5fcG9zaXRpb25fZGlzY291bnRfYnBzQhoKGF9kcmF3ZG93bl9wcm90ZWN0aW9uX2Jwc0IWChRfZHJhd2Rvd25fZnJlZXplX2Jwc0IZChdfZXBvY2hfbWluX2R1cmF0aW9uX3NlYyJICgtDcmVhdGVWYXVsdBIWCg5tYW5hZ2VyX3B1YmtleRgBIAEoDBIhCgZjb25maWcYAiABKAsyES5ub3JkLlZhdWx0Q29uZmlnIlMKEVVwZGF0ZVZhdWx0Q29uZmlnEhAKCHZhdWx0X2lkGAEgASgNEiwKDGNvbmZpZ19wYXRjaBgCIAEoCzIWLm5vcmQuVmF1bHRDb25maWdQYXRjaCI7Cg9TZXRWYXVsdE1hbmFnZXISEAoIdmF1bHRfaWQYASABKA0SFgoObWFuYWdlcl9wdWJrZXkYAiABKAwiNwoPVmF1bHRTeW5jRXBvY2hzEhIKCnNlc3Npb25faWQYASABKAQSEAoIdmF1bHRfaWQYAiABKA0iTgoRU3RhZ2VkQWRtaW5BY3Rpb24SFAoMYWRtaW5fcHVia2V5GAEgASgMEiMKBGtpbmQYAiABKAsyFS5ub3JkLkFkbWluQWN0aW9uS2luZCKzBAoPQWRtaW5BY3Rpb25LaW5kEikKDGNyZWF0ZV92YXVsdBgBIAEoCzIRLm5vcmQuQ3JlYXRlVmF1bHRIABI2ChN1cGRhdGVfdmF1bHRfY29uZmlnGAIgASgLMhcubm9yZC5VcGRhdGVWYXVsdENvbmZpZ0gAEjIKEXNldF92YXVsdF9tYW5hZ2VyGAMgASgLMhUubm9yZC5TZXRWYXVsdE1hbmFnZXJIABIyChFjcmVhdGVfcmZxX21hcmtldBgEIAEoCzIVLm5vcmQuQ3JlYXRlUmZxTWFya2V0SAASVgohc2V0X21hcmtldF9tb2RlX2Nsb2JfdHJhZGluZ19vbmx5GAUgASgLMikubm9yZC5BY3Rpb24uU2V0TWFya2V0TW9kZUNMT0JUcmFkaW5nT25seUgAEjUKE3NldF9tYXJrZXRfbW9kZV9yZnEYBiABKAsyFi5ub3JkLlNldE1hcmtldE1vZGVSRlFIABJQCh5zZXRfbWFya2V0X21vZGVfY2xvYl9wb3N0X29ubHkYByABKAsyJi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQlBvc3RPbmx5SAASPgoUc2V0X21hcmtldF9tb2RlX2Nsb2IYCCABKAsyHi5ub3JkLkFjdGlvbi5TZXRNYXJrZXRNb2RlQ0xPQkgAEiwKDnNldF9yZnFfbWFrZXJzGAkgASgLMhIubm9yZC5TZXRSZnFNYWtlcnNIAEIGCgRraW5kIkQKDFZhdWx0RGVwb3NpdBISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBCL1AQoNVmF1bHRXaXRoZHJhdxISCgpzZXNzaW9uX2lkGAEgASgEEhAKCHZhdWx0X2lkGAIgASgNEi4KB3JlcXVlc3QYAyABKAsyGy5ub3JkLlZhdWx0V2l0aGRyYXcuUmVxdWVzdEgAEioKBWNsYWltGAQgASgLMhkubm9yZC5WYXVsdFdpdGhkcmF3LkNsYWltSAAaUQoHUmVxdWVzdBIYCg5xdW90ZV9ub3Rpb25hbBgBIAEoBEgAEiIKDHNoYXJlX2Ftb3VudBgCIAEoCzIKLm5vcmQuVTEyOEgAQggKBmFtb3VudBoHCgVDbGFpbUIGCgRraW5kIp4BChJDcmVhdGVWYXVsdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SGAoQdmF1bHRfYWNjb3VudF9pZBgCIAEoDRIWCg5tYW5hZ2VyX3B1YmtleRgDIAEoDBIhCgZzdGF0dXMYBCABKA4yES5ub3JkLlZhdWx0U3RhdHVzEiEKBmNvbmZpZxgFIAEoCzIRLm5vcmQuVmF1bHRDb25maWcicgoYVXBkYXRlVmF1bHRDb25maWdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEiEKBmNvbmZpZxgCIAEoCzIRLm5vcmQuVmF1bHRDb25maWcSIQoGc3RhdHVzGAMgASgOMhEubm9yZC5WYXVsdFN0YXR1cyJCChZTZXRWYXVsdE1hbmFnZXJSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhYKDm1hbmFnZXJfcHVia2V5GAIgASgMIvsBChZWYXVsdFN5bmNFcG9jaHNSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhcKD2Nsb3NlZF9lcG9jaF9pZBgCIAEoDRIYChBjbGFpbWFibGVfYW1vdW50GAMgASgEEiEKBnN0YXR1cxgEIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSIQoGZXBvY2hzGAUgASgLMhEubm9yZC5WYXVsdEVwb2NocxIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIVCg1xdW90ZV9iYWxhbmNlGAcgASgDEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0ijwIKE1ZhdWx0RGVwb3NpdFJlY2VpcHQSEAoIdmF1bHRfaWQYASABKA0SFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBIhCg1zaGFyZXNfaXNzdWVkGAQgASgLMgoubm9yZC5VMTI4Eh8KC3VzZXJfc2hhcmVzGAUgASgLMgoubm9yZC5VMTI4EiUKEWxpdmVfc2hhcmVfc3VwcGx5GAYgASgLMgoubm9yZC5VMTI4EiEKBnN0YXR1cxgHIAEoDjIRLm5vcmQuVmF1bHRTdGF0dXMSGAoQdmF1bHRfYWNjb3VudF9pZBgIIAEoDRIVCg1xdW90ZV9iYWxhbmNlGAkgASgDIlUKEVdpdGhkcmF3YWxCdWNrZXRzEhUKDWN1cnJlbnRfZXBvY2gYASABKAQSFgoOcHJldmlvdXNfZXBvY2gYAiABKAQSEQoJY2xhaW1hYmxlGAMgASgEIoUBCgtWYXVsdFBwc1JlZhIQCghlcG9jaF9pZBgBIAEoDRIrChJzYWZlX2FjY291bnRfdmFsdWUYAiABKAsyCi5ub3JkLlUxMjhIAIgBARIgCgxzaGFyZV9zdXBwbHkYAyABKAsyCi5ub3JkLlUxMjhCFQoTX3NhZmVfYWNjb3VudF92YWx1ZSKWAgoLVmF1bHRFcG9jaHMSGAoQY3VycmVudF9lcG9jaF9pZBgBIAEoDRIgChhjdXJyZW50X2Vwb2NoX3N0YXJ0ZWRfYXQYAiABKAMSIgoVcGFpZF90aHJvdWdoX2Vwb2NoX2lkGAMgASgNSACIAQESLAoLd2l0aGRyYXdhbHMYBCABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEi8KFGxhdGVzdF9lcG9jaF9wcHNfcmVmGAUgASgLMhEubm9yZC5WYXVsdFBwc1JlZhIuChNwcmlvcl9lcG9jaF9wcHNfcmVmGAYgASgLMhEubm9yZC5WYXVsdFBwc1JlZkIYChZfcGFpZF90aHJvdWdoX2Vwb2NoX2lkIo8BCg5WYXVsdFVzZXJTdGF0ZRIaCgZzaGFyZXMYASABKAsyCi5ub3JkLlUxMjgSLAoLd2l0aGRyYXdhbHMYAiABKAsyFy5ub3JkLldpdGhkcmF3YWxCdWNrZXRzEhgKEGN1cnJlbnRfZXBvY2hfaWQYAyABKA0SGQoRcHJldmlvdXNfZXBvY2hfaWQYBCABKA0itgMKFFZhdWx0V2l0aGRyYXdSZWNlaXB0EhAKCHZhdWx0X2lkGAEgASgNEhUKDXRvX2FjY291bnRfaWQYAiABKA0SOQoJcmVxdWVzdGVkGAMgASgLMiQubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5SZXF1ZXN0ZWRIABI1CgdjbGFpbWVkGAQgASgLMiIubm9yZC5WYXVsdFdpdGhkcmF3UmVjZWlwdC5DbGFpbWVkSAASLQoPcG9zdF91c2VyX3N0YXRlGAUgASgLMhQubm9yZC5WYXVsdFVzZXJTdGF0ZRIlChFsaXZlX3NoYXJlX3N1cHBseRgGIAEoCzIKLm5vcmQuVTEyOBIhCgZzdGF0dXMYByABKA4yES5ub3JkLlZhdWx0U3RhdHVzEhgKEHZhdWx0X2FjY291bnRfaWQYCCABKA0SFQoNcXVvdGVfYmFsYW5jZRgJIAEoAxo2CglSZXF1ZXN0ZWQSDQoFcXVvdGUYASABKAQSGgoGYnVybmVkGAIgASgLMgoubm9yZC5VMTI4GhkKB0NsYWltZWQSDgoGYW1vdW50GAEgASgEQgYKBGtpbmQiSQoKT3JkZXJMaW1pdBINCgVwcmljZRgGIAEoBBIMCgRzaXplGAcgASgEEh4KCnF1b3RlX3NpemUYCCABKAsyCi5ub3JkLlUxMjgiuQEKCVBsYWNlVHlwZRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGAYgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSACIAQFCGAoWX3NlbGZfdHJhZGVfcHJldmVudGlvbiLJAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpwbGFjZV90eXBlGAMgASgLMg8ubm9yZC5QbGFjZVR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQESIQoIcmVmZXJyZXIYIiABKAsyCi5ub3JkLlUxMjhIAYgBAUISChBfY2xpZW50X29yZGVyX2lkQgsKCV9yZWZlcnJlciIpChVBdG9taWNDYW5jZWxPcmRlckJ5SWQSEAoIb3JkZXJfaWQYAiABKAQiNgobQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkEhcKD2NsaWVudF9vcmRlcl9pZBgCIAEoBCKGAQoQQXRvbWljQWRkVHJpZ2dlchIkCgd0cmlnZ2VyGAEgASgLMhMubm9yZC5UcmlnZ2VyUmVjb3JkEhwKBmludGVudBgCIAEoDjIMLm5vcmQuSW50ZW50EiEKCHJlZmVycmVyGAMgASgLMgoubm9yZC5VMTI4SACIAQFCCwoJX3JlZmVycmVyIlEKEUF0b21pY0VkaXRUcmlnZ2VyEhIKCnRyaWdnZXJfaWQYASABKAQSKAoLbmV3X3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQiPAoTQXRvbWljUmVtb3ZlVHJpZ2dlchIRCgltYXJrZXRfaWQYASABKA0SEgoKdHJpZ2dlcl9pZBgCIAEoBCIrChZSZWR1Y2VPcmRlckxpcXVpZGF0aW9uEhEKCW1hcmtldF9pZBgCIAEoDSLPAQoVQXRvbWljU3ViYWN0aW9uS2luZFYxEiwKDnRyYWRlX29yX3BsYWNlGAYgASgLMhIubm9yZC5UcmFkZU9yUGxhY2VIABIzCgxjYW5jZWxfb3JkZXIYByABKAsyGy5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlJZEgAEkYKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYCCABKAsyIS5ub3JkLkF0b21pY0NhbmNlbE9yZGVyQnlDbGllbnRJZEgAOgIYAUIHCgVpbm5lciKwAQoIQXRvbWljVjESEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAMgASgESAGIAQESLAoHYWN0aW9ucxgGIAMoCzIbLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZFYxOgIYAUINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIscECg9BdG9taWNTdWJhY3Rpb24SFAoHdXNlX2tleRgBIAEoCEgBiAEBEh4KEXRhcmdldF9hY2NvdW50X2lkGCAgASgNSAKIAQESLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEjMKDGNhbmNlbF9vcmRlchgHIAEoCzIbLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUlkSAASRgoZY2FuY2VsX29yZGVyX2J5X2NsaWVudF9pZBgIIAEoCzIhLm5vcmQuQXRvbWljQ2FuY2VsT3JkZXJCeUNsaWVudElkSAASLQoLYWRkX3RyaWdnZXIYCSABKAsyFi5ub3JkLkF0b21pY0FkZFRyaWdnZXJIABIvCgxlZGl0X3RyaWdnZXIYCiABKAsyFy5ub3JkLkF0b21pY0VkaXRUcmlnZ2VySAASMwoOcmVtb3ZlX3RyaWdnZXIYCyABKAsyGS5ub3JkLkF0b21pY1JlbW92ZVRyaWdnZXJIABJAChhyZWR1Y2Vfb3JkZXJfbGlxdWlkYXRpb24YDCABKAsyHC5ub3JkLlJlZHVjZU9yZGVyTGlxdWlkYXRpb25IABIsCg5yZnFfcGxhY2Vfb25seRgNIAEoCzISLm5vcmQuUmZxUGxhY2VPbmx5SAASIwoJcmZxX3RyYWRlGA4gASgLMg4ubm9yZC5SZnFUcmFkZUgAQgcKBWlubmVyQgoKCF91c2Vfa2V5QhQKEl90YXJnZXRfYWNjb3VudF9pZCKkAQoGQXRvbWljEhIKCnNlc3Npb25faWQYASABKAQSFwoKYWNjb3VudF9pZBgCIAEoDUgAiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgDIAEoBEgBiAEBEiYKB2FjdGlvbnMYBiADKAsyFS5ub3JkLkF0b21pY1N1YmFjdGlvbkINCgtfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkIjwKFlB5dGhMYXplclRydXN0ZWRTaWduZXISDgoGcHVia2V5GAEgASgMEhIKCmV4cGlyZXNfYXQYAiABKAMilgEKDVRyaWdnZXJSZWNvcmQSFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SIAoGbGltaXRzGAMgASgLMhAubm9yZC5PcmRlckxpbWl0Eh8KBGtpbmQYBCABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBSABKA4yCi5ub3JkLlNpZGUimwEKB1RyaWdnZXISFQoNdHJpZ2dlcl9wcmljZRgBIAEoBBIfCgRraW5kGAIgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiAKBmxpbWl0cxgEIAEoCzIQLm5vcmQuT3JkZXJMaW1pdBIcCgZpbnRlbnQYBSABKA4yDC5ub3JkLkludGVudCK9NQoGQWN0aW9uEhkKEWN1cnJlbnRfdGltZXN0YW1wGAEgASgDEg0KBW5vbmNlGAIgASgNEjQKDmNyZWF0ZV9zZXNzaW9uGAQgASgLMhoubm9yZC5BY3Rpb24uQ3JlYXRlU2Vzc2lvbkgAEjAKDGNyZWF0ZV90b2tlbhgFIAEoCzIYLm5vcmQuQWN0aW9uLkNyZWF0ZVRva2VuSAASMgoNY3JlYXRlX21hcmtldBgGIAEoCzIZLm5vcmQuQWN0aW9uLkNyZWF0ZU1hcmtldEgAEi4KC3BsYWNlX29yZGVyGAcgASgLMhcubm9yZC5BY3Rpb24uUGxhY2VPcmRlckgAEjoKEmNhbmNlbF9vcmRlcl9ieV9pZBgIIAEoCzIcLm5vcmQuQWN0aW9uLkNhbmNlbE9yZGVyQnlJZEgAEicKB2RlcG9zaXQYCSABKAsyFC5ub3JkLkFjdGlvbi5EZXBvc2l0SAASKQoId2l0aGRyYXcYCiABKAsyFS5ub3JkLkFjdGlvbi5XaXRoZHJhd0gAEkwKG3B5dGhfc2V0X3dvcm1ob2xlX2d1YXJkaWFucxgLIAEoCzIlLm5vcmQuQWN0aW9uLlB5dGhTZXRXb3JtaG9sZUd1YXJkaWFuc0gAEj4KFHB5dGhfc2V0X3N5bWJvbF9mZWVkGAwgASgLMh4ubm9yZC5BY3Rpb24uUHl0aFNldFN5bWJvbEZlZWRIABJCChZweXRoX3ByaWNlX2ZlZWRfdXBkYXRlGA0gASgLMiAubm9yZC5BY3Rpb24uUHl0aFByaWNlRmVlZFVwZGF0ZUgAEjQKDnJldm9rZV9zZXNzaW9uGA8gASgLMhoubm9yZC5BY3Rpb24uUmV2b2tlU2Vzc2lvbkgAEiMKBXBhdXNlGBAgASgLMhIubm9yZC5BY3Rpb24uUGF1c2VIABInCgd1bnBhdXNlGBEgASgLMhQubm9yZC5BY3Rpb24uVW5wYXVzZUgAEikKCHRyYW5zZmVyGBIgASgLMhUubm9yZC5BY3Rpb24uVHJhbnNmZXJIABIuCgthZGRfdHJpZ2dlchggIAEoCzIXLm5vcmQuQWN0aW9uLkFkZFRyaWdnZXJIABI0Cg5yZW1vdmVfdHJpZ2dlchghIAEoCzIaLm5vcmQuQWN0aW9uLlJlbW92ZVRyaWdnZXJIABInCglhdG9taWNfdjEYIyABKAsyDi5ub3JkLkF0b21pY1YxQgIYAUgAEjIKDWZyZWV6ZV9tYXJrZXQYJCABKAsyGS5ub3JkLkFjdGlvbi5GcmVlemVNYXJrZXRIABI2Cg91bmZyZWV6ZV9tYXJrZXQYJSABKAsyGy5ub3JkLkFjdGlvbi5VbmZyZWV6ZU1hcmtldEgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABI7ChJmZWVfdmF1bHRfdHJhbnNmZXIYKiABKAsyHS5ub3JkLkFjdGlvbi5GZWVWYXVsdFRyYW5zZmVySAASOwoSdGFrZV9hbGxfcG9zaXRpb25zGCsgASgLMh0ubm9yZC5BY3Rpb24uVGFrZUFsbFBvc2l0aW9uc0gAEkcKGWNhbmNlbF9vcmRlcl9ieV9jbGllbnRfaWQYLCABKAsyIi5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5Q2xpZW50SWRIABI2Cg9leGVjdXRlX3RyaWdnZXIYLSABKAsyGy5ub3JkLkFjdGlvbi5FeGVjdXRlVHJpZ2dlckgAEj8KFHNldF9iYWNrc3RvcF9hY2NvdW50GC4gASgLMh8ubm9yZC5BY3Rpb24uU2V0QmFja3N0b3BBY2NvdW50SAASMAoMZWRpdF90cmlnZ2VyGC8gASgLMhgubm9yZC5BY3Rpb24uRWRpdFRyaWdnZXJIABIeCgZhdG9taWMYMCABKAsyDC5ub3JkLkF0b21pY0gAEigKBWFkbWluGDEgASgLMhcubm9yZC5TdGFnZWRBZG1pbkFjdGlvbkgAEjAKDGNsZWFyX21hcmtldBgyIAEoCzIYLm5vcmQuQWN0aW9uLkNsZWFyTWFya2V0SAASMgoRdmF1bHRfc3luY19lcG9jaHMYNSABKAsyFS5ub3JkLlZhdWx0U3luY0Vwb2Noc0gAEisKDXZhdWx0X2RlcG9zaXQYNiABKAsyEi5ub3JkLlZhdWx0RGVwb3NpdEgAEi0KDnZhdWx0X3dpdGhkcmF3GDcgASgLMhMubm9yZC5WYXVsdFdpdGhkcmF3SAASUQoecHl0aF9sYXplcl9zZXRfdHJ1c3RlZF9zaWduZXJzGDkgASgLMicubm9yZC5BY3Rpb24uUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnNIABJJChpweXRoX2xhemVyX3NldF9mZWVkX3N5bWJvbBg6IAEoCzIjLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2xIABJNChxweXRoX2xhemVyX3ByaWNlX2ZlZWRfdXBkYXRlGDsgASgLMiUubm9yZC5BY3Rpb24uUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlSAASNgoPcmVmcmVzaF9zZXNzaW9uGDwgASgLMhsubm9yZC5BY3Rpb24uUmVmcmVzaFNlc3Npb25IABI9ChNzZWxmX3Jldm9rZV9zZXNzaW9uGD0gASgLMh4ubm9yZC5BY3Rpb24uU2VsZlJldm9rZVNlc3Npb25IABI4ChFhZGRfZmVlX3RpZXJfdHlwZRg+IAEoCzIbLm5vcmQuQWN0aW9uLkFkZEZlZVRpZXJUeXBlSAASPgoUdXBkYXRlX2ZlZV90aWVyX3R5cGUYPyABKAsyHi5ub3JkLkFjdGlvbi5VcGRhdGVGZWVUaWVyVHlwZUgAElgKInVwZGF0ZV9hY2NvdW50c19mZWVfdGllcl90eXBlX21vZGUYQCABKAsyKi5ub3JkLkFjdGlvbi5VcGRhdGVBY2NvdW50c0ZlZVRpZXJUeXBlTW9kZUgAGuMBCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhYKDnNlc3Npb25fcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMSQQoRc2lnbmF0dXJlX2ZyYW1pbmcYBCABKA4yIS5ub3JkLkFjdGlvbi5Vc2VyU2lnbmF0dXJlRnJhbWluZ0gAiAEBEh0KEHJlZnJlc2hfZGVhZGxpbmUYBSABKANIAYgBAUIUChJfc2lnbmF0dXJlX2ZyYW1pbmdCEwoRX3JlZnJlc2hfZGVhZGxpbmUaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGjEKHFNldE1hcmtldE1vZGVDTE9CVHJhZGluZ09ubHkSEQoJbWFya2V0X2lkGAEgASgNGi4KGVNldE1hcmtldE1vZGVDTE9CUG9zdE9ubHkSEQoJbWFya2V0X2lkGAEgASgNGiYKEVNldE1hcmtldE1vZGVDTE9CEhEKCW1hcmtldF9pZBgBIAEoDRruAQoMQ3JlYXRlTWFya2V0EhUKDXNpemVfZGVjaW1hbHMYASABKA0SFgoOcHJpY2VfZGVjaW1hbHMYAiABKA0SDwoHaW1mX2JwcxgDIAEoDRIPCgdjbWZfYnBzGAQgASgNEg8KB21tZl9icHMYBSABKA0SJQoLbWFya2V0X3R5cGUYBiABKA4yEC5ub3JkLk1hcmtldFR5cGUSEwoLdmlld19zeW1ib2wYByABKAkSFQoNb3JhY2xlX3N5bWJvbBgIIAEoCRIVCg1iYXNlX3Rva2VuX2lkGAkgASgNEhIKCmFjbF9wdWJrZXkYCiABKAwaqgQKClBsYWNlT3JkZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SGAoEc2lkZRgDIAEoDjIKLm5vcmQuU2lkZRIhCglmaWxsX21vZGUYBCABKA4yDi5ub3JkLkZpbGxNb2RlEhYKDmlzX3JlZHVjZV9vbmx5GAUgASgIEg0KBXByaWNlGAYgASgEEgwKBHNpemUYByABKAQSHgoKcXVvdGVfc2l6ZRgIIAEoCzIKLm5vcmQuVTEyOBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEhwKD2NsaWVudF9vcmRlcl9pZBghIAEoBEgBiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCIgASgNSAKIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGCMgASgESAOIAQESPQoVc2VsZl90cmFkZV9wcmV2ZW50aW9uGCQgASgOMhkubm9yZC5TZWxmVHJhZGVQcmV2ZW50aW9uSASIAQESIQoIcmVmZXJyZXIYJSABKAsyCi5ub3JkLlUxMjhIBYgBAUIXChVfZGVsZWdhdG9yX2FjY291bnRfaWRCEgoQX2NsaWVudF9vcmRlcl9pZEIUChJfc2VuZGVyX2FjY291bnRfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIYChZfc2VsZl90cmFkZV9wcmV2ZW50aW9uQgsKCV9yZWZlcnJlchqpAQoPQ2FuY2VsT3JkZXJCeUlkEhIKCnNlc3Npb25faWQYASABKAQSEAoIb3JkZXJfaWQYAiABKAQSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIeChFzZW5kZXJfYWNjb3VudF9pZBghIAEoDUgBiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEIUChJfc2VuZGVyX2FjY291bnRfaWQaegoVQ2FuY2VsT3JkZXJCeUNsaWVudElkEhIKCnNlc3Npb25faWQYASABKAQSFwoPY2xpZW50X29yZGVyX2lkGAIgASgEEh4KEXNlbmRlcl9hY2NvdW50X2lkGAMgASgNSACIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkGm8KB0RlcG9zaXQSFAoMYWN0aW9uX25vbmNlGAEgASgEEhIKCnRva2VuX2FkZHIYAiABKAwSDgoGYW1vdW50GAMgASgEEhMKC3VzZXJfcHVia2V5GAQgASgMEhUKDXNlbmRlcl9wdWJrZXkYBSABKAwaagoIV2l0aGRyYXcSEAoIdG9rZW5faWQYASABKA0SEgoKc2Vzc2lvbl9pZBgCIAEoBBIOCgZhbW91bnQYAyABKAQSGAoLZGVzdF9wdWJrZXkYBCABKAxIAIgBAUIOCgxfZGVzdF9wdWJrZXkaXQoYUHl0aFNldFdvcm1ob2xlR3VhcmRpYW5zEhoKEmd1YXJkaWFuX3NldF9pbmRleBgBIAEoDRIRCglhZGRyZXNzZXMYAiADKAwSEgoKYWNsX3B1YmtleRgDIAEoDBpVChFQeXRoU2V0U3ltYm9sRmVlZBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEhUKDXByaWNlX2ZlZWRfaWQYAiABKAwSEgoKYWNsX3B1YmtleRgDIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwaUgoYUHl0aExhemVyUHJpY2VGZWVkVXBkYXRlEg8KB3BheWxvYWQYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMEhIKCnB1YmxpY19rZXkYAyABKAwaZwoaUHl0aExhemVyU2V0VHJ1c3RlZFNpZ25lcnMSEgoKYWNsX3B1YmtleRgBIAEoDBI1Cg90cnVzdGVkX3NpZ25lcnMYAiADKAsyHC5ub3JkLlB5dGhMYXplclRydXN0ZWRTaWduZXIaqwEKFlB5dGhMYXplclNldEZlZWRTeW1ib2wSEgoKYWNsX3B1YmtleRgBIAEoDBJCCgVmZWVkcxgCIAMoCzIzLm5vcmQuQWN0aW9uLlB5dGhMYXplclNldEZlZWRTeW1ib2wuRmVlZFN5bWJvbElucHV0GjkKD0ZlZWRTeW1ib2xJbnB1dBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGjQKDlJlZnJlc2hTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQSDgoGZXhwaXJ5GAIgASgDGicKEVNlbGZSZXZva2VTZXNzaW9uEhIKCnNlc3Npb25faWQYASABKAQaGwoFUGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBodCgdVbnBhdXNlEhIKCmFjbF9wdWJrZXkYASABKAwaYwoSU2V0QmFja3N0b3BBY2NvdW50EhIKCmFjbF9wdWJrZXkYASABKAwSEgoKYWNjb3VudF9pZBgCIAEoDRIlCgttYXJrZXRfbW9kZRgDIAEoDjIQLm5vcmQuTWFya2V0TW9kZRr5AQoJUmVjaXBpZW50EjEKB3NwZWNpYWwYASABKAsyHi5ub3JkLkFjdGlvbi5SZWNpcGllbnQuU3BlY2lhbEgAEi0KBW93bmVkGAIgASgLMhwubm9yZC5BY3Rpb24uUmVjaXBpZW50Lk93bmVkSAASMQoHdW5vd25lZBgDIAEoCzIeLm5vcmQuQWN0aW9uLlJlY2lwaWVudC5Vbm93bmVkSAAaCQoHU3BlY2lhbBobCgVPd25lZBISCgphY2NvdW50X2lkGAEgASgNGh0KB1Vub3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDUIQCg5yZWNpcGllbnRfdHlwZRqfAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEjIKDXRvX2FjY291bnRfaWQYCCABKAsyFi5ub3JkLkFjdGlvbi5SZWNpcGllbnRIAIgBAUIQCg5fdG9fYWNjb3VudF9pZBpbChBGZWVWYXVsdFRyYW5zZmVyEhIKCmFjbF9wdWJrZXkYASABKAwSEQoJcmVjaXBpZW50GAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBq8AQoKQWRkVHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAMgASgOMgwubm9yZC5JbnRlbnQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBEiEKCHJlZmVycmVyGAsgASgLMgoubm9yZC5VMTI4SAGIAQFCDQoLX2FjY291bnRfaWRCCwoJX3JlZmVycmVyGocBCgtFZGl0VHJpZ2dlchISCgpzZXNzaW9uX2lkGAEgASgEEhIKCnRyaWdnZXJfaWQYAiABKAQSKAoLbmV3X3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGnIKDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SEgoKdHJpZ2dlcl9pZBgDIAEoBBIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQadAoOQWRkRmVlVGllclR5cGUSEgoKYWNsX3B1YmtleRgBIAEoDBIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnGoMBChFVcGRhdGVGZWVUaWVyVHlwZRIKCgJpZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRInCgZjb25maWcYAyABKAsyFy5ub3JkLkZlZVRpZXJUeXBlQ29uZmlnEhIKCmFjbF9wdWJrZXkYBCABKAwafQodVXBkYXRlQWNjb3VudHNGZWVUaWVyVHlwZU1vZGUSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRISCgphY2xfcHVia2V5GAQgASgMGl8KCVVwZGF0ZUFjbBISCgphY2xfcHVia2V5GAEgASgMEhUKDXRhcmdldF9wdWJrZXkYAiABKAwSEgoKcm9sZXNfbWFzaxgDIAEoDRITCgtyb2xlc192YWx1ZRgEIAEoDRo1CgxGcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aNwoOVW5mcmVlemVNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0aTQoLQ2xlYXJNYXJrZXQSEgoKYWNsX3B1YmtleRgBIAEoDBIRCgltYXJrZXRfaWQYAiABKA0SFwoPY2xlYXJhbmNlX3ByaWNlGAMgASgEGmEKDkV4ZWN1dGVUcmlnZ2VyEhQKDGV4ZWN1dG9yX3NpZBgBIAEoBBISCgphY2NvdW50X2lkGAIgASgNEhEKCW1hcmtldF9pZBgDIAEoDRISCgp0cmlnZ2VyX2lkGAQgASgEGkEKEFRha2VBbGxQb3NpdGlvbnMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIZChF0YXJnZXRfYWNjb3VudF9pZBgCIAEoDSI3ChRVc2VyU2lnbmF0dXJlRnJhbWluZxIHCgNIRVgQABIWChJTT0xBTkFfVFJBTlNBQ1RJT04QAUIGCgRraW5kItRECgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI4Cg50cmFkZV9vcl9wbGFjZRgiIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASPgoTY2FuY2VsX29yZGVyX3Jlc3VsdBgjIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAEjUKDmRlcG9zaXRfcmVzdWx0GCQgASgLMhsubm9yZC5SZWNlaXB0LkRlcG9zaXRSZXN1bHRIABI+ChNpbnNlcnRfdG9rZW5fcmVzdWx0GCUgASgLMh8ubm9yZC5SZWNlaXB0Lkluc2VydFRva2VuUmVzdWx0SAASQAoUaW5zZXJ0X21hcmtldF9yZXN1bHQYJiABKAsyIC5ub3JkLlJlY2VpcHQuSW5zZXJ0TWFya2V0UmVzdWx0SAASNwoPd2l0aGRyYXdfcmVzdWx0GCcgASgLMhwubm9yZC5SZWNlaXB0LldpdGhkcmF3UmVzdWx0SAASSQoZb3JhY2xlX3N5bWJvbF9mZWVkX3Jlc3VsdBgoIAEoCzIkLm5vcmQuUmVjZWlwdC5PcmFjbGVTeW1ib2xGZWVkUmVzdWx0SAASQAoUb3JhY2xlX3VwZGF0ZV9yZXN1bHQYKSABKAsyIC5ub3JkLlJlY2VpcHQuT3JhY2xlVXBkYXRlUmVzdWx0SAASSwoadXBkYXRlX2d1YXJkaWFuX3NldF9yZXN1bHQYKiABKAsyJS5ub3JkLlJlY2VpcHQuVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASLwoLYWNsX3VwZGF0ZWQYSCABKAsyGC5ub3JkLlJlY2VpcHQuQWNsVXBkYXRlZEgAEkIKFWZlZV92YXVsdF90cmFuc2ZlcnJlZBhJIAEoCzIhLm5vcmQuUmVjZWlwdC5GZWVWYXVsdFRyYW5zZmVycmVkSAASOQoQdHJpZ2dlcl9leGVjdXRlZBhKIAEoCzIdLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRXhlY3V0ZWRIABJJChl0YWtlX2FsbF9wb3NpdGlvbnNfcmVzdWx0GEsgASgLMiQubm9yZC5SZWNlaXB0LlRha2VBbGxQb3NpdGlvbnNSZXN1bHRIABJAChRiYWNrc3RvcF9hY2NvdW50X3NldBhMIAEoCzIgLm5vcmQuUmVjZWlwdC5CYWNrc3RvcEFjY291bnRTZXRIABI1Cg50cmlnZ2VyX2VkaXRlZBhNIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASMQoNdmF1bHRfY3JlYXRlZBhOIAEoCzIYLm5vcmQuQ3JlYXRlVmF1bHRSZWNlaXB0SAASPgoUdmF1bHRfY29uZmlnX3VwZGF0ZWQYTyABKAsyHi5ub3JkLlVwZGF0ZVZhdWx0Q29uZmlnUmVjZWlwdEgAEj0KFXZhdWx0X21hbmFnZXJfdXBkYXRlZBhQIAEoCzIcLm5vcmQuU2V0VmF1bHRNYW5hZ2VyUmVjZWlwdEgAEjsKE3ZhdWx0X2Vwb2Noc19zeW5jZWQYUSABKAsyHC5ub3JkLlZhdWx0U3luY0Vwb2Noc1JlY2VpcHRIABI0Cg92YXVsdF9kZXBvc2l0ZWQYUiABKAsyGS5ub3JkLlZhdWx0RGVwb3NpdFJlY2VpcHRIABI1Cg92YXVsdF93aXRoZHJhd24YUyABKAsyGi5ub3JkLlZhdWx0V2l0aGRyYXdSZWNlaXB0SAASPgoTY2xlYXJfbWFya2V0X3Jlc3VsdBhUIAEoCzIfLm5vcmQuUmVjZWlwdC5DbGVhck1hcmtldFJlc3VsdEgAElQKH3B5dGhfbGF6ZXJfb3JhY2xlX3VwZGF0ZV9yZXN1bHQYVSABKAsyKS5ub3JkLlJlY2VpcHQuUHl0aExhemVyT3JhY2xlVXBkYXRlUmVzdWx0SAASXwolcHl0aF9sYXplcl90cnVzdGVkX3NpZ25lcnNfc2V0X3Jlc3VsdBhWIAEoCzIuLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJUcnVzdGVkU2lnbmVyc1NldFJlc3VsdEgAElcKIXB5dGhfbGF6ZXJfZmVlZF9zeW1ib2xfc2V0X3Jlc3VsdBhXIAEoCzIqLm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0SAASVQofcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uX3Jlc3VsdBhYIAEoCzIqLm5vcmQuUmVjZWlwdC5SZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0SAASPgoTbWFya2V0X21vZGVfdXBkYXRlZBhZIAEoCzIfLm5vcmQuUmVjZWlwdC5NYXJrZXRNb2RlVXBkYXRlZEgAEiwKDnJmcV9tYWtlcnNfc2V0GFogASgLMhIubm9yZC5SZnFNYWtlcnNTZXRIABI7ChFzZXNzaW9uX3JlZnJlc2hlZBhbIAEoCzIeLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmVmcmVzaGVkSAASQAoUc2VsZl9zZXNzaW9uX3Jldm9rZWQYXCABKAsyIC5ub3JkLlJlY2VpcHQuU2VsZlNlc3Npb25SZXZva2VkSAASPQoTZmVlX3RpZXJfdHlwZV9hZGRlZBhdIAEoCzIeLm5vcmQuUmVjZWlwdC5GZWVUaWVyVHlwZUFkZGVkSAASQQoVZmVlX3RpZXJfdHlwZV91cGRhdGVkGF4gASgLMiAubm9yZC5SZWNlaXB0LkZlZVRpZXJUeXBlVXBkYXRlZEgAElsKI2FjY291bnRzX2ZlZV90aWVyX3R5cGVfbW9kZV91cGRhdGVkGF8gASgLMiwubm9yZC5SZWNlaXB0LkFjY291bnRzRmVlVGllclR5cGVNb2RlVXBkYXRlZEgAGngKBlBvc3RlZBIYCgRzaWRlGAEgASgOMgoubm9yZC5TaWRlEhEKCW1hcmtldF9pZBgCIAEoDRINCgVwcmljZRgDIAEoBBIMCgRzaXplGAQgASgEEhAKCG9yZGVyX2lkGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0acAoFVHJhZGUSEAoIb3JkZXJfaWQYAiABKAQSDQoFcHJpY2UYBCABKAQSDAoEc2l6ZRgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNEhEKCW1ha2VyX2ZlZRgHIAEoBBIRCgl0YWtlcl9mZWUYCCABKAQabQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxIdChByZWZyZXNoX2RlYWRsaW5lGAMgASgDSACIAQFCEwoRX3JlZnJlc2hfZGVhZGxpbmUaTAoQQ2FuY2VsbGVkVHJpZ2dlchISCgphY2NvdW50X2lkGAEgASgNEiQKB3RyaWdnZXIYAiABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQa2gEKC09yZGVyVXBkYXRlEjAKBnJlYXNvbhgBIAEoDjIgLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZS5SZWFzb24SEgoKYWNjb3VudF9pZBgCIAEoDRIQCghvcmRlcl9pZBgDIAEoBBIWCg5yZW1haW5pbmdfc2l6ZRgEIAEoBBIWCg5jYW5jZWxsZWRfc2l6ZRgFIAEoBBINCgVwcmljZRgGIAEoBCI0CgZSZWFzb24SDwoLUkVEVUNFX09OTFkQABIZChVTRUxGX1RSQURFX1BSRVZFTlRJT04QARr3AgoQUGxhY2VPcmRlclJlc3VsdBIpCgZwb3N0ZWQYASABKAsyFC5ub3JkLlJlY2VpcHQuUG9zdGVkSACIAQESIgoFZmlsbHMYAiADKAsyEy5ub3JkLlJlY2VpcHQuVHJhZGUSHAoPY2xpZW50X29yZGVyX2lkGAMgASgESAGIAQESHwoSc2VuZGVyX3RyYWNraW5nX2lkGAQgASgESAKIAQESOgoSY2FuY2VsbGVkX3RyaWdnZXJzGAUgAygLMh4ubm9yZC5SZWNlaXB0LkNhbmNlbGxlZFRyaWdnZXISMAoNb3JkZXJfdXBkYXRlcxgGIAMoCzIZLm5vcmQuUmVjZWlwdC5PcmRlclVwZGF0ZRIxCglwbGFjZW1lbnQYByABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZBp6ChxSZWR1Y2VPcmRlckxpcXVpZGF0aW9uUmVzdWx0EjYKDnRyYWRlX29yX3BsYWNlGAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHQSIgoGYWN0aW9uGAIgASgLMhIubm9yZC5UcmFkZU9yUGxhY2UarwEKEFBsYWNlbWVudFJlY2VpcHQSIQoEcm9sZRgBIAEoDjITLm5vcmQuUGxhY2VtZW50Um9sZRI4CgdhY2NvdW50GAIgASgLMiUubm9yZC5SZWNlaXB0LkFjY291bnRQbGFjZW1lbnRSZWNlaXB0SAASNAoFdmF1bHQYAyABKAsyIy5ub3JkLlJlY2VpcHQuVmF1bHRQbGFjZW1lbnRSZWNlaXB0SABCCAoGdGFyZ2V0GhkKF0FjY291bnRQbGFjZW1lbnRSZWNlaXB0GkwKFVZhdWx0UGxhY2VtZW50UmVjZWlwdBIQCgh2YXVsdF9pZBgBIAEoDRIhCgZoZWFsdGgYAiABKAsyES5ub3JkLlZhdWx0SGVhbHRoGv4BCg9UcmlnZ2VyRXhlY3V0ZWQSEwoLZXhlY3V0b3JfaWQYASABKA0SEgoKYWNjb3VudF9pZBgCIAEoDRIRCgltYXJrZXRfaWQYAyABKA0SHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlchISCgp0cmlnZ2VyX2lkGAggASgEEjEKB3N1Y2Nlc3MYBSABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEikKB2ZhaWx1cmUYBiABKA4yFi5ub3JkLlRyaWdnZXJFeGVjRXJyb3JIABITCgljYW5jZWxsZWQYByABKAhIAEIICgZzdGF0dXMaMgoOVGFrZUFsbEJhbGFuY2USEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEGncKD1Rha2VBbGxQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEhgKEHNldHRsZW1lbnRfcHJpY2UYAyABKAQSJAoQYmFua3J1cHRjeV9xdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBpTChNUYWtlQWxsT3JkZXJVcGRhdGVzEhEKCW1hcmtldF9pZBgBIAEoDRIpCgZvcmRlcnMYAiADKAsyGS5ub3JkLlJlY2VpcHQuT3JkZXJVcGRhdGUa1gEKElRha2VBbGxUYWtlclJlc3VsdBIYChB0YWtlcl9hY2NvdW50X2lkGAEgASgNEjQKDnRha2VuX2JhbGFuY2VzGAIgAygLMhwubm9yZC5SZWNlaXB0LlRha2VBbGxCYWxhbmNlEjYKD3Rha2VuX3Bvc2l0aW9ucxgDIAMoCzIdLm5vcmQuUmVjZWlwdC5UYWtlQWxsUG9zaXRpb24SOAoNb3JkZXJfdXBkYXRlcxgEIAMoCzIhLm5vcmQuUmVjZWlwdC5UYWtlQWxsT3JkZXJVcGRhdGVzGkoKFlRha2VBbGxQb3NpdGlvbnNSZXN1bHQSMAoGdGFrZXJzGAYgAygLMiAubm9yZC5SZWNlaXB0LlRha2VBbGxUYWtlclJlc3VsdBpoCg5DYW5jZWxsZWRPcmRlchISCgphY2NvdW50X2lkGAEgASgNEhAKCG9yZGVyX2lkGAIgASgEEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgAiAEBQhIKEF9jbGllbnRfb3JkZXJfaWQarQEKGUNsZWFyTWFya2V0Q2xvc2VkUG9zaXRpb24SEgoKYWNjb3VudF9pZBgBIAEoDRIRCgliYXNlX3NpemUYAiABKAMSGAoQc2V0dGxlbWVudF9wcmljZRgDIAEoBBIZCgVxdW90ZRgEIAEoCzIKLm5vcmQuVTEyOBIZChF0cmFkaW5nX3BubF9kZWx0YRgFIAEoAxIZChFmdW5kaW5nX3BubF9kZWx0YRgGIAEoAxq6AQoRQ2xlYXJNYXJrZXRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEhcKD2NsZWFyYW5jZV9wcmljZRgFIAEoBBI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyEkEKEGNsb3NlZF9wb3NpdGlvbnMYBCADKAsyJy5ub3JkLlJlY2VpcHQuQ2xlYXJNYXJrZXRDbG9zZWRQb3NpdGlvbhqeAQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAIgBARIxCglwbGFjZW1lbnQYBCABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VtZW50UmVjZWlwdEISChBfY2xpZW50X29yZGVyX2lkGnAKDURlcG9zaXRSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEhIKCmFjY291bnRfaWQYAyABKA0SFAoMdXNlcl9jcmVhdGVkGAQgASgIEhMKC3VzZXJfcHVia2V5GAUgASgMGkMKEUluc2VydFRva2VuUmVzdWx0EhIKCmNoYWluX2FkZHIYASABKAwSGgoFdG9rZW4YAiABKAsyCy5ub3JkLlRva2VuGjIKEkluc2VydE1hcmtldFJlc3VsdBIcCgZtYXJrZXQYASABKAsyDC5ub3JkLk1hcmtldBp5Cg5XaXRoZHJhd1Jlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSDwoHYmFsYW5jZRgDIAEoBBISCgphY2NvdW50X2lkGAQgASgNEgsKA2ZlZRgFIAEoBBITCgt1c2VyX3B1YmtleRgGIAEoDBpAChZPcmFjbGVTeW1ib2xGZWVkUmVzdWx0EhUKDW9yYWNsZV9zeW1ib2wYASABKAkSDwoHZmVlZF9pZBgCIAEoDBonChJPcmFjbGVVcGRhdGVSZXN1bHQSEQoJdGltZXN0YW1wGAEgASgDGjcKG1B5dGhMYXplck9yYWNsZVVwZGF0ZVJlc3VsdBIYChB0aW1lc3RhbXBfbWlsbGlzGAEgASgEGlkKIFB5dGhMYXplclRydXN0ZWRTaWduZXJzU2V0UmVzdWx0EjUKD3RydXN0ZWRfc2lnbmVycxgBIAMoCzIcLm5vcmQuUHl0aExhemVyVHJ1c3RlZFNpZ25lchqaAQocUHl0aExhemVyRmVlZFN5bWJvbFNldFJlc3VsdBJECgVmZWVkcxgBIAMoCzI1Lm5vcmQuUmVjZWlwdC5QeXRoTGF6ZXJGZWVkU3ltYm9sU2V0UmVzdWx0LkZlZWRTeW1ib2waNAoKRmVlZFN5bWJvbBIPCgdmZWVkX2lkGAEgASgNEhUKDW9yYWNsZV9zeW1ib2wYAiABKAkaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBoQCg5TZXNzaW9uUmV2b2tlZBoUChJTZWxmU2Vzc2lvblJldm9rZWQaNgoQU2Vzc2lvblJlZnJlc2hlZBISCgpzZXNzaW9uX2lkGAEgASgEEg4KBmV4cGlyeRgCIAEoAxoICgZQYXVzZWQaCgoIVW5wYXVzZWQaTwoSQmFja3N0b3BBY2NvdW50U2V0EhIKCmFjY291bnRfaWQYASABKA0SJQoLbWFya2V0X21vZGUYAiABKA4yEC5ub3JkLk1hcmtldE1vZGUa/AEKCVJlY2lwaWVudBIyCgdzcGVjaWFsGAEgASgLMh8ubm9yZC5SZWNlaXB0LlJlY2lwaWVudC5TcGVjaWFsSAASLgoFb3duZWQYAiABKAsyHS5ub3JkLlJlY2VpcHQuUmVjaXBpZW50Lk93bmVkSAASMgoHdW5vd25lZBgDIAEoCzIfLm5vcmQuUmVjZWlwdC5SZWNpcGllbnQuVW5vd25lZEgAGgkKB1NwZWNpYWwaGwoFT3duZWQSEgoKYWNjb3VudF9pZBgBIAEoDRodCgdVbm93bmVkEhIKCmFjY291bnRfaWQYASABKA1CEAoOcmVjaXBpZW50X3R5cGUaowEKC1RyYW5zZmVycmVkEhcKD2Zyb21fYWNjb3VudF9pZBgBIAEoDRIrCgp0b19hY2NvdW50GAIgASgLMhcubm9yZC5SZWNlaXB0LlJlY2lwaWVudBIQCgh0b2tlbl9pZBgDIAEoDRIOCgZhbW91bnQYBCABKAQSFwoPYWNjb3VudF9jcmVhdGVkGAUgASgIEhMKC3VzZXJfcHVia2V5GAYgASgMGkoKE0ZlZVZhdWx0VHJhbnNmZXJyZWQSEQoJcmVjaXBpZW50GAEgASgNEhAKCHRva2VuX2lkGAIgASgNEg4KBmFtb3VudBgDIAEoBBp6CgxUcmlnZ2VyQWRkZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQafAoOVHJpZ2dlclJlbW92ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEiQKB3RyaWdnZXIYAyABKAsyEy5ub3JkLlRyaWdnZXJSZWNvcmQSHAoGaW50ZW50GAQgASgOMgwubm9yZC5JbnRlbnQagAEKDVRyaWdnZXJFZGl0ZWQSEgoKYWNjb3VudF9pZBgBIAEoDRISCgp0cmlnZ2VyX2lkGAIgASgEEicKEHByZXZpb3VzX3RyaWdnZXIYAyABKAsyDS5ub3JkLlRyaWdnZXISHgoHdHJpZ2dlchgEIAEoCzINLm5vcmQuVHJpZ2dlcho4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgahQEKEU1hcmtldE1vZGVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIlCgttYXJrZXRfbW9kZRgCIAEoDjIQLm5vcmQuTWFya2V0TW9kZRI2ChBjYW5jZWxsZWRfb3JkZXJzGAMgAygLMhwubm9yZC5SZWNlaXB0LkNhbmNlbGxlZE9yZGVyGm4KEEZlZVRpZXJUeXBlQWRkZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpwChJGZWVUaWVyVHlwZVVwZGF0ZWQSCgoCaWQYASABKA0SJQoLbWFya2V0X3R5cGUYAiABKA4yEC5ub3JkLk1hcmtldFR5cGUSJwoGY29uZmlnGAMgASgLMhcubm9yZC5GZWVUaWVyVHlwZUNvbmZpZxpqCh5BY2NvdW50c0ZlZVRpZXJUeXBlTW9kZVVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIlCgttYXJrZXRfdHlwZRgCIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIQCghhY2NvdW50cxgDIAMoDRpgCgpBY2xVcGRhdGVkEhIKCmFjbF9wdWJrZXkYASABKAwSEgoKcm9sZXNfbWFzaxgCIAEoBBIVCg10YXJnZXRfcHVia2V5GAMgASgMEhMKC3JvbGVzX3ZhbHVlGAQgASgEGuwDChlBdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kEjwKEnBsYWNlX29yZGVyX3Jlc3VsdBgBIAEoCzIeLm5vcmQuUmVjZWlwdC5QbGFjZU9yZGVyUmVzdWx0SAASNwoMY2FuY2VsX29yZGVyGAIgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASMwoNdHJpZ2dlcl9hZGRlZBgDIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYBCABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABI1Cg50cmlnZ2VyX2VkaXRlZBgFIAEoCzIbLm5vcmQuUmVjZWlwdC5UcmlnZ2VyRWRpdGVkSAASTgoYcmVkdWNlX29yZGVyX2xpcXVpZGF0aW9uGAYgASgLMioubm9yZC5SZWNlaXB0LlJlZHVjZU9yZGVyTGlxdWlkYXRpb25SZXN1bHRIABIqCgpyZnFfcmVzdWx0GAcgASgLMhQubm9yZC5QbGFjZVJGUVJlc3VsdEgAEi4KD3JmcV9maWxsX3Jlc3VsdBgIIAEoCzITLm5vcmQuRmlsbFJGUVJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKh8KCk1hcmtldE1vZGUSCAoEQ0xPQhAAEgcKA1JGURABKmMKDE1hcmtldFJlZ2ltZRIYChRNQVJLRVRfUkVHSU1FX05PUk1BTBAAEhsKF01BUktFVF9SRUdJTUVfUE9TVF9PTkxZEAESHAoYTUFSS0VUX1JFR0lNRV9UUkFERV9PTkxZEAIqLQoLVHJpZ2dlcktpbmQSDQoJU1RPUF9MT1NTEAASDwoLVEFLRV9QUk9GSVQQASokCgZJbnRlbnQSDAoIREVDUkVBU0UQABIMCghJTkNSRUFTRRABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKq4BCg1QbGFjZW1lbnRSb2xlEiAKHFBMQUNFTUVOVF9ST0xFX0FDQ09VTlRfT1dORVIQABIgChxQTEFDRU1FTlRfUk9MRV9WQVVMVF9NQU5BR0VSEAESHgoaUExBQ0VNRU5UX1JPTEVfU1VQRVJfQURNSU4QAhIaChZQTEFDRU1FTlRfUk9MRV9UUklHR0VSEAMSHQoZUExBQ0VNRU5UX1JPTEVfTElRVUlEQVRPUhAEKjEKE1NlbGZUcmFkZVByZXZlbnRpb24SCAoETk9ORRAAEhAKDEVYUElSRV9NQUtFUhABKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASp9ChBUcmlnZ2VyRXhlY0Vycm9yEg8KC05PX1BPU0lUSU9OEAASEwoPUExBTk5JTkdfRkFJTEVEEAESDgoKQkFOS1JVUFRDWRACEhUKEVJJU0tfQ0hFQ0tfRkFJTEVEEAMSHAoYUkVEVUNFX09OTFlfQ0hFQ0tfRkFJTEVEEAQqMAoOU3BlY2lhbEFjY291bnQSDQoJRkVFX1ZBVUxUEAASDwoLQ0xBSU1fVkFVTFQQASpdCgtWYXVsdFN0YXR1cxIXChNWQVVMVF9TVEFUVVNfQUNUSVZFEAASHAoYVkFVTFRfU1RBVFVTX0RFUklTS19PTkxZEAESFwoTVkFVTFRfU1RBVFVTX0ZST1pFThACKu4pCgVFcnJvchINCglEVVBMSUNBVEUQABIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIpCiVTT1VSQ0VfQU5EX1RBUkdFVF9TSE9VTERfTk9UX0JFX0VRVUFMEBgSEgoOREVDT0RFX0ZBSUxVUkUQIBIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSCwoHU0VTU0lPThAwEh8KG1NFU1NJT05fUkVGUkVTSF9OT1RfRU5BQkxFRBAxEioKJlNFU1NJT05fUkVGUkVTSF9ERUFETElORV9CRUZPUkVfRVhQSVJZEDISFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEggKBFRJRVIQcxIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQdBIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRB1EhIKDlRJRVJfTk9UX0ZPVU5EEHYSFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIWChFSRVBFQVRFRF9PUkRFUl9JRBCAARIeChlDTElFTlRfT1JERVJfSURfVE9PX0xBUkdFEIEBEhQKD1RPS0VOX05PVF9SRUFEWRCCARIdChhUT0tFTl9BTFJFQURZX1JFR0lTVEVSRUQQgwESIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIbChZTVUJBQ1RJT05fT1VUX09GX1JBTkdFEJABEhEKDERVU1RfQUNDT1VOVBCRARIMCgdCQUxBTkNFEKABEh0KGEJBTEFOQ0VfREVQT1NJVF9PVkVSRkxPVxChARIcChdCQUxBTkNFX0NIQU5HRV9PVkVSRkxPVxCiARIiCh1CQUxBTkNFX0NIQU5HRV9MSU1JVF9FWENFRURFRBCjARIZChRCQUxBTkNFX0lOU1VGRklDSUVOVBCkARIeChlVTkFVVEhFTlRJQ0FURURfTDFfQUNUSU9OEKUBEh0KGEVOQ09ERURfQUNUSU9OX1RPT19MQVJHRRCmARIMCgdUUklHR0VSEKgBEhoKFVRSSUdHRVJfSU5WQUxJRF9QUklDRRCpARIWChFUUklHR0VSX05PVF9GT1VORBCqARIrCiZUUklHR0VSX09OTFlfREVDUkVBU0VfT1JERVJTX1NVUFBPUlRFRBCrARIoCiNUUklHR0VSX01BWF9TSVpFX1BMQUNFTUVOVF9FWENFRURFRBCsARIYChNUUklHR0VSX05PVF9DSEFOR0VEEK0BEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESHAoYRVhQSVJZX1RJTUVTVEFNUF9JTl9QQVNUEBASJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEjAKK01BUktFVF9NT0RFX0RPRVNfTk9UX1NVUFBPUlRfVEhJU19PUEVSQVRJT04QwwESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARIUCg9SSVNLX05PVF9FTk9VR0gQ5gESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIMCgdBVE9NSUNTEIACEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIECEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQggISHQoYQVRPTUlDU19EVVBMSUNBVEVfQ0FOQ0VMEIMCEhgKE1JGUV9PUkRFUl9USU1FT1VURUQQ+gESJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIcChdBRE1JTl9ST0xFX0lOU1VGRklDSUVOVBCUAhIUCg9BRE1JTl9OT1RfRk9VTkQQlQISKQokVU5JUVVFX1NVUEVSX0FETUlOX0NBTk5PVF9CRV9SRU1PVkVEEJYCEh8KGlNVUEVSX0FETUlOX0FMUkVBRFlfRVhJU1RTEJcCEhUKEFRSSUdHRVJfQ09ORkxJQ1QQmAISGgoVVFJJR0dFUl9FRElUX0NPTkZMSUNUEJkCEhwKF1RSSUdHRVJfUkVNT1ZFX0NPTkZMSUNUEJoCEg0KCFRSQU5TRkVSEKACEi4KKVRSQU5TRkVSX1RPX1VOT1dORURfQUNDT1VOVF9JU19QUk9ISUJJVEVEEKECEiwKJ1RSQU5TRkVSX1RPX09XTkVEX0FDQ09VTlRfV0FTX1JFUVVFU1RFRBCiAhIqCiVUUkFOU0ZFUl9UT19DTEFJTV9WQVVMVF9JU19QUk9ISUJJVEVEEKMCEgoKBVZBVUxUEKgCEhQKD1ZBVUxUX05PVF9GT1VORBCpAhIdChhWQVVMVF9BQ1RJT05fTk9UX0FMTE9XRUQQqgISGQoUVkFVTFRfU1RBVFVTX0lOVkFMSUQQqwISJQogVkFVTFRfUkVEVUNFX09OTFlfT1JERVJfUkVRVUlSRUQQrAISJgohVkFVTFRfQUNUSU9OX1dPVUxEX0RFR1JBREVfU1RBVFVTEK0CEhkKFFZBVUxUX1VTRVJfTk9UX0ZPVU5EEK4CEh0KGFZBVUxUX1VTRVJfSEFTX05PX1NIQVJFUxCvAhIcChdWQVVMVF9QRVJNSVNTSU9OX0RFTklFRBC2AhISCg1WQVVMVF9ERVBPU0lUELACEjEKLFZBVUxUX0RFUE9TSVRfQk9PVFNUUkFQX1JFUVVJUkVTX0VNUFRZX1ZBVUxUELECEh8KGlZBVUxUX0RFUE9TSVRfQ0FQX0VYQ0VFREVEELICEikKJFZBVUxUX0RFUE9TSVRfUkVRVUlSRVNfQUNUSVZFX1NUQVRVUxCzAhIvCipWQVVMVF9ERVBPU0lUX0NBUF9CRUxPV19DVVJSRU5UX1JBV19FUVVJVFkQtAISHAoXVkFVTFRfREVQT1NJVF9UT09fU01BTEwQtQISEwoOVkFVTFRfV0lUSERSQVcQuAISHgoZVkFVTFRfSU5TVUZGSUNJRU5UX1NIQVJFUxC5AhIuCilWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19OT05fRlJPWkVOX1NUQVRVUxC6AhIiCh1WQVVMVF9OT19DTEFJTUFCTEVfV0lUSERSQVdBTBC7AhIlCiBWQVVMVF9XSVRIRFJBV19RVU9URV9VTkFWQUlMQUJMRRC8AhItCihWQVVMVF9EVVNUX0VYSVRfUkVRVUlSRVNfRlVMTF9TSEFSRV9FWElUEL0CEjUKMFZBVUxUX0xBU1RfU0hBUkVfV0lUSERSQVdfUkVRVUlSRVNfRU1QVFlfQUNDT1VOVBC+AhIoCiNWQVVMVF9XSVRIRFJBV19SRVFVSVJFU19MSVZFX1NIQVJFUxC/AhISCg1WQVVMVF9DT05UUk9MEMACEh0KGFZBVUxUX0VQT0NIX05PVF9FTElHSUJMRRDBAhIyCi1WQVVMVF9GUkVFWkVfVEhSRVNIT0xEX01VU1RfRVhDRUVEX1BST1RFQ1RJT04QwwISHQoYVkFVTFRfQ09ORklHX1BBVENIX0VNUFRZEMQCEigKI1ZBVUxUX05PX1NUQVRVU19UUkFOU0lUSU9OX1JFUVVJUkVEEMUCEi0KKFZBVUxUX0ZST1pFTl9TVEFUVVNfUkVRVUlSRVNfU1VQRVJfQURNSU4QxgISKgolVkFVTFRfTkVXX0NPTkZJR19XT1VMRF9ERUdSQURFX1NUQVRVUxDHAhIOCglSRlFfRVJST1IQyAISEAoLUkZRX1RJTUVPVVQQyQISCwoGQ09ORklHEMoCEhQKD05PVF9JTVBMRU1FTlRFRBD0AxIXChJBQ1RJT05fTk9UX0FMTE9XRUQQ9QMSGAoTTk9UX1NVUFBPUlRFRF9JTlBVVBD2AxIMCgdEUk9QUEVEEOcHYgZwcm90bzM");
28745
28745
  var U128Schema = /* @__PURE__ */ messageDesc(file_nord, 0);
28746
28746
  var RfqTradeSchema = /* @__PURE__ */ messageDesc(file_nord, 1);
28747
28747
  var RfqPlaceOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 2);
@@ -28761,166 +28761,166 @@ var RfqTradeReceipt_FailureReason;
28761
28761
  })(RfqTradeReceipt_FailureReason ||= {});
28762
28762
  var RfqTradeReceipt_FailureReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 7, 0);
28763
28763
  var PlaceRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 8);
28764
- var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
28765
- var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
28766
- var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
28767
- var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
28768
- var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
28769
- var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
28770
- var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
28771
- var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
28772
- var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
28773
- var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
28774
- var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
28775
- var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
28776
- var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
28777
- var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
28778
- var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
28779
- var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
28780
- var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
28781
- var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 25, 0);
28782
- var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 25, 1);
28783
- var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
28784
- var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
28785
- var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
28786
- var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
28787
- var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
28788
- var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
28789
- var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
28790
- var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
28791
- var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
28792
- var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
28793
- var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 35, 0);
28794
- var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 35, 1);
28795
- var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
28796
- var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
28797
- var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
28798
- var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
28799
- var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
28800
- var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
28801
- var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
28802
- var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
28803
- var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
28804
- var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 45);
28805
- var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 46);
28806
- var AtomicPlacementRequestSchema = /* @__PURE__ */ messageDesc(file_nord, 47);
28807
- var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 48);
28808
- var AtomicSubactionV2Schema = /* @__PURE__ */ messageDesc(file_nord, 49);
28764
+ var RFQExecutionSchema = /* @__PURE__ */ messageDesc(file_nord, 9);
28765
+ var FillRFQResultSchema = /* @__PURE__ */ messageDesc(file_nord, 10);
28766
+ var RfqMakersSetSchema = /* @__PURE__ */ messageDesc(file_nord, 11);
28767
+ var RFQQtyPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 12);
28768
+ var FeeTierConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 13);
28769
+ var FeeTierTypeConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 14);
28770
+ var MarketSchema = /* @__PURE__ */ messageDesc(file_nord, 15);
28771
+ var TokenSchema = /* @__PURE__ */ messageDesc(file_nord, 16);
28772
+ var VaultHealthSchema = /* @__PURE__ */ messageDesc(file_nord, 17);
28773
+ var VaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 18);
28774
+ var VaultConfigPatchSchema = /* @__PURE__ */ messageDesc(file_nord, 19);
28775
+ var CreateVaultSchema = /* @__PURE__ */ messageDesc(file_nord, 20);
28776
+ var UpdateVaultConfigSchema = /* @__PURE__ */ messageDesc(file_nord, 21);
28777
+ var SetVaultManagerSchema = /* @__PURE__ */ messageDesc(file_nord, 22);
28778
+ var VaultSyncEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 23);
28779
+ var StagedAdminActionSchema = /* @__PURE__ */ messageDesc(file_nord, 24);
28780
+ var AdminActionKindSchema = /* @__PURE__ */ messageDesc(file_nord, 25);
28781
+ var VaultDepositSchema = /* @__PURE__ */ messageDesc(file_nord, 26);
28782
+ var VaultWithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 27);
28783
+ var VaultWithdraw_RequestSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 0);
28784
+ var VaultWithdraw_ClaimSchema = /* @__PURE__ */ messageDesc(file_nord, 27, 1);
28785
+ var CreateVaultReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 28);
28786
+ var UpdateVaultConfigReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 29);
28787
+ var SetVaultManagerReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 30);
28788
+ var VaultSyncEpochsReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 31);
28789
+ var VaultDepositReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 32);
28790
+ var WithdrawalBucketsSchema = /* @__PURE__ */ messageDesc(file_nord, 33);
28791
+ var VaultPpsRefSchema = /* @__PURE__ */ messageDesc(file_nord, 34);
28792
+ var VaultEpochsSchema = /* @__PURE__ */ messageDesc(file_nord, 35);
28793
+ var VaultUserStateSchema = /* @__PURE__ */ messageDesc(file_nord, 36);
28794
+ var VaultWithdrawReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 37);
28795
+ var VaultWithdrawReceipt_RequestedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 0);
28796
+ var VaultWithdrawReceipt_ClaimedSchema = /* @__PURE__ */ messageDesc(file_nord, 37, 1);
28797
+ var OrderLimitSchema = /* @__PURE__ */ messageDesc(file_nord, 38);
28798
+ var PlaceTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 39);
28799
+ var TradeOrPlaceSchema = /* @__PURE__ */ messageDesc(file_nord, 40);
28800
+ var AtomicCancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 41);
28801
+ var AtomicCancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 42);
28802
+ var AtomicAddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 43);
28803
+ var AtomicEditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 44);
28804
+ var AtomicRemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 45);
28805
+ var ReduceOrderLiquidationSchema = /* @__PURE__ */ messageDesc(file_nord, 46);
28806
+ var AtomicSubactionKindV1Schema = /* @__PURE__ */ messageDesc(file_nord, 47);
28807
+ var AtomicV1Schema = /* @__PURE__ */ messageDesc(file_nord, 48);
28808
+ var AtomicSubactionSchema = /* @__PURE__ */ messageDesc(file_nord, 49);
28809
28809
  var AtomicSchema = /* @__PURE__ */ messageDesc(file_nord, 50);
28810
- var AtomicV2Schema = /* @__PURE__ */ messageDesc(file_nord, 51);
28811
- var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
28812
- var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
28813
- var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
28814
- var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
28815
- var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
28816
- var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
28817
- var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
28818
- var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
28819
- var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
28820
- var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
28821
- var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
28822
- var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
28823
- var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
28824
- var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
28825
- var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
28826
- var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
28827
- var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
28828
- var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
28829
- var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
28830
- var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
28831
- var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
28832
- var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16, 0);
28833
- var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
28834
- var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
28835
- var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
28836
- var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
28837
- var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
28838
- var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
28839
- var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
28840
- var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 0);
28841
- var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 1);
28842
- var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23, 2);
28843
- var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
28844
- var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
28845
- var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
28846
- var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
28847
- var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
28848
- var Action_AddFeeTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
28849
- var Action_UpdateFeeTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
28850
- var Action_UpdateAccountsTierSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
28851
- var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
28852
- var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
28853
- var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
28854
- var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
28855
- var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
28856
- var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
28810
+ var PythLazerTrustedSignerSchema = /* @__PURE__ */ messageDesc(file_nord, 51);
28811
+ var TriggerRecordSchema = /* @__PURE__ */ messageDesc(file_nord, 52);
28812
+ var TriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 53);
28813
+ var ActionSchema = /* @__PURE__ */ messageDesc(file_nord, 54);
28814
+ var Action_CreateSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 0);
28815
+ var Action_CreateTokenSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 1);
28816
+ var Action_SetMarketModeCLOBTradingOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 2);
28817
+ var Action_SetMarketModeCLOBPostOnlySchema = /* @__PURE__ */ messageDesc(file_nord, 54, 3);
28818
+ var Action_SetMarketModeCLOBSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 4);
28819
+ var Action_CreateMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 5);
28820
+ var Action_PlaceOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 6);
28821
+ var Action_CancelOrderByIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 7);
28822
+ var Action_CancelOrderByClientIdSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 8);
28823
+ var Action_DepositSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 9);
28824
+ var Action_WithdrawSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 10);
28825
+ var Action_PythSetWormholeGuardiansSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 11);
28826
+ var Action_PythSetSymbolFeedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 12);
28827
+ var Action_PythPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 13);
28828
+ var Action_PythLazerPriceFeedUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 14);
28829
+ var Action_PythLazerSetTrustedSignersSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 15);
28830
+ var Action_PythLazerSetFeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16);
28831
+ var Action_PythLazerSetFeedSymbol_FeedSymbolInputSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 16, 0);
28832
+ var Action_RevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 17);
28833
+ var Action_RefreshSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 18);
28834
+ var Action_SelfRevokeSessionSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 19);
28835
+ var Action_PauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 20);
28836
+ var Action_UnpauseSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 21);
28837
+ var Action_SetBackstopAccountSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 22);
28838
+ var Action_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23);
28839
+ var Action_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 0);
28840
+ var Action_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 1);
28841
+ var Action_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 23, 2);
28842
+ var Action_TransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 24);
28843
+ var Action_FeeVaultTransferSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 25);
28844
+ var Action_AddTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 26);
28845
+ var Action_EditTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 27);
28846
+ var Action_RemoveTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 28);
28847
+ var Action_AddFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 29);
28848
+ var Action_UpdateFeeTierTypeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 30);
28849
+ var Action_UpdateAccountsFeeTierTypeModeSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 31);
28850
+ var Action_UpdateAclSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 32);
28851
+ var Action_FreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 33);
28852
+ var Action_UnfreezeMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 34);
28853
+ var Action_ClearMarketSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 35);
28854
+ var Action_ExecuteTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 36);
28855
+ var Action_TakeAllPositionsSchema = /* @__PURE__ */ messageDesc(file_nord, 54, 37);
28857
28856
  var Action_UserSignatureFraming;
28858
28857
  ((Action_UserSignatureFraming2) => {
28859
28858
  Action_UserSignatureFraming2[Action_UserSignatureFraming2["HEX"] = 0] = "HEX";
28860
28859
  Action_UserSignatureFraming2[Action_UserSignatureFraming2["SOLANA_TRANSACTION"] = 1] = "SOLANA_TRANSACTION";
28861
28860
  })(Action_UserSignatureFraming ||= {});
28862
- var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 0);
28863
- var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56);
28864
- var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 0);
28865
- var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 1);
28866
- var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 2);
28867
- var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 3);
28868
- var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 4);
28861
+ var Action_UserSignatureFramingSchema = /* @__PURE__ */ enumDesc(file_nord, 54, 0);
28862
+ var ReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55);
28863
+ var Receipt_PostedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 0);
28864
+ var Receipt_TradeSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 1);
28865
+ var Receipt_CreateSessionResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 2);
28866
+ var Receipt_CancelledTriggerSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 3);
28867
+ var Receipt_OrderUpdateSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 4);
28869
28868
  var Receipt_OrderUpdate_Reason;
28870
28869
  ((Receipt_OrderUpdate_Reason2) => {
28871
28870
  Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["REDUCE_ONLY"] = 0] = "REDUCE_ONLY";
28872
28871
  Receipt_OrderUpdate_Reason2[Receipt_OrderUpdate_Reason2["SELF_TRADE_PREVENTION"] = 1] = "SELF_TRADE_PREVENTION";
28873
28872
  })(Receipt_OrderUpdate_Reason ||= {});
28874
- var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 56, 4, 0);
28875
- var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 5);
28876
- var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 6);
28877
- var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 7);
28878
- var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 8);
28879
- var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 9);
28880
- var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 10);
28881
- var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 11);
28882
- var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 12);
28883
- var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 13);
28884
- var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 14);
28885
- var Receipt_ClearMarketCancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 15);
28886
- var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 16);
28887
- var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 17);
28888
- var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 18);
28889
- var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 19);
28890
- var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 20);
28891
- var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 21);
28892
- var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 22);
28893
- var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 23);
28894
- var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 24);
28895
- var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 25);
28896
- var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 26);
28897
- var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 27);
28898
- var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 27, 0);
28899
- var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 28);
28900
- var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 29);
28901
- var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 30);
28902
- var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 31);
28903
- var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 32);
28904
- var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 33);
28905
- var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 34);
28906
- var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 35);
28907
- var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36);
28908
- var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 0);
28909
- var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 1);
28910
- var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 36, 2);
28911
- var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 37);
28912
- var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 38);
28913
- var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 39);
28914
- var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 40);
28915
- var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 41);
28916
- var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 42);
28917
- var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 43);
28918
- var Receipt_FeeTierAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 44);
28919
- var Receipt_FeeTierUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 45);
28920
- var Receipt_AccountsTierUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 46);
28921
- var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 47);
28922
- var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 48);
28923
- var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 56, 49);
28873
+ var Receipt_OrderUpdate_ReasonSchema = /* @__PURE__ */ enumDesc(file_nord, 55, 4, 0);
28874
+ var Receipt_PlaceOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 5);
28875
+ var Receipt_ReduceOrderLiquidationResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 6);
28876
+ var Receipt_PlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 7);
28877
+ var Receipt_AccountPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 8);
28878
+ var Receipt_VaultPlacementReceiptSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 9);
28879
+ var Receipt_TriggerExecutedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 10);
28880
+ var Receipt_TakeAllBalanceSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 11);
28881
+ var Receipt_TakeAllPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 12);
28882
+ var Receipt_TakeAllOrderUpdatesSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 13);
28883
+ var Receipt_TakeAllTakerResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 14);
28884
+ var Receipt_TakeAllPositionsResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 15);
28885
+ var Receipt_CancelledOrderSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 16);
28886
+ var Receipt_ClearMarketClosedPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 17);
28887
+ var Receipt_ClearMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 18);
28888
+ var Receipt_CancelOrderResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 19);
28889
+ var Receipt_DepositResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 20);
28890
+ var Receipt_InsertTokenResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 21);
28891
+ var Receipt_InsertMarketResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 22);
28892
+ var Receipt_WithdrawResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 23);
28893
+ var Receipt_OracleSymbolFeedResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 24);
28894
+ var Receipt_OracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 25);
28895
+ var Receipt_PythLazerOracleUpdateResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 26);
28896
+ var Receipt_PythLazerTrustedSignersSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 27);
28897
+ var Receipt_PythLazerFeedSymbolSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28);
28898
+ var Receipt_PythLazerFeedSymbolSetResult_FeedSymbolSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 28, 0);
28899
+ var Receipt_UpdateGuardianSetResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 29);
28900
+ var Receipt_PerpPositionSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 30);
28901
+ var Receipt_SessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 31);
28902
+ var Receipt_SelfSessionRevokedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 32);
28903
+ var Receipt_SessionRefreshedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 33);
28904
+ var Receipt_PausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 34);
28905
+ var Receipt_UnpausedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 35);
28906
+ var Receipt_BackstopAccountSetSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 36);
28907
+ var Receipt_RecipientSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37);
28908
+ var Receipt_Recipient_SpecialSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 0);
28909
+ var Receipt_Recipient_OwnedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 1);
28910
+ var Receipt_Recipient_UnownedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 37, 2);
28911
+ var Receipt_TransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 38);
28912
+ var Receipt_FeeVaultTransferredSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 39);
28913
+ var Receipt_TriggerAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 40);
28914
+ var Receipt_TriggerRemovedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 41);
28915
+ var Receipt_TriggerEditedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 42);
28916
+ var Receipt_MarketFreezeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 43);
28917
+ var Receipt_MarketModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 44);
28918
+ var Receipt_FeeTierTypeAddedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 45);
28919
+ var Receipt_FeeTierTypeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 46);
28920
+ var Receipt_AccountsFeeTierTypeModeUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 47);
28921
+ var Receipt_AclUpdatedSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 48);
28922
+ var Receipt_AtomicSubactionResultKindSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 49);
28923
+ var Receipt_AtomicResultSchema = /* @__PURE__ */ messageDesc(file_nord, 55, 50);
28924
28924
  var Side;
28925
28925
  ((Side2) => {
28926
28926
  Side2[Side2["ASK"] = 0] = "ASK";
@@ -28993,6 +28993,7 @@ var TriggerExecErrorSchema = /* @__PURE__ */ enumDesc(file_nord, 9);
28993
28993
  var SpecialAccount;
28994
28994
  ((SpecialAccount2) => {
28995
28995
  SpecialAccount2[SpecialAccount2["FEE_VAULT"] = 0] = "FEE_VAULT";
28996
+ SpecialAccount2[SpecialAccount2["CLAIM_VAULT"] = 1] = "CLAIM_VAULT";
28996
28997
  })(SpecialAccount ||= {});
28997
28998
  var SpecialAccountSchema = /* @__PURE__ */ enumDesc(file_nord, 10);
28998
28999
  var VaultStatus;
@@ -29141,6 +29142,7 @@ var Error2;
29141
29142
  Error3[Error3["TRANSFER"] = 288] = "TRANSFER";
29142
29143
  Error3[Error3["TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED"] = 289] = "TRANSFER_TO_UNOWNED_ACCOUNT_IS_PROHIBITED";
29143
29144
  Error3[Error3["TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED"] = 290] = "TRANSFER_TO_OWNED_ACCOUNT_WAS_REQUESTED";
29145
+ Error3[Error3["TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED"] = 291] = "TRANSFER_TO_CLAIM_VAULT_IS_PROHIBITED";
29144
29146
  Error3[Error3["VAULT"] = 296] = "VAULT";
29145
29147
  Error3[Error3["VAULT_NOT_FOUND"] = 297] = "VAULT_NOT_FOUND";
29146
29148
  Error3[Error3["VAULT_ACTION_NOT_ALLOWED"] = 298] = "VAULT_ACTION_NOT_ALLOWED";
@@ -29166,7 +29168,6 @@ var Error2;
29166
29168
  Error3[Error3["VAULT_WITHDRAW_REQUIRES_LIVE_SHARES"] = 319] = "VAULT_WITHDRAW_REQUIRES_LIVE_SHARES";
29167
29169
  Error3[Error3["VAULT_CONTROL"] = 320] = "VAULT_CONTROL";
29168
29170
  Error3[Error3["VAULT_EPOCH_NOT_ELIGIBLE"] = 321] = "VAULT_EPOCH_NOT_ELIGIBLE";
29169
- Error3[Error3["VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE"] = 322] = "VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE";
29170
29171
  Error3[Error3["VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION"] = 323] = "VAULT_FREEZE_THRESHOLD_MUST_EXCEED_PROTECTION";
29171
29172
  Error3[Error3["VAULT_CONFIG_PATCH_EMPTY"] = 324] = "VAULT_CONFIG_PATCH_EMPTY";
29172
29173
  Error3[Error3["VAULT_NO_STATUS_TRANSITION_REQUIRED"] = 325] = "VAULT_NO_STATUS_TRANSITION_REQUIRED";
@@ -29174,6 +29175,7 @@ var Error2;
29174
29175
  Error3[Error3["VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS"] = 327] = "VAULT_NEW_CONFIG_WOULD_DEGRADE_STATUS";
29175
29176
  Error3[Error3["RFQ_ERROR"] = 328] = "RFQ_ERROR";
29176
29177
  Error3[Error3["RFQ_TIMEOUT"] = 329] = "RFQ_TIMEOUT";
29178
+ Error3[Error3["CONFIG"] = 330] = "CONFIG";
29177
29179
  Error3[Error3["NOT_IMPLEMENTED"] = 500] = "NOT_IMPLEMENTED";
29178
29180
  Error3[Error3["ACTION_NOT_ALLOWED"] = 501] = "ACTION_NOT_ALLOWED";
29179
29181
  Error3[Error3["NOT_SUPPORTED_INPUT"] = 502] = "NOT_SUPPORTED_INPUT";
@@ -81727,18 +81729,34 @@ class Nord {
81727
81729
  markets = [];
81728
81730
  tokens = [];
81729
81731
  symbolToMarketId = new Map;
81730
- protonClient;
81732
+ protonConfig;
81733
+ protonClientPromise;
81731
81734
  httpClient;
81732
81735
  constructor({
81733
81736
  solanaConnection,
81734
81737
  webServerUrl,
81735
- protonClient
81738
+ protonConfig
81736
81739
  }) {
81737
81740
  this.webServerUrl = webServerUrl;
81738
81741
  this.solanaConnection = solanaConnection;
81739
- this.protonClient = protonClient;
81742
+ this.protonConfig = protonConfig;
81740
81743
  this.httpClient = createClient({ baseUrl: webServerUrl });
81741
81744
  }
81745
+ getProtonClient() {
81746
+ if (this.protonClientPromise === undefined) {
81747
+ const initialization = ProtonClient.init({
81748
+ ...this.protonConfig,
81749
+ solConn: this.solanaConnection
81750
+ });
81751
+ this.protonClientPromise = initialization;
81752
+ initialization.catch(() => {
81753
+ if (this.protonClientPromise === initialization) {
81754
+ this.protonClientPromise = undefined;
81755
+ }
81756
+ });
81757
+ }
81758
+ return this.protonClientPromise;
81759
+ }
81742
81760
  createWebSocketClient({
81743
81761
  trades,
81744
81762
  deltas,
@@ -81865,15 +81883,13 @@ class Nord {
81865
81883
  webServerUrl,
81866
81884
  protonUrl
81867
81885
  }) {
81868
- const protonClient = await ProtonClient.init({
81869
- protonUrl: protonUrl ?? webServerUrl,
81870
- app: new PublicKey(app),
81871
- solConn: solanaConnection
81872
- });
81873
81886
  const nord = new Nord({
81874
- protonClient,
81875
81887
  solanaConnection,
81876
- webServerUrl
81888
+ webServerUrl,
81889
+ protonConfig: {
81890
+ protonUrl: protonUrl ?? webServerUrl,
81891
+ app: new PublicKey(app)
81892
+ }
81877
81893
  });
81878
81894
  await nord.init();
81879
81895
  return nord;
@@ -82199,6 +82215,14 @@ class Nord {
82199
82215
  }
82200
82216
  });
82201
82217
  }
82218
+ async getAccountPositionSummary(accountId, { marketId } = {}) {
82219
+ return await this.GET("/account/{account_id}/position/summary", {
82220
+ params: {
82221
+ path: { account_id: accountId },
82222
+ query: { marketId: marketId ?? undefined }
82223
+ }
82224
+ });
82225
+ }
82202
82226
  async getMarketsLive() {
82203
82227
  return await this.GET("/markets/live", {});
82204
82228
  }
@@ -82996,7 +83020,11 @@ function normalizeAtomicReceipt(resp, actionCount) {
82996
83020
  }
82997
83021
  return;
82998
83022
  }
82999
- function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = false) {
83023
+ function atomicSubactionToProto(currentTimestamp, a2) {
83024
+ const target = {
83025
+ targetAccountId: a2.targetAccountId,
83026
+ useKey: a2.useKey
83027
+ };
83000
83028
  if (a2.kind === "place") {
83001
83029
  const price = toScaledU64(a2.price ?? 0, a2.priceDecimals);
83002
83030
  const size = toScaledU64(a2.size ?? 0, a2.sizeDecimals);
@@ -83018,16 +83046,16 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83018
83046
  referrer: a2.referrer === undefined ? undefined : toProtoU128(a2.referrer)
83019
83047
  });
83020
83048
  return create(AtomicSubactionSchema, {
83021
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
83049
+ ...target,
83022
83050
  inner: { case: "tradeOrPlace", value: tradeOrPlace }
83023
83051
  });
83024
83052
  }
83025
83053
  if (a2.kind === "reduceOrderLiquidation") {
83026
83054
  return create(AtomicSubactionSchema, {
83055
+ ...target,
83027
83056
  inner: {
83028
83057
  case: "reduceOrderLiquidation",
83029
83058
  value: create(ReduceOrderLiquidationSchema, {
83030
- targetAccountId: a2.targetAccountId,
83031
83059
  marketId: a2.marketId
83032
83060
  })
83033
83061
  }
@@ -83036,9 +83064,13 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83036
83064
  if (a2.kind === "rfq") {
83037
83065
  const price = toScaledU64(a2.price, a2.priceDecimals);
83038
83066
  const size = toScaledU64(a2.size, a2.sizeDecimals);
83067
+ const minimalFill = a2.minimalFill !== undefined ? toScaledU64(a2.minimalFill, a2.sizeDecimals) : undefined;
83068
+ if (minimalFill !== undefined) {
83069
+ assert4(minimalFill > 0n, "minimalFill must be greater than 0");
83070
+ }
83039
83071
  const timestampMillis = currentTimestamp * 1000n;
83040
83072
  return create(AtomicSubactionSchema, {
83041
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
83073
+ ...target,
83042
83074
  inner: {
83043
83075
  case: "rfqPlaceOnly",
83044
83076
  value: create(RfqPlaceOnlySchema, {
@@ -83047,17 +83079,21 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83047
83079
  clientOrderId: a2.clientOrderId === undefined ? undefined : BigInt(a2.clientOrderId),
83048
83080
  price,
83049
83081
  side: a2.side === "bid" /* Bid */ ? 1 /* BID */ : 0 /* ASK */,
83050
- base: size,
83051
- timestampMillis
83082
+ timestampMillis,
83083
+ size,
83084
+ minimalFill,
83085
+ isReduceOnly: a2.isReduceOnly
83052
83086
  })
83053
83087
  }
83054
83088
  });
83055
83089
  }
83056
83090
  if (a2.kind === "rfqFill") {
83057
83091
  const price = toScaledU64(a2.price, a2.priceDecimals);
83092
+ const minimumSize = a2.minimumSize !== undefined ? toScaledU64(a2.minimumSize, a2.sizeDecimals) : undefined;
83093
+ const maximumSize = a2.maximumSize !== undefined ? toScaledU64(a2.maximumSize, a2.sizeDecimals) : undefined;
83058
83094
  const timestampMillis = currentTimestamp * 1000n;
83059
83095
  return create(AtomicSubactionSchema, {
83060
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
83096
+ ...target,
83061
83097
  inner: {
83062
83098
  case: "rfqTrade",
83063
83099
  value: create(RfqTradeSchema, {
@@ -83065,14 +83101,17 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83065
83101
  marketId: a2.marketId,
83066
83102
  orderId: BigInt(a2.orderId),
83067
83103
  price,
83068
- timestampMillis
83104
+ timestampMillis,
83105
+ minimumSize,
83106
+ maximumSize,
83107
+ isReduceOnly: a2.isReduceOnly
83069
83108
  })
83070
83109
  }
83071
83110
  });
83072
83111
  }
83073
83112
  if (a2.kind === "cancelByClientId") {
83074
83113
  return create(AtomicSubactionSchema, {
83075
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
83114
+ ...target,
83076
83115
  inner: {
83077
83116
  case: "cancelOrderByClientId",
83078
83117
  value: create(AtomicCancelOrderByClientIdSchema, {
@@ -83086,6 +83125,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83086
83125
  assert4(triggerPrice > 0n, "Trigger price must be positive");
83087
83126
  const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
83088
83127
  return create(AtomicSubactionSchema, {
83128
+ ...target,
83089
83129
  inner: {
83090
83130
  case: "addTrigger",
83091
83131
  value: create(AtomicAddTriggerSchema, {
@@ -83107,6 +83147,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83107
83147
  assert4(triggerPrice > 0n, "Trigger price must be positive");
83108
83148
  const limits = buildLimits(a2.priceDecimals, a2.sizeDecimals, a2.limitPrice, a2.limitBaseSize, a2.limitQuoteSize);
83109
83149
  return create(AtomicSubactionSchema, {
83150
+ ...target,
83110
83151
  inner: {
83111
83152
  case: "editTrigger",
83112
83153
  value: create(AtomicEditTriggerSchema, {
@@ -83124,6 +83165,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83124
83165
  }
83125
83166
  if (a2.kind === "removeTrigger") {
83126
83167
  return create(AtomicSubactionSchema, {
83168
+ ...target,
83127
83169
  inner: {
83128
83170
  case: "removeTrigger",
83129
83171
  value: create(AtomicRemoveTriggerSchema, {
@@ -83134,7 +83176,7 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83134
83176
  });
83135
83177
  }
83136
83178
  return create(AtomicSubactionSchema, {
83137
- delegatorAccountId: omitDelegatorAccountId ? undefined : a2.delegatorAccountId,
83179
+ ...target,
83138
83180
  inner: {
83139
83181
  case: "cancelOrder",
83140
83182
  value: create(AtomicCancelOrderByIdSchema, {
@@ -83143,53 +83185,10 @@ function atomicSubactionToProto(currentTimestamp, a2, omitDelegatorAccountId = f
83143
83185
  }
83144
83186
  });
83145
83187
  }
83146
- function atomicPlacement(a2) {
83147
- return "placement" in a2 ? a2.placement : undefined;
83148
- }
83149
- async function atomic(client2, signFn, currentTimestamp, nonce, params) {
83188
+ function createAtomicAction(currentTimestamp, nonce, params) {
83150
83189
  assert4(params.actions.length > 0 && params.actions.length <= 10, "Atomic action must contain between 1 and 10 sub-actions");
83151
- const useAtomicV2 = params.actions.some((a2) => a2.kind === "reduceOrderLiquidation" || atomicPlacement(a2) !== undefined);
83152
- const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2, useAtomicV2));
83153
- const action = createAction(currentTimestamp, nonce, useAtomicV2 ? {
83154
- case: "atomicV2",
83155
- value: create(AtomicV2Schema, {
83156
- sessionId: BigInt(params.sessionId),
83157
- accountId: params.accountId,
83158
- actions: params.actions.map((a2, index) => {
83159
- const subaction = subactions[index];
83160
- assert4(subaction !== undefined, "Atomic subaction missing");
83161
- let placement;
83162
- const placementRequest = atomicPlacement(a2);
83163
- if (placementRequest === undefined) {
83164
- if ("delegatorAccountId" in a2 && a2.delegatorAccountId !== undefined) {
83165
- placement = create(AtomicPlacementRequestSchema, {
83166
- inner: {
83167
- case: "liquidationAccountId",
83168
- value: a2.delegatorAccountId
83169
- }
83170
- });
83171
- }
83172
- } else if (placementRequest !== "accountOwner") {
83173
- if ("vault" in placementRequest) {
83174
- placement = create(AtomicPlacementRequestSchema, {
83175
- inner: { case: "vaultId", value: placementRequest.vault }
83176
- });
83177
- } else {
83178
- placement = create(AtomicPlacementRequestSchema, {
83179
- inner: {
83180
- case: "liquidationAccountId",
83181
- value: placementRequest.liquidation
83182
- }
83183
- });
83184
- }
83185
- }
83186
- return create(AtomicSubactionV2Schema, {
83187
- placement,
83188
- subaction
83189
- });
83190
- })
83191
- })
83192
- } : {
83190
+ const subactions = params.actions.map((a2) => atomicSubactionToProto(currentTimestamp, a2));
83191
+ return createAction(currentTimestamp, nonce, {
83193
83192
  case: "atomic",
83194
83193
  value: create(AtomicSchema, {
83195
83194
  sessionId: BigInt(params.sessionId),
@@ -83197,6 +83196,9 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
83197
83196
  actions: subactions
83198
83197
  })
83199
83198
  });
83199
+ }
83200
+ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
83201
+ const action = createAtomicAction(currentTimestamp, nonce, params);
83200
83202
  const resp = await sendAction(client2, (m2) => sessionSign(signFn, m2), action);
83201
83203
  const results = normalizeAtomicReceipt(resp, params.actions.length);
83202
83204
  if (results !== undefined) {
@@ -83209,17 +83211,25 @@ async function atomic(client2, signFn, currentTimestamp, nonce, params) {
83209
83211
  }
83210
83212
 
83211
83213
  // src/client/NordUser.ts
83214
+ function withAtomicTarget(target, action) {
83215
+ const targetFields = target.targetAccountId === undefined ? {} : target.useKey === true ? { targetAccountId: target.targetAccountId, useKey: true } : { targetAccountId: target.targetAccountId };
83216
+ return { ...targetFields, ...action };
83217
+ }
83212
83218
  function decodeRfqFillResult(actionId, result) {
83213
83219
  if (result?.case !== "rfqFillResult") {
83214
83220
  throw new NordError("RFQ fill did not return an RFQ fill result");
83215
83221
  }
83222
+ const execution = result.value.execution;
83216
83223
  return {
83217
83224
  actionId,
83218
83225
  orderId: result.value.orderId,
83219
83226
  makerAccountId: result.value.makerAccountId,
83220
83227
  takerAccountId: result.value.takerAccountId,
83221
- filledSize: result.value.filledSize ?? null,
83222
- tradeId: result.value.tradeId ?? null
83228
+ execution: execution === undefined ? null : {
83229
+ filledSize: execution.filledSize,
83230
+ tradeId: execution.tradeId,
83231
+ executionPrice: execution.executionPrice
83232
+ }
83223
83233
  };
83224
83234
  }
83225
83235
 
@@ -83344,7 +83354,8 @@ class NordUser {
83344
83354
  const mint = new PublicKey(tokenInfo.mint);
83345
83355
  const fromAccount = await this.getAssociatedTokenAccount(mint);
83346
83356
  const payer = this.publicKey;
83347
- const { ix, extraSigner } = await this.nord.protonClient.buildDepositIx({
83357
+ const protonClient = await this.nord.getProtonClient();
83358
+ const { ix, extraSigner } = await protonClient.buildDepositIx({
83348
83359
  payer,
83349
83360
  recipient: recipient ?? payer,
83350
83361
  quantAmount: floatToScaledBigIntLossy(amount, tokenInfo.precision),
@@ -83744,7 +83755,9 @@ class NordUser {
83744
83755
  price,
83745
83756
  timeout,
83746
83757
  accountId,
83747
- clientOrderId
83758
+ clientOrderId,
83759
+ minimalFill,
83760
+ isReduceOnly
83748
83761
  }) {
83749
83762
  try {
83750
83763
  const result = await this.atomic([
@@ -83755,7 +83768,9 @@ class NordUser {
83755
83768
  size,
83756
83769
  price,
83757
83770
  timeout,
83758
- clientOrderId
83771
+ clientOrderId,
83772
+ minimalFill,
83773
+ isReduceOnly
83759
83774
  }
83760
83775
  ], accountId);
83761
83776
  const rfqResult = result.results[0]?.inner;
@@ -83775,7 +83790,10 @@ class NordUser {
83775
83790
  orderId,
83776
83791
  price,
83777
83792
  timeout,
83778
- accountId
83793
+ accountId,
83794
+ minimumSize,
83795
+ maximumSize,
83796
+ isReduceOnly
83779
83797
  }) {
83780
83798
  try {
83781
83799
  const result = await this.atomic([
@@ -83784,7 +83802,10 @@ class NordUser {
83784
83802
  marketId,
83785
83803
  orderId,
83786
83804
  price,
83787
- timeout
83805
+ timeout,
83806
+ minimumSize,
83807
+ maximumSize,
83808
+ isReduceOnly
83788
83809
  }
83789
83810
  ], accountId);
83790
83811
  return decodeRfqFillResult(result.actionId, result.results[0]?.inner);
@@ -83828,24 +83849,26 @@ class NordUser {
83828
83849
  });
83829
83850
  return {
83830
83851
  actionId: receipt.actionId,
83831
- takerAccountId: receipt.takerAccountId,
83832
- takenBalances: receipt.takenBalances.map((balance) => {
83833
- const token = findToken(this.nord.tokens, balance.tokenId);
83834
- return {
83835
- tokenId: balance.tokenId,
83836
- amount: fromScaledBigInt(balance.amount, token.decimals)
83837
- };
83838
- }),
83839
- takenPositions: receipt.takenPositions.map((position) => {
83840
- const market = findMarket(this.nord.markets, position.marketId);
83841
- const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
83842
- return {
83843
- marketId: position.marketId,
83844
- baseSize,
83845
- settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
83846
- bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
83847
- };
83848
- })
83852
+ takers: receipt.takers.map((taker) => ({
83853
+ takerAccountId: taker.takerAccountId,
83854
+ takenBalances: taker.takenBalances.map((balance) => {
83855
+ const token = findToken(this.nord.tokens, balance.tokenId);
83856
+ return {
83857
+ tokenId: balance.tokenId,
83858
+ amount: fromScaledBigInt(balance.amount, token.decimals)
83859
+ };
83860
+ }),
83861
+ takenPositions: taker.takenPositions.map((position) => {
83862
+ const market = findMarket(this.nord.markets, position.marketId);
83863
+ const baseSize = fromScaledBigInt(position.baseSize, market.sizeDecimals);
83864
+ return {
83865
+ marketId: position.marketId,
83866
+ baseSize,
83867
+ settlementPrice: fromScaledBigInt(position.settlementPrice, market.priceDecimals),
83868
+ bankruptcyPrice: qtyDivSize(fromU128Parts(optExpect(position.bankruptcyQuote, "Missing TakeAll bankruptcy quote")), position.baseSize, market.priceDecimals, market.sizeDecimals)
83869
+ };
83870
+ })
83871
+ }))
83849
83872
  };
83850
83873
  } catch (error) {
83851
83874
  throw new NordError("Failed to take positions", { cause: error });
@@ -84114,7 +84137,7 @@ class NordUser {
84114
84137
  if (!market) {
84115
84138
  throw new NordError(`Market ${act.marketId} not found`);
84116
84139
  }
84117
- return {
84140
+ return withAtomicTarget(act, {
84118
84141
  kind: "place",
84119
84142
  marketId: act.marketId,
84120
84143
  side: act.side,
@@ -84126,34 +84149,27 @@ class NordUser {
84126
84149
  price: act.price,
84127
84150
  quoteSize: act.quoteSize,
84128
84151
  clientOrderId: act.clientOrderId,
84129
- delegatorAccountId: act.delegatorAccountId,
84130
- placement: act.placement,
84131
84152
  referrer: act.referrer
84132
- };
84153
+ });
84133
84154
  }
84134
84155
  if (act.kind === "cancel") {
84135
- return {
84156
+ return withAtomicTarget(act, {
84136
84157
  kind: "cancel",
84137
- orderId: act.orderId,
84138
- delegatorAccountId: act.delegatorAccountId,
84139
- placement: act.placement
84140
- };
84158
+ orderId: act.orderId
84159
+ });
84141
84160
  }
84142
84161
  if (act.kind === "reduceOrderLiquidation") {
84143
- return {
84162
+ return withAtomicTarget(act, {
84144
84163
  kind: "reduceOrderLiquidation",
84145
- targetAccountId: act.targetAccountId,
84146
- marketId: act.marketId,
84147
- delegatorAccountId: act.delegatorAccountId,
84148
- placement: act.placement
84149
- };
84164
+ marketId: act.marketId
84165
+ });
84150
84166
  }
84151
84167
  if (act.kind === "rfq") {
84152
84168
  const market = findMarket(this.nord.markets, act.marketId);
84153
84169
  if (!market) {
84154
84170
  throw new NordError(`Market ${act.marketId} not found`);
84155
84171
  }
84156
- return {
84172
+ return withAtomicTarget(act, {
84157
84173
  kind: "rfq",
84158
84174
  marketId: act.marketId,
84159
84175
  side: act.side,
@@ -84163,30 +84179,34 @@ class NordUser {
84163
84179
  size: act.size,
84164
84180
  timeout: act.timeout,
84165
84181
  clientOrderId: act.clientOrderId,
84166
- delegatorAccountId: act.delegatorAccountId
84167
- };
84182
+ minimalFill: act.minimalFill,
84183
+ isReduceOnly: act.isReduceOnly
84184
+ });
84168
84185
  }
84169
84186
  if (act.kind === "rfqFill") {
84170
84187
  const market = findMarket(this.nord.markets, act.marketId);
84171
84188
  if (!market) {
84172
84189
  throw new NordError(`Market ${act.marketId} not found`);
84173
84190
  }
84174
- return {
84191
+ return withAtomicTarget(act, {
84175
84192
  kind: "rfqFill",
84176
84193
  marketId: act.marketId,
84177
84194
  orderId: act.orderId,
84178
84195
  priceDecimals: market.priceDecimals,
84196
+ sizeDecimals: market.sizeDecimals,
84179
84197
  price: act.price,
84180
84198
  timeout: act.timeout,
84181
- delegatorAccountId: act.delegatorAccountId
84182
- };
84199
+ minimumSize: act.minimumSize,
84200
+ maximumSize: act.maximumSize,
84201
+ isReduceOnly: act.isReduceOnly
84202
+ });
84183
84203
  }
84184
84204
  if (act.kind === "addTrigger") {
84185
84205
  const market = findMarket(this.nord.markets, act.marketId);
84186
84206
  if (!market) {
84187
84207
  throw new NordError(`Market ${act.marketId} not found`);
84188
84208
  }
84189
- return {
84209
+ return withAtomicTarget(act, {
84190
84210
  kind: "addTrigger",
84191
84211
  marketId: act.marketId,
84192
84212
  side: act.side,
@@ -84197,16 +84217,15 @@ class NordUser {
84197
84217
  limitPrice: act.limitPrice,
84198
84218
  limitBaseSize: act.limitBaseSize,
84199
84219
  limitQuoteSize: act.limitQuoteSize,
84200
- placement: act.placement,
84201
84220
  referrer: act.referrer
84202
- };
84221
+ });
84203
84222
  }
84204
84223
  if (act.kind === "editTrigger") {
84205
84224
  const market = findMarket(this.nord.markets, act.marketId);
84206
84225
  if (!market) {
84207
84226
  throw new NordError(`Market ${act.marketId} not found`);
84208
84227
  }
84209
- return {
84228
+ return withAtomicTarget(act, {
84210
84229
  kind: "editTrigger",
84211
84230
  triggerId: act.triggerId,
84212
84231
  marketId: act.marketId,
@@ -84217,24 +84236,20 @@ class NordUser {
84217
84236
  sizeDecimals: market.sizeDecimals,
84218
84237
  limitPrice: act.limitPrice,
84219
84238
  limitBaseSize: act.limitBaseSize,
84220
- limitQuoteSize: act.limitQuoteSize,
84221
- placement: act.placement
84222
- };
84239
+ limitQuoteSize: act.limitQuoteSize
84240
+ });
84223
84241
  }
84224
84242
  if (act.kind === "removeTrigger") {
84225
- return {
84243
+ return withAtomicTarget(act, {
84226
84244
  kind: "removeTrigger",
84227
84245
  marketId: act.marketId,
84228
- triggerId: act.triggerId,
84229
- placement: act.placement
84230
- };
84246
+ triggerId: act.triggerId
84247
+ });
84231
84248
  }
84232
- return {
84249
+ return withAtomicTarget(act, {
84233
84250
  kind: "cancelByClientId",
84234
- clientOrderId: act.clientOrderId,
84235
- delegatorAccountId: act.delegatorAccountId,
84236
- placement: act.placement
84237
- };
84251
+ clientOrderId: act.clientOrderId
84252
+ });
84238
84253
  });
84239
84254
  const result = await atomic(this.nord.httpClient, this.signSessionMessage, await this.nord.getTimestamp(), this.getNonce(), {
84240
84255
  sessionId: optExpect(this.sessionId, "No session"),
@@ -84720,13 +84735,15 @@ class NordAdmin {
84720
84735
  return { actionId: receipt.actionId };
84721
84736
  }
84722
84737
  async setBackstopAccount({
84723
- accountId
84738
+ accountId,
84739
+ marketMode
84724
84740
  }) {
84725
84741
  const receipt = await this.submitAction({
84726
84742
  case: "setBackstopAccount",
84727
84743
  value: create(Action_SetBackstopAccountSchema, {
84728
84744
  aclPubkey: this.admin.toBytes(),
84729
- accountId
84745
+ accountId,
84746
+ marketMode: marketMode ?? 0 /* CLOB */
84730
84747
  })
84731
84748
  });
84732
84749
  expectReceiptKind(receipt, "backstopAccountSet", "set backstop account");
@@ -84840,46 +84857,55 @@ class NordAdmin {
84840
84857
  return { actionId: receipt.actionId, ...receipt.kind.value };
84841
84858
  }
84842
84859
  async addFeeTier({
84860
+ marketType = 1 /* PERPETUALS */,
84843
84861
  config: config2
84844
84862
  }) {
84845
84863
  const receipt = await this.submitAction({
84846
- case: "addFeeTier",
84847
- value: create(Action_AddFeeTierSchema, {
84864
+ case: "addFeeTierType",
84865
+ value: create(Action_AddFeeTierTypeSchema, {
84848
84866
  aclPubkey: this.admin.toBytes(),
84849
- config: create(FeeTierConfigSchema, config2)
84867
+ marketType,
84868
+ config: create(FeeTierTypeConfigSchema, config2)
84850
84869
  })
84851
84870
  });
84852
- expectReceiptKind(receipt, "feeTierAdded", "add fee tier");
84871
+ expectReceiptKind(receipt, "feeTierTypeAdded", "add fee tier type");
84853
84872
  return { actionId: receipt.actionId, ...receipt.kind.value };
84854
84873
  }
84855
84874
  async updateFeeTier({
84856
84875
  tierId,
84876
+ marketType = 1 /* PERPETUALS */,
84857
84877
  config: config2
84858
84878
  }) {
84859
84879
  const receipt = await this.submitAction({
84860
- case: "updateFeeTier",
84861
- value: create(Action_UpdateFeeTierSchema, {
84880
+ case: "updateFeeTierType",
84881
+ value: create(Action_UpdateFeeTierTypeSchema, {
84862
84882
  aclPubkey: this.admin.toBytes(),
84863
84883
  id: tierId,
84864
- config: create(FeeTierConfigSchema, config2)
84884
+ marketType,
84885
+ config: create(FeeTierTypeConfigSchema, config2)
84865
84886
  })
84866
84887
  });
84867
- expectReceiptKind(receipt, "feeTierUpdated", "update fee tier");
84888
+ expectReceiptKind(receipt, "feeTierTypeUpdated", "update fee tier type");
84868
84889
  return { actionId: receipt.actionId, ...receipt.kind.value };
84869
84890
  }
84870
- async updateAccountsTier(accounts, tierId) {
84891
+ async updateAccountsTier({
84892
+ accounts,
84893
+ tierId,
84894
+ marketType = 1 /* PERPETUALS */
84895
+ }) {
84871
84896
  if (accounts.length !== new Set(accounts).size) {
84872
- throw new NordError("duplicate account ids in updateAccountsTier; must be unique");
84897
+ throw new NordError("duplicate accupdateFeeTierTypeount ids in updateAccountsFeeTierTypeMode; must be unique");
84873
84898
  }
84874
84899
  const receipt = await this.submitAction({
84875
- case: "updateAccountsTier",
84876
- value: create(Action_UpdateAccountsTierSchema, {
84900
+ case: "updateAccountsFeeTierTypeMode",
84901
+ value: create(Action_UpdateAccountsFeeTierTypeModeSchema, {
84877
84902
  aclPubkey: this.admin.toBytes(),
84878
84903
  accounts,
84879
- tierId
84904
+ tierId,
84905
+ marketType
84880
84906
  })
84881
84907
  });
84882
- expectReceiptKind(receipt, "accountsTierUpdated", "update accounts tier");
84908
+ expectReceiptKind(receipt, "accountsFeeTierTypeModeUpdated", "update accounts fee tier type mode");
84883
84909
  return { actionId: receipt.actionId, ...receipt.kind.value };
84884
84910
  }
84885
84911
  async feeVaultTransfer({