@ercworldio/blockchain-shared 1.0.3-dev.3 → 1.0.3-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/build/chains/networks_prod-dz.json +7 -7
  2. package/build/chains/networks_prod-sh.json +41 -5
  3. package/build/chains/networks_prod-yb.json +42 -6
  4. package/build/chains/networks_stg-yb.json +1 -1
  5. package/build/contracts/artifacts/Escrow.json +1831 -342
  6. package/build/contracts/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +0 -1
  7. package/build/contracts/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  8. package/build/contracts/typechain-types/@openzeppelin/contracts/utils/index.d.ts +0 -6
  9. package/build/contracts/typechain-types/@openzeppelin/contracts/utils/index.d.ts.map +1 -1
  10. package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts +761 -76
  11. package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts.map +1 -1
  12. package/build/contracts/typechain-types/contracts/escrow/EscrowAccessControl.d.ts +65 -17
  13. package/build/contracts/typechain-types/contracts/escrow/EscrowAccessControl.d.ts.map +1 -1
  14. package/build/contracts/typechain-types/contracts/index.d.ts +2 -0
  15. package/build/contracts/typechain-types/contracts/index.d.ts.map +1 -1
  16. package/build/contracts/typechain-types/contracts/lib/Events.d.ts +386 -0
  17. package/build/contracts/typechain-types/contracts/lib/Events.d.ts.map +1 -0
  18. package/build/contracts/typechain-types/contracts/lib/Events.js +2 -0
  19. package/build/contracts/typechain-types/contracts/lib/MultisigLib.d.ts +21 -0
  20. package/build/contracts/typechain-types/contracts/lib/MultisigLib.d.ts.map +1 -0
  21. package/build/contracts/typechain-types/contracts/lib/MultisigLib.js +2 -0
  22. package/build/contracts/typechain-types/contracts/lib/index.d.ts +3 -0
  23. package/build/contracts/typechain-types/contracts/lib/index.d.ts.map +1 -0
  24. package/build/contracts/typechain-types/contracts/lib/index.js +2 -0
  25. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +0 -1
  26. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  27. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/interfaces/index.js +1 -3
  28. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.d.ts +1 -1
  29. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.d.ts.map +1 -1
  30. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.js +1 -1
  31. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +0 -4
  32. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts.map +1 -1
  33. package/build/contracts/typechain-types/factories/@openzeppelin/contracts/utils/index.js +1 -7
  34. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.d.ts +286 -12
  35. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.d.ts.map +1 -1
  36. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.js +374 -12
  37. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowErrors__factory.d.ts +137 -1
  38. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowErrors__factory.d.ts.map +1 -1
  39. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowErrors__factory.js +182 -1
  40. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowSignature__factory.d.ts +1 -1
  41. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowSignature__factory.d.ts.map +1 -1
  42. package/build/contracts/typechain-types/factories/contracts/escrow/EscrowSignature__factory.js +1 -1
  43. package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts +1247 -98
  44. package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts.map +1 -1
  45. package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.js +1736 -247
  46. package/build/contracts/typechain-types/factories/contracts/escrow/TokensWhitelist__factory.d.ts +1 -1
  47. package/build/contracts/typechain-types/factories/contracts/escrow/TokensWhitelist__factory.d.ts.map +1 -1
  48. package/build/contracts/typechain-types/factories/contracts/escrow/TokensWhitelist__factory.js +1 -1
  49. package/build/contracts/typechain-types/factories/contracts/index.d.ts +1 -0
  50. package/build/contracts/typechain-types/factories/contracts/index.d.ts.map +1 -1
  51. package/build/contracts/typechain-types/factories/contracts/index.js +2 -1
  52. package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts +373 -0
  53. package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts.map +1 -0
  54. package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.js +473 -0
  55. package/build/contracts/typechain-types/factories/contracts/lib/MultisigLib__factory.d.ts +55 -0
  56. package/build/contracts/typechain-types/factories/contracts/lib/MultisigLib__factory.d.ts.map +1 -0
  57. package/build/contracts/typechain-types/factories/contracts/lib/MultisigLib__factory.js +82 -0
  58. package/build/contracts/typechain-types/factories/contracts/lib/index.d.ts +3 -0
  59. package/build/contracts/typechain-types/factories/contracts/lib/index.d.ts.map +1 -0
  60. package/build/contracts/typechain-types/factories/contracts/lib/index.js +10 -0
  61. package/build/contracts/typechain-types/factories/contracts/mock/erc20/ERC20Mock__factory.d.ts +1 -1
  62. package/build/contracts/typechain-types/factories/contracts/mock/erc20/ERC20Mock__factory.d.ts.map +1 -1
  63. package/build/contracts/typechain-types/factories/contracts/mock/erc20/ERC20Mock__factory.js +1 -1
  64. package/build/contracts/typechain-types/index.d.ts +4 -10
  65. package/build/contracts/typechain-types/index.d.ts.map +1 -1
  66. package/build/contracts/typechain-types/index.js +5 -11
  67. package/build/entities/AdminOperationThresholds.d.ts +12 -0
  68. package/build/entities/AdminOperationThresholds.d.ts.map +1 -0
  69. package/build/entities/AdminOperationThresholds.js +56 -0
  70. package/build/entities/EscrowRoles.d.ts +12 -0
  71. package/build/entities/EscrowRoles.d.ts.map +1 -0
  72. package/build/entities/EscrowRoles.js +57 -0
  73. package/build/entities/GlobalTimelock.d.ts +14 -0
  74. package/build/entities/GlobalTimelock.d.ts.map +1 -0
  75. package/build/entities/GlobalTimelock.js +64 -0
  76. package/build/entities/GranularTimelock .d.ts +12 -0
  77. package/build/entities/GranularTimelock .d.ts.map +1 -0
  78. package/build/entities/GranularTimelock .js +56 -0
  79. package/build/entities/OperationType.d.ts +18 -0
  80. package/build/entities/OperationType.d.ts.map +1 -0
  81. package/build/entities/OperationType.js +50 -0
  82. package/build/entities/RoleHash.d.ts +11 -0
  83. package/build/entities/RoleHash.d.ts.map +1 -0
  84. package/build/entities/RoleHash.js +52 -0
  85. package/build/entities/Signatures.d.ts +16 -0
  86. package/build/entities/Signatures.d.ts.map +1 -0
  87. package/build/entities/Signatures.js +72 -0
  88. package/build/entities/TokenExecutionThresholds.d.ts +16 -0
  89. package/build/entities/TokenExecutionThresholds.d.ts.map +1 -0
  90. package/build/entities/TokenExecutionThresholds.js +72 -0
  91. package/build/index.d.ts +1 -0
  92. package/build/index.d.ts.map +1 -1
  93. package/build/index.js +4 -2
  94. package/build/services/ChainManager.d.ts.map +1 -1
  95. package/build/services/SweepJobService.d.ts +3 -3
  96. package/build/services/SweepJobService.d.ts.map +1 -1
  97. package/build/services/SweepJobService.js +12 -7
  98. package/build/services/db/roles/ContractRoles.d.ts +54 -0
  99. package/build/services/db/roles/ContractRoles.d.ts.map +1 -0
  100. package/build/services/db/roles/ContractRoles.js +81 -0
  101. package/package.json +1 -1
@@ -27,6 +27,49 @@ const _abi = [
27
27
  name: "AccessControlUnauthorizedAccount",
28
28
  type: "error",
29
29
  },
