1 tx
1 call
constructor
constructor(address _memeToken)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
cards
viewfunction cards(uint256) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
earned
viewfunction earned(address account) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lastUpdateTime
viewfunction lastUpdateTime(address) view returns (uint256)
maxStake
viewfunction maxStake() view returns (uint256)
meme
viewfunction meme() view returns (address)
nftAddresses
viewfunction nftAddresses(uint256) view returns (address)
owner
viewfunction owner() view returns (address)
points
viewfunction points(address) view returns (uint256)
stakeStartTime
viewfunction stakeStartTime() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalSupply
viewfunction totalSupply() view returns (uint256)
WITHDRAW_ROLE
viewfunction WITHDRAW_ROLE() view returns (bytes32)
addCard
nonpayablefunction addCard(uint256 amount, uint256 pointsNeed, address nftAddress)
exit
nonpayablefunction exit()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
redeem
nonpayablefunction redeem(uint256 cardID)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMaxStake
nonpayablefunction setMaxStake(uint256 _maxStake)
setStakeStartTime
nonpayablefunction setStakeStartTime(uint256 _stakeStartTime)
stake
nonpayablefunction stake(uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawPoint
nonpayablefunction withdrawPoint(address account) returns (uint256)
events
CardAdded
event CardAdded(uint256 card, uint256 points)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Redeemed
event Redeemed(address indexed user, uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Staked
event Staked(address indexed user, uint256 amount)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
WithdrawPoint
event WithdrawPoint(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x608060405260056006553480156200001657600080fd5b506040516200385f3803806200385f83398181016040528101906200003c919062000419565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200009e62000092620000ba60201b60201c565b620000c260201b60201c565b620000b36000801b336200018860201b60201c565b50620004b2565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200019f8282620001d060201b6200198c1760201c565b620001cb8160056000858152602001908152602001600020620002c260201b62001a6d1790919060201c565b505050565b620001e28282620002fa60201b60201c565b620002be5760016004600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000263620000ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002f2836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200036560201b60201c565b905092915050565b60006004600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000620003798383620003df60201b60201c565b620003d4578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620003d9565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081519050620004138162000498565b92915050565b60006020828403121562000432576200043162000493565b5b6000620004428482850162000402565b91505092915050565b6000620004588262000473565b9050919050565b60006200046c826200044b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620004a3816200045f565b8114620004af57600080fd5b50565b61339d80620004c26000396000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c80638da5cb5b1161010f578063cc1b63d5116100a2578063e4db223011610071578063e4db2230146105c7578063e9fad8ee146105e3578063ea1b28e0146105ed578063f2fde38b1461060b576101e4565b8063cc1b63d514610555578063d547741f14610571578063db006a751461058d578063e02023a1146105a9576101e4565b8063a217fddf116100de578063a217fddf146104bb578063a694fc3a146104d9578063c79d5a49146104f5578063ca15c87314610525576101e4565b80638da5cb5b1461040d5780638dc107681461042b5780639010d07c1461045b57806391d148541461048b576101e4565b80632f2ff15d116101875780636fc14837116101565780636fc148371461039957806370a08231146103b5578063715018a6146103e55780637419f190146103ef576101e4565b80632f2ff15d14610313578063358b81661461032f57806336568abe1461035f57806344097c481461037b576101e4565b8063248a9ca3116101c3578063248a9ca31461026757806324ec5a78146102975780632ce9aead146102c75780632e1a7d4d146102f7576101e4565b80628cc262146101e957806301ffc9a71461021957806318160ddd14610249575b600080fd5b61020360048036038101906101fe9190612662565b610627565b6040516102109190612d04565b60405180910390f35b610233600480360381019061022e9190612769565b610772565b6040516102409190612b51565b60405180910390f35b6102516107ec565b60405161025e9190612d04565b60405180910390f35b610281600480360381019061027c91906126bc565b6107f6565b60405161028e9190612b6c565b60405180910390f35b6102b160048036038101906102ac9190612796565b610816565b6040516102be9190612ad6565b60405180910390f35b6102e160048036038101906102dc9190612662565b610849565b6040516102ee9190612d04565b60405180910390f35b610311600480360381019061030c9190612796565b610861565b005b61032d600480360381019061032891906126e9565b6109c5565b005b61034960048036038101906103449190612662565b6109e6565b6040516103569190612d04565b60405180910390f35b610379600480360381019061037491906126e9565b6109fe565b005b610383610a81565b6040516103909190612b87565b60405180910390f35b6103b360048036038101906103ae9190612796565b610aa5565b005b6103cf60048036038101906103ca9190612662565b610b2b565b6040516103dc9190612d04565b60405180910390f35b6103ed610b74565b005b6103f7610bfc565b6040516104049190612d04565b60405180910390f35b610415610c02565b6040516104229190612ad6565b60405180910390f35b61044560048036038101906104409190612796565b610c2c565b6040516104529190612d04565b60405180910390f35b61047560048036038101906104709190612729565b610c44565b6040516104829190612ad6565b60405180910390f35b6104a560048036038101906104a091906126e9565b610c73565b6040516104b29190612b51565b60405180910390f35b6104c3610cde565b6040516104d09190612b6c565b60405180910390f35b6104f360048036038101906104ee9190612796565b610ce5565b005b61050f600480360381019061050a9190612662565b610ec9565b60405161051c9190612d04565b60405180910390f35b61053f600480360381019061053a91906126bc565b61109c565b60405161054c9190612d04565b60405180910390f35b61056f600480360381019061056a9190612796565b6110c0565b005b61058b600480360381019061058691906126e9565b611146565b005b6105a760048036038101906105a29190612796565b611167565b005b6105b1611690565b6040516105be9190612b6c565b60405180910390f35b6105e160048036038101906105dc91906127f0565b6116b4565b005b6105eb61187b565b005b6105f561188e565b6040516106029190612d04565b60405180910390f35b61062560048036038101906106209190612662565b611894565b005b600080429050806007541061064057600091505061076d565b6000600754600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610692576007546106d3565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905061076861071a6201518061070c6106eb88610b2b565b6106fe8688611a9d90919063ffffffff16565b611ab390919063ffffffff16565b611ac990919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611adf90919063ffffffff16565b925050505b919050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107e557506107e482611af5565b5b9050919050565b6000600154905090565b600060046000838152602001908152602001600020600101549050919050565b600b6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915090505481565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109275761089f81610627565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000821161096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190612c64565b60405180910390fd5b61097382611b6f565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040516109b99190612d04565b60405180910390a25050565b6109ce826107f6565b6109d781611cd0565b6109e18383611ce4565b505050565b60096020528060005260406000206000915090505481565b610a06611d18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612ce4565b60405180910390fd5b610a7d8282611d20565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aad611d18565b73ffffffffffffffffffffffffffffffffffffffff16610acb610c02565b73ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612c84565b60405180910390fd5b8060068190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b7c611d18565b73ffffffffffffffffffffffffffffffffffffffff16610b9a610c02565b73ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612c84565b60405180910390fd5b610bfa6000611d54565b565b60075481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915090505481565b6000610c6b8260056000868152602001908152602001600020611e1a90919063ffffffff16565b905092915050565b60006004600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610dab57610d2381610627565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600754421015610df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de790612ca4565b60405180910390fd5b60006006541115610e6e57670de0b6b3a7640000600654610e119190612df6565b610e2c610e1d33610b2b565b84611adf90919063ffffffff16565b1115610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490612cc4565b60405180910390fd5b5b610e7782611e34565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610ebd9190612d04565b60405180910390a25050565b600081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f9157610f0981610627565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b7f5d8e12c39142ff96d79d04d15d1ba1269e4fe57bb9d26f43523628b34ba108ec610fbb81611cd0565b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff167ed21e1803608fb798bdaeb51a8526e4f250c8c4a40433269c394a884750d8e8826040516110899190612d04565b60405180910390a2809350505050919050565b60006110b960056000848152602001908152602001600020611f97565b9050919050565b6110c8611d18565b73ffffffffffffffffffffffffffffffffffffffff166110e6610c02565b73ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390612c84565b60405180910390fd5b8060078190555050565b61114f826107f6565b61115881611cd0565b6111628383611d20565b505050565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461122d576111a581610627565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600a6000848152602001908152602001600020541415611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90612c44565b60405180910390fd5b600a600083815260200190815260200160002054600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612be4565b60405180910390fd5b600b600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663869f7594836040518263ffffffff1660e01b81526004016113859190612d04565b60206040518083038186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d591906127c3565b600b600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd85b039846040518263ffffffff1660e01b81526004016114419190612d04565b60206040518083038186803b15801561145957600080fd5b505afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906127c3565b106114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c890612c24565b60405180910390fd5b611536600a600084815260200190815260200160002054600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9d90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933856040518363ffffffff1660e01b81526004016115e9929190612b28565b602060405180830381600087803b15801561160357600080fd5b505af1158015611617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163b91906127c3565b90503373ffffffffffffffffffffffffffffffffffffffff167f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369826040516116839190612d04565b60405180910390a2505050565b7f5d8e12c39142ff96d79d04d15d1ba1269e4fe57bb9d26f43523628b34ba108ec81565b6116bc611d18565b73ffffffffffffffffffffffffffffffffffffffff166116da610c02565b73ffffffffffffffffffffffffffffffffffffffff1614611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172790612c84565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663780900dc856040518263ffffffff1660e01b815260040161176b9190612d04565b602060405180830381600087803b15801561178557600080fd5b505af1158015611799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bd91906127c3565b9050670de0b6b3a7640000836117d39190612df6565b600a60008381526020019081526020016000208190555081600b600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f62399d91d89d6e694d41e47f3e6010c0e0b4ec78ecdddb1c02d0e321780859b0818460405161186d929190612d1f565b60405180910390a150505050565b61188c61188733610b2b565b610861565b565b60065481565b61189c611d18565b73ffffffffffffffffffffffffffffffffffffffff166118ba610c02565b73ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790612c84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790612c04565b60405180910390fd5b61198981611d54565b50565b6119968282610c73565b611a695760016004600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611a0e611d18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611a95836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611fac565b905092915050565b60008183611aab9190612e50565b905092915050565b60008183611ac19190612df6565b905092915050565b60008183611ad79190612dc5565b905092915050565b60008183611aed9190612d6f565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b685750611b678261201c565b5b9050919050565b611b8481600154611a9d90919063ffffffff16565b600181905550611bdc81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611c7a929190612b28565b602060405180830381600087803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061268f565b5050565b611ce181611cdc611d18565b612086565b50565b611cee828261198c565b611d138160056000858152602001908152602001600020611a6d90919063ffffffff16565b505050565b600033905090565b611d2a8282612123565b611d4f816005600085815260200190815260200160002061220590919063ffffffff16565b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611e298360000183612235565b60001c905092915050565b611e4981600154611adf90919063ffffffff16565b600181905550611ea181600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611adf90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401611f4193929190612af1565b602060405180830381600087803b158015611f5b57600080fd5b505af1158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f93919061268f565b5050565b6000611fa582600001612260565b9050919050565b6000611fb88383612271565b612011578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612016565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6120908282610c73565b61211f576120b58173ffffffffffffffffffffffffffffffffffffffff166014612294565b6120c38360001c6020612294565b6040516020016120d4929190612a9c565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121169190612ba2565b60405180910390fd5b5050565b61212d8282610c73565b156122015760006004600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506121a6611d18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600061222d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6124d0565b905092915050565b600082600001828154811061224d5761224c613022565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6060600060028360026122a79190612df6565b6122b19190612d6f565b67ffffffffffffffff8111156122ca576122c9613051565b5b6040519080825280601f01601f1916602001820160405280156122fc5781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061233457612333613022565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061239857612397613022565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026123d89190612df6565b6123e29190612d6f565b90505b6001811115612482577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061242457612423613022565b5b1a60f81b82828151811061243b5761243a613022565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061247b90612f6b565b90506123e5565b50600084146124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd90612bc4565b60405180910390fd5b8091505092915050565b600080836001016000848152602001908152602001600020549050600081146125d85760006001826125029190612e50565b905060006001866000018054905061251a9190612e50565b905081811461258957600086600001828154811061253b5761253a613022565b5b906000526020600020015490508087600001848154811061255f5761255e613022565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061259d5761259c612ff3565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506125de565b60009150505b92915050565b6000813590506125f3816132f4565b92915050565b6000815190506126088161330b565b92915050565b60008135905061261d81613322565b92915050565b60008135905061263281613339565b92915050565b60008135905061264781613350565b92915050565b60008151905061265c81613350565b92915050565b60006020828403121561267857612677613080565b5b6000612686848285016125e4565b91505092915050565b6000602082840312156126a5576126a4613080565b5b60006126b3848285016125f9565b91505092915050565b6000602082840312156126d2576126d1613080565b5b60006126e08482850161260e565b91505092915050565b60008060408385031215612700576126ff613080565b5b600061270e8582860161260e565b925050602061271f858286016125e4565b9150509250929050565b600080604083850312156127405761273f613080565b5b600061274e8582860161260e565b925050602061275f85828601612638565b9150509250929050565b60006020828403121561277f5761277e613080565b5b600061278d84828501612623565b91505092915050565b6000602082840312156127ac576127ab613080565b5b60006127ba84828501612638565b91505092915050565b6000602082840312156127d9576127d8613080565b5b60006127e78482850161264d565b91505092915050565b60008060006060848603121561280957612808613080565b5b600061281786828701612638565b935050602061282886828701612638565b9250506040612839868287016125e4565b9150509250925092565b61284c81612e84565b82525050565b61285b81612e96565b82525050565b61286a81612ea2565b82525050565b61287981612f02565b82525050565b600061288a82612d48565b6128948185612d53565b93506128a4818560208601612f38565b6128ad81613085565b840191505092915050565b60006128c382612d48565b6128cd8185612d64565b93506128dd818560208601612f38565b80840191505092915050565b60006128f6602083612d53565b915061290182613096565b602082019050919050565b6000612919602483612d53565b9150612924826130bf565b604082019050919050565b600061293c602683612d53565b91506129478261310e565b604082019050919050565b600061295f601083612d53565b915061296a8261315d565b602082019050919050565b6000612982600e83612d53565b915061298d82613186565b602082019050919050565b60006129a5601183612d53565b91506129b0826131af565b602082019050919050565b60006129c8602083612d53565b91506129d3826131d8565b602082019050919050565b60006129eb600e83612d53565b91506129f682613201565b602082019050919050565b6000612a0e601683612d53565b9150612a198261322a565b602082019050919050565b6000612a31601783612d64565b9150612a3c82613253565b601782019050919050565b6000612a54601183612d64565b9150612a5f8261327c565b601182019050919050565b6000612a77602f83612d53565b9150612a82826132a5565b604082019050919050565b612a9681612ef8565b82525050565b6000612aa782612a24565b9150612ab382856128b8565b9150612abe82612a47565b9150612aca82846128b8565b91508190509392505050565b6000602082019050612aeb6000830184612843565b92915050565b6000606082019050612b066000830186612843565b612b136020830185612843565b612b206040830184612a8d565b949350505050565b6000604082019050612b3d6000830185612843565b612b4a6020830184612a8d565b9392505050565b6000602082019050612b666000830184612852565b92915050565b6000602082019050612b816000830184612861565b92915050565b6000602082019050612b9c6000830184612870565b92915050565b60006020820190508181036000830152612bbc818461287f565b905092915050565b60006020820190508181036000830152612bdd816128e9565b9050919050565b60006020820190508181036000830152612bfd8161290c565b9050919050565b60006020820190508181036000830152612c1d8161292f565b9050919050565b60006020820190508181036000830152612c3d81612952565b9050919050565b60006020820190508181036000830152612c5d81612975565b9050919050565b60006020820190508181036000830152612c7d81612998565b9050919050565b60006020820190508181036000830152612c9d816129bb565b9050919050565b60006020820190508181036000830152612cbd816129de565b9050919050565b60006020820190508181036000830152612cdd81612a01565b9050919050565b60006020820190508181036000830152612cfd81612a6a565b9050919050565b6000602082019050612d196000830184612a8d565b92915050565b6000604082019050612d346000830185612a8d565b612d416020830184612a8d565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612d7a82612ef8565b9150612d8583612ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612dba57612db9612f95565b5b828201905092915050565b6000612dd082612ef8565b9150612ddb83612ef8565b925082612deb57612dea612fc4565b5b828204905092915050565b6000612e0182612ef8565b9150612e0c83612ef8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4557612e44612f95565b5b828202905092915050565b6000612e5b82612ef8565b9150612e6683612ef8565b925082821015612e7957612e78612f95565b5b828203905092915050565b6000612e8f82612ed8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612f0d82612f14565b9050919050565b6000612f1f82612f26565b9050919050565b6000612f3182612ed8565b9050919050565b60005b83811015612f56578082015181840152602081019050612f3b565b83811115612f65576000848401525b50505050565b6000612f7682612ef8565b91506000821415612f8a57612f89612f95565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4e6f7420656e6f75676820706f696e747320746f2072656465656d20666f722060008201527f6361726400000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d6178206361726473206d696e74656400000000000000000000000000000000600082015250565b7f43617264206e6f7420666f756e64000000000000000000000000000000000000600082015250565b7f43616e6e6f742077697468647261772030000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7374616b65206e6f74206f70656e000000000000000000000000000000000000600082015250565b7f43616e6e6f74207374616b65206d6f7265206d656d6500000000000000000000600082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6132fd81612e84565b811461330857600080fd5b50565b61331481612e96565b811461331f57600080fd5b50565b61332b81612ea2565b811461333657600080fd5b50565b61334281612eac565b811461334d57600080fd5b50565b61335981612ef8565b811461336457600080fd5b5056fea2646970667358221220d08375916da4d1891891a1cbc46fe5848188cae4c7ca30afd5dacb5a59f34fbe64736f6c6343000807003300000000000000000000000060c7aea107ea3cdab21455e187cfb7e54e09b760