0 txs
0 calls
constructor
constructor(address _nonfungiblePositionManager, address _universalRouter, address _zeroxAllowanceHolder, address _permit2)
functions
factory
viewfunction factory() view returns (address)
nonfungiblePositionManager
viewfunction nonfungiblePositionManager() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
permit2
viewfunction permit2() view returns (address)
universalRouter
viewfunction universalRouter() view returns (address)
vaults
viewfunction vaults(address) view returns (bool)
weth
viewfunction weth() view returns (address)
zeroxAllowanceHolder
viewfunction zeroxAllowanceHolder() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
execute
nonpayablefunction execute(uint256 tokenId, tuple instructions) returns (uint256 newTokenId)
executeWithPermit
nonpayablefunction executeWithPermit(uint256 tokenId, tuple instructions, uint8 v, bytes32 r, bytes32 s) returns (uint256 newTokenId)
onERC721Received
nonpayablefunction onERC721Received(address, address from, uint256 tokenId, bytes data) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
setVault
nonpayablefunction setVault(address _vault)
swap
payablefunction swap(tuple params) payable returns (uint256 amountOut)
swapAndIncreaseLiquidity
payablefunction swapAndIncreaseLiquidity(tuple params) payable returns (uint128 liquidity, uint256 amount0, uint256 amount1)
swapAndMint
payablefunction swapAndMint(tuple params) payable returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
events
ChangeRange
event ChangeRange(uint256 indexed tokenId, uint256 newTokenId)
CompoundFees
event CompoundFees(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)
SwapAndIncreaseLiquidity
event SwapAndIncreaseLiquidity(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
SwapAndMint
event SwapAndMint(uint256 indexed tokenId, uint128 liquidity, uint256 amount0, uint256 amount1)
VaultSet
event VaultSet(address newVault)
WithdrawAndCollectAndSwap
event WithdrawAndCollectAndSwap(uint256 indexed tokenId, address token, uint256 amount)
errors
AmountError
error AmountError()
ChainlinkPriceError
error ChainlinkPriceError()
CollateralFactorExceedsMax
error CollateralFactorExceedsMax()
CollateralFail
error CollateralFail()
CollateralValueLimit
error CollateralValueLimit()
CollectError
error CollectError()
DailyDebtIncreaseLimit
error DailyDebtIncreaseLimit()
DailyLendIncreaseLimit
error DailyLendIncreaseLimit()
DebtChanged
error DebtChanged()
EtherSendFailed
error EtherSendFailed()
ExceedsMaxReward
error ExceedsMaxReward()
GlobalDebtLimit
error GlobalDebtLimit()
GlobalLendLimit
error GlobalLendLimit()
InsufficientLiquidity
error InsufficientLiquidity()
InterestNotUpdated
error InterestNotUpdated()
InvalidConfig
error InvalidConfig()
InvalidPool
error InvalidPool()
InvalidToken
error InvalidToken()
MinLoanSize
error MinLoanSize()
MissingSwapData
error MissingSwapData()
NeedsRepay
error NeedsRepay()
NoEtherToken
error NoEtherToken()
NoLiquidity
error NoLiquidity()
NoSharesRepayed
error NoSharesRepayed()
NotConfigured
error NotConfigured()
NotEnoughReward
error NotEnoughReward()
NotLiquidatable
error NotLiquidatable()
NotReady
error NotReady()
NotSupportedFeeTier
error NotSupportedFeeTier()
NotSupportedWhatToDo
error NotSupportedWhatToDo()
NotWETH
error NotWETH()
PriceDifferenceExceeded
error PriceDifferenceExceeded()
Reentrancy
error Reentrancy()
SameRange
error SameRange()
SameToken
error SameToken()
SelfSend
error SelfSend()
SequencerDown
error SequencerDown()
SequencerGracePeriodNotOver
error SequencerGracePeriodNotOver()
SequencerUptimeFeedInvalid
error SequencerUptimeFeedInvalid()
SlippageError
error SlippageError()
SwapAmountTooLarge
error SwapAmountTooLarge()
SwapFailed
error SwapFailed()
TooMuchEtherSent
error TooMuchEtherSent()
TransferError
error TransferError()
TransformFailed
error TransformFailed()
TransformNotAllowed
error TransformNotAllowed()
TWAPCheckFailed
error TWAPCheckFailed()
Unauthorized
error Unauthorized()
WrongContract
error WrongContract()
creation bytecode
0x61014060405234801562000011575f80fd5b50604051620051e9380380620051e98339810160408190526200003491620001d2565b838383620000423362000150565b826001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200007f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000a5919062000237565b6001600160a01b03166080816001600160a01b031681525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000121919062000237565b6001600160a01b0390811660a05292831660c05290821660e0528116610100521661012052506200025c915050565b600180546001600160a01b03191690556200016b816200016e565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200016b575f80fd5b5f805f8060808587031215620001e6575f80fd5b8451620001f381620001bd565b60208601519094506200020681620001bd565b60408601519093506200021981620001bd565b60608601519092506200022c81620001bd565b939692955090935050565b5f6020828403121562000248575f80fd5b81516200025581620001bd565b9392505050565b60805160a05160c05160e0516101005161012051614e6c6200037d5f395f81816101830152611c8001525f818161042b01528181612190015281816121bc015261225e01525f818161023801528181612067015281816120ce015261211a01525f818161038d015281816104d3015281816105710152818161060c015281816106dc01528181610bd401528181610d1e01528181610d48015281816125ee015281816126a6015281816128e501528181612bea01528181612e13015281816137f50152818161382201528181613857015261388601525f81816103c00152612fbc01525f818161012e0152818161026b015281816124160152818161245b015281816130b30152818161312d0152818161318f01526131ec0152614e6c5ff3fe60806040526004361061011e575f3560e01c8063a622ee7c1161009d578063d2a5e66d11610062578063d2a5e66d1461041a578063dc3253a01461044d578063e30c39781461046c578063f2fde38b14610489578063fa461e33146104a8575f80fd5b8063a622ee7c14610303578063b1902ece14610341578063b44a27221461037c578063c45a0155146103af578063c5f5280a146103e2575f80fd5b80636817031b116100e35780636817031b1461028d578063715018a6146102ac57806379ba5097146102c05780638176835d146102d45780638da5cb5b146102e7575f80fd5b806312261ee714610172578063150b7a02146101c257806321729922146101fa57806335a9e4df146102275780633fc8cef31461025a575f80fd5b3661016e57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461016c57604051635724f38560e01b815260040160405180910390fd5b005b5f80fd5b34801561017d575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101cd575f80fd5b506101e16101dc366004613c91565b6104c7565b6040516001600160e01b031990911681526020016101b9565b348015610205575f80fd5b506102196102143660046140d5565b6105ea565b6040519081526020016101b9565b348015610232575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610265575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610298575f80fd5b5061016c6102a736600461413f565b61074f565b3480156102b7575f80fd5b5061016c6107b6565b3480156102cb575f80fd5b5061016c6107c9565b6102196102e2366004614161565b610848565b3480156102f2575f80fd5b505f546001600160a01b03166101a5565b34801561030e575f80fd5b5061033161031d36600461413f565b60026020525f908152604090205460ff1681565b60405190151581526020016101b9565b61035461034f366004614198565b610a4e565b604080519485526001600160801b0390931660208501529183015260608201526080016101b9565b348015610387575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ba575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b6103f56103f03660046141cf565b610bac565b604080516001600160801b0390941684526020840192909252908201526060016101b9565b348015610425575f80fd5b506101a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610458575f80fd5b50610219610467366004614206565b610d18565b348015610477575f80fd5b506001546001600160a01b03166101a5565b348015610494575f80fd5b5061016c6104a336600461413f565b611829565b3480156104b3575f80fd5b5061016c6104c2366004614249565b611899565b5f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461051157604051630d348b9b60e41b815260040160405180910390fd5b306001600160a01b0386160361053a57604051632797715160e01b815260040160405180910390fd5b5f61054783850185614297565b90506105538582610d18565b506102c0810151604051635c46a7ef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b88d4fde916105aa9130918b918b91600401614315565b5f604051808303815f87803b1580156105c1575f80fd5b505af11580156105d3573d5f803e3d5ffd5b50630a85bd0160e11b9a9950505050505050505050565b6040516331a9108f60e11b8152600481018690525f9033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610651573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106759190614352565b6001600160a01b03161461069b576040516282b42960e81b815260040160405180910390fd5b610240850151604051637ac2ff7b60e01b815230600482015260248101889052604481019190915260ff851660648201526084810184905260a481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637ac2ff7b9060c4015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b505050506107458686610d18565b9695505050505050565b610757611917565b6040516001600160a01b03821681527fe7ae49f883c825b05681b3e00e8be6fdea9ed2a8a45e4c6ecb9390fc44cce6159060200160405180910390a16001600160a01b03165f908152600260205260409020805460ff19166001179055565b6107be611917565b6107c75f611970565b565b60015433906001600160a01b0316811461083c5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b61084581611970565b50565b5f610859604083016020840161413f565b6001600160a01b031661086f602084018461413f565b6001600160a01b0316036108965760405163100dac0560e11b815260040160405180910390fd5b6108a360e083018361436d565b1590506108f2575f806108b960e085018561436d565b8101906108c691906143d1565b90925090506108eb6108db602086018661413f565b5f8087604001355f808888611989565b5050610910565b610910610902602084018461413f565b5f8085604001355f80611ed9565b6040805160a081019091525f906109bc908061092f602087018761413f565b6001600160a01b03168152602001856020016020810190610950919061413f565b6001600160a01b031681526020018560400135815260200185606001358152602001858060a00190610982919061436d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250611f32565b9250905081156109ff576109ff6109d960a085016080860161413f565b6109e9604086016020870161413f565b846109fa60e0880160c089016144e0565b612402565b5f610a0e82604086013561450f565b90508015610a4757610a47610a2960a086016080870161413f565b610a36602087018761413f565b836109fa60e0890160c08a016144e0565b5050919050565b5f808080610a62604086016020870161413f565b6001600160a01b0316610a78602087018761413f565b6001600160a01b031603610a9f5760405163100dac0560e11b815260040160405180910390fd5b610aad61028086018661436d565b159050610b34575f80610ac461028088018861436d565b810190610ad191906143d1565b9092509050610b2d610ae6602089018961413f565b610af660408a0160208b0161413f565b610b086101608b016101408c0161413f565b60a08b013560c08c0135610b266101c08e01356101608f0135614528565b8888611989565b5050610b89565b610b89610b44602087018761413f565b610b54604088016020890161413f565b610b6661016089016101408a0161413f565b60a089013560c08a0135610b846101c08c01356101608d0135614528565b611ed9565b610b9d610b958661453b565b341515612541565b92989197509550909350915050565b60405163133f757160e31b8152813560048201525f9081908190819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906399fbab889060240161018060405180830381865afa158015610c1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3e9190614709565b505050505050505093509350505085806101c00190610c5d919061436d565b159050610cc1575f80610c746101c089018961436d565b810190610c8191906143d1565b9092509050610cba8484610c9b60c08c0160a08d0161413f565b8b602001358c604001358d61012001358e60c00135610b269190614528565b5050610cf3565b610cf38282610cd660c08a0160a08b0161413f565b60208a013560408b0135610b846101208d013560c08e0135614528565b610d09610cff876147e2565b838334151561277f565b91989097509095509350505050565b5f610d437f000000000000000000000000000000000000000000000000000000000000000084612a23565b5f805f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610d9491815260200190565b61018060405180830381865afa158015610db0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd49190614709565b5050505097505050509450945050505f80866101e001516001600160801b03165f14610e1f57610e1988886101e001518961024001518a604001518b60600151612b6b565b90925090505b610eb88886866001600160801b0380168b61014001516001600160801b031614610e6a57610e658b61014001516001600160801b031687610e609190614528565b612c63565b610e73565b6001600160801b035b6101608c01516001600160801b0390811614610eab57610ea68c61016001516001600160801b031687610e609190614528565b612ccf565b6001600160801b03612ccf565b60808901519193509150821080610ed257508660e0015181105b15610ef057604051634ff64a9f60e01b815260040160405180910390fd5b600287516002811115610f0557610f056148ec565b036111f457846001600160a01b031687602001516001600160a01b031603610ff757610feb604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b031681526020018961024001518152602001866001600160a01b031681526020018960e001518152602001896101000151815260200189610120015181526020015f81526020015f815260200160405180602001604052805f81525081526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a0015161277f565b919450925090506111a2565b836001600160a01b031687602001516001600160a01b0316036110d657610feb604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b031681526020018961024001518152602001876001600160a01b031681526020015f81526020015f815260200160405180602001604052805f8152508152602001896080015181526020018960a0015181526020018960c0015181526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a0015161277f565b61119a604051806101e001604052808a81526020018481526020018381526020018961026001516001600160a01b0316815260200189610240015181526020015f6001600160a01b031681526020015f81526020015f815260200160405180602001604052805f81525081526020015f81526020015f815260200160405180602001604052805f81525081526020018961020001518152602001896102200151815260200160405180602001604052805f81525081525086868a6102a0015161277f565b919450925090505b604080516001600160801b03851681526020810184905290810182905288907faede78842f79342b251fe687b26b9f00d35eec5b0d21d44c283dd01a5ad7c136906060015b60405180910390a261181e565b5f87516002811115611208576112086148ec565b036115f957846001600160a01b031687602001516001600160a01b03160361135b5761134f604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b031681526020018961024001518152602001866001600160a01b031681526020018960e001518152602001896101000151815260200189610120015181526020015f81526020015f815260200160405180602001604052805f815250815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a00151612541565b509197506115c7915050565b836001600160a01b031687602001516001600160a01b03160361149b5761134f604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b031681526020018961024001518152602001876001600160a01b031681526020015f81526020015f815260200160405180602001604052805f8152508152602001896080015181526020018960a0015181526020018960c00151815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a00151612541565b6115c0604051806102a00160405280876001600160a01b03168152602001866001600160a01b0316815260200189610180015162ffffff168152602001896101a0015160020b8152602001896101c0015160020b81526020018481526020018381526020018961026001516001600160a01b031681526020018961028001516001600160a01b0316815260200189610240015181526020015f6001600160a01b031681526020015f81526020015f815260200160405180602001604052805f81525081526020015f81526020015f815260200160405180602001604052805f815250815260200189610200015181526020018961022001518152602001896102e00151815260200160405180602001604052805f815250815250886102a00151612541565b5091975050505b877f2d3b242342e1e892c96167e80cea1f82a3961348e1576320d5e93deaa75d3689876040516111e791815260200190565b60018751600281111561160e5761160e6148ec565b03611805575f87602001516001600160a01b0316866001600160a01b0316146116bf575f806116806040518060a001604052808a6001600160a01b031681526020018c602001516001600160a01b031681526020018781526020018c60a0015181526020018c60c00151815250611f32565b91509150848210156116ac576102608a01516116ac90896116a1858961450f565b8d6102a00151612402565b6116b68184614528565b925050506116cc565b6116c98382614528565b90505b87602001516001600160a01b0316856001600160a01b03161461176e575f8061173a6040518060a00160405280896001600160a01b031681526020018c602001516001600160a01b031681526020018681526020018c610100015181526020018c6101200151815250611f32565b915091508382101561175b576102608a015161175b90886116a1858861450f565b6117658184614528565b9250505061177b565b6117788282614528565b90505b8015801590611796575060208801516001600160a01b031615155b156117b5576117b58861026001518960200151838b6102a00151612402565b602080890151604080516001600160a01b0390921682529181018390528a917ff8aacb16b34d229aa53d44a7759a3741b5c098e099666e51a4ae9d66a5956c43910160405180910390a25061181e565b60405163290db76760e01b815260040160405180910390fd5b505050505092915050565b611831611917565b600180546001600160a01b0383166001600160a01b031990911681179091556118615f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f8413806118a657505f83135b6118ae575f80fd5b5f80806118bd84860186614900565b91945092509050336118d0848484612fb6565b6001600160a01b0316146118f6576040516282b42960e81b815260040160405180910390fd5b61190e83335f8a136119085788612ff3565b89612ff3565b50505050505050565b5f546001600160a01b031633146107c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610833565b600180546001600160a01b031916905561084581613056565b6119c26040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6119d08989898989896130a5565b6040840152602083015281528251515f906001600160401b038111156119f8576119f8613cfe565b604051908082528060200260200182016040528015611a3c57816020015b604080518082019091525f8082526020820152815260200190600190039081611a165790505b50825190915015611af5576040516370a0823160e01b81523060048201526001600160a01b038b16906370a0823190602401602060405180830381865afa158015611a89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aad9190614948565b608083015260408051808201909152308152825160208201526060830180518391611ad78261495f565b905281518110611ae957611ae9614977565b60200260200101819052505b602082015115611bb0576040516370a0823160e01b81523060048201526001600160a01b038a16906370a0823190602401602060405180830381865afa158015611b41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b659190614948565b60a083015260408051808201909152308152602080840151908201526060830180518391611b928261495f565b905281518110611ba457611ba4614977565b60200260200101819052505b604082015115611c69576040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015611bfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c209190614948565b60c08301526040805180820182523081529083015160208201526060830180518391611c4b8261495f565b905281518110611c5d57611c5d614977565b60200260200101819052505b60405163edd9444b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063edd9444b90611cbb9087908590339089906004016149e2565b5f604051808303815f87803b158015611cd2575f80fd5b505af1158015611ce4573d5f803e3d5ffd5b50508351159150611d86905057815160808301516040516370a0823160e01b81523060048201526001600160a01b038d16906370a0823190602401602060405180830381865afa158015611d3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5e9190614948565b611d68919061450f565b14611d86576040516313ff771f60e21b815260040160405180910390fd5b602082015115611e2857602082015160a08301516040516370a0823160e01b81523060048201526001600160a01b038c16906370a0823190602401602060405180830381865afa158015611ddc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e009190614948565b611e0a919061450f565b14611e28576040516313ff771f60e21b815260040160405180910390fd5b604082015115611ecd5760408083015160c084015191516370a0823160e01b81523060048201529091906001600160a01b038b16906370a0823190602401602060405180830381865afa158015611e81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea59190614948565b611eaf919061450f565b14611ecd576040516313ff771f60e21b815260040160405180910390fd5b50505050505050505050565b5f805f611eea8989898989896130a5565b925092509250825f14611f0357611f03893330866132f3565b8115611f1557611f15883330856132f3565b8015611f2757611f27873330846132f3565b505050505050505050565b5f8082604001515f14158015611f4c575060808301515115155b8015611f64575060208301516001600160a01b031615155b8015611f79575082516001600160a01b031615155b156123fd5782516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611fc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fe79190614948565b60208501516040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612034573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120589190614948565b608086015160208101519192507f0000000000000000000000000000000000000000000000000000000000000000918214918215612187575f8089608001518060200190518101906120aa9190614adb565b915091505f818060200190518101906120c39190614b1e565b90506120f78b5f01517f00000000000000000000000000000000000000000000000000000000000000008d60400151612ff3565b805160208201516040808401519051630d64d59360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693633593564c93612152939192909190600401614c20565b5f604051808303815f87803b158015612169575f80fd5b505af115801561217b573d5f803e3d5ffd5b50505050505050612285565b6121b9885f01517f00000000000000000000000000000000000000000000000000000000000000008a6040015161332b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031689608001516040516121f69190614c99565b5f604051808303815f865af19150503d805f811461222f576040519150601f19603f3d011682016040523d82523d5f602084013e612234565b606091505b50509050806122565760405163081ceff360e41b815260040160405180910390fd5b8851612283907f00000000000000000000000000000000000000000000000000000000000000005f6133d5565b505b87516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156122ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ee9190614948565b6122f8908661450f565b60208901516040516370a0823160e01b815230600482015291985085916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123699190614948565b612373919061450f565b9550876060015186101561239a57604051630d4205a160e11b815260040160405180910390fd5b87602001516001600160a01b0316885f01516001600160a01b03167ffa2dda1cc1b86e41239702756b13effbc1a092b5c57e3ad320fbe4f3b13fe23589896040516123ef929190918252602082015260400190565b60405180910390a350505050505b915091565b8080156124405750826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316145b1561253057604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b1580156124a4575f80fd5b505af11580156124b6573d5f803e3d5ffd5b505050505f846001600160a01b0316836040515f6040518083038185875af1925050503d805f8114612503576040519150601f19603f3d011682016040523d82523d5f602084013e612508565b606091505b505090508061252a57604051637cd69c3960e11b815260040160405180910390fd5b5061253b565b61253b838584612ff3565b50505050565b5f805f805f8061255188886134e8565b915091505f6040518061016001604052808a5f01516001600160a01b031681526020018a602001516001600160a01b031681526020018a6040015162ffffff1681526020018a6060015160020b81526020018a6080015160020b81526020018481526020018381526020018a610220015181526020018a61024001518152602001306001600160a01b031681526020018a610120015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166388316456826040518263ffffffff1660e01b81526004016126389190614cb4565b6080604051808303815f875af1158015612654573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126789190614d78565b6101008d01516102608e0151604051635c46a7ef60e11b8152959c50939a5091985096506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b88d4fde926126df92309290918d91600401614315565b5f604051808303815f87803b1580156126f6575f80fd5b505af1158015612708573d5f803e3d5ffd5b5050604080516001600160801b038a168152602081018990529081018790528992507fdbed0571af71402c681d3b0a1f08d80aa2245c9adb30e12d215356c7a274fcf9915060600160405180910390a26127738960e001518a5f01518b6020015186868a8a8f6138b2565b50505092959194509250565b5f805f805f61289e604051806102a001604052808a6001600160a01b03168152602001896001600160a01b031681526020015f62ffffff1681526020015f60020b81526020015f60020b81526020018b6020015181526020018b6040015181526020018b606001516001600160a01b031681526020018b606001516001600160a01b031681526020018b6080015181526020018b60a001516001600160a01b031681526020018b60c0015181526020018b60e0015181526020018b610100015181526020018b610120015181526020018b610140015181526020018b610160015181526020018b610180015181526020018b6101a00151815260200160405180602001604052805f81525081526020018b6101c00151815250876134e8565b915091505f6040518060c001604052808b5f015181526020018481526020018381526020018b610180015181526020018b6101a0015181526020018b6080015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663219f5d17826040518263ffffffff1660e01b815260040161296d91905f60c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6060604051808303815f875af1158015612989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ad9190614db3565b8c51604080516001600160801b0386168152602081018590529081018390529399509197509550907f1aa7d7662b161a8d4058004091e4c60474753d2f085db526dfb22da59838d0a79060600160405180910390a2612a168a606001518a8a86868a8a8e6138b2565b5050509450945094915050565b335f9081526002602052604090205460ff1615612ac1575f336001600160a01b031663ae41abab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a9b9190614948565b9050808214612abc576040516282b42960e81b815260040160405180910390fd5b505050565b6040516331a9108f60e11b8152600481018290525f906001600160a01b03841690636352211e90602401602060405180830381865afa158015612b06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2a9190614352565b90506001600160a01b0381163314801590612b4e57506001600160a01b0381163014155b15612abc576040516282b42960e81b815260040160405180910390fd5b5f806001600160801b03861615612c59576040805160a0810182528881526001600160801b038089166020830190815282840188815260608401888152608085018b81529551630624e65f60e11b8152945160048601529151909216602484015290516044830152516064820152905160848201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630c49ccbe9060a40160408051808303815f875af1158015612c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c539190614de7565b90925090505b9550959350505050565b5f6001600160801b03821115612ccb5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610833565b5090565b6040516370a0823160e01b81523060048201525f90819081906001600160a01b038816906370a0823190602401602060405180830381865afa158015612d17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d3b9190614948565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038816906370a0823190602401602060405180830381865afa158015612d82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612da69190614948565b604080516080810182528b815230602082019081526001600160801b038a81168385019081528a821660608501908152945163fc6f786560e01b81529351600485015291516001600160a01b039081166024850152915181166044840152925190921660648201529192507f0000000000000000000000000000000000000000000000000000000000000000169063fc6f78659060840160408051808303815f875af1158015612e58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e7c9190614de7565b6040516370a0823160e01b815230600482015291955093505f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612ec5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ee99190614948565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612f30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f549190614948565b905085612f61858461450f565b14612f7f57604051638ad721cb60e01b815260040160405180910390fd5b84612f8a848361450f565b14612fa857604051638ad721cb60e01b815260040160405180910390fd5b505050509550959350505050565b5f612feb7f0000000000000000000000000000000000000000000000000000000000000000612fe68686866138f0565b61395a565b949350505050565b6040516001600160a01b038316602482015260448101829052612abc90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a40565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80808080803415613255577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561310a575f80fd5b505af115801561311c573d5f803e3d5ffd5b50505050508b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603613183573492508883111561317e576040516307e205e160e41b815260040160405180910390fd5b613255565b8a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036131e0573491508782111561317e576040516307e205e160e41b815260040160405180910390fd5b896001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03160361323c5750348681111561317e576040516307e205e160e41b815260040160405180910390fd5b6040516392b0337360e01b815260040160405180910390fd5b8289111561326a57613267838a61450f565b95505b8188111561327f5761327c828961450f565b94505b808711801561329657506001600160a01b038a1615155b80156132b45750896001600160a01b03168c6001600160a01b031614155b80156132d25750896001600160a01b03168b6001600160a01b031614155b156132e4576132e1818861450f565b93505b50505096509650969350505050565b6040516001600160a01b038085166024830152831660448201526064810182905261253b9085906323b872dd60e01b9060840161301f565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015613378573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339c9190614948565b905061253b8463095ea7b360e01b856133b58686614528565b6040516001600160a01b039092166024830152604482015260640161301f565b80158061344d5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613427573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061344b9190614948565b155b6134b85760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610833565b6040516001600160a01b038316602482015260448101829052612abc90849063095ea7b360e01b9060640161301f565b5f80835f01516001600160a01b03168461014001516001600160a01b0316036135bd57836101c001518460a00151101561353557604051634ff64a9f60e01b815260040160405180910390fd5b5f8061358e6040518060a00160405280885f01516001600160a01b0316815260200188602001516001600160a01b03168152602001886101c001518152602001886101e001518152602001886102000151815250611f32565b91509150818660a001516135a2919061450f565b9350808660c001516135b49190614528565b925050506137e7565b83602001516001600160a01b03168461014001516001600160a01b031603613691578361016001518460c00151101561360957604051634ff64a9f60e01b815260040160405180910390fd5b5f806136626040518060a0016040528088602001516001600160a01b03168152602001885f01516001600160a01b0316815260200188610160015181526020018861018001518152602001886101a00151815250611f32565b91509150818660c00151613676919061450f565b9250808660a001516136889190614528565b935050506137e7565b6101408401516001600160a01b0316156137da575f806136ff6040518060a001604052808861014001516001600160a01b03168152602001885f01516001600160a01b0316815260200188610160015181526020018861018001518152602001886101a00151815250611f32565b915091505f8061375e6040518060a001604052808a61014001516001600160a01b031681526020018a602001516001600160a01b031681526020018a6101c0015181526020018a6101e0015181526020018a6102000151815250611f32565b91509150828860a001516137729190614528565b9550808860c001516137849190614528565b94505f82858a6101c001518b610160015161379f9190614528565b6137a9919061450f565b6137b3919061450f565b905080156137d0576137d08960e001518a6101400151838b612402565b50505050506137e7565b505060a082015160c08301515b811561384757835161381a907f00000000000000000000000000000000000000000000000000000000000000005f6133d5565b8351613847907f00000000000000000000000000000000000000000000000000000000000000008461332b565b80156138ab5761387c84602001517f00000000000000000000000000000000000000000000000000000000000000005f6133d5565b6138ab84602001517f00000000000000000000000000000000000000000000000000000000000000008361332b565b9250929050565b5f6138bd848761450f565b90505f6138ca848761450f565b905081156138de576138de8a8a8486612402565b8015611ecd57611ecd8a898386612402565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b0316111561392a579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b03161061397f575f80fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e260d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f613a94826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613b139092919063ffffffff16565b905080515f1480613ab4575080806020019051810190613ab49190614e09565b612abc5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610833565b6060612feb84845f85855f80866001600160a01b03168587604051613b389190614c99565b5f6040518083038185875af1925050503d805f8114613b72576040519150601f19603f3d011682016040523d82523d5f602084013e613b77565b606091505b5091509150613b8887838387613b93565b979650505050505050565b60608315613c015782515f03613bfa576001600160a01b0385163b613bfa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610833565b5081612feb565b612feb8383815115613c165781518083602001fd5b8060405162461bcd60e51b81526004016108339190614e24565b6001600160a01b0381168114610845575f80fd5b8035613c4f81613c30565b919050565b5f8083601f840112613c64575f80fd5b5081356001600160401b03811115613c7a575f80fd5b6020830191508360208285010111156138ab575f80fd5b5f805f805f60808688031215613ca5575f80fd5b8535613cb081613c30565b94506020860135613cc081613c30565b93506040860135925060608601356001600160401b03811115613ce1575f80fd5b613ced88828901613c54565b969995985093965092949392505050565b634e487b7160e01b5f52604160045260245ffd5b60405161030081016001600160401b0381118282101715613d3557613d35613cfe565b60405290565b604051606081016001600160401b0381118282101715613d3557613d35613cfe565b604080519081016001600160401b0381118282101715613d3557613d35613cfe565b6040516102a081016001600160401b0381118282101715613d3557613d35613cfe565b6040516101e081016001600160401b0381118282101715613d3557613d35613cfe565b604051601f8201601f191681016001600160401b0381118282101715613ded57613ded613cfe565b604052919050565b803560038110613c4f575f80fd5b5f6001600160401b03821115613e1b57613e1b613cfe565b50601f01601f191660200190565b5f82601f830112613e38575f80fd5b8135613e4b613e4682613e03565b613dc5565b818152846020838601011115613e5f575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160801b0381168114610845575f80fd5b8035613c4f81613e7b565b62ffffff81168114610845575f80fd5b8035613c4f81613e9a565b8060020b8114610845575f80fd5b8035613c4f81613eb5565b8015158114610845575f80fd5b8035613c4f81613ece565b5f6103008284031215613ef7575f80fd5b613eff613d12565b9050613f0a82613df5565b8152613f1860208301613c44565b602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c08201356001600160401b0380821115613f5e575f80fd5b613f6a85838601613e29565b60c084015260e08481013590840152610100808501359084015261012091508184013581811115613f99575f80fd5b613fa586828701613e29565b83850152506101409150613fba828501613e8f565b828401526101609150613fce828501613e8f565b828401526101809150613fe2828501613eaa565b828401526101a09150613ff6828501613ec3565b828401526101c0915061400a828501613ec3565b828401526101e0915061401e828501613e8f565b9183019190915261020083810135908301526102208084013590830152610240808401359083015261026090614055828501613c44565b828401526102809150614069828501613c44565b828401526102a0915061407d828501613edb565b828401526102c091508184013581811115614096575f80fd5b6140a286828701613e29565b83850152506102e0915081840135818111156140bc575f80fd5b6140c886828701613e29565b8385015250505092915050565b5f805f805f60a086880312156140e9575f80fd5b8535945060208601356001600160401b03811115614105575f80fd5b61411188828901613ee6565b945050604086013560ff81168114614127575f80fd5b94979396509394606081013594506080013592915050565b5f6020828403121561414f575f80fd5b813561415a81613c30565b9392505050565b5f60208284031215614171575f80fd5b81356001600160401b03811115614186575f80fd5b8201610100818503121561415a575f80fd5b5f602082840312156141a8575f80fd5b81356001600160401b038111156141bd575f80fd5b82016102a0818503121561415a575f80fd5b5f602082840312156141df575f80fd5b81356001600160401b038111156141f4575f80fd5b82016101e0818503121561415a575f80fd5b5f8060408385031215614217575f80fd5b8235915060208301356001600160401b03811115614233575f80fd5b61423f85828601613ee6565b9150509250929050565b5f805f806060858703121561425c575f80fd5b843593506020850135925060408501356001600160401b0381111561427f575f80fd5b61428b87828801613c54565b95989497509550505050565b5f602082840312156142a7575f80fd5b81356001600160401b038111156142bc575f80fd5b612feb84828501613ee6565b5f5b838110156142e25781810151838201526020016142ca565b50505f910152565b5f81518084526143018160208601602086016142c8565b601f01601f19169290920160200192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610745908301846142ea565b8051613c4f81613c30565b5f60208284031215614362575f80fd5b815161415a81613c30565b5f808335601e19843603018112614382575f80fd5b8301803591506001600160401b0382111561439b575f80fd5b6020019150368190038213156138ab575f80fd5b5f6001600160401b038211156143c7576143c7613cfe565b5060051b60200190565b5f8060408084860312156143e3575f80fd5b83356001600160401b03808211156143f9575f80fd5b908501906060828803121561440c575f80fd5b614414613d3b565b823582811115614422575f80fd5b8301601f81018913614432575f80fd5b80356020614442613e46836143af565b82815260069290921b8301810191818101908c841115614460575f80fd5b938201935b838510156144a75788858e03121561447b575f80fd5b614483613d5d565b853561448e81613c30565b8152858401358482015282529388019390820190614465565b85525085810135818501526040808701359085015292975050508601359250808311156144d2575f80fd5b505061423f85828601613e29565b5f602082840312156144f0575f80fd5b813561415a81613ece565b634e487b7160e01b5f52601160045260245ffd5b81810381811115614522576145226144fb565b92915050565b80820180821115614522576145226144fb565b5f6102a0823603121561454c575f80fd5b614554613d7f565b61455d83613c44565b815261456b60208401613c44565b602082015261457c60408401613eaa565b604082015261458d60608401613ec3565b606082015261459e60808401613ec3565b608082015260a083013560a082015260c083013560c08201526145c360e08401613c44565b60e08201526101006145d6818501613c44565b9082015261012083810135908201526101406145f3818501613c44565b90820152610160838101359082015261018080840135908201526101a0808401356001600160401b0380821115614628575f80fd5b61463436838801613e29565b92840192909252506101c084810135908301526101e0808501359083015261020090818501359080821115614667575f80fd5b61467336838801613e29565b928401929092525061022084810135908301526102408085013590830152610260908185013590808211156146a6575f80fd5b6146b236838801613e29565b838501526102809250828601359150808211156146cd575f80fd5b506146da36828701613e29565b918301919091525092915050565b8051613c4f81613e9a565b8051613c4f81613eb5565b8051613c4f81613e7b565b5f805f805f805f805f805f806101808d8f031215614725575f80fd5b8c516bffffffffffffffffffffffff81168114614740575f80fd5b9b5061474e60208e01614347565b9a5061475c60408e01614347565b995061476a60608e01614347565b985061477860808e016146e8565b975061478660a08e016146f3565b965061479460c08e016146f3565b95506147a260e08e016146fe565b94506101008d015193506101208d015192506147c16101408e016146fe565b91506147d06101608e016146fe565b90509295989b509295989b509295989b565b5f6101e082360312156147f3575f80fd5b6147fb613da2565b82358152602083013560208201526040830135604082015261481f60608401613c44565b60608201526080830135608082015261483a60a08401613c44565b60a082015260c083013560c082015260e083013560e0820152610100808401356001600160401b038082111561486e575f80fd5b61487a36838801613e29565b928401929092525061012084810135908301526101408085013590830152610160908185013590808211156148ad575f80fd5b6148b936838801613e29565b928401929092525061018084810135908301526101a080850135908301526101c0908185013590808211156146cd575f80fd5b634e487b7160e01b5f52602160045260245ffd5b5f805f60608486031215614912575f80fd5b833561491d81613c30565b9250602084013561492d81613c30565b9150604084013561493d81613e9a565b809150509250925092565b5f60208284031215614958575f80fd5b5051919050565b5f60018201614970576149706144fb565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b838110156149d7576149c487835180516001600160a01b03168252602090810151910152565b604096909601959082019060010161499e565b509495945050505050565b608081525f60e0820186516060608085015281815180845261010086019150602093506020830192505f5b81811015614a4657614a3383855180516001600160a01b03168252602090810151910152565b9284019260409290920191600101614a0d565b5050602089015160a0860152604089015160c08601528481036020860152614a6e818961498b565b92505050614a8760408401866001600160a01b03169052565b8281036060840152613b8881856142ea565b5f82601f830112614aa8575f80fd5b8151614ab6613e4682613e03565b818152846020838601011115614aca575f80fd5b612feb8260208301602087016142c8565b5f8060408385031215614aec575f80fd5b8251614af781613c30565b60208401519092506001600160401b03811115614b12575f80fd5b61423f85828601614a99565b5f6020808385031215614b2f575f80fd5b82516001600160401b0380821115614b45575f80fd5b9084019060608287031215614b58575f80fd5b614b60613d3b565b825182811115614b6e575f80fd5b614b7a88828601614a99565b8252508383015182811115614b8d575f80fd5b8301601f81018813614b9d575f80fd5b8051614bab613e46826143af565b81815260059190911b8201860190868101908a831115614bc9575f80fd5b8784015b83811015614bff57805187811115614be3575f80fd5b614bf18d8b83890101614a99565b845250918801918801614bcd565b50808886015250505050604083015160408201528094505050505092915050565b606081525f614c3260608301866142ea565b6020838203818501528186518084528284019150828160051b8501018389015f5b83811015614c8157601f19878403018552614c6f8383516142ea565b94860194925090850190600101614c53565b50508095505050505050826040830152949350505050565b5f8251614caa8184602087016142c8565b9190910192915050565b81516001600160a01b0316815261016081016020830151614ce060208401826001600160a01b03169052565b506040830151614cf7604084018262ffffff169052565b506060830151614d0c606084018260020b9052565b506080830151614d21608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151614d67828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215614d8b575f80fd5b845193506020850151614d9d81613e7b565b6040860151606090960151949790965092505050565b5f805f60608486031215614dc5575f80fd5b8351614dd081613e7b565b602085015160409095015190969495509392505050565b5f8060408385031215614df8575f80fd5b505080516020909101519092909150565b5f60208284031215614e19575f80fd5b815161415a81613ece565b602081525f61415a60208301846142ea56fea26469706673582212209e1a1b9e1f6725e5a30febb1c56345bae2faff3bb18030267aea1dc7633975f064736f6c634300081800330000000000000000000000007b8a01b39d58278b5de7e48c8449c9f4f51706130000000000000000000000001906c1d672b88cd1b9ac7593301ca990f94eae070000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3