0 txs
63.7k calls
constructor
No constructor.
functions
authorisedProxyAddresses
viewfunction authorisedProxyAddresses(uint256) view returns (address)
canClean
viewfunction canClean(uint256 tokenId) view returns (bool)
canFeed
viewfunction canFeed(uint256 tokenId) view returns (bool)
canLevelUp
viewfunction canLevelUp(uint256 tokenId) view returns (bool)
canPlay
viewfunction canPlay(uint256 tokenId) view returns (bool)
catIds
viewfunction catIds(uint256) view returns (uint256)
catStates
viewfunction catStates(uint256) view returns (uint8 level, uint16 numFeeds, uint256 lastFeed, uint16 numPlays, uint256 lastPlay, uint16 numCleans, uint256 lastClean)
getAllCats
viewfunction getAllCats(uint256 offset, uint16 pageSize) view returns (tuple[])
getCatInfo
viewfunction getCatInfo(uint256 tokenId) view returns (tuple)
getCatInfo2
viewfunction getCatInfo2(uint256 tokenId) view returns (tuple)
getCatInfo3
viewfunction getCatInfo3(uint256 tokenId) view returns (tuple)
getCatState
viewfunction getCatState(uint256 tokenId) view returns (tuple)
getConfig
viewfunction getConfig() view returns (uint256[3], uint16[3], uint8)
getConfig2
viewfunction getConfig2() view returns (uint256[3], uint16[3], uint8, uint16)
getFriendsList
viewfunction getFriendsList(uint256 tokenId) view returns (tuple[])
getLevel
viewfunction getLevel(uint256 tokenId) view returns (uint8)
getPendingInvitesList
viewfunction getPendingInvitesList(uint256 tokenId) view returns (tuple[])
getPlayInviteIds
viewfunction getPlayInviteIds(uint256 tokenId) view returns (uint256[])
getPlayInvitesList
viewfunction getPlayInvitesList(uint256 tokenId) view returns (tuple[])
getPointBalances
viewfunction getPointBalances(uint256[] tokenIds) view returns (tuple[])
getPointsBalance
viewfunction getPointsBalance(uint256 tokenId) view returns (uint256)
levelAwards
viewfunction levelAwards(uint256) view returns (uint256)
maxActionState
viewfunction maxActionState(uint256) view returns (uint256 firstActionTimestamp, uint16 count)
maxLevel
viewfunction maxLevel() view returns (uint8)
owner
viewfunction owner() view returns (address)
pendingInvites
viewfunction pendingInvites(uint256, uint256) view returns (uint256)
playInvites
viewfunction playInvites(uint256, uint256) view returns (uint256)
pointBalances
viewfunction pointBalances(uint256) view returns (uint256)
tokenIdArrayToTokenList
viewfunction tokenIdArrayToTokenList(uint256[] tokenIds) view returns (tuple[])
acceptPlayDate
nonpayablefunction acceptPlayDate(uint256 tokenId, uint256 inviter)
cleanCat
nonpayablefunction cleanCat(uint256 tokenId)
feedCat
nonpayablefunction feedCat(uint256 tokenId)
initialize
nonpayablefunction initialize(address _nftContractAddress)
inviteCatForPlaying
nonpayablefunction inviteCatForPlaying(uint256 tokenId, uint256 invitee)
levelUp
nonpayablefunction levelUp(uint256 tokenId)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuthedProxyAddresses
nonpayablefunction setAuthedProxyAddresses(address[] _authorisedProxyAddresses)
setLevelAwards
nonpayablefunction setLevelAwards(uint256[] _levelAwards)
setMaxActionConfig
nonpayablefunction setMaxActionConfig(uint16 _maxActions, uint256 _maxActionsInterval)
setMaxLevel
nonpayablefunction setMaxLevel(uint8 _maxLevel)
setMinIntervals
nonpayablefunction setMinIntervals(uint256[3] _minIntervals)
setMinLevelUpScores
nonpayablefunction setMinLevelUpScores(uint16[3] _minLevelUpScores)
setNftContractAddress
nonpayablefunction setNftContractAddress(address _nftContractAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint64 version)
LevelUp
event LevelUp(uint256 indexed tokenId, uint8 level, uint256 pointsBalance)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x608060405234801561001057600080fd5b50613ce5806100206000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806386481d4011610151578063c3f909d4116100c3578063d5bffcfa11610087578063d5bffcfa146106d5578063d6bf02dc146106f5578063da31d64014610715578063efc51df614610728578063f2fde38b1461073b578063ff37d3491461074e57600080fd5b8063c3f909d41461063b578063c450e09814610652578063c4d66de814610695578063cc06c359146106a8578063ce191da1146106b557600080fd5b80639c71bf34116101155780639c71bf341461052c578063a5a8f4b714610544578063a676b8d914610557578063ac885c991461056a578063b2ac788a1461058a578063b7389299146105aa57600080fd5b806386481d401461048e578063894ba366146104c35780638da5cb5b146104d65780638f967209146105065780639c3fd15e1461051957600080fd5b80634f34aa58116101ea57806364fb0965116101ae57806364fb09651461041a5780636ae5bf441461042d578063715018a61461044057806372d19e8d14610448578063842b4d171461045b57806385ecdf961461047b57600080fd5b80634f34aa58146103945780635135a78e146103a75780635de32ef5146103c75780635e2b9146146103e757806361990144146103fa57600080fd5b8063350f71981161023c578063350f7198146102ed578063393b3598146103005780633dc4cfba14610323578063449a34ba14610336578063477a3eb51461035657806349fc85c21461038157600080fd5b8063023bf2cc146102795780630ce81dfd1461029f5780630ce90ec2146102b457806321c87ee8146102c757806322385cb4146102da575b600080fd5b61028c6102873660046132bf565b610761565b6040519081526020015b60405180910390f35b6102b26102ad3660046132e1565b610792565b005b6102b26102c23660046132e1565b6109a0565b6102b26102d53660046132fa565b610be9565b6102b26102e83660046133a4565b610c07565b6102b26102fb3660046132e1565b610c20565b61031361030e3660046132e1565b610deb565b6040519015158152602001610296565b6102b261033136600461340b565b610fde565b6103496103443660046132e1565b611002565b6040516102969190613485565b6103696103643660046132e1565b611077565b6040516001600160a01b039091168152602001610296565b6102b261038f366004613528565b6110a1565b6103496103a23660046135a1565b6110b6565b6103ba6103b53660046132e1565b6112cf565b60405161029691906136f0565b6103da6103d53660046132e1565b61141c565b604051610296919061373a565b6102b26103f53660046132bf565b611549565b61040d6104083660046132e1565b6118da565b6040516102969190613776565b6102b26104283660046132bf565b6119a1565b6102b261043b3660046135a1565b611fc2565b6102b2611fdd565b61028c6104563660046132e1565b611ff1565b61046e6104693660046132e1565b612012565b6040516102969190613789565b6103136104893660046132e1565b61219d565b6104b161049c3660046132e1565b60009081526006602052604090205460ff1690565b60405160ff9091168152602001610296565b6102b26104d1366004613825565b612239565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610369565b6103136105143660046132e1565b612254565b61028c6105273660046132bf565b6122cd565b6105346122e9565b60405161029694939291906138fe565b6103496105523660046132e1565b6123aa565b61028c6105653660046132e1565b612414565b61028c6105783660046132e1565b6000908152600a602052604090205490565b61059d610598366004613936565b612424565b6040516102969190613962565b6105fc6105b83660046132e1565b60066020526000908152604090208054600182015460028301546003840154600485015460059095015460ff85169561ffff61010090960486169593841693169087565b6040805160ff909816885261ffff9687166020890152870194909452918416606086015260808501529190911660a083015260c082015260e001610296565b61064361260b565b604051610296939291906139d2565b61067d6106603660046132e1565b600c602052600090815260409020805460019091015461ffff1682565b6040805192835261ffff909116602083015201610296565b6102b26106a33660046139fe565b6126bf565b6005546104b19060ff1681565b6106c86106c33660046132e1565b612922565b6040516102969190613a1b565b6106e86106e33660046135a1565b612984565b6040516102969190613a2e565b61028c6107033660046132e1565b600a6020526000908152604090205481565b6102b26107233660046139fe565b612a74565b6103496107363660046132e1565b612a9e565b6102b26107493660046139fe565b612b08565b61031361075c3660046132e1565b612b46565b6010602052816000526040600020818154811061077d57600080fd5b90600052602060002001600091509150505481565b600054600f80546040805160208084028201810190925282815285946001600160a01b0316936108059391929091908301828280156107fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107dc575b505050505033612bab565b8061088157506040516331a9108f60e11b81526004810183905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190613a70565b6001600160a01b0316145b6108a65760405162461bcd60e51b815260040161089d90613a8d565b60405180910390fd5b6108af8361219d565b6108f45760405162461bcd60e51b8152602060048201526016602482015275596f752077696c6c206265207363726174636865642160501b604482015260640161089d565b6000838152600660205260408120600401805461ffff169161091583613ada565b91906101000a81548161ffff021916908361ffff16021790555050426006600085815260200190815260200160002060050181905550600960008154811061095f5761095f613afb565b9060005260206000200154600a6000858152602001908152602001600020600082825461098c9190613b11565b9091555061099b905083612c10565b505050565b600054600f80546040805160208084028201810190925282815285946001600160a01b031693610a119391929091908301828280156107fa576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116107dc57505050505033612bab565b80610a8d57506040516331a9108f60e11b81526004810183905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a829190613a70565b6001600160a01b0316145b610aa95760405162461bcd60e51b815260040161089d90613a8d565b610ab283610deb565b610af25760405162461bcd60e51b8152602060048201526011602482015270476f616c206e6f7420726561636865642160781b604482015260640161089d565b6000838152600660205260408120805460ff1691610b0f83613b24565b82546101009290920a60ff818102199093169183160217909155600085815260066020526040902054600980549093509116908110610b5057610b50613afb565b9060005260206000200154600a60008581526020019081526020016000206000828254610b7d9190613b11565b90915550610b8c905083612c10565b600083815260066020908152604080832054600a83529281902054815160ff90941684529183019190915284917f0a184989a362d23d7f52ce403c138273381c6bd74bb6b10dcce9fa70fd47e722910160405180910390a2505050565b610bf1612cb6565b6005805460ff191660ff92909216919091179055565b610c0f612cb6565b610c1c6004826003612f78565b5050565b600054600f80546040805160208084028201810190925282815285946001600160a01b031693610c919391929091908301828280156107fa576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116107dc57505050505033612bab565b80610d0d57506040516331a9108f60e11b81526004810183905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d029190613a70565b6001600160a01b0316145b610d295760405162461bcd60e51b815260040161089d90613a8d565b610d3283612b46565b610d735760405162461bcd60e51b8152602060048201526012602482015271043617420697320746f6f20666174203a2d560741b604482015260640161089d565b610d7c83612d11565b60008381526006602052604090208054610100900461ffff16906001610da183613ada565b91906101000a81548161ffff021916908361ffff16021790555050426006600085815260200190815260200160002060010181905550600960008154811061095f5761095f613afb565b60008181526006602052604081205481908190600e60ff9091161115610e3357600084815260066020526040902054600e9250610e2c90839060ff16613b43565b9050610e49565b505060008281526006602052604081205460ff16905b60055460008581526006602052604090205460ff90811691161480610e815750600084815260066020526040902054600160ff909116105b80610e925750610e9084612d76565b155b80610ef75750600454610ead9060ff83169061ffff16613b5c565b610eb8906003613b5c565b600454610ecd9060ff85169061ffff16613b5c565b610ed79190613b82565b60008581526006602052604090205461ffff918216610100909104909116105b80610f645750600454610f189060ff83169062010000900461ffff16613b5c565b610f23906003613b5c565b600454610f3e9060ff85169062010000900461ffff16613b5c565b610f489190613b82565b60008581526006602052604090206002015461ffff9182169116105b80610fd55750600454610f879060ff831690640100000000900461ffff16613b5c565b610f92906003613b5c565b600454610faf9060ff851690640100000000900461ffff16613b5c565b610fb99190613b82565b60008581526006602052604090206004015461ffff9182169116105b15949350505050565b610fe6612cb6565b600d805461ffff191661ffff9390931692909217909155600e55565b60606110716006600084815260200190815260200160002060060180548060200260200160405190810160405280929190818152602001828054801561106757602002820191906000526020600020905b815481526020019060010190808311611053575b50505050506110b6565b92915050565b600f818154811061108757600080fd5b6000918252602090912001546001600160a01b0316905081565b6110a9612cb6565b610c1c600182600361300e565b6000805482516060926001600160a01b03909216919067ffffffffffffffff8111156110e4576110e461331d565b60405190808252806020026020018201604052801561113d57816020015b6040805160a0810182526000808252606060208084018290529383018290528201819052608082015282526000199092019101816111025790505b50905060005b84518110156112c757600085828151811061116057611160613afb565b602002602001015190506040518060a00160405280828152602001856001600160a01b031663c87b56dd846040518263ffffffff1660e01b81526004016111a991815260200190565b600060405180830381865afa1580156111c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ee9190810190613b9d565b8152602001856001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161122191815260200190565b602060405180830381865afa15801561123e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112629190613a70565b6001600160a01b031681526000838152600660209081526040918290205460ff16908301520161129183612254565b15158152508383815181106112a8576112a8613afb565b60200260200101819052505080806112bf90613c31565b915050611143565b509392505050565b6112d761303c565b604080516000848152600660208181529184902061018084018552805460ff81166080860190815261ffff61010092839004811660a0880152600184015460c08801526002840154811660e0880152600384015492870192909252600483015490911661012086015260058201546101408601529181018054865181860281018601909752808752949586959394929361016087019391929183018282801561139f57602002820191906000526020600020905b81548152602001906001019080831161138b575b5050505050815250508152602001600a60008581526020019081526020016000205481526020016113cf84612d76565b6113f457600e546000858152600c60205260409020546113ef9190613b11565b6113f7565b60005b81526000938452600c602090815260409094206001015461ffff169301929092525090565b61142461306e565b604080516000848152600660208181529184902061016084018552805460ff81166060860190815261ffff6101009283900481166080880152600184015460a08801526002840154811660c0880152600384015460e0880152600484015416918601919091526005820154610120860152918101805486518186028101860190975280875294958695939492936101408701939192918301828280156114e957602002820191906000526020600020905b8154815260200190600101908083116114d5575b5050505050815250508152602001600a600085815260200190815260200160002054815260200161151984612d76565b61153e57600e546000858152600c60205260409020546115399190613b11565b611541565b60005b905292915050565b600054600f80546040805160208084028201810190925282815286946001600160a01b0316936115ba9391929091908301828280156107fa576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116107dc57505050505033612bab565b8061163657506040516331a9108f60e11b81526004810183905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190613a70565b6001600160a01b0316145b6116525760405162461bcd60e51b815260040161089d90613a8d565b600083815260066020526040902054600160ff90911610156116a057604051806060016040528060298152602001613c876029913960405162461bcd60e51b815260040161089d9190613c4a565b8284036116fd5760405162461bcd60e51b815260206004820152602560248201527f4361742063616e6e6f7420706c61792077697468207468656d73656c6620e0b26044820152640502ff059560dd1b606482015260840161089d565b6000546040516331a9108f60e11b8152600481018590526001600160a01b039091169033908290636352211e90602401602060405180830381865afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176e9190613a70565b6001600160a01b0316036117df5760405162461bcd60e51b815260206004820152603260248201527f596f757220636174732062726f746865727320616e64207369737465727320646044820152716f6e27742067657420616c6f6e67203a2d2f60701b606482015260840161089d565b60005b60008581526007602052604090205481101561188f57600085815260076020526040902080548791908390811061181b5761181b613afb565b90600052602060002001540361187d5760405162461bcd60e51b815260206004820152602160248201527f416c726561647920696e766974656420746869732063617420746f20706c61796044820152602160f81b606482015260840161089d565b8061188781613c31565b9150506117e2565b5061189985612d11565b505050600081815260076020908152604080832080546001818101835591855283852001869055948352601082528220805494850181558252902090910155565b6118e2613095565b60008281526006602081815260409283902083516101008082018652825460ff811683520461ffff908116828501526001830154828701526002830154811660608301526003830154608083015260048301541660a0820152600582015460c082015292810180548551818502810185019096528086529394919360e086019383018282801561199157602002820191906000526020600020905b81548152602001906001019080831161197d575b5050505050815250509050919050565b600054600f80546040805160208084028201810190925282815286946001600160a01b031693611a129391929091908301828280156107fa576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116107dc57505050505033612bab565b80611a8e57506040516331a9108f60e11b81526004810183905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a839190613a70565b6001600160a01b0316145b611aaa5760405162461bcd60e51b815260040161089d90613a8d565b6000848152600760205260408120549003611afd5760405162461bcd60e51b8152602060048201526013602482015272596f752068617665206e6f20696e766974657360681b604482015260640161089d565b82600003611b405760405162461bcd60e51b815260206004820152601060248201526f53656c65637420616e20696e7669746560801b604482015260640161089d565b60005b600085815260076020526040902054811015611f7f576000858152600760205260409020805485919083908110611b7c57611b7c613afb565b906000526020600020015403611f6d5760008581526007602052604090205460011015611c0b5760008581526007602052604090208054611bbf90600190613c5d565b81548110611bcf57611bcf613afb565b9060005260206000200154600760008781526020019081526020016000208281548110611bfe57611bfe613afb565b6000918252602090912001555b6000858152600760205260409020805480611c2857611c28613c70565b6001900381819060005260206000200160009055905560005b600085815260106020526040902054811015611d53576000858152601060205260409020805487919083908110611c7a57611c7a613afb565b906000526020600020015403611d415760008581526010602052604090205460011015611d095760008581526010602052604090208054611cbd90600190613c5d565b81548110611ccd57611ccd613afb565b9060005260206000200154601060008781526020019081526020016000208281548110611cfc57611cfc613afb565b6000918252602090912001555b6000858152601060205260409020805480611d2657611d26613c70565b60019003818190600052602060002001600090559055611d53565b80611d4b81613c31565b915050611c41565b50611d5d85612254565b15611e09576000858152600660205260408120600201805461ffff1691611d8383613ada565b91906101000a81548161ffff021916908361ffff160217905550504260066000878152602001908152602001600020600301819055506009600081548110611dcd57611dcd613afb565b9060005260206000200154600a60008781526020019081526020016000206000828254611dfa9190613b11565b90915550611e09905085612c10565b611e1284612254565b15611ebe576000848152600660205260408120600201805461ffff1691611e3883613ada565b91906101000a81548161ffff021916908361ffff160217905550504260066000868152602001908152602001600020600301819055506009600081548110611e8257611e82613afb565b9060005260206000200154600a60008681526020019081526020016000206000828254611eaf9190613b11565b90915550611ebe905084612c10565b6000858152600660208181526040928390209091018054835181840281018401909452808452611f239392830182828015611f1857602002820191906000526020600020905b815481526020019060010190808311611f04575b505050505085612dd6565b611f67576000858152600660208181526040808420830180546001818101835591865283862001899055888552908420909201805492830181558352909120018590555b50611fbc565b80611f7781613c31565b915050611b43565b5060405162461bcd60e51b8152602060048201526011602482015270125b9d9a5d195c881b9bdd08199bdd5b99607a1b604482015260640161089d565b50505050565b611fca612cb6565b8051610c1c9060099060208401906130e9565b611fe5612cb6565b611fef6000612e1f565b565b6008818154811061200157600080fd5b600091825260209091200154905081565b61201a613123565b604080516000848152600660208181529184902061020084018552805460ff811661010080870191825261ffff92048216610120870152600183015461014087015260028301548216610160870152600383015461018087015260048301549091166101a086015260058201546101c0860152918101805486518186028101860190975280875294958695939492936101e08701939192918301828280156120e157602002820191906000526020600020905b8154815260200190600101908083116120cd575b5050505050815250508152602001600a600085815260200190815260200160002054815260200161211184612d76565b61213657600e546000858152600c60205260409020546121319190613b11565b612139565b60005b81526000848152600c60209081526040918290206001015461ffff16908301520161216384612b46565b151581526020016121738461219d565b1515815260200161218384612254565b1515815260200161219384610deb565b1515905292915050565b60008181526006602052604081205460ff16158015906121fb57506121df600460025b601091828204019190066002029054906101000a900461ffff16612e90565b60008381526006602052604090206004015461ffff9182169116105b801561220b575061220b82612d76565b801561107157506003546000838152600660205260409020600501546122319190613b11565b421192915050565b612241612cb6565b8051610c1c90600f90602084019061316e565b60008181526006602052604081205460ff1615801590612297575061227b600460016121c0565b60008381526006602052604090206002015461ffff9182169116105b80156122a757506122a782612d76565b801561107157506002546000838152600660205260409020600301546122319190613b11565b6007602052816000526040600020818154811061077d57600080fd5b6122f16131c3565b6122f96131c3565b600554600d546040805160608101909152600092839260019260049260ff169161ffff16908460038282826020028201915b81548152602001906001019080831161232b575050604080516060810191829052949850879350600392509050826000855b82829054906101000a900461ffff1661ffff168152602001906002019060208260010104928301926001038202915080841161235d57905050505050509250935093509350935090919293565b60606110716010600084815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561106757602002820191906000526020600020908154815260200190600101908083116110535750505050506110b6565b6009818154811061200157600080fd5b600080546008546060926001600160a01b039092169190612460906124599061ffff871690612454908990613c5d565b612eef565b6000612f07565b905060008167ffffffffffffffff81111561247d5761247d61331d565b6040519080825280602002602001820160405280156124cf57816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018161249b5790505b509050816000036124e4579250611071915050565b60005b8281101561260157600060086124fd8984613b11565b8154811061250d5761250d613afb565b906000526020600020015490506040518060800160405280828152602001866001600160a01b0316636352211e846040518263ffffffff1660e01b815260040161255991815260200190565b602060405180830381865afa158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a9190613a70565b6001600160a01b0316815260008381526006602090815260408083205460ff1682850152858352600a909152908190205491015283518490849081106125e2576125e2613afb565b60200260200101819052505080806125f990613c31565b9150506124e7565b5095945050505050565b6126136131c3565b61261b6131c3565b600554604080516060810190915260009160019160049160ff16908360038282826020028201915b815481526020019060010190808311612643575050604080516060810191829052949750869350600392509050826000855b82829054906101000a900461ffff1661ffff168152602001906002019060208260010104928301926001038202915080841161267557905050505050509150925092509250909192565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156127055750825b905060008267ffffffffffffffff1660011480156127225750303b155b905081158015612730575080155b1561274e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561277857845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905560408051606081018252603c80825260208201819052918101919091526127be9060019060036131e1565b5060408051606081018252600180825260208201819052918101919091526127ea906004906003613214565b506005805460ff19166014179055600d805461ffff1916600f17905562015180600e55604080516102a08101825260198152600060208201819052918101829052606081018290526080810182905260a0810182905260c081018290526101f460e0820152610100810182905261012081018290526104b0610140820152610160810182905261018081018290526101a081018290526109c46101c08201526101e081018290526102008101829052610bb86102208201526102408101829052610260810191909152610dac6102808201526128ca906009906015613269565b506128d433612f16565b831561291a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561297857602002820191906000526020600020905b815481526020019060010190808311612964575b50505050509050919050565b60606000825167ffffffffffffffff8111156129a2576129a261331d565b6040519080825280602002602001820160405280156129e757816020015b60408051808201909152600080825260208201528152602001906001900390816129c05790505b50905060005b8351811015612a6d576000848281518110612a0a57612a0a613afb565b602002602001015190506040518060400160405280828152602001600a600084815260200190815260200160002054815250838381518110612a4e57612a4e613afb565b6020026020010181905250508080612a6590613c31565b9150506129ed565b5092915050565b612a7c612cb6565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60606110716007600084815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561106757602002820191906000526020600020908154815260200190600101908083116110535750505050506110b6565b612b10612cb6565b6001600160a01b038116612b3a57604051631e4fbdf760e01b81526000600482015260240161089d565b612b4381612e1f565b50565b6000612b536004826121c0565b60008381526006602052604090205461ffff918216610100909104909116108015612b825750612b8282612d76565b801561107157506001600001546000838152600660205260409020600101546122319190613b11565b6000805b8351811015612c0657826001600160a01b0316848281518110612bd457612bd4613afb565b60200260200101516001600160a01b031603612bf4576001915050611071565b80612bfe81613c31565b915050612baf565b5060009392505050565b6000818152600c602052604090206001015461ffff1615801590612c4e5750600d546000828152600c602052604090206001015461ffff9182169116105b15612c92576000818152600c60205260408120600101805461ffff1691612c7483613ada565b91906101000a81548161ffff021916908361ffff1602179055505050565b6000908152600c602052604090206001818101805461ffff19169091179055429055565b33612ce87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614611fef5760405163118cdaa760e01b815233600482015260240161089d565b60008181526006602052604081205460ff169003612b43576000818152600660205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b600d546000828152600c6020526040812060010154909161ffff90811691161015612da357506001919050565b600e546000838152600c60205260409020544291612dc091613b11565b1015612dce57506001919050565b506000919050565b6000805b8351811015612c065782848281518110612df657612df6613afb565b602002602001015103612e0d576001915050611071565b80612e1781613c31565b915050612dda565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6005546000908190600190612eaa90600e9060ff16613b43565b612eb49190613b43565b60ff1690506000612ec684600e613b5c565b9050612ed28285613b5c565b612edd906003613b5c565b612ee79082613b82565b949350505050565b6000818310612efe5781612f00565b825b9392505050565b6000818311612efe5781612f00565b612f1e612f27565b612b4381612f70565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611fef57604051631afcd79f60e31b815260040160405180910390fd5b612b10612f27565b600183019183908215612ffe5791602002820160005b83821115612fce57835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612f8e565b8015612ffc5782816101000a81549061ffff0219169055600201602081600101049283019260010302612fce565b505b5061300a9291506132aa565b5090565b8260038101928215612ffe579160200282015b82811115612ffe578251825591602001919060010190613021565b604051806080016040528061304f613095565b81526020016000815260200160008152602001600061ffff1681525090565b6040518060600160405280613081613095565b815260200160008152602001600081525090565b604051806101000160405280600060ff168152602001600061ffff16815260200160008152602001600061ffff16815260200160008152602001600061ffff16815260200160008152602001606081525090565b828054828255906000526020600020908101928215612ffe5791602002820182811115612ffe578251825591602001919060010190613021565b604051806101000160405280613137613095565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e09091015290565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffe57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061318e565b60405180606001604052806003906020820280368337509192915050565b8260038101928215612ffe579160200282015b82811115612ffe578251829060ff169055916020019190600101906131f4565b600183019183908215612ffe5791602002820160005b83821115612fce57835183826101000a81548161ffff021916908360ff160217905550926020019260020160208160010104928301926001030261322a565b828054828255906000526020600020908101928215612ffe579160200282015b82811115612ffe578251829061ffff16905591602001919060010190613289565b5b8082111561300a57600081556001016132ab565b600080604083850312156132d257600080fd5b50508035926020909101359150565b6000602082840312156132f357600080fd5b5035919050565b60006020828403121561330c57600080fd5b813560ff81168114612f0057600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156133565761335661331d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156133855761338561331d565b604052919050565b803561ffff8116811461339f57600080fd5b919050565b6000606082840312156133b657600080fd5b82601f8301126133c557600080fd5b6133cd613333565b8060608401858111156133df57600080fd5b845b81811015613400576133f28161338d565b8452602093840193016133e1565b509095945050505050565b6000806040838503121561341e57600080fd5b6134278361338d565b946020939093013593505050565b60005b83811015613450578181015183820152602001613438565b50506000910152565b60008151808452613471816020860160208601613435565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561351a57603f19898403018552815160a08151855288820151818a8701526134da82870182613459565b838a01516001600160a01b0316878b015260608085015160ff169088015260809384015115159390960192909252505093860193908601906001016134ac565b509098975050505050505050565b60006060828403121561353a57600080fd5b82601f83011261354957600080fd5b613551613333565b80606084018581111561356357600080fd5b845b81811015613400578035845260209384019301613565565b600067ffffffffffffffff8211156135975761359761331d565b5060051b60200190565b600060208083850312156135b457600080fd5b823567ffffffffffffffff8111156135cb57600080fd5b8301601f810185136135dc57600080fd5b80356135ef6135ea8261357d565b61335c565b81815260059190911b8201830190838101908783111561360e57600080fd5b928401925b8284101561362c57833582529284019290840190613613565b979650505050505050565b600081518084526020808501945080840160005b838110156136675781518752958201959082019060010161364b565b509495945050505050565b600061010060ff8351168452602083015161ffff80821660208701526040850151604087015280606086015116606087015250506080830151608085015260a08301516136c560a086018261ffff169052565b5060c083015160c085015260e08301518160e08601526136e782860182613637565b95945050505050565b60208152600082516080602084015261370c60a0840182613672565b9050602084015160408401526040840151606084015261ffff60608501511660808401528091505092915050565b6020815260008251606060208401526137566080840182613672565b905060208401516040840152604084015160608401528091505092915050565b602081526000612f006020830184613672565b60208152600082516101008060208501526137a8610120850183613672565b9150602085015160408501526040850151606085015261ffff60608601511660808501526080850151151560a085015260a08501516137eb60c086018215159052565b5060c085015180151560e08601525060e0850151801515858301525090949350505050565b6001600160a01b0381168114612b4357600080fd5b6000602080838503121561383857600080fd5b823567ffffffffffffffff81111561384f57600080fd5b8301601f8101851361386057600080fd5b803561386e6135ea8261357d565b81815260059190911b8201830190838101908783111561388d57600080fd5b928401925b8284101561362c5783356138a581613810565b82529284019290840190613892565b8060005b6003811015611fbc5781518452602093840193909101906001016138b8565b8060005b6003811015611fbc57815161ffff168452602093840193909101906001016138db565b610100810161390d82876138b4565b61391a60608301866138d7565b60ff841660c083015261ffff831660e083015295945050505050565b6000806040838503121561394957600080fd5b823591506139596020840161338d565b90509250929050565b602080825282518282018190526000919060409081850190868401855b828110156139c557815180518552868101516001600160a01b0316878601528581015160ff1686860152606090810151908501526080909301929085019060010161397f565b5091979650505050505050565b60e081016139e082866138b4565b6139ed60608301856138d7565b60ff831660c0830152949350505050565b600060208284031215613a1057600080fd5b8135612f0081613810565b602081526000612f006020830184613637565b602080825282518282018190526000919060409081850190868401855b828110156139c557815180518552860151868501529284019290850190600101613a4b565b600060208284031215613a8257600080fd5b8151612f0081613810565b6020808252601c908201527f596f7520646f6e2774206f776e2074686973206b69747479203a2d5000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff808316818103613af157613af1613ac4565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b8082018082111561107157611071613ac4565b600060ff821660ff8103613b3a57613b3a613ac4565b60010192915050565b60ff828116828216039081111561107157611071613ac4565b61ffff818116838216028082169190828114613b7a57613b7a613ac4565b505092915050565b61ffff818116838216019080821115612a6d57612a6d613ac4565b600060208284031215613baf57600080fd5b815167ffffffffffffffff80821115613bc757600080fd5b818401915084601f830112613bdb57600080fd5b815181811115613bed57613bed61331d565b613c00601f8201601f191660200161335c565b9150808252856020828501011115613c1757600080fd5b613c28816020840160208601613435565b50949350505050565b600060018201613c4357613c43613ac4565b5060010190565b602081526000612f006020830184613459565b8181038181111561107157611071613ac4565b634e487b7160e01b600052603160045260246000fdfe43617420646f6573206e6f74206578697374206f72206973206e6f742061646f707465642079657421a26469706673582212205c1758efb1bdaa7e4667f48aa91cf7c435fb4b7165c21184fae69d800f0e636464736f6c63430008140033