ETH Price: $2,267.38 (-6.35%)

Token

Pre-Retogeum (PRTG)
 

Overview

Max Total Supply

10,000,000 PRTG

Holders

1,523 (0.00%)

Market

Price

$3.95 @ 0.001743 ETH (+19.97%)

Onchain Market Cap

$39,517,862.65

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
3.53 PRTG

Value
$13.95 ( ~0.00615246730839573 Eth) [0.0000%]
0xbf49414f221d96fb614a335ea71230f955a16117
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Pre-Retogeum is a platform that allows distribution/transaction/consumption of electric energy, and supports P2P-based electricity trading by allowing any individuals and companies to participate.

Market

Volume (24H):$17.59
Market Capitalization:$0.00
Circulating Supply:0.00 PRTG
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
MEXC
PRTG-USDT$3.96
0.0017434 Eth
$17.60
4.450 PRTG
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Custom

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-17
*/

/**
 *Submitted for verification at Etherscan.io on 2020-10-01
*/

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

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

pragma solidity ^0.5.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev 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;
    }

    /**
     * @dev 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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    /**
     * @dev 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.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev 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) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev 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) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

contract Ownable {
    address public owner;
    address public newOwner;

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

    constructor() public {
        owner = msg.sender;
        newOwner = address(0);
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    modifier onlyNewOwner() {
        require(msg.sender != address(0));
        require(msg.sender == newOwner);
        _;
    }

    function isOwner(address account) public view returns (bool) {
        if( account == owner ){
            return true;
        }
        else {
            return false;
        }
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        newOwner = _newOwner;
    }

    function acceptOwnership() public onlyNewOwner returns(bool) {
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

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

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender)|| isOwner(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function removePauser(address account) public onlyOwner {
        _removePauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}

contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

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

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

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

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

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    /**
    * @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 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.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @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) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        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
     * Emits an Approval event.
     * @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
     * Emits an Approval event.
     * @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 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 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(to != address(0));
        require(from != address(0));

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

    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 value) public returns (bool) {
        _burn(msg.sender, value);
        return true;
    }
    
    /**
     * @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));

        _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.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }

    /**
     * @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);
    }
}

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);
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    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.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

contract ERC20Custom is ERC20Detailed, ERC20Pausable {

    struct LockInfo {
        uint256 _releaseTime;
        uint256 _amount;
    }

    mapping (address => LockInfo[]) public timelockList;
    mapping (address => bool) public frozenAccount;

    event Freeze(address indexed holder);
    event Unfreeze(address indexed holder);
    event Lock(address indexed holder, uint256 value, uint256 releaseTime);
    event Unlock(address indexed holder, uint256 value);

    modifier notFrozen(address _holder) {
        require(!frozenAccount[_holder]);
        _;
    }

    constructor(
        uint256 initialSupply,
        uint8 decimals,
        string memory tokenName,
        string memory tokenSymbol
    ) ERC20Detailed(tokenName, tokenSymbol, decimals) public  {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals)));
    }

    function timelockListLength(address owner) public view returns (uint256) {
        return timelockList[owner].length;
    }

    function balanceOf(address owner) public view returns (uint256) {

        uint256 totalBalance = super.balanceOf(owner);
        if( timelockList[owner].length >0 ){
            for(uint i=0; i<timelockList[owner].length;i++){
                totalBalance = totalBalance.add(timelockList[owner][i]._amount);
            }
        }

        return totalBalance;
    }

    function balanceOfTimelocked(address owner) public view returns (uint256) {

        uint256 totalLocked = 0;
        if( timelockList[owner].length >0 ){
            for(uint i=0; i<timelockList[owner].length;i++){
                totalLocked = totalLocked.add(timelockList[owner][i]._amount);
            }
        }

        return totalLocked;
    }

    function balanceOfAvailable(address owner) public view returns (uint256) {

        uint256 totalBalance = super.balanceOf(owner);
        return totalBalance;
    }

    function transfer(address to, uint256 value) public notFrozen(msg.sender) returns (bool) {
        if (timelockList[msg.sender].length > 0 ) {
            _autoUnlock(msg.sender);
        }
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public notFrozen(from) returns (bool) {
        if (timelockList[from].length > 0) {
            _autoUnlock(from);
        }
        return super.transferFrom(from, to, value);
    }

    // function freezeAccount(address holder) public onlyPauser returns (bool) {
    //     require(!frozenAccount[holder]);
    //     require(timelockList[holder].length == 0);
    //     frozenAccount[holder] = true;
    //     emit Freeze(holder);
    //     return true;
    // }

    // function unfreezeAccount(address holder) public onlyPauser returns (bool) {
    //     require(frozenAccount[holder]);
    //     frozenAccount[holder] = false;
    //     emit Unfreeze(holder);
    //     return true;
    // }

    function lockByQuantity(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) {
        require(!frozenAccount[holder]);
        _lock(holder,value,releaseTime);
        return true;
    }

    function unlockByQuantity(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) {
        //1
        require(!frozenAccount[holder]);
        //2
        require(timelockList[holder].length >0);

        //3
        uint256 totalLocked;
        for(uint idx = 0; idx < timelockList[holder].length ; idx++ ){
            totalLocked = totalLocked.add(timelockList[holder][idx]._amount);
        }
        require(totalLocked >value);

        //4
        for(uint idx = 0; idx < timelockList[holder].length ; idx++ ) {
            if( _unlock(holder, idx) ) {
                idx -=1;
            }
        }

        //5
        _lock(holder,totalLocked.sub(value),releaseTime);

        return true;
    }

    function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) {
        _transfer(msg.sender, holder, value);
        _lock(holder,value,releaseTime);
        return true;
    }

    function unlock(address holder, uint256 idx) public onlyPauser returns (bool) {
        require( timelockList[holder].length > idx, "AhnLog_There is not lock info.");
        _unlock(holder,idx);
        return true;
    }


    function _lock(address holder, uint256 value, uint256 releaseTime) internal returns (bool) {
        _balances[holder] = _balances[holder].sub(value);
        timelockList[holder].push( LockInfo(releaseTime, value) );

        emit Lock(holder, value, releaseTime);
        return true;
    }

    function _unlock(address holder, uint256 idx) internal returns(bool) {
        LockInfo storage lockinfo = timelockList[holder][idx];
        uint256 releaseAmount = lockinfo._amount;

        delete timelockList[holder][idx];
        timelockList[holder][idx] = timelockList[holder][timelockList[holder].length.sub(1)];
        timelockList[holder].length -=1;

        emit Unlock(holder, releaseAmount);
        _balances[holder] = _balances[holder].add(releaseAmount);

        return true;
    }

    function _autoUnlock(address holder) internal returns (bool) {
        for(uint256 idx =0; idx < timelockList[holder].length ; idx++ ) {
            if (timelockList[holder][idx]._releaseTime <= now) {
                // If lockupinfo was deleted, loop restart at same position.
                if( _unlock(holder, idx) ) {
                    idx -=1;
                }
            }
        }
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOfAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOfTimelocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"frozenAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"lockByQuantity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"timelockList","outputs":[{"internalType":"uint256","name":"_releaseTime","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"timelockListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"unlockByQuantity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003a4038038062003a40833981810160405260808110156200003757600080fd5b810190808051906020019092919080519060200190929190805160405193929190846401000000008211156200006c57600080fd5b838201915060208201858111156200008357600080fd5b8251866001820283011164010000000082111715620000a157600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d7578082015181840152602081019050620000ba565b50505050905090810190601f168015620001055780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012957600080fd5b838201915060208201858111156200014057600080fd5b82518660018202830111640100000000821117156200015e57600080fd5b8083526020830192505050908051906020019080838360005b838110156200019457808201518184015260208101905062000177565b50505050905090810190601f168015620001c25780820380516001836020036101000a031916815260200191505b506040525050508181848260009080519060200190620001e492919062000685565b508160019080519060200190620001fd92919062000685565b5080600260006101000a81548160ff021916908360ff16021790555050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002b033620002ef60201b60201c565b6000600960006101000a81548160ff021916908315150217905550620002e5338460ff16600a0a86026200035060201b60201c565b5050505062000734565b6200030a816008620004b360201b620031a31790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200038b57600080fd5b620003a7816005546200056960201b620022731790919060201c565b6005819055506200040681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200056960201b620022731790919060201c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620004ee57600080fd5b620005008282620005f260201b60201c565b156200050b57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080828401905083811015620005e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200062e57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006c857805160ff1916838001178555620006f9565b82800160010185558215620006f9579182015b82811115620006f8578251825591602001919060010190620006db565b5b5090506200070891906200070c565b5090565b6200073191905b808211156200072d57600081600090555060010162000713565b5090565b90565b6132fc80620007446000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806377b623b11161011a578063a457c2d7116100ad578063d26c4a761161007c578063d26c4a7614610a9a578063d4ee1d9014610b03578063dd62ed3e14610b4d578063de6baccb14610bc5578063f2fde38b14610c35576101fb565b8063a457c2d71461091a578063a9059cbb14610980578063b414d4b6146109e6578063ba8907cb14610a42576101fb565b806382dc1ec4116100e957806382dc1ec4146107ff5780638456cb59146108435780638da5cb5b1461084d57806395d89b4114610897576101fb565b806377b623b1146106af57806378b765281461070757806379ba5097146107775780637eee288d14610799576101fb565b80633f4ba83a116101925780635c975abb116101615780635c975abb146105e75780636b2c0f55146106095780636ef8d66d1461064d57806370a0823114610657576101fb565b80633f4ba83a146104e357806342966c68146104ed578063461165931461053357806346fbf68e1461058b576101fb565b806323b872dd116101ce57806323b872dd146103775780632f54bf6e146103fd578063313ce56714610459578063395093511461047d576101fb565b806306fdde0314610200578063095ea7b3146102835780630996eebe146102e957806318160ddd14610359575b600080fd5b610208610c79565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cf6004803603604081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1b565b604051808215151515815260200191505060405180910390f35b61033f600480360360608110156102ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610e46565b604051808215151515815260200191505060405180910390f35b61036161108a565b6040518082815260200191505060405180910390f35b6103e36004803603606081101561038d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611094565b604051808215151515815260200191505060405180910390f35b61043f6004803603602081101561041357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611159565b604051808215151515815260200191505060405180910390f35b6104616111c4565b604051808260ff1660ff16815260200191505060405180910390f35b6104c96004803603604081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111db565b604051808215151515815260200191505060405180910390f35b6104eb611410565b005b6105196004803603602081101561050357600080fd5b81019080803590602001909291905050506114cb565b604051808215151515815260200191505060405180910390f35b6105756004803603602081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e0565b6040518082815260200191505060405180910390f35b6105cd600480360360208110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160a565b604051808215151515815260200191505060405180910390f35b6105ef611627565b604051808215151515815260200191505060405180910390f35b61064b6004803603602081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061163e565b005b6106556116a4565b005b6106996004803603602081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116af565b6040518082815260200191505060405180910390f35b6106f1600480360360208110156106c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e0565b6040518082815260200191505060405180910390f35b61075d6004803603606081101561071d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506117f7565b604051808215151515815260200191505060405180910390f35b61077f611889565b604051808215151515815260200191505060405180910390f35b6107e5600480360360408110156107af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a64565b604051808215151515815260200191505060405180910390f35b6108416004803603602081101561081557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b54565b005b61084b611b82565b005b610855611c3e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089f611c64565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108df5780820151818401526020810190506108c4565b50505050905090810190601f16801561090c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109666004803603604081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d06565b604051808215151515815260200191505060405180910390f35b6109cc6004803603604081101561099657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f3b565b604051808215151515815260200191505060405180910390f35b610a28600480360360208110156109fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffe565b604051808215151515815260200191505060405180910390f35b610a8460048036036020811015610a5857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201e565b6040518082815260200191505060405180910390f35b610ae660048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061206a565b604051808381526020018281526020019250505060405180910390f35b610b0b6120a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610baf60048036036040811015610b6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ce565b6040518082815260200191505060405180910390f35b610c1b60048036036060811015610bdb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612155565b604051808215151515815260200191505060405180910390f35b610c7760048036036020811015610c4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219b565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d115780601f10610ce657610100808354040283529160200191610d11565b820191906000526020600020905b815481529060010190602001808311610cf457829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610e513361160a565b80610e615750610e6033611159565b5b610e6a57600080fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec157600080fd5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f1057600080fd5b600080600090505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610fdf57610fd0600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610faf57fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b91508080600101915050610f18565b50838111610fec57600080fd5b60008090505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561105f5761104686826122fb565b15611052576001810390505b8080600101915050610ff2565b5061107d85611077868461262d90919063ffffffff16565b85612677565b5060019150509392505050565b6000600554905090565b600083600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ee57600080fd5b6000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156111445761114285612805565b505b61114f8585856128e7565b9150509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111ba57600190506111bf565b600090505b919050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561121657600080fd5b6112a582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6114193361160a565b80611429575061142833611159565b5b61143257600080fd5b600960009054906101000a900460ff1661144b57600080fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006114d73383612917565b60019050919050565b600080600090506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156116015760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115ff576115f0600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106115cf57fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b91508080600101915050611538565b505b80915050919050565b6000611620826008612a6b90919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461169857600080fd5b6116a181612afd565b50565b6116ad33612afd565b565b6000806116bb83612b57565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156117d75760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156117d5576117c6600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117a557fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b9150808060010191505061170e565b505b80915050919050565b6000806117ec83612b57565b905080915050919050565b60006118023361160a565b80611812575061181133611159565b5b61181b57600080fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561187257600080fd5b61187d848484612677565b50600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118c457600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461191e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6000611a6f3361160a565b80611a7f5750611a7e33611159565b5b611a8857600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f41686e4c6f675f5468657265206973206e6f74206c6f636b20696e666f2e000081525060200191505060405180910390fd5b611b4983836122fb565b506001905092915050565b611b5d3361160a565b80611b6d5750611b6c33611159565b5b611b7657600080fd5b611b7f81612ba0565b50565b611b8b3361160a565b80611b9b5750611b9a33611159565b5b611ba457600080fd5b600960009054906101000a900460ff1615611bbe57600080fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cfc5780601f10611cd157610100808354040283529160200191611cfc565b820191906000526020600020905b815481529060010190602001808311611cdf57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d4157600080fd5b611dd082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600033600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f9557600080fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115611feb57611fe933612805565b505b611ff58484612bfa565b91505092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a602052816000526040600020818154811061208357fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006121603361160a565b80612170575061216f33611159565b5b61217957600080fd5b612184338585612c28565b61218f848484612677565b50600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561222f57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156122f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061234857fe5b90600052602060002090600202019050600081600101549050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106123ab57fe5b906000526020600020906002020160008082016000905560018201600090555050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206124616001600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061262d90919063ffffffff16565b8154811061246b57fe5b9060005260206000209060020201600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481106124c357fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181805490500391508161253d9190613266565b508473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a26125de81600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b600061266f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e30565b905092915050565b60006126cb83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b600080600090505b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156128dd5742600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106128a257fe5b906000526020600020906002020160000154116128d0576128c383826122fb565b156128cf576001810390505b5b808060010191505061280d565b5060019050919050565b6000600960009054906101000a900460ff161561290357600080fd5b61290e848484612ef0565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561295157600080fd5b6129668160055461262d90919063ffffffff16565b6005819055506129be81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612b118160086130f890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612bb48160086131a390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000600960009054906101000a900460ff1615612c1657600080fd5b612c20838361324f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c6257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c9c57600080fd5b612cee81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8381600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612edd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ea2578082015181840152602081019050612e87565b50505050905090810190601f168015612ecf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000612f8182600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061300c848484612c28565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561313257600080fd5b61313c8282612a6b565b61314557600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156131dd57600080fd5b6131e78282612a6b565b156131f157600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061325c338484612c28565b6001905092915050565b815481835581811115613293576002028160020283600052602060002091820191016132929190613298565b5b505050565b6132c491905b808211156132c05760008082016000905560018201600090555060020161329e565b5090565b9056fea265627a7a72315820d48bb7bbe40ff4f70d7c48d4102166bc8c9d01ce397eb1c26d3b10df8945722064736f6c6343000511003200000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000c5072652d5265746f6765756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045052544700000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806377b623b11161011a578063a457c2d7116100ad578063d26c4a761161007c578063d26c4a7614610a9a578063d4ee1d9014610b03578063dd62ed3e14610b4d578063de6baccb14610bc5578063f2fde38b14610c35576101fb565b8063a457c2d71461091a578063a9059cbb14610980578063b414d4b6146109e6578063ba8907cb14610a42576101fb565b806382dc1ec4116100e957806382dc1ec4146107ff5780638456cb59146108435780638da5cb5b1461084d57806395d89b4114610897576101fb565b806377b623b1146106af57806378b765281461070757806379ba5097146107775780637eee288d14610799576101fb565b80633f4ba83a116101925780635c975abb116101615780635c975abb146105e75780636b2c0f55146106095780636ef8d66d1461064d57806370a0823114610657576101fb565b80633f4ba83a146104e357806342966c68146104ed578063461165931461053357806346fbf68e1461058b576101fb565b806323b872dd116101ce57806323b872dd146103775780632f54bf6e146103fd578063313ce56714610459578063395093511461047d576101fb565b806306fdde0314610200578063095ea7b3146102835780630996eebe146102e957806318160ddd14610359575b600080fd5b610208610c79565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cf6004803603604081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1b565b604051808215151515815260200191505060405180910390f35b61033f600480360360608110156102ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610e46565b604051808215151515815260200191505060405180910390f35b61036161108a565b6040518082815260200191505060405180910390f35b6103e36004803603606081101561038d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611094565b604051808215151515815260200191505060405180910390f35b61043f6004803603602081101561041357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611159565b604051808215151515815260200191505060405180910390f35b6104616111c4565b604051808260ff1660ff16815260200191505060405180910390f35b6104c96004803603604081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111db565b604051808215151515815260200191505060405180910390f35b6104eb611410565b005b6105196004803603602081101561050357600080fd5b81019080803590602001909291905050506114cb565b604051808215151515815260200191505060405180910390f35b6105756004803603602081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e0565b6040518082815260200191505060405180910390f35b6105cd600480360360208110156105a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160a565b604051808215151515815260200191505060405180910390f35b6105ef611627565b604051808215151515815260200191505060405180910390f35b61064b6004803603602081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061163e565b005b6106556116a4565b005b6106996004803603602081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116af565b6040518082815260200191505060405180910390f35b6106f1600480360360208110156106c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e0565b6040518082815260200191505060405180910390f35b61075d6004803603606081101561071d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506117f7565b604051808215151515815260200191505060405180910390f35b61077f611889565b604051808215151515815260200191505060405180910390f35b6107e5600480360360408110156107af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a64565b604051808215151515815260200191505060405180910390f35b6108416004803603602081101561081557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b54565b005b61084b611b82565b005b610855611c3e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089f611c64565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108df5780820151818401526020810190506108c4565b50505050905090810190601f16801561090c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109666004803603604081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d06565b604051808215151515815260200191505060405180910390f35b6109cc6004803603604081101561099657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f3b565b604051808215151515815260200191505060405180910390f35b610a28600480360360208110156109fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffe565b604051808215151515815260200191505060405180910390f35b610a8460048036036020811015610a5857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201e565b6040518082815260200191505060405180910390f35b610ae660048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061206a565b604051808381526020018281526020019250505060405180910390f35b610b0b6120a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610baf60048036036040811015610b6357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ce565b6040518082815260200191505060405180910390f35b610c1b60048036036060811015610bdb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612155565b604051808215151515815260200191505060405180910390f35b610c7760048036036020811015610c4b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219b565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d115780601f10610ce657610100808354040283529160200191610d11565b820191906000526020600020905b815481529060010190602001808311610cf457829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610e513361160a565b80610e615750610e6033611159565b5b610e6a57600080fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec157600080fd5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f1057600080fd5b600080600090505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015610fdf57610fd0600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610faf57fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b91508080600101915050610f18565b50838111610fec57600080fd5b60008090505b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561105f5761104686826122fb565b15611052576001810390505b8080600101915050610ff2565b5061107d85611077868461262d90919063ffffffff16565b85612677565b5060019150509392505050565b6000600554905090565b600083600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ee57600080fd5b6000600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156111445761114285612805565b505b61114f8585856128e7565b9150509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111ba57600190506111bf565b600090505b919050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561121657600080fd5b6112a582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6114193361160a565b80611429575061142833611159565b5b61143257600080fd5b600960009054906101000a900460ff1661144b57600080fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006114d73383612917565b60019050919050565b600080600090506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156116015760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115ff576115f0600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106115cf57fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b91508080600101915050611538565b505b80915050919050565b6000611620826008612a6b90919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461169857600080fd5b6116a181612afd565b50565b6116ad33612afd565b565b6000806116bb83612b57565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156117d75760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156117d5576117c6600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106117a557fe5b9060005260206000209060020201600101548361227390919063ffffffff16565b9150808060010191505061170e565b505b80915050919050565b6000806117ec83612b57565b905080915050919050565b60006118023361160a565b80611812575061181133611159565b5b61181b57600080fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561187257600080fd5b61187d848484612677565b50600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118c457600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461191e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6000611a6f3361160a565b80611a7f5750611a7e33611159565b5b611a8857600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f41686e4c6f675f5468657265206973206e6f74206c6f636b20696e666f2e000081525060200191505060405180910390fd5b611b4983836122fb565b506001905092915050565b611b5d3361160a565b80611b6d5750611b6c33611159565b5b611b7657600080fd5b611b7f81612ba0565b50565b611b8b3361160a565b80611b9b5750611b9a33611159565b5b611ba457600080fd5b600960009054906101000a900460ff1615611bbe57600080fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cfc5780601f10611cd157610100808354040283529160200191611cfc565b820191906000526020600020905b815481529060010190602001808311611cdf57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d4157600080fd5b611dd082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600033600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f9557600080fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115611feb57611fe933612805565b505b611ff58484612bfa565b91505092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a602052816000526040600020818154811061208357fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006121603361160a565b80612170575061216f33611159565b5b61217957600080fd5b612184338585612c28565b61218f848484612677565b50600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121f557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561222f57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156122f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061234857fe5b90600052602060002090600202019050600081600101549050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106123ab57fe5b906000526020600020906002020160008082016000905560018201600090555050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206124616001600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061262d90919063ffffffff16565b8154811061246b57fe5b9060005260206000209060020201600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481106124c357fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181805490500391508161253d9190613266565b508473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a26125de81600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b600061266f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e30565b905092915050565b60006126cb83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b600080600090505b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156128dd5742600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106128a257fe5b906000526020600020906002020160000154116128d0576128c383826122fb565b156128cf576001810390505b5b808060010191505061280d565b5060019050919050565b6000600960009054906101000a900460ff161561290357600080fd5b61290e848484612ef0565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561295157600080fd5b6129668160055461262d90919063ffffffff16565b6005819055506129be81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612b118160086130f890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612bb48160086131a390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000600960009054906101000a900460ff1615612c1657600080fd5b612c20838361324f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c6257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c9c57600080fd5b612cee81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8381600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227390919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612edd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ea2578082015181840152602081019050612e87565b50505050905090810190601f168015612ecf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000612f8182600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061300c848484612c28565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561313257600080fd5b61313c8282612a6b565b61314557600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156131dd57600080fd5b6131e78282612a6b565b156131f157600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061325c338484612c28565b6001905092915050565b815481835581811115613293576002028160020283600052602060002091820191016132929190613298565b5b505050565b6132c491905b808211156132c05760008082016000905560018201600090555060020161329e565b5090565b9056fea265627a7a72315820d48bb7bbe40ff4f70d7c48d4102166bc8c9d01ce397eb1c26d3b10df8945722064736f6c63430005110032

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

00000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000c5072652d5265746f6765756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045052544700000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 10000000
Arg [1] : decimals (uint8): 18
Arg [2] : tokenName (string): Pre-Retogeum
Arg [3] : tokenSymbol (string): PRTG

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000989680
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [5] : 5072652d5265746f6765756d0000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5052544700000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

18818:5733:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18818:5733:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18412:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18412:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12127:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12127:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22047:762;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22047:762:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10597:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21020:251;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21020:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6852:193;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6852:193:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18728:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13658:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13658:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9503:118;;;:::i;:::-;;15785:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15785:116:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20222:363;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20222:363:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7789:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7789:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8756:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8006:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8006:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8111:77;;;:::i;:::-;;19836:378;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19836:378:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20593:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20593:169:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21816:223;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21816:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7206:181;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23055:226;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23055:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7906:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7906:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9292:116;;;:::i;:::-;;6379:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18562:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18562:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14501:333;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14501:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20770:242;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20770:242:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19027:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19027:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19703:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19703:125:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18969:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18969:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6406:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11349:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11349:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22817:230;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22817:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7053:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7053:145:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18412:83;18449:13;18482:5;18475:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18412:83;:::o;12127:244::-;12192:4;12236:1;12217:21;;:7;:21;;;;12209:30;;;;;;12284:5;12252:8;:20;12261:10;12252:20;;;;;;;;;;;;;;;:29;12273:7;12252:29;;;;;;;;;;;;;;;:37;;;;12326:7;12305:36;;12314:10;12305:36;;;12335:5;12305:36;;;;;;;;;;;;;;;;;;12359:4;12352:11;;12127:244;;;;:::o;22047:762::-;22152:4;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;22191:13;:21;22205:6;22191:21;;;;;;;;;;;;;;;;;;;;;;;;;22190:22;22182:31;;;;;;22274:1;22245:12;:20;22258:6;22245:20;;;;;;;;;;;;;;;:27;;;;:30;22237:39;;;;;;22302:19;22336:8;22347:1;22336:12;;22332:152;22356:12;:20;22369:6;22356:20;;;;;;;;;;;;;;;:27;;;;22350:3;:33;22332:152;;;22422:50;22438:12;:20;22451:6;22438:20;;;;;;;;;;;;;;;22459:3;22438:25;;;;;;;;;;;;;;;;;;:33;;;22422:11;:15;;:50;;;;:::i;:::-;22408:64;;22386:5;;;;;;;22332:152;;;;22515:5;22502:11;:18;22494:27;;;;;;22551:8;22562:1;22551:12;;22547:157;22571:12;:20;22584:6;22571:20;;;;;;;;;;;;;;;:27;;;;22565:3;:33;22547:157;;;22628:20;22636:6;22644:3;22628:7;:20::i;:::-;22624:69;;;22676:1;22670:7;;;;22624:69;22601:5;;;;;;;22547:157;;;;22729:48;22735:6;22742:22;22758:5;22742:11;:15;;:22;;;;:::i;:::-;22765:11;22729:5;:48::i;:::-;;22797:4;22790:11;;;22047:762;;;;;:::o;10597:91::-;10641:7;10668:12;;10661:19;;10597:91;:::o;21020:251::-;21115:4;21100;19363:13;:22;19377:7;19363:22;;;;;;;;;;;;;;;;;;;;;;;;;19362:23;19354:32;;;;;;21164:1;21136:12;:18;21149:4;21136:18;;;;;;;;;;;;;;;:25;;;;:29;21132:79;;;21182:17;21194:4;21182:11;:17::i;:::-;;21132:79;21228:35;21247:4;21253:2;21257:5;21228:18;:35::i;:::-;21221:42;;21020:251;;;;;;:::o;6852:193::-;6907:4;6939:5;;;;;;;;;;;6928:16;;:7;:16;;;6924:114;;;6968:4;6961:11;;;;6924:114;7021:5;7014:12;;6852:193;;;;:::o;18728:83::-;18769:5;18794:9;;;;;;;;;;;18787:16;;18728:83;:::o;13658:323::-;13738:4;13782:1;13763:21;;:7;:21;;;;13755:30;;;;;;13830:45;13864:10;13830:8;:20;13839:10;13830:20;;;;;;;;;;;;;;;:29;13851:7;13830:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;13798:8;:20;13807:10;13798:20;;;;;;;;;;;;;;;:29;13819:7;13798:29;;;;;;;;;;;;;;;:77;;;;13912:7;13891:60;;13900:10;13891:60;;;13921:8;:20;13930:10;13921:20;;;;;;;;;;;;;;;:29;13942:7;13921:29;;;;;;;;;;;;;;;;13891:60;;;;;;;;;;;;;;;;;;13969:4;13962:11;;13658:323;;;;:::o;9503:118::-;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;9172:7;;;;;;;;;;;9164:16;;;;;;9572:5;9562:7;;:15;;;;;;;;;;;;;;;;;;9593:20;9602:10;9593:20;;;;;;;;;;;;;;;;;;;;;;9503:118::o;15785:116::-;15830:4;15847:24;15853:10;15865:5;15847;:24::i;:::-;15889:4;15882:11;;15785:116;;;:::o;20222:363::-;20287:7;20309:19;20331:1;20309:23;;20375:1;20347:12;:19;20360:5;20347:19;;;;;;;;;;;;;;;:26;;;;:29;20343:204;;;20397:6;20404:1;20397:8;;20393:143;20409:12;:19;20422:5;20409:19;;;;;;;;;;;;;;;:26;;;;20407:1;:28;20393:143;;;20473:47;20489:12;:19;20502:5;20489:19;;;;;;;;;;;;;;;20509:1;20489:22;;;;;;;;;;;;;;;;;;:30;;;20473:11;:15;;:47;;;;:::i;:::-;20459:61;;20436:3;;;;;;;20393:143;;;;20343:204;20566:11;20559:18;;;20222:363;;;:::o;7789:109::-;7845:4;7869:21;7882:7;7869:8;:12;;:21;;;;:::i;:::-;7862:28;;7789:109;;;:::o;8756:78::-;8795:4;8819:7;;;;;;;;;;;8812:14;;8756:78;:::o;8006:97::-;6682:5;;;;;;;;;;;6668:19;;:10;:19;;;6660:28;;;;;;8073:22;8087:7;8073:13;:22::i;:::-;8006:97;:::o;8111:77::-;8155:25;8169:10;8155:13;:25::i;:::-;8111:77::o;19836:378::-;19891:7;19913:20;19936:22;19952:5;19936:15;:22::i;:::-;19913:45;;20001:1;19973:12;:19;19986:5;19973:19;;;;;;;;;;;;;;;:26;;;;:29;19969:206;;;20023:6;20030:1;20023:8;;20019:145;20035:12;:19;20048:5;20035:19;;;;;;;;;;;;;;;:26;;;;20033:1;:28;20019:145;;;20100:48;20117:12;:19;20130:5;20117:19;;;;;;;;;;;;;;;20137:1;20117:22;;;;;;;;;;;;;;;;;;:30;;;20100:12;:16;;:48;;;;:::i;:::-;20085:63;;20062:3;;;;;;;20019:145;;;;19969:206;20194:12;20187:19;;;19836:378;;;:::o;20593:169::-;20657:7;20679:20;20702:22;20718:5;20702:15;:22::i;:::-;20679:45;;20742:12;20735:19;;;20593:169;;;:::o;21816:223::-;21919:4;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;21945:13;:21;21959:6;21945:21;;;;;;;;;;;;;;;;;;;;;;;;;21944:22;21936:31;;;;;;21978;21984:6;21991:5;21997:11;21978:5;:31::i;:::-;;22027:4;22020:11;;21816:223;;;;;:::o;7206:181::-;7261:4;6779:1;6757:24;;:10;:24;;;;6749:33;;;;;;6815:8;;;;;;;;;;;6801:22;;:10;:22;;;6793:31;;;;;;7311:8;;;;;;;;;;;7283:37;;7304:5;;;;;;;;;;;7283:37;;;;;;;;;;;;7339:8;;;;;;;;;;;7331:5;;:16;;;;;;;;;;;;;;;;;;7377:1;7358:8;;:21;;;;;;;;;;;;;;;;;;7206:181;:::o;23055:226::-;23127:4;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;23183:3;23153:12;:20;23166:6;23153:20;;;;;;;;;;;;;;;:27;;;;:33;23144:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23232:19;23240:6;23247:3;23232:7;:19::i;:::-;;23269:4;23262:11;;23055:226;;;;:::o;7906:92::-;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;7971:19;7982:7;7971:10;:19::i;:::-;7906:92;:::o;9292:116::-;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;8993:7;;;;;;;;;;;8992:8;8984:17;;;;;;9362:4;9352:7;;:14;;;;;;;;;;;;;;;;;;9382:18;9389:10;9382:18;;;;;;;;;;;;;;;;;;;;;;9292:116::o;6379:20::-;;;;;;;;;;;;;:::o;18562:87::-;18601:13;18634:7;18627:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18562:87;:::o;14501:333::-;14586:4;14630:1;14611:21;;:7;:21;;;;14603:30;;;;;;14678:50;14712:15;14678:8;:20;14687:10;14678:20;;;;;;;;;;;;;;;:29;14699:7;14678:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;14646:8;:20;14655:10;14646:20;;;;;;;;;;;;;;;:29;14667:7;14646:29;;;;;;;;;;;;;;;:82;;;;14765:7;14744:60;;14753:10;14744:60;;;14774:8;:20;14783:10;14774:20;;;;;;;;;;;;;;;:29;14795:7;14774:29;;;;;;;;;;;;;;;;14744:60;;;;;;;;;;;;;;;;;;14822:4;14815:11;;14501:333;;;;:::o;20770:242::-;20853:4;20832:10;19363:13;:22;19377:7;19363:22;;;;;;;;;;;;;;;;;;;;;;;;;19362:23;19354:32;;;;;;20908:1;20874:12;:24;20887:10;20874:24;;;;;;;;;;;;;;;:31;;;;:35;20870:92;;;20927:23;20939:10;20927:11;:23::i;:::-;;20870:92;20979:25;20994:2;20998:5;20979:14;:25::i;:::-;20972:32;;20770:242;;;;;:::o;19027:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;19703:125::-;19767:7;19794:12;:19;19807:5;19794:19;;;;;;;;;;;;;;;:26;;;;19787:33;;19703:125;;;:::o;18969:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6406:23::-;;;;;;;;;;;;;:::o;11349:131::-;11421:7;11448:8;:15;11457:5;11448:15;;;;;;;;;;;;;;;:24;11464:7;11448:24;;;;;;;;;;;;;;;;11441:31;;11349:131;;;;:::o;22817:230::-;22922:4;7718:20;7727:10;7718:8;:20::i;:::-;:42;;;;7741:19;7749:10;7741:7;:19::i;:::-;7718:42;7710:51;;;;;;22939:36;22949:10;22961:6;22969:5;22939:9;:36::i;:::-;22986:31;22992:6;22999:5;23005:11;22986:5;:31::i;:::-;;23035:4;23028:11;;22817:230;;;;;:::o;7053:145::-;6682:5;;;;;;;;;;;6668:19;;:10;:19;;;6660:28;;;;;;7156:1;7135:23;;:9;:23;;;;7127:32;;;;;;7181:9;7170:8;;:20;;;;;;;;;;;;;;;;;;7053:145;:::o;1072:181::-;1130:7;1150:9;1166:1;1162;:5;1150:17;;1191:1;1186;:6;;1178:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:1;1237:8;;;1072:181;;;;:::o;23597:512::-;23660:4;23677:25;23705:12;:20;23718:6;23705:20;;;;;;;;;;;;;;;23726:3;23705:25;;;;;;;;;;;;;;;;;;23677:53;;23741:21;23765:8;:16;;;23741:40;;23801:12;:20;23814:6;23801:20;;;;;;;;;;;;;;;23822:3;23801:25;;;;;;;;;;;;;;;;;;;23794:32;;;;;;;;;;;;;;23865:12;:20;23878:6;23865:20;;;;;;;;;;;;;;;23886:34;23918:1;23886:12;:20;23899:6;23886:20;;;;;;;;;;;;;;;:27;;;;:31;;:34;;;;:::i;:::-;23865:56;;;;;;;;;;;;;;;;;;23837:12;:20;23850:6;23837:20;;;;;;;;;;;;;;;23858:3;23837:25;;;;;;;;;;;;;;;;;;:84;;;;;;;;;;;;;;;;;;;23962:1;23932:12;:20;23945:6;23932:20;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;:::i;:::-;;23988:6;23981:29;;;23996:13;23981:29;;;;;;;;;;;;;;;;;;24041:36;24063:13;24041:9;:17;24051:6;24041:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;24021:9;:17;24031:6;24021:17;;;;;;;;;;;;;;;:56;;;;24097:4;24090:11;;;;23597:512;;;;:::o;1528:136::-;1586:7;1613:43;1617:1;1620;1613:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1606:50;;1528:136;;;;:::o;23291:298::-;23376:4;23413:28;23435:5;23413:9;:17;23423:6;23413:17;;;;;;;;;;;;;;;;:21;;:28;;;;:::i;:::-;23393:9;:17;23403:6;23393:17;;;;;;;;;;;;;;;:48;;;;23452:12;:20;23465:6;23452:20;;;;;;;;;;;;;;;23479:28;;;;;;;;23488:11;23479:28;;;;23501:5;23479:28;;;23452:57;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;23452:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23532:6;23527:32;;;23540:5;23547:11;23527:32;;;;;;;;;;;;;;;;;;;;;;;;23577:4;23570:11;;23291:298;;;;;:::o;24117:431::-;24172:4;24193:11;24206:1;24193:14;;24189:330;24215:12;:20;24228:6;24215:20;;;;;;;;;;;;;;;:27;;;;24209:3;:33;24189:330;;;24314:3;24272:12;:20;24285:6;24272:20;;;;;;;;;;;;;;;24293:3;24272:25;;;;;;;;;;;;;;;;;;:38;;;:45;24268:240;;24420:20;24428:6;24436:3;24420:7;:20::i;:::-;24416:77;;;24472:1;24466:7;;;;24416:77;24268:240;24245:5;;;;;;;24189:330;;;;24536:4;24529:11;;24117:431;;;:::o;17885:160::-;17978:4;8993:7;;;;;;;;;;;8992:8;8984:17;;;;;;18002:35;18021:4;18027:2;18031:5;18002:18;:35::i;:::-;17995:42;;17885:160;;;;;:::o;16139:269::-;16233:1;16214:21;;:7;:21;;;;16206:30;;;;;;16264:23;16281:5;16264:12;;:16;;:23;;;;:::i;:::-;16249:12;:38;;;;16319:29;16342:5;16319:9;:18;16329:7;16319:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;16298:9;:18;16308:7;16298:18;;;;;;;;;;;;;;;:50;;;;16390:1;16364:36;;16373:7;16364:36;;;16394:5;16364:36;;;;;;;;;;;;;;;;;;16139:269;;:::o;6183:165::-;6255:4;6299:1;6280:21;;:7;:21;;;;6272:30;;;;;;6320:4;:11;;:20;6332:7;6320:20;;;;;;;;;;;;;;;;;;;;;;;;;6313:27;;6183:165;;;;:::o;8326:130::-;8386:24;8402:7;8386:8;:15;;:24;;;;:::i;:::-;8440:7;8426:22;;;;;;;;;;;;8326:130;:::o;10904:106::-;10959:7;10986:9;:16;10996:5;10986:16;;;;;;;;;;;;;;;;10979:23;;10904:106;;;:::o;8196:122::-;8253:21;8266:7;8253:8;:12;;:21;;;;:::i;:::-;8302:7;8290:20;;;;;;;;;;;;8196:122;:::o;17745:132::-;17820:4;8993:7;;;;;;;;;;;8992:8;8984:17;;;;;;17844:25;17859:2;17863:5;17844:14;:25::i;:::-;17837:32;;17745:132;;;;:::o;15369:300::-;15471:1;15457:16;;:2;:16;;;;15449:25;;;;;;15509:1;15493:18;;:4;:18;;;;15485:27;;;;;;15543:26;15563:5;15543:9;:15;15553:4;15543:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;15525:9;:15;15535:4;15525:15;;;;;;;;;;;;;;;:44;;;;15596:24;15614:5;15596:9;:13;15606:2;15596:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;15580:9;:13;15590:2;15580:13;;;;;;;;;;;;;;;:40;;;;15651:2;15636:25;;15645:4;15636:25;;;15655:5;15636:25;;;;;;;;;;;;;;;;;;15369:300;;;:::o;1959:192::-;2045:7;2078:1;2073;:6;;2081:12;2065:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2065:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2105:9;2121:1;2117;:5;2105:17;;2142:1;2135:8;;;1959:192;;;;;:::o;12844:299::-;12923:4;12969:37;13000:5;12969:8;:14;12978:4;12969:14;;;;;;;;;;;;;;;:26;12984:10;12969:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;12940:8;:14;12949:4;12940:14;;;;;;;;;;;;;;;:26;12955:10;12940:26;;;;;;;;;;;;;;;:66;;;;13017:26;13027:4;13033:2;13037:5;13017:9;:26::i;:::-;13074:10;13059:54;;13068:4;13059:54;;;13086:8;:14;13095:4;13086:14;;;;;;;;;;;;;;;:26;13101:10;13086:26;;;;;;;;;;;;;;;;13059:54;;;;;;;;;;;;;;;;;;13131:4;13124:11;;12844:299;;;;;:::o;5900:189::-;5999:1;5980:21;;:7;:21;;;;5972:30;;;;;;6021:18;6025:4;6031:7;6021:3;:18::i;:::-;6013:27;;;;;;6076:5;6053:4;:11;;:20;6065:7;6053:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5900:189;;:::o;5635:186::-;5731:1;5712:21;;:7;:21;;;;5704:30;;;;;;5754:18;5758:4;5764:7;5754:3;:18::i;:::-;5753:19;5745:28;;;;;;5809:4;5786;:11;;:20;5798:7;5786:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;5635:186;;:::o;15007:140::-;15068:4;15085:32;15095:10;15107:2;15111:5;15085:9;:32::i;:::-;15135:4;15128:11;;15007:140;;;;:::o;18818:5733::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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