[ { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "creator", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ItemCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SaleStatusChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Items", "outputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adminAddress", "type": "address" } ], "name": "addAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "addToRewardPool", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "bool", "name": "blacklist", "type": "bool" } ], "name": "blackListAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "claimUserReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimedReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "createItem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "currentClaimRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getHasSaleStarted", "outputs": [ { "internalType": "bool", "name": "state", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isAdmin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBlackListed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "itemLastClaimRatioAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintedSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingFeePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adminAddress", "type": "address" } ], "name": "removeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "base", "type": "string" } ], "name": "setBaseUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" }, { "internalType": "address[]", "name": "luckies", "type": "address[]" }, { "internalType": "uint256[]", "name": "giveAmounts", "type": "uint256[]" } ], "name": "setHasSaleStarted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setmintingFeePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenCreator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userCollection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "userCollections", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "viewUserReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawStuckMoney", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526722b1c8c1227a00006008556127106014553480156200002357600080fd5b5060405162003368380380620033688339810160408190526200004691620001e1565b604080518082018252600a81526920ab20ac102a2922a2ad60b11b6020808301918252835180850190945260058452642a2922a2ad60d91b90840152815191929162000095916000916200013b565b508051620000ab9060019060208401906200013b565b505050620000c8620000c2620000e560201b60201c565b620000e9565b8051620000dd9060129060208401906200013b565b505062000303565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200014990620002b0565b90600052602060002090601f0160209004810192826200016d5760008555620001b8565b82601f106200018857805160ff1916838001178555620001b8565b82800160010185558215620001b8579182015b82811115620001b85782518255916020019190600101906200019b565b50620001c6929150620001ca565b5090565b5b80821115620001c65760008155600101620001cb565b60006020808385031215620001f4578182fd5b82516001600160401b03808211156200020b578384fd5b818501915085601f8301126200021f578384fd5b815181811115620002345762000234620002ed565b604051601f8201601f19168101850183811182821017156200025a576200025a620002ed565b604052818152838201850188101562000271578586fd5b8592505b8183101562000294578383018501518184018601529184019162000275565b81831115620002a557858583830101525b979650505050505050565b600281046001821680620002c557607f821691505b60208210811415620002e757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61305580620003136000396000f3fe6080604052600436106102675760003560e01c8063715018a611610144578063aea45b1e116100b6578063c1bd8cf91161007a578063c1bd8cf9146106d6578063c87b56dd146106eb578063d7a5d5d31461070b578063e47d60601461071e578063e985e9c51461073e578063f2fde38b1461075e57610267565b8063aea45b1e1461064e578063b0c33af41461066e578063b88d4fde14610683578063b95ffbce146106a3578063c1075329146106b657610267565b80638e5972d9116101085780638e5972d914610597578063941ec864146105b757806395d89b41146105e45780639abc8320146105f9578063a0bcfc7f1461060e578063a22cb4651461062e57610267565b8063715018a614610518578063750142e61461052d578063794be707146105425780637e43bd2a146105625780638da5cb5b1461058257610267565b806340c1a064116101dd5780635a64ad95116101a15780635a64ad951461048e5780636025c04b146104a35780636352211e146104b85780636c35628d146104d8578063704802751461031357806370a08231146104f857610267565b806340c1a0641461040457806342842e0e1461042457806348490a4014610444578063514ccef01461045957806356f394921461046e57610267565b806317b47cc41161022f57806317b47cc41461033357806318160ddd1461036257806323b872dd1461038457806323f96440146103a457806324d7806c146103c45780632e6d57bf146103e457610267565b806301ffc9a71461026c57806306fdde03146102a2578063081812fc146102c4578063095ea7b3146102f15780631785f53c14610313575b600080fd5b34801561027857600080fd5b5061028c610287366004612535565b61077e565b6040516102999190612777565b60405180910390f35b3480156102ae57600080fd5b506102b76107c6565b6040516102999190612782565b3480156102d057600080fd5b506102e46102df3660046125b3565b610858565b60405161029991906126e2565b3480156102fd57600080fd5b5061031161030c366004612451565b6108a4565b005b34801561031f57600080fd5b5061031161032e3660046122da565b61093c565b34801561033f57600080fd5b5061035361034e3660046125b3565b6109c5565b60405161029993929190612e1f565b34801561036e57600080fd5b50610377610a7a565b6040516102999190612e16565b34801561039057600080fd5b5061031161039f366004612360565b610a80565b3480156103b057600080fd5b506103116103bf3660046125b3565b610ab8565b3480156103d057600080fd5b5061028c6103df3660046122da565b610afc565b3480156103f057600080fd5b506103776103ff3660046122da565b610b11565b34801561041057600080fd5b506102e461041f3660046125b3565b610b82565b34801561043057600080fd5b5061031161043f366004612360565b610bc8565b34801561045057600080fd5b50610377610be3565b34801561046557600080fd5b50610377610be9565b34801561047a57600080fd5b506103116104893660046122fd565b610bef565b34801561049a57600080fd5b50610377610c91565b3480156104af57600080fd5b50610377610c97565b3480156104c457600080fd5b506102e46104d33660046125b3565b610c9d565b3480156104e457600080fd5b506103776104f3366004612451565b610cd2565b34801561050457600080fd5b506103776105133660046122da565b610d03565b34801561052457600080fd5b50610311610d47565b34801561053957600080fd5b50610377610d92565b34801561054e57600080fd5b5061031161055d36600461241d565b610d98565b34801561056e57600080fd5b5061037761057d3660046125b3565b610e58565b34801561058e57600080fd5b506102e4610e6a565b3480156105a357600080fd5b506103116105b2366004612463565b610e79565b3480156105c357600080fd5b506105d76105d23660046122da565b611148565b6040516102999190612733565b3480156105f057600080fd5b506102b76111b4565b34801561060557600080fd5b506102b76111c3565b34801561061a57600080fd5b5061031161062936600461256d565b611251565b34801561063a57600080fd5b5061031161064936600461241d565b6112a7565b34801561065a57600080fd5b506103116106693660046122da565b611375565b34801561067a57600080fd5b5061028c6113d0565b34801561068f57600080fd5b5061031161069e3660046123a0565b6113d9565b6103116106b13660046125b3565b611412565b3480156106c257600080fd5b506103116106d13660046122fd565b611496565b3480156106e257600080fd5b506103776114f7565b3480156106f757600080fd5b506102b76107063660046125b3565b611508565b6103776107193660046125b3565b6115c6565b34801561072a57600080fd5b5061028c6107393660046122da565b6117f4565b34801561074a57600080fd5b5061028c610759366004612328565b611809565b34801561076a57600080fd5b506103116107793660046122da565b611837565b60006001600160e01b031982166380ac58cd60e01b14806107af57506001600160e01b03198216635b5e139f60e01b145b806107be57506107be826118a8565b90505b919050565b6060600080546107d590612f48565b80601f016020809104026020016040519081016040528092919081815260200182805461080190612f48565b801561084e5780601f106108235761010080835404028352916020019161084e565b820191906000526020600020905b81548152906001019060200180831161083157829003601f168201915b5050505050905090565b6000610863826118c1565b6108885760405162461bcd60e51b815260040161087f90612b0f565b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108af82610c9d565b9050806001600160a01b0316836001600160a01b031614156108e35760405162461bcd60e51b815260040161087f90612cba565b806001600160a01b03166108f56118de565b6001600160a01b031614806109115750610911816107596118de565b61092d5760405162461bcd60e51b815260040161087f90612988565b61093783836118e2565b505050565b6109446118de565b6001600160a01b0316610955610e6a565b6001600160a01b03161461097b5760405162461bcd60e51b815260040161087f90612b5b565b6001600160a01b0381166109a15760405162461bcd60e51b815260040161087f90612d9d565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b60096020526000908152604090208054600182015460028301805492936001600160a01b03909216926109f790612f48565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2390612f48565b8015610a705780601f10610a4557610100808354040283529160200191610a70565b820191906000526020600020905b815481529060010190602001808311610a5357829003601f168201915b5050505050905083565b60145481565b610a91610a8b6118de565b82611950565b610aad5760405162461bcd60e51b815260040161087f90612d4c565b6109378383836119d5565b610ac06118de565b6001600160a01b0316610ad1610e6a565b6001600160a01b031614610af75760405162461bcd60e51b815260040161087f90612b5b565b600855565b600a6020526000908152604090205460ff1681565b600080610b1d83611148565b90506000805b8251811015610b7a57610b5c838281518110610b4f57634e487b7160e01b600052603260045260246000fd5b6020026020010151611c98565b610b669083612ea3565b915080610b7281612f83565b915050610b23565b509392505050565b6000610b8d826118c1565b610ba95760405162461bcd60e51b815260040161087f90612c1a565b506000908152600960205260409020600101546001600160a01b031690565b610937838383604051806020016040528060008152506113d9565b60085481565b600f5481565b610bf76118de565b6001600160a01b0316610c08610e6a565b6001600160a01b031614610c2e5760405162461bcd60e51b815260040161087f90612b5b565b8060105447610c3d9190612eee565b1015610c5b5760405162461bcd60e51b815260040161087f90612cfb565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610937573d6000803e3d6000fd5b60105481565b60115481565b6000818152600260205260408120546001600160a01b0316806107be5760405162461bcd60e51b815260040161087f90612a2f565b600c6020528160005260406000208181548110610cee57600080fd5b90600052602060002001600091509150505481565b60006001600160a01b038216610d2b5760405162461bcd60e51b815260040161087f906129e5565b506001600160a01b031660009081526003602052604090205490565b610d4f6118de565b6001600160a01b0316610d60610e6a565b6001600160a01b031614610d865760405162461bcd60e51b815260040161087f90612b5b565b610d906000611cb4565b565b600e5481565b600a6000610da46118de565b6001600160a01b0316815260208101919091526040016000205460ff1680610deb5750610dcf6118de565b6001600160a01b0316610de0610e6a565b6001600160a01b0316145b610e075760405162461bcd60e51b815260040161087f90612ddf565b6001600160a01b038216610e2d5760405162461bcd60e51b815260040161087f90612b90565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60136020526000908152604090205481565b6006546001600160a01b031690565b610e816118de565b6001600160a01b0316610e92610e6a565b6001600160a01b031614610eb85760405162461bcd60e51b815260040161087f90612b5b565b8051825114610ec657600080fd5b6000610ed26007611d06565b905060005b83518110156110ea5760005b838281518110610f0357634e487b7160e01b600052603260045260246000fd5b60200260200101518110156110d757610f1c6007611d0a565b610f266007611d06565b9250610f59858381518110610f4b57634e487b7160e01b600052603260045260246000fd5b602002602001015184611d13565b604080516060810182528481523360208201529081016012610f7a86611d2d565b604051602001610f8b92919061263c565b60408051808303601f1901815291815291526000858152600960209081529082902083518155838201516001820180546001600160a01b0319166001600160a01b03909216919091179055918301518051610fec926002850192019061216d565b50905050600c600086848151811061101457634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812080546001810182559082528382200186905560115486825260139093522055845185908390811061107d57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03167fa9a8fc8429e9d4b8fe54b38fd34cb56aaa1a9bf6eb605f45b223b08b58b97618846040516110bd9190612e16565b60405180910390a2806110cf81612f83565b915050610ee3565b50806110e281612f83565b915050610ed7565b50600d5460ff1615158415151461114257600d805460ff19168515151790556040517ff3637cdf61687bb87179d2da614bc1f4aa93c3cbf40282ccd0a15ecad9184cc190611139908690612777565b60405180910390a15b50505050565b6001600160a01b0381166000908152600c60209081526040918290208054835181840281018401909452808452606093928301828280156111a857602002820191906000526020600020905b815481526020019060010190808311611194575b50505050509050919050565b6060600180546107d590612f48565b601280546111d090612f48565b80601f01602080910402602001604051908101604052809291908181526020018280546111fc90612f48565b80156112495780601f1061121e57610100808354040283529160200191611249565b820191906000526020600020905b81548152906001019060200180831161122c57829003601f168201915b505050505081565b6112596118de565b6001600160a01b031661126a610e6a565b6001600160a01b0316146112905760405162461bcd60e51b815260040161087f90612b5b565b80516112a390601290602084019061216d565b5050565b6112af6118de565b6001600160a01b0316826001600160a01b031614156112e05760405162461bcd60e51b815260040161087f906128ce565b80600560006112ed6118de565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556113316118de565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113699190612777565b60405180910390a35050565b600061138082611148565b905060005b8151811015610937576113be8282815181106113b157634e487b7160e01b600052603260045260246000fd5b6020026020010151611e75565b806113c881612f83565b915050611385565b600d5460ff1690565b6113ea6113e46118de565b83611950565b6114065760405162461bcd60e51b815260040161087f90612d4c565b61114284848484611f07565b600061141c6114f7565b116114395760405162461bcd60e51b815260040161087f90612c93565b803410156114595760405162461bcd60e51b815260040161087f90612c69565b34600e600082825461146b9190612ea3565b9091555061147990506114f7565b6114839034612ebb565b6011546114909190612ea3565b60115550565b61149e6118de565b6001600160a01b03166114af610e6a565b6001600160a01b0316146114d55760405162461bcd60e51b815260040161087f90612b5b565b601054811115610c5b5760405162461bcd60e51b815260040161087f90612a78565b60006115036007611d06565b905090565b6060611513826118c1565b61152f5760405162461bcd60e51b815260040161087f90612c1a565b6000828152600960205260409020600201805461154b90612f48565b80601f016020809104026020016040519081016040528092919081815260200182805461157790612f48565b80156111a85780601f10611599576101008083540402835291602001916111a8565b820191906000526020600020905b8154815290600101906020018083116115a75750939695505050505050565b600d5460009060ff16806115f957506115dd610e6a565b6001600160a01b03166115ee6118de565b6001600160a01b0316145b6116155760405162461bcd60e51b815260040161087f90612ad8565b816008546116239190612ecf565b3410156116425760405162461bcd60e51b815260040161087f90612905565b600061164e6007611d06565b905034601060008282546116629190612ea3565b90915550600090505b838110156117ed576014546116806007611d06565b111561169e5760405162461bcd60e51b815260040161087f90612795565b6116a86007611d0a565b6116b26007611d06565b91506116be3383611d13565b6040805160608101825283815233602082015290810160126116df85611d2d565b6040516020016116f092919061263c565b60408051808303601f1901815291815291526000848152600960209081529082902083518155838201516001820180546001600160a01b0319166001600160a01b03909216919091179055918301518051611751926002850192019061216d565b50905050600c60006117616118de565b6001600160a01b03168152602080820192909252604090810160009081208054600181018255908252838220018590556011548582526013909352819020919091555133907fa9a8fc8429e9d4b8fe54b38fd34cb56aaa1a9bf6eb605f45b223b08b58b97618906117d3908590612e16565b60405180910390a2806117e581612f83565b91505061166b565b5092915050565b600b6020526000908152604090205460ff1681565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61183f6118de565b6001600160a01b0316611850610e6a565b6001600160a01b0316146118765760405162461bcd60e51b815260040161087f90612b5b565b6001600160a01b03811661189c5760405162461bcd60e51b815260040161087f9061280d565b6118a581611cb4565b50565b6001600160e01b031981166301ffc9a760e01b14919050565b6000908152600260205260409020546001600160a01b0316151590565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061191782610c9d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061195b826118c1565b6119775760405162461bcd60e51b815260040161087f9061293c565b600061198283610c9d565b9050806001600160a01b0316846001600160a01b031614806119bd5750836001600160a01b03166119b284610858565b6001600160a01b0316145b806119cd57506119cd8185611809565b949350505050565b826001600160a01b03166119e882610c9d565b6001600160a01b031614611a0e5760405162461bcd60e51b815260040161087f90612bd1565b6001600160a01b038216611a345760405162461bcd60e51b815260040161087f9061288a565b611a3f838383610937565b611a4a6000826108a4565b6001600160a01b0383166000908152600360205260408120805460019290611a73908490612eee565b90915550506001600160a01b0382166000908152600360205260408120805460019290611aa1908490612ea3565b9091555050600081815260026020526040812080546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384166000908152600c6020526040902054811015611c39576001600160a01b0384166000908152600c60205260409020805483919083908110611b2957634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415611c27576001600160a01b0384166000908152600c602052604090208054611b6090600190612eee565b81548110611b7e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600c6000866001600160a01b03166001600160a01b031681526020019081526020016000208281548110611bcd57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101929092556001600160a01b0386168152600c90915260409020805480611c1057634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590555b80611c3181612f83565b915050611ace565b506001600160a01b038083166000818152600c6020908152604080832080546001810182559084529183209091018590555184938716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000818152601360205260408120546011546107be9190612eee565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b5490565b80546001019055565b6112a3828260405180602001604052806000815250611f3a565b606081611d5257506040805180820190915260018152600360fc1b60208201526107c1565b8160005b8115611d7c5780611d6681612f83565b9150611d759050600a83612ebb565b9150611d56565b60008167ffffffffffffffff811115611da557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611dcf576020820181803683370190505b508593509050815b8315611e4a57611de8600a85612f9e565b611df3906030612ea3565b60f81b82611e0083612f31565b92508281518110611e2157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611e43600a85612ebb565b9350611dd7565b81604051602001611e5b9190612613565b604051602081830303815290604052945050505050919050565b600081815260136020526040812054601154611e919190612eee565b905080156112a357601154600083815260136020526040812091909155600f8054839290611ec0908490612ea3565b90915550611ecf905082610c9d565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610937573d6000803e3d6000fd5b611f128484846119d5565b611f1e84848484611f6d565b6111425760405162461bcd60e51b815260040161087f906127bb565b611f448383612088565b611f516000848484611f6d565b6109375760405162461bcd60e51b815260040161087f906127bb565b6000611f81846001600160a01b0316612167565b1561207d57836001600160a01b031663150b7a02611f9d6118de565b8786866040518563ffffffff1660e01b8152600401611fbf94939291906126f6565b602060405180830381600087803b158015611fd957600080fd5b505af1925050508015612009575060408051601f3d908101601f1916820190925261200691810190612551565b60015b612063573d808015612037576040519150601f19603f3d011682016040523d82523d6000602084013e61203c565b606091505b50805161205b5760405162461bcd60e51b815260040161087f906127bb565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119cd565b506001949350505050565b6001600160a01b0382166120ae5760405162461bcd60e51b815260040161087f90612aa3565b6120b7816118c1565b156120d45760405162461bcd60e51b815260040161087f90612853565b6120e060008383610937565b6001600160a01b0382166000908152600360205260408120805460019290612109908490612ea3565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b82805461217990612f48565b90600052602060002090601f01602090048101928261219b57600085556121e1565b82601f106121b457805160ff19168380011785556121e1565b828001600101855582156121e1579182015b828111156121e15782518255916020019190600101906121c6565b506121ed9291506121f1565b5090565b5b808211156121ed57600081556001016121f2565b600067ffffffffffffffff83111561222057612220612fde565b612233601f8401601f1916602001612e49565b905082815283838301111561224757600080fd5b828260208301376000602084830101529392505050565b600082601f83011261226e578081fd5b8135602061228361227e83612e73565b612e49565b828152818101908583018385028701840188101561229f578586fd5b855b858110156122bd578135845292840192908401906001016122a1565b5090979650505050505050565b803580151581146107c157600080fd5b6000602082840312156122eb578081fd5b81356122f681612ff4565b9392505050565b6000806040838503121561230f578081fd5b823561231a81612ff4565b946020939093013593505050565b6000806040838503121561233a578182fd5b823561234581612ff4565b9150602083013561235581612ff4565b809150509250929050565b600080600060608486031215612374578081fd5b833561237f81612ff4565b9250602084013561238f81612ff4565b929592945050506040919091013590565b600080600080608085870312156123b5578081fd5b84356123c081612ff4565b935060208501356123d081612ff4565b925060408501359150606085013567ffffffffffffffff8111156123f2578182fd5b8501601f81018713612402578182fd5b61241187823560208401612206565b91505092959194509250565b6000806040838503121561242f578182fd5b823561243a81612ff4565b9150612448602084016122ca565b90509250929050565b6000806040838503121561230f578182fd5b600080600060608486031215612477578283fd5b612480846122ca565b925060208085013567ffffffffffffffff8082111561249d578485fd5b818701915087601f8301126124b0578485fd5b81356124be61227e82612e73565b81815284810190848601868402860187018c10156124da578889fd5b8895505b838610156125055780356124f181612ff4565b8352600195909501949186019186016124de565b5096505050604087013592508083111561251d578384fd5b505061252b8682870161225e565b9150509250925092565b600060208284031215612546578081fd5b81356122f681613009565b600060208284031215612562578081fd5b81516122f681613009565b60006020828403121561257e578081fd5b813567ffffffffffffffff811115612594578182fd5b8201601f810184136125a4578182fd5b6119cd84823560208401612206565b6000602082840312156125c4578081fd5b5035919050565b600081518084526125e3816020860160208601612f05565b601f01601f19169290920160200192915050565b60008151612609818560208601612f05565b9290920192915050565b60008251612625818460208701612f05565b64173539b7b760d91b920191825250600501919050565b825460009081906002810460018083168061265857607f831692505b602080841082141561267857634e487b7160e01b87526022600452602487fd5b81801561268c576001811461269d576126c9565b60ff198616895284890196506126c9565b6126a68b612e97565b885b868110156126c15781548b8201529085019083016126a8565b505084890196505b5050505050506126d981856125f7565b95945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612729908301846125cb565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561276b5783518352928401929184019160010161274f565b50909695505050505050565b901515815260200190565b6000602082526122f660208301846125cb565b6020808252600c908201526b36b4b73a34b7339037bb32b960a11b604082015260600190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526019908201527f696e737566696369656e74206d696e74696e672066756e647300000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b602080825260119082015270696e737566696369656e742066756e647360781b604082015260600190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252601b908201527f53616c65206861736e74206265656e2073746172746564207965740000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f2075736572416464726573732020697320746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526010908201526f1a5b9cdd599a58da595b9d08199d5b9960821b604082015260600190565b6020808252600d908201526c1b9bc81b999d081b5a5b9d1959609a1b604082015260600190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4e6f20737475636b206d6f6e6579206f722074686520616d6f756e7420796f75604082015270040eec2dce840d2e640e8dede40daeac6d607b1b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60208082526022908201527f2061646d696e204164647265737320697320746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601f908201527f2063616c6c657220686173206e6f206d696e74696e6720726967687421212100604082015260600190565b90815260200190565b8381526001600160a01b03831660208201526060604082018190526000906126d9908301846125cb565b60405181810167ffffffffffffffff81118282101715612e6b57612e6b612fde565b604052919050565b600067ffffffffffffffff821115612e8d57612e8d612fde565b5060209081020190565b60009081526020902090565b60008219821115612eb657612eb6612fb2565b500190565b600082612eca57612eca612fc8565b500490565b6000816000190483118215151615612ee957612ee9612fb2565b500290565b600082821015612f0057612f00612fb2565b500390565b60005b83811015612f20578181015183820152602001612f08565b838111156111425750506000910152565b600081612f4057612f40612fb2565b506000190190565b600281046001821680612f5c57607f821691505b60208210811415612f7d57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612f9757612f97612fb2565b5060010190565b600082612fad57612fad612fc8565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146118a557600080fd5b6001600160e01b0319811681146118a557600080fdfea2646970667358221220185f432fdad7f86235ebf9a303f6e27abc3c6a18a2d3d809bb7b9433f72cf0e164736f6c6343000800003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d5250767657416556724b4d5572765a595858716e653247663374584e377865324c77517357657a634a7759622f00000000000000000000