@n1xyz/nord-ts 0.1.5 → 0.1.6

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.
@@ -15,7 +15,7 @@ import type { Message } from "@bufbuild/protobuf";
15
15
  * Describes the file nord.proto.
16
16
  */
17
17
  export const file_nord: GenFile = /*@__PURE__*/
18
- fileDesc("Cgpub3JkLnByb3RvEgRub3JkIj0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX2JwcxgBIAEoDRIVCg10YWtlcl9mZWVfYnBzGAIgASgNItABCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIigKCVF1b3RlU2l6ZRIMCgRzaXplGAEgASgEEg0KBXByaWNlGAIgASgEIk4KCk9yZGVyTGltaXQSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUiYAoJT3JkZXJUeXBlEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCCKZAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpvcmRlcl90eXBlGAMgASgLMg8ubm9yZC5PcmRlclR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQFCEgoQX2NsaWVudF9vcmRlcl9pZCIfCgtDYW5jZWxPcmRlchIQCghvcmRlcl9pZBgCIAEoBCJHCgpUcmlnZ2VyS2V5Eh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUipB4KBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABIrCglsaXF1aWRhdGUYDiABKAsyFi5ub3JkLkFjdGlvbi5MaXF1aWRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASMgoNdGFrZV9wb3NpdGlvbhgiIAEoCzIZLm5vcmQuQWN0aW9uLlRha2VQb3NpdGlvbkgAEh4KBmF0b21pYxgjIAEoCzIMLm5vcmQuQXRvbWljSAASMgoNZnJlZXplX21hcmtldBgkIAEoCzIZLm5vcmQuQWN0aW9uLkZyZWV6ZU1hcmtldEgAEjYKD3VuZnJlZXplX21hcmtldBglIAEoCzIbLm5vcmQuQWN0aW9uLlVuZnJlZXplTWFya2V0SAASLwoMYWRkX2ZlZV90aWVyGCYgASgLMhcubm9yZC5BY3Rpb24uQWRkRmVlVGllckgAEjUKD3VwZGF0ZV9mZWVfdGllchgnIAEoCzIaLm5vcmQuQWN0aW9uLlVwZGF0ZUZlZVRpZXJIABI/ChR1cGRhdGVfYWNjb3VudHNfdGllchgoIAEoCzIfLm5vcmQuQWN0aW9uLlVwZGF0ZUFjY291bnRzVGllckgAGlMKDUNyZWF0ZVNlc3Npb24SEwoLdXNlcl9wdWJrZXkYASABKAwSEwoLYmxzdF9wdWJrZXkYAiABKAwSGAoQZXhwaXJ5X3RpbWVzdGFtcBgDIAEoAxp3CgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwa2gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRqmAwoKUGxhY2VPcmRlchISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEISChBfY2xpZW50X29yZGVyX2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGqkBCg9DYW5jZWxPcmRlckJ5SWQSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCghvcmRlcl9pZBgCIAEoBBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCEgASgNSAGIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGkAKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEGkkKGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMGkEKEVB5dGhTZXRTeW1ib2xGZWVkEhUKDW9yYWNsZV9zeW1ib2wYASABKAkSFQoNcHJpY2VfZmVlZF9pZBgCIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwahwEKCUxpcXVpZGF0ZRIdChVsaXF1aWRhdG9yX3Nlc3Npb25faWQYASABKAQSHQoVbGlxdWlkYXRlZV9hY2NvdW50X2lkGAIgASgNEiIKFWxpcXVpZGF0b3JfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhgKFl9saXF1aWRhdG9yX2FjY291bnRfaWQaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGgcKBVBhdXNlGgkKB1VucGF1c2UazwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIaCg10b19hY2NvdW50X2lkGAggASgNSACIAQESMgoPc3BlY2lhbF9hY2NvdW50GAkgASgOMhQubm9yZC5TcGVjaWFsQWNjb3VudEgBiAEBQhAKDl90b19hY2NvdW50X2lkQhIKEF9zcGVjaWFsX2FjY291bnQaUAoNVHJpZ2dlclByaWNlcxIVCg10cmlnZ2VyX3ByaWNlGAUgASgEEhgKC2xpbWl0X3ByaWNlGAYgASgESACIAQFCDgoMX2xpbWl0X3ByaWNlGqYBCgpBZGRUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEh0KA2tleRgDIAEoCzIQLm5vcmQuVHJpZ2dlcktleRIqCgZwcmljZXMYBCABKAsyGi5ub3JkLkFjdGlvbi5UcmlnZ2VyUHJpY2VzEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBp9Cg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEh0KA2tleRgDIAEoCzIQLm5vcmQuVHJpZ2dlcktleRIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQaMQoKQWRkRmVlVGllchIjCgZjb25maWcYASABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaQAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaNwoSVXBkYXRlQWNjb3VudHNUaWVyEg8KB3RpZXJfaWQYASABKA0SEAoIYWNjb3VudHMYAiADKA0aIQoMRnJlZXplTWFya2V0EhEKCW1hcmtldF9pZBgCIAEoDRojCg5VbmZyZWV6ZU1hcmtldBIRCgltYXJrZXRfaWQYAiABKA0alwEKDFRha2VQb3NpdGlvbhISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIMCgRzaXplGAMgASgDEh4KEXNlbmRlcl9hY2NvdW50X2lkGAQgASgNSACIAQESEgoFcHJpY2UYBSABKARIAYgBAUIUChJfc2VuZGVyX2FjY291bnRfaWRCCAoGX3ByaWNlQgYKBGtpbmQidwoTQXRvbWljU3ViYWN0aW9uS2luZBIsCg50cmFkZV9vcl9wbGFjZRgGIAEoCzISLm5vcmQuVHJhZGVPclBsYWNlSAASKQoMY2FuY2VsX29yZGVyGAcgASgLMhEubm9yZC5DYW5jZWxPcmRlckgAQgcKBWlubmVyInAKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIqCgdhY3Rpb25zGAYgAygLMhkubm9yZC5BdG9taWNTdWJhY3Rpb25LaW5kQg0KC19hY2NvdW50X2lkIqUeCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI8ChJwbGFjZV9vcmRlcl9yZXN1bHQYIiABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEj4KE2NhbmNlbF9vcmRlcl9yZXN1bHQYIyABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABI1Cg5kZXBvc2l0X3Jlc3VsdBgkIAEoCzIbLm5vcmQuUmVjZWlwdC5EZXBvc2l0UmVzdWx0SAASPgoTaW5zZXJ0X3Rva2VuX3Jlc3VsdBglIAEoCzIfLm5vcmQuUmVjZWlwdC5JbnNlcnRUb2tlblJlc3VsdEgAEkAKFGluc2VydF9tYXJrZXRfcmVzdWx0GCYgASgLMiAubm9yZC5SZWNlaXB0Lkluc2VydE1hcmtldFJlc3VsdEgAEjcKD3dpdGhkcmF3X3Jlc3VsdBgnIAEoCzIcLm5vcmQuUmVjZWlwdC5XaXRoZHJhd1Jlc3VsdEgAEkkKGW9yYWNsZV9zeW1ib2xfZmVlZF9yZXN1bHQYKCABKAsyJC5ub3JkLlJlY2VpcHQuT3JhY2xlU3ltYm9sRmVlZFJlc3VsdEgAEkAKFG9yYWNsZV91cGRhdGVfcmVzdWx0GCkgASgLMiAubm9yZC5SZWNlaXB0Lk9yYWNsZVVwZGF0ZVJlc3VsdEgAEksKGnVwZGF0ZV9ndWFyZGlhbl9zZXRfcmVzdWx0GCogASgLMiUubm9yZC5SZWNlaXB0LlVwZGF0ZUd1YXJkaWFuU2V0UmVzdWx0SAASNQoKbGlxdWlkYXRlZBgrIAEoCzIfLm5vcmQuUmVjZWlwdC5BY2NvdW50TGlxdWlkYXRlZEgAEjcKD3Nlc3Npb25fcmV2b2tlZBgsIAEoCzIcLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmV2b2tlZEgAEiYKBnBhdXNlZBgtIAEoCzIULm5vcmQuUmVjZWlwdC5QYXVzZWRIABIqCgh1bnBhdXNlZBguIAEoCzIWLm5vcmQuUmVjZWlwdC5VbnBhdXNlZEgAEjAKC3RyYW5zZmVycmVkGC8gASgLMhkubm9yZC5SZWNlaXB0LlRyYW5zZmVycmVkSAASMwoNdHJpZ2dlcl9hZGRlZBhAIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYQSABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABJNChhwb3NpdGlvbl90YWtlbl9vcl90cmFkZWQYQiABKAsyKS5ub3JkLlJlY2VpcHQuUG9zaXRpb25UYWtlbk9yVHJhZGVkUmVzdWx0SAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpKCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0aKQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEGkMKCVRyaWdnZXJlZBIfCgRraW5kGAMgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIVCg10cmlnZ2VyX3ByaWNlGAQgASgEGpUCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARIvCgl0cmlnZ2VyZWQYBSABKAsyFy5ub3JkLlJlY2VpcHQuVHJpZ2dlcmVkSAOIAQFCCQoHX3Bvc3RlZEISChBfY2xpZW50X29yZGVyX2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCDAoKX3RyaWdnZXJlZBpCCgtUYWtlblJlc3VsdBILCgNwbmwYASABKAMSDAoEc2l6ZRgCIAEoAxIYChB0YWtlcl9hY2NvdW50X2lkGAMgASgNGqsBChtQb3NpdGlvblRha2VuT3JUcmFkZWRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEioKBXRha2VuGAIgASgLMhkubm9yZC5SZWNlaXB0LlRha2VuUmVzdWx0SAASMAoGdHJhZGVkGAMgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIAEIbChlQb3NpdGlvblRha2VuT3JUcmFkZWRLaW5kGjkKEUNhbmNlbE9yZGVyUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhIKCmFjY291bnRfaWQYAiABKA0acAoNRGVwb3NpdFJlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSEgoKYWNjb3VudF9pZBgDIAEoDRIUCgx1c2VyX2NyZWF0ZWQYBCABKAgSEwoLdXNlcl9wdWJrZXkYBSABKAwaQwoRSW5zZXJ0VG9rZW5SZXN1bHQSEgoKY2hhaW5fYWRkchgBIAEoDBIaCgV0b2tlbhgCIAEoCzILLm5vcmQuVG9rZW4aMgoSSW5zZXJ0TWFya2V0UmVzdWx0EhwKBm1hcmtldBgBIAEoCzIMLm5vcmQuTWFya2V0GnkKDldpdGhkcmF3UmVzdWx0EhAKCHRva2VuX2lkGAEgASgNEg4KBmFtb3VudBgCIAEoBBIPCgdiYWxhbmNlGAMgASgEEhIKCmFjY291bnRfaWQYBCABKA0SCwoDZmVlGAUgASgEEhMKC3VzZXJfcHVia2V5GAYgASgMGkAKFk9yYWNsZVN5bWJvbEZlZWRSZXN1bHQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIPCgdmZWVkX2lkGAIgASgMGicKEk9yYWNsZVVwZGF0ZVJlc3VsdBIRCgl0aW1lc3RhbXAYASABKAMaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBqeAQoRQWNjb3VudExpcXVpZGF0ZWQSHQoVbGlxdWlkYXRvcl9hY2NvdW50X2lkGAEgASgNEh0KFWxpcXVpZGF0ZWVfYWNjb3VudF9pZBgCIAEoDRIYChBjYW5jZWxsZWRfb3JkZXJzGAMgAygEEjEKDXJlbW92ZWRfcGVycHMYBCADKAsyGi5ub3JkLlJlY2VpcHQuUGVycFBvc2l0aW9uGhAKDlNlc3Npb25SZXZva2VkGggKBlBhdXNlZBoKCghVbnBhdXNlZBrhAQoLVHJhbnNmZXJyZWQSFwoPZnJvbV9hY2NvdW50X2lkGAEgASgNEhwKD3RvX3VzZXJfYWNjb3VudBgCIAEoDUgAiAEBEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIXCg9hY2NvdW50X2NyZWF0ZWQYBSABKAgSNQoSdG9fc3BlY2lhbF9hY2NvdW50GAYgASgOMhQubm9yZC5TcGVjaWFsQWNjb3VudEgBiAEBQhIKEF90b191c2VyX2FjY291bnRCFQoTX3RvX3NwZWNpYWxfYWNjb3VudBoOCgxUcmlnZ2VyQWRkZWQaEAoOVHJpZ2dlclJlbW92ZWQaOAoTTWFya2V0RnJlZXplVXBkYXRlZBIRCgltYXJrZXRfaWQYASABKA0SDgoGZnJvemVuGAIgASgIGjMKDEZlZVRpZXJBZGRlZBIjCgZjb25maWcYASABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaQQoORmVlVGllclVwZGF0ZWQSCgoCaWQYASABKA0SIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnGjgKE0FjY291bnRzVGllclVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRqbAQoZQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZBI8ChJwbGFjZV9vcmRlcl9yZXN1bHQYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEjcKDGNhbmNlbF9vcmRlchgCIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKi0KC1RyaWdnZXJLaW5kEg0KCVNUT1BfTE9TUxAAEg8KC1RBS0VfUFJPRklUEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKpIaCgVFcnJvchINCglEVVBMSUNBVEUQABISCg5ERUNPREVfRkFJTFVSRRACEhUKEUlOVkFMSURfU0lHTkFUVVJFEAMSFAoQTUFSS0VUX05PVF9GT1VORBAEEhMKD1RPS0VOX05PVF9GT1VORBAFEhIKDlVTRVJfTk9UX0ZPVU5EEAYSFQoRU0VTU0lPTl9OT1RfRk9VTkQQBxITCg9PUkRFUl9OT1RfRk9VTkQQCBITCg9PUkRFUl9TSVpFX1pFUk8QCRIOCgpBUklUSE1FVElDEAsSFwoTQVJJVEhNRVRJQ19PVkVSRkxPVxAMEhgKFEFSSVRITUVUSUNfVU5ERVJGTE9XEA0SHwobQVJJVEhNRVRJQ19ESVZJU0lPTl9CWV9aRVJPEA4SGgoWS0VZX0FMUkVBRFlfUkVHSVNURVJFRBAPEhwKGEVYUElSWV9USU1FU1RBTVBfSU5fUEFTVBAQEhwKGFVQREFURV9USU1FU1RBTVBfSU5fUEFTVBAREhgKFFRPT19NQU5ZX09QRU5fT1JERVJTEBISHQoZV0lUSERSQVdfQU1PVU5UX1RPT19TTUFMTBAVEhcKE0lOVkFMSURfT1JERVJfT1dORVIQFhIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQahIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRBrEhMKD0lOVkFMSURfTUFSR0lOUxBsEiEKHU1BUktFVF9ERUNJTUFMU19FWENFRURfTElNSVRTEG0SEwoPVE9PX01BTllfVE9LRU5TEG4SFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIUCg9UT0tFTl9OT1RfUkVBRFkQggESHAoYVE9LRU5fQUxSRUFEWV9SRUdJU1RFUkVEEHASIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIRCgxEVVNUX0FDQ09VTlQQkQESDAoHQkFMQU5DRRCgARIdChhCQUxBTkNFX0RFUE9TSVRfT1ZFUkZMT1cQoQESHAoXQkFMQU5DRV9DSEFOR0VfT1ZFUkZMT1cQogESIgodQkFMQU5DRV9DSEFOR0VfTElNSVRfRVhDRUVERUQQowESGQoUQkFMQU5DRV9JTlNVRkZJQ0lFTlQQpAESHgoZVU5BVVRIRU5USUNBVEVEX0wxX0FDVElPThClARIdChhFTkNPREVEX0FDVElPTl9UT09fTEFSR0UQpgESDAoHVFJJR0dFUhCoARIaChVUUklHR0VSX0lOVkFMSURfUFJJQ0UQqQESFgoRVFJJR0dFUl9OT1RfRk9VTkQQqgESDgoJVElNRVNUQU1QELABEh8KGlRJTUVTVEFNUF9PVVRfT0ZfVEhSRVNIT0xEELEBEhQKD1RJTUVTVEFNUF9TVEFMRRCyARIlCiBCQU5LUlVQVENZX0lOU1VGRklDSUVOVF9DT1ZFUkFHRRC5ARIZChRCQU5LUlVQVENZX05PVF9GT1VORBC6ARIbChZCQU5LUlVQVENZX05PVF9BTExPV0VEELsBEhUKEE1BUktFVF9OT1RfUkVBRFkQwAESEgoNTUFSS0VUX0ZST1pFThDBARIRCgxNQVJLRVRfRU1QVFkQwgESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARIqCiVSSVNLX1RSQURFX09NRl9MRVNTX1RIQU5fT1JfRVFVQUxfQ01GEOUBEjUKMFJJU0tfVU5IRUFMVEhZX01GX0FORF9QT05fQUZURVJfQkVUVEVSX09GX0JFRk9SRRDkARIUCg9PUkRFUl9FWEVDVVRJT04Q8AESGgoVT1JERVJfRVhFQ1VUSU9OX0VNUFRZEPEBEiEKHE9SREVSX0VYRUNVVElPTl9GSUxMX09SX0tJTEwQ8gESIwoeT1JERVJfRVhFQ1VUSU9OX01JU1NJTkdfTElNSVRTEPMBEiIKHU9SREVSX0VYRUNVVElPTl9NSVNTSU5HX1BSSUNFEPQBEh8KGk9SREVSX0VYRUNVVElPTl9TSVpFX0xJTUlUEPUBEiAKG09SREVSX0VYRUNVVElPTl9MSU1JVF9QUklDRRD2ARIeChlPUkRFUl9SRURVQ0VfSVNfUE9TVF9PTkxZEPcBEh8KGk9SREVSX0VYRUNVVElPTl9TRUxMX1BSSUNFEPgBEiUKIE9SREVSX1NJWkVfRVhDRUVEU19QT1NJVElPTl9TSVpFEPkBEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIACEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQgQISJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIUCg9OT1RfSU1QTEVNRU5URUQQ9AMSDAoHRHJvcHBlZBDnByoeCg5TcGVjaWFsQWNjb3VudBIMCghGZWVWYXVsdBAAYgZwcm90bzM");
18
+ fileDesc("Cgpub3JkLnByb3RvEgRub3JkIj0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX2JwcxgBIAEoDRIVCg10YWtlcl9mZWVfYnBzGAIgASgNItABCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIigKCVF1b3RlU2l6ZRIMCgRzaXplGAEgASgEEg0KBXByaWNlGAIgASgEIk4KCk9yZGVyTGltaXQSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUiYAoJT3JkZXJUeXBlEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCCKZAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpvcmRlcl90eXBlGAMgASgLMg8ubm9yZC5PcmRlclR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQFCEgoQX2NsaWVudF9vcmRlcl9pZCIfCgtDYW5jZWxPcmRlchIQCghvcmRlcl9pZBgCIAEoBCJHCgpUcmlnZ2VyS2V5Eh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUikCEKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABIrCglsaXF1aWRhdGUYDiABKAsyFi5ub3JkLkFjdGlvbi5MaXF1aWRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASMgoNdGFrZV9wb3NpdGlvbhgiIAEoCzIZLm5vcmQuQWN0aW9uLlRha2VQb3NpdGlvbkgAEh4KBmF0b21pYxgjIAEoCzIMLm5vcmQuQXRvbWljSAASMgoNZnJlZXplX21hcmtldBgkIAEoCzIZLm5vcmQuQWN0aW9uLkZyZWV6ZU1hcmtldEgAEjYKD3VuZnJlZXplX21hcmtldBglIAEoCzIbLm5vcmQuQWN0aW9uLlVuZnJlZXplTWFya2V0SAASLwoMYWRkX2ZlZV90aWVyGCYgASgLMhcubm9yZC5BY3Rpb24uQWRkRmVlVGllckgAEjUKD3VwZGF0ZV9mZWVfdGllchgnIAEoCzIaLm5vcmQuQWN0aW9uLlVwZGF0ZUZlZVRpZXJIABI/ChR1cGRhdGVfYWNjb3VudHNfdGllchgoIAEoCzIfLm5vcmQuQWN0aW9uLlVwZGF0ZUFjY291bnRzVGllckgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABpTCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhMKC2Jsc3RfcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGu4BCgxDcmVhdGVNYXJrZXQSFQoNc2l6ZV9kZWNpbWFscxgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIPCgdpbWZfYnBzGAMgASgNEg8KB2NtZl9icHMYBCABKA0SDwoHbW1mX2JwcxgFIAEoDRIlCgttYXJrZXRfdHlwZRgGIAEoDjIQLm5vcmQuTWFya2V0VHlwZRITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJEhUKDWJhc2VfdG9rZW5faWQYCSABKA0SEgoKYWNsX3B1YmtleRgKIAEoDBqmAwoKUGxhY2VPcmRlchISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEISChBfY2xpZW50X29yZGVyX2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGqkBCg9DYW5jZWxPcmRlckJ5SWQSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCghvcmRlcl9pZBgCIAEoBBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCEgASgNSAGIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGkAKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEGl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGocBCglMaXF1aWRhdGUSHQoVbGlxdWlkYXRvcl9zZXNzaW9uX2lkGAEgASgEEh0KFWxpcXVpZGF0ZWVfYWNjb3VudF9pZBgCIAEoDRIiChVsaXF1aWRhdG9yX2FjY291bnRfaWQYAyABKA1IAIgBAUIYChZfbGlxdWlkYXRvcl9hY2NvdW50X2lkGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBobCgVQYXVzZRISCgphY2xfcHVia2V5GAEgASgMGh0KB1VucGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBrPAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEhoKDXRvX2FjY291bnRfaWQYCCABKA1IAIgBARIyCg9zcGVjaWFsX2FjY291bnQYCSABKA4yFC5ub3JkLlNwZWNpYWxBY2NvdW50SAGIAQFCEAoOX3RvX2FjY291bnRfaWRCEgoQX3NwZWNpYWxfYWNjb3VudBpQCg1UcmlnZ2VyUHJpY2VzEhUKDXRyaWdnZXJfcHJpY2UYBSABKAQSGAoLbGltaXRfcHJpY2UYBiABKARIAIgBAUIOCgxfbGltaXRfcHJpY2UapgEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SHQoDa2V5GAMgASgLMhAubm9yZC5UcmlnZ2VyS2V5EioKBnByaWNlcxgEIAEoCzIaLm5vcmQuQWN0aW9uLlRyaWdnZXJQcmljZXMSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGn0KDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SHQoDa2V5GAMgASgLMhAubm9yZC5UcmlnZ2VyS2V5EhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpFCgpBZGRGZWVUaWVyEhIKCmFjbF9wdWJrZXkYASABKAwSIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnGlQKDVVwZGF0ZUZlZVRpZXISCgoCaWQYASABKA0SIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnEhIKCmFjbF9wdWJrZXkYAyABKAwaSwoSVXBkYXRlQWNjb3VudHNUaWVyEg8KB3RpZXJfaWQYASABKA0SEAoIYWNjb3VudHMYAiADKA0SEgoKYWNsX3B1YmtleRgDIAEoDBpfCglVcGRhdGVBY2wSEgoKYWNsX3B1YmtleRgBIAEoDBIVCg10YXJnZXRfcHVia2V5GAIgASgMEhIKCnJvbGVzX21hc2sYAyABKA0SEwoLcm9sZXNfdmFsdWUYBCABKA0aNQoMRnJlZXplTWFya2V0EhIKCmFjbF9wdWJrZXkYASABKAwSEQoJbWFya2V0X2lkGAIgASgNGjcKDlVuZnJlZXplTWFya2V0EhIKCmFjbF9wdWJrZXkYASABKAwSEQoJbWFya2V0X2lkGAIgASgNGpcBCgxUYWtlUG9zaXRpb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SDAoEc2l6ZRgDIAEoAxIeChFzZW5kZXJfYWNjb3VudF9pZBgEIAEoDUgAiAEBEhIKBXByaWNlGAUgASgESAGIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkQggKBl9wcmljZUIGCgRraW5kIncKE0F0b21pY1N1YmFjdGlvbktpbmQSLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEikKDGNhbmNlbF9vcmRlchgHIAEoCzIRLm5vcmQuQ2FuY2VsT3JkZXJIAEIHCgVpbm5lciJwCgZBdG9taWMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESKgoHYWN0aW9ucxgGIAMoCzIZLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZEINCgtfYWNjb3VudF9pZCK4HwoHUmVjZWlwdBIRCglhY3Rpb25faWQYASABKAQSGgoDZXJyGCAgASgOMgsubm9yZC5FcnJvckgAEkIKFWNyZWF0ZV9zZXNzaW9uX3Jlc3VsdBghIAEoCzIhLm5vcmQuUmVjZWlwdC5DcmVhdGVTZXNzaW9uUmVzdWx0SAASPAoScGxhY2Vfb3JkZXJfcmVzdWx0GCIgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI+ChNjYW5jZWxfb3JkZXJfcmVzdWx0GCMgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASNQoOZGVwb3NpdF9yZXN1bHQYJCABKAsyGy5ub3JkLlJlY2VpcHQuRGVwb3NpdFJlc3VsdEgAEj4KE2luc2VydF90b2tlbl9yZXN1bHQYJSABKAsyHy5ub3JkLlJlY2VpcHQuSW5zZXJ0VG9rZW5SZXN1bHRIABJAChRpbnNlcnRfbWFya2V0X3Jlc3VsdBgmIAEoCzIgLm5vcmQuUmVjZWlwdC5JbnNlcnRNYXJrZXRSZXN1bHRIABI3Cg93aXRoZHJhd19yZXN1bHQYJyABKAsyHC5ub3JkLlJlY2VpcHQuV2l0aGRyYXdSZXN1bHRIABJJChlvcmFjbGVfc3ltYm9sX2ZlZWRfcmVzdWx0GCggASgLMiQubm9yZC5SZWNlaXB0Lk9yYWNsZVN5bWJvbEZlZWRSZXN1bHRIABJAChRvcmFjbGVfdXBkYXRlX3Jlc3VsdBgpIAEoCzIgLm5vcmQuUmVjZWlwdC5PcmFjbGVVcGRhdGVSZXN1bHRIABJLChp1cGRhdGVfZ3VhcmRpYW5fc2V0X3Jlc3VsdBgqIAEoCzIlLm5vcmQuUmVjZWlwdC5VcGRhdGVHdWFyZGlhblNldFJlc3VsdEgAEjUKCmxpcXVpZGF0ZWQYKyABKAsyHy5ub3JkLlJlY2VpcHQuQWNjb3VudExpcXVpZGF0ZWRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASTQoYcG9zaXRpb25fdGFrZW5fb3JfdHJhZGVkGEIgASgLMikubm9yZC5SZWNlaXB0LlBvc2l0aW9uVGFrZW5PclRyYWRlZFJlc3VsdEgAEiwKBmF0b21pYxhDIAEoCzIaLm5vcmQuUmVjZWlwdC5BdG9taWNSZXN1bHRIABJCChVtYXJrZXRfZnJlZXplX3VwZGF0ZWQYRCABKAsyIS5ub3JkLlJlY2VpcHQuTWFya2V0RnJlZXplVXBkYXRlZEgAEjQKDmZlZV90aWVyX2FkZGVkGEUgASgLMhoubm9yZC5SZWNlaXB0LkZlZVRpZXJBZGRlZEgAEjgKEGZlZV90aWVyX3VwZGF0ZWQYRiABKAsyHC5ub3JkLlJlY2VpcHQuRmVlVGllclVwZGF0ZWRIABJCChVhY2NvdW50c190aWVyX3VwZGF0ZWQYRyABKAsyIS5ub3JkLlJlY2VpcHQuQWNjb3VudHNUaWVyVXBkYXRlZEgAEi8KC2FjbF91cGRhdGVkGEggASgLMhgubm9yZC5SZWNlaXB0LkFjbFVwZGF0ZWRIABp4CgZQb3N0ZWQSGAoEc2lkZRgBIAEoDjIKLm5vcmQuU2lkZRIRCgltYXJrZXRfaWQYAiABKA0SDQoFcHJpY2UYAyABKAQSDAoEc2l6ZRgEIAEoBBIQCghvcmRlcl9pZBgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNGkoKBVRyYWRlEhAKCG9yZGVyX2lkGAIgASgEEg0KBXByaWNlGAQgASgEEgwKBHNpemUYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRopChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQaQwoJVHJpZ2dlcmVkEh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhUKDXRyaWdnZXJfcHJpY2UYBCABKAQalQIKEFBsYWNlT3JkZXJSZXN1bHQSKQoGcG9zdGVkGAEgASgLMhQubm9yZC5SZWNlaXB0LlBvc3RlZEgAiAEBEiIKBWZpbGxzGAIgAygLMhMubm9yZC5SZWNlaXB0LlRyYWRlEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgBiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgEIAEoBEgCiAEBEi8KCXRyaWdnZXJlZBgFIAEoCzIXLm5vcmQuUmVjZWlwdC5UcmlnZ2VyZWRIA4gBAUIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIMCgpfdHJpZ2dlcmVkGkIKC1Rha2VuUmVzdWx0EgsKA3BubBgBIAEoAxIMCgRzaXplGAIgASgDEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0aqwEKG1Bvc2l0aW9uVGFrZW5PclRyYWRlZFJlc3VsdBIRCgltYXJrZXRfaWQYASABKA0SKgoFdGFrZW4YAiABKAsyGS5ub3JkLlJlY2VpcHQuVGFrZW5SZXN1bHRIABIwCgZ0cmFkZWQYAyABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAQhsKGVBvc2l0aW9uVGFrZW5PclRyYWRlZEtpbmQaOQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRpwCg1EZXBvc2l0UmVzdWx0EhAKCHRva2VuX2lkGAEgASgNEg4KBmFtb3VudBgCIAEoBBISCgphY2NvdW50X2lkGAMgASgNEhQKDHVzZXJfY3JlYXRlZBgEIAEoCBITCgt1c2VyX3B1YmtleRgFIAEoDBpDChFJbnNlcnRUb2tlblJlc3VsdBISCgpjaGFpbl9hZGRyGAEgASgMEhoKBXRva2VuGAIgASgLMgsubm9yZC5Ub2tlbhoyChJJbnNlcnRNYXJrZXRSZXN1bHQSHAoGbWFya2V0GAEgASgLMgwubm9yZC5NYXJrZXQaeQoOV2l0aGRyYXdSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEg8KB2JhbGFuY2UYAyABKAQSEgoKYWNjb3VudF9pZBgEIAEoDRILCgNmZWUYBSABKAQSEwoLdXNlcl9wdWJrZXkYBiABKAwaQAoWT3JhY2xlU3ltYm9sRmVlZFJlc3VsdBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEg8KB2ZlZWRfaWQYAiABKAwaJwoST3JhY2xlVXBkYXRlUmVzdWx0EhEKCXRpbWVzdGFtcBgBIAEoAxpIChdVcGRhdGVHdWFyZGlhblNldFJlc3VsdBIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMGkMKDFBlcnBQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEg0KBXByaWNlGAMgASgEGp4BChFBY2NvdW50TGlxdWlkYXRlZBIdChVsaXF1aWRhdG9yX2FjY291bnRfaWQYASABKA0SHQoVbGlxdWlkYXRlZV9hY2NvdW50X2lkGAIgASgNEhgKEGNhbmNlbGxlZF9vcmRlcnMYAyADKAQSMQoNcmVtb3ZlZF9wZXJwcxgEIAMoCzIaLm5vcmQuUmVjZWlwdC5QZXJwUG9zaXRpb24aEAoOU2Vzc2lvblJldm9rZWQaCAoGUGF1c2VkGgoKCFVucGF1c2VkGuEBCgtUcmFuc2ZlcnJlZBIXCg9mcm9tX2FjY291bnRfaWQYASABKA0SHAoPdG9fdXNlcl9hY2NvdW50GAIgASgNSACIAQESEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEhcKD2FjY291bnRfY3JlYXRlZBgFIAEoCBI1ChJ0b19zcGVjaWFsX2FjY291bnQYBiABKA4yFC5ub3JkLlNwZWNpYWxBY2NvdW50SAGIAQFCEgoQX3RvX3VzZXJfYWNjb3VudEIVChNfdG9fc3BlY2lhbF9hY2NvdW50Gg4KDFRyaWdnZXJBZGRlZBoQCg5UcmlnZ2VyUmVtb3ZlZBo4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgaMwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQamwEKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIAEIHCgVpbm5lchpICgxBdG9taWNSZXN1bHQSOAoHcmVzdWx0cxgBIAMoCzInLm5vcmQuUmVjZWlwdC5BdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kQgYKBGtpbmQqGAoEU2lkZRIHCgNBU0sQABIHCgNCSUQQASotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASqSGwoFRXJyb3ISDQoJRFVQTElDQVRFEAASEgoOREVDT0RFX0ZBSUxVUkUQAhIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhFWFBJUllfVElNRVNUQU1QX0lOX1BBU1QQEBIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIXChNJTlZBTElEX09SREVSX09XTkVSEBYSIAocREVDT0RFX0ZBSUxVUkVfTEVOR1RIX1BSRUZJWBAhEhYKEkRFQ09ERV9GQUlMVVJFX1JBVxAiEhkKFURFQ09ERV9GQUlMVVJFX0RPTUFJThAjEh8KG1VQREFURV9QVUJMSVNIX1RJTUVfSU5fUEFTVBAkEhcKE1BZVEhfRkVFRF9OT1RfQURERUQQXRIVChFQWVRIX0ZFRURfTUlTU0lORxBeEhsKF1BZVEhfRkVFRF9BTFJFQURZX0FEREVEEF8SIwofUFlUSF9HVUFSRElBTl9TRVRfVU5JTklUSUFMSVpFRBBgEh0KGVBZVEhfR1VBUkRJQU5fU0VUX0lOVkFMSUQQYRIjCh9QWVRIX0ZFRURfREVDSU1BTFNfT1VUX09GX1JBTkdFEGISIAocUFlUSF9GRUVEX1BSSUNFX09VVF9PRl9SQU5HRRBjEiMKH1BZVEhfRkVFRF9WQVJJQU5DRV9PVVRfT0ZfUkFOR0UQZBI1CjFQWVRIX0dVQVJESUFOX1NFVF9BTkRfUFlUSF9TSUdOQVRVUkVfRE9fTk9UX01BVENIEGUSHAoYSU5WQUxJRF9UT0tFTl9QQVJBTUVURVJTEGYSHAoYSU5ERVhfUFJJQ0VfT1VUX09GX1JBTkdFEGcSHwobSU5ERVhfREVDSU1BTFNfT1VUX09GX1JBTkdFEGgSGQoVSU5WQUxJRF9TVEFURV9WRVJTSU9OEGkSGQoVVElFUl9GRUVfT1VUX09GX1JBTkdFEGoSGAoUVElFUl9JRF9PVVRfT0ZfUkFOR0UQaxITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEhQKEEZVTkRJTkdfT1ZFUkZMT1cQexI3CjNDQU5fUkVEVUNFX1BPU0lUSU9OX09OTFlfSUZfQUxMX09SREVSU19BUkVfQ0FOQ0VMRUQQfBIXChNVTkVYUEVDVEVEX1RPS0VOX0lEEH8SFAoPVE9LRU5fTk9UX1JFQURZEIIBEhwKGFRPS0VOX0FMUkVBRFlfUkVHSVNURVJFRBBwEiEKHElNTUVESUFURV9PUkRFUl9HT1RfTk9fRklMTFMQhQESGQoURkFJTEVEX1RPX0ZJTExfTElNSVQQhgESMAorUE9TVF9PTkxZX01VU1RfTk9UX0ZJTExfQU5ZX09QUE9TSVRFX09SREVSUxCHARIMCgdJTlZBTElEEIgBEhAKC01BSU5URU5BTkNFEIkBEhoKFU1JTklNVU1fU0laRV9ERUNJTUFMUxCKARIyCi1QQVJBTUVURVJTX1dJTExfQ1JFQVRFX05PTl9PUEVSQVRJT05BTF9NQVJLRVQQiwESIgodT05MWV9JTU1FRElBVEVfT1JERVJTX0FMTE9XRUQQjAESGwoWVE9PX01BTllfVVNFUl9BQ0NPVU5UUxCNARIWChFBQ0NPVU5UX05PVF9GT1VORBCOARIaChVBQ0NPVU5UX0lOVkFMSURfT1dORVIQjwESEQoMRFVTVF9BQ0NPVU5UEJEBEgwKB0JBTEFOQ0UQoAESHQoYQkFMQU5DRV9ERVBPU0lUX09WRVJGTE9XEKEBEhwKF0JBTEFOQ0VfQ0hBTkdFX09WRVJGTE9XEKIBEiIKHUJBTEFOQ0VfQ0hBTkdFX0xJTUlUX0VYQ0VFREVEEKMBEhkKFEJBTEFOQ0VfSU5TVUZGSUNJRU5UEKQBEh4KGVVOQVVUSEVOVElDQVRFRF9MMV9BQ1RJT04QpQESHQoYRU5DT0RFRF9BQ1RJT05fVE9PX0xBUkdFEKYBEgwKB1RSSUdHRVIQqAESGgoVVFJJR0dFUl9JTlZBTElEX1BSSUNFEKkBEhYKEVRSSUdHRVJfTk9UX0ZPVU5EEKoBEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEg0KCFBPU0lUSU9OEMgBEhcKElBPU0lUSU9OX05PVF9GT1VORBDJARIZChRQT1NJVElPTl9TVEFURV9PUkRFUhDKARIfChpQT1NJVElPTl9TVEFURV9PUkRFUl9QUklDRRDLARIeChlQT1NJVElPTl9TVEFURV9PUkRFUl9TSVpFEMwBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJREUQzQESGAoTUE9TSVRJT05fU0laRV9MSU1JVBDOARIYChNQT1NJVElPTl9TVEFURV9QRVJQEM8BEiQKH1BPU0lUSU9OX1NUQVRFX09SREVSX0RFTEVHQVRJT04Q0AESCgoFUFJJQ0UQ0QESGwoWU0lHTkFUVVJFX1ZFUklGSUNBVElPThDZARIwCitTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX01BTEZPUk1FRF9QVUJMSUNfS0VZENoBEioKJVNJR05BVFVSRV9WRVJJRklDQVRJT05fSU5WQUxJRF9MRU5HVEgQ2wESCQoEUklTSxDgARI0Ci9SSVNLX0RFTEVHQVRJT05fTUZfVE9fQkVfTEVTU19USEFOX09SX0VRVUFMX01NRhDhARIkCh9SSVNLX09NRl9MRVNTX1RIQU5fT1JfRVFVQUxfSU1GEOIBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9DTUYQ4wESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIoCiNBVE9NSUNTX1RSQURFU19DQU5OT1RfRk9MTE9XX1BMQUNFUxCAAhIwCitBVE9NSUNTX0NBTkNFTFNfQ0FOTk9UX0ZPTExPV19UUkFERVNfUExBQ0VTEIECEiYKIUFDVElPTl9QT1NJVElPTl9TSE9VTERfQkVfQ09WRVJFRBCRAhIZChRBQ1RJT05fSU5WQUxJRF9OT05DRRCSAhIpCiRBQ1RJT05fUFJPUE9TRURfUFJJQ0VfTVVTVF9CRV9ISUdIRVIQkwISHAoXQURNSU5fUk9MRV9JTlNVRkZJQ0lFTlQQlAISFAoPQURNSU5fTk9UX0ZPVU5EEJUCEikKJFVOSVFVRV9TVVBFUl9BRE1JTl9DQU5OT1RfQkVfUkVNT1ZFRBCWAhIfChpTVVBFUl9BRE1JTl9BTFJFQURZX0VYSVNUUxCXAhIUCg9OT1RfSU1QTEVNRU5URUQQ9AMSDAoHRHJvcHBlZBDnByoeCg5TcGVjaWFsQWNjb3VudBIMCghGZWVWYXVsdBAAYgZwcm90bzM");
19
19
 
