206 txs
257 calls
constructor
constructor(address _triviToken, address _treasuryAddress, address _leaderboardAddress, address _backendService)
functions
backendService
viewfunction backendService() view returns (address)
calculatePrizeDistribution
purefunction calculatePrizeDistribution(uint256 playerCount) pure returns (uint256 winnerBps, uint256 leaderboardBps, uint256 treasuryBps)
getTournamentDetails
viewfunction getTournamentDetails(string tournamentId) view returns (uint256 entryFee, uint256 totalPrizePool, uint256 playerCount, uint256 maxPlayers, bool isActive, bool isCompleted, address winner)
getTournamentPlayerCount
viewfunction getTournamentPlayerCount(string tournamentId) view returns (uint256)
getTournamentPlayers
viewfunction getTournamentPlayers(string tournamentId) view returns (address[])
hasPlayerEntered
viewfunction hasPlayerEntered(string tournamentId, address player) view returns (bool)
leaderboardAddress
viewfunction leaderboardAddress() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PRECISION
viewfunction PRECISION() view returns (uint256)
refunds
viewfunction refunds(string, address) view returns (uint256)
tournamentCancelled
viewfunction tournamentCancelled(string) view returns (bool)
tournamentExists
viewfunction tournamentExists(string) view returns (bool)
tournamentParticipants
viewfunction tournamentParticipants(string, address) view returns (bool)
tournamentPlayers
viewfunction tournamentPlayers(string, uint256) view returns (address)
tournaments
viewfunction tournaments(string) view returns (string tournamentId, uint256 entryFee, uint256 totalPrizePool, uint256 playerCount, uint256 maxPlayers, bool isActive, bool isCompleted, address winner, uint256 winnerPayout, uint256 treasuryPayout, uint256 leaderboardPayout)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
triviToken
viewfunction triviToken() view returns (address)
cancelTournament
nonpayablefunction cancelTournament(string tournamentId)
cleanupTournament
nonpayablefunction cleanupTournament(string tournamentId)
completeTournament
nonpayablefunction completeTournament(string tournamentId, address winnerAddress)
createTournament
nonpayablefunction createTournament(string tournamentId, uint256 entryFee, uint256 maxPlayers)
disperseRefunds
nonpayablefunction disperseRefunds(string tournamentId, uint256 startIndex, uint256 batchSize)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 amount)
enterTournament
nonpayablefunction enterTournament(string tournamentId)
leaveTournament
nonpayablefunction leaveTournament(string tournamentId)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateBackendService
nonpayablefunction updateBackendService(address newService)
updateLeaderboardAddress
nonpayablefunction updateLeaderboardAddress(address newLeaderboard)
updateTreasuryAddress
nonpayablefunction updateTreasuryAddress(address newTreasury)
events
BackendServiceUpdated
event BackendServiceUpdated(address indexed newService)
DirectPayout
event DirectPayout(address indexed winner, uint256 amount)
LeaderboardAddressUpdated
event LeaderboardAddressUpdated(address indexed newLeaderboard)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PlayerEntered
event PlayerEntered(string indexed tournamentId, address indexed player, uint256 entryFee)
PlayerLeft
event PlayerLeft(string indexed tournamentId, address indexed player, uint256 refundAmount)
RefundsDispersed
event RefundsDispersed(string indexed tournamentId, uint256 startIndex, uint256 endIndex)
TournamentCancelled
event TournamentCancelled(string indexed tournamentId)
TournamentCompleted
event TournamentCompleted(string indexed tournamentId, address indexed winner, uint256 winnerPayout, uint256 treasuryPayout, uint256 leaderboardPayout)
TournamentCreated
event TournamentCreated(string indexed tournamentId, uint256 entryFee, uint256 maxPlayers)
TreasuryAddressUpdated
event TreasuryAddressUpdated(address indexed newTreasury)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b506040516200300c3803806200300c833981016040819052620000349162000274565b6200003f3362000207565b600180556002805460ff191690556001600160a01b038416620000a95760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420545249564920746f6b656e2061646472657373000000000060448201526064015b60405180910390fd5b6001600160a01b038316620001015760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207472656173757279206164647265737300000000000000006044820152606401620000a0565b6001600160a01b038216620001595760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6561646572626f617264206164647265737300000000006044820152606401620000a0565b6001600160a01b038116620001b15760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206261636b656e6420736572766963652061646472657373006044820152606401620000a0565b6001600160a01b039384166080526002805493851661010002610100600160a81b031990941693909317909255600380549184166001600160a01b031992831617905560048054929093169116179055620002d1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200026f57600080fd5b919050565b600080600080608085870312156200028b57600080fd5b620002968562000257565b9350620002a66020860162000257565b9250620002b66040860162000257565b9150620002c66060860162000257565b905092959194509250565b608051612cf5620003176000396000818161025b015281816112ee015281816115810152818161199601528181611dce01528181611e500152611e950152612cf56000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806378668af61161011a5780639cdbbd76116100ad578063b2113ef71161007c578063b2113ef7146104cd578063c5f956af14610522578063d29298291461053a578063dc72179014610578578063f2fde38b1461058b57600080fd5b80639cdbbd7614610470578063a604082a1461049e578063aaf5eb68146104b1578063aceb53d5146104ba57600080fd5b8063841e4561116100e9578063841e4561146104315780638456cb59146104445780638da5cb5b1461044c57806395ccea671461045d57600080fd5b806378668af6146103bd5780637a9e93c9146103f8578063809213251461040b578063828817971461041e57600080fd5b8063560f596611610192578063715018a611610161578063715018a61461036157806374dc039914610369578063770d83671461037c578063772215ae1461038f57600080fd5b8063560f5966146102f95780635c975abb14610319578063615ac435146103245780636ab5bddc1461033757600080fd5b80633f4ba83a116101ce5780633f4ba83a146102a857806346be4cb5146102b25780634994c0b4146102c557806352eedf75146102d857600080fd5b806302923dbc14610200578063150742f6146102285780631f680672146102565780631fe3c00b14610295575b600080fd5b61021361020e3660046126b3565b61059e565b60405190151581526020015b60405180910390f35b610213610236366004612701565b805160208183018101805160088252928201919093012091525460ff1681565b61027d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021f565b61027d6102a3366004612736565b61062c565b6102b0610673565b005b6102b06102c036600461277b565b610685565b6102b06102d33660046127c9565b6108f6565b6102eb6102e6366004612701565b61099e565b60405190815260200161021f565b61030c610307366004612701565b610a09565b60405161021f91906127eb565b60025460ff16610213565b6102b06103323660046127c9565b610ac4565b61034a610345366004612701565b610b6c565b60405161021f9b9a99989796959493929190612888565b6102b0610c68565b6102b0610377366004612701565b610c7a565b6102b061038a366004612701565b610de8565b61021361039d366004612701565b8051602081830181018051600a8252928201919093012091525460ff1681565b6102eb6103cb3660046126b3565b81516020818401810180516009825292820194820194909420919093529091526000908152604090205481565b6102b0610406366004612701565b610f72565b6102b061041936600461277b565b61136b565b60035461027d906001600160a01b031681565b6102b061043f3660046127c9565b611658565b6102b0611708565b6000546001600160a01b031661027d565b6102b061046b3660046128f4565b611718565b61048361047e36600461291e565b611746565b6040805193845260208401929092529082015260600161021f565b6102b06104ac366004612701565b6117aa565b6102eb61271081565b6102b06104c83660046126b3565b611aca565b6104e06104db366004612701565b611f35565b60408051978852602088019690965294860193909352606085019190915215156080840152151560a08301526001600160a01b031660c082015260e00161021f565b60025461027d9061010090046001600160a01b031681565b6102136105483660046126b3565b81516020818401810180516006825292820194820194909420919093529091526000908152604090205460ff1681565b60045461027d906001600160a01b031681565b6102b06105993660046127c9565b611fed565b6000826008816040516105b19190612937565b9081526040519081900360200190205460ff166105e95760405162461bcd60e51b81526004016105e090612953565b60405180910390fd5b6006846040516105f99190612937565b908152604080519182900360209081019092206001600160a01b0386166000908152925290205460ff1691505092915050565b8151602081840181018051600782529282019185019190912091905280548290811061065757600080fd5b6000918252602090912001546001600160a01b03169150829050565b61067b612066565b6106836120c0565b565b6004546001600160a01b031633146106af5760405162461bcd60e51b81526004016105e09061298a565b6106b7612112565b60008351116107085760405162461bcd60e51b815260206004820152601d60248201527f546f75726e616d656e742049442063616e6e6f7420626520656d70747900000060448201526064016105e0565b600082116107585760405162461bcd60e51b815260206004820181905260248201527f456e74727920666565206d7573742062652067726561746572207468616e203060448201526064016105e0565b600181116107a85760405162461bcd60e51b815260206004820152601d60248201527f4d75737420616c6c6f77206174206c65617374203220706c617965727300000060448201526064016105e0565b6008836040516107b89190612937565b9081526040519081900360200190205460ff16156108185760405162461bcd60e51b815260206004820152601960248201527f546f75726e616d656e7420616c7265616479206578697374730000000000000060448201526064016105e0565b600060058460405161082a9190612937565b9081526040519081900360200190209050806108468582612a4e565b50600180820184905560006002830181905560038301556004820183905560058201805461ffff191682179055604051600890610884908790612937565b908152604051908190036020018120805492151560ff19909316929092179091556108b0908590612937565b6040805191829003822085835260208301859052917fbefb3a7d9beef6946aedb65d17d2eb59fbef1689cfb32d0906f7678b06449807910160405180910390a250505050565b6108fe612066565b6001600160a01b0381166109545760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206261636b656e64207365727669636520616464726573730060448201526064016105e0565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f9f99ccbf9dfb68ba99dd44d1015d639e6d3fbe55f3faa3fa6f58e3d0bd908bdd90600090a250565b6000816008816040516109b19190612937565b9081526040519081900360200190205460ff166109e05760405162461bcd60e51b81526004016105e090612953565b6007836040516109f09190612937565b9081526040519081900360200190205491505b50919050565b606081600881604051610a1c9190612937565b9081526040519081900360200190205460ff16610a4b5760405162461bcd60e51b81526004016105e090612953565b600783604051610a5b9190612937565b9081526040805191829003602090810183208054808302850183019093528284529190830182828015610ab757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a99575b5050505050915050919050565b610acc612066565b6001600160a01b038116610b225760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6561646572626f6172642061646472657373000000000060448201526064016105e0565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f46e34f52f66f7f7f3eba852f03fb19b384b9330ba5ba72e761dc7898a8415b2890600090a250565b8051602081830181018051600582529282019190930120915280548190610b92906129cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbe906129cc565b8015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b505050506001830154600284015460038501546004860154600587015460068801546007890154600890990154979895979496509294919360ff80831694610100840490911693620100009093046001600160a01b03169290918b565b610c70612066565b6106836000612158565b6004546001600160a01b03163314610ca45760405162461bcd60e51b81526004016105e09061298a565b80600881604051610cb59190612937565b9081526040519081900360200190205460ff16610ce45760405162461bcd60e51b81526004016105e090612953565b610cec6121a8565b6000600583604051610cfe9190612937565b908152604051908190036020019020600581015490915060ff16610d345760405162461bcd60e51b81526004016105e090612b0e565b6005810154610100900460ff1615610d5e5760405162461bcd60e51b81526004016105e090612b45565b60058101805460ff19169055604051600190600a90610d7e908690612937565b908152604051908190036020018120805492151560ff1990931692909217909155610daa908490612937565b604051908190038120907f935d3096261985eb92dedfb3007cd531ce90645a224723b463d33b5d1cfde3a290600090a250610de460018055565b5050565b610df0612066565b600581604051610e009190612937565b9081526040519081900360200190206005015460ff6101009091041680610e465750600a81604051610e329190612937565b9081526040519081900360200190205460ff165b610ea45760405162461bcd60e51b815260206004820152602960248201527f546f75726e616d656e74206d75737420626520636f6d706c65746564206f722060448201526818d85b98d95b1b195960ba1b60648201526084016105e0565b600581604051610eb49190612937565b9081526040519081900360200190206000610ecf8282612587565b506000600182018190556002820181905560038201819055600482018190556005820180546001600160b01b0319169055600682018190556007808301829055600890920155604051610f23908390612937565b90815260200160405180910390206000610f3d91906125c1565b6000600882604051610f4f9190612937565b908152604051908190036020019020805491151560ff1990921691909117905550565b80600881604051610f839190612937565b9081526040519081900360200190205460ff16610fb25760405162461bcd60e51b81526004016105e090612953565b610fba612112565b610fc26121a8565b6000600583604051610fd49190612937565b908152604051908190036020019020600581015490915060ff1661100a5760405162461bcd60e51b81526004016105e090612b0e565b6005810154610100900460ff16156110345760405162461bcd60e51b81526004016105e090612b45565b600a836040516110449190612937565b9081526040519081900360200190205460ff16156110745760405162461bcd60e51b81526004016105e090612b7c565b6006836040516110849190612937565b9081526040805160209281900383019020336000908152925290205460ff166110ef5760405162461bcd60e51b815260206004820152601d60248201527f506c61796572206e6f7420696e207468697320746f75726e616d656e7400000060448201526064016105e0565b600181015460028201548111156111485760405162461bcd60e51b815260206004820152601760248201527f496e73756666696369656e74207072697a6520706f6f6c00000000000000000060448201526064016105e0565b600060068560405161115a9190612937565b908152604080516020928190038301902033600090815292528120805460ff1916921515929092179091556003830180549161119583612bc9565b9190505550808260020160008282546111ae9190612be0565b9250508190555060006007856040516111c79190612937565b9081526020016040518091039020905060005b81548110156112e057336001600160a01b03168282815481106111ff576111ff612bf9565b6000918252602090912001546001600160a01b0316036112ce578154829061122990600190612be0565b8154811061123957611239612bf9565b9060005260206000200160009054906101000a90046001600160a01b031682828154811061126957611269612bf9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806112a7576112a7612c0f565b600082815260209020810160001990810180546001600160a01b03191690550190556112e0565b806112d881612c25565b9150506111da565b506113156001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384612201565b6040513390611325908790612937565b604051908190038120848252907f14322c7dc39e69d5ce1b40050ee228f8a3f34b23983b460c593fdfeada4d7fe69060200160405180910390a3505050610de460018055565b6004546001600160a01b031633146113955760405162461bcd60e51b81526004016105e09061298a565b826008816040516113a69190612937565b9081526040519081900360200190205460ff166113d55760405162461bcd60e51b81526004016105e090612953565b6113dd6121a8565b600a846040516113ed9190612937565b9081526040519081900360200190205460ff166114575760405162461bcd60e51b815260206004820152602260248201527f546f75726e616d656e74206d7573742062652063616e63656c6c6564206669726044820152611cdd60f21b60648201526084016105e0565b60006005856040516114699190612937565b90815260200160405180910390209050600060078660405161148b9190612937565b90815260408051918290036020908101832080548083028501830190935282845291908301828280156114e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114c9575b50505050509050600084866114fc9190612c3e565b9050815181111561150b575080515b855b818110156115f757600083828151811061152957611529612bf9565b602002602001015190506009896040516115439190612937565b90815260408051602092819003830190206001600160a01b0384166000908152925281205490036115e45760018501546115a9906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908390612201565b846001015460098a6040516115be9190612937565b90815260408051602092819003830190206001600160a01b038516600090815292529020555b50806115ef81612c25565b91505061150d565b50866040516116069190612937565b6040805191829003822088835260208301849052917faa96ad77373a5abf903285d8582fbc8c0a0bd9c687fdd0165a0b9b08238472ed910160405180910390a250505061165260018055565b50505050565b611660612066565b6001600160a01b0381166116b65760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642074726561737572792061646472657373000000000000000060448201526064016105e0565b60028054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fb6a5e89655cf506139085f051af608195ed056f8dc550b180a1c38d401e2b6c490600090a250565b611710612066565b610683612264565b611720612066565b610de46117356000546001600160a01b031690565b6001600160a01b0384169083612201565b600080600060028411611764575061232891506101f49050806117a3565b600a841161177d5750611f4091506103e89050806117a3565b601984116117965750611b5891506105dc9050806117a3565b5061138891506109c49050805b9193909250565b806008816040516117bb9190612937565b9081526040519081900360200190205460ff166117ea5760405162461bcd60e51b81526004016105e090612953565b6117f2612112565b6117fa6121a8565b600060058360405161180c9190612937565b908152604051908190036020019020600581015490915060ff166118425760405162461bcd60e51b81526004016105e090612b0e565b6005810154610100900460ff161561186c5760405162461bcd60e51b81526004016105e090612b45565b600a8360405161187c9190612937565b9081526040519081900360200190205460ff16156118ac5760405162461bcd60e51b81526004016105e090612b7c565b6006836040516118bc9190612937565b9081526040805160209281900383019020336000908152925290205460ff16156119375760405162461bcd60e51b815260206004820152602660248201527f506c6179657220616c726561647920656e7465726564207468697320746f75726044820152651b985b595b9d60d21b60648201526084016105e0565b80600401548160030154106119835760405162461bcd60e51b8152602060048201526012602482015271151bdd5c9b985b595b9d081a5cc8199d5b1b60721b60448201526064016105e0565b60018101546119c0906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690339030906122a1565b60016006846040516119d29190612937565b908152604080516020928190038301812033600090815293529120805460ff191692151592909217909155600790611a0b908590612937565b9081526040519081900360209081019091208054600181018255600091825291812090910180546001600160a01b0319163317905560038201805491611a5083612c25565b91905055508060010154816002016000828254611a6d9190612c3e565b90915550506040513390611a82908590612937565b60405190819003812060018401548252907f3e1dae124874d6922b51f6aaf8b153a2ec9c841a8af5c725015558d54c8974869060200160405180910390a350610de460018055565b6004546001600160a01b03163314611af45760405162461bcd60e51b81526004016105e09061298a565b81600881604051611b059190612937565b9081526040519081900360200190205460ff16611b345760405162461bcd60e51b81526004016105e090612953565b611b3c6121a8565b6000600584604051611b4e9190612937565b908152604051908190036020019020600581015490915060ff16611b845760405162461bcd60e51b81526004016105e090612b0e565b6005810154610100900460ff1615611bae5760405162461bcd60e51b81526004016105e090612b45565b600a84604051611bbe9190612937565b9081526040519081900360200190205460ff1615611bee5760405162461bcd60e51b81526004016105e090612b7c565b600684604051611bfe9190612937565b90815260408051602092819003830190206001600160a01b0386166000908152925290205460ff16611c825760405162461bcd60e51b815260206004820152602760248201527f57696e6e6572206d757374206265206120746f75726e616d656e7420706172746044820152661a58da5c185b9d60ca1b60648201526084016105e0565b6000816003015411611cd65760405162461bcd60e51b815260206004820152601860248201527f4e6f20706c617965727320696e20746f75726e616d656e74000000000000000060448201526064016105e0565b6000806000611ce88460030154611746565b600287015492955090935091506000612710611d048684612c51565b611d0e9190612c68565b90506000612710611d1f8685612c51565b611d299190612c68565b90506000612710611d3a8686612c51565b611d449190612c68565b9050600081611d538486612c3e565b611d5d9190612c3e565b905084811015611d7e57611d718186612be0565b611d7b9085612c3e565b93505b6005890180546001600160a01b038d1662010000026001600160b01b0319909116176101001790556006890184905560078901829055600889018390558315611e3957611df56001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168c86612201565b8a6001600160a01b03167f2bdb0b544edc317eb7d69f20a0616b69530b377b5886569c27d5dc2c2b45a54085604051611e3091815260200190565b60405180910390a25b8115611e7e57600254611e7e906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169161010090041684612201565b8215611ebe57600354611ebe906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911685612201565b8a6001600160a01b03168c604051611ed69190612937565b6040805191829003822087835260208301869052908201869052907f9615ba1b18e9f02c92f7b275f6e4960f08fcc17722d14c4bf4aa54a41498ed7e9060600160405180910390a3505050505050505050611f3060018055565b505050565b600080600080600080600087600881604051611f519190612937565b9081526040519081900360200190205460ff16611f805760405162461bcd60e51b81526004016105e090612953565b600060058a604051611f929190612937565b9081526040519081900360200190206001810154600282015460038301546004840154600590940154929e919d509b5091995060ff808216995061010082041697506001600160a01b03620100009091041695509350505050565b611ff5612066565b6001600160a01b03811661205a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e0565b61206381612158565b50565b6000546001600160a01b031633146106835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e0565b6120c86122d9565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60025460ff16156106835760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105e0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036121fa5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105e0565b6002600155565b6040516001600160a01b038316602482015260448101829052611f3090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612322565b61226c612112565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120f53390565b6040516001600160a01b03808516602483015283166044820152606481018290526116529085906323b872dd60e01b9060840161222d565b60025460ff166106835760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105e0565b6000612377826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123f79092919063ffffffff16565b90508051600014806123985750808060200190518101906123989190612c8a565b611f305760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105e0565b6060612406848460008561240e565b949350505050565b60608247101561246f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105e0565b600080866001600160a01b0316858760405161248b9190612937565b60006040518083038185875af1925050503d80600081146124c8576040519150601f19603f3d011682016040523d82523d6000602084013e6124cd565b606091505b50915091506124de878383876124e9565b979650505050505050565b60608315612558578251600003612551576001600160a01b0385163b6125515760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e0565b5081612406565b612406838381511561256d5781518083602001fd5b8060405162461bcd60e51b81526004016105e09190612cac565b508054612593906129cc565b6000825580601f106125a3575050565b601f01602090049060005260206000209081019061206391906125db565b508054600082559060005260206000209081019061206391905b5b808211156125f057600081556001016125dc565b5090565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261261b57600080fd5b813567ffffffffffffffff80821115612636576126366125f4565b604051601f8301601f19908116603f0116810190828211818310171561265e5761265e6125f4565b8160405283815286602085880101111561267757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146126ae57600080fd5b919050565b600080604083850312156126c657600080fd5b823567ffffffffffffffff8111156126dd57600080fd5b6126e98582860161260a565b9250506126f860208401612697565b90509250929050565b60006020828403121561271357600080fd5b813567ffffffffffffffff81111561272a57600080fd5b6124068482850161260a565b6000806040838503121561274957600080fd5b823567ffffffffffffffff81111561276057600080fd5b61276c8582860161260a565b95602094909401359450505050565b60008060006060848603121561279057600080fd5b833567ffffffffffffffff8111156127a757600080fd5b6127b38682870161260a565b9660208601359650604090950135949350505050565b6000602082840312156127db57600080fd5b6127e482612697565b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561282c5783516001600160a01b031683529284019291840191600101612807565b50909695505050505050565b60005b8381101561285357818101518382015260200161283b565b50506000910152565b60008151808452612874816020860160208601612838565b601f01601f19169290920160200192915050565b600061016080835261289c8184018f61285c565b602084019d909d52505060408101999099526060890197909752608088019590955292151560a087015290151560c08601526001600160a01b031660e085015261010084015261012083015261014090910152919050565b6000806040838503121561290757600080fd5b61291083612697565b946020939093013593505050565b60006020828403121561293057600080fd5b5035919050565b60008251612949818460208701612838565b9190910192915050565b60208082526019908201527f546f75726e616d656e7420646f6573206e6f7420657869737400000000000000604082015260600190565b60208082526022908201527f4f6e6c79206261636b656e6420736572766963652063616e2063616c6c207468604082015261697360f01b606082015260800190565b600181811c908216806129e057607f821691505b602082108103610a0357634e487b7160e01b600052602260045260246000fd5b601f821115611f3057600081815260208120601f850160051c81016020861015612a275750805b601f850160051c820191505b81811015612a4657828155600101612a33565b505050505050565b815167ffffffffffffffff811115612a6857612a686125f4565b612a7c81612a7684546129cc565b84612a00565b602080601f831160018114612ab15760008415612a995750858301515b600019600386901b1c1916600185901b178555612a46565b600085815260208120601f198616915b82811015612ae057888601518255948401946001909101908401612ac1565b5085821015612afe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526018908201527f546f75726e616d656e74206973206e6f74206163746976650000000000000000604082015260600190565b6020808252601f908201527f546f75726e616d656e7420697320616c726561647920636f6d706c6574656400604082015260600190565b60208082526017908201527f546f75726e616d656e742069732063616e63656c6c6564000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081612bd857612bd8612bb3565b506000190190565b81810381811115612bf357612bf3612bb3565b92915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201612c3757612c37612bb3565b5060010190565b80820180821115612bf357612bf3612bb3565b8082028115828204841417612bf357612bf3612bb3565b600082612c8557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612c9c57600080fd5b815180151581146127e457600080fd5b6020815260006127e4602083018461285c56fea264697066735822122017aaf308797bf49304e3f5bd729991192396f2efbed053aa014ad89698311a8d64736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd000000000000000000000000a96efd6149346a25415a591545183358160d08e500000000000000000000000078e1f895d3bb63f497526cb0e769f0a12c400bba