ETH Price: $2,682.59 (-0.71%)

Token

SuperPoints Token (SPT)
 

Overview

Max Total Supply

100,000,000,000 SPT

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
16,010.78209432 SPT

Value
$0.00
0x37008e1c144f09ee3d6787E925c889fbcf75E4B9
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SuperPointsToken

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

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

pragma solidity >=0.4.25 <0.6.0;

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 contract owner can call this method");
    _;
  }


  /**
   * @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), "Owner can't be set to zero address");
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint a, uint b) internal pure returns (uint) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint a, uint b) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint a, uint b) internal pure returns (uint) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

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

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0), "Address to can't be zero address");
    require(_value <= balances[msg.sender], "Balance less than transfer value");

    // SafeMath.sub will throw if there is not 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 balance) {
    return balances[_owner];
  }

}

/* 合约暂停功能 */
contract Pausable is Ownable {
  event PausePublic(bool newState);
  event PauseOwnerAdmin(bool newState);

  bool public pausedPublic = false;
  bool public pausedOwnerAdmin = false;

  address public admin;

  /**
   * @dev Modifier to make a function callable based on pause states.
   */
  modifier whenNotPaused() {
    if(pausedPublic) {
      if(!pausedOwnerAdmin) {
        require(msg.sender == admin || msg.sender == owner, "Only admin or owner can call with pausedPublic");
      } else {
        revert("all paused");
      }
    }
    _;
  }

  /**
   * @dev called by the owner to set new pause flags
   * pausedPublic can't be false while pausedOwnerAdmin is true
   * 当管理员被暂停 普通用户一定是被暂停的
   */
  function pause(bool newPausedPublic, bool newPausedOwnerAdmin) public onlyOwner {
    require(!(newPausedPublic == false && newPausedOwnerAdmin == true), "PausedPublic can't be false while pausedOwnerAdmin is true");

    pausedPublic = newPausedPublic;
    pausedOwnerAdmin = newPausedOwnerAdmin;

    emit PausePublic(newPausedPublic);
    emit PauseOwnerAdmin(newPausedOwnerAdmin);
  }
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract StandardToken is ERC20, BasicToken {

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0), "Address to can't be zero address");
    require(_value <= balances[_from], "Balance less than transfer value");
    require(_value <= allowed[_from][msg.sender], "Allowed balance less than transfer value");

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

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

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

  /**
   * 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
   */
  function increaseApproval(address _spender, uint _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;
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

contract PausableToken is StandardToken, Pausable {

  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

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

  function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}

contract PollToken is PausableToken {
    uint8  private constant _decimals = 8;
    uint constant fourYears = 4 * 365 days;

    struct Poll {
        // 初始每分钟产量
        uint amountPerMinute;
        // 上一次领取时间
        uint lastMineTime;
        // 当前衰减阶段 初始为 0
        uint currentDecayPeriod;
        // 已挖出总量
        uint totalMine;
        // 矿池账户
        address account;
        // 开始释放时间
        uint startTime;
        // 已经挖出剩余可提量
        uint leftMine;
    }

    Poll private businessPoll = Poll({
        amountPerMinute: 23852740 * (10 ** uint(_decimals)) / (24 * 60),
        lastMineTime: 0,
        currentDecayPeriod: 0,
        totalMine: 0,
        account: address(0),
        startTime: 0,
        leftMine: 0
    });

    Poll private communityPoll = Poll({
        amountPerMinute: 6815068 * (10 ** uint(_decimals)) / (24 * 60),
        lastMineTime: 0,
        currentDecayPeriod: 0,
        totalMine: 0,
        account: address(0),
        startTime: 0,
        leftMine: 0
    });

    Poll private techPoll = Poll({
        amountPerMinute: 3407534 * (10 ** uint(_decimals)) / (24 * 60),
        lastMineTime: 0,
        currentDecayPeriod: 0,
        totalMine: 0,
        account: address(0),
        startTime: 0,
        leftMine: 0
    });

    /* 设置矿池账户接口 */
    function _setPollAccount(address account, Poll storage poll) private {
        require(account != address(0), "Poll account can't be zero address");
        poll.account = account;
    }
    function setBusinessAccount(address account) public onlyOwner {
        _setPollAccount(account, businessPoll);
    }
    function setCommunityAccount(address account) public onlyOwner {
        _setPollAccount(account, communityPoll);
    }
    function setTechAccount(address account) public onlyOwner {
        _setPollAccount(account, techPoll);
    }
    function setAllAccount(address businessAcc, address communityAcc, address techAcc) public onlyOwner {
        _setPollAccount(businessAcc, businessPoll);
        _setPollAccount(communityAcc, communityPoll);
        _setPollAccount(techAcc, techPoll);
    }

    /* 激活矿池接口 */
    function _activePoll(Poll storage poll) private {
        require(poll.startTime == 0, "Poll has actived");
        poll.startTime = now;
    }
    function activeBusinessPoll() public onlyOwner {
        _activePoll(businessPoll);
    }
    function activeCommunityPoll() public onlyOwner {
        _activePoll(communityPoll);
    }
    function activeTechPoll() public onlyOwner {
        _activePoll(techPoll);
    }

    /* 获取可提额度接口 */
    function _getAvailablePoll(Poll memory poll) private view returns (uint, uint, uint) {
        if (poll.startTime == 0) {
            return (0, 0, 0);
        }
        uint duration = 0;
        uint amount = 0;
        uint curTime = now;
        // 当前处于第几个衰减阶段
        uint currentDecayPeriod = (curTime - poll.startTime) / fourYears;
        // 上一次处于第几个衰减阶段
        uint lastDecayPeriod = 0;
        if (poll.lastMineTime > 0) {
            duration = curTime - poll.lastMineTime;
            lastDecayPeriod = (poll.lastMineTime - poll.startTime) / fourYears;
        } else {
            duration = curTime - poll.startTime;
        }

        if (currentDecayPeriod == lastDecayPeriod) {
            // 没有跨阶段
            amount = poll.amountPerMinute * duration / (60 * 2 ** currentDecayPeriod);
        }
        else {
            /**
            * 跨阶段 先计算两头的量
            * 再计算中间整阶段的量
            * 考虑了包括在端点的极端情况
            * |____|____|____|____|
            *   ^    ^    ^    ^
            *   0    1    2   3
            */
            uint right_duration = (curTime - poll.startTime) % fourYears;

            if (poll.lastMineTime > 0 && ((poll.lastMineTime - poll.startTime) % fourYears != 0)) {
                uint left_duration = fourYears - (poll.lastMineTime - poll.startTime) % fourYears;
                amount = amount + poll.amountPerMinute * left_duration / (60 * 2 ** lastDecayPeriod);
            }
            amount = amount + poll.amountPerMinute * right_duration / (60 * 2 ** currentDecayPeriod);

            // 首次跨阶段提币
            if (poll.lastMineTime == 0) {
                for (uint i = lastDecayPeriod; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
            // 上一次提币在端点的情况
            else if (poll.lastMineTime > 0 && ((poll.lastMineTime - poll.startTime) % fourYears == 0)) {
                for (uint i = lastDecayPeriod; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
            else {
                for (uint i = lastDecayPeriod + 1; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
        }
        uint availableAmount = amount + poll.leftMine;
        uint totalMine = amount + poll.totalMine;
        return (currentDecayPeriod, totalMine, availableAmount);
    }
    function getAvailableBPoll() public view returns (uint, uint, uint) {
        return _getAvailablePoll(businessPoll);
    }
    function getAvailableCpoll() public view returns (uint, uint, uint) {
        return _getAvailablePoll(communityPoll);
    }
    function getAvailableTpoll() public view returns (uint, uint, uint) {
        return _getAvailablePoll(techPoll);
    }

    /* 获取矿池信息接口 */
    function _getPollInfo(Poll memory poll) private view
    returns (uint,uint, uint, uint, address, uint, uint) {
        uint currentDecayPeriod;
        uint totalMine;
        uint leftMine;
        (currentDecayPeriod, totalMine, leftMine) = _getAvailablePoll(poll);
        return (poll.amountPerMinute, poll.lastMineTime, currentDecayPeriod, totalMine, poll.account, poll.startTime, leftMine);
    }
    function getBPollInfo() public view
    returns (uint,uint, uint, uint, address, uint, uint) {
        return _getPollInfo(businessPoll);
    }
    function getTPollInfo() public view
    returns (uint,uint, uint, uint, address, uint, uint) {
        return _getPollInfo(techPoll);
    }
    function getCPollInfo() public view
    returns (uint,uint, uint, uint, address, uint, uint) {
        return _getPollInfo(communityPoll);
    }

    /* 获取代币流通总量接口 */
    function getLiquidity() public view returns (uint) {
        return 500000000 * 10 ** uint(_decimals) + businessPoll.totalMine + communityPoll.totalMine + techPoll.totalMine;
    }


    /* 提取矿代币池接口 */
    function _minePoll(Poll storage poll, uint value) private {
        require(value > 0, "Take value must more than zero");
        require(poll.startTime > 0, "Poll not start");
        require(poll.account != address(0), "businessAccount can't be zero address");

        uint duration = 0;
        uint amount = 0;
        uint curTime = now;
        uint _value = value * 10 ** uint(_decimals);
        // 当前处于第几个衰减阶段
        uint currentDecayPeriod = (curTime - poll.startTime) / fourYears;
        // 上一次处于第几个衰减阶段
        uint lastDecayPeriod = 0;
        if (poll.lastMineTime > 0) {
            duration = curTime - poll.lastMineTime;
            lastDecayPeriod = (poll.lastMineTime - poll.startTime) / fourYears;
        } else {
            duration = curTime - poll.startTime;
        }

        if (currentDecayPeriod == lastDecayPeriod) {
            // 没有跨阶段
            amount = poll.amountPerMinute * duration / (60 * 2 ** currentDecayPeriod);
        }
        else {
            uint right_duration = (curTime - poll.startTime) % fourYears;

            if (poll.lastMineTime > 0 && ((poll.lastMineTime - poll.startTime) % fourYears != 0)) {
                uint left_duration = fourYears - (poll.lastMineTime - poll.startTime) % fourYears;
                amount = amount + poll.amountPerMinute * left_duration / (60 * 2 ** lastDecayPeriod);
            }

            amount = amount + poll.amountPerMinute * right_duration / (60 * 2 ** currentDecayPeriod);

            // 首次跨阶段提币
            if (poll.lastMineTime == 0) {
                for (uint i = lastDecayPeriod; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
            // 上一次提币在端点的情况
            else if (poll.lastMineTime > 0 && ((poll.lastMineTime - poll.startTime) % fourYears == 0)) {
                for (uint i = lastDecayPeriod; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
            else {
                for (uint i = lastDecayPeriod + 1; i < currentDecayPeriod; i++) {
                    amount = amount + poll.amountPerMinute * fourYears / (60 * 2 ** i);
                }
            }
        }
        require(_value <= (poll.leftMine + amount), "Take value too large");
        uint left = poll.leftMine + amount - _value;
        poll.leftMine = left;
        balances[poll.account] = balances[poll.account] + _value;
        poll.totalMine = poll.totalMine + amount;
        poll.lastMineTime = curTime;
        poll.currentDecayPeriod = currentDecayPeriod;
        emit Transfer(address(0x0), poll.account, _value);
    }
    function mineBusinessPoll(uint value) public onlyOwner {
        _minePoll(businessPoll, value);
    }
    function mineCommunityPoll(uint value) public onlyOwner {
        _minePoll(communityPoll, value);
    }
    function mineTechPoll(uint value) public onlyOwner {
        _minePoll(techPoll, value);
    }
}

contract SuperPointsToken is PollToken {
    string  public  constant name = "SuperPoints Token";
    string  public  constant symbol = "SPT";
    uint8   public  constant decimals = 8;
    uint    public  constant initLiquidity = 500000000 * 10 ** uint(decimals);
    bool    private  changed;

    modifier validDestination( address to )
    {
        require(to != address(0x0), "Address to can't be zero address");
        require(to != address(this), "Address to can't be contract address");
        _;
    }

    constructor() public {
        // assign the admin account
        admin = msg.sender;
        changed = false;

        totalSupply = 100000000000 * 10**uint256(decimals);
        balances[msg.sender] = initLiquidity;
        emit Transfer(address(0x0), msg.sender, initLiquidity);
    }

    function transfer(address _to, uint _value) public validDestination(_to) returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint _value) public validDestination(_to) returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    event Burn(address indexed _burner, uint _value);

    /* 销毁代币 */
    function burn(uint _value) public returns (bool) {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0x0), _value);
        return true;
    }

    // save some gas by making only one contract call
    function burnFrom(address _from, uint256 _value) public returns (bool) {
        assert(transferFrom(_from, msg.sender, _value));
        return burn(_value);
    }

    function emergencyERC20Drain( ERC20 token, uint amount ) public onlyOwner {
        // owner can drain tokens that are sent here by mistake
        token.transfer(owner, amount);
    }

    event AdminTransferred(address indexed previousAdmin, address indexed newAdmin);

    function changeAdmin(address newAdmin) public onlyOwner {
        // owner can re-assign the admin
        emit AdminTransferred(admin, newAdmin);
        admin = newAdmin;
    }

    function changeAll(address newOwner) public onlyOwner{
        if (!changed){
            // transfer(newOwner,totalSupply);
            // transfer(newOwner, balanceOf(msg.sender))
            changeAdmin(newOwner);
            transferOwnership(newOwner);
            changed = true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLiquidity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activeCommunityPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBPollInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pausedPublic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTPollInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"mineBusinessPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"setBusinessAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pausedOwnerAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"businessAcc","type":"address"},{"name":"communityAcc","type":"address"},{"name":"techAcc","type":"address"}],"name":"setAllAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"mineCommunityPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCPollInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"activeBusinessPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"mineTechPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"initLiquidity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"setCommunityAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"setTechAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"emergencyERC20Drain","outputs":[],"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":"newPausedPublic","type":"bool"},{"name":"newPausedOwnerAdmin","type":"bool"}],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activeTechPoll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAvailableCpoll","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAvailableBPoll","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"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"},{"constant":true,"inputs":[],"name":"getAvailableTpoll","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousAdmin","type":"address"},{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newState","type":"bool"}],"name":"PausePublic","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newState","type":"bool"}],"name":"PauseOwnerAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

6003805461ffff60a01b19169055650181ab88cb116080819052600060a081905260c081905260e0819052610100819052610120819052610140819052600591909155600681905560078190556008819055600980546001600160a01b0319908116909155600a829055600b829055646e3101e8276101608190526101808390526101a08390526101c08390526101e0839052610200839052610220839052600c55600d829055600e829055600f82905560108054821690556011829055601282905561032060405264371880f4136102408190526102608390526102808390526102a08390526102c08390526102e0839052610300839052601355601482905560158290556016829055601780549091169055601881905560195534801561012757600080fd5b5060038054336001600160a01b031991821681179092556004805490911682179055601a805460ff19169055678ac7230489e80000600090815581815260016020908152604080832066b1a2bc2ec5000090819055815190815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36125e1806101bd6000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80637bad91481161013b578063d73dd623116100b8578063e613b0591161007c578063e613b059146106f8578063e98e4e021461071e578063f2fde38b14610726578063f6f5bd051461074c578063f851a4401461075457610248565b8063d73dd62314610643578063db0e16f11461066f578063dd62ed3e1461069b578063ddeb5094146106c9578063e554b66f146106f057610248565b806395d89b41116100ff57806395d89b41146105bb578063a9059cbb146105c3578063a965a51b146105ef578063bb449782146105f7578063cf8e85051461061d57610248565b80637bad9148146105445780637e1b44311461054c5780638930a205146105545780638da5cb5b146105715780638f2839701461059557610248565b8063322c5d17116101c9578063661884631161018d578063661884631461047157806370a082311461049d578063759e7120146104c357806379553129146104fb57806379cc67901461051857610248565b8063322c5d17146104015780633d9acab31461040957806342966c68146104265780635d70e1201461044357806364779ad71461046957610248565b8063133c658811610210578063133c65881461035457806318160ddd1461039d57806323b872dd146103a557806324bb7c26146103db578063313ce567146103e357610248565b806306fdde031461024d5780630910a510146102ca578063095ea7b3146102e45780630ba7ebe2146103245780630efd46651461034c575b600080fd5b61025561075c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028f578181015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d2610789565b60408051918252519081900360200190f35b610310600480360360408110156102fa57600080fd5b506001600160a01b0381351690602001356107a0565b604080519115158252519081900360200190f35b61034a6004803603602081101561033a57600080fd5b50356001600160a01b0316610874565b005b61034a6108ea565b61035c61093f565b6040805197885260208801969096528686019490945260608601929092526001600160a01b0316608085015260a084015260c0830152519081900360e00190f35b6102d26109b7565b610310600480360360608110156103bb57600080fd5b506001600160a01b038135811691602081013590911690604001356109bd565b610310610a65565b6103eb610a75565b6040805160ff9092168252519081900360200190f35b61035c610a7a565b61034a6004803603602081101561041f57600080fd5b5035610adc565b6103106004803603602081101561043c57600080fd5b5035610b30565b61034a6004803603602081101561045957600080fd5b50356001600160a01b0316610bdb565b610310610c2f565b6103106004803603604081101561048757600080fd5b506001600160a01b038135169060200135610c3f565b6102d2600480360360208110156104b357600080fd5b50356001600160a01b0316610ccd565b61034a600480360360608110156104d957600080fd5b506001600160a01b038135811691602081013582169160409091013516610ce8565b61034a6004803603602081101561051157600080fd5b5035610d57565b6103106004803603604081101561052e57600080fd5b506001600160a01b038135169060200135610dab565b61035c610dc7565b61034a610e29565b61034a6004803603602081101561056a57600080fd5b5035610e7c565b610579610ed0565b604080516001600160a01b039092168252519081900360200190f35b61034a600480360360208110156105ab57600080fd5b50356001600160a01b0316610edf565b610255610f84565b610310600480360360408110156105d957600080fd5b506001600160a01b038135169060200135610fa3565b6102d2611049565b61034a6004803603602081101561060d57600080fd5b50356001600160a01b0316611054565b61034a6004803603602081101561063357600080fd5b50356001600160a01b03166110a8565b6103106004803603604081101561065957600080fd5b506001600160a01b0381351690602001356110fc565b61034a6004803603604081101561068557600080fd5b506001600160a01b03813516906020013561118a565b6102d2600480360360408110156106b157600080fd5b506001600160a01b0381358116916020013516611259565b61034a600480360360408110156106df57600080fd5b508035151590602001351515611284565b61034a6113b3565b610700611406565b60408051938452602084019290925282820152519081900360600190f35b61070061146b565b61034a6004803603602081101561073c57600080fd5b50356001600160a01b03166114c5565b6107006115af565b610579611609565b6040518060400160405280601181526020017029bab832b92837b4b73a39902a37b5b2b760791b81525081565b601654600f54600854010166b1a2bc2ec500000190565b600354600090600160a01b900460ff161561086357600354600160a81b900460ff16610829576004546001600160a01b03163314806107e957506003546001600160a01b031633145b6108245760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b610863565b6040805162461bcd60e51b815260206004820152600a602482015269185b1b081c185d5cd95960b21b604482015290519081900360640190fd5b61086d8383611618565b9392505050565b6003546001600160a01b031633146108bd5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b601a5460ff166108e7576108d081610edf565b6108d9816114c5565b601a805460ff191660011790555b50565b6003546001600160a01b031633146109335760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d600c61167e565b565b6040805160e081018252600554815260065460208201526007549181019190915260085460608201526009546001600160a01b03166080820152600a5460a0820152600b5460c08201526000908190819081908190819081906109a1906116d1565b959d949c50929a50909850965094509092509050565b60005481565b6000826001600160a01b038116610a09576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b038116301415610a515760405162461bcd60e51b81526004018080602001828103825260248152602001806124626024913960400191505060405180910390fd5b610a5c858585611728565b95945050505050565b600354600160a01b900460ff1681565b600881565b6040805160e081018252601354815260145460208201526015549181019190915260165460608201526017546001600160a01b0316608082015260185460a082015260195460c08201526000908190819081908190819081906109a1906116d1565b6003546001600160a01b03163314610b255760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e76005826117b7565b33600090815260016020526040812054610b50908363ffffffff611b6416565b3360009081526001602052604081209190915554610b74908363ffffffff611b6416565b60005560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051838152905160009133916000805160206125018339815191529181900360200190a3506001919050565b6003546001600160a01b03163314610c245760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7816005611bc1565b600354600160a81b900460ff1681565b600354600090600160a01b900460ff1615610cc357600354600160a81b900460ff16610829576004546001600160a01b0316331480610c8857506003546001600160a01b031633145b610cc35760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383611c29565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b03163314610d315760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b610d3c836005611bc1565b610d4782600c611bc1565b610d52816013611bc1565b505050565b6003546001600160a01b03163314610da05760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7600c826117b7565b6000610db88333846109bd565b610dbe57fe5b61086d82610b30565b6040805160e081018252600c548152600d546020820152600e5491810191909152600f5460608201526010546001600160a01b0316608082015260115460a082015260125460c08201526000908190819081908190819081906109a1906116d1565b6003546001600160a01b03163314610e725760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d600561167e565b6003546001600160a01b03163314610ec55760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e76013826117b7565b6003546001600160a01b031681565b6003546001600160a01b03163314610f285760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec690600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600381526020016214d41560ea1b81525081565b6000826001600160a01b038116610fef576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b0381163014156110375760405162461bcd60e51b81526004018080602001828103825260248152602001806124626024913960400191505060405180910390fd5b6110418484611d19565b949350505050565b66b1a2bc2ec5000081565b6003546001600160a01b0316331461109d5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e781600c611bc1565b6003546001600160a01b031633146110f15760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7816013611bc1565b600354600090600160a01b900460ff161561118057600354600160a81b900460ff16610829576004546001600160a01b031633148061114557506003546001600160a01b031633145b6111805760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383611da7565b6003546001600160a01b031633146111d35760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6003546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519184169163a9059cbb916044808201926020929091908290030181600087803b15801561122957600080fd5b505af115801561123d573d6000803e3d6000fd5b505050506040513d602081101561125357600080fd5b50505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6003546001600160a01b031633146112cd5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b811580156112dd57506001811515145b156113195760405162461bcd60e51b815260040180806020018281038252603a815260200180612428603a913960400191505060405180910390fd5b60038054821515600160a81b0260ff60a81b19851515600160a01b810260ff60a01b1990941693909317161790915560408051918252517fa14d191ca4f53bfcf003c65d429362010a2d3d68bc0c50cce4bdc0fccf661fb09181900360200190a160408051821515815290517fc77636fc4a62a1fa193ef538c0b7993a1313a0d9c0a9173058cebcd3239ef7b59181900360200190a15050565b6003546001600160a01b031633146113fc5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d601361167e565b6040805160e081018252600c548152600d546020820152600e5491810191909152600f5460608201526010546001600160a01b0316608082015260115460a082015260125460c08201526000908190819061146090611e40565b925092509250909192565b6040805160e081018252600554815260065460208201526007549181019190915260085460608201526009546001600160a01b03166080820152600a5460a0820152600b5460c08201526000908190819061146090611e40565b6003546001600160a01b0316331461150e5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6001600160a01b0381166115535760405162461bcd60e51b81526004018080602001828103825260228152602001806125216022913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160e081018252601354815260145460208201526015549181019190915260165460608201526017546001600160a01b0316608082015260185460a082015260195460c08201526000908190819061146090611e40565b6004546001600160a01b031681565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6005810154156116c8576040805162461bcd60e51b815260206004820152601060248201526f141bdb1b081a185cc81858dd1a5d995960821b604482015290519081900360640190fd5b42600590910155565b6000806000806000806000806000806116e98b611e40565b8093508194508295505050508a600001518b6020015184848e608001518f60a00151869950995099509950995099509950505050919395979092949650565b600354600090600160a01b900460ff16156117ac57600354600160a81b900460ff16610829576004546001600160a01b031633148061177157506003546001600160a01b031633145b6117ac5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61104184848461206b565b6000811161180c576040805162461bcd60e51b815260206004820152601e60248201527f54616b652076616c7565206d757374206d6f7265207468616e207a65726f0000604482015290519081900360640190fd5b6000826005015411611856576040805162461bcd60e51b815260206004820152600e60248201526d141bdb1b081b9bdd081cdd185c9d60921b604482015290519081900360640190fd5b60048201546001600160a01b031661189f5760405162461bcd60e51b81526004018080602001828103825260258152602001806124866025913960400191505060405180910390fd5b60058201546001830154600091829142916305f5e100860291630784ce0091840391909104908490156118e95750600187015460058801548185039650630784ce009103046118f3565b8760050154840395505b80821415611918578160020a603c02868960000154028161191057fe5b049450611a92565b6000630784ce00896005015486038161192d57fe5b0690506000896001015411801561195a5750630784ce0089600501548a60010154038161195657fe5b0615155b1561199d576000630784ce008a600501548b60010154038161197857fe5b06630784ce000390508260020a603c02818b60000154028161199657fe5b0487019650505b8260020a603c02818a6000015402816119b257fe5b04860195508860010154600014156119fb57815b838110156119f5578060020a603c02630784ce008b6000015402816119e757fe5b0496909601956001016119c6565b50611a90565b60008960010154118015611a245750630784ce0089600501548a600101540381611a2157fe5b06155b15611a5a57815b838110156119f5578060020a603c02630784ce008b600001540281611a4c57fe5b049690960195600101611a2b565b600182015b83811015611a8e578060020a603c02630784ce008b600001540281611a8057fe5b049690960195600101611a5f565b505b505b84886006015401831115611ae4576040805162461bcd60e51b815260206004820152601460248201527354616b652076616c756520746f6f206c6172676560601b604482015290519081900360640190fd5b6006880180548601849003908190556004890180546001600160a01b03908116600090815260016020818152604080842080548b01905560038f0180548d019055918e018a905560028e018890559354815189815291519316939192600080516020612501833981519152929181900390910190a3505050505050505050565b600082821115611bbb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611c065760405162461bcd60e51b81526004018080602001828103825260228152602001806125436022913960400191505060405180910390fd5b60040180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115611c7e573360009081526002602090815260408083206001600160a01b0388168452909152812055611cb3565b611c8e818463ffffffff611b6416565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600090600160a01b900460ff1615611d9d57600354600160a81b900460ff16610829576004546001600160a01b0316331480611d6257506003546001600160a01b031633145b611d9d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383612280565b3360009081526002602090815260408083206001600160a01b0386168452909152812054611ddb908363ffffffff6123cd16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60008060008360a0015160001415611e6057506000915081905080612064565b60a0840151602085015160009182914291630784ce009083030490839015611e9f5750602088015160a08901518184039550630784ce00910304611ea9565b8860a00151830394505b80821415611ece578160020a603c02858a600001510281611ec657fe5b049350612048565b6000630784ce008a60a00151850381611ee357fe5b06905060008a60200151118015611f105750630784ce008a60a001518b602001510381611f0c57fe5b0615155b15611f53576000630784ce008b60a001518c602001510381611f2e57fe5b06630784ce000390508260020a603c02818c600001510281611f4c57fe5b0486019550505b8260020a603c02818b600001510281611f6857fe5b0485019450896020015160001415611fb157815b83811015611fab578060020a603c02630784ce008c600001510281611f9d57fe5b049590950194600101611f7c565b50612046565b60008a60200151118015611fda5750630784ce008a60a001518b602001510381611fd757fe5b06155b1561201057815b83811015611fab578060020a603c02630784ce008c60000151028161200257fe5b049590950194600101611fe1565b600182015b83811015612044578060020a603c02630784ce008c60000151028161203657fe5b049590950194600101612015565b505b505b5060c08801516060890151919750908301955091909101925050505b9193909250565b60006001600160a01b0383166120b6576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260016020526040902054821115612123576040805162461bcd60e51b815260206004820181905260248201527f42616c616e6365206c657373207468616e207472616e736665722076616c7565604482015290519081900360640190fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156121855760405162461bcd60e51b81526004018080602001828103825260288152602001806125656028913960400191505060405180910390fd5b6001600160a01b0384166000908152600160205260409020546121ae908363ffffffff611b6416565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546121e3908363ffffffff6123cd16565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054612227908363ffffffff611b6416565b6001600160a01b0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020612501833981519152929181900390910190a35060019392505050565b60006001600160a01b0383166122cb576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b3360009081526001602052604090205482111561232f576040805162461bcd60e51b815260206004820181905260248201527f42616c616e6365206c657373207468616e207472616e736665722076616c7565604482015290519081900360640190fd5b3360009081526001602052604090205461234f908363ffffffff611b6416565b33600090815260016020526040808220929092556001600160a01b03851681522054612381908363ffffffff6123cd16565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233926000805160206125018339815191529281900390910190a350600192915050565b60008282018381101561086d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe5061757365645075626c69632063616e27742062652066616c7365207768696c65207061757365644f776e657241646d696e20697320747275654164647265737320746f2063616e277420626520636f6e74726163742061646472657373627573696e6573734163636f756e742063616e2774206265207a65726f20616464726573734f6e6c792061646d696e206f72206f776e65722063616e2063616c6c2077697468207061757365645075626c69634f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686973206d6574686f64ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f776e65722063616e27742062652073657420746f207a65726f2061646472657373506f6c6c206163636f756e742063616e2774206265207a65726f2061646472657373416c6c6f7765642062616c616e6365206c657373207468616e207472616e736665722076616c75654164647265737320746f2063616e2774206265207a65726f2061646472657373a265627a7a72305820068761e2a42590303d6492b3baaf553ac95df7294fa1aad10133fb565525fd4a64736f6c634300050a0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102485760003560e01c80637bad91481161013b578063d73dd623116100b8578063e613b0591161007c578063e613b059146106f8578063e98e4e021461071e578063f2fde38b14610726578063f6f5bd051461074c578063f851a4401461075457610248565b8063d73dd62314610643578063db0e16f11461066f578063dd62ed3e1461069b578063ddeb5094146106c9578063e554b66f146106f057610248565b806395d89b41116100ff57806395d89b41146105bb578063a9059cbb146105c3578063a965a51b146105ef578063bb449782146105f7578063cf8e85051461061d57610248565b80637bad9148146105445780637e1b44311461054c5780638930a205146105545780638da5cb5b146105715780638f2839701461059557610248565b8063322c5d17116101c9578063661884631161018d578063661884631461047157806370a082311461049d578063759e7120146104c357806379553129146104fb57806379cc67901461051857610248565b8063322c5d17146104015780633d9acab31461040957806342966c68146104265780635d70e1201461044357806364779ad71461046957610248565b8063133c658811610210578063133c65881461035457806318160ddd1461039d57806323b872dd146103a557806324bb7c26146103db578063313ce567146103e357610248565b806306fdde031461024d5780630910a510146102ca578063095ea7b3146102e45780630ba7ebe2146103245780630efd46651461034c575b600080fd5b61025561075c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028f578181015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d2610789565b60408051918252519081900360200190f35b610310600480360360408110156102fa57600080fd5b506001600160a01b0381351690602001356107a0565b604080519115158252519081900360200190f35b61034a6004803603602081101561033a57600080fd5b50356001600160a01b0316610874565b005b61034a6108ea565b61035c61093f565b6040805197885260208801969096528686019490945260608601929092526001600160a01b0316608085015260a084015260c0830152519081900360e00190f35b6102d26109b7565b610310600480360360608110156103bb57600080fd5b506001600160a01b038135811691602081013590911690604001356109bd565b610310610a65565b6103eb610a75565b6040805160ff9092168252519081900360200190f35b61035c610a7a565b61034a6004803603602081101561041f57600080fd5b5035610adc565b6103106004803603602081101561043c57600080fd5b5035610b30565b61034a6004803603602081101561045957600080fd5b50356001600160a01b0316610bdb565b610310610c2f565b6103106004803603604081101561048757600080fd5b506001600160a01b038135169060200135610c3f565b6102d2600480360360208110156104b357600080fd5b50356001600160a01b0316610ccd565b61034a600480360360608110156104d957600080fd5b506001600160a01b038135811691602081013582169160409091013516610ce8565b61034a6004803603602081101561051157600080fd5b5035610d57565b6103106004803603604081101561052e57600080fd5b506001600160a01b038135169060200135610dab565b61035c610dc7565b61034a610e29565b61034a6004803603602081101561056a57600080fd5b5035610e7c565b610579610ed0565b604080516001600160a01b039092168252519081900360200190f35b61034a600480360360208110156105ab57600080fd5b50356001600160a01b0316610edf565b610255610f84565b610310600480360360408110156105d957600080fd5b506001600160a01b038135169060200135610fa3565b6102d2611049565b61034a6004803603602081101561060d57600080fd5b50356001600160a01b0316611054565b61034a6004803603602081101561063357600080fd5b50356001600160a01b03166110a8565b6103106004803603604081101561065957600080fd5b506001600160a01b0381351690602001356110fc565b61034a6004803603604081101561068557600080fd5b506001600160a01b03813516906020013561118a565b6102d2600480360360408110156106b157600080fd5b506001600160a01b0381358116916020013516611259565b61034a600480360360408110156106df57600080fd5b508035151590602001351515611284565b61034a6113b3565b610700611406565b60408051938452602084019290925282820152519081900360600190f35b61070061146b565b61034a6004803603602081101561073c57600080fd5b50356001600160a01b03166114c5565b6107006115af565b610579611609565b6040518060400160405280601181526020017029bab832b92837b4b73a39902a37b5b2b760791b81525081565b601654600f54600854010166b1a2bc2ec500000190565b600354600090600160a01b900460ff161561086357600354600160a81b900460ff16610829576004546001600160a01b03163314806107e957506003546001600160a01b031633145b6108245760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b610863565b6040805162461bcd60e51b815260206004820152600a602482015269185b1b081c185d5cd95960b21b604482015290519081900360640190fd5b61086d8383611618565b9392505050565b6003546001600160a01b031633146108bd5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b601a5460ff166108e7576108d081610edf565b6108d9816114c5565b601a805460ff191660011790555b50565b6003546001600160a01b031633146109335760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d600c61167e565b565b6040805160e081018252600554815260065460208201526007549181019190915260085460608201526009546001600160a01b03166080820152600a5460a0820152600b5460c08201526000908190819081908190819081906109a1906116d1565b959d949c50929a50909850965094509092509050565b60005481565b6000826001600160a01b038116610a09576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b038116301415610a515760405162461bcd60e51b81526004018080602001828103825260248152602001806124626024913960400191505060405180910390fd5b610a5c858585611728565b95945050505050565b600354600160a01b900460ff1681565b600881565b6040805160e081018252601354815260145460208201526015549181019190915260165460608201526017546001600160a01b0316608082015260185460a082015260195460c08201526000908190819081908190819081906109a1906116d1565b6003546001600160a01b03163314610b255760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e76005826117b7565b33600090815260016020526040812054610b50908363ffffffff611b6416565b3360009081526001602052604081209190915554610b74908363ffffffff611b6416565b60005560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051838152905160009133916000805160206125018339815191529181900360200190a3506001919050565b6003546001600160a01b03163314610c245760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7816005611bc1565b600354600160a81b900460ff1681565b600354600090600160a01b900460ff1615610cc357600354600160a81b900460ff16610829576004546001600160a01b0316331480610c8857506003546001600160a01b031633145b610cc35760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383611c29565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b03163314610d315760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b610d3c836005611bc1565b610d4782600c611bc1565b610d52816013611bc1565b505050565b6003546001600160a01b03163314610da05760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7600c826117b7565b6000610db88333846109bd565b610dbe57fe5b61086d82610b30565b6040805160e081018252600c548152600d546020820152600e5491810191909152600f5460608201526010546001600160a01b0316608082015260115460a082015260125460c08201526000908190819081908190819081906109a1906116d1565b6003546001600160a01b03163314610e725760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d600561167e565b6003546001600160a01b03163314610ec55760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e76013826117b7565b6003546001600160a01b031681565b6003546001600160a01b03163314610f285760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec690600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600381526020016214d41560ea1b81525081565b6000826001600160a01b038116610fef576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b0381163014156110375760405162461bcd60e51b81526004018080602001828103825260248152602001806124626024913960400191505060405180910390fd5b6110418484611d19565b949350505050565b66b1a2bc2ec5000081565b6003546001600160a01b0316331461109d5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e781600c611bc1565b6003546001600160a01b031633146110f15760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6108e7816013611bc1565b600354600090600160a01b900460ff161561118057600354600160a81b900460ff16610829576004546001600160a01b031633148061114557506003546001600160a01b031633145b6111805760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383611da7565b6003546001600160a01b031633146111d35760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6003546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519184169163a9059cbb916044808201926020929091908290030181600087803b15801561122957600080fd5b505af115801561123d573d6000803e3d6000fd5b505050506040513d602081101561125357600080fd5b50505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6003546001600160a01b031633146112cd5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b811580156112dd57506001811515145b156113195760405162461bcd60e51b815260040180806020018281038252603a815260200180612428603a913960400191505060405180910390fd5b60038054821515600160a81b0260ff60a81b19851515600160a01b810260ff60a01b1990941693909317161790915560408051918252517fa14d191ca4f53bfcf003c65d429362010a2d3d68bc0c50cce4bdc0fccf661fb09181900360200190a160408051821515815290517fc77636fc4a62a1fa193ef538c0b7993a1313a0d9c0a9173058cebcd3239ef7b59181900360200190a15050565b6003546001600160a01b031633146113fc5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b61093d601361167e565b6040805160e081018252600c548152600d546020820152600e5491810191909152600f5460608201526010546001600160a01b0316608082015260115460a082015260125460c08201526000908190819061146090611e40565b925092509250909192565b6040805160e081018252600554815260065460208201526007549181019190915260085460608201526009546001600160a01b03166080820152600a5460a0820152600b5460c08201526000908190819061146090611e40565b6003546001600160a01b0316331461150e5760405162461bcd60e51b81526004018080602001828103825260288152602001806124d96028913960400191505060405180910390fd5b6001600160a01b0381166115535760405162461bcd60e51b81526004018080602001828103825260228152602001806125216022913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160e081018252601354815260145460208201526015549181019190915260165460608201526017546001600160a01b0316608082015260185460a082015260195460c08201526000908190819061146090611e40565b6004546001600160a01b031681565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6005810154156116c8576040805162461bcd60e51b815260206004820152601060248201526f141bdb1b081a185cc81858dd1a5d995960821b604482015290519081900360640190fd5b42600590910155565b6000806000806000806000806000806116e98b611e40565b8093508194508295505050508a600001518b6020015184848e608001518f60a00151869950995099509950995099509950505050919395979092949650565b600354600090600160a01b900460ff16156117ac57600354600160a81b900460ff16610829576004546001600160a01b031633148061177157506003546001600160a01b031633145b6117ac5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61104184848461206b565b6000811161180c576040805162461bcd60e51b815260206004820152601e60248201527f54616b652076616c7565206d757374206d6f7265207468616e207a65726f0000604482015290519081900360640190fd5b6000826005015411611856576040805162461bcd60e51b815260206004820152600e60248201526d141bdb1b081b9bdd081cdd185c9d60921b604482015290519081900360640190fd5b60048201546001600160a01b031661189f5760405162461bcd60e51b81526004018080602001828103825260258152602001806124866025913960400191505060405180910390fd5b60058201546001830154600091829142916305f5e100860291630784ce0091840391909104908490156118e95750600187015460058801548185039650630784ce009103046118f3565b8760050154840395505b80821415611918578160020a603c02868960000154028161191057fe5b049450611a92565b6000630784ce00896005015486038161192d57fe5b0690506000896001015411801561195a5750630784ce0089600501548a60010154038161195657fe5b0615155b1561199d576000630784ce008a600501548b60010154038161197857fe5b06630784ce000390508260020a603c02818b60000154028161199657fe5b0487019650505b8260020a603c02818a6000015402816119b257fe5b04860195508860010154600014156119fb57815b838110156119f5578060020a603c02630784ce008b6000015402816119e757fe5b0496909601956001016119c6565b50611a90565b60008960010154118015611a245750630784ce0089600501548a600101540381611a2157fe5b06155b15611a5a57815b838110156119f5578060020a603c02630784ce008b600001540281611a4c57fe5b049690960195600101611a2b565b600182015b83811015611a8e578060020a603c02630784ce008b600001540281611a8057fe5b049690960195600101611a5f565b505b505b84886006015401831115611ae4576040805162461bcd60e51b815260206004820152601460248201527354616b652076616c756520746f6f206c6172676560601b604482015290519081900360640190fd5b6006880180548601849003908190556004890180546001600160a01b03908116600090815260016020818152604080842080548b01905560038f0180548d019055918e018a905560028e018890559354815189815291519316939192600080516020612501833981519152929181900390910190a3505050505050505050565b600082821115611bbb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b038216611c065760405162461bcd60e51b81526004018080602001828103825260228152602001806125436022913960400191505060405180910390fd5b60040180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115611c7e573360009081526002602090815260408083206001600160a01b0388168452909152812055611cb3565b611c8e818463ffffffff611b6416565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600090600160a01b900460ff1615611d9d57600354600160a81b900460ff16610829576004546001600160a01b0316331480611d6257506003546001600160a01b031633145b611d9d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ab602e913960400191505060405180910390fd5b61086d8383612280565b3360009081526002602090815260408083206001600160a01b0386168452909152812054611ddb908363ffffffff6123cd16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60008060008360a0015160001415611e6057506000915081905080612064565b60a0840151602085015160009182914291630784ce009083030490839015611e9f5750602088015160a08901518184039550630784ce00910304611ea9565b8860a00151830394505b80821415611ece578160020a603c02858a600001510281611ec657fe5b049350612048565b6000630784ce008a60a00151850381611ee357fe5b06905060008a60200151118015611f105750630784ce008a60a001518b602001510381611f0c57fe5b0615155b15611f53576000630784ce008b60a001518c602001510381611f2e57fe5b06630784ce000390508260020a603c02818c600001510281611f4c57fe5b0486019550505b8260020a603c02818b600001510281611f6857fe5b0485019450896020015160001415611fb157815b83811015611fab578060020a603c02630784ce008c600001510281611f9d57fe5b049590950194600101611f7c565b50612046565b60008a60200151118015611fda5750630784ce008a60a001518b602001510381611fd757fe5b06155b1561201057815b83811015611fab578060020a603c02630784ce008c60000151028161200257fe5b049590950194600101611fe1565b600182015b83811015612044578060020a603c02630784ce008c60000151028161203657fe5b049590950194600101612015565b505b505b5060c08801516060890151919750908301955091909101925050505b9193909250565b60006001600160a01b0383166120b6576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260016020526040902054821115612123576040805162461bcd60e51b815260206004820181905260248201527f42616c616e6365206c657373207468616e207472616e736665722076616c7565604482015290519081900360640190fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156121855760405162461bcd60e51b81526004018080602001828103825260288152602001806125656028913960400191505060405180910390fd5b6001600160a01b0384166000908152600160205260409020546121ae908363ffffffff611b6416565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546121e3908363ffffffff6123cd16565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054612227908363ffffffff611b6416565b6001600160a01b0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020612501833981519152929181900390910190a35060019392505050565b60006001600160a01b0383166122cb576040805162461bcd60e51b8152602060048201819052602482015260008051602061258d833981519152604482015290519081900360640190fd5b3360009081526001602052604090205482111561232f576040805162461bcd60e51b815260206004820181905260248201527f42616c616e6365206c657373207468616e207472616e736665722076616c7565604482015290519081900360640190fd5b3360009081526001602052604090205461234f908363ffffffff611b6416565b33600090815260016020526040808220929092556001600160a01b03851681522054612381908363ffffffff6123cd16565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233926000805160206125018339815191529281900390910190a350600192915050565b60008282018381101561086d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe5061757365645075626c69632063616e27742062652066616c7365207768696c65207061757365644f776e657241646d696e20697320747275654164647265737320746f2063616e277420626520636f6e74726163742061646472657373627573696e6573734163636f756e742063616e2774206265207a65726f20616464726573734f6e6c792061646d696e206f72206f776e65722063616e2063616c6c2077697468207061757365645075626c69634f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686973206d6574686f64ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f776e65722063616e27742062652073657420746f207a65726f2061646472657373506f6c6c206163636f756e742063616e2774206265207a65726f2061646472657373416c6c6f7765642062616c616e6365206c657373207468616e207472616e736665722076616c75654164647265737320746f2063616e2774206265207a65726f2061646472657373a265627a7a72305820068761e2a42590303d6492b3baaf553ac95df7294fa1aad10133fb565525fd4a64736f6c634300050a0032

Deployed Bytecode Sourcemap

20155:2560:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20155:2560:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20201:51;;;:::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;20201:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16711:182;;;:::i;:::-;;;;;;;;;;;;;;;;9306:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9306:138:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;22403:309;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22403:309:0;-1:-1:-1;;;;;22403:309:0;;:::i;:::-;;12388:93;;;:::i;16214:146::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16214:146:0;;;;;;;;;;;;;;;;;;;;;;2869:26;;;:::i;21141:171::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21141:171:0;;;;;;;;;;;;;;;;;:::i;4318:32::-;;;:::i;20305:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16366:142;;;:::i;19830:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19830:104:0;;:::i;21401:291::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21401:291:0;;:::i;11471:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11471:119:0;-1:-1:-1;;;;;11471:119:0;;:::i;4355:36::-;;;:::i;9627:181::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9627:181:0;;;;;;;;:::i;4060:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4060:109:0;-1:-1:-1;;;;;4060:109:0;;:::i;11840:261::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11840:261:0;;;;;;;;;;;;;;;;;;;:::i;19940:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19940:106:0;;:::i;21755:167::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21755:167:0;;;;;;;;:::i;16514:147::-;;;:::i;12291:91::-;;;:::i;20052:96::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20052:96:0;;:::i;58:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;58:20:0;;;;;;;;;;;;;;22213:182;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22213:182:0;-1:-1:-1;;;;;22213:182:0;;:::i;20259:39::-;;;:::i;20992:141::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20992:141:0;;;;;;;;:::i;20349:73::-;;;:::i;11596:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11596:121:0;-1:-1:-1;;;;;11596:121:0;;:::i;11723:111::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11723:111:0;-1:-1:-1;;;;;11723:111:0;;:::i;9450:171::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9450:171:0;;;;;;;;:::i;21930:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21930:187:0;;;;;;;;:::i;7878:128::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7878:128:0;;;;;;;;;;:::i;4980:396::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4980:396:0;;;;;;;;;;;:::i;12487:83::-;;;:::i;15501:126::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;15370:125;;;:::i;717:216::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;717:216:0;-1:-1:-1;;;;;717:216:0;;:::i;15633:121::-;;;:::i;4398:20::-;;;:::i;20201:51::-;;;;;;;;;;;;;;-1:-1:-1;;;20201:51:0;;;;:::o;16711:182::-;16867:18;;16841:23;;16816:22;;16780:84;:105;:33;:105;16711:182;:::o;9306:138::-;4545:12;;9387:4;;-1:-1:-1;;;4545:12:0;;;;4542:224;;;4572:16;;-1:-1:-1;;;4572:16:0;;;;4568:191;;4623:5;;-1:-1:-1;;;;;4623:5:0;4609:10;:19;;:42;;-1:-1:-1;4646:5:0;;-1:-1:-1;;;;;4646:5:0;4632:10;:19;4609:42;4601:101;;;;-1:-1:-1;;;4601:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4568:191;;;4729:20;;;-1:-1:-1;;;4729:20:0;;;;;;;;;;;;-1:-1:-1;;;4729:20:0;;;;;;;;;;;;;;4568:191;9407:31;9421:8;9431:6;9407:13;:31::i;:::-;9400:38;9306:138;-1:-1:-1;;;9306:138:0:o;22403:309::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22472:7;;;;22467:238;;22601:21;22613:8;22601:11;:21::i;:::-;22637:27;22655:8;22637:17;:27::i;:::-;22679:7;:14;;-1:-1:-1;;22679:14:0;22689:4;22679:14;;;22467:238;22403:309;:::o;12388:93::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12447:26;12459:13;12447:11;:26::i;:::-;12388:93::o;16214:146::-;16326:26;;;;;;;;16339:12;16326:26;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16326:26:0;;;;;;;;;;;;;;;;;16264:4;;;;;;;;;;;;;;16326:26;;:12;:26::i;:::-;16319:33;;;;-1:-1:-1;16319:33:0;;-1:-1:-1;16319:33:0;;-1:-1:-1;16319:33:0;-1:-1:-1;16319:33:0;-1:-1:-1;16319:33:0;;-1:-1:-1;16214:146:0;-1:-1:-1;16214:146:0:o;2869:26::-;;;;:::o;21141:171::-;21242:4;21228:3;-1:-1:-1;;;;;20526:18:0;;20518:63;;;;;-1:-1:-1;;;20518:63:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20518:63:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20600:19:0;;20614:4;20600:19;;20592:68;;;;-1:-1:-1;;;20592:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21266:38;21285:5;21292:3;21297:6;21266:18;:38::i;:::-;21259:45;21141:171;-1:-1:-1;;;;;21141:171:0:o;4318:32::-;;;-1:-1:-1;;;4318:32:0;;;;;:::o;20305:37::-;20341:1;20305:37;:::o;16366:142::-;16478:22;;;;;;;;16491:8;16478:22;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16478:22:0;;;;;;;;;;;;;;;;;16416:4;;;;;;;;;;;;;;16478:22;;:12;:22::i;19830:104::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19896:30;19906:12;19920:5;19896:9;:30::i;21401:291::-;21493:10;21444:4;21484:20;;;:8;:20;;;;;;:32;;21509:6;21484:32;:24;:32;:::i;:::-;21470:10;21461:20;;;;:8;:20;;;;;:55;;;;21541:11;:23;;21557:6;21541:23;:15;:23;:::i;:::-;21527:11;:37;21580:24;;;;;;;;21585:10;;21580:24;;;;;;;;;;21620:42;;;;;;;;21649:3;;21629:10;;-1:-1:-1;;;;;;;;;;;21620:42:0;;;;;;;;-1:-1:-1;21680:4:0;21401:291;;;:::o;11471:119::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11544:38;11560:7;11569:12;11544:15;:38::i;4355:36::-;;;-1:-1:-1;;;4355:36:0;;;;;:::o;9627:181::-;4545:12;;9724;;-1:-1:-1;;;4545:12:0;;;;4542:224;;;4572:16;;-1:-1:-1;;;4572:16:0;;;;4568:191;;4623:5;;-1:-1:-1;;;;;4623:5:0;4609:10;:19;;:42;;-1:-1:-1;4646:5:0;;-1:-1:-1;;;;;4646:5:0;4632:10;:19;4609:42;4601:101;;;;-1:-1:-1;;;4601:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9752:50;9775:8;9785:16;9752:22;:50::i;4060:109::-;-1:-1:-1;;;;;4147:16:0;4116:15;4147:16;;;:8;:16;;;;;;;4060:109::o;11840:261::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11951:42;11967:11;11980:12;11951:15;:42::i;:::-;12004:44;12020:12;12034:13;12004:15;:44::i;:::-;12059:34;12075:7;12084:8;12059:15;:34::i;:::-;11840:261;;;:::o;19940:106::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20007:31;20017:13;20032:5;20007:9;:31::i;21755:167::-;21820:4;21844:39;21857:5;21864:10;21876:6;21844:12;:39::i;:::-;21837:47;;;;21902:12;21907:6;21902:4;:12::i;16514:147::-;16626:27;;;;;;;;16639:13;16626:27;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16626:27:0;;;;;;;;;;;;;;;;;16564:4;;;;;;;;;;;;;;16626:27;;:12;:27::i;12291:91::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12349:25;12361:12;12349:11;:25::i;20052:96::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20114:26;20124:8;20134:5;20114:9;:26::i;58:20::-;;;-1:-1:-1;;;;;58:20:0;;:::o;22213:182::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22344:5;;22327:33;;-1:-1:-1;;;;;22327:33:0;;;;22344:5;;22327:33;;22344:5;;22327:33;22371:5;:16;;-1:-1:-1;;;;;;22371:16:0;-1:-1:-1;;;;;22371:16:0;;;;;;;;;;22213:182::o;20259:39::-;;;;;;;;;;;;;;-1:-1:-1;;;20259:39:0;;;;:::o;20992:141::-;21074:4;21060:3;-1:-1:-1;;;;;20526:18:0;;20518:63;;;;;-1:-1:-1;;;20518:63:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20518:63:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20600:19:0;;20614:4;20600:19;;20592:68;;;;-1:-1:-1;;;20592:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21098:27;21113:3;21118:6;21098:14;:27::i;:::-;21091:34;20992:141;-1:-1:-1;;;;20992:141:0:o;20349:73::-;20390:32;20349:73;:::o;11596:121::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11670:39;11686:7;11695:13;11670:15;:39::i;11723:111::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11792:34;11808:7;11817:8;11792:15;:34::i;9450:171::-;4545:12;;9542;;-1:-1:-1;;;4545:12:0;;;;4542:224;;;4572:16;;-1:-1:-1;;;4572:16:0;;;;4568:191;;4623:5;;-1:-1:-1;;;;;4623:5:0;4609:10;:19;;:42;;-1:-1:-1;4646:5:0;;-1:-1:-1;;;;;4646:5:0;4632:10;:19;4609:42;4601:101;;;;-1:-1:-1;;;4601:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:45;9593:8;9603:11;9570:22;:45::i;21930:187::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22095:5;;22080:29;;;-1:-1:-1;;;22080:29:0;;-1:-1:-1;;;;;22095:5:0;;;22080:29;;;;;;;;;;;;:14;;;;;;:29;;;;;;;;;;;;;;;22095:5;22080:14;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;22080:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22080:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;21930:187:0:o;7878:128::-;-1:-1:-1;;;;;7975:15:0;;;7952:7;7975:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7878:128::o;4980:396::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5077:24;;;;:55;;-1:-1:-1;5128:4:0;5105:27;;;;5077:55;5075:58;5067:129;;;;-1:-1:-1;;;5067:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5205:12;:30;;5242:38;;;-1:-1:-1;;;5242:38:0;-1:-1:-1;;;;5205:30:0;;;-1:-1:-1;;;5205:30:0;;-1:-1:-1;;;;5205:30:0;;;;;;;5242:38;;;;;5294:28;;;;;;;;;;;;;;;;5334:36;;;;;;;;;;;;;;;;;;;4980:396;;:::o;12487:83::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12541:21;12553:8;12541:11;:21::i;15501:126::-;15587:32;;;;;;;;15605:13;15587:32;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15587:32:0;;;;;;;;;;;;;;;;;15551:4;;;;;;15587:32;;:17;:32::i;:::-;15580:39;;;;;;15501:126;;;:::o;15370:125::-;15456:31;;;;;;;;15474:12;15456:31;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15456:31:0;;;;;;;;;;;;;;;;;15420:4;;;;;;15456:31;;:17;:31::i;717:216::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:72;;;;-1:-1:-1;;;462:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;794:22:0;;786:69;;;;-1:-1:-1;;;786:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;888:5;;867:37;;-1:-1:-1;;;;;867:37:0;;;;888:5;;867:37;;888:5;;867:37;911:5;:16;;-1:-1:-1;;;;;;911:16:0;-1:-1:-1;;;;;911:16:0;;;;;;;;;;717:216::o;15633:121::-;15719:27;;;;;;;;15737:8;15719:27;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15719:27:0;;;;;;;;;;;;;;;;;15683:4;;;;;;15719:27;;:17;:27::i;4398:20::-;;;-1:-1:-1;;;;;4398:20:0;;:::o;7359:192::-;7447:10;7426:4;7439:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7439:29:0;;;;;;;;;;;:38;;;7489;;;;;;;7426:4;;7439:29;;7447:10;;7489:38;;;;;;;;-1:-1:-1;7541:4:0;7359:192;;;;:::o;12139:146::-;12206:14;;;;:19;12198:48;;;;;-1:-1:-1;;;12198:48:0;;;;;;;;;;;;-1:-1:-1;;;12198:48:0;;;;;;;;;;;;;;;12274:3;12257:14;;;;:20;12139:146::o;15798:410::-;15865:4;15870;15876;15882;15888:7;15897:4;15903;15920:23;15954:14;15979:13;16047:23;16065:4;16047:17;:23::i;:::-;16003:67;;;;;;;;;;;;16089:4;:20;;;16111:4;:17;;;16130:18;16150:9;16161:4;:12;;;16175:4;:14;;;16191:8;16081:119;;;;;;;;;;;;;;;;;15798:410;;;;;;;;;:::o;9140:160::-;4545:12;;9236:4;;-1:-1:-1;;;4545:12:0;;;;4542:224;;;4572:16;;-1:-1:-1;;;4572:16:0;;;;4568:191;;4623:5;;-1:-1:-1;;;;;4623:5:0;4609:10;:19;;:42;;-1:-1:-1;4646:5:0;;-1:-1:-1;;;;;4646:5:0;4632:10;:19;4609:42;4601:101;;;;-1:-1:-1;;;4601:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9256:38;9275:5;9282:3;9287:6;9256:18;:38::i;16939:2885::-;17024:1;17016:5;:9;17008:52;;;;;-1:-1:-1;;;17008:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17096:1;17079:4;:14;;;:18;17071:45;;;;;-1:-1:-1;;;17071:45:0;;;;;;;;;;;;-1:-1:-1;;;17071:45:0;;;;;;;;;;;;;;;17135:12;;;;-1:-1:-1;;;;;17135:12:0;17127:76;;;;-1:-1:-1;;;17127:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17436:14;;;;17562:17;;;;17216:13;;;;17285:3;;17321:21;17313:29;;;9928:12;17426:24;;;17425:38;;;;;17216:13;;17562:21;17558:241;;-1:-1:-1;17621:17:0;;;;17692:14;;;;17611:27;;;;-1:-1:-1;9928:12:0;17672:34;;17671:48;17558:241;;;17773:4;:14;;;17763:7;:24;17752:35;;17558:241;17837:15;17815:18;:37;17811:1572;;;17955:18;17950:1;:23;17945:2;:28;17933:8;17910:4;:20;;;:31;:64;;;;;;17901:73;;17811:1572;;;18016:19;9928:12;18049:4;:14;;;18039:7;:24;18038:38;;;;;;18016:60;;18117:1;18097:4;:17;;;:21;:80;;;;;9928:12;18144:4;:14;;;18124:4;:17;;;:34;18123:48;;;;;;:53;;18097:80;18093:305;;;18198:18;9928:12;18252:4;:14;;;18232:4;:17;;;:34;18231:48;;;;;;9928:12;18219:60;18198:81;;18366:15;18361:1;:20;18356:2;:25;18339:13;18316:4;:20;;;:36;:66;;;;;;18307:6;:75;18298:84;;18093:305;;18483:18;18478:1;:23;18473:2;:28;18455:14;18432:4;:20;;;:37;:70;;;;;;18423:6;:79;18414:88;;18561:4;:17;;;18582:1;18561:22;18557:815;;;18618:15;18604:169;18639:18;18635:1;:22;18604:169;;;18751:1;18746;:6;18741:2;:11;9928:12;18705:4;:20;;;:32;:48;;;;;;18696:57;;;;;18659:3;;18604:169;;;;18557:815;;;18881:1;18861:4;:17;;;:21;:80;;;;;9928:12;18908:4;:14;;;18888:4;:17;;;:34;18887:48;;;;;;:53;18861:80;18857:515;;;18976:15;18962:169;18997:18;18993:1;:22;18962:169;;;19109:1;19104;:6;19099:2;:11;9928:12;19063:4;:20;;;:32;:48;;;;;;19054:57;;;;;19017:3;;18962:169;;18857:515;19216:1;19198:19;;19184:173;19223:18;19219:1;:22;19184:173;;;19335:1;19330;:6;19325:2;:11;9928:12;19289:4;:20;;;:32;:48;;;;;;19280:57;;;;;19243:3;;19184:173;;;;18857:515;17811:1572;;19428:6;19412:4;:13;;;:22;19401:6;:34;;19393:67;;;;;-1:-1:-1;;;19393:67:0;;;;;;;;;;;;-1:-1:-1;;;19393:67:0;;;;;;;;;;;;;;;19483:13;;;;;:22;;:31;;;19525:20;;;;19590:12;;;;;-1:-1:-1;;;;;19590:12:0;;;19471:9;19581:22;;;-1:-1:-1;19581:22:0;;;;;;;;;;:31;;19556:56;;19640:14;;;;;:23;;19623:40;;19674:17;;;:27;;;-1:-1:-1;19712:23:0;;:44;;;19795:12;;19772:44;;;;;;;19795:12;;;19471:9;;-1:-1:-1;;;;;;;;;;;19772:44:0;;;;;;;;;;16939:2885;;;;;;;;;:::o;2104:172::-;2156:4;2186:1;2181;:6;;2173:49;;;;;-1:-1:-1;;;2173:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2242:5:0;;;2104:172::o;11276:189::-;-1:-1:-1;;;;;11364:21:0;;11356:68;;;;-1:-1:-1;;;11356:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11435:12;;:22;;-1:-1:-1;;;;;;11435:22:0;-1:-1:-1;;;;;11435:22:0;;;;;;;;;;11276:189::o;8526:412::-;8646:10;8609:4;8638:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8638:29:0;;;;;;;;;;8678:27;;;8674:168;;;8724:10;8748:1;8716:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8716:29:0;;;;;;;;;:33;8674:168;;;8804:30;:8;8817:16;8804:30;:12;:30;:::i;:::-;8780:10;8772:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8772:29:0;;;;;;;;;:62;8674:168;8862:10;8884:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8853:61:0;;8884:29;;;;;;;;;;;8853:61;;;;;;;;;8862:10;8853:61;;;;;;;;;;;-1:-1:-1;8928:4:0;;8526:412;-1:-1:-1;;;8526:412:0:o;9004:130::-;4545:12;;9081:4;;-1:-1:-1;;;4545:12:0;;;;4542:224;;;4572:16;;-1:-1:-1;;;4572:16:0;;;;4568:191;;4623:5;;-1:-1:-1;;;;;4623:5:0;4609:10;:19;;:42;;-1:-1:-1;4646:5:0;;-1:-1:-1;;;;;4646:5:0;4632:10;:19;4609:42;4601:101;;;;-1:-1:-1;;;4601:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9101:27;9116:3;9121:6;9101:14;:27::i;8254:266::-;8385:10;8332:4;8377:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8377:29:0;;;;;;;;;;:46;;8411:11;8377:46;:33;:46;:::i;:::-;8353:10;8345:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8345:29:0;;;;;;;;;;;;:78;;;8435:61;;;;;;8345:29;;8435:61;;;;;;;;;;;-1:-1:-1;8510:4:0;8254:266;;;;:::o;12614:2750::-;12681:4;12687;12693;12714;:14;;;12732:1;12714:19;12710:68;;;-1:-1:-1;12758:1:0;;-1:-1:-1;12758:1:0;;-1:-1:-1;12758:1:0;12750:16;;12710:68;12954:14;;;;13080:17;;;;12788:13;;;;12857:3;;9928:12;12944:24;;;12943:38;;12788:13;;13080:21;13076:241;;-1:-1:-1;13139:17:0;;;;13210:14;;;;13129:27;;;;-1:-1:-1;9928:12:0;13190:34;;13189:48;13076:241;;;13291:4;:14;;;13281:7;:24;13270:35;;13076:241;13355:15;13333:18;:37;13329:1855;;;13473:18;13468:1;:23;13463:2;:28;13451:8;13428:4;:20;;;:31;:64;;;;;;13419:73;;13329:1855;;;13819:19;9928:12;13852:4;:14;;;13842:7;:24;13841:38;;;;;;13819:60;;13920:1;13900:4;:17;;;:21;:80;;;;;9928:12;13947:4;:14;;;13927:4;:17;;;:34;13926:48;;;;;;:53;;13900:80;13896:305;;;14001:18;9928:12;14055:4;:14;;;14035:4;:17;;;:34;14034:48;;;;;;9928:12;14022:60;14001:81;;14169:15;14164:1;:20;14159:2;:25;14142:13;14119:4;:20;;;:36;:66;;;;;;14110:6;:75;14101:84;;13896:305;;14284:18;14279:1;:23;14274:2;:28;14256:14;14233:4;:20;;;:37;:70;;;;;;14224:6;:79;14215:88;;14362:4;:17;;;14383:1;14362:22;14358:815;;;14419:15;14405:169;14440:18;14436:1;:22;14405:169;;;14552:1;14547;:6;14542:2;:11;9928:12;14506:4;:20;;;:32;:48;;;;;;14497:57;;;;;14460:3;;14405:169;;;;14358:815;;;14682:1;14662:4;:17;;;:21;:80;;;;;9928:12;14709:4;:14;;;14689:4;:17;;;:34;14688:48;;;;;;:53;14662:80;14658:515;;;14777:15;14763:169;14798:18;14794:1;:22;14763:169;;;14910:1;14905;:6;14900:2;:11;9928:12;14864:4;:20;;;:32;:48;;;;;;14855:57;;;;;14818:3;;14763:169;;14658:515;15017:1;14999:19;;14985:173;15024:18;15020:1;:22;14985:173;;;15136:1;15131;:6;15126:2;:11;9928:12;15090:4;:20;;;:32;:48;;;;;;15081:57;;;;;15044:3;;14985:173;;;;14658:515;13329:1855;;-1:-1:-1;15226:13:0;;;;15276:14;;;;15309:18;;-1:-1:-1;15267:23:0;;;;-1:-1:-1;15217:22:0;;;;;-1:-1:-1;;;12614:2750:0;;;;;;:::o;6154:570::-;6236:4;-1:-1:-1;;;;;6257:17:0;;6249:62;;;;;-1:-1:-1;;;6249:62:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6249:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6336:15:0;;;;;;:8;:15;;;;;;6326:25;;;6318:70;;;;;-1:-1:-1;;;6318:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6413:14:0;;;;;;:7;:14;;;;;;;;6428:10;6413:26;;;;;;;;6403:36;;;6395:89;;;;-1:-1:-1;;;6395:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6511:15:0;;;;;;:8;:15;;;;;;:27;;6531:6;6511:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;6493:15:0;;;;;;;:8;:15;;;;;;:45;;;;6561:13;;;;;;;:25;;6579:6;6561:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;6545:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;6622:14;;;;;:7;:14;;;;;6637:10;6622:26;;;;;;;:38;;6653:6;6622:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;6593:14:0;;;;;;;:7;:14;;;;;;;;6608:10;6593:26;;;;;;;;:67;;;;6672:28;;;;;;;;;;;6593:14;;-1:-1:-1;;;;;;;;;;;6672:28:0;;;;;;;;;;-1:-1:-1;6714:4:0;6154:570;;;;;:::o;3386:465::-;3449:4;-1:-1:-1;;;;;3470:17:0;;3462:62;;;;;-1:-1:-1;;;3462:62:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3462:62:0;;;;;;;;;;;;;;;3558:10;3549:20;;;;:8;:20;;;;;;3539:30;;;3531:75;;;;;-1:-1:-1;;;3531:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3711:10;3702:20;;;;:8;:20;;;;;;:32;;3727:6;3702:32;:24;:32;:::i;:::-;3688:10;3679:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;3757:13:0;;;;;;:25;;3775:6;3757:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3741:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;3794:33;;;;;;;3741:13;;3803:10;;-1:-1:-1;;;;;;;;;;;3794:33:0;;;;;;;;;-1:-1:-1;3841:4:0;3386:465;;;;:::o;2364:169::-;2416:4;2442:5;;;2466:6;;;;2458:46;;;;;-1:-1:-1;;;2458:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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