20
20
  /**
21
21
  * @generated from message nord.FeeTierConfig
@@ -668,6 +668,12 @@ export type Action = Message<"nord.Action"> & {
668
668
  */
669
669
  value: Action_UpdateAccountsTier;
670
670
  case: "updateAccountsTier";
671
+ } | {
672
+ /**
673
+ * @generated from field: nord.Action.UpdateAcl update_acl = 41;
674
+ */
675
+ value: Action_UpdateAcl;
676
+ case: "updateAcl";
671
677
  } | { case: undefined; value?: undefined };
672
678
  };
673
679
 
@@ -815,6 +821,11 @@ export type ActionJson = {
815
821
  * @generated from field: nord.Action.UpdateAccountsTier update_accounts_tier = 40;
816
822
  */
817
823
  updateAccountsTier?: Action_UpdateAccountsTierJson;
824
+
825
+ /**
826
+ * @generated from field: nord.Action.UpdateAcl update_acl = 41;
827
+ */
828
+ updateAcl?: Action_UpdateAclJson;
818
829
  };
819
830
 
820
831
  /**
@@ -926,6 +937,11 @@ export type Action_CreateToken = Message<"nord.Action.CreateToken"> & {
926
937
  * @generated from field: bytes sol_addr = 6;
927
938
  */
