@wireio/stake 0.2.5 → 0.3.0

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 (97) hide show
  1. package/lib/stake.browser.js +2461 -2074
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +29 -55
  4. package/lib/stake.js +2615 -2211
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +2461 -2074
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  10. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.json +807 -0
  11. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +1 -1
  12. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +184 -346
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +1 -1
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +1 -1
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +1 -1
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +1 -1
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.json +36 -0
  22. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  23. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  24. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +1 -1
  25. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +226 -0
  26. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +1 -1
  27. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +59 -0
  28. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +1 -1
  29. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +14 -12
  30. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +1 -1
  31. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  32. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  33. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  34. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  35. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20Pausable.sol/RewardsERC20Pausable.json → RewardsERC20.sol/RewardsERC20Upgradeable.json} +140 -78
  36. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  37. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20.sol/RewardsERC20.json → RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json} +218 -30
  38. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +1 -1
  39. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +2 -2
  40. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +1 -1
  41. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +2 -2
  42. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +4 -0
  43. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +10 -0
  44. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +4 -0
  45. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +10 -0
  46. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +1 -1
  47. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +121 -55
  48. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +1 -1
  49. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +836 -273
  50. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +1 -1
  51. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +150 -168
  52. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +1 -1
  53. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +301 -186
  54. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +1 -1
  55. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +814 -206
  56. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +1 -1
  57. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +244 -198
  58. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +1 -1
  59. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  60. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +1 -1
  61. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +165 -152
  62. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +1 -1
  63. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +167 -282
  64. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +1 -1
  65. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +1 -1
  66. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +2 -54
  67. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +1 -1
  68. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.json +26 -8
  69. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +1 -1
  70. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.json +2 -2
  71. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  72. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +1650 -0
  73. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +1 -1
  74. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.json +2 -22
  75. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  76. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  77. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +1 -1
  78. package/src/networks/ethereum/clients/deposit.client.ts +11 -7
  79. package/src/networks/ethereum/clients/liq.client.ts +47 -0
  80. package/src/networks/ethereum/clients/pretoken.client.ts +47 -50
  81. package/src/networks/ethereum/contract.ts +24 -51
  82. package/src/networks/ethereum/ethereum.ts +29 -52
  83. package/src/networks/ethereum/types.ts +7 -6
  84. package/src/networks/ethereum/utils.ts +3 -9
  85. package/src/networks/solana/clients/token.client.ts +0 -1
  86. package/src/networks/solana/solana.ts +44 -146
  87. package/src/networks/solana/types.ts +6 -2
  88. package/src/networks/solana/utils.ts +4 -6
  89. package/src/types.ts +6 -34
  90. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +0 -4
  91. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +0 -4
  92. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +0 -4
  93. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +0 -10
  94. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +0 -4
  95. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +0 -10
  96. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.dbg.json +0 -4
  97. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.json +0 -1650
