@keep-network/tbtc-v2 0.1.1-dev.9 → 0.1.1-dev.90

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 (115) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/Bank.json +817 -0
  3. package/artifacts/Bridge.json +2666 -0
  4. package/artifacts/Deposit.json +117 -0
  5. package/artifacts/DepositSweep.json +77 -0
  6. package/artifacts/EcdsaDkgValidator.json +532 -0
  7. package/artifacts/EcdsaInactivity.json +156 -0
  8. package/artifacts/EcdsaSortitionPool.json +1004 -0
  9. package/artifacts/Fraud.json +164 -0
  10. package/artifacts/KeepRegistry.json +99 -0
  11. package/artifacts/KeepStake.json +286 -0
  12. package/artifacts/KeepToken.json +711 -0
  13. package/artifacts/KeepTokenStaking.json +483 -0
  14. package/artifacts/MovingFunds.json +249 -0
  15. package/artifacts/NuCypherStakingEscrow.json +256 -0
  16. package/artifacts/NuCypherToken.json +711 -0
  17. package/artifacts/RandomBeaconStub.json +141 -0
  18. package/artifacts/Redemption.json +174 -0
  19. package/artifacts/ReimbursementPool.json +509 -0
  20. package/artifacts/Relay.json +123 -0
  21. package/artifacts/T.json +1148 -0
  22. package/artifacts/TBTC.json +27 -26
  23. package/artifacts/TBTCToken.json +27 -26
  24. package/artifacts/TBTCVault.json +691 -0
  25. package/artifacts/TokenStaking.json +2288 -0
  26. package/artifacts/TokenholderGovernor.json +1795 -0
  27. package/artifacts/TokenholderTimelock.json +1058 -0
  28. package/artifacts/VendingMachine.json +30 -29
  29. package/artifacts/VendingMachineKeep.json +400 -0
  30. package/artifacts/VendingMachineNuCypher.json +400 -0
  31. package/artifacts/WalletRegistry.json +1843 -0
  32. package/artifacts/WalletRegistryGovernance.json +2754 -0
  33. package/artifacts/Wallets.json +186 -0
  34. package/artifacts/solcInputs/6e28b66ed60b6dd7b2b25b3a1c4fe89b.json +314 -0
  35. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  37. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  38. package/build/contracts/bank/Bank.sol/Bank.json +27 -4
  39. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  41. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
  43. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  44. package/build/contracts/bridge/Bridge.sol/Bridge.json +2547 -196
  45. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  47. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  49. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  51. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  53. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  55. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  57. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  59. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  61. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  63. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  65. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  67. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  68. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  69. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  70. package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
  71. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  73. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  74. package/build/contracts/vault/IVault.sol/IVault.json +24 -1
  75. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +295 -9
  77. package/contracts/GovernanceUtils.sol +4 -4
  78. package/contracts/bank/Bank.sol +119 -57
  79. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  80. package/contracts/bridge/BitcoinTx.sol +232 -10
  81. package/contracts/bridge/Bridge.sol +1692 -244
  82. package/contracts/bridge/BridgeState.sol +739 -0
  83. package/contracts/bridge/Deposit.sol +269 -0
  84. package/contracts/bridge/DepositSweep.sol +571 -0
  85. package/contracts/bridge/EcdsaLib.sol +45 -0
  86. package/contracts/bridge/Fraud.sol +604 -0
  87. package/contracts/bridge/Heartbeat.sol +112 -0
  88. package/contracts/bridge/IRelay.sol +28 -0
  89. package/contracts/bridge/MovingFunds.sol +1089 -0
  90. package/contracts/bridge/Redemption.sol +1021 -0
  91. package/contracts/bridge/VendingMachine.sol +1 -1
  92. package/contracts/bridge/Wallets.sol +553 -0
  93. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  94. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  95. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  97. package/contracts/token/TBTC.sol +1 -1
  98. package/contracts/vault/DonationVault.sol +125 -0
  99. package/contracts/vault/IVault.sol +19 -13
  100. package/contracts/vault/TBTCVault.sol +200 -23
  101. package/deploy/00_resolve_relay.ts +28 -0
  102. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  103. package/deploy/04_deploy_bank.ts +27 -0
  104. package/deploy/05_deploy_bridge.ts +80 -0
  105. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  106. package/deploy/07_bank_update_bridge.ts +19 -0
  107. package/deploy/08_transfer_bank_ownership.ts +15 -0
  108. package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
  109. package/deploy/10_transfer_bridge_governance.ts +20 -0
  110. package/deploy/11_initialize_wallet_owner.ts +18 -0
  111. package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
  112. package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
  113. package/export.json +16150 -443
  114. package/package.json +32 -25
  115. package/artifacts/solcInputs/58d5b3ee7688835879381470de985d6b.json +0 -128
@@ -3,6 +3,31 @@
3
3
  "contractName": "Bridge",
4
4
  "sourceName": "contracts/bridge/Bridge.sol",
5
5
  "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint64",
12
+ "name": "depositDustThreshold",
13
+ "type": "uint64"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "uint64",
18
+ "name": "depositTreasuryFeeDivisor",
19
+ "type": "uint64"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint64",
24
+ "name": "depositTxMaxFee",
25
+ "type": "uint64"
26
+ }
27
+ ],
28
+ "name": "DepositParametersUpdated",
29
+ "type": "event"
30
+ },
6
31
  {
7
32
  "anonymous": false,
8
33
  "inputs": [
@@ -14,16 +39,22 @@
14
39
  },
15
40
  {
16
41
  "indexed": false,
17
- "internalType": "uint8",
42
+ "internalType": "uint32",
18
43
  "name": "fundingOutputIndex",
19
- "type": "uint8"
44
+ "type": "uint32"
20
45
  },
21
46
  {
22
- "indexed": false,
47
+ "indexed": true,
23
48
  "internalType": "address",
24
49
  "name": "depositor",
25
50
  "type": "address"
26
51
  },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "uint64",
55
+ "name": "amount",
56
+ "type": "uint64"
57
+ },
27
58
  {
28
59
  "indexed": false,
29
60
  "internalType": "bytes8",
@@ -31,7 +62,7 @@
31
62
  "type": "bytes8"
32
63
  },
33
64
  {
34
- "indexed": false,
65
+ "indexed": true,
35
66
  "internalType": "bytes20",
36
67
  "name": "walletPubKeyHash",
37
68
  "type": "bytes20"
@@ -62,19 +93,19 @@
62
93
  "anonymous": false,
63
94
  "inputs": [
64
95
  {
65
- "indexed": true,
66
- "internalType": "address",
67
- "name": "previousOwner",
68
- "type": "address"
96
+ "indexed": false,
97
+ "internalType": "bytes20",
98
+ "name": "walletPubKeyHash",
99
+ "type": "bytes20"
69
100
  },
70
101
  {
71
- "indexed": true,
72
- "internalType": "address",
73
- "name": "newOwner",
74
- "type": "address"
102
+ "indexed": false,
103
+ "internalType": "bytes32",
104
+ "name": "sweepTxHash",
105
+ "type": "bytes32"
75
106
  }
76
107
  ],
77
- "name": "OwnershipTransferred",
108
+ "name": "DepositsSwept",
78
109
  "type": "event"
79
110
  },
80
111
  {
@@ -82,254 +113,2574 @@
82
113
  "inputs": [
83
114
  {
84
115
  "indexed": true,
85
- "internalType": "address",
86
- "name": "vault",
87
- "type": "address"
116
+ "internalType": "bytes20",
117
+ "name": "walletPubKeyHash",
118
+ "type": "bytes20"
88
119
  },
89
120
  {
90
121
  "indexed": false,
91
- "internalType": "bool",
92
- "name": "isTrusted",
93
- "type": "bool"
122
+ "internalType": "bytes32",
123
+ "name": "sighash",
124
+ "type": "bytes32"
94
125
  }
95
126
  ],
96
- "name": "VaultStatusUpdated",
127
+ "name": "FraudChallengeDefeatTimedOut",
97
128
  "type": "event"
98
129
  },
99
130
  {
131
+ "anonymous": false,
100
132
  "inputs": [
101
133
  {
102
- "internalType": "address",
103
- "name": "",
104
- "type": "address"
105
- }
106
- ],
107
- "name": "isVaultTrusted",
108
- "outputs": [
109
- {
110
- "internalType": "bool",
111
- "name": "",
112
- "type": "bool"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- },
118
- {
119
- "inputs": [],
120
- "name": "owner",
121
- "outputs": [
134
+ "indexed": true,
135
+ "internalType": "bytes20",
136
+ "name": "walletPubKeyHash",
137
+ "type": "bytes20"
138
+ },
122
139
  {
123
- "internalType": "address",
124
- "name": "",
125
- "type": "address"
140
+ "indexed": false,
141
+ "internalType": "bytes32",
142
+ "name": "sighash",
143
+ "type": "bytes32"
126
144
  }
127
145
  ],
128
- "stateMutability": "view",
129
- "type": "function"
130
- },
131
- {
132
- "inputs": [],
133
- "name": "renounceOwnership",
134
- "outputs": [],
135
- "stateMutability": "nonpayable",
136
- "type": "function"
146
+ "name": "FraudChallengeDefeated",
147
+ "type": "event"
137
148
  },
138
149
  {
150
+ "anonymous": false,
139
151
  "inputs": [
140
152
  {
141
- "components": [
142
- {
143
- "internalType": "bytes4",
144
- "name": "version",
145
- "type": "bytes4"
146
- },
147
- {
148
- "internalType": "bytes",
149
- "name": "inputVector",
150
- "type": "bytes"
151
- },
152
- {
153
- "internalType": "bytes",
154
- "name": "outputVector",
155
- "type": "bytes"
156
- },
157
- {
158
- "internalType": "bytes4",
159
- "name": "locktime",
160
- "type": "bytes4"
161
- }
162
- ],
163
- "internalType": "struct BitcoinTx.Info",
164
- "name": "fundingTx",
165
- "type": "tuple"
153
+ "indexed": true,
154
+ "internalType": "bytes20",
155
+ "name": "walletPubKeyHash",
156
+ "type": "bytes20"
166
157
  },
167
158
  {
168
- "components": [
169
- {
170
- "internalType": "uint8",
171
- "name": "fundingOutputIndex",
172
- "type": "uint8"
173
- },
174
- {
175
- "internalType": "address",
176
- "name": "depositor",
177
- "type": "address"
178
- },
179
- {
180
- "internalType": "bytes8",
181
- "name": "blindingFactor",
182
- "type": "bytes8"
183
- },
184
- {
185
- "internalType": "bytes20",
186
- "name": "walletPubKeyHash",
187
- "type": "bytes20"
188
- },
189
- {
190
- "internalType": "bytes20",
191
- "name": "refundPubKeyHash",
192
- "type": "bytes20"
193
- },
194
- {
195
- "internalType": "bytes4",
196
- "name": "refundLocktime",
197
- "type": "bytes4"
198
- },
199
- {
200
- "internalType": "address",
201
- "name": "vault",
202
- "type": "address"
203
- }
204
- ],
205
- "internalType": "struct Bridge.RevealInfo",
206
- "name": "reveal",
207
- "type": "tuple"
208
- }
209
- ],
210
- "name": "revealDeposit",
211
- "outputs": [],
212
- "stateMutability": "nonpayable",
213
- "type": "function"
214
- },
215
- {
216
- "inputs": [
159
+ "indexed": false,
160
+ "internalType": "bytes32",
161
+ "name": "sighash",
162
+ "type": "bytes32"
163
+ },
217
164
  {
218
- "internalType": "address",
219
- "name": "vault",
220
- "type": "address"
165
+ "indexed": false,
166
+ "internalType": "uint8",
167
+ "name": "v",
168
+ "type": "uint8"
221
169
  },
222
170
  {
223
- "internalType": "bool",
224
- "name": "isTrusted",
225
- "type": "bool"
171
+ "indexed": false,
172
+ "internalType": "bytes32",
173
+ "name": "r",
174
+ "type": "bytes32"
175
+ },
176
+ {
177
+ "indexed": false,
178
+ "internalType": "bytes32",
179
+ "name": "s",
180
+ "type": "bytes32"
226
181
  }
227
182
  ],
228
- "name": "setVaultStatus",
229
- "outputs": [],
230
- "stateMutability": "nonpayable",
231
- "type": "function"
183
+ "name": "FraudChallengeSubmitted",
184
+ "type": "event"
232
185
  },
233
186
  {
187
+ "anonymous": false,
234
188
  "inputs": [
235
189
  {
236
- "components": [
237
- {
238
- "internalType": "bytes4",
239
- "name": "version",
240
- "type": "bytes4"
241
- },
242
- {
243
- "internalType": "bytes",
244
- "name": "inputVector",
245
- "type": "bytes"
246
- },
247
- {
248
- "internalType": "bytes",
249
- "name": "outputVector",
250
- "type": "bytes"
251
- },
252
- {
253
- "internalType": "bytes4",
254
- "name": "locktime",
255
- "type": "bytes4"
256
- }
257
- ],
258
- "internalType": "struct BitcoinTx.Info",
259
- "name": "sweepTx",
260
- "type": "tuple"
261
- },
262
- {
263
- "internalType": "bytes",
264
- "name": "merkleProof",
265
- "type": "bytes"
190
+ "indexed": false,
191
+ "internalType": "uint256",
192
+ "name": "fraudChallengeDepositAmount",
193
+ "type": "uint256"
266
194
  },
267
195
  {
196
+ "indexed": false,
268
197
  "internalType": "uint256",
269
- "name": "txIndexInBlock",
198
+ "name": "fraudChallengeDefeatTimeout",
270
199
  "type": "uint256"
271
200
  },
272
201
  {
273
- "internalType": "bytes",
274
- "name": "bitcoinHeaders",
275
- "type": "bytes"
202
+ "indexed": false,
203
+ "internalType": "uint96",
204
+ "name": "fraudSlashingAmount",
205
+ "type": "uint96"
206
+ },
207
+ {
208
+ "indexed": false,
209
+ "internalType": "uint256",
210
+ "name": "fraudNotifierRewardMultiplier",
211
+ "type": "uint256"
276
212
  }
277
213
  ],
278
- "name": "sweep",
279
- "outputs": [],
280
- "stateMutability": "nonpayable",
281
- "type": "function"
214
+ "name": "FraudParametersUpdated",
215
+ "type": "event"
282
216
  },
283
217
  {
218
+ "anonymous": false,
284
219
  "inputs": [
285
220
  {
221
+ "indexed": false,
222
+ "internalType": "address",
223
+ "name": "oldGovernance",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": false,
286
228
  "internalType": "address",
287
- "name": "newOwner",
229
+ "name": "newGovernance",
288
230
  "type": "address"
289
231
  }
290
232
  ],
291
- "name": "transferOwnership",
292
- "outputs": [],
293
- "stateMutability": "nonpayable",
294
- "type": "function"
233
+ "name": "GovernanceTransferred",
234
+ "type": "event"
295
235
  },
