-
Notifications
You must be signed in to change notification settings - Fork 0
/
ERC4626LinearPoolRebalancer.json
83 lines (83 loc) · 28.8 KB
/
ERC4626LinearPoolRebalancer.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC4626LinearPoolRebalancer",
"sourceName": "contracts/erc4626-linear-pool/ERC4626LinearPoolRebalancer.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IVault",
"name": "vault",
"type": "address"
},
{
"internalType": "contract IBalancerQueries",
"name": "queries",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getPool",
"outputs": [
{
"internalType": "contract ILinearPool",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "rebalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "extraMain",
"type": "uint256"
}
],
"name": "rebalanceWithExtraMain",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6101606040523480156200001257600080fd5b5060405162001de038038062001de0833981016040819052620000359162000462565b336001600160a01b0316635ed312826040518163ffffffff1660e01b815260040160206040518083038186803b1580156200006f57600080fd5b505afa15801562000084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000aa919062000378565b8282826001600160a01b0316631dd746ea6040518163ffffffff1660e01b815260040160006040518083038186803b158015620000e657600080fd5b505afa158015620000fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200012591908101906200039e565b836001600160a01b0316634d64cd746040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015f57600080fd5b505afa15801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a919062000449565b81518110620001a557fe5b602090810291909101810151610100526001600160601b0319606085901b166080526040805163038fff2d60e41b815290516001600160a01b038616926338fff2d09260048082019391829003018186803b1580156200020457600080fd5b505afa15801562000219573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023f919062000449565b60a08181525050826001600160a01b0316634de046d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028057600080fd5b505afa15801562000295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bb919062000378565b6001600160a01b031660c0816001600160a01b031660601b81525050826001600160a01b031663f174e2416040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031157600080fd5b505afa15801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c919062000378565b6001600160601b0319606091821b811660e05292811b8316610120521b166101405250620004e0915050565b6000602082840312156200038a578081fd5b81516200039781620004c7565b9392505050565b60006020808385031215620003b1578182fd5b82516001600160401b0380821115620003c8578384fd5b818501915085601f830112620003dc578384fd5b815181811115620003eb578485fd5b8381029150620003fd848301620004a0565b8181528481019084860184860187018a101562000418578788fd5b8795505b838610156200043c5780518352600195909501949186019186016200041c565b5098975050505050505050565b6000602082840312156200045b578081fd5b5051919050565b6000806040838503121562000475578081fd5b82516200048281620004c7565b60208401519092506200049581620004c7565b809150509250929050565b6040518181016001600160401b0381118282101715620004bf57600080fd5b604052919050565b6001600160a01b0381168114620004dd57600080fd5b50565b60805160601c60a05160c05160601c60e05160601c610100516101205160601c6101405160601c61181d620005c36000398061050952806108215250806101335280610c145280610f325280610f945250806103bf52508061046c5280610599528061074852806108ec5280610cbf528061102d52806110ee528061115052508060ea5280610190528061043052806105cc528061063152806106d2528061078452806108b152806110cc52508061016f5280610402528061071a5280610a7d5280610b5c5280610dba5280610e9952508060995280610309525061181d6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063026b1d5f1461004657806321c2819114610064578063df633d8d14610084575b600080fd5b61004e610097565b60405161005b9190611527565b60405180910390f35b6100776100723660046113e5565b6100bb565b60405161005b919061175a565b610077610092366004611401565b6100ce565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006100c682610122565b90505b919050565b600061011273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085610259565b61011b83610122565b9392505050565b60008061012d610302565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b05f8e487f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016101cc929190611673565b60806040518083038186803b1580156101e457600080fd5b505afa1580156101f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021c9190611487565b50505090508181101561023e57610235818303856103eb565b925050506100c9565b818111156102525761023582820385610703565b5050919050565b6102fc846323b872dd60e01b85858560405160240161027a9392919061156f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610911565b50505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166363fe3b566040518163ffffffff1660e01b8152600401604080518083038186803b15801561036c57600080fd5b505afa158015610380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a49190611464565b9150915060006002828401816103b657fe5b0490506103e3817f00000000000000000000000000000000000000000000000000000000000000006109be565b935050505090565b60006103f5611332565b6040805160c081019091527f0000000000000000000000000000000000000000000000000000000000000000815260208101600081526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016040518060200160405280600081525081525090506104c9611395565b6040517fe969f6b300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e969f6b3906105409086908690600401611697565b602060405180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610592919061144c565b90506105be7f000000000000000000000000000000000000000000000000000000000000000082610a11565b6105c781610c82565b6105f17f000000000000000000000000000000000000000000000000000000000000000087610d4e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610666903090600401611527565b60206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b6919061144c565b90506106f973ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168783610fc9565b9695505050505050565b600061070d611332565b6040805160c081019091527f0000000000000000000000000000000000000000000000000000000000000000815260208101600181526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016040518060200160405280600081525081525090506107e1611395565b6040517fe969f6b300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e969f6b3906108589086908690600401611697565b602060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa919061144c565b90506108d67f000000000000000000000000000000000000000000000000000000000000000087610a11565b6108e76108e282610fed565b6110b2565b6105f17f000000000000000000000000000000000000000000000000000000000000000082610d4e565b600060608373ffffffffffffffffffffffffffffffffffffffff168360405161093a919061150b565b6000604051808303816000865af19150503d8060008114610977576040519150601f19603f3d011682016040523d82523d6000602084013e61097c565b606091505b50915091506000821415610994573d6000803e3d6000fd5b6102fc8151600014806109b65750818060200190518101906109b6919061142c565b6101a2611187565b60006109cd8215156004611187565b670de0b6b3a764000083026109ff8415806109f85750670de0b6b3a76400008583816109f557fe5b04145b6005611187565b828181610a0857fe5b04949350505050565b6040805160028082526060828101909352816020015b610a2f6113bc565b815260200190600190039081610a27579050509050600081600081518110610a5357fe5b6020026020010151600001906002811115610a6a57fe5b90816002811115610a7757fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600081518110610aa957fe5b602002602001015160200181815250508181600081518110610ac757fe5b602002602001015160600181815250508281600081518110610ae557fe5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600281600181518110610b3257fe5b6020026020010151600001906002811115610b4957fe5b90816002811115610b5657fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610b8857fe5b60200260200101516020018181525050600081600181518110610ba757fe5b602002602001015160600181815250508281600181518110610bc557fe5b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff918216604091820152517fe6c460920000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063e6c4609290610c4b9084906004016115ef565b600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b50505050505050565b6040517fba08765200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ba08765290610cf890849030908190600401611763565b602060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a919061144c565b5050565b6040805160028082526060828101909352816020015b610d6c6113bc565b815260200190600190039081610d64579050509050600281600081518110610d9057fe5b6020026020010151600001906002811115610da757fe5b90816002811115610db457fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600081518110610de657fe5b602002602001015160200181815250508181600081518110610e0457fe5b602002602001015160600181815250508281600081518110610e2257fe5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600181600181518110610e6f57fe5b6020026020010151600001906002811115610e8657fe5b90816002811115610e9357fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610ec557fe5b602002602001015160200181815250508181600181518110610ee357fe5b602002602001015160600181815250508281600181518110610f0157fe5b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff918216604090910152610f579084167f000000000000000000000000000000000000000000000000000000000000000084611195565b6040517fe6c4609200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e6c4609290610c4b9084906004016115ef565b610fe88363a9059cbb60e01b848460405160240161027a9291906115c9565b505050565b6040517fb3d7f6b900000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b3d7f6b99061106290859060040161175a565b60206040518083038186803b15801561107a57600080fd5b505afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c6919061144c565b61111373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083611195565b6040517f6e553f6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636e553f6590610cf89084903090600401611673565b81610d4a57610d4a8161128a565b801580159061124657506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e906111f39030908690600401611548565b60206040518083038186803b15801561120b57600080fd5b505afa15801561121f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611243919061144c565b15155b1561126b5761126b8363095ea7b360e01b84600060405160240161027a9291906115a0565b610fe88363095ea7b360e01b848460405160240161027a9291906115c9565b6112b4817f42414c00000000000000000000000000000000000000000000000000000000006112b7565b50565b7f08c379a000000000000000000000000000000000000000000000000000000000600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b6040805160c08101909152600080825260208201908152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516080810190915280600081526000602082018190526040820181905260609091015290565b6000602082840312156113f6578081fd5b813561011b816117c5565b60008060408385031215611413578081fd5b823561141e816117c5565b946020939093013593505050565b60006020828403121561143d578081fd5b8151801515811461011b578182fd5b60006020828403121561145d578081fd5b5051919050565b60008060408385031215611476578182fd5b505080516020909101519092909150565b6000806000806080858703121561149c578182fd5b84519350602085015192506040850151915060608501516114bc816117c5565b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b6000825161151d81846020870161178f565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff92909216825260ff16602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561166657815180516003811061162257fe5b855280870151878601528581015173ffffffffffffffffffffffffffffffffffffffff1686860152606090810151908501526080909301929085019060010161160c565b5091979650505050505050565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060a08252835160a083015260208401516116b2816117bb565b8060c084015250604084015173ffffffffffffffffffffffffffffffffffffffff80821660e0850152806060870151166101008501525050608084015161012083015260a084015160c061014084015280518061016085015261018061171e828287016020860161178f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116860101935050505061011b60208301846114c7565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60005b838110156117aa578181015183820152602001611792565b838111156102fc5750506000910152565b600281106112b457fe5b73ffffffffffffffffffffffffffffffffffffffff811681146112b457600080fdfea264697066735822122036d3be9a4702beeeaf84ed61b5a1ad96e4463c44e76b17de0545dd15aa231f2864736f6c63430007010033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063026b1d5f1461004657806321c2819114610064578063df633d8d14610084575b600080fd5b61004e610097565b60405161005b9190611527565b60405180910390f35b6100776100723660046113e5565b6100bb565b60405161005b919061175a565b610077610092366004611401565b6100ce565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006100c682610122565b90505b919050565b600061011273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085610259565b61011b83610122565b9392505050565b60008061012d610302565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b05f8e487f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016101cc929190611673565b60806040518083038186803b1580156101e457600080fd5b505afa1580156101f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021c9190611487565b50505090508181101561023e57610235818303856103eb565b925050506100c9565b818111156102525761023582820385610703565b5050919050565b6102fc846323b872dd60e01b85858560405160240161027a9392919061156f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610911565b50505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166363fe3b566040518163ffffffff1660e01b8152600401604080518083038186803b15801561036c57600080fd5b505afa158015610380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a49190611464565b9150915060006002828401816103b657fe5b0490506103e3817f00000000000000000000000000000000000000000000000000000000000000006109be565b935050505090565b60006103f5611332565b6040805160c081019091527f0000000000000000000000000000000000000000000000000000000000000000815260208101600081526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016040518060200160405280600081525081525090506104c9611395565b6040517fe969f6b300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e969f6b3906105409086908690600401611697565b602060405180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610592919061144c565b90506105be7f000000000000000000000000000000000000000000000000000000000000000082610a11565b6105c781610c82565b6105f17f000000000000000000000000000000000000000000000000000000000000000087610d4e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610666903090600401611527565b60206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b6919061144c565b90506106f973ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168783610fc9565b9695505050505050565b600061070d611332565b6040805160c081019091527f0000000000000000000000000000000000000000000000000000000000000000815260208101600181526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016040518060200160405280600081525081525090506107e1611395565b6040517fe969f6b300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e969f6b3906108589086908690600401611697565b602060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa919061144c565b90506108d67f000000000000000000000000000000000000000000000000000000000000000087610a11565b6108e76108e282610fed565b6110b2565b6105f17f000000000000000000000000000000000000000000000000000000000000000082610d4e565b600060608373ffffffffffffffffffffffffffffffffffffffff168360405161093a919061150b565b6000604051808303816000865af19150503d8060008114610977576040519150601f19603f3d011682016040523d82523d6000602084013e61097c565b606091505b50915091506000821415610994573d6000803e3d6000fd5b6102fc8151600014806109b65750818060200190518101906109b6919061142c565b6101a2611187565b60006109cd8215156004611187565b670de0b6b3a764000083026109ff8415806109f85750670de0b6b3a76400008583816109f557fe5b04145b6005611187565b828181610a0857fe5b04949350505050565b6040805160028082526060828101909352816020015b610a2f6113bc565b815260200190600190039081610a27579050509050600081600081518110610a5357fe5b6020026020010151600001906002811115610a6a57fe5b90816002811115610a7757fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600081518110610aa957fe5b602002602001015160200181815250508181600081518110610ac757fe5b602002602001015160600181815250508281600081518110610ae557fe5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600281600181518110610b3257fe5b6020026020010151600001906002811115610b4957fe5b90816002811115610b5657fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610b8857fe5b60200260200101516020018181525050600081600181518110610ba757fe5b602002602001015160600181815250508281600181518110610bc557fe5b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff918216604091820152517fe6c460920000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063e6c4609290610c4b9084906004016115ef565b600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b50505050505050565b6040517fba08765200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ba08765290610cf890849030908190600401611763565b602060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a919061144c565b5050565b6040805160028082526060828101909352816020015b610d6c6113bc565b815260200190600190039081610d64579050509050600281600081518110610d9057fe5b6020026020010151600001906002811115610da757fe5b90816002811115610db457fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600081518110610de657fe5b602002602001015160200181815250508181600081518110610e0457fe5b602002602001015160600181815250508281600081518110610e2257fe5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600181600181518110610e6f57fe5b6020026020010151600001906002811115610e8657fe5b90816002811115610e9357fe5b815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610ec557fe5b602002602001015160200181815250508181600181518110610ee357fe5b602002602001015160600181815250508281600181518110610f0157fe5b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff918216604090910152610f579084167f000000000000000000000000000000000000000000000000000000000000000084611195565b6040517fe6c4609200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e6c4609290610c4b9084906004016115ef565b610fe88363a9059cbb60e01b848460405160240161027a9291906115c9565b505050565b6040517fb3d7f6b900000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b3d7f6b99061106290859060040161175a565b60206040518083038186803b15801561107a57600080fd5b505afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c6919061144c565b61111373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083611195565b6040517f6e553f6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690636e553f6590610cf89084903090600401611673565b81610d4a57610d4a8161128a565b801580159061124657506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e906111f39030908690600401611548565b60206040518083038186803b15801561120b57600080fd5b505afa15801561121f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611243919061144c565b15155b1561126b5761126b8363095ea7b360e01b84600060405160240161027a9291906115a0565b610fe88363095ea7b360e01b848460405160240161027a9291906115c9565b6112b4817f42414c00000000000000000000000000000000000000000000000000000000006112b7565b50565b7f08c379a000000000000000000000000000000000000000000000000000000000600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b6040805160c08101909152600080825260208201908152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080516080810190915280600081526000602082018190526040820181905260609091015290565b6000602082840312156113f6578081fd5b813561011b816117c5565b60008060408385031215611413578081fd5b823561141e816117c5565b946020939093013593505050565b60006020828403121561143d578081fd5b8151801515811461011b578182fd5b60006020828403121561145d578081fd5b5051919050565b60008060408385031215611476578182fd5b505080516020909101519092909150565b6000806000806080858703121561149c578182fd5b84519350602085015192506040850151915060608501516114bc816117c5565b939692955090935050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b6000825161151d81846020870161178f565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff92909216825260ff16602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561166657815180516003811061162257fe5b855280870151878601528581015173ffffffffffffffffffffffffffffffffffffffff1686860152606090810151908501526080909301929085019060010161160c565b5091979650505050505050565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060a08252835160a083015260208401516116b2816117bb565b8060c084015250604084015173ffffffffffffffffffffffffffffffffffffffff80821660e0850152806060870151166101008501525050608084015161012083015260a084015160c061014084015280518061016085015261018061171e828287016020860161178f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116860101935050505061011b60208301846114c7565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60005b838110156117aa578181015183820152602001611792565b838111156102fc5750506000910152565b600281106112b457fe5b73ffffffffffffffffffffffffffffffffffffffff811681146112b457600080fdfea264697066735822122036d3be9a4702beeeaf84ed61b5a1ad96e4463c44e76b17de0545dd15aa231f2864736f6c63430007010033",
"linkReferences": {},
"deployedLinkReferences": {}
}