0 txs
5 calls
constructor
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)
lotteryMaster
viewfunction lotteryMaster() 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_, address lotteryMaster_)
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
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516150e262000104600039600081816113f30152818161141d015261157201526150e26000f3fe6080604052600436106200015b5760003560e01c8063791b98bc11620000c5578063c31c9c071162000078578063c31c9c071462000497578063d0fb020314620004b9578063f0360e2514620004d9578063f2fde38b14620004fe578063f8c8765e1462000523578063fa9b5374146200054857600080fd5b8063791b98bc14620003795780638da5cb5b146200039b578063a4520aee14620003da578063ad3cb1cc146200040e578063ad5c46481462000450578063c0c53b8b146200047257600080fd5b80634f1ef286116200011e5780634f1ef28614620002a15780634f64b2be14620002b857806352d1902d14620002f65780635b549182146200031d5780635dc9dbe8146200033f578063715018a6146200036157600080fd5b806303eaffcc1462000160578063150b7a0214620001a75780633cc963dc14620001f15780633f81d6ba1462000255578063472d35b9146200027a575b600080fd5b3480156200016d57600080fd5b50620001856200017f36600462001f6b565b6200056a565b604080519283526001600160a01b039091166020830152015b60405180910390f35b348015620001b457600080fd5b50620001d7620001c636600462001fd5565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016200019e565b348015620001fe57600080fd5b5062000235620002103660046200204f565b600660205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016200019e565b3480156200026257600080fd5b50620002356200027436600462002177565b620005d0565b3480156200028757600080fd5b506200029f620002993660046200204f565b620007cd565b005b6200029f620002b23660046200229d565b620007f9565b348015620002c557600080fd5b50620002dd620002d736600462002307565b6200081e565b6040516001600160a01b0390911681526020016200019e565b3480156200030357600080fd5b506200030e62000849565b6040519081526020016200019e565b3480156200032a57600080fd5b50600154620002dd906001600160a01b031681565b3480156200034c57600080fd5b50600854620002dd906001600160a01b031681565b3480156200036e57600080fd5b506200029f62000869565b3480156200038657600080fd5b50600254620002dd906001600160a01b031681565b348015620003a857600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002dd565b348015620003e757600080fd5b50620003ff620003f936600462002321565b62000881565b6040516200019e9190620023d3565b3480156200041b57600080fd5b5062000441604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516200019e919062002494565b3480156200045d57600080fd5b50600054620002dd906001600160a01b031681565b3480156200047f57600080fd5b506200029f62000491366004620024a9565b62000ab4565b348015620004a457600080fd5b50600354620002dd906001600160a01b031681565b348015620004c657600080fd5b506004546001600160a01b0316620002dd565b348015620004e657600080fd5b50620002dd620004f8366004620024fb565b62000d0c565b3480156200050b57600080fd5b506200029f6200051d3660046200204f565b62000e49565b3480156200053057600080fd5b506200029f6200054236600462002531565b62000e91565b3480156200055557600080fd5b50600754620002dd906001600160a01b031681565b60008060005b91508162000582878783888862000d0c565b6000549092506001600160a01b03908116908316108015620005ac57506001600160a01b0382163b155b620005c65780620005bd81620025ac565b91505062000570565b5094509492505050565b6000806001856004811115620005ea57620005ea620025c8565b036200066e576040805133602082015290810184905260600160405160208183030381529060405280519060200120866000015187602001518860400151604051620006369062001eae565b6200064493929190620025de565b8190604051809103906000f590508015801562000665573d6000803e3d6000fd5b50915062000721565b6002856004811115620006855762000685620025c8565b0362000708576040805133602082015290810184905260600160408051808303601f1901815282825280516020918201208951918a0151928a015160608b01516000546008546007549497959695939492936001600160a01b03928316939183169290911690620006f69062001ebc565b62000644979695949392919062002618565b60405163a1e9dd9d60e01b815260040160405180910390fd5b6000546001600160a01b0380841691161015620007515760405163401356f160e01b815260040160405180910390fd5b60006200076085848962000fc7565b9092509050620007738382888a620012f0565b604080516001600160a01b0385811682528316602082015233818301526060810184905290517fc39c1ae054d6fc88ccac7ac78658f209ba90176e9838a380a4ce41c3f43d66659181900360800190a15094509492505050565b620007d76200138a565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b62000803620013e8565b6200080e8262001491565b6200081a82826200149b565b5050565b600581815481106200082f57600080fd5b6000918252602090912001546001600160a01b0316905081565b60006200085562001567565b506000805160206200508d83398151915290565b620008736200138a565b6200087f6000620015b1565b565b6004546060906001600160a01b03163314620008b057604051631dd2188d60e31b815260040160405180910390fd5b8151806001600160401b03811115620008cd57620008cd6200206f565b6040519080825280602002602001820160405280156200090a57816020015b620008f662001eca565b815260200190600190039081620008ec5790505b506040805160808101825260008082526004546001600160a01b031660208301526001600160801b0392820183905260608201929092529193505b8281101562000aac576006600086838151811062000967576200096762002678565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020600101548552600254825163fc6f786560e01b8152865160048201529186015184166024830152918501516001600160801b039081166044830152606086015116606482015291169063fc6f78659060840160408051808303816000875af115801562000a00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a2691906200268e565b85838151811062000a3b5762000a3b62002678565b602002602001015160006002811062000a585762000a5862002678565b6020020186848151811062000a715762000a7162002678565b602002602001015160016002811062000a8e5762000a8e62002678565b6020020191909152528062000aa381620025ac565b91505062000945565b505050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801562000afa5750825b90506000826001600160401b0316600114801562000b175750303b155b90508115801562000b26575080155b1562000b455760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000b7057845460ff60401b1916600160401b1785555b62000b7b3362001622565b62000b8562001637565b876001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bc4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bea9190620026b3565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550876001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c749190620026b3565b600180546001600160a01b03199081166001600160a01b03938416179091556002805482168b84161790556003805482168a841617905560078054909116918816919091179055831562000d0257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b604080516001600160a01b0387166020808301919091528183018690528251808303840181526060909201909252805191012060009081600187600481111562000d5a5762000d5a620025c8565b0362000db75760405162000d716020820162001eae565b601f1982820381018352601f90910116604081905262000d99919087908790602001620026d3565b60405160208183030381529060405280519060200120905062000de5565b600287600481111562000dce5762000dce620025c8565b03620007085760405162000d716020820162001ebc565b6040516001600160f81b031960208201526bffffffffffffffffffffffff193060601b166021820152603581018390526055810182905262000e3d906075016040516020818303038152906040528051906020012090565b98975050505050505050565b62000e536200138a565b6001600160a01b03811662000e8357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000e8e81620015b1565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801562000ed75750825b90506000826001600160401b0316600114801562000ef45750303b155b90508115801562000f03575080155b1562000f225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000f4d57845460ff60401b1916600160401b1785555b62000f5a89898962000ab4565b600880546001600160a01b0319166001600160a01b038816179055831562000fbc57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600080600062000fda8660020b62001641565b60015460005460405163a167129560e01b81526001600160a01b03898116600483015291821660248201526127106044820152929350169063a1671295906064016020604051808303816000875af11580156200103b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010619190620026b3565b60405163f637731d60e01b81526001600160a01b0383811660048301529193509083169063f637731d90602401600060405180830381600087803b158015620010a957600080fd5b505af1158015620010be573d6000803e3d6000fd5b505060408051610160810182526001600160a01b03808a1682526000805490911660208301526127108284015260028b900b6060830152620d89a060808301529188015160a082015260c0810182905260e08101829052610100810182905230610120820152909250905061014081016200113b42600a620026fd565b9052600254604087810151905163095ea7b360e01b81526001600160a01b039283166004820152602481019190915291925087169063095ea7b3906044016020604051808303816000875af115801562001199573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011bf919062002713565b50600254604051634418b22b60e11b81526001600160a01b0390911690638831645690620011f290849060040162002737565b6080604051808303816000875af115801562001212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001238919062002800565b50506040805180820182526001600160a01b038a811680835260208084018781526000838152600690925290859020935184546001600160a01b031916908416178455516001909301929092556004805493516344182dfb60e01b8152908101929092523360248301529397509216916344182dfb9150604401600060405180830381600087803b158015620012cd57600080fd5b505af1158015620012e2573d6000803e3d6000fd5b505050505050935093915050565b620012fe8484848462001aad565b6002826004811115620013155762001315620025c8565b03620013845760085460c082015160405163af81c5b960e01b81526001600160a01b038781166004830152602482019290925291169063af81c5b990604401600060405180830381600087803b1580156200136f57600080fd5b505af115801562000d02573d6000803e3d6000fd5b50505050565b33620013bd7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146200087f5760405163118cdaa760e01b815233600482015260240162000e7a565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806200147257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620014666000805160206200508d833981519152546001600160a01b031690565b6001600160a01b031614155b156200087f5760405163703e46dd60e11b815260040160405180910390fd5b62000e8e6200138a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620014f8575060408051601f3d908101601f19168201909252620014f5918101906200284c565b60015b6200152257604051634c9c8ce360e01b81526001600160a01b038316600482015260240162000e7a565b6000805160206200508d83398151915281146200155657604051632a87526960e21b81526004810182905260240162000e7a565b62001562838362001c67565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146200087f5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200162c62001cc4565b62000e8e8162001d0e565b6200087f62001cc4565b60008060008360020b126200165a578260020b62001669565b8260020b620016699062002866565b90506200167a620d89e71962002885565b60020b811115620016b25760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000e7a565b600081600116600003620016cb57600160801b620016dd565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156200171f5760806200171a826ffff97272373d413259a46990580e213a620028aa565b901c90505b60048216156200174c57608062001747826ffff2e50f5f656932ef12357cf3c7fdcc620028aa565b901c90505b60088216156200177957608062001774826fffe5caca7e10e4e61c3624eaa0941cd0620028aa565b901c90505b6010821615620017a6576080620017a1826fffcb9843d60f6159c9db58835c926644620028aa565b901c90505b6020821615620017d3576080620017ce826fff973b41fa98c081472e6896dfb254c0620028aa565b901c90505b604082161562001800576080620017fb826fff2ea16466c96a3843ec78b326b52861620028aa565b901c90505b60808216156200182d57608062001828826ffe5dee046a99a2a811c461f1969c3053620028aa565b901c90505b6101008216156200185b57608062001856826ffcbe86c7900a88aedcffc83b479aa3a4620028aa565b901c90505b6102008216156200188957608062001884826ff987a7253ac413176f2b074cf7815e54620028aa565b901c90505b610400821615620018b7576080620018b2826ff3392b0822b70005940c7a398e4b70f3620028aa565b901c90505b610800821615620018e5576080620018e0826fe7159475a2c29b7443b29c7fa6e889d9620028aa565b901c90505b611000821615620019135760806200190e826fd097f3bdfd2022b8845ad8f792aa5825620028aa565b901c90505b612000821615620019415760806200193c826fa9f746462d870fdf8a65dc1f90e061e5620028aa565b901c90505b6140008216156200196f5760806200196a826f70d869a156d2a1b890bb3df62baf32f7620028aa565b901c90505b6180008216156200199d57608062001998826f31be135f97d08fd981231505542fcfa6620028aa565b901c90505b62010000821615620019cc576080620019c7826f09aa508b5b7a84e1c677de54f3e99bc9620028aa565b901c90505b62020000821615620019fa576080620019f5826e5d6af8dedb81196699c329225ee604620028aa565b901c90505b6204000082161562001a2757608062001a22826d2216e584f5fa1ea926041bedfe98620028aa565b901c90505b6208000082161562001a5257608062001a4d826b048a170391f7dc42444e8fa2620028aa565b901c90505b60008460020b131562001a705762001a6d81600019620028da565b90505b62001a8164010000000082620028f1565b1562001a8f57600162001a92565b60005b62001aa59060ff16602083901c620026fd565b949350505050565b83600183600481111562001ac55762001ac5620025c8565b1462001c605760405163221b8a9560e11b81526001600160a01b038581166004830152821690634437152a90602401600060405180830381600087803b15801562001b0f57600080fd5b505af115801562001b24573d6000803e3d6000fd5b50505050608082015160a083015160405163367248b360e11b81526001600160a01b0387811660048301526024820193909352604481019190915290821690636ce4916690606401600060405180830381600087803b15801562001b8757600080fd5b505af115801562001b9c573d6000803e3d6000fd5b5050600354604051631a74b6a760e21b81526001600160a01b03918216600482015290841692506369d2da9c9150602401600060405180830381600087803b15801562001be857600080fd5b505af115801562001bfd573d6000803e3d6000fd5b5050505060e082015160405163f2fde38b60e01b81526001600160a01b0391821660048201529082169063f2fde38b90602401600060405180830381600087803b15801562001c4b57600080fd5b505af115801562000fbc573d6000803e3d6000fd5b5050505050565b62001c728262001d18565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511562001cba5762001562828262001d80565b6200081a62001dfe565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200087f57604051631afcd79f60e31b815260040160405180910390fd5b62000e5362001cc4565b806001600160a01b03163b60000362001d5057604051634c9c8ce360e01b81526001600160a01b038216600482015260240162000e7a565b6000805160206200508d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405162001d9f919062002908565b600060405180830381855af49150503d806000811462001ddc576040519150601f19603f3d011682016040523d82523d6000602084013e62001de1565b606091505b509150915062001df385838362001e1e565b925050505b92915050565b34156200087f5760405163b398979f60e01b815260040160405180910390fd5b60608262001e375762001e318262001e84565b62001e7d565b815115801562001e4f57506001600160a01b0384163b155b1562001e7a57604051639996b31560e01b81526001600160a01b038516600482015260240162000e7a565b50805b9392505050565b80511562001e955780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610bd1806200292783390190565b611b9580620034f883390190565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462000e8e57600080fd5b803562001f0b8162001ee8565b919050565b80356005811062001f0b57600080fd5b60008083601f84011262001f3357600080fd5b5081356001600160401b0381111562001f4b57600080fd5b60208301915083602082850101111562001f6457600080fd5b9250929050565b6000806000806060858703121562001f8257600080fd5b843562001f8f8162001ee8565b935062001f9f6020860162001f10565b925060408501356001600160401b0381111562001fbb57600080fd5b62001fc98782880162001f20565b95989497509550505050565b60008060008060006080868803121562001fee57600080fd5b853562001ffb8162001ee8565b945060208601356200200d8162001ee8565b93506040860135925060608601356001600160401b038111156200203057600080fd5b6200203e8882890162001f20565b969995985093965092949392505050565b6000602082840312156200206257600080fd5b813562001e7d8162001ee8565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620020ab57620020ab6200206f565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620020dc57620020dc6200206f565b604052919050565b60006001600160401b038311156200210057620021006200206f565b62002115601f8401601f1916602001620020b1565b90508281528383830111156200212a57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126200215357600080fd5b62001e7d83833560208501620020e4565b8035600281900b811462001f0b57600080fd5b600080600080608085870312156200218e57600080fd5b84356001600160401b0380821115620021a657600080fd5b908601906101208289031215620021bc57600080fd5b620021c662002085565b823582811115620021d657600080fd5b620021e48a82860162002141565b825250602083013582811115620021fa57600080fd5b620022088a82860162002141565b60208301525060408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201526200224e60e0840162001efe565b60e082015261010091506200226582840162001efe565b828201528096505050506200227d6020860162001f10565b92506200228d6040860162002164565b9396929550929360600135925050565b60008060408385031215620022b157600080fd5b8235620022be8162001ee8565b915060208301356001600160401b03811115620022da57600080fd5b8301601f81018513620022ec57600080fd5b620022fd85823560208401620020e4565b9150509250929050565b6000602082840312156200231a57600080fd5b5035919050565b600060208083850312156200233557600080fd5b82356001600160401b03808211156200234d57600080fd5b818501915085601f8301126200236257600080fd5b8135818111156200237757620023776200206f565b8060051b91506200238a848301620020b1565b8181529183018401918481019088841115620023a557600080fd5b938501935b8385101562000e3d5784359250620023c28362001ee8565b8282529385019390850190620023aa565b60208082528251828201819052600091906040908185019086840185805b838110156200243257825185835b60028110156200241e57825182529189019190890190600101620023ff565b5050509385019391860191600101620023f1565b509298975050505050505050565b60005b838110156200245d57818101518382015260200162002443565b50506000910152565b600081518084526200248081602086016020860162002440565b601f01601f19169290920160200192915050565b60208152600062001e7d602083018462002466565b600080600060608486031215620024bf57600080fd5b8335620024cc8162001ee8565b92506020840135620024de8162001ee8565b91506040840135620024f08162001ee8565b809150509250925092565b6000806000806000608086880312156200251457600080fd5b8535620025218162001ee8565b94506200200d6020870162001f10565b600080600080608085870312156200254857600080fd5b8435620025558162001ee8565b93506020850135620025678162001ee8565b92506040850135620025798162001ee8565b915060608501356200258b8162001ee8565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b600060018201620025c157620025c162002596565b5060010190565b634e487b7160e01b600052602160045260246000fd5b606081526000620025f3606083018662002466565b828103602084015262002607818662002466565b915050826040830152949350505050565b60e0815260006200262d60e083018a62002466565b828103602084015262002641818a62002466565b6040840198909852505060608101949094526001600160a01b03928316608085015290821660a08401521660c09091015292915050565b634e487b7160e01b600052603260045260246000fd5b60008060408385031215620026a257600080fd5b505080516020909101519092909150565b600060208284031215620026c657600080fd5b815162001e7d8162001ee8565b60008451620026e781846020890162002440565b8201838582376000930192835250909392505050565b8082018082111562001df85762001df862002596565b6000602082840312156200272657600080fd5b8151801515811462001e7d57600080fd5b81516001600160a01b03168152610160810160208301516200276460208401826001600160a01b03169052565b5060408301516200277c604084018262ffffff169052565b50606083015162002792606084018260020b9052565b506080830151620027a8608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151620027ef828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156200281757600080fd5b8451935060208501516001600160801b03811681146200283657600080fd5b6040860151606090960151949790965092505050565b6000602082840312156200285f57600080fd5b5051919050565b6000600160ff1b82016200287e576200287e62002596565b5060000390565b60008160020b627fffff198103620028a157620028a162002596565b60000392915050565b808202811582820484141762001df85762001df862002596565b634e487b7160e01b600052601260045260246000fd5b600082620028ec57620028ec620028c4565b500490565b600082620029035762002903620028c4565b500690565b600082516200291c81846020870162002440565b919091019291505056fe60806040523480156200001157600080fd5b5060405162000bd138038062000bd18339810160408190526200003491620002ab565b82826003620000448382620003ad565b506004620000538282620003ad565b5050506200006833826200007160201b60201c565b505050620004a1565b6001600160a01b038216620000a15760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000af60008383620000b3565b5050565b6001600160a01b038316620000e2578060026000828254620000d6919062000479565b90915550620001569050565b6001600160a01b03831660009081526020819052604090205481811015620001375760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000098565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001745760028054829003905562000193565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001d991815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020e57600080fd5b81516001600160401b03808211156200022b576200022b620001e6565b604051601f8301601f19908116603f01168101908282118183101715620002565762000256620001e6565b816040528381526020925086838588010111156200027357600080fd5b600091505b8382101562000297578582018301518183018401529082019062000278565b600093810190920192909252949350505050565b600080600060608486031215620002c157600080fd5b83516001600160401b0380821115620002d957600080fd5b620002e787838801620001fc565b94506020860151915080821115620002fe57600080fd5b506200030d86828701620001fc565b925050604084015190509250925092565b600181811c908216806200033357607f821691505b6020821081036200035457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003a857600081815260208120601f850160051c81016020861015620003835750805b601f850160051c820191505b81811015620003a4578281556001016200038f565b5050505b505050565b81516001600160401b03811115620003c957620003c9620001e6565b620003e181620003da84546200031e565b846200035a565b602080601f831160018114620004195760008415620004005750858301515b600019600386901b1c1916600185901b178555620003a4565b600085815260208120601f198616915b828110156200044a5788860151825594840194600190910190840162000429565b5085821015620004695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200049b57634e487b7160e01b600052601160045260246000fd5b92915050565b61072080620004b16000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461010d57806395d89b4114610136578063a9059cbb1461013e578063dd62ed3e1461015157600080fd5b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d957806323b872dd146100eb575b600080fd5b6100a061018a565b6040516100ad919061056a565b60405180910390f35b6100c96100c43660046105d4565b61021c565b60405190151581526020016100ad565b6002545b6040519081526020016100ad565b6100c96100f93660046105fe565b610236565b604051601281526020016100ad565b6100dd61011b36600461063a565b6001600160a01b031660009081526020819052604090205490565b6100a061025a565b6100c961014c3660046105d4565b610269565b6100dd61015f36600461065c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101999061068f565b80601f01602080910402602001604051908101604052809291908181526020018280546101c59061068f565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610277565b60019150505b92915050565b600033610244858285610289565b61024f85858561030c565b506001949350505050565b6060600480546101999061068f565b60003361022a81858561030c565b610284838383600161036b565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461030657818110156102f757604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103068484848403600061036b565b50505050565b6001600160a01b03831661033657604051634b637e8f60e11b8152600060048201526024016102ee565b6001600160a01b0382166103605760405163ec442f0560e01b8152600060048201526024016102ee565b610284838383610440565b6001600160a01b0384166103955760405163e602df0560e01b8152600060048201526024016102ee565b6001600160a01b0383166103bf57604051634a1406b160e11b8152600060048201526024016102ee565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561030657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161043291815260200190565b60405180910390a350505050565b6001600160a01b03831661046b57806002600082825461046091906106c9565b909155506104dd9050565b6001600160a01b038316600090815260208190526040902054818110156104be5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102ee565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166104f957600280548290039055610518565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161055d91815260200190565b60405180910390a3505050565b600060208083528351808285015260005b818110156105975785810183015185820160400152820161057b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105cf57600080fd5b919050565b600080604083850312156105e757600080fd5b6105f0836105b8565b946020939093013593505050565b60008060006060848603121561061357600080fd5b61061c846105b8565b925061062a602085016105b8565b9150604084013590509250925092565b60006020828403121561064c57600080fd5b610655826105b8565b9392505050565b6000806040838503121561066f57600080fd5b610678836105b8565b9150610686602084016105b8565b90509250929050565b600181811c908216806106a357607f821691505b6020821081036106c357634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561023057634e487b7160e01b600052601160045260246000fdfea2646970667358221220e5afbb1726d9b668b30fd83deca9a88e082331627895682228f8404121eb1e7664736f6c6343000814003360a06040523480156200001157600080fd5b5060405162001b9538038062001b95833981016040819052620000349162000623565b868686858433858560036200004a838262000767565b50600462000059828262000767565b5050506001600160a01b0381166200008c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000097816200010c565b506001600160a01b038216608052620000b133846200015e565b6008805462ffffff60a01b191661027160a41b179055600680546001600160a01b03199081166001600160a01b0393841617909155600c99909955600d805490991696169590951790965550620008b8975050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200018a5760405163ec442f0560e01b81526000600482015260240162000083565b62000198600083836200019c565b5050565b600d546001600160a01b0316156200020f57600d54604051637ea6b20560e01b8152600060048201526001600160a01b0390911690637ea6b20590602401600060405180830381600087803b158015620001f557600080fd5b505af11580156200020a573d6000803e3d6000fd5b505050505b60006200021e8484846200042f565b905080156200023957620002338482620004d8565b62000243565b3060009081526020525b600062000251828462000849565b90506001600160a01b0385166200028257826002600082825462000276919062000865565b90915550620003ae9050565b6001600160a01b03851660009081526020819052604090205483811015620002d75760405163391434e360e21b81526001600160a01b0387166004820152602481018290526044810185905260640162000083565b6001600160a01b0386166000908152602081815260408083208785039055600b90915290205460ff1680156200032657506001600160a01b0385166000908152600b602052604090205460ff16155b80156200033d5750600d546001600160a01b031615155b15620003ac57600d546040516322ba5f7b60e01b81526001600160a01b03878116600483015260248201879052909116906322ba5f7b90604401600060405180830381600087803b1580156200039257600080fd5b505af1158015620003a7573d6000803e3d6000fd5b505050505b505b6001600160a01b038416620003cc57600280548290039055620003eb565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b031660008051602062001b75833981519152856040516200042091815260200190565b60405180910390a35050505050565b6006546000906001600160a01b03908116908516036200045257506000620004d1565b6001600160a01b038085166000908152600960209081526040808320549387168352600a9091529020546127106200048b83866200087b565b62000497919062000895565b620004a3908462000865565b9250612710620004b482866200087b565b620004c0919062000895565b620004cc908462000865565b925050505b9392505050565b600d546001600160a01b0316600090815260208190526040812080548392906200050490849062000865565b9091555050600d546040518281526001600160a01b039182169184169060008051602062001b758339815191529060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200056957600080fd5b81516001600160401b038082111562000586576200058662000541565b604051601f8301601f19908116603f01168101908282118183101715620005b157620005b162000541565b81604052838152602092508683858801011115620005ce57600080fd5b600091505b83821015620005f25785820183015181830184015290820190620005d3565b600093810190920192909252949350505050565b80516001600160a01b03811681146200061e57600080fd5b919050565b600080600080600080600060e0888a0312156200063f57600080fd5b87516001600160401b03808211156200065757600080fd5b620006658b838c0162000557565b985060208a01519150808211156200067c57600080fd5b506200068b8a828b0162000557565b9650506040880151945060608801519350620006aa6080890162000606565b9250620006ba60a0890162000606565b9150620006ca60c0890162000606565b905092959891949750929550565b600181811c90821680620006ed57607f821691505b6020821081036200070e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200076257600081815260208120601f850160051c810160208610156200073d5750805b601f850160051c820191505b818110156200075e5782815560010162000749565b5050505b505050565b81516001600160401b0381111562000783576200078362000541565b6200079b81620007948454620006d8565b8462000714565b602080601f831160018114620007d35760008415620007ba5750858301515b600019600386901b1c1916600185901b1785556200075e565b600085815260208120601f198616915b828110156200080457888601518255948401946001909101908401620007e3565b5085821015620008235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b818103818111156200085f576200085f62000833565b92915050565b808201808211156200085f576200085f62000833565b80820281158282048414176200085f576200085f62000833565b600082620008b357634e487b7160e01b600052601260045260246000fd5b500490565b6080516112a4620008d1600039600050506112a46000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806369d2da9c116100f957806395d89b4111610097578063a9059cbb11610071578063a9059cbb146103d0578063d1508814146103e3578063dd62ed3e14610406578063f2fde38b1461043f57600080fd5b806395d89b41146103735780639b7bf8101461037b578063a7493b49146103c657600080fd5b8063715018a6116100d3578063715018a61461032757806373dd250c1461032f5780638da5cb5b1461034257806395101f901461035357600080fd5b806369d2da9c146102d85780636ce49166146102eb57806370a08231146102fe57600080fd5b8063383121fc1161016657806354fb25231161014057806354fb25231461027f5780635dc9dbe8146102925780635f641758146102a5578063692058c2146102c557600080fd5b8063383121fc1461024e5780634437152a146102575780634e958d051461026c57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806316f0115b146101ef57806318160ddd1461021a57806323b872dd1461022c578063313ce5671461023f575b600080fd5b6101b6610452565b6040516101c39190611027565b60405180910390f35b6101df6101da366004611091565b6104e4565b60405190151581526020016101c3565b600754610202906001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b6002545b6040519081526020016101c3565b6101df61023a3660046110bb565b6104fe565b604051601281526020016101c3565b61021e600c5481565b61026a6102653660046110f7565b610524565b005b61026a61027a366004611091565b61054e565b600654610202906001600160a01b031681565b600d54610202906001600160a01b031681565b61021e6102b33660046110f7565b600a6020526000908152604090205481565b600854610202906001600160a01b031681565b61026a6102e63660046110f7565b6106c1565b61026a6102f9366004611112565b610820565b61021e61030c3660046110f7565b6001600160a01b031660009081526020819052604090205490565b61026a610838565b61026a61033d366004611145565b61084c565b6005546001600160a01b0316610202565b61021e6103613660046110f7565b60096020526000908152604090205481565b6101b6610878565b6103b16103893660046110f7565b6001600160a01b0316600090815260096020908152604080832054600a909252909120549091565b604080519283526020830191909152016101c3565b61021e6201518081565b6101df6103de366004611091565b610887565b6101df6103f13660046110f7565b600b6020526000908152604090205460ff1681565b61021e61041436600461116a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61026a61044d3660046110f7565b610895565b6060600380546104619061119d565b80601f016020809104026020016040519081016040528092919081815260200182805461048d9061119d565b80156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b5050505050905090565b6000336104f28185856108d8565b60019150505b92915050565b60003361050c8582856108e5565b610517858585610963565b60019150505b9392505050565b61052c6109c2565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031633146105795760405163088b9f0560e21b815260040160405180910390fd5b600d546001600160a01b0316600090815260208190526040812054600c54909190612710906105a890856111ed565b6105b29190611204565b905060008282106105c357826105c5565b815b600d546001600160a01b03166000908152602081905260408120805492935083929091906105f4908490611226565b90915550506001600160a01b03851660009081526020819052604081208054839290610621908490611239565b9091555050600d546040518281526001600160a01b038781169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080516001600160a01b0387168152602081018690529081018290524260608201527f57d83da7f5e4ca13c8cf122c9337b4b8ec5ccdcdc4b062493af67f414bc0eff49060800160405180910390a15050505050565b6106c96109c2565b6008546001600160a01b031680156107525760085460405163095ea7b360e01b81526001600160a01b03909116600482015260006024820152309063095ea7b3906044016020604051808303816000875af115801561072c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610750919061124c565b505b600880546001600160a01b0319166001600160a01b03841690811790915560405163095ea7b360e01b815260048101919091526000196024820152309063095ea7b3906044016020604051808303816000875af11580156107b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107db919061124c565b50816001600160a01b0316816001600160a01b03167f7944eb377e472febf8aadfe5cfdd9fa974762abb456732d067c1e14d448d05a760405160405180910390a35050565b6108286109c2565b6108338383836109ef565b505050565b6108406109c2565b61084a6000610b64565b565b6108546109c2565b6008805462ffffff909216600160a01b0262ffffff60a01b19909216919091179055565b6060600480546104619061119d565b6000336104f2818585610963565b61089d6109c2565b6001600160a01b0381166108cc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6108d581610b64565b50565b6108338383836001610bb6565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461095d578181101561094e57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016108c3565b61095d84848484036000610bb6565b50505050565b6001600160a01b03831661098d57604051634b637e8f60e11b8152600060048201526024016108c3565b6001600160a01b0382166109b75760405163ec442f0560e01b8152600060048201526024016108c3565b610833838383610c8b565b6005546001600160a01b0316331461084a5760405163118cdaa760e01b81523360048201526024016108c3565b6103e8821180610a0057506103e881115b15610a1e57604051632bc7b84d60e21b815260040160405180910390fd5b6001600160a01b0383166000908152600b602052604090205460ff168015610a4557508115155b8015610a5057508015155b15610a6e57604051632155322760e11b815260040160405180910390fd5b306001600160a01b03841603610a975760405163e339bdab60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320859055600a909152902081905581151580610acd5750600081115b15610afa576001600160a01b0383166000908152600b60205260409020805460ff19166001179055610b1b565b6001600160a01b0383166000908152600b60205260409020805460ff191690555b60408051838152602081018390526001600160a01b038516917f3702fe9b6a853faae6207a036846fcd4d7ff8a226ec78129d5588697c0d7eca0910160405180910390a2505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416610be05760405163e602df0560e01b8152600060048201526024016108c3565b6001600160a01b038316610c0a57604051634a1406b160e11b8152600060048201526024016108c3565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561095d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c7d91815260200190565b60405180910390a350505050565b600d546001600160a01b031615610cfb57600d54604051637ea6b20560e01b8152600060048201526001600160a01b0390911690637ea6b20590602401600060405180830381600087803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050505b6000610d08848484610f16565b90508015610d1f57610d1a8482610faf565b610d29565b3060009081526020525b6000610d358284611226565b90506001600160a01b038516610d62578260026000828254610d579190611239565b90915550610e879050565b6001600160a01b03851660009081526020819052604090205483811015610db55760405163391434e360e21b81526001600160a01b038716600482015260248101829052604481018590526064016108c3565b6001600160a01b0386166000908152602081815260408083208785039055600b90915290205460ff168015610e0357506001600160a01b0385166000908152600b602052604090205460ff16155b8015610e195750600d546001600160a01b031615155b15610e8557600d546040516322ba5f7b60e01b81526001600160a01b03878116600483015260248201879052909116906322ba5f7b90604401600060405180830381600087803b158015610e6c57600080fd5b505af1158015610e80573d6000803e3d6000fd5b505050505b505b6001600160a01b038416610ea357600280548290039055610ec2565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610f0791815260200190565b60405180910390a35050505050565b6006546000906001600160a01b0390811690851603610f375750600061051d565b6001600160a01b038085166000908152600960209081526040808320549387168352600a909152902054612710610f6e83866111ed565b610f789190611204565b610f829084611239565b9250612710610f9182866111ed565b610f9b9190611204565b610fa59084611239565b9695505050505050565b600d546001600160a01b031660009081526020819052604081208054839290610fd9908490611239565b9091555050600d546040518281526001600160a01b03918216918416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b8181101561105457858101830151858201604001528201611038565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461108c57600080fd5b919050565b600080604083850312156110a457600080fd5b6110ad83611075565b946020939093013593505050565b6000806000606084860312156110d057600080fd5b6110d984611075565b92506110e760208501611075565b9150604084013590509250925092565b60006020828403121561110957600080fd5b61051d82611075565b60008060006060848603121561112757600080fd5b61113084611075565b95602085013595506040909401359392505050565b60006020828403121561115757600080fd5b813562ffffff8116811461051d57600080fd5b6000806040838503121561117d57600080fd5b61118683611075565b915061119460208401611075565b90509250929050565b600181811c908216806111b157607f821691505b6020821081036111d157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104f8576104f86111d7565b60008261122157634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104f8576104f86111d7565b808201808211156104f8576104f86111d7565b60006020828403121561125e57600080fd5b8151801515811461051d57600080fdfea264697066735822122087b834c190326abeac9be17fc45b12375d7264bac251e3934188ef08d287365b64736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220c2a3286c5f5a9f2e61d9dbbb5838920f37946195bac6ef4c3bb08b7a023acda264736f6c63430008140033