296
236
  {
237
+ "anonymous": false,
297
238
  "inputs": [
298
239
  {
299
- "internalType": "uint256",
300
- "name": "",
240
+ "indexed": false,
241
+ "internalType": "uint8",
242
+ "name": "version",
243
+ "type": "uint8"
244
+ }
245
+ ],
246
+ "name": "Initialized",
247
+ "type": "event"
248
+ },
249
+ {
250
+ "anonymous": false,
251
+ "inputs": [
252
+ {
253
+ "indexed": true,
254
+ "internalType": "bytes20",
255
+ "name": "walletPubKeyHash",
256
+ "type": "bytes20"
257
+ },
258
+ {
259
+ "indexed": false,
260
+ "internalType": "bytes32",
261
+ "name": "movingFundsTxHash",
262
+ "type": "bytes32"
263
+ },
264
+ {
265
+ "indexed": false,
266
+ "internalType": "uint32",
267
+ "name": "movingFundsTxOutputIndex",
268
+ "type": "uint32"
269
+ }
270
+ ],
271
+ "name": "MovedFundsSweepTimedOut",
272
+ "type": "event"
273
+ },
274
+ {
275
+ "anonymous": false,
276
+ "inputs": [
277
+ {
278
+ "indexed": true,
279
+ "internalType": "bytes20",
280
+ "name": "walletPubKeyHash",
281
+ "type": "bytes20"
282
+ },
283
+ {
284
+ "indexed": false,
285
+ "internalType": "bytes32",
286
+ "name": "sweepTxHash",
287
+ "type": "bytes32"
288
+ }
289
+ ],
290
+ "name": "MovedFundsSwept",
291
+ "type": "event"
292
+ },
293
+ {
294
+ "anonymous": false,
295
+ "inputs": [
296
+ {
297
+ "indexed": true,
298
+ "internalType": "bytes20",
299
+ "name": "walletPubKeyHash",
300
+ "type": "bytes20"
301
+ }
302
+ ],
303
+ "name": "MovingFundsBelowDustReported",
304
+ "type": "event"
305
+ },
306
+ {
307
+ "anonymous": false,
308
+ "inputs": [
309
+ {
310
+ "indexed": true,
311
+ "internalType": "bytes20",
312
+ "name": "walletPubKeyHash",
313
+ "type": "bytes20"
314
+ },
315
+ {
316
+ "indexed": false,
317
+ "internalType": "bytes20[]",
318
+ "name": "targetWallets",
319
+ "type": "bytes20[]"
320
+ },
321
+ {
322
+ "indexed": false,
323
+ "internalType": "address",
324
+ "name": "submitter",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "name": "MovingFundsCommitmentSubmitted",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "indexed": true,
336
+ "internalType": "bytes20",
337
+ "name": "walletPubKeyHash",
338
+ "type": "bytes20"
339
+ },
340
+ {
341
+ "indexed": false,
342
+ "internalType": "bytes32",
343
+ "name": "movingFundsTxHash",
344
+ "type": "bytes32"
345
+ }
346
+ ],
347
+ "name": "MovingFundsCompleted",
348
+ "type": "event"
349
+ },
350
+ {
351
+ "anonymous": false,
352
+ "inputs": [
353
+ {
354
+ "indexed": false,
355
+ "internalType": "uint64",
356
+ "name": "movingFundsTxMaxTotalFee",
357
+ "type": "uint64"
358
+ },
359
+ {
360
+ "indexed": false,
361
+ "internalType": "uint64",
362
+ "name": "movingFundsDustThreshold",
363
+ "type": "uint64"
364
+ },
365
+ {
366
+ "indexed": false,
367
+ "internalType": "uint32",
368
+ "name": "movingFundsTimeoutResetDelay",
369
+ "type": "uint32"
370
+ },
371
+ {
372
+ "indexed": false,
373
+ "internalType": "uint32",
374
+ "name": "movingFundsTimeout",
375
+ "type": "uint32"
376
+ },
377
+ {
378
+ "indexed": false,
379
+ "internalType": "uint96",
380
+ "name": "movingFundsTimeoutSlashingAmount",
381
+ "type": "uint96"
382
+ },
383
+ {
384
+ "indexed": false,
385
+ "internalType": "uint256",
386
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
387
+ "type": "uint256"
388
+ },
389
+ {
390
+ "indexed": false,
391
+ "internalType": "uint64",
392
+ "name": "movedFundsSweepTxMaxTotalFee",
393
+ "type": "uint64"
394
+ },
395
+ {
396
+ "indexed": false,
397
+ "internalType": "uint32",
398
+ "name": "movedFundsSweepTimeout",
399
+ "type": "uint32"
400
+ },
401
+ {
402
+ "indexed": false,
403
+ "internalType": "uint96",
404
+ "name": "movedFundsSweepTimeoutSlashingAmount",
405
+ "type": "uint96"
406
+ },
407
+ {
408
+ "indexed": false,
409
+ "internalType": "uint256",
410
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
411
+ "type": "uint256"
412
+ }
413
+ ],
414
+ "name": "MovingFundsParametersUpdated",
415
+ "type": "event"
416
+ },
417
+ {
418
+ "anonymous": false,
419
+ "inputs": [
420
+ {
421
+ "indexed": true,
422
+ "internalType": "bytes20",
423
+ "name": "walletPubKeyHash",
424
+ "type": "bytes20"
425
+ }
426
+ ],
427
+ "name": "MovingFundsTimedOut",
428
+ "type": "event"
429
+ },
430
+ {
431
+ "anonymous": false,
432
+ "inputs": [
433
+ {
434
+ "indexed": true,
435
+ "internalType": "bytes20",
436
+ "name": "walletPubKeyHash",
437
+ "type": "bytes20"
438
+ }
439
+ ],
440
+ "name": "MovingFundsTimeoutReset",
441
+ "type": "event"
442
+ },
443
+ {
444
+ "anonymous": false,
445
+ "inputs": [
446
+ {
447
+ "indexed": true,
448
+ "internalType": "bytes32",
449
+ "name": "ecdsaWalletID",
450
+ "type": "bytes32"
451
+ },
452
+ {
453
+ "indexed": true,
454
+ "internalType": "bytes20",
455
+ "name": "walletPubKeyHash",
456
+ "type": "bytes20"
457
+ }
458
+ ],
459
+ "name": "NewWalletRegistered",
460
+ "type": "event"
461
+ },
462
+ {
463
+ "anonymous": false,
464
+ "inputs": [],
465
+ "name": "NewWalletRequested",
466
+ "type": "event"
467
+ },
468
+ {
469
+ "anonymous": false,
470
+ "inputs": [
471
+ {
472
+ "indexed": false,
473
+ "internalType": "uint64",
474
+ "name": "redemptionDustThreshold",
475
+ "type": "uint64"
476
+ },
477
+ {
478
+ "indexed": false,
479
+ "internalType": "uint64",
480
+ "name": "redemptionTreasuryFeeDivisor",
481
+ "type": "uint64"
482
+ },
483
+ {
484
+ "indexed": false,
485
+ "internalType": "uint64",
486
+ "name": "redemptionTxMaxFee",
487
+ "type": "uint64"
488
+ },
489
+ {
490
+ "indexed": false,
491
+ "internalType": "uint256",
492
+ "name": "redemptionTimeout",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "indexed": false,
497
+ "internalType": "uint96",
498
+ "name": "redemptionTimeoutSlashingAmount",
499
+ "type": "uint96"
500
+ },
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint256",
504
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
505
+ "type": "uint256"
506
+ }
507
+ ],
508
+ "name": "RedemptionParametersUpdated",
509
+ "type": "event"
510
+ },
511
+ {
512
+ "anonymous": false,
513
+ "inputs": [
514
+ {
515
+ "indexed": true,
516
+ "internalType": "bytes20",
517
+ "name": "walletPubKeyHash",
518
+ "type": "bytes20"
519
+ },
520
+ {
521
+ "indexed": false,
522
+ "internalType": "bytes",
523
+ "name": "redeemerOutputScript",
524
+ "type": "bytes"
525
+ },
526
+ {
527
+ "indexed": true,
528
+ "internalType": "address",
529
+ "name": "redeemer",
530
+ "type": "address"
531
+ },
532
+ {
533
+ "indexed": false,
534
+ "internalType": "uint64",
535
+ "name": "requestedAmount",
536
+ "type": "uint64"
537
+ },
538
+ {
539
+ "indexed": false,
540
+ "internalType": "uint64",
541
+ "name": "treasuryFee",
542
+ "type": "uint64"
543
+ },
544
+ {
545
+ "indexed": false,
546
+ "internalType": "uint64",
547
+ "name": "txMaxFee",
548
+ "type": "uint64"
549
+ }
550
+ ],
551
+ "name": "RedemptionRequested",
552
+ "type": "event"
553
+ },
554
+ {
555
+ "anonymous": false,
556
+ "inputs": [
557
+ {
558
+ "indexed": true,
559
+ "internalType": "bytes20",
560
+ "name": "walletPubKeyHash",
561
+ "type": "bytes20"
562
+ },
563
+ {
564
+ "indexed": false,
565
+ "internalType": "bytes",
566
+ "name": "redeemerOutputScript",
567
+ "type": "bytes"
568
+ }
569
+ ],
570
+ "name": "RedemptionTimedOut",
571
+ "type": "event"
572
+ },
573
+ {
574
+ "anonymous": false,
575
+ "inputs": [
576
+ {
577
+ "indexed": true,
578
+ "internalType": "bytes20",
579
+ "name": "walletPubKeyHash",
580
+ "type": "bytes20"
581
+ },
582
+ {
583
+ "indexed": false,
584
+ "internalType": "bytes32",
585
+ "name": "redemptionTxHash",
586
+ "type": "bytes32"
587
+ }
588
+ ],
589
+ "name": "RedemptionsCompleted",
590
+ "type": "event"
591
+ },
592
+ {
593
+ "anonymous": false,
594
+ "inputs": [
595
+ {
596
+ "indexed": true,
597
+ "internalType": "address",
598
+ "name": "vault",
599
+ "type": "address"
600
+ },
601
+ {
602
+ "indexed": false,
603
+ "internalType": "bool",
604
+ "name": "isTrusted",
605
+ "type": "bool"
606
+ }
607
+ ],
608
+ "name": "VaultStatusUpdated",
609
+ "type": "event"
610
+ },
611
+ {
612
+ "anonymous": false,
613
+ "inputs": [
614
+ {
615
+ "indexed": true,
616
+ "internalType": "bytes32",
617
+ "name": "ecdsaWalletID",
618
+ "type": "bytes32"
619
+ },
620
+ {
621
+ "indexed": true,
622
+ "internalType": "bytes20",
623
+ "name": "walletPubKeyHash",
624
+ "type": "bytes20"
625
+ }
626
+ ],
627
+ "name": "WalletClosed",
628
+ "type": "event"
629
+ },
630
+ {
631
+ "anonymous": false,
632
+ "inputs": [
633
+ {
634
+ "indexed": true,
635
+ "internalType": "bytes32",
636
+ "name": "ecdsaWalletID",
637
+ "type": "bytes32"
638
+ },
639
+ {
640
+ "indexed": true,
641
+ "internalType": "bytes20",
642
+ "name": "walletPubKeyHash",
643
+ "type": "bytes20"
644
+ }
645
+ ],
646
+ "name": "WalletClosing",
647
+ "type": "event"
648
+ },
649
+ {
650
+ "anonymous": false,
651
+ "inputs": [
652
+ {
653
+ "indexed": true,
654
+ "internalType": "bytes32",
655
+ "name": "ecdsaWalletID",
656
+ "type": "bytes32"
657
+ },
658
+ {
659
+ "indexed": true,
660
+ "internalType": "bytes20",
661
+ "name": "walletPubKeyHash",
662
+ "type": "bytes20"
663
+ }
664
+ ],
665
+ "name": "WalletMovingFunds",
666
+ "type": "event"
667
+ },
668
+ {
669
+ "anonymous": false,
670
+ "inputs": [
671
+ {
672
+ "indexed": false,
673
+ "internalType": "uint32",
674
+ "name": "walletCreationPeriod",
675
+ "type": "uint32"
676
+ },
677
+ {
678
+ "indexed": false,
679
+ "internalType": "uint64",
680
+ "name": "walletCreationMinBtcBalance",
681
+ "type": "uint64"
682
+ },
683
+ {
684
+ "indexed": false,
685
+ "internalType": "uint64",
686
+ "name": "walletCreationMaxBtcBalance",
687
+ "type": "uint64"
688
+ },
689
+ {
690
+ "indexed": false,
691
+ "internalType": "uint64",
692
+ "name": "walletClosureMinBtcBalance",
693
+ "type": "uint64"
694
+ },
695
+ {
696
+ "indexed": false,
697
+ "internalType": "uint32",
698
+ "name": "walletMaxAge",
699
+ "type": "uint32"
700
+ },
701
+ {
702
+ "indexed": false,
703
+ "internalType": "uint64",
704
+ "name": "walletMaxBtcTransfer",
705
+ "type": "uint64"
706
+ },
707
+ {
708
+ "indexed": false,
709
+ "internalType": "uint32",
710
+ "name": "walletClosingPeriod",
711
+ "type": "uint32"
712
+ }
713
+ ],
714
+ "name": "WalletParametersUpdated",
715
+ "type": "event"
716
+ },
717
+ {
718
+ "anonymous": false,
719
+ "inputs": [
720
+ {
721
+ "indexed": true,
722
+ "internalType": "bytes32",
723
+ "name": "ecdsaWalletID",
724
+ "type": "bytes32"
725
+ },
726
+ {
727
+ "indexed": true,
728
+ "internalType": "bytes20",
729
+ "name": "walletPubKeyHash",
730
+ "type": "bytes20"
731
+ }
732
+ ],
733
+ "name": "WalletTerminated",
734
+ "type": "event"
735
+ },
736
+ {
737
+ "inputs": [
738
+ {
739
+ "internalType": "bytes32",
740
+ "name": "ecdsaWalletID",
741
+ "type": "bytes32"
742
+ },
743
+ {
744
+ "internalType": "bytes32",
745
+ "name": "publicKeyX",
746
+ "type": "bytes32"
747
+ },
748
+ {
749
+ "internalType": "bytes32",
750
+ "name": "publicKeyY",
751
+ "type": "bytes32"
752
+ }
753
+ ],
754
+ "name": "__ecdsaWalletCreatedCallback",
755
+ "outputs": [],
756
+ "stateMutability": "nonpayable",
757
+ "type": "function"
758
+ },
759
+ {
760
+ "inputs": [
761
+ {
762
+ "internalType": "bytes32",
763
+ "name": "",
764
+ "type": "bytes32"
765
+ },
766
+ {
767
+ "internalType": "bytes32",
768
+ "name": "publicKeyX",
769
+ "type": "bytes32"
770
+ },
771
+ {
772
+ "internalType": "bytes32",
773
+ "name": "publicKeyY",
774
+ "type": "bytes32"
775
+ }
776
+ ],
777
+ "name": "__ecdsaWalletHeartbeatFailedCallback",
778
+ "outputs": [],
779
+ "stateMutability": "nonpayable",
780
+ "type": "function"
781
+ },
782
+ {
783
+ "inputs": [],
784
+ "name": "activeWalletPubKeyHash",
785
+ "outputs": [
786
+ {
787
+ "internalType": "bytes20",
788
+ "name": "",
789
+ "type": "bytes20"
790
+ }
791
+ ],
792
+ "stateMutability": "view",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [],
797
+ "name": "contractReferences",
798
+ "outputs": [
799
+ {
800
+ "internalType": "contract Bank",
801
+ "name": "bank",
802
+ "type": "address"
803
+ },
804
+ {
805
+ "internalType": "contract IRelay",
806
+ "name": "relay",
807
+ "type": "address"
808
+ },
809
+ {
810
+ "internalType": "contract IWalletRegistry",
811
+ "name": "ecdsaWalletRegistry",
812
+ "type": "address"
813
+ }
814
+ ],
815
+ "stateMutability": "view",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "bytes",
822
+ "name": "walletPublicKey",
823
+ "type": "bytes"
824
+ },
825
+ {
826
+ "internalType": "bytes",
827
+ "name": "preimage",
828
+ "type": "bytes"
829
+ },
830
+ {
831
+ "internalType": "bool",
832
+ "name": "witness",
833
+ "type": "bool"
834
+ }
835
+ ],
836
+ "name": "defeatFraudChallenge",
837
+ "outputs": [],
838
+ "stateMutability": "nonpayable",
839
+ "type": "function"
840
+ },
841
+ {
842
+ "inputs": [
843
+ {
844
+ "internalType": "bytes",
845
+ "name": "walletPublicKey",
846
+ "type": "bytes"
847
+ },
848
+ {
849
+ "internalType": "bytes",
850
+ "name": "heartbeatMessage",
851
+ "type": "bytes"
852
+ }
853
+ ],
854
+ "name": "defeatFraudChallengeWithHeartbeat",
855
+ "outputs": [],
856
+ "stateMutability": "nonpayable",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [],
861
+ "name": "depositParameters",
862
+ "outputs": [
863
+ {
864
+ "internalType": "uint64",
865
+ "name": "depositDustThreshold",
866
+ "type": "uint64"
867
+ },
868
+ {
869
+ "internalType": "uint64",
870
+ "name": "depositTreasuryFeeDivisor",
871
+ "type": "uint64"
872
+ },
873
+ {
874
+ "internalType": "uint64",
875
+ "name": "depositTxMaxFee",
876
+ "type": "uint64"
877
+ }
878
+ ],
879
+ "stateMutability": "view",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [
884
+ {
885
+ "internalType": "uint256",
886
+ "name": "depositKey",
887
+ "type": "uint256"
888
+ }
889
+ ],
890
+ "name": "deposits",
891
+ "outputs": [
892
+ {
893
+ "components": [
894
+ {
895
+ "internalType": "address",
896
+ "name": "depositor",
897
+ "type": "address"
898
+ },
899
+ {
900
+ "internalType": "uint64",
901
+ "name": "amount",
902
+ "type": "uint64"
903
+ },
904
+ {
905
+ "internalType": "uint32",
906
+ "name": "revealedAt",
907
+ "type": "uint32"
908
+ },
909
+ {
910
+ "internalType": "address",
911
+ "name": "vault",
912
+ "type": "address"
913
+ },
914
+ {
915
+ "internalType": "uint64",
916
+ "name": "treasuryFee",
917
+ "type": "uint64"
918
+ },
919
+ {
920
+ "internalType": "uint32",
921
+ "name": "sweptAt",
922
+ "type": "uint32"
923
+ }
924
+ ],
925
+ "internalType": "struct Deposit.DepositRequest",
926
+ "name": "",
927
+ "type": "tuple"
928
+ }
929
+ ],
930
+ "stateMutability": "view",
931
+ "type": "function"
932
+ },
933
+ {
934
+ "inputs": [
935
+ {
936
+ "internalType": "uint256",
937
+ "name": "challengeKey",
938
+ "type": "uint256"
939
+ }
940
+ ],
941
+ "name": "fraudChallenges",
942
+ "outputs": [
943
+ {
944
+ "components": [
945
+ {
946
+ "internalType": "address",
947
+ "name": "challenger",
948
+ "type": "address"
949
+ },
950
+ {
951
+ "internalType": "uint256",
952
+ "name": "depositAmount",
953
+ "type": "uint256"
954
+ },
955
+ {
956
+ "internalType": "uint32",
957
+ "name": "reportedAt",
958
+ "type": "uint32"
959
+ },
960
+ {
961
+ "internalType": "bool",
962
+ "name": "resolved",
963
+ "type": "bool"
964
+ }
965
+ ],
966
+ "internalType": "struct Fraud.FraudChallenge",
967
+ "name": "",
968
+ "type": "tuple"
969
+ }
970
+ ],
971
+ "stateMutability": "view",
972
+ "type": "function"
973
+ },
974
+ {
975
+ "inputs": [],
976
+ "name": "fraudParameters",
977
+ "outputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "fraudChallengeDepositAmount",
981
+ "type": "uint256"
982
+ },
983
+ {
984
+ "internalType": "uint256",
985
+ "name": "fraudChallengeDefeatTimeout",
986
+ "type": "uint256"
987
+ },
988
+ {
989
+ "internalType": "uint96",
990
+ "name": "fraudSlashingAmount",
991
+ "type": "uint96"
992
+ },
993
+ {
994
+ "internalType": "uint256",
995
+ "name": "fraudNotifierRewardMultiplier",
996
+ "type": "uint256"
997
+ }
998
+ ],
999
+ "stateMutability": "view",
1000
+ "type": "function"
1001
+ },
1002
+ {
1003
+ "inputs": [],
1004
+ "name": "governance",
1005
+ "outputs": [
1006
+ {
1007
+ "internalType": "address",
1008
+ "name": "",
1009
+ "type": "address"
1010
+ }
1011
+ ],
1012
+ "stateMutability": "view",
1013
+ "type": "function"
1014
+ },
1015
+ {
1016
+ "inputs": [
1017
+ {
1018
+ "internalType": "address",
1019
+ "name": "_bank",
1020
+ "type": "address"
1021
+ },
1022
+ {
1023
+ "internalType": "address",
1024
+ "name": "_relay",
1025
+ "type": "address"
1026
+ },
1027
+ {
1028
+ "internalType": "address",
1029
+ "name": "_treasury",
1030
+ "type": "address"
1031
+ },
1032
+ {
1033
+ "internalType": "address",
1034
+ "name": "_ecdsaWalletRegistry",
1035
+ "type": "address"
1036
+ },
1037
+ {
1038
+ "internalType": "uint256",
1039
+ "name": "_txProofDifficultyFactor",
1040
+ "type": "uint256"
1041
+ }
1042
+ ],
1043
+ "name": "initialize",
1044
+ "outputs": [],
1045
+ "stateMutability": "nonpayable",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "vault",
1053
+ "type": "address"
1054
+ }
1055
+ ],
1056
+ "name": "isVaultTrusted",
1057
+ "outputs": [
1058
+ {
1059
+ "internalType": "bool",
1060
+ "name": "",
1061
+ "type": "bool"
1062
+ }
1063
+ ],
1064
+ "stateMutability": "view",
1065
+ "type": "function"
1066
+ },
1067
+ {
1068
+ "inputs": [],
1069
+ "name": "liveWalletsCount",
1070
+ "outputs": [
1071
+ {
1072
+ "internalType": "uint32",
1073
+ "name": "",
1074
+ "type": "uint32"
1075
+ }
1076
+ ],
1077
+ "stateMutability": "view",
1078
+ "type": "function"
1079
+ },
1080
+ {
1081
+ "inputs": [
1082
+ {
1083
+ "internalType": "uint256",
1084
+ "name": "requestKey",
1085
+ "type": "uint256"
1086
+ }
1087
+ ],
1088
+ "name": "movedFundsSweepRequests",
1089
+ "outputs": [
1090
+ {
1091
+ "components": [
1092
+ {
1093
+ "internalType": "bytes20",
1094
+ "name": "walletPubKeyHash",
1095
+ "type": "bytes20"
1096
+ },
1097
+ {
1098
+ "internalType": "uint64",
1099
+ "name": "value",
1100
+ "type": "uint64"
1101
+ },
1102
+ {
1103
+ "internalType": "uint32",
1104
+ "name": "createdAt",
1105
+ "type": "uint32"
1106
+ },
1107
+ {
1108
+ "internalType": "enum MovingFunds.MovedFundsSweepRequestState",
1109
+ "name": "state",
1110
+ "type": "uint8"
1111
+ }
1112
+ ],
1113
+ "internalType": "struct MovingFunds.MovedFundsSweepRequest",
1114
+ "name": "",
1115
+ "type": "tuple"
1116
+ }
1117
+ ],
1118
+ "stateMutability": "view",
1119
+ "type": "function"
1120
+ },
1121
+ {
1122
+ "inputs": [],
1123
+ "name": "movingFundsParameters",
1124
+ "outputs": [
1125
+ {
1126
+ "internalType": "uint64",
1127
+ "name": "movingFundsTxMaxTotalFee",
1128
+ "type": "uint64"
1129
+ },
1130
+ {
1131
+ "internalType": "uint64",
1132
+ "name": "movingFundsDustThreshold",
1133
+ "type": "uint64"
1134
+ },
1135
+ {
1136
+ "internalType": "uint32",
1137
+ "name": "movingFundsTimeoutResetDelay",
1138
+ "type": "uint32"
1139
+ },
1140
+ {
1141
+ "internalType": "uint32",
1142
+ "name": "movingFundsTimeout",
1143
+ "type": "uint32"
1144
+ },
1145
+ {
1146
+ "internalType": "uint96",
1147
+ "name": "movingFundsTimeoutSlashingAmount",
1148
+ "type": "uint96"
1149
+ },
1150
+ {
1151
+ "internalType": "uint256",
1152
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
1153
+ "type": "uint256"
1154
+ },
1155
+ {
1156
+ "internalType": "uint64",
1157
+ "name": "movedFundsSweepTxMaxTotalFee",
1158
+ "type": "uint64"
1159
+ },
1160
+ {
1161
+ "internalType": "uint32",
1162
+ "name": "movedFundsSweepTimeout",
1163
+ "type": "uint32"
1164
+ },
1165
+ {
1166
+ "internalType": "uint96",
1167
+ "name": "movedFundsSweepTimeoutSlashingAmount",
1168
+ "type": "uint96"
1169
+ },
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
1173
+ "type": "uint256"
1174
+ }
1175
+ ],
1176
+ "stateMutability": "view",
1177
+ "type": "function"
1178
+ },
1179
+ {
1180
+ "inputs": [
1181
+ {
1182
+ "internalType": "bytes20",
1183
+ "name": "walletPubKeyHash",
1184
+ "type": "bytes20"
1185
+ },
1186
+ {
1187
+ "components": [
1188
+ {
1189
+ "internalType": "bytes32",
1190
+ "name": "txHash",
1191
+ "type": "bytes32"
1192
+ },
1193
+ {
1194
+ "internalType": "uint32",
1195
+ "name": "txOutputIndex",
1196
+ "type": "uint32"
1197
+ },
1198
+ {
1199
+ "internalType": "uint64",
1200
+ "name": "txOutputValue",
1201
+ "type": "uint64"
1202
+ }
1203
+ ],
1204
+ "internalType": "struct BitcoinTx.UTXO",
1205
+ "name": "walletMainUtxo",
1206
+ "type": "tuple"
1207
+ }
1208
+ ],
1209
+ "name": "notifyCloseableWallet",
1210
+ "outputs": [],
1211
+ "stateMutability": "nonpayable",
1212
+ "type": "function"
1213
+ },
1214
+ {
1215
+ "inputs": [
1216
+ {
1217
+ "internalType": "bytes",
1218
+ "name": "walletPublicKey",
1219
+ "type": "bytes"
1220
+ },
1221
+ {
1222
+ "internalType": "uint32[]",
1223
+ "name": "walletMembersIDs",
1224
+ "type": "uint32[]"
1225
+ },
1226
+ {
1227
+ "internalType": "bytes",
1228
+ "name": "preimageSha256",
1229
+ "type": "bytes"
1230
+ }
1231
+ ],
1232
+ "name": "notifyFraudChallengeDefeatTimeout",
1233
+ "outputs": [],
1234
+ "stateMutability": "nonpayable",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [
1239
+ {
1240
+ "internalType": "bytes32",
1241
+ "name": "movingFundsTxHash",
1242
+ "type": "bytes32"
1243
+ },
1244
+ {
1245
+ "internalType": "uint32",
1246
+ "name": "movingFundsTxOutputIndex",
1247
+ "type": "uint32"
1248
+ },
1249
+ {
1250
+ "internalType": "uint32[]",
1251
+ "name": "walletMembersIDs",
1252
+ "type": "uint32[]"
1253
+ }
1254
+ ],
1255
+ "name": "notifyMovedFundsSweepTimeout",
1256
+ "outputs": [],
1257
+ "stateMutability": "nonpayable",
1258
+ "type": "function"
1259
+ },
1260
+ {
1261
+ "inputs": [
1262
+ {
1263
+ "internalType": "bytes20",
1264
+ "name": "walletPubKeyHash",
1265
+ "type": "bytes20"
1266
+ },
1267
+ {
1268
+ "components": [
1269
+ {
1270
+ "internalType": "bytes32",
1271
+ "name": "txHash",
1272
+ "type": "bytes32"
1273
+ },
1274
+ {
1275
+ "internalType": "uint32",
1276
+ "name": "txOutputIndex",
1277
+ "type": "uint32"
1278
+ },
1279
+ {
1280
+ "internalType": "uint64",
1281
+ "name": "txOutputValue",
1282
+ "type": "uint64"
1283
+ }
1284
+ ],
1285
+ "internalType": "struct BitcoinTx.UTXO",
1286
+ "name": "mainUtxo",
1287
+ "type": "tuple"
1288
+ }
1289
+ ],
1290
+ "name": "notifyMovingFundsBelowDust",
1291
+ "outputs": [],
1292
+ "stateMutability": "nonpayable",
1293
+ "type": "function"
1294
+ },
1295
+ {
1296
+ "inputs": [
1297
+ {
1298
+ "internalType": "bytes20",
1299
+ "name": "walletPubKeyHash",
1300
+ "type": "bytes20"
1301
+ },
1302
+ {
1303
+ "internalType": "uint32[]",
1304
+ "name": "walletMembersIDs",
1305
+ "type": "uint32[]"
1306
+ }
1307
+ ],
1308
+ "name": "notifyMovingFundsTimeout",
1309
+ "outputs": [],
1310
+ "stateMutability": "nonpayable",
1311
+ "type": "function"
1312
+ },
1313
+ {
1314
+ "inputs": [
1315
+ {
1316
+ "internalType": "bytes20",
1317
+ "name": "walletPubKeyHash",
1318
+ "type": "bytes20"
1319
+ },
1320
+ {
1321
+ "internalType": "uint32[]",
1322
+ "name": "walletMembersIDs",
1323
+ "type": "uint32[]"
1324
+ },
1325
+ {
1326
+ "internalType": "bytes",
1327
+ "name": "redeemerOutputScript",
1328
+ "type": "bytes"
1329
+ }
1330
+ ],
1331
+ "name": "notifyRedemptionTimeout",
1332
+ "outputs": [],
1333
+ "stateMutability": "nonpayable",
1334
+ "type": "function"
1335
+ },
1336
+ {
1337
+ "inputs": [
1338
+ {
1339
+ "internalType": "bytes20",
1340
+ "name": "walletPubKeyHash",
1341
+ "type": "bytes20"
1342
+ }
1343
+ ],
1344
+ "name": "notifyWalletClosingPeriodElapsed",
1345
+ "outputs": [],
1346
+ "stateMutability": "nonpayable",
1347
+ "type": "function"
1348
+ },
1349
+ {
1350
+ "inputs": [
1351
+ {
1352
+ "internalType": "uint256",
1353
+ "name": "redemptionKey",
1354
+ "type": "uint256"
1355
+ }
1356
+ ],
1357
+ "name": "pendingRedemptions",
1358
+ "outputs": [
1359
+ {
1360
+ "components": [
1361
+ {
1362
+ "internalType": "address",
1363
+ "name": "redeemer",
1364
+ "type": "address"
1365
+ },
1366
+ {
1367
+ "internalType": "uint64",
1368
+ "name": "requestedAmount",
1369
+ "type": "uint64"
1370
+ },
1371
+ {
1372
+ "internalType": "uint64",
1373
+ "name": "treasuryFee",
1374
+ "type": "uint64"
1375
+ },
1376
+ {
1377
+ "internalType": "uint64",
1378
+ "name": "txMaxFee",
1379
+ "type": "uint64"
1380
+ },
1381
+ {
1382
+ "internalType": "uint32",
1383
+ "name": "requestedAt",
1384
+ "type": "uint32"
1385
+ }
1386
+ ],
1387
+ "internalType": "struct Redemption.RedemptionRequest",
1388
+ "name": "",
1389
+ "type": "tuple"
1390
+ }
1391
+ ],
1392
+ "stateMutability": "view",
1393
+ "type": "function"
1394
+ },
1395
+ {
1396
+ "inputs": [
1397
+ {
1398
+ "internalType": "address",
1399
+ "name": "balanceOwner",
1400
+ "type": "address"
1401
+ },
1402
+ {
1403
+ "internalType": "uint256",
1404
+ "name": "amount",
1405
+ "type": "uint256"
1406
+ },
1407
+ {
1408
+ "internalType": "bytes",
1409
+ "name": "redemptionData",
1410
+ "type": "bytes"
1411
+ }
1412
+ ],
1413
+ "name": "receiveBalanceApproval",
1414
+ "outputs": [],
1415
+ "stateMutability": "nonpayable",
1416
+ "type": "function"
1417
+ },
1418
+ {
1419
+ "inputs": [],
1420
+ "name": "redemptionParameters",
1421
+ "outputs": [
1422
+ {
1423
+ "internalType": "uint64",
1424
+ "name": "redemptionDustThreshold",
1425
+ "type": "uint64"
1426
+ },
1427
+ {
1428
+ "internalType": "uint64",
1429
+ "name": "redemptionTreasuryFeeDivisor",
1430
+ "type": "uint64"
1431
+ },
1432
+ {
1433
+ "internalType": "uint64",
1434
+ "name": "redemptionTxMaxFee",
1435
+ "type": "uint64"
1436
+ },
1437
+ {
1438
+ "internalType": "uint256",
1439
+ "name": "redemptionTimeout",
1440
+ "type": "uint256"
1441
+ },
1442
+ {
1443
+ "internalType": "uint96",
1444
+ "name": "redemptionTimeoutSlashingAmount",
1445
+ "type": "uint96"
1446
+ },
1447
+ {
1448
+ "internalType": "uint256",
1449
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
1450
+ "type": "uint256"
1451
+ }
1452
+ ],
1453
+ "stateMutability": "view",
1454
+ "type": "function"
1455
+ },
1456
+ {
1457
+ "inputs": [
1458
+ {
1459
+ "components": [
1460
+ {
1461
+ "internalType": "bytes32",
1462
+ "name": "txHash",
1463
+ "type": "bytes32"
1464
+ },
1465
+ {
1466
+ "internalType": "uint32",
1467
+ "name": "txOutputIndex",
1468
+ "type": "uint32"
1469
+ },
1470
+ {
1471
+ "internalType": "uint64",
1472
+ "name": "txOutputValue",
1473
+ "type": "uint64"
1474
+ }
1475
+ ],
1476
+ "internalType": "struct BitcoinTx.UTXO",
1477
+ "name": "activeWalletMainUtxo",
1478
+ "type": "tuple"
1479
+ }
1480
+ ],
1481
+ "name": "requestNewWallet",
1482
+ "outputs": [],
1483
+ "stateMutability": "nonpayable",
1484
+ "type": "function"
1485
+ },
1486
+ {
1487
+ "inputs": [
1488
+ {
1489
+ "internalType": "bytes20",
1490
+ "name": "walletPubKeyHash",
1491
+ "type": "bytes20"
1492
+ },
1493
+ {
1494
+ "components": [
1495
+ {
1496
+ "internalType": "bytes32",
1497
+ "name": "txHash",
1498
+ "type": "bytes32"
1499
+ },
1500
+ {
1501
+ "internalType": "uint32",
1502
+ "name": "txOutputIndex",
1503
+ "type": "uint32"
1504
+ },
1505
+ {
1506
+ "internalType": "uint64",
1507
+ "name": "txOutputValue",
1508
+ "type": "uint64"
1509
+ }
1510
+ ],
1511
+ "internalType": "struct BitcoinTx.UTXO",
1512
+ "name": "mainUtxo",
1513
+ "type": "tuple"
1514
+ },
1515
+ {
1516
+ "internalType": "bytes",
1517
+ "name": "redeemerOutputScript",
1518
+ "type": "bytes"
1519
+ },
1520
+ {
1521
+ "internalType": "uint64",
1522
+ "name": "amount",
1523
+ "type": "uint64"
1524
+ }
1525
+ ],
1526
+ "name": "requestRedemption",
1527
+ "outputs": [],
1528
+ "stateMutability": "nonpayable",
1529
+ "type": "function"
1530
+ },
1531
+ {
1532
+ "inputs": [
1533
+ {
1534
+ "internalType": "bytes20",
1535
+ "name": "walletPubKeyHash",
1536
+ "type": "bytes20"
1537
+ }
1538
+ ],
1539
+ "name": "resetMovingFundsTimeout",
1540
+ "outputs": [],
1541
+ "stateMutability": "nonpayable",
1542
+ "type": "function"
1543
+ },
1544
+ {
1545
+ "inputs": [
1546
+ {
1547
+ "components": [
1548
+ {
1549
+ "internalType": "bytes4",
1550
+ "name": "version",
1551
+ "type": "bytes4"
1552
+ },
1553
+ {
1554
+ "internalType": "bytes",
1555
+ "name": "inputVector",
1556
+ "type": "bytes"
1557
+ },
1558
+ {
1559
+ "internalType": "bytes",
1560
+ "name": "outputVector",
1561
+ "type": "bytes"
1562
+ },
1563
+ {
1564
+ "internalType": "bytes4",
1565
+ "name": "locktime",
1566
+ "type": "bytes4"
1567
+ }
1568
+ ],
1569
+ "internalType": "struct BitcoinTx.Info",
1570
+ "name": "fundingTx",
1571
+ "type": "tuple"
1572
+ },
1573
+ {
1574
+ "components": [
1575
+ {
1576
+ "internalType": "uint32",
1577
+ "name": "fundingOutputIndex",
1578
+ "type": "uint32"
1579
+ },
1580
+ {
1581
+ "internalType": "address",
1582
+ "name": "depositor",
1583
+ "type": "address"
1584
+ },
1585
+ {
1586
+ "internalType": "bytes8",
1587
+ "name": "blindingFactor",
1588
+ "type": "bytes8"
1589
+ },
1590
+ {
1591
+ "internalType": "bytes20",
1592
+ "name": "walletPubKeyHash",
1593
+ "type": "bytes20"
1594
+ },
1595
+ {
1596
+ "internalType": "bytes20",
1597
+ "name": "refundPubKeyHash",
1598
+ "type": "bytes20"
1599
+ },
1600
+ {
1601
+ "internalType": "bytes4",
1602
+ "name": "refundLocktime",
1603
+ "type": "bytes4"
1604
+ },
1605
+ {
1606
+ "internalType": "address",
1607
+ "name": "vault",
1608
+ "type": "address"
1609
+ }
1610
+ ],
1611
+ "internalType": "struct Deposit.DepositRevealInfo",
1612
+ "name": "reveal",
1613
+ "type": "tuple"
1614
+ }
1615
+ ],
1616
+ "name": "revealDeposit",
1617
+ "outputs": [],
1618
+ "stateMutability": "nonpayable",
1619
+ "type": "function"
1620
+ },
1621
+ {
1622
+ "inputs": [
1623
+ {
1624
+ "internalType": "address",
1625
+ "name": "vault",
1626
+ "type": "address"
1627
+ },
1628
+ {
1629
+ "internalType": "bool",
1630
+ "name": "isTrusted",
1631
+ "type": "bool"
1632
+ }
1633
+ ],
1634
+ "name": "setVaultStatus",
1635
+ "outputs": [],
1636
+ "stateMutability": "nonpayable",
1637
+ "type": "function"
1638
+ },
1639
+ {
1640
+ "inputs": [
1641
+ {
1642
+ "internalType": "uint256",
1643
+ "name": "utxoKey",
1644
+ "type": "uint256"
1645
+ }
1646
+ ],
1647
+ "name": "spentMainUTXOs",
1648
+ "outputs": [
1649
+ {
1650
+ "internalType": "bool",
1651
+ "name": "",
1652
+ "type": "bool"
1653
+ }
1654
+ ],
1655
+ "stateMutability": "view",
1656
+ "type": "function"
1657
+ },
1658
+ {
1659
+ "inputs": [
1660
+ {
1661
+ "components": [
1662
+ {
1663
+ "internalType": "bytes4",
1664
+ "name": "version",
1665
+ "type": "bytes4"
1666
+ },
1667
+ {
1668
+ "internalType": "bytes",
1669
+ "name": "inputVector",
1670
+ "type": "bytes"
1671
+ },
1672
+ {
1673
+ "internalType": "bytes",
1674
+ "name": "outputVector",
1675
+ "type": "bytes"
1676
+ },
1677
+ {
1678
+ "internalType": "bytes4",
1679
+ "name": "locktime",
1680
+ "type": "bytes4"
1681
+ }
1682
+ ],
1683
+ "internalType": "struct BitcoinTx.Info",
1684
+ "name": "sweepTx",
1685
+ "type": "tuple"
1686
+ },
1687
+ {
1688
+ "components": [
1689
+ {
1690
+ "internalType": "bytes",
1691
+ "name": "merkleProof",
1692
+ "type": "bytes"
1693
+ },
1694
+ {
1695
+ "internalType": "uint256",
1696
+ "name": "txIndexInBlock",
1697
+ "type": "uint256"
1698
+ },
1699
+ {
1700
+ "internalType": "bytes",
1701
+ "name": "bitcoinHeaders",
1702
+ "type": "bytes"
1703
+ }
1704
+ ],
1705
+ "internalType": "struct BitcoinTx.Proof",
1706
+ "name": "sweepProof",
1707
+ "type": "tuple"
1708
+ },
1709
+ {
1710
+ "components": [
1711
+ {
1712
+ "internalType": "bytes32",
1713
+ "name": "txHash",
1714
+ "type": "bytes32"
1715
+ },
1716
+ {
1717
+ "internalType": "uint32",
1718
+ "name": "txOutputIndex",
1719
+ "type": "uint32"
1720
+ },
1721
+ {
1722
+ "internalType": "uint64",
1723
+ "name": "txOutputValue",
1724
+ "type": "uint64"
1725
+ }
1726
+ ],
1727
+ "internalType": "struct BitcoinTx.UTXO",
1728
+ "name": "mainUtxo",
1729
+ "type": "tuple"
1730
+ },
1731
+ {
1732
+ "internalType": "address",
1733
+ "name": "vault",
1734
+ "type": "address"
1735
+ }
1736
+ ],
1737
+ "name": "submitDepositSweepProof",
1738
+ "outputs": [],
1739
+ "stateMutability": "nonpayable",
1740
+ "type": "function"
1741
+ },
1742
+ {
1743
+ "inputs": [
1744
+ {
1745
+ "internalType": "bytes",
1746
+ "name": "walletPublicKey",
1747
+ "type": "bytes"
1748
+ },
1749
+ {
1750
+ "internalType": "bytes",
1751
+ "name": "preimageSha256",
1752
+ "type": "bytes"
1753
+ },
1754
+ {
1755
+ "components": [
1756
+ {
1757
+ "internalType": "bytes32",
1758
+ "name": "r",
1759
+ "type": "bytes32"
1760
+ },
1761
+ {
1762
+ "internalType": "bytes32",
1763
+ "name": "s",
1764
+ "type": "bytes32"
1765
+ },
1766
+ {
1767
+ "internalType": "uint8",
1768
+ "name": "v",
1769
+ "type": "uint8"
1770
+ }
1771
+ ],
1772
+ "internalType": "struct BitcoinTx.RSVSignature",
1773
+ "name": "signature",
1774
+ "type": "tuple"
1775
+ }
1776
+ ],
1777
+ "name": "submitFraudChallenge",
1778
+ "outputs": [],
1779
+ "stateMutability": "payable",
1780
+ "type": "function"
1781
+ },
1782
+ {
1783
+ "inputs": [
1784
+ {
1785
+ "components": [
1786
+ {
1787
+ "internalType": "bytes4",
1788
+ "name": "version",
1789
+ "type": "bytes4"
1790
+ },
1791
+ {
1792
+ "internalType": "bytes",
1793
+ "name": "inputVector",
1794
+ "type": "bytes"
1795
+ },
1796
+ {
1797
+ "internalType": "bytes",
1798
+ "name": "outputVector",
1799
+ "type": "bytes"
1800
+ },
1801
+ {
1802
+ "internalType": "bytes4",
1803
+ "name": "locktime",
1804
+ "type": "bytes4"
1805
+ }
1806
+ ],
1807
+ "internalType": "struct BitcoinTx.Info",
1808
+ "name": "sweepTx",
1809
+ "type": "tuple"
1810
+ },
1811
+ {
1812
+ "components": [
1813
+ {
1814
+ "internalType": "bytes",
1815
+ "name": "merkleProof",
1816
+ "type": "bytes"
1817
+ },
1818
+ {
1819
+ "internalType": "uint256",
1820
+ "name": "txIndexInBlock",
1821
+ "type": "uint256"
1822
+ },
1823
+ {
1824
+ "internalType": "bytes",
1825
+ "name": "bitcoinHeaders",
1826
+ "type": "bytes"
1827
+ }
1828
+ ],
1829
+ "internalType": "struct BitcoinTx.Proof",
1830
+ "name": "sweepProof",
1831
+ "type": "tuple"
1832
+ },
1833
+ {
1834
+ "components": [
1835
+ {
1836
+ "internalType": "bytes32",
1837
+ "name": "txHash",
1838
+ "type": "bytes32"
1839
+ },
1840
+ {
1841
+ "internalType": "uint32",
1842
+ "name": "txOutputIndex",
1843
+ "type": "uint32"
1844
+ },
1845
+ {
1846
+ "internalType": "uint64",
1847
+ "name": "txOutputValue",
1848
+ "type": "uint64"
1849
+ }
1850
+ ],
1851
+ "internalType": "struct BitcoinTx.UTXO",
1852
+ "name": "mainUtxo",
1853
+ "type": "tuple"
1854
+ }
1855
+ ],
1856
+ "name": "submitMovedFundsSweepProof",
1857
+ "outputs": [],
1858
+ "stateMutability": "nonpayable",
1859
+ "type": "function"
1860
+ },
1861
+ {
1862
+ "inputs": [
1863
+ {
1864
+ "internalType": "bytes20",
1865
+ "name": "walletPubKeyHash",
1866
+ "type": "bytes20"
1867
+ },
1868
+ {
1869
+ "components": [
1870
+ {
1871
+ "internalType": "bytes32",
1872
+ "name": "txHash",
1873
+ "type": "bytes32"
1874
+ },
1875
+ {
1876
+ "internalType": "uint32",
1877
+ "name": "txOutputIndex",
1878
+ "type": "uint32"
1879
+ },
1880
+ {
1881
+ "internalType": "uint64",
1882
+ "name": "txOutputValue",
1883
+ "type": "uint64"
1884
+ }
1885
+ ],
1886
+ "internalType": "struct BitcoinTx.UTXO",
1887
+ "name": "walletMainUtxo",
1888
+ "type": "tuple"
1889
+ },
1890
+ {
1891
+ "internalType": "uint32[]",
1892
+ "name": "walletMembersIDs",
1893
+ "type": "uint32[]"
1894
+ },
1895
+ {
1896
+ "internalType": "uint256",
1897
+ "name": "walletMemberIndex",
1898
+ "type": "uint256"
1899
+ },
1900
+ {
1901
+ "internalType": "bytes20[]",
1902
+ "name": "targetWallets",
1903
+ "type": "bytes20[]"
1904
+ }
1905
+ ],
1906
+ "name": "submitMovingFundsCommitment",
1907
+ "outputs": [],
1908
+ "stateMutability": "nonpayable",
1909
+ "type": "function"
1910
+ },
1911
+ {
1912
+ "inputs": [
1913
+ {
1914
+ "components": [
1915
+ {
1916
+ "internalType": "bytes4",
1917
+ "name": "version",
1918
+ "type": "bytes4"
1919
+ },
1920
+ {
1921
+ "internalType": "bytes",
1922
+ "name": "inputVector",
1923
+ "type": "bytes"
1924
+ },
1925
+ {
1926
+ "internalType": "bytes",
1927
+ "name": "outputVector",
1928
+ "type": "bytes"
1929
+ },
1930
+ {
1931
+ "internalType": "bytes4",
1932
+ "name": "locktime",
1933
+ "type": "bytes4"
1934
+ }
1935
+ ],
1936
+ "internalType": "struct BitcoinTx.Info",
1937
+ "name": "movingFundsTx",
1938
+ "type": "tuple"
1939
+ },
1940
+ {
1941
+ "components": [
1942
+ {
1943
+ "internalType": "bytes",
1944
+ "name": "merkleProof",
1945
+ "type": "bytes"
1946
+ },
1947
+ {
1948
+ "internalType": "uint256",
1949
+ "name": "txIndexInBlock",
1950
+ "type": "uint256"
1951
+ },
1952
+ {
1953
+ "internalType": "bytes",
1954
+ "name": "bitcoinHeaders",
1955
+ "type": "bytes"
1956
+ }
1957
+ ],
1958
+ "internalType": "struct BitcoinTx.Proof",
1959
+ "name": "movingFundsProof",
1960
+ "type": "tuple"
1961
+ },
1962
+ {
1963
+ "components": [
1964
+ {
1965
+ "internalType": "bytes32",
1966
+ "name": "txHash",
1967
+ "type": "bytes32"
1968
+ },
1969
+ {
1970
+ "internalType": "uint32",
1971
+ "name": "txOutputIndex",
1972
+ "type": "uint32"
1973
+ },
1974
+ {
1975
+ "internalType": "uint64",
1976
+ "name": "txOutputValue",
1977
+ "type": "uint64"
1978
+ }
1979
+ ],
1980
+ "internalType": "struct BitcoinTx.UTXO",
1981
+ "name": "mainUtxo",
1982
+ "type": "tuple"
1983
+ },
1984
+ {
1985
+ "internalType": "bytes20",
1986
+ "name": "walletPubKeyHash",
1987
+ "type": "bytes20"
1988
+ }
1989
+ ],
1990
+ "name": "submitMovingFundsProof",
1991
+ "outputs": [],
1992
+ "stateMutability": "nonpayable",
1993
+ "type": "function"
1994
+ },
1995
+ {
1996
+ "inputs": [
1997
+ {
1998
+ "components": [
1999
+ {
2000
+ "internalType": "bytes4",
2001
+ "name": "version",
2002
+ "type": "bytes4"
2003
+ },
2004
+ {
2005
+ "internalType": "bytes",
2006
+ "name": "inputVector",
2007
+ "type": "bytes"
2008
+ },
2009
+ {
2010
+ "internalType": "bytes",
2011
+ "name": "outputVector",
2012
+ "type": "bytes"
2013
+ },
2014
+ {
2015
+ "internalType": "bytes4",
2016
+ "name": "locktime",
2017
+ "type": "bytes4"
2018
+ }
2019
+ ],
2020
+ "internalType": "struct BitcoinTx.Info",
2021
+ "name": "redemptionTx",
2022
+ "type": "tuple"
2023
+ },
2024
+ {
2025
+ "components": [
2026
+ {
2027
+ "internalType": "bytes",
2028
+ "name": "merkleProof",
2029
+ "type": "bytes"
2030
+ },
2031
+ {
2032
+ "internalType": "uint256",
2033
+ "name": "txIndexInBlock",
2034
+ "type": "uint256"
2035
+ },
2036
+ {
2037
+ "internalType": "bytes",
2038
+ "name": "bitcoinHeaders",
2039
+ "type": "bytes"
2040
+ }
2041
+ ],
2042
+ "internalType": "struct BitcoinTx.Proof",
2043
+ "name": "redemptionProof",
2044
+ "type": "tuple"
2045
+ },
2046
+ {
2047
+ "components": [
2048
+ {
2049
+ "internalType": "bytes32",
2050
+ "name": "txHash",
2051
+ "type": "bytes32"
2052
+ },
2053
+ {
2054
+ "internalType": "uint32",
2055
+ "name": "txOutputIndex",
2056
+ "type": "uint32"
2057
+ },
2058
+ {
2059
+ "internalType": "uint64",
2060
+ "name": "txOutputValue",
2061
+ "type": "uint64"
2062
+ }
2063
+ ],
2064
+ "internalType": "struct BitcoinTx.UTXO",
2065
+ "name": "mainUtxo",
2066
+ "type": "tuple"
2067
+ },
2068
+ {
2069
+ "internalType": "bytes20",
2070
+ "name": "walletPubKeyHash",
2071
+ "type": "bytes20"
2072
+ }
2073
+ ],
2074
+ "name": "submitRedemptionProof",
2075
+ "outputs": [],
2076
+ "stateMutability": "nonpayable",
2077
+ "type": "function"
2078
+ },
2079
+ {
2080
+ "inputs": [
2081
+ {
2082
+ "internalType": "uint256",
2083
+ "name": "redemptionKey",
2084
+ "type": "uint256"
2085
+ }
2086
+ ],
2087
+ "name": "timedOutRedemptions",
2088
+ "outputs": [
2089
+ {
2090
+ "components": [
2091
+ {
2092
+ "internalType": "address",
2093
+ "name": "redeemer",
2094
+ "type": "address"
2095
+ },
2096
+ {
2097
+ "internalType": "uint64",
2098
+ "name": "requestedAmount",
2099
+ "type": "uint64"
2100
+ },
2101
+ {
2102
+ "internalType": "uint64",
2103
+ "name": "treasuryFee",
2104
+ "type": "uint64"
2105
+ },
2106
+ {
2107
+ "internalType": "uint64",
2108
+ "name": "txMaxFee",
2109
+ "type": "uint64"
2110
+ },
2111
+ {
2112
+ "internalType": "uint32",
2113
+ "name": "requestedAt",
2114
+ "type": "uint32"
2115
+ }
2116
+ ],
2117
+ "internalType": "struct Redemption.RedemptionRequest",
2118
+ "name": "",
2119
+ "type": "tuple"
2120
+ }
2121
+ ],
2122
+ "stateMutability": "view",
2123
+ "type": "function"
2124
+ },
2125
+ {
2126
+ "inputs": [
2127
+ {
2128
+ "internalType": "address",
2129
+ "name": "newGovernance",
2130
+ "type": "address"
2131
+ }
2132
+ ],
2133
+ "name": "transferGovernance",
2134
+ "outputs": [],
2135
+ "stateMutability": "nonpayable",
2136
+ "type": "function"
2137
+ },
2138
+ {
2139
+ "inputs": [],
2140
+ "name": "treasury",
2141
+ "outputs": [
2142
+ {
2143
+ "internalType": "address",
2144
+ "name": "",
2145
+ "type": "address"
2146
+ }
2147
+ ],
2148
+ "stateMutability": "view",
2149
+ "type": "function"
2150
+ },
2151
+ {
2152
+ "inputs": [],
2153
+ "name": "txProofDifficultyFactor",
2154
+ "outputs": [
2155
+ {
2156
+ "internalType": "uint256",
2157
+ "name": "",
2158
+ "type": "uint256"
2159
+ }
2160
+ ],
2161
+ "stateMutability": "view",
2162
+ "type": "function"
2163
+ },
2164
+ {
2165
+ "inputs": [
2166
+ {
2167
+ "internalType": "uint64",
2168
+ "name": "depositDustThreshold",
2169
+ "type": "uint64"
2170
+ },
2171
+ {
2172
+ "internalType": "uint64",
2173
+ "name": "depositTreasuryFeeDivisor",
2174
+ "type": "uint64"
2175
+ },
2176
+ {
2177
+ "internalType": "uint64",
2178
+ "name": "depositTxMaxFee",
2179
+ "type": "uint64"
2180
+ }
2181
+ ],
2182
+ "name": "updateDepositParameters",
2183
+ "outputs": [],
2184
+ "stateMutability": "nonpayable",
2185
+ "type": "function"
2186
+ },
2187
+ {
2188
+ "inputs": [
2189
+ {
2190
+ "internalType": "uint256",
2191
+ "name": "fraudChallengeDepositAmount",
301
2192
  "type": "uint256"
2193
+ },
2194
+ {
2195
+ "internalType": "uint256",
2196
+ "name": "fraudChallengeDefeatTimeout",
2197
+ "type": "uint256"
2198
+ },
2199
+ {
2200
+ "internalType": "uint96",
2201
+ "name": "fraudSlashingAmount",
2202
+ "type": "uint96"
2203
+ },
2204
+ {
2205
+ "internalType": "uint256",
2206
+ "name": "fraudNotifierRewardMultiplier",
2207
+ "type": "uint256"
2208
+ }
2209
+ ],
2210
+ "name": "updateFraudParameters",
2211
+ "outputs": [],
2212
+ "stateMutability": "nonpayable",
2213
+ "type": "function"
2214
+ },
2215
+ {
2216
+ "inputs": [
2217
+ {
2218
+ "internalType": "uint64",
2219
+ "name": "movingFundsTxMaxTotalFee",
2220
+ "type": "uint64"
2221
+ },
2222
+ {
2223
+ "internalType": "uint64",
2224
+ "name": "movingFundsDustThreshold",
2225
+ "type": "uint64"
2226
+ },
2227
+ {
2228
+ "internalType": "uint32",
2229
+ "name": "movingFundsTimeoutResetDelay",
2230
+ "type": "uint32"
2231
+ },
2232
+ {
2233
+ "internalType": "uint32",
2234
+ "name": "movingFundsTimeout",
2235
+ "type": "uint32"
2236
+ },
2237
+ {
2238
+ "internalType": "uint96",
2239
+ "name": "movingFundsTimeoutSlashingAmount",
2240
+ "type": "uint96"
2241
+ },
2242
+ {
2243
+ "internalType": "uint256",
2244
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
2245
+ "type": "uint256"
2246
+ },
2247
+ {
2248
+ "internalType": "uint64",
2249
+ "name": "movedFundsSweepTxMaxTotalFee",
2250
+ "type": "uint64"
2251
+ },
2252
+ {
2253
+ "internalType": "uint32",
2254
+ "name": "movedFundsSweepTimeout",
2255
+ "type": "uint32"
2256
+ },
2257
+ {
2258
+ "internalType": "uint96",
2259
+ "name": "movedFundsSweepTimeoutSlashingAmount",
2260
+ "type": "uint96"
2261
+ },
2262
+ {
2263
+ "internalType": "uint256",
2264
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
2265
+ "type": "uint256"
2266
+ }
2267
+ ],
2268
+ "name": "updateMovingFundsParameters",
2269
+ "outputs": [],
2270
+ "stateMutability": "nonpayable",
2271
+ "type": "function"
2272
+ },
2273
+ {
2274
+ "inputs": [
2275
+ {
2276
+ "internalType": "uint64",
2277
+ "name": "redemptionDustThreshold",
2278
+ "type": "uint64"
2279
+ },
2280
+ {
2281
+ "internalType": "uint64",
2282
+ "name": "redemptionTreasuryFeeDivisor",
2283
+ "type": "uint64"
2284
+ },
2285
+ {
2286
+ "internalType": "uint64",
2287
+ "name": "redemptionTxMaxFee",
2288
+ "type": "uint64"
2289
+ },
2290
+ {
2291
+ "internalType": "uint256",
2292
+ "name": "redemptionTimeout",
2293
+ "type": "uint256"
2294
+ },
2295
+ {
2296
+ "internalType": "uint96",
2297
+ "name": "redemptionTimeoutSlashingAmount",
2298
+ "type": "uint96"
2299
+ },
2300
+ {
2301
+ "internalType": "uint256",
2302
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
2303
+ "type": "uint256"
2304
+ }
2305
+ ],
2306
+ "name": "updateRedemptionParameters",
2307
+ "outputs": [],
2308
+ "stateMutability": "nonpayable",
2309
+ "type": "function"
2310
+ },
2311
+ {
2312
+ "inputs": [
2313
+ {
2314
+ "internalType": "uint32",
2315
+ "name": "walletCreationPeriod",
2316
+ "type": "uint32"
2317
+ },
2318
+ {
2319
+ "internalType": "uint64",
2320
+ "name": "walletCreationMinBtcBalance",
2321
+ "type": "uint64"
2322
+ },
2323
+ {
2324
+ "internalType": "uint64",
2325
+ "name": "walletCreationMaxBtcBalance",
2326
+ "type": "uint64"
2327
+ },
2328
+ {
2329
+ "internalType": "uint64",
2330
+ "name": "walletClosureMinBtcBalance",
2331
+ "type": "uint64"
2332
+ },
2333
+ {
2334
+ "internalType": "uint32",
2335
+ "name": "walletMaxAge",
2336
+ "type": "uint32"
2337
+ },
2338
+ {
2339
+ "internalType": "uint64",
2340
+ "name": "walletMaxBtcTransfer",
2341
+ "type": "uint64"
2342
+ },
2343
+ {
2344
+ "internalType": "uint32",
2345
+ "name": "walletClosingPeriod",
2346
+ "type": "uint32"
302
2347
  }
303
2348
  ],
304
- "name": "unswept",
2349
+ "name": "updateWalletParameters",
2350
+ "outputs": [],
2351
+ "stateMutability": "nonpayable",
2352
+ "type": "function"
2353
+ },
2354
+ {
2355
+ "inputs": [],
2356
+ "name": "walletParameters",
305
2357
  "outputs": [
306
2358
  {
307
- "internalType": "address",
308
- "name": "depositor",
309
- "type": "address"
2359
+ "internalType": "uint32",
2360
+ "name": "walletCreationPeriod",
2361
+ "type": "uint32"
310
2362
  },
311
2363
  {
312
- "internalType": "bytes8",
313
- "name": "amount",
314
- "type": "bytes8"
2364
+ "internalType": "uint64",
2365
+ "name": "walletCreationMinBtcBalance",
2366
+ "type": "uint64"
2367
+ },
2368
+ {
2369
+ "internalType": "uint64",
2370
+ "name": "walletCreationMaxBtcBalance",
2371
+ "type": "uint64"
2372
+ },
2373
+ {
2374
+ "internalType": "uint64",
2375
+ "name": "walletClosureMinBtcBalance",
2376
+ "type": "uint64"
315
2377
  },
316
2378
  {
317
2379
  "internalType": "uint32",
318
- "name": "revealedAt",
2380
+ "name": "walletMaxAge",
319
2381
  "type": "uint32"
320
2382
  },
321
2383
  {
322
- "internalType": "address",
323
- "name": "vault",
324
- "type": "address"
2384
+ "internalType": "uint64",
2385
+ "name": "walletMaxBtcTransfer",
2386
+ "type": "uint64"
2387
+ },
2388
+ {
2389
+ "internalType": "uint32",
2390
+ "name": "walletClosingPeriod",
2391
+ "type": "uint32"
2392
+ }
2393
+ ],
2394
+ "stateMutability": "view",
2395
+ "type": "function"
2396
+ },
2397
+ {
2398
+ "inputs": [
2399
+ {
2400
+ "internalType": "bytes20",
2401
+ "name": "walletPubKeyHash",
2402
+ "type": "bytes20"
2403
+ }
2404
+ ],
2405
+ "name": "wallets",
2406
+ "outputs": [
2407
+ {
2408
+ "components": [
2409
+ {
2410
+ "internalType": "bytes32",
2411
+ "name": "ecdsaWalletID",
2412
+ "type": "bytes32"
2413
+ },
2414
+ {
2415
+ "internalType": "bytes32",
2416
+ "name": "mainUtxoHash",
2417
+ "type": "bytes32"
2418
+ },
2419
+ {
2420
+ "internalType": "uint64",
2421
+ "name": "pendingRedemptionsValue",
2422
+ "type": "uint64"
2423
+ },
2424
+ {
2425
+ "internalType": "uint32",
2426
+ "name": "createdAt",
2427
+ "type": "uint32"
2428
+ },
2429
+ {
2430
+ "internalType": "uint32",
2431
+ "name": "movingFundsRequestedAt",
2432
+ "type": "uint32"
2433
+ },
2434
+ {
2435
+ "internalType": "uint32",
2436
+ "name": "closingStartedAt",
2437
+ "type": "uint32"
2438
+ },
2439
+ {
2440
+ "internalType": "uint32",
2441
+ "name": "pendingMovedFundsSweepRequestsCount",
2442
+ "type": "uint32"
2443
+ },
2444
+ {
2445
+ "internalType": "enum Wallets.WalletState",
2446
+ "name": "state",
2447
+ "type": "uint8"
2448
+ },
2449
+ {
2450
+ "internalType": "bytes32",
2451
+ "name": "movingFundsTargetWalletsCommitmentHash",
2452
+ "type": "bytes32"
2453
+ }
2454
+ ],
2455
+ "internalType": "struct Wallets.Wallet",
2456
+ "name": "",
2457
+ "type": "tuple"
325
2458
  }
326
2459
  ],
327
2460
  "stateMutability": "view",
328
2461
  "type": "function"
329
2462
  }
