@wireio/stake 0.2.0 → 0.2.1

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 (120) hide show
  1. package/lib/stake.browser.js +11779 -2023
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +94 -40
  4. package/lib/stake.js +11906 -2088
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +11779 -2023
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +1 -1
  10. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +26 -65
  11. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +1 -1
  12. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.json +24 -20
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +1 -1
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +1 -1
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +1 -1
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +1 -1
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -20
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +1 -1
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +1 -1
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +1 -1
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  22. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +1 -1
  23. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +1 -1
  24. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +1 -1
  25. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +1 -1
  26. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +1 -1
  27. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +1 -1
  28. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +2 -2
  29. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +1 -1
  30. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +2 -2
  31. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +1 -1
  32. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +2 -2
  33. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +1 -1
  34. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +31 -109
  35. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +1 -1
  36. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +2 -25
  37. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +1 -1
  38. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +30 -72
  39. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +1 -1
  40. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +2 -2
  41. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +1 -1
  42. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  43. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +1 -1
  44. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +2 -2
  45. package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.dbg.json +4 -0
  46. package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.json +1856 -0
  47. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  48. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +1753 -0
  49. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  50. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  51. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  52. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +601 -0
  53. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +4 -0
  54. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.json +930 -0
  55. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  56. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.json +88 -0
  57. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  58. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  59. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  60. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  61. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  62. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  63. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  64. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  65. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  66. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  67. package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  68. package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  69. package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  70. package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  71. package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  72. package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  73. package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  74. package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  75. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  76. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  77. package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  78. package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  79. package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  80. package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.json +298 -0
  81. package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  82. package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.json +473 -0
  83. package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  84. package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  85. package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  86. package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.json +730 -0
  87. package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  88. package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  89. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  90. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  91. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  92. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  93. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  94. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  95. package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  96. package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  97. package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.dbg.json +4 -0
  98. package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.json +921 -0
  99. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  100. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.json +2020 -0
  101. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.dbg.json +4 -0
  102. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.json +1650 -0
  103. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  104. package/src/assets/ethereum/ABI/{liqEth/LiqEthCommon.sol/ILiqEthMint.json → outpost/interfaces/IWarrant.sol/IWarrant.json} +6 -12
  105. package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  106. package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  107. package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  108. package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  109. package/src/networks/ethereum/clients/deposit.client.ts +82 -0
  110. package/src/networks/ethereum/clients/stake.client.ts +215 -0
  111. package/src/networks/ethereum/contract.ts +82 -23
  112. package/src/networks/ethereum/ethereum.ts +130 -66
  113. package/src/networks/ethereum/types.ts +74 -7
  114. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.dbg.json +0 -4
  115. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.json +0 -24
  116. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.dbg.json +0 -4
  117. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.dbg.json +0 -4
  118. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.json +0 -391
  119. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.dbg.json +0 -4
  120. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.json +0 -402
