ETH Price: $3,025.87 (+2.64%)
Gas: 20 Gwei

Token

TomoChain (TOMOE)
 

Overview

Max Total Supply

43,040,536.858694370753454957 TOMOE

Holders

2,170 (0.00%)

Total Transfers

-

Market

Chart

Price

$1.33 @ 0.000441 ETH (-26.25%)

Fully Diluted Market Cap

$57,369,842.09

Circulating Supply Market Cap

$129,068,210.39

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

TomoChain is a scalable blockchain-powered via Proof-of-Stake Voting consensus which is used commercially by companies globally

Market

Volume (24H):$35,029,577.28
Market Capitalization:$129,068,210.39
Circulating Supply:96,830,754.00 TOMOE
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TomoE

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-20
*/

pragma solidity ^0.4.24;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

	/**
	 * @dev Multiplies two numbers, reverts on overflow.
	 */
	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		// Gas optimization: this is cheaper than requiring '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;
		}

		uint256 c = a * b;
		require(c / a == b);

		return c;
	}

	/**
	 * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
	 */
	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b > 0); // Solidity only automatically asserts 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 c;
	}

	/**
	* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
	*/
	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b <= a);
		uint256 c = a - b;

		return c;
	}

	/**
	* @dev Adds two numbers, reverts on overflow.
	*/
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		require(c >= a);

		return c;
	}

	/**
	* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
	* reverts when dividing by zero.
		*/
	function mod(uint256 a, uint256 b) internal pure returns (uint256) {
		require(b != 0);
		return a % b;
	}
}

contract ERC20 {
	using SafeMath for uint256;

	mapping (address => uint256) private _balances;

	mapping (address => mapping (address => uint256)) private _allowed;

	uint256 private _totalSupply;
	
	string private _name;
    string private _symbol;
    uint8 private _decimals;

	event Transfer(
		address indexed from,
		address indexed to,
		uint256 value
	);

	event Approval(
		address indexed owner,
		address indexed spender,
		uint256 value
	);

	constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

	/**
	* @dev Total number of tokens in existence
	*/
	function totalSupply() public view returns (uint256) {
		return _totalSupply;
	}

	/**
	* @dev Gets the balance of the specified address.
	* @param owner The address to query 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];
	}

	/**
	* @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 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) {
		_transfer(msg.sender, 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) {
		require(spender != address(0));

	_allowed[msg.sender][spender] = value;
	emit Approval(msg.sender, spender, value);
	return true;
}

/**
* @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 <= _allowed[from][msg.sender]);

_allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
_transfer(from, to, value);
return true;
  }

  /**
  * @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 increaseAllowance(
	  address spender,
	  uint256 addedValue
  )
  public
  returns (bool)
  {
	  require(spender != address(0));

	  _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 decreaseAllowance(
	  address spender,
	  uint256 subtractedValue
  )
  public
  returns (bool)
  {
	  require(spender != address(0));

	  _allowed[msg.sender][spender] = (
		  _allowed[msg.sender][spender].sub(subtractedValue));
		  emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
		  return true;
  }

  /**
   * @dev Transfer token for a specified addresses
   * @param from The address to transfer from.
   * @param to The address to transfer to.
   * @param value The amount to be transferred.
   */
  function _transfer(address from, address to, uint256 value) internal {
	  require(value <= _balances[from]);
	  require(to != address(0));

	  _balances[from] = _balances[from].sub(value);
	  _balances[to] = _balances[to].add(value);
	  emit Transfer(from, to, value);
  }

  /**
   * @dev Internal function that mints an amount of the token and assigns it to
   * an account. This encapsulates the modification of balances such that the
   * proper events are emitted.
   * @param account The account that will receive the created tokens.
   * @param value The amount that will be created.
   */
  function _mint(address account, uint256 value) internal {
	  require(account != address(0));
	  _totalSupply = _totalSupply.add(value);
	  _balances[account] = _balances[account].add(value);
	  emit Transfer(address(0), account, value);
  }

  /**
  * @dev Internal function that burns an amount of the token of a given
  * account.
  * @param account The account whose tokens will be burnt.
  * @param value The amount that will be burnt.
   */
  function _burn(address account, uint256 value) internal {
	  require(account != address(0));
	  require(value <= _balances[account]);

	  _totalSupply = _totalSupply.sub(value);
	  _balances[account] = _balances[account].sub(value);
	  emit Transfer(account, address(0), value);
  }

  /**
  * @dev Internal function that burns an amount of the token of a given
  * account, deducting from the sender's allowance for said account. Uses the
  * internal burn function.
  * @param account The account whose tokens will be burnt.
  * @param value The amount that will be burnt.
   */
  function _burnFrom(address account, uint256 value) internal {
	  require(value <= _allowed[account][msg.sender]);

	  // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
	  // this function needs to emit an event with the updated approval.
	  _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(
		  value);
		  _burn(account, value);
  }
}


contract TomoE is ERC20 {
    /*
     *  Events
     */
    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);
    event TokenBurn(uint256 indexed burnID, address indexed burner, uint256 value, bytes data);

    /*
     *  Constants
     */
    uint constant public MAX_OWNER_COUNT = 50;
    uint public WITHDRAW_FEE = 0;
    
    /*
     *  Storage
     */
    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    address public issuer;
    uint public required;
    uint public transactionCount;
    TokenBurnData[] public burnList;

    struct TokenBurnData {
        uint256 value;
        address burner;
        bytes data;
    }
    
    struct Transaction {
        address destination;
        uint value;
        bytes data; //data is used in transactions altering owner list
        bool executed;
    }

    /*
     *  Modifiers
     */
    modifier onlyWallet() {
        require(msg.sender == address(this));
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        require(!isOwner[owner]);
        _;
    }

    modifier ownerExists(address owner) {
        require(isOwner[owner]);
        _;
    }

    modifier transactionExists(uint transactionId) {
        require(transactions[transactionId].destination != 0);
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        require(confirmations[transactionId][owner]);
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        require(!confirmations[transactionId][owner]);
        _;
    }

    modifier notExecuted(uint transactionId) {
        require(!transactions[transactionId].executed);
        _;
    }

    modifier notNull(address _address) {
        require(_address != 0);
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        require(ownerCount <= MAX_OWNER_COUNT
        && _required <= ownerCount
        && _required != 0
        && ownerCount != 0);
        _;
    }
    
    modifier onlyIssuer() {
        require(msg.sender == issuer);
        _;
    }
    
    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    constructor (address[] _owners,
                 uint _required, string memory _name,
                 string memory _symbol, uint8 _decimals,
                 uint256 cap,
                 uint256 withdrawFee
                ) ERC20(_name, _symbol, _decimals) public validRequirement(_owners.length, _required) {
        _mint(msg.sender, cap);
        issuer = msg.sender;
        WITHDRAW_FEE = withdrawFee;
        for (uint i=0; i<_owners.length; i++) {
            require(!isOwner[_owners[i]] && _owners[i] != 0);
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }


    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner) 
    public
    onlyWallet
    ownerDoesNotExist(owner)
    notNull(owner)
    validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
    public
    onlyWallet
    ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param newOwner Address of new owner.
    function replaceOwner(address owner, address newOwner)
    public
    onlyWallet
    ownerExists(owner)
    ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
    public
    onlyWallet
    validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data) 
    public
    returns (uint transactionId)
    {
        //transaction is considered as minting if no data provided, otherwise it's owner changing transaction
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }
    

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
    public
    ownerExists(msg.sender)
    transactionExists(transactionId)
    notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
    public
    ownerExists(msg.sender)
    confirmed(transactionId, msg.sender)
    notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows an user to burn the token.
    function burn(uint value, bytes data)
    public
    {
        require(value > WITHDRAW_FEE);
        super._burn(msg.sender, value);
        
        if (WITHDRAW_FEE > 0) {
            super._mint(issuer, WITHDRAW_FEE);
        }
        uint256 burnValue = value.sub(WITHDRAW_FEE);
        burnList.push(TokenBurnData({
            value: burnValue,
            burner: msg.sender,
            data: data 
        }));
        TokenBurn(burnList.length - 1, msg.sender, burnValue, data);

    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
    public
    ownerExists(msg.sender)
    confirmed(transactionId, msg.sender)
    notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction storage txn = transactions[transactionId];
            txn.executed = true;

            // just need multisig for minting - freely burn
            if (txn.data.length == 0) {
                //execute minting transaction
                txn.value = txn.value;
                super._mint(txn.destination, txn.value);
                Execution(transactionId);
            } else {
                //transaction that alters the owners list
                if (txn.destination.call.value(txn.value)(txn.data))
                    Execution(transactionId);
                else {
                    ExecutionFailure(transactionId);
                    txn.executed = false;
                }
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
    public
    constant
    returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
    internal
    notNull(destination)
    returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
    public
    constant
    returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
    public
    constant
    returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
            || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
    public
    constant
    returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
    public
    constant
    returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
    public
    constant
    returns (uint[] _transactionIds)
    {
        uint end = to > transactionCount? transactionCount: to;
        uint[] memory transactionIdsTemp = new uint[](end - from);
        uint count = 0;
        uint i;
        for (i = from; i < to; i++) {
            if ((pending && !transactions[i].executed)
                || (executed && transactions[i].executed))
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        }
        _transactionIds = new uint[](count);
        for (i = 0; i < count; i++)
            _transactionIds[i] = transactionIdsTemp[i];
    }
    
    function getBurnCount() public view returns (uint256) {
        return burnList.length;
    }

    function getBurn(uint burnId) public view returns (address _burner, uint256 _value, bytes _data) {
        _burner = burnList[burnId].burner;
        _value = burnList[burnId].value;
        _data = burnList[burnId].data;
    }
    
    /// @dev Allows to tramsfer contact issuer
    function transferIssuer(address newIssuer) 
    public
    onlyIssuer
    notNull(newIssuer)
    {
        issuer = newIssuer;
    }

    function setWithdrawFee(uint256 withdrawFee) public onlyIssuer {
        WITHDRAW_FEE = withdrawFee;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"burnId","type":"uint256"}],"name":"getBurn","outputs":[{"name":"_burner","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"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":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newIssuer","type":"address"}],"name":"transferIssuer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"burnList","outputs":[{"name":"value","type":"uint256"},{"name":"burner","type":"address"},{"name":"data","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WITHDRAW_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"withdrawFee","type":"uint256"}],"name":"setWithdrawFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBurnCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"cap","type":"uint256"},{"name":"withdrawFee","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burnID","type":"uint256"},{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"TokenBurn","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"},{"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"}]

