0 txs
4 calls
constructor
No constructor.
functions
feeManager
viewfunction feeManager() view returns (address)
generateSalt
viewfunction generateSalt(address deployer, uint8 tokenType, bytes constructorArgs) view returns (bytes32 salt, address token)
limitOrder
viewfunction limitOrder() view returns (address)
owner
viewfunction owner() view returns (address)
positionInfo
viewfunction positionInfo(address) view returns (address creator, uint256 positionId)
positionManager
viewfunction positionManager() view returns (address)
predictTokenAddress
viewfunction predictTokenAddress(address deployer, uint8 tokenType, bytes32 salt, bytes constructorArgs) view returns (address result)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
swapRouter
viewfunction swapRouter() view returns (address)
tokens
viewfunction tokens(uint256) view returns (address)
uniswapV3Factory
viewfunction uniswapV3Factory() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
WETH
viewfunction WETH() view returns (address)
collect
nonpayablefunction collect(address[] _tokens) returns (uint256[2][] amounts)
createToken
nonpayablefunction createToken(tuple tokenParams, uint8 tokenType, int24 initialTick, bytes32 salt) returns (address token, uint256 positionId)
initialize
nonpayablefunction initialize(address positionManager_, address swapRouter_, address limitOrder_)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeManager
nonpayablefunction setFeeManager(address newFeeManager)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
GoatTokenCreated
event GoatTokenCreated(address token, address pool, address creator, uint256 positionId)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
Forbidden
error Forbidden()
InvalidInitialization
error InvalidInitialization()
InvalidInitialTick
error InvalidInitialTick()
InvalidTokenType
error InvalidTokenType()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
Salt
error Salt()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523060805234801561001457600080fd5b5060805161460a61003e600039600081816111b8015281816111e20152611337015261460a6000f3fe608060405260043610620001435760003560e01c8063791b98bc11620000b9578063c0c53b8b1162000078578063c0c53b8b1462000438578063c31c9c07146200045d578063d0fb0203146200047f578063f0360e25146200049f578063f2fde38b14620004c4578063fa9b537414620004e957600080fd5b8063791b98bc146200033f5780638da5cb5b1462000361578063a4520aee14620003a0578063ad3cb1cc14620003d4578063ad5c4648146200041657600080fd5b80634f1ef28611620001065780634f1ef28614620002895780634f64b2be14620002a057806352d1902d14620002de5780635b5491821462000305578063715018a6146200032757600080fd5b806303eaffcc1462000148578063150b7a02146200018f5780633cc963dc14620001d95780633f81d6ba146200023d578063472d35b91462000262575b600080fd5b3480156200015557600080fd5b506200016d6200016736600462001db3565b6200050b565b604080519283526001600160a01b039091166020830152015b60405180910390f35b3480156200019c57600080fd5b50620001bf620001ae36600462001e1d565b630a85bd0160e11b95945050505050565b6040516001600160e01b0319909116815260200162000186565b348015620001e657600080fd5b506200021d620001f836600462001e97565b600660205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520162000186565b3480156200024a57600080fd5b506200021d6200025c36600462001eb7565b62000571565b3480156200026f57600080fd5b50620002876200028136600462001e97565b62000714565b005b620002876200029a36600462002002565b62000740565b348015620002ad57600080fd5b50620002c5620002bf3660046200206c565b62000765565b6040516001600160a01b03909116815260200162000186565b348015620002eb57600080fd5b50620002f662000790565b60405190815260200162000186565b3480156200031257600080fd5b50600154620002c5906001600160a01b031681565b3480156200033457600080fd5b5062000287620007b0565b3480156200034c57600080fd5b50600254620002c5906001600160a01b031681565b3480156200036e57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002c5565b348015620003ad57600080fd5b50620003c5620003bf36600462002086565b620007c8565b60405162000186919062002138565b348015620003e157600080fd5b5062000407604051806040016040528060058152602001640352e302e360dc1b81525081565b604051620001869190620021cb565b3480156200042357600080fd5b50600054620002c5906001600160a01b031681565b3480156200044557600080fd5b50620002876200045736600462002200565b620009fb565b3480156200046a57600080fd5b50600354620002c5906001600160a01b031681565b3480156200048c57600080fd5b506004546001600160a01b0316620002c5565b348015620004ac57600080fd5b50620002c5620004be36600462002252565b62000b16565b348015620004d157600080fd5b5062000287620004e336600462001e97565b62000c1f565b348015620004f657600080fd5b50600754620002c5906001600160a01b031681565b60008060005b91508162000523878783888862000b16565b6000549092506001600160a01b039081169083161080156200054d57506001600160a01b0382163b155b6200056757806200055e816200229e565b91505062000511565b5094509492505050565b60008060038560048111156200058b576200058b620022ba565b036200063b576040805133602082015290810184905260600160408051601f198184030181529190528051602090910120620005c88780620022d0565b620005d760208a018a620022d0565b60005460075460408051908e0135926001600160a01b03908116921690620005ff9062001d04565b62000611979695949392919062002342565b8190604051809103906000f590508015801562000632573d6000803e3d6000fd5b50915062000654565b60405163a1e9dd9d60e01b815260040160405180910390fd5b6000546001600160a01b0380841691161015620006845760405163401356f160e01b815260040160405180910390fd5b60006200069d8584620006978a620023ba565b62000c67565b9092509050620006ba838288620006b48b620023ba565b62000f90565b604080516001600160a01b0385811682528316602082015233818301526060810184905290517fc39c1ae054d6fc88ccac7ac78658f209ba90176e9838a380a4ce41c3f43d66659181900360800190a15094509492505050565b6200071e6200114f565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6200074a620011ad565b620007558262001256565b62000761828262001260565b5050565b600581815481106200077657600080fd5b6000918252602090912001546001600160a01b0316905081565b60006200079c6200132c565b50600080516020620045b583398151915290565b620007ba6200114f565b620007c6600062001376565b565b6004546060906001600160a01b03163314620007f757604051631dd2188d60e31b815260040160405180910390fd5b8151806001600160401b0381111562000814576200081462001f30565b6040519080825280602002602001820160405280156200085157816020015b6200083d62001d12565b815260200190600190039081620008335790505b506040805160808101825260008082526004546001600160a01b031660208301526001600160801b0392820183905260608201929092529193505b82811015620009f35760066000868381518110620008ae57620008ae62002489565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020600101548552600254825163fc6f786560e01b8152865160048201529186015184166024830152918501516001600160801b039081166044830152606086015116606482015291169063fc6f78659060840160408051808303816000875af115801562000947573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200096d91906200249f565b85838151811062000982576200098262002489565b60200260200101516000600281106200099f576200099f62002489565b60200201868481518110620009b857620009b862002489565b6020026020010151600160028110620009d557620009d562002489565b60200201919091525280620009ea816200229e565b9150506200088c565b505050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801562000a415750825b90506000826001600160401b0316600114801562000a5e5750303b155b90508115801562000a6d575080155b1562000a8c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000ab757845460ff60401b1916600160401b1785555b62000ac4888888620013e7565b831562000b0c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b5050505050505050565b604080516001600160a01b0387166020808301919091528183018690528251808303840181526060909201909252805191012060009081600387600481111562000b645762000b64620022ba565b036200063b5760405162000b7b6020820162001d04565b601f1982820381018352601f90910116604081905262000ba3919087908790602001620024c4565b6040516020818303038152906040528051906020012090506040516001600160f81b031960208201526bffffffffffffffffffffffff193060601b166021820152603581018390526055810182905262000c13906075016040516020818303038152906040528051906020012090565b98975050505050505050565b62000c296200114f565b6001600160a01b03811662000c5957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000c648162001376565b50565b600080600062000c7a8660020b62001632565b60015460005460405163a167129560e01b81526001600160a01b03898116600483015291821660248201526127106044820152929350169063a1671295906064016020604051808303816000875af115801562000cdb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d019190620024ee565b60405163f637731d60e01b81526001600160a01b0383811660048301529193509083169063f637731d90602401600060405180830381600087803b15801562000d4957600080fd5b505af115801562000d5e573d6000803e3d6000fd5b505060408051610160810182526001600160a01b03808a1682526000805490911660208301526127108284015260028b900b6060830152620d89a060808301529188015160a082015260c0810182905260e081018290526101008101829052306101208201529092509050610140810162000ddb42600a6200250e565b9052600254604087810151905163095ea7b360e01b81526001600160a01b039283166004820152602481019190915291925087169063095ea7b3906044016020604051808303816000875af115801562000e39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e5f919062002524565b50600254604051634418b22b60e11b81526001600160a01b039091169063883164569062000e9290849060040162002548565b6080604051808303816000875af115801562000eb2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ed8919062002611565b50506040805180820182526001600160a01b038a811680835260208084018781526000838152600690925290859020935184546001600160a01b031916908416178455516001909301929092556004805493516344182dfb60e01b8152908101929092523360248301529397509216916344182dfb9150604401600060405180830381600087803b15801562000f6d57600080fd5b505af115801562000f82573d6000803e3d6000fd5b505050505050935093915050565b83600183600481111562000fa85762000fa8620022ba565b14620011485760405163221b8a9560e11b81526001600160a01b038581166004830152821690634437152a90602401600060405180830381600087803b15801562000ff257600080fd5b505af115801562001007573d6000803e3d6000fd5b50505050608082015160a083015160405163367248b360e11b81526001600160a01b0387811660048301526024820193909352604481019190915290821690636ce4916690606401600060405180830381600087803b1580156200106a57600080fd5b505af11580156200107f573d6000803e3d6000fd5b5050600354604051631a74b6a760e21b81526001600160a01b03918216600482015290841692506369d2da9c9150602401600060405180830381600087803b158015620010cb57600080fd5b505af1158015620010e0573d6000803e3d6000fd5b5050505060e082015160405163f2fde38b60e01b81526001600160a01b0391821660048201529082169063f2fde38b90602401600060405180830381600087803b1580156200112e57600080fd5b505af115801562001143573d6000803e3d6000fd5b505050505b5050505050565b33620011827f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614620007c65760405163118cdaa760e01b815233600482015260240162000c50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806200123757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200122b600080516020620045b5833981519152546001600160a01b031690565b6001600160a01b031614155b15620007c65760405163703e46dd60e11b815260040160405180910390fd5b62000c646200114f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620012bd575060408051601f3d908101601f19168201909252620012ba918101906200265d565b60015b620012e757604051634c9c8ce360e01b81526001600160a01b038316600482015260240162000c50565b600080516020620045b583398151915281146200131b57604051632a87526960e21b81526004810182905260240162000c50565b62001327838362001a9e565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620007c65760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156200142d5750825b90506000826001600160401b031660011480156200144a5750303b155b90508115801562001459575080155b15620014785760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620014a357845460ff60401b1916600160401b1785555b620014ae3362001afb565b620014b862001b10565b876001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620014f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200151d9190620024ee565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550876001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001581573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015a79190620024ee565b600180546001600160a01b03199081166001600160a01b03938416179091556002805482168b84161790556003805482168a841617905560078054909116918816919091179055831562000b0c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000b03565b60008060008360020b126200164b578260020b6200165a565b8260020b6200165a9062002677565b90506200166b620d89e71962002696565b60020b811115620016a35760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000c50565b600081600116600003620016bc57600160801b620016ce565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615620017105760806200170b826ffff97272373d413259a46990580e213a620026bb565b901c90505b60048216156200173d57608062001738826ffff2e50f5f656932ef12357cf3c7fdcc620026bb565b901c90505b60088216156200176a57608062001765826fffe5caca7e10e4e61c3624eaa0941cd0620026bb565b901c90505b60108216156200179757608062001792826fffcb9843d60f6159c9db58835c926644620026bb565b901c90505b6020821615620017c4576080620017bf826fff973b41fa98c081472e6896dfb254c0620026bb565b901c90505b6040821615620017f1576080620017ec826fff2ea16466c96a3843ec78b326b52861620026bb565b901c90505b60808216156200181e57608062001819826ffe5dee046a99a2a811c461f1969c3053620026bb565b901c90505b6101008216156200184c57608062001847826ffcbe86c7900a88aedcffc83b479aa3a4620026bb565b901c90505b6102008216156200187a57608062001875826ff987a7253ac413176f2b074cf7815e54620026bb565b901c90505b610400821615620018a8576080620018a3826ff3392b0822b70005940c7a398e4b70f3620026bb565b901c90505b610800821615620018d6576080620018d1826fe7159475a2c29b7443b29c7fa6e889d9620026bb565b901c90505b61100082161562001904576080620018ff826fd097f3bdfd2022b8845ad8f792aa5825620026bb565b901c90505b612000821615620019325760806200192d826fa9f746462d870fdf8a65dc1f90e061e5620026bb565b901c90505b614000821615620019605760806200195b826f70d869a156d2a1b890bb3df62baf32f7620026bb565b901c90505b6180008216156200198e57608062001989826f31be135f97d08fd981231505542fcfa6620026bb565b901c90505b62010000821615620019bd576080620019b8826f09aa508b5b7a84e1c677de54f3e99bc9620026bb565b901c90505b62020000821615620019eb576080620019e6826e5d6af8dedb81196699c329225ee604620026bb565b901c90505b6204000082161562001a1857608062001a13826d2216e584f5fa1ea926041bedfe98620026bb565b901c90505b6208000082161562001a4357608062001a3e826b048a170391f7dc42444e8fa2620026bb565b901c90505b60008460020b131562001a615762001a5e81600019620026eb565b90505b62001a726401000000008262002702565b1562001a8057600162001a83565b60005b62001a969060ff16602083901c6200250e565b949350505050565b62001aa98262001b1a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511562001af15762001327828262001b82565b6200076162001c00565b62001b0562001c20565b62000c648162001c6a565b620007c662001c20565b806001600160a01b03163b60000362001b5257604051634c9c8ce360e01b81526001600160a01b038216600482015260240162000c50565b600080516020620045b583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405162001ba1919062002719565b600060405180830381855af49150503d806000811462001bde576040519150601f19603f3d011682016040523d82523d6000602084013e62001be3565b606091505b509150915062001bf585838362001c74565b925050505b92915050565b3415620007c65760405163b398979f60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16620007c657604051631afcd79f60e31b815260040160405180910390fd5b62000c2962001c20565b60608262001c8d5762001c878262001cda565b62001cd3565b815115801562001ca557506001600160a01b0384163b155b1562001cd057604051639996b31560e01b81526001600160a01b038516600482015260240162000c50565b50805b9392505050565b80511562001ceb5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b611e7d806200273883390190565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462000c6457600080fd5b803562001d538162001d30565b919050565b80356005811062001d5357600080fd5b60008083601f84011262001d7b57600080fd5b5081356001600160401b0381111562001d9357600080fd5b60208301915083602082850101111562001dac57600080fd5b9250929050565b6000806000806060858703121562001dca57600080fd5b843562001dd78162001d30565b935062001de76020860162001d58565b925060408501356001600160401b0381111562001e0357600080fd5b62001e118782880162001d68565b95989497509550505050565b60008060008060006080868803121562001e3657600080fd5b853562001e438162001d30565b9450602086013562001e558162001d30565b93506040860135925060608601356001600160401b0381111562001e7857600080fd5b62001e868882890162001d68565b969995985093965092949392505050565b60006020828403121562001eaa57600080fd5b813562001cd38162001d30565b6000806000806080858703121562001ece57600080fd5b84356001600160401b0381111562001ee557600080fd5b8501610120818803121562001ef957600080fd5b935062001f096020860162001d58565b925060408501358060020b811462001f2057600080fd5b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562001f6c5762001f6c62001f30565b60405290565b604051601f8201601f191681016001600160401b038111828210171562001f9d5762001f9d62001f30565b604052919050565b60006001600160401b0383111562001fc15762001fc162001f30565b62001fd6601f8401601f191660200162001f72565b905082815283838301111562001feb57600080fd5b828260208301376000602084830101529392505050565b600080604083850312156200201657600080fd5b8235620020238162001d30565b915060208301356001600160401b038111156200203f57600080fd5b8301601f810185136200205157600080fd5b620020628582356020840162001fa5565b9150509250929050565b6000602082840312156200207f57600080fd5b5035919050565b600060208083850312156200209a57600080fd5b82356001600160401b0380821115620020b257600080fd5b818501915085601f830112620020c757600080fd5b813581811115620020dc57620020dc62001f30565b8060051b9150620020ef84830162001f72565b81815291830184019184810190888411156200210a57600080fd5b938501935b8385101562000c135784359250620021278362001d30565b82825293850193908501906200210f565b60208082528251828201819052600091906040908185019086840185805b838110156200219757825185835b6002811015620021835782518252918901919089019060010162002164565b505050938501939186019160010162002156565b509298975050505050505050565b60005b83811015620021c2578181015183820152602001620021a8565b50506000910152565b6020815260008251806020840152620021ec816040850160208701620021a5565b601f01601f19169190910160400192915050565b6000806000606084860312156200221657600080fd5b8335620022238162001d30565b92506020840135620022358162001d30565b91506040840135620022478162001d30565b809150509250925092565b6000806000806000608086880312156200226b57600080fd5b8535620022788162001d30565b945062001e556020870162001d58565b634e487b7160e01b600052601160045260246000fd5b600060018201620022b357620022b362002288565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6000808335601e19843603018112620022e857600080fd5b8301803591506001600160401b038211156200230357600080fd5b60200191503681900382131562001dac57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006200235860a08301898b62002319565b82810360208401526200236d81888a62002319565b604084019690965250506001600160a01b0392831660608201529116608090910152949350505050565b600082601f830112620023a957600080fd5b62001cd38383356020850162001fa5565b60006101208236031215620023ce57600080fd5b620023d862001f46565b82356001600160401b0380821115620023f057600080fd5b620023fe3683870162002397565b835260208501359150808211156200241557600080fd5b50620024243682860162002397565b60208301525060408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201526200246a60e0840162001d46565b60e08201526101006200247f81850162001d46565b9082015292915050565b634e487b7160e01b600052603260045260246000fd5b60008060408385031215620024b357600080fd5b505080516020909101519092909150565b60008451620024d8818460208901620021a5565b8201838582376000930192835250909392505050565b6000602082840312156200250157600080fd5b815162001cd38162001d30565b8082018082111562001bfa5762001bfa62002288565b6000602082840312156200253757600080fd5b8151801515811462001cd357600080fd5b81516001600160a01b03168152610160810160208301516200257560208401826001600160a01b03169052565b5060408301516200258d604084018262ffffff169052565b506060830151620025a3606084018260020b9052565b506080830151620025b9608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015162002600828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156200262857600080fd5b8451935060208501516001600160801b03811681146200264757600080fd5b6040860151606090960151949790965092505050565b6000602082840312156200267057600080fd5b5051919050565b6000600160ff1b82016200268f576200268f62002288565b5060000390565b60008160020b627fffff198103620026b257620026b262002288565b60000392915050565b808202811582820484141762001bfa5762001bfa62002288565b634e487b7160e01b600052601260045260246000fd5b600082620026fd57620026fd620026d5565b500490565b600082620027145762002714620026d5565b500690565b600082516200272d818460208701620021a5565b919091019291505056fe60a06040523480156200001157600080fd5b5060405162001e7d38038062001e7d833981016040819052620000349162000763565b848484848433858560036200004a83826200088a565b5060046200005982826200088a565b5050506001600160a01b0381166200008c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200009781620000f7565b506001600160a01b038216608052620000b1338462000149565b6008805462ffffff60a01b191661027160a41b179055600680546001600160a01b0319166001600160a01b039290921691909117905550620009d5975050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001755760405163ec442f0560e01b81526000600482015260240162000083565b620001836000838362000187565b5050565b620001938383620001b2565b620001a0838383620002f0565b620001ad83838362000394565b505050565b6001600160a01b03821615801590620001d457506001600160a01b0382163014155b8015620001fa57506001600160a01b0382166000908152600b602052604090205460ff16155b156200023b576200020b82620004fc565b6001600160a01b03831660009081526020819052604081208054909190620002359084906200096c565b90915550505b6001600160a01b038116158015906200025d57506001600160a01b0381163014155b80156200028357506001600160a01b0381166000908152600b602052604090205460ff16155b15620002c4576200029481620004fc565b6001600160a01b03821660009081526020819052604081208054909190620002be9084906200096c565b90915550505b600c546001600160a01b039182166000908152600d602052604080822083905593909216825291902055565b6001600160a01b0382163014806200032057506001600160a01b0382166000908152600b602052604090205460ff165b15620003405780600e60008282546200033a91906200096c565b90915550505b6001600160a01b0383163014806200037057506001600160a01b0383166000908152600b602052604090205460ff165b15620001ad5780600e60008282546200038a919062000982565b9091555050505050565b6000620003a384848462000555565b90508015620003be57620003b88482620005fe565b620003c8565b3060009081526020525b6000620003d6828462000982565b90506001600160a01b03851662000407578260026000828254620003fb91906200096c565b909155506200047b9050565b6001600160a01b038516600090815260208190526040902054838110156200045c5760405163391434e360e21b81526001600160a01b0387166004820152602481018290526044810185905260640162000083565b6001600160a01b03861660009081526020819052604090209084900390555b6001600160a01b0384166200049957600280548290039055620004b8565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b031660008051602062001e5d83398151915283604051620004ed91815260200190565b60405180910390a35050505050565b6001600160a01b03811660009081526020818152604080832054600d909252822054600c54670de0b6b3a76400009291620005379162000982565b62000543919062000998565b6200054f9190620009b2565b92915050565b6006546000906001600160a01b03908116908516036200057857506000620005f7565b6001600160a01b038085166000908152600960209081526040808320549387168352600a909152902054612710620005b1838662000998565b620005bd9190620009b2565b620005c990846200096c565b9250612710620005da828662000998565b620005e69190620009b2565b620005f290846200096c565b925050505b9392505050565b600e5460025462000610919062000982565b6200062482670de0b6b3a764000062000998565b620006309190620009b2565b600c60008282546200064391906200096c565b90915550506040518181526254a2ed60881b906001600160a01b0384169060008051602062001e5d8339815191529060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620006a957600080fd5b81516001600160401b0380821115620006c657620006c662000681565b604051601f8301601f19908116603f01168101908282118183101715620006f157620006f162000681565b816040528381526020925086838588010111156200070e57600080fd5b600091505b8382101562000732578582018301518183018401529082019062000713565b600093810190920192909252949350505050565b80516001600160a01b03811681146200075e57600080fd5b919050565b600080600080600060a086880312156200077c57600080fd5b85516001600160401b03808211156200079457600080fd5b620007a289838a0162000697565b96506020880151915080821115620007b957600080fd5b50620007c88882890162000697565b94505060408601519250620007e06060870162000746565b9150620007f06080870162000746565b90509295509295909350565b600181811c908216806200081157607f821691505b6020821081036200083257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ad57600081815260208120601f850160051c81016020861015620008615750805b601f850160051c820191505b8181101562000882578281556001016200086d565b505050505050565b81516001600160401b03811115620008a657620008a662000681565b620008be81620008b78454620007fc565b8462000838565b602080601f831160018114620008f65760008415620008dd5750858301515b600019600386901b1c1916600185901b17855562000882565b600085815260208120601f198616915b82811015620009275788860151825594840194600190910190840162000906565b5085821015620009465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156200054f576200054f62000956565b818103818111156200054f576200054f62000956565b80820281158282048414176200054f576200054f62000956565b600082620009d057634e487b7160e01b600052601260045260246000fd5b500490565b60805161146f620009ee6000396000505061146f6000f3fe6080604052600436106101855760003560e01c8063715018a6116100d15780639b7bf8101161008a578063dd62ed3e11610064578063dd62ed3e146104d8578063df136d651461051e578063f2fde38b14610534578063fbb9ee0d1461055457600080fd5b80639b7bf81014610430578063a9059cbb14610488578063d1508814146104a857600080fd5b8063715018a61461036e57806373dd250c146103835780638b876347146103a35780638da5cb5b146103d057806395101f90146103ee57806395d89b411461041b57600080fd5b80634437152a1161013e578063692058c211610118578063692058c2146102ee57806369d2da9c1461030e5780636ce491661461032e57806370a082311461034e57600080fd5b80634437152a1461027f57806354fb2523146102a15780635f641758146102c157600080fd5b806306fdde0314610191578063095ea7b3146101bc57806316f0115b146101ec57806318160ddd1461022457806323b872dd14610243578063313ce5671461026357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661056a565b6040516101b391906111f7565b60405180910390f35b3480156101c857600080fd5b506101dc6101d736600461125c565b6105fc565b60405190151581526020016101b3565b3480156101f857600080fd5b5060075461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b506002545b6040519081526020016101b3565b34801561024f57600080fd5b506101dc61025e366004611286565b610616565b34801561026f57600080fd5b50604051601281526020016101b3565b34801561028b57600080fd5b5061029f61029a3660046112c2565b61063c565b005b3480156102ad57600080fd5b5060065461020c906001600160a01b031681565b3480156102cd57600080fd5b506102356102dc3660046112c2565b600a6020526000908152604090205481565b3480156102fa57600080fd5b5060085461020c906001600160a01b031681565b34801561031a57600080fd5b5061029f6103293660046112c2565b610666565b34801561033a57600080fd5b5061029f6103493660046112dd565b6107c5565b34801561035a57600080fd5b506102356103693660046112c2565b610869565b34801561037a57600080fd5b5061029f6108df565b34801561038f57600080fd5b5061029f61039e366004611310565b6108f3565b3480156103af57600080fd5b506102356103be3660046112c2565b600d6020526000908152604090205481565b3480156103dc57600080fd5b506005546001600160a01b031661020c565b3480156103fa57600080fd5b506102356104093660046112c2565b60096020526000908152604090205481565b34801561042757600080fd5b506101a661091f565b34801561043c57600080fd5b5061047361044b3660046112c2565b6001600160a01b0316600090815260096020908152604080832054600a909252909120549091565b604080519283526020830191909152016101b3565b34801561049457600080fd5b506101dc6104a336600461125c565b61092e565b3480156104b457600080fd5b506101dc6104c33660046112c2565b600b6020526000908152604090205460ff1681565b3480156104e457600080fd5b506102356104f3366004611335565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561052a57600080fd5b50610235600c5481565b34801561054057600080fd5b5061029f61054f3660046112c2565b61093c565b34801561056057600080fd5b50610235600e5481565b60606003805461057990611368565b80601f01602080910402602001604051908101604052809291908181526020018280546105a590611368565b80156105f25780601f106105c7576101008083540402835291602001916105f2565b820191906000526020600020905b8154815290600101906020018083116105d557829003601f168201915b5050505050905090565b60003361060a81858561097f565b60019150505b92915050565b600033610624858285610991565b61062f858585610a09565b60019150505b9392505050565b610644610a68565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b61066e610a68565b6008546001600160a01b031680156106f75760085460405163095ea7b360e01b81526001600160a01b03909116600482015260006024820152309063095ea7b3906044016020604051808303816000875af11580156106d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f591906113a2565b505b600880546001600160a01b0319166001600160a01b03841690811790915560405163095ea7b360e01b815260048101919091526000196024820152309063095ea7b3906044016020604051808303816000875af115801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906113a2565b50816001600160a01b0316816001600160a01b03167f7944eb377e472febf8aadfe5cfdd9fa974762abb456732d067c1e14d448d05a760405160405180910390a35050565b6107cd610a68565b6001600160a01b0383166000908152600b602052604090205460ff166107f4848484610a95565b8015610831576001600160a01b038416600090815260208190526040812054600e8054919290916108269084906113da565b909155506108639050565b6001600160a01b038416600090815260208190526040812054600e80549192909161085d9084906113ed565b90915550505b50505050565b6001600160a01b038116600081815260208190526040902054901580159061089a57506001600160a01b0382163014155b80156108bf57506001600160a01b0382166000908152600b602052604090205460ff16155b156108da576108cd82610c0a565b6108d790826113ed565b90505b919050565b6108e7610a68565b6108f16000610c57565b565b6108fb610a68565b6008805462ffffff909216600160a01b0262ffffff60a01b19909216919091179055565b60606004805461057990611368565b60003361060a818585610a09565b610944610a68565b6001600160a01b03811661097357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61097c81610c57565b50565b61098c8383836001610ca9565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461086357818110156109fa57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161096a565b61086384848484036000610ca9565b6001600160a01b038316610a3357604051634b637e8f60e11b81526000600482015260240161096a565b6001600160a01b038216610a5d5760405163ec442f0560e01b81526000600482015260240161096a565b61098c838383610d7e565b6005546001600160a01b031633146108f15760405163118cdaa760e01b815233600482015260240161096a565b6103e8821180610aa657506103e881115b15610ac457604051632bc7b84d60e21b815260040160405180910390fd5b6001600160a01b0383166000908152600b602052604090205460ff168015610aeb57508115155b8015610af657508015155b15610b1457604051632155322760e11b815260040160405180910390fd5b306001600160a01b03841603610b3d5760405163e339bdab60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320859055600a909152902081905581151580610b735750600081115b15610ba0576001600160a01b0383166000908152600b60205260409020805460ff19166001179055610bc1565b6001600160a01b0383166000908152600b60205260409020805460ff191690555b60408051838152602081018390526001600160a01b038516917f3702fe9b6a853faae6207a036846fcd4d7ff8a226ec78129d5588697c0d7eca0910160405180910390a2505050565b6001600160a01b03811660009081526020818152604080832054600d909252822054600c54670de0b6b3a76400009291610c43916113da565b610c4d9190611400565b6108d79190611417565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416610cd35760405163e602df0560e01b81526000600482015260240161096a565b6001600160a01b038316610cfd57604051634a1406b160e11b81526000600482015260240161096a565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561086357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d7091815260200190565b60405180910390a350505050565b610d888383610d9e565b610d93838383610ece565b61098c838383610f6a565b6001600160a01b03821615801590610dbf57506001600160a01b0382163014155b8015610de457506001600160a01b0382166000908152600b602052604090205460ff16155b15610e2057610df282610c0a565b6001600160a01b03831660009081526020819052604081208054909190610e1a9084906113ed565b90915550505b6001600160a01b03811615801590610e4157506001600160a01b0381163014155b8015610e6657506001600160a01b0381166000908152600b602052604090205460ff16155b15610ea257610e7481610c0a565b6001600160a01b03821660009081526020819052604081208054909190610e9c9084906113ed565b90915550505b600c546001600160a01b039182166000908152600d602052604080822083905593909216825291902055565b6001600160a01b038216301480610efd57506001600160a01b0382166000908152600b602052604090205460ff165b15610f1a5780600e6000828254610f1491906113ed565b90915550505b6001600160a01b038316301480610f4957506001600160a01b0383166000908152600b602052604090205460ff165b1561098c5780600e6000828254610f6091906113da565b9091555050505050565b6000610f778484846110d2565b90508015610f8e57610f89848261116b565b610f98565b3060009081526020525b6000610fa482846113da565b90506001600160a01b038516610fd1578260026000828254610fc691906113ed565b909155506110439050565b6001600160a01b038516600090815260208190526040902054838110156110245760405163391434e360e21b81526001600160a01b0387166004820152602481018290526044810185905260640161096a565b6001600160a01b03861660009081526020819052604090209084900390555b6001600160a01b03841661105f5760028054829003905561107e565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c391815260200190565b60405180910390a35050505050565b6006546000906001600160a01b03908116908516036110f357506000610635565b6001600160a01b038085166000908152600960209081526040808320549387168352600a90915290205461271061112a8386611400565b6111349190611417565b61113e90846113ed565b925061271061114d8286611400565b6111579190611417565b61116190846113ed565b9695505050505050565b600e5460025461117b91906113da565b61118d82670de0b6b3a7640000611400565b6111979190611417565b600c60008282546111a891906113ed565b90915550506040518181526254a2ed60881b906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561122457858101830151858201604001528201611208565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108da57600080fd5b6000806040838503121561126f57600080fd5b61127883611245565b946020939093013593505050565b60008060006060848603121561129b57600080fd5b6112a484611245565b92506112b260208501611245565b9150604084013590509250925092565b6000602082840312156112d457600080fd5b61063582611245565b6000806000606084860312156112f257600080fd5b6112fb84611245565b95602085013595506040909401359392505050565b60006020828403121561132257600080fd5b813562ffffff8116811461063557600080fd5b6000806040838503121561134857600080fd5b61135183611245565b915061135f60208401611245565b90509250929050565b600181811c9082168061137c57607f821691505b60208210810361139c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156113b457600080fd5b8151801515811461063557600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610610576106106113c4565b80820180821115610610576106106113c4565b8082028115828204841417610610576106106113c4565b60008261143457634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e036e21f639c3077a13a2c7eceac89d5db98be3cd19f354eda9b4fb1f108780b64736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220541d1377d89511912df953b64a63374d090b45c4a7540522cae5d50a95f2f55f64736f6c63430008140033