928
939
  solAddr: Uint8Array;
940
+
941
+ /**
942
+ * @generated from field: bytes acl_pubkey = 7;
943
+ */
944
+ aclPubkey: Uint8Array;
929
945
  };
930
946
 
931
947
  /**
@@ -973,6 +989,11 @@ export type Action_CreateTokenJson = {
973
989
  * @generated from field: bytes sol_addr = 6;
974
990
  */
975
991
  solAddr?: string;
992
+
993
+ /**
994
+ * @generated from field: bytes acl_pubkey = 7;
995
+ */
996
+ aclPubkey?: string;
976
997
  };
977
998
 
978
999
  /**
@@ -1043,6 +1064,11 @@ export type Action_CreateMarket = Message<"nord.Action.CreateMarket"> & {
1043
1064
  * @generated from field: uint32 base_token_id = 9;
1044
1065
  */
1045
1066
  baseTokenId: number;
1067
+
1068
+ /**
1069
+ * @generated from field: bytes acl_pubkey = 10;
1070
+ */
1071
+ aclPubkey: Uint8Array;
1046
1072
  };
1047
1073
 
1048
1074
  /**
@@ -1106,6 +1132,11 @@ export type Action_CreateMarketJson = {
1106
1132
  * @generated from field: uint32 base_token_id = 9;
1107
1133
  */