608060405260006006553480156200001657600080fd5b506040516200281b3803806200281b8339810160409081528151602080840151928401516060850151608086015160a087015160c088015193880180519689019890969301949193909290916000918791879187916200007c91600391860190620002eb565b50815162000092906004906020850190620002eb565b506005805460ff191660ff92909216919091179055505087518760328211801590620000be5750818111155b8015620000ca57508015155b8015620000d657508115155b1515620000e257600080fd5b620000f7338664010000000062000212810204565b600b8054600160a060020a031916331790556006849055600092505b8951831015620001e657600960008b858151811015156200013057fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1615801562000186575089838151811015156200016e57fe5b90602001906020020151600160a060020a0316600014155b15156200019257600080fd5b6001600960008c86815181101515620001a757fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790556001929092019162000113565b8951620001fb90600a9060208d019062000370565b505050600c96909655506200041d95505050505050565b600160a060020a03821615156200022857600080fd5b60025462000245908264010000000062002086620002d182021704565b600255600160a060020a0382166000908152602081905260409020546200027b908264010000000062002086620002d182021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620002e457600080fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c929150620003d6565b5090565b828054828255906000526020600020908101928215620003c8579160200282015b82811115620003c85782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000391565b506200036c929150620003f6565b620003f391905b808211156200036c5760008155600101620003dd565b90565b620003f391905b808211156200036c578054600160a060020a0319168155600101620003fd565b6123ee806200042d6000396000f3006080604052600436106101ed5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146101f257806306fdde0314610226578063095ea7b3146102b0578063173825d9146102e857806318160ddd1461030b5780631d1438481461033257806320ea8d861461034757806323b872dd1461035f5780632eb3f49b146103895780632f54bf6e14610439578063313ce5671461045a5780633411c81c1461048557806339509351146104a957806354741525146104cd5780636849cb9d146104ec5780637065cb481461050d57806370a082311461052e57806377661c641461054f578063784547a7146105c15780638b51d13f146105d957806395d89b41146105f15780639ace38c2146106065780639bff5ddb146106c1578063a0e67e2b146106d6578063a457c2d71461073b578063a8abe69a1461075f578063a9059cbb14610784578063b5dc40c3146107a8578063b6ac642a146107c0578063b77bf600146107d8578063ba51a6df146107ed578063c01a8c8414610805578063c64274741461081d578063d74f8edd14610886578063dc8452cd1461089b578063dd62ed3e146108b0578063e20056e6146108d7578063e7cf548c146108fe578063ee22610b14610913578063fe9d93031461092b575b600080fd5b3480156101fe57600080fd5b5061020a600435610989565b60408051600160a060020a039092168252519081900360200190f35b34801561023257600080fd5b5061023b6109b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027557818101518382015260200161025d565b50505050905090810190601f1680156102a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102bc57600080fd5b506102d4600160a060020a0360043516602435610a48565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610309600160a060020a0360043516610ac6565b005b34801561031757600080fd5b50610320610c3d565b60408051918252519081900360200190f35b34801561033e57600080fd5b5061020a610c43565b34801561035357600080fd5b50610309600435610c52565b34801561036b57600080fd5b506102d4600160a060020a0360043581169060243516604435610d0c565b34801561039557600080fd5b506103a1600435610daa565b6040518084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103fc5781810151838201526020016103e4565b50505050905090810190601f1680156104295780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561044557600080fd5b506102d4600160a060020a0360043516610eb7565b34801561046657600080fd5b5061046f610ecc565b6040805160ff9092168252519081900360200190f35b34801561049157600080fd5b506102d4600435600160a060020a0360243516610ed5565b3480156104b557600080fd5b506102d4600160a060020a0360043516602435610ef5565b3480156104d957600080fd5b5061032060043515156024351515610fa5565b3480156104f857600080fd5b50610309600160a060020a0360043516611011565b34801561051957600080fd5b50610309600160a060020a036004351661106e565b34801561053a57600080fd5b50610320600160a060020a0360043516611193565b34801561055b57600080fd5b506105676004356111ae565b6040518084815260200183600160a060020a0316600160a060020a031681526020018060200182810382528381815181526020019150805190602001908083836000838110156103fc5781810151838201526020016103e4565b3480156105cd57600080fd5b506102d4600435611277565b3480156105e557600080fd5b506103206004356112fb565b3480156105fd57600080fd5b5061023b61136a565b34801561061257600080fd5b5061061e6004356113cb565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561068357818101518382015260200161066b565b50505050905090810190601f1680156106b05780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156106cd57600080fd5b5061032061148a565b3480156106e257600080fd5b506106eb611490565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561072757818101518382015260200161070f565b505050509050019250505060405180910390f35b34801561074757600080fd5b506102d4600160a060020a03600435166024356114f1565b34801561076b57600080fd5b506106eb6004356024356044351515606435151561153c565b34801561079057600080fd5b506102d4600160a060020a0360043516602435611688565b3480156107b457600080fd5b506106eb60043561169e565b3480156107cc57600080fd5b50610309600435611817565b3480156107e457600080fd5b50610320611833565b3480156107f957600080fd5b50610309600435611839565b34801561081157600080fd5b506103096004356118b8565b34801561082957600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610320948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506119819650505050505050565b34801561089257600080fd5b50610320611999565b3480156108a757600080fd5b5061032061199e565b3480156108bc57600080fd5b50610320600160a060020a03600435811690602435166119a4565b3480156108e357600080fd5b50610309600160a060020a03600435811690602435166119cf565b34801561090a57600080fd5b50610320611b59565b34801561091f57600080fd5b50610309600435611b5f565b34801561093757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610309958335953695604494919390910191908190840183828082843750949750611d839650505050505050565b600a80548290811061099757fe5b600091825260209091200154600160a060020a0316905081565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b505050505090505b90565b6000600160a060020a0383161515610a5f57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000333014610ad457600080fd5b600160a060020a038216600090815260096020526040902054829060ff161515610afd57600080fd5b600160a060020a0383166000908152600960205260408120805460ff1916905591505b600a5460001901821015610bd85782600160a060020a0316600a83815481101515610b4757fe5b600091825260209091200154600160a060020a03161415610bcd57600a80546000198101908110610b7457fe5b600091825260209091200154600a8054600160a060020a039092169184908110610b9a57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610bd8565b600190910190610b20565b600a80546000190190610beb9082612301565b50600a54600c541115610c0457600a54610c0490611839565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b60025490565b600b54600160a060020a031681565b3360008181526009602052604090205460ff161515610c7057600080fd5b60008281526008602090815260408083203380855292529091205483919060ff161515610c9c57600080fd5b600084815260076020526040902060030154849060ff1615610cbd57600080fd5b6000858152600860209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b600160a060020a0383166000908152600160209081526040808320338452909152812054821115610d3c57600080fd5b600160a060020a0384166000908152600160209081526040808320338452909152902054610d70908363ffffffff611f7d16565b600160a060020a0385166000908152600160209081526040808320338452909152902055610d9f848484611f94565b5060015b9392505050565b6000806060600e84815481101515610dbe57fe5b6000918252602090912060016003909202010154600e8054600160a060020a0390921694509085908110610dee57fe5b9060005260206000209060030201600001549150600e84815481101515610e1157fe5b600091825260209182902060026003909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050505090509193909250565b60096020526000908152604090205460ff1681565b60055460ff1690565b600860209081526000928352604080842090915290825290205460ff1681565b6000600160a060020a0383161515610f0c57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610f40908363ffffffff61208616565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000805b600d5481101561100a57838015610fd2575060008181526007602052604090206003015460ff16155b80610ff65750828015610ff6575060008181526007602052604090206003015460ff165b15611002576001820191505b600101610fa9565b5092915050565b600b54600160a060020a0316331461102857600080fd5b80600160a060020a038116151561103e57600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33301461107a57600080fd5b600160a060020a038116600090815260096020526040902054819060ff16156110a257600080fd5b81600160a060020a03811615156110b857600080fd5b600a80549050600101600c54603282111580156110d55750818111155b80156110e057508015155b80156110eb57508115155b15156110f657600080fd5b600160a060020a038516600081815260096020526040808220805460ff19166001908117909155600a8054918201815583527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600160a060020a031660009081526020819052604090205490565b600e8054829081106111bc57fe5b6000918252602091829020600391909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f8101889004880285018801909252818452939650600160a060020a039091169491929183018282801561126d5780601f106112425761010080835404028352916020019161126d565b820191906000526020600020905b81548152906001019060200180831161125057829003601f168201915b5050505050905083565b600080805b600a548110156112f4576000848152600860205260408120600a8054919291849081106112a557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156112d9576001820191505b600c548214156112ec57600192506112f4565b60010161127c565b5050919050565b6000805b600a54811015611364576000838152600860205260408120600a80549192918490811061132857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561135c576001820191505b6001016112ff565b50919050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b60076020908152600091825260409182902080546001808301546002808501805488516101009582161595909502600019011691909104601f8101879004870284018701909752868352600160a060020a039093169590949192918301828280156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b5050506003909301549192505060ff1684565b60065481565b6060600a805480602002602001604051908101604052809291908181526020018280548015610a3d57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116114ca575050505050905090565b6000600160a060020a038316151561150857600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610f40908363ffffffff611f7d16565b606060006060600080600d5488116115545787611558565b600d545b9350888403604051908082528060200260200182016040528015611586578160200160208202803883390190505b509250600091508890505b8781101561160a578680156115b8575060008181526007602052604090206003015460ff16155b806115dc57508580156115dc575060008181526007602052604090206003015460ff165b15611602578083838151811015156115f057fe5b60209081029091010152600191909101905b600101611591565b81604051908082528060200260200182016040528015611634578160200160208202803883390190505b509450600090505b8181101561167c57828181518110151561165257fe5b90602001906020020151858281518110151561166a57fe5b6020908102909101015260010161163c565b50505050949350505050565b6000611695338484611f94565b50600192915050565b606080600080600a805490506040519080825280602002602001820160405280156116d3578160200160208202803883390190505b50925060009150600090505b600a54811015611790576000858152600860205260408120600a80549192918490811061170857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561178857600a80548290811061174357fe5b6000918252602090912001548351600160a060020a039091169084908490811061176957fe5b600160a060020a03909216602092830290910190910152600191909101905b6001016116df565b816040519080825280602002602001820160405280156117ba578160200160208202803883390190505b509350600090505b8181101561180f5782818151811015156117d857fe5b9060200190602002015184828151811015156117f057fe5b600160a060020a039092166020928302909101909101526001016117c2565b505050919050565b600b54600160a060020a0316331461182e57600080fd5b600655565b600d5481565b33301461184557600080fd5b600a54816032821180159061185a5750818111155b801561186557508015155b801561187057508115155b151561187b57600080fd5b600c8390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526009602052604090205460ff1615156118d657600080fd5b6000828152600760205260409020548290600160a060020a031615156118fb57600080fd5b60008381526008602090815260408083203380855292529091205484919060ff161561192657600080fd5b6000858152600860209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361197a85611b5f565b5050505050565b600061198e848484612098565b9050610da3816118b8565b603281565b600c5481565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60003330146119dd57600080fd5b600160a060020a038316600090815260096020526040902054839060ff161515611a0657600080fd5b600160a060020a038316600090815260096020526040902054839060ff1615611a2e57600080fd5b600092505b600a54831015611abf5784600160a060020a0316600a84815481101515611a5657fe5b600091825260209091200154600160a060020a03161415611ab45783600a84815481101515611a8157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550611abf565b600190920191611a33565b600160a060020a03808616600081815260096020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b600e5490565b3360008181526009602052604081205490919060ff161515611b8057600080fd5b60008381526008602090815260408083203380855292529091205484919060ff161515611bac57600080fd5b600085815260076020526040902060030154859060ff1615611bcd57600080fd5b611bd686611277565b15611d7b57600086815260076020526040902060038101805460ff19166001908117909155600280830154929750600019918316156101000291909101909116041515611c695760018501548554611c3991600160a060020a0390911690612189565b60405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611d7b565b8460000160009054906101000a9004600160a060020a0316600160a060020a03168560010154866002016040518082805460018160011615610100020316600290048015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b505091505060006040518083038185875af19250505015611d435760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611d7b565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038501805460ff191690555b505050505050565b6006546000908311611d9457600080fd5b611d9e3384612233565b60006006541115611dc257600b54600654611dc291600160a060020a031690612189565b600654611dd690849063ffffffff611f7d16565b60408051606081018252828152336020808301918252928201868152600e805460018101808355600092909252845160039091027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd810191825593517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe85018054600160a060020a039290921673ffffffffffffffffffffffffffffffffffffffff1990921691909117905591518051969750909593949193611ec0937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff0192919091019061232a565b5050505033600160a060020a03166001600e80549050037f6905852b196f81e7e03058512a599446c358027fc943c1e193b6649a39379bb583856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611f3d578181015183820152602001611f25565b50505050905090810190601f168015611f6a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3505050565b60008083831115611f8d57600080fd5b5050900390565b600160a060020a038316600090815260208190526040902054811115611fb957600080fd5b600160a060020a0382161515611fce57600080fd5b600160a060020a038316600090815260208190526040902054611ff7908263ffffffff611f7d16565b600160a060020a03808516600090815260208190526040808220939093559084168152205461202c908263ffffffff61208616565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610da357600080fd5b600083600160a060020a03811615156120b057600080fd5b600d5460408051608081018252600160a060020a038881168252602080830189815283850189815260006060860181905287815260078452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519496509193909261213192600285019291019061232a565b50606091909101516003909101805460ff1916911515919091179055600d8054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b600160a060020a038216151561219e57600080fd5b6002546121b1908263ffffffff61208616565b600255600160a060020a0382166000908152602081905260409020546121dd908263ffffffff61208616565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038216151561224857600080fd5b600160a060020a03821660009081526020819052604090205481111561226d57600080fd5b600254612280908263ffffffff611f7d16565b600255600160a060020a0382166000908152602081905260409020546122ac908263ffffffff611f7d16565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b815481835581811115612325576000838152602090206123259181019083016123a8565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061236b57805160ff1916838001178555612398565b82800160010185558215612398579182015b8281111561239857825182559160200191906001019061237d565b506123a49291506123a8565b5090565b610a4591905b808211156123a457600081556001016123ae5600a165627a7a72305820fcfdb5fe1d7ec54771dd8b78c4e8faeaec7e81da005d0ea5a7ec2ae6769d70af002900000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000cb696c01feda092197dcdca204bcc0490e9e82f60000000000000000000000000590a235e01cb21bffabc6a3fa6d735fa61c6d9f00000000000000000000000029c8373fbfc8a2c37e36433ceab1421c63e5d2200000000000000000000000000000000000000000000000000000000000000009546f6d6f436861696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005544f4d4f45000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101ed5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146101f257806306fdde0314610226578063095ea7b3146102b0578063173825d9146102e857806318160ddd1461030b5780631d1438481461033257806320ea8d861461034757806323b872dd1461035f5780632eb3f49b146103895780632f54bf6e14610439578063313ce5671461045a5780633411c81c1461048557806339509351146104a957806354741525146104cd5780636849cb9d146104ec5780637065cb481461050d57806370a082311461052e57806377661c641461054f578063784547a7146105c15780638b51d13f146105d957806395d89b41146105f15780639ace38c2146106065780639bff5ddb146106c1578063a0e67e2b146106d6578063a457c2d71461073b578063a8abe69a1461075f578063a9059cbb14610784578063b5dc40c3146107a8578063b6ac642a146107c0578063b77bf600146107d8578063ba51a6df146107ed578063c01a8c8414610805578063c64274741461081d578063d74f8edd14610886578063dc8452cd1461089b578063dd62ed3e146108b0578063e20056e6146108d7578063e7cf548c146108fe578063ee22610b14610913578063fe9d93031461092b575b600080fd5b3480156101fe57600080fd5b5061020a600435610989565b60408051600160a060020a039092168252519081900360200190f35b34801561023257600080fd5b5061023b6109b1565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027557818101518382015260200161025d565b50505050905090810190601f1680156102a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102bc57600080fd5b506102d4600160a060020a0360043516602435610a48565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610309600160a060020a0360043516610ac6565b005b34801561031757600080fd5b50610320610c3d565b60408051918252519081900360200190f35b34801561033e57600080fd5b5061020a610c43565b34801561035357600080fd5b50610309600435610c52565b34801561036b57600080fd5b506102d4600160a060020a0360043581169060243516604435610d0c565b34801561039557600080fd5b506103a1600435610daa565b6040518084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103fc5781810151838201526020016103e4565b50505050905090810190601f1680156104295780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561044557600080fd5b506102d4600160a060020a0360043516610eb7565b34801561046657600080fd5b5061046f610ecc565b6040805160ff9092168252519081900360200190f35b34801561049157600080fd5b506102d4600435600160a060020a0360243516610ed5565b3480156104b557600080fd5b506102d4600160a060020a0360043516602435610ef5565b3480156104d957600080fd5b5061032060043515156024351515610fa5565b3480156104f857600080fd5b50610309600160a060020a0360043516611011565b34801561051957600080fd5b50610309600160a060020a036004351661106e565b34801561053a57600080fd5b50610320600160a060020a0360043516611193565b34801561055b57600080fd5b506105676004356111ae565b6040518084815260200183600160a060020a0316600160a060020a031681526020018060200182810382528381815181526020019150805190602001908083836000838110156103fc5781810151838201526020016103e4565b3480156105cd57600080fd5b506102d4600435611277565b3480156105e557600080fd5b506103206004356112fb565b3480156105fd57600080fd5b5061023b61136a565b34801561061257600080fd5b5061061e6004356113cb565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561068357818101518382015260200161066b565b50505050905090810190601f1680156106b05780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156106cd57600080fd5b5061032061148a565b3480156106e257600080fd5b506106eb611490565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561072757818101518382015260200161070f565b505050509050019250505060405180910390f35b34801561074757600080fd5b506102d4600160a060020a03600435166024356114f1565b34801561076b57600080fd5b506106eb6004356024356044351515606435151561153c565b34801561079057600080fd5b506102d4600160a060020a0360043516602435611688565b3480156107b457600080fd5b506106eb60043561169e565b3480156107cc57600080fd5b50610309600435611817565b3480156107e457600080fd5b50610320611833565b3480156107f957600080fd5b50610309600435611839565b34801561081157600080fd5b506103096004356118b8565b34801561082957600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610320948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506119819650505050505050565b34801561089257600080fd5b50610320611999565b3480156108a757600080fd5b5061032061199e565b3480156108bc57600080fd5b50610320600160a060020a03600435811690602435166119a4565b3480156108e357600080fd5b50610309600160a060020a03600435811690602435166119cf565b34801561090a57600080fd5b50610320611b59565b34801561091f57600080fd5b50610309600435611b5f565b34801561093757600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610309958335953695604494919390910191908190840183828082843750949750611d839650505050505050565b600a80548290811061099757fe5b600091825260209091200154600160a060020a0316905081565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b505050505090505b90565b6000600160a060020a0383161515610a5f57600080fd5b336000818152600160209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000333014610ad457600080fd5b600160a060020a038216600090815260096020526040902054829060ff161515610afd57600080fd5b600160a060020a0383166000908152600960205260408120805460ff1916905591505b600a5460001901821015610bd85782600160a060020a0316600a83815481101515610b4757fe5b600091825260209091200154600160a060020a03161415610bcd57600a80546000198101908110610b7457fe5b600091825260209091200154600a8054600160a060020a039092169184908110610b9a57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610bd8565b600190910190610b20565b600a80546000190190610beb9082612301565b50600a54600c541115610c0457600a54610c0490611839565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b60025490565b600b54600160a060020a031681565b3360008181526009602052604090205460ff161515610c7057600080fd5b60008281526008602090815260408083203380855292529091205483919060ff161515610c9c57600080fd5b600084815260076020526040902060030154849060ff1615610cbd57600080fd5b6000858152600860209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b600160a060020a0383166000908152600160209081526040808320338452909152812054821115610d3c57600080fd5b600160a060020a0384166000908152600160209081526040808320338452909152902054610d70908363ffffffff611f7d16565b600160a060020a0385166000908152600160209081526040808320338452909152902055610d9f848484611f94565b5060015b9392505050565b6000806060600e84815481101515610dbe57fe5b6000918252602090912060016003909202010154600e8054600160a060020a0390921694509085908110610dee57fe5b9060005260206000209060030201600001549150600e84815481101515610e1157fe5b600091825260209182902060026003909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050505090509193909250565b60096020526000908152604090205460ff1681565b60055460ff1690565b600860209081526000928352604080842090915290825290205460ff1681565b6000600160a060020a0383161515610f0c57600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610f40908363ffffffff61208616565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000805b600d5481101561100a57838015610fd2575060008181526007602052604090206003015460ff16155b80610ff65750828015610ff6575060008181526007602052604090206003015460ff165b15611002576001820191505b600101610fa9565b5092915050565b600b54600160a060020a0316331461102857600080fd5b80600160a060020a038116151561103e57600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33301461107a57600080fd5b600160a060020a038116600090815260096020526040902054819060ff16156110a257600080fd5b81600160a060020a03811615156110b857600080fd5b600a80549050600101600c54603282111580156110d55750818111155b80156110e057508015155b80156110eb57508115155b15156110f657600080fd5b600160a060020a038516600081815260096020526040808220805460ff19166001908117909155600a8054918201815583527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600160a060020a031660009081526020819052604090205490565b600e8054829081106111bc57fe5b6000918252602091829020600391909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f8101889004880285018801909252818452939650600160a060020a039091169491929183018282801561126d5780601f106112425761010080835404028352916020019161126d565b820191906000526020600020905b81548152906001019060200180831161125057829003601f168201915b5050505050905083565b600080805b600a548110156112f4576000848152600860205260408120600a8054919291849081106112a557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156112d9576001820191505b600c548214156112ec57600192506112f4565b60010161127c565b5050919050565b6000805b600a54811015611364576000838152600860205260408120600a80549192918490811061132857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561135c576001820191505b6001016112ff565b50919050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b60076020908152600091825260409182902080546001808301546002808501805488516101009582161595909502600019011691909104601f8101879004870284018701909752868352600160a060020a039093169590949192918301828280156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b5050506003909301549192505060ff1684565b60065481565b6060600a805480602002602001604051908101604052809291908181526020018280548015610a3d57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116114ca575050505050905090565b6000600160a060020a038316151561150857600080fd5b336000908152600160209081526040808320600160a060020a0387168452909152902054610f40908363ffffffff611f7d16565b606060006060600080600d5488116115545787611558565b600d545b9350888403604051908082528060200260200182016040528015611586578160200160208202803883390190505b509250600091508890505b8781101561160a578680156115b8575060008181526007602052604090206003015460ff16155b806115dc57508580156115dc575060008181526007602052604090206003015460ff165b15611602578083838151811015156115f057fe5b60209081029091010152600191909101905b600101611591565b81604051908082528060200260200182016040528015611634578160200160208202803883390190505b509450600090505b8181101561167c57828181518110151561165257fe5b90602001906020020151858281518110151561166a57fe5b6020908102909101015260010161163c565b50505050949350505050565b6000611695338484611f94565b50600192915050565b606080600080600a805490506040519080825280602002602001820160405280156116d3578160200160208202803883390190505b50925060009150600090505b600a54811015611790576000858152600860205260408120600a80549192918490811061170857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561178857600a80548290811061174357fe5b6000918252602090912001548351600160a060020a039091169084908490811061176957fe5b600160a060020a03909216602092830290910190910152600191909101905b6001016116df565b816040519080825280602002602001820160405280156117ba578160200160208202803883390190505b509350600090505b8181101561180f5782818151811015156117d857fe5b9060200190602002015184828151811015156117f057fe5b600160a060020a039092166020928302909101909101526001016117c2565b505050919050565b600b54600160a060020a0316331461182e57600080fd5b600655565b600d5481565b33301461184557600080fd5b600a54816032821180159061185a5750818111155b801561186557508015155b801561187057508115155b151561187b57600080fd5b600c8390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526009602052604090205460ff1615156118d657600080fd5b6000828152600760205260409020548290600160a060020a031615156118fb57600080fd5b60008381526008602090815260408083203380855292529091205484919060ff161561192657600080fd5b6000858152600860209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361197a85611b5f565b5050505050565b600061198e848484612098565b9050610da3816118b8565b603281565b600c5481565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60003330146119dd57600080fd5b600160a060020a038316600090815260096020526040902054839060ff161515611a0657600080fd5b600160a060020a038316600090815260096020526040902054839060ff1615611a2e57600080fd5b600092505b600a54831015611abf5784600160a060020a0316600a84815481101515611a5657fe5b600091825260209091200154600160a060020a03161415611ab45783600a84815481101515611a8157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550611abf565b600190920191611a33565b600160a060020a03808616600081815260096020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b600e5490565b3360008181526009602052604081205490919060ff161515611b8057600080fd5b60008381526008602090815260408083203380855292529091205484919060ff161515611bac57600080fd5b600085815260076020526040902060030154859060ff1615611bcd57600080fd5b611bd686611277565b15611d7b57600086815260076020526040902060038101805460ff19166001908117909155600280830154929750600019918316156101000291909101909116041515611c695760018501548554611c3991600160a060020a0390911690612189565b60405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611d7b565b8460000160009054906101000a9004600160a060020a0316600160a060020a03168560010154866002016040518082805460018160011615610100020316600290048015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b505091505060006040518083038185875af19250505015611d435760405186907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611d7b565b60405186907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038501805460ff191690555b505050505050565b6006546000908311611d9457600080fd5b611d9e3384612233565b60006006541115611dc257600b54600654611dc291600160a060020a031690612189565b600654611dd690849063ffffffff611f7d16565b60408051606081018252828152336020808301918252928201868152600e805460018101808355600092909252845160039091027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd810191825593517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe85018054600160a060020a039290921673ffffffffffffffffffffffffffffffffffffffff1990921691909117905591518051969750909593949193611ec0937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff0192919091019061232a565b5050505033600160a060020a03166001600e80549050037f6905852b196f81e7e03058512a599446c358027fc943c1e193b6649a39379bb583856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611f3d578181015183820152602001611f25565b50505050905090810190601f168015611f6a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3505050565b60008083831115611f8d57600080fd5b5050900390565b600160a060020a038316600090815260208190526040902054811115611fb957600080fd5b600160a060020a0382161515611fce57600080fd5b600160a060020a038316600090815260208190526040902054611ff7908263ffffffff611f7d16565b600160a060020a03808516600090815260208190526040808220939093559084168152205461202c908263ffffffff61208616565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610da357600080fd5b600083600160a060020a03811615156120b057600080fd5b600d5460408051608081018252600160a060020a038881168252602080830189815283850189815260006060860181905287815260078452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519496509193909261213192600285019291019061232a565b50606091909101516003909101805460ff1916911515919091179055600d8054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b600160a060020a038216151561219e57600080fd5b6002546121b1908263ffffffff61208616565b600255600160a060020a0382166000908152602081905260409020546121dd908263ffffffff61208616565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600160a060020a038216151561224857600080fd5b600160a060020a03821660009081526020819052604090205481111561226d57600080fd5b600254612280908263ffffffff611f7d16565b600255600160a060020a0382166000908152602081905260409020546122ac908263ffffffff611f7d16565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b815481835581811115612325576000838152602090206123259181019083016123a8565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061236b57805160ff1916838001178555612398565b82800160010185558215612398579182015b8281111561239857825182559160200191906001019061237d565b506123a49291506123a8565b5090565b610a4591905b808211156123a457600081556001016123ae5600a165627a7a72305820fcfdb5fe1d7ec54771dd8b78c4e8faeaec7e81da005d0ea5a7ec2ae6769d70af0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000cb696c01feda092197dcdca204bcc0490e9e82f60000000000000000000000000590a235e01cb21bffabc6a3fa6d735fa61c6d9f00000000000000000000000029c8373fbfc8a2c37e36433ceab1421c63e5d2200000000000000000000000000000000000000000000000000000000000000009546f6d6f436861696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005544f4d4f45000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _owners (address[]): 0xcb696C01fEda092197DCDCA204bCC0490E9e82f6,0x0590a235e01Cb21BffAbC6A3Fa6d735FA61C6d9f,0x29c8373fbfc8A2c37e36433cEaB1421c63e5D220
Arg [1] : _required (uint256): 2
Arg [2] : _name (string): TomoChain
Arg [3] : _symbol (string): TOMOE
Arg [4] : _decimals (uint8): 18
Arg [5] : cap (uint256): 0
Arg [6] : withdrawFee (uint256): 0

