coreum-js 2.5.10 → 2.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/main/cosmos/auth/v1beta1/auth.d.ts +229 -0
  2. package/dist/main/cosmos/auth/v1beta1/auth.js +438 -0
  3. package/dist/main/cosmos/index.d.ts +348 -0
  4. package/dist/main/cosmos/index.js +72 -2
  5. package/dist/main/cosmos/staking/v1beta1/authz.d.ts +145 -0
  6. package/dist/main/cosmos/staking/v1beta1/authz.js +225 -0
  7. package/dist/main/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  8. package/dist/main/cosmos/staking/v1beta1/genesis.js +306 -0
  9. package/dist/main/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  10. package/dist/main/cosmos/staking/v1beta1/pagination.js +228 -0
  11. package/dist/main/cosmos/staking/v1beta1/query.d.ts +4165 -0
  12. package/dist/main/cosmos/staking/v1beta1/query.js +2020 -0
  13. package/dist/main/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  14. package/dist/main/cosmos/staking/v1beta1/staking.js +2128 -0
  15. package/dist/main/cosmos/staking/v1beta1/tx.d.ts +748 -0
  16. package/dist/main/cosmos/staking/v1beta1/tx.js +1142 -0
  17. package/dist/main/cosmos/vesting/v1beta1/tx.d.ts +350 -0
  18. package/dist/main/cosmos/vesting/v1beta1/tx.js +455 -0
  19. package/dist/main/cosmos/vesting/v1beta1/vesting.d.ts +1305 -0
  20. package/dist/main/cosmos/vesting/v1beta1/vesting.js +499 -0
  21. package/dist/main/tendermint/abci/types.d.ts +7075 -0
  22. package/dist/main/tendermint/abci/types.js +4934 -0
  23. package/dist/main/tendermint/crypto/keys.d.ts +38 -0
  24. package/dist/main/tendermint/crypto/keys.js +118 -0
  25. package/dist/main/tendermint/crypto/proof.d.ts +226 -0
  26. package/dist/main/tendermint/crypto/proof.js +427 -0
  27. package/dist/main/tendermint/types/params.d.ts +313 -0
  28. package/dist/main/tendermint/types/params.js +488 -0
  29. package/dist/main/tendermint/types/types.d.ts +1970 -0
  30. package/dist/main/tendermint/types/types.js +1602 -0
  31. package/dist/main/tendermint/types/validator.d.ts +277 -0
  32. package/dist/main/tendermint/types/validator.js +303 -0
  33. package/dist/main/tendermint/version/types.d.ts +71 -0
  34. package/dist/main/tendermint/version/types.js +162 -0
  35. package/dist/module/cosmos/auth/v1beta1/auth.d.ts +229 -0
  36. package/dist/module/cosmos/auth/v1beta1/auth.js +428 -0
  37. package/dist/module/cosmos/index.d.ts +348 -0
  38. package/dist/module/cosmos/index.js +71 -1
  39. package/dist/module/cosmos/staking/v1beta1/authz.d.ts +145 -0
  40. package/dist/module/cosmos/staking/v1beta1/authz.js +215 -0
  41. package/dist/module/cosmos/staking/v1beta1/genesis.d.ts +899 -0
  42. package/dist/module/cosmos/staking/v1beta1/genesis.js +298 -0
  43. package/dist/module/cosmos/staking/v1beta1/pagination.d.ts +128 -0
  44. package/dist/module/cosmos/staking/v1beta1/pagination.js +220 -0
  45. package/dist/module/cosmos/staking/v1beta1/query.d.ts +4165 -0
  46. package/dist/module/cosmos/staking/v1beta1/query.js +1996 -0
  47. package/dist/module/cosmos/staking/v1beta1/staking.d.ts +2059 -0
  48. package/dist/module/cosmos/staking/v1beta1/staking.js +2098 -0
  49. package/dist/module/cosmos/staking/v1beta1/tx.d.ts +748 -0
  50. package/dist/module/cosmos/staking/v1beta1/tx.js +1128 -0
  51. package/dist/module/cosmos/vesting/v1beta1/tx.d.ts +350 -0
  52. package/dist/module/cosmos/vesting/v1beta1/tx.js +447 -0
  53. package/dist/module/cosmos/vesting/v1beta1/vesting.d.ts +1305 -0
  54. package/dist/module/cosmos/vesting/v1beta1/vesting.js +489 -0
  55. package/dist/module/tendermint/abci/types.d.ts +7075 -0
  56. package/dist/module/tendermint/abci/types.js +4878 -0
  57. package/dist/module/tendermint/crypto/keys.d.ts +38 -0
  58. package/dist/module/tendermint/crypto/keys.js +111 -0
  59. package/dist/module/tendermint/crypto/proof.d.ts +226 -0
  60. package/dist/module/tendermint/crypto/proof.js +416 -0
  61. package/dist/module/tendermint/types/params.d.ts +313 -0
  62. package/dist/module/tendermint/types/params.js +477 -0
  63. package/dist/module/tendermint/types/types.d.ts +1970 -0
  64. package/dist/module/tendermint/types/types.js +1581 -0
  65. package/dist/module/tendermint/types/validator.d.ts +277 -0
  66. package/dist/module/tendermint/types/validator.js +294 -0
  67. package/dist/module/tendermint/version/types.d.ts +71 -0
  68. package/dist/module/tendermint/version/types.js +154 -0
  69. package/package.json +2 -2