1108
1134
  baseTokenId?: number;
1135
+
1136
+ /**
1137
+ * @generated from field: bytes acl_pubkey = 10;
1138
+ */
1139
+ aclPubkey?: string;
1109
1140
  };
1110
1141
 
1111
1142
  /**
@@ -1580,6 +1611,11 @@ export type Action_PythSetWormholeGuardians = Message<"nord.Action.PythSetWormho
1580
1611
  * @generated from field: repeated bytes addresses = 2;
1581
1612
  */
1582
1613
  addresses: Uint8Array[];
1614
+
1615
+ /**
1616
+ * @generated from field: bytes acl_pubkey = 3;
1617
+ */
1618
+ aclPubkey: Uint8Array;
1583
1619
  };
1584
1620
 
1585
1621
  /**
@@ -1601,6 +1637,11 @@ export type Action_PythSetWormholeGuardiansJson = {
1601
1637
  * @generated from field: repeated bytes addresses = 2;
1602
1638
  */
1603
1639
  addresses?: string[];
1640
+
1641
+ /**
1642
+ * @generated from field: bytes acl_pubkey = 3;
1643
+ */
1644
+ aclPubkey?: string;
1604
1645
  };
1605
1646
 
1606
1647
  /**
@@ -1627,6 +1668,11 @@ export type Action_PythSetSymbolFeed = Message<"nord.Action.PythSetSymbolFeed">
1627
1668
  * @generated from field: bytes price_feed_id = 2;
1628
1669
  */