@@ -0,0 +1,2020 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ReceiptNFT",
4
+ "sourceName": "contracts/outpost/ReceiptNFT.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "target",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "AddressEmptyCode",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [],
57
+ "name": "CheckpointUnorderedInsertion",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [],
62
+ "name": "ECDSAInvalidSignature",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "length",
70
+ "type": "uint256"
71
+ }
72
+ ],
73
+ "name": "ECDSAInvalidSignatureLength",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "bytes32",
80
+ "name": "s",
81
+ "type": "bytes32"
82
+ }
83
+ ],
84
+ "name": "ECDSAInvalidSignatureS",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "address",
91
+ "name": "implementation",
92
+ "type": "address"
93
+ }
94
+ ],
95
+ "name": "ERC1967InvalidImplementation",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [],
100
+ "name": "ERC1967NonPayable",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "uint256",
107
+ "name": "timepoint",
108
+ "type": "uint256"
109
+ },
110
+ {
111
+ "internalType": "uint48",
112
+ "name": "clock",
113
+ "type": "uint48"
114
+ }
115
+ ],
116
+ "name": "ERC5805FutureLookup",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "ERC6372InconsistentClock",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [
126
+ {
127
+ "internalType": "address",
128
+ "name": "sender",
129
+ "type": "address"
130
+ },
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "tokenId",
134
+ "type": "uint256"
135
+ },
136
+ {
137
+ "internalType": "address",
138
+ "name": "owner",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "ERC721IncorrectOwner",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "operator",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "internalType": "uint256",
154
+ "name": "tokenId",
155
+ "type": "uint256"
156
+ }
157
+ ],
158
+ "name": "ERC721InsufficientApproval",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "address",
165
+ "name": "approver",
166
+ "type": "address"
167
+ }
168
+ ],
169
+ "name": "ERC721InvalidApprover",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [
174
+ {
175
+ "internalType": "address",
176
+ "name": "operator",
177
+ "type": "address"
178
+ }
179
+ ],
180
+ "name": "ERC721InvalidOperator",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "inputs": [
185
+ {
186
+ "internalType": "address",
187
+ "name": "owner",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "name": "ERC721InvalidOwner",
192
+ "type": "error"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "address",
198
+ "name": "receiver",
199
+ "type": "address"
200
+ }
201
+ ],
202
+ "name": "ERC721InvalidReceiver",
203
+ "type": "error"
204
+ },
205
+ {
206
+ "inputs": [
207
+ {
208
+ "internalType": "address",
209
+ "name": "sender",
210
+ "type": "address"
211
+ }
212
+ ],
213
+ "name": "ERC721InvalidSender",
214
+ "type": "error"
215
+ },
216
+ {
217
+ "inputs": [
218
+ {
219
+ "internalType": "uint256",
220
+ "name": "tokenId",
221
+ "type": "uint256"
222
+ }
223
+ ],
224
+ "name": "ERC721NonexistentToken",
225
+ "type": "error"
226
+ },
227
+ {
228
+ "inputs": [],
229
+ "name": "EnforcedPause",
230
+ "type": "error"
231
+ },
232
+ {
233
+ "inputs": [],
234
+ "name": "ExpectedPause",
235
+ "type": "error"
236
+ },
237
+ {
238
+ "inputs": [],
239
+ "name": "FailedCall",
240
+ "type": "error"
241
+ },
242
+ {
243
+ "inputs": [
244
+ {
245
+ "internalType": "address",
246
+ "name": "account",
247
+ "type": "address"
248
+ },
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "currentNonce",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "name": "InvalidAccountNonce",
256
+ "type": "error"
257
+ },
258
+ {
259
+ "inputs": [],
260
+ "name": "InvalidInitialization",
261
+ "type": "error"
262
+ },
263
+ {
264
+ "inputs": [],
265
+ "name": "NotInitializing",
266
+ "type": "error"
267
+ },
268
+ {
269
+ "inputs": [
270
+ {
271
+ "internalType": "uint8",
272
+ "name": "bits",
273
+ "type": "uint8"
274
+ },
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "value",
278
+ "type": "uint256"
279
+ }
280
+ ],
281
+ "name": "SafeCastOverflowedUintDowncast",
282
+ "type": "error"
283
+ },
284
+ {
285
+ "inputs": [],
286
+ "name": "UUPSUnauthorizedCallContext",
287
+ "type": "error"
288
+ },
289
+ {
290
+ "inputs": [
291
+ {
292
+ "internalType": "bytes32",
293
+ "name": "slot",
294
+ "type": "bytes32"
295
+ }
296
+ ],
297
+ "name": "UUPSUnsupportedProxiableUUID",
298
+ "type": "error"
299
+ },
300
+ {
301
+ "inputs": [
302
+ {
303
+ "internalType": "uint256",
304
+ "name": "expiry",
305
+ "type": "uint256"
306
+ }
307
+ ],
308
+ "name": "VotesExpiredSignature",
309
+ "type": "error"
310
+ },
311
+ {
312
+ "inputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "actor",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "name": "WIRE_ActorAlreadyBonded",
320
+ "type": "error"
321
+ },
322
+ {
323
+ "inputs": [
324
+ {
325
+ "internalType": "address",
326
+ "name": "actor",
327
+ "type": "address"
328
+ }
329
+ ],
330
+ "name": "WIRE_ActorNotBonded",
331
+ "type": "error"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "uint32",
337
+ "name": "tokenType",
338
+ "type": "uint32"
339
+ },
340
+ {
341
+ "internalType": "bytes32",
342
+ "name": "bondLevelId",
343
+ "type": "bytes32"
344
+ }
345
+ ],
346
+ "name": "WIRE_BadBondLevel",
347
+ "type": "error"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "string",
353
+ "name": "name",
354
+ "type": "string"
355
+ },
356
+ {
357
+ "internalType": "address",
358
+ "name": "provided",
359
+ "type": "address"
360
+ }
361
+ ],
362
+ "name": "WIRE_BadContractAddress",
363
+ "type": "error"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "uint256",
369
+ "name": "bps",
370
+ "type": "uint256"
371
+ },
372
+ {
373
+ "internalType": "uint256",
374
+ "name": "maxBps",
375
+ "type": "uint256"
376
+ }
377
+ ],
378
+ "name": "WIRE_BasisPointsTooHigh",
379
+ "type": "error"
380
+ },
381
+ {
382
+ "inputs": [
383
+ {
384
+ "internalType": "address",
385
+ "name": "actor",
386
+ "type": "address"
387
+ },
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "cooldownEnd",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "WIRE_BondInCooldown",
395
+ "type": "error"
396
+ },
397
+ {
398
+ "inputs": [
399
+ {
400
+ "internalType": "address",
401
+ "name": "actor",
402
+ "type": "address"
403
+ },
404
+ {
405
+ "internalType": "uint256",
406
+ "name": "warmupEnd",
407
+ "type": "uint256"
408
+ }
409
+ ],
410
+ "name": "WIRE_BondInWarmup",
411
+ "type": "error"
412
+ },
413
+ {
414
+ "inputs": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "required",
418
+ "type": "uint256"
419
+ },
420
+ {
421
+ "internalType": "uint256",
422
+ "name": "provided",
423
+ "type": "uint256"
424
+ }
425
+ ],
426
+ "name": "WIRE_BondInsufficientEth",
427
+ "type": "error"
428
+ },
429
+ {
430
+ "inputs": [
431
+ {
432
+ "internalType": "uint256",
433
+ "name": "required",
434
+ "type": "uint256"
435
+ },
436
+ {
437
+ "internalType": "uint256",
438
+ "name": "provided",
439
+ "type": "uint256"
440
+ }
441
+ ],
442
+ "name": "WIRE_BondInsufficientEthEquivalent",
443
+ "type": "error"
444
+ },
445
+ {
446
+ "inputs": [
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "value",
450
+ "type": "uint256"
451
+ },
452
+ {
453
+ "internalType": "uint256",
454
+ "name": "minValue",
455
+ "type": "uint256"
456
+ }
457
+ ],
458
+ "name": "WIRE_BondLevelCooldownTooShort",
459
+ "type": "error"
460
+ },
461
+ {
462
+ "inputs": [
463
+ {
464
+ "internalType": "uint32",
465
+ "name": "tokenType",
466
+ "type": "uint32"
467
+ },
468
+ {
469
+ "internalType": "bytes32",
470
+ "name": "bondLevelId",
471
+ "type": "bytes32"
472
+ }
473
+ ],
474
+ "name": "WIRE_BondLevelExists",
475
+ "type": "error"
476
+ },
477
+ {
478
+ "inputs": [
479
+ {
480
+ "internalType": "uint32",
481
+ "name": "tokenType",
482
+ "type": "uint32"
483
+ },
484
+ {
485
+ "internalType": "bytes32",
486
+ "name": "bondLevelId",
487
+ "type": "bytes32"
488
+ }
489
+ ],
490
+ "name": "WIRE_BondLevelHasNoRoles",
491
+ "type": "error"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "uint32",
497
+ "name": "tokenType",
498
+ "type": "uint32"
499
+ },
500
+ {
501
+ "internalType": "bytes32",
502
+ "name": "bondLevelId",
503
+ "type": "bytes32"
504
+ }
505
+ ],
506
+ "name": "WIRE_BondLevelNoAmount",
507
+ "type": "error"
508
+ },
509
+ {
510
+ "inputs": [
511
+ {
512
+ "internalType": "uint32",
513
+ "name": "tokenType",
514
+ "type": "uint32"
515
+ },
516
+ {
517
+ "internalType": "bytes32",
518
+ "name": "bondLevelId",
519
+ "type": "bytes32"
520
+ }
521
+ ],
522
+ "name": "WIRE_BondLevelNoEthEquivalent",
523
+ "type": "error"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "internalType": "uint32",
529
+ "name": "tokenType",
530
+ "type": "uint32"
531
+ },
532
+ {
533
+ "internalType": "bytes32",
534
+ "name": "bondLevelId",
535
+ "type": "bytes32"
536
+ }
537
+ ],
538
+ "name": "WIRE_BondLevelNoTokenContract",
539
+ "type": "error"
540
+ },
541
+ {
542
+ "inputs": [
543
+ {
544
+ "internalType": "uint32",
545
+ "name": "tokenType",
546
+ "type": "uint32"
547
+ },
548
+ {
549
+ "internalType": "bytes32",
550
+ "name": "bondLevelId",
551
+ "type": "bytes32"
552
+ }
553
+ ],
554
+ "name": "WIRE_BondLevelNoTokenId",
555
+ "type": "error"
556
+ },
557
+ {
558
+ "inputs": [
559
+ {
560
+ "internalType": "uint256",
561
+ "name": "value",
562
+ "type": "uint256"
563
+ },
564
+ {
565
+ "internalType": "uint256",
566
+ "name": "minValue",
567
+ "type": "uint256"
568
+ }
569
+ ],
570
+ "name": "WIRE_BondLevelWarmupTooShort",
571
+ "type": "error"
572
+ },
573
+ {
574
+ "inputs": [
575
+ {
576
+ "internalType": "address",
577
+ "name": "actor",
578
+ "type": "address"
579
+ }
580
+ ],
581
+ "name": "WIRE_BondNotUnbonding",
582
+ "type": "error"
583
+ },
584
+ {
585
+ "inputs": [
586
+ {
587
+ "internalType": "address",
588
+ "name": "to",
589
+ "type": "address"
590
+ },
591
+ {
592
+ "internalType": "uint256",
593
+ "name": "amount",
594
+ "type": "uint256"
595
+ }
596
+ ],
597
+ "name": "WIRE_EthSendFailed",
598
+ "type": "error"
599
+ },
600
+ {
601
+ "inputs": [],
602
+ "name": "WIRE_GoLiveInProgress",
603
+ "type": "error"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "uint256",
609
+ "name": "required",
610
+ "type": "uint256"
611
+ },
612
+ {
613
+ "internalType": "uint256",
614
+ "name": "available",
615
+ "type": "uint256"
616
+ }
617
+ ],
618
+ "name": "WIRE_InsufficientEthBalance",
619
+ "type": "error"
620
+ },
621
+ {
622
+ "inputs": [],
623
+ "name": "WIRE_InvalidPrice",
624
+ "type": "error"
625
+ },
626
+ {
627
+ "inputs": [
628
+ {
629
+ "internalType": "address",
630
+ "name": "from",
631
+ "type": "address"
632
+ },
633
+ {
634
+ "internalType": "address",
635
+ "name": "to",
636
+ "type": "address"
637
+ },
638
+ {
639
+ "internalType": "uint256",
640
+ "name": "amount",
641
+ "type": "uint256"
642
+ }
643
+ ],
644
+ "name": "WIRE_LiqEthTransferFailed",
645
+ "type": "error"
646
+ },
647
+ {
648
+ "inputs": [],
649
+ "name": "WIRE_NoPricesRecorded",
650
+ "type": "error"
651
+ },
652
+ {
653
+ "inputs": [],
654
+ "name": "WIRE_NoYield",
655
+ "type": "error"
656
+ },
657
+ {
658
+ "inputs": [
659
+ {
660
+ "internalType": "address",
661
+ "name": "actor",
662
+ "type": "address"
663
+ },
664
+ {
665
+ "internalType": "address",
666
+ "name": "owner",
667
+ "type": "address"
668
+ },
669
+ {
670
+ "internalType": "address",
671
+ "name": "caller",
672
+ "type": "address"
673
+ }
674
+ ],
675
+ "name": "WIRE_NotBondOwner",
676
+ "type": "error"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "receiptId",
683
+ "type": "uint256"
684
+ },
685
+ {
686
+ "internalType": "address",
687
+ "name": "owner",
688
+ "type": "address"
689
+ },
690
+ {
691
+ "internalType": "address",
692
+ "name": "caller",
693
+ "type": "address"
694
+ }
695
+ ],
696
+ "name": "WIRE_NotReceiptOwner",
697
+ "type": "error"
698
+ },
699
+ {
700
+ "inputs": [
701
+ {
702
+ "internalType": "uint256",
703
+ "name": "price",
704
+ "type": "uint256"
705
+ },
706
+ {
707
+ "internalType": "uint256",
708
+ "name": "minPrice",
709
+ "type": "uint256"
710
+ },
711
+ {
712
+ "internalType": "uint256",
713
+ "name": "maxPrice",
714
+ "type": "uint256"
715
+ }
716
+ ],
717
+ "name": "WIRE_PriceOutOfBounds",
718
+ "type": "error"
719
+ },
720
+ {
721
+ "inputs": [
722
+ {
723
+ "internalType": "uint256",
724
+ "name": "receiptId",
725
+ "type": "uint256"
726
+ }
727
+ ],
728
+ "name": "WIRE_ReceiptNotWithdrawable",
729
+ "type": "error"
730
+ },
731
+ {
732
+ "inputs": [],
733
+ "name": "WIRE_RefundingInProgress",
734
+ "type": "error"
735
+ },
736
+ {
737
+ "inputs": [],
738
+ "name": "WIRE_RefundingOnly",
739
+ "type": "error"
740
+ },
741
+ {
742
+ "inputs": [
743
+ {
744
+ "internalType": "uint256",
745
+ "name": "updatedAt",
746
+ "type": "uint256"
747
+ },
748
+ {
749
+ "internalType": "uint256",
750
+ "name": "maxStaleness",
751
+ "type": "uint256"
752
+ }
753
+ ],
754
+ "name": "WIRE_StalePrice",
755
+ "type": "error"
756
+ },
757
+ {
758
+ "inputs": [
759
+ {
760
+ "internalType": "string",
761
+ "name": "reason",
762
+ "type": "string"
763
+ }
764
+ ],
765
+ "name": "WIRE_UnexpectedError",
766
+ "type": "error"
767
+ },
768
+ {
769
+ "inputs": [],
770
+ "name": "WIRE_ZeroAmount",
771
+ "type": "error"
772
+ },
773
+ {
774
+ "anonymous": false,
775
+ "inputs": [
776
+ {
777
+ "indexed": true,
778
+ "internalType": "address",
779
+ "name": "owner",
780
+ "type": "address"
781
+ },
782
+ {
783
+ "indexed": true,
784
+ "internalType": "address",
785
+ "name": "approved",
786
+ "type": "address"
787
+ },
788
+ {
789
+ "indexed": true,
790
+ "internalType": "uint256",
791
+ "name": "tokenId",
792
+ "type": "uint256"
793
+ }
794
+ ],
795
+ "name": "Approval",
796
+ "type": "event"
797
+ },
798
+ {
799
+ "anonymous": false,
800
+ "inputs": [
801
+ {
802
+ "indexed": true,
803
+ "internalType": "address",
804
+ "name": "owner",
805
+ "type": "address"
806
+ },
807
+ {
808
+ "indexed": true,
809
+ "internalType": "address",
810
+ "name": "operator",
811
+ "type": "address"
812
+ },
813
+ {
814
+ "indexed": false,
815
+ "internalType": "bool",
816
+ "name": "approved",
817
+ "type": "bool"
818
+ }
819
+ ],
820
+ "name": "ApprovalForAll",
821
+ "type": "event"
822
+ },
823
+ {
824
+ "anonymous": false,
825
+ "inputs": [
826
+ {
827
+ "indexed": false,
828
+ "internalType": "address",
829
+ "name": "authority",
830
+ "type": "address"
831
+ }
832
+ ],
833
+ "name": "AuthorityUpdated",
834
+ "type": "event"
835
+ },
836
+ {
837
+ "anonymous": false,
838
+ "inputs": [
839
+ {
840
+ "indexed": true,
841
+ "internalType": "uint256",
842
+ "name": "tokenId",
843
+ "type": "uint256"
844
+ },
845
+ {
846
+ "indexed": true,
847
+ "internalType": "address",
848
+ "name": "by",
849
+ "type": "address"
850
+ }
851
+ ],
852
+ "name": "Burned",
853
+ "type": "event"
854
+ },
855
+ {
856
+ "anonymous": false,
857
+ "inputs": [
858
+ {
859
+ "indexed": true,
860
+ "internalType": "address",
861
+ "name": "delegator",
862
+ "type": "address"
863
+ },
864
+ {
865
+ "indexed": true,
866
+ "internalType": "address",
867
+ "name": "fromDelegate",
868
+ "type": "address"
869
+ },
870
+ {
871
+ "indexed": true,
872
+ "internalType": "address",
873
+ "name": "toDelegate",
874
+ "type": "address"
875
+ }
876
+ ],
877
+ "name": "DelegateChanged",
878
+ "type": "event"
879
+ },
880
+ {
881
+ "anonymous": false,
882
+ "inputs": [
883
+ {
884
+ "indexed": true,
885
+ "internalType": "address",
886
+ "name": "delegate",
887
+ "type": "address"
888
+ },
889
+ {
890
+ "indexed": false,
891
+ "internalType": "uint256",
892
+ "name": "previousVotes",
893
+ "type": "uint256"
894
+ },
895
+ {
896
+ "indexed": false,
897
+ "internalType": "uint256",
898
+ "name": "newVotes",
899
+ "type": "uint256"
900
+ }
901
+ ],
902
+ "name": "DelegateVotesChanged",
903
+ "type": "event"
904
+ },
905
+ {
906
+ "anonymous": false,
907
+ "inputs": [
908
+ {
909
+ "indexed": true,
910
+ "internalType": "address",
911
+ "name": "newDepositor",
912
+ "type": "address"
913
+ }
914
+ ],
915
+ "name": "DepositorUpdated",
916
+ "type": "event"
917
+ },
918
+ {
919
+ "anonymous": false,
920
+ "inputs": [],
921
+ "name": "EIP712DomainChanged",
922
+ "type": "event"
923
+ },
924
+ {
925
+ "anonymous": false,
926
+ "inputs": [
927
+ {
928
+ "indexed": false,
929
+ "internalType": "uint64",
930
+ "name": "version",
931
+ "type": "uint64"
932
+ }
933
+ ],
934
+ "name": "Initialized",
935
+ "type": "event"
936
+ },
937
+ {
938
+ "anonymous": false,
939
+ "inputs": [
940
+ {
941
+ "indexed": true,
942
+ "internalType": "uint256",
943
+ "name": "tokenId",
944
+ "type": "uint256"
945
+ },
946
+ {
947
+ "indexed": true,
948
+ "internalType": "address",
949
+ "name": "to",
950
+ "type": "address"
951
+ },
952
+ {
953
+ "components": [
954
+ {
955
+ "internalType": "address",
956
+ "name": "account",
957
+ "type": "address"
958
+ },
959
+ {
960
+ "internalType": "uint256",
961
+ "name": "principal",
962
+ "type": "uint256"
963
+ },
964
+ {
965
+ "internalType": "uint256",
966
+ "name": "shares",
967
+ "type": "uint256"
968
+ },
969
+ {
970
+ "internalType": "uint256",
971
+ "name": "indexAtMint",
972
+ "type": "uint256"
973
+ },
974
+ {
975
+ "internalType": "enum ReceiptNFT.Currency",
976
+ "name": "currency",
977
+ "type": "uint8"
978
+ },
979
+ {
980
+ "internalType": "enum ReceiptNFT.Kind",
981
+ "name": "kind",
982
+ "type": "uint8"
983
+ },
984
+ {
985
+ "internalType": "uint64",
986
+ "name": "timestamp",
987
+ "type": "uint64"
988
+ }
989
+ ],
990
+ "indexed": false,
991
+ "internalType": "struct ReceiptNFT.Receipt",
992
+ "name": "data",
993
+ "type": "tuple"
994
+ }
995
+ ],
996
+ "name": "Minted",
997
+ "type": "event"
998
+ },
999
+ {
1000
+ "anonymous": false,
1001
+ "inputs": [
1002
+ {
1003
+ "indexed": false,
1004
+ "internalType": "address",
1005
+ "name": "account",
1006
+ "type": "address"
1007
+ }
1008
+ ],
1009
+ "name": "Paused",
1010
+ "type": "event"
1011
+ },
1012
+ {
1013
+ "anonymous": false,
1014
+ "inputs": [
1015
+ {
1016
+ "indexed": true,
1017
+ "internalType": "address",
1018
+ "name": "from",
1019
+ "type": "address"
1020
+ },
1021
+ {
1022
+ "indexed": true,
1023
+ "internalType": "address",
1024
+ "name": "to",
1025
+ "type": "address"
1026
+ },
1027
+ {
1028
+ "indexed": true,
1029
+ "internalType": "uint256",
1030
+ "name": "tokenId",
1031
+ "type": "uint256"
1032
+ }
1033
+ ],
1034
+ "name": "Transfer",
1035
+ "type": "event"
1036
+ },
1037
+ {
1038
+ "anonymous": false,
1039
+ "inputs": [
1040
+ {
1041
+ "indexed": false,
1042
+ "internalType": "address",
1043
+ "name": "account",
1044
+ "type": "address"
1045
+ }
1046
+ ],
1047
+ "name": "Unpaused",
1048
+ "type": "event"
1049
+ },
1050
+ {
1051
+ "anonymous": false,
1052
+ "inputs": [
1053
+ {
1054
+ "indexed": true,
1055
+ "internalType": "address",
1056
+ "name": "implementation",
1057
+ "type": "address"
1058
+ }
1059
+ ],
1060
+ "name": "Upgraded",
1061
+ "type": "event"
1062
+ },
1063
+ {
1064
+ "inputs": [],
1065
+ "name": "CLOCK_MODE",
1066
+ "outputs": [
1067
+ {
1068
+ "internalType": "string",
1069
+ "name": "",
1070
+ "type": "string"
1071
+ }
1072
+ ],
1073
+ "stateMutability": "pure",
1074
+ "type": "function"
1075
+ },
1076
+ {
1077
+ "inputs": [],
1078
+ "name": "CONFIGURATION_ROLE",
1079
+ "outputs": [
1080
+ {
1081
+ "internalType": "uint64",
1082
+ "name": "",
1083
+ "type": "uint64"
1084
+ }
1085
+ ],
1086
+ "stateMutability": "view",
1087
+ "type": "function"
1088
+ },
1089
+ {
1090
+ "inputs": [],
1091
+ "name": "OPP_FINALIZER_ROLE",
1092
+ "outputs": [
1093
+ {
1094
+ "internalType": "uint64",
1095
+ "name": "",
1096
+ "type": "uint64"
1097
+ }
1098
+ ],
1099
+ "stateMutability": "view",
1100
+ "type": "function"
1101
+ },
1102
+ {
1103
+ "inputs": [],
1104
+ "name": "OPP_INBOUND_ROLE",
1105
+ "outputs": [
1106
+ {
1107
+ "internalType": "uint64",
1108
+ "name": "",
1109
+ "type": "uint64"
1110
+ }
1111
+ ],
1112
+ "stateMutability": "view",
1113
+ "type": "function"
1114
+ },
1115
+ {
1116
+ "inputs": [],
1117
+ "name": "OPP_RECEIVER_TYPE",
1118
+ "outputs": [
1119
+ {
1120
+ "internalType": "uint64",
1121
+ "name": "",
1122
+ "type": "uint64"
1123
+ }
1124
+ ],
1125
+ "stateMutability": "view",
1126
+ "type": "function"
1127
+ },
1128
+ {
1129
+ "inputs": [],
1130
+ "name": "OPP_SENDER_ROLE",
1131
+ "outputs": [
1132
+ {
1133
+ "internalType": "uint64",
1134
+ "name": "",
1135
+ "type": "uint64"
1136
+ }
1137
+ ],
1138
+ "stateMutability": "view",
1139
+ "type": "function"
1140
+ },
1141
+ {
1142
+ "inputs": [],
1143
+ "name": "OPP_SENDER_TYPE",
1144
+ "outputs": [
1145
+ {
1146
+ "internalType": "uint64",
1147
+ "name": "",
1148
+ "type": "uint64"
1149
+ }
1150
+ ],
1151
+ "stateMutability": "view",
1152
+ "type": "function"
1153
+ },
1154
+ {
1155
+ "inputs": [],
1156
+ "name": "OPP_TESTER_ROLE",
1157
+ "outputs": [
1158
+ {
1159
+ "internalType": "uint64",
1160
+ "name": "",
1161
+ "type": "uint64"
1162
+ }
1163
+ ],
1164
+ "stateMutability": "view",
1165
+ "type": "function"
1166
+ },
1167
+ {
1168
+ "inputs": [],
1169
+ "name": "RECEIPT_BURNER_ROLE",
1170
+ "outputs": [
1171
+ {
1172
+ "internalType": "uint64",
1173
+ "name": "",
1174
+ "type": "uint64"
1175
+ }
1176
+ ],
1177
+ "stateMutability": "view",
1178
+ "type": "function"
1179
+ },
1180
+ {
1181
+ "inputs": [],
1182
+ "name": "RECEIPT_MINTER_ROLE",
1183
+ "outputs": [
1184
+ {
1185
+ "internalType": "uint64",
1186
+ "name": "",
1187
+ "type": "uint64"
1188
+ }
1189
+ ],
1190
+ "stateMutability": "view",
1191
+ "type": "function"
1192
+ },
1193
+ {
1194
+ "inputs": [],
1195
+ "name": "RECEIPT_TRANSFER_ROLE",
1196
+ "outputs": [
1197
+ {
1198
+ "internalType": "uint64",
1199
+ "name": "",
1200
+ "type": "uint64"
1201
+ }
1202
+ ],
1203
+ "stateMutability": "view",
1204
+ "type": "function"
1205
+ },
1206
+ {
1207
+ "inputs": [],
1208
+ "name": "UPGRADE_INTERFACE_VERSION",
1209
+ "outputs": [
1210
+ {
1211
+ "internalType": "string",
1212
+ "name": "",
1213
+ "type": "string"
1214
+ }
1215
+ ],
1216
+ "stateMutability": "view",
1217
+ "type": "function"
1218
+ },
1219
+ {
1220
+ "inputs": [
1221
+ {
1222
+ "internalType": "address",
1223
+ "name": "approver",
1224
+ "type": "address"
1225
+ },
1226
+ {
1227
+ "internalType": "uint256",
1228
+ "name": "",
1229
+ "type": "uint256"
1230
+ }
1231
+ ],
1232
+ "name": "approve",
1233
+ "outputs": [],
1234
+ "stateMutability": "pure",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [],
1239
+ "name": "authority",
1240
+ "outputs": [
1241
+ {
1242
+ "internalType": "address",
1243
+ "name": "",
1244
+ "type": "address"
1245
+ }
1246
+ ],
1247
+ "stateMutability": "view",
1248
+ "type": "function"
1249
+ },
1250
+ {
1251
+ "inputs": [
1252
+ {
1253
+ "internalType": "address",
1254
+ "name": "owner",
1255
+ "type": "address"
1256
+ }
1257
+ ],
1258
+ "name": "balanceOf",
1259
+ "outputs": [
1260
+ {
1261
+ "internalType": "uint256",
1262
+ "name": "",
1263
+ "type": "uint256"
1264
+ }
1265
+ ],
1266
+ "stateMutability": "view",
1267
+ "type": "function"
1268
+ },
1269
+ {
1270
+ "inputs": [
1271
+ {
1272
+ "internalType": "uint256",
1273
+ "name": "tokenId",
1274
+ "type": "uint256"
1275
+ }
1276
+ ],
1277
+ "name": "burn",
1278
+ "outputs": [],
1279
+ "stateMutability": "nonpayable",
1280
+ "type": "function"
1281
+ },
1282
+ {
1283
+ "inputs": [],
1284
+ "name": "clock",
1285
+ "outputs": [
1286
+ {
1287
+ "internalType": "uint48",
1288
+ "name": "",
1289
+ "type": "uint48"
1290
+ }
1291
+ ],
1292
+ "stateMutability": "view",
1293
+ "type": "function"
1294
+ },
1295
+ {
1296
+ "inputs": [
1297
+ {
1298
+ "internalType": "address",
1299
+ "name": "delegatee",
1300
+ "type": "address"
1301
+ }
1302
+ ],
1303
+ "name": "delegate",
1304
+ "outputs": [],
1305
+ "stateMutability": "nonpayable",
1306
+ "type": "function"
1307
+ },
1308
+ {
1309
+ "inputs": [
1310
+ {
1311
+ "internalType": "address",
1312
+ "name": "delegatee",
1313
+ "type": "address"
1314
+ },
1315
+ {
1316
+ "internalType": "uint256",
1317
+ "name": "nonce",
1318
+ "type": "uint256"
1319
+ },
1320
+ {
1321
+ "internalType": "uint256",
1322
+ "name": "expiry",
1323
+ "type": "uint256"
1324
+ },
1325
+ {
1326
+ "internalType": "uint8",
1327
+ "name": "v",
1328
+ "type": "uint8"
1329
+ },
1330
+ {
1331
+ "internalType": "bytes32",
1332
+ "name": "r",
1333
+ "type": "bytes32"
1334
+ },
1335
+ {
1336
+ "internalType": "bytes32",
1337
+ "name": "s",
1338
+ "type": "bytes32"
1339
+ }
1340
+ ],
1341
+ "name": "delegateBySig",
1342
+ "outputs": [],
1343
+ "stateMutability": "nonpayable",
1344
+ "type": "function"
1345
+ },
1346
+ {
1347
+ "inputs": [
1348
+ {
1349
+ "internalType": "address",
1350
+ "name": "account",
1351
+ "type": "address"
1352
+ }
1353
+ ],
1354
+ "name": "delegates",
1355
+ "outputs": [
1356
+ {
1357
+ "internalType": "address",
1358
+ "name": "",
1359
+ "type": "address"
1360
+ }
1361
+ ],
1362
+ "stateMutability": "view",
1363
+ "type": "function"
1364
+ },
1365
+ {
1366
+ "inputs": [],
1367
+ "name": "depositor",
1368
+ "outputs": [
1369
+ {
1370
+ "internalType": "address",
1371
+ "name": "",
1372
+ "type": "address"
1373
+ }
1374
+ ],
1375
+ "stateMutability": "view",
1376
+ "type": "function"
1377
+ },
1378
+ {
1379
+ "inputs": [],
1380
+ "name": "eip712Domain",
1381
+ "outputs": [
1382
+ {
1383
+ "internalType": "bytes1",
1384
+ "name": "fields",
1385
+ "type": "bytes1"
1386
+ },
1387
+ {
1388
+ "internalType": "string",
1389
+ "name": "name",
1390
+ "type": "string"
1391
+ },
1392
+ {
1393
+ "internalType": "string",
1394
+ "name": "version",
1395
+ "type": "string"
1396
+ },
1397
+ {
1398
+ "internalType": "uint256",
1399
+ "name": "chainId",
1400
+ "type": "uint256"
1401
+ },
1402
+ {
1403
+ "internalType": "address",
1404
+ "name": "verifyingContract",
1405
+ "type": "address"
1406
+ },
1407
+ {
1408
+ "internalType": "bytes32",
1409
+ "name": "salt",
1410
+ "type": "bytes32"
1411
+ },
1412
+ {
1413
+ "internalType": "uint256[]",
1414
+ "name": "extensions",
1415
+ "type": "uint256[]"
1416
+ }
1417
+ ],
1418
+ "stateMutability": "view",
1419
+ "type": "function"
1420
+ },
1421
+ {
1422
+ "inputs": [
1423
+ {
1424
+ "internalType": "uint256",
1425
+ "name": "tokenId",
1426
+ "type": "uint256"
1427
+ }
1428
+ ],
1429
+ "name": "ethEquivalent",
1430
+ "outputs": [
1431
+ {
1432
+ "internalType": "uint256",
1433
+ "name": "",
1434
+ "type": "uint256"
1435
+ }
1436
+ ],
1437
+ "stateMutability": "view",
1438
+ "type": "function"
1439
+ },
1440
+ {
1441
+ "inputs": [
1442
+ {
1443
+ "internalType": "uint256",
1444
+ "name": "tokenId",
1445
+ "type": "uint256"
1446
+ }
1447
+ ],
1448
+ "name": "getApproved",
1449
+ "outputs": [
1450
+ {
1451
+ "internalType": "address",
1452
+ "name": "",
1453
+ "type": "address"
1454
+ }
1455
+ ],
1456
+ "stateMutability": "view",
1457
+ "type": "function"
1458
+ },
1459
+ {
1460
+ "inputs": [
1461
+ {
1462
+ "internalType": "uint256",
1463
+ "name": "timepoint",
1464
+ "type": "uint256"
1465
+ }
1466
+ ],
1467
+ "name": "getPastTotalSupply",
1468
+ "outputs": [
1469
+ {
1470
+ "internalType": "uint256",
1471
+ "name": "",
1472
+ "type": "uint256"
1473
+ }
1474
+ ],
1475
+ "stateMutability": "view",
1476
+ "type": "function"
1477
+ },
1478
+ {
1479
+ "inputs": [
1480
+ {
1481
+ "internalType": "address",
1482
+ "name": "account",
1483
+ "type": "address"
1484
+ },
1485
+ {
1486
+ "internalType": "uint256",
1487
+ "name": "timepoint",
1488
+ "type": "uint256"
1489
+ }
1490
+ ],
1491
+ "name": "getPastVotes",
1492
+ "outputs": [
1493
+ {
1494
+ "internalType": "uint256",
1495
+ "name": "",
1496
+ "type": "uint256"
1497
+ }
1498
+ ],
1499
+ "stateMutability": "view",
1500
+ "type": "function"
1501
+ },
1502
+ {
1503
+ "inputs": [
1504
+ {
1505
+ "internalType": "uint256",
1506
+ "name": "tokenId",
1507
+ "type": "uint256"
1508
+ }
1509
+ ],
1510
+ "name": "getReceipt",
1511
+ "outputs": [
1512
+ {
1513
+ "components": [
1514
+ {
1515
+ "internalType": "address",
1516
+ "name": "account",
1517
+ "type": "address"
1518
+ },
1519
+ {
1520
+ "internalType": "uint256",
1521
+ "name": "principal",
1522
+ "type": "uint256"
1523
+ },
1524
+ {
1525
+ "internalType": "uint256",
1526
+ "name": "shares",
1527
+ "type": "uint256"
1528
+ },
1529
+ {
1530
+ "internalType": "uint256",
1531
+ "name": "indexAtMint",
1532
+ "type": "uint256"
1533
+ },
1534
+ {
1535
+ "internalType": "enum ReceiptNFT.Currency",
1536
+ "name": "currency",
1537
+ "type": "uint8"
1538
+ },
1539
+ {
1540
+ "internalType": "enum ReceiptNFT.Kind",
1541
+ "name": "kind",
1542
+ "type": "uint8"
1543
+ },
1544
+ {
1545
+ "internalType": "uint64",
1546
+ "name": "timestamp",
1547
+ "type": "uint64"
1548
+ }
1549
+ ],
1550
+ "internalType": "struct ReceiptNFT.Receipt",
1551
+ "name": "",
1552
+ "type": "tuple"
1553
+ }
1554
+ ],
1555
+ "stateMutability": "view",
1556
+ "type": "function"
1557
+ },
1558
+ {
1559
+ "inputs": [
1560
+ {
1561
+ "internalType": "address",
1562
+ "name": "account",
1563
+ "type": "address"
1564
+ }
1565
+ ],
1566
+ "name": "getVotes",
1567
+ "outputs": [
1568
+ {
1569
+ "internalType": "uint256",
1570
+ "name": "",
1571
+ "type": "uint256"
1572
+ }
1573
+ ],
1574
+ "stateMutability": "view",
1575
+ "type": "function"
1576
+ },
1577
+ {
1578
+ "inputs": [
1579
+ {
1580
+ "internalType": "address",
1581
+ "name": "_authority",
1582
+ "type": "address"
1583
+ }
1584
+ ],
1585
+ "name": "initialize",
1586
+ "outputs": [],
1587
+ "stateMutability": "nonpayable",
1588
+ "type": "function"
1589
+ },
1590
+ {
1591
+ "inputs": [
1592
+ {
1593
+ "internalType": "address",
1594
+ "name": "owner",
1595
+ "type": "address"
1596
+ },
1597
+ {
1598
+ "internalType": "address",
1599
+ "name": "operator",
1600
+ "type": "address"
1601
+ }
1602
+ ],
1603
+ "name": "isApprovedForAll",
1604
+ "outputs": [
1605
+ {
1606
+ "internalType": "bool",
1607
+ "name": "",
1608
+ "type": "bool"
1609
+ }
1610
+ ],
1611
+ "stateMutability": "view",
1612
+ "type": "function"
1613
+ },
1614
+ {
1615
+ "inputs": [],
1616
+ "name": "isConsumingScheduledOp",
1617
+ "outputs": [
1618
+ {
1619
+ "internalType": "bytes4",
1620
+ "name": "",
1621
+ "type": "bytes4"
1622
+ }
1623
+ ],
1624
+ "stateMutability": "view",
1625
+ "type": "function"
1626
+ },
1627
+ {
1628
+ "inputs": [
1629
+ {
1630
+ "internalType": "address",
1631
+ "name": "to",
1632
+ "type": "address"
1633
+ },
1634
+ {
1635
+ "components": [
1636
+ {
1637
+ "internalType": "address",
1638
+ "name": "account",
1639
+ "type": "address"
1640
+ },
1641
+ {
1642
+ "internalType": "uint256",
1643
+ "name": "principal",
1644
+ "type": "uint256"
1645
+ },
1646
+ {
1647
+ "internalType": "uint256",
1648
+ "name": "shares",
1649
+ "type": "uint256"
1650
+ },
1651
+ {
1652
+ "internalType": "uint256",
1653
+ "name": "indexAtMint",
1654
+ "type": "uint256"
1655
+ },
1656
+ {
1657
+ "internalType": "enum ReceiptNFT.Currency",
1658
+ "name": "currency",
1659
+ "type": "uint8"
1660
+ },
1661
+ {
1662
+ "internalType": "enum ReceiptNFT.Kind",
1663
+ "name": "kind",
1664
+ "type": "uint8"
1665
+ },
1666
+ {
1667
+ "internalType": "uint64",
1668
+ "name": "timestamp",
1669
+ "type": "uint64"
1670
+ }
1671
+ ],
1672
+ "internalType": "struct ReceiptNFT.Receipt",
1673
+ "name": "r",
1674
+ "type": "tuple"
1675
+ }
1676
+ ],
1677
+ "name": "mint",
1678
+ "outputs": [
1679
+ {
1680
+ "internalType": "uint256",
1681
+ "name": "tokenId",
1682
+ "type": "uint256"
1683
+ }
1684
+ ],
1685
+ "stateMutability": "nonpayable",
1686
+ "type": "function"
1687
+ },
1688
+ {
1689
+ "inputs": [],
1690
+ "name": "name",
1691
+ "outputs": [
1692
+ {
1693
+ "internalType": "string",
1694
+ "name": "",
1695
+ "type": "string"
1696
+ }
1697
+ ],
1698
+ "stateMutability": "view",
1699
+ "type": "function"
1700
+ },
1701
+ {
1702
+ "inputs": [],
1703
+ "name": "nextId",
1704
+ "outputs": [
1705
+ {
1706
+ "internalType": "uint256",
1707
+ "name": "",
1708
+ "type": "uint256"
1709
+ }
1710
+ ],
1711
+ "stateMutability": "view",
1712
+ "type": "function"
1713
+ },
1714
+ {
1715
+ "inputs": [
1716
+ {
1717
+ "internalType": "address",
1718
+ "name": "owner",
1719
+ "type": "address"
1720
+ }
1721
+ ],
1722
+ "name": "nonces",
1723
+ "outputs": [
1724
+ {
1725
+ "internalType": "uint256",
1726
+ "name": "",
1727
+ "type": "uint256"
1728
+ }
1729
+ ],
1730
+ "stateMutability": "view",
1731
+ "type": "function"
1732
+ },
1733
+ {
1734
+ "inputs": [
1735
+ {
1736
+ "internalType": "uint256",
1737
+ "name": "tokenId",
1738
+ "type": "uint256"
1739
+ }
1740
+ ],
1741
+ "name": "ownerOf",
1742
+ "outputs": [
1743
+ {
1744
+ "internalType": "address",
1745
+ "name": "",
1746
+ "type": "address"
1747
+ }
1748
+ ],
1749
+ "stateMutability": "view",
1750
+ "type": "function"
1751
+ },
1752
+ {
1753
+ "inputs": [],
1754
+ "name": "pause",
1755
+ "outputs": [],
1756
+ "stateMutability": "nonpayable",
1757
+ "type": "function"
1758
+ },
1759
+ {
1760
+ "inputs": [],
1761
+ "name": "paused",
1762
+ "outputs": [
1763
+ {
1764
+ "internalType": "bool",
1765
+ "name": "",
1766
+ "type": "bool"
1767
+ }
1768
+ ],
1769
+ "stateMutability": "view",
1770
+ "type": "function"
1771
+ },
1772
+ {
1773
+ "inputs": [],
1774
+ "name": "proxiableUUID",
1775
+ "outputs": [
1776
+ {
1777
+ "internalType": "bytes32",
1778
+ "name": "",
1779
+ "type": "bytes32"
1780
+ }
1781
+ ],
1782
+ "stateMutability": "view",
1783
+ "type": "function"
1784
+ },
1785
+ {
1786
+ "inputs": [
1787
+ {
1788
+ "internalType": "uint256",
1789
+ "name": "",
1790
+ "type": "uint256"
1791
+ }
1792
+ ],
1793
+ "name": "receiptOf",
1794
+ "outputs": [
1795
+ {
1796
+ "internalType": "address",
1797
+ "name": "account",
1798
+ "type": "address"
1799
+ },
1800
+ {
1801
+ "internalType": "uint256",
1802
+ "name": "principal",
1803
+ "type": "uint256"
1804
+ },
1805
+ {
1806
+ "internalType": "uint256",
1807
+ "name": "shares",
1808
+ "type": "uint256"
1809
+ },
1810
+ {
1811
+ "internalType": "uint256",
1812
+ "name": "indexAtMint",
1813
+ "type": "uint256"
1814
+ },
1815
+ {
1816
+ "internalType": "enum ReceiptNFT.Currency",
1817
+ "name": "currency",
1818
+ "type": "uint8"
1819
+ },
1820
+ {
1821
+ "internalType": "enum ReceiptNFT.Kind",
1822
+ "name": "kind",
1823
+ "type": "uint8"
1824
+ },
1825
+ {
1826
+ "internalType": "uint64",
1827
+ "name": "timestamp",
1828
+ "type": "uint64"
1829
+ }
1830
+ ],
1831
+ "stateMutability": "view",
1832
+ "type": "function"
1833
+ },
1834
+ {
1835
+ "inputs": [
1836
+ {
1837
+ "internalType": "address",
1838
+ "name": "from",
1839
+ "type": "address"
1840
+ },
1841
+ {
1842
+ "internalType": "address",
1843
+ "name": "to",
1844
+ "type": "address"
1845
+ },
1846
+ {
1847
+ "internalType": "uint256",
1848
+ "name": "tokenId",
1849
+ "type": "uint256"
1850
+ }
1851
+ ],
1852
+ "name": "safeTransferFrom",
1853
+ "outputs": [],
1854
+ "stateMutability": "nonpayable",
1855
+ "type": "function"
1856
+ },
1857
+ {
1858
+ "inputs": [
1859
+ {
1860
+ "internalType": "address",
1861
+ "name": "from",
1862
+ "type": "address"
1863
+ },
1864
+ {
1865
+ "internalType": "address",
1866
+ "name": "to",
1867
+ "type": "address"
1868
+ },
1869
+ {
1870
+ "internalType": "uint256",
1871
+ "name": "tokenId",
1872
+ "type": "uint256"
1873
+ },
1874
+ {
1875
+ "internalType": "bytes",
1876
+ "name": "data",
1877
+ "type": "bytes"
1878
+ }
1879
+ ],
1880
+ "name": "safeTransferFrom",
1881
+ "outputs": [],
1882
+ "stateMutability": "nonpayable",
1883
+ "type": "function"
1884
+ },
1885
+ {
1886
+ "inputs": [
1887
+ {
1888
+ "internalType": "address",
1889
+ "name": "approver",
1890
+ "type": "address"
1891
+ },
1892
+ {
1893
+ "internalType": "bool",
1894
+ "name": "",
1895
+ "type": "bool"
1896
+ }
1897
+ ],
1898
+ "name": "setApprovalForAll",
1899
+ "outputs": [],
1900
+ "stateMutability": "pure",
1901
+ "type": "function"
1902
+ },
1903
+ {
1904
+ "inputs": [
1905
+ {
1906
+ "internalType": "address",
1907
+ "name": "newAuthority",
1908
+ "type": "address"
1909
+ }
1910
+ ],
1911
+ "name": "setAuthority",
1912
+ "outputs": [],
1913
+ "stateMutability": "nonpayable",
1914
+ "type": "function"
1915
+ },
1916
+ {
1917
+ "inputs": [
1918
+ {
1919
+ "internalType": "bytes4",
1920
+ "name": "interfaceId",
1921
+ "type": "bytes4"
1922
+ }
1923
+ ],
1924
+ "name": "supportsInterface",
1925
+ "outputs": [
1926
+ {
1927
+ "internalType": "bool",
1928
+ "name": "",
1929
+ "type": "bool"
1930
+ }
1931
+ ],
1932
+ "stateMutability": "view",
1933
+ "type": "function"
1934
+ },
1935
+ {
1936
+ "inputs": [],
1937
+ "name": "symbol",
1938
+ "outputs": [
1939
+ {
1940
+ "internalType": "string",
1941
+ "name": "",
1942
+ "type": "string"
1943
+ }
1944
+ ],
1945
+ "stateMutability": "view",
1946
+ "type": "function"
1947
+ },
1948
+ {
1949
+ "inputs": [
1950
+ {
1951
+ "internalType": "uint256",
1952
+ "name": "tokenId",
1953
+ "type": "uint256"
1954
+ }
1955
+ ],
1956
+ "name": "tokenURI",
1957
+ "outputs": [
1958
+ {
1959
+ "internalType": "string",
1960
+ "name": "",
1961
+ "type": "string"
1962
+ }
1963
+ ],
1964
+ "stateMutability": "view",
1965
+ "type": "function"
1966
+ },
1967
+ {
1968
+ "inputs": [
1969
+ {
1970
+ "internalType": "address",
1971
+ "name": "from",
1972
+ "type": "address"
1973
+ },
1974
+ {
1975
+ "internalType": "address",
1976
+ "name": "to",
1977
+ "type": "address"
1978
+ },
1979
+ {
1980
+ "internalType": "uint256",
1981
+ "name": "tokenId",
1982
+ "type": "uint256"
1983
+ }
1984
+ ],
1985
+ "name": "transferFrom",
1986
+ "outputs": [],
1987
+ "stateMutability": "nonpayable",
1988
+ "type": "function"
1989
+ },
1990
+ {
1991
+ "inputs": [],
1992
+ "name": "unpause",
1993
+ "outputs": [],
1994
+ "stateMutability": "nonpayable",
1995
+ "type": "function"
1996
+ },
1997
+ {
1998
+ "inputs": [
1999
+ {
2000
+ "internalType": "address",
2001
+ "name": "newImplementation",
2002
+ "type": "address"
2003
+ },
2004
+ {
2005
+ "internalType": "bytes",
2006
+ "name": "data",
2007
+ "type": "bytes"
2008
+ }
2009
+ ],
2010
+ "name": "upgradeToAndCall",
2011
+ "outputs": [],
2012
+ "stateMutability": "payable",
2013
+ "type": "function"
2014
+ }
2015
+ ],
2016
+ "bytecode": "0x60a0806040523460295730608052614941908161002f8239608051818181610d3c01526137cc0152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461033757806306fdde0314610332578063081812fc1461032d578063095ea7b31461032857806323b872dd146103235780633a46b1a81461031e5780633a7016d4146103195780633f4ba83a1461031457806342842e0e1461030f57806342966c681461030a57806345164e7b14610305578063490e7ea4146103005780634bf5d7e9146102fb5780634db51f5e146102f65780634f1ef286146102f157806352d1902d146102ec578063587cde1e146102e75780635c19a95c146102e25780635c975abb146102dd57806361b8ce8c146102d85780636352211e146102d35780636d1a7473146102ce57806370a08231146102c9578063743112cd146102c45780637a9e5e4b146102bf5780637ecebe00146102ba5780638293ace0146102b55780638456cb59146102b057806384b0196e146102ab5780638e539e8c146102a65780638fb36037146102a157806391ddadf41461029c57806395d89b41146102975780639ab24eb014610292578063a22cb4651461028d578063a80e2a2214610288578063ad3cb1cc14610283578063b12ed45e1461027e578063b63e6ac314610279578063b88d4fde14610274578063bf7e214f1461026f578063c0d4418b1461026a578063c3cda52014610265578063c4d66de814610260578063c7c4ff461461025b578063c87b56dd14610256578063cd3c3f5e14610251578063d22a40d01461024c578063e985e9c5146102475763efac70341461024257600080fd5b611d12565b611cbe565b611c9b565b611c7f565b61194d565b611924565b6117f8565b61172a565b61168a565b611634565b6115e0565b61152d565b61149f565b611459565b611436565b611411565b6113d0565b61131c565b6112f9565b6112a6565b6111c9565b6110f8565b611007565b610fe4565b610f8b565b610f10565b610eed565b610e98565b610e7c565b610e4c565b610e2e565b610dfe565b610ddc565b610d94565b610d29565b610c22565b610ad3565b610a84565b610990565b6108fc565b6107c7565b610793565b61071a565b6106f7565b61061e565b610605565b610596565b61051f565b610428565b610353565b6001600160e01b031981160361034e57565b600080fd5b3461034e57602036600319011261034e5760206004356103728161033c565b63ffffffff60e01b166380ac58cd60e01b81149081156103b0575b811561039f575b506040519015158152f35b6301ffc9a760e01b14905038610394565b635b5e139f60e01b8114915061038d565b600091031261034e57565b60005b8381106103df5750506000910152565b81810151838201526020016103cf565b90602091610408815180928185528580860191016103cc565b601f01601f1916010190565b9060206104259281815201906103ef565b90565b3461034e5760008060031936011261051c5760405190806000805160206147ec833981519152805461045981611d35565b808652926020926001928084169081156104ed5750600114610496575b6104928761048681890382610b90565b60405191829182610414565b0390f35b815293507f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf815b8385106104da57505050508101602001610486826104923880610476565b80548686018401529382019381016104bc565b9150508695506104929693506020925061048694915060ff191682840152151560051b82010192933880610476565b80fd5b3461034e57602036600319011261034e5760043561053c81612640565b5060005260008051602061488c833981519152602052602060018060a01b0360406000205416604051908152f35b600435906001600160a01b038216820361034e57565b602435906001600160a01b038216820361034e57565b3461034e57604036600319011261034e5760246105b161056a565b60405163a9fbf51f60e01b81526001600160a01b039091166004820152fd5b606090600319011261034e576001600160a01b0390600435828116810361034e5791602435908116810361034e579060443590565b3461034e5761061c610616366105d0565b91611f18565b005b3461034e57604036600319011261034e5761063f61063a61056a565b612102565b61064a6024356127f4565b81549060008291600584116106a1575b6106659350846136eb565b9081610684575050602060005b6040516001600160d01b039091168152f35b61068f602092612850565b9060005281600020015460301c610672565b91926106ac8161354a565b81039081116106f257610665938560005265ffffffffffff80836020600020015416908516106000146106e057509161065a565b9291506106ec9061286c565b9061065a565b6123b1565b3461034e57600036600319011261034e57602060405167fcf45a9de1e9ce348152f35b3461034e57600036600319011261034e5761073536336128fb565b60008051602061484c833981519152805460ff8116156107815760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461034e5761061c6107a4366105d0565b90604051926107b284610b3f565b600084526107c1838383611f18565b33612d35565b3461034e57602036600319011261034e576004356107e536336128fb565b6107ed612a1b565b600081815260008051602061486c83398151915260205260408120549091906001600160a01b03908116156108a15761082582612670565b161561088957610860610842826000526001602052604060002090565b60046000918281558260018201558260028201558260038201550155565b33907fe861e0b12c283de7ca3f4d68d33f3bfc6fc01e4896cddf05e52b8f2a1e548e248380a380f35b60249060405190637e27328960e01b82526004820152fd5b604051637e27328960e01b815260048101839052602490fd5b60005260008051602061486c833981519152602052604060002090565b634e487b7160e01b600052602160045260246000fd5b600211156108f757565b6108d7565b3461034e57602036600319011261034e57600435600052600160205260e060406000206001600160401b0360018060a01b038254169160018101546002820154600460038401549301549260ff84169160ff8560081c1693604051978852602088015260408701526060860152610972816108ed565b6080850152610980816108ed565b60a084015260101c1660c0820152f35b3461034e57602036600319011261034e57600435600081815260008051602061486c833981519152602052604090819020546001600160a01b0390811615610a6c57610492926000526001602052610a5c82600020918351906109f282610b0c565b835416815260c06001600160401b03600460018601549560208501968752600281015488860152600381015460608601520154610a3560ff8216608086016121fe565b610a4860ff8260081c1660a086016121fe565b60101c169101906001600160401b03169052565b5190519081529081906020820190565b8151637e27328960e01b815260048101849052602490fd5b3461034e57600036600319011261034e57610492604051610aa481610b5a565b600e81526d06d6f64653d74696d657374616d760941b60208201526040519182916020835260208301906103ef565b3461034e57600036600319011261034e57602060405167bf1faa41f651ca3a8152f35b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117610b2757604052565b610af6565b6001600160401b038111610b2757604052565b602081019081106001600160401b03821117610b2757604052565b604081019081106001600160401b03821117610b2757604052565b60a081019081106001600160401b03821117610b2757604052565b90601f801991011681019081106001600160401b03821117610b2757604052565b60405190610bbe82610b5a565b565b6001600160401b038111610b2757601f01601f191660200190565b81601f8201121561034e57803590610bf282610bc0565b92610c006040519485610b90565b8284526020838301011161034e57816000926020809301838601378301015290565b604036600319011261034e57610c3661056a565b6024356001600160401b03811161034e57610c55903690600401610bdb565b90610c5e6137c2565b610c6836336128fb565b610c706137c2565b6040516352d1902d60e01b8152916020836004816001600160a01b0386165afa60009381610cf8575b50610cbf57604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b9060008051602061480c8339815191528303610cdf5761061c925061429c565b604051632a87526960e21b815260048101849052602490fd5b610d1b91945060203d602011610d22575b610d138183610b90565b81019061381c565b9238610c99565b503d610d09565b3461034e57600036600319011261034e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610d8257602060405160008051602061480c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461034e57602036600319011261034e5760206001600160a01b0380610db861056a565b166000526000805160206147cc833981519152825260406000205416604051908152f35b3461034e57602036600319011261034e5761061c610df861056a565b33612a46565b3461034e57600036600319011261034e57602060ff60008051602061484c83398151915254166040519015158152f35b3461034e57600036600319011261034e576020600054604051908152f35b3461034e57602036600319011261034e576020610e6a600435612640565b6040516001600160a01b039091168152f35b3461034e57600036600319011261034e57602060405160028152f35b3461034e57602036600319011261034e57610eb161056a565b6001600160a01b03811615610ed457610ecb60209161213b565b54604051908152f35b6040516322718ad960e21b815260006004820152602490fd5b3461034e57600036600319011261034e57602060405167054ed88267a063458152f35b3461034e57602036600319011261034e57610f2961056a565b6000805160206147ac833981519152546001600160a01b03919082163303610f7457803b15610f5b5761061c90612ac1565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461034e57602036600319011261034e576001600160a01b03610fac61056a565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b3461034e57600036600319011261034e57602060405167973871d7e74f37488152f35b3461034e57600036600319011261034e5761102236336128fb565b61102a612a1b565b60008051602061484c833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b916110a490949194600f60f81b845261109660209660e0602087015260e08601906103ef565b9084820360408601526103ef565b92606083015260018060a01b03166080820152600060a082015260c08183039101526020808451928381520193019160005b8281106110e4575050505090565b8351855293810193928101926001016110d6565b3461034e57600036600319011261034e577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005415806111a0575b156111635761113f611d6f565b611147611e57565b906104926111536121e6565b6040519384933091469186611070565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415611132565b3461034e57602036600319011261034e576111e56004356127f4565b60008051602061482c83398151915290815490600082916005841161124b575b61120f9350613675565b908161122357505060405160008152602090f35b61122e602092612850565b906000526000805160206148cc833981519152015460301c610672565b91926112568161354a565b81039081116106f25761120f938560005265ffffffffffff80836000805160206148cc83398151915201541690851610600014611294575091611205565b9291506112a09061286c565b90611205565b3461034e57600036600319011261034e576000805160206147ac8339815191525460a01c60ff16156112f0576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b602060006112dd565b3461034e57600036600319011261034e57602060405165ffffffffffff42168152f35b3461034e5760008060031936011261051c5760405190806000805160206148ec833981519152805461134d81611d35565b808652926020926001928084169081156104ed5750600114611379576104928761048681890382610b90565b815293507ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e5b8385106113bd57505050508101602001610486826104923880610476565b805486860184015293820193810161139f565b3461034e57602036600319011261034e5760206001600160d01b036113fe6113f961063a61056a565b612b6f565b16604051908152f35b8015150361034e57565b3461034e57604036600319011261034e57602461142c61056a565b6105b18235611407565b3461034e57600036600319011261034e5760206040516711d8f2d2caa4286e8152f35b3461034e57600036600319011261034e5761049260405161147981610b5a565b60058152640352e302e360dc1b60208201526040519182916020835260208301906103ef565b3461034e57600036600319011261034e576020604051670b49c88cd3d1ba3c8152f35b91909160c06001600160401b038160e084019560018060a01b038151168552602081015160208601526040810151604086015260608101516060860152608081015161150d816108ed565b608086015260a0810151611520816108ed565b60a0860152015116910152565b3461034e57602036600319011261034e5760043560405161154d81610b0c565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260018060a01b03611595611588836108ba565b546001600160a01b031690565b16156115c6576115ba6115b5610492926000526001602052604060002090565b61220a565b604051918291826114c2565b604051637e27328960e01b81526004810191909152602490fd5b3461034e57608036600319011261034e576115f961056a565b611601610580565b90604435606435926001600160401b03841161034e5761162861061c943690600401610bdb565b926107c1838383611f18565b3461034e57600036600319011261034e576000805160206147ac833981519152546040516001600160a01b039091168152602090f35b6002111561034e57565b60e435906001600160401b038216820361034e57565b3461034e5761010036600319011261034e576116a461056a565b60e036602319011261034e5761171a61049291604051906116c482610b0c565b6116cc610580565b825260443560208301526064356040830152608435606083015260a4356116f28161166a565b608083015260c4356117038161166a565b60a0830152611710611674565b60c0830152612279565b6040519081529081906020820190565b3461034e5760c036600319011261034e5761174361056a565b6044359060243560643560ff8116810361034e578342116117df576117d361061c946117da926040519060208201927fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf845260018060a01b03881660408401528660608401526080830152608082526117bb82610b75565b6117ce60a4359360843593519020612f87565b613015565b918261302d565b612a46565b604051632341d78760e11b815260048101859052602490fd5b3461034e57602036600319011261034e5761181161056a565b6000805160206148ac83398151915254906001600160401b0360ff8360401c161592168015908161191c575b6001149081611912575b159081611909575b506118f7576000805160206148ac833981519152805467ffffffffffffffff1916600117905561188390826118d2576123fe565b61188957005b6000805160206148ac833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6000805160206148ac833981519152805460ff60401b1916600160401b1790556123fe565b60405163f92ee8a960e01b8152600490fd5b9050153861184f565b303b159150611847565b83915061183d565b3461034e57600036600319011261034e576002546040516001600160a01b039091168152602090f35b3461034e57602036600319011261034e576004356001600160a01b03611975611588836108ba565b16156115c65761199b6119956115b5836000526001602052604060002090565b9161311f565b60808201516119a9816108ed565b6119b2816108ed565b611c71576119be6125b9565b915b60a08101516119ce816108ed565b6119d7816108ed565b611c63576119e3612608565b905b60208101516119f39061311f565b6040820151611a019061311f565b9160600151611a0f9061311f565b6040517f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b000000006020820152958695919491603c870175226e616d65223a22576972652052656365697074202360501b8152601601611a6a91612629565b61088b60f21b81526002017f226465736372697074696f6e223a22536f756c626f756e64207265636569707481527f20666f72207374616b696e67206f722077617272616e742070757263686173656020820152620b888b60ea1b60408201526043016d2261747472696275746573223a5b60901b8152600e017f7b2274726169745f74797065223a2263757272656e6379222c2276616c7565228152611d1160f11b6020820152602201611b1e91612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a226b696e64222c2276616c7565223a2200008152601e01611b5991612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a227072696e636970616c222c2276616c7565815262111d1160e91b6020820152602301611ba091612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a22736861726573222c2276616c7565223a228152602001611bdb91612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a22696e64657841744d696e74222c2276616c8152643ab2911d1160d91b6020820152602501611c2491612629565b61227d60f01b8152600201605d60f81b8152600101607d60f81b815260010103601f1981018252611c559082610b90565b604051610492819282610414565b611c6b6125dc565b906119e5565b611c79612596565b916119c0565b3461034e57600036600319011261034e57602060405160018152f35b3461034e57600036600319011261034e57602060405167ae92c175e0db63cd8152f35b3461034e57604036600319011261034e57602060ff611d06611cde61056a565b611cef611ce9610580565b91612174565b9060018060a01b0316600052602052604060002090565b54166040519015158152f35b3461034e57600036600319011261034e57602060405167c58ec56834342af58152f35b90600182811c92168015611d65575b6020831014611d4f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d44565b604051906000827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10291825492611da484611d35565b80845293602091600191828116908115611e315750600114611dd0575b505050610bbe92500383610b90565b60009081527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d9590935091905b828410611e195750610bbe945050508101602001388080611dc1565b85548885018301529485019487945092810192611dfd565b9250505060209250610bbe94915060ff191682840152151560051b820101388080611dc1565b604051906000827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10391825492611e8c84611d35565b80845293602091600191828116908115611e315750600114611eb757505050610bbe92500383610b90565b60009081527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b759590935091905b828410611f005750610bbe945050508101602001388080611dc1565b85548885018301529485019487945092810192611ee4565b91906001600160a01b0390818116156120e9578190611f35612a1b565b611f41611588856108ba565b8281161515806120e1575b611f92575b50611f5e908433916134ce565b9316921690828203611f6f57505050565b60649350604051926364283d7b60e01b8452600484015260248301526044820152fd5b6000805160206147ac83398151915254909250611fc590611fb9906001600160a01b031681565b6001600160a01b031690565b604080516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b0395909516602482015292918184604481845afa80156120be5786946000916120c3575b501561201d575b50509091611f51565b815194855267bf1faa41f651ca3a60048601526001600160a01b03831660248601529193909250908290829060449082905afa9081156120be57600091612090575b501561206e5781818492612014565b51633250574960e11b81526001600160a01b0391909116600482015260249150fd5b6120b09150823d84116120b7575b6120a88183610b90565b8101906127bc565b503861205f565b503d61209e565b6127e8565b6120da9150833d85116120b7576120a88183610b90565b503861200d565b506001611f4c565b604051633250574960e11b815260006004820152602490fd5b6001600160a01b031660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d016020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b6001600160a01b031660009081527fb06af95d3168a3d1f71b75be6205cdfdeb4c8482beb33b78ddc39447ad8fa4e66020526040902090565b6040516121f281610b3f565b60008152906000368137565b612207826108ed565b52565b90610bbe60405161221a81610b0c565b60c06001600160401b036004839660018060a01b038154168552600181015460208601526002810154604086015260038101546060860152015460ff8116612261816108ed565b6080850152610a4860ff8260081c1660a086016121fe565b9061228436336128fb565b61228c612a1b565b6000549160001983146123b15760018084016000908155426001600160401b031660c0850190815285825260209290925260409020835181546001600160a01b0319166001600160a01b0391821617825585937fdfb6dc7ca71999766b393d3949af34af6060f10f6438352743bfb2c8c3e5604393919290916123909161236b9060049060208a0151600182015560408a0151600282015560608a01516003820155019161234760808a0151612341816108ed565b846123c7565b61235e60a08a0151612358816108ed565b846123df565b516001600160401b031690565b69ffffffffffffffff000082549160101b169069ffffffffffffffff00001916179055565b61239a8482612dcc565b6123ab6040519283921695826114c2565b0390a390565b634e487b7160e01b600052601160045260246000fd5b906123d1816108ed565b60ff80198354169116179055565b906123e9816108ed565b61ff0082549160081b169061ff001916179055565b60405161240a81610b5a565b600c81526020906b15da5c9948149958d95a5c1d60a21b60208201526040519161243383610b5a565b600883526715d49150d152541560c21b6020840152612450613a78565b612458613a78565b8151906001600160401b038211610b27576000805160206147ec8339815191529261248c836124878654611d35565b613aa7565b602091601f84116001146124f95750826124dc9695936124cf95936124c8936000926124ee575b50508160011b916000199060031b1c19161790565b9055613ba5565b6124d7613a78565b6130a4565b6124e4613a78565b610bbe6001600055565b0151905038806124b3565b6000805160206147ec8339815191526000529190601f1984167f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81936000905b82821061257e5750509260019285926124dc9998966124cf989610612565575b505050811b019055613ba5565b015160001960f88460031b161c19169055388080612558565b80600186978294978701518155019601940190612538565b604051906125a382610b5a565b600782526609892a2be8aa8960cb1b6020830152565b604051906125c682610b5a565b60078252660a482aebe8aa8960cb1b6020830152565b604051906125e982610b5a565b601082526f57415252414e545f505552434841534560801b6020830152565b6040519061261582610b5a565b60058252645354414b4560d81b6020830152565b9061263c602092828151948592016103cc565b0190565b600081815260008051602061486c83398151915260205260409020546001600160a01b0316908115610889575090565b612678612a1b565b612684611588826108ba565b6001600160a01b0381161515806127b4575b6126a5575b506104259061330e565b6000805160206147ac833981519152546126c990611fb9906001600160a01b031681565b604080516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b039490941660248201529092908381604481865afa9081156120be57600091612796575b501561271f575b505061269b565b825190815267bf1faa41f651ca3a600482015260006024820152908290829060449082905afa9081156120be57600091612778575b5015612761578080612718565b51633250574960e11b815260006004820152602490fd5b61278f9150823d84116120b7576120a88183610b90565b5038612754565b6127ad9150843d86116120b7576120a88183610b90565b5038612711565b506000612696565b919082604091031261034e57602082516127d581611407565b92015163ffffffff8116810361034e5790565b6040513d6000823e3d90fd5b65ffffffffffff90814216808210156128325750818111612813571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b6044925060405191637669fc0f60e11b835260048301526024820152fd5b6000198101919082116106f257565b919082039182116106f257565b90600182018092116106f257565b919082018092116106f257565b60041161034e57600090600490565b6001600160e01b031990358181169392600481106128b357505050565b60040360031b82901b16169150565b6001600160a01b0390911681526040602082018190528101829052606091806000848401376000828201840152601f01601f1916010190565b6000805160206147ac8339815191528054612934906001600160a01b031661292b61292586612887565b90612896565b9084309161374c565b9015612941575b50505050565b63ffffffff16156129fb576000805160206147ac833981519152805460ff60a01b1916600160a01b17905561298390611fb9908190546001600160a01b031690565b91823b1561034e576129af9260009283604051809681958294634a63ebf760e11b8452600484016128c2565b03925af180156120be576129e2575b506000805160206147ac833981519152805460ff60a01b191690553880808061293b565b806129ef6129f592610b2c565b806103c1565b386129be565b60405162d1953b60e31b81526001600160a01b0383166004820152602490fd5b60ff60008051602061484c8339815191525416612a3457565b60405163d93c066560e01b8152600490fd5b6001600160a01b0381811660008181526000805160206147cc8339815191526020526040812080548685166001600160a01b031982168117909255610bbe96941694612aba9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a46121ad565b549161382b565b6000805160206147ac83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b60008051602061482c833981519152805480612b37575050600090565b806000198101116106f2577f88c46c62109817164d0ae1873830d4299a82e5daf552a3d8e989b27638fcf74791600052015460301c90565b805480612b7d575050600090565b6000199181838101116106f257600052602060002001015460301c90565b9081602091031261034e57516104258161033c565b610425939260809260018060a01b0316825260006020830152604082015281606082015201906103ef565b6001600160a01b039182168152911660208201526040810191909152608060608201819052610425929101906103ef565b3d15612c37573d90612c1d82610bc0565b91612c2b6040519384610b90565b82523d6000602084013e565b606090565b91929092833b612c4c5750505050565b612c70916020916040519384928392630a85bd0160e11b9788855260048501612bb0565b038160006001600160a01b0388165af160009181612d04575b50612cc85782612c97612c0c565b8051919082612cc157604051633250574960e11b81526001600160a01b0383166004820152602490fd5b6020915001fd5b6001600160e01b03191603612ce157503880808061293b565b604051633250574960e11b81526001600160a01b03919091166004820152602490fd5b612d2791925060203d602011612d2e575b612d1f8183610b90565b810190612b9b565b9038612c89565b503d612d15565b92939193843b612d47575b5050505050565b602091612d6a6040519485938493630a85bd0160e11b9889865260048601612bdb565b038160006001600160a01b0388165af160009181612dab575b50612d915782612c97612c0c565b6001600160e01b03191603612ce157503880808080612d40565b612dc591925060203d602011612d2e57612d1f8183610b90565b9038612d83565b919091604092835191612dde83610b3f565b600083526001600160a01b0381811615612f6f57612dfa612a1b565b612e06611588846108ba565b818116151580612f67575b612e4a575b50612e2183836133e2565b16612e3257610bbe93945033612c3c565b84516339e3563760e11b815260006004820152602490fd5b6000805160206147ac83398151915254612e6e90611fb9906001600160a01b031681565b87516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b0393909316602482015290918882604481865afa80156120be578992600091612f49575b5015612ec2575b5050612e16565b815190815267bf1faa41f651ca3a60048201526001600160a01b038516602482015291829060449082905afa9081156120be57600091612f2b575b5015612f0b57388681612ebb565b8551633250574960e11b81526001600160a01b0383166004820152602490fd5b612f429150873d89116120b7576120a88183610b90565b5038612efd565b612f609150833d85116120b7576120a88183610b90565b5038612eb4565b506001612e11565b8551633250574960e11b815260006004820152602490fd5b612f8f614417565b612f97614481565b916040519260208401927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604085015260608401524660808401523060a084015260a0835260c08301918383106001600160401b03841117610b27576042938360405251902061190160f01b8352600283015260228201522090565b9161042593916130249361395d565b909291926139eb565b6001600160a01b03811660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915591829003613079575050565b6040516301d4b62360e61b81526001600160a01b039190911660048201526024810191909152604490fd5b6130c5906130b0613a78565b6130b8613a78565b6130c0613a78565b612ac1565b610bbe613a78565b906130d782610bc0565b6130e46040519182610b90565b82815280926130f5601f1991610bc0565b0190602036910137565b8115613109570490565b634e487b7160e01b600052601260045260246000fd5b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000080821015613255575b506d04ee2d6d415b85acef810000000080831015613246575b50662386f26fc1000080831015613237575b506305f5e10080831015613228575b5061271080831015613219575b506064821015613209575b600a809210156131ff575b6001908160216131b7600187016130cd565b95860101905b6131c9575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156131fa579190826131bd565b6131c2565b91600101916131a5565b919060646002910491019161319a565b6004919392049101913861318f565b60089193920491019138613182565b60109193920491019138613173565b60209193920491019138613161565b604093508104915038613148565b6040519061327082610b5a565b601b82527f5f7472616e73666572566f74696e67556e6974733a2066726f6d3a00000000006020830152565b604051906132a982610b5a565b601b82527f202020202020202020202020202020202020202020202020746f3a00000000006020830152565b604051906132e282610b5a565b601b82527f20202020202020202020202020202020202020202076616c75653a00000000006020830152565b8060005260016020526104256040600020916133876040519361333085610b0c565b61338060018060a01b039586835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b5191613ca5565b9283166133c7575b6133a08361339b613263565b6140a2565b6133b06133ab61329c565b61405a565b6133c1816133bc6132d5565b6140f0565b82614133565b6133d0836121ad565b6133db82825461285f565b905561338f565b906104259080600052600160205260406000209261345e6040519461340686610b0c565b61345660018060a01b039687835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b519282613e20565b938085166134b3575b8116613498575b61347a8461339b613263565b6134868161339b61329c565b613492826133bc6132d5565b83614208565b6134a1816121ad565b6134ac83825461287a565b905561346e565b6134bc856121ad565b6134c784825461285f565b9055613467565b906104259181600052600160205261345e604060002094604051956134f287610b0c565b61354260018060a01b039788835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b519383613f2f565b600181111561042557600181600160801b811015613663575b61360b6136016135f76135ed6135e36135d961361797600488600160401b6136129a1015613656575b640100000000811015613649575b6201000081101561363c575b610100811015613630575b6010811015613624575b101561361c575b60030260011c6135d2818b6130ff565b0160011c90565b6135d2818a6130ff565b6135d281896130ff565b6135d281886130ff565b6135d281876130ff565b6135d281866130ff565b80936130ff565b821190565b900390565b60011b6135c2565b811c9160021b916135bb565b60081c91811b916135b1565b60101c9160081b916135a6565b60201c9160101b9161359a565b60401c9160201b9161358c565b50600160401b9050608082901c613563565b905b82811061368357505090565b90918082169080831860011c82018092116106f25760008051602061482c83398151915260005265ffffffffffff80836000805160206148cc833981519152015416908516106000146136d95750915b90613677565b9291506136e59061286c565b906136d3565b91905b8382106136fb5750505090565b9091928083169080841860011c82018092116106f25760008581526020902082015465ffffffffffff908116908416101561373a5750925b91906136ee565b9392506137469061286c565b91613733565b93919060409060009560009384928397855191602083019363b700961360e01b855260018060a01b03809216602485015216604483015263ffffffff60e01b1660648201526064815261379e81610b75565b8380528360205251915afa6137b05750565b9150915051906020518060201c150290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215613800575b5050610d8257565b60008051602061480c83398151915254161415905038806137f8565b9081602091031261034e575190565b6001600160a01b03808316939291908116908185141580613954575b613852575050505050565b816138c7575b505082613867575b8080612d40565b7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249161389e6138986138a493612102565b91614343565b90614376565b604080516001600160d01b039384168152919092166020820152a2388080613860565b6138d090612102565b6138d984614343565b6001600160d01b039081806138ed85612b6f565b16911690038181116106f25761393161394a917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249465ffffffffffff4216906146ef565b6040805192851683529316602082015291829190820190565b0390a23880613858565b50831515613847565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116139d557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156120be5780516001600160a01b038116156139cc57918190565b50809160019190565b50505060009160039190565b600411156108f757565b6139f4816139e1565b806139fd575050565b613a06816139e1565b60018103613a205760405163f645eedf60e01b8152600490fd5b613a29816139e1565b60028103613a4a5760405163fce698f760e01b815260048101839052602490fd5b80613a566003926139e1565b14613a5e5750565b6040516335e2f38360e21b81526004810191909152602490fd5b60ff6000805160206148ac8339815191525460401c1615613a9557565b604051631afcd79f60e31b8152600490fd5b601f8111613ab3575050565b6000906000805160206147ec8339815191526000527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81906020601f850160051c83019410613b1c575b601f0160051c01915b828110613b1157505050565b818155600101613b05565b9092508290613afc565b601f8111613b32575050565b6000906000805160206148ec8339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e906020601f850160051c83019410613b9b575b601f0160051c01915b828110613b9057505050565b818155600101613b84565b9092508290613b7b565b9081516001600160401b038111610b27576000805160206148ec83398151915290613bd981613bd48454611d35565b613b26565b602080601f8311600114613c1057508190613c0c9394956000926124ee5750508160011b916000199060031b1c19161790565b9055565b90601f19831695613c506000805160206148ec8339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e90565b926000905b888210613c8d57505083600195969710613c74575b505050811b019055565b015160001960f88460031b161c19169055388080613c6a565b80600185968294968601518155019501930190613c55565b6000906001600160a01b0380613cba836108ba565b54168382829516928315159081613d60575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9183613d41575b613d2c575b613d2781613d08876108ba565b80546001600160a01b0319166001600160a01b03909216919091179055565b80a490565b613d358161213b565b60018154019055613cfb565b613d4a866143ad565b613d538461213b565b8054600019019055613cf6565b818093945091613dc5575b5015613d7a5790849138613ccc565b838286613d9a57604051637e27328960e01b815260048101839052602490fd5b60405163177e802f60e01b81526001600160a01b039190911660048201526024810191909152604490fd5b905083808714918215613e07575b8215613de2575b505038613d6b565b86855260008051602061488c8339815191526020526040852054161490508338613dda565b915060ff613e1885611cef8a612174565b541691613dd3565b600091906001600160a01b0380613e36846108ba565b54169381859282168015159081613ebc575b505090613d277fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284613e9d575b85169485613e88575b613d08876108ba565b613e918161213b565b60018154019055613e7f565b613ea6876143ad565b613eaf8561213b565b8054600019019055613e76565b929350909181613ed7575b5015613d7a579084913880613e48565b86811491508115613f16575b8115613ef1575b5038613ec7565b905084835260008051602061488c833981519152602052816040842054161438613eea565b905060ff613f2784611cef89612174565b541690613ee3565b6001600160a01b0380613f41846108ba565b5416938181168015159081613fcd575b505050613f709084613fae575b82169182613f99575b613d08846108ba565b827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a490565b613fa28161213b565b60018154019055613f67565b613fb7846143ad565b613fc08561213b565b8054600019019055613f5e565b81614000575b5015613fe0578080613f51565b839085613d9a57604051637e27328960e01b815260048101839052602490fd5b86811491508115614041575b811561401a575b5038613fd3565b90508460005260008051602061488c83398151915260205282604060002054161438614013565b905060ff61405283611cef89612174565b54169061400c565b61408861409d610bbe9260405192839163319af33360e01b60208401526040602484015260648301906103ef565b6000604483015203601f198101835282610b90565b6143de565b61409d6140d191610bbe9360405193849263319af33360e01b60208501526040602485015260648401906103ef565b6001600160a01b0391909116604483015203601f198101835282610b90565b61409d61411f91610bbe93604051938492632d839cb360e21b60208501526040602485015260648401906103ef565b90604483015203601f198101835282610b90565b6001600160a01b03908116919082156141c8575b600090614181565b610bbe936000526000805160206147cc833981519152602052806040600020541691600052604060002054169061382b565b61418a83614343565b6001600160d01b039490858061419e612b1a565b16911690039485116106f2576141bf610bbe9565ffffffffffff42166145ec565b5050935061414f565b6141d182614343565b6001600160d01b039081806141e4612b1a565b169116019081116106f2576142019065ffffffffffff42166145ec565b5050614147565b6001600160a01b03908116929181908415614258575b1690811561418157610bbe936000526000805160206147cc833981519152602052806040600020541691600052604060002054169061382b565b905061426383614343565b6001600160d01b0391908280614277612b1a565b169116019182116106f257614295839265ffffffffffff42166145ec565b505061421e565b90813b156143225760008051602061480c83398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a280511561430757614304916143f9565b50565b50503461431057565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b6001600160d01b0390818111614357571690565b604490604051906306dfcc6560e41b825260d060048301526024820152fd5b906001600160d01b0390818061438b85612b6f565b169116019081116106f2576143a99165ffffffffffff4216906146ef565b9091565b60005260008051602061488c83398151915260205260406000206bffffffffffffffffffffffff60a01b8154169055565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b60008061042593602081519101845af4614411612c0c565b916144c6565b61441f611d6f565b805190811561442f576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054801561445c5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b614489611e57565b8051908115614499576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10154801561445c5790565b906144ed57508051156144db57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580614520575b6144fe575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156144f6565b60008051602061482c833981519152908154600160401b811015610b2757600181018084558110156145875760009283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b600052603260045260246000fd5b908154600160401b811015610b2757600181018084558110156145875760009283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b60008051602061482c8339815191525491929180156146c55761461161463691612850565b60008051602061482c8339815191526000526000805160206148cc8339815191520190565b9081549165ffffffffffff908184169183168083116146b35786920361467b5761467492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506146ae9061469a61468c610bb1565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614529565b614674565b604051632520601d60e01b8152600490fd5b506146e9906146d561468c610bb1565b6001600160d01b0384166020820152614529565b60009190565b805492939280156147865761470661471391612850565b8260005260206000200190565b9182549265ffffffffffff918285169281168084116146b357879303614752575061467492509065ffffffffffff82549181199060301b169116179055565b9150506146ae91614772614764610bb1565b65ffffffffffff9093168352565b6001600160d01b038616602083015261459d565b50906146e991614797614764610bb1565b6001600160d01b038516602083015261459d56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00e8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbce8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930280bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0088c46c62109817164d0ae1873830d4299a82e5daf552a3d8e989b27638fcf74880bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301a26469706673582212201521d362457581bccd89220cb8c4fc705e3d80d7514f177b2cee14b0775b1c4e64736f6c63430008190033",
2017
+ "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461033757806306fdde0314610332578063081812fc1461032d578063095ea7b31461032857806323b872dd146103235780633a46b1a81461031e5780633a7016d4146103195780633f4ba83a1461031457806342842e0e1461030f57806342966c681461030a57806345164e7b14610305578063490e7ea4146103005780634bf5d7e9146102fb5780634db51f5e146102f65780634f1ef286146102f157806352d1902d146102ec578063587cde1e146102e75780635c19a95c146102e25780635c975abb146102dd57806361b8ce8c146102d85780636352211e146102d35780636d1a7473146102ce57806370a08231146102c9578063743112cd146102c45780637a9e5e4b146102bf5780637ecebe00146102ba5780638293ace0146102b55780638456cb59146102b057806384b0196e146102ab5780638e539e8c146102a65780638fb36037146102a157806391ddadf41461029c57806395d89b41146102975780639ab24eb014610292578063a22cb4651461028d578063a80e2a2214610288578063ad3cb1cc14610283578063b12ed45e1461027e578063b63e6ac314610279578063b88d4fde14610274578063bf7e214f1461026f578063c0d4418b1461026a578063c3cda52014610265578063c4d66de814610260578063c7c4ff461461025b578063c87b56dd14610256578063cd3c3f5e14610251578063d22a40d01461024c578063e985e9c5146102475763efac70341461024257600080fd5b611d12565b611cbe565b611c9b565b611c7f565b61194d565b611924565b6117f8565b61172a565b61168a565b611634565b6115e0565b61152d565b61149f565b611459565b611436565b611411565b6113d0565b61131c565b6112f9565b6112a6565b6111c9565b6110f8565b611007565b610fe4565b610f8b565b610f10565b610eed565b610e98565b610e7c565b610e4c565b610e2e565b610dfe565b610ddc565b610d94565b610d29565b610c22565b610ad3565b610a84565b610990565b6108fc565b6107c7565b610793565b61071a565b6106f7565b61061e565b610605565b610596565b61051f565b610428565b610353565b6001600160e01b031981160361034e57565b600080fd5b3461034e57602036600319011261034e5760206004356103728161033c565b63ffffffff60e01b166380ac58cd60e01b81149081156103b0575b811561039f575b506040519015158152f35b6301ffc9a760e01b14905038610394565b635b5e139f60e01b8114915061038d565b600091031261034e57565b60005b8381106103df5750506000910152565b81810151838201526020016103cf565b90602091610408815180928185528580860191016103cc565b601f01601f1916010190565b9060206104259281815201906103ef565b90565b3461034e5760008060031936011261051c5760405190806000805160206147ec833981519152805461045981611d35565b808652926020926001928084169081156104ed5750600114610496575b6104928761048681890382610b90565b60405191829182610414565b0390f35b815293507f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf815b8385106104da57505050508101602001610486826104923880610476565b80548686018401529382019381016104bc565b9150508695506104929693506020925061048694915060ff191682840152151560051b82010192933880610476565b80fd5b3461034e57602036600319011261034e5760043561053c81612640565b5060005260008051602061488c833981519152602052602060018060a01b0360406000205416604051908152f35b600435906001600160a01b038216820361034e57565b602435906001600160a01b038216820361034e57565b3461034e57604036600319011261034e5760246105b161056a565b60405163a9fbf51f60e01b81526001600160a01b039091166004820152fd5b606090600319011261034e576001600160a01b0390600435828116810361034e5791602435908116810361034e579060443590565b3461034e5761061c610616366105d0565b91611f18565b005b3461034e57604036600319011261034e5761063f61063a61056a565b612102565b61064a6024356127f4565b81549060008291600584116106a1575b6106659350846136eb565b9081610684575050602060005b6040516001600160d01b039091168152f35b61068f602092612850565b9060005281600020015460301c610672565b91926106ac8161354a565b81039081116106f257610665938560005265ffffffffffff80836020600020015416908516106000146106e057509161065a565b9291506106ec9061286c565b9061065a565b6123b1565b3461034e57600036600319011261034e57602060405167fcf45a9de1e9ce348152f35b3461034e57600036600319011261034e5761073536336128fb565b60008051602061484c833981519152805460ff8116156107815760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461034e5761061c6107a4366105d0565b90604051926107b284610b3f565b600084526107c1838383611f18565b33612d35565b3461034e57602036600319011261034e576004356107e536336128fb565b6107ed612a1b565b600081815260008051602061486c83398151915260205260408120549091906001600160a01b03908116156108a15761082582612670565b161561088957610860610842826000526001602052604060002090565b60046000918281558260018201558260028201558260038201550155565b33907fe861e0b12c283de7ca3f4d68d33f3bfc6fc01e4896cddf05e52b8f2a1e548e248380a380f35b60249060405190637e27328960e01b82526004820152fd5b604051637e27328960e01b815260048101839052602490fd5b60005260008051602061486c833981519152602052604060002090565b634e487b7160e01b600052602160045260246000fd5b600211156108f757565b6108d7565b3461034e57602036600319011261034e57600435600052600160205260e060406000206001600160401b0360018060a01b038254169160018101546002820154600460038401549301549260ff84169160ff8560081c1693604051978852602088015260408701526060860152610972816108ed565b6080850152610980816108ed565b60a084015260101c1660c0820152f35b3461034e57602036600319011261034e57600435600081815260008051602061486c833981519152602052604090819020546001600160a01b0390811615610a6c57610492926000526001602052610a5c82600020918351906109f282610b0c565b835416815260c06001600160401b03600460018601549560208501968752600281015488860152600381015460608601520154610a3560ff8216608086016121fe565b610a4860ff8260081c1660a086016121fe565b60101c169101906001600160401b03169052565b5190519081529081906020820190565b8151637e27328960e01b815260048101849052602490fd5b3461034e57600036600319011261034e57610492604051610aa481610b5a565b600e81526d06d6f64653d74696d657374616d760941b60208201526040519182916020835260208301906103ef565b3461034e57600036600319011261034e57602060405167bf1faa41f651ca3a8152f35b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117610b2757604052565b610af6565b6001600160401b038111610b2757604052565b602081019081106001600160401b03821117610b2757604052565b604081019081106001600160401b03821117610b2757604052565b60a081019081106001600160401b03821117610b2757604052565b90601f801991011681019081106001600160401b03821117610b2757604052565b60405190610bbe82610b5a565b565b6001600160401b038111610b2757601f01601f191660200190565b81601f8201121561034e57803590610bf282610bc0565b92610c006040519485610b90565b8284526020838301011161034e57816000926020809301838601378301015290565b604036600319011261034e57610c3661056a565b6024356001600160401b03811161034e57610c55903690600401610bdb565b90610c5e6137c2565b610c6836336128fb565b610c706137c2565b6040516352d1902d60e01b8152916020836004816001600160a01b0386165afa60009381610cf8575b50610cbf57604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b9060008051602061480c8339815191528303610cdf5761061c925061429c565b604051632a87526960e21b815260048101849052602490fd5b610d1b91945060203d602011610d22575b610d138183610b90565b81019061381c565b9238610c99565b503d610d09565b3461034e57600036600319011261034e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610d8257602060405160008051602061480c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461034e57602036600319011261034e5760206001600160a01b0380610db861056a565b166000526000805160206147cc833981519152825260406000205416604051908152f35b3461034e57602036600319011261034e5761061c610df861056a565b33612a46565b3461034e57600036600319011261034e57602060ff60008051602061484c83398151915254166040519015158152f35b3461034e57600036600319011261034e576020600054604051908152f35b3461034e57602036600319011261034e576020610e6a600435612640565b6040516001600160a01b039091168152f35b3461034e57600036600319011261034e57602060405160028152f35b3461034e57602036600319011261034e57610eb161056a565b6001600160a01b03811615610ed457610ecb60209161213b565b54604051908152f35b6040516322718ad960e21b815260006004820152602490fd5b3461034e57600036600319011261034e57602060405167054ed88267a063458152f35b3461034e57602036600319011261034e57610f2961056a565b6000805160206147ac833981519152546001600160a01b03919082163303610f7457803b15610f5b5761061c90612ac1565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b3461034e57602036600319011261034e576001600160a01b03610fac61056a565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b3461034e57600036600319011261034e57602060405167973871d7e74f37488152f35b3461034e57600036600319011261034e5761102236336128fb565b61102a612a1b565b60008051602061484c833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b916110a490949194600f60f81b845261109660209660e0602087015260e08601906103ef565b9084820360408601526103ef565b92606083015260018060a01b03166080820152600060a082015260c08183039101526020808451928381520193019160005b8281106110e4575050505090565b8351855293810193928101926001016110d6565b3461034e57600036600319011261034e577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005415806111a0575b156111635761113f611d6f565b611147611e57565b906104926111536121e6565b6040519384933091469186611070565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415611132565b3461034e57602036600319011261034e576111e56004356127f4565b60008051602061482c83398151915290815490600082916005841161124b575b61120f9350613675565b908161122357505060405160008152602090f35b61122e602092612850565b906000526000805160206148cc833981519152015460301c610672565b91926112568161354a565b81039081116106f25761120f938560005265ffffffffffff80836000805160206148cc83398151915201541690851610600014611294575091611205565b9291506112a09061286c565b90611205565b3461034e57600036600319011261034e576000805160206147ac8339815191525460a01c60ff16156112f0576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b602060006112dd565b3461034e57600036600319011261034e57602060405165ffffffffffff42168152f35b3461034e5760008060031936011261051c5760405190806000805160206148ec833981519152805461134d81611d35565b808652926020926001928084169081156104ed5750600114611379576104928761048681890382610b90565b815293507ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e5b8385106113bd57505050508101602001610486826104923880610476565b805486860184015293820193810161139f565b3461034e57602036600319011261034e5760206001600160d01b036113fe6113f961063a61056a565b612b6f565b16604051908152f35b8015150361034e57565b3461034e57604036600319011261034e57602461142c61056a565b6105b18235611407565b3461034e57600036600319011261034e5760206040516711d8f2d2caa4286e8152f35b3461034e57600036600319011261034e5761049260405161147981610b5a565b60058152640352e302e360dc1b60208201526040519182916020835260208301906103ef565b3461034e57600036600319011261034e576020604051670b49c88cd3d1ba3c8152f35b91909160c06001600160401b038160e084019560018060a01b038151168552602081015160208601526040810151604086015260608101516060860152608081015161150d816108ed565b608086015260a0810151611520816108ed565b60a0860152015116910152565b3461034e57602036600319011261034e5760043560405161154d81610b0c565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260018060a01b03611595611588836108ba565b546001600160a01b031690565b16156115c6576115ba6115b5610492926000526001602052604060002090565b61220a565b604051918291826114c2565b604051637e27328960e01b81526004810191909152602490fd5b3461034e57608036600319011261034e576115f961056a565b611601610580565b90604435606435926001600160401b03841161034e5761162861061c943690600401610bdb565b926107c1838383611f18565b3461034e57600036600319011261034e576000805160206147ac833981519152546040516001600160a01b039091168152602090f35b6002111561034e57565b60e435906001600160401b038216820361034e57565b3461034e5761010036600319011261034e576116a461056a565b60e036602319011261034e5761171a61049291604051906116c482610b0c565b6116cc610580565b825260443560208301526064356040830152608435606083015260a4356116f28161166a565b608083015260c4356117038161166a565b60a0830152611710611674565b60c0830152612279565b6040519081529081906020820190565b3461034e5760c036600319011261034e5761174361056a565b6044359060243560643560ff8116810361034e578342116117df576117d361061c946117da926040519060208201927fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf845260018060a01b03881660408401528660608401526080830152608082526117bb82610b75565b6117ce60a4359360843593519020612f87565b613015565b918261302d565b612a46565b604051632341d78760e11b815260048101859052602490fd5b3461034e57602036600319011261034e5761181161056a565b6000805160206148ac83398151915254906001600160401b0360ff8360401c161592168015908161191c575b6001149081611912575b159081611909575b506118f7576000805160206148ac833981519152805467ffffffffffffffff1916600117905561188390826118d2576123fe565b61188957005b6000805160206148ac833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6000805160206148ac833981519152805460ff60401b1916600160401b1790556123fe565b60405163f92ee8a960e01b8152600490fd5b9050153861184f565b303b159150611847565b83915061183d565b3461034e57600036600319011261034e576002546040516001600160a01b039091168152602090f35b3461034e57602036600319011261034e576004356001600160a01b03611975611588836108ba565b16156115c65761199b6119956115b5836000526001602052604060002090565b9161311f565b60808201516119a9816108ed565b6119b2816108ed565b611c71576119be6125b9565b915b60a08101516119ce816108ed565b6119d7816108ed565b611c63576119e3612608565b905b60208101516119f39061311f565b6040820151611a019061311f565b9160600151611a0f9061311f565b6040517f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b000000006020820152958695919491603c870175226e616d65223a22576972652052656365697074202360501b8152601601611a6a91612629565b61088b60f21b81526002017f226465736372697074696f6e223a22536f756c626f756e64207265636569707481527f20666f72207374616b696e67206f722077617272616e742070757263686173656020820152620b888b60ea1b60408201526043016d2261747472696275746573223a5b60901b8152600e017f7b2274726169745f74797065223a2263757272656e6379222c2276616c7565228152611d1160f11b6020820152602201611b1e91612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a226b696e64222c2276616c7565223a2200008152601e01611b5991612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a227072696e636970616c222c2276616c7565815262111d1160e91b6020820152602301611ba091612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a22736861726573222c2276616c7565223a228152602001611bdb91612629565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a22696e64657841744d696e74222c2276616c8152643ab2911d1160d91b6020820152602501611c2491612629565b61227d60f01b8152600201605d60f81b8152600101607d60f81b815260010103601f1981018252611c559082610b90565b604051610492819282610414565b611c6b6125dc565b906119e5565b611c79612596565b916119c0565b3461034e57600036600319011261034e57602060405160018152f35b3461034e57600036600319011261034e57602060405167ae92c175e0db63cd8152f35b3461034e57604036600319011261034e57602060ff611d06611cde61056a565b611cef611ce9610580565b91612174565b9060018060a01b0316600052602052604060002090565b54166040519015158152f35b3461034e57600036600319011261034e57602060405167c58ec56834342af58152f35b90600182811c92168015611d65575b6020831014611d4f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d44565b604051906000827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10291825492611da484611d35565b80845293602091600191828116908115611e315750600114611dd0575b505050610bbe92500383610b90565b60009081527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d9590935091905b828410611e195750610bbe945050508101602001388080611dc1565b85548885018301529485019487945092810192611dfd565b9250505060209250610bbe94915060ff191682840152151560051b820101388080611dc1565b604051906000827fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10391825492611e8c84611d35565b80845293602091600191828116908115611e315750600114611eb757505050610bbe92500383610b90565b60009081527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b759590935091905b828410611f005750610bbe945050508101602001388080611dc1565b85548885018301529485019487945092810192611ee4565b91906001600160a01b0390818116156120e9578190611f35612a1b565b611f41611588856108ba565b8281161515806120e1575b611f92575b50611f5e908433916134ce565b9316921690828203611f6f57505050565b60649350604051926364283d7b60e01b8452600484015260248301526044820152fd5b6000805160206147ac83398151915254909250611fc590611fb9906001600160a01b031681565b6001600160a01b031690565b604080516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b0395909516602482015292918184604481845afa80156120be5786946000916120c3575b501561201d575b50509091611f51565b815194855267bf1faa41f651ca3a60048601526001600160a01b03831660248601529193909250908290829060449082905afa9081156120be57600091612090575b501561206e5781818492612014565b51633250574960e11b81526001600160a01b0391909116600482015260249150fd5b6120b09150823d84116120b7575b6120a88183610b90565b8101906127bc565b503861205f565b503d61209e565b6127e8565b6120da9150833d85116120b7576120a88183610b90565b503861200d565b506001611f4c565b604051633250574960e11b815260006004820152602490fd5b6001600160a01b031660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d016020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793036020526040902090565b6001600160a01b031660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020526040902090565b6001600160a01b031660009081527fb06af95d3168a3d1f71b75be6205cdfdeb4c8482beb33b78ddc39447ad8fa4e66020526040902090565b6040516121f281610b3f565b60008152906000368137565b612207826108ed565b52565b90610bbe60405161221a81610b0c565b60c06001600160401b036004839660018060a01b038154168552600181015460208601526002810154604086015260038101546060860152015460ff8116612261816108ed565b6080850152610a4860ff8260081c1660a086016121fe565b9061228436336128fb565b61228c612a1b565b6000549160001983146123b15760018084016000908155426001600160401b031660c0850190815285825260209290925260409020835181546001600160a01b0319166001600160a01b0391821617825585937fdfb6dc7ca71999766b393d3949af34af6060f10f6438352743bfb2c8c3e5604393919290916123909161236b9060049060208a0151600182015560408a0151600282015560608a01516003820155019161234760808a0151612341816108ed565b846123c7565b61235e60a08a0151612358816108ed565b846123df565b516001600160401b031690565b69ffffffffffffffff000082549160101b169069ffffffffffffffff00001916179055565b61239a8482612dcc565b6123ab6040519283921695826114c2565b0390a390565b634e487b7160e01b600052601160045260246000fd5b906123d1816108ed565b60ff80198354169116179055565b906123e9816108ed565b61ff0082549160081b169061ff001916179055565b60405161240a81610b5a565b600c81526020906b15da5c9948149958d95a5c1d60a21b60208201526040519161243383610b5a565b600883526715d49150d152541560c21b6020840152612450613a78565b612458613a78565b8151906001600160401b038211610b27576000805160206147ec8339815191529261248c836124878654611d35565b613aa7565b602091601f84116001146124f95750826124dc9695936124cf95936124c8936000926124ee575b50508160011b916000199060031b1c19161790565b9055613ba5565b6124d7613a78565b6130a4565b6124e4613a78565b610bbe6001600055565b0151905038806124b3565b6000805160206147ec8339815191526000529190601f1984167f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81936000905b82821061257e5750509260019285926124dc9998966124cf989610612565575b505050811b019055613ba5565b015160001960f88460031b161c19169055388080612558565b80600186978294978701518155019601940190612538565b604051906125a382610b5a565b600782526609892a2be8aa8960cb1b6020830152565b604051906125c682610b5a565b60078252660a482aebe8aa8960cb1b6020830152565b604051906125e982610b5a565b601082526f57415252414e545f505552434841534560801b6020830152565b6040519061261582610b5a565b60058252645354414b4560d81b6020830152565b9061263c602092828151948592016103cc565b0190565b600081815260008051602061486c83398151915260205260409020546001600160a01b0316908115610889575090565b612678612a1b565b612684611588826108ba565b6001600160a01b0381161515806127b4575b6126a5575b506104259061330e565b6000805160206147ac833981519152546126c990611fb9906001600160a01b031681565b604080516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b039490941660248201529092908381604481865afa9081156120be57600091612796575b501561271f575b505061269b565b825190815267bf1faa41f651ca3a600482015260006024820152908290829060449082905afa9081156120be57600091612778575b5015612761578080612718565b51633250574960e11b815260006004820152602490fd5b61278f9150823d84116120b7576120a88183610b90565b5038612754565b6127ad9150843d86116120b7576120a88183610b90565b5038612711565b506000612696565b919082604091031261034e57602082516127d581611407565b92015163ffffffff8116810361034e5790565b6040513d6000823e3d90fd5b65ffffffffffff90814216808210156128325750818111612813571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b6044925060405191637669fc0f60e11b835260048301526024820152fd5b6000198101919082116106f257565b919082039182116106f257565b90600182018092116106f257565b919082018092116106f257565b60041161034e57600090600490565b6001600160e01b031990358181169392600481106128b357505050565b60040360031b82901b16169150565b6001600160a01b0390911681526040602082018190528101829052606091806000848401376000828201840152601f01601f1916010190565b6000805160206147ac8339815191528054612934906001600160a01b031661292b61292586612887565b90612896565b9084309161374c565b9015612941575b50505050565b63ffffffff16156129fb576000805160206147ac833981519152805460ff60a01b1916600160a01b17905561298390611fb9908190546001600160a01b031690565b91823b1561034e576129af9260009283604051809681958294634a63ebf760e11b8452600484016128c2565b03925af180156120be576129e2575b506000805160206147ac833981519152805460ff60a01b191690553880808061293b565b806129ef6129f592610b2c565b806103c1565b386129be565b60405162d1953b60e31b81526001600160a01b0383166004820152602490fd5b60ff60008051602061484c8339815191525416612a3457565b60405163d93c066560e01b8152600490fd5b6001600160a01b0381811660008181526000805160206147cc8339815191526020526040812080548685166001600160a01b031982168117909255610bbe96941694612aba9390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a46121ad565b549161382b565b6000805160206147ac83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b60008051602061482c833981519152805480612b37575050600090565b806000198101116106f2577f88c46c62109817164d0ae1873830d4299a82e5daf552a3d8e989b27638fcf74791600052015460301c90565b805480612b7d575050600090565b6000199181838101116106f257600052602060002001015460301c90565b9081602091031261034e57516104258161033c565b610425939260809260018060a01b0316825260006020830152604082015281606082015201906103ef565b6001600160a01b039182168152911660208201526040810191909152608060608201819052610425929101906103ef565b3d15612c37573d90612c1d82610bc0565b91612c2b6040519384610b90565b82523d6000602084013e565b606090565b91929092833b612c4c5750505050565b612c70916020916040519384928392630a85bd0160e11b9788855260048501612bb0565b038160006001600160a01b0388165af160009181612d04575b50612cc85782612c97612c0c565b8051919082612cc157604051633250574960e11b81526001600160a01b0383166004820152602490fd5b6020915001fd5b6001600160e01b03191603612ce157503880808061293b565b604051633250574960e11b81526001600160a01b03919091166004820152602490fd5b612d2791925060203d602011612d2e575b612d1f8183610b90565b810190612b9b565b9038612c89565b503d612d15565b92939193843b612d47575b5050505050565b602091612d6a6040519485938493630a85bd0160e11b9889865260048601612bdb565b038160006001600160a01b0388165af160009181612dab575b50612d915782612c97612c0c565b6001600160e01b03191603612ce157503880808080612d40565b612dc591925060203d602011612d2e57612d1f8183610b90565b9038612d83565b919091604092835191612dde83610b3f565b600083526001600160a01b0381811615612f6f57612dfa612a1b565b612e06611588846108ba565b818116151580612f67575b612e4a575b50612e2183836133e2565b16612e3257610bbe93945033612c3c565b84516339e3563760e11b815260006004820152602490fd5b6000805160206147ac83398151915254612e6e90611fb9906001600160a01b031681565b87516368fc2b7760e11b80825267bf1faa41f651ca3a60048301526001600160a01b0393909316602482015290918882604481865afa80156120be578992600091612f49575b5015612ec2575b5050612e16565b815190815267bf1faa41f651ca3a60048201526001600160a01b038516602482015291829060449082905afa9081156120be57600091612f2b575b5015612f0b57388681612ebb565b8551633250574960e11b81526001600160a01b0383166004820152602490fd5b612f429150873d89116120b7576120a88183610b90565b5038612efd565b612f609150833d85116120b7576120a88183610b90565b5038612eb4565b506001612e11565b8551633250574960e11b815260006004820152602490fd5b612f8f614417565b612f97614481565b916040519260208401927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604085015260608401524660808401523060a084015260a0835260c08301918383106001600160401b03841117610b27576042938360405251902061190160f01b8352600283015260228201522090565b9161042593916130249361395d565b909291926139eb565b6001600160a01b03811660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915591829003613079575050565b6040516301d4b62360e61b81526001600160a01b039190911660048201526024810191909152604490fd5b6130c5906130b0613a78565b6130b8613a78565b6130c0613a78565b612ac1565b610bbe613a78565b906130d782610bc0565b6130e46040519182610b90565b82815280926130f5601f1991610bc0565b0190602036910137565b8115613109570490565b634e487b7160e01b600052601260045260246000fd5b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000080821015613255575b506d04ee2d6d415b85acef810000000080831015613246575b50662386f26fc1000080831015613237575b506305f5e10080831015613228575b5061271080831015613219575b506064821015613209575b600a809210156131ff575b6001908160216131b7600187016130cd565b95860101905b6131c9575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156131fa579190826131bd565b6131c2565b91600101916131a5565b919060646002910491019161319a565b6004919392049101913861318f565b60089193920491019138613182565b60109193920491019138613173565b60209193920491019138613161565b604093508104915038613148565b6040519061327082610b5a565b601b82527f5f7472616e73666572566f74696e67556e6974733a2066726f6d3a00000000006020830152565b604051906132a982610b5a565b601b82527f202020202020202020202020202020202020202020202020746f3a00000000006020830152565b604051906132e282610b5a565b601b82527f20202020202020202020202020202020202020202076616c75653a00000000006020830152565b8060005260016020526104256040600020916133876040519361333085610b0c565b61338060018060a01b039586835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b5191613ca5565b9283166133c7575b6133a08361339b613263565b6140a2565b6133b06133ab61329c565b61405a565b6133c1816133bc6132d5565b6140f0565b82614133565b6133d0836121ad565b6133db82825461285f565b905561338f565b906104259080600052600160205260406000209261345e6040519461340686610b0c565b61345660018060a01b039687835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b519282613e20565b938085166134b3575b8116613498575b61347a8461339b613263565b6134868161339b61329c565b613492826133bc6132d5565b83614208565b6134a1816121ad565b6134ac83825461287a565b905561346e565b6134bc856121ad565b6134c784825461285f565b9055613467565b906104259181600052600160205261345e604060002094604051956134f287610b0c565b61354260018060a01b039788835416815260c06001600160401b0360046001860154956020850196875260028101546040860152600381015460608601520154610a3560ff8216608086016121fe565b519383613f2f565b600181111561042557600181600160801b811015613663575b61360b6136016135f76135ed6135e36135d961361797600488600160401b6136129a1015613656575b640100000000811015613649575b6201000081101561363c575b610100811015613630575b6010811015613624575b101561361c575b60030260011c6135d2818b6130ff565b0160011c90565b6135d2818a6130ff565b6135d281896130ff565b6135d281886130ff565b6135d281876130ff565b6135d281866130ff565b80936130ff565b821190565b900390565b60011b6135c2565b811c9160021b916135bb565b60081c91811b916135b1565b60101c9160081b916135a6565b60201c9160101b9161359a565b60401c9160201b9161358c565b50600160401b9050608082901c613563565b905b82811061368357505090565b90918082169080831860011c82018092116106f25760008051602061482c83398151915260005265ffffffffffff80836000805160206148cc833981519152015416908516106000146136d95750915b90613677565b9291506136e59061286c565b906136d3565b91905b8382106136fb5750505090565b9091928083169080841860011c82018092116106f25760008581526020902082015465ffffffffffff908116908416101561373a5750925b91906136ee565b9392506137469061286c565b91613733565b93919060409060009560009384928397855191602083019363b700961360e01b855260018060a01b03809216602485015216604483015263ffffffff60e01b1660648201526064815261379e81610b75565b8380528360205251915afa6137b05750565b9150915051906020518060201c150290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215613800575b5050610d8257565b60008051602061480c83398151915254161415905038806137f8565b9081602091031261034e575190565b6001600160a01b03808316939291908116908185141580613954575b613852575050505050565b816138c7575b505082613867575b8080612d40565b7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249161389e6138986138a493612102565b91614343565b90614376565b604080516001600160d01b039384168152919092166020820152a2388080613860565b6138d090612102565b6138d984614343565b6001600160d01b039081806138ed85612b6f565b16911690038181116106f25761393161394a917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249465ffffffffffff4216906146ef565b6040805192851683529316602082015291829190820190565b0390a23880613858565b50831515613847565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116139d557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156120be5780516001600160a01b038116156139cc57918190565b50809160019190565b50505060009160039190565b600411156108f757565b6139f4816139e1565b806139fd575050565b613a06816139e1565b60018103613a205760405163f645eedf60e01b8152600490fd5b613a29816139e1565b60028103613a4a5760405163fce698f760e01b815260048101839052602490fd5b80613a566003926139e1565b14613a5e5750565b6040516335e2f38360e21b81526004810191909152602490fd5b60ff6000805160206148ac8339815191525460401c1615613a9557565b604051631afcd79f60e31b8152600490fd5b601f8111613ab3575050565b6000906000805160206147ec8339815191526000527f37c58c799b6609234b945e882912ee9ad34948a1dfaa20a97485e1a7752bbf81906020601f850160051c83019410613b1c575b601f0160051c01915b828110613b1157505050565b818155600101613b05565b9092508290613afc565b601f8111613b32575050565b6000906000805160206148ec8339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e906020601f850160051c83019410613b9b575b601f0160051c01915b828110613b9057505050565b818155600101613b84565b9092508290613b7b565b9081516001600160401b038111610b27576000805160206148ec83398151915290613bd981613bd48454611d35565b613b26565b602080601f8311600114613c1057508190613c0c9394956000926124ee5750508160011b916000199060031b1c19161790565b9055565b90601f19831695613c506000805160206148ec8339815191526000527ff4bad0a69248f59680a4f2b3000328cec71a413447c96781cfe5996daa8c456e90565b926000905b888210613c8d57505083600195969710613c74575b505050811b019055565b015160001960f88460031b161c19169055388080613c6a565b80600185968294968601518155019501930190613c55565b6000906001600160a01b0380613cba836108ba565b54168382829516928315159081613d60575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9183613d41575b613d2c575b613d2781613d08876108ba565b80546001600160a01b0319166001600160a01b03909216919091179055565b80a490565b613d358161213b565b60018154019055613cfb565b613d4a866143ad565b613d538461213b565b8054600019019055613cf6565b818093945091613dc5575b5015613d7a5790849138613ccc565b838286613d9a57604051637e27328960e01b815260048101839052602490fd5b60405163177e802f60e01b81526001600160a01b039190911660048201526024810191909152604490fd5b905083808714918215613e07575b8215613de2575b505038613d6b565b86855260008051602061488c8339815191526020526040852054161490508338613dda565b915060ff613e1885611cef8a612174565b541691613dd3565b600091906001600160a01b0380613e36846108ba565b54169381859282168015159081613ebc575b505090613d277fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284613e9d575b85169485613e88575b613d08876108ba565b613e918161213b565b60018154019055613e7f565b613ea6876143ad565b613eaf8561213b565b8054600019019055613e76565b929350909181613ed7575b5015613d7a579084913880613e48565b86811491508115613f16575b8115613ef1575b5038613ec7565b905084835260008051602061488c833981519152602052816040842054161438613eea565b905060ff613f2784611cef89612174565b541690613ee3565b6001600160a01b0380613f41846108ba565b5416938181168015159081613fcd575b505050613f709084613fae575b82169182613f99575b613d08846108ba565b827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a490565b613fa28161213b565b60018154019055613f67565b613fb7846143ad565b613fc08561213b565b8054600019019055613f5e565b81614000575b5015613fe0578080613f51565b839085613d9a57604051637e27328960e01b815260048101839052602490fd5b86811491508115614041575b811561401a575b5038613fd3565b90508460005260008051602061488c83398151915260205282604060002054161438614013565b905060ff61405283611cef89612174565b54169061400c565b61408861409d610bbe9260405192839163319af33360e01b60208401526040602484015260648301906103ef565b6000604483015203601f198101835282610b90565b6143de565b61409d6140d191610bbe9360405193849263319af33360e01b60208501526040602485015260648401906103ef565b6001600160a01b0391909116604483015203601f198101835282610b90565b61409d61411f91610bbe93604051938492632d839cb360e21b60208501526040602485015260648401906103ef565b90604483015203601f198101835282610b90565b6001600160a01b03908116919082156141c8575b600090614181565b610bbe936000526000805160206147cc833981519152602052806040600020541691600052604060002054169061382b565b61418a83614343565b6001600160d01b039490858061419e612b1a565b16911690039485116106f2576141bf610bbe9565ffffffffffff42166145ec565b5050935061414f565b6141d182614343565b6001600160d01b039081806141e4612b1a565b169116019081116106f2576142019065ffffffffffff42166145ec565b5050614147565b6001600160a01b03908116929181908415614258575b1690811561418157610bbe936000526000805160206147cc833981519152602052806040600020541691600052604060002054169061382b565b905061426383614343565b6001600160d01b0391908280614277612b1a565b169116019182116106f257614295839265ffffffffffff42166145ec565b505061421e565b90813b156143225760008051602061480c83398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a280511561430757614304916143f9565b50565b50503461431057565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b6001600160d01b0390818111614357571690565b604490604051906306dfcc6560e41b825260d060048301526024820152fd5b906001600160d01b0390818061438b85612b6f565b169116019081116106f2576143a99165ffffffffffff4216906146ef565b9091565b60005260008051602061488c83398151915260205260406000206bffffffffffffffffffffffff60a01b8154169055565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b60008061042593602081519101845af4614411612c0c565b916144c6565b61441f611d6f565b805190811561442f576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054801561445c5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b614489611e57565b8051908115614499576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10154801561445c5790565b906144ed57508051156144db57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580614520575b6144fe575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156144f6565b60008051602061482c833981519152908154600160401b811015610b2757600181018084558110156145875760009283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b600052603260045260246000fd5b908154600160401b811015610b2757600181018084558110156145875760009283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b60008051602061482c8339815191525491929180156146c55761461161463691612850565b60008051602061482c8339815191526000526000805160206148cc8339815191520190565b9081549165ffffffffffff908184169183168083116146b35786920361467b5761467492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506146ae9061469a61468c610bb1565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614529565b614674565b604051632520601d60e01b8152600490fd5b506146e9906146d561468c610bb1565b6001600160d01b0384166020820152614529565b60009190565b805492939280156147865761470661471391612850565b8260005260206000200190565b9182549265ffffffffffff918285169281168084116146b357879303614752575061467492509065ffffffffffff82549181199060301b169116179055565b9150506146ae91614772614764610bb1565b65ffffffffffff9093168352565b6001600160d01b038616602083015261459d565b50906146e991614797614764610bb1565b6001600160d01b038516602083015261459d56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00e8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbce8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d02cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930280bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079304f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0088c46c62109817164d0ae1873830d4299a82e5daf552a3d8e989b27638fcf74880bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301a26469706673582212201521d362457581bccd89220cb8c4fc705e3d80d7514f177b2cee14b0775b1c4e64736f6c63430008190033",
2018
+ "linkReferences": {},
2019
+ "deployedLinkReferences": {}
2020
+ }