Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
2,904,450 CPOL
Holders
796
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CryptoPolitanToken
Compiler Version
v0.5.8+commit.23d335f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-06-11 */ pragma solidity ^0.5.1; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } } contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyOwner whenNotPaused { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } } contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) internal balances; uint256 internal totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_value <= balances[msg.sender]); require(_to != address(0)); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(_to != address(0)); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) { allowed[msg.sender][_spender] = (allowed[msg.sender][_spender].add(_addedValue)); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) { uint256 oldValue = allowed[msg.sender][_spender]; if (_subtractedValue >= oldValue) allowed[msg.sender][_spender] = 0; else allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract BurnableToken is StandardToken, Ownable { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. * @param _who The user whose token should be burned. */ function burn(address _who, uint256 _value) onlyOwner public { require(_value <= balances[_who]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure balances[_who] = balances[_who].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(_who, _value); emit Transfer(_who, address(0), _value); } } contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } modifier hasMintPermission() { require(msg.sender == owner); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) public hasMintPermission canMint returns (bool) { totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() public onlyOwner canMint returns (bool) { mintingFinished = true; emit MintFinished(); return true; } } contract CappedToken is MintableToken { uint256 public cap; constructor(uint256 _cap) public { require(_cap > 0); cap = _cap; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) public returns (bool) { require(totalSupply_.add(_amount) <= cap); return super.mint(_to, _amount); } } contract PausableToken is StandardToken, Pausable { function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { return super.approve(_spender, _value); } function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) { return super.increaseApproval(_spender, _addedValue); } function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) { return super.decreaseApproval(_spender, _subtractedValue); } } contract CryptoPolitanToken is BurnableToken, PausableToken, CappedToken { address public upgradedAddress; bool public deprecated; string public contactInformation = "[email protected]"; string public name = "CryptoPolitan"; string public reason; string public symbol = "CPOL"; uint8 public decimals = 8; constructor () CappedToken(100000000000000000000) public {} // Fix for the ERC20 short address attack. modifier onlyPayloadSize(uint size) { require(!(msg.data.length < size + 4), "payload too big"); _; } // Forward ERC20 methods to upgraded contract if this one is deprecated function transfer(address _to, uint _value) public whenNotPaused returns (bool) { if (deprecated) return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value); else return super.transfer(_to, _value); } // Forward ERC20 methods to upgraded contract if this one is deprecated function transferFrom(address _from, address _to, uint _value) public whenNotPaused returns (bool) { if (deprecated) return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value); else return super.transferFrom(_from, _to, _value); } // Forward ERC20 methods to upgraded contract if this one is deprecated function balanceOf(address who) public view returns (uint256) { if (deprecated) return UpgradedStandardToken(upgradedAddress).balanceOf(who); else return super.balanceOf(who); } // Forward ERC20 methods to upgraded contract if this one is deprecated function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) returns (bool) { if (deprecated) return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value); else return super.approve(_spender, _value); } // Forward ERC20 methods to upgraded contract if this one is deprecated function allowance(address _owner, address _spender) public view returns (uint remaining) { if (deprecated) return StandardToken(upgradedAddress).allowance(_owner, _spender); else return super.allowance(_owner, _spender); } // deprecate current contract in favour of a new one function deprecate(address _upgradedAddress, string memory _reason) public onlyOwner { deprecated = true; upgradedAddress = _upgradedAddress; reason = _reason; emit Deprecate(_upgradedAddress, _reason); } // Called when contract is deprecated event Deprecate(address newAddress, string reason); } contract UpgradedStandardToken is PausableToken { // those methods are called by the legacy contract // and they must ensure msg.sender to be the contract address function transferByLegacy(address from, address to, uint value) public returns (bool); function transferFromByLegacy(address sender, address from, address spender, uint value) public returns (bool); function approveByLegacy(address from, address spender, uint value) public returns (bool); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contactInformation","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"},{"name":"_reason","type":"string"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reason","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"},{"indexed":false,"name":"reason","type":"string"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60038054600160a01b61ffff021916905560c0604052601960808190527f636f6e746163744063727970746f706f6c6974616e2e636f6d0000000000000060a090815262000051916006919062000120565b5060408051808201909152600d8082527f43727970746f506f6c6974616e000000000000000000000000000000000000006020909201918252620000989160079162000120565b506040805180820190915260048082527f43504f4c000000000000000000000000000000000000000000000000000000006020909201918252620000df9160099162000120565b50600a805460ff19166008179055348015620000fa57600080fd5b50600380546001600160a01b0319163317905568056bc75e2d63100000600455620001c5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016357805160ff191683800117855562000193565b8280016001018555821562000193579182015b828111156200019357825182559160200191906001019062000176565b50620001a1929150620001a5565b5090565b620001c291905b80821115620001a15760008155600101620001ac565b90565b6116fe80620001d56000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80635c975abb116100f957806395d89b4111610097578063d73dd62311610071578063d73dd623146104e3578063dd62ed3e1461050f578063e134e33d1461053d578063f2fde38b14610545576101a9565b806395d89b41146104835780639dc29fac1461048b578063a9059cbb146104b7576101a9565b8063715018a6116100d3578063715018a6146104635780637d64bcb41461046b5780638456cb59146104735780638da5cb5b1461047b576101a9565b80635c975abb14610409578063661884631461041157806370a082311461043d576101a9565b806326976e3f1161016657806336f7ab5e1161014057806336f7ab5e146103155780633f4ba83a1461031d57806340c10f19146103275780634402c14a14610353576101a9565b806326976e3f146102cb578063313ce567146102ef578063355274ea1461030d576101a9565b806305d2035b146101ae57806306fdde03146101ca578063095ea7b3146102475780630e136b191461027357806318160ddd1461027b57806323b872dd14610295575b600080fd5b6101b661056b565b604080519115158252519081900360200190f35b6101d261057b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020c5781810151838201526020016101f4565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b66004803603604081101561025d57600080fd5b506001600160a01b038135169060200135610609565b6101b661071e565b61028361072e565b60408051918252519081900360200190f35b6101b6600480360360608110156102ab57600080fd5b506001600160a01b03813581169160208101359091169060400135610735565b6102d3610810565b604080516001600160a01b039092168252519081900360200190f35b6102f761081f565b6040805160ff9092168252519081900360200190f35b610283610828565b6101d261082e565b610325610889565b005b6101b66004803603604081101561033d57600080fd5b506001600160a01b0381351690602001356108f1565b6103256004803603604081101561036957600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561039457600080fd5b8201836020820111156103a657600080fd5b803590602001918460018302840111640100000000831117156103c857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610929945050505050565b6101b6610a38565b6101b66004803603604081101561042757600080fd5b506001600160a01b038135169060200135610a48565b6102836004803603602081101561045357600080fd5b50356001600160a01b0316610a6c565b610325610b15565b6101b6610b76565b610325610bec565b6102d3610c5b565b6101d2610c6a565b610325600480360360408110156104a157600080fd5b506001600160a01b038135169060200135610cc5565b6101b6600480360360408110156104cd57600080fd5b506001600160a01b038135169060200135610dcb565b6101b6600480360360408110156104f957600080fd5b506001600160a01b038135169060200135610e9a565b6102836004803603604081101561052557600080fd5b506001600160a01b0381358116916020013516610ebe565b6101d2610f49565b6103256004803603602081101561055b57600080fd5b50356001600160a01b0316610fa4565b600354600160a81b900460ff1681565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b820191906000526020600020905b8154815290600101906020018083116105e457829003601f168201915b505050505081565b6000604060443610156106665760408051600160e51b62461bcd02815260206004820152600f60248201527f7061796c6f616420746f6f206269670000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a01b900460ff161561070a5760055460408051600160e01b63aee92d330281523360048201526001600160a01b038781166024830152604482018790529151919092169163aee92d339160648083019260209291908290030181600087803b1580156106d757600080fd5b505af11580156106eb573d6000803e3d6000fd5b505050506040513d602081101561070157600080fd5b50519150610717565b6107148484610fc7565b91505b5092915050565b600554600160a01b900460ff1681565b6001545b90565b600354600090600160a01b900460ff161561074f57600080fd5b600554600160a01b900460ff16156107fb5760055460408051600160e01b638b477adb0281523360048201526001600160a01b03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b1580156107c857600080fd5b505af11580156107dc573d6000803e3d6000fd5b505050506040513d60208110156107f257600080fd5b50519050610809565b610806848484610feb565b90505b9392505050565b6005546001600160a01b031681565b600a5460ff1681565b60045481565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b031633146108a057600080fd5b600354600160a01b900460ff166108b657600080fd5b60038054600160a01b60ff02191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600060045461090b8360015461101090919063ffffffff16565b111561091657600080fd5b610920838361101d565b90505b92915050565b6003546001600160a01b0316331461094057600080fd5b60058054600160a01b600160a01b60ff0219909116176001600160a01b0319166001600160a01b038416179055805161098090600890602084019061161a565b507f104774a0b3ee494077b36fb92388114f60a683ad848e3737197877ad531636e6828260405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109f95781810151838201526020016109e1565b50505050905090810190601f168015610a265780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600354600160a01b900460ff1681565b600354600090600160a01b900460ff1615610a6257600080fd5b6109208383611115565b600554600090600160a01b900460ff1615610b045760055460408051600160e01b6370a082310281526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b50519050610b10565b610b0d82611204565b90505b919050565b6003546001600160a01b03163314610b2c57600080fd5b6003546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600380546001600160a01b0319169055565b6003546000906001600160a01b03163314610b9057600080fd5b600354600160a81b900460ff1615610ba757600080fd5b60038054600160a81b60ff021916600160a81b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b6003546001600160a01b03163314610c0357600080fd5b600354600160a01b900460ff1615610c1a57600080fd5b60038054600160a01b60ff021916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6003546001600160a01b031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b03163314610cdc57600080fd5b6001600160a01b038216600090815260208190526040902054811115610d0157600080fd5b6001600160a01b038216600090815260208190526040902054610d2a908263ffffffff61121f16565b6001600160a01b038316600090815260208190526040902055600154610d56908263ffffffff61121f16565b6001556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000916001600160a01b038516916000805160206116b38339815191529181900360200190a35050565b600354600090600160a01b900460ff1615610de557600080fd5b600554600160a01b900460ff1615610e895760055460408051600160e11b63370c4c050281523360048201526001600160a01b0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b158015610e5657600080fd5b505af1158015610e6a573d6000803e3d6000fd5b505050506040513d6020811015610e8057600080fd5b50519050610923565b610e938383611231565b9050610923565b600354600090600160a01b900460ff1615610eb457600080fd5b6109208383611255565b600554600090600160a01b900460ff1615610f3f5760055460408051600160e11b636eb1769f0281526001600160a01b03868116600483015285811660248301529151919092169163dd62ed3e916044808301926020929190829003018186803b158015610f2b57600080fd5b505afa158015610e6a573d6000803e3d6000fd5b610e9383836112ee565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b03163314610fbb57600080fd5b610fc481611319565b50565b600354600090600160a01b900460ff1615610fe157600080fd5b6109208383611388565b600354600090600160a01b900460ff161561100557600080fd5b6108068484846113ee565b8181018281101561092357fe5b6003546000906001600160a01b0316331461103757600080fd5b600354600160a81b900460ff161561104e57600080fd5b600154611061908363ffffffff61101016565b6001556001600160a01b03831660009081526020819052604090205461108d908363ffffffff61101016565b6001600160a01b03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805183815290516001600160a01b038516916000916000805160206116b38339815191529181900360200190a350600192915050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054808310611169573360009081526002602090815260408083206001600160a01b038816845290915281205561119e565b611179818463ffffffff61121f16565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526020819052604090205490565b60008282111561122b57fe5b50900390565b600354600090600160a01b900460ff161561124b57600080fd5b610920838361154f565b3360009081526002602090815260408083206001600160a01b0386168452909152812054611289908363ffffffff61101016565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03811661132c57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6001600160a01b03831660009081526020819052604081205482111561141357600080fd5b6001600160a01b038416600090815260026020908152604080832033845290915290205482111561144357600080fd5b6001600160a01b03831661145657600080fd5b6001600160a01b03841660009081526020819052604090205461147f908363ffffffff61121f16565b6001600160a01b0380861660009081526020819052604080822093909355908516815220546114b4908363ffffffff61101016565b6001600160a01b038085166000908152602081815260408083209490945591871681526002825282812033825290915220546114f6908363ffffffff61121f16565b6001600160a01b03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391926000805160206116b3833981519152929181900390910190a35060019392505050565b3360009081526020819052604081205482111561156b57600080fd5b6001600160a01b03831661157e57600080fd5b3360009081526020819052604090205461159e908363ffffffff61121f16565b33600090815260208190526040808220929092556001600160a01b038516815220546115d0908363ffffffff61101016565b6001600160a01b038416600081815260208181526040918290209390935580518581529051919233926000805160206116b38339815191529281900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061165b57805160ff1916838001178555611688565b82800160010185558215611688579182015b8281111561168857825182559160200191906001019061166d565b50611694929150611698565b5090565b61073291905b80821115611694576000815560010161169e56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582057de388f67ed4d25d37c3574ca699d33d49da28f36231221b4e7573b0f9088860029
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80635c975abb116100f957806395d89b4111610097578063d73dd62311610071578063d73dd623146104e3578063dd62ed3e1461050f578063e134e33d1461053d578063f2fde38b14610545576101a9565b806395d89b41146104835780639dc29fac1461048b578063a9059cbb146104b7576101a9565b8063715018a6116100d3578063715018a6146104635780637d64bcb41461046b5780638456cb59146104735780638da5cb5b1461047b576101a9565b80635c975abb14610409578063661884631461041157806370a082311461043d576101a9565b806326976e3f1161016657806336f7ab5e1161014057806336f7ab5e146103155780633f4ba83a1461031d57806340c10f19146103275780634402c14a14610353576101a9565b806326976e3f146102cb578063313ce567146102ef578063355274ea1461030d576101a9565b806305d2035b146101ae57806306fdde03146101ca578063095ea7b3146102475780630e136b191461027357806318160ddd1461027b57806323b872dd14610295575b600080fd5b6101b661056b565b604080519115158252519081900360200190f35b6101d261057b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020c5781810151838201526020016101f4565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b66004803603604081101561025d57600080fd5b506001600160a01b038135169060200135610609565b6101b661071e565b61028361072e565b60408051918252519081900360200190f35b6101b6600480360360608110156102ab57600080fd5b506001600160a01b03813581169160208101359091169060400135610735565b6102d3610810565b604080516001600160a01b039092168252519081900360200190f35b6102f761081f565b6040805160ff9092168252519081900360200190f35b610283610828565b6101d261082e565b610325610889565b005b6101b66004803603604081101561033d57600080fd5b506001600160a01b0381351690602001356108f1565b6103256004803603604081101561036957600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561039457600080fd5b8201836020820111156103a657600080fd5b803590602001918460018302840111640100000000831117156103c857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610929945050505050565b6101b6610a38565b6101b66004803603604081101561042757600080fd5b506001600160a01b038135169060200135610a48565b6102836004803603602081101561045357600080fd5b50356001600160a01b0316610a6c565b610325610b15565b6101b6610b76565b610325610bec565b6102d3610c5b565b6101d2610c6a565b610325600480360360408110156104a157600080fd5b506001600160a01b038135169060200135610cc5565b6101b6600480360360408110156104cd57600080fd5b506001600160a01b038135169060200135610dcb565b6101b6600480360360408110156104f957600080fd5b506001600160a01b038135169060200135610e9a565b6102836004803603604081101561052557600080fd5b506001600160a01b0381358116916020013516610ebe565b6101d2610f49565b6103256004803603602081101561055b57600080fd5b50356001600160a01b0316610fa4565b600354600160a81b900460ff1681565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b820191906000526020600020905b8154815290600101906020018083116105e457829003601f168201915b505050505081565b6000604060443610156106665760408051600160e51b62461bcd02815260206004820152600f60248201527f7061796c6f616420746f6f206269670000000000000000000000000000000000604482015290519081900360640190fd5b600554600160a01b900460ff161561070a5760055460408051600160e01b63aee92d330281523360048201526001600160a01b038781166024830152604482018790529151919092169163aee92d339160648083019260209291908290030181600087803b1580156106d757600080fd5b505af11580156106eb573d6000803e3d6000fd5b505050506040513d602081101561070157600080fd5b50519150610717565b6107148484610fc7565b91505b5092915050565b600554600160a01b900460ff1681565b6001545b90565b600354600090600160a01b900460ff161561074f57600080fd5b600554600160a01b900460ff16156107fb5760055460408051600160e01b638b477adb0281523360048201526001600160a01b03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b1580156107c857600080fd5b505af11580156107dc573d6000803e3d6000fd5b505050506040513d60208110156107f257600080fd5b50519050610809565b610806848484610feb565b90505b9392505050565b6005546001600160a01b031681565b600a5460ff1681565b60045481565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b031633146108a057600080fd5b600354600160a01b900460ff166108b657600080fd5b60038054600160a01b60ff02191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600060045461090b8360015461101090919063ffffffff16565b111561091657600080fd5b610920838361101d565b90505b92915050565b6003546001600160a01b0316331461094057600080fd5b60058054600160a01b600160a01b60ff0219909116176001600160a01b0319166001600160a01b038416179055805161098090600890602084019061161a565b507f104774a0b3ee494077b36fb92388114f60a683ad848e3737197877ad531636e6828260405180836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109f95781810151838201526020016109e1565b50505050905090810190601f168015610a265780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600354600160a01b900460ff1681565b600354600090600160a01b900460ff1615610a6257600080fd5b6109208383611115565b600554600090600160a01b900460ff1615610b045760055460408051600160e01b6370a082310281526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b50519050610b10565b610b0d82611204565b90505b919050565b6003546001600160a01b03163314610b2c57600080fd5b6003546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600380546001600160a01b0319169055565b6003546000906001600160a01b03163314610b9057600080fd5b600354600160a81b900460ff1615610ba757600080fd5b60038054600160a81b60ff021916600160a81b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b6003546001600160a01b03163314610c0357600080fd5b600354600160a01b900460ff1615610c1a57600080fd5b60038054600160a01b60ff021916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6003546001600160a01b031681565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b03163314610cdc57600080fd5b6001600160a01b038216600090815260208190526040902054811115610d0157600080fd5b6001600160a01b038216600090815260208190526040902054610d2a908263ffffffff61121f16565b6001600160a01b038316600090815260208190526040902055600154610d56908263ffffffff61121f16565b6001556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a26040805182815290516000916001600160a01b038516916000805160206116b38339815191529181900360200190a35050565b600354600090600160a01b900460ff1615610de557600080fd5b600554600160a01b900460ff1615610e895760055460408051600160e11b63370c4c050281523360048201526001600160a01b0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b158015610e5657600080fd5b505af1158015610e6a573d6000803e3d6000fd5b505050506040513d6020811015610e8057600080fd5b50519050610923565b610e938383611231565b9050610923565b600354600090600160a01b900460ff1615610eb457600080fd5b6109208383611255565b600554600090600160a01b900460ff1615610f3f5760055460408051600160e11b636eb1769f0281526001600160a01b03868116600483015285811660248301529151919092169163dd62ed3e916044808301926020929190829003018186803b158015610f2b57600080fd5b505afa158015610e6a573d6000803e3d6000fd5b610e9383836112ee565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106015780601f106105d657610100808354040283529160200191610601565b6003546001600160a01b03163314610fbb57600080fd5b610fc481611319565b50565b600354600090600160a01b900460ff1615610fe157600080fd5b6109208383611388565b600354600090600160a01b900460ff161561100557600080fd5b6108068484846113ee565b8181018281101561092357fe5b6003546000906001600160a01b0316331461103757600080fd5b600354600160a81b900460ff161561104e57600080fd5b600154611061908363ffffffff61101016565b6001556001600160a01b03831660009081526020819052604090205461108d908363ffffffff61101016565b6001600160a01b03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a26040805183815290516001600160a01b038516916000916000805160206116b38339815191529181900360200190a350600192915050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054808310611169573360009081526002602090815260408083206001600160a01b038816845290915281205561119e565b611179818463ffffffff61121f16565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526020819052604090205490565b60008282111561122b57fe5b50900390565b600354600090600160a01b900460ff161561124b57600080fd5b610920838361154f565b3360009081526002602090815260408083206001600160a01b0386168452909152812054611289908363ffffffff61101016565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03811661132c57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6001600160a01b03831660009081526020819052604081205482111561141357600080fd5b6001600160a01b038416600090815260026020908152604080832033845290915290205482111561144357600080fd5b6001600160a01b03831661145657600080fd5b6001600160a01b03841660009081526020819052604090205461147f908363ffffffff61121f16565b6001600160a01b0380861660009081526020819052604080822093909355908516815220546114b4908363ffffffff61101016565b6001600160a01b038085166000908152602081815260408083209490945591871681526002825282812033825290915220546114f6908363ffffffff61121f16565b6001600160a01b03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391926000805160206116b3833981519152929181900390910190a35060019392505050565b3360009081526020819052604081205482111561156b57600080fd5b6001600160a01b03831661157e57600080fd5b3360009081526020819052604090205461159e908363ffffffff61121f16565b33600090815260208190526040808220929092556001600160a01b038516815220546115d0908363ffffffff61101016565b6001600160a01b038416600081815260208181526040918290209390935580518581529051919233926000805160206116b38339815191529281900390910190a350600192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061165b57805160ff1916838001178555611688565b82800160010185558215611688579182015b8281111561168857825182559160200191906001019061166d565b50611694929150611698565b5090565b61073291905b80821115611694576000815560010161169e56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582057de388f67ed4d25d37c3574ca699d33d49da28f36231221b4e7573b0f9088860029
Deployed Bytecode Sourcemap
13082:2700:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13082:2700:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10429:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;13297:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13297:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14761:274;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14761:274:0;;;;;;;;:::i;13199:22::-;;;:::i;4196:91::-;;;:::i;:::-;;;;;;;;;;;;;;;;14098:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14098:293:0;;;;;;;;;;;;;;;;;:::i;13162:30::-;;;:::i;:::-;;;;-1:-1:-1;;;;;13162:30:0;;;;;;;;;;;;;;13403:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11569:18;;;:::i;13228:62::-;;;:::i;3548:95::-;;;:::i;:::-;;11948:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11948:168:0;;;;;;;;:::i;15432:245::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;15432:245:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15432:245:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15432:245:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15432:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15432:245:0;;-1:-1:-1;15432:245:0;;-1:-1:-1;;;;;15432:245:0:i;2927:26::-;;;:::i;12879:196::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12879:196:0;;;;;;;;:::i;14476:200::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14476:200:0;-1:-1:-1;;;;;14476:200:0;;:::i;2143:114::-;;;:::i;11359:158::-;;;:::i;3368:93::-;;;:::i;1348:20::-;;;:::i;13367:29::-;;;:::i;9800:484::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9800:484:0;;;;;;;;:::i;13761:252::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13761:252:0;;;;;;;;:::i;12683:186::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12683:186:0;;;;;;;;:::i;15120:246::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15120:246:0;;;;;;;;;;:::i;13340:20::-;;;:::i;2425:105::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2425:105:0;-1:-1:-1;;;;;2425:105:0;;:::i;10429:35::-;;;-1:-1:-1;;;10429:35:0;;;;;:::o;13297:36::-;;;;;;;;;;;;;;;-1:-1:-1;;13297:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14761:274::-;14849:4;14832:6;13627:8;13609;:26;13607:29;13599:57;;;;;-1:-1:-1;;;;;13599:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14870:10;;-1:-1:-1;;;14870:10:0;;;;14866:161;;;14911:15;;14889:84;;;-1:-1:-1;;;;;14889:84:0;;14944:10;14889:84;;;;-1:-1:-1;;;;;14889:84:0;;;;;;;;;;;;;;;14911:15;;;;;14889:54;;:84;;;;;;;;;;;;;;14911:15;;14889:84;;;5:2:-1;;;;30:1;27;20:12;5:2;14889:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14889:84:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14889:84:0;;-1:-1:-1;14882:91:0;;14866:161;14996:31;15010:8;15020:6;14996:13;:31::i;:::-;14989:38;;14866:161;14761:274;;;;;:::o;13199:22::-;;;-1:-1:-1;;;13199:22:0;;;;;:::o;4196:91::-;4267:12;;4196:91;;:::o;14098:293::-;3103:6;;14191:4;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;14212:10;;-1:-1:-1;;;14212:10:0;;;;14208:175;;;14253:15;;14231:91;;;-1:-1:-1;;;;;14231:91:0;;14291:10;14231:91;;;;-1:-1:-1;;;;;14231:91:0;;;;;;;;;;;;;;;;;;;;;;14253:15;;;;;14231:59;;:91;;;;;;;;;;;;;;14253:15;;14231:91;;;5:2:-1;;;;30:1;27;20:12;5:2;14231:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14231:91:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14231:91:0;;-1:-1:-1;14224:98:0;;14208:175;14345:38;14364:5;14371:3;14376:6;14345:18;:38::i;:::-;14338:45;;14208:175;14098:293;;;;;:::o;13162:30::-;;;-1:-1:-1;;;;;13162:30:0;;:::o;13403:25::-;;;;;;:::o;11569:18::-;;;;:::o;13228:62::-;;;;;;;;;;;;;;;-1:-1:-1;;13228:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3548:95;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;3263:6;;-1:-1:-1;;;3263:6:0;;;;3255:15;;;;;;3602:6;:14;;-1:-1:-1;;;;;;3602:14:0;;;3628:9;;;;3611:5;;3628:9;3548:95::o;11948:168::-;12008:4;12062:3;;12033:25;12050:7;12033:12;;:16;;:25;;;;:::i;:::-;:32;;12025:41;;;;;;12084:24;12095:3;12100:7;12084:10;:24::i;:::-;12077:31;;11948:168;;;;;:::o;15432:245::-;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;15528:10;:17;;-1:-1:-1;;;;;;;;;15528:17:0;;;;-1:-1:-1;;;;;;15556:34:0;-1:-1:-1;;;;;15556:34:0;;;;;15601:16;;;;:6;;:16;;;;;:::i;:::-;;15633:36;15643:16;15661:7;15633:36;;;;-1:-1:-1;;;;;15633:36:0;-1:-1:-1;;;;;15633:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15633:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15432:245;;:::o;2927:26::-;;;-1:-1:-1;;;2927:26:0;;;;;:::o;12879:196::-;3103:6;;12985:12;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;13017:50;13040:8;13050:16;13017:22;:50::i;14476:200::-;14553:10;;14529:7;;-1:-1:-1;;;14553:10:0;;;;14549:119;;;14594:15;;14572:53;;;-1:-1:-1;;;;;14572:53:0;;-1:-1:-1;;;;;14572:53:0;;;;;;;;;14594:15;;;;;14572:48;;:53;;;;;;;;;;;;;;14594:15;14572:53;;;5:2:-1;;;;30:1;27;20:12;5:2;14572:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14572:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14572:53:0;;-1:-1:-1;14565:60:0;;14549:119;14648:20;14664:3;14648:15;:20::i;:::-;14641:27;;14549:119;14476:200;;;:::o;2143:114::-;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;2220:5;;2201:25;;-1:-1:-1;;;;;2220:5:0;;;;2201:25;;2220:5;;2201:25;2233:5;:18;;-1:-1:-1;;;;;;2233:18:0;;;2143:114::o;11359:158::-;1851:5;;11418:4;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;10514:15;;-1:-1:-1;;;10514:15:0;;;;10513:16;10505:25;;;;;;11435:15;:22;;-1:-1:-1;;;;;;11435:22:0;-1:-1:-1;;;11435:22:0;;;11473:14;;;;11435:22;;11473:14;-1:-1:-1;11505:4:0;11359:158;:::o;3368:93::-;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;3103:6;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;3423:6;:13;;-1:-1:-1;;;;;;3423:13:0;-1:-1:-1;;;3423:13:0;;;3448:7;;;;3423:13;;3448:7;3368:93::o;1348:20::-;;;-1:-1:-1;;;;;1348:20:0;;:::o;13367:29::-;;;;;;;;;;;;;;;-1:-1:-1;;13367:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9800:484;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;-1:-1:-1;;;;;9890:14:0;;:8;:14;;;;;;;;;;;9880:24;;;9872:33;;;;;;-1:-1:-1;;;;;10116:14:0;;:8;:14;;;;;;;;;;;:26;;10135:6;10116:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;10099:14:0;;:8;:14;;;;;;;;;;:43;10168:12;;:24;;10185:6;10168:24;:16;:24;:::i;:::-;10153:12;:39;10208:18;;;;;;;;-1:-1:-1;;;;;10208:18:0;;;;;;;;;;;;;10242:34;;;;;;;;10265:1;;-1:-1:-1;;;;;10242:34:0;;;-1:-1:-1;;;;;;;;;;;10242:34:0;;;;;;;;9800:484;;:::o;13761:252::-;3103:6;;13835:4;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;13856:10;;-1:-1:-1;;;13856:10:0;;;;13852:153;;;13897:15;;13875:80;;;-1:-1:-1;;;;;13875:80:0;;13931:10;13875:80;;;;-1:-1:-1;;;;;13875:80:0;;;;;;;;;;;;;;;13897:15;;;;;13875:55;;:80;;;;;;;;;;;;;;13897:15;;13875:80;;;5:2:-1;;;;30:1;27;20:12;5:2;13875:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13875:80:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13875:80:0;;-1:-1:-1;13868:87:0;;13852:153;13978:27;13993:3;13998:6;13978:14;:27::i;:::-;13971:34;;;;12683:186;3103:6;;12784:12;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;12816:45;12839:8;12849:11;12816:22;:45::i;15120:246::-;15225:10;;15194:14;;-1:-1:-1;;;15225:10:0;;;;15221:137;;;15258:15;;15244:58;;;-1:-1:-1;;;;;15244:58:0;;-1:-1:-1;;;;;15244:58:0;;;;;;;;;;;;;;;;15258:15;;;;;15244:40;;:58;;;;;;;;;;;;;;15258:15;15244:58;;;5:2:-1;;;;30:1;27;20:12;5:2;15244:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;15221:137:0;15325:33;15341:6;15349:8;15325:15;:33::i;13340:20::-;;;;;;;;;;;;;;;-1:-1:-1;;13340:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2425:105;1851:5;;-1:-1:-1;;;;;1851:5:0;1837:10;:19;1829:28;;;;;;2495:29;2514:9;2495:18;:29::i;:::-;2425:105;:::o;12520:153::-;3103:6;;12610:4;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;12634:31;12648:8;12658:6;12634:13;:31::i;12335:175::-;3103:6;;12440:4;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;12464:38;12483:5;12490:3;12495:6;12464:18;:38::i;1187:132::-;1269:7;;;1290;;;;1283:15;;;10908:319;10622:5;;11003:4;;-1:-1:-1;;;;;10622:5:0;10608:10;:19;10600:28;;;;;;10514:15;;-1:-1:-1;;;10514:15:0;;;;10513:16;10505:25;;;;;;11035:12;;:25;;11052:7;11035:25;:16;:25;:::i;:::-;11020:12;:40;-1:-1:-1;;;;;11087:13:0;;:8;:13;;;;;;;;;;;:26;;11105:7;11087:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;11071:13:0;;:8;:13;;;;;;;;;;;;:42;;;;11129:18;;;;;;;11071:13;;11129:18;;;;;;;;;11163:34;;;;;;;;-1:-1:-1;;;;;11163:34:0;;;11180:1;;-1:-1:-1;;;;;;;;;;;11163:34:0;;;;;;;;-1:-1:-1;11215:4:0;10908:319;;;;:::o;9069:427::-;9208:10;9164:4;9200:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9200:29:0;;;;;;;;;;9246:28;;;9242:145;;9284:10;9308:1;9276:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9276:29:0;;;;;;;;;:33;9242:145;;;9357:30;:8;9370:16;9357:30;:12;:30;:::i;:::-;9333:10;9325:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9325:29:0;;;;;;;;;:62;9242:145;9414:10;9436:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9405:61:0;;9436:29;;;;;;;;;;;9405:61;;;;;;;;;9414:10;9405:61;;;;;;;;;;;-1:-1:-1;9484:4:0;;9069:427;-1:-1:-1;;;9069:427:0:o;5044:107::-;-1:-1:-1;;;;;5127:16:0;5100:7;5127:16;;;;;;;;;;;;5044:107::o;1001:119::-;1061:7;1090:2;1084;:8;;1077:16;;;;-1:-1:-1;1107:7:0;;;1001:119::o;12180:145::-;3103:6;;12266:4;;-1:-1:-1;;;3103:6:0;;;;3102:7;3094:16;;;;;;12290:27;12305:3;12310:6;12290:14;:27::i;8285:294::-;8433:10;8375:4;8425:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8425:29:0;;;;;;;;;;:46;;8459:11;8425:46;:33;:46;:::i;:::-;8400:10;8392:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8392:29:0;;;;;;;;;;;;:80;;;8488:61;;;;;;8392:29;;8488:61;;;;;;;;;;;-1:-1:-1;8567:4:0;8285:294;;;;:::o;7657:143::-;-1:-1:-1;;;;;7767:15:0;;;7740:7;7767:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7657:143::o;2671:175::-;-1:-1:-1;;;;;2742:23:0;;2734:32;;;;;;2799:5;;2778:38;;-1:-1:-1;;;;;2778:38:0;;;;2799:5;;2778:38;;2799:5;;2778:38;2823:5;:17;;-1:-1:-1;;;;;;2823:17:0;-1:-1:-1;;;;;2823:17:0;;;;;;;;;;2671:175::o;7108:206::-;7200:10;7175:4;7192:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7192:29:0;;;;;;;;;;;:38;;;7246;;;;;;;7175:4;;7192:29;;7200:10;;7246:38;;;;;;;;-1:-1:-1;7302:4:0;7108:206;;;;:::o;5960:497::-;-1:-1:-1;;;;;6086:15:0;;6051:4;6086:15;;;;;;;;;;;6076:25;;;6068:34;;;;;;-1:-1:-1;;;;;6131:14:0;;;;;;:7;:14;;;;;;;;6146:10;6131:26;;;;;;;;6121:36;;;6113:45;;;;;;-1:-1:-1;;;;;6177:17:0;;6169:26;;;;;;-1:-1:-1;;;;;6226:15:0;;:8;:15;;;;;;;;;;;:27;;6246:6;6226:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;6208:15:0;;;:8;:15;;;;;;;;;;;:45;;;;6280:13;;;;;;;:25;;6298:6;6280:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;6264:13:0;;;:8;:13;;;;;;;;;;;:41;;;;6345:14;;;;;:7;:14;;;;;6360:10;6345:26;;;;;;;:38;;6376:6;6345:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;6316:14:0;;;;;;;:7;:14;;;;;;;;6331:10;6316:26;;;;;;;;:67;;;;6399:28;;;;;;;;;;;6316:14;;-1:-1:-1;;;;;;;;;;;6399:28:0;;;;;;;;;;-1:-1:-1;6445:4:0;5960:497;;;;;:::o;4464:355::-;4571:10;4527:4;4562:20;;;;;;;;;;;4552:30;;;4544:39;;;;;;-1:-1:-1;;;;;4602:17:0;;4594:26;;;;;;4665:10;4656:8;:20;;;;;;;;;;;:32;;4681:6;4656:32;:24;:32;:::i;:::-;4642:10;4633:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;4715:13:0;;;;;;:25;;4733:6;4715:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4699:13:0;;:8;:13;;;;;;;;;;;;:41;;;;4756:33;;;;;;;4699:13;;4765:10;;-1:-1:-1;;;;;;;;;;;4756:33:0;;;;;;;;;-1:-1:-1;4807:4:0;4464:355;;;;:::o;13082:2700::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13082:2700:0;;;-1:-1:-1;13082:2700:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://57de388f67ed4d25d37c3574ca699d33d49da28f36231221b4e7573b0f908886
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.