1629
1670
  priceFeedId: Uint8Array;
1671
+
1672
+ /**
1673
+ * @generated from field: bytes acl_pubkey = 3;
1674
+ */
1675
+ aclPubkey: Uint8Array;
1630
1676
  };
1631
1677
 
1632
1678
  /**
@@ -1646,6 +1692,11 @@ export type Action_PythSetSymbolFeedJson = {
1646
1692
  * @generated from field: bytes price_feed_id = 2;
1647
1693
  */
1648
1694
  priceFeedId?: string;
1695
+
1696
+ /**
1697
+ * @generated from field: bytes acl_pubkey = 3;
1698
+ */
1699
+ aclPubkey?: string;
1649
1700
  };
1650
1701
 
1651
1702
  /**
@@ -1776,6 +1827,10 @@ export const Action_RevokeSessionSchema: GenMessage<Action_RevokeSession, {jsonT
1776
1827
  * @generated from message nord.Action.Pause
1777
1828
  */
1778
1829
  export type Action_Pause = Message<"nord.Action.Pause"> & {
1830
+ /**
1831
+ * @generated from field: bytes acl_pubkey = 1;
1832
+ */
1833
+ aclPubkey: Uint8Array;
1779
1834
  };
1780
1835
 
1781
1836
  /**
@@ -1784,6 +1839,10 @@ export type Action_Pause = Message<"nord.Action.Pause"> & {
1784
1839
  * @generated from message nord.Action.Pause
1785
1840
  */
1786
1841
  export type Action_PauseJson = {
1842
+ /**
1843
+ * @generated from field: bytes acl_pubkey = 1;
1844
+ */
1845
+ aclPubkey?: string;
1787
1846
  };
1788
1847
 
1789
1848
  /**
@@ -1797,12 +1856,20 @@ export const Action_PauseSchema: GenMessage<Action_Pause, {jsonType: Action_Paus
1797
1856
  * @generated from message nord.Action.Unpause
1798
1857
  */
1799
1858
  export type Action_Unpause = Message<"nord.Action.Unpause"> & {
1859
+ /**
1860
+ * @generated from field: bytes acl_pubkey = 1;
1861
+ */
1862
+ aclPubkey: Uint8Array;
1800
1863
  };
1801
1864
 
1802
1865
  /**
1803
1866
  * @generated from message nord.Action.Unpause
1804
1867
  */
1805
1868
  export type Action_UnpauseJson = {
1869
+ /**
1870
+ * @generated from field: bytes acl_pubkey = 1;
1871
+ */
1872
+ aclPubkey?: string;
1806
1873
  };
1807
1874
 
1808
1875
  /**
@@ -2069,7 +2136,12 @@ export const Action_RemoveTriggerSchema: GenMessage<Action_RemoveTrigger, {jsonT
2069
2136
  */