@@ -0,0 +1,1128 @@
1
+ /* eslint-disable */
2
+ import Long from "long";
3
+ import _m0 from "protobufjs/minimal";
4
+ import { Any } from "../../../google/protobuf/any";
5
+ import { Timestamp } from "../../../google/protobuf/timestamp";
6
+ import { Coin } from "../../base/v1beta1/coin";
7
+ import { CommissionRates, Description, Params } from "./staking";
8
+ export const protobufPackage = "cosmos.staking.v1beta1";
9
+ function createBaseMsgCreateValidator() {
10
+ return {
11
+ description: undefined,
12
+ commission: undefined,
13
+ minSelfDelegation: "",
14
+ delegatorAddress: "",
15
+ validatorAddress: "",
16
+ pubkey: undefined,
17
+ value: undefined,
18
+ };
19
+ }
20
+ export const MsgCreateValidator = {
21
+ encode(message, writer = _m0.Writer.create()) {
22
+ if (message.description !== undefined) {
23
+ Description.encode(message.description, writer.uint32(10).fork()).ldelim();
24
+ }
25
+ if (message.commission !== undefined) {
26
+ CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();
27
+ }
28
+ if (message.minSelfDelegation !== "") {
29
+ writer.uint32(26).string(message.minSelfDelegation);
30
+ }
31
+ if (message.delegatorAddress !== "") {
32
+ writer.uint32(34).string(message.delegatorAddress);
33
+ }
34
+ if (message.validatorAddress !== "") {
35
+ writer.uint32(42).string(message.validatorAddress);
36
+ }
37
+ if (message.pubkey !== undefined) {
38
+ Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();
39
+ }
40
+ if (message.value !== undefined) {
41
+ Coin.encode(message.value, writer.uint32(58).fork()).ldelim();
42
+ }
43
+ return writer;
44
+ },
45
+ decode(input, length) {
46
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
47
+ let end = length === undefined ? reader.len : reader.pos + length;
48
+ const message = createBaseMsgCreateValidator();
49
+ while (reader.pos < end) {
50
+ const tag = reader.uint32();
51
+ switch (tag >>> 3) {
52
+ case 1:
53
+ if (tag !== 10) {
54
+ break;
55
+ }
56
+ message.description = Description.decode(reader, reader.uint32());
57
+ continue;
58
+ case 2:
59
+ if (tag !== 18) {
60
+ break;
61
+ }
62
+ message.commission = CommissionRates.decode(reader, reader.uint32());
63
+ continue;
64
+ case 3:
65
+ if (tag !== 26) {
66
+ break;
67
+ }
68
+ message.minSelfDelegation = reader.string();
69
+ continue;
70
+ case 4:
71
+ if (tag !== 34) {
72
+ break;
73
+ }
74
+ message.delegatorAddress = reader.string();
75
+ continue;
76
+ case 5:
77
+ if (tag !== 42) {
78
+ break;
79
+ }
80
+ message.validatorAddress = reader.string();
81
+ continue;
82
+ case 6:
83
+ if (tag !== 50) {
84
+ break;
85
+ }
86
+ message.pubkey = Any.decode(reader, reader.uint32());
87
+ continue;
88
+ case 7:
89
+ if (tag !== 58) {
90
+ break;
91
+ }
92
+ message.value = Coin.decode(reader, reader.uint32());
93
+ continue;
94
+ }
95
+ if ((tag & 7) === 4 || tag === 0) {
96
+ break;
97
+ }
98
+ reader.skipType(tag & 7);
99
+ }
100
+ return message;
101
+ },
102
+ fromJSON(object) {
103
+ return {
104
+ description: isSet(object.description)
105
+ ? Description.fromJSON(object.description)
106
+ : undefined,
107
+ commission: isSet(object.commission)
108
+ ? CommissionRates.fromJSON(object.commission)
109
+ : undefined,
110
+ minSelfDelegation: isSet(object.minSelfDelegation)
111
+ ? String(object.minSelfDelegation)
112
+ : "",
113
+ delegatorAddress: isSet(object.delegatorAddress)
114
+ ? String(object.delegatorAddress)
115
+ : "",
116
+ validatorAddress: isSet(object.validatorAddress)
117
+ ? String(object.validatorAddress)
118
+ : "",
119
+ pubkey: isSet(object.pubkey) ? Any.fromJSON(object.pubkey) : undefined,
120
+ value: isSet(object.value) ? Coin.fromJSON(object.value) : undefined,
121
+ };
122
+ },
123
+ toJSON(message) {
124
+ const obj = {};
125
+ message.description !== undefined &&
126
+ (obj.description = message.description
127
+ ? Description.toJSON(message.description)
128
+ : undefined);
129
+ message.commission !== undefined &&
130
+ (obj.commission = message.commission
131
+ ? CommissionRates.toJSON(message.commission)
132
+ : undefined);
133
+ message.minSelfDelegation !== undefined &&
134
+ (obj.minSelfDelegation = message.minSelfDelegation);
135
+ message.delegatorAddress !== undefined &&
136
+ (obj.delegatorAddress = message.delegatorAddress);
137
+ message.validatorAddress !== undefined &&
138
+ (obj.validatorAddress = message.validatorAddress);
139
+ message.pubkey !== undefined &&
140
+ (obj.pubkey = message.pubkey ? Any.toJSON(message.pubkey) : undefined);
141
+ message.value !== undefined &&
142
+ (obj.value = message.value ? Coin.toJSON(message.value) : undefined);
143
+ return obj;
144
+ },
145
+ create(base) {
146
+ return MsgCreateValidator.fromPartial(base ?? {});
147
+ },
148
+ fromPartial(object) {
149
+ const message = createBaseMsgCreateValidator();
150
+ message.description =
151
+ object.description !== undefined && object.description !== null
152
+ ? Description.fromPartial(object.description)
153
+ : undefined;
154
+ message.commission =
155
+ object.commission !== undefined && object.commission !== null
156
+ ? CommissionRates.fromPartial(object.commission)
157
+ : undefined;
158
+ message.minSelfDelegation = object.minSelfDelegation ?? "";
159
+ message.delegatorAddress = object.delegatorAddress ?? "";
160
+ message.validatorAddress = object.validatorAddress ?? "";
161
+ message.pubkey =
162
+ object.pubkey !== undefined && object.pubkey !== null
163
+ ? Any.fromPartial(object.pubkey)
164
+ : undefined;
165
+ message.value =
166
+ object.value !== undefined && object.value !== null
167
+ ? Coin.fromPartial(object.value)
168
+ : undefined;
169
+ return message;
170
+ },
171
+ };
172
+ function createBaseMsgCreateValidatorResponse() {
173
+ return {};
174
+ }
175
+ export const MsgCreateValidatorResponse = {
176
+ encode(_, writer = _m0.Writer.create()) {
177
+ return writer;
178
+ },
179
+ decode(input, length) {
180
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
181
+ let end = length === undefined ? reader.len : reader.pos + length;
182
+ const message = createBaseMsgCreateValidatorResponse();
183
+ while (reader.pos < end) {
184
+ const tag = reader.uint32();
185
+ switch (tag >>> 3) {
186
+ }
187
+ if ((tag & 7) === 4 || tag === 0) {
188
+ break;
189
+ }
190
+ reader.skipType(tag & 7);
191
+ }
192
+ return message;
193
+ },
194
+ fromJSON(_) {
195
+ return {};
196
+ },
197
+ toJSON(_) {
198
+ const obj = {};
199
+ return obj;
200
+ },
201
+ create(base) {
202
+ return MsgCreateValidatorResponse.fromPartial(base ?? {});
203
+ },
204
+ fromPartial(_) {
205
+ const message = createBaseMsgCreateValidatorResponse();
206
+ return message;
207
+ },
208
+ };
209
+ function createBaseMsgEditValidator() {
210
+ return {
211
+ description: undefined,
212
+ validatorAddress: "",
213
+ commissionRate: "",
214
+ minSelfDelegation: "",
215
+ };
216
+ }
217
+ export const MsgEditValidator = {
218
+ encode(message, writer = _m0.Writer.create()) {
219
+ if (message.description !== undefined) {
220
+ Description.encode(message.description, writer.uint32(10).fork()).ldelim();
221
+ }
222
+ if (message.validatorAddress !== "") {
223
+ writer.uint32(18).string(message.validatorAddress);
224
+ }
225
+ if (message.commissionRate !== "") {
226
+ writer.uint32(26).string(message.commissionRate);
227
+ }
228
+ if (message.minSelfDelegation !== "") {
229
+ writer.uint32(34).string(message.minSelfDelegation);
230
+ }
231
+ return writer;
232
+ },
233
+ decode(input, length) {
234
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
235
+ let end = length === undefined ? reader.len : reader.pos + length;
236
+ const message = createBaseMsgEditValidator();
237
+ while (reader.pos < end) {
238
+ const tag = reader.uint32();
239
+ switch (tag >>> 3) {
240
+ case 1:
241
+ if (tag !== 10) {
242
+ break;
243
+ }
244
+ message.description = Description.decode(reader, reader.uint32());
245
+ continue;
246
+ case 2:
247
+ if (tag !== 18) {
248
+ break;
249
+ }
250
+ message.validatorAddress = reader.string();
251
+ continue;
252
+ case 3:
253
+ if (tag !== 26) {
254
+ break;
255
+ }
256
+ message.commissionRate = reader.string();
257
+ continue;
258
+ case 4:
259
+ if (tag !== 34) {
260
+ break;
261
+ }
262
+ message.minSelfDelegation = reader.string();
263
+ continue;
264
+ }
265
+ if ((tag & 7) === 4 || tag === 0) {
266
+ break;
267
+ }
268
+ reader.skipType(tag & 7);
269
+ }
270
+ return message;
271
+ },
272
+ fromJSON(object) {
273
+ return {
274
+ description: isSet(object.description)
275
+ ? Description.fromJSON(object.description)
276
+ : undefined,
277
+ validatorAddress: isSet(object.validatorAddress)
278
+ ? String(object.validatorAddress)
279
+ : "",
280
+ commissionRate: isSet(object.commissionRate)
281
+ ? String(object.commissionRate)
282
+ : "",
283
+ minSelfDelegation: isSet(object.minSelfDelegation)
284
+ ? String(object.minSelfDelegation)
285
+ : "",
286
+ };
287
+ },
288
+ toJSON(message) {
289
+ const obj = {};
290
+ message.description !== undefined &&
291
+ (obj.description = message.description
292
+ ? Description.toJSON(message.description)
293
+ : undefined);
294
+ message.validatorAddress !== undefined &&
295
+ (obj.validatorAddress = message.validatorAddress);
296
+ message.commissionRate !== undefined &&
297
+ (obj.commissionRate = message.commissionRate);
298
+ message.minSelfDelegation !== undefined &&
299
+ (obj.minSelfDelegation = message.minSelfDelegation);
300
+ return obj;
301
+ },
302
+ create(base) {
303
+ return MsgEditValidator.fromPartial(base ?? {});
304
+ },
305
+ fromPartial(object) {
306
+ const message = createBaseMsgEditValidator();
307
+ message.description =
308
+ object.description !== undefined && object.description !== null
309
+ ? Description.fromPartial(object.description)
310
+ : undefined;
311
+ message.validatorAddress = object.validatorAddress ?? "";
312
+ message.commissionRate = object.commissionRate ?? "";
313
+ message.minSelfDelegation = object.minSelfDelegation ?? "";
314
+ return message;
315
+ },
316
+ };
317
+ function createBaseMsgEditValidatorResponse() {
318
+ return {};
319
+ }
320
+ export const MsgEditValidatorResponse = {
321
+ encode(_, writer = _m0.Writer.create()) {
322
+ return writer;
323
+ },
324
+ decode(input, length) {
325
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
326
+ let end = length === undefined ? reader.len : reader.pos + length;
327
+ const message = createBaseMsgEditValidatorResponse();
328
+ while (reader.pos < end) {
329
+ const tag = reader.uint32();
330
+ switch (tag >>> 3) {
331
+ }
332
+ if ((tag & 7) === 4 || tag === 0) {
333
+ break;
334
+ }
335
+ reader.skipType(tag & 7);
336
+ }
337
+ return message;
338
+ },
339
+ fromJSON(_) {
340
+ return {};
341
+ },
342
+ toJSON(_) {
343
+ const obj = {};
344
+ return obj;
345
+ },
346
+ create(base) {
347
+ return MsgEditValidatorResponse.fromPartial(base ?? {});
348
+ },
349
+ fromPartial(_) {
350
+ const message = createBaseMsgEditValidatorResponse();
351
+ return message;
352
+ },
353
+ };
354
+ function createBaseMsgDelegate() {
355
+ return { delegatorAddress: "", validatorAddress: "", amount: undefined };
356
+ }
357
+ export const MsgDelegate = {
358
+ encode(message, writer = _m0.Writer.create()) {
359
+ if (message.delegatorAddress !== "") {
360
+ writer.uint32(10).string(message.delegatorAddress);
361
+ }
362
+ if (message.validatorAddress !== "") {
363
+ writer.uint32(18).string(message.validatorAddress);
364
+ }
365
+ if (message.amount !== undefined) {
366
+ Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();
367
+ }
368
+ return writer;
369
+ },
370
+ decode(input, length) {
371
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
372
+ let end = length === undefined ? reader.len : reader.pos + length;
373
+ const message = createBaseMsgDelegate();
374
+ while (reader.pos < end) {
375
+ const tag = reader.uint32();
376
+ switch (tag >>> 3) {
377
+ case 1:
378
+ if (tag !== 10) {
379
+ break;
380
+ }
381
+ message.delegatorAddress = reader.string();
382
+ continue;
383
+ case 2:
384
+ if (tag !== 18) {
385
+ break;
386
+ }
387
+ message.validatorAddress = reader.string();
388
+ continue;
389
+ case 3:
390
+ if (tag !== 26) {
391
+ break;
392
+ }
393
+ message.amount = Coin.decode(reader, reader.uint32());
394
+ continue;
395
+ }
396
+ if ((tag & 7) === 4 || tag === 0) {
397
+ break;
398
+ }
399
+ reader.skipType(tag & 7);
400
+ }
401
+ return message;
402
+ },
403
+ fromJSON(object) {
404
+ return {
405
+ delegatorAddress: isSet(object.delegatorAddress)
406
+ ? String(object.delegatorAddress)
407
+ : "",
408
+ validatorAddress: isSet(object.validatorAddress)
409
+ ? String(object.validatorAddress)
410
+ : "",
411
+ amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,
412
+ };
413
+ },
414
+ toJSON(message) {
415
+ const obj = {};
416
+ message.delegatorAddress !== undefined &&
417
+ (obj.delegatorAddress = message.delegatorAddress);
418
+ message.validatorAddress !== undefined &&
419
+ (obj.validatorAddress = message.validatorAddress);
420
+ message.amount !== undefined &&
421
+ (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
422
+ return obj;
423
+ },
424
+ create(base) {
425
+ return MsgDelegate.fromPartial(base ?? {});
426
+ },
427
+ fromPartial(object) {
428
+ const message = createBaseMsgDelegate();
429
+ message.delegatorAddress = object.delegatorAddress ?? "";
430
+ message.validatorAddress = object.validatorAddress ?? "";
431
+ message.amount =
432
+ object.amount !== undefined && object.amount !== null
433
+ ? Coin.fromPartial(object.amount)
434
+ : undefined;
435
+ return message;
436
+ },
437
+ };
438
+ function createBaseMsgDelegateResponse() {
439
+ return {};
440
+ }
441
+ export const MsgDelegateResponse = {
442
+ encode(_, writer = _m0.Writer.create()) {
443
+ return writer;
444
+ },
445
+ decode(input, length) {
446
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
447
+ let end = length === undefined ? reader.len : reader.pos + length;
448
+ const message = createBaseMsgDelegateResponse();
449
+ while (reader.pos < end) {
450
+ const tag = reader.uint32();
451
+ switch (tag >>> 3) {
452
+ }
453
+ if ((tag & 7) === 4 || tag === 0) {
454
+ break;
455
+ }
456
+ reader.skipType(tag & 7);
457
+ }
458
+ return message;
459
+ },
460
+ fromJSON(_) {
461
+ return {};
462
+ },
463
+ toJSON(_) {
464
+ const obj = {};
465
+ return obj;
466
+ },
467
+ create(base) {
468
+ return MsgDelegateResponse.fromPartial(base ?? {});
469
+ },
470
+ fromPartial(_) {
471
+ const message = createBaseMsgDelegateResponse();
472
+ return message;
473
+ },
474
+ };
475
+ function createBaseMsgBeginRedelegate() {
476
+ return {
477
+ delegatorAddress: "",
478
+ validatorSrcAddress: "",
479
+ validatorDstAddress: "",
480
+ amount: undefined,
481
+ };
482
+ }
483
+ export const MsgBeginRedelegate = {
484
+ encode(message, writer = _m0.Writer.create()) {
485
+ if (message.delegatorAddress !== "") {
486
+ writer.uint32(10).string(message.delegatorAddress);
487
+ }
488
+ if (message.validatorSrcAddress !== "") {
489
+ writer.uint32(18).string(message.validatorSrcAddress);
490
+ }
491
+ if (message.validatorDstAddress !== "") {
492
+ writer.uint32(26).string(message.validatorDstAddress);
493
+ }
494
+ if (message.amount !== undefined) {
495
+ Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();
496
+ }
497
+ return writer;
498
+ },
499
+ decode(input, length) {
500
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
501
+ let end = length === undefined ? reader.len : reader.pos + length;
502
+ const message = createBaseMsgBeginRedelegate();
503
+ while (reader.pos < end) {
504
+ const tag = reader.uint32();
505
+ switch (tag >>> 3) {
506
+ case 1:
507
+ if (tag !== 10) {
508
+ break;
509
+ }
510
+ message.delegatorAddress = reader.string();
511
+ continue;
512
+ case 2:
513
+ if (tag !== 18) {
514
+ break;
515
+ }
516
+ message.validatorSrcAddress = reader.string();
517
+ continue;
518
+ case 3:
519
+ if (tag !== 26) {
520
+ break;
521
+ }
522
+ message.validatorDstAddress = reader.string();
523
+ continue;
524
+ case 4:
525
+ if (tag !== 34) {
526
+ break;
527
+ }
528
+ message.amount = Coin.decode(reader, reader.uint32());
529
+ continue;
530
+ }
531
+ if ((tag & 7) === 4 || tag === 0) {
532
+ break;
533
+ }
534
+ reader.skipType(tag & 7);
535
+ }
536
+ return message;
537
+ },
538
+ fromJSON(object) {
539
+ return {
540
+ delegatorAddress: isSet(object.delegatorAddress)
541
+ ? String(object.delegatorAddress)
542
+ : "",
543
+ validatorSrcAddress: isSet(object.validatorSrcAddress)
544
+ ? String(object.validatorSrcAddress)
545
+ : "",
546
+ validatorDstAddress: isSet(object.validatorDstAddress)
547
+ ? String(object.validatorDstAddress)
548
+ : "",
549
+ amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,
550
+ };
551
+ },
552
+ toJSON(message) {
553
+ const obj = {};
554
+ message.delegatorAddress !== undefined &&
555
+ (obj.delegatorAddress = message.delegatorAddress);
556
+ message.validatorSrcAddress !== undefined &&
557
+ (obj.validatorSrcAddress = message.validatorSrcAddress);
558
+ message.validatorDstAddress !== undefined &&
559
+ (obj.validatorDstAddress = message.validatorDstAddress);
560
+ message.amount !== undefined &&
561
+ (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
562
+ return obj;
563
+ },
564
+ create(base) {
565
+ return MsgBeginRedelegate.fromPartial(base ?? {});
566
+ },
567
+ fromPartial(object) {
568
+ const message = createBaseMsgBeginRedelegate();
569
+ message.delegatorAddress = object.delegatorAddress ?? "";
570
+ message.validatorSrcAddress = object.validatorSrcAddress ?? "";
571
+ message.validatorDstAddress = object.validatorDstAddress ?? "";
572
+ message.amount =
573
+ object.amount !== undefined && object.amount !== null
574
+ ? Coin.fromPartial(object.amount)
575
+ : undefined;
576
+ return message;
577
+ },
578
+ };
579
+ function createBaseMsgBeginRedelegateResponse() {
580
+ return { completionTime: undefined };
581
+ }
582
+ export const MsgBeginRedelegateResponse = {
583
+ encode(message, writer = _m0.Writer.create()) {
584
+ if (message.completionTime !== undefined) {
585
+ Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();
586
+ }
587
+ return writer;
588
+ },
589
+ decode(input, length) {
590
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
591
+ let end = length === undefined ? reader.len : reader.pos + length;
592
+ const message = createBaseMsgBeginRedelegateResponse();
593
+ while (reader.pos < end) {
594
+ const tag = reader.uint32();
595
+ switch (tag >>> 3) {
596
+ case 1:
597
+ if (tag !== 10) {
598
+ break;
599
+ }
600
+ message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
601
+ continue;
602
+ }
603
+ if ((tag & 7) === 4 || tag === 0) {
604
+ break;
605
+ }
606
+ reader.skipType(tag & 7);
607
+ }
608
+ return message;
609
+ },
610
+ fromJSON(object) {
611
+ return {
612
+ completionTime: isSet(object.completionTime)
613
+ ? fromJsonTimestamp(object.completionTime)
614
+ : undefined,
615
+ };
616
+ },
617
+ toJSON(message) {
618
+ const obj = {};
619
+ message.completionTime !== undefined &&
620
+ (obj.completionTime = message.completionTime.toISOString());
621
+ return obj;
622
+ },
623
+ create(base) {
624
+ return MsgBeginRedelegateResponse.fromPartial(base ?? {});
625
+ },
626
+ fromPartial(object) {
627
+ const message = createBaseMsgBeginRedelegateResponse();
628
+ message.completionTime = object.completionTime ?? undefined;
629
+ return message;
630
+ },
631
+ };
632
+ function createBaseMsgUndelegate() {
633
+ return { delegatorAddress: "", validatorAddress: "", amount: undefined };
634
+ }
635
+ export const MsgUndelegate = {
636
+ encode(message, writer = _m0.Writer.create()) {
637
+ if (message.delegatorAddress !== "") {
638
+ writer.uint32(10).string(message.delegatorAddress);
639
+ }
640
+ if (message.validatorAddress !== "") {
641
+ writer.uint32(18).string(message.validatorAddress);
642
+ }
643
+ if (message.amount !== undefined) {
644
+ Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();
645
+ }
646
+ return writer;
647
+ },
648
+ decode(input, length) {
649
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
650
+ let end = length === undefined ? reader.len : reader.pos + length;
651
+ const message = createBaseMsgUndelegate();
652
+ while (reader.pos < end) {
653
+ const tag = reader.uint32();
654
+ switch (tag >>> 3) {
655
+ case 1:
656
+ if (tag !== 10) {
657
+ break;
658
+ }
659
+ message.delegatorAddress = reader.string();
660
+ continue;
661
+ case 2:
662
+ if (tag !== 18) {
663
+ break;
664
+ }
665
+ message.validatorAddress = reader.string();
666
+ continue;
667
+ case 3:
668
+ if (tag !== 26) {
669
+ break;
670
+ }
671
+ message.amount = Coin.decode(reader, reader.uint32());
672
+ continue;
673
+ }
674
+ if ((tag & 7) === 4 || tag === 0) {
675
+ break;
676
+ }
677
+ reader.skipType(tag & 7);
678
+ }
679
+ return message;
680
+ },
681
+ fromJSON(object) {
682
+ return {
683
+ delegatorAddress: isSet(object.delegatorAddress)
684
+ ? String(object.delegatorAddress)
685
+ : "",
686
+ validatorAddress: isSet(object.validatorAddress)
687
+ ? String(object.validatorAddress)
688
+ : "",
689
+ amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,
690
+ };
691
+ },
692
+ toJSON(message) {
693
+ const obj = {};
694
+ message.delegatorAddress !== undefined &&
695
+ (obj.delegatorAddress = message.delegatorAddress);
696
+ message.validatorAddress !== undefined &&
697
+ (obj.validatorAddress = message.validatorAddress);
698
+ message.amount !== undefined &&
699
+ (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
700
+ return obj;
701
+ },
702
+ create(base) {
703
+ return MsgUndelegate.fromPartial(base ?? {});
704
+ },
705
+ fromPartial(object) {
706
+ const message = createBaseMsgUndelegate();
707
+ message.delegatorAddress = object.delegatorAddress ?? "";
708
+ message.validatorAddress = object.validatorAddress ?? "";
709
+ message.amount =
710
+ object.amount !== undefined && object.amount !== null
711
+ ? Coin.fromPartial(object.amount)
712
+ : undefined;
713
+ return message;
714
+ },
715
+ };
716
+ function createBaseMsgUndelegateResponse() {
717
+ return { completionTime: undefined, amount: undefined };
718
+ }
719
+ export const MsgUndelegateResponse = {
720
+ encode(message, writer = _m0.Writer.create()) {
721
+ if (message.completionTime !== undefined) {
722
+ Timestamp.encode(toTimestamp(message.completionTime), writer.uint32(10).fork()).ldelim();
723
+ }
724
+ if (message.amount !== undefined) {
725
+ Coin.encode(message.amount, writer.uint32(18).fork()).ldelim();
726
+ }
727
+ return writer;
728
+ },
729
+ decode(input, length) {
730
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
731
+ let end = length === undefined ? reader.len : reader.pos + length;
732
+ const message = createBaseMsgUndelegateResponse();
733
+ while (reader.pos < end) {
734
+ const tag = reader.uint32();
735
+ switch (tag >>> 3) {
736
+ case 1:
737
+ if (tag !== 10) {
738
+ break;
739
+ }
740
+ message.completionTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
741
+ continue;
742
+ case 2:
743
+ if (tag !== 18) {
744
+ break;
745
+ }
746
+ message.amount = Coin.decode(reader, reader.uint32());
747
+ continue;
748
+ }
749
+ if ((tag & 7) === 4 || tag === 0) {
750
+ break;
751
+ }
752
+ reader.skipType(tag & 7);
753
+ }
754
+ return message;
755
+ },
756
+ fromJSON(object) {
757
+ return {
758
+ completionTime: isSet(object.completionTime)
759
+ ? fromJsonTimestamp(object.completionTime)
760
+ : undefined,
761
+ amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,
762
+ };
763
+ },
764
+ toJSON(message) {
765
+ const obj = {};
766
+ message.completionTime !== undefined &&
767
+ (obj.completionTime = message.completionTime.toISOString());
768
+ message.amount !== undefined &&
769
+ (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
770
+ return obj;
771
+ },
772
+ create(base) {
773
+ return MsgUndelegateResponse.fromPartial(base ?? {});
774
+ },
775
+ fromPartial(object) {
776
+ const message = createBaseMsgUndelegateResponse();
777
+ message.completionTime = object.completionTime ?? undefined;
778
+ message.amount =
779
+ object.amount !== undefined && object.amount !== null
780
+ ? Coin.fromPartial(object.amount)
781
+ : undefined;
782
+ return message;
783
+ },
784
+ };
785
+ function createBaseMsgCancelUnbondingDelegation() {
786
+ return {
787
+ delegatorAddress: "",
788
+ validatorAddress: "",
789
+ amount: undefined,
790
+ creationHeight: 0,
791
+ };
792
+ }
793
+ export const MsgCancelUnbondingDelegation = {
794
+ encode(message, writer = _m0.Writer.create()) {
795
+ if (message.delegatorAddress !== "") {
796
+ writer.uint32(10).string(message.delegatorAddress);
797
+ }
798
+ if (message.validatorAddress !== "") {
799
+ writer.uint32(18).string(message.validatorAddress);
800
+ }
801
+ if (message.amount !== undefined) {
802
+ Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();
803
+ }
804
+ if (message.creationHeight !== 0) {
805
+ writer.uint32(32).int64(message.creationHeight);
806
+ }
807
+ return writer;
808
+ },
809
+ decode(input, length) {
810
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
811
+ let end = length === undefined ? reader.len : reader.pos + length;
812
+ const message = createBaseMsgCancelUnbondingDelegation();
813
+ while (reader.pos < end) {
814
+ const tag = reader.uint32();
815
+ switch (tag >>> 3) {
816
+ case 1:
817
+ if (tag !== 10) {
818
+ break;
819
+ }
820
+ message.delegatorAddress = reader.string();
821
+ continue;
822
+ case 2:
823
+ if (tag !== 18) {
824
+ break;
825
+ }
826
+ message.validatorAddress = reader.string();
827
+ continue;
828
+ case 3:
829
+ if (tag !== 26) {
830
+ break;
831
+ }
832
+ message.amount = Coin.decode(reader, reader.uint32());
833
+ continue;
834
+ case 4:
835
+ if (tag !== 32) {
836
+ break;
837
+ }
838
+ message.creationHeight = longToNumber(reader.int64());
839
+ continue;
840
+ }
841
+ if ((tag & 7) === 4 || tag === 0) {
842
+ break;
843
+ }
844
+ reader.skipType(tag & 7);
845
+ }
846
+ return message;
847
+ },
848
+ fromJSON(object) {
849
+ return {
850
+ delegatorAddress: isSet(object.delegatorAddress)
851
+ ? String(object.delegatorAddress)
852
+ : "",
853
+ validatorAddress: isSet(object.validatorAddress)
854
+ ? String(object.validatorAddress)
855
+ : "",
856
+ amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,
857
+ creationHeight: isSet(object.creationHeight)
858
+ ? Number(object.creationHeight)
859
+ : 0,
860
+ };
861
+ },
862
+ toJSON(message) {
863
+ const obj = {};
864
+ message.delegatorAddress !== undefined &&
865
+ (obj.delegatorAddress = message.delegatorAddress);
866
+ message.validatorAddress !== undefined &&
867
+ (obj.validatorAddress = message.validatorAddress);
868
+ message.amount !== undefined &&
869
+ (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);
870
+ message.creationHeight !== undefined &&
871
+ (obj.creationHeight = Math.round(message.creationHeight));
872
+ return obj;
873
+ },
874
+ create(base) {
875
+ return MsgCancelUnbondingDelegation.fromPartial(base ?? {});
876
+ },
877
+ fromPartial(object) {
878
+ const message = createBaseMsgCancelUnbondingDelegation();
879
+ message.delegatorAddress = object.delegatorAddress ?? "";
880
+ message.validatorAddress = object.validatorAddress ?? "";
881
+ message.amount =
882
+ object.amount !== undefined && object.amount !== null
883
+ ? Coin.fromPartial(object.amount)
884
+ : undefined;
885
+ message.creationHeight = object.creationHeight ?? 0;
886
+ return message;
887
+ },
888
+ };
889
+ function createBaseMsgCancelUnbondingDelegationResponse() {
890
+ return {};
891
+ }
892
+ export const MsgCancelUnbondingDelegationResponse = {
893
+ encode(_, writer = _m0.Writer.create()) {
894
+ return writer;
895
+ },
896
+ decode(input, length) {
897
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
898
+ let end = length === undefined ? reader.len : reader.pos + length;
899
+ const message = createBaseMsgCancelUnbondingDelegationResponse();
900
+ while (reader.pos < end) {
901
+ const tag = reader.uint32();
902
+ switch (tag >>> 3) {
903
+ }
904
+ if ((tag & 7) === 4 || tag === 0) {
905
+ break;
906
+ }
907
+ reader.skipType(tag & 7);
908
+ }
909
+ return message;
910
+ },
911
+ fromJSON(_) {
912
+ return {};
913
+ },
914
+ toJSON(_) {
915
+ const obj = {};
916
+ return obj;
917
+ },
918
+ create(base) {
919
+ return MsgCancelUnbondingDelegationResponse.fromPartial(base ?? {});
920
+ },
921
+ fromPartial(_) {
922
+ const message = createBaseMsgCancelUnbondingDelegationResponse();
923
+ return message;
924
+ },
925
+ };
926
+ function createBaseMsgUpdateParams() {
927
+ return { authority: "", params: undefined };
928
+ }
929
+ export const MsgUpdateParams = {
930
+ encode(message, writer = _m0.Writer.create()) {
931
+ if (message.authority !== "") {
932
+ writer.uint32(10).string(message.authority);
933
+ }
934
+ if (message.params !== undefined) {
935
+ Params.encode(message.params, writer.uint32(18).fork()).ldelim();
936
+ }
937
+ return writer;
938
+ },
939
+ decode(input, length) {
940
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
941
+ let end = length === undefined ? reader.len : reader.pos + length;
942
+ const message = createBaseMsgUpdateParams();
943
+ while (reader.pos < end) {
944
+ const tag = reader.uint32();
945
+ switch (tag >>> 3) {
946
+ case 1:
947
+ if (tag !== 10) {
948
+ break;
949
+ }
950
+ message.authority = reader.string();
951
+ continue;
952
+ case 2:
953
+ if (tag !== 18) {
954
+ break;
955
+ }
956
+ message.params = Params.decode(reader, reader.uint32());
957
+ continue;
958
+ }
959
+ if ((tag & 7) === 4 || tag === 0) {
960
+ break;
961
+ }
962
+ reader.skipType(tag & 7);
963
+ }
964
+ return message;
965
+ },
966
+ fromJSON(object) {
967
+ return {
968
+ authority: isSet(object.authority) ? String(object.authority) : "",
969
+ params: isSet(object.params) ? Params.fromJSON(object.params) : undefined,
970
+ };
971
+ },
972
+ toJSON(message) {
973
+ const obj = {};
974
+ message.authority !== undefined && (obj.authority = message.authority);
975
+ message.params !== undefined &&
976
+ (obj.params = message.params ? Params.toJSON(message.params) : undefined);
977
+ return obj;
978
+ },
979
+ create(base) {
980
+ return MsgUpdateParams.fromPartial(base ?? {});
981
+ },
982
+ fromPartial(object) {
983
+ const message = createBaseMsgUpdateParams();
984
+ message.authority = object.authority ?? "";
985
+ message.params =
986
+ object.params !== undefined && object.params !== null
987
+ ? Params.fromPartial(object.params)
988
+ : undefined;
989
+ return message;
990
+ },
991
+ };
992
+ function createBaseMsgUpdateParamsResponse() {
993
+ return {};
994
+ }
995
+ export const MsgUpdateParamsResponse = {
996
+ encode(_, writer = _m0.Writer.create()) {
997
+ return writer;
998
+ },
999
+ decode(input, length) {
1000
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1001
+ let end = length === undefined ? reader.len : reader.pos + length;
1002
+ const message = createBaseMsgUpdateParamsResponse();
1003
+ while (reader.pos < end) {
1004
+ const tag = reader.uint32();
1005
+ switch (tag >>> 3) {
1006
+ }
1007
+ if ((tag & 7) === 4 || tag === 0) {
1008
+ break;
1009
+ }
1010
+ reader.skipType(tag & 7);
1011
+ }
1012
+ return message;
1013
+ },
1014
+ fromJSON(_) {
1015
+ return {};
1016
+ },
1017
+ toJSON(_) {
1018
+ const obj = {};
1019
+ return obj;
1020
+ },
1021
+ create(base) {
1022
+ return MsgUpdateParamsResponse.fromPartial(base ?? {});
1023
+ },
1024
+ fromPartial(_) {
1025
+ const message = createBaseMsgUpdateParamsResponse();
1026
+ return message;
1027
+ },
1028
+ };
1029
+ export class MsgClientImpl {
1030
+ rpc;
1031
+ service;
1032
+ constructor(rpc, opts) {
1033
+ this.service = opts?.service || "cosmos.staking.v1beta1.Msg";
1034
+ this.rpc = rpc;
1035
+ this.CreateValidator = this.CreateValidator.bind(this);
1036
+ this.EditValidator = this.EditValidator.bind(this);
1037
+ this.Delegate = this.Delegate.bind(this);
1038
+ this.BeginRedelegate = this.BeginRedelegate.bind(this);
1039
+ this.Undelegate = this.Undelegate.bind(this);
1040
+ this.CancelUnbondingDelegation = this.CancelUnbondingDelegation.bind(this);
1041
+ this.UpdateParams = this.UpdateParams.bind(this);
1042
+ }
1043
+ CreateValidator(request) {
1044
+ const data = MsgCreateValidator.encode(request).finish();
1045
+ const promise = this.rpc.request(this.service, "CreateValidator", data);
1046
+ return promise.then((data) => MsgCreateValidatorResponse.decode(_m0.Reader.create(data)));
1047
+ }
1048
+ EditValidator(request) {
1049
+ const data = MsgEditValidator.encode(request).finish();
1050
+ const promise = this.rpc.request(this.service, "EditValidator", data);
1051
+ return promise.then((data) => MsgEditValidatorResponse.decode(_m0.Reader.create(data)));
1052
+ }
1053
+ Delegate(request) {
1054
+ const data = MsgDelegate.encode(request).finish();
1055
+ const promise = this.rpc.request(this.service, "Delegate", data);
1056
+ return promise.then((data) => MsgDelegateResponse.decode(_m0.Reader.create(data)));
1057
+ }
1058
+ BeginRedelegate(request) {
1059
+ const data = MsgBeginRedelegate.encode(request).finish();
1060
+ const promise = this.rpc.request(this.service, "BeginRedelegate", data);
1061
+ return promise.then((data) => MsgBeginRedelegateResponse.decode(_m0.Reader.create(data)));
1062
+ }
1063
+ Undelegate(request) {
1064
+ const data = MsgUndelegate.encode(request).finish();
1065
+ const promise = this.rpc.request(this.service, "Undelegate", data);
1066
+ return promise.then((data) => MsgUndelegateResponse.decode(_m0.Reader.create(data)));
1067
+ }
1068
+ CancelUnbondingDelegation(request) {
1069
+ const data = MsgCancelUnbondingDelegation.encode(request).finish();
1070
+ const promise = this.rpc.request(this.service, "CancelUnbondingDelegation", data);
1071
+ return promise.then((data) => MsgCancelUnbondingDelegationResponse.decode(_m0.Reader.create(data)));
1072
+ }
1073
+ UpdateParams(request) {
1074
+ const data = MsgUpdateParams.encode(request).finish();
1075
+ const promise = this.rpc.request(this.service, "UpdateParams", data);
1076
+ return promise.then((data) => MsgUpdateParamsResponse.decode(_m0.Reader.create(data)));
1077
+ }
1078
+ }
1079
+ var tsProtoGlobalThis = (() => {
1080
+ if (typeof globalThis !== "undefined") {
1081
+ return globalThis;
1082
+ }
1083
+ if (typeof self !== "undefined") {
1084
+ return self;
1085
+ }
1086
+ if (typeof window !== "undefined") {
1087
+ return window;
1088
+ }
1089
+ if (typeof global !== "undefined") {
1090
+ return global;
1091
+ }
1092
+ throw "Unable to locate global object";
1093
+ })();
1094
+ function toTimestamp(date) {
1095
+ const seconds = date.getTime() / 1_000;
1096
+ const nanos = (date.getTime() % 1_000) * 1_000_000;
1097
+ return { seconds, nanos };
1098
+ }
1099
+ function fromTimestamp(t) {
1100
+ let millis = (t.seconds || 0) * 1_000;
1101
+ millis += (t.nanos || 0) / 1_000_000;
1102
+ return new Date(millis);
1103
+ }
1104
+ function fromJsonTimestamp(o) {
1105
+ if (o instanceof Date) {
1106
+ return o;
1107
+ }
1108
+ else if (typeof o === "string") {
1109
+ return new Date(o);
1110
+ }
1111
+ else {
1112
+ return fromTimestamp(Timestamp.fromJSON(o));
1113
+ }
1114
+ }
1115
+ function longToNumber(long) {
1116
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
1117
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
1118
+ }
1119
+ return long.toNumber();
1120
+ }
1121
+ if (_m0.util.Long !== Long) {
1122
+ _m0.util.Long = Long;
1123
+ _m0.configure();
1124
+ }
1125
+ function isSet(value) {
1126
+ return value !== null && value !== undefined;
1127
+ }
1128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29zbW9zL3N0YWtpbmcvdjFiZXRhMS90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUM7QUF1SXhELFNBQVMsNEJBQTRCO0lBQ25DLE9BQU87UUFDTCxXQUFXLEVBQUUsU0FBUztRQUN0QixVQUFVLEVBQUUsU0FBUztRQUNyQixpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixNQUFNLEVBQUUsU0FBUztRQUNqQixLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE1BQU0sQ0FDSixPQUEyQixFQUMzQixTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ3JDLFdBQVcsQ0FBQyxNQUFNLENBQ2hCLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3pCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FD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