@venusprotocol/venus-protocol 9.6.0 → 9.7.0-dev.2

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 (26) hide show
  1. package/deploy/005-deploy-VTreasuryV8.ts +1 -0
  2. package/deploy/009-configure-vaults.ts +2 -0
  3. package/deploy/012-deploy-prime.ts +5 -1
  4. package/deploy/013-configure-prime.ts +1 -0
  5. package/deployments/unichainmainnet/.chainId +1 -0
  6. package/deployments/unichainmainnet/DefaultProxyAdmin.json +200 -0
  7. package/deployments/unichainmainnet/Prime.json +2042 -0
  8. package/deployments/unichainmainnet/PrimeLiquidityProvider.json +1113 -0
  9. package/deployments/unichainmainnet/PrimeLiquidityProvider_Implementation.json +1432 -0
  10. package/deployments/unichainmainnet/PrimeLiquidityProvider_Proxy.json +272 -0
  11. package/deployments/unichainmainnet/Prime_Implementation.json +2966 -0
  12. package/deployments/unichainmainnet/Prime_Proxy.json +282 -0
  13. package/deployments/unichainmainnet/VTreasuryV8.json +329 -0
  14. package/deployments/unichainmainnet/XVSStore.json +374 -0
  15. package/deployments/unichainmainnet/XVSVaultProxy.json +352 -0
  16. package/deployments/unichainmainnet/XVSVaultProxy_Implementation.json +2572 -0
  17. package/deployments/unichainmainnet/solcInputs/7584667b44eb77970ba8d274006d81ae.json +331 -0
  18. package/deployments/unichainmainnet/solcInputs/a2594572bdae270af6749f50c8019b6c.json +366 -0
  19. package/deployments/unichainmainnet.json +8303 -0
  20. package/deployments/unichainmainnet_addresses.json +17 -0
  21. package/dist/deploy/005-deploy-VTreasuryV8.js +1 -0
  22. package/dist/deploy/009-configure-vaults.js +2 -0
  23. package/dist/deploy/012-deploy-prime.js +5 -1
  24. package/dist/deploy/013-configure-prime.js +1 -0
  25. package/dist/hardhat.config.js +15 -0
  26. package/package.json +1 -1
@@ -38,6 +38,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
38
38
  basesepolia: "0xdf3b635d2b535f906BB02abb22AED71346E36a00", // BASE SEPOLIA MULTISIG
39
39
  basemainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // BASE MAINNET MULTISIG
40
40
  unichainsepolia: "0x9831D3A641E8c7F082EEA75b8249c99be9D09a34", // UNICHAIN SEPOLIA MULTISIG
41
+ unichainmainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // UNICHAIN MAINNET MULTISIG
41
42
  bscmainnet: await getTimelock(),
42
43
  bsctestnet: await getTimelock(),
43
44
  hardhat: deployer,
@@ -32,6 +32,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
32
32
  ethereum: 2_628_000,
33
33
  basesepolia: 0, // time based deployment
34
34
  basemainnet: 0, // time based deployment
35
+ unichainmainnet: 0, // time based deployment
35
36
  hardhat: 100,
36
37
  };
37
38
 
@@ -51,6 +52,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
51
52
  bsctestnet: await getContractAddressOrNullAddress(deployments, "NormalTimelock"),
52
53
  basesepolia: "0xdf3b635d2b535f906BB02abb22AED71346E36a00", // BASE SEPOLIA MULTISIG
53
54
  basemainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // BASE MAINNET MULTISIG
55
+ unichainmainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // UNICHAIN MAINNET MULTISIG
54
56
  hardhat: deployer,
55
57
  };
56
58
 
@@ -35,6 +35,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
35
35
  arbitrumone: NINETY_DAYS,
36
36
  zksyncmainnet: NINETY_DAYS,
37
37
  opmainnet: NINETY_DAYS,
38
+ unichainmainnet: NINETY_DAYS,
38
39
  };
39
40
 
40
41
  const xVSVaultPoolId: Config = {
@@ -52,6 +53,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
52
53
  hardhat: 0,
53
54
  basesepolia: 0,
54
55
  basemainnet: 0,
56
+ unichainmainnet: 0,
55
57
  };
