21 txs
79 calls
constructor
constructor(address swapper_, address allowanceTarget_, address owner_, address permit2)
functions
allowanceTarget
viewfunction allowanceTarget() view returns (address)
balanceOf
viewfunction balanceOf(address token) view returns (uint256)
INCREASE_PERMISSION
viewfunction INCREASE_PERMISSION() view returns (uint8)
isValidSignature
viewfunction isValidSignature(bytes32, bytes signature) view returns (bytes4)
NATIVE_TOKEN
viewfunction NATIVE_TOKEN() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
PERMIT2
viewfunction PERMIT2() view returns (address)
swapper
viewfunction swapper() view returns (address)
WITHDRAW_PERMISSION
viewfunction WITHDRAW_PERMISSION() view returns (uint8)
acceptOwnership
nonpayablefunction acceptOwnership()
batchPermitTakeFromCaller
payablefunction batchPermitTakeFromCaller(tuple[] tokens, uint256 nonce, uint256 deadline, bytes signature, address recipient) payable
claimDelayedWithdraw
payablefunction claimDelayedWithdraw(address manager, uint256 positionId, address token, address recipient) payable returns (uint256, uint256)
createPosition
payablefunction createPosition(address vault, uint96 strategyId, address depositToken, uint256 depositAmount, address owner_, tuple[] permissions, bytes strategyValidationData, bytes misc, bool maxApprove) payable returns (uint256 positionId, uint256 assetsDeposited)
increasePosition
payablefunction increasePosition(address vault, uint256 positionId, address depositToken, uint256 depositAmount, bool maxApprove) payable returns (uint256 assetsDeposited)
multicall
payablefunction multicall(bytes[] data) payable returns (bytes[] results)
permissionPermit
payablefunction permissionPermit(address vault, tuple[] permissions, uint256 deadline, bytes signature) payable
permitTakeFromCaller
payablefunction permitTakeFromCaller(address token, uint256 amount, uint256 nonce, uint256 deadline, bytes signature, address recipient) payable
renounceOwnership
nonpayablefunction renounceOwnership()
runSwap
payablefunction runSwap(address allowanceToken, uint256 value, bytes swapData) payable returns (bytes)
sendToRecipient
payablefunction sendToRecipient(address token, uint256 amount, address recipient) payable
setSwapper
nonpayablefunction setSwapper(address newSwapper, address newAllowanceTarget)
specialWithdraw
payablefunction specialWithdraw(address vault, uint256 positionId, uint256 withdrawalCode, uint256[] toWithdraw, bytes withdrawalData, address recipient) payable returns (address[] tokens, uint256[] balanceChanges, address[] actualWithdrawnTokens, uint256[] actualWithdrawnAmounts, bytes result)
takeFromCaller
payablefunction takeFromCaller(address token, uint256 amount, address recipient) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
payablefunction withdraw(address vault, uint256 positionId, address[] tokensToWithdraw, uint256[] intendedWithdraw, address recipient) payable returns (uint256[], uint8[])
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
SwapperChanged
event SwapperChanged(address newSwapper, address newAllowanceTarget)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
FailedCall
error FailedCall()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnauthorizedCaller
error UnauthorizedCaller()
creation bytecode
0x60a0346200012757601f620028e638819003918201601f19168301916001600160401b038311848410176200012b5780849260809460405283398101031262000127576200004d816200013f565b906200005c602082016200013f565b9160606200006d604084016200013f565b920151916001600160a01b03908184168403620001275781169384156200010f578160018060a01b03199384600154166001555f549680868916175f558260405198167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3168360025416176002551690600354161760035560805261279190816200015582396080518181816106c201528181610e8f01526110010152f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b0382168203620001275756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c80631626ba7e14611e1f5780631b0830f81461194957806328a98ebb1461192d5780632b3297f91461190657806331f7d964146118d757806337b0c09d1461181a5780633a79d674146117ed5780633de2fd231461151d578063483167921461121b5780635faf45bd146111ff57806362b850c714610eb35780636afdd85014610e6f57806370a0823114610e43578063715018a614610dc957806379ba509714610d195780638187285b14610acf5780638da5cb5b14610aa9578063910cab1114610a82578063ac9650d8146108e7578063b5475024146107fd578063d9a673ef14610670578063deb2e2a2146104ab578063e30c397814610484578063eebc89431461026d578063effca705146101c75763f2fde38b14610143575061000e565b346101c45760206003193601126101c45761015c611fa0565b6101646126a3565b6001600160a01b0380911690817fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b50346101c45760406003193601126101c4576101e1611fa0565b602435906001600160a01b0391828116809103610269577f93dc3ed47fdc75c78489533e98556d849ccc6405a8165dc0c4b132ce3b945f57926040926102256126a3565b1690807fffffffffffffffffffffffff000000000000000000000000000000000000000083816002541617600255600354161760035582519182526020820152a180f35b5f80fd5b5060806003193601126101c457600435906001600160a01b0391828116809103610480576024359061029d611fb6565b6064359185831680930361026957604051937f411557d10000000000000000000000000000000000000000000000000000000085526020948581600481865afa90811561043b578791610446575b506040517f823abfd90000000000000000000000000000000000000000000000000000000081526004810183905233602482015260016044820152908690829060649082908c165afa90811561043b57879161040e575b50156103e457856064926040958651998a9687957fb460af94000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401525af19081156103d95760409383926103a7575b508351928352820152f35b9092506103ca9150833d85116103d2575b6103c28183611f2b565b810190612140565b90915f61039c565b503d6103b8565b6040513d84823e3d90fd5b60046040517f5c427cd9000000000000000000000000000000000000000000000000000000008152fd5b61042e9150863d8811610434575b6104268183611f2b565b81019061233e565b5f610342565b503d61041c565b6040513d89823e3d90fd5b90508581813d8311610479575b61045d8183611f2b565b8101031261047557518781168103610475575f6102eb565b8680fd5b503d610453565b5080fd5b50346101c457806003193601126101c45760206001600160a01b0360015416604051908152f35b5060a06003193601126101c4576104c0611fa0565b906024356104cc611fb6565b92608435916064358315158403610269576001600160a01b0380931691604051967f823abfd90000000000000000000000000000000000000000000000000000000088528160048901523360248901525f60448901526020978881606481885afa908115610665578891610648575b50156103e45787948396610637575b8791169373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee85146105f9575b6064935060405196879586947ff41cc8e60000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af19182156105ed57916105c0575b50604051908152f35b90508181813d83116105e6575b6105d78183611f2b565b8101031261026957515f6105b7565b503d6105cd565b604051903d90823e3d90fd5b91927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91501461062f575b90606491859061056a565b479450610624565b6106438582841661255e565b61054a565b61065f9150893d8b11610434576104268183611f2b565b5f61053b565b6040513d8a823e3d90fd5b5060c06003193601126101c45780610686611fa0565b6024359060843567ffffffffffffffff81116107f8576106aa90369060040161203d565b9290916106b5611fe2565b926001600160a01b0394857f0000000000000000000000000000000000000000000000000000000000000000169286604051916106f183611ef3565b1681528460208201526040519061070782611f0f565b815260208101946044358652604082019760643589526040519761072a89611ef3565b1687526020870152833b156107f4576107d3610793938997936107ba89956040519b8c9a8b998a987f30f28b7a000000000000000000000000000000000000000000000000000000008a5260048a019051602080916001600160a01b0381511684520151910152565b51604488015251606487015280516001600160a01b031660848701526020015160a4860152565b3360c485015261010060e4850152610104840191612120565b03925af180156103d9576107e45750f35b6107ed90611edf565b6101c45780f35b8780fd5b505050fd5b5060606003193601126101c457610812611fa0565b6024359160443567ffffffffffffffff81116104805761083961085891369060040161203d565b936001600160a01b03809116806108d2575b5060025416933691611f6a565b83471061089a57908082610896956020610882969551920190855af161087c612674565b91612728565b6040519182916020835260208301906120fb565b0390f35b6044844790604051917fcf47918100000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b6108e19082600354169061255e565b5f61084b565b506020806003193601126104805767ffffffffffffffff600435818111610a7e57906109188492369060040161200c565b909161092382612356565b926109316040519485611f2b565b828452601f1961094084612356565b01855b818110610a6f575050845b8381106109d3575050505060405191838301848452825180915260408401948060408360051b870101940192955b8287106109895785850386f35b9091929382806109c3837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a6001960301865288516120fb565b960192019601959291909261097c565b8060059796971b8201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1833603018112156107f457820190813591848311610a6b578701918881360384136101c45780610a35600195610a4c943691611f6a565b8a81519101305af4610a45612674565b9030612728565b610a56828861247d565b52610a61818761247d565b500195949561094e565b8880fd5b60608682018901528701610943565b8380fd5b50346101c457806003193601126101c45760206001600160a01b0360035416604051908152f35b50346101c457806003193601126101c4576001600160a01b036020915416604051908152f35b5060806003193601126101c457610ae4611fa0565b67ffffffffffffffff9190602435838111610d1557610b0790369060040161200c565b93606435908111610a7e57610b2090369060040161203d565b906001600160a01b0384163b15610d11576040517f3ec15f550000000000000000000000000000000000000000000000000000000081526060600482015260648101879052956084600582901b88018101949187918901835b828410610bc55750505086808981818a81836001600160a01b0382610bb38f8f8f6044356024860152600319858403016044860152612120565b0393165af180156103d9576107e45750f35b90919293967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c8b8203018352610bfb88836121a9565b610c116040830191803584526020810190612156565b839192604060208396015252606081019060608460051b820101938d84815b838310610c53575050505050505060208060019299019301940192919390610b79565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa085899394959697989903018752610c8b88846121a9565b916060610cb460408301946001600160a01b03610ca782611ff8565b1684526020810190612156565b839195604060208396015252019291905b808210610ce657505050602080600192980196019201908f94939294610c30565b909192833560ff8116809103610d09578152602090810193019160010190610cc5565b505050508f80fd5b8480fd5b8280fd5b50346101c457806003193601126101c4576001546001600160a01b033381831603610d99577fffffffffffffffffffffffff00000000000000000000000000000000000000008092166001555f549133908316175f553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b50346101c457806003193601126101c457610de26126a3565b5f6001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000806001541660015582549081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101c45760206003193601126101c4576020610e67610e62611fa0565b6124be565b604051908152f35b50346101c457806003193601126101c45760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060a06003193601126101c45767ffffffffffffffff80600435116104805736602360043501121561048057806004356004013511610480573660246004356004013560061b6004350101116104805760643590811161048057610f1b90369060040161203d565b9091610f25611fcc565b90610f3560043560040135612356565b93610f436040519586611f2b565b600480350135808652601f1990610f5990612356565b01825b8181106111dc575050815b8551811015610ff35760043560040135811015610fc657600190604051610f8d81611ef3565b6001600160a01b038616815260448260061b6004350101356020820152610fb4828961247d565b52610fbf818861247d565b5001610f67565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b509150916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906040519261102f84611f0f565b61103e60043560040135612356565b61104b6040519182611f2b565b60048035908101358252602401602082015b60246004356004013560061b600435010182106111a4575050845260208401936024358552604081016044358152843b1561047557604051957fedd9444b0000000000000000000000000000000000000000000000000000000087526080600488015260e4870192519260606084890152835180915260206101048901940190895b818110611171575050505160a48701525160c486015260031985820301602486015260208088519283815201970190865b81811061113e57505050918385816107d3829982968498336044860152600319858403016064860152612120565b90919760206040826111666001948d51602080916001600160a01b0381511684520151910152565b019901929101611110565b90919460206040826111996001948a51602080916001600160a01b0381511684520151910152565b0196019291016110df565b6040823603126107f457602060409182516111be81611ef3565b6111c785611ff8565b8152828501358382015281520191019061105d565b6020906040516111eb81611ef3565b858152858382015282828a01015201610f5c565b50346101c457806003193601126101c457602060405160018152f35b5060a06003193601126101c457611230611fa0565b60249167ffffffffffffffff906044358281116104805761125590369060040161200c565b9390606435848111610a7e5761126f90369060040161200c565b61127a929192611fcc565b6040517f823abfd90000000000000000000000000000000000000000000000000000000081526024803560048301523390820152600160448201529093906020816064816001600160a01b038a165afa90811561043b5787916114fe575b50156103e457969290918594926040519889957f3c5343b7000000000000000000000000000000000000000000000000000000008752806084880160243560048a0152608060248a01525260a487019390885b8181106114c55750505085936001600160a01b036113598582958895600319878e9a03016044880152612440565b911660648301520393165af19182156114b85781938293611403575b505061138c604051936040855260408501906120a7565b83810360208501526020808451928381520193019180955b8287106113b15785850386f35b90919293845160028110156113d7576020828192600194520195019601959291906113a4565b82847f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b91925092503d8083833e6114178183611f2b565b810192604082850312610d15578151818111610a7e57846114399184016123df565b916020810151918211610a7e57019280601f85011215610d155783519061145f82612356565b9461146d6040519687611f2b565b82865260208087019360051b820101918211610d1157602001915b81831061149b5750505091905f80611375565b825160028110156114b457815260209283019201611488565b8580fd5b50604051903d90823e3d90fd5b9294829799506020919496985081906001600160a01b036114e7600195611ff8565b1681520196019101908a969492899896949261132b565b611517915060203d602011610434576104268183611f2b565b5f6112d8565b5060031960c08136011261048057611533611fa0565b91602435906064359267ffffffffffffffff93848111610d155761155b90369060040161200c565b93608435868111610d115761157490369060040161203d565b61157f969196611fe2565b6040517f823abfd9000000000000000000000000000000000000000000000000000000008152600481018590523360248201526001604482015260209a6001600160a01b039081169592918c816064818a5afa9081156117e2578a916117c5575b50156103e45761164b8998899561163c9c6040519d8e9b8c9a8b997f222142d0000000000000000000000000000000000000000000000000000000008b5260048b015260443560248b015260a060448b015260a48a0191612440565b92878403016064880152612120565b9116608483015203925af19384156114b8578193829083809581986116cb575b611694886108968b6116bd8b6116af8c6116a18d8d6040519a8b9a60a08c5260a08c019061206b565b918a8303908b01526120a7565b90878203604089015261206b565b9085820360608701526120a7565b9083820360808501526120fb565b9450955095505091503d8084833e6116e38183611f2b565b81019160a082840312610a7e578151858111610d11578361170591840161236e565b818301518681116114b4578461171c9185016123df565b946040840151878111610480578561173591860161236e565b966060850151818111610d15578661174e9187016123df565b946080810151918211610d15570185601f820112156104805780519161177383611f4e565b966117816040519889611f2b565b8388528584840101116101c45750936116a18487946117b36116af956116949c99846116bd9a6108969d0191016120da565b9896929499509450819593965061166b565b6117dc91508d803d10610434576104268183611f2b565b5f6115e0565b6040513d8c823e3d90fd5b5060606003193601126101c457611817611805611fa0565b61180d611fb6565b90602435906121db565b80f35b5060606003193601126101c4576004356001600160a01b038082168203610d1557611843611fb6565b90604051917f23b872dd00000000000000000000000000000000000000000000000000000000602084015233602484015216604482015260243560648201526064815260a081019181831067ffffffffffffffff8411176118aa57611817926040526126b6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b50346101c457806003193601126101c457602060405173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8152f35b50346101c457806003193601126101c45760206001600160a01b0360025416604051908152f35b50346101c457806003193601126101c457602090604051908152f35b506101206003193601126102695761195f611fa0565b90602435916bffffffffffffffffffffffff8316830361026957611981611fb6565b9261198a611fcc565b9067ffffffffffffffff9060a435828111610269576119ad90369060040161200c565b60c435848111610269576119c590369060040161203d565b91909460e435908111610269576119e090369060040161203d565b9490956101043515156101043503610269576040517f8f75315b00000000000000000000000000000000000000000000000000000000815260643594906020816004816001600160a01b038f165afa908115611d88575f91611ddc575b5060206001600160a01b03916024604051809481937fa785a2520000000000000000000000000000000000000000000000000000000083526bffffffffffffffffffffffff8a166004840152165afa8015611d88575f90611d93575b6001600160a01b0391501691823b1561026957611af6925f92836040518096819582947fbf9766fe000000000000000000000000000000000000000000000000000000008452336004850152604060248501526044840191612120565b03925af18015611d8857611d75575b5061010435611d54575b889673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038c1614611d16575b9180939a97969594916040519330602086015260208552611b5685611ef3565b6040519c8d9a7fc84a8b2d000000000000000000000000000000000000000000000000000000008c5260e48c01936bffffffffffffffffffffffff1660048d01526001600160a01b031660248c015260448b01526001600160a01b031660648a01526084890160e09052526101048701908360051b8801610104019381928b925b828410611c5f575050505050611c1e86946040989694611c0c858895600319876001600160a01b0399030160a48801526120fb565b916003198584030160c4860152612120565b0393165af180156114b8576040928291611c40575b5082519182526020820152f35b9050611c599150823d84116103d2576103c28183611f2b565b5f611c33565b9193969798997ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc90879294969703018352611c9a87836121a9565b906060611cb660408301936001600160a01b03610ca782611ff8565b60406020850152938490529101918d905b808210611ced57505050602080600192980193019401919290938c999897969594611bd7565b909192833560ff81168103611d125760ff168152602090810193019160010190611cc7565b8f80fd5b96507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60643514611d4c575b9195869290611b36565b479250611d42565b611d706001600160a01b0389166001600160a01b038c1661255e565b611b0f565b611d80919950611edf565b5f975f611b05565b6040513d5f823e3d90fd5b506020813d602011611dd4575b81611dad60209383611f2b565b8101031261026957516001600160a01b0381168103610269576001600160a01b0390611a99565b3d9150611da0565b90506020813d602011611e17575b81611df760209383611f2b565b8101031261026957516001600160a01b0381168103610269576020611a3d565b3d9150611dea565b346102695760406003193601126102695760243567ffffffffffffffff8111610269573660238201121561026957611e61903690602481600401359101611f6a565b60208180518101031261026957602001516001600160a01b038116809103610269573003611ed75760207f1626ba7e000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f611ead565b67ffffffffffffffff81116118aa57604052565b6040810190811067ffffffffffffffff8211176118aa57604052565b6060810190811067ffffffffffffffff8211176118aa57604052565b90601f601f19910116810190811067ffffffffffffffff8211176118aa57604052565b67ffffffffffffffff81116118aa57601f01601f191660200190565b929192611f7682611f4e565b91611f846040519384611f2b565b829481845281830111610269578281602093845f960137010152565b600435906001600160a01b038216820361026957565b604435906001600160a01b038216820361026957565b608435906001600160a01b038216820361026957565b60a435906001600160a01b038216820361026957565b35906001600160a01b038216820361026957565b9181601f840112156102695782359167ffffffffffffffff8311610269576020808501948460051b01011161026957565b9181601f840112156102695782359167ffffffffffffffff8311610269576020838186019501011161026957565b9081518082526020808093019301915f5b82811061208a575050505090565b83516001600160a01b03168552938101939281019260010161207c565b9081518082526020808093019301915f5b8281106120c6575050505090565b8351855293810193928101926001016120b8565b5f5b8381106120eb5750505f910152565b81810151838201526020016120dc565b90601f19601f602093612119815180928187528780880191016120da565b0116010190565b601f8260209493601f1993818652868601375f8582860101520116010190565b9190826040910312610269576020825192015190565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026957016020813591019167ffffffffffffffff8211610269578160051b3603831361026957565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc182360301811215610269570190565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831461232d575b8215612328576001600160a01b03809281831615612320575b1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81036122be5750824710612286575f809381938293165af1612254612674565b501561225c57565b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b6044834790604051917fcf47918100000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b929091604051927fa9059cbb000000000000000000000000000000000000000000000000000000006020850152166024830152604482015260448152608081019181831067ffffffffffffffff8411176118aa5761231e926040526126b6565b565b33925061221e565b505050565b9150612338816124be565b91612205565b90816020910312610269575180151581036102695790565b67ffffffffffffffff81116118aa5760051b60200190565b9080601f830112156102695781519060209161238981612356565b936123976040519586611f2b565b81855260208086019260051b82010192831161026957602001905b8282106123c0575050505090565b81516001600160a01b03811681036102695781529083019083016123b2565b9080601f83011215610269578151906020916123fa81612356565b936124086040519586611f2b565b81855260208086019260051b82010192831161026957602001905b828210612431575050505090565b81518152908301908301612423565b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116102695760209260051b809284830137010190565b80518210156124915760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81036124e757504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115611d88575f9161252f575090565b90506020813d602011612556575b8161254a60209383611f2b565b81010312610269575190565b3d915061253d565b60405190602082017f095ea7b300000000000000000000000000000000000000000000000000000000938482526001600160a01b03809116908160248601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604486015260448552608085019267ffffffffffffffff93868110858211176118aa576020915f9160405287519082885af1903d5f519083612653575b5050501561260b575b5050505050565b60405194602086015260248501525f6044850152604484526080840190848210908211176118aa576126499361264491604052826126b6565b6126b6565b5f80808080612604565b9192509061266a575083163b15155b5f80806125fb565b6001915014612662565b3d1561269e573d9061268582611f4e565b916126936040519384611f2b565b82523d5f602084013e565b606090565b6001600160a01b035f54163303610d9957565b905f602091828151910182855af115611d88575f513d61271f57506001600160a01b0381163b155b6126e55750565b6024906001600160a01b03604051917f5274afe7000000000000000000000000000000000000000000000000000000008352166004820152fd5b600114156126de565b9061273d575080511561225c57805190602001fd5b81511580612788575b61274e575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b1561274656000000000000000000000000ed306e38bb930ec9646ff3d917b2e513a97530b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00e1e311009e56e3b0b9ed6f86f5ce128a1c01000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3