ETH Price: $3,284.09 (+1.04%)
Gas: 6.23 Gwei

Token

TigerCash (TCH)
 

Overview

Max Total Supply

1,000,000,000 TCH

Holders

190 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
30,000 TCH

Value
$0.00
0xa1652c26a501baed11e767cf354f59508ab18e30
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

TigerCash token contract has migrated to 0x5ecc4b299e23f526980c33fe35eff531a54aedb1.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TigerCash

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-08-11
*/

pragma solidity 0.5.10;


/**
 * Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 */
library SafeMath {
    /**
     * Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot 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.
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

/**
 * @title Roles
 * Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     *Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: the caller must be owner");
        _;
    }

    /**
     * Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        _transferOwnership(_newOwner);
    }

    /**
     * Transfers control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address _newOwner) internal {
        require(_newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

/**
 * Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
    /**
     * Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through `transferFrom`. This is
     * zero by default.
     *
     * This value changes when `approve` or `transferFrom` are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * > 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
     *
     * Emits an `Approval` event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     *  Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to `approve`. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 *  Implementation of the `IERC20` interface.
 *
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 internal _totalSupply;

    /**
     * See `IERC20.totalSupply`.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     *  See `IERC20.balanceOf`.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     *  See `IERC20.transfer`.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     *  See `IERC20.allowance`.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     *  See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * See `IERC20.transferFrom`.
     *
     * Emits an `Approval` event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of `ERC20`;
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    /**
     * Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseApproval(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     *  Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseApproval(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     *  Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to `transfer`, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a `Transfer` event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

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

    /**
     *  Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

}
/**
 *  Optional functions from the ERC20 standard.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     *  Set the values for `name`, `symbol`, and `decimals`. All three of
     * these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

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

    /**
     *  Return 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`).
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

/**
 *  Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 */
contract Pausable is Ownable {
    /**
     *  Emitted when the pause is triggered by a pauser (`account`).
     */
    event Paused(address account);

    /**
     *  Emitted when the pause is lifted by a pauser (`account`).
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     *  Initialize the contract in unpaused state. Assigns the Pauser role
     * to the deployer.
     */
    constructor () internal {
        _paused = false;
    }

    /**
     *  Return true if the contract is paused, and false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     *  Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    /**
     *  Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    /**
     *  Called by a pauser to pause, triggers stopped state.
     */
    function pause() public onlyOwner whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     *  Called by a pauser to unpause, returns to normal state.
     */
    function unpause() public onlyOwner whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

/**
 * @title Pausable token
 *  ERC20 modified with pausable transfers.
 */
contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseApproval(address spender, uint addedValue) public whenNotPaused returns (bool) {
        return super.increaseApproval(spender, addedValue);
    }

    function decreaseApproval(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
        return super.decreaseApproval(spender, subtractedValue);
    }
}

contract MinterRole is Ownable {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    modifier onlyMinter() {
        require(isMinter(msg.sender) || msg.sender == owner, "MinterRole: caller does not have the Minter role");
        _;
    }
    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyOwner {
        _addMinter(account);
    }

    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

/**
 *  Extension of `ERC20` that adds a set of accounts with the `MinterRole`,
 * which have permission to mint (create) new tokens as they see fit.
 *
 * At construction, the deployer of the contract is the only minter.
 */
contract ERC20Mintable is ERC20, MinterRole {
    /**
     *  See `ERC20._mint`.
     *
     * Requirements:
     * - the caller must have the `MinterRole`.
     */
    function mint(address account, uint256 amount) public onlyMinter returns (bool) {
        _mint(account, amount);
        return true;
    }
}

/**
 *  Extension of `ERC20Mintable` that adds a cap to the supply of tokens.
 */
contract ERC20Capped is ERC20Mintable {
    uint256 internal _cap;
    bool public isFinishMint;

    /**
     * Returns the cap on the token's total supply.
     */
    function cap() public view returns (uint256) {
        return _cap;
    }

    /**
     *  See `ERC20Mintable.mint`.
     *
     * Requirements:
     *
     * - `value` must not cause the total supply to go over the cap.
     */
    function _mint(address account, uint256 value) internal {
        require(!isFinishMint, "ERC20Capped: minting has been finished");
        require(totalSupply().add(value) <= _cap, "ERC20Capped: cap exceeded");
        if(totalSupply().add(value) == _cap) {
            isFinishMint = true;
        }
        super._mint(account, value);
    }

    function finishMint() public onlyOwner {
        require(!isFinishMint, "ERC20Capped: minting has been finished");
        isFinishMint = true;
    }
}

/**
 * @title ERC20Burnable
 * Implement the function of ERC20 token burning.
 */
contract ERC20Burnable is ERC20, Ownable {

    event Burn(address indexed owner, uint256 amount);

    /**
     * @dev Burn a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public onlyOwner {
        require(_value <= _balances[msg.sender], "ERC20Burnable: not enough token balance");
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
    }
}

/**
 *  Implementation of the TigerCash.
 */ 
contract TigerCash is ERC20Detailed, ERC20Pausable, ERC20Capped, ERC20Burnable {

    // The total amount of locks at the specified address.
    mapping (address => uint256) public totalLockAmount;
    // The amount of released addresses of the specified address.
    mapping (address => uint256) public releasedAmount;

    mapping (address => uint256) public lockedAmount;

    mapping (address => allocation[]) public allocations;

    struct allocation {
        uint256 releaseTime;
        uint256 releaseAmount;
    }

    event LockToken(address indexed beneficiary, uint256[] releaseAmounts, uint256[] releaseTimes);
    event ReleaseToken(address indexed user, uint256 releaseAmount, uint256 releaseTime);

    /**
     *  Initialize token basic information.
     */
    constructor(string memory token_name, string memory token_symbol, uint8 token_decimals, uint256 token_cap) public
        ERC20Detailed(token_name, token_symbol, token_decimals) {
        _cap = token_cap * 10 ** uint256(token_decimals);
        
    }

    /**
     *  Send the token to the beneficiary and lock it, and the timestamp and quantity of locks can be set by owner.
     * @param _beneficiary A specified address.
     * @param _releaseTimes Array,the timesamp of release token.
     * @param _releaseAmounts Array,the amount of release token.
     */
    function lockToken(address _beneficiary, uint256[] memory _releaseTimes, uint256[] memory _releaseAmounts) public onlyOwner returns(bool) {
        require(_beneficiary != address(0), "Token: the target address cannot be a zero address");
        require(_releaseTimes.length == _releaseAmounts.length, "Token: the array length must be equal");
        uint256 _lockedAmount;
        for (uint256 i = 0; i < _releaseTimes.length; i++) {
            _lockedAmount = _lockedAmount.add(_releaseAmounts[i]);
            require(_releaseAmounts[i] > 0, "Token: the amount must be greater than 0");
            require(_releaseTimes[i] >= now, "Token: the time must be greater than current time");
            //Save the locktoken information
            allocations[_beneficiary].push(allocation(_releaseTimes[i], _releaseAmounts[i]));
        }
        lockedAmount[_beneficiary] = lockedAmount[_beneficiary].add(_lockedAmount);
        totalLockAmount[_beneficiary] = totalLockAmount[_beneficiary].add(_lockedAmount);
        _balances[owner] = _balances[owner].sub(_lockedAmount); //Remove this part of the locked token from the owner.
        _balances[_beneficiary] = _balances[_beneficiary].add(_lockedAmount);
        emit Transfer(owner, _beneficiary, _lockedAmount);
        emit LockToken(_beneficiary, _releaseAmounts, _releaseTimes);
        return true;
    }

    /**
     * Rewrite the transfer function to automatically unlock the locked token.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        if(releasableAmount(msg.sender) > 0) {
            _releaseToken(msg.sender);
        }

        require(_balances[msg.sender].sub(lockedAmount[msg.sender]) >= value, "Token: not enough token balance");
        super.transfer(to, value);
        return true;
    }

    /**
     *  Rewrite the transferFrom function to automatically unlock the locked token.
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        if(releasableAmount(from) > 0) {
            _releaseToken(from);
        }
        require(_balances[from].sub(lockedAmount[from]) >= value, "Token: not enough token balance");
        super.transferFrom(from, to, value);
        return true;
    }

    /**
     *  Get the amount of current timestamps that can be released.
     * @param addr A specified address.
     */
    function releasableAmount(address addr) public view returns(uint256) {
        uint256 num = 0;
        for (uint256 i = 0; i < allocations[addr].length; i++) {
            if (now >= allocations[addr][i].releaseTime) {
                num = num.add(allocations[addr][i].releaseAmount);
            }
        }
        return num.sub(releasedAmount[addr]);
    }

    /**
     * Internal function, implement the basic functions of releasing tokens.
     */
    function _releaseToken(address _owner) internal returns(bool) {
        
        //Get the amount of release and update the lock-plans data.
        uint256 amount = releasableAmount(_owner);
        require(amount > 0, "Token: no releasable tokens");
        lockedAmount[_owner] = lockedAmount[_owner].sub(amount);
        releasedAmount[_owner] = releasedAmount[_owner].add(amount);
        // If the token on this address has been completely released, the address lock record and the total amount of locks and the released amount are cleared.
        if (releasedAmount[_owner] == totalLockAmount[_owner]) {
            delete allocations[_owner]; // Clear the address history data.
            totalLockAmount[_owner] = 0;
            releasedAmount[_owner] = 0;
            lockedAmount[_owner] = 0;
        }
        emit ReleaseToken(_owner, amount, now);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"allocations","outputs":[{"name":"releaseTime","type":"uint256"},{"name":"releaseAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"releasableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"releasedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinishMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalLockAmount","outputs":[{"name":"","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":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_releaseTimes","type":"uint256[]"},{"name":"_releaseAmounts","type":"uint256[]"}],"name":"lockToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"finishMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"token_name","type":"string"},{"name":"token_symbol","type":"string"},{"name":"token_decimals","type":"uint8"},{"name":"token_cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"releaseAmounts","type":"uint256[]"},{"indexed":false,"name":"releaseTimes","type":"uint256[]"}],"name":"LockToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"releaseAmount","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"ReleaseToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"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"}]

60806040523480156200001157600080fd5b50604051620024f7380380620024f7833981810160405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505092919060200180516401000000008111156200009c57600080fd5b82016020810184811115620000b057600080fd5b8151640100000000811182820187101715620000cb57600080fd5b50506020808301516040909301518651929550929350859185918591620000f9916000919086019062000154565b5081516200010f90600190602085019062000154565b506002805460ff191660ff92831617905560068054336001600160a01b03199091161760ff60a01b1916905593909316600a0a9190910260085550620001f992505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019757805160ff1916838001178555620001c7565b82800160010185558215620001c7579182015b82811115620001c7578251825591602001919060010190620001aa565b50620001d5929150620001d9565b5090565b620001f691905b80821115620001d55760008155600101620001e0565b90565b6122ee80620002096000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636618846311610104578063a6b3aae3116100a2578063d73dd62311610071578063d73dd623146106ad578063dd62ed3e146106d9578063e4cc18be14610707578063f2fde38b1461070f576101da565b8063a6b3aae3146104fe578063a9059cbb14610524578063aa271e1a14610550578063c1dfc81b14610576576101da565b80638da5cb5b116100de5780638da5cb5b1461048657806395d89b41146104aa578063983b2d56146104b2578063a153e708146104d8576101da565b8063661884631461042c57806370a08231146104585780638456cb591461047e576101da565b80633092afd51161017c57806340c10f191161014b57806340c10f19146103d357806342966c68146103ff578063572b40321461041c5780635c975abb14610424576101da565b80633092afd51461037d578063313ce567146103a5578063355274ea146103c35780633f4ba83a146103cb576101da565b80631726cbc8116101b85780631726cbc8146102e157806318160ddd146103195780631cf1bb721461032157806323b872dd14610347576101da565b8063010bc33c146101df57806306fdde0314610224578063095ea7b3146102a1575b600080fd5b61020b600480360360408110156101f557600080fd5b506001600160a01b038135169060200135610735565b6040805192835260208301919091528051918290030190f35b61022c61076e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b038135169060200135610805565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b031661086b565b60408051918252519081900360200190f35b61030761094c565b6103076004803603602081101561033757600080fd5b50356001600160a01b0316610952565b6102cd6004803603606081101561035d57600080fd5b506001600160a01b03813581169160208101359091169060400135610964565b6103a36004803603602081101561039357600080fd5b50356001600160a01b0316610a21565b005b6103ad610a76565b6040805160ff9092168252519081900360200190f35b610307610a7f565b6103a3610a85565b6102cd600480360360408110156103e957600080fd5b506001600160a01b038135169060200135610b65565b6103a36004803603602081101561041557600080fd5b5035610bd3565b6102cd610d0f565b6102cd610d18565b6102cd6004803603604081101561044257600080fd5b506001600160a01b038135169060200135610d28565b6103076004803603602081101561046e57600080fd5b50356001600160a01b0316610d87565b6103a3610da2565b61048e610e85565b604080516001600160a01b039092168252519081900360200190f35b61022c610e94565b6103a3600480360360208110156104c857600080fd5b50356001600160a01b0316610ef4565b610307600480360360208110156104ee57600080fd5b50356001600160a01b0316610f46565b6103076004803603602081101561051457600080fd5b50356001600160a01b0316610f58565b6102cd6004803603604081101561053a57600080fd5b506001600160a01b038135169060200135610f6a565b6102cd6004803603602081101561056657600080fd5b50356001600160a01b031661101c565b6102cd6004803603606081101561058c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105b757600080fd5b8201836020820111156105c957600080fd5b803590602001918460208302840111640100000000831117156105eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063b57600080fd5b82018360208201111561064d57600080fd5b8035906020019184602083028401116401000000008311171561066f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611035945050505050565b6102cd600480360360408110156106c357600080fd5b506001600160a01b03813516906020013561145a565b610307600480360360408110156106ef57600080fd5b506001600160a01b03813581169160200135166114b9565b6103a36114e4565b6103a36004803603602081101561072557600080fd5b50356001600160a01b031661157e565b600d602052816000526040600020818154811061074e57fe5b600091825260209091206002909102018054600190910154909250905082565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b820191906000526020600020905b8154815290600101906020018083116107dd57829003601f168201915b505050505090505b90565b600654600090600160a01b900460ff161561085a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836115d0565b9392505050565b600080805b6001600160a01b0384166000908152600d6020526040902054811015610921576001600160a01b0384166000908152600d602052604090208054829081106108b457fe5b9060005260206000209060020201600001544210610919576001600160a01b0384166000908152600d6020526040902080546109169190839081106108f557fe5b906000526020600020906002020160010154836115dd90919063ffffffff16565b91505b600101610870565b506001600160a01b0383166000908152600b602052604090205461086490829063ffffffff61163716565b60055490565b600b6020526000908152604090205481565b6000806109708561086b565b11156109815761097f84611694565b505b6001600160a01b0384166000908152600c602090815260408083205460039092529091205483916109b8919063ffffffff61163716565b1015610a0b576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b610a16848484611820565b506001949350505050565b6006546001600160a01b03163314610a6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611888565b50565b60025460ff1690565b60085490565b6006546001600160a01b03163314610ace5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff16610b23576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b703361101c565b80610b8557506006546001600160a01b031633145b610bc05760405162461bcd60e51b81526004018080602001828103825260308152602001806121406030913960400191505060405180910390fd5b610bca83836118d0565b50600192915050565b6006546001600160a01b03163314610c1c5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b33600090815260036020526040902054811115610c6a5760405162461bcd60e51b81526004018080602001828103825260278152602001806120e86027913960400191505060405180910390fd5b33600090815260036020526040902054610c8a908263ffffffff61163716565b33600090815260036020526040902055600554610cad908263ffffffff61163716565b60055560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051828152905160009133916000805160206121e58339815191529181900360200190a350565b60095460ff1681565b600654600160a01b900460ff1690565b600654600090600160a01b900460ff1615610d7d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836119b1565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610deb5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff1615610e3d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6006546001600160a01b031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b6006546001600160a01b03163314610f3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a73816119f2565b600c6020526000908152604090205481565b600a6020526000908152604090205481565b600080610f763361086b565b1115610f8757610f8533611694565b505b336000908152600c60209081526040808320546003909252909120548391610fb5919063ffffffff61163716565b1015611008576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b6110128383611a3a565b5060019392505050565b600061102f60078363ffffffff611a9916565b92915050565b6006546000906001600160a01b031633146110815760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b6001600160a01b0384166110c65760405162461bcd60e51b81526004018080602001828103825260328152602001806121916032913960400191505060405180910390fd5b81518351146111065760405162461bcd60e51b81526004018080602001828103825260258152602001806122956025913960400191505060405180910390fd5b6000805b845181101561126d5761113984828151811061112257fe5b6020026020010151836115dd90919063ffffffff16565b9150600084828151811061114957fe5b60200260200101511161118d5760405162461bcd60e51b81526004018080602001828103825260288152602001806120786028913960400191505060405180910390fd5b4285828151811061119a57fe5b602002602001015110156111df5760405162461bcd60e51b815260040180806020018281038252603181526020018061210f6031913960400191505060405180910390fd5b600d6000876001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061121b57fe5b6020026020010151815260200186848151811061123457fe5b6020908102919091018101519091528254600181810185556000948552938290208351600290920201908155910151908201550161110a565b506001600160a01b0385166000908152600c6020526040902054611297908263ffffffff6115dd16565b6001600160a01b0386166000908152600c6020908152604080832093909355600a905220546112cc908263ffffffff6115dd16565b6001600160a01b038087166000908152600a602090815260408083209490945560065490921681526003909152205461130b908263ffffffff61163716565b6006546001600160a01b039081166000908152600360205260408082209390935590871681522054611343908263ffffffff6115dd16565b6001600160a01b03808716600081815260036020908152604091829020949094556006548151868152915192949316926000805160206121e583398151915292918290030190a3846001600160a01b03167f8c8c8463f847d83e72b703e7e1b28ccf15a9053b3889b1ae0df933a38a2d01638486604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156113fb5781810151838201526020016113e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561143a578181015183820152602001611422565b5050505090500194505050505060405180910390a2506001949350505050565b600654600090600160a01b900460ff16156114af576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611b00565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6006546001600160a01b0316331461152d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b60095460ff161561156f5760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b6009805460ff19166001179055565b6006546001600160a01b031633146115c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611b3c565b6000610bca338484611bdd565b600082820183811015610864576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561168e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000806116a08361086b565b9050600081116116f7576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f2072656c65617361626c6520746f6b656e730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054611720908263ffffffff61163716565b6001600160a01b0384166000908152600c6020908152604080832093909355600b90522054611755908263ffffffff6115dd16565b6001600160a01b0384166000908152600b60208181526040808420859055600a825290922054915214156117d5576001600160a01b0383166000908152600d602052604081206117a491612014565b6001600160a01b0383166000908152600a60209081526040808320839055600b8252808320839055600c9091528120555b6040805182815242602082015281516001600160a01b038616927f5a2536278184a2bc9988c418f737538d0903d5ee8944d2d784ce41fd82b17415928290030190a250600192915050565b600654600090600160a01b900460ff1615611875576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611880848484611cc9565b949350505050565b61189960078263ffffffff611d1116565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60095460ff16156119125760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b60085461192d8261192161094c565b9063ffffffff6115dd16565b1115611980576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b60085461198f8261192161094c565b14156119a3576009805460ff191660011790555b6119ad8282611d78565b5050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff61163716565b611bdd565b611a0360078263ffffffff611e5816565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600654600090600160a01b900460ff1615611a8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611ed9565b60006001600160a01b038216611ae05760405162461bcd60e51b81526004018080602001828103825260228152602001806121c36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff6115dd16565b6001600160a01b038116611b815760405162461bcd60e51b81526004018080602001828103825260268152602001806120a06026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611c225760405162461bcd60e51b81526004018080602001828103825260248152602001806122506024913960400191505060405180910390fd5b6001600160a01b038216611c675760405162461bcd60e51b81526004018080602001828103825260228152602001806120c66022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611cd6848484611ee2565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546110129186916119ed908663ffffffff61163716565b611d1b8282611a99565b611d565760405162461bcd60e51b81526004018080602001828103825260218152602001806121706021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216611dd3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554611de6908263ffffffff6115dd16565b6005556001600160a01b038216600090815260036020526040902054611e12908263ffffffff6115dd16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391926000805160206121e58339815191529281900390910190a35050565b611e628282611a99565b15611eb4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610bca3384845b6001600160a01b038316611f275760405162461bcd60e51b81526004018080602001828103825260258152602001806122056025913960400191505060405180910390fd5b6001600160a01b038216611f6c5760405162461bcd60e51b81526004018080602001828103825260238152602001806120556023913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054611f95908263ffffffff61163716565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611fca908263ffffffff6115dd16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716926000805160206121e583398151915292918290030190a3505050565b5080546000825560020290600052602060002090810190610a73919061080291905b808211156120505760008082556001820155600201612036565b509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373546f6b656e3a2074686520616d6f756e74206d7573742062652067726561746572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332304275726e61626c653a206e6f7420656e6f75676820746f6b656e2062616c616e6365546f6b656e3a207468652074696d65206d7573742062652067726561746572207468616e2063757272656e742074696d654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e3a207468652074617267657420616464726573732063616e6e6f742062652061207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332304361707065643a206d696e74696e6720686173206265656e2066696e697368656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a207468652063616c6c6572206d757374206265206f776e6572546f6b656e3a20746865206172726179206c656e677468206d75737420626520657175616ca265627a7a7230582032d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a2864736f6c634300050a0032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000009546967657243617368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035443480000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636618846311610104578063a6b3aae3116100a2578063d73dd62311610071578063d73dd623146106ad578063dd62ed3e146106d9578063e4cc18be14610707578063f2fde38b1461070f576101da565b8063a6b3aae3146104fe578063a9059cbb14610524578063aa271e1a14610550578063c1dfc81b14610576576101da565b80638da5cb5b116100de5780638da5cb5b1461048657806395d89b41146104aa578063983b2d56146104b2578063a153e708146104d8576101da565b8063661884631461042c57806370a08231146104585780638456cb591461047e576101da565b80633092afd51161017c57806340c10f191161014b57806340c10f19146103d357806342966c68146103ff578063572b40321461041c5780635c975abb14610424576101da565b80633092afd51461037d578063313ce567146103a5578063355274ea146103c35780633f4ba83a146103cb576101da565b80631726cbc8116101b85780631726cbc8146102e157806318160ddd146103195780631cf1bb721461032157806323b872dd14610347576101da565b8063010bc33c146101df57806306fdde0314610224578063095ea7b3146102a1575b600080fd5b61020b600480360360408110156101f557600080fd5b506001600160a01b038135169060200135610735565b6040805192835260208301919091528051918290030190f35b61022c61076e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b038135169060200135610805565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b031661086b565b60408051918252519081900360200190f35b61030761094c565b6103076004803603602081101561033757600080fd5b50356001600160a01b0316610952565b6102cd6004803603606081101561035d57600080fd5b506001600160a01b03813581169160208101359091169060400135610964565b6103a36004803603602081101561039357600080fd5b50356001600160a01b0316610a21565b005b6103ad610a76565b6040805160ff9092168252519081900360200190f35b610307610a7f565b6103a3610a85565b6102cd600480360360408110156103e957600080fd5b506001600160a01b038135169060200135610b65565b6103a36004803603602081101561041557600080fd5b5035610bd3565b6102cd610d0f565b6102cd610d18565b6102cd6004803603604081101561044257600080fd5b506001600160a01b038135169060200135610d28565b6103076004803603602081101561046e57600080fd5b50356001600160a01b0316610d87565b6103a3610da2565b61048e610e85565b604080516001600160a01b039092168252519081900360200190f35b61022c610e94565b6103a3600480360360208110156104c857600080fd5b50356001600160a01b0316610ef4565b610307600480360360208110156104ee57600080fd5b50356001600160a01b0316610f46565b6103076004803603602081101561051457600080fd5b50356001600160a01b0316610f58565b6102cd6004803603604081101561053a57600080fd5b506001600160a01b038135169060200135610f6a565b6102cd6004803603602081101561056657600080fd5b50356001600160a01b031661101c565b6102cd6004803603606081101561058c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105b757600080fd5b8201836020820111156105c957600080fd5b803590602001918460208302840111640100000000831117156105eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063b57600080fd5b82018360208201111561064d57600080fd5b8035906020019184602083028401116401000000008311171561066f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611035945050505050565b6102cd600480360360408110156106c357600080fd5b506001600160a01b03813516906020013561145a565b610307600480360360408110156106ef57600080fd5b506001600160a01b03813581169160200135166114b9565b6103a36114e4565b6103a36004803603602081101561072557600080fd5b50356001600160a01b031661157e565b600d602052816000526040600020818154811061074e57fe5b600091825260209091206002909102018054600190910154909250905082565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b820191906000526020600020905b8154815290600101906020018083116107dd57829003601f168201915b505050505090505b90565b600654600090600160a01b900460ff161561085a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836115d0565b9392505050565b600080805b6001600160a01b0384166000908152600d6020526040902054811015610921576001600160a01b0384166000908152600d602052604090208054829081106108b457fe5b9060005260206000209060020201600001544210610919576001600160a01b0384166000908152600d6020526040902080546109169190839081106108f557fe5b906000526020600020906002020160010154836115dd90919063ffffffff16565b91505b600101610870565b506001600160a01b0383166000908152600b602052604090205461086490829063ffffffff61163716565b60055490565b600b6020526000908152604090205481565b6000806109708561086b565b11156109815761097f84611694565b505b6001600160a01b0384166000908152600c602090815260408083205460039092529091205483916109b8919063ffffffff61163716565b1015610a0b576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b610a16848484611820565b506001949350505050565b6006546001600160a01b03163314610a6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611888565b50565b60025460ff1690565b60085490565b6006546001600160a01b03163314610ace5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff16610b23576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b703361101c565b80610b8557506006546001600160a01b031633145b610bc05760405162461bcd60e51b81526004018080602001828103825260308152602001806121406030913960400191505060405180910390fd5b610bca83836118d0565b50600192915050565b6006546001600160a01b03163314610c1c5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b33600090815260036020526040902054811115610c6a5760405162461bcd60e51b81526004018080602001828103825260278152602001806120e86027913960400191505060405180910390fd5b33600090815260036020526040902054610c8a908263ffffffff61163716565b33600090815260036020526040902055600554610cad908263ffffffff61163716565b60055560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051828152905160009133916000805160206121e58339815191529181900360200190a350565b60095460ff1681565b600654600160a01b900460ff1690565b600654600090600160a01b900460ff1615610d7d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836119b1565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610deb5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff1615610e3d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6006546001600160a01b031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b6006546001600160a01b03163314610f3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a73816119f2565b600c6020526000908152604090205481565b600a6020526000908152604090205481565b600080610f763361086b565b1115610f8757610f8533611694565b505b336000908152600c60209081526040808320546003909252909120548391610fb5919063ffffffff61163716565b1015611008576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b6110128383611a3a565b5060019392505050565b600061102f60078363ffffffff611a9916565b92915050565b6006546000906001600160a01b031633146110815760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b6001600160a01b0384166110c65760405162461bcd60e51b81526004018080602001828103825260328152602001806121916032913960400191505060405180910390fd5b81518351146111065760405162461bcd60e51b81526004018080602001828103825260258152602001806122956025913960400191505060405180910390fd5b6000805b845181101561126d5761113984828151811061112257fe5b6020026020010151836115dd90919063ffffffff16565b9150600084828151811061114957fe5b60200260200101511161118d5760405162461bcd60e51b81526004018080602001828103825260288152602001806120786028913960400191505060405180910390fd5b4285828151811061119a57fe5b602002602001015110156111df5760405162461bcd60e51b815260040180806020018281038252603181526020018061210f6031913960400191505060405180910390fd5b600d6000876001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061121b57fe5b6020026020010151815260200186848151811061123457fe5b6020908102919091018101519091528254600181810185556000948552938290208351600290920201908155910151908201550161110a565b506001600160a01b0385166000908152600c6020526040902054611297908263ffffffff6115dd16565b6001600160a01b0386166000908152600c6020908152604080832093909355600a905220546112cc908263ffffffff6115dd16565b6001600160a01b038087166000908152600a602090815260408083209490945560065490921681526003909152205461130b908263ffffffff61163716565b6006546001600160a01b039081166000908152600360205260408082209390935590871681522054611343908263ffffffff6115dd16565b6001600160a01b03808716600081815260036020908152604091829020949094556006548151868152915192949316926000805160206121e583398151915292918290030190a3846001600160a01b03167f8c8c8463f847d83e72b703e7e1b28ccf15a9053b3889b1ae0df933a38a2d01638486604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156113fb5781810151838201526020016113e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561143a578181015183820152602001611422565b5050505090500194505050505060405180910390a2506001949350505050565b600654600090600160a01b900460ff16156114af576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611b00565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6006546001600160a01b0316331461152d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b60095460ff161561156f5760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b6009805460ff19166001179055565b6006546001600160a01b031633146115c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611b3c565b6000610bca338484611bdd565b600082820183811015610864576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561168e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000806116a08361086b565b9050600081116116f7576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f2072656c65617361626c6520746f6b656e730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054611720908263ffffffff61163716565b6001600160a01b0384166000908152600c6020908152604080832093909355600b90522054611755908263ffffffff6115dd16565b6001600160a01b0384166000908152600b60208181526040808420859055600a825290922054915214156117d5576001600160a01b0383166000908152600d602052604081206117a491612014565b6001600160a01b0383166000908152600a60209081526040808320839055600b8252808320839055600c9091528120555b6040805182815242602082015281516001600160a01b038616927f5a2536278184a2bc9988c418f737538d0903d5ee8944d2d784ce41fd82b17415928290030190a250600192915050565b600654600090600160a01b900460ff1615611875576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611880848484611cc9565b949350505050565b61189960078263ffffffff611d1116565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60095460ff16156119125760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b60085461192d8261192161094c565b9063ffffffff6115dd16565b1115611980576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b60085461198f8261192161094c565b14156119a3576009805460ff191660011790555b6119ad8282611d78565b5050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff61163716565b611bdd565b611a0360078263ffffffff611e5816565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600654600090600160a01b900460ff1615611a8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611ed9565b60006001600160a01b038216611ae05760405162461bcd60e51b81526004018080602001828103825260228152602001806121c36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff6115dd16565b6001600160a01b038116611b815760405162461bcd60e51b81526004018080602001828103825260268152602001806120a06026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611c225760405162461bcd60e51b81526004018080602001828103825260248152602001806122506024913960400191505060405180910390fd5b6001600160a01b038216611c675760405162461bcd60e51b81526004018080602001828103825260228152602001806120c66022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611cd6848484611ee2565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546110129186916119ed908663ffffffff61163716565b611d1b8282611a99565b611d565760405162461bcd60e51b81526004018080602001828103825260218152602001806121706021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216611dd3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554611de6908263ffffffff6115dd16565b6005556001600160a01b038216600090815260036020526040902054611e12908263ffffffff6115dd16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391926000805160206121e58339815191529281900390910190a35050565b611e628282611a99565b15611eb4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610bca3384845b6001600160a01b038316611f275760405162461bcd60e51b81526004018080602001828103825260258152602001806122056025913960400191505060405180910390fd5b6001600160a01b038216611f6c5760405162461bcd60e51b81526004018080602001828103825260238152602001806120556023913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054611f95908263ffffffff61163716565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611fca908263ffffffff6115dd16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716926000805160206121e583398151915292918290030190a3505050565b5080546000825560020290600052602060002090810190610a73919061080291905b808211156120505760008082556001820155600201612036565b509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373546f6b656e3a2074686520616d6f756e74206d7573742062652067726561746572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332304275726e61626c653a206e6f7420656e6f75676820746f6b656e2062616c616e6365546f6b656e3a207468652074696d65206d7573742062652067726561746572207468616e2063757272656e742074696d654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e3a207468652074617267657420616464726573732063616e6e6f742062652061207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332304361707065643a206d696e74696e6720686173206265656e2066696e697368656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a207468652063616c6c6572206d757374206265206f776e6572546f6b656e3a20746865206172726179206c656e677468206d75737420626520657175616ca265627a7a7230582032d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a2864736f6c634300050a0032

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000009546967657243617368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035443480000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : token_name (string): TigerCash
Arg [1] : token_symbol (string): TCH
Arg [2] : token_decimals (uint8): 18
Arg [3] : token_cap (uint256): 1000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 5469676572436173680000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5443480000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

20512:5205:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20512:5205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20901:52;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20901:52:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13862:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13862:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16548:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16548:140:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;24332:370;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24332:370:0;-1:-1:-1;;;;;24332:370:0;;:::i;:::-;;;;;;;;;;;;;;;;8317:91;;;:::i;20785:50::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20785:50:0;-1:-1:-1;;;;;20785:50:0;;:::i;23846:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23846:351:0;;;;;;;;;;;;;;;;;:::i;17641:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17641:97:0;-1:-1:-1;;;;;17641:97:0;;:::i;:::-;;14388:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18833:75;;;:::i;15986:117::-;;;:::i;18421:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18421:143:0;;;;;;;;:::i;19910:546::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19910:546:0;;:::i;18729:24::-;;;:::i;15212:78::-;;;:::i;16869:175::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16869:175:0;;;;;;;;:::i;8467:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8467:110:0;-1:-1:-1;;;;;8467:110:0;;:::i;15780:115::-;;;:::i;4047:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;4047:20:0;;;;;;;;;;;;;;14059:87;;;:::i;17542:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17542:91:0;-1:-1:-1;;;;;17542:91:0;;:::i;20844:48::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20844:48:0;-1:-1:-1;;;;;20844:48:0;;:::i;20660:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20660:51:0;-1:-1:-1;;;;;20660:51:0;;:::i;23386:349::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23386:349:0;;;;;;;;:::i;17425:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17425:109:0;-1:-1:-1;;;;;17425:109:0;;:::i;21895:1385::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;21895:1385:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;21895:1385:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21895:1385:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21895:1385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21895:1385:0;;;;;;;;-1:-1:-1;21895:1385:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;21895:1385:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21895:1385:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21895:1385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21895:1385:0;;-1:-1:-1;21895:1385:0;;-1:-1:-1;;;;;21895:1385:0:i;16696:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16696:165:0;;;;;;;;:::i;9001:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9001:134:0;;;;;;;;;;:::i;19436:152::-;;;:::i;4728:111::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4728:111:0;-1:-1:-1;;;;;4728:111:0;;:::i;20901:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20901:52:0;-1:-1:-1;20901:52:0;:::o;13862:83::-;13932:5;13925:12;;;;;;;;-1:-1:-1;;13925:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13899:13;;13925:12;;13932:5;;13925:12;;13932:5;13925:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13862:83;;:::o;16548:140::-;15445:7;;16627:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16651:29;16665:7;16674:5;16651:13;:29::i;:::-;16644:36;16548:140;-1:-1:-1;;;16548:140:0:o;24332:370::-;24392:7;;;24438:210;-1:-1:-1;;;;;24462:17:0;;;;;;:11;:17;;;;;:24;24458:28;;24438:210;;;-1:-1:-1;;;;;24519:17:0;;;;;;:11;:17;;;;;:20;;24537:1;;24519:20;;;;;;;;;;;;;;;;:32;;;24512:3;:39;24508:129;;-1:-1:-1;;;;;24586:17:0;;;;;;:11;:17;;;;;:20;;24578:43;;24586:17;24604:1;;24586:20;;;;;;;;;;;;;;;;:34;;;24578:3;:7;;:43;;;;:::i;:::-;24572:49;;24508:129;24488:3;;24438:210;;;-1:-1:-1;;;;;;24673:20:0;;;;;;:14;:20;;;;;;24665:29;;:3;;:29;:7;:29;:::i;8317:91::-;8388:12;;8317:91;:::o;20785:50::-;;;;;;;;;;;;;:::o;23846:351::-;23925:4;23970:1;23945:22;23962:4;23945:16;:22::i;:::-;:26;23942:77;;;23988:19;24002:4;23988:13;:19::i;:::-;;23942:77;-1:-1:-1;;;;;24057:18:0;;;;;;:12;:18;;;;;;;;;24037:9;:15;;;;;;;24080:5;;24037:39;;:15;:39;:19;:39;:::i;:::-;:48;;24029:92;;;;;-1:-1:-1;;;24029:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24132:35;24151:4;24157:2;24161:5;24132:18;:35::i;:::-;-1:-1:-1;24185:4:0;;23846:351;-1:-1:-1;;;;23846:351:0:o;17641:97::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17708:22;17722:7;17708:13;:22::i;:::-;17641:97;:::o;14388:83::-;14454:9;;;;14388:83;:::o;18833:75::-;18896:4;;18833:75;:::o;15986:117::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15640:7;;-1:-1:-1;;;15640:7:0;;;;15632:40;;;;;-1:-1:-1;;;15632:40:0;;;;;;;;;;;;-1:-1:-1;;;15632:40:0;;;;;;;;;;;;;;;16044:7;:15;;-1:-1:-1;;;;16044:15:0;;;16075:20;;;16084:10;16075:20;;;;;;;;;;;;;15986:117::o;18421:143::-;18495:4;17303:20;17312:10;17303:8;:20::i;:::-;:43;;;-1:-1:-1;17341:5:0;;-1:-1:-1;;;;;17341:5:0;17327:10;:19;17303:43;17295:104;;;;-1:-1:-1;;;17295:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18512:22;18518:7;18527:6;18512:5;:22::i;:::-;-1:-1:-1;18552:4:0;18421:143;;;;:::o;19910:546::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19996:10;19986:21;;;;:9;:21;;;;;;19976:31;;;19968:83;;;;-1:-1:-1;;;19968:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20279:10;20269:21;;;;:9;:21;;;;;;:33;;20295:6;20269:33;:25;:33;:::i;:::-;20255:10;20245:21;;;;:9;:21;;;;;:57;20328:12;;:24;;20345:6;20328:24;:16;:24;:::i;:::-;20313:12;:39;20368:24;;;;;;;;20373:10;;20368:24;;;;;;;;;;20408:40;;;;;;;;20437:1;;20417:10;;-1:-1:-1;;;;;;;;;;;20408:40:0;;;;;;;;19910:546;:::o;18729:24::-;;;;;;:::o;15212:78::-;15275:7;;-1:-1:-1;;;15275:7:0;;;;;15212:78::o;16869:175::-;15445:7;;16964:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16988:48;17011:7;17020:15;16988:22;:48::i;8467:110::-;-1:-1:-1;;;;;8551:18:0;8524:7;8551:18;;;:9;:18;;;;;;;8467:110::o;15780:115::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15445:7;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;15839:7;:14;;-1:-1:-1;;;;15839:14:0;-1:-1:-1;;;15839:14:0;;;15869:18;;;15876:10;15869:18;;;;;;;;;;;;;15780:115::o;4047:20::-;;;-1:-1:-1;;;;;4047:20:0;;:::o;14059:87::-;14131:7;14124:14;;;;;;;;-1:-1:-1;;14124:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14098:13;;14124:14;;14131:7;;14124:14;;14131:7;14124:14;;;;;;;;;;;;;;;;;;;;;;;;17542:91;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17606:19;17617:7;17606:10;:19::i;20844:48::-;;;;;;;;;;;;;:::o;20660:51::-;;;;;;;;;;;;;:::o;23386:349::-;23447:4;23498:1;23467:28;23484:10;23467:16;:28::i;:::-;:32;23464:89;;;23516:25;23530:10;23516:13;:25::i;:::-;;23464:89;23612:10;23599:24;;;;:12;:24;;;;;;;;;23573:9;:21;;;;;;;23628:5;;23573:51;;:21;:51;:25;:51;:::i;:::-;:60;;23565:104;;;;;-1:-1:-1;;;23565:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23680:25;23695:2;23699:5;23680:14;:25::i;:::-;-1:-1:-1;23723:4:0;;23386:349;-1:-1:-1;;;23386:349:0:o;17425:109::-;17481:4;17505:21;:8;17518:7;17505:21;:12;:21;:::i;:::-;17498:28;17425:109;-1:-1:-1;;17425:109:0:o;21895:1385::-;4492:5;;22027:4;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22052:26:0;;22044:89;;;;-1:-1:-1;;;22044:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22176:15;:22;22152:13;:20;:46;22144:96;;;;-1:-1:-1;;;22144:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22251:21;;22283:462;22307:13;:20;22303:1;:24;22283:462;;;22365:37;22383:15;22399:1;22383:18;;;;;;;;;;;;;;22365:13;:17;;:37;;;;:::i;:::-;22349:53;;22446:1;22425:15;22441:1;22425:18;;;;;;;;;;;;;;:22;22417:75;;;;-1:-1:-1;;;22417:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22535:3;22515:13;22529:1;22515:16;;;;;;;;;;;;;;:23;;22507:85;;;;-1:-1:-1;;;22507:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22653:11;:25;22665:12;-1:-1:-1;;;;;22653:25:0;-1:-1:-1;;;;;22653:25:0;;;;;;;;;;;;22684:48;;;;;;;;22695:13;22709:1;22695:16;;;;;;;;;;;;;;22684:48;;;;22713:15;22729:1;22713:18;;;;;;;;;;;;;;;;;;;22684:48;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;22653:80:0;;;;;;;;;;;;;;;;;;;;;;;;22329:3;22283:462;;;-1:-1:-1;;;;;;22784:26:0;;;;;;:12;:26;;;;;;:45;;22815:13;22784:45;:30;:45;:::i;:::-;-1:-1:-1;;;;;22755:26:0;;;;;;:12;:26;;;;;;;;:74;;;;22872:15;:29;;;;:48;;22906:13;22872:48;:33;:48;:::i;:::-;-1:-1:-1;;;;;22840:29:0;;;;;;;:15;:29;;;;;;;;:80;;;;22960:5;;;;;22950:16;;:9;:16;;;;;:35;;22971:13;22950:35;:20;:35;:::i;:::-;22941:5;;-1:-1:-1;;;;;22941:5:0;;;22931:16;;;;:9;:16;;;;;;:54;;;;23077:23;;;;;;;:42;;23105:13;23077:42;:27;:42;:::i;:::-;-1:-1:-1;;;;;23051:23:0;;;;;;;:9;:23;;;;;;;;;:68;;;;23144:5;;23135:44;;;;;;;23051:23;;23144:5;;;-1:-1:-1;;;;;;;;;;;23135:44:0;;;;;;;;23205:12;-1:-1:-1;;;;;23195:55:0;;23219:15;23236:13;23195:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;23195:55: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;23195:55:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;23268:4:0;;21895:1385;-1:-1:-1;;;;21895:1385:0:o;16696:165::-;15445:7;;16786:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16810:43;16833:7;16842:10;16810:22;:43::i;9001:134::-;-1:-1:-1;;;;;9100:18:0;;;9073:7;9100:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9001:134::o;19436:152::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19495:12;;;;19494:13;19486:64;;;;-1:-1:-1;;;19486:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19561:12;:19;;-1:-1:-1;;19561:19:0;19576:4;19561:19;;;19436:152::o;4728:111::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4802:29;4821:9;4802:18;:29::i;9278:148::-;9343:4;9360:36;9369:10;9381:7;9390:5;9360:8;:36::i;372:181::-;430:7;462:5;;;486:6;;;;478:46;;;;;-1:-1:-1;;;478:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;823:184;881:7;914:1;909;:6;;901:49;;;;;-1:-1:-1;;;901:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;973:5:0;;;823:184::o;24806:906::-;24862:4;24958:14;24975:24;24992:6;24975:16;:24::i;:::-;24958:41;;25027:1;25018:6;:10;25010:50;;;;;-1:-1:-1;;;25010:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25094:20:0;;;;;;:12;:20;;;;;;:32;;25119:6;25094:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;25071:20:0;;;;;;:12;:20;;;;;;;;:55;;;;25162:14;:22;;;;:34;;25189:6;25162:34;:26;:34;:::i;:::-;-1:-1:-1;;;;;25137:22:0;;;;;;:14;:22;;;;;;;;:59;;;25399:15;:23;;;;;;25373:22;;:49;25369:265;;;-1:-1:-1;;;;;25446:19:0;;;;;;:11;:19;;;;;25439:26;;;:::i;:::-;-1:-1:-1;;;;;25515:23:0;;25541:1;25515:23;;;:15;:23;;;;;;;;:27;;;25557:14;:22;;;;;:26;;;25598:12;:20;;;;;:24;25369:265;25649:33;;;;;;25678:3;25649:33;;;;;;-1:-1:-1;;;;;25649:33:0;;;;;;;;;;;-1:-1:-1;25700:4:0;;24806:906;-1:-1:-1;;24806:906:0:o;16380:160::-;15445:7;;16473:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16497:35;16516:4;16522:2;16526:5;16497:18;:35::i;:::-;16490:42;16380:160;-1:-1:-1;;;;16380:160:0:o;17876:130::-;17936:24;:8;17952:7;17936:24;:15;:24;:::i;:::-;17976:22;;-1:-1:-1;;;;;17976:22:0;;;;;;;;17876:130;:::o;19077:351::-;19153:12;;;;19152:13;19144:64;;;;-1:-1:-1;;;19144:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19255:4;;19227:24;19245:5;19227:13;:11;:13::i;:::-;:17;:24;:17;:24;:::i;:::-;:32;;19219:70;;;;;-1:-1:-1;;;19219:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19331:4;;19303:24;19321:5;19303:13;:11;:13::i;:24::-;:32;19300:83;;;19352:12;:19;;-1:-1:-1;;19352:19:0;19367:4;19352:19;;;19300:83;19393:27;19405:7;19414:5;19393:11;:27::i;:::-;19077:351;;:::o;11256:215::-;11366:10;11340:4;11387:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11387:32:0;;;;;;;;;;11340:4;;11357:84;;11378:7;;11387:53;;11424:15;11387:53;:36;:53;:::i;:::-;11357:8;:84::i;17746:122::-;17803:21;:8;17816:7;17803:21;:12;:21;:::i;:::-;17840:20;;-1:-1:-1;;;;;17840:20:0;;;;;;;;17746:122;:::o;16240:132::-;15445:7;;16315:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16339:25;16354:2;16358:5;16339:14;:25::i;3813:203::-;3885:4;-1:-1:-1;;;;;3910:21:0;;3902:68;;;;-1:-1:-1;;;3902:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3988:20:0;:11;:20;;;;;;;;;;;;;;;3813:203::o;10552:205::-;10657:10;10631:4;10678:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10678:32:0;;;;;;;;;;10631:4;;10648:79;;10669:7;;10678:48;;10715:10;10678:48;:36;:48;:::i;4985:231::-;-1:-1:-1;;;;;5060:23:0;;5052:74;;;;-1:-1:-1;;;5052:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5163:5;;5142:38;;-1:-1:-1;;;;;5142:38:0;;;;5163:5;;5142:38;;5163:5;;5142:38;5191:5;:17;;-1:-1:-1;;;;;;5191:17:0;-1:-1:-1;;;;;5191:17:0;;;;;;;;;;4985:231::o;12917:335::-;-1:-1:-1;;;;;13010:19:0;;13002:68;;;;-1:-1:-1;;;13002:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13089:21:0;;13081:68;;;;-1:-1:-1;;;13081:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13162:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;13213:31;;;;;;;;;;;;;;;;;12917:335;;;:::o;9892:256::-;9981:4;9998:36;10008:6;10016:9;10027:6;9998:9;:36::i;:::-;-1:-1:-1;;;;;10074:19:0;;;;;;:11;:19;;;;;;;;10062:10;10074:31;;;;;;;;;10045:73;;10054:6;;10074:43;;10110:6;10074:43;:35;:43;:::i;3540:183::-;3620:18;3624:4;3630:7;3620:3;:18::i;:::-;3612:64;;;;-1:-1:-1;;;3612:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3687:20:0;3710:5;3687:20;;;;;;;;;;;:28;;-1:-1:-1;;3687:28:0;;;3540:183::o;12504:308::-;-1:-1:-1;;;;;12580:21:0;;12572:65;;;;;-1:-1:-1;;;12572:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12665:12;;:24;;12682:6;12665:24;:16;:24;:::i;:::-;12650:12;:39;-1:-1:-1;;;;;12721:18:0;;;;;;:9;:18;;;;;;:30;;12744:6;12721:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;12700:18:0;;;;;;:9;:18;;;;;;;;:51;;;;12767:37;;;;;;;12700:18;;;;-1:-1:-1;;;;;;;;;;;12767:37:0;;;;;;;;;12504:308;;:::o;3287:178::-;3365:18;3369:4;3375:7;3365:3;:18::i;:::-;3364:19;3356:63;;;;;-1:-1:-1;;;3356:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3430:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;3430:27:0;3453:4;3430:27;;;3287:178::o;8786:156::-;8855:4;8872:40;8882:10;8894:9;8905:6;11957:429;-1:-1:-1;;;;;12055:20:0;;12047:70;;;;-1:-1:-1;;;12047:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12136:23:0;;12128:71;;;;-1:-1:-1;;;12128:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12232:17:0;;;;;;:9;:17;;;;;;:29;;12254:6;12232:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;12212:17:0;;;;;;;:9;:17;;;;;;:49;;;;12295:20;;;;;;;:32;;12320:6;12295:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;12272:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;12343:35;;;;;;;12272:20;;12343:35;;;;-1:-1:-1;;;;;;;;;;;12343:35:0;;;;;;;;11957:429;;;:::o;20512:5205::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://32d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a28
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.