56
58
 
57
59
  const blocksPerYear: Config = {
@@ -66,6 +68,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
66
68
  unichainsepolia: 0, // time based contracts
67
69
  basesepolia: 0, // time based contracts
68
70
  basemainnet: 0, // time based contracts
71
+ unichainmainnet: 0,
69
72
  bscmainnet: 10_512_000,
70
73
  ethereum: 2_628_000,
71
74
  hardhat: 100,
@@ -77,7 +80,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
77
80
  const xvsVaultAlphaNumerator = 1;
78
81
  const xvsVaultAlphaDenominator = 2;
79
82
  const loopsLimit = 20;
80
- const isTimeBased = false; // revise this value when deploying on L2s
83
+ const isTimeBased = blocksPerYear[network.name] === 0;
81
84
 
82
85
  const corePoolAddress = await getContractAddressOrNullAddress(deployments, "Unitroller");
83
86
  const wrappedNativeToken = await getContractAddressOrNullAddress(deployments, "WBNB");
@@ -101,6 +104,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
101
104
  unichainsepolia: "0x9831D3A641E8c7F082EEA75b8249c99be9D09a34", // UNICHAIN SEPOLIA MULTISIG
102
105
  basesepolia: "0xdf3b635d2b535f906BB02abb22AED71346E36a00", // BASE SEPOLIA MULTISIG
103
106
  basemainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // BASE MAINNET MULTISIG
107
+ unichainmainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // UNICHAIN MAINNET MULTISIG
104
108
  bscmainnet: await getContractAddressOrNullAddress(deployments, "NormalTimelock"),
105
109
  bsctestnet: await getContractAddressOrNullAddress(deployments, "NormalTimelock"),
106
110
  };
@@ -25,6 +25,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
25
25
  unichainsepolia: "0x9831D3A641E8c7F082EEA75b8249c99be9D09a34", // UNICHAIN SEPOLIA MULTISIG
26
26
  basesepolia: "0xdf3b635d2b535f906BB02abb22AED71346E36a00", // BASE SEPOLIA MULTISIG
27
27
  basemainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // BASE MAINNET MULTISIG
28
+ unichainmainnet: "0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C", // UNICHAIN MAINNET MULTISIG
28
29
  bscmainnet: await getContractAddressOrNullAddress(deployments, "NormalTimelock"),
29
30
  bsctestnet: await getContractAddressOrNullAddress(deployments, "NormalTimelock"),
30
31
  };