2070
2137
  export type Action_AddFeeTier = Message<"nord.Action.AddFeeTier"> & {
2071
2138
  /**
2072
- * @generated from field: nord.FeeTierConfig config = 1;
2139
+ * @generated from field: bytes acl_pubkey = 1;
2140
+ */
2141
+ aclPubkey: Uint8Array;
2142
+
2143
+ /**
2144
+ * @generated from field: nord.FeeTierConfig config = 2;
2073
2145
  */
2074
2146
  config?: FeeTierConfig;
2075
2147
  };
@@ -2079,7 +2151,12 @@ export type Action_AddFeeTier = Message<"nord.Action.AddFeeTier"> & {
2079
2151
  */
2080
2152
  export type Action_AddFeeTierJson = {
2081
2153
  /**
2082
- * @generated from field: nord.FeeTierConfig config = 1;
2154
+ * @generated from field: bytes acl_pubkey = 1;
2155
+ */
2156
+ aclPubkey?: string;
2157
+
2158
+ /**
2159
+ * @generated from field: nord.FeeTierConfig config = 2;
2083
2160
  */
2084
2161
  config?: FeeTierConfigJson;
2085
2162
  };
@@ -2104,6 +2181,11 @@ export type Action_UpdateFeeTier = Message<"nord.Action.UpdateFeeTier"> & {
2104
2181
  * @generated from field: nord.FeeTierConfig config = 2;
2105
2182
  */
2106
2183
  config?: FeeTierConfig;
2184
+
2185
+ /**
2186
+ * @generated from field: bytes acl_pubkey = 3;
2187
+ */
2188
+ aclPubkey: Uint8Array;
2107
2189
  };
2108
2190
 
2109
2191
  /**
@@ -2119,6 +2201,11 @@ export type Action_UpdateFeeTierJson = {
2119
2201
  * @generated from field: nord.FeeTierConfig config = 2;
2120
2202
  */
2121
2203
  config?: FeeTierConfigJson;
2204
+
2205
+ /**
2206
+ * @generated from field: bytes acl_pubkey = 3;
2207
+ */
2208
+ aclPubkey?: string;
2122
2209
  };
2123
2210
 
2124
2211
  /**
@@ -2141,6 +2228,11 @@ export type Action_UpdateAccountsTier = Message<"nord.Action.UpdateAccountsTier"
2141
2228
  * @generated from field: repeated uint32 accounts = 2;
2142
2229
  */
2143
2230
  accounts: number[];
2231
+
2232
+ /**
2233
+ * @generated from field: bytes acl_pubkey = 3;
2234
+ */
2235
+ aclPubkey: Uint8Array;
2144
2236
  };
2145
2237
 
2146
2238
  /**
@@ -2156,6 +2248,11 @@ export type Action_UpdateAccountsTierJson = {
2156
2248
  * @generated from field: repeated uint32 accounts = 2;
2157
2249
  */
2158
2250
  accounts?: number[];
2251
+
2252
+ /**
2253
+ * @generated from field: bytes acl_pubkey = 3;
2254
+ */
2255
+ aclPubkey?: string;
2159
2256
  };
2160
2257
 
2161
2258
  /**
@@ -2165,10 +2262,72 @@ export type Action_UpdateAccountsTierJson = {
2165
2262
  export const Action_UpdateAccountsTierSchema: GenMessage<Action_UpdateAccountsTier, {jsonType: Action_UpdateAccountsTierJson}> = /*@__PURE__*/
2166
2263
  messageDesc(file_nord, 9, 20);
2167
2264
 
2265
+ /**
2266
+ * @generated from message nord.Action.UpdateAcl
2267
+ */
2268
+ export type Action_UpdateAcl = Message<"nord.Action.UpdateAcl"> & {
2269
+ /**
2270
+ * @generated from field: bytes acl_pubkey = 1;
2271
+ */
2272
+ aclPubkey: Uint8Array;
2273
+
2274
+ /**
2275
+ * @generated from field: bytes target_pubkey = 2;
2276
+ */
2277
+ targetPubkey: Uint8Array;
2278
+
2279
+ /**
2280
+ * @generated from field: uint32 roles_mask = 3;
2281
+ */
2282
+ rolesMask: number;
2283
+
2284
+ /**
2285
+ * @generated from field: uint32 roles_value = 4;
2286
+ */
2287
+ rolesValue: number;
2288
+ };
2289
+
2290
+ /**
2291
+ * @generated from message nord.Action.UpdateAcl
2292
+ */
2293
+ export type Action_UpdateAclJson = {
2294
+ /**
2295
+ * @generated from field: bytes acl_pubkey = 1;
2296
+ */
2297
+ aclPubkey?: string;
2298
+
2299
+ /**
2300
+ * @generated from field: bytes target_pubkey = 2;
2301
+ */
2302
+ targetPubkey?: string;
2303
+
2304
+ /**
2305
+ * @generated from field: uint32 roles_mask = 3;
2306
+ */
2307
+ rolesMask?: number;
2308
+
2309
+ /**
2310
+ * @generated from field: uint32 roles_value = 4;
2311
+ */
2312
+ rolesValue?: number;
2313
+ };
2314
+
2315
+ /**
2316
+ * Describes the message nord.Action.UpdateAcl.
2317
+ * Use `create(Action_UpdateAclSchema)` to create a new message.
2318
+ */
2319
+ export const Action_UpdateAclSchema: GenMessage<Action_UpdateAcl, {jsonType: Action_UpdateAclJson}> = /*@__PURE__*/
2320
+ messageDesc(file_nord, 9, 21);
2321
+
2168
2322
  /**
2169
2323
  * @generated from message nord.Action.FreezeMarket
2170
2324
  */