-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [3] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 000000000000000000000000cb696c01feda092197dcdca204bcc0490e9e82f6
Arg [9] : 0000000000000000000000000590a235e01cb21bffabc6a3fa6d735fa61c6d9f
Arg [10] : 00000000000000000000000029c8373fbfc8a2c37e36433ceab1421c63e5d220
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [12] : 546f6d6f436861696e0000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [14] : 544f4d4f45000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

9798:13808:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10746:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10746:23:0;;;;;;;;;-1:-1:-1;;;;;10746:23:0;;;;;;;;;;;;;;2370:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2370:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2370:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5172:213:0;-1:-1:-1;;;;;5172:213:0;;;;;;;;;;;;;;;;;;;;;;;;;13917:463;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13917:463:0;-1:-1:-1;;;;;13917:463:0;;;;;;;3441:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3441:82:0;;;;;;;;;;;;;;;;;;;;10776:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10776:21:0;;;;16613:283;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16613:283:0;;;;;5647:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5647:271:0;-1:-1:-1;;;;;5647:271:0;;;;;;;;;;;;23056:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23056:231:0;;;;;;;;;;-1:-1:-1;;;;;23056:231:0;-1:-1:-1;;;;;23056:231: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;23056:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10699:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10699:40:0;-1:-1:-1;;;;;10699:40:0;;;;;3297:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3297:83:0;;;;;;;;;;;;;;;;;;;;;;;10628:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10628:64:0;;;-1:-1:-1;;;;;10628:64:0;;;;;6373:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6373:333:0;-1:-1:-1;;;;;6373:333:0;;;;;;;20571:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20571:312:0;;;;;;;;;;;23347:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23347:138:0;-1:-1:-1;;;;;23347:138:0;;;;;13522:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13522:268:0;-1:-1:-1;;;;;13522:268:0;;;;;3722:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3722:97:0;-1:-1:-1;;;;;3722:97:0;;;;;10866:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10866:31:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10866:31:0;-1:-1:-1;;;;;10866:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;18717:337:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18717:337:0;;;;;20055:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20055:248:0;;;;;2572:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2572:87:0;;;;10572:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10572:49:0;;;;;;;;;;-1:-1:-1;;;;;10572:49:0;-1:-1:-1;;;;;10572:49: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;10572:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10497:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10497:28:0;;;;20971:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20971:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20971:109:0;;;;;;;;;;;;;;;;;7166:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7166:343:0;-1:-1:-1;;;;;7166:343:0;;;;;;;22200:741;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22200:741:0;;;;;;;;;;;;;;;4437:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4437:125:0;-1:-1:-1;;;;;4437:125:0;;;;;;;21264:579;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21264:579:0;;;;;23493:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23493:108:0;;;;;10831:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10831:28:0;;;;15210:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15210:202:0;;;;;16148:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16148:337:0;;;;;15678:354;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15678:354:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15678:354:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15678:354:0;;-1:-1:-1;15678:354:0;;-1:-1:-1;;;;;;;15678:354:0;10449:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10449:41:0;;;;10804:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10804:20:0;;;;4133:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4133:150:0;-1:-1:-1;;;;;4133:150:0;;;;;;;;;;14587:448;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14587:448:0;-1:-1:-1;;;;;14587:448:0;;;;;;;;;;22953:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22953:95:0;;;;17584:977;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17584:977:0;;;;;16952:514;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16952:514:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16952:514:0;;-1:-1:-1;16952:514:0;;-1:-1:-1;;;;;;;16952:514:0;10746:23;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10746:23:0;;-1:-1:-1;10746:23:0;:::o;2370:83::-;2440:5;2433:12;;;;;;;;-1:-1:-1;;2433:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:6;;2433:12;;2440:5;;2433:12;;2440:5;2433:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:83;;:::o;5172:213::-;5237:4;-1:-1:-1;;;;;5256:21:0;;;;5248:30;;;;;;5293:10;5284:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5284:29:0;;;;;;;;;;;;:37;;;5330:36;;;;;;;5284:29;;5293:10;5330:36;;;;;;;;;;;-1:-1:-1;5377:4:0;5172:213;;;;:::o;13917:463::-;14059:6;11276:10;11298:4;11276:27;11268:36;;;;;;-1:-1:-1;;;;;11492:14:0;;;;;;:7;:14;;;;;;13998:5;;11492:14;;11484:23;;;;;;;;-1:-1:-1;;;;;14021:14:0;;14038:5;14021:14;;;:7;:14;;;;;:22;;-1:-1:-1;;14021:22:0;;;14038:5;-1:-1:-1;14054:174:0;14071:6;:13;-1:-1:-1;;14071:17:0;14069:19;;14054:174;;;14125:5;-1:-1:-1;;;;;14112:18:0;:6;14119:1;14112:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14112:9:0;:18;14108:120;;;14163:6;14170:13;;-1:-1:-1;;14170:17:0;;;14163:25;;;;;;;;;;;;;;;;14151:6;:9;;-1:-1:-1;;;;;14163:25:0;;;;14158:1;;14151:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;14151:37:0;;;;;-1:-1:-1;;;;;14151:37:0;;;;;;14207:5;;14108:120;14090:3;;;;;14054:174;;;14238:6;:18;;-1:-1:-1;;14238:18:0;;;;;;:::i;:::-;-1:-1:-1;14282:6:0;:13;14271:8;;:24;14267:75;;;14328:6;:13;14310:32;;:17;:32::i;:::-;14353:19;;-1:-1:-1;;;;;14353:19:0;;;;;;;;11315:1;13917:463;;:::o;3441:82::-;3506:12;;3441:82;:::o;10776:21::-;;;-1:-1:-1;;;;;10776:21:0;;:::o;16613:283::-;16690:10;11492:14;;;;:7;:14;;;;;;;;11484:23;;;;;;;;11747:28;;;;:13;:28;;;;;;;;16732:10;11747:35;;;;;;;;;16717:13;;16732:10;11747:35;;11739:44;;;;;;;;12013:27;;;;:12;:27;;;;;:36;;;16761:13;;12013:36;;12012:37;12004:46;;;;;;16835:5;16792:28;;;:13;:28;;;;;;;;16821:10;16792:40;;;;;;;;:48;;-1:-1:-1;;16792:48:0;;;16851:37;16806:13;;16851:37;;;11794:1;11518;;16613:283;;:::o;5647:271::-;-1:-1:-1;;;;;5771:14:0;;5743:4;5771:14;;;:8;:14;;;;;;;;5786:10;5771:26;;;;;;;;5762:35;;;5754:44;;;;;;-1:-1:-1;;;;;5832:14:0;;;;;;:8;:14;;;;;;;;5847:10;5832:26;;;;;;;;:37;;5863:5;5832:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;5803:14:0;;;;;;:8;:14;;;;;;;;5818:10;5803:26;;;;;;;:66;5872:26;5812:4;5888:2;5892:5;5872:9;:26::i;:::-;-1:-1:-1;5908:4:0;5647:271;;;;;;:::o;23056:231::-;23107:15;23124:14;23140:11;23174:8;23183:6;23174:16;;;;;;;;;;;;;;;;;;:23;:16;;;;;:23;;23217:8;:16;;-1:-1:-1;;;;;23174:23:0;;;;-1:-1:-1;23217:8:0;23226:6;;23217:16;;;;;;;;;;;;;;;;:22;;;23208:31;;23258:8;23267:6;23258:16;;;;;;;;;;;;;;;;;;;:21;:16;;;;;:21;;23250:29;;;;;;-1:-1:-1;;23250:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23258:21;;23250:29;;;23258:21;23250:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23056:231;;;;;:::o;10699:40::-;;;;;;;;;;;;;;;:::o;3297:83::-;3363:9;;;;3297:83;:::o;10628:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6373:333::-;6472:4;-1:-1:-1;;;;;6495:21:0;;;;6487:30;;;;;;6573:10;6564:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6564:29:0;;;;;;;;;;:45;;6598:10;6564:45;:33;:45;:::i;:::-;6534:10;6525:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6525:29:0;;;;;;;;;;;;:85;;;6622:60;;;;;;6525:29;;6622:60;;;;;;;;;;;-1:-1:-1;6696:4:0;6373:333;;;;:::o;20571:312::-;20669:10;;20697:178;20714:16;;20712:1;:18;20697:178;;;20757:7;:36;;;;-1:-1:-1;20769:15:0;;;;:12;:15;;;;;:24;;;;;20768:25;20757:36;:89;;;;20810:8;:36;;;;-1:-1:-1;20822:15:0;;;;:12;:15;;;;;:24;;;;;20810:36;20750:125;;;20874:1;20865:10;;;;20750:125;20732:3;;20697:178;;;20571:312;;;;;:::o;23347:138::-;12460:6;;-1:-1:-1;;;;;12460:6:0;12446:10;:20;12438:29;;;;;;23432:9;-1:-1:-1;;;;;12132:13:0;;;;12124:22;;;;;;-1:-1:-1;23459:6:0;:18;;-1:-1:-1;;23459:18:0;-1:-1:-1;;;;;23459:18:0;;;;;;;;;;23347:138::o;13522:268::-;11276:10;11298:4;11276:27;11268:36;;;;;;-1:-1:-1;;;;;11394:14:0;;;;;;:7;:14;;;;;;13607:5;;11394:14;;11393:15;11385:24;;;;;;13627:5;-1:-1:-1;;;;;12132:13:0;;;;12124:22;;;;;;13656:6;:13;;;;13672:1;13656:17;13675:8;;10488:2;12252:10;:29;;:65;;;;;12307:10;12294:9;:23;;12252:65;:92;;;;-1:-1:-1;12330:14:0;;;12252:92;:120;;;;-1:-1:-1;12357:15:0;;;12252:120;12244:129;;;;;;;;-1:-1:-1;;;;;13701:14:0;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;13701:21:0;13718:4;13701:21;;;;;;13733:6;27:10:-1;;23:18;;;45:23;;13733:18:0;;;;;;-1:-1:-1;;13733:18:0;;;;;13762:20;;;13701:14;13762:20;12157:1;;11420;11315;13522:268;:::o;3722:97::-;-1:-1:-1;;;;;3798:16:0;3777:7;3798:16;;;;;;;;;;;;3722:97::o;10866:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10866:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10866:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18717:337::-;18798:4;;;18845:202;18862:6;:13;18860:15;;18845:202;;;18901:28;;;;:13;:28;;;;;18930:6;:9;;18901:28;;;18937:1;;18930:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18930:9:0;18901:39;;;;;;;;;;;;;;;18897:72;;;18968:1;18959:10;;;;18897:72;18997:8;;18988:5;:17;18984:51;;;19031:4;19024:11;;;;18984:51;18877:3;;18845:202;;;18717:337;;;;;:::o;20055:248::-;20145:10;;20173:122;20190:6;:13;20188:15;;20173:122;;;20227:28;;;;:13;:28;;;;;20256:6;:9;;20227:28;;;20263:1;;20256:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20256:9:0;20227:39;;;;;;;;;;;;;;;20223:72;;;20294:1;20285:10;;;;20223:72;20205:3;;20173:122;;;20055:248;;;;:::o;2572:87::-;2644:7;2637:14;;;;;;;;-1:-1:-1;;2637:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2611:6;;2637:14;;2644:7;;2637:14;;2644:7;2637:14;;;;;;;;;;;;;;;;;;;;;;;;10572:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10572:49:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10572:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10572:49:0;;;;;;;-1:-1:-1;;10572:49:0;;;:::o;10497:28::-;;;;:::o;20971:109::-;21032:9;21066:6;21059:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21059:13:0;;;;;;;;;;;;;;;;;;;;;;20971:109;:::o;7166:343::-;7270:4;-1:-1:-1;;;;;7293:21:0;;;;7285:30;;;;;;7371:10;7362:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7362:29:0;;;;;;;;;;:50;;7396:15;7362:50;:33;:50;:::i;22200:741::-;22316:22;22356:8;22421:32;22489:10;22514:6;22372:16;;22367:2;:21;:43;;22408:2;22367:43;;;22390:16;;22367:43;22356:54;;22473:4;22467:3;:10;22456:22;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;22456:22:0;;22421:57;;22502:1;22489:14;;22540:4;22536:8;;22531:263;22550:2;22546:1;:6;22531:263;;;22579:7;:36;;;;-1:-1:-1;22591:15:0;;;;:12;:15;;;;;:24;;;;;22590:25;22579:36;22578:97;;;;22638:8;:36;;;;-1:-1:-1;22650:15:0;;;;:12;:15;;;;;:24;;;;;22638:36;22574:209;;;22737:1;22709:18;22728:5;22709:25;;;;;;;;;;;;;;;;;;:29;22766:1;22757:10;;;;;22574:209;22554:3;;22531:263;;;22833:5;22822:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;22822:17:0;;22804:35;;22859:1;22855:5;;22850:83;22866:5;22862:1;:9;22850:83;;;22912:18;22931:1;22912:21;;;;;;;;;;;;;;;;;;22891:15;22907:1;22891:18;;;;;;;;;;;;;;;;;;:42;22873:3;;22850:83;;;22200:741;;;;;;;;;;:::o;4437:125::-;4498:4;4509:32;4519:10;4531:2;4535:5;4509:9;:32::i;:::-;-1:-1:-1;4553:4:0;4437:125;;;;:::o;21264:579::-;21350:24;21392:34;21468:10;21493:6;21443;:13;;;;21429:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;21429:28:0;;21392:65;;21481:1;21468:14;;21517:1;21515:3;;21510:190;21522:6;:13;21520:15;;21510:190;;;21559:28;;;;:13;:28;;;;;21588:6;:9;;21559:28;;;21595:1;;21588:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21588:9:0;21559:39;;;;;;;;;;;;;;;21555:145;;;21646:6;:9;;21653:1;;21646:9;;;;;;;;;;;;;;;;21619:24;;-1:-1:-1;;;;;21646:9:0;;;;21619:17;;21637:5;;21619:24;;;;;;-1:-1:-1;;;;;21619:36:0;;;:24;;;;;;;;;;:36;21683:1;21674:10;;;;;21555:145;21537:3;;21510:190;;;21741:5;21727:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;21727:20:0;;21710:37;;21765:1;21763:3;;21758:77;21770:5;21768:1;:7;21758:77;;;21815:17;21833:1;21815:20;;;;;;;;;;;;;;;;;;21795:14;21810:1;21795:17;;;;;;;;;;-1:-1:-1;;;;;21795:40:0;;;:17;;;;;;;;;;:40;21777:3;;21758:77;;;21264:579;;;;;;:::o;23493:108::-;12460:6;;-1:-1:-1;;;;;12460:6:0;12446:10;:20;12438:29;;;;;;23567:12;:26;23493:108::o;10831:28::-;;;;:::o;15210:202::-;11276:10;11298:4;11276:27;11268:36;;;;;;15303:6;:13;15318:9;10488:2;12252:29;;;;;:65;;;12307:10;12294:9;:23;;12252:65;:92;;;;-1:-1:-1;12330:14:0;;;12252:92;:120;;;;-1:-1:-1;12357:15:0;;;12252:120;12244:129;;;;;;;;15345:8;:20;;;15376:28;;;;;;;;;;;;;;;;;11315:1;;15210:202;:::o;16148:337::-;16225:10;11492:14;;;;:7;:14;;;;;;;;11484:23;;;;;;;;11601:27;;;;:12;:27;;;;;:39;16260:13;;-1:-1:-1;;;;;11601:39:0;:44;;11593:53;;;;;;11888:28;;;;:13;:28;;;;;;;;16308:10;11888:35;;;;;;;;;16293:13;;16308:10;11888:35;;11887:36;11879:45;;;;;;16336:28;;;;:13;:28;;;;;;;;16365:10;16336:40;;;;;;;;:47;;-1:-1:-1;;16336:47:0;16379:4;16336:47;;;16394:39;16350:13;;16394:39;;;16444:33;16463:13;16444:18;:33::i;:::-;11657:1;;11518;16148:337;;:::o;15678:354::-;15777:18;15940:40;15955:11;15968:5;15975:4;15940:14;:40::i;:::-;15924:56;;15991:33;16010:13;15991:18;:33::i;10449:41::-;10488:2;10449:41;:::o;10804:20::-;;;;:::o;4133:150::-;-1:-1:-1;;;;;4253:15:0;;;4228:7;4253:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;4133:150::o;14587:448::-;14748:6;11276:10;11298:4;11276:27;11268:36;;;;;;-1:-1:-1;;;;;11492:14:0;;;;;;:7;:14;;;;;;14687:5;;11492:14;;11484:23;;;;;;;;-1:-1:-1;;;;;11394:14:0;;;;;;:7;:14;;;;;;14717:8;;11394:14;;11393:15;11385:24;;;;;;14755:1;14748:8;;14743:153;14760:6;:13;14758:15;;14743:153;;;14810:5;-1:-1:-1;;;;;14797:18:0;:6;14804:1;14797:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14797:9:0;:18;14793:103;;;14848:8;14836:6;14843:1;14836:9;;;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1;;;;;14836:20:0;;;;;-1:-1:-1;;;;;14836:20:0;;;;;;14875:5;;14793:103;14775:3;;;;;14743:153;;;-1:-1:-1;;;;;14906:14:0;;;14923:5;14906:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;14906:22:0;;;;;;14939:17;;;;;;;;:24;;;;;14906:22;14939:24;;;;14974:19;;14906:14;;14974:19;;;15004:23;;-1:-1:-1;;;;;15004:23:0;;;;;;;;11518:1;11315;14587:448;;;:::o;22953:95::-;23025:8;:15;22953:95;:::o;17584:977::-;17661:10;17810:23;11492:14;;;:7;:14;;;;;;17810:23;;17661:10;11492:14;;11484:23;;;;;;;;11747:28;;;;:13;:28;;;;;;;;17703:10;11747:35;;;;;;;;;17688:13;;17703:10;11747:35;;11739:44;;;;;;;;12013:27;;;;:12;:27;;;;;:36;;;17732:13;;12013:36;;12012:37;12004:46;;;;;;17767:26;17779:13;17767:11;:26::i;:::-;17763:791;;;17836:27;;;;:12;:27;;;;;17878:12;;;:19;;-1:-1:-1;;17878:19:0;17893:4;17878:19;;;;;;17979:8;;;;:15;17836:27;;-1:-1:-1;;;17979:15:0;;;;17878:19;17979:15;;;;;;;;;:20;17975:568;;;18079:9;;;;18119:15;;18107:39;;-1:-1:-1;;;;;18119:15:0;;;;18107:11;:39::i;:::-;18165:24;;18175:13;;18165:24;;;;;17975:568;;;18293:3;:15;;;;;;;;;;-1:-1:-1;;;;;18293:15:0;-1:-1:-1;;;;;18293:20:0;18320:3;:9;;;18331:3;:8;;18293:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18289:239;;;18363:24;;18373:13;;18363:24;;;;;18289:239;;;18434:31;;18451:13;;18434:31;;;;;18488:12;;;:20;;-1:-1:-1;;18488:20:0;;;18289:239;11794:1;11518;;17584:977;;;:::o;16952:514::-;17034:12;;17201:17;;17026:20;;17018:29;;;;;;17058:30;17070:10;17082:5;17058:11;:30::i;:::-;17128:1;17113:12;;:16;17109:82;;;17158:6;;17166:12;;17146:33;;-1:-1:-1;;;;;17158:6:0;;17146:11;:33::i;:::-;17231:12;;17221:23;;:5;;:23;:9;:23;:::i;:::-;17269:116;;;;;;;;;;;17337:10;17269:116;;;;;;;;;;;;;17255:8;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;17255:131:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17255:131:0;;;;-1:-1:-1;;17255:131:0;;;;;;;;;;;;;17201:43;;-1:-1:-1;23:18;;17269:116:0;;17255:131;;;;;;;;;;;;;:::i;:::-;;;;;17428:10;-1:-1:-1;;;;;17397:59:0;17425:1;17407:8;:15;;;;:19;17397:59;17440:9;17451:4;17397:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17397:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16952:514;;;:::o;1080:129::-;1138:7;;1160:6;;;;1152:15;;;;;;-1:-1:-1;;1184:5:0;;;1080:129::o;7722:279::-;-1:-1:-1;;;;;7814:15:0;;:9;:15;;;;;;;;;;;7805:24;;;7797:33;;;;;;-1:-1:-1;;;;;7844:16:0;;;;7836:25;;;;;;-1:-1:-1;;;;;7887:15:0;;:9;:15;;;;;;;;;;;:26;;7907:5;7887:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;7869:15:0;;;:9;:15;;;;;;;;;;;:44;;;;7935:13;;;;;;;:24;;7953:5;7935:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;7919:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;7970:25;;;;;;;7919:13;;7970:25;;;;;;;;;;;;;7722:279;;;:::o;1273:129::-;1331:7;1357:5;;;1375:6;;;;1367:15;;;;;19397:453;19520:18;19493:11;-1:-1:-1;;;;;12132:13:0;;;;12124:22;;;;;;19572:16;;19629:145;;;;;;;;-1:-1:-1;;;;;19629:145:0;;;;;;;;;;;;;;;;;;-1:-1:-1;19629:145:0;;;;;;19599:27;;;:12;:27;;;;;;:175;;;;-1:-1:-1;;19599:175:0;;;;;;;;;;-1:-1:-1;19599:175:0;;;;;;;19572:16;;-1:-1:-1;19629:145:0;;19599:27;;:175;;;;;;;;;;:::i;:::-;-1:-1:-1;19599:175:0;;;;;;;;;;;;-1:-1:-1;;19599:175:0;;;;;;;;;;19785:16;:21;;-1:-1:-1;19785:21:0;;;19817:25;;19828:13;;19817:25;;-1:-1:-1;;19817:25:0;19397:453;;;;;;:::o;8337:245::-;-1:-1:-1;;;;;8407:21:0;;;;8399:30;;;;;;8450:12;;:23;;8467:5;8450:23;:16;:23;:::i;:::-;8435:12;:38;-1:-1:-1;;;;;8500:18:0;;:9;:18;;;;;;;;;;;:29;;8523:5;8500:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;8479:18:0;;:9;:18;;;;;;;;;;;:50;;;;8540:36;;;;;;;8479:18;;:9;;8540:36;;;;;;;;;;8337:245;;:::o;8798:289::-;-1:-1:-1;;;;;8868:21:0;;;;8860:30;;;;;;-1:-1:-1;;;;;8913:18:0;;:9;:18;;;;;;;;;;;8904:27;;;8896:36;;;;;;8955:12;;:23;;8972:5;8955:23;:16;:23;:::i;:::-;8940:12;:38;-1:-1:-1;;;;;9005:18:0;;:9;:18;;;;;;;;;;;:29;;9028:5;9005:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;8984:18:0;;:9;:18;;;;;;;;;;;:50;;;;9045:36;;;;;;;8984:9;;9045:36;;;;;;;;;;;8798:289;;:::o;9798:13808::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9798:13808:0;;;-1:-1:-1;9798:13808:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://fcfdb5fe1d7ec54771dd8b78c4e8faeaec7e81da005d0ea5a7ec2ae6769d70af
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.