0 txs
200 calls
constructor
constructor()
functions
aaveOracle
viewfunction aaveOracle() view returns (address)
API_ETH_MOCK_ADDRESS
viewfunction API_ETH_MOCK_ADDRESS() view returns (address)
cic
viewfunction cic() view returns (address)
eligibilityDataProvider
viewfunction eligibilityDataProvider() view returns (address)
feePercent
viewfunction feePercent() view returns (uint256)
getConfiguration
viewfunction getConfiguration(address asset) view returns (tuple)
getVDebtToken
viewfunction getVDebtToken(address asset) view returns (address)
INTEREST_RATE_MODE
viewfunction INTEREST_RATE_MODE() view returns (uint256)
lendingPool
viewfunction lendingPool() view returns (address)
lockZap
viewfunction lockZap() view returns (address)
ltv
viewfunction ltv(address asset) view returns (uint256)
MAX_MARGIN
viewfunction MAX_MARGIN() view returns (uint256)
MAX_REASONABLE_FEE
viewfunction MAX_REASONABLE_FEE() view returns (uint256)
owner
viewfunction owner() view returns (address)
RATIO_DIVISOR
viewfunction RATIO_DIVISOR() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
TWO_POW_16
viewfunction TWO_POW_16() view returns (uint256)
weth
viewfunction weth() view returns (address)
wethToZap
viewfunction wethToZap(address user) view returns (uint256)
wethToZapEstimation
viewfunction wethToZapEstimation(address user, address asset, uint256 amount, uint256 borrowRatio, uint256 loopCount) view returns (uint256)
ZAP_MARGIN_ESTIMATION
viewfunction ZAP_MARGIN_ESTIMATION() view returns (uint256)
initialize
nonpayablefunction initialize(address _lendingPool, address _rewardEligibleDataProvider, address _aaveOracle, address _lockZap, address _cic, address _weth, uint256 _feePercent, address _treasury)
loop
nonpayablefunction loop(address asset, uint256 amount, uint256 interestRateMode, uint256 borrowRatio, uint256 loopCount, bool isBorrow)
loopETH
payablefunction loopETH(uint256 interestRateMode, uint256 borrowRatio, uint256 loopCount) payable
loopETHFromBorrow
nonpayablefunction loopETHFromBorrow(uint256 interestRateMode, uint256 amount, uint256 borrowRatio, uint256 loopCount)
renounceOwnership
nonpayablefunction renounceOwnership()
setChefIncentivesController
nonpayablefunction setChefIncentivesController(address _cic)
setFeePercent
nonpayablefunction setFeePercent(uint256 _feePercent)
setLockZap
nonpayablefunction setLockZap(address _lockZap)
setTreasury
nonpayablefunction setTreasury(address _treasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
zapWETHWithBorrow
nonpayablefunction zapWETHWithBorrow(uint256 amount, address borrower) returns (uint256 liquidity)
events
FeePercentUpdated
event FeePercentUpdated(uint256 indexed _feePercent)
Initialized
event Initialized(uint8 version)
LockZapUpdated
event LockZapUpdated(address indexed _lockZap)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TreasuryUpdated
event TreasuryUpdated(address indexed _treasury)
errors
AddressZero
error AddressZero()
EthTransferFailed
error EthTransferFailed()
ETHTransferFailed
error ETHTransferFailed()
FallbackNotAllowed
error FallbackNotAllowed()
InsufficientPermission
error InsufficientPermission()
InvalidLoopCount
error InvalidLoopCount()
InvalidRatio
error InvalidRatio()
MarginTooHigh
error MarginTooHigh()
ReceiveNotAllowed
error ReceiveNotAllowed()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613b7580620000f36000396000f3fe6080604052600436106101e75760003560e01c806376e82e8b11610102578063a59a997311610095578063dbbbbc6311610064578063dbbbbc6314610645578063ec67ff7314610665578063f0f4426014610685578063f2fde38b146106a55761023f565b8063a59a9973146105b6578063a8d5a452146105e3578063c44b11f7146105f6578063cd498dc4146106255761023f565b8063861d18b9116100d1578063861d18b9146105365780638da5cb5b146105565780638e659c081461058157806391431f4a146105a15761023f565b806376e82e8b146104be5780637ce3489b146104eb5780637fd6f15c1461050b57806383008bd9146105215761023f565b8063602acb7e1161017a5780636a7e9f33116101495780636a7e9f33146104535780636fb2a1bf14610469578063715018a6146104895780637473eea61461049e5761023f565b8063602acb7e146103b157806361d027b3146103d95780636372b28114610406578063667f3745146104335761023f565b8063269510a2116101b6578063269510a21461034357806330496b62146103585780633fc8cef31461036d5780634c215f211461039a5761023f565b806303bf24e51461027157806306346c30146102a457806313036ed2146102f6578063171b3e43146103235761023f565b3661023f5760685473ffffffffffffffffffffffffffffffffffffffff16331461023d576040517fcb263c3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b6040517fdeab4c3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561027d57600080fd5b5061029161028c3660046133dd565b6106c5565b6040519081526020015b60405180910390f35b3480156102b057600080fd5b506067546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029b565b34801561030257600080fd5b50606c546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561032f57600080fd5b5061023d61033e366004613408565b61080b565b34801561034f57600080fd5b50610291606481565b34801561036457600080fd5b50610291600681565b34801561037957600080fd5b506068546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103a657600080fd5b506102916201000081565b3480156103bd57600080fd5b506102d173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156103e557600080fd5b50606b546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041257600080fd5b506069546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b34801561043f57600080fd5b506102d161044e3660046133dd565b610cdf565b34801561045f57600080fd5b5061029161271081565b34801561047557600080fd5b5061023d6104843660046133dd565b610d84565b34801561049557600080fd5b5061023d610e48565b3480156104aa57600080fd5b506102916104b93660046133dd565b610e5c565b3480156104ca57600080fd5b506066546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104f757600080fd5b5061023d610506366004613466565b610e82565b34801561051757600080fd5b50610291606a5481565b34801561052d57600080fd5b50610291600281565b34801561054257600080fd5b5061023d61055136600461347f565b610ef8565b34801561056257600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102d1565b34801561058d57600080fd5b5061023d61059c3660046134b1565b611323565b3480156105ad57600080fd5b50610291600a81565b3480156105c257600080fd5b506065546102d19073ffffffffffffffffffffffffffffffffffffffff1681565b61023d6105f1366004613551565b6117af565b34801561060257600080fd5b506106166106113660046133dd565b611d3e565b6040519051815260200161029b565b34801561063157600080fd5b5061029161064036600461357d565b611de7565b34801561065157600080fd5b5061023d6106603660046133dd565b61202c565b34801561067157600080fd5b506102916106803660046135ce565b6120c8565b34801561069157600080fd5b5061023d6106a03660046133dd565b612394565b3480156106b157600080fd5b5061023d6106c03660046133dd565b612458565b6066546040517fe38fdc3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600092839291169063e38fdc3690602401602060405180830381865afa158015610739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075d91906135fe565b6066546040517f6d9077cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015292935060009290911690636d9077cb90602401602060405180830381865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f791906135fe565b9050610803818361250f565b949350505050565b60008311801561081d57506127108311155b610853576040517f648564d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8161088a576040517f2ffe3c2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808261090b576108b473ffffffffffffffffffffffffffffffffffffffff891633308a61273b565b612710606a54886108c59190613646565b6108cf91906136b2565b9050801561090b57606b546108fe9073ffffffffffffffffffffffffffffffffffffffff8a811691168361281d565b61090881886136c6565b96505b61091488612878565b606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526001602482015273ffffffffffffffffffffffffffffffffffffffff90911690635d8e5d4990604401600060405180830381600087803b15801561098657600080fd5b505af115801561099a573d6000803e3d6000fd5b5050505082610a44576065546040517fe8eda9df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018a905233604483015261ffff851660648301529091169063e8eda9df90608401600060405180830381600087803b158015610a2757600080fd5b505af1158015610a3b573d6000803e3d6000fd5b50505050610a5e565b84610a5161271089613646565b610a5b91906136b2565b96505b60005b84811015610cc157610a746001866136c6565b811415610b0657606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526000602482015273ffffffffffffffffffffffffffffffffffffffff90911690635d8e5d4990604401600060405180830381600087803b158015610aed57600080fd5b505af1158015610b01573d6000803e3d6000fd5b505050505b612710610b13878a613646565b610b1d91906136b2565b6065546040517fa415bcad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c8116600483015260248201849052604482018b905261ffff87166064830152336084830152929a5091169063a415bcad9060a401600060405180830381600087803b158015610baa57600080fd5b505af1158015610bbe573d6000803e3d6000fd5b50505050612710606a5489610bd39190613646565b610bdd91906136b2565b91508115610c1957606b54610c0c9073ffffffffffffffffffffffffffffffffffffffff8b811691168461281d565b610c1682896136c6565b97505b6065546040517fe8eda9df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152602482018b905233604483015261ffff861660648301529091169063e8eda9df90608401600060405180830381600087803b158015610c9d57600080fd5b505af1158015610cb1573d6000803e3d6000fd5b505060019092019150610a619050565b50610cd4610cce336106c5565b336120c8565b505050505050505050565b6065546040517f35ea6a7500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260009283929116906335ea6a759060240161018060405180830381865afa158015610d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7891906137ed565b61012001519392505050565b610d8c612a42565b73ffffffffffffffffffffffffffffffffffffffff8116610dd9576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fb26a149e4d4f5f59d149b2bde97bb20d5c1633a54c1bc34c27ac50dbd485a9a990600090a250565b610e50612a42565b610e5a6000612ac3565b565b600080610e6883611d3e565b8051909150610e7b9062010000906138da565b9392505050565b610e8a612a42565b6064811115610ec5576040517f648564d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606a81905560405181907f64d1887078a96d281ed60dd69ba75bfb6b5cd2cb4c2d2538b2eb7816a4c646ea90600090a250565b600082118015610f0a57506127108211155b610f40576040517f648564d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80610f77576040517f2ffe3c2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606854600090610f9c9073ffffffffffffffffffffffffffffffffffffffff16612878565b606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526001602482015260009173ffffffffffffffffffffffffffffffffffffffff1690635d8e5d4990604401600060405180830381600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b5050505060005b8381101561130d5761103d6001856136c6565b8114156110cf57606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526000602482015273ffffffffffffffffffffffffffffffffffffffff90911690635d8e5d4990604401600060405180830381600087803b1580156110b657600080fd5b505af11580156110ca573d6000803e3d6000fd5b505050505b6065546068546040517fa415bcad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015260248101899052604481018a905261ffff8616606482015233608482015291169063a415bcad9060a401600060405180830381600087803b15801561115c57600080fd5b505af1158015611170573d6000803e3d6000fd5b50505050612710606a54876111859190613646565b61118f91906136b2565b9150811561124c576068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90602401600060405180830381600087803b15801561120357600080fd5b505af1158015611217573d6000803e3d6000fd5b5050606b5461123f925073ffffffffffffffffffffffffffffffffffffffff16905083612b3a565b61124982876136c6565b95505b6065546068546040517fe8eda9df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905233604482015261ffff8616606482015291169063e8eda9df90608401600060405180830381600087803b1580156112d257600080fd5b505af11580156112e6573d6000803e3d6000fd5b5050505061271085876112f99190613646565b61130391906136b2565b955060010161102a565b5061131a610cce336106c5565b50505050505050565b600054610100900460ff16158080156113435750600054600160ff909116105b8061135d5750303b15801561135d575060005460ff166001145b6113ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561144c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8916611499576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff88166114e6576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8716611533576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8616611580576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff85166115cd576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661161a576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611667576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648311156116a2576040517f648564d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116aa612bee565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff8c8116919091179092556066805482168b84161790556067805482168984161790556069805482168a8416179055606c80548216888416179055606880548216878416179055606a859055606b80549091169184169190911790558015610cd457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b6000821180156117c157506127108211155b6117f7576040517f648564d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061182e576040517f2ffe3c2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60685460009034906118559073ffffffffffffffffffffffffffffffffffffffff16612878565b6000612710606a54836118689190613646565b61187291906136b2565b905080156118aa57606b5461189d9073ffffffffffffffffffffffffffffffffffffffff1682612b3a565b6118a781836136c6565b91505b606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526001602482015273ffffffffffffffffffffffffffffffffffffffff90911690635d8e5d4990604401600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b50505050606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561199e57600080fd5b505af11580156119b2573d6000803e3d6000fd5b50506065546068546040517fe8eda9df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810188905233604482015261ffff891660648201529116935063e8eda9df92506084019050600060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b5050505060005b8481101561130d57611a6c6001866136c6565b811415611afe57606c546040517f5d8e5d490000000000000000000000000000000000000000000000000000000081523360048201526000602482015273ffffffffffffffffffffffffffffffffffffffff90911690635d8e5d4990604401600060405180830381600087803b158015611ae557600080fd5b505af1158015611af9573d6000803e3d6000fd5b505050505b612710611b0b8785613646565b611b1591906136b2565b6065546068546040517fa415bcad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015260248101849052604481018b905261ffff88166064820152336084820152929550169063a415bcad9060a401600060405180830381600087803b158015611ba457600080fd5b505af1158015611bb8573d6000803e3d6000fd5b50505050612710606a5484611bcd9190613646565b611bd791906136b2565b91508115611c94576068546040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90602401600060405180830381600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b5050606b54611c87925073ffffffffffffffffffffffffffffffffffffffff16905083612b3a565b611c9182846136c6565b92505b6065546068546040517fe8eda9df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810186905233604482015261ffff8716606482015291169063e8eda9df90608401600060405180830381600087803b158015611d1a57600080fd5b505af1158015611d2e573d6000803e3d6000fd5b505060019092019150611a599050565b6040805160208101909152600081526065546040517fc44b11f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529091169063c44b11f790602401602060405180830381865afa158015611dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de191906138ee565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611e375760685473ffffffffffffffffffffffffffffffffffffffff1694505b6066546040517fe38fdc3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152600092169063e38fdc3690602401602060405180830381865afa158015611ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecc91906135fe565b6066546040517f6d9077cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a8116600483015292935060009290911690636d9077cb90602401602060405180830381865afa158015611f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6691906135fe565b90506000612710606a5488611f7b9190613646565b611f8591906136b2565b9050611f9181886136c6565b9650611f9d8888612c8d565b611fa7908461390a565b925060005b8581101561201457612710611fc1888a613646565b611fcb91906136b2565b9750612710606a5489611fde9190613646565b611fe891906136b2565b9150611ff482896136c6565b97506120008989612c8d565b61200a908561390a565b9350600101611fac565b5061201f828461250f565b9998505050505050505050565b612034612a42565b73ffffffffffffffffffffffffffffffffffffffff8116612081576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60003373ffffffffffffffffffffffffffffffffffffffff831614801590612108575060655473ffffffffffffffffffffffffffffffffffffffff163314155b1561213f576040517fdeda903000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8215611de1576065546068546040517fa415bcad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810186905260026044820152600060648201819052858316608483015292919091169063a415bcad9060a401600060405180830381600087803b1580156121d657600080fd5b505af11580156121ea573d6000803e3d6000fd5b50506068546067546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91821660248201529116925063dd62ed3e9150604401602060405180830381865afa158015612266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228a91906135fe565b6122d8576067546068546122d89173ffffffffffffffffffffffffffffffffffffffff91821691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612ef1565b6067546040517f9506f05f00000000000000000000000000000000000000000000000000000000815260006004820181905260248201819052604482018790526064820181905273ffffffffffffffffffffffffffffffffffffffff868116608484015260a483019190915290911690639506f05f9060c4016020604051808303816000875af1158015612370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080391906135fe565b61239c612a42565b73ffffffffffffffffffffffffffffffffffffffff81166123e9576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b612460612a42565b73ffffffffffffffffffffffffffffffffffffffff8116612503576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016113e5565b61250c81612ac3565b50565b600081831015611de157600061252584846136c6565b6069546068546040517fb3596f0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015292935060009291169063b3596f0790602401602060405180830381865afa15801561259d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c191906135fe565b6069546068546040517f92bf2be000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529293506000929116906392bf2be090602401602060405180830381865afa158015612639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265d9190613922565b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb919061393f565b90506305f5e100826126de83600a613a7a565b6126f086670de0b6b3a7640000613646565b6126fa9190613646565b61270491906136b2565b61270e91906136b2565b9350606461271d600686613646565b61272791906136b2565b612731908561390a565b9695505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526128179085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612fdd565b50505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526128739084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401612795565b505050565b6065546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91821660248201529082169063dd62ed3e90604401602060405180830381865afa1580156128ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291291906135fe565b61295d5760655461295d9073ffffffffffffffffffffffffffffffffffffffff83811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612ef1565b606b546040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91821660248201529082169063dd62ed3e90604401602060405180830381865afa1580156129d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f791906135fe565b61250c57606b5461250c9073ffffffffffffffffffffffffffffffffffffffff83811691167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612ef1565b60335473ffffffffffffffffffffffffffffffffffffffff163314610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016113e5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051612b719190613ab5565b60006040518083038185875af1925050503d8060008114612bae576040519150601f19603f3d011682016040523d82523d6000602084013e612bb3565b606091505b5050905080612873576040517fb12d13eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16612c85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016113e5565b610e5a6130ec565b6069546040517fb3596f0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152600092839291169063b3596f0790602401602060405180830381865afa158015612d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2591906135fe565b905060008473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d98919061393f565b90506000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a7e9f336040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2d91906135fe565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d52874da6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebe91906135fe565b612ec984600a613a7a565b612ed38887613646565b612edd91906136b2565b612ee79190613646565b61273191906136b2565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052612f7d848261318c565b6128175760405173ffffffffffffffffffffffffffffffffffffffff8416602482015260006044820152612fd79085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401612795565b61281784825b600061303f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661324d9092919063ffffffff16565b90508051600014806130605750808060200190518101906130609190613ad1565b612873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016113e5565b600054610100900460ff16613183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016113e5565b610e5a33612ac3565b60008060008473ffffffffffffffffffffffffffffffffffffffff16846040516131b69190613ab5565b6000604051808303816000865af19150503d80600081146131f3576040519150601f19603f3d011682016040523d82523d6000602084013e6131f8565b606091505b50915091508180156132225750805115806132225750808060200190518101906132229190613ad1565b8015613244575073ffffffffffffffffffffffffffffffffffffffff85163b15155b95945050505050565b60606108038484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516132819190613ab5565b60006040518083038185875af1925050503d80600081146132be576040519150601f19603f3d011682016040523d82523d6000602084013e6132c3565b606091505b50915091506132d4878383876132df565b979650505050505050565b6060831561337257825161336b5773ffffffffffffffffffffffffffffffffffffffff85163b61336b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113e5565b5081610803565b61080383838151156133875781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e59190613aee565b73ffffffffffffffffffffffffffffffffffffffff8116811461250c57600080fd5b6000602082840312156133ef57600080fd5b8135610e7b816133bb565b801515811461250c57600080fd5b60008060008060008060c0878903121561342157600080fd5b863561342c816133bb565b95506020870135945060408701359350606087013592506080870135915060a0870135613458816133fa565b809150509295509295509295565b60006020828403121561347857600080fd5b5035919050565b6000806000806080858703121561349557600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b0312156134ce57600080fd5b88356134d9816133bb565b975060208901356134e9816133bb565b965060408901356134f9816133bb565b95506060890135613509816133bb565b94506080890135613519816133bb565b935060a0890135613529816133bb565b925060c0890135915060e0890135613540816133bb565b809150509295985092959890939650565b60008060006060848603121561356657600080fd5b505081359360208301359350604090920135919050565b600080600080600060a0868803121561359557600080fd5b85356135a0816133bb565b945060208601356135b0816133bb565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156135e157600080fd5b8235915060208301356135f3816133bb565b809150509250929050565b60006020828403121561361057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561367e5761367e613617565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826136c1576136c1613683565b500490565b6000828210156136d8576136d8613617565b500390565b604051610180810167ffffffffffffffff81118282101715613728577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b60006020828403121561374057600080fd5b6040516020810181811067ffffffffffffffff8211171561378a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff811681146137b757600080fd5b919050565b805164ffffffffff811681146137b757600080fd5b80516137b7816133bb565b805160ff811681146137b757600080fd5b6000610180828403121561380057600080fd5b6138086136dd565b613812848461372e565b815261382060208401613797565b602082015261383160408401613797565b604082015261384260608401613797565b606082015261385360808401613797565b608082015261386460a08401613797565b60a082015261387560c084016137bc565b60c082015261388660e084016137d1565b60e08201526101006138998185016137d1565b908201526101206138ab8482016137d1565b908201526101406138bd8482016137d1565b908201526101606138cf8482016137dc565b908201529392505050565b6000826138e9576138e9613683565b500690565b60006020828403121561390057600080fd5b610e7b838361372e565b6000821982111561391d5761391d613617565b500190565b60006020828403121561393457600080fd5b8151610e7b816133bb565b60006020828403121561395157600080fd5b610e7b826137dc565b600181815b808511156139b357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561399957613999613617565b808516156139a657918102915b93841c939080029061395f565b509250929050565b6000826139ca57506001611de1565b816139d757506000611de1565b81600181146139ed57600281146139f757613a13565b6001915050611de1565b60ff841115613a0857613a08613617565b50506001821b611de1565b5060208310610133831016604e8410600b8410161715613a36575081810a611de1565b613a40838361395a565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613a7257613a72613617565b029392505050565b6000610e7b60ff8416836139bb565b60005b83811015613aa4578181015183820152602001613a8c565b838111156128175750506000910152565b60008251613ac7818460208701613a89565b9190910192915050565b600060208284031215613ae357600080fd5b8151610e7b816133fa565b6020815260008251806020840152613b0d816040850160208701613a89565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220f67804d569a4749b40b8e8adc0f278b63b22303edbcc3452e3f259916756b9ff64736f6c634300080c0033