@@ -0,0 +1 @@
1
+ 130
@@ -0,0 +1,200 @@
1
+ {
2
+ "address": "0x78e9fff2ab8daAB8559070d897C399E5e1C5074c",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address",
8
+ "name": "initialOwner",
9
+ "type": "address"
10
+ }
11
+ ],
12
+ "stateMutability": "nonpayable",
13
+ "type": "constructor"
14
+ },
15
+ {
16
+ "anonymous": false,
17
+ "inputs": [
18
+ {
19
+ "indexed": true,
20
+ "internalType": "address",
21
+ "name": "previousOwner",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "indexed": true,
26
+ "internalType": "address",
27
+ "name": "newOwner",
28
+ "type": "address"
29
+ }
30
+ ],
31
+ "name": "OwnershipTransferred",
32
+ "type": "event"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "internalType": "contract TransparentUpgradeableProxy",
38
+ "name": "proxy",
39
+ "type": "address"
40
+ },
41
+ {
42
+ "internalType": "address",
43
+ "name": "newAdmin",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "changeProxyAdmin",
48
+ "outputs": [],
49
+ "stateMutability": "nonpayable",
50
+ "type": "function"
51
+ },
52
+ {
53
+ "inputs": [
54
+ {
55
+ "internalType": "contract TransparentUpgradeableProxy",
56
+ "name": "proxy",
57
+ "type": "address"
58
+ }
59
+ ],
60
+ "name": "getProxyAdmin",
61
+ "outputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "stateMutability": "view",
69
+ "type": "function"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "contract TransparentUpgradeableProxy",
75
+ "name": "proxy",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "getProxyImplementation",
80
+ "outputs": [
81
+ {
82
+ "internalType": "address",
83
+ "name": "",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "stateMutability": "view",
88
+ "type": "function"
89
+ },
90
+ {
91
+ "inputs": [],
92
+ "name": "owner",
93
+ "outputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "stateMutability": "view",
101
+ "type": "function"
102
+ },
103
+ {
104
+ "inputs": [],
105
+ "name": "renounceOwnership",
106
+ "outputs": [],
107
+ "stateMutability": "nonpayable",
108
+ "type": "function"
109
+ },
110
+ {
111
+ "inputs": [
112
+ {
113
+ "internalType": "address",
114
+ "name": "newOwner",
115
+ "type": "address"
116
+ }
117
+ ],
118
+ "name": "transferOwnership",
119
+ "outputs": [],
120
+ "stateMutability": "nonpayable",
121
+ "type": "function"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "contract TransparentUpgradeableProxy",
127
+ "name": "proxy",
128
+ "type": "address"
129
+ },
130
+ {
131
+ "internalType": "address",
132
+ "name": "implementation",
133
+ "type": "address"
134
+ }
135
+ ],
136
+ "name": "upgrade",
137
+ "outputs": [],
138
+ "stateMutability": "nonpayable",
139
+ "type": "function"
140
+ },
141
+ {
142
+ "inputs": [
143
+ {
144
+ "internalType": "contract TransparentUpgradeableProxy",
145
+ "name": "proxy",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "internalType": "address",
150
+ "name": "implementation",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "internalType": "bytes",
155
+ "name": "data",
156
+ "type": "bytes"
157
+ }
158
+ ],
159
+ "name": "upgradeAndCall",
160
+ "outputs": [],
161
+ "stateMutability": "payable",
162
+ "type": "function"
163
+ }
164
+ ],
165
+ "transactionHash": "0xb3c6d695001de08141a5d079021807a4faba0d7e47380a4e1f8310b584fb65cc",
166
+ "receipt": {
167
+ "to": null,
168
+ "from": "0x92054EdBb53eCC4f2A1787e92f479CE10392A658",
169
+ "contractAddress": "0x78e9fff2ab8daAB8559070d897C399E5e1C5074c",
170
+ "transactionIndex": 1,
171
+ "gasUsed": "642835",
172
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000800000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000008000000000000000000000000020000000000000000000800020000000000000000001000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000004000000000000000000000000000000000000000000000000",
173
+ "blockHash": "0x829a2cf18dcf60d4307fa09fcfa656de8e742ba48a1a29ffeedc9ce86af45708",
174
+ "transactionHash": "0xb3c6d695001de08141a5d079021807a4faba0d7e47380a4e1f8310b584fb65cc",
175
+ "logs": [
176
+ {
177
+ "transactionIndex": 1,
178
+ "blockNumber": 8115721,
179
+ "transactionHash": "0xb3c6d695001de08141a5d079021807a4faba0d7e47380a4e1f8310b584fb65cc",
180
+ "address": "0x78e9fff2ab8daAB8559070d897C399E5e1C5074c",
181
+ "topics": [
182
+ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
183
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
184
+ "0x0000000000000000000000001803cf1d3495b43cc628aa1d8638a981f8cd341c"
185
+ ],
186
+ "data": "0x",
187
+ "logIndex": 0,
188
+ "blockHash": "0x829a2cf18dcf60d4307fa09fcfa656de8e742ba48a1a29ffeedc9ce86af45708"
189
+ }
190
+ ],
191
+ "blockNumber": 8115721,
192
+ "cumulativeGasUsed": "686761",
193
+ "status": 1,
194
+ "byzantium": true
195
+ },
196
+ "args": ["0x1803Cf1D3495b43cC628aa1d8638A981F8CD341C"],
197
+ "numDeployments": 1,
198
+ "bytecode": "0x6080604052348015600f57600080fd5b50604051610b09380380610b09833981016040819052602c91608a565b80603481603a565b505060b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215609b57600080fd5b81516001600160a01b038116811460b157600080fd5b9392505050565b610a42806100c76000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033",
199
+ "deployedBytecode": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033"
200
+ }