ETH Price: $2,926.20 (+0.06%)
Gas: 16 Gwei

Token

Nynja (NYN)
 

Overview

Max Total Supply

5,000,000,000 NYN

Holders

140

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Token

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity ^0.4.21;


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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

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

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

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

pragma solidity ^0.4.21;


/**
 * @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.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @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));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

pragma solidity ^0.4.21;


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
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);
}

// File: openzeppelin-solidity/contracts/token/ERC20/BasicToken.sol

pragma solidity ^0.4.21;




/**
 * @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) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

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

}

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol

pragma solidity ^0.4.21;



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

// File: openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol

pragma solidity ^0.4.21;




/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
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));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

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

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function 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;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function 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;
  }

}

// File: contracts/Token.sol

pragma solidity 0.4.23;




/// @title   Token
/// @author  Jose Perez - <[email protected]>
/// @notice  ERC20 token
/// @dev     The contract allows to perform a number of token sales in different periods in time.
///          allowing participants in previous token sales to transfer tokens to other accounts.
///          Additionally, token locking logic for KYC/AML compliance checking is supported.

contract Token is StandardToken, Ownable {
    using SafeMath for uint256;

    string public constant name = "Nynja";
    string public constant symbol = "NYN";
    uint256 public constant decimals = 18;

    // Using same number of decimal figures as ETH (i.e. 18).
    uint256 public constant TOKEN_UNIT = 10 ** uint256(decimals);

    // Maximum number of tokens in circulation
    uint256 public constant MAX_TOKEN_SUPPLY = 5000000000 * TOKEN_UNIT;

    // Maximum number of tokens sales to be performed.
    uint256 public constant MAX_TOKEN_SALES = 5;

    // Maximum size of the batch functions input arrays.
    uint256 public constant MAX_BATCH_SIZE = 400;

    address public assigner;    // The address allowed to assign or mint tokens during token sale.
    address public locker;      // The address allowed to lock/unlock addresses.

    mapping(address => bool) public locked;        // If true, address' tokens cannot be transferred.

    uint256 public currentTokenSaleId = 0;           // The id of the current token sale.
    mapping(address => uint256) public tokenSaleId;  // In which token sale the address participated.

    bool public tokenSaleOngoing = false;

    event TokenSaleStarting(uint indexed tokenSaleId);
    event TokenSaleEnding(uint indexed tokenSaleId);
    event Lock(address indexed addr);
    event Unlock(address indexed addr);
    event Assign(address indexed to, uint256 amount);
    event Mint(address indexed to, uint256 amount);
    event LockerTransferred(address indexed previousLocker, address indexed newLocker);
    event AssignerTransferred(address indexed previousAssigner, address indexed newAssigner);

    /// @dev Constructor that initializes the contract.
    /// @param _assigner The assigner account.
    /// @param _locker The locker account.
    constructor(address _assigner, address _locker) public {
        require(_assigner != address(0));
        require(_locker != address(0));

        assigner = _assigner;
        locker = _locker;
    }

    /// @dev True if a token sale is ongoing.
    modifier tokenSaleIsOngoing() {
        require(tokenSaleOngoing);
        _;
    }

    /// @dev True if a token sale is not ongoing.
    modifier tokenSaleIsNotOngoing() {
        require(!tokenSaleOngoing);
        _;
    }

    /// @dev Throws if called by any account other than the assigner.
    modifier onlyAssigner() {
        require(msg.sender == assigner);
        _;
    }

    /// @dev Throws if called by any account other than the locker.
    modifier onlyLocker() {
        require(msg.sender == locker);
        _;
    }

    /// @dev Starts a new token sale. Only the owner can start a new token sale. If a token sale
    ///      is ongoing, it has to be ended before a new token sale can be started.
    ///      No more than `MAX_TOKEN_SALES` sales can be carried out.
    /// @return True if the operation was successful.
    function tokenSaleStart() external onlyOwner tokenSaleIsNotOngoing returns(bool) {
        require(currentTokenSaleId < MAX_TOKEN_SALES);
        currentTokenSaleId++;
        tokenSaleOngoing = true;
        emit TokenSaleStarting(currentTokenSaleId);
        return true;
    }

    /// @dev Ends the current token sale. Only the owner can end a token sale.
    /// @return True if the operation was successful.
    function tokenSaleEnd() external onlyOwner tokenSaleIsOngoing returns(bool) {
        emit TokenSaleEnding(currentTokenSaleId);
        tokenSaleOngoing = false;
        return true;
    }

    /// @dev Returns whether or not a token sale is ongoing.
    /// @return True if a token sale is ongoing.
    function isTokenSaleOngoing() external view returns(bool) {
        return tokenSaleOngoing;
    }

    /// @dev Getter of the variable `currentTokenSaleId`.
    /// @return Returns the current token sale id.
    function getCurrentTokenSaleId() external view returns(uint256) {
        return currentTokenSaleId;
    }

    /// @dev Getter of the variable `tokenSaleId[]`.
    /// @param _address The address of the participant.
    /// @return Returns the id of the token sale the address participated in.
    function getAddressTokenSaleId(address _address) external view returns(uint256) {
        return tokenSaleId[_address];
    }

    /// @dev Allows the current owner to change the assigner.
    /// @param _newAssigner The address of the new assigner.
    /// @return True if the operation was successful.
    function transferAssigner(address _newAssigner) external onlyOwner returns(bool) {
        require(_newAssigner != address(0));

        emit AssignerTransferred(assigner, _newAssigner);
        assigner = _newAssigner;
        return true;
    }

    /// @dev Function to mint tokens. It can only be called by the assigner during an ongoing token sale.
    /// @param _to The address that will receive the minted tokens.
    /// @param _amount The amount of tokens to mint.
    /// @return A boolean that indicates if the operation was successful.
    function mint(address _to, uint256 _amount) public onlyAssigner tokenSaleIsOngoing returns(bool) {
        totalSupply_ = totalSupply_.add(_amount);
        require(totalSupply_ <= MAX_TOKEN_SUPPLY);

        if (tokenSaleId[_to] == 0) {
            tokenSaleId[_to] = currentTokenSaleId;
        }
        require(tokenSaleId[_to] == currentTokenSaleId);

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

        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

    /// @dev Mints tokens for several addresses in one single call.
    /// @param _to address[] The addresses that get the tokens.
    /// @param _amount address[] The number of tokens to be minted.
    /// @return A boolean that indicates if the operation was successful.
    function mintInBatches(address[] _to, uint256[] _amount) external onlyAssigner tokenSaleIsOngoing returns(bool) {
        require(_to.length > 0);
        require(_to.length == _amount.length);
        require(_to.length <= MAX_BATCH_SIZE);

        for (uint i = 0; i < _to.length; i++) {
            mint(_to[i], _amount[i]);
        }
        return true;
    }

    /// @dev Function to assign any number of tokens to a given address.
    ///      Compared to the `mint` function, the `assign` function allows not just to increase but also to decrease
    ///      the number of tokens of an address by assigning a lower value than the address current balance.
    ///      This function can only be executed during initial token sale.
    /// @param _to The address that will receive the assigned tokens.
    /// @param _amount The amount of tokens to assign.
    /// @return True if the operation was successful.
    function assign(address _to, uint256 _amount) public onlyAssigner tokenSaleIsOngoing returns(bool) {
        require(currentTokenSaleId == 1);

        // The desired value to assign (`_amount`) can be either higher or lower than the current number of tokens
        // of the address (`balances[_to]`). To calculate the new `totalSupply_` value, the difference between `_amount`
        // and `balances[_to]` (`delta`) is calculated first, and then added or substracted to `totalSupply_` accordingly.
        uint256 delta = 0;
        if (balances[_to] < _amount) {
            // balances[_to] will be increased, so totalSupply_ should be increased
            delta = _amount.sub(balances[_to]);
            totalSupply_ = totalSupply_.add(delta);
        } else {
            // balances[_to] will be decreased, so totalSupply_ should be decreased
            delta = balances[_to].sub(_amount);
            totalSupply_ = totalSupply_.sub(delta);
        }
        require(totalSupply_ <= MAX_TOKEN_SUPPLY);

        balances[_to] = _amount;
        tokenSaleId[_to] = currentTokenSaleId;

        emit Assign(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

    /// @dev Assigns tokens to several addresses in one call.
    /// @param _to address[] The addresses that get the tokens.
    /// @param _amount address[] The number of tokens to be assigned.
    /// @return True if the operation was successful.
    function assignInBatches(address[] _to, uint256[] _amount) external onlyAssigner tokenSaleIsOngoing returns(bool) {
        require(_to.length > 0);
        require(_to.length == _amount.length);
        require(_to.length <= MAX_BATCH_SIZE);

        for (uint i = 0; i < _to.length; i++) {
            assign(_to[i], _amount[i]);
        }
        return true;
    }

    /// @dev Allows the current owner to change the locker.
    /// @param _newLocker The address of the new locker.
    /// @return True if the operation was successful.
    function transferLocker(address _newLocker) external onlyOwner returns(bool) {
        require(_newLocker != address(0));

        emit LockerTransferred(locker, _newLocker);
        locker = _newLocker;
        return true;
    }

    /// @dev Locks an address. A locked address cannot transfer its tokens or other addresses' tokens out.
    ///      Only addresses participating in the current token sale can be locked.
    ///      Only the locker account can lock addresses and only during the token sale.
    /// @param _address address The address to lock.
    /// @return True if the operation was successful.
    function lockAddress(address _address) public onlyLocker tokenSaleIsOngoing returns(bool) {
        require(tokenSaleId[_address] == currentTokenSaleId);
        require(!locked[_address]);

        locked[_address] = true;
        emit Lock(_address);
        return true;
    }

    /// @dev Unlocks an address so that its owner can transfer tokens out again.
    ///      Addresses can be unlocked any time. Only the locker account can unlock addresses
    /// @param _address address The address to unlock.
    /// @return True if the operation was successful.
    function unlockAddress(address _address) public onlyLocker returns(bool) {
        require(locked[_address]);

        locked[_address] = false;
        emit Unlock(_address);
        return true;
    }

    /// @dev Locks several addresses in one single call.
    /// @param _addresses address[] The addresses to lock.
    /// @return True if the operation was successful.
    function lockInBatches(address[] _addresses) external onlyLocker returns(bool) {
        require(_addresses.length > 0);
        require(_addresses.length <= MAX_BATCH_SIZE);

        for (uint i = 0; i < _addresses.length; i++) {
            lockAddress(_addresses[i]);
        }
        return true;
    }

    /// @dev Unlocks several addresses in one single call.
    /// @param _addresses address[] The addresses to unlock.
    /// @return True if the operation was successful.
    function unlockInBatches(address[] _addresses) external onlyLocker returns(bool) {
        require(_addresses.length > 0);
        require(_addresses.length <= MAX_BATCH_SIZE);

        for (uint i = 0; i < _addresses.length; i++) {
            unlockAddress(_addresses[i]);
        }
        return true;
    }

    /// @dev Checks whether or not the given address is locked.
    /// @param _address address The address to be checked.
    /// @return Boolean indicating whether or not the address is locked.
    function isLocked(address _address) external view returns(bool) {
        return locked[_address];
    }

    /// @dev Transfers tokens to the specified address. It prevents transferring tokens from a locked address.
    ///      Locked addresses can receive tokens.
    ///      Current token sale's addresses cannot receive or send tokens until the token sale ends.
    /// @param _to The address to transfer tokens to.
    /// @param _value The number of tokens to be transferred.
    function transfer(address _to, uint256 _value) public returns(bool) {
        require(!locked[msg.sender]);

        if (tokenSaleOngoing) {
            require(tokenSaleId[msg.sender] < currentTokenSaleId);
            require(tokenSaleId[_to] < currentTokenSaleId);
        }

        return super.transfer(_to, _value);
    }

    /// @dev Transfers tokens from one address to another. It prevents transferring tokens if the caller is locked or
    ///      if the allowed address is locked.
    ///      Locked addresses can receive tokens.
    ///      Current token sale's addresses cannot receive or send tokens until the token sale ends.
    /// @param _from address The address to transfer tokens from.
    /// @param _to address The address to transfer tokens to.
    /// @param _value The number of tokens to be transferred.
    function transferFrom(address _from, address _to, uint256 _value) public returns(bool) {
        require(!locked[msg.sender]);
        require(!locked[_from]);

        if (tokenSaleOngoing) {
            require(tokenSaleId[msg.sender] < currentTokenSaleId);
            require(tokenSaleId[_from] < currentTokenSaleId);
            require(tokenSaleId[_to] < currentTokenSaleId);
        }

        return super.transferFrom(_from, _to, _value);
    }
}

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":true,"inputs":[],"name":"assigner","outputs":[{"name":"","type":"address"}],"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":"_to","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"mintInBatches","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"lockAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"tokenSaleStart","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"unlockInBatches","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTokenSaleOngoing","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAssigner","type":"address"}],"name":"transferAssigner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAddressTokenSaleId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"assignInBatches","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"tokenSaleEnd","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentTokenSaleId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOKEN_SALES","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_UNIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newLocker","type":"address"}],"name":"transferLocker","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"lockInBatches","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"unlockAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"assign","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_BATCH_SIZE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenSaleId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleOngoing","outputs":[{"name":"","type":"bool"}],"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":"locker","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTokenSaleId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOKEN_SUPPLY","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":[{"name":"_assigner","type":"address"},{"name":"_locker","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenSaleId","type":"uint256"}],"name":"TokenSaleStarting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenSaleId","type":"uint256"}],"name":"TokenSaleEnding","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Assign","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousLocker","type":"address"},{"indexed":true,"name":"newLocker","type":"address"}],"name":"LockerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousAssigner","type":"address"},{"indexed":true,"name":"newAssigner","type":"address"}],"name":"AssignerTransferred","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"}]

608060405260006007556000600960006101000a81548160ff02191690831515021790555034801561003057600080fd5b5060405160408061349d833981018060405281019080805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156100da57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561011657600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506132f4806101a96000396000f3006080604052600436106101e3576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101e8578063095ea7b31461027857806318160ddd146102dd578063199732611461030857806323b872dd1461035f5780632ba25366146103e4578063313ce5671461044f57806334a90d021461047a578063403911a6146104d557806340c10f19146105045780634a4fbeec146105695780635b40d5dd146105c45780636007c4f814610617578063661884631461064657806370a08231146106ab578063737a76981461070257806380f6ab861461075d5780638da5cb5b146107b45780638eb7ffe81461080b578063952d6c221461087657806395d89b41146108a5578063969bf35814610935578063a413627214610960578063a5c9cd821461098b578063a9059cbb146109b6578063aa736f5714610a1b578063b0759c3e14610a76578063b7eb5e0a14610ac9578063be76048814610b24578063cbf9fe5f14610b89578063cfdbf25414610be4578063d1bdd92f14610c0f578063d4430bc714610c66578063d73dd62314610c95578063d7b96d4e14610cfa578063dd62ed3e14610d51578063e0f0497d14610dc8578063e489d51014610df3578063f2fde38b14610e1e575b600080fd5b3480156101f457600080fd5b506101fd610e61565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e9a565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610f8c565b6040518082815260200191505060405180910390f35b34801561031457600080fd5b5061031d610f96565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036b57600080fd5b506103ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbc565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610435600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611187565b604051808215151515815260200191505060405180910390f35b34801561045b57600080fd5b506104646112ae565b6040518082815260200191505060405180910390f35b34801561048657600080fd5b506104bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b3565b604051808215151515815260200191505060405180910390f35b3480156104e157600080fd5b506104ea611478565b604051808215151515815260200191505060405180910390f35b34801561051057600080fd5b5061054f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611566565b604051808215151515815260200191505060405180910390f35b34801561057557600080fd5b506105aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b604051808215151515815260200191505060405180910390f35b3480156105d057600080fd5b506105fd60048036038101908080359060200190820180359060200191909192939192939050505061189b565b604051808215151515815260200191505060405180910390f35b34801561062357600080fd5b5061062c61197c565b604051808215151515815260200191505060405180910390f35b34801561065257600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611993565b604051808215151515815260200191505060405180910390f35b3480156106b757600080fd5b506106ec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c24565b6040518082815260200191505060405180910390f35b34801561070e57600080fd5b50610743600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6c565b604051808215151515815260200191505060405180910390f35b34801561076957600080fd5b5061079e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081757600080fd5b5061085c600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611e3b565b604051808215151515815260200191505060405180910390f35b34801561088257600080fd5b5061088b611f62565b604051808215151515815260200191505060405180910390f35b3480156108b157600080fd5b506108ba61202c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108fa5780820151818401526020810190506108df565b50505050905090810190601f1680156109275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094157600080fd5b5061094a612065565b6040518082815260200191505060405180910390f35b34801561096c57600080fd5b5061097561206f565b6040518082815260200191505060405180910390f35b34801561099757600080fd5b506109a0612074565b6040518082815260200191505060405180910390f35b3480156109c257600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061207c565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a5c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219d565b604051808215151515815260200191505060405180910390f35b348015610a8257600080fd5b50610aaf6004803603810190808035906020019082018035906020019190919293919293905050506122fd565b604051808215151515815260200191505060405180910390f35b348015610ad557600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123de565b604051808215151515815260200191505060405180910390f35b348015610b3057600080fd5b50610b6f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612538565b604051808215151515815260200191505060405180910390f35b348015610b9557600080fd5b50610bca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612853565b604051808215151515815260200191505060405180910390f35b348015610bf057600080fd5b50610bf9612873565b6040518082815260200191505060405180910390f35b348015610c1b57600080fd5b50610c50600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612879565b6040518082815260200191505060405180910390f35b348015610c7257600080fd5b50610c7b612891565b604051808215151515815260200191505060405180910390f35b348015610ca157600080fd5b50610ce0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128a4565b604051808215151515815260200191505060405180910390f35b348015610d0657600080fd5b50610d0f612aa0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5d57600080fd5b50610db2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ac6565b6040518082815260200191505060405180910390f35b348015610dd457600080fd5b50610ddd612b4d565b6040518082815260200191505060405180910390f35b348015610dff57600080fd5b50610e08612b53565b6040518082815260200191505060405180910390f35b348015610e2a57600080fd5b50610e5f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b62565b005b6040805190810160405280600581526020017f4e796e6a6100000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561101757600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561107057600080fd5b600960009054906101000a900460ff161561117357600754600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156110d457600080fd5b600754600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561112357600080fd5b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561117257600080fd5b5b61117e848484612cba565b90509392505050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e657600080fd5b600960009054906101000a900460ff16151561120157600080fd5b60008686905011151561121357600080fd5b838390508686905014151561122757600080fd5b610190868690501115151561123b57600080fd5b600090505b858590508110156112a157611293868683818110151561125c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110151561128757fe5b90506020020135611566565b508080600101915050611240565b6001915050949350505050565b601281565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561131157600080fd5b600960009054906101000a900460ff16151561132c57600080fd5b600754600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561137b57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156113d457600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91360405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d657600080fd5b600960009054906101000a900460ff161515156114f257600080fd5b600560075410151561150357600080fd5b6007600081548092919060010191905055506001600960006101000a81548160ff0219169083151502179055506007547f876ae0acd69a7fae570f9828df9dc478f1772f47906e089652e7d185819f9f4660405160405180910390a26001905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c457600080fd5b600960009054906101000a900460ff1615156115df57600080fd5b6115f48260015461307490919063ffffffff16565b6001819055506012600a0a64012a05f200026001541115151561161657600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156116a557600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156116f457600080fd5b611745826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118fa57600080fd5b60008484905011151561190c57600080fd5b610190848490501115151561192057600080fd5b600090505b8383905081101561197157611963848483818110151561194157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166123de565b508080600101915050611925565b600191505092915050565b6000600960009054906101000a900460ff16905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611aa4576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b38565b611ab7838261309090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f96796c61aa903b86a8d91c28b1355e94a6d8126dc339e81028ca80a0b04ac98360405160405180910390a381600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9a57600080fd5b600960009054906101000a900460ff161515611eb557600080fd5b600086869050111515611ec757600080fd5b8383905086869050141515611edb57600080fd5b6101908686905011151515611eef57600080fd5b600090505b85859050811015611f5557611f478686838181101515611f1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168585848181101515611f3b57fe5b90506020020135612538565b508080600101915050611ef4565b6001915050949350505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fc057600080fd5b600960009054906101000a900460ff161515611fdb57600080fd5b6007547f3ab754a2b4b3c6b59edf2e5f7a39e63d76e0ee83c16a8f2160ec8bae241ca62260405160405180910390a26000600960006101000a81548160ff0219169083151502179055506001905090565b6040805190810160405280600381526020017f4e594e000000000000000000000000000000000000000000000000000000000081525081565b6000600754905090565b600581565b6012600a0a81565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156120d757600080fd5b600960009054906101000a900460ff161561218b57600754600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561213b57600080fd5b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561218a57600080fd5b5b61219583836130a9565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121fb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561223757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb6a14cb7d716300f94e7de6bf44958c82a682b2aec5d25919186fa610951811060405160405180910390a381600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235c57600080fd5b60008484905011151561236e57600080fd5b610190848490501115151561238257600080fd5b600090505b838390508110156123d3576123c584848381811015156123a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166112b3565b508080600101915050612387565b600191505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243c57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561249457600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057260405160405180910390a260019050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561259757600080fd5b600960009054906101000a900460ff1615156125b257600080fd5b60016007541415156125c357600080fd5b60009050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156126805761265e6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461309090919063ffffffff16565b90506126758160015461307490919063ffffffff16565b6001819055506126ef565b6126d1836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b90506126e88160015461309090919063ffffffff16565b6001819055505b6012600a0a64012a05f200026001541115151561270b57600080fd5b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600754600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba846040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61019081565b60086020528060005260406000206000915090505481565b600960009054906101000a900460ff1681565b600061293582600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6012600a0a64012a05f2000281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bbe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bfa57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612cf757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612d4457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612dcf57600080fd5b612e20826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000818301905082811015151561308757fe5b80905092915050565b600082821115151561309e57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156130e657600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561313357600080fd5b613184826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613217826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820a16f150ee19cfc21b73e901b62167a6d916a12c3c70d19abd5428a8ad92b91650029000000000000000000000000a29e6dd32dd4df7b63419a9931538cb1ecd8c4f10000000000000000000000004de026b32eade9e4450b1b82ff4114cc41686725

Deployed Bytecode

0x6080604052600436106101e3576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101e8578063095ea7b31461027857806318160ddd146102dd578063199732611461030857806323b872dd1461035f5780632ba25366146103e4578063313ce5671461044f57806334a90d021461047a578063403911a6146104d557806340c10f19146105045780634a4fbeec146105695780635b40d5dd146105c45780636007c4f814610617578063661884631461064657806370a08231146106ab578063737a76981461070257806380f6ab861461075d5780638da5cb5b146107b45780638eb7ffe81461080b578063952d6c221461087657806395d89b41146108a5578063969bf35814610935578063a413627214610960578063a5c9cd821461098b578063a9059cbb146109b6578063aa736f5714610a1b578063b0759c3e14610a76578063b7eb5e0a14610ac9578063be76048814610b24578063cbf9fe5f14610b89578063cfdbf25414610be4578063d1bdd92f14610c0f578063d4430bc714610c66578063d73dd62314610c95578063d7b96d4e14610cfa578063dd62ed3e14610d51578063e0f0497d14610dc8578063e489d51014610df3578063f2fde38b14610e1e575b600080fd5b3480156101f457600080fd5b506101fd610e61565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e9a565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610f8c565b6040518082815260200191505060405180910390f35b34801561031457600080fd5b5061031d610f96565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036b57600080fd5b506103ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fbc565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610435600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611187565b604051808215151515815260200191505060405180910390f35b34801561045b57600080fd5b506104646112ae565b6040518082815260200191505060405180910390f35b34801561048657600080fd5b506104bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b3565b604051808215151515815260200191505060405180910390f35b3480156104e157600080fd5b506104ea611478565b604051808215151515815260200191505060405180910390f35b34801561051057600080fd5b5061054f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611566565b604051808215151515815260200191505060405180910390f35b34801561057557600080fd5b506105aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b604051808215151515815260200191505060405180910390f35b3480156105d057600080fd5b506105fd60048036038101908080359060200190820180359060200191909192939192939050505061189b565b604051808215151515815260200191505060405180910390f35b34801561062357600080fd5b5061062c61197c565b604051808215151515815260200191505060405180910390f35b34801561065257600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611993565b604051808215151515815260200191505060405180910390f35b3480156106b757600080fd5b506106ec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c24565b6040518082815260200191505060405180910390f35b34801561070e57600080fd5b50610743600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6c565b604051808215151515815260200191505060405180910390f35b34801561076957600080fd5b5061079e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081757600080fd5b5061085c600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611e3b565b604051808215151515815260200191505060405180910390f35b34801561088257600080fd5b5061088b611f62565b604051808215151515815260200191505060405180910390f35b3480156108b157600080fd5b506108ba61202c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108fa5780820151818401526020810190506108df565b50505050905090810190601f1680156109275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094157600080fd5b5061094a612065565b6040518082815260200191505060405180910390f35b34801561096c57600080fd5b5061097561206f565b6040518082815260200191505060405180910390f35b34801561099757600080fd5b506109a0612074565b6040518082815260200191505060405180910390f35b3480156109c257600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061207c565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a5c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061219d565b604051808215151515815260200191505060405180910390f35b348015610a8257600080fd5b50610aaf6004803603810190808035906020019082018035906020019190919293919293905050506122fd565b604051808215151515815260200191505060405180910390f35b348015610ad557600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123de565b604051808215151515815260200191505060405180910390f35b348015610b3057600080fd5b50610b6f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612538565b604051808215151515815260200191505060405180910390f35b348015610b9557600080fd5b50610bca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612853565b604051808215151515815260200191505060405180910390f35b348015610bf057600080fd5b50610bf9612873565b6040518082815260200191505060405180910390f35b348015610c1b57600080fd5b50610c50600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612879565b6040518082815260200191505060405180910390f35b348015610c7257600080fd5b50610c7b612891565b604051808215151515815260200191505060405180910390f35b348015610ca157600080fd5b50610ce0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128a4565b604051808215151515815260200191505060405180910390f35b348015610d0657600080fd5b50610d0f612aa0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5d57600080fd5b50610db2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ac6565b6040518082815260200191505060405180910390f35b348015610dd457600080fd5b50610ddd612b4d565b6040518082815260200191505060405180910390f35b348015610dff57600080fd5b50610e08612b53565b6040518082815260200191505060405180910390f35b348015610e2a57600080fd5b50610e5f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b62565b005b6040805190810160405280600581526020017f4e796e6a6100000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561101757600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561107057600080fd5b600960009054906101000a900460ff161561117357600754600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156110d457600080fd5b600754600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561112357600080fd5b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561117257600080fd5b5b61117e848484612cba565b90509392505050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e657600080fd5b600960009054906101000a900460ff16151561120157600080fd5b60008686905011151561121357600080fd5b838390508686905014151561122757600080fd5b610190868690501115151561123b57600080fd5b600090505b858590508110156112a157611293868683818110151561125c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110151561128757fe5b90506020020135611566565b508080600101915050611240565b6001915050949350505050565b601281565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561131157600080fd5b600960009054906101000a900460ff16151561132c57600080fd5b600754600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561137b57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156113d457600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc1b5f12cea7c200ad495a43bf2d4c7ba1a753343c06c339093937849de84d91360405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d657600080fd5b600960009054906101000a900460ff161515156114f257600080fd5b600560075410151561150357600080fd5b6007600081548092919060010191905055506001600960006101000a81548160ff0219169083151502179055506007547f876ae0acd69a7fae570f9828df9dc478f1772f47906e089652e7d185819f9f4660405160405180910390a26001905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c457600080fd5b600960009054906101000a900460ff1615156115df57600080fd5b6115f48260015461307490919063ffffffff16565b6001819055506012600a0a64012a05f200026001541115151561161657600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156116a557600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156116f457600080fd5b611745826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118fa57600080fd5b60008484905011151561190c57600080fd5b610190848490501115151561192057600080fd5b600090505b8383905081101561197157611963848483818110151561194157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166123de565b508080600101915050611925565b600191505092915050565b6000600960009054906101000a900460ff16905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611aa4576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b38565b611ab7838261309090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f96796c61aa903b86a8d91c28b1355e94a6d8126dc339e81028ca80a0b04ac98360405160405180910390a381600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9a57600080fd5b600960009054906101000a900460ff161515611eb557600080fd5b600086869050111515611ec757600080fd5b8383905086869050141515611edb57600080fd5b6101908686905011151515611eef57600080fd5b600090505b85859050811015611f5557611f478686838181101515611f1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168585848181101515611f3b57fe5b90506020020135612538565b508080600101915050611ef4565b6001915050949350505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fc057600080fd5b600960009054906101000a900460ff161515611fdb57600080fd5b6007547f3ab754a2b4b3c6b59edf2e5f7a39e63d76e0ee83c16a8f2160ec8bae241ca62260405160405180910390a26000600960006101000a81548160ff0219169083151502179055506001905090565b6040805190810160405280600381526020017f4e594e000000000000000000000000000000000000000000000000000000000081525081565b6000600754905090565b600581565b6012600a0a81565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156120d757600080fd5b600960009054906101000a900460ff161561218b57600754600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561213b57600080fd5b600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561218a57600080fd5b5b61219583836130a9565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121fb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561223757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb6a14cb7d716300f94e7de6bf44958c82a682b2aec5d25919186fa610951811060405160405180910390a381600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235c57600080fd5b60008484905011151561236e57600080fd5b610190848490501115151561238257600080fd5b600090505b838390508110156123d3576123c584848381811015156123a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166112b3565b508080600101915050612387565b600191505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243c57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561249457600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f0be774851955c26a1d6a32b13b020663a069006b4a3b643ff0b809d31826057260405160405180910390a260019050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561259757600080fd5b600960009054906101000a900460ff1615156125b257600080fd5b60016007541415156125c357600080fd5b60009050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156126805761265e6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461309090919063ffffffff16565b90506126758160015461307490919063ffffffff16565b6001819055506126ef565b6126d1836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b90506126e88160015461309090919063ffffffff16565b6001819055505b6012600a0a64012a05f200026001541115151561270b57600080fd5b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600754600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba846040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61019081565b60086020528060005260406000206000915090505481565b600960009054906101000a900460ff1681565b600061293582600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6012600a0a64012a05f2000281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bbe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bfa57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612cf757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612d4457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612dcf57600080fd5b612e20826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000818301905082811015151561308757fe5b80905092915050565b600082821115151561309e57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156130e657600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561313357600080fd5b613184826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613217826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820a16f150ee19cfc21b73e901b62167a6d916a12c3c70d19abd5428a8ad92b91650029

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

000000000000000000000000a29e6dd32dd4df7b63419a9931538cb1ecd8c4f10000000000000000000000004de026b32eade9e4450b1b82ff4114cc41686725

-----Decoded View---------------
Arg [0] : _assigner (address): 0xA29E6dD32dd4DF7b63419A9931538Cb1eCd8c4F1
Arg [1] : _locker (address): 0x4De026b32EAde9e4450B1b82FF4114Cc41686725

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a29e6dd32dd4df7b63419a9931538cb1ecd8c4f1
Arg [1] : 0000000000000000000000004de026b32eade9e4450b1b82ff4114cc41686725


Deployed Bytecode Sourcemap

9358:13401:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9441:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9441:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9441:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6625:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6625:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3298:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3298:85:0;;;;;;;;;;;;;;;;;;;;;;;10049:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10049:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;22292:464;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22292:464:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15313:373;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15313:373:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9529:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9529:37:0;;;;;;;;;;;;;;;;;;;;;;;18940:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18940:286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12350:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12350:285:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14495:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14495:532:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20937:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20937:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20411:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20411:319:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13090:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13090:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8481:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8481:412:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4082:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4082:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13930:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13930:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13615:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13615:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1559:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17747:377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17747:377:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12778:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12778:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9485:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9485:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9485:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13309:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13309:108:0;;;;;;;;;;;;;;;;;;;;;;;9886:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9886:43:0;;;;;;;;;;;;;;;;;;;;;;;9638:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9638:60:0;;;;;;;;;;;;;;;;;;;;;;;21434:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21434:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18306:236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18306:236:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19911:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19911:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19522:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19522:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16254:1231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16254:1231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10233:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10233:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9996:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9996:44:0;;;;;;;;;;;;;;;;;;;;;;;10429:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10429:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10534:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10534:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7741:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7741:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10149:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10149:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7144:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7144:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10338:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10338:37:0;;;;;;;;;;;;;;;;;;;;;;;9755:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9755:66:0;;;;;;;;;;;;;;;;;;;;;;;2179:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2179:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9441:37;;;;;;;;;;;;;;;;;;;;:::o;6625:192::-;6692:4;6737:6;6705:7;:19;6713:10;6705:19;;;;;;;;;;;;;;;:29;6725:8;6705:29;;;;;;;;;;;;;;;:38;;;;6776:8;6755:38;;6764:10;6755:38;;;6786:6;6755:38;;;;;;;;;;;;;;;;;;6807:4;6800:11;;6625:192;;;;:::o;3298:85::-;3342:7;3365:12;;3358:19;;3298:85;:::o;10049:23::-;;;;;;;;;;;;;:::o;22292:464::-;22373:4;22399:6;:18;22406:10;22399:18;;;;;;;;;;;;;;;;;;;;;;;;;22398:19;22390:28;;;;;;;;22438:6;:13;22445:5;22438:13;;;;;;;;;;;;;;;;;;;;;;;;;22437:14;22429:23;;;;;;;;22469:16;;;;;;;;;;;22465:226;;;22536:18;;22510:11;:23;22522:10;22510:23;;;;;;;;;;;;;;;;:44;22502:53;;;;;;;;22599:18;;22578:11;:18;22590:5;22578:18;;;;;;;;;;;;;;;;:39;22570:48;;;;;;;;22660:18;;22641:11;:16;22653:3;22641:16;;;;;;;;;;;;;;;;:37;22633:46;;;;;;;;22465:226;22710:38;22729:5;22736:3;22741:6;22710:18;:38::i;:::-;22703:45;;22292:464;;;;;:::o;15313:373::-;15419:4;15573:6;11845:8;;;;;;;;;;;11831:22;;:10;:22;;;11823:31;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;15457:1;15444:3;;:10;;:14;15436:23;;;;;;;;15492:7;;:14;;15478:3;;:10;;:28;15470:37;;;;;;;;10037:3;15526;;:10;;:28;;15518:37;;;;;;;;15582:1;15573:10;;15568:89;15589:3;;:10;;15585:1;:14;15568:89;;;15621:24;15626:3;;15630:1;15626:6;;;;;;;;;;;;;;;;;15634:7;;15642:1;15634:10;;;;;;;;;;;;;;;15621:4;:24::i;:::-;;15601:3;;;;;;;15568:89;;;15674:4;15667:11;;15313:373;;;;;;;:::o;9529:37::-;9564:2;9529:37;:::o;18940:286::-;19024:4;12006:6;;;;;;;;;;;11992:20;;:10;:20;;;11984:29;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;19074:18;;19049:11;:21;19061:8;19049:21;;;;;;;;;;;;;;;;:43;19041:52;;;;;;;;19113:6;:16;19120:8;19113:16;;;;;;;;;;;;;;;;;;;;;;;;;19112:17;19104:26;;;;;;;;19162:4;19143:6;:16;19150:8;19143:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19187:8;19182:14;;;;;;;;;;;;19214:4;19207:11;;18940:286;;;:::o;12350:285::-;12425:4;1992:5;;;;;;;;;;;1978:19;;:10;:19;;;1970:28;;;;;;;;11672:16;;;;;;;;;;;11671:17;11663:26;;;;;;;;9928:1;12450:18;;:36;12442:45;;;;;;;;12498:18;;:20;;;;;;;;;;;;;12548:4;12529:16;;:23;;;;;;;;;;;;;;;;;;12586:18;;12568:37;;;;;;;;;;12623:4;12616:11;;12350:285;:::o;14495:532::-;14586:4;11845:8;;;;;;;;;;;11831:22;;:10;:22;;;11823:31;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;14618;14635:7;14618:12;;:16;;:25;;;;:::i;:::-;14603:12;:40;;;;9564:2;9675;:23;9798:10;:23;14662:12;;:32;;14654:41;;;;;;;;14732:1;14712:11;:16;14724:3;14712:16;;;;;;;;;;;;;;;;:21;14708:91;;;14769:18;;14750:11;:16;14762:3;14750:16;;;;;;;;;;;;;;;:37;;;;14708:91;14837:18;;14817:11;:16;14829:3;14817:16;;;;;;;;;;;;;;;;:38;14809:47;;;;;;;;14885:26;14903:7;14885:8;:13;14894:3;14885:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;14869:8;:13;14878:3;14869:13;;;;;;;;;;;;;;;:42;;;;14934:3;14929:18;;;14939:7;14929:18;;;;;;;;;;;;;;;;;;14984:3;14963:34;;14980:1;14963:34;;;14989:7;14963:34;;;;;;;;;;;;;;;;;;15015:4;15008:11;;14495:532;;;;:::o;20937:106::-;20995:4;21019:6;:16;21026:8;21019:16;;;;;;;;;;;;;;;;;;;;;;;;;21012:23;;20937:106;;;:::o;20411:319::-;20486:4;20606:6;12006;;;;;;;;;;;11992:20;;:10;:20;;;11984:29;;;;;;;;20531:1;20511:10;;:17;;:21;20503:30;;;;;;;;10037:3;20552:10;;:17;;:35;;20544:44;;;;;;;;20615:1;20606:10;;20601:100;20622:10;;:17;;20618:1;:21;20601:100;;;20661:28;20675:10;;20686:1;20675:13;;;;;;;;;;;;;;;;;20661;:28::i;:::-;;20641:3;;;;;;;20601:100;;;20718:4;20711:11;;20411:319;;;;;:::o;13090:100::-;13142:4;13166:16;;;;;;;;;;;13159:23;;13090:100;:::o;8481:412::-;8564:4;8577:13;8593:7;:19;8601:10;8593:19;;;;;;;;;;;;;;;:29;8613:8;8593:29;;;;;;;;;;;;;;;;8577:45;;8652:8;8633:16;:27;8629:168;;;8703:1;8671:7;:19;8679:10;8671:19;;;;;;;;;;;;;;;:29;8691:8;8671:29;;;;;;;;;;;;;;;:33;;;;8629:168;;;8759:30;8772:16;8759:8;:12;;:30;;;;:::i;:::-;8727:7;:19;8735:10;8727:19;;;;;;;;;;;;;;;:29;8747:8;8727:29;;;;;;;;;;;;;;;:62;;;;8629:168;8829:8;8808:61;;8817:10;8808:61;;;8839:7;:19;8847:10;8839:19;;;;;;;;;;;;;;;:29;8859:8;8839:29;;;;;;;;;;;;;;;;8808:61;;;;;;;;;;;;;;;;;;8883:4;8876:11;;8481:412;;;;;:::o;4082:101::-;4138:7;4161:8;:16;4170:6;4161:16;;;;;;;;;;;;;;;;4154:23;;4082:101;;;:::o;13930:252::-;14005:4;1992:5;;;;;;;;;;;1978:19;;:10;:19;;;1970:28;;;;;;;;14054:1;14030:26;;:12;:26;;;;14022:35;;;;;;;;14105:12;14075:43;;14095:8;;;;;;;;;;;14075:43;;;;;;;;;;;;14140:12;14129:8;;:23;;;;;;;;;;;;;;;;;;14170:4;14163:11;;13930:252;;;:::o;13615:127::-;13686:7;13713:11;:21;13725:8;13713:21;;;;;;;;;;;;;;;;13706:28;;13615:127;;;:::o;1559:20::-;;;;;;;;;;;;;:::o;17747:377::-;17855:4;18009:6;11845:8;;;;;;;;;;;11831:22;;:10;:22;;;11823:31;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;17893:1;17880:3;;:10;;:14;17872:23;;;;;;;;17928:7;;:14;;17914:3;;:10;;:28;17906:37;;;;;;;;10037:3;17962;;:10;;:28;;17954:37;;;;;;;;18018:1;18009:10;;18004:91;18025:3;;:10;;18021:1;:14;18004:91;;;18057:26;18064:3;;18068:1;18064:6;;;;;;;;;;;;;;;;;18072:7;;18080:1;18072:10;;;;;;;;;;;;;;;18057:6;:26::i;:::-;;18037:3;;;;;;;18004:91;;;18112:4;18105:11;;17747:377;;;;;;;:::o;12778:192::-;12848:4;1992:5;;;;;;;;;;;1978:19;;:10;:19;;;1970:28;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;12886:18;;12870:35;;;;;;;;;;12935:5;12916:16;;:24;;;;;;;;;;;;;;;;;;12958:4;12951:11;;12778:192;:::o;9485:37::-;;;;;;;;;;;;;;;;;;;;:::o;13309:108::-;13364:7;13391:18;;13384:25;;13309:108;:::o;9886:43::-;9928:1;9886:43;:::o;9638:60::-;9564:2;9675;:23;9638:60;:::o;21434:337::-;21496:4;21522:6;:18;21529:10;21522:18;;;;;;;;;;;;;;;;;;;;;;;;;21521:19;21513:28;;;;;;;;21558:16;;;;;;;;;;;21554:163;;;21625:18;;21599:11;:23;21611:10;21599:23;;;;;;;;;;;;;;;;:44;21591:53;;;;;;;;21686:18;;21667:11;:16;21679:3;21667:16;;;;;;;;;;;;;;;;:37;21659:46;;;;;;;;21554:163;21736:27;21751:3;21756:6;21736:14;:27::i;:::-;21729:34;;21434:337;;;;:::o;18306:236::-;18377:4;1992:5;;;;;;;;;;;1978:19;;:10;:19;;;1970:28;;;;;;;;18424:1;18402:24;;:10;:24;;;;18394:33;;;;;;;;18471:10;18445:37;;18463:6;;;;;;;;;;;18445:37;;;;;;;;;;;;18502:10;18493:6;;:19;;;;;;;;;;;;;;;;;;18530:4;18523:11;;18306:236;;;:::o;19911:315::-;19984:4;20104:6;12006;;;;;;;;;;;11992:20;;:10;:20;;;11984:29;;;;;;;;20029:1;20009:10;;:17;;:21;20001:30;;;;;;;;10037:3;20050:10;;:17;;:35;;20042:44;;;;;;;;20113:1;20104:10;;20099:98;20120:10;;:17;;20116:1;:21;20099:98;;;20159:26;20171:10;;20182:1;20171:13;;;;;;;;;;;;;;;;;20159:11;:26::i;:::-;;20139:3;;;;;;;20099:98;;;20214:4;20207:11;;19911:315;;;;;:::o;19522:208::-;19589:4;12006:6;;;;;;;;;;;11992:20;;:10;:20;;;11984:29;;;;;;;;19614:6;:16;19621:8;19614:16;;;;;;;;;;;;;;;;;;;;;;;;;19606:25;;;;;;;;19663:5;19644:6;:16;19651:8;19644:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;19691:8;19684:16;;;;;;;;;;;;19718:4;19711:11;;19522:208;;;:::o;16254:1231::-;16347:4;16771:13;11845:8;;;;;;;;;;;11831:22;;:10;:22;;;11823:31;;;;;;;;11523:16;;;;;;;;;;;11515:25;;;;;;;;16394:1;16372:18;;:23;16364:32;;;;;;;;16787:1;16771:17;;16819:7;16803:8;:13;16812:3;16803:13;;;;;;;;;;;;;;;;:23;16799:433;;;16936:26;16948:8;:13;16957:3;16948:13;;;;;;;;;;;;;;;;16936:7;:11;;:26;;;;:::i;:::-;16928:34;;16992:23;17009:5;16992:12;;:16;;:23;;;;:::i;:::-;16977:12;:38;;;;16799:433;;;17141:26;17159:7;17141:8;:13;17150:3;17141:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;17133:34;;17197:23;17214:5;17197:12;;:16;;:23;;;;:::i;:::-;17182:12;:38;;;;16799:433;9564:2;9675;:23;9798:10;:23;17250:12;;:32;;17242:41;;;;;;;;17312:7;17296:8;:13;17305:3;17296:13;;;;;;;;;;;;;;;:23;;;;17349:18;;17330:11;:16;17342:3;17330:16;;;;;;;;;;;;;;;:37;;;;17392:3;17385:20;;;17397:7;17385:20;;;;;;;;;;;;;;;;;;17442:3;17421:34;;17438:1;17421:34;;;17447:7;17421:34;;;;;;;;;;;;;;;;;;17473:4;17466:11;;16254:1231;;;;;:::o;10233:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;9996:44::-;10037:3;9996:44;:::o;10429:46::-;;;;;;;;;;;;;;;;;:::o;10534:36::-;;;;;;;;;;;;;:::o;7741:266::-;7819:4;7864:46;7898:11;7864:7;:19;7872:10;7864:19;;;;;;;;;;;;;;;:29;7884:8;7864:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7832:7;:19;7840:10;7832:19;;;;;;;;;;;;;;;:29;7852:8;7832:29;;;;;;;;;;;;;;;:78;;;;7943:8;7922:61;;7931:10;7922:61;;;7953:7;:19;7961:10;7953:19;;;;;;;;;;;;;;;:29;7973:8;7953:29;;;;;;;;;;;;;;;;7922:61;;;;;;;;;;;;;;;;;;7997:4;7990:11;;7741:266;;;;:::o;10149:21::-;;;;;;;;;;;;;:::o;7144:128::-;7218:7;7241;:15;7249:6;7241:15;;;;;;;;;;;;;;;:25;7257:8;7241:25;;;;;;;;;;;;;;;;7234:32;;7144:128;;;;:::o;10338:37::-;;;;:::o;9755:66::-;9564:2;9675;:23;9798:10;:23;9755:66;:::o;2179:178::-;1992:5;;;;;;;;;;;1978:19;;:10;:19;;;1970:28;;;;;;;;2276:1;2256:22;;:8;:22;;;;2248:31;;;;;;;;2319:8;2291:37;;2312:5;;;;;;;;;;;2291:37;;;;;;;;;;;;2343:8;2335:5;;:16;;;;;;;;;;;;;;;;;;2179:178;:::o;5536:454::-;5618:4;5654:1;5639:17;;:3;:17;;;;5631:26;;;;;;;;5682:8;:15;5691:5;5682:15;;;;;;;;;;;;;;;;5672:6;:25;;5664:34;;;;;;;;5723:7;:14;5731:5;5723:14;;;;;;;;;;;;;;;:26;5738:10;5723:26;;;;;;;;;;;;;;;;5713:6;:36;;5705:45;;;;;;;;5777:27;5797:6;5777:8;:15;5786:5;5777:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5759:8;:15;5768:5;5759:15;;;;;;;;;;;;;;;:45;;;;5827:25;5845:6;5827:8;:13;5836:3;5827:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5811:8;:13;5820:3;5811:13;;;;;;;;;;;;;;;:41;;;;5888:38;5919:6;5888:7;:14;5896:5;5888:14;;;;;;;;;;;;;;;:26;5903:10;5888:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;5859:7;:14;5867:5;5859:14;;;;;;;;;;;;;;;:26;5874:10;5859:26;;;;;;;;;;;;;;;:67;;;;5954:3;5938:28;;5947:5;5938:28;;;5959:6;5938:28;;;;;;;;;;;;;;;;;;5980:4;5973:11;;5536:454;;;;;:::o;1112:127::-;1170:9;1196:1;1192;:5;1188:9;;1216:1;1211;:6;;1204:14;;;;;;1232:1;1225:8;;1112:127;;;;:::o;932:113::-;990:7;1018:1;1013;:6;;1006:14;;;;;;1038:1;1034;:5;1027:12;;932:113;;;;:::o;3544:329::-;3607:4;3643:1;3628:17;;:3;:17;;;;3620:26;;;;;;;;3671:8;:20;3680:10;3671:20;;;;;;;;;;;;;;;;3661:6;:30;;3653:39;;;;;;;;3724:32;3749:6;3724:8;:20;3733:10;3724:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3701:8;:20;3710:10;3701:20;;;;;;;;;;;;;;;:55;;;;3779:25;3797:6;3779:8;:13;3788:3;3779:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3763:8;:13;3772:3;3763:13;;;;;;;;;;;;;;;:41;;;;3837:3;3816:33;;3825:10;3816:33;;;3842:6;3816:33;;;;;;;;;;;;;;;;;;3863:4;3856:11;;3544:329;;;;:::o

Swarm Source

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