30
+ {
31
+ inputs: [
32
+ {
33
+ internalType: "address",
34
+ name: "account",
35
+ type: "address",
36
+ },
37
+ ],
38
+ name: "AccountAlreadyHasSignerRole",
39
+ type: "error",
40
+ },
41
+ {
42
+ inputs: [],
43
+ name: "AdminMultisigConfigNotSet",
44
+ type: "error",
45
+ },
46
+ {
47
+ inputs: [
48
+ {
49
+ internalType: "uint256",
50
+ name: "requestId",
51
+ type: "uint256",
52
+ },
53
+ ],
54
+ name: "AlreadyCreatedTransaction",
55
+ type: "error",
56
+ },
57
+ {
58
+ inputs: [
59
+ {
60
+ internalType: "bytes32",
61
+ name: "commitmentHash",
62
+ type: "bytes32",
63
+ },
64
+ ],
65
+ name: "CommitmentNotFound",
66
+ type: "error",
67
+ },
68
+ {
69
+ inputs: [],
70
+ name: "ConfigGroupNotSet",
71
+ type: "error",
72
+ },
30
73
  {
31
74
  inputs: [],
32
75
  name: "ContractBusy",
@@ -63,6 +106,11 @@ const _abi = [
63
106
  name: "ExceedsLimit",
64
107
  type: "error",
65
108
  },
109
+ {
110
+ inputs: [],
111
+ name: "ExceedsMax",
112
+ type: "error",
113
+ },
66
114
  {
67
115
  inputs: [],
68
116
  name: "ExceedsMaxBatch",
@@ -94,21 +142,149 @@ const _abi = [
94
142
  name: "InsufficientBalance",
95
143
  type: "error",
96
144
  },
145
+ {
146
+ inputs: [
147
+ {
148
+ internalType: "uint256",
149
+ name: "required",
150
+ type: "uint256",
151
+ },
152
+ {
153
+ internalType: "uint256",
154
+ name: "provided",
155
+ type: "uint256",
156
+ },
157
+ ],
158
+ name: "InsufficientExecutiveSigs",
159
+ type: "error",
160
+ },
161
+ {
162
+ inputs: [
163
+ {
164
+ internalType: "uint256",
165
+ name: "required",
166
+ type: "uint256",
167
+ },
168
+ {
169
+ internalType: "uint256",
170
+ name: "provided",
171
+ type: "uint256",
172
+ },
173
+ ],
174
+ name: "InsufficientExecutiveSigs",
175
+ type: "error",
176
+ },
177
+ {
178
+ inputs: [
179
+ {
180
+ internalType: "uint256",
181
+ name: "required",
182
+ type: "uint256",
183
+ },
184
+ {
185
+ internalType: "uint256",
186
+ name: "provided",
187
+ type: "uint256",
188
+ },
189
+ ],
190
+ name: "InsufficientManagerSigs",
191
+ type: "error",
192
+ },
193
+ {
194
+ inputs: [
195
+ {
196
+ internalType: "uint256",
197
+ name: "required",
198
+ type: "uint256",
199
+ },
200
+ {
201
+ internalType: "uint256",
202
+ name: "provided",
203
+ type: "uint256",
204
+ },
205
+ ],
206
+ name: "InsufficientManagerSigs",
207
+ type: "error",
208
+ },
97
209
  {
98
210
  inputs: [],
99
211
  name: "InsufficientReserves",
100
212
  type: "error",
101
213
  },
214
+ {
215
+ inputs: [],
216
+ name: "InvalidConfig",
217
+ type: "error",
218
+ },
102
219
  {
103
220
  inputs: [],
104
221
  name: "InvalidInitialization",
105
222
  type: "error",
106
223
  },
224
+ {
225
+ inputs: [
226
+ {
227
+ internalType: "uint256",
228
+ name: "sig_idx",
229
+ type: "uint256",
230
+ },
231
+ ],
232
+ name: "InvalidMultiSig",
233
+ type: "error",
234
+ },
235
+ {
236
+ inputs: [
237
+ {
238
+ internalType: "uint256",
239
+ name: "sig_idx",
240
+ type: "uint256",
241
+ },
242
+ ],
243
+ name: "InvalidMultiSig",
244
+ type: "error",
245
+ },
246
+ {
247
+ inputs: [
248
+ {
249
+ internalType: "uint256",
250
+ name: "expected",
251
+ type: "uint256",
252
+ },
253
+ {
254
+ internalType: "uint256",
255
+ name: "provided",
256
+ type: "uint256",
257
+ },
258
+ ],
259
+ name: "InvalidNonce",
260
+ type: "error",
261
+ },
262
+ {
263
+ inputs: [],
264
+ name: "InvalidOperation",
265
+ type: "error",
266
+ },
107
267
  {
108
268
  inputs: [],
109
269
  name: "InvalidSignature",
110
270
  type: "error",
111
271
  },
272
+ {
273
+ inputs: [],
274
+ name: "InvalidSignatures",
275
+ type: "error",
276
+ },
277
+ {
278
+ inputs: [
279
+ {
280
+ internalType: "address",
281
+ name: "tokenAddress",
282
+ type: "address",
283
+ },
284
+ ],
285
+ name: "MultisigConfigNotSet",
286
+ type: "error",
287
+ },
112
288
  {
113
289
  inputs: [],
114
290
  name: "NotAdmin",
@@ -145,6 +321,22 @@ const _abi = [
145
321
  name: "RequestAlreadyFulfilled",
146
322
  type: "error",
147
323
  },
324
+ {
325
+ inputs: [
326
+ {
327
+ internalType: "uint8",
328
+ name: "required_number",
329
+ type: "uint8",
330
+ },
331
+ ],
332
+ name: "RequireMultiSig",
333
+ type: "error",
334
+ },
335
+ {
336
+ inputs: [],
337
+ name: "RequireTreasuryReceiverRole",
338
+ type: "error",
339
+ },
148
340
  {
149
341
  inputs: [
150
342
  {
@@ -161,6 +353,38 @@ const _abi = [
161
353
  name: "SignatureAlreadyUsed",
162
354
  type: "error",
163
355
  },
356
+ {
357
+ inputs: [],
358
+ name: "TimelockConfigGroupNotSet",
359
+ type: "error",
360
+ },
361
+ {
362
+ inputs: [
363
+ {
364
+ internalType: "address",
365
+ name: "tokenAddress",
366
+ type: "address",
367
+ },
368
+ ],
369
+ name: "TimelockConfigNotSet",
370
+ type: "error",
371
+ },
372
+ {
373
+ inputs: [
374
+ {
375
+ internalType: "uint256",
376
+ name: "executeAt",
377
+ type: "uint256",
378
+ },
379
+ {
380
+ internalType: "uint256",
381
+ name: "currentTime",
382
+ type: "uint256",
383
+ },
384
+ ],
385
+ name: "TimelockNotExpired",
386
+ type: "error",
387
+ },
164
388
  {
165
389
  inputs: [
166
390
  {
@@ -241,6 +465,12 @@ const _abi = [
241
465
  name: "tokenAddress",
242
466
  type: "address",
243
467
  },
468
+ {
469
+ indexed: false,
470
+ internalType: "uint256",
471
+ name: "requestId",
472
+ type: "uint256",
473
+ },
244
474
  ],
245
475
  name: "AdminWithdraw",
246
476
  type: "event",
@@ -250,36 +480,24 @@ const _abi = [
250
480
  inputs: [
251
481
  {
252
482
  indexed: false,
253
- internalType: "address",
254
- name: "payer",
255
- type: "address",
256
- },
257
- {
258
- indexed: false,
259
- internalType: "address",
260
- name: "tokenAddress",
261
- type: "address",
483
+ internalType: "enum Types.OperationType",
484
+ name: "opType",
485
+ type: "uint8",
262
486
  },
263
487
  {
264
488
  indexed: false,
265
489
  internalType: "uint256",
266
- name: "amount",
490
+ name: "sigsManagerRequired",
267
491
  type: "uint256",
268
492
  },
269
493
  {
270
494
  indexed: false,
271
- internalType: "string",
272
- name: "bonusCode",
273
- type: "string",
495
+ internalType: "uint256",
496
+ name: "sigsExecutiveRequired",
497
+ type: "uint256",
274
498
  },
275
499
  ],
276
- name: "Deposit",
277
- type: "event",
278
- },
279
- {
280
- anonymous: false,
281
- inputs: [],
282
- name: "FundWallets",
500
+ name: "ConfigureAdminMultisig",
283
501
  type: "event",
284
502
  },
285
503
  {
@@ -287,37 +505,123 @@ const _abi = [
287
505
  inputs: [
288
506
  {
289
507
  indexed: false,
290
- internalType: "address",
291
- name: "funder",
292
- type: "address",
508
+ internalType: "enum Types.OperationType",
509
+ name: "opType",
510
+ type: "uint8",
293
511
  },
294
512
  {
295
- indexed: false,
513
+ indexed: true,
296
514
  internalType: "address",
297
- name: "token",
515
+ name: "tokenAddress",
298
516
  type: "address",
299
517
  },
300
518
  {
301
519
  indexed: false,
302
520
  internalType: "uint256",
303
- name: "amount",
521
+ name: "thresholdAmount",
304
522
  type: "uint256",
305
523
  },
306
- ],
307
- name: "FundedContract",
308
- type: "event",
309
- },
310
- {
311
- anonymous: false,
312
- inputs: [
313
524
  {
314
525
  indexed: false,
315
- internalType: "uint64",
316
- name: "version",
317
- type: "uint64",
526
+ internalType: "uint8",
527
+ name: "sigsExecutiveBelow",
528
+ type: "uint8",
529
+ },
530
+ {
531
+ indexed: false,
532
+ internalType: "uint8",
533
+ name: "sigsExecutiveAbove",
534
+ type: "uint8",
535
+ },
536
+ {
537
+ indexed: false,
538
+ internalType: "uint8",
539
+ name: "sigsManagerBelow",
540
+ type: "uint8",
541
+ },
542
+ {
543
+ indexed: false,
544
+ internalType: "uint8",
545
+ name: "sigsManagerAbove",
546
+ type: "uint8",
318
547
  },
319
548
  ],
320
- name: "Initialized",
549
+ name: "ConfigureTokenMultisig",
550
+ type: "event",
551
+ },
552
+ {
553
+ anonymous: false,
554
+ inputs: [
555
+ {
556
+ indexed: false,
557
+ internalType: "address",
558
+ name: "payer",
559
+ type: "address",
560
+ },
561
+ {
562
+ indexed: false,
563
+ internalType: "address",
564
+ name: "tokenAddress",
565
+ type: "address",
566
+ },
567
+ {
568
+ indexed: false,
569
+ internalType: "uint256",
570
+ name: "amount",
571
+ type: "uint256",
572
+ },
573
+ {
574
+ indexed: false,
575
+ internalType: "string",
576
+ name: "bonusCode",
577
+ type: "string",
578
+ },
579
+ ],
580
+ name: "Deposit",
581
+ type: "event",
582
+ },
583
+ {
584
+ anonymous: false,
585
+ inputs: [],
586
+ name: "FundWallets",
587
+ type: "event",
588
+ },
589
+ {
590
+ anonymous: false,
591
+ inputs: [
592
+ {
593
+ indexed: false,
594
+ internalType: "address",
595
+ name: "funder",
596
+ type: "address",
597
+ },
598
+ {
599
+ indexed: false,
600
+ internalType: "address",
601
+ name: "token",
602
+ type: "address",
603
+ },
604
+ {
605
+ indexed: false,
606
+ internalType: "uint256",
607
+ name: "amount",
608
+ type: "uint256",
609
+ },
610
+ ],
611
+ name: "FundedContract",
612
+ type: "event",
613
+ },
614
+ {
615
+ anonymous: false,
616
+ inputs: [
617
+ {
618
+ indexed: false,
619
+ internalType: "uint64",
620
+ name: "version",
621
+ type: "uint64",
622
+ },
623
+ ],
624
+ name: "Initialized",
321
625
  type: "event",
322
626
  },
323
627
  {
@@ -426,6 +730,56 @@ const _abi = [
426
730
  name: "RoleRevoked",
427
731
  type: "event",
428
732
  },
733
+ {
734
+ anonymous: false,
735
+ inputs: [
736
+ {
737
+ indexed: true,
738
+ internalType: "address",
739
+ name: "receiverAddress",
740
+ type: "address",
741
+ },
742
+ {
743
+ indexed: false,
744
+ internalType: "uint256",
745
+ name: "duration",
746
+ type: "uint256",
747
+ },
748
+ ],
749
+ name: "SetTimelockGranular",
750
+ type: "event",
751
+ },
752
+ {
753
+ anonymous: false,
754
+ inputs: [
755
+ {
756
+ indexed: true,
757
+ internalType: "address",
758
+ name: "tokenAddress",
759
+ type: "address",
760
+ },
761
+ {
762
+ indexed: false,
763
+ internalType: "uint256",
764
+ name: "thresholdAmount",
765
+ type: "uint256",
766
+ },
767
+ {
768
+ indexed: false,
769
+ internalType: "uint256",
770
+ name: "durationBelow",
771
+ type: "uint256",
772
+ },
773
+ {
774
+ indexed: false,
775
+ internalType: "uint256",
776
+ name: "durationAbove",
777
+ type: "uint256",
778
+ },
779
+ ],
780
+ name: "SetTokenTimelock",
781
+ type: "event",
782
+ },
429
783
  {
430
784
  anonymous: false,
431
785
  inputs: [
@@ -489,25 +843,6 @@ const _abi = [
489
843
  name: "TokenRemoved",
490
844
  type: "event",
491
845
  },
492
- {
493
- anonymous: false,
494
- inputs: [
495
- {
496
- indexed: false,
497
- internalType: "uint256",
498
- name: "amount",
499
- type: "uint256",
500
- },
501
- {
502
- indexed: false,
503
- internalType: "uint256",
504
- name: "blockNumber",
505
- type: "uint256",
506
- },
507
- ],
508
- name: "TransactionCount",
509
- type: "event",
510
- },
511
846
  {
512
847
  anonymous: false,
513
848
  inputs: [
@@ -551,9 +886,90 @@ const _abi = [
551
886
  name: "Withdrawal",
552
887
  type: "event",
553
888
  },
889
+ {
890
+ anonymous: false,
891
+ inputs: [
892
+ {
893
+ indexed: true,
894
+ internalType: "bytes32",
895
+ name: "commitmentHash",
896
+ type: "bytes32",
897
+ },
898
+ {
899
+ indexed: true,
900
+ internalType: "uint256",
901
+ name: "requestId",
902
+ type: "uint256",
903
+ },
904
+ ],
905
+ name: "WithdrawalCancelled",
906
+ type: "event",
907
+ },
908
+ {
909
+ anonymous: false,
910
+ inputs: [
911
+ {
912
+ indexed: true,
913
+ internalType: "bytes32",
914
+ name: "commitmentHash",
915
+ type: "bytes32",
916
+ },
917
+ {
918
+ indexed: true,
919
+ internalType: "uint256",
920
+ name: "requestId",
921
+ type: "uint256",
922
+ },
923
+ ],
924
+ name: "WithdrawalExecuted",
925
+ type: "event",
926
+ },
927
+ {
928
+ anonymous: false,
929
+ inputs: [
930
+ {
931
+ indexed: true,
932
+ internalType: "bytes32",
933
+ name: "commitmentHash",
934
+ type: "bytes32",
935
+ },
936
+ {
937
+ indexed: true,
938
+ internalType: "uint256",
939
+ name: "requestId",
940
+ type: "uint256",
941
+ },
942
+ {
943
+ indexed: false,
944
+ internalType: "uint256",
945
+ name: "amount",
946
+ type: "uint256",
947
+ },
948
+ {
949
+ indexed: false,
950
+ internalType: "address",
951
+ name: "tokenAddress",
952
+ type: "address",
953
+ },
954
+ {
955
+ indexed: false,
956
+ internalType: "address",
957
+ name: "receiverAddress",
958
+ type: "address",
959
+ },
960
+ {
961
+ indexed: false,
962
+ internalType: "uint256",
963
+ name: "executeAt",
964
+ type: "uint256",
965
+ },
966
+ ],
967
+ name: "WithdrawalScheduled",
968
+ type: "event",
969
+ },
554
970
  {
555
971
  inputs: [],
556
- name: "DEFAULT_ADMIN_ROLE",
972
+ name: "ADMIN_TREASURY_EXECUTIVE_ROLE",
557
973
  outputs: [
558
974
  {
559
975
  internalType: "bytes32",
@@ -566,7 +982,7 @@ const _abi = [
566
982
  },
567
983
  {
568
984
  inputs: [],
569
- name: "DOMAIN_SEPARATOR",
985
+ name: "ADMIN_TREASURY_MANAGER_ROLE",
570
986
  outputs: [
571
987
  {
572
988
  internalType: "bytes32",
@@ -579,7 +995,7 @@ const _abi = [
579
995
  },
580
996
  {
581
997
  inputs: [],
582
- name: "FUNDS_MANAGER_ROLE",
998
+ name: "CONFIG_EXECUTIVE_ROLE",
583
999
  outputs: [
584
1000
  {
585
1001
  internalType: "bytes32",
@@ -592,7 +1008,7 @@ const _abi = [
592
1008
  },
593
1009
  {
594
1010
  inputs: [],
595
- name: "OPERATOR_ROLE",
1011
+ name: "CONFIG_MANAGER_ROLE",
596
1012
  outputs: [
597
1013
  {
598
1014
  internalType: "bytes32",
@@ -604,26 +1020,169 @@ const _abi = [
604
1020
  type: "function",
605
1021
  },
606
1022
  {
607
- inputs: [
1023
+ inputs: [],
1024
+ name: "DEFAULT_ADMIN_ROLE",
1025
+ outputs: [
608
1026
  {
609
- internalType: "address",
610
- name: "_operator",
611
- type: "address",
1027
+ internalType: "bytes32",
1028
+ name: "",
1029
+ type: "bytes32",
612
1030
  },
1031
+ ],
1032
+ stateMutability: "view",
1033
+ type: "function",
1034
+ },
1035
+ {
1036
+ inputs: [],
1037
+ name: "DOMAIN_SEPARATOR",
1038
+ outputs: [
613
1039
  {
614
- internalType: "address",
615
- name: "_owner",
616
- type: "address",
1040
+ internalType: "bytes32",
1041
+ name: "",
1042
+ type: "bytes32",
617
1043
  },
1044
+ ],
1045
+ stateMutability: "view",
1046
+ type: "function",
1047
+ },
1048
+ {
1049
+ inputs: [],
1050
+ name: "FUNDS_MANAGER_ROLE",
1051
+ outputs: [
618
1052
  {
619
- internalType: "address",
620
- name: "_fundsManager",
621
- type: "address",
1053
+ internalType: "bytes32",
1054
+ name: "",
1055
+ type: "bytes32",
622
1056
  },
623
1057
  ],
624
- name: "__AccessControl_init",
625
- outputs: [],
626
- stateMutability: "nonpayable",
1058
+ stateMutability: "view",
1059
+ type: "function",
1060
+ },
1061
+ {
1062
+ inputs: [],
1063
+ name: "OPERATOR_ROLE",
1064
+ outputs: [
1065
+ {
1066
+ internalType: "bytes32",
1067
+ name: "",
1068
+ type: "bytes32",
1069
+ },
1070
+ ],
1071
+ stateMutability: "view",
1072
+ type: "function",
1073
+ },
1074
+ {
1075
+ inputs: [],
1076
+ name: "TIMELOCK_CONFIG_EXECUTIVE_ROLE",
1077
+ outputs: [
1078
+ {
1079
+ internalType: "bytes32",
1080
+ name: "",
1081
+ type: "bytes32",
1082
+ },
1083
+ ],
1084
+ stateMutability: "view",
1085
+ type: "function",
1086
+ },
1087
+ {
1088
+ inputs: [],
1089
+ name: "TIMELOCK_CONFIG_MANAGER_ROLE",
1090
+ outputs: [
1091
+ {
1092
+ internalType: "bytes32",
1093
+ name: "",
1094
+ type: "bytes32",
1095
+ },
1096
+ ],
1097
+ stateMutability: "view",
1098
+ type: "function",
1099
+ },
1100
+ {
1101
+ inputs: [],
1102
+ name: "TIMELOCK_DELAY",
1103
+ outputs: [
1104
+ {
1105
+ internalType: "uint256",
1106
+ name: "",
1107
+ type: "uint256",
1108
+ },
1109
+ ],
1110
+ stateMutability: "view",
1111
+ type: "function",
1112
+ },
1113
+ {
1114
+ inputs: [],
1115
+ name: "TREASURY_DISPATCH_ROLE",
1116
+ outputs: [
1117
+ {
1118
+ internalType: "bytes32",
1119
+ name: "",
1120
+ type: "bytes32",
1121
+ },
1122
+ ],
1123
+ stateMutability: "view",
1124
+ type: "function",
1125
+ },
1126
+ {
1127
+ inputs: [],
1128
+ name: "TREASURY_EXECUTIVE_ROLE",
1129
+ outputs: [
1130
+ {
1131
+ internalType: "bytes32",
1132
+ name: "",
1133
+ type: "bytes32",
1134
+ },
1135
+ ],
1136
+ stateMutability: "view",
1137
+ type: "function",
1138
+ },
1139
+ {
1140
+ inputs: [],
1141
+ name: "TREASURY_MANAGER_ROLE",
1142
+ outputs: [
1143
+ {
1144
+ internalType: "bytes32",
1145
+ name: "",
1146
+ type: "bytes32",
1147
+ },
1148
+ ],
1149
+ stateMutability: "view",
1150
+ type: "function",
1151
+ },
1152
+ {
1153
+ inputs: [],
1154
+ name: "TREASURY_RECEIVER_ROLE",
1155
+ outputs: [
1156
+ {
1157
+ internalType: "bytes32",
1158
+ name: "",
1159
+ type: "bytes32",
1160
+ },
1161
+ ],
1162
+ stateMutability: "view",
1163
+ type: "function",
1164
+ },
1165
+ {
1166
+ inputs: [
1167
+ {
1168
+ internalType: "address",
1169
+ name: "_operator",
1170
+ type: "address",
1171
+ },
1172
+ {
1173
+ internalType: "address",
1174
+ name: "_owner",
1175
+ type: "address",
1176
+ },
1177
+ {
1178
+ internalType: "address",
1179
+ name: "_fundsManager",
1180
+ type: "address",
1181
+ },
1182
+ ],
1183
+ name: "__AccessControl_init",
1184
+ outputs: [],
1185
+ stateMutability: "nonpayable",
627
1186
  type: "function",
628
1187
  },
629
1188
  {
@@ -660,9 +1219,41 @@ const _abi = [
660
1219
  {
661
1220
  inputs: [
662
1221
  {
663
- internalType: "address[]",
664
- name: "tokens",
665
- type: "address[]",
1222
+ components: [
1223
+ {
1224
+ internalType: "address",
1225
+ name: "tokenAddress",
1226
+ type: "address",
1227
+ },
1228
+ {
1229
+ internalType: "uint256",
1230
+ name: "thresholdAmount",
1231
+ type: "uint256",
1232
+ },
1233
+ {
1234
+ internalType: "uint8",
1235
+ name: "sigsExecutiveBelow",
1236
+ type: "uint8",
1237
+ },
1238
+ {
1239
+ internalType: "uint8",
1240
+ name: "sigsExecutiveAbove",
1241
+ type: "uint8",
1242
+ },
1243
+ {
1244
+ internalType: "uint8",
1245
+ name: "sigsBelow",
1246
+ type: "uint8",
1247
+ },
1248
+ {
1249
+ internalType: "uint8",
1250
+ name: "sigsAbove",
1251
+ type: "uint8",
1252
+ },
1253
+ ],
1254
+ internalType: "struct Types.MultisigConfigInput[]",
1255
+ name: "configs",
1256
+ type: "tuple[]",
666
1257
  },
667
1258
  ],
668
1259
  name: "addTokens",
@@ -670,8 +1261,26 @@ const _abi = [
670
1261
  stateMutability: "nonpayable",
671
1262
  type: "function",
672
1263
  },
1264
+ {
1265
+ inputs: [],
1266
+ name: "adminTokenThresholdSettings",
1267
+ outputs: [
1268
+ {
1269
+ internalType: "uint256",
1270
+ name: "",
1271
+ type: "uint256",
1272
+ },
1273
+ ],
1274
+ stateMutability: "view",
1275
+ type: "function",
1276
+ },
673
1277
  {
674
1278
  inputs: [
1279
+ {
1280
+ internalType: "uint256",
1281
+ name: "requestId",
1282
+ type: "uint256",
1283
+ },
675
1284
  {
676
1285
  internalType: "uint256",
677
1286
  name: "amount",
@@ -687,6 +1296,28 @@ const _abi = [
687
1296
  name: "receiver",
688
1297
  type: "address",
689
1298
  },
1299
+ {
1300
+ components: [
1301
+ {
1302
+ internalType: "uint8",
1303
+ name: "v",
1304
+ type: "uint8",
1305
+ },
1306
+ {
1307
+ internalType: "bytes32",
1308
+ name: "r",
1309
+ type: "bytes32",
1310
+ },
1311
+ {
1312
+ internalType: "bytes32",
1313
+ name: "s",
1314
+ type: "bytes32",
1315
+ },
1316
+ ],
1317
+ internalType: "struct Types.Signature[]",
1318
+ name: "signatures",
1319
+ type: "tuple[]",
1320
+ },
690
1321
  ],
691
1322
  name: "adminWithdraw",
692
1323
  outputs: [],
@@ -753,63 +1384,72 @@ const _abi = [
753
1384
  name: "receiverAddress",
754
1385
  type: "address",
755
1386
  },
1387
+ {
1388
+ components: [
1389
+ {
1390
+ internalType: "uint8",
1391
+ name: "v",
1392
+ type: "uint8",
1393
+ },
1394
+ {
1395
+ internalType: "bytes32",
1396
+ name: "r",
1397
+ type: "bytes32",
1398
+ },
1399
+ {
1400
+ internalType: "bytes32",
1401
+ name: "s",
1402
+ type: "bytes32",
1403
+ },
1404
+ ],
1405
+ internalType: "struct Types.Signature[]",
1406
+ name: "signatures",
1407
+ type: "tuple[]",
1408
+ },
756
1409
  ],
757
- internalType: "struct Types.BatchWithdraw[]",
1410
+ internalType: "struct Types.BatchWithdrawWithTimelock[]",
758
1411
  name: "requests",
759
1412
  type: "tuple[]",
760
1413
  },
761
1414
  ],
762
- name: "batch_withdraw",
763
- outputs: [],
764
- stateMutability: "nonpayable",
765
- type: "function",
766
- },
767
- {
768
- inputs: [
769
- {
770
- internalType: "address",
771
- name: "newAdmin",
772
- type: "address",
773
- },
774
- ],
775
- name: "changeAdmin",
1415
+ name: "batchWithdrawWithTimelock",
776
1416
  outputs: [],
777
1417
  stateMutability: "nonpayable",
778
1418
  type: "function",
779
1419
  },
780
1420
  {
781
1421
  inputs: [
782
- {
783
- internalType: "string",
784
- name: "bonusCode",
785
- type: "string",
786
- },
787
1422
  {
788
1423
  components: [
789
1424
  {
790
- internalType: "uint8",
791
- name: "v",
792
- type: "uint8",
1425
+ internalType: "uint256",
1426
+ name: "amount",
1427
+ type: "uint256",
793
1428
  },
794
1429
  {
795
- internalType: "bytes32",
796
- name: "r",
797
- type: "bytes32",
1430
+ internalType: "uint256",
1431
+ name: "requestId",
1432
+ type: "uint256",
798
1433
  },
799
1434
  {
800
- internalType: "bytes32",
801
- name: "s",
802
- type: "bytes32",
1435
+ internalType: "address",
1436
+ name: "tokenAddress",
1437
+ type: "address",
1438
+ },
1439
+ {
1440
+ internalType: "address",
1441
+ name: "receiverAddress",
1442
+ type: "address",
803
1443
  },
804
1444
  ],
805
- internalType: "struct Types.Signature",
806
- name: "signature",
807
- type: "tuple",
1445
+ internalType: "struct Types.BatchWithdraw[]",
1446
+ name: "requests",
1447
+ type: "tuple[]",
808
1448
  },
809
1449
  ],
810
- name: "deposit",
1450
+ name: "batch_withdraw",
811
1451
  outputs: [],
812
- stateMutability: "payable",
1452
+ stateMutability: "nonpayable",
813
1453
  type: "function",
814
1454
  },
815
1455
  {
@@ -819,21 +1459,115 @@ const _abi = [
819
1459
  name: "amount",
820
1460
  type: "uint256",
821
1461
  },
1462
+ {
1463
+ internalType: "uint256",
1464
+ name: "requestId",
1465
+ type: "uint256",
1466
+ },
822
1467
  {
823
1468
  internalType: "address",
824
1469
  name: "tokenAddress",
825
1470
  type: "address",
826
1471
  },
827
1472
  {
828
- internalType: "string",
829
- name: "bonusCode",
830
- type: "string",
1473
+ internalType: "address",
1474
+ name: "receiverAddress",
1475
+ type: "address",
831
1476
  },
832
1477
  {
833
- components: [
834
- {
835
- internalType: "uint8",
836
- name: "v",
1478
+ internalType: "uint256",
1479
+ name: "executeAt",
1480
+ type: "uint256",
1481
+ },
1482
+ ],
1483
+ name: "cancelWithdrawal",
1484
+ outputs: [],
1485
+ stateMutability: "nonpayable",
1486
+ type: "function",
1487
+ },
1488
+ {
1489
+ inputs: [],
1490
+ name: "configNonce",
1491
+ outputs: [
1492
+ {
1493
+ internalType: "uint256",
1494
+ name: "",
1495
+ type: "uint256",
1496
+ },
1497
+ ],
1498
+ stateMutability: "view",
1499
+ type: "function",
1500
+ },
1501
+ {
1502
+ inputs: [],
1503
+ name: "configThresholdSettings",
1504
+ outputs: [
1505
+ {
1506
+ internalType: "uint256",
1507
+ name: "",
1508
+ type: "uint256",
1509
+ },
1510
+ ],
1511
+ stateMutability: "view",
1512
+ type: "function",
1513
+ },
1514
+ {
1515
+ inputs: [
1516
+ {
1517
+ internalType: "string",
1518
+ name: "bonusCode",
1519
+ type: "string",
1520
+ },
1521
+ {
1522
+ components: [
1523
+ {
1524
+ internalType: "uint8",
1525
+ name: "v",
1526
+ type: "uint8",
1527
+ },
1528
+ {
1529
+ internalType: "bytes32",
1530
+ name: "r",
1531
+ type: "bytes32",
1532
+ },
1533
+ {
1534
+ internalType: "bytes32",
1535
+ name: "s",
1536
+ type: "bytes32",
1537
+ },
1538
+ ],
1539
+ internalType: "struct Types.Signature",
1540
+ name: "signature",
1541
+ type: "tuple",
1542
+ },
1543
+ ],
1544
+ name: "deposit",
1545
+ outputs: [],
1546
+ stateMutability: "payable",
1547
+ type: "function",
1548
+ },
1549
+ {
1550
+ inputs: [
1551
+ {
1552
+ internalType: "uint256",
1553
+ name: "amount",
1554
+ type: "uint256",
1555
+ },
1556
+ {
1557
+ internalType: "address",
1558
+ name: "tokenAddress",
1559
+ type: "address",
1560
+ },
1561
+ {
1562
+ internalType: "string",
1563
+ name: "bonusCode",
1564
+ type: "string",
1565
+ },
1566
+ {
1567
+ components: [
1568
+ {
1569
+ internalType: "uint8",
1570
+ name: "v",
837
1571
  type: "uint8",
838
1572
  },
839
1573
  {
@@ -857,6 +1591,39 @@ const _abi = [
857
1591
  stateMutability: "nonpayable",
858
1592
  type: "function",
859
1593
  },
1594
+ {
1595
+ inputs: [
1596
+ {
1597
+ internalType: "uint256",
1598
+ name: "amount",
1599
+ type: "uint256",
1600
+ },
1601
+ {
1602
+ internalType: "uint256",
1603
+ name: "requestId",
1604
+ type: "uint256",
1605
+ },
1606
+ {
1607
+ internalType: "address",
1608
+ name: "tokenAddress",
1609
+ type: "address",
1610
+ },
1611
+ {
1612
+ internalType: "address",
1613
+ name: "receiverAddress",
1614
+ type: "address",
1615
+ },
1616
+ {
1617
+ internalType: "uint256",
1618
+ name: "executeAt",
1619
+ type: "uint256",
1620
+ },
1621
+ ],
1622
+ name: "executeWithdrawal",
1623
+ outputs: [],
1624
+ stateMutability: "nonpayable",
1625
+ type: "function",
1626
+ },
860
1627
  {
861
1628
  inputs: [
862
1629
  {
@@ -875,6 +1642,36 @@ const _abi = [
875
1642
  stateMutability: "nonpayable",
876
1643
  type: "function",
877
1644
  },
1645
+ {
1646
+ inputs: [],
1647
+ name: "getAdminMultisigConfig",
1648
+ outputs: [
1649
+ {
1650
+ components: [
1651
+ {
1652
+ internalType: "uint8",
1653
+ name: "sigsManagerRequired",
1654
+ type: "uint8",
1655
+ },
1656
+ {
1657
+ internalType: "uint8",
1658
+ name: "sigsExecutiveRequired",
1659
+ type: "uint8",
1660
+ },
1661
+ {
1662
+ internalType: "bool",
1663
+ name: "configured",
1664
+ type: "bool",
1665
+ },
1666
+ ],
1667
+ internalType: "struct Types.AdminMultisigConfig",
1668
+ name: "",
1669
+ type: "tuple",
1670
+ },
1671
+ ],
1672
+ stateMutability: "view",
1673
+ type: "function",
1674
+ },
878
1675
  {
879
1676
  inputs: [],
880
1677
  name: "getBalance",
@@ -964,13 +1761,36 @@ const _abi = [
964
1761
  type: "function",
965
1762
  },
966
1763
  {
967
- inputs: [],
968
- name: "getLastBlockNumber",
1764
+ inputs: [
1765
+ {
1766
+ internalType: "enum Types.OperationType",
1767
+ name: "opType",
1768
+ type: "uint8",
1769
+ },
1770
+ ],
1771
+ name: "getGroupConfig",
969
1772
  outputs: [
970
1773
  {
971
- internalType: "uint256",
1774
+ components: [
1775
+ {
1776
+ internalType: "uint8",
1777
+ name: "sigsManagerRequired",
1778
+ type: "uint8",
1779
+ },
1780
+ {
1781
+ internalType: "uint8",
1782
+ name: "sigsExecutiveRequired",
1783
+ type: "uint8",
1784
+ },
1785
+ {
1786
+ internalType: "bool",
1787
+ name: "configured",
1788
+ type: "bool",
1789
+ },
1790
+ ],
1791
+ internalType: "struct Types.AdminMultisigConfig",
972
1792
  name: "",
973
- type: "uint256",
1793
+ type: "tuple",
974
1794
  },
975
1795
  ],
976
1796
  stateMutability: "view",
@@ -1085,36 +1905,49 @@ const _abi = [
1085
1905
  type: "function",
1086
1906
  },
1087
1907
  {
1088
- inputs: [],
1089
- name: "getTotalTransactions",
1090
- outputs: [
1908
+ inputs: [
1091
1909
  {
1092
- internalType: "uint256",
1093
- name: "",
1094
- type: "uint256",
1910
+ internalType: "address",
1911
+ name: "tokenAddress",
1912
+ type: "address",
1095
1913
  },
1096
1914
  ],
1097
- stateMutability: "view",
1098
- type: "function",
1099
- },
1100
- {
1101
- inputs: [],
1102
- name: "getTransactionStatus",
1915
+ name: "getTokenMultisigConfig",
1103
1916
  outputs: [
1104
1917
  {
1105
1918
  components: [
1106
1919
  {
1107
1920
  internalType: "uint256",
1108
- name: "totalCount",
1921
+ name: "thresholdAmount",
1109
1922
  type: "uint256",
1110
1923
  },
1111
1924
  {
1112
- internalType: "uint256",
1113
- name: "lastBlockNumber",
1114
- type: "uint256",
1925
+ internalType: "uint8",
1926
+ name: "sigsExecutiveBelow",
1927
+ type: "uint8",
1928
+ },
1929
+ {
1930
+ internalType: "uint8",
1931
+ name: "sigsExecutiveAbove",
1932
+ type: "uint8",
1933
+ },
1934
+ {
1935
+ internalType: "uint8",
1936
+ name: "sigsBelow",
1937
+ type: "uint8",
1938
+ },
1939
+ {
1940
+ internalType: "uint8",
1941
+ name: "sigsAbove",
1942
+ type: "uint8",
1943
+ },
1944
+ {
1945
+ internalType: "bool",
1946
+ name: "configured",
1947
+ type: "bool",
1115
1948
  },
1116
1949
  ],
1117
- internalType: "struct Types.TransactionStatus",
1950
+ internalType: "struct Types.MultisigConfig",
1118
1951
  name: "",
1119
1952
  type: "tuple",
1120
1953
  },
@@ -1178,6 +2011,25 @@ const _abi = [
1178
2011
  stateMutability: "view",
1179
2012
  type: "function",
1180
2013
  },
2014
+ {
2015
+ inputs: [
2016
+ {
2017
+ internalType: "uint256[]",
2018
+ name: "ids",
2019
+ type: "uint256[]",
2020
+ },
2021
+ ],
2022
+ name: "get_admin_used_ids",
2023
+ outputs: [
2024
+ {
2025
+ internalType: "uint256[]",
2026
+ name: "used_ids",
2027
+ type: "uint256[]",
2028
+ },
2029
+ ],
2030
+ stateMutability: "view",
2031
+ type: "function",
2032
+ },
1181
2033
  {
1182
2034
  inputs: [
1183
2035
  {
@@ -1261,21 +2113,576 @@ const _abi = [
1261
2113
  name: "_tokens",
1262
2114
  type: "address[]",
1263
2115
  },
1264
- ],
1265
- name: "initialize",
1266
- outputs: [],
1267
- stateMutability: "nonpayable",
2116
+ {
2117
+ components: [
2118
+ {
2119
+ internalType: "address",
2120
+ name: "tokenAddress",
2121
+ type: "address",
2122
+ },
2123
+ {
2124
+ internalType: "uint256",
2125
+ name: "thresholdAmount",
2126
+ type: "uint256",
2127
+ },
2128
+ {
2129
+ internalType: "uint8",
2130
+ name: "sigsExecutiveBelow",
2131
+ type: "uint8",
2132
+ },
2133
+ {
2134
+ internalType: "uint8",
2135
+ name: "sigsExecutiveAbove",
2136
+ type: "uint8",
2137
+ },
2138
+ {
2139
+ internalType: "uint8",
2140
+ name: "sigsBelow",
2141
+ type: "uint8",
2142
+ },
2143
+ {
2144
+ internalType: "uint8",
2145
+ name: "sigsAbove",
2146
+ type: "uint8",
2147
+ },
2148
+ ],
2149
+ internalType: "struct Types.MultisigConfigInput[]",
2150
+ name: "_multisigConfigs",
2151
+ type: "tuple[]",
2152
+ },
2153
+ {
2154
+ components: [
2155
+ {
2156
+ internalType: "enum Types.OperationType",
2157
+ name: "opType",
2158
+ type: "uint8",
2159
+ },
2160
+ {
2161
+ internalType: "uint8",
2162
+ name: "sigsManagerRequired",
2163
+ type: "uint8",
2164
+ },
2165
+ {
2166
+ internalType: "uint8",
2167
+ name: "sigsExecutiveRequired",
2168
+ type: "uint8",
2169
+ },
2170
+ {
2171
+ internalType: "bool",
2172
+ name: "configured",
2173
+ type: "bool",
2174
+ },
2175
+ ],
2176
+ internalType: "struct Types.AdminMultisigConfigSetup[]",
2177
+ name: "_adminMultisigConfigs",
2178
+ type: "tuple[]",
2179
+ },
2180
+ {
2181
+ internalType: "uint256",
2182
+ name: "_maxFundWalletAmount",
2183
+ type: "uint256",
2184
+ },
2185
+ ],
2186
+ name: "initialize",
2187
+ outputs: [],
2188
+ stateMutability: "nonpayable",
2189
+ type: "function",
2190
+ },
2191
+ {
2192
+ inputs: [
2193
+ {
2194
+ internalType: "address",
2195
+ name: "caller",
2196
+ type: "address",
2197
+ },
2198
+ ],
2199
+ name: "isFundsManager",
2200
+ outputs: [
2201
+ {
2202
+ internalType: "bool",
2203
+ name: "",
2204
+ type: "bool",
2205
+ },
2206
+ ],
2207
+ stateMutability: "view",
2208
+ type: "function",
2209
+ },
2210
+ {
2211
+ inputs: [],
2212
+ name: "isPaused",
2213
+ outputs: [
2214
+ {
2215
+ internalType: "bool",
2216
+ name: "",
2217
+ type: "bool",
2218
+ },
2219
+ ],
2220
+ stateMutability: "view",
2221
+ type: "function",
2222
+ },
2223
+ {
2224
+ inputs: [
2225
+ {
2226
+ internalType: "address",
2227
+ name: "_token",
2228
+ type: "address",
2229
+ },
2230
+ ],
2231
+ name: "isWhitelisted",
2232
+ outputs: [
2233
+ {
2234
+ internalType: "bool",
2235
+ name: "",
2236
+ type: "bool",
2237
+ },
2238
+ ],
2239
+ stateMutability: "view",
2240
+ type: "function",
2241
+ },
2242
+ {
2243
+ inputs: [
2244
+ {
2245
+ internalType: "address",
2246
+ name: "_owner",
2247
+ type: "address",
2248
+ },
2249
+ ],
2250
+ name: "nonces",
2251
+ outputs: [
2252
+ {
2253
+ internalType: "uint256",
2254
+ name: "depositNonce",
2255
+ type: "uint256",
2256
+ },
2257
+ ],
2258
+ stateMutability: "view",
2259
+ type: "function",
2260
+ },
2261
+ {
2262
+ inputs: [],
2263
+ name: "pause",
2264
+ outputs: [],
2265
+ stateMutability: "nonpayable",
2266
+ type: "function",
2267
+ },
2268
+ {
2269
+ inputs: [
2270
+ {
2271
+ internalType: "address",
2272
+ name: "",
2273
+ type: "address",
2274
+ },
2275
+ ],
2276
+ name: "receiverTimelockConfig",
2277
+ outputs: [
2278
+ {
2279
+ internalType: "uint256",
2280
+ name: "duration",
2281
+ type: "uint256",
2282
+ },
2283
+ {
2284
+ internalType: "bool",
2285
+ name: "configured",
2286
+ type: "bool",
2287
+ },
2288
+ ],
2289
+ stateMutability: "view",
2290
+ type: "function",
2291
+ },
2292
+ {
2293
+ inputs: [
2294
+ {
2295
+ internalType: "address[]",
2296
+ name: "tokens",
2297
+ type: "address[]",
2298
+ },
2299
+ ],
2300
+ name: "removeTokens",
2301
+ outputs: [],
2302
+ stateMutability: "nonpayable",
2303
+ type: "function",
2304
+ },
2305
+ {
2306
+ inputs: [
2307
+ {
2308
+ internalType: "bytes32",
2309
+ name: "role",
2310
+ type: "bytes32",
2311
+ },
2312
+ {
2313
+ internalType: "address",
2314
+ name: "callerConfirmation",
2315
+ type: "address",
2316
+ },
2317
+ ],
2318
+ name: "renounceRole",
2319
+ outputs: [],
2320
+ stateMutability: "nonpayable",
2321
+ type: "function",
2322
+ },
2323
+ {
2324
+ inputs: [
2325
+ {
2326
+ internalType: "uint256",
2327
+ name: "start",
2328
+ type: "uint256",
2329
+ },
2330
+ {
2331
+ internalType: "uint256",
2332
+ name: "end",
2333
+ type: "uint256",
2334
+ },
2335
+ ],
2336
+ name: "reset_admin_request_ids",
2337
+ outputs: [],
2338
+ stateMutability: "nonpayable",
2339
+ type: "function",
2340
+ },
2341
+ {
2342
+ inputs: [
2343
+ {
2344
+ internalType: "uint256",
2345
+ name: "start",
2346
+ type: "uint256",
2347
+ },
2348
+ {
2349
+ internalType: "uint256",
2350
+ name: "end",
2351
+ type: "uint256",
2352
+ },
2353
+ ],
2354
+ name: "reset_request_ids",
2355
+ outputs: [],
2356
+ stateMutability: "nonpayable",
2357
+ type: "function",
2358
+ },
2359
+ {
2360
+ inputs: [
2361
+ {
2362
+ internalType: "bytes32",
2363
+ name: "role",
2364
+ type: "bytes32",
2365
+ },
2366
+ {
2367
+ internalType: "address",
2368
+ name: "account",
2369
+ type: "address",
2370
+ },
2371
+ ],
2372
+ name: "revokeRole",
2373
+ outputs: [],
2374
+ stateMutability: "nonpayable",
2375
+ type: "function",
2376
+ },
2377
+ {
2378
+ inputs: [
2379
+ {
2380
+ components: [
2381
+ {
2382
+ internalType: "enum Types.OperationType",
2383
+ name: "operationType",
2384
+ type: "uint8",
2385
+ },
2386
+ {
2387
+ internalType: "uint8",
2388
+ name: "sigsManagerRequired",
2389
+ type: "uint8",
2390
+ },
2391
+ {
2392
+ internalType: "uint8",
2393
+ name: "sigsExecutiveRequired",
2394
+ type: "uint8",
2395
+ },
2396
+ {
2397
+ internalType: "uint256",
2398
+ name: "nonce",
2399
+ type: "uint256",
2400
+ },
2401
+ ],
2402
+ internalType: "struct Types.SetAdminMultisigConfigSignData",
2403
+ name: "configData",
2404
+ type: "tuple",
2405
+ },
2406
+ {
2407
+ components: [
2408
+ {
2409
+ internalType: "uint8",
2410
+ name: "v",
2411
+ type: "uint8",
2412
+ },
2413
+ {
2414
+ internalType: "bytes32",
2415
+ name: "r",
2416
+ type: "bytes32",
2417
+ },
2418
+ {
2419
+ internalType: "bytes32",
2420
+ name: "s",
2421
+ type: "bytes32",
2422
+ },
2423
+ ],
2424
+ internalType: "struct Types.Signature[]",
2425
+ name: "signatures",
2426
+ type: "tuple[]",
2427
+ },
2428
+ ],
2429
+ name: "setAdminTokenMultisigThreshold",
2430
+ outputs: [],
2431
+ stateMutability: "nonpayable",
2432
+ type: "function",
2433
+ },
2434
+ {
2435
+ inputs: [
2436
+ {
2437
+ internalType: "enum Types.OperationType",
2438
+ name: "opType",
2439
+ type: "uint8",
2440
+ },
2441
+ {
2442
+ internalType: "uint8",
2443
+ name: "sigsManager",
2444
+ type: "uint8",
2445
+ },
2446
+ {
2447
+ internalType: "uint8",
2448
+ name: "sigsExecutive",
2449
+ type: "uint8",
2450
+ },
2451
+ ],
2452
+ name: "setGroupConfig",
2453
+ outputs: [],
2454
+ stateMutability: "nonpayable",
2455
+ type: "function",
2456
+ },
2457
+ {
2458
+ inputs: [
2459
+ {
2460
+ components: [
2461
+ {
2462
+ internalType: "enum Types.OperationType",
2463
+ name: "operationType",
2464
+ type: "uint8",
2465
+ },
2466
+ {
2467
+ internalType: "address",
2468
+ name: "tokenAddress",
2469
+ type: "address",
2470
+ },
2471
+ {
2472
+ internalType: "uint256",
2473
+ name: "thresholdAmount",
2474
+ type: "uint256",
2475
+ },
2476
+ {
2477
+ internalType: "uint256",
2478
+ name: "durationBelow",
2479
+ type: "uint256",
2480
+ },
2481
+ {
2482
+ internalType: "uint256",
2483
+ name: "durationAbove",
2484
+ type: "uint256",
2485
+ },
2486
+ {
2487
+ internalType: "uint256",
2488
+ name: "nonce",
2489
+ type: "uint256",
2490
+ },
2491
+ ],
2492
+ internalType: "struct Types.SetTimelockConfigSignData",
2493
+ name: "configData",
2494
+ type: "tuple",
2495
+ },
2496
+ {
2497
+ components: [
2498
+ {
2499
+ internalType: "uint8",
2500
+ name: "v",
2501
+ type: "uint8",
2502
+ },
2503
+ {
2504
+ internalType: "bytes32",
2505
+ name: "r",
2506
+ type: "bytes32",
2507
+ },
2508
+ {
2509
+ internalType: "bytes32",
2510
+ name: "s",
2511
+ type: "bytes32",
2512
+ },
2513
+ ],
2514
+ internalType: "struct Types.Signature[]",
2515
+ name: "signatures",
2516
+ type: "tuple[]",
2517
+ },
2518
+ ],
2519
+ name: "setTimelock",
2520
+ outputs: [],
2521
+ stateMutability: "nonpayable",
2522
+ type: "function",
2523
+ },
2524
+ {
2525
+ inputs: [
2526
+ {
2527
+ components: [
2528
+ {
2529
+ internalType: "enum Types.OperationType",
2530
+ name: "operationType",
2531
+ type: "uint8",
2532
+ },
2533
+ {
2534
+ internalType: "address",
2535
+ name: "receiverAddress",
2536
+ type: "address",
2537
+ },
2538
+ {
2539
+ internalType: "uint256",
2540
+ name: "duration",
2541
+ type: "uint256",
2542
+ },
2543
+ {
2544
+ internalType: "uint256",
2545
+ name: "nonce",
2546
+ type: "uint256",
2547
+ },
2548
+ ],
2549
+ internalType: "struct Types.SetReceiverTimelockConfigSignData",
2550
+ name: "configData",
2551
+ type: "tuple",
2552
+ },
2553
+ {
2554
+ components: [
2555
+ {
2556
+ internalType: "uint8",
2557
+ name: "v",
2558
+ type: "uint8",
2559
+ },
2560
+ {
2561
+ internalType: "bytes32",
2562
+ name: "r",
2563
+ type: "bytes32",
2564
+ },
2565
+ {
2566
+ internalType: "bytes32",
2567
+ name: "s",
2568
+ type: "bytes32",
2569
+ },
2570
+ ],
2571
+ internalType: "struct Types.Signature[]",
2572
+ name: "signatures",
2573
+ type: "tuple[]",
2574
+ },
2575
+ ],
2576
+ name: "setTimelockGranular",
2577
+ outputs: [],
2578
+ stateMutability: "nonpayable",
2579
+ type: "function",
2580
+ },
2581
+ {
2582
+ inputs: [
2583
+ {
2584
+ components: [
2585
+ {
2586
+ internalType: "enum Types.OperationType",
2587
+ name: "operationType",
2588
+ type: "uint8",
2589
+ },
2590
+ {
2591
+ internalType: "address",
2592
+ name: "tokenAddress",
2593
+ type: "address",
2594
+ },
2595
+ {
2596
+ internalType: "uint256",
2597
+ name: "thresholdAmount",
2598
+ type: "uint256",
2599
+ },
2600
+ {
2601
+ internalType: "uint8",
2602
+ name: "sigsExecutiveBelow",
2603
+ type: "uint8",
2604
+ },
2605
+ {
2606
+ internalType: "uint8",
2607
+ name: "sigsExecutiveAbove",
2608
+ type: "uint8",
2609
+ },
2610
+ {
2611
+ internalType: "uint8",
2612
+ name: "sigsBelow",
2613
+ type: "uint8",
2614
+ },
2615
+ {
2616
+ internalType: "uint8",
2617
+ name: "sigsAbove",
2618
+ type: "uint8",
2619
+ },
2620
+ {
2621
+ internalType: "uint256",
2622
+ name: "nonce",
2623
+ type: "uint256",
2624
+ },
2625
+ ],
2626
+ internalType: "struct Types.SetMultisigConfigSignData",
2627
+ name: "configData",
2628
+ type: "tuple",
2629
+ },
2630
+ {
2631
+ components: [
2632
+ {
2633
+ internalType: "uint8",
2634
+ name: "v",
2635
+ type: "uint8",
2636
+ },
2637
+ {
2638
+ internalType: "bytes32",
2639
+ name: "r",
2640
+ type: "bytes32",
2641
+ },
2642
+ {
2643
+ internalType: "bytes32",
2644
+ name: "s",
2645
+ type: "bytes32",
2646
+ },
2647
+ ],
2648
+ internalType: "struct Types.Signature[]",
2649
+ name: "signatures",
2650
+ type: "tuple[]",
2651
+ },
2652
+ ],
2653
+ name: "setTokenMultisigThreshold",
2654
+ outputs: [],
2655
+ stateMutability: "nonpayable",
2656
+ type: "function",
2657
+ },
2658
+ {
2659
+ inputs: [
2660
+ {
2661
+ internalType: "address",
2662
+ name: "",
2663
+ type: "address",
2664
+ },
2665
+ ],
2666
+ name: "signerBitmap",
2667
+ outputs: [
2668
+ {
2669
+ internalType: "uint8",
2670
+ name: "",
2671
+ type: "uint8",
2672
+ },
2673
+ ],
2674
+ stateMutability: "view",
1268
2675
  type: "function",
1269
2676
  },
1270
2677
  {
1271
2678
  inputs: [
1272
2679
  {
1273
- internalType: "address",
1274
- name: "caller",
1275
- type: "address",
2680
+ internalType: "bytes4",
2681
+ name: "interfaceId",
2682
+ type: "bytes4",
1276
2683
  },
1277
2684
  ],
1278
- name: "isFundsManager",
2685
+ name: "supportsInterface",
1279
2686
  outputs: [
1280
2687
  {
1281
2688
  internalType: "bool",
@@ -1287,8 +2694,19 @@ const _abi = [
1287
2694
  type: "function",
1288
2695
  },
1289
2696
  {
1290
- inputs: [],
1291
- name: "isPaused",
2697
+ inputs: [
2698
+ {
2699
+ internalType: "address",
2700
+ name: "wallet",
2701
+ type: "address",
2702
+ },
2703
+ {
2704
+ internalType: "address",
2705
+ name: "token",
2706
+ type: "address",
2707
+ },
2708
+ ],
2709
+ name: "sweepFunds",
1292
2710
  outputs: [
1293
2711
  {
1294
2712
  internalType: "bool",
@@ -1296,18 +2714,18 @@ const _abi = [
1296
2714
  type: "bool",
1297
2715
  },
1298
2716
  ],
1299
- stateMutability: "view",
2717
+ stateMutability: "payable",
1300
2718
  type: "function",
1301
2719
  },
1302
2720
  {
1303
2721
  inputs: [
1304
2722
  {
1305
- internalType: "address",
1306
- name: "_token",
1307
- type: "address",
2723
+ internalType: "bytes32",
2724
+ name: "",
2725
+ type: "bytes32",
1308
2726
  },
1309
2727
  ],
1310
- name: "isWhitelisted",
2728
+ name: "timelockCommitments",
1311
2729
  outputs: [
1312
2730
  {
1313
2731
  internalType: "bool",
@@ -1322,140 +2740,112 @@ const _abi = [
1322
2740
  inputs: [
1323
2741
  {
1324
2742
  internalType: "address",
1325
- name: "_owner",
2743
+ name: "",
1326
2744
  type: "address",
1327
2745
  },
1328
2746
  ],
1329
- name: "nonces",
2747
+ name: "timelockConfig",
1330
2748
  outputs: [
1331
2749
  {
1332
2750
  internalType: "uint256",
1333
- name: "depositNonce",
2751
+ name: "thresholdAmount",
1334
2752
  type: "uint256",
1335
2753
  },
1336
- ],
1337
- stateMutability: "view",
1338
- type: "function",
1339
- },
1340
- {
1341
- inputs: [],
1342
- name: "pause",
1343
- outputs: [],
1344
- stateMutability: "nonpayable",
1345
- type: "function",
1346
- },
1347
- {
1348
- inputs: [
1349
2754
  {
1350
- internalType: "address[]",
1351
- name: "tokens",
1352
- type: "address[]",
2755
+ internalType: "uint256",
2756
+ name: "durationBelow",
2757
+ type: "uint256",
1353
2758
  },
1354
- ],
1355
- name: "removeTokens",
1356
- outputs: [],
1357
- stateMutability: "nonpayable",
1358
- type: "function",
1359
- },
1360
- {
1361
- inputs: [
1362
2759
  {
1363
- internalType: "bytes32",
1364
- name: "role",
1365
- type: "bytes32",
2760
+ internalType: "uint256",
2761
+ name: "durationAbove",
2762
+ type: "uint256",
1366
2763
  },
1367
2764
  {
1368
- internalType: "address",
1369
- name: "callerConfirmation",
1370
- type: "address",
2765
+ internalType: "bool",
2766
+ name: "configured",
2767
+ type: "bool",
1371
2768
  },
1372
2769
  ],
1373
- name: "renounceRole",
1374
- outputs: [],
1375
- stateMutability: "nonpayable",
2770
+ stateMutability: "view",
1376
2771
  type: "function",
1377
2772
  },
1378
2773
  {
1379
- inputs: [
1380
- {
1381
- internalType: "uint256",
1382
- name: "start",
1383
- type: "uint256",
1384
- },
2774
+ inputs: [],
2775
+ name: "timelockConfigNonce",
2776
+ outputs: [
1385
2777
  {
1386
2778
  internalType: "uint256",
1387
- name: "end",
2779
+ name: "",
1388
2780
  type: "uint256",
1389
2781
  },
1390
2782
  ],
1391
- name: "reset_request_ids",
1392
- outputs: [],
1393
- stateMutability: "nonpayable",
2783
+ stateMutability: "view",
1394
2784
  type: "function",
1395
2785
  },
1396
2786
  {
1397
- inputs: [
1398
- {
1399
- internalType: "bytes32",
1400
- name: "role",
1401
- type: "bytes32",
1402
- },
2787
+ inputs: [],
2788
+ name: "timelockThresholdSettings",
2789
+ outputs: [
1403
2790
  {
1404
- internalType: "address",
1405
- name: "account",
1406
- type: "address",
2791
+ internalType: "uint256",
2792
+ name: "",
2793
+ type: "uint256",
1407
2794
  },
1408
2795
  ],
1409
- name: "revokeRole",
1410
- outputs: [],
1411
- stateMutability: "nonpayable",
2796
+ stateMutability: "view",
1412
2797
  type: "function",
1413
2798
  },
1414
2799
  {
1415
2800
  inputs: [
1416
2801
  {
1417
2802
  internalType: "address",
1418
- name: "_operator",
2803
+ name: "",
1419
2804
  type: "address",
1420
2805
  },
1421
2806
  ],
1422
- name: "setOperator",
1423
- outputs: [],
1424
- stateMutability: "nonpayable",
1425
- type: "function",
1426
- },
1427
- {
1428
- inputs: [
1429
- {
1430
- internalType: "uint256",
1431
- name: "totalCount",
1432
- type: "uint256",
1433
- },
2807
+ name: "tokenThresholdSettings",
2808
+ outputs: [
1434
2809
  {
1435
2810
  internalType: "uint256",
1436
- name: "blockNumber",
2811
+ name: "",
1437
2812
  type: "uint256",
1438
2813
  },
1439
2814
  ],
1440
- name: "setTransactionStatus",
1441
- outputs: [],
1442
- stateMutability: "nonpayable",
2815
+ stateMutability: "view",
1443
2816
  type: "function",
1444
2817
  },
1445
2818
  {
1446
2819
  inputs: [
1447
2820
  {
1448
- internalType: "bytes4",
1449
- name: "interfaceId",
1450
- type: "bytes4",
2821
+ internalType: "uint256",
2822
+ name: "packed",
2823
+ type: "uint256",
1451
2824
  },
1452
2825
  ],
1453
- name: "supportsInterface",
2826
+ name: "unpackAdminThresholds",
1454
2827
  outputs: [
1455
2828
  {
1456
- internalType: "bool",
2829
+ components: [
2830
+ {
2831
+ internalType: "uint8",
2832
+ name: "sigsManagerRequired",
2833
+ type: "uint8",
2834
+ },
2835
+ {
2836
+ internalType: "uint8",
2837
+ name: "sigsExecutiveRequired",
2838
+ type: "uint8",
2839
+ },
2840
+ {
2841
+ internalType: "bool",
2842
+ name: "configured",
2843
+ type: "bool",
2844
+ },
2845
+ ],
2846
+ internalType: "struct Types.AdminMultisigConfig",
1457
2847
  name: "",
1458
- type: "bool",
2848
+ type: "tuple",
1459
2849
  },
1460
2850
  ],
1461
2851
  stateMutability: "view",
@@ -1464,25 +2854,52 @@ const _abi = [
1464
2854
  {
1465
2855
  inputs: [
1466
2856
  {
1467
- internalType: "address",
1468
- name: "wallet",
1469
- type: "address",
1470
- },
1471
- {
1472
- internalType: "address",
1473
- name: "token",
1474
- type: "address",
2857
+ internalType: "uint256",
2858
+ name: "packed",
2859
+ type: "uint256",
1475
2860
  },
1476
2861
  ],
1477
- name: "sweepFunds",
2862
+ name: "unpackTokenThresholds",
1478
2863
  outputs: [
1479
2864
  {
1480
- internalType: "bool",
2865
+ components: [
2866
+ {
2867
+ internalType: "uint256",
2868
+ name: "thresholdAmount",
2869
+ type: "uint256",
2870
+ },
2871
+ {
2872
+ internalType: "uint8",
2873
+ name: "sigsExecutiveBelow",
2874
+ type: "uint8",
2875
+ },
2876
+ {
2877
+ internalType: "uint8",
2878
+ name: "sigsExecutiveAbove",
2879
+ type: "uint8",
2880
+ },
2881
+ {
2882
+ internalType: "uint8",
2883
+ name: "sigsBelow",
2884
+ type: "uint8",
2885
+ },
2886
+ {
2887
+ internalType: "uint8",
2888
+ name: "sigsAbove",
2889
+ type: "uint8",
2890
+ },
2891
+ {
2892
+ internalType: "bool",
2893
+ name: "configured",
2894
+ type: "bool",
2895
+ },
2896
+ ],
2897
+ internalType: "struct Types.MultisigConfig",
1481
2898
  name: "",
1482
- type: "bool",
2899
+ type: "tuple",
1483
2900
  },
1484
2901
  ],
1485
- stateMutability: "payable",
2902
+ stateMutability: "view",
1486
2903
  type: "function",
1487
2904
  },
1488
2905
  {
@@ -1561,12 +2978,84 @@ const _abi = [
1561
2978
  stateMutability: "nonpayable",
1562
2979
  type: "function",
1563
2980
  },
2981
+ {
2982
+ inputs: [
2983
+ {
2984
+ internalType: "uint256",
2985
+ name: "amount",
2986
+ type: "uint256",
2987
+ },
2988
+ {
2989
+ internalType: "uint256",
2990
+ name: "requestId",
2991
+ type: "uint256",
2992
+ },
2993
+ {
2994
+ internalType: "address",
2995
+ name: "tokenAddress",
2996
+ type: "address",
2997
+ },
2998
+ {
2999
+ internalType: "address",
3000
+ name: "receiverAddress",
3001
+ type: "address",
3002
+ },
3003
+ {
3004
+ components: [
3005
+ {
3006
+ internalType: "uint8",
3007
+ name: "v",
3008
+ type: "uint8",
3009
+ },
3010
+ {
3011
+ internalType: "bytes32",
3012
+ name: "r",
3013
+ type: "bytes32",
3014
+ },
3015
+ {
3016
+ internalType: "bytes32",
3017
+ name: "s",
3018
+ type: "bytes32",
3019
+ },
3020
+ ],
3021
+ internalType: "struct Types.Signature",
3022
+ name: "operatorSignature",
3023
+ type: "tuple",
3024
+ },
3025
+ {
3026
+ components: [
3027
+ {
3028
+ internalType: "uint8",
3029
+ name: "v",
3030
+ type: "uint8",
3031
+ },
3032
+ {
3033
+ internalType: "bytes32",
3034
+ name: "r",
3035
+ type: "bytes32",
3036
+ },
3037
+ {
3038
+ internalType: "bytes32",
3039
+ name: "s",
3040
+ type: "bytes32",
3041
+ },
3042
+ ],
3043
+ internalType: "struct Types.Signature[]",
3044
+ name: "signatures",
3045
+ type: "tuple[]",
3046
+ },
3047
+ ],
3048
+ name: "withdrawWithTimelock",
3049
+ outputs: [],
3050
+ stateMutability: "nonpayable",
3051
+ type: "function",
3052
+ },
1564
3053
  {
1565
3054
  stateMutability: "payable",
1566
3055
  type: "receive",
1567
3056
  },
1568
3057
  ];
1569
- const _bytecode = "0x6080604052348015600e575f5ffd5b506137df8061001c5f395ff3fe608060405260043610610278575f3560e01c80639b19251a1161014a578063cb60ff34116100be578063e88e5cd411610078578063e88e5cd4146107d7578063f470c7e2146107f6578063f5b541a614610822578063f8b2cb4f14610842578063fa13f30a14610861578063fc50455f14610880575f5ffd5b8063cb60ff34146106e4578063d37dbaa21461072d578063d547741f1461074c578063d8a4676f1461076b578063e20c103c14610799578063e5b6337b146107b8575f5ffd5b8063b3ab15fb1161010f578063b3ab15fb14610634578063b5c604ff14610653578063c210296414610667578063c4707a8314610686578063c67515dd146106a6578063c688aa64146106c5575f5ffd5b80639b19251a1461057f578063a217fddf146105ad578063a3a00072146105c0578063ac21242d146105df578063b187bd2614610616575f5ffd5b80633f4ba83a116101ec5780637ecebe00116101a65780637ecebe00146104c75780638456cb59146104fb578063853954741461050f57806385fb709d1461052e5780638f2839701461054157806391d1485414610560575f5ffd5b80633f4ba83a1461042f5780634ae05c7d14610443578063518713d2146104625780635ae6256d146104815780636c3824ef146104955780637c13ba64146104b4575f5ffd5b80632f2ff15d1161023d5780632f2ff15d1461037f57806331993fdf1461039e5780633644e515146103bd57806336568abe146103d25780633aa98a94146103f15780633af32abf14610410575f5ffd5b806301ffc9a7146102c157806311a4b2d0146102f557806312065fe01461031657806312f5ea4014610332578063248a9ca314610351575f5ffd5b366102bd57604080513381525f6020820152348183015290517fb0afe9a71610967b99fda7fda0ed1e6ff47851924352fdf759922dd5427259419181900360600190a1005b5f5ffd5b3480156102cc575f5ffd5b506102e06102db366004612d93565b6108ac565b60405190151581526020015b60405180910390f35b348015610300575f5ffd5b5061031461030f366004612dc1565b6108e2565b005b348015610321575f5ffd5b50475b6040519081526020016102ec565b34801561033d575f5ffd5b5061031461034c366004612df5565b6109c0565b34801561035c575f5ffd5b5061032461036b366004612e34565b5f9081526020819052604090206001015490565b34801561038a575f5ffd5b50610314610399366004612e4b565b610b7a565b3480156103a9575f5ffd5b506103146103b8366004612f28565b610ba4565b3480156103c8575f5ffd5b5061032460015481565b3480156103dd575f5ffd5b506103146103ec366004612e4b565b610be5565b3480156103fc575f5ffd5b5061031461040b366004612f8b565b610c18565b34801561041b575f5ffd5b506102e061042a366004612fb8565b610cbb565b34801561043a575f5ffd5b50610314610cd8565b34801561044e575f5ffd5b5061031461045d366004613068565b610d2e565b34801561046d575f5ffd5b506102e061047c366004612fb8565b610d83565b34801561048c575f5ffd5b50609854610324565b3480156104a0575f5ffd5b506103146104af366004613068565b610dab565b6103146104c23660046130fb565b610dfd565b3480156104d2575f5ffd5b506103246104e1366004612fb8565b6001600160a01b03165f9081526099602052604090205490565b348015610506575f5ffd5b50610314610f98565b34801561051a575f5ffd5b50610314610529366004612dc1565b610ff2565b6102e061053c36600461314b565b611071565b34801561054c575f5ffd5b5061031461055b366004612fb8565b6112b9565b34801561056b575f5ffd5b506102e061057a366004612e4b565b611318565b34801561058a575f5ffd5b506102e0610599366004612fb8565b60336020525f908152604090205460ff1681565b3480156105b8575f5ffd5b506103245f81565b3480156105cb575f5ffd5b506103146105da366004613177565b611340565b3480156105ea575f5ffd5b506105fe6105f93660046131b8565b611505565b6040516001600160a01b0390911681526020016102ec565b348015610621575f5ffd5b50609b546102e090610100900460ff1681565b34801561063f575f5ffd5b5061031461064e366004612fb8565b611579565b34801561065e575f5ffd5b50609754610324565b348015610672575f5ffd5b50610314610681366004613210565b6115ff565b348015610691575f5ffd5b506103245f51602061376a5f395f51905f5281565b3480156106b1575f5ffd5b506103246106c036600461327f565b61193b565b3480156106d0575f5ffd5b506103146106df3660046132ae565b6119ac565b3480156106ef575f5ffd5b506040805180820182525f808252602091820152815180830183526097548082526098549183019182528351908152905191810191909152016102ec565b348015610738575f5ffd5b506105fe6107473660046131b8565b611ad9565b348015610757575f5ffd5b50610314610766366004612e4b565b611b2e565b348015610776575f5ffd5b506102e0610785366004612e34565b5f908152609c602052604090205460ff1690565b3480156107a4575f5ffd5b506103146107b3366004613068565b611b52565b3480156107c3575f5ffd5b506103146107d2366004613335565b611b5a565b3480156107e2575f5ffd5b506103146107f1366004613395565b611d3c565b348015610801575f5ffd5b506108156108103660046133e1565b611f97565b6040516102ec9190613471565b34801561082d575f5ffd5b506103245f51602061378a5f395f51905f5281565b34801561084d575f5ffd5b5061032461085c366004612fb8565b6120ca565b34801561086c575f5ffd5b506102e061087b3660046134b3565b612132565b34801561088b575f5ffd5b5061089f61089a366004612e4b565b612382565b6040516102ec919061353c565b5f6001600160e01b03198216637965db0b60e01b14806108dc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6108ec5f33611318565b15801561090d575061090b5f51602061376a5f395f51905f5233611318565b155b1561092b5760405163ea8e4eb560e01b815260040160405180910390fd5b80821061097f5760405162461bcd60e51b815260206004820152601b60248201527f5374617274206d757374206265206c657373207468616e20656e64000000000060448201526064015b60405180910390fd5b603261098b8383613597565b10610994575f5ffd5b815b818110156109bb575f818152609c60205260409020805460ff19169055600101610996565b505050565b6109ca5f33611318565b6109e757604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b038116610a3d5760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f207a65726f2061646472657373006044820152606401610976565b82610a478361250d565b1015610a665760405163128bd24d60e31b815260040160405180910390fd5b6001600160a01b038216610b11575f816001600160a01b0316846040515f6040518083038185875af1925050503d805f8114610abd576040519150601f19603f3d011682016040523d82523d5f602084013e610ac2565b606091505b5050905080610b0b5760405162461bcd60e51b8152602060048201526015602482015274115d1a195c881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610976565b50610b25565b610b256001600160a01b038316828561252b565b604080513381526001600160a01b0383811660208301528183018690528416606082015290517f55dba1a9b1cf7e607f75e6920591e36d121fa2899fbf31c777439ee694747b7b9181900360800190a1505050565b5f82815260208190526040902060010154610b948161258a565b610b9e8383612594565b50505050565b610bac612623565b610bde6040518060800160405280848152602001838152602001468152602001306001600160a01b031681525061264a565b6001555050565b6001600160a01b0381163314610c0e5760405163334bd91960e11b815260040160405180910390fd5b6109bb82826126e5565b610c20612623565b606580546001600160a01b0319166001600160a01b038516179055610c455f83611318565b610c5557610c535f83612594565b505b610c6c5f51602061378a5f395f51905f5284611318565b610c8957610c875f51602061378a5f395f51905f5284612594565b505b610ca05f51602061376a5f395f51905f5282611318565b6109bb57610b9e5f51602061376a5f395f51905f5282612594565b6001600160a01b03165f9081526033602052604090205460ff1690565b610ce25f33611318565b158015610d035750610d015f51602061378a5f395f51905f5233611318565b155b15610d215760405163ea8e4eb560e01b815260040160405180910390fd5b609b805461ff0019169055565b610d385f33611318565b158015610d595750610d575f51602061378a5f395f51905f5233611318565b155b15610d775760405163ea8e4eb560e01b815260040160405180910390fd5b610d808161274e565b50565b5f610d8e8183611318565b806108dc57506108dc5f51602061376a5f395f51905f5283611318565b610db55f33611318565b158015610dd65750610dd45f51602061378a5f395f51905f5233611318565b155b15610df45760405163ea8e4eb560e01b815260040160405180910390fd5b610d808161285e565b609b54610100900460ff1615610e265760405163ab35696f60e01b815260040160405180910390fd5b610e2f5f610cbb565b610e4e5760405163094403b760e41b81525f6004820152602401610976565b345f03610e6e57604051637c946ed760e01b815260040160405180910390fd5b5f81604051602001610e8091906135ba565b60408051601f1981840301815291815281516020928301205f818152609a90935291205490915060ff1615610ec85760405163900bb2c960e01b815260040160405180910390fd5b335f81815260996020526040812054610ef8925f51602061378a5f395f51905f529261057a923492919088611505565b610f1557604051638baa579f60e01b815260040160405180910390fd5b5f818152609a60209081526040808320805460ff1916600117905533835260999091528120805491610f46836135e7565b9190505550610f53612968565b7fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb395335f348787604051610f8a9594939291906135ff565b60405180910390a150505050565b610fa25f33611318565b158015610fc35750610fc15f51602061378a5f395f51905f5233611318565b155b15610fe15760405163ea8e4eb560e01b815260040160405180910390fd5b609b805461ff001916610100179055565b610ffc5f33611318565b61101957604051637bfa4b9f60e01b815260040160405180910390fd5b60408051808201825283815260209081018390526097849055609883905581518481529081018390527fe8110342b5e43ae921859bc8dbf18018fcacba13fe16e5a7ea1239b8b5b8f287910160405180910390a15050565b609b545f90610100900460ff161561109c5760405163ab35696f60e01b815260040160405180910390fd5b609b5460ff16156110c057604051630ef7697f60e01b815260040160405180910390fd5b609b805460ff191660011790556110d75f33611318565b1580156110f857506110f65f51602061376a5f395f51905f5233611318565b155b156111165760405163ea8e4eb560e01b815260040160405180910390fd5b306001600160a01b0384160361113f57604051630d20048960e01b815260040160405180910390fd5b61114882610cbb565b6111705760405163094403b760e41b81526001600160a01b0383166004820152602401610976565b6001600160a01b0382166111e457345f036111a0576040516379ac219b60e01b8152336004820152602401610976565b7f6b32cee72b480eef6a5aeccadee07046ade1c28fec1e418949908f7ac8d7d2283333305f346040516111d795949392919061364f565b60405180910390a16112a7565b6040516370a0823160e01b81526001600160a01b0384811660048301525f91908416906370a0823190602401602060405180830381865afa15801561122b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190613682565b90506112666001600160a01b03841685308461298c565b7f6b32cee72b480eef6a5aeccadee07046ade1c28fec1e418949908f7ac8d7d228338530868560405161129d95949392919061364f565b60405180910390a1505b5050609b805460ff1916905550600190565b6112c35f33611318565b6112e057604051637bfa4b9f60e01b815260040160405180910390fd5b6112ea5f336126e5565b506112f55f82612594565b50606680546001600160a01b0319166001600160a01b0392909216919091179055565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61134a5f33611318565b15801561136b57506113695f51602061376a5f395f51905f5233611318565b155b156113895760405163ea8e4eb560e01b815260040160405180910390fd5b8151602810156113af5760405163af89cf2160e01b815260286004820152602401610976565b5f6113b95f61250d565b9050808284516113c99190613699565b106113e75760405163128bd24d60e31b815260040160405180910390fd5b5f5b83518163ffffffff1610156114d7575f848263ffffffff1681518110611411576114116136b0565b60200260200101516001600160a01b0316846040515f6040518083038185875af1925050503d805f8114611460576040519150601f19603f3d011682016040523d82523d5f602084013e611465565b606091505b50509050806114c45730858363ffffffff1681518110611487576114876136b0565b6020908102919091010151604051633ddff61360e21b81526001600160a01b039283166004820152911660248201525f6044820152606401610976565b50806114cf816136c4565b9150506113e9565b506040517f6e31901a2ad27bd7f19498c4681fc6611bf447147de120c3b5f65c249d599077905f90a1505050565b5f5f6115596040518060a001604052805f600281111561152757611527613528565b8152602001898152602001886001600160a01b03168152602001876001600160a01b03168152602001868152506129c5565b8051602082012090915061156d8185612a2b565b98975050505050505050565b6115835f33611318565b6115a057604051637bfa4b9f60e01b815260040160405180910390fd5b6065546115c4905f51602061378a5f395f51905f52906001600160a01b03166126e5565b506115dc5f51602061378a5f395f51905f5282612594565b50606580546001600160a01b0319166001600160a01b0392909216919091179055565b6116095f33611318565b15801561162a57506116285f51602061376a5f395f51905f5233611318565b155b156116485760405163ea8e4eb560e01b815260040160405180910390fd5b609b5460ff161561166c57604051630ef7697f60e01b815260040160405180910390fd5b609b805460ff191660011790555f81900361169a57604051630b8fc7cd60e21b815260040160405180910390fd5b60288111156116bc5760405163f726140760e01b815260040160405180910390fd5b5f5b63ffffffff811682111561192c576116ff83838363ffffffff168181106116e7576116e76136b0565b905060800201604001602081019061042a9190612fb8565b6117585782828263ffffffff1681811061171b5761171b6136b0565b90506080020160400160208101906117339190612fb8565b60405163094403b760e41b81526001600160a01b039091166004820152602401610976565b82828263ffffffff16818110611770576117706136b0565b9050608002015f01355f0361179857604051637c946ed760e01b815260040160405180910390fd5b5f838363ffffffff84168181106117b1576117b16136b0565b90506080020160600160208101906117c99190612fb8565b6001600160a01b0316036117f05760405163d92e233d60e01b815260040160405180910390fd5b609c5f84848463ffffffff1681811061180b5761180b6136b0565b60206080909102929092018201358352508101919091526040015f205460ff161561186e5782828263ffffffff16818110611848576118486136b0565b90506080020160200135604051631409d1b760e21b815260040161097691815260200190565b61191a83838363ffffffff16818110611889576118896136b0565b9050608002015f013584848463ffffffff168181106118aa576118aa6136b0565b9050608002016020013585858563ffffffff168181106118cc576118cc6136b0565b90506080020160400160208101906118e49190612fb8565b86868663ffffffff168181106118fc576118fc6136b0565b90506080020160600160208101906119149190612fb8565b86612ae1565b80611924816136c4565b9150506116be565b5050609b805460ff1916905550565b5f8082600281111561194f5761194f613528565b0361197257506001600160a01b0382165f908152609960205260409020546108dc565b600182600281111561198657611986613528565b036108dc57506001600160a01b0382165f908152609960205260409020600101546108dc565b5f6119b5612c5d565b805490915060ff600160401b82041615906001600160401b03165f811580156119db5750825b90505f826001600160401b031660011480156119f65750303b155b905081158015611a04575080155b15611a225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611a4c57845460ff60401b1916600160401b1785555b611a7460405180604001604052806006815260200165457363726f7760d01b81525088610ba4565b611a7d86611b52565b611a8889338a610c18565b8315611ace57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f5f6115596040518060a0016040528060016002811115611afc57611afc613528565b8152602001898152602001886001600160a01b03168152602001876001600160a01b0316815260200186815250612c85565b5f82815260208190526040902060010154611b488161258a565b610b9e83836126e5565b610d77612623565b609b54610100900460ff1615611b835760405163ab35696f60e01b815260040160405180910390fd5b845f03611ba357604051637c946ed760e01b815260040160405180910390fd5b6001600160a01b038416611bca576040516301cc396360e41b815260040160405180910390fd5b611bd384610cbb565b611bfb5760405163094403b760e41b81526001600160a01b0385166004820152602401610976565b5f81604051602001611c0d91906135ba565b60408051601f1981840301815291815281516020928301205f818152609a90935291205490915060ff1615611c555760405163900bb2c960e01b815260040160405180910390fd5b335f81815260996020526040902054611c85915f51602061378a5f395f51905f529161057a918a918a9088611505565b611ca257604051638baa579f60e01b815260040160405180910390fd5b5f818152609a60209081526040808320805460ff1916600117905533835260999091528120805491611cd3836135e7565b9190505550611ce0612968565b611cf56001600160a01b03861633308961298c565b7fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3953386888787604051611d2c9594939291906135ff565b60405180910390a1505050505050565b609b54610100900460ff1615611d655760405163ab35696f60e01b815260040160405180910390fd5b609b5460ff1615611d8957604051630ef7697f60e01b815260040160405180910390fd5b609b805460ff19166001179055611d9f83610cbb565b611dc75760405163094403b760e41b81526001600160a01b0384166004820152602401610976565b845f03611de757604051637c946ed760e01b815260040160405180910390fd5b6001600160a01b038216611e0e5760405163d92e233d60e01b815260040160405180910390fd5b5f848152609c602052604090205460ff1615611e4057604051631409d1b760e21b815260048101859052602401610976565b5f81604051602001611e5291906135ba565b60408051601f1981840301815291815281516020928301205f818152609a90935291205490915060ff1615611e9a5760405163900bb2c960e01b815260040160405180910390fd5b611eb85f51602061378a5f395f51905f5261057a8886888a88611ad9565b611ed557604051638baa579f60e01b815260040160405180910390fd5b85611edf8561250d565b1015611f59577f2aa807c191208ec364a49ebc0018975f798050694e1695937b26706e4f0a8858338588611f128861250d565b604080516001600160a01b03958616815294909316602085015291830152606082015260800160405180910390a160405163128bd24d60e31b815260040160405180910390fd5b5f818152609a60205260409020805460ff19166001908117909155611f85908790879087908790612ae1565b5050609b805460ff1916905550505050565b6060611fa35f33611318565b158015611fc45750611fc25f51602061376a5f395f51905f5233611318565b155b15611fe25760405163ea8e4eb560e01b815260040160405180910390fd5b602860ff16825160ff16111561200b5760405163f726140760e01b815260040160405180910390fd5b60408051600a80825261016082019092525f9160208201610140803683370190505090505f805b84518110156120bf57609c5f868381518110612050576120506136b0565b60209081029190910181015182528101919091526040015f205460ff16156120b757848181518110612084576120846136b0565b602002602001015183838151811061209e5761209e6136b0565b6020908102919091010152816120b3816135e7565b9250505b600101612032565b50909150505b919050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa15801561210e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dc9190613682565b5f61213d8133611318565b15801561215e575061215c5f51602061376a5f395f51905f5233611318565b155b1561217c5760405163ea8e4eb560e01b815260040160405180910390fd5b6001600160a01b0382166121a35760405163d92e233d60e01b815260040160405180910390fd5b60288311156121c85760405163af89cf2160e01b815260286004820152602401610976565b5f5b83811015612377575f8585838181106121e5576121e56136b0565b6121fb9260206040909202019081019150612fb8565b90505f868684818110612210576122106136b0565b90506040020160200160208101906122289190612fb8565b90506001600160a01b03811661225157604051631b71aaf760e31b815260040160405180910390fd5b306001600160a01b0383160361227a57604051630d20048960e01b815260040160405180910390fd5b61228381610cbb565b6122ab5760405163094403b760e41b81526001600160a01b0382166004820152602401610976565b6040516370a0823160e01b81526001600160a01b0383811660048301525f91908316906370a0823190602401602060405180830381865afa1580156122f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123169190613682565b905061232d6001600160a01b03831684888461298c565b7f6b32cee72b480eef6a5aeccadee07046ade1c28fec1e418949908f7ac8d7d228338488858560405161236495949392919061364f565b60405180910390a15050506001016121ca565b506001949350505050565b604080516080810182525f8082526020820181905291810182905260608101829052906123ae8361250d565b9050835f036123e957604080516080810182526003815260146020820152908101919091526001600160a01b038316606082015290506108dc565b5f846123fd83670de0b6b3a7640000613699565b61240791906136e8565b9050848210156124425750604080516080810182525f8082526020820152908101919091526001600160a01b038316606082015290506108dc565b6124556014670de0b6b3a7640000613699565b811061248e5750604080516080810182526003815260146020820152908101919091526001600160a01b038316606082015290506108dc565b6124a16005670de0b6b3a7640000613699565b81106124da5750604080516080810182526002815260056020820152908101919091526001600160a01b038316606082015290506108dc565b50604080516080810182526001815260026020820152908101919091526001600160a01b038316606082015290506108dc565b5f6001600160a01b03821661252257476108dc565b6108dc826120ca565b6040516001600160a01b038381166024830152604482018390526109bb91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612cd5565b610d808133612d41565b5f61259f8383611318565b61261c575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556125d43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108dc565b505f6108dc565b61262b612d7a565b61264857604051631afcd79f60e31b815260040160405180910390fd5b565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f825f015180519060200120836020015180519060200120846040015185606001516040516020016126c89594939291909485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b604051602081830303815290604052805190602001209050919050565b5f6126f08383611318565b1561261c575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108dc565b5f5b815181101561285a5760335f83838151811061276e5761276e6136b0565b6020908102919091018101516001600160a01b031682528101919091526040015f9081205460ff161515900361285257600160335f8484815181106127b5576127b56136b0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f784c8f4dbf0ffedd6e72c76501c545a70f8b203b30a26ce542bf92ba87c248a4828281518110612825576128256136b0565b602002602001015160405161284991906001600160a01b0391909116815260200190565b60405180910390a15b600101612750565b5050565b5f5b815181101561285a5760335f83838151811061287e5761287e6136b0565b6020908102919091018101516001600160a01b031682528101919091526040015f205460ff161515600103612960575f60335f8484815181106128c3576128c36136b0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f4c910b69fe65a61f7531b9c5042b2329ca7179c77290aa7e2eb3afa3c8511fd3828281518110612933576129336136b0565b602002602001015160405161295791906001600160a01b0391909116815260200190565b60405180910390a15b600101612860565b60978054905f612977836135e7565b90915550506098544311156126485743609855565b6040516001600160a01b038481166024830152838116604483015260648201839052610b9e9186918216906323b872dd90608401612558565b60607fe35cf8b8df51aa49768d4a7859037953b72f9188d7c60825dfd506ac7c8d430c825f01518360200151846040015185606001518660800151604051602001612a1596959493929190613707565b6040516020818303038152906040529050919050565b60015460405161190160f01b60208201526022810191909152604281018390525f90819060620160408051601f19818403018152919052805160209182012091506001908290612a7d90860186613750565b604080515f815260208181018084529490945260ff9092168282015291860135606082015290850135608082015260a0016020604051602081039080840390855afa158015612ace573d5f5f3e3d5ffd5b5050604051601f19015195945050505050565b5f848152609c60209081526040808320805460ff191660019081179091553384526099909252822001805491612b16836135e7565b9190505550612b23612968565b6001600160a01b038316612bdf5784471015612b525760405163128bd24d60e31b815260040160405180910390fd5b5f826001600160a01b0316866040515f6040518083038185875af1925050503d805f8114612b9b576040519150601f19603f3d011682016040523d82523d5f602084013e612ba0565b606091505b5050905080612bd957604051633ddff61360e21b81523060048201526001600160a01b03841660248201525f6044820152606401610976565b50612bf3565b612bf36001600160a01b038416838761252b565b604080513381526001600160a01b038481166020830152851681830152606081018790526080810186905263ffffffff831660a082015290517ffc4d59a46f6143e0496645b06688cceb577d2d0439ad39ac0f1eaf3143a3a48e9181900360c00190a15050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108dc565b60607f30df4329ee18debd99f937f6d70edc594d2957d5c194e77ab788df398c193af2825f01518360200151846040015185606001518660800151604051602001612a1596959493929190613707565b5f5f60205f8451602086015f885af180612cf4576040513d5f823e3d81fd5b50505f513d91508115612d0b578060011415612d18565b6001600160a01b0384163b155b15610b9e57604051635274afe760e01b81526001600160a01b0385166004820152602401610976565b612d4b8282611318565b61285a5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610976565b5f612d83612c5d565b54600160401b900460ff16919050565b5f60208284031215612da3575f5ffd5b81356001600160e01b031981168114612dba575f5ffd5b9392505050565b5f5f60408385031215612dd2575f5ffd5b50508035926020909101359150565b6001600160a01b0381168114610d80575f5ffd5b5f5f5f60608486031215612e07575f5ffd5b833592506020840135612e1981612de1565b91506040840135612e2981612de1565b809150509250925092565b5f60208284031215612e44575f5ffd5b5035919050565b5f5f60408385031215612e5c575f5ffd5b823591506020830135612e6e81612de1565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715612eb557612eb5612e79565b604052919050565b5f82601f830112612ecc575f5ffd5b81356001600160401b03811115612ee557612ee5612e79565b612ef8601f8201601f1916602001612e8d565b818152846020838601011115612f0c575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215612f39575f5ffd5b82356001600160401b03811115612f4e575f5ffd5b612f5a85828601612ebd565b92505060208301356001600160401b03811115612f75575f5ffd5b612f8185828601612ebd565b9150509250929050565b5f5f5f60608486031215612f9d575f5ffd5b8335612fa881612de1565b92506020840135612e1981612de1565b5f60208284031215612fc8575f5ffd5b8135612dba81612de1565b5f6001600160401b03821115612feb57612feb612e79565b5060051b60200190565b5f82601f830112613004575f5ffd5b813561301761301282612fd3565b612e8d565b8082825260208201915060208360051b860101925085831115613038575f5ffd5b602085015b8381101561305e57803561305081612de1565b83526020928301920161303d565b5095945050505050565b5f60208284031215613078575f5ffd5b81356001600160401b0381111561308d575f5ffd5b61309984828501612ff5565b949350505050565b5f5f83601f8401126130b1575f5ffd5b5081356001600160401b038111156130c7575f5ffd5b6020830191508360208285010111156130de575f5ffd5b9250929050565b5f606082840312156130f5575f5ffd5b50919050565b5f5f5f6080848603121561310d575f5ffd5b83356001600160401b03811115613122575f5ffd5b61312e868287016130a1565b9094509250613142905085602086016130e5565b90509250925092565b5f5f6040838503121561315c575f5ffd5b823561316781612de1565b91506020830135612e6e81612de1565b5f5f60408385031215613188575f5ffd5b82356001600160401b0381111561319d575f5ffd5b6131a985828601612ff5565b95602094909401359450505050565b5f5f5f5f5f60e086880312156131cc575f5ffd5b8535945060208601356131de81612de1565b935060408601356131ee81612de1565b92506060860135915061320487608088016130e5565b90509295509295909350565b5f5f60208385031215613221575f5ffd5b82356001600160401b03811115613236575f5ffd5b8301601f81018513613246575f5ffd5b80356001600160401b0381111561325b575f5ffd5b8560208260071b840101111561326f575f5ffd5b6020919091019590945092505050565b5f5f60408385031215613290575f5ffd5b823561329b81612de1565b9150602083013560038110612e6e575f5ffd5b5f5f5f5f608085870312156132c1575f5ffd5b84356132cc81612de1565b935060208501356132dc81612de1565b925060408501356001600160401b038111156132f6575f5ffd5b61330287828801612ebd565b92505060608501356001600160401b0381111561331d575f5ffd5b61332987828801612ff5565b91505092959194509250565b5f5f5f5f5f60c08688031215613349575f5ffd5b85359450602086013561335b81612de1565b935060408601356001600160401b03811115613375575f5ffd5b613381888289016130a1565b9094509250613204905087606088016130e5565b5f5f5f5f5f60e086880312156133a9575f5ffd5b853594506020860135935060408601356133c281612de1565b925060608601356133d281612de1565b915061320487608088016130e5565b5f602082840312156133f1575f5ffd5b81356001600160401b03811115613406575f5ffd5b8201601f81018413613416575f5ffd5b803561342461301282612fd3565b8082825260208201915060208360051b850101925086831115613445575f5ffd5b6020840193505b8284101561346757833582526020938401939091019061344c565b9695505050505050565b602080825282518282018190525f918401906040840190835b818110156134a857835183526020938401939092019160010161348a565b509095945050505050565b5f5f5f604084860312156134c5575f5ffd5b83356001600160401b038111156134da575f5ffd5b8401601f810186136134ea575f5ffd5b80356001600160401b038111156134ff575f5ffd5b8660208260061b8401011115613513575f5ffd5b602091820194509250840135612e2981612de1565b634e487b7160e01b5f52602160045260245ffd5b815160808201906004811061355357613553613528565b825260208381015190830152604080840151908301526060928301516001600160a01b0316929091019190915290565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108dc576108dc613583565b803560ff811681146120c5575f5ffd5b6060810160ff6135c9846135aa565b16825260208381013590830152604092830135929091019190915290565b5f600182016135f8576135f8613583565b5060010190565b6001600160a01b03868116825285166020820152604081018490526080606082018190528101829052818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a00190565b5f60208284031215613692575f5ffd5b5051919050565b80820281158282048414176108dc576108dc613583565b634e487b7160e01b5f52603260045260245ffd5b5f63ffffffff821663ffffffff81036136df576136df613583565b60010192915050565b5f8261370257634e487b7160e01b5f52601260045260245ffd5b500490565b86815260c081016003871061371e5761371e613528565b602082019690965260408101949094526001600160a01b0392831660608501529116608083015260a090910152919050565b5f60208284031215613760575f5ffd5b612dba826135aa56fe9d98d3d08f0062b192694645e127c98e5f96f3bbec331d061acaac3ace2327f997667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a2646970667358221220fba97ec702b057ee1a290d657495440e1199b62e09ece290409bc0a6ce57c9fa64736f6c634300081c0033";
3058
+ const _bytecode = "0x608080604052346015576157b0908161001a8239f35b5f80fdfe6080806040526004361015610052575b50361561001a575f80fd5b7fb0afe9a71610967b99fda7fda0ed1e6ff47851924352fdf759922dd54272594160606040513381525f6020820152346040820152a1005b5f3560e01c90816301ffc9a714613598575080630430e9321461327b57806311a4b2d0146131f757806312065fe0146131dc57806317f6939e146131c15780631c599c9a1461310057806320f5117c146130c8578063248a9ca31461309e57806325ea836414612e185780632df4da6e14612c695780632f2ff15d14612c2c57806331993fdf14612b4b5780633462ceff14612b2e5780633644e51514612b1157806336568abe14612acd5780633945c4a614612ab05780633aa98a9414612a095780633af32abf146129eb5780633f4ba83a146129aa578063427ba1a11461276c5780634a78b2f514612732578063518713d2146126eb5780635ba1c1a9146126cf5780635c2598781461235a578063650f2ba5146123145780636c3824ef146121e45780637026cb58146121aa578063759f4eaa14611f3d57806378b61a1514611ede578063798812ea14611eb65780637c13ba6414611ce45780637d4e22f214611c7a5780637ecebe0014611c425780637ef066c814611c085780638456cb5914611bc357806385fb709d14611a045780638e8b3f2f146119e757806391d14854146119b757806395349251146119885780639b19251a1461194b5780639d01005814611923578063a0c7f799146118e9578063a217fddf146118cf578063a31989ad146118b2578063a3a0007214611750578063a3bfd3aa146116cc578063ac21242d14611653578063afbef47b1461157a578063b187bd2614611555578063b2065f601461151b578063b700f456146114e1578063bec4742c146114c4578063bfbe3f2214611457578063c06086671461141d578063c210296414611250578063c4707a8314611229578063c67515dd146111f7578063d37dbaa2146111c9578063d547741f14611185578063d55c16fd146110c6578063d8a4676f14611097578063da6e2ec014610fc2578063e20c103c14610f80578063e5b6337b14610d81578063e88e5cd414610b2b578063eb818b1f14610954578063ebdf690f1461091a578063ef227b56146108a3578063f01068a114610869578063f14280cb14610811578063f470c7e214610720578063f5b541a6146106f9578063f8b2cb4f146106ce578063fa07bb5414610694578063fa13f30a14610460578063fc50455f146103ec5763fddbf3f3146103ad575f61000f565b346103e85760203660031901126103e8576001600160a01b036103ce613601565b165f526067602052602060ff60405f205416604051908152f35b5f80fd5b346103e85760403660031901126103e857610410610408613643565b600435614454565b604051815191600483101561044c5760809282526020810151602083015260408101516040830152606060018060a01b03910151166060820152f35b634e487b7160e01b5f52602160045260245ffd5b346103e85760403660031901126103e8576004356001600160401b0381116103e857366023820112156103e8578060040135906001600160401b0382116103e8576024810190602436918460061b0101116103e8576024356001600160a01b038116908190036103e8576104d333613f98565b1580610684575b6106755780156106665760288311610652575f5b83811061050057602060405160018152f35b61051361050e828686614444565b613aee565b906001600160a01b03610532602061052c848989614444565b01613aee565b168015610643576001600160a01b0383169030821461063457805f52603360205260ff60405f20541615610622576040516370a0823160e01b81526004810183905290602082602481845afa9182156106175786905f936105d3575b5091816105b08260a0956001995f51602061573b5f395f51905f529896615166565b60405192338452602084015287604084015260608301526080820152a1016104ee565b925050916020823d821161060f575b816105ef602093836137a0565b810103126103e85790519091855f51602061573b5f395f51905f5261058e565b3d91506105e2565b6040513d5f823e3d90fd5b63094403b760e41b5f5260045260245ffd5b630d20048960e01b5f5260045ffd5b631b71aaf760e31b5f5260045ffd5b63af89cf2160e01b5f52602860045260245ffd5b63d92e233d60e01b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b5061068e3361401f565b156104da565b346103e8575f3660031901126103e85760206040517faf82374944a6f0200e0a96e99d9d9aa4925409c95c28b14a1d426baddd614aa88152f35b346103e85760203660031901126103e85760206106f16106ec613601565b6143db565b604051908152f35b346103e8575f3660031901126103e85760206040515f5160206156fb5f395f51905f528152f35b346103e85761072e36613a21565b61073733613f98565b1580610801575b806107f1575b61067557602860ff825116116107e2576040519061016061076581846137a0565b600a8352601f19013660208401375f5f5b82518110156107d0576107898184613c49565b515f52609c60205260ff60405f2054166107a6575b600101610776565b906107c86001916107b78486613c49565b516107c28288613c49565b52613c3b565b91905061079e565b604051806107de8682613a9f565b0390f35b63f726140760e01b5f5260045ffd5b506107fb33613eec565b15610744565b5061080b3361401f565b1561073e565b346103e85760203660031901126103e85760043560068110156103e85761083a6107de916143a4565b60405191829182919091604080606083019460ff815116845260ff602082015116602085015201511515910152565b346103e8575f3660031901126103e85760206040517fb7733e58c7517dbd9e44ca467a39c0556186bc3a7271956f0a22baafb5dc93c38152f35b346103e85760203660031901126103e8576107de6108c76108c2613601565b614341565b6040519182918291909160a08060c08301948051845260ff602082015116602085015260ff604082015116604085015260ff606082015116606085015260ff608082015116608085015201511515910152565b346103e8575f3660031901126103e85760206040517fede9dcdb0ce99dc7cec9c7be9246ad08b37853683ad91569c187b647ddf5e21c8152f35b346103e857610962366136df565b61096b33613f98565b15610b1c57606a549060018216610a05575b505050610998604061099160208401613c6d565b9201613c6d565b906001604051926109a884613785565b62ff000061ff0060ff85169485875284604060ff861698896020820152015260081b169160101b16171760695560405160066003101561044c575f51602061571b5f395f51905f52926060926003835260208301526040820152a1005b60608401359060a15492838303610b0557610a1f90614d22565b936001546080873603126103e85760405195610a3a87613734565b873560068110156103e85787610af59682610afa9a5260ff808c6060610a756040610a676020850161389e565b93602089019485520161389e565b956040810196875201938452511692511690519060405192610ac260208501957fd9f156a761105f6361512d31cea845f4ddff720a324d1318ade78663a62bb31887526040860190613b0f565b6060840152608083015260a082015260a08152610ae060c0826137a0565b51902060ff6020818451169301511692614a20565b613c3b565b60a15581808061097d565b82846306427aeb60e01b5f5260045260245260445ffd5b637bfa4b9f60e01b5f5260045ffd5b346103e85760e03660031901126103e857600435602435610b4a613617565b610b5261362d565b9160603660831901126103e857609b5460ff8160081c16610d725760ff8116610d635760ff1916600117609b556001600160a01b0382165f8181526033602052604090205490949060ff1615610d50578015610d41576001600160a01b038416801561066657825f52609c60205260ff60405f205416610d2e57604051602081019060843560ff81168091036103e857825260a435604082015260c435606082015260608152610c036080826137a0565b51902095865f52609a60205260ff60405f205416610d1f576084610c54610c6193610c5c9360405191610c3583613719565b60018352876020840152604083015260608201528660808201526146a0565b6001546153e5565b61415a565b15610d105780610c7084614d6d565b10610ca057610c94945f52609a60205260405f20600160ff19825416179055614b58565b609b805460ff19169055005b7f2aa807c191208ec364a49ebc0018975f798050694e1695937b26706e4f0a88589083610cfe610ccf82614d6d565b604080513381526001600160a01b03909416602085015283019390935260608201929092529081906080820190565b0390a163128bd24d60e31b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b63900bb2c960e01b5f5260045ffd5b82631409d1b760e21b5f5260045260245ffd5b637c946ed760e01b5f5260045ffd5b8463094403b760e41b5f5260045260245ffd5b630ef7697f60e01b5f5260045ffd5b63ab35696f60e01b5f5260045ffd5b346103e85760c03660031901126103e857600435610d9d613643565b906044356001600160401b0381116103e857610dbd9036906004016139a8565b9260603660631901126103e85760ff609b5460081c16610d72578215610d41576001600160a01b03168015610f7157805f52603360205260ff60405f2054161561062257604051602081019060643560ff81168091036103e8578252608435604082015260a435606082015260608152610e386080826137a0565b51902093845f52609a60205260ff60405f205416610d1f57335f526099602052610ed2610c5c606460405f205460405190610e7282613719565b5f825260208083018a9052336040808501829052606085018a905260809094018390529251908101929091610ec7918391610eb9916001600160a01b038c16908e8861464a565b03601f1981018352826137a0565b5190206001546153e5565b15610d10578060a0937fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb395965f52609a60205260405f20600160ff19825416179055335f52609960205260405f20610f298154613c3b565b9055610f3786303387615166565b6040519586943386526020860152604085015260806060850152816080850152848401375f828201840152601f01601f19168101030190a1005b6301cc396360e41b5f5260045ffd5b346103e85760203660031901126103e8576004356001600160401b0381116103e857610fb3610fc0913690600401613839565b610fbb614ec3565b615450565b005b346103e85760203660031901126103e8576004356001600160401b0381116103e857610ff29036906004016138ac565b610ffb33613f98565b1580611087575b61067557604060205f5b8351811015610fc0576001600160a01b036110278286613c49565b5151169061103e6110388287613c49565b51614f5c565b835161104a85826137a0565b60018152602081019084368337805115611073576001938261106d935052615450565b0161100c565b634e487b7160e01b5f52603260045260245ffd5b506110913361415a565b15611002565b346103e85760203660031901126103e8576004355f52609c602052602060ff60405f2054166040519015158152f35b346103e8576110d436613a21565b6110dd33613f98565b1580611175575b80611165575b61067557602860ff825116116107e2576040519061016061110b81846137a0565b600a8352601f19013660208401375f5f5b82518110156107d05761112f8184613c49565b515f52609d60205260ff60405f20541661114c575b60010161111c565b9061115d6001916107b78486613c49565b919050611144565b5061116f33613eec565b156110ea565b5061117f3361401f565b156110e4565b346103e85760403660031901126103e857610fc06004356111a4613643565b906111c46111bd825f525f602052600160405f20015490565b3390615551565b614eee565b346103e85760206111e56111dc366139d5565b939290926142ce565b6040516001600160a01b039091168152f35b346103e85760403660031901126103e857611210613601565b6024359060068210156103e8576020916106f191614278565b346103e8575f3660031901126103e85760206040515f5160206156db5f395f51905f528152f35b346103e85760203660031901126103e8576004356001600160401b0381116103e857611280903690600401613978565b61128933613f98565b158061140d575b61067557609b5460ff8116610d635760ff1916600117609b5580156113fe57602881116107e25763ffffffff811691905f5b63ffffffff811682811015610c94576113016112e4604061052c848789613c5d565b6001600160a01b03165f9081526033602052604090205460ff1690565b156113ce57611311818486613c5d565b3515610d41576001600160a01b0361132f606061052c848789613c5d565b1615610666576020611342828587613c5d565b01355f52609c60205260ff60405f2054166113ad57906113a38584848761139d606061052c611395604061052c8761137e6113a89e8b8a613c5d565b3599602061138d83838c613c5d565b013598613c5d565b948b8d613c5d565b92614c43565b614261565b6112c2565b6113ba6020918486613c5d565b0135631409d1b760e21b5f5260045260245ffd5b604061052c6113de928587613c5d565b63094403b760e41b5f9081526001600160a01b0391909116600452602490fd5b630b8fc7cd60e21b5f5260045ffd5b506114173361401f565b15611290565b346103e8575f3660031901126103e85760206040517ff7401a2aa2d57dbee8bd296c5ac47eac2db8a2db2ff59d50c0534dc8be92dc6e8152f35b346103e85760603660031901126103e85760043560068110156103e8576024359060ff8216918281036103e8576044359160ff8316938484036103e85761149d33613f98565b15610b1c5760408051610fc0966001936114b683613785565b825260208201520152615045565b346103e8575f3660031901126103e8576020606b54604051908152f35b346103e8575f3660031901126103e85760206040517fdd7d143944313e9468ffd66e8786351a1538ac1bd6bac96fbbaac11d42f60a518152f35b346103e8575f3660031901126103e85760206040517f4d7d81d86b902e627e6f0ca462e1191bd8af9cb4b8de2660c10b6349acb6ff9b8152f35b346103e8575f3660031901126103e857602060ff609b5460081c166040519015158152f35b346103e8576115883661366d565b93609b9391935460ff8116610d635760ff1916600117609b81905560081c60ff16610d725760405160208101906115c781610eb9898989898989613b1c565b51902094855f52609e60205260ff60405f205416156116405780421061162a57508185610c94965f52609e60205260405f2060ff1981541690557f51c3dff4f0da80a96e8c3557bb500474d2b07950c09c205189fcf7a426970f775f80a3614b58565b63126b74dd60e11b5f526004524260245260445ffd5b8563836588c960e01b5f5260045260245ffd5b346103e85760206111e5610ec7610eb961166c366139d5565b9592949093608060405161167f81613719565b5f81528a81019283526001600160a01b03978816604080830191825295891660608301908152929091018790529151915190519351808b019790968795909390821692909116908861464a565b346103e8576116da366135eb565b906116e433613f98565b1580611740575b6106755760ff609b5460081c16610d7257611707828210613b55565b60326117138284613ba1565b10156103e8575b81811061172357005b5f818152609d60205260409020805460ff1916905560010161171a565b5061174a3361401f565b156116eb565b346103e85760403660031901126103e8576004356001600160401b0381116103e857611780903690600401613839565b60243561178c33613f98565b15806118a2575b6106755760ff609b5460081c16610d725760a3548111611893576028825111610652574782518281029080820484149015171561187f571015611870575f5b825163ffffffff82169081101561184a575f808080866001600160a01b036117fa878b613c49565b51165af1611806613c0c565b501561181b575061181690614261565b6117d2565b6001600160a01b039061182e9085613c49565b5116633ddff61360e21b5f52306004526024525f60445260645ffd5b7f6e31901a2ad27bd7f19498c4681fc6611bf447147de120c3b5f65c249d5990775f80a1005b63128bd24d60e31b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b6395e28b8560e01b5f5260045ffd5b506118ac3361401f565b15611793565b346103e8575f3660031901126103e857602060a254604051908152f35b346103e8575f3660031901126103e85760206040515f8152f35b346103e8575f3660031901126103e85760206040517fbbfb55d933c2bfa638763473275b1d84c4418e58d26cf9d2cd5758237756d9f08152f35b346103e85760203660031901126103e85761193c613bae565b506107de61083a600435614d22565b346103e85760203660031901126103e8576001600160a01b0361196c613601565b165f526033602052602060ff60405f2054166040519015158152f35b346103e85760203660031901126103e8576004355f52609e602052602060ff60405f2054166040519015158152f35b346103e85760403660031901126103e85760206119dd6119d5613643565b6004356141ee565b6040519015158152f35b346103e8575f3660031901126103e8576020606954604051908152f35b60403660031901126103e857611a18613601565b611a20613643565b609b5460ff8160081c16610d725760ff8116610d635760ff1916600117609b55611a4933613f98565b1580611bb3575b610675576001600160a01b03821690308214610634576001600160a01b03165f8181526033602052604090205490929060ff1615611ba05782611aee575050503415611adb575f51602061573b5f395f51905f5260a06040513381523360208201523060408201525f6060820152346080820152a15b60ff19609b5416609b55602060405160018152f35b6379ac219b60e01b5f523360045260245ffd5b6040516370a0823160e01b81526004810183905290602082602481875afa918215610617575f92611b5d575b50905f51602061573b5f395f51905f5293611b3b8260a09594309084615166565b60405192338452602084015230604084015260608301526080820152a1611ac6565b9291506020833d602011611b98575b81611b79602093836137a0565b810103126103e857915190915f51602061573b5f395f51905f52611b1a565b3d9150611b6c565b8263094403b760e41b5f5260045260245ffd5b50611bbd3361401f565b15611a50565b346103e8575f3660031901126103e857611bdc33613f98565b1580611bf8575b61067557609b805461ff001916610100179055005b50611c023361415a565b15611be3565b346103e8575f3660031901126103e85760206040517f20eabc094169e10bc6be263d742d992b10fb206c3c0411e1cbabdd3cf47922298152f35b346103e85760203660031901126103e8576001600160a01b03611c63613601565b165f526099602052602060405f2054604051908152f35b346103e8576101003660031901126103e857611c94613617565b611c9c61362d565b60603660831901126103e85760e4356001600160401b0381116103e857611cc79036906004016136af565b9160ff609b5460081c16610d7257610fc093602435600435613cab565b60803660031901126103e8576004356001600160401b0381116103e857611d0f9036906004016139a8565b60603660231901126103e85760ff609b5460081c16610d72575f805260336020527f44496df070da3f045064f6d6f394484a8de10d5710290d619b67d975ec89320f5460ff1615611ea3573415610d4157604051602081019060243560ff81168091036103e85782526044356040820152606435606082015260608152611d976080826137a0565b519020805f52609a60205260ff60405f205416610d1f57335f526099602052611e0e610c5c602460405f205460405190611dd082613719565b5f8083523460208085018290523360408087018290526060870185905260809096018590529451908101949093610ec7938593610eb993908861464a565b15610d10577fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3959260a0915f52609a60205260405f20600160ff19825416179055335f52609960205260405f20611e648154613c3b565b9055826040519384923384525f602085015234604085015260806060850152816080850152848401375f828201840152601f01601f19168101030190a1005b63094403b760e41b5f525f60045260245ffd5b346103e85760203660031901126103e857611ecf613c7b565b506107de6108c760043561510b565b346103e85760203660031901126103e8576001600160a01b03611eff613601565b165f52609f602052608060405f2080549060018101549060ff6003600283015492015416916040519384526020840152604083015215156060820152f35b346103e857366003190161012081126103e857610100136103e857610104356001600160401b0381116103e857611f789036906004016136af565b90611f8233613f98565b15610b1c57606a54906001821661201f575b505050611f9f613ad8565b6064359060ff8216918281036103e857506084359160ff8316928381036103e8575060a43560ff8116908181036103e8575060c4359360ff8516928386036103e857610fc0955060405194611ff38661376a565b6001600160a01b03168552604435602086015260408501526060840152608083015260a0820152614f5c565b60e4359260a154928385036121925761203790614d22565b916001546040519361010085018581106001600160401b0382111761217e5760405260043560068110156103e857808652612070613643565b9760208701988952604087019060443582526064359060ff821682036103e8576060890191825260843560ff811681036103e85760808a0190815260a43560ff811681036103e85760a08b0190815260c4359160ff831683036103e85760ff806121739f81610af59f9160e08360c0849501998a520198895260018060a01b0390511699519851169351169351169351169351946040519661213d60208901997ff7c85f4c562133d25a5a2a8cfb32d68080a42c5189d5a1a655e1216b2364c3598b5260408a0190613b0f565b6060880152608087015260a086015260c085015260e08401526101008301526101208201526101208152610ae0610140826137a0565b60a155808080611f94565b634e487b7160e01b5f52604160045260245ffd5b5050506306427aeb60e01b5f5260045260245260445ffd5b346103e8575f3660031901126103e85760206040517f3261beaeb016c41750eb5ecd6c92c85305d1a0aecaaaa6e0f4cf499f7ae258fb8152f35b346103e85760203660031901126103e8576004356001600160401b0381116103e857612214903690600401613839565b61221d33613f98565b1580612304575b610675575f5b81518110156122ce576001906001600160a01b036122488285613c49565b51165f5260336020528160ff60405f205416151514612268575b0161222a565b818060a01b036122788285613c49565b51165f52603360205260405f2060ff1981541690557f4c910b69fe65a61f7531b9c5042b2329ca7179c77290aa7e2eb3afa3c8511fd36020838060a01b036122c08487613c49565b5116604051908152a1612262565b505f5b8151811015610fc0576001906001600160a01b036122ef8285613c49565b51165f5260686020525f6040812055016122d1565b5061230e3361415a565b15612224565b346103e85760203660031901126103e8576001600160a01b03612335613601565b165f5260a06020526040805f2060ff6001825492015416825191825215156020820152f35b346103e85760e03660031901126103e857612373613601565b61237b613643565b906044356001600160401b0381116103e85761239b9036906004016137dc565b6064356001600160401b0381116103e8576123ba903690600401613839565b6084356001600160401b0381116103e8576123d99036906004016138ac565b9360a4356001600160401b0381116103e8576123f9903690600401613978565b9190945f51602061575b5f395f51905f525460ff8160401c1615946001600160401b038216801590816126c7575b60011490816126bd575b1590816126b4575b506126a55767ffffffffffffffff1982166001175f51602061575b5f395f51905f525561251a9186612679575b50604096875161247689826137a0565b60068152602081019065457363726f7760d01b8252612493614ec3565b895161249e81613734565b818152836020820152468b820152606030910152519020906020815191012088519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84528a83015260608201524660808201523060a082015260a0815261250c60c0826137a0565b519020600155610fbb614ec3565b612522614ec3565b606580546001600160a01b0319166001600160a01b03831617905561254633613f98565b1561266a575b6125558161415a565b1561265a575b506125658161401f565b1561264a575b5060c43560a3555f5b8551811015612593578061258d61103860019389613c49565b01612574565b50835f5b8281106125fd575050506125a757005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000195f51602061575b5f395f51905f5254165f51602061575b5f395f51905f52555160018152a1005b612608818484613c5d565b359060068210156103e85761264460019261262f6020612629858989613c5d565b01613c6d565b61263e89612629868a8a613c5d565b91615045565b01612597565b61265390614e81565b508561256b565b61266390614e53565b508661255b565b61267333614dc9565b5061254c565b68ffffffffffffffffff191668010000000000000001175f51602061575b5f395f51905f525589612466565b63f92ee8a960e01b5f5260045ffd5b9050158a612439565b303b159150612431565b879150612427565b346103e8575f3660031901126103e85760206040516103848152f35b346103e85760203660031901126103e8576020612706613601565b61270f81613f98565b908115612722575b506040519015158152f35b61272c915061401f565b82612717565b346103e8575f3660031901126103e85760206040517fd64fcb6a6f590e3ec3e331a5d9c60e0ca7468054939fe8e8dfe25f11ad1c1e7a8152f35b346103e857366003190160e081126103e85760c0136103e85760c4356001600160401b0381116103e8576127a49036906004016136af565b906127ae33613f98565b15610b1c576004359160068310156103e8576005830361299b57606b549160018316612883575b6127dd613ad8565b7fdecad5d2d09e135bd441d251aac8169cfc87fbaa724441620c4433eec310740e60606044356064356084359061287060405161281981613734565b84815260036020820198848a5260408301868152888401916001835260018060a01b03169a8b5f52609f60205260405f209451855551600185015551600284015551151591019060ff801983541691151516179055565b60405192835260208301526040820152a2005b60a4359360a254938486036129845794610af59392916128a561297897614d22565b9060015492604051906128b78261376a565b8282526128c2613643565b60208381018290526044356040808601829052606435606087018190526084356080880181905260a090970186905281517f938950981d332bb13f775a3387daf26ee4c6574ace3e04ca5d9c0f6b267e611f948101948552939793969490936001600160a01b039091169161293a9190880190613b0f565b6060860152608085015260a084015260c083015260e082015260e08152612963610100826137a0565b51902060ff6020818451169301511692614953565b60a255808080806127d5565b85856306427aeb60e01b5f5260045260245260445ffd5b631cc6a69960e11b5f5260045ffd5b346103e8575f3660031901126103e8576129c333613f98565b15806129db575b61067557609b805461ff0019169055005b506129e53361415a565b156129ca565b346103e85760203660031901126103e85760206119dd6112e4613601565b346103e85760603660031901126103e857612a22613601565b612a2a613643565b90612a33613617565b91612a3c614ec3565b606580546001600160a01b0319166001600160a01b038416179055612a6081613f98565b15612aa0575b50612a708161415a565b15612a90575b50612a808161401f565b15612a8757005b610fc090614e81565b612a9990614e53565b5081612a76565b612aa990614dc9565b5082612a66565b346103e8575f3660031901126103e8576020606a54604051908152f35b346103e85760403660031901126103e857612ae6613643565b336001600160a01b03821603612b0257610fc090600435614eee565b63334bd91960e11b5f5260045ffd5b346103e8575f3660031901126103e8576020600154604051908152f35b346103e8575f3660031901126103e857602060a154604051908152f35b346103e85760403660031901126103e8576004356001600160401b0381116103e857612b7b9036906004016137dc565b6024356001600160401b0381116103e857612b9a9036906004016137dc565b90612ba3614ec3565b604051612baf81613734565b8181528260208201524660408201526060309101526020815191012090602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152612c2460c0826137a0565b519020600155005b346103e85760403660031901126103e857610fc0600435612c4b613643565b90612c646111bd825f525f602052600160405f20015490565b614eaf565b346103e857612c77366136df565b612c8033613f98565b15610b1c5782359160068310156103e8576005830361299b57606b549160018316612d2b575b847fbfb20345012f7f594509a481f64d54cf8b3b081b4a40b1c69410fee9590f89c360206040612cd7828501613aee565b930135612d22604051612ce98161374f565b828152600184820196818852818060a01b031696875f5260a0865260405f209251835551151591019060ff801983541691151516179055565b604051908152a2005b60608501359160a25493848403612e0157612d4590614d22565b600154906080883603126103e857612df59688610af596604051612d6881613734565b8381526060612d7960208501613659565b9160208101928352604080820195013585520191825260018060a01b03905116915190519060405192612dd760208501957f17b10d4ca0ee847f6681ca5e4205d5402614b1149ae7a25cd473872ae40df18187526040860190613b0f565b6060840152608083015260a082015260a0815261296360c0826137a0565b60a25581808080612ca6565b83856306427aeb60e01b5f5260045260245260445ffd5b346103e85760a03660031901126103e857600435602435612e37613617565b91612e4061362d565b906084356001600160401b0381116103e857612e609036906004016136af565b929094612e6c33613eec565b158061308e575b6106755760ff609b5460081c16610d72576001600160a01b0382169384156130495760695496600188161561303a57845f52609d60205260ff60405f20541661302757612ebf846140b3565b156130185786612ece84614d6d565b1061187057612f2f92612f1160405191612ee783613719565b6003835289602084015288604084015260018060a01b0316998a6060840152876080840152614d22565b612f1d600154926146a0565b60ff6020818451169301511692614886565b84612fe357505f80808086865af1612f45613c0c565b5015612fa6577f90e7666b7fc6e8b2de33377c01b0f07a65ea33e7596f355b4a107492af5fbe429360a0935b825f52609d60205260405f20600160ff19825416179055604051933385526020850152604084015260608301526080820152a1005b60405162461bcd60e51b8152602060048201526015602482015274115d1a195c881d1c985b9cd9995c8819985a5b1959605a1b6044820152606490fd5b938361301360a0957f90e7666b7fc6e8b2de33377c01b0f07a65ea33e7596f355b4a107492af5fbe429784614d89565b612f71565b63178e01cf60e01b5f5260045ffd5b84631409d1b760e21b5f5260045260245ffd5b630845dc8960e31b5f5260045ffd5b60405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f207a65726f2061646472657373006044820152606490fd5b5061309833613f98565b15612e73565b346103e85760203660031901126103e85760206106f16004355f525f602052600160405f20015490565b346103e85760203660031901126103e8576001600160a01b036130e9613601565b165f526068602052602060405f2054604051908152f35b346103e85761310e3661366d565b909161311c94939433613f98565b15806131b1575b6106755760ff609b5460081c16610d7257610eb961314d9260405194859388602086019889613b1c565b519020805f52609e60205260ff60405f2054161561319f57805f52609e60205260405f2060ff1981541690557fbc42d977c60745c9544af4d5bc56c88c6f21914f291dfd327af4eb04098e90085f80a3005b63836588c960e01b5f5260045260245ffd5b506131bb3361401f565b15613123565b346103e8575f3660031901126103e8576107de61083a613bcc565b346103e8575f3660031901126103e857602047604051908152f35b346103e857613205366135eb565b9061320f33613f98565b158061326b575b6106755760ff609b5460081c16610d7257613232828210613b55565b603261323e8284613ba1565b10156103e8575b81811061324e57005b5f818152609c60205260409020805460ff19169055600101613245565b506132753361401f565b15613216565b346103e85760203660031901126103e8576004356001600160401b0381116103e857366023820112156103e8578060040135906001600160401b0382116103e8573660248360051b830101116103e8576132d433613eec565b1580613588575b61067557609b5460ff8116610d635760ff1916600117609b81905560081c60ff16610d725781156113fe57602882116107e2573681900360c219015f5b83811015610c945760248160051b84010135828112156103e8578301606481016133446112e482613aee565b1561357f5760248201358015610d415760848301906001600160a01b0361336a83613aee565b161561066657604484013593845f52609c60205260ff60405f2054166130275761339383613aee565b9061339d85613aee565b604051926133aa84613719565b60018452602084018590526001600160a01b039081166040850152166060830152608082018690526133e46133de86613aee565b846145ae565b906133f1600154936146a0565b60208301519251909160a481013560421936839003018112156103e85701602401803593906001600160401b0385116103e8576020019260608502360384136103e85761343d95614735565b61345961344984613aee565b61345284613aee565b9083614aef565b8015613550576134699042613b02565b61347284613aee565b8161349561347f86613aee565b610eb960405193849260208401968c8a89613b1c565b51902093845f52609e60205260ff60405f20541661353d57916135338594926135016134fb7f0c9f9de35e5087cd15d9d8b1e477c3fe1500157465e3737550a4395936b5c49a9660019b9a995f52609e60205260405f208c60ff19825416179055613aee565b94613aee565b604080519485526001600160a01b03958616602086015294169383019390935260608201929092529081906080820190565b0390a35b01613318565b856352fcbb3b60e11b5f5260045260245ffd5b5090926001949361356c61356661357a95613aee565b91613aee565b9163ffffffff8a1693614c43565b613537565b6113de90613aee565b5061359233613f98565b156132db565b346103e85760203660031901126103e8576004359063ffffffff60e01b82168092036103e857602091637965db0b60e01b81149081156135da575b5015158152f35b6301ffc9a760e01b149050836135d3565b60409060031901126103e8576004359060243590565b600435906001600160a01b03821682036103e857565b604435906001600160a01b03821682036103e857565b606435906001600160a01b03821682036103e857565b602435906001600160a01b03821682036103e857565b35906001600160a01b03821682036103e857565b60a09060031901126103e85760043590602435906044356001600160a01b03811681036103e857906064356001600160a01b03811681036103e8579060843590565b9181601f840112156103e8578235916001600160401b0383116103e857602080850194606085020101116103e857565b90600319820160a081126103e8576080136103e857600491608435906001600160401b0382116103e857613715916004016136af565b9091565b60a081019081106001600160401b0382111761217e57604052565b608081019081106001600160401b0382111761217e57604052565b604081019081106001600160401b0382111761217e57604052565b60c081019081106001600160401b0382111761217e57604052565b606081019081106001600160401b0382111761217e57604052565b90601f801991011681019081106001600160401b0382111761217e57604052565b6001600160401b03811161217e57601f01601f191660200190565b81601f820112156103e8578035906137f3826137c1565b9261380160405194856137a0565b828452602083830101116103e857815f926020809301838601378301015290565b6001600160401b03811161217e5760051b60200190565b9080601f830112156103e857813561385081613822565b9261385e60405194856137a0565b81845260208085019260051b8201019283116103e857602001905b8282106138865750505090565b6020809161389384613659565b815201910190613879565b359060ff821682036103e857565b81601f820112156103e8578035906138c382613822565b926138d160405194856137a0565b828452602060c08186019402830101918183116103e857602001925b8284106138fb575050505090565b60c0848303126103e857602060c0916040516139168161376a565b61391f87613659565b815282870135838201526139356040880161389e565b60408201526139466060880161389e565b60608201526139576080880161389e565b608082015261396860a0880161389e565b60a08201528152019301926138ed565b9181601f840112156103e8578235916001600160401b0383116103e8576020808501948460071b0101116103e857565b9181601f840112156103e8578235916001600160401b0383116103e857602083818601950101116103e857565b60e06003198201126103e857600435916024356001600160a01b03811681036103e857916044356001600160a01b03811681036103e8579160606064359260831901126103e857608490565b60206003198201126103e857600435906001600160401b0382116103e857806023830112156103e8578160040135613a5881613822565b92613a6660405194856137a0565b8184526024602085019260051b8201019283116103e857602401905b828210613a8f5750505090565b8135815260209182019101613a82565b60206040818301928281528451809452019201905f5b818110613ac25750505090565b8251845260209384019390920191600101613ab5565b6024356001600160a01b03811681036103e85790565b356001600160a01b03811681036103e85790565b9190820180921161187f57565b90600682101561044c5752565b60018152602081019190915260408101919091526001600160a01b0391821660608201529116608082015260a081019190915260c00190565b15613b5c57565b60405162461bcd60e51b815260206004820152601b60248201527f5374617274206d757374206265206c657373207468616e20656e6400000000006044820152606490fd5b9190820391821161187f57565b60405190613bbb82613785565b5f6040838281528260208201520152565b613bd4613bae565b506069546001811615613bed57613bea90614d22565b90565b50604051613bfa81613785565b5f81525f60208201525f604082015290565b3d15613c36573d90613c1d826137c1565b91613c2b60405193846137a0565b82523d5f602084013e565b606090565b5f19811461187f5760010190565b80518210156110735760209160051b010190565b91908110156110735760071b0190565b3560ff811681036103e85790565b60405190613c888261376a565b5f60a0838281528260208201528260408201528260608201528260808201520152565b919293909460018060a01b03841690815f52603360205260ff60405f20541615613ed9578315610d41576001600160a01b03861692831561066657875f52609c60205260ff60405f205416613ec657604051602081019060843560ff811681036103e85760ff16825260a435604082015260c435606082015260608152613d336080826137a0565b51902093845f52609a60205260ff60405f205416610d1f57613d5c610c5c60848b8a8c8b6142ce565b15610d1057613daf9360405191613d7283613719565b6001835287602084015260408301526060820152886080820152613d9687876145ae565b613da2600154926146a0565b6020820151915192614735565b81613db984614d6d565b10613e97575f52609a60205260405f20600160ff19825416179055613ddf838383614aef565b8015613e8a57613def9042613b02565b6040516020810190613e0981610eb98589898c8a89613b1c565b51902093845f52609e60205260ff60405f20541661353d575f858152609e6020908152604091829020805460ff1916600117905581519485526001600160a01b039586169085015293169282019290925260608101919091527f0c9f9de35e5087cd15d9d8b1e477c3fe1500157465e3737550a4395936b5c49a90608090a3565b5092613e9593614b58565b565b5081610cfe610ccf7f2aa807c191208ec364a49ebc0018975f798050694e1695937b26706e4f0a885894614d6d565b87631409d1b760e21b5f5260045260245ffd5b5063094403b760e41b5f5260045260245ffd5b613f157fdd7d143944313e9468ffd66e8786351a1538ac1bd6bac96fbbaac11d42f60a516151aa565b90602082015115613f5a576001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b600190565b6001600160a01b03165f9081527f73d1b004bb899057e159bfa3bc586cb8ff49a8aafbfaf45c482f2c16f8bdf303602052604090205460ff16919050565b613fa15f6151aa565b90602082015115613fe1576001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b6001600160a01b03165f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16919050565b6140355f5160206156db5f395f51905f526151aa565b90602082015115614075576001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b6001600160a01b03165f9081527f4272c0e29c36ddb672dd25a254bda59e4d959f5c13bec396162edadccdbf7935602052604090205460ff16919050565b6140dc7fb7733e58c7517dbd9e44ca467a39c0556186bc3a7271956f0a22baafb5dc93c36151aa565b9060208201511561411c576001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b6001600160a01b03165f9081527fe2b47d1c3d5450b2075d143367420d4b6d23efa60d1222723e42a52350332748602052604090205460ff16919050565b6141705f5160206156fb5f395f51905f526151aa565b906020820151156141b0576001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b6001600160a01b03165f9081527fee57cd81e84075558e8fcc182a1f4393f91fc97f963a136e66b7f949a62f319f602052604090205460ff16919050565b906141f8826151aa565b9160208301511561423957506001600160a01b03165f90815260676020526040902054905190600882101561044c57600160ff8093161b1616613f55575f90565b5f908152602081815260408083206001600160a01b039094168352929052205460ff16919050565b63ffffffff1663ffffffff811461187f5760010190565b5f9291600681101561044c5780156142b2576001146142945750565b6001600160a01b03165f908152609960205260409020600101549150565b506001600160a01b03165f908152609960205260409020549150565b9092610c5492613bea9594604051936142e685613719565b6001855260208501526001600160a01b03908116604085015216606083015260808201526146a0565b9061431982613822565b61432660405191826137a0565b8281528092614337601f1991613822565b0190602036910137565b614349613c7b565b506001600160a01b03165f90815260686020526040902054600181161561437357613bea9061510b565b506040516143808161376a565b5f81525f60208201525f60408201525f60608201525f60808201525f60a082015290565b6143ac613bae565b50600681101561044c576004036143d357606a545b6001811615613bed57613bea90614d22565b606b546143c1565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610617575f91614415575090565b90506020813d60201161443c575b81614430602093836137a0565b810103126103e8575190565b3d9150614423565b91908110156110735760061b0190565b9060405161446181613734565b5f81525f60208201525f60408201525f60608201525061448081614d6d565b91801561458857670de0b6b3a76400008302838104670de0b6b3a7640000148415171561187f57819004908310156144df5750604051916144c083613734565b5f808452602084015260408301526001600160a01b0316606082015290565b6801158e460913d00000811061451e5750604051916144fd83613734565b600383526014602084015260408301526001600160a01b0316606082015290565b674563918244f400001161455a576040519161453983613734565b600283526005602084015260408301526001600160a01b0316606082015290565b6040519161456783613734565b600183526002602084015260408301526001600160a01b0316606082015290565b50604051916144fd83613734565b604051906145a38261374f565b5f6020838281520152565b906145b7614596565b506001600160a01b03165f81815260686020526040902054906001821615614638575060ff6145e6819261510b565b928351111592835f1461462b5781604082015116935b156146215760800151165b81604051936146158561374f565b16835216602082015290565b6060015116614607565b81602082015116936145fc565b6304ca686f60e01b5f5260045260245ffd5b7fe35cf8b8df51aa49768d4a7859037953b72f9188d7c60825dfd506ac7c8d430c81525f602082015260408101919091526001600160a01b0391821660608201529116608082015260a081019190915260c00190565b805190600682101561044c5760208101519060018060a01b0360408201511690608060018060a01b03606083015116910151916040519361470c60208601967f30df4329ee18debd99f937f6d70edc594d2957d5c194e77ab788df398c193af288526040870190613b0f565b6060850152608084015260a083015260c082015260c0815261472f60e0826137a0565b51902090565b919295936147438785613b02565b1561487d575f96959487946147578761430f565b975f995b888b10156148345761477360608c02860187896153e5565b6001600160a01b0316905f5b8c81106147ff57505f8281526067602052604090205460028116156147c657509a6001916147bb826147b58e9f9e9c9d9e613c3b565b9b613c49565b52019998979661475b565b909890600116156147ec579a6001916147bb826147e68e9f9e9d9e613c3b565b9c613c49565b8b63b20230bd60e01b5f5260045260245ffd5b826001600160a01b03614812838f613c49565b5116146148215760010161477f565b8c63b20230bd60e01b5f5260045260245ffd5b9698509450955096505050808210614868575050808210614853575050565b63ec65672960e01b5f5260045260245260445ffd5b63153482d760e01b5f5260045260245260445ffd5b50505050915050565b919295936148948785613b02565b1561487d575f96959487946148a88761430f565b975f995b888b1015614834576148c460608c02860187896153e5565b6001600160a01b0316905f5b8c811061493157505f82815260676020526040902054600881161561491157509a600191614906826147b58e9f9e9c9d9e613c3b565b5201999897966148ac565b909890600416156147ec579a600191614906826147e68e9f9e9d9e613c3b565b826001600160a01b03614944838f613c49565b511614614821576001016148d0565b919295936149618785613b02565b1561487d575f96959487946149758761430f565b975f995b888b10156148345761499160608c02860187896153e5565b6001600160a01b0316905f5b8c81106149fe57505f8281526067602052604090205460808116156149de57509a6001916149d3826147b58e9f9e9c9d9e613c3b565b520199989796614979565b909890604016156147ec579a6001916149d3826147e68e9f9e9d9e613c3b565b826001600160a01b03614a11838f613c49565b5116146148215760010161499d565b91929593614a2e8785613b02565b1561487d575f9695948794614a428761430f565b975f995b888b101561483457614a5e60608c02860187896153e5565b6001600160a01b0316905f5b8c8110614acd5750815f52606760205260405f20546020811615155f14614aad57509a600191614aa2826147b58e9f9e9c9d9e613c3b565b520199989796614a46565b909890601016156147ec579a600191614aa2826147e68e9f9e9d9e613c3b565b826001600160a01b03614ae0838f613c49565b51161461482157600101614a6a565b6001600160a01b039092165f90815260a060205260409020600181015460ff16614b51575060018060a01b03165f52609f60205260405f209060ff600383015416614b3c57505061038490565b815411614b4a576002015490565b6001015490565b9150505490565b9091825f52609c60205260405f20600160ff19825416179055335f526099602052600160405f2001614b8a8154613c3b565b90556001600160a01b031680614c1f57814710611870576001600160a01b0384165f80808086855af1614bbb613c0c565b5015614c055750915f5160206156bb5f395f51905f52939160c0935b604080513381526001600160a01b03909516602086015284015260608301526080820152600160a0820152a1565b633ddff61360e21b5f52306004526024525f60445260645ffd5b918183614c3e86945f5160206156bb5f395f51905f529760c097614d89565b614bd7565b9091939293825f52609c60205260405f20600160ff19825416179055335f526099602052600160405f2001614c788154613c3b565b90556001600160a01b031680614cf857814710611870576001600160a01b0385165f80808086855af1614ca9613c0c565b5015614c055750925f5160206156bb5f395f51905f52949263ffffffff9260c0955b604080513381526001600160a01b039097166020880152860152606085015260808401521660a0820152a1565b9284928285614d1d63ffffffff955f5160206156bb5f395f51905f529960c099614d89565b614ccb565b614d2a613bae565b506001811615614d5e5760ff60405191614d4383613785565b818160081c16835260101c1660208201526001604082015290565b6306b7c75960e31b5f5260045ffd5b6001600160a01b038116614d8057504790565b613bea906143db565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152613e9591614dc46064836137a0565b6154f9565b614dd3815f6155e4565b90614ddd5f6151aa565b90602082015115614e4e576001600160a01b03165f8181526067602052604090205490919060ff16614e3b575190600882101561044c575f52606760205260ff8060018160405f2094161b1681835416171660ff1982541617905590565b5063f893a86f60e01b5f5260045260245ffd5b505090565b614e6a815f5160206156fb5f395f51905f526155e4565b90614ddd5f5160206156fb5f395f51905f526151aa565b614e98815f5160206156db5f395f51905f526155e4565b90614ddd5f5160206156db5f395f51905f526151aa565b90614ddd614ebd82846155e4565b926151aa565b60ff5f51602061575b5f395f51905f525460401c1615614edf57565b631afcd79f60e31b5f5260045ffd5b90614efc614ebd8284615653565b90602082015115614e4e576001600160a01b03165f8181526067602052604090205490919060ff1615614e4e575190600882101561044c575f52606760205260ff808060018160405f2095161b1619835416161660ff1982541617905590565b6080810160ff8151169060a083019160ff83511610614d5e576040830160ff815116606085019060ff82511610614d5e577fdc6ddbf1e030d2d29f974619e12442d5506a4bdfbf9fc60c74d37e0612b1bdec9360c09360ff80808060208b019a60018c5160a01b64ff000000008a5160201b161763ff0000008b5160181b161762ff0000895160101b161761ff00885160081b16171760018060a01b038251165f52606860205260405f205560018060a01b039051169a51975116955116925116925116926040519460018652602086015260408501526060840152608083015260a0820152a2565b909160016040519161505683613785565b62ff000061ff0060ff87169687865284604060ff861697886020820152015260081b169160101b161717600683101561044c57600383036150c357905f51602061571b5f395f51905f5293606093926069555b6150b66040518094613b0f565b60208301526040820152a1565b600583036150e757905f51602061571b5f395f51905f529360609392606b556150a9565b91906004820361299b575f51602061571b5f395f51905f5293606093606a556150a9565b615113613c7b565b506001811615614d5e5760ff6040519161512c8361376a565b8060a01c8352818160181c166020840152818160201c166040840152818160081c16606084015260101c166080820152600160a082015290565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152613e9591614dc46084836137a0565b6040516151b68161374f565b5f8082526020909101527fede9dcdb0ce99dc7cec9c7be9246ad08b37853683ad91569c187b647ddf5e21c810361520157506040516151f48161374f565b5f81526001602082015290565b7ff7401a2aa2d57dbee8bd296c5ac47eac2db8a2db2ff59d50c0534dc8be92dc6e810361524357506040516152358161374f565b600181526001602082015290565b7f4d7d81d86b902e627e6f0ca462e1191bd8af9cb4b8de2660c10b6349acb6ff9b810361528557506040516152778161374f565b600281526001602082015290565b7f20eabc094169e10bc6be263d742d992b10fb206c3c0411e1cbabdd3cf479222981036152c757506040516152b98161374f565b600381526001602082015290565b7fbbfb55d933c2bfa638763473275b1d84c4418e58d26cf9d2cd5758237756d9f0810361530957506040516152fb8161374f565b600481526001602082015290565b7f3261beaeb016c41750eb5ecd6c92c85305d1a0aecaaaa6e0f4cf499f7ae258fb810361534b575060405161533d8161374f565b600581526001602082015290565b7fd64fcb6a6f590e3ec3e331a5d9c60e0ca7468054939fe8e8dfe25f11ad1c1e7a810361538d575060405161537f8161374f565b600681526001602082015290565b7faf82374944a6f0200e0a96e99d9d9aa4925409c95c28b14a1d426baddd614aa8146153cb576040516153bf8161374f565b5f81525f602082015290565b6040516153d78161374f565b600781526001602082015290565b60209260406080925f948251908782019261190160f01b845260228301526042820152604281526154176062826137a0565b5190209160ff61542682613c6d565b8351948552168684015285810135828401520135606082015282805260015afa15610617575f5190565b5f5b81518110156154f5576001906001600160a01b036154708285613c49565b51165f52603360205260ff60405f2054161561548d575b01615452565b818060a01b0361549d8285613c49565b51165f52603360205260405f208260ff198254161790557f784c8f4dbf0ffedd6e72c76501c545a70f8b203b30a26ce542bf92ba87c248a46020838060a01b036154e78487613c49565b5116604051908152a1615487565b5050565b905f602091828151910182855af115610617575f513d61554857506001600160a01b0381163b155b6155285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415615521565b9061555b826151aa565b906020820151156155b2576001600160a01b03165f8181526067602052604090205491519091600882101561044c57600160ff8093161b16161561559d575050565b63e2517d3f60e01b5f5260045260245260445ffd5b90506155be81836141ee565b156155c7575050565b63e2517d3f60e01b5f5260018060a01b031660045260245260445ffd5b6155ee82826141ee565b61564d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b61565d82826141ee565b1561564d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a460019056fefc4d59a46f6143e0496645b06688cceb577d2d0439ad39ac0f1eaf3143a3a48e9d98d3d08f0062b192694645e127c98e5f96f3bbec331d061acaac3ace2327f997667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929edb00a5a19c16f441c369a47bcf9dff05b73e88628d23e9cf3a5b159fd0d12c86b32cee72b480eef6a5aeccadee07046ade1c28fec1e418949908f7ac8d7d228f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202d0187260b7dee383b335f2a924abb345e5e4d3ecb55a4bcd94327a62dd19a1064736f6c634300081c0033";
1570
3059
  const isSuperArgs = (xs) => xs.length > 1;
1571
3060
  class Escrow__factory extends ethers_1.ContractFactory {
1572
3061
  constructor(...args) {