2171
2325
  export type Action_FreezeMarket = Message<"nord.Action.FreezeMarket"> & {
2326
+ /**
2327
+ * @generated from field: bytes acl_pubkey = 1;
2328
+ */
2329
+ aclPubkey: Uint8Array;
2330
+
2172
2331
  /**
2173
2332
  * @generated from field: uint32 market_id = 2;
2174
2333
  */
@@ -2179,6 +2338,11 @@ export type Action_FreezeMarket = Message<"nord.Action.FreezeMarket"> & {
2179
2338
  * @generated from message nord.Action.FreezeMarket
2180
2339
  */
2181
2340
  export type Action_FreezeMarketJson = {
2341
+ /**
2342
+ * @generated from field: bytes acl_pubkey = 1;
2343
+ */
2344
+ aclPubkey?: string;
2345
+
2182
2346
  /**
2183
2347
  * @generated from field: uint32 market_id = 2;
2184
2348
  */
@@ -2190,12 +2354,17 @@ export type Action_FreezeMarketJson = {
2190
2354
  * Use `create(Action_FreezeMarketSchema)` to create a new message.
2191
2355
  */
2192
2356
  export const Action_FreezeMarketSchema: GenMessage<Action_FreezeMarket, {jsonType: Action_FreezeMarketJson}> = /*@__PURE__*/
2193
- messageDesc(file_nord, 9, 21);
2357
+ messageDesc(file_nord, 9, 22);
2194
2358
 
2195
2359
  /**
2196
2360
  * @generated from message nord.Action.UnfreezeMarket
2197
2361
  */
2198
2362
  export type Action_UnfreezeMarket = Message<"nord.Action.UnfreezeMarket"> & {
2363
+ /**
2364
+ * @generated from field: bytes acl_pubkey = 1;
2365
+ */
2366
+ aclPubkey: Uint8Array;
2367
+
2199
2368
  /**
2200
2369
  * @generated from field: uint32 market_id = 2;
2201
2370
  */
@@ -2206,6 +2375,11 @@ export type Action_UnfreezeMarket = Message<"nord.Action.UnfreezeMarket"> & {
2206
2375
  * @generated from message nord.Action.UnfreezeMarket
2207
2376
  */
2208
2377
  export type Action_UnfreezeMarketJson = {
2378
+ /**
2379
+ * @generated from field: bytes acl_pubkey = 1;
2380
+ */
2381
+ aclPubkey?: string;
2382
+
2209
2383
  /**
2210
2384
  * @generated from field: uint32 market_id = 2;
2211
2385
  */
@@ -2217,7 +2391,7 @@ export type Action_UnfreezeMarketJson = {
2217
2391
  * Use `create(Action_UnfreezeMarketSchema)` to create a new message.
2218
2392
  */
2219
2393
  export const Action_UnfreezeMarketSchema: GenMessage<Action_UnfreezeMarket, {jsonType: Action_UnfreezeMarketJson}> = /*@__PURE__*/
2220
- messageDesc(file_nord, 9, 22);
2394
+ messageDesc(file_nord, 9, 23);
2221
2395
 
2222
2396
  /**
2223
2397
  * @generated from message nord.Action.TakePosition
@@ -2308,7 +2482,7 @@ export type Action_TakePositionJson = {
2308
2482
  * Use `create(Action_TakePositionSchema)` to create a new message.
2309
2483
  */
2310
2484
  export const Action_TakePositionSchema: GenMessage<Action_TakePosition, {jsonType: Action_TakePositionJson}> = /*@__PURE__*/
2311
- messageDesc(file_nord, 9, 23);
2485
+ messageDesc(file_nord, 9, 24);
2312
2486
 
2313
2487
  /**
2314
2488
  * @generated from message nord.AtomicSubactionKind
@@ -2561,6 +2735,12 @@ export type Receipt = Message<"nord.Receipt"> & {
2561
2735
  */
2562
2736
  value: Receipt_AccountsTierUpdated;
2563
2737
  case: "accountsTierUpdated";
2738
+ } | {
2739
+ /**
2740
+ * @generated from field: nord.Receipt.AclUpdated acl_updated = 72;
2741
+ */
2742
+ value: Receipt_AclUpdated;
2743
+ case: "aclUpdated";
2564
2744
  } | { case: undefined; value?: undefined };
2565
2745
  };
2566
2746
 
@@ -2696,6 +2876,11 @@ export type ReceiptJson = {
2696
2876
  * @generated from field: nord.Receipt.AccountsTierUpdated accounts_tier_updated = 71;
2697
2877
  */
2698
2878
  accountsTierUpdated?: Receipt_AccountsTierUpdatedJson;
2879
+
2880
+ /**
2881
+ * @generated from field: nord.Receipt.AclUpdated acl_updated = 72;
2882
+ */
2883
+ aclUpdated?: Receipt_AclUpdatedJson;
2699
2884
  };
2700
2885
 
2701
2886
  /**
@@ -3855,6 +4040,63 @@ export type Receipt_AccountsTierUpdatedJson = {
3855
4040
  export const Receipt_AccountsTierUpdatedSchema: GenMessage<Receipt_AccountsTierUpdated, {jsonType: Receipt_AccountsTierUpdatedJson}> = /*@__PURE__*/
3856
4041
  messageDesc(file_nord, 12, 26);
3857
4042
 
4043
+ /**
4044
+ * @generated from message nord.Receipt.AclUpdated
4045
+ */
4046
+ export type Receipt_AclUpdated = Message<"nord.Receipt.AclUpdated"> & {
4047
+ /**
4048
+ * @generated from field: bytes acl_pubkey = 1;
4049
+ */
4050
+ aclPubkey: Uint8Array;
4051
+
4052
+ /**
4053
+ * @generated from field: uint64 roles_mask = 2;
4054
+ */
4055
+ rolesMask: bigint;
4056
+
4057
+ /**
4058
+ * @generated from field: bytes target_pubkey = 3;
4059
+ */
4060
+ targetPubkey: Uint8Array;
4061
+
4062
+ /**
4063
+ * @generated from field: uint64 roles_value = 4;
4064
+ */
4065
+ rolesValue: bigint;
4066
+ };
4067
+
4068
+ /**
4069
+ * @generated from message nord.Receipt.AclUpdated
4070
+ */
4071
+ export type Receipt_AclUpdatedJson = {
4072
+ /**
4073
+ * @generated from field: bytes acl_pubkey = 1;
4074
+ */
4075
+ aclPubkey?: string;
4076
+
4077
+ /**
4078
+ * @generated from field: uint64 roles_mask = 2;
4079
+ */
4080
+ rolesMask?: string;
4081
+
4082
+ /**
4083
+ * @generated from field: bytes target_pubkey = 3;
4084
+ */
4085
+ targetPubkey?: string;
4086
+
4087
+ /**
4088
+ * @generated from field: uint64 roles_value = 4;
4089
+ */
4090
+ rolesValue?: string;
4091
+ };
4092
+
4093
+ /**
4094
+ * Describes the message nord.Receipt.AclUpdated.
4095
+ * Use `create(Receipt_AclUpdatedSchema)` to create a new message.
4096
+ */
4097
+ export const Receipt_AclUpdatedSchema: GenMessage<Receipt_AclUpdated, {jsonType: Receipt_AclUpdatedJson}> = /*@__PURE__*/
4098
+ messageDesc(file_nord, 12, 27);
4099
+
3858
4100
  /**
3859
4101
  * @generated from message nord.Receipt.AtomicSubactionResultKind
3860
4102
  */
@@ -3905,7 +4147,7 @@ export type Receipt_AtomicSubactionResultKindJson = {
3905
4147
  * Use `create(Receipt_AtomicSubactionResultKindSchema)` to create a new message.
3906
4148
  */
3907
4149
  export const Receipt_AtomicSubactionResultKindSchema: GenMessage<Receipt_AtomicSubactionResultKind, {jsonType: Receipt_AtomicSubactionResultKindJson}> = /*@__PURE__*/
3908
- messageDesc(file_nord, 12, 27);
4150
+ messageDesc(file_nord, 12, 28);
3909
4151
 
3910
4152
  /**
3911
4153
  * @generated from message nord.Receipt.AtomicResult
@@ -3932,7 +4174,7 @@ export type Receipt_AtomicResultJson = {
3932
4174
  * Use `create(Receipt_AtomicResultSchema)` to create a new message.
3933
4175
  */
3934
4176
  export const Receipt_AtomicResultSchema: GenMessage<Receipt_AtomicResult, {jsonType: Receipt_AtomicResultJson}> = /*@__PURE__*/
3935
- messageDesc(file_nord, 12, 28);
4177
+ messageDesc(file_nord, 12, 29);
3936
4178
 
3937
4179
  /**
3938
4180
  * @generated from enum nord.Side
@@ -4739,6 +4981,26 @@ export enum Error {
4739
4981
  */
4740
4982
  ACTION_PROPOSED_PRICE_MUST_BE_HIGHER = 275,
4741
4983
 
4984
+ /**
4985
+ * @generated from enum value: ADMIN_ROLE_INSUFFICIENT = 276;
4986
+ */
4987
+ ADMIN_ROLE_INSUFFICIENT = 276,
4988
+
4989
+ /**
4990
+ * @generated from enum value: ADMIN_NOT_FOUND = 277;
4991
+ */
4992
+ ADMIN_NOT_FOUND = 277,
4993
+
4994
+ /**
4995
+ * @generated from enum value: UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED = 278;
4996
+ */
4997
+ UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED = 278,
4998
+
4999
+ /**
5000
+ * @generated from enum value: SUPER_ADMIN_ALREADY_EXISTS = 279;
5001
+ */
5002
+ SUPER_ADMIN_ALREADY_EXISTS = 279,
5003
+
4742
5004
  /**
4743
5005
  * @generated from enum value: NOT_IMPLEMENTED = 500;
4744
5006
  */
@@ -4760,7 +5022,7 @@ export enum Error {
4760
5022
  *
4761
5023
  * @generated from enum nord.Error
4762
5024
  */
4763
- export type ErrorJson = "DUPLICATE" | "DECODE_FAILURE" | "INVALID_SIGNATURE" | "MARKET_NOT_FOUND" | "TOKEN_NOT_FOUND" | "USER_NOT_FOUND" | "SESSION_NOT_FOUND" | "ORDER_NOT_FOUND" | "ORDER_SIZE_ZERO" | "ARITHMETIC" | "ARITHMETIC_OVERFLOW" | "ARITHMETIC_UNDERFLOW" | "ARITHMETIC_DIVISION_BY_ZERO" | "KEY_ALREADY_REGISTERED" | "EXPIRY_TIMESTAMP_IN_PAST" | "UPDATE_TIMESTAMP_IN_PAST" | "TOO_MANY_OPEN_ORDERS" | "WITHDRAW_AMOUNT_TOO_SMALL" | "INVALID_ORDER_OWNER" | "DECODE_FAILURE_LENGTH_PREFIX" | "DECODE_FAILURE_RAW" | "DECODE_FAILURE_DOMAIN" | "UPDATE_PUBLISH_TIME_IN_PAST" | "PYTH_FEED_NOT_ADDED" | "PYTH_FEED_MISSING" | "PYTH_FEED_ALREADY_ADDED" | "PYTH_GUARDIAN_SET_UNINITIALIZED" | "PYTH_GUARDIAN_SET_INVALID" | "PYTH_FEED_DECIMALS_OUT_OF_RANGE" | "PYTH_FEED_PRICE_OUT_OF_RANGE" | "PYTH_FEED_VARIANCE_OUT_OF_RANGE" | "PYTH_GUARDIAN_SET_AND_PYTH_SIGNATURE_DO_NOT_MATCH" | "INVALID_TOKEN_PARAMETERS" | "INDEX_PRICE_OUT_OF_RANGE" | "INDEX_DECIMALS_OUT_OF_RANGE" | "INVALID_STATE_VERSION" | "TIER_FEE_OUT_OF_RANGE" | "TIER_ID_OUT_OF_RANGE" | "INVALID_MARGINS" | "MARKET_DECIMALS_EXCEED_LIMITS" | "TOO_MANY_TOKENS" | "FUNDING_OVERFLOW" | "CAN_REDUCE_POSITION_ONLY_IF_ALL_ORDERS_ARE_CANCELED" | "UNEXPECTED_TOKEN_ID" | "TOKEN_NOT_READY" | "TOKEN_ALREADY_REGISTERED" | "IMMEDIATE_ORDER_GOT_NO_FILLS" | "FAILED_TO_FILL_LIMIT" | "POST_ONLY_MUST_NOT_FILL_ANY_OPPOSITE_ORDERS" | "INVALID" | "MAINTENANCE" | "MINIMUM_SIZE_DECIMALS" | "PARAMETERS_WILL_CREATE_NON_OPERATIONAL_MARKET" | "ONLY_IMMEDIATE_ORDERS_ALLOWED" | "TOO_MANY_USER_ACCOUNTS" | "ACCOUNT_NOT_FOUND" | "ACCOUNT_INVALID_OWNER" | "DUST_ACCOUNT" | "BALANCE" | "BALANCE_DEPOSIT_OVERFLOW" | "BALANCE_CHANGE_OVERFLOW" | "BALANCE_CHANGE_LIMIT_EXCEEDED" | "BALANCE_INSUFFICIENT" | "UNAUTHENTICATED_L1_ACTION" | "ENCODED_ACTION_TOO_LARGE" | "TRIGGER" | "TRIGGER_INVALID_PRICE" | "TRIGGER_NOT_FOUND" | "TIMESTAMP" | "TIMESTAMP_OUT_OF_THRESHOLD" | "TIMESTAMP_STALE" | "BANKRUPTCY_INSUFFICIENT_COVERAGE" | "BANKRUPTCY_NOT_FOUND" | "BANKRUPTCY_NOT_ALLOWED" | "MARKET_NOT_READY" | "MARKET_FROZEN" | "MARKET_EMPTY" | "POSITION" | "POSITION_NOT_FOUND" | "POSITION_STATE_ORDER" | "POSITION_STATE_ORDER_PRICE" | "POSITION_STATE_ORDER_SIZE" | "POSITION_STATE_ORDER_SIDE" | "POSITION_SIZE_LIMIT" | "POSITION_STATE_PERP" | "POSITION_STATE_ORDER_DELEGATION" | "PRICE" | "SIGNATURE_VERIFICATION" | "SIGNATURE_VERIFICATION_MALFORMED_PUBLIC_KEY" | "SIGNATURE_VERIFICATION_INVALID_LENGTH" | "RISK" | "RISK_DELEGATION_MF_TO_BE_LESS_THAN_OR_EQUAL_MMF" | "RISK_OMF_LESS_THAN_OR_EQUAL_IMF" | "RISK_OMF_LESS_THAN_OR_EQUAL_CMF" | "RISK_TRADE_OMF_LESS_THAN_OR_EQUAL_CMF" | "RISK_UNHEALTHY_MF_AND_PON_AFTER_BETTER_OF_BEFORE" | "ORDER_EXECUTION" | "ORDER_EXECUTION_EMPTY" | "ORDER_EXECUTION_FILL_OR_KILL" | "ORDER_EXECUTION_MISSING_LIMITS" | "ORDER_EXECUTION_MISSING_PRICE" | "ORDER_EXECUTION_SIZE_LIMIT" | "ORDER_EXECUTION_LIMIT_PRICE" | "ORDER_REDUCE_IS_POST_ONLY" | "ORDER_EXECUTION_SELL_PRICE" | "ORDER_SIZE_EXCEEDS_POSITION_SIZE" | "ATOMICS_TRADES_CANNOT_FOLLOW_PLACES" | "ATOMICS_CANCELS_CANNOT_FOLLOW_TRADES_PLACES" | "ACTION_POSITION_SHOULD_BE_COVERED" | "ACTION_INVALID_NONCE" | "ACTION_PROPOSED_PRICE_MUST_BE_HIGHER" | "NOT_IMPLEMENTED" | "Dropped";
5025
+ export type ErrorJson = "DUPLICATE" | "DECODE_FAILURE" | "INVALID_SIGNATURE" | "MARKET_NOT_FOUND" | "TOKEN_NOT_FOUND" | "USER_NOT_FOUND" | "SESSION_NOT_FOUND" | "ORDER_NOT_FOUND" | "ORDER_SIZE_ZERO" | "ARITHMETIC" | "ARITHMETIC_OVERFLOW" | "ARITHMETIC_UNDERFLOW" | "ARITHMETIC_DIVISION_BY_ZERO" | "KEY_ALREADY_REGISTERED" | "EXPIRY_TIMESTAMP_IN_PAST" | "UPDATE_TIMESTAMP_IN_PAST" | "TOO_MANY_OPEN_ORDERS" | "WITHDRAW_AMOUNT_TOO_SMALL" | "INVALID_ORDER_OWNER" | "DECODE_FAILURE_LENGTH_PREFIX" | "DECODE_FAILURE_RAW" | "DECODE_FAILURE_DOMAIN" | "UPDATE_PUBLISH_TIME_IN_PAST" | "PYTH_FEED_NOT_ADDED" | "PYTH_FEED_MISSING" | "PYTH_FEED_ALREADY_ADDED" | "PYTH_GUARDIAN_SET_UNINITIALIZED" | "PYTH_GUARDIAN_SET_INVALID" | "PYTH_FEED_DECIMALS_OUT_OF_RANGE" | "PYTH_FEED_PRICE_OUT_OF_RANGE" | "PYTH_FEED_VARIANCE_OUT_OF_RANGE" | "PYTH_GUARDIAN_SET_AND_PYTH_SIGNATURE_DO_NOT_MATCH" | "INVALID_TOKEN_PARAMETERS" | "INDEX_PRICE_OUT_OF_RANGE" | "INDEX_DECIMALS_OUT_OF_RANGE" | "INVALID_STATE_VERSION" | "TIER_FEE_OUT_OF_RANGE" | "TIER_ID_OUT_OF_RANGE" | "INVALID_MARGINS" | "MARKET_DECIMALS_EXCEED_LIMITS" | "TOO_MANY_TOKENS" | "FUNDING_OVERFLOW" | "CAN_REDUCE_POSITION_ONLY_IF_ALL_ORDERS_ARE_CANCELED" | "UNEXPECTED_TOKEN_ID" | "TOKEN_NOT_READY" | "TOKEN_ALREADY_REGISTERED" | "IMMEDIATE_ORDER_GOT_NO_FILLS" | "FAILED_TO_FILL_LIMIT" | "POST_ONLY_MUST_NOT_FILL_ANY_OPPOSITE_ORDERS" | "INVALID" | "MAINTENANCE" | "MINIMUM_SIZE_DECIMALS" | "PARAMETERS_WILL_CREATE_NON_OPERATIONAL_MARKET" | "ONLY_IMMEDIATE_ORDERS_ALLOWED" | "TOO_MANY_USER_ACCOUNTS" | "ACCOUNT_NOT_FOUND" | "ACCOUNT_INVALID_OWNER" | "DUST_ACCOUNT" | "BALANCE" | "BALANCE_DEPOSIT_OVERFLOW" | "BALANCE_CHANGE_OVERFLOW" | "BALANCE_CHANGE_LIMIT_EXCEEDED" | "BALANCE_INSUFFICIENT" | "UNAUTHENTICATED_L1_ACTION" | "ENCODED_ACTION_TOO_LARGE" | "TRIGGER" | "TRIGGER_INVALID_PRICE" | "TRIGGER_NOT_FOUND" | "TIMESTAMP" | "TIMESTAMP_OUT_OF_THRESHOLD" | "TIMESTAMP_STALE" | "BANKRUPTCY_INSUFFICIENT_COVERAGE" | "BANKRUPTCY_NOT_FOUND" | "BANKRUPTCY_NOT_ALLOWED" | "MARKET_NOT_READY" | "MARKET_FROZEN" | "MARKET_EMPTY" | "POSITION" | "POSITION_NOT_FOUND" | "POSITION_STATE_ORDER" | "POSITION_STATE_ORDER_PRICE" | "POSITION_STATE_ORDER_SIZE" | "POSITION_STATE_ORDER_SIDE" | "POSITION_SIZE_LIMIT" | "POSITION_STATE_PERP" | "POSITION_STATE_ORDER_DELEGATION" | "PRICE" | "SIGNATURE_VERIFICATION" | "SIGNATURE_VERIFICATION_MALFORMED_PUBLIC_KEY" | "SIGNATURE_VERIFICATION_INVALID_LENGTH" | "RISK" | "RISK_DELEGATION_MF_TO_BE_LESS_THAN_OR_EQUAL_MMF" | "RISK_OMF_LESS_THAN_OR_EQUAL_IMF" | "RISK_OMF_LESS_THAN_OR_EQUAL_CMF" | "RISK_TRADE_OMF_LESS_THAN_OR_EQUAL_CMF" | "RISK_UNHEALTHY_MF_AND_PON_AFTER_BETTER_OF_BEFORE" | "ORDER_EXECUTION" | "ORDER_EXECUTION_EMPTY" | "ORDER_EXECUTION_FILL_OR_KILL" | "ORDER_EXECUTION_MISSING_LIMITS" | "ORDER_EXECUTION_MISSING_PRICE" | "ORDER_EXECUTION_SIZE_LIMIT" | "ORDER_EXECUTION_LIMIT_PRICE" | "ORDER_REDUCE_IS_POST_ONLY" | "ORDER_EXECUTION_SELL_PRICE" | "ORDER_SIZE_EXCEEDS_POSITION_SIZE" | "ATOMICS_TRADES_CANNOT_FOLLOW_PLACES" | "ATOMICS_CANCELS_CANNOT_FOLLOW_TRADES_PLACES" | "ACTION_POSITION_SHOULD_BE_COVERED" | "ACTION_INVALID_NONCE" | "ACTION_PROPOSED_PRICE_MUST_BE_HIGHER" | "ADMIN_ROLE_INSUFFICIENT" | "ADMIN_NOT_FOUND" | "UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED" | "SUPER_ADMIN_ALREADY_EXISTS" | "NOT_IMPLEMENTED" | "Dropped";
4764
5026
 
4765
5027
  /**
4766
5028
  * Describes the enum nord.Error.
@@ -239,13 +239,14 @@ export class Nord {
239
239
  app,
240
240
  solanaUrl,
241
241
  webServerUrl,
242
+ protonUrl,
242
243
  }: Readonly<NordConfig>): Promise<Nord> {
243
244
  // TODO: we should parametrize the connectionn not have it done here.
244
245
  // this is a dogshit api, only here to be compatible with the shitty
245
246
  // vibecoded code and not break zero one team's workflow.
246
247
  const connection = new Connection(solanaUrl, { commitment: "confirmed" });
247
248
  const protonClient = await ProtonClient.init({
248
- protonUrl: webServerUrl,
249
+ protonUrl: protonUrl ?? webServerUrl,
249
250
  app: new PublicKey(app),
250
251
  solConn: connection,
251
252
  });