@@ -0,0 +1,1289 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LiqEthAuthority",
4
+ "sourceName": "contracts/liqEth/LiqEthAuthority.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes32",
10
+ "name": "operationId",
11
+ "type": "bytes32"
12
+ }
13
+ ],
14
+ "name": "AccessManagerAlreadyScheduled",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "AccessManagerBadConfirmation",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "bytes32",
26
+ "name": "operationId",
27
+ "type": "bytes32"
28
+ }
29
+ ],
30
+ "name": "AccessManagerExpired",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "initialAdmin",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagerInvalidInitialAdmin",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "uint64",
48
+ "name": "roleId",
49
+ "type": "uint64"
50
+ }
51
+ ],
52
+ "name": "AccessManagerLockedRole",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "bytes32",
59
+ "name": "operationId",
60
+ "type": "bytes32"
61
+ }
62
+ ],
63
+ "name": "AccessManagerNotReady",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "bytes32",
70
+ "name": "operationId",
71
+ "type": "bytes32"
72
+ }
73
+ ],
74
+ "name": "AccessManagerNotScheduled",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [
79
+ {
80
+ "internalType": "address",
81
+ "name": "msgsender",
82
+ "type": "address"
83
+ },
84
+ {
85
+ "internalType": "uint64",
86
+ "name": "roleId",
87
+ "type": "uint64"
88
+ }
89
+ ],
90
+ "name": "AccessManagerUnauthorizedAccount",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "address",
97
+ "name": "caller",
98
+ "type": "address"
99
+ },
100
+ {
101
+ "internalType": "address",
102
+ "name": "target",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "internalType": "bytes4",
107
+ "name": "selector",
108
+ "type": "bytes4"
109
+ }
110
+ ],
111
+ "name": "AccessManagerUnauthorizedCall",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "msgsender",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "internalType": "address",
123
+ "name": "caller",
124
+ "type": "address"
125
+ },
126
+ {
127
+ "internalType": "address",
128
+ "name": "target",
129
+ "type": "address"
130
+ },
131
+ {
132
+ "internalType": "bytes4",
133
+ "name": "selector",
134
+ "type": "bytes4"
135
+ }
136
+ ],
137
+ "name": "AccessManagerUnauthorizedCancel",
138
+ "type": "error"
139
+ },
140
+ {
141
+ "inputs": [
142
+ {
143
+ "internalType": "address",
144
+ "name": "target",
145
+ "type": "address"
146
+ }
147
+ ],
148
+ "name": "AccessManagerUnauthorizedConsume",
149
+ "type": "error"
150
+ },
151
+ {
152
+ "inputs": [
153
+ {
154
+ "internalType": "address",
155
+ "name": "target",
156
+ "type": "address"
157
+ }
158
+ ],
159
+ "name": "AddressEmptyCode",
160
+ "type": "error"
161
+ },
162
+ {
163
+ "inputs": [
164
+ {
165
+ "internalType": "address",
166
+ "name": "implementation",
167
+ "type": "address"
168
+ }
169
+ ],
170
+ "name": "ERC1967InvalidImplementation",
171
+ "type": "error"
172
+ },
173
+ {
174
+ "inputs": [],
175
+ "name": "ERC1967NonPayable",
176
+ "type": "error"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "FailedCall",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "inputs": [
185
+ {
186
+ "internalType": "uint256",
187
+ "name": "balance",
188
+ "type": "uint256"
189
+ },
190
+ {
191
+ "internalType": "uint256",
192
+ "name": "needed",
193
+ "type": "uint256"
194
+ }
195
+ ],
196
+ "name": "InsufficientBalance",
197
+ "type": "error"
198
+ },
199
+ {
200
+ "inputs": [],
201
+ "name": "InvalidInitialization",
202
+ "type": "error"
203
+ },
204
+ {
205
+ "inputs": [],
206
+ "name": "NotInitializing",
207
+ "type": "error"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "uint8",
213
+ "name": "bits",
214
+ "type": "uint8"
215
+ },
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "value",
219
+ "type": "uint256"
220
+ }
221
+ ],
222
+ "name": "SafeCastOverflowedUintDowncast",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "UUPSUnauthorizedCallContext",
228
+ "type": "error"
229
+ },
230
+ {
231
+ "inputs": [
232
+ {
233
+ "internalType": "bytes32",
234
+ "name": "slot",
235
+ "type": "bytes32"
236
+ }
237
+ ],
238
+ "name": "UUPSUnsupportedProxiableUUID",
239
+ "type": "error"
240
+ },
241
+ {
242
+ "anonymous": false,
243
+ "inputs": [
244
+ {
245
+ "indexed": false,
246
+ "internalType": "uint64",
247
+ "name": "version",
248
+ "type": "uint64"
249
+ }
250
+ ],
251
+ "name": "Initialized",
252
+ "type": "event"
253
+ },
254
+ {
255
+ "anonymous": false,
256
+ "inputs": [
257
+ {
258
+ "indexed": true,
259
+ "internalType": "bytes32",
260
+ "name": "operationId",
261
+ "type": "bytes32"
262
+ },
263
+ {
264
+ "indexed": true,
265
+ "internalType": "uint32",
266
+ "name": "nonce",
267
+ "type": "uint32"
268
+ }
269
+ ],
270
+ "name": "OperationCanceled",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": true,
278
+ "internalType": "bytes32",
279
+ "name": "operationId",
280
+ "type": "bytes32"
281
+ },
282
+ {
283
+ "indexed": true,
284
+ "internalType": "uint32",
285
+ "name": "nonce",
286
+ "type": "uint32"
287
+ }
288
+ ],
289
+ "name": "OperationExecuted",
290
+ "type": "event"
291
+ },
292
+ {
293
+ "anonymous": false,
294
+ "inputs": [
295
+ {
296
+ "indexed": true,
297
+ "internalType": "bytes32",
298
+ "name": "operationId",
299
+ "type": "bytes32"
300
+ },
301
+ {
302
+ "indexed": true,
303
+ "internalType": "uint32",
304
+ "name": "nonce",
305
+ "type": "uint32"
306
+ },
307
+ {
308
+ "indexed": false,
309
+ "internalType": "uint48",
310
+ "name": "schedule",
311
+ "type": "uint48"
312
+ },
313
+ {
314
+ "indexed": false,
315
+ "internalType": "address",
316
+ "name": "caller",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "address",
322
+ "name": "target",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "bytes",
328
+ "name": "data",
329
+ "type": "bytes"
330
+ }
331
+ ],
332
+ "name": "OperationScheduled",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": true,
340
+ "internalType": "uint64",
341
+ "name": "roleId",
342
+ "type": "uint64"
343
+ },
344
+ {
345
+ "indexed": true,
346
+ "internalType": "uint64",
347
+ "name": "admin",
348
+ "type": "uint64"
349
+ }
350
+ ],
351
+ "name": "RoleAdminChanged",
352
+ "type": "event"
353
+ },
354
+ {
355
+ "anonymous": false,
356
+ "inputs": [
357
+ {
358
+ "indexed": true,
359
+ "internalType": "uint64",
360
+ "name": "roleId",
361
+ "type": "uint64"
362
+ },
363
+ {
364
+ "indexed": false,
365
+ "internalType": "uint32",
366
+ "name": "delay",
367
+ "type": "uint32"
368
+ },
369
+ {
370
+ "indexed": false,
371
+ "internalType": "uint48",
372
+ "name": "since",
373
+ "type": "uint48"
374
+ }
375
+ ],
376
+ "name": "RoleGrantDelayChanged",
377
+ "type": "event"
378
+ },
379
+ {
380
+ "anonymous": false,
381
+ "inputs": [
382
+ {
383
+ "indexed": true,
384
+ "internalType": "uint64",
385
+ "name": "roleId",
386
+ "type": "uint64"
387
+ },
388
+ {
389
+ "indexed": true,
390
+ "internalType": "address",
391
+ "name": "account",
392
+ "type": "address"
393
+ },
394
+ {
395
+ "indexed": false,
396
+ "internalType": "uint32",
397
+ "name": "delay",
398
+ "type": "uint32"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "uint48",
403
+ "name": "since",
404
+ "type": "uint48"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "bool",
409
+ "name": "newMember",
410
+ "type": "bool"
411
+ }
412
+ ],
413
+ "name": "RoleGranted",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": true,
421
+ "internalType": "uint64",
422
+ "name": "roleId",
423
+ "type": "uint64"
424
+ },
425
+ {
426
+ "indexed": true,
427
+ "internalType": "uint64",
428
+ "name": "guardian",
429
+ "type": "uint64"
430
+ }
431
+ ],
432
+ "name": "RoleGuardianChanged",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": true,
440
+ "internalType": "uint64",
441
+ "name": "roleId",
442
+ "type": "uint64"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "string",
447
+ "name": "label",
448
+ "type": "string"
449
+ }
450
+ ],
451
+ "name": "RoleLabel",
452
+ "type": "event"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": true,
459
+ "internalType": "uint64",
460
+ "name": "roleId",
461
+ "type": "uint64"
462
+ },
463
+ {
464
+ "indexed": true,
465
+ "internalType": "address",
466
+ "name": "account",
467
+ "type": "address"
468
+ }
469
+ ],
470
+ "name": "RoleRevoked",
471
+ "type": "event"
472
+ },
473
+ {
474
+ "anonymous": false,
475
+ "inputs": [
476
+ {
477
+ "indexed": true,
478
+ "internalType": "address",
479
+ "name": "target",
480
+ "type": "address"
481
+ },
482
+ {
483
+ "indexed": false,
484
+ "internalType": "uint32",
485
+ "name": "delay",
486
+ "type": "uint32"
487
+ },
488
+ {
489
+ "indexed": false,
490
+ "internalType": "uint48",
491
+ "name": "since",
492
+ "type": "uint48"
493
+ }
494
+ ],
495
+ "name": "TargetAdminDelayUpdated",
496
+ "type": "event"
497
+ },
498
+ {
499
+ "anonymous": false,
500
+ "inputs": [
501
+ {
502
+ "indexed": true,
503
+ "internalType": "address",
504
+ "name": "target",
505
+ "type": "address"
506
+ },
507
+ {
508
+ "indexed": false,
509
+ "internalType": "bool",
510
+ "name": "closed",
511
+ "type": "bool"
512
+ }
513
+ ],
514
+ "name": "TargetClosed",
515
+ "type": "event"
516
+ },
517
+ {
518
+ "anonymous": false,
519
+ "inputs": [
520
+ {
521
+ "indexed": true,
522
+ "internalType": "address",
523
+ "name": "target",
524
+ "type": "address"
525
+ },
526
+ {
527
+ "indexed": false,
528
+ "internalType": "bytes4",
529
+ "name": "selector",
530
+ "type": "bytes4"
531
+ },
532
+ {
533
+ "indexed": true,
534
+ "internalType": "uint64",
535
+ "name": "roleId",
536
+ "type": "uint64"
537
+ }
538
+ ],
539
+ "name": "TargetFunctionRoleUpdated",
540
+ "type": "event"
541
+ },
542
+ {
543
+ "anonymous": false,
544
+ "inputs": [
545
+ {
546
+ "indexed": true,
547
+ "internalType": "address",
548
+ "name": "implementation",
549
+ "type": "address"
550
+ }
551
+ ],
552
+ "name": "Upgraded",
553
+ "type": "event"
554
+ },
555
+ {
556
+ "inputs": [],
557
+ "name": "ADMIN_ROLE",
558
+ "outputs": [
559
+ {
560
+ "internalType": "uint64",
561
+ "name": "",
562
+ "type": "uint64"
563
+ }
564
+ ],
565
+ "stateMutability": "view",
566
+ "type": "function"
567
+ },
568
+ {
569
+ "inputs": [],
570
+ "name": "PUBLIC_ROLE",
571
+ "outputs": [
572
+ {
573
+ "internalType": "uint64",
574
+ "name": "",
575
+ "type": "uint64"
576
+ }
577
+ ],
578
+ "stateMutability": "view",
579
+ "type": "function"
580
+ },
581
+ {
582
+ "inputs": [],
583
+ "name": "UPGRADE_INTERFACE_VERSION",
584
+ "outputs": [
585
+ {
586
+ "internalType": "string",
587
+ "name": "",
588
+ "type": "string"
589
+ }
590
+ ],
591
+ "stateMutability": "view",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "caller",
599
+ "type": "address"
600
+ },
601
+ {
602
+ "internalType": "address",
603
+ "name": "target",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "internalType": "bytes4",
608
+ "name": "selector",
609
+ "type": "bytes4"
610
+ }
611
+ ],
612
+ "name": "canCall",
613
+ "outputs": [
614
+ {
615
+ "internalType": "bool",
616
+ "name": "immediate",
617
+ "type": "bool"
618
+ },
619
+ {
620
+ "internalType": "uint32",
621
+ "name": "delay",
622
+ "type": "uint32"
623
+ }
624
+ ],
625
+ "stateMutability": "view",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "caller",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "address",
637
+ "name": "target",
638
+ "type": "address"
639
+ },
640
+ {
641
+ "internalType": "bytes",
642
+ "name": "data",
643
+ "type": "bytes"
644
+ }
645
+ ],
646
+ "name": "cancel",
647
+ "outputs": [
648
+ {
649
+ "internalType": "uint32",
650
+ "name": "",
651
+ "type": "uint32"
652
+ }
653
+ ],
654
+ "stateMutability": "nonpayable",
655
+ "type": "function"
656
+ },
657
+ {
658
+ "inputs": [
659
+ {
660
+ "internalType": "address",
661
+ "name": "caller",
662
+ "type": "address"
663
+ },
664
+ {
665
+ "internalType": "bytes",
666
+ "name": "data",
667
+ "type": "bytes"
668
+ }
669
+ ],
670
+ "name": "consumeScheduledOp",
671
+ "outputs": [],
672
+ "stateMutability": "nonpayable",
673
+ "type": "function"
674
+ },
675
+ {
676
+ "inputs": [
677
+ {
678
+ "internalType": "address",
679
+ "name": "target",
680
+ "type": "address"
681
+ },
682
+ {
683
+ "internalType": "bytes",
684
+ "name": "data",
685
+ "type": "bytes"
686
+ }
687
+ ],
688
+ "name": "execute",
689
+ "outputs": [
690
+ {
691
+ "internalType": "uint32",
692
+ "name": "",
693
+ "type": "uint32"
694
+ }
695
+ ],
696
+ "stateMutability": "payable",
697
+ "type": "function"
698
+ },
699
+ {
700
+ "inputs": [],
701
+ "name": "expiration",
702
+ "outputs": [
703
+ {
704
+ "internalType": "uint32",
705
+ "name": "",
706
+ "type": "uint32"
707
+ }
708
+ ],
709
+ "stateMutability": "view",
710
+ "type": "function"
711
+ },
712
+ {
713
+ "inputs": [
714
+ {
715
+ "internalType": "uint64",
716
+ "name": "roleId",
717
+ "type": "uint64"
718
+ },
719
+ {
720
+ "internalType": "address",
721
+ "name": "account",
722
+ "type": "address"
723
+ }
724
+ ],
725
+ "name": "getAccess",
726
+ "outputs": [
727
+ {
728
+ "internalType": "uint48",
729
+ "name": "since",
730
+ "type": "uint48"
731
+ },
732
+ {
733
+ "internalType": "uint32",
734
+ "name": "currentDelay",
735
+ "type": "uint32"
736
+ },
737
+ {
738
+ "internalType": "uint32",
739
+ "name": "pendingDelay",
740
+ "type": "uint32"
741
+ },
742
+ {
743
+ "internalType": "uint48",
744
+ "name": "effect",
745
+ "type": "uint48"
746
+ }
747
+ ],
748
+ "stateMutability": "view",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "bytes32",
755
+ "name": "id",
756
+ "type": "bytes32"
757
+ }
758
+ ],
759
+ "name": "getNonce",
760
+ "outputs": [
761
+ {
762
+ "internalType": "uint32",
763
+ "name": "",
764
+ "type": "uint32"
765
+ }
766
+ ],
767
+ "stateMutability": "view",
768
+ "type": "function"
769
+ },
770
+ {
771
+ "inputs": [
772
+ {
773
+ "internalType": "uint64",
774
+ "name": "roleId",
775
+ "type": "uint64"
776
+ }
777
+ ],
778
+ "name": "getRoleAdmin",
779
+ "outputs": [
780
+ {
781
+ "internalType": "uint64",
782
+ "name": "",
783
+ "type": "uint64"
784
+ }
785
+ ],
786
+ "stateMutability": "view",
787
+ "type": "function"
788
+ },
789
+ {
790
+ "inputs": [
791
+ {
792
+ "internalType": "uint64",
793
+ "name": "roleId",
794
+ "type": "uint64"
795
+ }
796
+ ],
797
+ "name": "getRoleGrantDelay",
798
+ "outputs": [
799
+ {
800
+ "internalType": "uint32",
801
+ "name": "",
802
+ "type": "uint32"
803
+ }
804
+ ],
805
+ "stateMutability": "view",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "uint64",
812
+ "name": "roleId",
813
+ "type": "uint64"
814
+ }
815
+ ],
816
+ "name": "getRoleGuardian",
817
+ "outputs": [
818
+ {
819
+ "internalType": "uint64",
820
+ "name": "",
821
+ "type": "uint64"
822
+ }
823
+ ],
824
+ "stateMutability": "view",
825
+ "type": "function"
826
+ },
827
+ {
828
+ "inputs": [
829
+ {
830
+ "internalType": "bytes32",
831
+ "name": "id",
832
+ "type": "bytes32"
833
+ }
834
+ ],
835
+ "name": "getSchedule",
836
+ "outputs": [
837
+ {
838
+ "internalType": "uint48",
839
+ "name": "",
840
+ "type": "uint48"
841
+ }
842
+ ],
843
+ "stateMutability": "view",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "address",
850
+ "name": "target",
851
+ "type": "address"
852
+ }
853
+ ],
854
+ "name": "getTargetAdminDelay",
855
+ "outputs": [
856
+ {
857
+ "internalType": "uint32",
858
+ "name": "",
859
+ "type": "uint32"
860
+ }
861
+ ],
862
+ "stateMutability": "view",
863
+ "type": "function"
864
+ },
865
+ {
866
+ "inputs": [
867
+ {
868
+ "internalType": "address",
869
+ "name": "target",
870
+ "type": "address"
871
+ },
872
+ {
873
+ "internalType": "bytes4",
874
+ "name": "selector",
875
+ "type": "bytes4"
876
+ }
877
+ ],
878
+ "name": "getTargetFunctionRole",
879
+ "outputs": [
880
+ {
881
+ "internalType": "uint64",
882
+ "name": "",
883
+ "type": "uint64"
884
+ }
885
+ ],
886
+ "stateMutability": "view",
887
+ "type": "function"
888
+ },
889
+ {
890
+ "inputs": [
891
+ {
892
+ "internalType": "uint64",
893
+ "name": "roleId",
894
+ "type": "uint64"
895
+ },
896
+ {
897
+ "internalType": "address",
898
+ "name": "account",
899
+ "type": "address"
900
+ },
901
+ {
902
+ "internalType": "uint32",
903
+ "name": "executionDelay",
904
+ "type": "uint32"
905
+ }
906
+ ],
907
+ "name": "grantRole",
908
+ "outputs": [],
909
+ "stateMutability": "nonpayable",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "inputs": [
914
+ {
915
+ "internalType": "uint64",
916
+ "name": "roleId",
917
+ "type": "uint64"
918
+ },
919
+ {
920
+ "internalType": "address",
921
+ "name": "account",
922
+ "type": "address"
923
+ }
924
+ ],
925
+ "name": "hasRole",
926
+ "outputs": [
927
+ {
928
+ "internalType": "bool",
929
+ "name": "isMember",
930
+ "type": "bool"
931
+ },
932
+ {
933
+ "internalType": "uint32",
934
+ "name": "executionDelay",
935
+ "type": "uint32"
936
+ }
937
+ ],
938
+ "stateMutability": "view",
939
+ "type": "function"
940
+ },
941
+ {
942
+ "inputs": [
943
+ {
944
+ "internalType": "address",
945
+ "name": "caller",
946
+ "type": "address"
947
+ },
948
+ {
949
+ "internalType": "address",
950
+ "name": "target",
951
+ "type": "address"
952
+ },
953
+ {
954
+ "internalType": "bytes",
955
+ "name": "data",
956
+ "type": "bytes"
957
+ }
958
+ ],
959
+ "name": "hashOperation",
960
+ "outputs": [
961
+ {
962
+ "internalType": "bytes32",
963
+ "name": "",
964
+ "type": "bytes32"
965
+ }
966
+ ],
967
+ "stateMutability": "view",
968
+ "type": "function"
969
+ },
970
+ {
971
+ "inputs": [
972
+ {
973
+ "internalType": "address",
974
+ "name": "initialAdmin",
975
+ "type": "address"
976
+ }
977
+ ],
978
+ "name": "initialize",
979
+ "outputs": [],
980
+ "stateMutability": "nonpayable",
981
+ "type": "function"
982
+ },
983
+ {
984
+ "inputs": [
985
+ {
986
+ "internalType": "address",
987
+ "name": "target",
988
+ "type": "address"
989
+ }
990
+ ],
991
+ "name": "isTargetClosed",
992
+ "outputs": [
993
+ {
994
+ "internalType": "bool",
995
+ "name": "",
996
+ "type": "bool"
997
+ }
998
+ ],
999
+ "stateMutability": "view",
1000
+ "type": "function"
1001
+ },
1002
+ {
1003
+ "inputs": [
1004
+ {
1005
+ "internalType": "uint64",
1006
+ "name": "roleId",
1007
+ "type": "uint64"
1008
+ },
1009
+ {
1010
+ "internalType": "string",
1011
+ "name": "label",
1012
+ "type": "string"
1013
+ }
1014
+ ],
1015
+ "name": "labelRole",
1016
+ "outputs": [],
1017
+ "stateMutability": "nonpayable",
1018
+ "type": "function"
1019
+ },
1020
+ {
1021
+ "inputs": [],
1022
+ "name": "minSetback",
1023
+ "outputs": [
1024
+ {
1025
+ "internalType": "uint32",
1026
+ "name": "",
1027
+ "type": "uint32"
1028
+ }
1029
+ ],
1030
+ "stateMutability": "view",
1031
+ "type": "function"
1032
+ },
1033
+ {
1034
+ "inputs": [
1035
+ {
1036
+ "internalType": "bytes[]",
1037
+ "name": "data",
1038
+ "type": "bytes[]"
1039
+ }
1040
+ ],
1041
+ "name": "multicall",
1042
+ "outputs": [
1043
+ {
1044
+ "internalType": "bytes[]",
1045
+ "name": "results",
1046
+ "type": "bytes[]"
1047
+ }
1048
+ ],
1049
+ "stateMutability": "nonpayable",
1050
+ "type": "function"
1051
+ },
1052
+ {
1053
+ "inputs": [],
1054
+ "name": "proxiableUUID",
1055
+ "outputs": [
1056
+ {
1057
+ "internalType": "bytes32",
1058
+ "name": "",
1059
+ "type": "bytes32"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view",
1063
+ "type": "function"
1064
+ },
1065
+ {
1066
+ "inputs": [
1067
+ {
1068
+ "internalType": "uint64",
1069
+ "name": "roleId",
1070
+ "type": "uint64"
1071
+ },
1072
+ {
1073
+ "internalType": "address",
1074
+ "name": "callerConfirmation",
1075
+ "type": "address"
1076
+ }
1077
+ ],
1078
+ "name": "renounceRole",
1079
+ "outputs": [],
1080
+ "stateMutability": "nonpayable",
1081
+ "type": "function"
1082
+ },
1083
+ {
1084
+ "inputs": [
1085
+ {
1086
+ "internalType": "uint64",
1087
+ "name": "roleId",
1088
+ "type": "uint64"
1089
+ },
1090
+ {
1091
+ "internalType": "address",
1092
+ "name": "account",
1093
+ "type": "address"
1094
+ }
1095
+ ],
1096
+ "name": "revokeRole",
1097
+ "outputs": [],
1098
+ "stateMutability": "nonpayable",
1099
+ "type": "function"
1100
+ },
1101
+ {
1102
+ "inputs": [
1103
+ {
1104
+ "internalType": "address",
1105
+ "name": "target",
1106
+ "type": "address"
1107
+ },
1108
+ {
1109
+ "internalType": "bytes",
1110
+ "name": "data",
1111
+ "type": "bytes"
1112
+ },
1113
+ {
1114
+ "internalType": "uint48",
1115
+ "name": "when",
1116
+ "type": "uint48"
1117
+ }
1118
+ ],
1119
+ "name": "schedule",
1120
+ "outputs": [
1121
+ {
1122
+ "internalType": "bytes32",
1123
+ "name": "operationId",
1124
+ "type": "bytes32"
1125
+ },
1126
+ {
1127
+ "internalType": "uint32",
1128
+ "name": "nonce",
1129
+ "type": "uint32"
1130
+ }
1131
+ ],
1132
+ "stateMutability": "nonpayable",
1133
+ "type": "function"
1134
+ },
1135
+ {
1136
+ "inputs": [
1137
+ {
1138
+ "internalType": "uint64",
1139
+ "name": "roleId",
1140
+ "type": "uint64"
1141
+ },
1142
+ {
1143
+ "internalType": "uint32",
1144
+ "name": "newDelay",
1145
+ "type": "uint32"
1146
+ }
1147
+ ],
1148
+ "name": "setGrantDelay",
1149
+ "outputs": [],
1150
+ "stateMutability": "nonpayable",
1151
+ "type": "function"
1152
+ },
1153
+ {
1154
+ "inputs": [
1155
+ {
1156
+ "internalType": "uint64",
1157
+ "name": "roleId",
1158
+ "type": "uint64"
1159
+ },
1160
+ {
1161
+ "internalType": "uint64",
1162
+ "name": "admin",
1163
+ "type": "uint64"
1164
+ }
1165
+ ],
1166
+ "name": "setRoleAdmin",
1167
+ "outputs": [],
1168
+ "stateMutability": "nonpayable",
1169
+ "type": "function"
1170
+ },
1171
+ {
1172
+ "inputs": [
1173
+ {
1174
+ "internalType": "uint64",
1175
+ "name": "roleId",
1176
+ "type": "uint64"
1177
+ },
1178
+ {
1179
+ "internalType": "uint64",
1180
+ "name": "guardian",
1181
+ "type": "uint64"
1182
+ }
1183
+ ],
1184
+ "name": "setRoleGuardian",
1185
+ "outputs": [],
1186
+ "stateMutability": "nonpayable",
1187
+ "type": "function"
1188
+ },
1189
+ {
1190
+ "inputs": [
1191
+ {
1192
+ "internalType": "address",
1193
+ "name": "target",
1194
+ "type": "address"
1195
+ },
1196
+ {
1197
+ "internalType": "uint32",
1198
+ "name": "newDelay",
1199
+ "type": "uint32"
1200
+ }
1201
+ ],
1202
+ "name": "setTargetAdminDelay",
1203
+ "outputs": [],
1204
+ "stateMutability": "nonpayable",
1205
+ "type": "function"
1206
+ },
1207
+ {
1208
+ "inputs": [
1209
+ {
1210
+ "internalType": "address",
1211
+ "name": "target",
1212
+ "type": "address"
1213
+ },
1214
+ {
1215
+ "internalType": "bool",
1216
+ "name": "closed",
1217
+ "type": "bool"
1218
+ }
1219
+ ],
1220
+ "name": "setTargetClosed",
1221
+ "outputs": [],
1222
+ "stateMutability": "nonpayable",
1223
+ "type": "function"
1224
+ },
1225
+ {
1226
+ "inputs": [
1227
+ {
1228
+ "internalType": "address",
1229
+ "name": "target",
1230
+ "type": "address"
1231
+ },
1232
+ {
1233
+ "internalType": "bytes4[]",
1234
+ "name": "selectors",
1235
+ "type": "bytes4[]"
1236
+ },
1237
+ {
1238
+ "internalType": "uint64",
1239
+ "name": "roleId",
1240
+ "type": "uint64"
1241
+ }
1242
+ ],
1243
+ "name": "setTargetFunctionRole",
1244
+ "outputs": [],
1245
+ "stateMutability": "nonpayable",
1246
+ "type": "function"
1247
+ },
1248
+ {
1249
+ "inputs": [
1250
+ {
1251
+ "internalType": "address",
1252
+ "name": "target",
1253
+ "type": "address"
1254
+ },
1255
+ {
1256
+ "internalType": "address",
1257
+ "name": "newAuthority",
1258
+ "type": "address"
1259
+ }
1260
+ ],
1261
+ "name": "updateAuthority",
1262
+ "outputs": [],
1263
+ "stateMutability": "nonpayable",
1264
+ "type": "function"
1265
+ },
1266
+ {
1267
+ "inputs": [
1268
+ {
1269
+ "internalType": "address",
1270
+ "name": "newImplementation",
1271
+ "type": "address"
1272
+ },
1273
+ {
1274
+ "internalType": "bytes",
1275
+ "name": "data",
1276
+ "type": "bytes"
1277
+ }
1278
+ ],
1279
+ "name": "upgradeToAndCall",
1280
+ "outputs": [],
1281
+ "stateMutability": "payable",
1282
+ "type": "function"
1283
+ }
1284
+ ],
1285
+ "bytecode": "0x60a0806040523460295730608052612aff908161002f82396080518181816110c601526129620152f35b600080fdfe6040608081526004908136101561001557600080fd5b600090813560e01c806308d6122d14611a525780630b0a93ba14611a2557806312be8727146119e9578063167bd3951461195257806318ff183c146118b35780631cff79cd146117a157806325c471a0146115785780633078f1141461151f57806330cae187146114715780633adc277a1461144a5780633ca7c02a146114295780634136a33c146113eb5780634665096d146113ce5780634c1da1e21461139c5780634f1ef286146111ec578063529629521461112a57806352d1902d146110b1578063530dd456146110785780636d5115bd1461100d57806375b238fc14610ff3578063853551b814610f3c57806394c7d7ee14610e7b578063a166aa8914610e2a578063a64d95ce14610d23578063abd9bd2a14610cfe578063ac9650d814610b4b578063ad3cb1cc14610b07578063b700961314610abb578063b7d2b16214610a8a578063c4d66de81461072f578063cc1b6c8114610712578063d1f856ee146106c2578063d22b5989146105ed578063d6bb62c614610404578063f801a698146102005763fe0776f5146101ad57600080fd5b346101fc57806003193601126101fc576101c5611b9e565b6101cd611b58565b91336001600160a01b038416036101ed5750906101e99161237a565b5080f35b51635f159e6360e01b81528490fd5b5080fd5b509190346103fd5760603660031901126103fd5761021c611b42565b6024356001600160401b0381116104005761023a9036908501611bca565b92906044359365ffffffffffff928386168096036103fd5761025e82848733612129565b96905061026a42612a17565b61027c63ffffffff809916809261204f565b901580156103e8575b61039a57908580921690818082119118021816936102a583858833611ebb565b97888352600080516020612a6a83398151915291826020528a842054168015159081610389575b5061037257507f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b49369ffffffff0000000000009796938a84610363948c809a97526020522080548560018b8360301c16019a8b169b8c9b60301b169169ffffffffffffffffffff1916171790558a51948594855233602086015260018060a01b03168b850152608060608501526080840191611e9a565b0390a382519182526020820152f35b895163813e945960e01b8152908101899052602490fd5b6103939150612351565b15386102cc565b86896103e48c6103aa888a612172565b90516381c6f24b60e01b8152339381019384526001600160a01b0390941660208401526001600160e01b0319166040830152829160600190565b0390fd5b50811515801561028557508581168210610285565b80fd5b8280fd5b50829034610400576104319061041936611cf1565b6104298183979399949599612172565b958489611ebb565b93848252600080516020612a6a8339815191529060209382855265ffffffffffff988987862054161560001461047857865163060a299b60e41b8152808a01899052602490fd5b94979396949293926001600160a01b03908116913383036104e9575b50505050507fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f793949550818552855263ffffffff82852080549065ffffffffffff198216905560301c16928392519480a38152f35b600080527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad018a5287600020336000528a5287600020546105376001600160701b038d83169260301c16612316565b5050508015159b8c6105d5575b50501698898852600080516020612aaa83398151915289528688209263ffffffff60e01b1692838952895261058d336105886001600160401b038a8c205416611dbe565b611ff7565b50901590816105cc575b506105a3578080610494565b608493508890865193630ff89d4760e21b85523390850152602484015260448301526064820152fd5b9050158a610597565b90919b506105e242612a17565b161015998b80610544565b50346101fc57806003193601126101fc577fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c610627611b42565b91610630611c3a565b9261063961207f565b60018060a01b0316928385526106bc600080516020612aaa83398151915292836020526001600160701b039361067784866001858c200154166128d2565b959091888a526020526001838a200191166001600160701b0319825416179055519283928390929165ffffffffffff60209163ffffffff604085019616845216910152565b0390a280f35b50346101fc57806003193601126101fc5761070e906106f06106e2611b9e565b6106ea611b58565b90611ff7565b9151901515815263ffffffff90911660208201529081906040820190565b0390f35b50346101fc57816003193601126101fc5760209051620697808152f35b508290346104005760209081600319360112610a865761074d611b42565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009384549160ff83851c1615926001600160401b03811680159081610a7e575b6001149081610a74575b159081610a6b575b50610a5b5767ffffffffffffffff198116600117875583610a3c575b506107c46129d6565b6107cc6129d6565b6107d46129d6565b6001600160a01b0316908115610a2557600080527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad01908186528460002083600052865265ffffffffffff80866000205416159160008360001461091e57508161083c42612a17565b1690828211610909575092600080516020612a8a833981519152926060926108aa866001600160701b038c600099968d519361087785611c4d565b84528184018b81528b805291528c8a208b8b528e528c8a209251835465ffffffffffff19169086161783555116906122ea565b885192868452168983015287820152a36108c26129d6565b6108ca578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a18180808380f35b601190634e487b7160e01b6000525260246000fd5b808095929394955281895287812086825289526109496001600160701b038983205460301c16612316565b50909363ffffffff9150818516908b8b83156109e65750508282116109d357506060948b9465ffffffffffff60401b67ffffffff000000008d60009b976109ae600080516020612a8a8339815191529c986109ce985b166109a942612a17565b61204f565b948180528a528d8282209082528a52209383981b16918d1b1617906122ea565b6108aa565b634e487b7160e01b845260119052602483fd5b6109ce9350606097925067ffffffff0000000065ffffffffffff60401b91876109ae600080516020612a8a8339815191529c9860009e9a9b969b61099f565b8351630409d6d160e11b8152908101879052602490fd5b68ffffffffffffffffff191668010000000000000001178655876107bb565b845163f92ee8a960e01b81528390fd5b9050158961079f565b303b159150610797565b85915061078d565b8380fd5b50346101fc573660031901126103fd576101e9610aa5611b9e565b610aad611b58565b90610ab661207f565b61237a565b5090346103fd5760603660031901126103fd5750610ad7611b42565b90610ae0611b58565b916044356001600160e01b031981168103610b025761070e936106f092611f46565b600080fd5b50346101fc57816003193601126101fc57805161070e91610b2782611c4d565b60058252640352e302e360dc1b602083015251918291602083526020830190611d61565b5091346101fc57602091826003193601126103fd576001600160401b03823581811161040057610b7e9036908501611b6e565b9190938651908682019082821084831117610ce95750808852848252610ba384611f05565b95610bb089519788611c7e565b848752610bbc85611f05565b601f190188875b828110610cd957505050855b858110610c355750505050505083519280840190808552835180925280868601968360051b870101940192955b828710610c095785850386f35b909192938280610c25600193603f198a82030186528851611d61565b9601920196019592919092610bfc565b8060051b820135601e1983360301811215610cd5578201803590868211610cd1578a01908036038213610cd157888060019493610c958f8f610cb5968c8c610ca1945195838794868601998a37840191858301938a855251938491611d3e565b01038084520182611c7e565b5190305af4610cae6122ba565b903061286f565b610cbf828b611f1c565b52610cca818a611f1c565b5001610bcf565b8880fd5b8780fd5b606082828c010152018990610bc3565b604190634e487b7160e01b6000525260246000fd5b50346101fc57602090610d1c610d1336611cf1565b92919091611ebb565b9051908152f35b50829034610400578060031936011261040057610d3e611b9e565b90610d47611c3a565b91610d5061207f565b6001600160401b0393848216948514610e135750916106bc610db992846001610db1856001600160701b0383610da67ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b489b611d86565b015460801c166128d2565b969092611d86565b0180546dffffffffffffffffffffffffffff60801b191660809290921b6dffffffffffffffffffffffffffff60801b169190911790555163ffffffff909216825265ffffffffffff90921660208201529081906040820190565b825163061c6a4360e21b8152908101859052602490fd5b50346101fc5760203660031901126101fc5760209160ff9060019083906001600160a01b03610e57611b42565b168152600080516020612aaa833981519152865220015460701c1690519015158152f35b5082903461040057610e8c36611bf7565b9390928051638fb3603760e01b908181526020818581335afa908115610f32578891610eef575b506001600160e01b03191603610ed857856101e9610ed387873388611ebb565b612188565b602492505190630641fee960e31b82523390820152fd5b90506020813d602011610f2a575b81610f0a60209383611c7e565b81010312610cd557516001600160e01b031981168103610cd55788610eb3565b3d9150610efd565b83513d8a823e3d90fd5b5091346101fc57826003193601126101fc57610f56611b9e565b6001600160401b0391602435838111610fef5790610f78849236908301611bca565b929093610f8361207f565b16938415908115610fe5575b50610fce57506106bc7f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45093949551928392602084526020840191611e9a565b855163061c6a4360e21b8152908101849052602490fd5b9050841438610f8f565b8480fd5b50346101fc57816003193601126101fc5751908152602090f35b50346101fc57806003193601126101fc57611026611b42565b6024359063ffffffff60e01b8216809203610b02576020936001600160401b0392849260018060a01b0316600052600080516020612aaa83398151915286528260002090825285522054169051908152f35b50346101fc5760203660031901126101fc576020906001600160401b0360016110a76110a2611b9e565b611d86565b0154169051908152f35b5090346103fd57806003193601126103fd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361111d57602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b50829034610400578060031936011261040057611145611b9e565b9061114e611bb4565b9061115761207f565b6001600160401b039283811694851580156111e3575b6111cc575061117d600191611d86565b019067ffffffffffffffff60401b838354921b169067ffffffffffffffff60401b191617905516907f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae28380a380f35b825163061c6a4360e21b8152908101869052602490fd5b5084861461116d565b5080839160031936011261040057611202611b42565b906024356001600160401b038111610fef5736602382011215610fef576112329036906024818701359101611cba565b61123a612958565b61124261207f565b61124a612958565b81516352d1902d60e01b81526001600160a01b03841693906020818781885afa879181611368575b5061128e578351634c9c8ce360e01b8152808701869052602490fd5b84879487927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908181036113525750843b1561133c5780546001600160a01b03191683179055518592917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2845115611321575050808360206101e995519101845af461131b6122ba565b9161286f565b92509250503461133057505080f35b63b398979f60e01b8152fd5b5051634c9c8ce360e01b81529182015260249150fd5b84602491845191632a87526960e21b8352820152fd5b9091506020813d602011611394575b8161138460209383611c7e565b81010312610cd557519088611272565b3d9150611377565b50346101fc5760203660031901126101fc5760209063ffffffff6113c66113c1611b42565b611e5b565b915191168152f35b50346101fc57816003193601126101fc576020905162093a808152f35b508234610400576020366003190112610400578160209363ffffffff92358152600080516020612a6a8339815191528552205460301c169051908152f35b50346101fc57816003193601126101fc57602090516001600160401b038152f35b5090346103fd5760203660031901126103fd575065ffffffffffff6113c660209335611e21565b5082903461040057806003193601126104005761148c611b9e565b91611495611bb4565b9261149e61207f565b6001600160401b03918282169384158015611516575b6115005750506114c5600191611d86565b01921691826001600160401b03198254161790557f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63408380a380f35b5163061c6a4360e21b8152908101849052602490fd5b508385146114b4565b50346101fc57806003193601126101fc5760809061154c61153e611b9e565b611546611b58565b90611dda565b91849194519465ffffffffffff809516865263ffffffff80921660208701521690840152166060820152f35b5082903461040057606036600319011261040057611594611b9e565b9061159d611b58565b926044359163ffffffff94858416809403610b02576115ba61207f565b6001600160701b03956115dd8760016115d289611d86565b015460801c16612316565b5050966001600160401b039687811697881461178a576115fc81611d86565b9360018060a01b03169889600052602094855265ffffffffffff938487600020541615976000896000146116b4575050600080516020612a8a8339815191529896949261165d6060999795936116a39361165542612a17565b91169061204f565b9286519161166a83611c4d565b85851683528d61167f888501928c8452611d86565b906000528752858860002093511665ffffffffffff198454161783555116906122ea565b83519586521690840152820152a380f35b9250936116d6906116c485611d86565b8d855288528884205460301c16612316565b5050938185168c8b821160001461175b57508a9003908282116109d3575092876060999795938d61172a61172461175696600080516020612a8a8339815191529f9d9b99166109a942612a17565b94611d86565b9082528752209065ffffffffffff60401b67ffffffff000000008295881b1691881b16178817906122ea565b6116a3565b8997959250600080516020612a8a8339815191529b9991509360609a98969461172a611724611756968461099f565b845163061c6a4360e21b8152808701899052602490fd5b5091906117ad36611bf7565b906117bc828285989533612129565b949015806118a5575b611895576117d583838933611ebb565b95819663ffffffff8097161580159061187c575b61186a575b50611821600080516020612a4a833981519152938454956118186118128284612172565b8c612273565b86553691611cba565b9034471061184d5750968161184492896020809b51910134855af161131b6122ba565b50555191168152f35b604490864790519163cf47918160e01b8352820152346024820152fd5b611875919750612188565b95386117ee565b5065ffffffffffff61188d82611e21565b1615156117e9565b506103e49350906103aa91612172565b5063ffffffff8516156117c5565b508290346104005780600319360112610400576118ce611b42565b91836118d8611b58565b936118e161207f565b6001600160a01b0390811694853b15610400576024908386519788948593637a9e5e4b60e01b855216878401525af180156119485761191e578380f35b6001600160401b0383116119355750528180808380f35b634e487b7160e01b845260419052602483fd5b82513d86823e3d90fd5b50346101fc57806003193601126101fc5761196b611b42565b60243590811515809203610a86577f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138916020916119a661207f565b6001600160a01b0316808652600080516020612aaa8339815191528352848620600101805460ff60701b1916607084901b60ff60701b161790559351908152a280f35b50346101fc5760203660031901126101fc5760209063ffffffff611a1b6001600160701b0360016115d26110a2611b9e565b5050915191168152f35b50346101fc5760203660031901126101fc576020906001600160401b036113c6611a4d611b9e565b611dbe565b50823461040057606036600319011261040057611a6d611b42565b916024356001600160401b0392838211611b3e57611a8d91369101611b6e565b9190604435938416809403611b3e57611aa794929461207f565b6001600160a01b0390921691855b858110611ac0578680f35b8060051b8201359063ffffffff60e01b8216809203610cd55785857f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151600194828c52602090600080516020612aaa83398151915282528c818a822091528252888d20856001600160401b03198254161790558851908152a301611ab5565b8580fd5b600435906001600160a01b0382168203610b0257565b602435906001600160a01b0382168203610b0257565b9181601f84011215610b02578235916001600160401b038311610b02576020808501948460051b010111610b0257565b600435906001600160401b0382168203610b0257565b602435906001600160401b0382168203610b0257565b9181601f84011215610b02578235916001600160401b038311610b025760208381860195010111610b0257565b906040600319830112610b02576004356001600160a01b0381168103610b025791602435906001600160401b038211610b0257611c3691600401611bca565b9091565b6024359063ffffffff82168203610b0257565b604081019081106001600160401b03821117611c6857604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611c6857604052565b6001600160401b038111611c6857601f01601f191660200190565b929192611cc682611c9f565b91611cd46040519384611c7e565b829481845281830111610b02578281602093846000960137010152565b6060600319820112610b02576001600160a01b03916004358381168103610b0257926024359081168103610b025791604435906001600160401b038211610b0257611c3691600401611bca565b60005b838110611d515750506000910152565b8181015183820152602001611d41565b90602091611d7a81518092818552858086019101611d3e565b601f01601f1916010190565b6001600160401b03166000527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad01602052604060002090565b6001611dd16001600160401b0392611d86565b015460401c1690565b90611dec65ffffffffffff9392611d86565b9060018060a01b031660005260205260406000205490611e176001600160701b038360301c16612316565b9490931693909291565b600052600080516020612a6a83398151915260205265ffffffffffff60406000205416611e4d81612351565b15611e585750600090565b90565b6001600160a01b03166000908152600080516020612aaa8339815191526020526040902060010154611e95906001600160701b0316612316565b505090565b908060209392818452848401376000828201840152601f01601f1916010190565b611ef1611eff929493604051948593602085019760018060a01b0380921689521660408501526060808501526080840191611e9a565b03601f198101835282611c7e565b51902090565b6001600160401b038111611c685760051b60200190565b8051821015611f305760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038281166000908152600080516020612aaa8339815191526020526040812060018101549196959392909160701c60ff1615611f8c5750505050508190565b82163003611fb5575050611fb090600080516020612a4a8339815191525492612273565b149190565b9091611fdd935063ffffffff60e01b1685526020526001600160401b03604085205416611ff7565b929015611ff1575063ffffffff8216159190565b91508190565b906001600160401b0380831603612012575050600190600090565b61201b91611dda565b5050919065ffffffffffff8091168015159182612039575b50509190565b90915061204542612a17565b1610153880612033565b91909165ffffffffffff8080941691160191821161206957565b634e487b7160e01b600052601160045260246000fd5b612089363361241a565b90156120925750565b63ffffffff166120cf5760446120a736612533565b5060405163f07e038f60e01b81523360048201526001600160401b0390911660248201529050fd5b612126604051602081019033825230604082015260608082015236608082015236600060a0830137600060a0368301015261211e60a082601f19601f3601168101036080810184520182611c7e565b519020612188565b50565b909291906001600160a01b038416300361214757611c3693506124eb565b919290600484101561215f5750505050600090600090565b611c369361216c91612172565b91611f46565b90600411610b0257356001600160e01b03191690565b6000818152600080516020612a6a833981519152908160205260408120549165ffffffffffff9263ffffffff8482169160301c169381156000146121df5760405163060a299b60e41b815260048101879052602490fd5b6121e842612a17565b1681111561220957604051630c65b5bd60e11b815260048101869052602490fd5b61221590949394612351565b61225a5782825260205260408120805465ffffffffffff191690558291907f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9080a390565b604051631e2975b960e21b815260048101849052602490fd5b604080516001600160a01b03909216602083019081526001600160e01b0319909316828201528152606081016001600160401b03811182821017611c685760405251902090565b3d156122e5573d906122cb82611c9f565b916122d96040519384611c7e565b82523d6000602084013e565b606090565b906601000000000000600160a01b0382549160301b16906601000000000000600160a01b031916179055565b61231f42612a17565b63ffffffff8281169265ffffffffffff604082901c81169316831161234a5750919260009250829150565b60201c1692565b62093a8065ffffffffffff8092160190808211612069578061237242612a17565b169116111590565b906001600160401b03908183169182146124015761239783611d86565b9060018060a01b03169260009184835260205265ffffffffffff604083205416156123fa57906123e77ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16692611d86565b84825260205280604081205580a3600190565b5091505090565b60405163061c6a4360e21b815260048101839052602490fd5b9060048110612475576001600160a01b03821630146124b55761243c90612533565b929091158061248a575b61247f5761245391611ff7565b90156124755763ffffffff808093169116908180821191180218169081159190565b5050600090600090565b505050600090600090565b5030600052600080516020612aaa83398151915260205260ff60016040600020015460701c16612446565b9050600411610b0257600080516020612a4a833981519152546124e46000356001600160e01b03191630612273565b1490600090565b91906004821061247f576001600160a01b038316301461250f579061243c916126cb565b6125199250612172565b6124e4600080516020612a4a833981519152549130612273565b600481106126bf5780600411610b025760009081356001600160e01b031916906310a6aa3760e31b821480156126af575b801561269f575b801561268f575b801561267f575b6126765763063fc60f60e21b82148015612666575b8015612656575b6126265763012e238d60e51b82148015612616575b6125e35750308252600080516020612aaa833981519152602052604082209082526020526001600160401b036040822054169181929190565b90506024116103fd576001600160401b0360043581811681036104005761260b600191611d86565b015416916001929190565b50635be958b160e11b82146125aa565b90506024929192116101fc576004356001600160a01b038116908190036104005761265090611e5b565b60019291565b506308d6122d60e01b8214612595565b5063167bd39560e01b821461258e565b50506001918190565b5063d22b598960e01b8214612579565b50635326cae760e11b8214612572565b5063294b14a960e11b821461256b565b506330cae18760e01b8214612564565b50600090600090600090565b60048210612862576001600160e01b03196126e68383612172565b16916310a6aa3760e31b83148015612852575b8015612842575b8015612832575b8015612822575b6128145763063fc60f60e21b83148015612804575b80156127f4575b6127c45763012e238d60e51b831480156127b4575b61277c575050600090308252600080516020612aaa833981519152602052604082209082526020526001600160401b036040822054169181929190565b909150602411610b0257600401356001600160401b03908181168103610b02576127a7600191611d86565b0154169060019190600090565b50635be958b160e11b831461273f565b909150602411610b02576004013560018060a01b038116809103610b02576127eb90611e5b565b60019160009190565b506308d6122d60e01b831461272a565b5063167bd39560e01b8314612723565b505050600190600090600090565b5063d22b598960e01b831461270e565b50635326cae760e11b8314612707565b5063294b14a960e11b8314612700565b506330cae18760e01b83146126f9565b5050600090600090600090565b90612896575080511561288457602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806128c9575b6128a7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561289f565b6128de90929192612316565b50509163ffffffff80911690818185168181116000146129415703818111612069578167ffffffff0000000092612927925b16620697808180821191180218166109a942612a17565b9360201b1665ffffffffffff60401b8460401b1617179190565b50506129278167ffffffff00000000926000612910565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163081149182156129a8575b505061299657565b60405163703e46dd60e11b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614159050388061298e565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615612a0557565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111612a2a571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfe40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad0340c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad02f98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad00a26469706673582212208a692298e3544987eccdc3495ae23e310e87a26e74d80834b2db31987e2a14e664736f6c63430008190033",
1286
+ "deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600090813560e01c806308d6122d14611a525780630b0a93ba14611a2557806312be8727146119e9578063167bd3951461195257806318ff183c146118b35780631cff79cd146117a157806325c471a0146115785780633078f1141461151f57806330cae187146114715780633adc277a1461144a5780633ca7c02a146114295780634136a33c146113eb5780634665096d146113ce5780634c1da1e21461139c5780634f1ef286146111ec578063529629521461112a57806352d1902d146110b1578063530dd456146110785780636d5115bd1461100d57806375b238fc14610ff3578063853551b814610f3c57806394c7d7ee14610e7b578063a166aa8914610e2a578063a64d95ce14610d23578063abd9bd2a14610cfe578063ac9650d814610b4b578063ad3cb1cc14610b07578063b700961314610abb578063b7d2b16214610a8a578063c4d66de81461072f578063cc1b6c8114610712578063d1f856ee146106c2578063d22b5989146105ed578063d6bb62c614610404578063f801a698146102005763fe0776f5146101ad57600080fd5b346101fc57806003193601126101fc576101c5611b9e565b6101cd611b58565b91336001600160a01b038416036101ed5750906101e99161237a565b5080f35b51635f159e6360e01b81528490fd5b5080fd5b509190346103fd5760603660031901126103fd5761021c611b42565b6024356001600160401b0381116104005761023a9036908501611bca565b92906044359365ffffffffffff928386168096036103fd5761025e82848733612129565b96905061026a42612a17565b61027c63ffffffff809916809261204f565b901580156103e8575b61039a57908580921690818082119118021816936102a583858833611ebb565b97888352600080516020612a6a83398151915291826020528a842054168015159081610389575b5061037257507f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b49369ffffffff0000000000009796938a84610363948c809a97526020522080548560018b8360301c16019a8b169b8c9b60301b169169ffffffffffffffffffff1916171790558a51948594855233602086015260018060a01b03168b850152608060608501526080840191611e9a565b0390a382519182526020820152f35b895163813e945960e01b8152908101899052602490fd5b6103939150612351565b15386102cc565b86896103e48c6103aa888a612172565b90516381c6f24b60e01b8152339381019384526001600160a01b0390941660208401526001600160e01b0319166040830152829160600190565b0390fd5b50811515801561028557508581168210610285565b80fd5b8280fd5b50829034610400576104319061041936611cf1565b6104298183979399949599612172565b958489611ebb565b93848252600080516020612a6a8339815191529060209382855265ffffffffffff988987862054161560001461047857865163060a299b60e41b8152808a01899052602490fd5b94979396949293926001600160a01b03908116913383036104e9575b50505050507fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f793949550818552855263ffffffff82852080549065ffffffffffff198216905560301c16928392519480a38152f35b600080527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad018a5287600020336000528a5287600020546105376001600160701b038d83169260301c16612316565b5050508015159b8c6105d5575b50501698898852600080516020612aaa83398151915289528688209263ffffffff60e01b1692838952895261058d336105886001600160401b038a8c205416611dbe565b611ff7565b50901590816105cc575b506105a3578080610494565b608493508890865193630ff89d4760e21b85523390850152602484015260448301526064820152fd5b9050158a610597565b90919b506105e242612a17565b161015998b80610544565b50346101fc57806003193601126101fc577fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c610627611b42565b91610630611c3a565b9261063961207f565b60018060a01b0316928385526106bc600080516020612aaa83398151915292836020526001600160701b039361067784866001858c200154166128d2565b959091888a526020526001838a200191166001600160701b0319825416179055519283928390929165ffffffffffff60209163ffffffff604085019616845216910152565b0390a280f35b50346101fc57806003193601126101fc5761070e906106f06106e2611b9e565b6106ea611b58565b90611ff7565b9151901515815263ffffffff90911660208201529081906040820190565b0390f35b50346101fc57816003193601126101fc5760209051620697808152f35b508290346104005760209081600319360112610a865761074d611b42565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009384549160ff83851c1615926001600160401b03811680159081610a7e575b6001149081610a74575b159081610a6b575b50610a5b5767ffffffffffffffff198116600117875583610a3c575b506107c46129d6565b6107cc6129d6565b6107d46129d6565b6001600160a01b0316908115610a2557600080527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad01908186528460002083600052865265ffffffffffff80866000205416159160008360001461091e57508161083c42612a17565b1690828211610909575092600080516020612a8a833981519152926060926108aa866001600160701b038c600099968d519361087785611c4d565b84528184018b81528b805291528c8a208b8b528e528c8a209251835465ffffffffffff19169086161783555116906122ea565b885192868452168983015287820152a36108c26129d6565b6108ca578380f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29268ff00000000000000001981541690555160018152a18180808380f35b601190634e487b7160e01b6000525260246000fd5b808095929394955281895287812086825289526109496001600160701b038983205460301c16612316565b50909363ffffffff9150818516908b8b83156109e65750508282116109d357506060948b9465ffffffffffff60401b67ffffffff000000008d60009b976109ae600080516020612a8a8339815191529c986109ce985b166109a942612a17565b61204f565b948180528a528d8282209082528a52209383981b16918d1b1617906122ea565b6108aa565b634e487b7160e01b845260119052602483fd5b6109ce9350606097925067ffffffff0000000065ffffffffffff60401b91876109ae600080516020612a8a8339815191529c9860009e9a9b969b61099f565b8351630409d6d160e11b8152908101879052602490fd5b68ffffffffffffffffff191668010000000000000001178655876107bb565b845163f92ee8a960e01b81528390fd5b9050158961079f565b303b159150610797565b85915061078d565b8380fd5b50346101fc573660031901126103fd576101e9610aa5611b9e565b610aad611b58565b90610ab661207f565b61237a565b5090346103fd5760603660031901126103fd5750610ad7611b42565b90610ae0611b58565b916044356001600160e01b031981168103610b025761070e936106f092611f46565b600080fd5b50346101fc57816003193601126101fc57805161070e91610b2782611c4d565b60058252640352e302e360dc1b602083015251918291602083526020830190611d61565b5091346101fc57602091826003193601126103fd576001600160401b03823581811161040057610b7e9036908501611b6e565b9190938651908682019082821084831117610ce95750808852848252610ba384611f05565b95610bb089519788611c7e565b848752610bbc85611f05565b601f190188875b828110610cd957505050855b858110610c355750505050505083519280840190808552835180925280868601968360051b870101940192955b828710610c095785850386f35b909192938280610c25600193603f198a82030186528851611d61565b9601920196019592919092610bfc565b8060051b820135601e1983360301811215610cd5578201803590868211610cd1578a01908036038213610cd157888060019493610c958f8f610cb5968c8c610ca1945195838794868601998a37840191858301938a855251938491611d3e565b01038084520182611c7e565b5190305af4610cae6122ba565b903061286f565b610cbf828b611f1c565b52610cca818a611f1c565b5001610bcf565b8880fd5b8780fd5b606082828c010152018990610bc3565b604190634e487b7160e01b6000525260246000fd5b50346101fc57602090610d1c610d1336611cf1565b92919091611ebb565b9051908152f35b50829034610400578060031936011261040057610d3e611b9e565b90610d47611c3a565b91610d5061207f565b6001600160401b0393848216948514610e135750916106bc610db992846001610db1856001600160701b0383610da67ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b489b611d86565b015460801c166128d2565b969092611d86565b0180546dffffffffffffffffffffffffffff60801b191660809290921b6dffffffffffffffffffffffffffff60801b169190911790555163ffffffff909216825265ffffffffffff90921660208201529081906040820190565b825163061c6a4360e21b8152908101859052602490fd5b50346101fc5760203660031901126101fc5760209160ff9060019083906001600160a01b03610e57611b42565b168152600080516020612aaa833981519152865220015460701c1690519015158152f35b5082903461040057610e8c36611bf7565b9390928051638fb3603760e01b908181526020818581335afa908115610f32578891610eef575b506001600160e01b03191603610ed857856101e9610ed387873388611ebb565b612188565b602492505190630641fee960e31b82523390820152fd5b90506020813d602011610f2a575b81610f0a60209383611c7e565b81010312610cd557516001600160e01b031981168103610cd55788610eb3565b3d9150610efd565b83513d8a823e3d90fd5b5091346101fc57826003193601126101fc57610f56611b9e565b6001600160401b0391602435838111610fef5790610f78849236908301611bca565b929093610f8361207f565b16938415908115610fe5575b50610fce57506106bc7f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45093949551928392602084526020840191611e9a565b855163061c6a4360e21b8152908101849052602490fd5b9050841438610f8f565b8480fd5b50346101fc57816003193601126101fc5751908152602090f35b50346101fc57806003193601126101fc57611026611b42565b6024359063ffffffff60e01b8216809203610b02576020936001600160401b0392849260018060a01b0316600052600080516020612aaa83398151915286528260002090825285522054169051908152f35b50346101fc5760203660031901126101fc576020906001600160401b0360016110a76110a2611b9e565b611d86565b0154169051908152f35b5090346103fd57806003193601126103fd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361111d57602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b50829034610400578060031936011261040057611145611b9e565b9061114e611bb4565b9061115761207f565b6001600160401b039283811694851580156111e3575b6111cc575061117d600191611d86565b019067ffffffffffffffff60401b838354921b169067ffffffffffffffff60401b191617905516907f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae28380a380f35b825163061c6a4360e21b8152908101869052602490fd5b5084861461116d565b5080839160031936011261040057611202611b42565b906024356001600160401b038111610fef5736602382011215610fef576112329036906024818701359101611cba565b61123a612958565b61124261207f565b61124a612958565b81516352d1902d60e01b81526001600160a01b03841693906020818781885afa879181611368575b5061128e578351634c9c8ce360e01b8152808701869052602490fd5b84879487927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908181036113525750843b1561133c5780546001600160a01b03191683179055518592917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2845115611321575050808360206101e995519101845af461131b6122ba565b9161286f565b92509250503461133057505080f35b63b398979f60e01b8152fd5b5051634c9c8ce360e01b81529182015260249150fd5b84602491845191632a87526960e21b8352820152fd5b9091506020813d602011611394575b8161138460209383611c7e565b81010312610cd557519088611272565b3d9150611377565b50346101fc5760203660031901126101fc5760209063ffffffff6113c66113c1611b42565b611e5b565b915191168152f35b50346101fc57816003193601126101fc576020905162093a808152f35b508234610400576020366003190112610400578160209363ffffffff92358152600080516020612a6a8339815191528552205460301c169051908152f35b50346101fc57816003193601126101fc57602090516001600160401b038152f35b5090346103fd5760203660031901126103fd575065ffffffffffff6113c660209335611e21565b5082903461040057806003193601126104005761148c611b9e565b91611495611bb4565b9261149e61207f565b6001600160401b03918282169384158015611516575b6115005750506114c5600191611d86565b01921691826001600160401b03198254161790557f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63408380a380f35b5163061c6a4360e21b8152908101849052602490fd5b508385146114b4565b50346101fc57806003193601126101fc5760809061154c61153e611b9e565b611546611b58565b90611dda565b91849194519465ffffffffffff809516865263ffffffff80921660208701521690840152166060820152f35b5082903461040057606036600319011261040057611594611b9e565b9061159d611b58565b926044359163ffffffff94858416809403610b02576115ba61207f565b6001600160701b03956115dd8760016115d289611d86565b015460801c16612316565b5050966001600160401b039687811697881461178a576115fc81611d86565b9360018060a01b03169889600052602094855265ffffffffffff938487600020541615976000896000146116b4575050600080516020612a8a8339815191529896949261165d6060999795936116a39361165542612a17565b91169061204f565b9286519161166a83611c4d565b85851683528d61167f888501928c8452611d86565b906000528752858860002093511665ffffffffffff198454161783555116906122ea565b83519586521690840152820152a380f35b9250936116d6906116c485611d86565b8d855288528884205460301c16612316565b5050938185168c8b821160001461175b57508a9003908282116109d3575092876060999795938d61172a61172461175696600080516020612a8a8339815191529f9d9b99166109a942612a17565b94611d86565b9082528752209065ffffffffffff60401b67ffffffff000000008295881b1691881b16178817906122ea565b6116a3565b8997959250600080516020612a8a8339815191529b9991509360609a98969461172a611724611756968461099f565b845163061c6a4360e21b8152808701899052602490fd5b5091906117ad36611bf7565b906117bc828285989533612129565b949015806118a5575b611895576117d583838933611ebb565b95819663ffffffff8097161580159061187c575b61186a575b50611821600080516020612a4a833981519152938454956118186118128284612172565b8c612273565b86553691611cba565b9034471061184d5750968161184492896020809b51910134855af161131b6122ba565b50555191168152f35b604490864790519163cf47918160e01b8352820152346024820152fd5b611875919750612188565b95386117ee565b5065ffffffffffff61188d82611e21565b1615156117e9565b506103e49350906103aa91612172565b5063ffffffff8516156117c5565b508290346104005780600319360112610400576118ce611b42565b91836118d8611b58565b936118e161207f565b6001600160a01b0390811694853b15610400576024908386519788948593637a9e5e4b60e01b855216878401525af180156119485761191e578380f35b6001600160401b0383116119355750528180808380f35b634e487b7160e01b845260419052602483fd5b82513d86823e3d90fd5b50346101fc57806003193601126101fc5761196b611b42565b60243590811515809203610a86577f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138916020916119a661207f565b6001600160a01b0316808652600080516020612aaa8339815191528352848620600101805460ff60701b1916607084901b60ff60701b161790559351908152a280f35b50346101fc5760203660031901126101fc5760209063ffffffff611a1b6001600160701b0360016115d26110a2611b9e565b5050915191168152f35b50346101fc5760203660031901126101fc576020906001600160401b036113c6611a4d611b9e565b611dbe565b50823461040057606036600319011261040057611a6d611b42565b916024356001600160401b0392838211611b3e57611a8d91369101611b6e565b9190604435938416809403611b3e57611aa794929461207f565b6001600160a01b0390921691855b858110611ac0578680f35b8060051b8201359063ffffffff60e01b8216809203610cd55785857f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151600194828c52602090600080516020612aaa83398151915282528c818a822091528252888d20856001600160401b03198254161790558851908152a301611ab5565b8580fd5b600435906001600160a01b0382168203610b0257565b602435906001600160a01b0382168203610b0257565b9181601f84011215610b02578235916001600160401b038311610b02576020808501948460051b010111610b0257565b600435906001600160401b0382168203610b0257565b602435906001600160401b0382168203610b0257565b9181601f84011215610b02578235916001600160401b038311610b025760208381860195010111610b0257565b906040600319830112610b02576004356001600160a01b0381168103610b025791602435906001600160401b038211610b0257611c3691600401611bca565b9091565b6024359063ffffffff82168203610b0257565b604081019081106001600160401b03821117611c6857604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611c6857604052565b6001600160401b038111611c6857601f01601f191660200190565b929192611cc682611c9f565b91611cd46040519384611c7e565b829481845281830111610b02578281602093846000960137010152565b6060600319820112610b02576001600160a01b03916004358381168103610b0257926024359081168103610b025791604435906001600160401b038211610b0257611c3691600401611bca565b60005b838110611d515750506000910152565b8181015183820152602001611d41565b90602091611d7a81518092818552858086019101611d3e565b601f01601f1916010190565b6001600160401b03166000527f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad01602052604060002090565b6001611dd16001600160401b0392611d86565b015460401c1690565b90611dec65ffffffffffff9392611d86565b9060018060a01b031660005260205260406000205490611e176001600160701b038360301c16612316565b9490931693909291565b600052600080516020612a6a83398151915260205265ffffffffffff60406000205416611e4d81612351565b15611e585750600090565b90565b6001600160a01b03166000908152600080516020612aaa8339815191526020526040902060010154611e95906001600160701b0316612316565b505090565b908060209392818452848401376000828201840152601f01601f1916010190565b611ef1611eff929493604051948593602085019760018060a01b0380921689521660408501526060808501526080840191611e9a565b03601f198101835282611c7e565b51902090565b6001600160401b038111611c685760051b60200190565b8051821015611f305760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038281166000908152600080516020612aaa8339815191526020526040812060018101549196959392909160701c60ff1615611f8c5750505050508190565b82163003611fb5575050611fb090600080516020612a4a8339815191525492612273565b149190565b9091611fdd935063ffffffff60e01b1685526020526001600160401b03604085205416611ff7565b929015611ff1575063ffffffff8216159190565b91508190565b906001600160401b0380831603612012575050600190600090565b61201b91611dda565b5050919065ffffffffffff8091168015159182612039575b50509190565b90915061204542612a17565b1610153880612033565b91909165ffffffffffff8080941691160191821161206957565b634e487b7160e01b600052601160045260246000fd5b612089363361241a565b90156120925750565b63ffffffff166120cf5760446120a736612533565b5060405163f07e038f60e01b81523360048201526001600160401b0390911660248201529050fd5b612126604051602081019033825230604082015260608082015236608082015236600060a0830137600060a0368301015261211e60a082601f19601f3601168101036080810184520182611c7e565b519020612188565b50565b909291906001600160a01b038416300361214757611c3693506124eb565b919290600484101561215f5750505050600090600090565b611c369361216c91612172565b91611f46565b90600411610b0257356001600160e01b03191690565b6000818152600080516020612a6a833981519152908160205260408120549165ffffffffffff9263ffffffff8482169160301c169381156000146121df5760405163060a299b60e41b815260048101879052602490fd5b6121e842612a17565b1681111561220957604051630c65b5bd60e11b815260048101869052602490fd5b61221590949394612351565b61225a5782825260205260408120805465ffffffffffff191690558291907f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9080a390565b604051631e2975b960e21b815260048101849052602490fd5b604080516001600160a01b03909216602083019081526001600160e01b0319909316828201528152606081016001600160401b03811182821017611c685760405251902090565b3d156122e5573d906122cb82611c9f565b916122d96040519384611c7e565b82523d6000602084013e565b606090565b906601000000000000600160a01b0382549160301b16906601000000000000600160a01b031916179055565b61231f42612a17565b63ffffffff8281169265ffffffffffff604082901c81169316831161234a5750919260009250829150565b60201c1692565b62093a8065ffffffffffff8092160190808211612069578061237242612a17565b169116111590565b906001600160401b03908183169182146124015761239783611d86565b9060018060a01b03169260009184835260205265ffffffffffff604083205416156123fa57906123e77ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16692611d86565b84825260205280604081205580a3600190565b5091505090565b60405163061c6a4360e21b815260048101839052602490fd5b9060048110612475576001600160a01b03821630146124b55761243c90612533565b929091158061248a575b61247f5761245391611ff7565b90156124755763ffffffff808093169116908180821191180218169081159190565b5050600090600090565b505050600090600090565b5030600052600080516020612aaa83398151915260205260ff60016040600020015460701c16612446565b9050600411610b0257600080516020612a4a833981519152546124e46000356001600160e01b03191630612273565b1490600090565b91906004821061247f576001600160a01b038316301461250f579061243c916126cb565b6125199250612172565b6124e4600080516020612a4a833981519152549130612273565b600481106126bf5780600411610b025760009081356001600160e01b031916906310a6aa3760e31b821480156126af575b801561269f575b801561268f575b801561267f575b6126765763063fc60f60e21b82148015612666575b8015612656575b6126265763012e238d60e51b82148015612616575b6125e35750308252600080516020612aaa833981519152602052604082209082526020526001600160401b036040822054169181929190565b90506024116103fd576001600160401b0360043581811681036104005761260b600191611d86565b015416916001929190565b50635be958b160e11b82146125aa565b90506024929192116101fc576004356001600160a01b038116908190036104005761265090611e5b565b60019291565b506308d6122d60e01b8214612595565b5063167bd39560e01b821461258e565b50506001918190565b5063d22b598960e01b8214612579565b50635326cae760e11b8214612572565b5063294b14a960e11b821461256b565b506330cae18760e01b8214612564565b50600090600090600090565b60048210612862576001600160e01b03196126e68383612172565b16916310a6aa3760e31b83148015612852575b8015612842575b8015612832575b8015612822575b6128145763063fc60f60e21b83148015612804575b80156127f4575b6127c45763012e238d60e51b831480156127b4575b61277c575050600090308252600080516020612aaa833981519152602052604082209082526020526001600160401b036040822054169181929190565b909150602411610b0257600401356001600160401b03908181168103610b02576127a7600191611d86565b0154169060019190600090565b50635be958b160e11b831461273f565b909150602411610b02576004013560018060a01b038116809103610b02576127eb90611e5b565b60019160009190565b506308d6122d60e01b831461272a565b5063167bd39560e01b8314612723565b505050600190600090600090565b5063d22b598960e01b831461270e565b50635326cae760e11b8314612707565b5063294b14a960e11b8314612700565b506330cae18760e01b83146126f9565b5050600090600090600090565b90612896575080511561288457602081519101fd5b60405163d6bda27560e01b8152600490fd5b815115806128c9575b6128a7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561289f565b6128de90929192612316565b50509163ffffffff80911690818185168181116000146129415703818111612069578167ffffffff0000000092612927925b16620697808180821191180218166109a942612a17565b9360201b1665ffffffffffff60401b8460401b1617179190565b50506129278167ffffffff00000000926000612910565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163081149182156129a8575b505061299657565b60405163703e46dd60e11b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614159050388061298e565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615612a0557565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111612a2a571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfe40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad0340c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad02f98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad00a26469706673582212208a692298e3544987eccdc3495ae23e310e87a26e74d80834b2db31987e2a14e664736f6c63430008190033",
1287
+ "linkReferences": {},
1288
+ "deployedLinkReferences": {}
1289
+ }