1.9k txs
55.3k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
purefunction decimals() pure returns (uint8)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
website
purefunction website() pure returns (string)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
changeExemptions
nonpayablefunction changeExemptions(address account, bool isExempt)
emergencyWithdraw
nonpayablefunction emergencyWithdraw()
emergencyWithdrawTokens
nonpayablefunction emergencyWithdrawTokens(uint256 amount)
finishPhases
nonpayablefunction finishPhases()
manualSwap
nonpayablefunction manualSwap(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxTransaction
nonpayablefunction setMaxTransaction(uint256 maxTx)
setSwapSettings
nonpayablefunction setSwapSettings(uint256 taxSwapThreshold, uint256 swapsAllowedPerBlock, bool isSwapEnabled)
setTaxes
nonpayablefunction setTaxes(uint256 buyTax, uint256 sellTax)
startTrading
nonpayablefunction startTrading()
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
EthWithdrawFailed
error EthWithdrawFailed()
MaxTxAmountExceeded
error MaxTxAmountExceeded(uint256 maxTxAmount, uint256 amount)
MaxTxOutsideRange
error MaxTxOutsideRange(uint256 amount)
NotEnoughBalance
error NotEnoughBalance(uint256 balance, uint256 amount)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
TaxOutsideRange
error TaxOutsideRange(uint256 buyTax, uint256 sellTax)
TradingAlreadyEnabled
error TradingAlreadyEnabled()
TradingNotEnabled
error TradingNotEnabled()
TransferingZeroAmount
error TransferingZeroAmount()
creation bytecode
0x60c06040525f600560146101000a81548160ff0219169083151502179055506001600560156101000a81548160ff0219169083151502179055505f600560166101000a81548160ff0219169083151502179055505f600560176101000a81548160ff0219169083151502179055505f60065560036007555f6008555f6009556001600a553480156200008f575f80fd5b50336040518060400160405280600381526020017f6b656b00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f6b656b000000000000000000000000000000000000000000000000000000000081525081600390816200010e919062001314565b50806004908162000120919062001314565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000196575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200018d91906200143b565b60405180910390fd5b620001a781620003e360201b60201c565b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401620002eb92919062001456565b6020604051808303815f875af115801562000308573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032e9190620014b4565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003a830737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620004a660201b60201c565b620003dd336012600a620003bd91906200166d565b66017e9d8602b400620003d19190620016bd565b620004c060201b60201c565b62001a54565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004bb83838360016200054a60201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000533575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200052a91906200143b565b60405180910390fd5b620005465f83836200072260201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620005bd575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401620005b491906200143b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000630575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016200062791906200143b565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156200071c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000713919062001718565b60405180910390a35b50505050565b5f81036200075c576040517f1447158500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680620007f85750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156200081757620008118383836200095160201b60201c565b6200094c565b5f60a05190505f8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161490505f8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050620008928462000b7560201b60201c565b620008a262000c1d60201b60201c565b5f8215620008d057606460085486620008bc9190620016bd565b620008c8919062001760565b90506200090a565b81156200090957606460095486620008e99190620016bd565b620008f5919062001760565b9050620009088562000ce260201b60201c565b5b5b5f8111156200092757620009268730836200095160201b60201c565b5b62000947878783886200093b919062001797565b6200095160201b60201c565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009a5578060025f828254620009989190620017d1565b9250508190555062000a76565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000a31578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000a28939291906200180b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000abf578060025f828254039250508190555062000b09565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b68919062001718565b60405180910390a3505050565b600560179054906101000a900460ff1662000bbc576040517f12f1f92300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f62000bcd62000e0560201b60201c565b90508082111562000c195780826040517f23c19a2700000000000000000000000000000000000000000000000000000000815260040162000c1092919062001846565b60405180910390fd5b5050565b600560169054906101000a900460ff1662000ce0575f600b544262000c43919062001797565b90506104b081111562000c7f575f6008819055505f6009819055506001600560166101000a81548160ff02191690831515021790555062000cde565b61038481111562000c9f575f600881905550600560098190555062000cdd565b61025881111562000cbf575f600881905550600a60098190555062000cdc565b61012c81111562000cdb576005600881905550600f6009819055505b5b5b5b505b565b600560159054906101000a900460ff161562000e02575f62000d0a3062000e8860201b60201c565b90505f600c5f4381526020019081526020015f205490505f600654831190505f600754831090505f600560149054906101000a900460ff1615801562000d4d5750825b801562000d575750815b9050801562000dfc57600c5f4381526020019081526020015f205f81548092919062000d839062001871565b91905055505f62000ddd8762000dd18860646012600a62000da591906200166d565b66017e9d8602b40062000db99190620016bd565b62000dc5919062001760565b62000ecd60201b60201c565b62000ecd60201b60201c565b90505f81111562000dfa5762000df98162000ee760201b60201c565b5b505b50505050505b50565b5f80600a5490506064810362000e42576012600a62000e2591906200166d565b66017e9d8602b40062000e399190620016bd565b91505062000e85565b6064816012600a62000e5591906200166d565b66017e9d8602b40062000e699190620016bd565b62000e759190620016bd565b62000e81919062001760565b9150505b90565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81831162000edd578262000edf565b815b905092915050565b6001600560146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111562000f215762000f20620010ba565b5b60405190808252806020026020018201604052801562000f505781602001602082028036833780820191505090505b50905030815f8151811062000f6a5762000f69620018bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811062000fd05762000fcf620018bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84608051426040518663ffffffff1660e01b815260040162001063959493929190620019f2565b5f604051808303815f87803b1580156200107b575f80fd5b505af11580156200108e573d5f803e3d5ffd5b505050505f600560146101000a81548160ff0219169083151502179055505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200112c57607f821691505b602082108103620011425762001141620010e7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620011a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001169565b620011b2868362001169565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620011fc620011f6620011f084620011ca565b620011d3565b620011ca565b9050919050565b5f819050919050565b6200121783620011dc565b6200122f620012268262001203565b84845462001175565b825550505050565b5f90565b6200124562001237565b620012528184846200120c565b505050565b5b8181101562001279576200126d5f826200123b565b60018101905062001258565b5050565b601f821115620012c857620012928162001148565b6200129d846200115a565b81016020851015620012ad578190505b620012c5620012bc856200115a565b83018262001257565b50505b505050565b5f82821c905092915050565b5f620012ea5f1984600802620012cd565b1980831691505092915050565b5f620013048383620012d9565b9150826002028217905092915050565b6200131f82620010b0565b67ffffffffffffffff8111156200133b576200133a620010ba565b5b62001347825462001114565b620013548282856200127d565b5f60209050601f8311600181146200138a575f841562001375578287015190505b620013818582620012f7565b865550620013f0565b601f1984166200139a8662001148565b5f5b82811015620013c3578489015182556001820191506020850194506020810190506200139c565b86831015620013e35784890151620013df601f891682620012d9565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200142382620013f8565b9050919050565b620014358162001417565b82525050565b5f602082019050620014505f8301846200142a565b92915050565b5f6040820190506200146b5f8301856200142a565b6200147a60208301846200142a565b9392505050565b5f80fd5b620014908162001417565b81146200149b575f80fd5b50565b5f81519050620014ae8162001485565b92915050565b5f60208284031215620014cc57620014cb62001481565b5b5f620014db848285016200149e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200156e57808604811115620015465762001545620014e4565b5b6001851615620015565780820291505b8081029050620015668562001511565b945062001526565b94509492505050565b5f826200158857600190506200165a565b8162001597575f90506200165a565b8160018114620015b05760028114620015bb57620015f1565b60019150506200165a565b60ff841115620015d057620015cf620014e4565b5b8360020a915084821115620015ea57620015e9620014e4565b5b506200165a565b5060208310610133831016604e8410600b84101617156200162b5782820a905083811115620016255762001624620014e4565b5b6200165a565b6200163a84848460016200151d565b92509050818404811115620016545762001653620014e4565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200167982620011ca565b9150620016868362001661565b9250620016b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001577565b905092915050565b5f620016c982620011ca565b9150620016d683620011ca565b9250828202620016e681620011ca565b915082820484148315176200170057620016ff620014e4565b5b5092915050565b6200171281620011ca565b82525050565b5f6020820190506200172d5f83018462001707565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200176c82620011ca565b91506200177983620011ca565b9250826200178c576200178b62001733565b5b828204905092915050565b5f620017a382620011ca565b9150620017b083620011ca565b9250828203905081811115620017cb57620017ca620014e4565b5b92915050565b5f620017dd82620011ca565b9150620017ea83620011ca565b9250828201905080821115620018055762001804620014e4565b5b92915050565b5f606082019050620018205f8301866200142a565b6200182f602083018562001707565b6200183e604083018462001707565b949350505050565b5f6040820190506200185b5f83018562001707565b6200186a602083018462001707565b9392505050565b5f6200187d82620011ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620018b257620018b1620014e4565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f620019136200190d6200190784620018ea565b620011d3565b620011ca565b9050919050565b6200192581620018f3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6200195f8162001417565b82525050565b5f62001972838362001954565b60208301905092915050565b5f602082019050919050565b5f62001996826200192b565b620019a2818562001935565b9350620019af8362001945565b805f5b83811015620019e5578151620019c9888262001965565b9750620019d6836200197e565b925050600181019050620019b2565b5085935050505092915050565b5f60a08201905062001a075f83018862001707565b62001a1660208301876200191a565b818103604083015262001a2a81866200198a565b905062001a3b60608301856200142a565b62001a4a608083018462001707565b9695505050505050565b60805160a05161249062001a845f395f6115fe01525f818161070201528181610a3a015261121401526124905ff3fe608060405260043610610138575f3560e01c806395d89b41116100aa578063beb0a4161161006e578063beb0a416146103e7578063c647b20e14610411578063db2e21bc14610439578063dd62ed3e1461044f578063ec14c0f11461048b578063f2fde38b146104b35761013f565b806395d89b4114610309578063a467aa9314610333578063a9059cbb1461035b578063ab5a188714610397578063b70143c9146103bf5761013f565b8063313ce567116100fc578063313ce567146102255780633e6df5041461024f5780636fc2508b1461027757806370a082311461028d578063715018a6146102c95780638da5cb5b146102df5761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063293230b81461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104db565b6040516101649190611a81565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b32565b61056b565b6040516101a09190611b8a565b60405180910390f35b3480156101b4575f80fd5b506101bd61058d565b6040516101ca9190611bb2565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190611bcb565b610596565b6040516102069190611b8a565b60405180910390f35b34801561021a575f80fd5b506102236105c4565b005b348015610230575f80fd5b506102396106ec565b6040516102469190611c36565b60405180910390f35b34801561025a575f80fd5b5061027560048036038101906102709190611c4f565b6106f4565b005b348015610282575f80fd5b5061028b61072a565b005b348015610298575f80fd5b506102b360048036038101906102ae9190611c7a565b61074f565b6040516102c09190611bb2565b60405180910390f35b3480156102d4575f80fd5b506102dd610794565b005b3480156102ea575f80fd5b506102f36107a7565b6040516103009190611cb4565b60405180910390f35b348015610314575f80fd5b5061031d6107cf565b60405161032a9190611a81565b60405180910390f35b34801561033e575f80fd5b5061035960048036038101906103549190611cf7565b61085f565b005b348015610366575f80fd5b50610381600480360381019061037c9190611b32565b610894565b60405161038e9190611b8a565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b89190611c4f565b6108b6565b005b3480156103ca575f80fd5b506103e560048036038101906103e09190611c4f565b610919565b005b3480156103f2575f80fd5b506103fb610981565b6040516104089190611a81565b60405180910390f35b34801561041c575f80fd5b5061043760048036038101906104329190611d47565b6109be565b005b348015610444575f80fd5b5061044d610a2d565b005b34801561045a575f80fd5b5061047560048036038101906104709190611d85565b610a61565b6040516104829190611bb2565b60405180910390f35b348015610496575f80fd5b506104b160048036038101906104ac9190611dc3565b610ae3565b005b3480156104be575f80fd5b506104d960048036038101906104d49190611c7a565b610b43565b005b6060600380546104ea90611e2e565b80601f016020809104026020016040519081016040528092919081815260200182805461051690611e2e565b80156105615780601f1061053857610100808354040283529160200191610561565b820191905f5260205f20905b81548152906001019060200180831161054457829003601f168201915b5050505050905090565b5f80610575610bc7565b9050610582818585610bce565b600191505092915050565b5f600254905090565b5f806105a0610bc7565b90506105ad858285610be0565b6105b8858585610c73565b60019150509392505050565b6105cc610d63565b600560179054906101000a900460ff1615610613576040517fd723eaba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790505f6106213061074f565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198330845f806106606107a7565b426040518863ffffffff1660e01b815260040161068296959493929190611ea0565b60606040518083038185885af115801561069e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106c39190611f13565b50505042600b819055506001600560176101000a81548160ff0219169083151502179055505050565b5f6012905090565b6106fc610d63565b610727307f000000000000000000000000000000000000000000000000000000000000000083610dea565b50565b610732610d63565b6001600560166101000a81548160ff021916908315150217905550565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61079c610d63565b6107a55f611003565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107de90611e2e565b80601f016020809104026020016040519081016040528092919081815260200182805461080a90611e2e565b80156108555780601f1061082c57610100808354040283529160200191610855565b820191905f5260205f20905b81548152906001019060200180831161083857829003601f168201915b5050505050905090565b610867610d63565b826006819055508160078190555080600560156101000a81548160ff021916908315150217905550505050565b5f8061089e610bc7565b90506108ab818585610c73565b600191505092915050565b6108be610d63565b60648111806108cd5750600181105b1561090f57806040517f0ead98430000000000000000000000000000000000000000000000000000000081526004016109069190611bb2565b60405180910390fd5b80600a8190555050565b610921610d63565b5f61092b3061074f565b9050808211156109745780826040517f8f0f420600000000000000000000000000000000000000000000000000000000815260040161096b929190611f63565b60405180910390fd5b61097d826110c6565b5050565b60606040518060400160405280601081526020017f68747470733a2f2f6b656b2e7669702f00000000000000000000000000000000815250905090565b6109c6610d63565b6064821015806109d7575060648110155b15610a1b5781816040517f827624b0000000000000000000000000000000000000000000000000000000008152600401610a12929190611f63565b60405180910390fd5b81600881905550806009819055505050565b610a35610d63565b610a5f7f00000000000000000000000000000000000000000000000000000000000000004761129f565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610aeb610d63565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610b4b610d63565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bbb575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610bb29190611cb4565b60405180910390fd5b610bc481611003565b50565b5f33905090565b610bdb8383836001611343565b505050565b5f610beb8484610a61565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610c6d5781811015610c5e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610c5593929190611f8a565b60405180910390fd5b610c6c84848484035f611343565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce3575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610cda9190611cb4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d53575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610d4a9190611cb4565b60405180910390fd5b610d5e838383611512565b505050565b610d6b610bc7565b73ffffffffffffffffffffffffffffffffffffffff16610d896107a7565b73ffffffffffffffffffffffffffffffffffffffff1614610de857610dac610bc7565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ddf9190611cb4565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3a578060025f828254610e2e9190611fec565b92505081905550610f08565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610ec3578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610eba93929190611f8a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4f578060025f8282540392505081905550610f99565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ff69190611bb2565b60405180910390a3505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600560146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156110fd576110fc61201f565b5b60405190808252806020026020018201604052801561112b5781602001602082028036833780820191505090505b50905030815f815181106111425761114161204c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106111a5576111a461204c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611254959493929190612130565b5f604051808303815f87803b15801561126b575f80fd5b505af115801561127d573d5f803e3d5ffd5b505050505f600560146101000a81548160ff0219169083151502179055505050565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516112c4906121b5565b5f6040518083038185875af1925050503d805f81146112fe576040519150601f19603f3d011682016040523d82523d5f602084013e611303565b606091505b505090508061133e576040517fe53e5bcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113b3575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016113aa9190611cb4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611423575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161141a9190611cb4565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561150c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115039190611bb2565b60405180910390a35b50505050565b5f810361154b576040517f1447158500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806115e65750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156115fb576115f6838383610dea565b611718565b5f7f000000000000000000000000000000000000000000000000000000000000000090505f8173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161490505f8273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614905061168c8461171d565b6116946117b9565b5f82156116bc576064600854866116ab91906121c9565b6116b59190612237565b90506116e9565b81156116e8576064600954866116d291906121c9565b6116dc9190612237565b90506116e785611874565b5b5b5f8111156116fd576116fc873083610dea565b5b6117138787838861170e9190612267565b610dea565b505050505b505050565b600560179054906101000a900460ff16611763576040517f12f1f92300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61176c61196a565b9050808211156117b55780826040517f23c19a270000000000000000000000000000000000000000000000000000000081526004016117ac929190611f63565b60405180910390fd5b5050565b600560169054906101000a900460ff16611872575f600b54426117dc9190612267565b90506104b0811115611816575f6008819055505f6009819055506001600560166101000a81548160ff021916908315150217905550611870565b610384811115611834575f600881905550600560098190555061186f565b610258811115611852575f600881905550600a60098190555061186e565b61012c81111561186d576005600881905550600f6009819055505b5b5b5b505b565b600560159054906101000a900460ff1615611967575f6118933061074f565b90505f600c5f4381526020019081526020015f205490505f600654831190505f600754831090505f600560149054906101000a900460ff161580156118d55750825b80156118de5750815b9050801561196157600c5f4381526020019081526020015f205f8154809291906119079061229a565b91905055505f61194b876119468860646012600a6119259190612410565b66017e9d8602b40061193791906121c9565b6119419190612237565b6119df565b6119df565b90505f81111561195f5761195e816110c6565b5b505b50505050505b50565b5f80600a549050606481036119a1576012600a6119879190612410565b66017e9d8602b40061199991906121c9565b9150506119dc565b6064816012600a6119b29190612410565b66017e9d8602b4006119c491906121c9565b6119ce91906121c9565b6119d89190612237565b9150505b90565b5f8183116119ed57826119ef565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a2e578082015181840152602081019050611a13565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a53826119f7565b611a5d8185611a01565b9350611a6d818560208601611a11565b611a7681611a39565b840191505092915050565b5f6020820190508181035f830152611a998184611a49565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ace82611aa5565b9050919050565b611ade81611ac4565b8114611ae8575f80fd5b50565b5f81359050611af981611ad5565b92915050565b5f819050919050565b611b1181611aff565b8114611b1b575f80fd5b50565b5f81359050611b2c81611b08565b92915050565b5f8060408385031215611b4857611b47611aa1565b5b5f611b5585828601611aeb565b9250506020611b6685828601611b1e565b9150509250929050565b5f8115159050919050565b611b8481611b70565b82525050565b5f602082019050611b9d5f830184611b7b565b92915050565b611bac81611aff565b82525050565b5f602082019050611bc55f830184611ba3565b92915050565b5f805f60608486031215611be257611be1611aa1565b5b5f611bef86828701611aeb565b9350506020611c0086828701611aeb565b9250506040611c1186828701611b1e565b9150509250925092565b5f60ff82169050919050565b611c3081611c1b565b82525050565b5f602082019050611c495f830184611c27565b92915050565b5f60208284031215611c6457611c63611aa1565b5b5f611c7184828501611b1e565b91505092915050565b5f60208284031215611c8f57611c8e611aa1565b5b5f611c9c84828501611aeb565b91505092915050565b611cae81611ac4565b82525050565b5f602082019050611cc75f830184611ca5565b92915050565b611cd681611b70565b8114611ce0575f80fd5b50565b5f81359050611cf181611ccd565b92915050565b5f805f60608486031215611d0e57611d0d611aa1565b5b5f611d1b86828701611b1e565b9350506020611d2c86828701611b1e565b9250506040611d3d86828701611ce3565b9150509250925092565b5f8060408385031215611d5d57611d5c611aa1565b5b5f611d6a85828601611b1e565b9250506020611d7b85828601611b1e565b9150509250929050565b5f8060408385031215611d9b57611d9a611aa1565b5b5f611da885828601611aeb565b9250506020611db985828601611aeb565b9150509250929050565b5f8060408385031215611dd957611dd8611aa1565b5b5f611de685828601611aeb565b9250506020611df785828601611ce3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e4557607f821691505b602082108103611e5857611e57611e01565b5b50919050565b5f819050919050565b5f819050919050565b5f611e8a611e85611e8084611e5e565b611e67565b611aff565b9050919050565b611e9a81611e70565b82525050565b5f60c082019050611eb35f830189611ca5565b611ec06020830188611ba3565b611ecd6040830187611e91565b611eda6060830186611e91565b611ee76080830185611ca5565b611ef460a0830184611ba3565b979650505050505050565b5f81519050611f0d81611b08565b92915050565b5f805f60608486031215611f2a57611f29611aa1565b5b5f611f3786828701611eff565b9350506020611f4886828701611eff565b9250506040611f5986828701611eff565b9150509250925092565b5f604082019050611f765f830185611ba3565b611f836020830184611ba3565b9392505050565b5f606082019050611f9d5f830186611ca5565b611faa6020830185611ba3565b611fb76040830184611ba3565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ff682611aff565b915061200183611aff565b925082820190508082111561201957612018611fbf565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6120ab81611ac4565b82525050565b5f6120bc83836120a2565b60208301905092915050565b5f602082019050919050565b5f6120de82612079565b6120e88185612083565b93506120f383612093565b805f5b8381101561212357815161210a88826120b1565b9750612115836120c8565b9250506001810190506120f6565b5085935050505092915050565b5f60a0820190506121435f830188611ba3565b6121506020830187611e91565b818103604083015261216281866120d4565b90506121716060830185611ca5565b61217e6080830184611ba3565b9695505050505050565b5f81905092915050565b50565b5f6121a05f83612188565b91506121ab82612192565b5f82019050919050565b5f6121bf82612195565b9150819050919050565b5f6121d382611aff565b91506121de83611aff565b92508282026121ec81611aff565b9150828204841483151761220357612202611fbf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61224182611aff565b915061224c83611aff565b92508261225c5761225b61220a565b5b828204905092915050565b5f61227182611aff565b915061227c83611aff565b925082820390508181111561229457612293611fbf565b5b92915050565b5f6122a482611aff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036122d6576122d5611fbf565b5b600182019050919050565b5f8160011c9050919050565b5f808291508390505b60018511156123365780860481111561231257612311611fbf565b5b60018516156123215780820291505b808102905061232f856122e1565b94506122f6565b94509492505050565b5f8261234e5760019050612409565b8161235b575f9050612409565b8160018114612371576002811461237b576123aa565b6001915050612409565b60ff84111561238d5761238c611fbf565b5b8360020a9150848211156123a4576123a3611fbf565b5b50612409565b5060208310610133831016604e8410600b84101617156123df5782820a9050838111156123da576123d9611fbf565b5b612409565b6123ec84848460016122ed565b9250905081840481111561240357612402611fbf565b5b81810290505b9392505050565b5f61241a82611aff565b915061242583611c1b565b92506124527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461233f565b90509291505056fea2646970667358221220562b37771bbdafb8460c9cf6520688e6bf4c5da2f1a464a278adb29632599cae64736f6c63430008140033