0 txs
0 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
calculateFees
purefunction calculateFees(uint256 currentTokenID, uint256 ticketPrice, uint256 ticketFee, uint256 lastClaimedTokenID_) pure returns (uint256)
chainlinkFee
viewfunction chainlinkFee() view returns (uint256)
claimedFees
viewfunction claimedFees() view returns (uint256)
currentLotteryID
viewfunction currentLotteryID() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
jackpot
viewfunction jackpot() view returns (uint256)
lastClaimedTokenID
viewfunction lastClaimedTokenID() view returns (uint256)
lottery
viewfunction lottery(uint256 lotteryID) view returns (tuple)
myobu
viewfunction myobu() view returns (address)
myobuNeededForTickets
viewfunction myobuNeededForTickets(address user, uint256 amount) view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
rewardClaimed
viewfunction rewardClaimed() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
ticketsBought
viewfunction ticketsBought(address user, uint256 lotteryID) view returns (uint256)
tokenID
viewfunction tokenID() view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
toNextLottery
viewfunction toNextLottery() view returns (uint256)
unclaimedFees
viewfunction unclaimedFees() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
buyTickets
payablefunction buyTickets() payable
claimFees
nonpayablefunction claimFees()
claimReward
nonpayablefunction claimReward() returns (bytes32 requestId)
createLottery
nonpayablefunction createLottery(uint256 lotteryLength, uint256 ticketPrice, uint256 ticketFee, uint256 percentageToKeepForNextLottery, uint256 minimumMyobuBalance, uint256 myobuNeededForEachTicket, uint256 percentageToKeepOnNotEnoughMyobu)
extendCurrentLottery
nonpayablefunction extendCurrentLottery(uint256 extraTime)
rawFulfillRandomness
nonpayablefunction rawFulfillRandomness(bytes32 requestId, uint256 randomness)
recoverLINK
nonpayablefunction recoverLINK(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setChainlinkFee
nonpayablefunction setChainlinkFee(uint256 newChainlinkFee)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
FeesClaimed
event FeesClaimed(uint256 amountClaimed, address claimer)
LotteryCreated
event LotteryCreated(uint256 lotteryID, uint256 lotteryLength, uint256 ticketPrice, uint256 ticketFee, uint256 minimumMyobuBalance, uint256 percentageToKeepForNextLottery, uint256 myobuNeededForEachTicket, uint256 percentageToKeepOnNotEnoughMyobu)
LotteryExtended
event LotteryExtended(uint256 extendedBy)
LotteryWon
event LotteryWon(address winner, uint256 amountWon, uint256 tokenID)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TicketsBought
event TicketsBought(address buyer, uint256 amount, uint256 price)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b50604080518082018252601381527f466f756e7461696e206f6620466f7274756e6500000000000000000000000000602080830191909152825180840190935260038352622327a360e91b908301527ff0d54349addcf704f77ae15b96510dea15cb795200000000000000000000000060a0527f514910771af9ca656af840dff83e8264ecf986ca00000000000000000000000060805290620000b43362000196565b8151620000c9906002906020850190620001e8565b508051620000df906003906020840190620001e8565b5050600880546001600160a01b031990811673dfdd3459d4f87234751696840092ee20c970fb0717909155600c805482167397fdef5b5e3285592068316ae4fb453d12f83f031790556009805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055507faa77729d3466ca35ae8d28b3bbac7cc36a5031efdc430821c02bc31a238af445600a55671bc16d674ec80000600b55600f805460ff19166001908117909155600d819055600e55620002cb565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001f6906200028e565b90600052602060002090601f0160209004810192826200021a576000855562000265565b82601f106200023557805160ff191683800117855562000265565b8280016001018555821562000265579182015b828111156200026557825182559160200191906001019062000248565b506200027392915062000277565b5090565b5b8082111562000273576000815560010162000278565b600181811c90821680620002a357607f821691505b60208210811415620002c557634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160601c612f286200030c6000396000818161119601526121a9015260008181610ed5015281816116c8015261217a0152612f286000f3fe6080604052600436106102345760003560e01c8063734d82871161012e578063a894a724116100ab578063c81998261161006f578063c819982614610709578063c87b56dd14610711578063d294f09314610731578063e985e9c514610746578063f2fde38b1461078f57600080fd5b8063a894a72414610676578063a984c35614610696578063b3f00674146106b6578063b88a802f146106d4578063b88d4fde146106e957600080fd5b8063a22cb465116100f2578063a22cb4651461057f578063a284673f1461059f578063a2a30456146105bf578063a57d1560146105d4578063a5c42ef11461066157600080fd5b8063734d8287146105025780637ac98be1146105175780638da5cb5b1461052c57806394985ddd1461054a57806395d89b411461056a57600080fd5b806338b014ca116101bc5780636b31ee01116101805780636b31ee01146104555780636b3974971461046a5780636c07e3e61461048a57806370a08231146104cd578063715018a6146104ed57600080fd5b806338b014ca146103c257806342842e0e146103d75780634a25d2b1146103f75780636352211e146104155780636a8a46a01461043557600080fd5b8063095ea7b311610203578063095ea7b31461032a5780630c21e6e31461034a5780631ede0a661461036d57806323b872dd14610382578063323768c9146103a257600080fd5b806301b62b781461028657806301ffc9a7146102b057806306fdde03146102d0578063081812fc146102f257600080fd5b3661028157426011600061024760105490565b8152602001908152602001600020600201541161027f5760405162461bcd60e51b815260040161027690612c48565b60405180910390fd5b005b600080fd5b34801561029257600080fd5b5061029b6107af565b60405190151581526020015b60405180910390f35b3480156102bc57600080fd5b5061029b6102cb366004612a37565b6107f9565b3480156102dc57600080fd5b506102e561084b565b6040516102a79190612be3565b3480156102fe57600080fd5b5061031261030d366004612a6f565b6108dd565b6040516001600160a01b0390911681526020016102a7565b34801561033657600080fd5b5061027f6103453660046129d1565b610972565b34801561035657600080fd5b5061035f610a88565b6040519081526020016102a7565b34801561037957600080fd5b50600e5461035f565b34801561038e57600080fd5b5061027f61039d36600461288b565b610af7565b3480156103ae57600080fd5b5061027f6103bd366004612ad0565b610b28565b3480156103ce57600080fd5b5061035f610e04565b3480156103e357600080fd5b5061027f6103f236600461288b565b610e0f565b34801561040357600080fd5b506008546001600160a01b0316610312565b34801561042157600080fd5b50610312610430366004612a6f565b610e2a565b34801561044157600080fd5b5061027f610450366004612a6f565b610ea1565b34801561046157600080fd5b5061035f610f7f565b34801561047657600080fd5b5061035f6104853660046129d1565b610fb6565b34801561049657600080fd5b5061035f6104a53660046129d1565b6001600160a01b03919091166000908152601260209081526040808320938352929052205490565b3480156104d957600080fd5b5061035f6104e836600461283f565b611080565b3480156104f957600080fd5b5061027f611107565b34801561050e57600080fd5b5061035f61113d565b34801561052357600080fd5b50600b5461035f565b34801561053857600080fd5b506001546001600160a01b0316610312565b34801561055657600080fd5b5061027f610565366004612a16565b61118b565b34801561057657600080fd5b506102e561120d565b34801561058b57600080fd5b5061027f61059a36600461299b565b61121c565b3480156105ab57600080fd5b5061027f6105ba366004612a6f565b6112e1565b3480156105cb57600080fd5b5061035f611310565b3480156105e057600080fd5b506105f46105ef366004612a6f565b611369565b6040516102a79190600061012082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b34801561066d57600080fd5b50600d5461035f565b34801561068257600080fd5b5061035f610691366004612a9f565b611431565b3480156106a257600080fd5b5061027f6106b1366004612a6f565b61146e565b3480156106c257600080fd5b50600c546001600160a01b0316610312565b3480156106e057600080fd5b5061035f61158a565b3480156106f557600080fd5b5061027f6107043660046128c6565b6117c3565b61027f6117fb565b34801561071d57600080fd5b506102e561072c366004612a6f565b611a82565b34801561073d57600080fd5b5061027f611b6a565b34801561075257600080fd5b5061029b610761366004612859565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561079b57600080fd5b5061027f6107aa36600461283f565b611bd0565b600042601160006107bf60105490565b81526020019081526020016000206002015411156107ef5760405162461bcd60e51b815260040161027690612c7f565b50600f5460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061082a57506001600160e01b03198216635b5e139f60e01b145b8061084557506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606002805461085a90612e22565b80601f016020809104026020016040519081016040528092919081815260200182805461088690612e22565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b03166109565760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610276565b506000908152600660205260409020546001600160a01b031690565b600061097d82610e2a565b9050806001600160a01b0316836001600160a01b031614156109eb5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610276565b336001600160a01b0382161480610a075750610a078133610761565b610a795760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610276565b610a838383611c6b565b505050565b6000610af2600e5460116000610a9d60105490565b81526020019081526020016000206003015460116000610abc60105490565b81526020019081526020016000206004015460116000610adb60105490565b815260200190815260200160002060000154611431565b905090565b610b013382611cd9565b610b1d5760405162461bcd60e51b815260040161027690612d43565b610a83838383611dcc565b6001546001600160a01b03163314610b525760405162461bcd60e51b815260040161027690612cc8565b4260116000610b6060105490565b8152602001908152602001600020600201541115610b905760405162461bcd60e51b815260040161027690612c7f565b600f5460ff16610bfe5760405162461bcd60e51b815260206004820152603360248201527f466f463a20436c61696d2074686520726577617264206265666f7265207374616044820152727274696e672061206e6577206c6f747465727960681b6064820152608401610276565b612710610c0b8686612d94565b10610c725760405162461bcd60e51b815260206004820152603160248201527f466f463a20596f752063616e206e6f742074616b652065766572797468696e67604482015270206f72206d6f726520617320612066656560781b6064820152608401610276565b62282070871115610c955760405162461bcd60e51b815260040161027690612cfd565b610c9d61113d565b15610caa57610caa611b6a565b610cb8601080546001019055565b6000610cc360105490565b9050604051806101200160405280600d5481526020014281526020018942610ceb9190612d94565b815260208082018a905260408083018a9052606080840189905260808085018b905260a08086018a905260c0958601899052600088815260118652849020875181559487015160018601558684015160028601559186015160038501558501516004840155840151600583015591830151600682015560e0830151600782015561010090920151600890920191909155600f805460ff19169055517fe03fed3157c750504431f802bfcbfbb868bb76f5aa7e16e11153c3b3de5fe87990610df29083908b908b908b908a908c908b908b90978852602088019690965260408701949094526060860192909252608085015260a084015260c083015260e08201526101000190565b60405180910390a15050505050505050565b6000610af260105490565b610a83838383604051806020016040528060008152506117c3565b6000818152600460205260408120546001600160a01b0316806108455760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610276565b6001546001600160a01b03163314610ecb5760405162461bcd60e51b815260040161027690612cc8565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7b91906129fa565b5050565b60004781610f8b61113d565b90506000610f97611310565b905081610fa48285612ddf565b610fae9190612ddf565b935050505090565b60008060116000610fc660105490565b8152602001908152602001600020600501549050600060116000610fe960105490565b8152602001908152602001600020600701549050600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600061102f60105490565b81526020019081526020016000205490506000600186836110509190612d94565b61105a9190612ddf565b905060006110688483612dc0565b90506110748186612d94565b98975050505050505050565b60006001600160a01b0382166110eb5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610276565b506001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031633146111315760405162461bcd60e51b815260040161027690612cc8565b61113b6000611f77565b565b6000610af2600d546011600061115260105490565b8152602001908152602001600020600301546011600061117160105490565b815260200190815260200160002060040154600e54611431565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112035760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c006044820152606401610276565b610f7b8282611fc9565b60606003805461085a90612e22565b6001600160a01b0382163314156112755760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610276565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6001546001600160a01b0316331461130b5760405162461bcd60e51b815260040161027690612cc8565b600b55565b6000806011600061132060105490565b8152602001908152602001600020600601549050600061133e610a88565b90506127108261134e8347612d94565b6113589190612dc0565b6113629190612dac565b9250505090565b6113b86040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50600090815260116020908152604091829020825161012081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260089091015461010082015290565b60008061143e8387612ddf565b90506127108461144e8784612dc0565b6114589190612dc0565b6114629190612dac565b9150505b949350505050565b6001546001600160a01b031633146114985760405162461bcd60e51b815260040161027690612cc8565b42601160006114a660105490565b815260200190815260200160002060020154116114d55760405162461bcd60e51b815260040161027690612c48565b6000601160006114e460105490565b815260200190815260200160002060020154905060006011600061150760105490565b8152602001908152602001600020600101549050806228207061152a9190612d94565b6115348484612d94565b11156115525760405162461bcd60e51b815260040161027690612cfd565b826011600061156060105490565b815260200190815260200160002060020160008282546115809190612d94565b9091555050505050565b6000426011600061159a60105490565b81526020019081526020016000206002015411156115ca5760405162461bcd60e51b815260040161027690612c7f565b600f5460ff161561161d5760405162461bcd60e51b815260206004820152601b60248201527f466f463a2052657761726420616c726561647920636c61696d656400000000006044820152606401610276565b600f54610100900460ff16156116755760405162461bcd60e51b815260206004820152601c60248201527f466f463a20526577617264206973206265696e6720636c61696d6564000000006044820152606401610276565b600d546011600061168560105490565b81526020019081526020016000206000015414156116b05750600f805460ff19166001179055600090565b600b546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561171257600080fd5b505afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174a9190612a87565b10156117a45760405162461bcd60e51b8152602060048201526024808201527f466f463a2050757420736f6d65204c494e4b20696e746f2074686520636f6e746044820152631c9858dd60e21b6064820152608401610276565b600f805461ff001916610100179055600a54600b54610af29190612176565b6117cd3383611cd9565b6117e95760405162461bcd60e51b815260040161027690612d43565b6117f5848484846122fc565b50505050565b426011600061180960105490565b815260200190815260200160002060020154116118385760405162461bcd60e51b815260040161027690612c48565b60006011600061184760105490565b8152602001908152602001600020600301549050600081346118699190612dac565b9050806118ae5760405162461bcd60e51b815260206004820152601360248201527208cde8c74409cdee840cadcdeeaced0408aa89606b1b6044820152606401610276565b6118b83382610fb6565b6008546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561190957600080fd5b505afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119419190612a87565b10156119995760405162461bcd60e51b815260206004820152602160248201527f466f463a20596f7520646f6e2774206861766520656e6f75676820244d594f426044820152605560f81b6064820152608401610276565b60006119a58383612dc0565b9050803411156119c2576119c2336119bd8334612ddf565b61232f565b600d805490839060006119d58385612d94565b9091555050336000908152601260209081526040808320601054845290915281208054859290611a06908490612d94565b909155508190505b611a188285612d94565b811015611a3b57611a293382612448565b80611a3381612e5d565b915050611a0e565b50604080513381526020810185905280820186905290517fb0ebd247b49b0f0079dfe3093ede3e56ddb43164363f38bf1576023c076ab4f29181900360600190a150505050565b6000818152600460205260409020546060906001600160a01b0316611b015760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610276565b6000611b1860408051602081019091526000815290565b90506000815111611b385760405180602001604052806000815250611b63565b80611b4284612596565b604051602001611b53929190612b47565b6040516020818303038152906040525b9392505050565b6000611b7461113d565b600d54600e55600c54909150611b93906001600160a01b03168261232f565b6040805182815233602082015281517ff8c86b1d7444df9b0cdd6af6e83356a81c75e1ad49cc19ec84347b5fa6ddeb33929181900390910190a150565b6001546001600160a01b03163314611bfa5760405162461bcd60e51b815260040161027690612cc8565b6001600160a01b038116611c5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610276565b611c6881611f77565b50565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ca082610e2a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b0316611d525760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610276565b6000611d5d83610e2a565b9050806001600160a01b0316846001600160a01b03161480611d985750836001600160a01b0316611d8d846108dd565b6001600160a01b0316145b8061146657506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff16611466565b826001600160a01b0316611ddf82610e2a565b6001600160a01b031614611e475760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610276565b6001600160a01b038216611ea95760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610276565b611eb48383836126b0565b611ebf600082611c6b565b6001600160a01b0383166000908152600560205260408120805460019290611ee8908490612ddf565b90915550506001600160a01b0382166000908152600560205260408120805460019290611f16908490612d94565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060116000611fd860105490565b81526020810191909152604001600090812054600d5490925090611ffc8383612ddf565b6120069085612e78565b6120109084612d94565b9050600061201d82610e2a565b90506000612029610f7f565b90506000612038836000610fb6565b6008546040516370a0823160e01b81526001600160a01b0386811660048301529293508392909116906370a082319060240160206040518083038186803b15801561208257600080fd5b505afa158015612096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ba9190612a87565b1015612117576000612710601160006120d260105490565b815260200190815260200160002060080154846120ef9190612dc0565b6120f99190612dac565b90506121058184612ddf565b600c546001600160a01b031694509250505b612121838361232f565b600f805461ffff19166001179055604080516001600160a01b0385168152602081018490529081018590527fa87bed6ccaf5dd569c5a881130f4bc9c9b604a4909d2982cffe0f37caca6db4790606001610df2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634000aea07f0000000000000000000000000000000000000000000000000000000000000000848660006040516020016121e6929190918252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161221393929190612bb3565b602060405180830381600087803b15801561222d57600080fd5b505af1158015612241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226591906129fa565b5060008381526020818152604080832054815180840188905280830185905230606082015260808082018390528351808303909101815260a0909101909252815191830191909120868452929091526122bf906001612d94565b6000858152602081815260409182902092909255805180830187905280820184905281518082038301815260609091019091528051910120611466565b612307848484611dcc565b61231384848484612719565b6117f55760405162461bcd60e51b815260040161027690612bf6565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050610f7b57600960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a857600080fd5b505af11580156123bc573d6000803e3d6000fd5b505060095460405163a9059cbb60e01b81526001600160a01b03878116600483015260248201879052909116935063a9059cbb92506044019050602060405180830381600087803b15801561241057600080fd5b505af1158015612424573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8391906129fa565b6001600160a01b03821661249e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610276565b6000818152600460205260409020546001600160a01b0316156125035760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610276565b61250f600083836126b0565b6001600160a01b0382166000908152600560205260408120805460019290612538908490612d94565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060816125ba5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156125e457806125ce81612e5d565b91506125dd9050600a83612dac565b91506125be565b60008167ffffffffffffffff81111561260d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612637576020820181803683370190505b5090505b84156114665761264c600183612ddf565b9150612659600a86612e78565b612664906030612d94565b60f81b81838151811061268757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506126a9600a86612dac565b945061263b565b6001600160a01b03831615806126cd57506001600160a01b038216155b610a835760405162461bcd60e51b815260206004820152601c60248201527f466f463a2043616e6e6f74207472616e73666572207469636b657473000000006044820152606401610276565b60006001600160a01b0384163b1561281b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061275d903390899088908890600401612b76565b602060405180830381600087803b15801561277757600080fd5b505af19250505080156127a7575060408051601f3d908101601f191682019092526127a491810190612a53565b60015b612801573d8080156127d5576040519150601f19603f3d011682016040523d82523d6000602084013e6127da565b606091505b5080516127f95760405162461bcd60e51b815260040161027690612bf6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611466565b506001611466565b80356001600160a01b038116811461283a57600080fd5b919050565b600060208284031215612850578081fd5b611b6382612823565b6000806040838503121561286b578081fd5b61287483612823565b915061288260208401612823565b90509250929050565b60008060006060848603121561289f578081fd5b6128a884612823565b92506128b660208501612823565b9150604084013590509250925092565b600080600080608085870312156128db578081fd5b6128e485612823565b93506128f260208601612823565b925060408501359150606085013567ffffffffffffffff80821115612915578283fd5b818701915087601f830112612928578283fd5b81358181111561293a5761293a612eb8565b604051601f8201601f19908116603f0116810190838211818310171561296257612962612eb8565b816040528281528a602084870101111561297a578586fd5b82602086016020830137918201602001949094529598949750929550505050565b600080604083850312156129ad578182fd5b6129b683612823565b915060208301356129c681612ece565b809150509250929050565b600080604083850312156129e3578182fd5b6129ec83612823565b946020939093013593505050565b600060208284031215612a0b578081fd5b8151611b6381612ece565b60008060408385031215612a28578182fd5b50508035926020909101359150565b600060208284031215612a48578081fd5b8135611b6381612edc565b600060208284031215612a64578081fd5b8151611b6381612edc565b600060208284031215612a80578081fd5b5035919050565b600060208284031215612a98578081fd5b5051919050565b60008060008060808587031215612ab4578384fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215612aea578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008151808452612b33816020860160208601612df6565b601f01601f19169290920160200192915050565b60008351612b59818460208801612df6565b835190830190612b6d818360208801612df6565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612ba990830184612b1b565b9695505050505050565b60018060a01b0384168152826020820152606060408201526000612bda6060830184612b1b565b95945050505050565b602081526000611b636020830184612b1b565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252601f908201527f466f463a204e6f206c6f7474657279206973206f6e207269676874206e6f7700604082015260600190565b60208082526029908201527f466f463a204c6f7474657279206e6565647320746f206861766520656e64656460408201526820666f72207468697360b81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f466f463a204d75737420626520756e646572206f7220657175616c20746f2031604082015265040dadedce8d60d31b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008219821115612da757612da7612e8c565b500190565b600082612dbb57612dbb612ea2565b500490565b6000816000190483118215151615612dda57612dda612e8c565b500290565b600082821015612df157612df1612e8c565b500390565b60005b83811015612e11578181015183820152602001612df9565b838111156117f55750506000910152565b600181811c90821680612e3657607f821691505b60208210811415612e5757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e7157612e71612e8c565b5060010190565b600082612e8757612e87612ea2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114611c6857600080fd5b6001600160e01b031981168114611c6857600080fdfea264697066735822122016e3051d32cd7a0b7ad258bee26f4d585f239e8217ac9db91b4668f9e1b9b4fe64736f6c63430008040033