330
2463
  ],
331
- "bytecode": "0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b62000104565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6131e780620001146000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cf5565b610188565b005b6100c360048036038101906100be9190611d4a565b6107b9565b6040516100d39493929190612455565b60405180910390f35b6100f660048036038101906100f19190611b6a565b610846565b005b61010061096b565b005b61011c60048036038101906101179190611c4a565b6109f3565b005b6101266109f9565b604051610133919061243a565b60405180910390f35b61015660048036038101906101519190611b41565b610a22565b604051610163919061249a565b60405180910390f35b61018660048036038101906101819190611b41565b610a42565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611b41565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611b41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026690612593565b60405180910390fd5b60008160200160208101906102849190611b41565b8260400160208101906102979190611c21565b8360600160208101906102aa9190611ba6565b8460800160208101906102bd9190611ba6565b8560a00160208101906102d09190611bf8565b6040516020016102e49594939291906122ff565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d73565b60ff168580604001906103209190612693565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b3a90919063ffffffff16565b9050600061037e82610d7a565b90506014815114156103e7576103938361111c565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990612633565b60405180910390fd5b6104cb565b60208151141561048f5760028360405161040191906122e8565b602060405180830381855afa15801561041e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104419190611bcf565b61044a826111e9565b1461048a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610481906125b3565b60405180910390fd5b6104ca565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c1906125d3565b60405180910390fd5b5b600061053f8660000160208101906104e39190611bf8565b8780602001906104f39190612693565b8980604001906105039190612693565b8b60600160208101906105169190611bf8565b60405160200161052b9695949392919061229e565b60405160208183030381529060405261120c565b90506000600260008388600001602081019061055b9190611d73565b60405160200161056c929190612272565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612613565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906106329190611b41565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106aa9190611b41565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906107219190611d73565b8960200160208101906107349190611b41565b8a60400160208101906107479190611c21565b8b606001602081019061075a9190611ba6565b8c608001602081019061076d9190611ba6565b8d60a00160208101906107809190611bf8565b8e60c00160208101906107939190611b41565b6040516107a79897969594939291906124b5565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61084e6112d2565b73ffffffffffffffffffffffffffffffffffffffff1661086c6109f9565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906125f3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f8260405161095f919061249a565b60405180910390a25050565b6109736112d2565b73ffffffffffffffffffffffffffffffffffffffff166109916109f9565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906125f3565b60405180910390fd5b6109f160006112da565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a4a6112d2565b73ffffffffffffffffffffffffffffffffffffffff16610a686109f9565b73ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906125f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2590612533565b60405180910390fd5b610b37816112da565b50565b6060600080610b488561139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612553565b60405180910390fd5b808410610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612653565b60405180910390fd5b6060600080846001610c079190612772565b905060005b87811015610cc657610c3582838b51610c2591906129ca565b8b61149a9092919063ffffffff16565b9350610c4084611560565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612573565b60405180910390fd5b8282610cb19190612772565b91508080610cbe90612b98565b915050610c0c565b50610ce881828a51610cd891906129ca565b8a61149a9092919063ffffffff16565b9250610cf383611560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612573565b60405180910390fd5b610d6d81838a61149a9092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610dd791906127c8565b60ff1614610df75760405180602001604052806000815250915050611117565b600083600981518110610e33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610f265760028160ff161015610e6e5760405180602001604052806000815250915050611117565b600083600a81518110610eaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610eca91906129fe565b60ff1681141580610ee9575060208114158015610ee8575060148114155b5b15610f07576040518060200160405280600081525092505050611117565b610f1d600b828661149a9092919063ffffffff16565b92505050611117565b6000610f3f60086003866116449092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce681141561104357601484600b81518110610fa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614158061100557507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d61100260028651610ff091906129ca565b6002876116449092919063ffffffff16565b14155b15611023576040518060200160405280600081525092505050611117565b61103a600c60148661149a9092919063ffffffff16565b92505050611117565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d7811415611102576087846001865161107c91906129ca565b815181106110b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16146110e2576040518060200160405280600081525092505050611117565b6110f9600b60148661149a9092919063ffffffff16565b92505050611117565b50604051806020016040528060008152509150505b919050565b6060600360028360405161113091906122e8565b602060405180830381855afa15801561114d573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111709190611bcf565b6040516020016111809190612257565b60405160208183030381529060405260405161119c91906122e8565b602060405180830381855afa1580156111b9573d6000803e3d6000fd5b5050506040515160601b6040516020016111d3919061223c565b6040516020818303038152906040529050919050565b600080825114156111ff576000801b9050611207565b602082015190505b919050565b60006002808360405161121f91906122e8565b602060405180830381855afa15801561123c573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061125f9190611bcf565b60405160200161126f9190612257565b60405160208183030381529060405260405161128b91906122e8565b602060405180830381855afa1580156112a8573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112cb9190611bcf565b9050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113ac846116b6565b905060008160ff161415611414576000846000815181106113f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050611495565b80600161142191906127c8565b60ff1684511015611459577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050611495565b600061148461147f61147a60018560ff168961149a9092919063ffffffff16565b6117d6565b61193d565b905081818160ff1691509350935050505b915091565b606060008214156114bc57604051806020016040528060008152509050611559565b600082846114ca9190612772565b905083811180156114dc575080855110155b61151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612673565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b808210156115545781518383015260208201915061153b565b505050505b9392505050565b6000600982511015611594577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061163f565b60006115b860088085516115a891906129ca565b8561149a9092919063ffffffff16565b90506000806115c68361139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611621577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505061163f565b8082600961162f9190612772565b6116399190612772565b93505050505b919050565b60008082846116539190612772565b90508381118015611665575080855110155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612673565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561171457600890506117d1565b60fe82600081518110611750577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561177057600490506117d1565b60fd826000815181106117ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156117cc57600290506117d1565b600090505b919050565b60606000825167ffffffffffffffff81111561181b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184d5781602001600182028036833780820191505090505b50905060005b835181101561193357838181518110611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118b091906129ca565b6118ba91906129ca565b815181106118f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061192b90612b98565b915050611853565b5080915050919050565b60008060005b83518110156119f1576001816119599190612772565b845161196591906129ca565b60086119719190612970565b600261197d9190612852565b8482815181106119b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166119d19190612970565b826119dc9190612772565b915080806119e990612b98565b915050611943565b5080915050919050565b6000611a0e611a098461270f565b6126ea565b905082815260208101848484011115611a2657600080fd5b611a31848285612b25565b509392505050565b600081359050611a48816130f9565b92915050565b600081359050611a5d81613110565b92915050565b600081359050611a7281613127565b92915050565b600081519050611a878161313e565b92915050565b600081359050611a9c81613155565b92915050565b600081359050611ab18161316c565b92915050565b600082601f830112611ac857600080fd5b8135611ad88482602086016119fb565b91505092915050565b600060808284031215611af357600080fd5b81905092915050565b600060e08284031215611b0e57600080fd5b81905092915050565b600081359050611b2681613183565b92915050565b600081359050611b3b8161319a565b92915050565b600060208284031215611b5357600080fd5b6000611b6184828501611a39565b91505092915050565b60008060408385031215611b7d57600080fd5b6000611b8b85828601611a39565b9250506020611b9c85828601611a4e565b9150509250929050565b600060208284031215611bb857600080fd5b6000611bc684828501611a63565b91505092915050565b600060208284031215611be157600080fd5b6000611bef84828501611a78565b91505092915050565b600060208284031215611c0a57600080fd5b6000611c1884828501611a8d565b91505092915050565b600060208284031215611c3357600080fd5b6000611c4184828501611aa2565b91505092915050565b60008060008060808587031215611c6057600080fd5b600085013567ffffffffffffffff811115611c7a57600080fd5b611c8687828801611ae1565b945050602085013567ffffffffffffffff811115611ca357600080fd5b611caf87828801611ab7565b9350506040611cc087828801611b17565b925050606085013567ffffffffffffffff811115611cdd57600080fd5b611ce987828801611ab7565b91505092959194509250565b6000806101008385031215611d0957600080fd5b600083013567ffffffffffffffff811115611d2357600080fd5b611d2f85828601611ae1565b9250506020611d4085828601611afc565b9150509250929050565b600060208284031215611d5c57600080fd5b6000611d6a84828501611b17565b91505092915050565b600060208284031215611d8557600080fd5b6000611d9384828501611b2c565b91505092915050565b611da581612a32565b82525050565b611dbc611db782612a32565b612be1565b82525050565b611dcb81612a44565b82525050565b611dda81612a50565b82525050565b611df1611dec82612a50565b612bf3565b82525050565b611e0081612a7c565b82525050565b611e17611e1282612a7c565b612bfd565b82525050565b611e2681612a86565b82525050565b611e3d611e3882612a86565b612c07565b82525050565b611e4c81612ab2565b82525050565b611e63611e5e82612ab2565b612c11565b82525050565b6000611e75838561274b565b9350611e82838584612b25565b82840190509392505050565b6000611e9982612740565b611ea3818561274b565b9350611eb3818560208601612b34565b80840191505092915050565b6000611ecc600183612767565b9150611ed782612cd5565b600182019050919050565b6000611eef600183612767565b9150611efa82612cfe565b600182019050919050565b6000611f12602683612756565b9150611f1d82612d27565b604082019050919050565b6000611f35600183612767565b9150611f4082612d76565b600182019050919050565b6000611f58600183612767565b9150611f6382612d9f565b600182019050919050565b6000611f7b602283612756565b9150611f8682612dc8565b604082019050919050565b6000611f9e601a83612756565b9150611fa982612e17565b602082019050919050565b6000611fc1600183612767565b9150611fcc82612e40565b600182019050919050565b6000611fe4601483612756565b9150611fef82612e69565b602082019050919050565b6000612007600183612767565b915061201282612e92565b600182019050919050565b600061202a600183612767565b915061203582612ebb565b600182019050919050565b600061204d601983612756565b915061205882612ee4565b602082019050919050565b6000612070601883612756565b915061207b82612f0d565b602082019050919050565b6000612093600183612767565b915061209e82612f36565b600182019050919050565b60006120b6602083612756565b91506120c182612f5f565b602082019050919050565b60006120d9600183612767565b91506120e482612f88565b600182019050919050565b60006120fc600183612767565b915061210782612fb1565b600182019050919050565b600061211f601883612756565b915061212a82612fda565b602082019050919050565b6000612142601983612756565b915061214d82613003565b602082019050919050565b6000612165600183612767565b91506121708261302c565b600182019050919050565b6000612188601183612756565b915061219382613055565b602082019050919050565b60006121ab601383612756565b91506121b68261307e565b602082019050919050565b60006121ce600183612767565b91506121d9826130a7565b600182019050919050565b60006121f1600183612767565b91506121fc826130d0565b600182019050919050565b61221081612b08565b82525050565b61221f81612b18565b82525050565b61223661223182612b18565b612c2d565b82525050565b60006122488284611de0565b60148201915081905092915050565b60006122638284611e06565b60208201915081905092915050565b600061227e8285611e06565b60208201915061228e8284612225565b6001820191508190509392505050565b60006122aa8289611e2c565b6004820191506122bb828789611e69565b91506122c8828587611e69565b91506122d48284611e2c565b600482019150819050979650505050505050565b60006122f48284611e8e565b915081905092915050565b600061230a82611fb4565b91506123168288611dab565b60148201915061232582611f4b565b915061233082612158565b915061233c8287611e52565b60088201915061234b82611f4b565b9150612356826120cc565b915061236182611ffa565b915061236c82611fb4565b91506123788286611de0565b60148201915061238782612086565b915061239282611ebf565b915061239d826121e4565b91506123a882611ee2565b91506123b3826120cc565b91506123be82611ffa565b91506123c982611fb4565b91506123d58285611de0565b6014820191506123e482611f28565b91506123ef826121c1565b91506123fb8284611e2c565b60048201915061240a8261201d565b915061241582611f4b565b9150612420826121e4565b915061242b826120ef565b91508190509695505050505050565b600060208201905061244f6000830184611d9c565b92915050565b600060808201905061246a6000830187611d9c565b6124776020830186611e43565b6124846040830185612207565b6124916060830184611d9c565b95945050505050565b60006020820190506124af6000830184611dc2565b92915050565b6000610100820190506124cb600083018b611df7565b6124d8602083018a612216565b6124e56040830189611d9c565b6124f26060830188611e43565b6124ff6080830187611dd1565b61250c60a0830186611dd1565b61251960c0830185611e1d565b61252660e0830184611d9c565b9998505050505050505050565b6000602082019050818103600083015261254c81611f05565b9050919050565b6000602082019050818103600083015261256c81611f6e565b9050919050565b6000602082019050818103600083015261258c81611f91565b9050919050565b600060208201905081810360008301526125ac81611fd7565b9050919050565b600060208201905081810360008301526125cc81612040565b9050919050565b600060208201905081810360008301526125ec81612063565b9050919050565b6000602082019050818103600083015261260c816120a9565b9050919050565b6000602082019050818103600083015261262c81612112565b9050919050565b6000602082019050818103600083015261264c81612135565b9050919050565b6000602082019050818103600083015261266c8161217b565b9050919050565b6000602082019050818103600083015261268c8161219e565b9050919050565b600080833560016020038436030381126126ac57600080fd5b80840192508235915067ffffffffffffffff8211156126ca57600080fd5b6020830192506001820236038313156126e257600080fd5b509250929050565b60006126f4612705565b90506127008282612b67565b919050565b6000604051905090565b600067ffffffffffffffff82111561272a57612729612c6e565b5b61273382612c9d565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061277d82612afe565b915061278883612afe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127bd576127bc612c3f565b5b828201905092915050565b60006127d382612b18565b91506127de83612b18565b92508260ff038211156127f4576127f3612c3f565b5b828201905092915050565b6000808291508390505b60018511156128495780860481111561282557612824612c3f565b5b60018516156128345780820291505b808102905061284285612cc8565b9450612809565b94509492505050565b600061285d82612afe565b915061286883612afe565b92506128957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461289d565b905092915050565b6000826128ad5760019050612969565b816128bb5760009050612969565b81600181146128d157600281146128db5761290a565b6001915050612969565b60ff8411156128ed576128ec612c3f565b5b8360020a91508482111561290457612903612c3f565b5b50612969565b5060208310610133831016604e8410600b841016171561293f5782820a90508381111561293a57612939612c3f565b5b612969565b61294c84848460016127ff565b9250905081840481111561296357612962612c3f565b5b81810290505b9392505050565b600061297b82612afe565b915061298683612afe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bf576129be612c3f565b5b828202905092915050565b60006129d582612afe565b91506129e083612afe565b9250828210156129f3576129f2612c3f565b5b828203905092915050565b6000612a0982612b18565b9150612a1483612b18565b925082821015612a2757612a26612c3f565b5b828203905092915050565b6000612a3d82612ade565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b52578082015181840152602081019050612b37565b83811115612b61576000848401525b50505050565b612b7082612c9d565b810181811067ffffffffffffffff82111715612b8f57612b8e612c6e565b5b80604052505050565b6000612ba382612afe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bd657612bd5612c3f565b5b600182019050919050565b6000612bec82612c1b565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612c2682612cbb565b9050919050565b6000612c3882612cae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61310281612a32565b811461310d57600080fd5b50565b61311981612a44565b811461312457600080fd5b50565b61313081612a50565b811461313b57600080fd5b50565b61314781612a7c565b811461315257600080fd5b50565b61315e81612a86565b811461316957600080fd5b50565b61317581612ab2565b811461318057600080fd5b50565b61318c81612afe565b811461319757600080fd5b50565b6131a381612b18565b81146131ae57600080fd5b5056fea264697066735822122079bf88bf7acdd1303b23799e487320e530481f36051202aa20c67e3155e569e564736f6c63430008040033",
332
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cf5565b610188565b005b6100c360048036038101906100be9190611d4a565b6107b9565b6040516100d39493929190612455565b60405180910390f35b6100f660048036038101906100f19190611b6a565b610846565b005b61010061096b565b005b61011c60048036038101906101179190611c4a565b6109f3565b005b6101266109f9565b604051610133919061243a565b60405180910390f35b61015660048036038101906101519190611b41565b610a22565b604051610163919061249a565b60405180910390f35b61018660048036038101906101819190611b41565b610a42565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611b41565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611b41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026690612593565b60405180910390fd5b60008160200160208101906102849190611b41565b8260400160208101906102979190611c21565b8360600160208101906102aa9190611ba6565b8460800160208101906102bd9190611ba6565b8560a00160208101906102d09190611bf8565b6040516020016102e49594939291906122ff565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d73565b60ff168580604001906103209190612693565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b3a90919063ffffffff16565b9050600061037e82610d7a565b90506014815114156103e7576103938361111c565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990612633565b60405180910390fd5b6104cb565b60208151141561048f5760028360405161040191906122e8565b602060405180830381855afa15801561041e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104419190611bcf565b61044a826111e9565b1461048a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610481906125b3565b60405180910390fd5b6104ca565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c1906125d3565b60405180910390fd5b5b600061053f8660000160208101906104e39190611bf8565b8780602001906104f39190612693565b8980604001906105039190612693565b8b60600160208101906105169190611bf8565b60405160200161052b9695949392919061229e565b60405160208183030381529060405261120c565b90506000600260008388600001602081019061055b9190611d73565b60405160200161056c929190612272565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612613565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906106329190611b41565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106aa9190611b41565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906107219190611d73565b8960200160208101906107349190611b41565b8a60400160208101906107479190611c21565b8b606001602081019061075a9190611ba6565b8c608001602081019061076d9190611ba6565b8d60a00160208101906107809190611bf8565b8e60c00160208101906107939190611b41565b6040516107a79897969594939291906124b5565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61084e6112d2565b73ffffffffffffffffffffffffffffffffffffffff1661086c6109f9565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906125f3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f8260405161095f919061249a565b60405180910390a25050565b6109736112d2565b73ffffffffffffffffffffffffffffffffffffffff166109916109f9565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906125f3565b60405180910390fd5b6109f160006112da565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a4a6112d2565b73ffffffffffffffffffffffffffffffffffffffff16610a686109f9565b73ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906125f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2590612533565b60405180910390fd5b610b37816112da565b50565b6060600080610b488561139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612553565b60405180910390fd5b808410610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612653565b60405180910390fd5b6060600080846001610c079190612772565b905060005b87811015610cc657610c3582838b51610c2591906129ca565b8b61149a9092919063ffffffff16565b9350610c4084611560565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612573565b60405180910390fd5b8282610cb19190612772565b91508080610cbe90612b98565b915050610c0c565b50610ce881828a51610cd891906129ca565b8a61149a9092919063ffffffff16565b9250610cf383611560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612573565b60405180910390fd5b610d6d81838a61149a9092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610dd791906127c8565b60ff1614610df75760405180602001604052806000815250915050611117565b600083600981518110610e33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610f265760028160ff161015610e6e5760405180602001604052806000815250915050611117565b600083600a81518110610eaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610eca91906129fe565b60ff1681141580610ee9575060208114158015610ee8575060148114155b5b15610f07576040518060200160405280600081525092505050611117565b610f1d600b828661149a9092919063ffffffff16565b92505050611117565b6000610f3f60086003866116449092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce681141561104357601484600b81518110610fa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614158061100557507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d61100260028651610ff091906129ca565b6002876116449092919063ffffffff16565b14155b15611023576040518060200160405280600081525092505050611117565b61103a600c60148661149a9092919063ffffffff16565b92505050611117565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d7811415611102576087846001865161107c91906129ca565b815181106110b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16146110e2576040518060200160405280600081525092505050611117565b6110f9600b60148661149a9092919063ffffffff16565b92505050611117565b50604051806020016040528060008152509150505b919050565b6060600360028360405161113091906122e8565b602060405180830381855afa15801561114d573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111709190611bcf565b6040516020016111809190612257565b60405160208183030381529060405260405161119c91906122e8565b602060405180830381855afa1580156111b9573d6000803e3d6000fd5b5050506040515160601b6040516020016111d3919061223c565b6040516020818303038152906040529050919050565b600080825114156111ff576000801b9050611207565b602082015190505b919050565b60006002808360405161121f91906122e8565b602060405180830381855afa15801561123c573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061125f9190611bcf565b60405160200161126f9190612257565b60405160208183030381529060405260405161128b91906122e8565b602060405180830381855afa1580156112a8573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112cb9190611bcf565b9050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113ac846116b6565b905060008160ff161415611414576000846000815181106113f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050611495565b80600161142191906127c8565b60ff1684511015611459577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050611495565b600061148461147f61147a60018560ff168961149a9092919063ffffffff16565b6117d6565b61193d565b905081818160ff1691509350935050505b915091565b606060008214156114bc57604051806020016040528060008152509050611559565b600082846114ca9190612772565b905083811180156114dc575080855110155b61151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612673565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b808210156115545781518383015260208201915061153b565b505050505b9392505050565b6000600982511015611594577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061163f565b60006115b860088085516115a891906129ca565b8561149a9092919063ffffffff16565b90506000806115c68361139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611621577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505061163f565b8082600961162f9190612772565b6116399190612772565b93505050505b919050565b60008082846116539190612772565b90508381118015611665575080855110155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612673565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561171457600890506117d1565b60fe82600081518110611750577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561177057600490506117d1565b60fd826000815181106117ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156117cc57600290506117d1565b600090505b919050565b60606000825167ffffffffffffffff81111561181b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184d5781602001600182028036833780820191505090505b50905060005b835181101561193357838181518110611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118b091906129ca565b6118ba91906129ca565b815181106118f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061192b90612b98565b915050611853565b5080915050919050565b60008060005b83518110156119f1576001816119599190612772565b845161196591906129ca565b60086119719190612970565b600261197d9190612852565b8482815181106119b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166119d19190612970565b826119dc9190612772565b915080806119e990612b98565b915050611943565b5080915050919050565b6000611a0e611a098461270f565b6126ea565b905082815260208101848484011115611a2657600080fd5b611a31848285612b25565b509392505050565b600081359050611a48816130f9565b92915050565b600081359050611a5d81613110565b92915050565b600081359050611a7281613127565b92915050565b600081519050611a878161313e565b92915050565b600081359050611a9c81613155565b92915050565b600081359050611ab18161316c565b92915050565b600082601f830112611ac857600080fd5b8135611ad88482602086016119fb565b91505092915050565b600060808284031215611af357600080fd5b81905092915050565b600060e08284031215611b0e57600080fd5b81905092915050565b600081359050611b2681613183565b92915050565b600081359050611b3b8161319a565b92915050565b600060208284031215611b5357600080fd5b6000611b6184828501611a39565b91505092915050565b60008060408385031215611b7d57600080fd5b6000611b8b85828601611a39565b9250506020611b9c85828601611a4e565b9150509250929050565b600060208284031215611bb857600080fd5b6000611bc684828501611a63565b91505092915050565b600060208284031215611be157600080fd5b6000611bef84828501611a78565b91505092915050565b600060208284031215611c0a57600080fd5b6000611c1884828501611a8d565b91505092915050565b600060208284031215611c3357600080fd5b6000611c4184828501611aa2565b91505092915050565b60008060008060808587031215611c6057600080fd5b600085013567ffffffffffffffff811115611c7a57600080fd5b611c8687828801611ae1565b945050602085013567ffffffffffffffff811115611ca357600080fd5b611caf87828801611ab7565b9350506040611cc087828801611b17565b925050606085013567ffffffffffffffff811115611cdd57600080fd5b611ce987828801611ab7565b91505092959194509250565b6000806101008385031215611d0957600080fd5b600083013567ffffffffffffffff811115611d2357600080fd5b611d2f85828601611ae1565b9250506020611d4085828601611afc565b9150509250929050565b600060208284031215611d5c57600080fd5b6000611d6a84828501611b17565b91505092915050565b600060208284031215611d8557600080fd5b6000611d9384828501611b2c565b91505092915050565b611da581612a32565b82525050565b611dbc611db782612a32565b612be1565b82525050565b611dcb81612a44565b82525050565b611dda81612a50565b82525050565b611df1611dec82612a50565b612bf3565b82525050565b611e0081612a7c565b82525050565b611e17611e1282612a7c565b612bfd565b82525050565b611e2681612a86565b82525050565b611e3d611e3882612a86565b612c07565b82525050565b611e4c81612ab2565b82525050565b611e63611e5e82612ab2565b612c11565b82525050565b6000611e75838561274b565b9350611e82838584612b25565b82840190509392505050565b6000611e9982612740565b611ea3818561274b565b9350611eb3818560208601612b34565b80840191505092915050565b6000611ecc600183612767565b9150611ed782612cd5565b600182019050919050565b6000611eef600183612767565b9150611efa82612cfe565b600182019050919050565b6000611f12602683612756565b9150611f1d82612d27565b604082019050919050565b6000611f35600183612767565b9150611f4082612d76565b600182019050919050565b6000611f58600183612767565b9150611f6382612d9f565b600182019050919050565b6000611f7b602283612756565b9150611f8682612dc8565b604082019050919050565b6000611f9e601a83612756565b9150611fa982612e17565b602082019050919050565b6000611fc1600183612767565b9150611fcc82612e40565b600182019050919050565b6000611fe4601483612756565b9150611fef82612e69565b602082019050919050565b6000612007600183612767565b915061201282612e92565b600182019050919050565b600061202a600183612767565b915061203582612ebb565b600182019050919050565b600061204d601983612756565b915061205882612ee4565b602082019050919050565b6000612070601883612756565b915061207b82612f0d565b602082019050919050565b6000612093600183612767565b915061209e82612f36565b600182019050919050565b60006120b6602083612756565b91506120c182612f5f565b602082019050919050565b60006120d9600183612767565b91506120e482612f88565b600182019050919050565b60006120fc600183612767565b915061210782612fb1565b600182019050919050565b600061211f601883612756565b915061212a82612fda565b602082019050919050565b6000612142601983612756565b915061214d82613003565b602082019050919050565b6000612165600183612767565b91506121708261302c565b600182019050919050565b6000612188601183612756565b915061219382613055565b602082019050919050565b60006121ab601383612756565b91506121b68261307e565b602082019050919050565b60006121ce600183612767565b91506121d9826130a7565b600182019050919050565b60006121f1600183612767565b91506121fc826130d0565b600182019050919050565b61221081612b08565b82525050565b61221f81612b18565b82525050565b61223661223182612b18565b612c2d565b82525050565b60006122488284611de0565b60148201915081905092915050565b60006122638284611e06565b60208201915081905092915050565b600061227e8285611e06565b60208201915061228e8284612225565b6001820191508190509392505050565b60006122aa8289611e2c565b6004820191506122bb828789611e69565b91506122c8828587611e69565b91506122d48284611e2c565b600482019150819050979650505050505050565b60006122f48284611e8e565b915081905092915050565b600061230a82611fb4565b91506123168288611dab565b60148201915061232582611f4b565b915061233082612158565b915061233c8287611e52565b60088201915061234b82611f4b565b9150612356826120cc565b915061236182611ffa565b915061236c82611fb4565b91506123788286611de0565b60148201915061238782612086565b915061239282611ebf565b915061239d826121e4565b91506123a882611ee2565b91506123b3826120cc565b91506123be82611ffa565b91506123c982611fb4565b91506123d58285611de0565b6014820191506123e482611f28565b91506123ef826121c1565b91506123fb8284611e2c565b60048201915061240a8261201d565b915061241582611f4b565b9150612420826121e4565b915061242b826120ef565b91508190509695505050505050565b600060208201905061244f6000830184611d9c565b92915050565b600060808201905061246a6000830187611d9c565b6124776020830186611e43565b6124846040830185612207565b6124916060830184611d9c565b95945050505050565b60006020820190506124af6000830184611dc2565b92915050565b6000610100820190506124cb600083018b611df7565b6124d8602083018a612216565b6124e56040830189611d9c565b6124f26060830188611e43565b6124ff6080830187611dd1565b61250c60a0830186611dd1565b61251960c0830185611e1d565b61252660e0830184611d9c565b9998505050505050505050565b6000602082019050818103600083015261254c81611f05565b9050919050565b6000602082019050818103600083015261256c81611f6e565b9050919050565b6000602082019050818103600083015261258c81611f91565b9050919050565b600060208201905081810360008301526125ac81611fd7565b9050919050565b600060208201905081810360008301526125cc81612040565b9050919050565b600060208201905081810360008301526125ec81612063565b9050919050565b6000602082019050818103600083015261260c816120a9565b9050919050565b6000602082019050818103600083015261262c81612112565b9050919050565b6000602082019050818103600083015261264c81612135565b9050919050565b6000602082019050818103600083015261266c8161217b565b9050919050565b6000602082019050818103600083015261268c8161219e565b9050919050565b600080833560016020038436030381126126ac57600080fd5b80840192508235915067ffffffffffffffff8211156126ca57600080fd5b6020830192506001820236038313156126e257600080fd5b509250929050565b60006126f4612705565b90506127008282612b67565b919050565b6000604051905090565b600067ffffffffffffffff82111561272a57612729612c6e565b5b61273382612c9d565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061277d82612afe565b915061278883612afe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127bd576127bc612c3f565b5b828201905092915050565b60006127d382612b18565b91506127de83612b18565b92508260ff038211156127f4576127f3612c3f565b5b828201905092915050565b6000808291508390505b60018511156128495780860481111561282557612824612c3f565b5b60018516156128345780820291505b808102905061284285612cc8565b9450612809565b94509492505050565b600061285d82612afe565b915061286883612afe565b92506128957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461289d565b905092915050565b6000826128ad5760019050612969565b816128bb5760009050612969565b81600181146128d157600281146128db5761290a565b6001915050612969565b60ff8411156128ed576128ec612c3f565b5b8360020a91508482111561290457612903612c3f565b5b50612969565b5060208310610133831016604e8410600b841016171561293f5782820a90508381111561293a57612939612c3f565b5b612969565b61294c84848460016127ff565b9250905081840481111561296357612962612c3f565b5b81810290505b9392505050565b600061297b82612afe565b915061298683612afe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bf576129be612c3f565b5b828202905092915050565b60006129d582612afe565b91506129e083612afe565b9250828210156129f3576129f2612c3f565b5b828203905092915050565b6000612a0982612b18565b9150612a1483612b18565b925082821015612a2757612a26612c3f565b5b828203905092915050565b6000612a3d82612ade565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b52578082015181840152602081019050612b37565b83811115612b61576000848401525b50505050565b612b7082612c9d565b810181811067ffffffffffffffff82111715612b8f57612b8e612c6e565b5b80604052505050565b6000612ba382612afe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bd657612bd5612c3f565b5b600182019050919050565b6000612bec82612c1b565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612c2682612cbb565b9050919050565b6000612c3882612cae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61310281612a32565b811461310d57600080fd5b50565b61311981612a44565b811461312457600080fd5b50565b61313081612a50565b811461313b57600080fd5b50565b61314781612a7c565b811461315257600080fd5b50565b61315e81612a86565b811461316957600080fd5b50565b61317581612ab2565b811461318057600080fd5b50565b61318c81612afe565b811461319757600080fd5b50565b6131a381612b18565b81146131ae57600080fd5b5056fea264697066735822122079bf88bf7acdd1303b23799e487320e530481f36051202aa20c67e3155e569e564736f6c63430008040033",
333
- "linkReferences": {},
334
- "deployedLinkReferences": {}
2464
+ "bytecode": "0x608060405234801561001057600080fd5b50614c7b806100206000396000f3fe60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220e9dd5a6e4c4da391d443462da020bd48dfe3042e705bb48dfcd2145ec392ea5564736f6c63430008090033",
2465
+ "deployedBytecode": "0x60806040526004361061031e5760003560e01c806379fc4eb3116101a5578063b34b3216116100ec578063d6eccdf011610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063d6eccdf014610e0e578063ded1d24a14610e2e578063e53c0b5514610e5a57600080fd5b8063c42b64d0116100c6578063c42b64d014610d83578063c8b5d2db14610dce578063d38bfff414610dee57600080fd5b8063b34b321614610c8d578063b7d372a414610cad578063be05abe314610ccd57600080fd5b8063a9de2f3a1161014e578063b2146cd611610128578063b2146cd614610c0d578063b216bd3514610c4d578063b29a604b14610c6d57600080fd5b8063a9de2f3a14610a6b578063abaeed8f14610aab578063b02c43d014610acb57600080fd5b80639c49c4181161017f5780639c49c41814610a0b578063a145e2d514610a2b578063a8fa0f4214610a4b57600080fd5b806379fc4eb3146109ab578063883d6a11146109cb57806392238f32146109eb57600080fd5b8063475d05701161026957806361ccf97a116102125780636e70ce41116101ec5780636e70ce41146108b257806375b922d11461094457806377145f211461098b57600080fd5b806361ccf97a146107f157806361d027b314610881578063685ce1b11461089f57600080fd5b80635aa6e675116102435780635aa6e675146107795780635c0b4812146107b157806360d712fc146107d157600080fd5b8063475d05701461071957806350aea15a14610739578063575e42791461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b61046636600461388a565b610f2d565b005b34801561047957600080fd5b5061046b610488366004613925565b610fbc565b34801561049957600080fd5b506103e06104a8366004613829565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b610565366004613982565b611045565b34801561057657600080fd5b5061046b610585366004613a1e565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a61565b61110f565b34801561060657600080fd5b5061046b610615366004613b1f565b611166565b34801561062657600080fd5b506106b5610635366004613829565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b9f565b6111f8565b34801561072557600080fd5b5061046b610734366004613bcb565b611288565b34801561074557600080fd5b5061046b610754366004613c2c565b61132a565b34801561076557600080fd5b5061046b610774366004613925565b611383565b34801561078557600080fd5b50600054610799906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b3480156107bd57600080fd5b5061046b6107cc366004613c79565b6113d8565b3480156107dd57600080fd5b5061046b6107ec366004613ce3565b61142d565b3480156107fd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561088d57600080fd5b506037546001600160a01b0316610799565b61046b6108ad366004613daf565b6114e6565b3480156108be57600080fd5b506108fd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561095057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561099757600080fd5b5061046b6109a6366004613e1e565b61153f565b3480156109b757600080fd5b5061046b6109c6366004613e9e565b61159a565b3480156109d757600080fd5b5061046b6109e6366004613f31565b6115f5565b3480156109f757600080fd5b5061046b610a06366004613fb7565b611660565b348015610a1757600080fd5b5061046b610a26366004614020565b6116b7565b348015610a3757600080fd5b5061046b610a463660046140cc565b611731565b348015610a5757600080fd5b5061046b610a66366004613b9f565b6117b7565b348015610a7757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610ab757600080fd5b5061046b610ac63660046140ef565b61181d565b348015610ad757600080fd5b50610b98610ae6366004613829565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610c1957600080fd5b50610c3d610c28366004613829565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c5957600080fd5b5061046b610c6836600461418a565b6118b5565b348015610c7957600080fd5b5061046b610c883660046141f0565b61191f565b348015610c9957600080fd5b5061046b610ca8366004613a61565b61198d565b348015610cb957600080fd5b5061046b610cc836600461422d565b6119e6565b348015610cd957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d8f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dda57600080fd5b5061046b610de9366004614298565b611a3d565b348015610dfa57600080fd5b5061046b610e093660046142b3565b611a4b565b348015610e1a57600080fd5b5061046b610e293660046142ce565b611b2a565b348015610e3a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e6657600080fd5b50610c3d610e753660046142b3565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614298565b611b87565b6040516104429190614362565b348015610ecc57600080fd5b5061046b610edb366004614298565b611caa565b348015610eec57600080fd5b50610f00610efb366004613829565b611d0b565b6040516104429190614406565b348015610f1957600080fd5b5061046b610f2836600461445e565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144e3565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde906110119060339086908690600401614555565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f869060339088908890889088906004016146b2565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f86906033908890889088908890600401614706565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c1906033908990899089908990899060040161479f565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147e9565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f8690603390889088908890889060040161482c565b6040517f99b0b84700000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__906399b0b847906110119060339086908690600401614555565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614858565b6000546001600160a01b031633146114875760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f869060339088908890889088906004016149b2565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c19060339089908990899089908990600401614a19565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a5c565b6000546001600160a01b0316331461164f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a9d565b6000546001600160a01b031633146117115760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61172560338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb190611784906033908590600401614ac7565b60006040518083038186803b15801561179c57600080fd5b505af41580156117b0573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f779439061187c906033908b908b908b908b908b908b908b90600401614adb565b60006040518083038186803b15801561189457600080fd5b505af41580156118a8573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461190f5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119795760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119876033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f86906033908890889088908890600401614706565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b66565b611a48603382613420565b50565b6000546001600160a01b03163314611aa55760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611b215760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b611a4881613578565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614baa565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614338565b6005811115611c9557611c95614338565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d90604401611784565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614338565b6003811115611dbb57611dbb614338565b90525092915050565b6000611dd060016135e6565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613578565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614338565b146134d05760405162461bcd60e51b815260206004820152602560248201527f45434453412077616c6c6574206d75737420626520696e20436c6f73696e672060448201527f737461746500000000000000000000000000000000000000000000000000000060648201526084016110f4565b601c83015460028201546134f49163ffffffff90811691600160801b900416614c0f565b63ffffffff16421161356e5760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a8383613721565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff1615613685578160ff16600114801561360b5750303b155b61367d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106137025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137fb9160040190815260200190565b600060405180830381600087803b15801561381557600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561383b57600080fd5b5035919050565b60008083601f84011261385457600080fd5b5081356001600160401b0381111561386b57600080fd5b60208301915083602082850101111561388357600080fd5b9250929050565b600080600080604085870312156138a057600080fd5b84356001600160401b03808211156138b757600080fd5b6138c388838901613842565b909650945060208701359150808211156138dc57600080fd5b506138e987828801613842565b95989497509550505050565b80356001600160601b03198116811461371c57600080fd5b60006060828403121561391f57600080fd5b50919050565b6000806080838503121561393857600080fd5b613941836138f5565b9150613950846020850161390d565b90509250929050565b60006080828403121561391f57600080fd5b80356001600160a01b038116811461371c57600080fd5b60008060008060c0858703121561399857600080fd5b84356001600160401b03808211156139af57600080fd5b6139bb88838901613959565b955060208701359150808211156139d157600080fd5b506139de8782880161390d565b9350506139ee866040870161390d565b91506139fc60a0860161396b565b905092959194509250565b80356001600160401b038116811461371c57600080fd5b600080600060608486031215613a3357600080fd5b613a3c84613a07565b9250613a4a60208501613a07565b9150613a5860408501613a07565b90509250925092565b60008060008060c08587031215613a7757600080fd5b84356001600160401b0380821115613a8e57600080fd5b613a9a88838901613959565b95506020870135915080821115613ab057600080fd5b50613abd8782880161390d565b935050613acd866040870161390d565b91506139fc60a086016138f5565b60008083601f840112613aed57600080fd5b5081356001600160401b03811115613b0457600080fd5b6020830191508360208260051b850101111561388357600080fd5b600080600080600060608688031215613b3757600080fd5b613b40866138f5565b945060208601356001600160401b0380821115613b5c57600080fd5b613b6889838a01613adb565b90965094506040880135915080821115613b8157600080fd5b50613b8e88828901613842565b969995985093965092949392505050565b600080600060608486031215613bb457600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613be157600080fd5b613bea8561396b565b93506020850135925060408501356001600160401b03811115613c0c57600080fd5b6138e987828801613842565b803563ffffffff8116811461371c57600080fd5b60008060008060608587031215613c4257600080fd5b84359350613c5260208601613c18565b925060408501356001600160401b03811115613c6d57600080fd5b6138e987828801613adb565b600080828403610100811215613c8e57600080fd5b83356001600160401b03811115613ca457600080fd5b613cb086828701613959565b93505060e0601f1982011215613cc557600080fd5b506020830190509250929050565b8035801515811461371c57600080fd5b60008060408385031215613cf657600080fd5b613cff8361396b565b915061395060208401613cd3565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d3457600080fd5b81356001600160401b0380821115613d4e57613d4e613d0d565b604051601f8301601f19908116603f01168101908282118183101715613d7657613d76613d0d565b81604052838152866020858801011115613d8f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613dc557600080fd5b84356001600160401b0380821115613ddc57600080fd5b613de888838901613842565b90965094506020870135915080821115613e0157600080fd5b50613e0e87828801613d23565b9250506139fc866040870161390d565b600080600080600060608688031215613e3657600080fd5b85356001600160401b0380821115613e4d57600080fd5b613e5989838a01613842565b90975095506020880135915080821115613e7257600080fd5b50613e7f88828901613842565b9094509250613e92905060408701613cd3565b90509295509295909350565b600080600080600060608688031215613eb657600080fd5b85356001600160401b0380821115613ecd57600080fd5b613ed989838a01613842565b90975095506020880135915080821115613ef257600080fd5b613efe89838a01613adb565b90955093506040880135915080821115613f1757600080fd5b50613f2488828901613d23565b9150509295509295909350565b600080600080600080600060e0888a031215613f4c57600080fd5b613f5588613c18565b9650613f6360208901613a07565b9550613f7160408901613a07565b9450613f7f60608901613a07565b9350613f8d60808901613c18565b9250613f9b60a08901613a07565b9150613fa960c08901613c18565b905092959891949750929550565b600080600060408486031215613fcc57600080fd5b613fd5846138f5565b925060208401356001600160401b03811115613ff057600080fd5b613ffc86828701613adb565b9497909650939450505050565b80356001600160601b038116811461371c57600080fd5b6000806000806000806000806000806101408b8d03121561404057600080fd5b6140498b613a07565b995061405760208c01613a07565b985061406560408c01613c18565b975061407360608c01613c18565b965061408160808c01614009565b955060a08b0135945061409660c08c01613a07565b93506140a460e08c01613c18565b92506140b36101008c01614009565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140de57600080fd5b6140e8838361390d565b9392505050565b600080600080600080600060e0888a03121561410a57600080fd5b614113886138f5565b96506141228960208a0161390d565b955060808801356001600160401b038082111561413e57600080fd5b61414a8b838c01613adb565b909750955060a08a0135945060c08a013591508082111561416a57600080fd5b506141778a828b01613adb565b989b979a50959850939692959293505050565b60008060008060008060c087890312156141a357600080fd5b6141ac87613a07565b95506141ba60208801613a07565b94506141c860408801613a07565b9350606087013592506141dd60808801614009565b915060a087013590509295509295509295565b6000806000806080858703121561420657600080fd5b843593506020850135925061421d60408601614009565b9396929550929360600135925050565b600080600060a0848603121561424257600080fd5b83356001600160401b038082111561425957600080fd5b61426587838801613959565b9450602086013591508082111561427b57600080fd5b506142888682870161390d565b925050613a58856040860161390d565b6000602082840312156142aa57600080fd5b6140e8826138f5565b6000602082840312156142c557600080fd5b6140e88261396b565b600080600080600060c086880312156142e657600080fd5b6142ef866138f5565b94506142fe876020880161390d565b935060808601356001600160401b0381111561431957600080fd5b61432588828901613842565b9094509250613e92905060a08701613a07565b634e487b7160e01b600052602160045260246000fd5b6006811061435e5761435e614338565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff606084015116606083015260808301516143b3608084018263ffffffff169052565b5060a08301516143cb60a084018263ffffffff169052565b5060c08301516143e360c084018263ffffffff169052565b5060e08301516143f660e084018261434e565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061445157614451614338565b8060608401525092915050565b600080600080600060a0868803121561447657600080fd5b61447f8661396b565b945061448d6020870161396b565b935061449b6040870161396b565b92506144a96060870161396b565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144fd6060830186886144ba565b82810360408401526145108185876144ba565b98975050505050505050565b8035825263ffffffff61453160208301613c18565b1660208301526001600160401b0361454b60408301613a07565b1660408301525050565b8381526001600160601b03198316602082015260a08101614579604083018461451c565b949350505050565b80356001600160e01b03198116811461371c57600080fd5b6000808335601e198436030181126145b057600080fd5b83016020810192503590506001600160401b038111156145cf57600080fd5b80360383131561388357600080fd5b60006001600160e01b0319806145f384614581565b1684526146036020840184614599565b608060208701526146186080870182846144ba565b9150506146286040850185614599565b868303604088015261463b8382846144ba565b925050508161464c60608601614581565b166060860152809250505092915050565b60006146698283614599565b6060855261467b6060860182846144ba565b915050602083013560208501526146956040840184614599565b85830360408701526146a88382846144ba565b9695505050505050565b85815260e0602082015260006146cb60e08301876145de565b82810360408401526146dd818761465d565b9150506146ed606083018561451c565b6001600160a01b03831660c08301529695505050505050565b85815260e06020820152600061471f60e08301876145de565b8281036040840152614731818761465d565b915050614741606083018561451c565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b858110156147945763ffffffff61478183613c18565b168752958201959082019060010161476b565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147c960808301868861475b565b82810360608401526147dc8185876144ba565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006148216080830184866144ba565b979650505050505050565b85815284602082015263ffffffff8416604082015260806060820152600061482160808301848661475b565b6000610120858352806020840152614872818401866145de565b91505063ffffffff61488384613c18565b1660408301526001600160a01b0361489d6020850161396b565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148cf57600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148fb606084016138f5565b6001600160601b03191660a0830152614916608084016138f5565b6001600160601b03191660c083015261493160a08401614581565b6001600160e01b03191660e083015261494c60c0840161396b565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561498b5760208185018101518683018201520161496f565b8181111561499d576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149cc60c0830186886144ba565b82810360408401526149de8186614965565b9150508235606083015260208301356080830152604083013560ff8116808214614a0757600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a336080830187896144ba565b8281036040840152614a468186886144ba565b9150508215156060830152979650505050505050565b868152608060208201526000614a766080830187896144ba565b8281036040840152614a8981868861475b565b905082810360608401526147dc8185614965565b8481526001600160601b0319841660208201526060604082015260006146a860608301848661475b565b828152608081016140e8602083018461451c565b60006101008a835260206001600160601b0319808c1682860152614b02604086018c61451c565b8260a0860152614b158386018a8c61475b565b60c0860189905285810360e0870152868152879350820160005b87811015614b545782614b41866138f5565b1682529383019390830190600101614b2f565b509d9c50505050505050505050505050565b84815260c060208201526000614b7f60c08301866145de565b8281036040840152614b91818661465d565b915050614ba1606083018461451c565b95945050505050565b8781526001600160601b0319871660208201526000610100614bcf604084018961451c565b6001600160a01b03871660a08401528060c0840152614bf181840186886144ba565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c3c57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220e9dd5a6e4c4da391d443462da020bd48dfe3042e705bb48dfcd2145ec392ea5564736f6c63430008090033",
2466
+ "linkReferences": {
2467
+ "contracts/bridge/Deposit.sol": {
2468
+ "Deposit": [
2469
+ {
2470
+ "length": 20,
2471
+ "start": 5152
2472
+ }
2473
+ ]
2474
+ },
2475
+ "contracts/bridge/DepositSweep.sol": {
2476
+ "DepositSweep": [
2477
+ {
2478
+ "length": 20,
2479
+ "start": 4237
2480
+ }
2481
+ ]
2482
+ },
2483
+ "contracts/bridge/Fraud.sol": {
2484
+ "Fraud": [
2485
+ {
2486
+ "length": 20,
2487
+ "start": 3957
2488
+ },
2489
+ {
2490
+ "length": 20,
2491
+ "start": 5422
2492
+ },
2493
+ {
2494
+ "length": 20,
2495
+ "start": 5511
2496
+ },
2497
+ {
2498
+ "length": 20,
2499
+ "start": 5602
2500
+ }
2501
+ ]
2502
+ },
2503
+ "contracts/bridge/MovingFunds.sol": {
2504
+ "MovingFunds": [
2505
+ {
2506
+ "length": 20,
2507
+ "start": 4100
2508
+ },
2509
+ {
2510
+ "length": 20,
2511
+ "start": 4438
2512
+ },
2513
+ {
2514
+ "length": 20,
2515
+ "start": 4978
2516
+ },
2517
+ {
2518
+ "length": 20,
2519
+ "start": 5800
2520
+ },
2521
+ {
2522
+ "length": 20,
2523
+ "start": 6245
2524
+ },
2525
+ {
2526
+ "length": 20,
2527
+ "start": 6702
2528
+ },
2529
+ {
2530
+ "length": 20,
2531
+ "start": 7433
2532
+ }
2533
+ ]
2534
+ },
2535
+ "contracts/bridge/Redemption.sol": {
2536
+ "Redemption": [
2537
+ {
2538
+ "length": 20,
2539
+ "start": 4526
2540
+ },
2541
+ {
2542
+ "length": 20,
2543
+ "start": 4868
2544
+ },
2545
+ {
2546
+ "length": 20,
2547
+ "start": 6613
2548
+ },
2549
+ {
2550
+ "length": 20,
2551
+ "start": 7026
2552
+ }
2553
+ ]
2554
+ },
2555
+ "contracts/bridge/Wallets.sol": {
2556
+ "Wallets": [
2557
+ {
2558
+ "length": 20,
2559
+ "start": 4693
2560
+ },
2561
+ {
2562
+ "length": 20,
2563
+ "start": 5067
2564
+ },
2565
+ {
2566
+ "length": 20,
2567
+ "start": 6009
2568
+ },
2569
+ {
2570
+ "length": 20,
2571
+ "start": 6171
2572
+ }
2573
+ ]
2574
+ }
2575
+ },
2576
+ "deployedLinkReferences": {
2577
+ "contracts/bridge/Deposit.sol": {
2578
+ "Deposit": [
2579
+ {
2580
+ "length": 20,
2581
+ "start": 5120
2582
+ }
2583
+ ]
2584
+ },
2585
+ "contracts/bridge/DepositSweep.sol": {
2586
+ "DepositSweep": [
2587
+ {
2588
+ "length": 20,
2589
+ "start": 4205
2590
+ }
2591
+ ]
2592
+ },
2593
+ "contracts/bridge/Fraud.sol": {
2594
+ "Fraud": [
2595
+ {
2596
+ "length": 20,
2597
+ "start": 3925
2598
+ },
2599
+ {
2600
+ "length": 20,
2601
+ "start": 5390
2602
+ },
2603
+ {
2604
+ "length": 20,
2605
+ "start": 5479
2606
+ },
2607
+ {
2608
+ "length": 20,
2609
+ "start": 5570
2610
+ }
2611
+ ]
2612
+ },
2613
+ "contracts/bridge/MovingFunds.sol": {
2614
+ "MovingFunds": [
2615
+ {
2616
+ "length": 20,
2617
+ "start": 4068
2618
+ },
2619
+ {
2620
+ "length": 20,
2621
+ "start": 4406
2622
+ },
2623
+ {
2624
+ "length": 20,
2625
+ "start": 4946
2626
+ },
2627
+ {
2628
+ "length": 20,
2629
+ "start": 5768
2630
+ },
2631
+ {
2632
+ "length": 20,
2633
+ "start": 6213
2634
+ },
2635
+ {
2636
+ "length": 20,
2637
+ "start": 6670
2638
+ },
2639
+ {
2640
+ "length": 20,
2641
+ "start": 7401
2642
+ }
2643
+ ]
2644
+ },
2645
+ "contracts/bridge/Redemption.sol": {
2646
+ "Redemption": [
2647
+ {
2648
+ "length": 20,
2649
+ "start": 4494
2650
+ },
2651
+ {
2652
+ "length": 20,
2653
+ "start": 4836
2654
+ },
2655
+ {
2656
+ "length": 20,
2657
+ "start": 6581
2658
+ },
2659
+ {
2660
+ "length": 20,
2661
+ "start": 6994
2662
+ }
2663
+ ]
2664
+ },
2665
+ "contracts/bridge/Wallets.sol": {
2666
+ "Wallets": [
2667
+ {
2668
+ "length": 20,
2669
+ "start": 4661
2670
+ },
2671
+ {
2672
+ "length": 20,
2673
+ "start": 5035
2674
+ },
2675
+ {
2676
+ "length": 20,
2677
+ "start": 5977
2678
+ },
2679
+ {
2680
+ "length": 20,
2681
+ "start": 6139
2682
+ }
2683
+ ]
2684
+ }
2685
+ }
335
2686
  }