ETH Price: $2,645.06 (+1.71%)
Gas: 1 Gwei

Token

PayAccept (PAY)
 

Overview

Max Total Supply

26,190,941.525221425915005705 PAY

Holders

184 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14.3264658259943805 PAY

Value
$0.00
0xdfba26c2b1d1c23a49d794837bb9dd2af275001d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

PayAccept token contract has migrated to 0x8EF47555856f6Ce2E0cd7C36AeF4FAb317d2e2E2.


 


# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PayToken

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-04-22
*/

pragma solidity 0.5.7;

/**
 * @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.
     *
     * _Available since v2.4.0._
     */
    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.
     *
     * _Available since v2.4.0._
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        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.
     *
     * _Available since v2.4.0._
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 **/

contract Ownable {
    address public owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

    /**
     * @dev Throws if called by any account other than the owner.
     **/
    modifier onlyOwner() {
        require(msg.sender == owner, "only owner can make this transaction");
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     **/
    function transferOwnership(address newOwner) public onlyOwner {
        require(
            newOwner != address(0),
            "new owner can not be a zero address"
        );
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}


/**
 * @title ERC20Basic interface
 * @dev Basic ERC20 interface
 **/
contract ERC20Basic {
    function totalSupply() public view returns (uint256);

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

    function transfer(address to, uint256 value) public returns (bool);

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


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 **/
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender)
    public
    view
    returns (uint256);

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

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

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


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 **/
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;
    mapping(address => uint256) balances;
    uint256 totalSupply_;

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

    /**
     * @dev transfer token for a specified address
     * @param _to The address to transfer to.
     * @param _value The amount to be transferred.
     **/
    function _transfer(address _to, uint256 _value) internal returns (bool) {
        require(
            _to != address(0),
            "transfer to zero address is not  allowed"
        );
        require(
            _value <= balances[msg.sender],
            "sender does not have enough balance"
        );

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(
            msg.sender,
            _to, _value
        );
        return true;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param _owner The address to query the the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     **/
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }
}


contract StandardToken is Ownable, ERC20, BasicToken {
    mapping(address => mapping(address => uint256)) internal allowed;

    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     **/
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) public returns (bool) {
        require(
            _to != address(0),
            "transfer to zero address is not  allowed"
        );
        require(
            _value <= balances[_from],
            "from address does not have enough balance"
        );
        require(
            _value <= allowed[_from][msg.sender],
            "sender does not have enough allowance"
        );

        balances[_from] = balances[_from]
        .sub(_value);

        balances[_to] = balances[_to]
        .add(_value);

        allowed[_from][msg.sender] = allowed[
        _from
        ]
        [
        msg.sender
        ].sub(_value);

        emit Transfer(
            _from,
            _to,
            _value
        );
        return true;
    }

    function transfer(
        address to,
        uint256 value
    ) public returns(bool) {
        return _transfer(to, value);
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     **/
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     **/
    function allowance(address _owner, address _spender)
    public
    view
    returns (uint256)
    {
        return allowed[
        _owner
        ]
        [
        _spender
        ];
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     **/
    function increaseApproval(address _spender, uint256 _addedValue)
    public
    returns (bool)
    {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(
            _addedValue
        );
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     **/
    function decreaseApproval(address _spender, uint256 _subtractedValue)
    public
    returns (bool)
    {
        uint256 oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
}


/**
 * @title Configuration
 * @dev Configuration variables of the contract
 **/
contract Configuration {
    uint256 public basePrice = 750; // tokens per 1 ether
    string public name = "PayAccept";
    string public symbol = "PAY";
    uint256 public decimals = 18;
    uint256 public initial_supply = 25000000 * 10**18;
    uint256 public tokens_sold = 0;
}


/**
 * @title CrowdsaleToken
 * @dev Contract to preform crowd sale with token
 **/
contract CrowdsaleToken is
StandardToken,
Configuration {
    /**
     * @dev enum of current crowd sale state
     **/
    enum Stages {none, start, end}

    Stages public currentStage;
    event BasePriceChanged(
        uint256 oldPrice,
        uint256 indexed newPrice
    );

    /**
     * @dev constructor of CrowdsaleToken
     **/
    constructor() public {
        currentStage = Stages.none;
    }

    /**
     * @dev fallback function to send ether to for Crowd sale
     **/
    function() external payable {
        require(
            currentStage == Stages.start,
            "ICO is not in start stage"
        );
        require(
            msg.value > 0,
            "transaction value is 0"
        );

        uint256 weiAmount = msg.value; // Calculate tokens to sell
        uint256 tokens = weiAmount.mul(basePrice);

        tokens_sold = tokens_sold.add(tokens); // Increment raised amount

        balances[msg.sender] = balances[msg.sender].add(tokens);
        emit Transfer(
            address(0x0),
            msg.sender,
            tokens
        );
        totalSupply_ = totalSupply_.add(tokens);
        address(
            uint160(owner)
        ).transfer(weiAmount); // Send money to owner
    }

    /**
     * @dev startICO starts the public ICO
     **/
    function startICO() public onlyOwner {
        require(
            currentStage == Stages.none,
            "ICO cannot only be started"
        );
        currentStage = Stages.start;
    }

    /**
     * @dev endIco closes down the ICO
     **/
    function endICO() internal {
        require(
            currentStage == Stages.start,
            "cannot end ICO"
        );
        currentStage = Stages.end;

        if (address(this).balance > 0) {
            address(
                uint160(owner)
            ).transfer(
                address(this).balance
            ); // Send money to owner
        }
    }

    /**
     * @dev finalizeIco closes down the ICO and sets needed varriables
     **/
    function finalizeICO() public onlyOwner {
        endICO();
    }

    /**
     * @dev change base price of token per ether
     **/
    function changeBasePrice(uint256 newBasePrice) public onlyOwner {
        require(
            newBasePrice > 0,
            "base price cannot be zero"
        );
        uint256 oldBasePrice = basePrice;
        basePrice = newBasePrice;

        emit BasePriceChanged(
            oldBasePrice,
            basePrice
        );
    }
}

/**
 * @title PayToken
 * @dev Contract to create the PayToken
 **/
contract PayToken is CrowdsaleToken {
    constructor() public {
        balances[owner] = initial_supply;
        totalSupply_ = initial_supply;
        emit Transfer(
            address(0x0),
            owner,
            initial_supply
        );
    }

    function doAirdrop(
        address[] memory recipients,
        uint256[] memory values
    ) public onlyOwner {
        require(
            recipients.length == values.length,
            "recipients and values should have same number of values"
        );
        for (uint256 i = 0; i < recipients.length; i++) {
            balances[recipients[i]] = balances[recipients[i]]
            .add(values[i]);

            balances[owner] = balances[owner]
            .sub(values[i]);

            emit Transfer(
                owner,
                recipients[i],
                values[i]
            );
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initial_supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentStage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokens_sold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"doAirdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newBasePrice","type":"uint256"}],"name":"changeBasePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":true,"name":"newPrice","type":"uint256"}],"name":"BasePriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6102ee60045560c0604052600960808190527f506179416363657074000000000000000000000000000000000000000000000060a090815262000046916005919062000133565b506040805180820190915260038082527f504159000000000000000000000000000000000000000000000000000000000060209092019182526200008d9160069162000133565b5060126007556a14adf4b7320334b90000006008556000600955348015620000b457600080fd5b50600080546001600160a01b0319163317808255600a805460ff191690556008546001600160a01b0391821683526001602090815260408085208390556002839055845481519384529051931693927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3620001d8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017657805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a657825182559160200191906001019062000189565b50620001b4929150620001b8565b5090565b620001d591905b80821115620001b45760008155600101620001bf565b90565b61172b80620001e86000396000f3fe60806040526004361061012a5760003560e01c806377231e6c116100ab578063c0116c3c1161006f578063c0116c3c14610599578063c6cfe192146106cd578063c7876ea4146106f7578063d73dd6231461070c578063dd62ed3e14610745578063f2fde38b146107805761012a565b806377231e6c146104f05780637fa8c158146105055780638da5cb5b1461051a57806395d89b411461054b578063a9059cbb146105605761012a565b80632405e3c6116100f25780632405e3c614610421578063313ce567146104365780635bf5d54c1461044b578063661884631461048457806370a08231146104bd5761012a565b806306fdde03146102c9578063095ea7b31461035357806318160ddd146103a057806323b872dd146103c757806323cc75a81461040a575b6001600a5460ff16600281111561013d57fe5b146101925760408051600160e51b62461bcd02815260206004820152601960248201527f49434f206973206e6f7420696e20737461727420737461676500000000000000604482015290519081900360640190fd5b600034116101ea5760408051600160e51b62461bcd02815260206004820152601660248201527f7472616e73616374696f6e2076616c7565206973203000000000000000000000604482015290519081900360640190fd5b600454349060009061020390839063ffffffff6107b316565b600954909150610219908263ffffffff61081816565b6009553360009081526001602052604090205461023c908263ffffffff61081816565b3360008181526001602090815260408083209490945583518581529351929391926000805160206116bb8339815191529281900390910190a3600254610288908263ffffffff61081816565b600255600080546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156102c4573d6000803e3d6000fd5b505050005b3480156102d557600080fd5b506102de610875565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b5061038c6004803603604081101561037657600080fd5b506001600160a01b038135169060200135610903565b604080519115158252519081900360200190f35b3480156103ac57600080fd5b506103b5610969565b60408051918252519081900360200190f35b3480156103d357600080fd5b5061038c600480360360608110156103ea57600080fd5b506001600160a01b0381358116916020810135909116906040013561096f565b34801561041657600080fd5b5061041f610b73565b005b34801561042d57600080fd5b506103b5610bc9565b34801561044257600080fd5b506103b5610bcf565b34801561045757600080fd5b50610460610bd5565b6040518082600281111561047057fe5b60ff16815260200191505060405180910390f35b34801561049057600080fd5b5061038c600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610bde565b3480156104c957600080fd5b506103b5600480360360208110156104e057600080fd5b50356001600160a01b0316610cce565b3480156104fc57600080fd5b506103b5610ce9565b34801561051157600080fd5b5061041f610cef565b34801561052657600080fd5b5061052f610db2565b604080516001600160a01b039092168252519081900360200190f35b34801561055757600080fd5b506102de610dc1565b34801561056c57600080fd5b5061038c6004803603604081101561058357600080fd5b506001600160a01b038135169060200135610e1c565b3480156105a557600080fd5b5061041f600480360360408110156105bc57600080fd5b8101906020810181356401000000008111156105d757600080fd5b8201836020820111156105e957600080fd5b8035906020019184602083028401116401000000008311171561060b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561065b57600080fd5b82018360208201111561066d57600080fd5b8035906020019184602083028401116401000000008311171561068f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e28945050505050565b3480156106d957600080fd5b5061041f600480360360208110156106f057600080fd5b5035611039565b34801561070357600080fd5b506103b561111f565b34801561071857600080fd5b5061038c6004803603604081101561072f57600080fd5b506001600160a01b038135169060200135611125565b34801561075157600080fd5b506103b56004803603604081101561076857600080fd5b506001600160a01b03813581169160200135166111be565b34801561078c57600080fd5b5061041f600480360360208110156107a357600080fd5b50356001600160a01b03166111e9565b6000826107c257506000610812565b828202828482816107cf57fe5b041461080f57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806116406021913960400191505060405180910390fd5b90505b92915050565b60008282018381101561080f5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b820191906000526020600020905b8154815290600101906020018083116108de57829003601f168201915b505050505081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b60006001600160a01b0383166109b957604051600160e51b62461bcd0281526004018080602001828103825260288152602001806115cc6028913960400191505060405180910390fd5b6001600160a01b038416600090815260016020526040902054821115610a1357604051600160e51b62461bcd0281526004018080602001828103825260298152602001806115f46029913960400191505060405180910390fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902054821115610a7857604051600160e51b62461bcd0281526004018080602001828103825260258152602001806116db6025913960400191505060405180910390fd5b6001600160a01b038416600090815260016020526040902054610aa1908363ffffffff6112d816565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610ad6908363ffffffff61081816565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600382528281203382529091522054610b1a908363ffffffff6112d816565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206116bb833981519152929181900390910190a35060019392505050565b6000546001600160a01b03163314610bbf57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b610bc761131a565b565b60085481565b60075481565b600a5460ff1681565b3360009081526003602090815260408083206001600160a01b038616845290915281205480831115610c33573360009081526003602090815260408083206001600160a01b0388168452909152812055610c68565b610c43818463ffffffff6112d816565b3360009081526003602090815260408083206001600160a01b03891684529091529020555b3360008181526003602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526001602052604090205490565b60095481565b6000546001600160a01b03163314610d3b57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b6000600a5460ff166002811115610d4e57fe5b14610da35760408051600160e51b62461bcd02815260206004820152601a60248201527f49434f2063616e6e6f74206f6e6c792062652073746172746564000000000000604482015290519081900360640190fd5b600a805460ff19166001179055565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b600061080f83836113d4565b6000546001600160a01b03163314610e7457604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b8051825114610eb757604051600160e51b62461bcd0281526004018080602001828103825260378152602001806116846037913960400191505060405180910390fd5b60005b825181101561103457610f21828281518110610ed257fe5b602002602001015160016000868581518110610eea57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461081890919063ffffffff16565b60016000858481518110610f3157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550610f9e828281518110610f6c57fe5b602090810291909101810151600080546001600160a01b0316815260019092526040909120549063ffffffff6112d816565b600080546001600160a01b03168152600160205260409020558251839082908110610fc557fe5b60200260200101516001600160a01b03166000809054906101000a90046001600160a01b03166001600160a01b03166000805160206116bb83398151915284848151811061100f57fe5b60200260200101516040518082815260200191505060405180910390a3600101610eba565b505050565b6000546001600160a01b0316331461108557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b600081116110dd5760408051600160e51b62461bcd02815260206004820152601960248201527f626173652070726963652063616e6e6f74206265207a65726f00000000000000604482015290519081900360640190fd5b600480549082905560408051828152905183917fa698b61af4bc9de0b1fcf8f6620fc0369760a15fd45516b70731063d6a520463919081900360200190a25050565b60045481565b3360009081526003602090815260408083206001600160a01b0386168452909152812054611159908363ffffffff61081816565b3360008181526003602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461123557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b6001600160a01b03811661127d57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806116616023913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061080f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150d565b6001600a5460ff16600281111561132d57fe5b146113825760408051600160e51b62461bcd02815260206004820152600e60248201527f63616e6e6f7420656e642049434f000000000000000000000000000000000000604482015290519081900360640190fd5b600a805460ff19166002179055303115610bc757600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156113d1573d6000803e3d6000fd5b50565b60006001600160a01b03831661141e57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806115cc6028913960400191505060405180910390fd5b3360009081526001602052604090205482111561146f57604051600160e51b62461bcd02815260040180806020018281038252602381526020018061161d6023913960400191505060405180910390fd5b3360009081526001602052604090205461148f908363ffffffff6112d816565b33600090815260016020526040808220929092556001600160a01b038516815220546114c1908363ffffffff61081816565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233926000805160206116bb8339815191529281900390910190a350600192915050565b6000818484111561159f57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561156457818101518382015260200161154c565b50505050905090810190601f1680156115915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe6f6e6c79206f776e65722063616e206d616b652074686973207472616e73616374696f6e7472616e7366657220746f207a65726f2061646472657373206973206e6f742020616c6c6f77656466726f6d206164647265737320646f6573206e6f74206861766520656e6f7567682062616c616e636573656e64657220646f6573206e6f74206861766520656e6f7567682062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776e6577206f776e65722063616e206e6f742062652061207a65726f2061646472657373726563697069656e747320616e642076616c7565732073686f756c6420686176652073616d65206e756d626572206f662076616c756573ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73656e64657220646f6573206e6f74206861766520656e6f75676820616c6c6f77616e6365a165627a7a7230582030ed18d900efcd8227e70862f3cec79309768882d72952a28196a819d2a984ae0029

Deployed Bytecode

0x60806040526004361061012a5760003560e01c806377231e6c116100ab578063c0116c3c1161006f578063c0116c3c14610599578063c6cfe192146106cd578063c7876ea4146106f7578063d73dd6231461070c578063dd62ed3e14610745578063f2fde38b146107805761012a565b806377231e6c146104f05780637fa8c158146105055780638da5cb5b1461051a57806395d89b411461054b578063a9059cbb146105605761012a565b80632405e3c6116100f25780632405e3c614610421578063313ce567146104365780635bf5d54c1461044b578063661884631461048457806370a08231146104bd5761012a565b806306fdde03146102c9578063095ea7b31461035357806318160ddd146103a057806323b872dd146103c757806323cc75a81461040a575b6001600a5460ff16600281111561013d57fe5b146101925760408051600160e51b62461bcd02815260206004820152601960248201527f49434f206973206e6f7420696e20737461727420737461676500000000000000604482015290519081900360640190fd5b600034116101ea5760408051600160e51b62461bcd02815260206004820152601660248201527f7472616e73616374696f6e2076616c7565206973203000000000000000000000604482015290519081900360640190fd5b600454349060009061020390839063ffffffff6107b316565b600954909150610219908263ffffffff61081816565b6009553360009081526001602052604090205461023c908263ffffffff61081816565b3360008181526001602090815260408083209490945583518581529351929391926000805160206116bb8339815191529281900390910190a3600254610288908263ffffffff61081816565b600255600080546040516001600160a01b039091169184156108fc02918591818181858888f193505050501580156102c4573d6000803e3d6000fd5b505050005b3480156102d557600080fd5b506102de610875565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b5061038c6004803603604081101561037657600080fd5b506001600160a01b038135169060200135610903565b604080519115158252519081900360200190f35b3480156103ac57600080fd5b506103b5610969565b60408051918252519081900360200190f35b3480156103d357600080fd5b5061038c600480360360608110156103ea57600080fd5b506001600160a01b0381358116916020810135909116906040013561096f565b34801561041657600080fd5b5061041f610b73565b005b34801561042d57600080fd5b506103b5610bc9565b34801561044257600080fd5b506103b5610bcf565b34801561045757600080fd5b50610460610bd5565b6040518082600281111561047057fe5b60ff16815260200191505060405180910390f35b34801561049057600080fd5b5061038c600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610bde565b3480156104c957600080fd5b506103b5600480360360208110156104e057600080fd5b50356001600160a01b0316610cce565b3480156104fc57600080fd5b506103b5610ce9565b34801561051157600080fd5b5061041f610cef565b34801561052657600080fd5b5061052f610db2565b604080516001600160a01b039092168252519081900360200190f35b34801561055757600080fd5b506102de610dc1565b34801561056c57600080fd5b5061038c6004803603604081101561058357600080fd5b506001600160a01b038135169060200135610e1c565b3480156105a557600080fd5b5061041f600480360360408110156105bc57600080fd5b8101906020810181356401000000008111156105d757600080fd5b8201836020820111156105e957600080fd5b8035906020019184602083028401116401000000008311171561060b57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561065b57600080fd5b82018360208201111561066d57600080fd5b8035906020019184602083028401116401000000008311171561068f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610e28945050505050565b3480156106d957600080fd5b5061041f600480360360208110156106f057600080fd5b5035611039565b34801561070357600080fd5b506103b561111f565b34801561071857600080fd5b5061038c6004803603604081101561072f57600080fd5b506001600160a01b038135169060200135611125565b34801561075157600080fd5b506103b56004803603604081101561076857600080fd5b506001600160a01b03813581169160200135166111be565b34801561078c57600080fd5b5061041f600480360360208110156107a357600080fd5b50356001600160a01b03166111e9565b6000826107c257506000610812565b828202828482816107cf57fe5b041461080f57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806116406021913960400191505060405180910390fd5b90505b92915050565b60008282018381101561080f5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b820191906000526020600020905b8154815290600101906020018083116108de57829003601f168201915b505050505081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b60006001600160a01b0383166109b957604051600160e51b62461bcd0281526004018080602001828103825260288152602001806115cc6028913960400191505060405180910390fd5b6001600160a01b038416600090815260016020526040902054821115610a1357604051600160e51b62461bcd0281526004018080602001828103825260298152602001806115f46029913960400191505060405180910390fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902054821115610a7857604051600160e51b62461bcd0281526004018080602001828103825260258152602001806116db6025913960400191505060405180910390fd5b6001600160a01b038416600090815260016020526040902054610aa1908363ffffffff6112d816565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610ad6908363ffffffff61081816565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600382528281203382529091522054610b1a908363ffffffff6112d816565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206116bb833981519152929181900390910190a35060019392505050565b6000546001600160a01b03163314610bbf57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b610bc761131a565b565b60085481565b60075481565b600a5460ff1681565b3360009081526003602090815260408083206001600160a01b038616845290915281205480831115610c33573360009081526003602090815260408083206001600160a01b0388168452909152812055610c68565b610c43818463ffffffff6112d816565b3360009081526003602090815260408083206001600160a01b03891684529091529020555b3360008181526003602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526001602052604090205490565b60095481565b6000546001600160a01b03163314610d3b57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b6000600a5460ff166002811115610d4e57fe5b14610da35760408051600160e51b62461bcd02815260206004820152601a60248201527f49434f2063616e6e6f74206f6e6c792062652073746172746564000000000000604482015290519081900360640190fd5b600a805460ff19166001179055565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b600061080f83836113d4565b6000546001600160a01b03163314610e7457604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b8051825114610eb757604051600160e51b62461bcd0281526004018080602001828103825260378152602001806116846037913960400191505060405180910390fd5b60005b825181101561103457610f21828281518110610ed257fe5b602002602001015160016000868581518110610eea57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461081890919063ffffffff16565b60016000858481518110610f3157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550610f9e828281518110610f6c57fe5b602090810291909101810151600080546001600160a01b0316815260019092526040909120549063ffffffff6112d816565b600080546001600160a01b03168152600160205260409020558251839082908110610fc557fe5b60200260200101516001600160a01b03166000809054906101000a90046001600160a01b03166001600160a01b03166000805160206116bb83398151915284848151811061100f57fe5b60200260200101516040518082815260200191505060405180910390a3600101610eba565b505050565b6000546001600160a01b0316331461108557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b600081116110dd5760408051600160e51b62461bcd02815260206004820152601960248201527f626173652070726963652063616e6e6f74206265207a65726f00000000000000604482015290519081900360640190fd5b600480549082905560408051828152905183917fa698b61af4bc9de0b1fcf8f6620fc0369760a15fd45516b70731063d6a520463919081900360200190a25050565b60045481565b3360009081526003602090815260408083206001600160a01b0386168452909152812054611159908363ffffffff61081816565b3360008181526003602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461123557604051600160e51b62461bcd0281526004018080602001828103825260248152602001806115a86024913960400191505060405180910390fd5b6001600160a01b03811661127d57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806116616023913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061080f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150d565b6001600a5460ff16600281111561132d57fe5b146113825760408051600160e51b62461bcd02815260206004820152600e60248201527f63616e6e6f7420656e642049434f000000000000000000000000000000000000604482015290519081900360640190fd5b600a805460ff19166002179055303115610bc757600080546040516001600160a01b0390911691303180156108fc02929091818181858888f193505050501580156113d1573d6000803e3d6000fd5b50565b60006001600160a01b03831661141e57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806115cc6028913960400191505060405180910390fd5b3360009081526001602052604090205482111561146f57604051600160e51b62461bcd02815260040180806020018281038252602381526020018061161d6023913960400191505060405180910390fd5b3360009081526001602052604090205461148f908363ffffffff6112d816565b33600090815260016020526040808220929092556001600160a01b038516815220546114c1908363ffffffff61081816565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233926000805160206116bb8339815191529281900390910190a350600192915050565b6000818484111561159f57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561156457818101518382015260200161154c565b50505050905090810190601f1680156115915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe6f6e6c79206f776e65722063616e206d616b652074686973207472616e73616374696f6e7472616e7366657220746f207a65726f2061646472657373206973206e6f742020616c6c6f77656466726f6d206164647265737320646f6573206e6f74206861766520656e6f7567682062616c616e636573656e64657220646f6573206e6f74206861766520656e6f7567682062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776e6577206f776e65722063616e206e6f742062652061207a65726f2061646472657373726563697069656e747320616e642076616c7565732073686f756c6420686176652073616d65206e756d626572206f662076616c756573ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73656e64657220646f6573206e6f74206861766520656e6f75676820616c6c6f77616e6365a165627a7a7230582030ed18d900efcd8227e70862f3cec79309768882d72952a28196a819d2a984ae0029

Deployed Bytecode Sourcemap

16956:921:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14870:12;14854;;;;:28;;;;;;;;;14832:103;;;;;-1:-1:-1;;;;;14832:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14980:1;14968:9;:13;14946:85;;;;;-1:-1:-1;;;;;14946:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15143:9;;15064;;15044:17;;15129:24;;15064:9;;15129:24;:13;:24;:::i;:::-;15180:11;;15112:41;;-1:-1:-1;15180:23:0;;15112:41;15180:23;:15;:23;:::i;:::-;15166:11;:37;15275:10;15266:20;;;;:8;:20;;;;;;:32;;15291:6;15266:32;:24;:32;:::i;:::-;15252:10;15243:20;;;;:8;:20;;;;;;;;:55;;;;15314:92;;;;;;;15252:10;;15243:20;;-1:-1:-1;;;;;;;;;;;15314:92:0;;;;;;;;;15432:12;;:24;;15449:6;15432:24;:16;:24;:::i;:::-;15417:12;:39;15497:5;;;15467:67;;-1:-1:-1;;;;;15497:5:0;;;;15467:67;;;;;15524:9;;15467:67;15497:5;15467:67;15524:9;15497:5;15467:67;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15467:67:0;14793:772;;16956:921;13981:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13981:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13981:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11334:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11334:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11334:206:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8056:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8056:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;9642:889;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9642:889:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9642:889:0;;;;;;;;;;;;;;;;;:::i;16385:67::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16385:67:0;;;:::i;:::-;;14090:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14090:49:0;;;:::i;14055:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14055:28:0;;;:::i;14442:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14442:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13327:471;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13327:471:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13327:471:0;;;;;;;;:::i;9103:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9103:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9103:107:0;-1:-1:-1;;;;;9103:107:0;;:::i;14146:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14146:30:0;;;:::i;15636:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15636:197:0;;;:::i;5781:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5781:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;5781:20:0;;;;;;;;;;;;;;14020:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14020:28:0;;;:::i;10539:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10539:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10539:137:0;;;;;;;;:::i;17230:644::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17230:644:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17230:644:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;17230:644:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17230:644:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17230:644:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17230:644:0;;;;;;;;-1:-1:-1;17230:644:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;17230:644:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17230:644:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;17230:644:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17230:644:0;;-1:-1:-1;17230:644:0;;-1:-1:-1;;;;;17230:644:0:i;16529:348::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16529:348:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16529:348:0;;:::i;13922:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13922:30:0;;;:::i;12543:322::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12543:322:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12543:322:0;;;;;;;;:::i;11882:204::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11882:204:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11882:204:0;;;;;;;;;;:::i;6496:268::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6496:268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6496:268:0;-1:-1:-1;;;;;6496:268:0;;:::i;2264:471::-;2322:7;2567:6;2563:47;;-1:-1:-1;2597:1:0;2590:8;;2563:47;2634:5;;;2638:1;2634;:5;:1;2658:5;;;;;:10;2650:56;;;;-1:-1:-1;;;;;2650:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:1;-1:-1:-1;2264:471:0;;;;;:::o;858:181::-;916:7;948:5;;;972:6;;;;964:46;;;;;-1:-1:-1;;;;;964:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13981:32;;;;;;;;;;;;;;;-1:-1:-1;;13981:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11334:206::-;11426:10;11401:4;11418:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11418:29:0;;;;;;;;;;;:38;;;11472;;;;;;;11401:4;;11418:29;;11426:10;;11472:38;;;;;;;;-1:-1:-1;11528:4:0;11334:206;;;;:::o;8056:91::-;8127:12;;8056:91;:::o;9642:889::-;9758:4;-1:-1:-1;;;;;9797:17:0;;9775:107;;;;-1:-1:-1;;;;;9775:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9925:15:0;;;;;;:8;:15;;;;;;9915:25;;;9893:116;;;;-1:-1:-1;;;;;9893:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10052:14:0;;;;;;:7;:14;;;;;;;;10067:10;10052:26;;;;;;;;10042:36;;;10020:123;;;;-1:-1:-1;;;;;10020:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10174:15:0;;;;;;:8;:15;;;;;;:37;;10204:6;10174:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;10156:15:0;;;;;;;:8;:15;;;;;;:55;;;;10240:13;;;;;;;:35;;10268:6;10240:35;:27;:35;:::i;:::-;-1:-1:-1;;;;;10224:13:0;;;;;;;:8;:13;;;;;;;;:51;;;;10317:34;;;;;:7;:34;;;;;10372:10;10317:76;;;;;;;:88;;10398:6;10317:88;:80;:88;:::i;:::-;-1:-1:-1;;;;;10288:14:0;;;;;;;:7;:14;;;;;;;;10303:10;10288:26;;;;;;;;:117;;;;10423:78;;;;;;;;;;;10288:14;;-1:-1:-1;;;;;;;;;;;10423:78:0;;;;;;;;;;-1:-1:-1;10519:4:0;9642:889;;;;;:::o;16385:67::-;6252:5;;-1:-1:-1;;;;;6252:5:0;6238:10;:19;6230:68;;;;-1:-1:-1;;;;;6230:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16436:8;:6;:8::i;:::-;16385:67::o;14090:49::-;;;;:::o;14055:28::-;;;;:::o;14442:26::-;;;;;;:::o;13327:471::-;13472:10;13423:4;13464:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13464:29:0;;;;;;;;;;13508:27;;;13504:188;;;13560:10;13584:1;13552:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13552:29:0;;;;;;;;;:33;13504:188;;;13650:30;:8;13663:16;13650:30;:12;:30;:::i;:::-;13626:10;13618:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13618:29:0;;;;;;;;;:62;13504:188;13716:10;13738:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13707:61:0;;13738:29;;;;;;;;;;;13707:61;;;;;;;;;13716:10;13707:61;;;;;;;;;;;-1:-1:-1;13786:4:0;;13327:471;-1:-1:-1;;;13327:471:0:o;9103:107::-;-1:-1:-1;;;;;9186:16:0;9159:7;9186:16;;;:8;:16;;;;;;;9103:107::o;14146:30::-;;;;:::o;15636:197::-;6252:5;;-1:-1:-1;;;;;6252:5:0;6238:10;:19;6230:68;;;;-1:-1:-1;;;;;6230:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15722:11;15706:12;;;;:27;;;;;;;;;15684:103;;;;;-1:-1:-1;;;;;15684:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15798:12;:27;;-1:-1:-1;;15798:27:0;15813:12;15798:27;;;15636:197::o;5781:20::-;;;-1:-1:-1;;;;;5781:20:0;;:::o;14020:28::-;;;;;;;;;;;;;;;-1:-1:-1;;14020:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10539:137;10624:4;10648:20;10658:2;10662:5;10648:9;:20::i;17230:644::-;6252:5;;-1:-1:-1;;;;;6252:5:0;6238:10;:19;6230:68;;;;-1:-1:-1;;;;;6230:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17399:6;:13;17378:10;:17;:34;17356:139;;;;-1:-1:-1;;;;;17356:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17511:9;17506:361;17530:10;:17;17526:1;:21;17506:361;;;17595:52;17637:6;17644:1;17637:9;;;;;;;;;;;;;;17595:8;:23;17604:10;17615:1;17604:13;;;;;;;;;;;;;;-1:-1:-1;;;;;17595:23:0;-1:-1:-1;;;;;17595:23:0;;;;;;;;;;;;;:41;;:52;;;;:::i;:::-;17569:8;:23;17578:10;17589:1;17578:13;;;;;;;;;;;;;;-1:-1:-1;;;;;17569:23:0;-1:-1:-1;;;;;17569:23:0;;;;;;;;;;;;:78;;;;17682:44;17716:6;17723:1;17716:9;;;;;;;;;;;;;;;;;;;17682:15;17691:5;;-1:-1:-1;;;;;17691:5:0;17682:15;;:8;:15;;;;;;;;;:44;:33;:44;:::i;:::-;17664:15;17673:5;;-1:-1:-1;;;;;17673:5:0;17664:15;;:8;:15;;;;;:62;17799:13;;:10;;17810:1;;17799:13;;;;;;;;;;;;-1:-1:-1;;;;;17748:107:0;17775:5;;;;;;;;;-1:-1:-1;;;;;17775:5:0;-1:-1:-1;;;;;17748:107:0;-1:-1:-1;;;;;;;;;;;17831:6:0;17838:1;17831:9;;;;;;;;;;;;;;17748:107;;;;;;;;;;;;;;;;;;17549:3;;17506:361;;;;17230:644;;:::o;16529:348::-;6252:5;;-1:-1:-1;;;;;6252:5:0;6238:10;:19;6230:68;;;;-1:-1:-1;;;;;6230:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16641:1;16626:12;:16;16604:91;;;;;-1:-1:-1;;;;;16604:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16729:9;;;16749:24;;;;16791:78;;;;;;;;16761:12;;16791:78;;;;;;;;;;6309:1;16529:348;:::o;13922:30::-;;;;:::o;12543:322::-;12696:10;12634:4;12688:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12688:29:0;;;;;;;;;;:70;;12736:11;12688:70;:33;:70;:::i;:::-;12664:10;12656:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12656:29:0;;;;;;;;;;;;:102;;;12774:61;;;;;;12656:29;;12774:61;;;;;;;;;;;-1:-1:-1;12853:4:0;12543:322;;;;:::o;11882:204::-;-1:-1:-1;;;;;12003:35:0;;;11971:7;12003:35;;;:7;:35;;;;;;;;:75;;;;;;;;;;;;;11882:204::o;6496:268::-;6252:5;;-1:-1:-1;;;;;6252:5:0;6238:10;:19;6230:68;;;;-1:-1:-1;;;;;6230:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6591:22:0;;6569:107;;;;-1:-1:-1;;;;;6569:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6713:5;;;6692:37;;-1:-1:-1;;;;;6692:37:0;;;;6713:5;;;6692:37;;;6740:5;:16;;-1:-1:-1;;;;;;6740:16:0;-1:-1:-1;;;;;6740:16:0;;;;;;;;;;6496:268::o;1314:136::-;1372:7;1399:43;1403:1;1406;1399:43;;;;;;;;;;;;;;;;;:3;:43::i;15900:386::-;15976:12;15960;;;;:28;;;;;;;;;15938:92;;;;;-1:-1:-1;;;;;15938:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16041:12;:25;;-1:-1:-1;;16041:25:0;16056:10;16041:25;;;16091:4;16083:21;:25;16079:200;;16159:5;;;16125:119;;-1:-1:-1;;;;;16159:5:0;;;;16216:4;16208:21;16125:119;;;;;16208:21;;16125:119;16159:5;16125:119;16208:21;16159:5;16125:119;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16125:119:0;15900:386::o;8325:552::-;8391:4;-1:-1:-1;;;;;8430:17:0;;8408:107;;;;-1:-1:-1;;;;;8408:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8567:10;8558:20;;;;:8;:20;;;;;;8548:30;;;8526:115;;;;-1:-1:-1;;;;;8526:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8686:10;8677:20;;;;:8;:20;;;;;;:32;;8702:6;8677:32;:24;:32;:::i;:::-;8663:10;8654:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;8736:13:0;;;;;;:25;;8754:6;8736:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;8720:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;8777:70;;;;;;;8720:13;;8800:10;;-1:-1:-1;;;;;;;;;;;8777:70:0;;;;;;;;;-1:-1:-1;8865:4:0;8325:552;;;;:::o;1787:226::-;1907:7;1943:12;1935:6;;;;1927:29;;;;-1:-1:-1;;;;;1927:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1927:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1979:5:0;;;1787:226::o

Swarm Source

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