Contract 0xa55bb91de33b4abdf3ac64913d98a55ad84dc3a8

 

Contract Overview

BlowFish: BLOWF Token
Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x02cf266d76be6143600a075a98088f0d1c24f1af0fabe99ccd5afd35ae4ca27c83547572021-06-16 19:12:3436 mins ago0x7809ea48f0b39fe85e582075da77aa2217aa272e IN  BlowFish: BLOWF Token0 BNB0.000221815
0xd8488eba2f02b8503af72b1f9b70a2d7d96e5e4ae0074b1817de97cbb92f24fa83520372021-06-16 16:55:402 hrs 53 mins ago0xd5c40242369761d51be729f3774cfacf1b1aadb5 IN  BlowFish: BLOWF Token0 BNB0.000221815
0xfc46e749a6b1a82895f6ea9b4053ac07002edcf61ba9bedaa3cc8c4c9dbebdba83518922021-06-16 16:48:253 hrs ago0x2b3442c659f921e8c062f4eded945cc52c57c770 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x90221837222a1aea7eef00a19a203b04821b1365ab4c1e986b3df5d23331aa8a83497762021-06-16 15:01:464 hrs 47 mins ago0x5d5e12b5e53933a4e7e5aad4b12a1c94791b3389 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x3ffecc0348208e102937d4c6051d15aa1ed6e7c35209f40e1271d02223da2c8e83450222021-06-16 11:02:398 hrs 46 mins ago0x7fcaf79d503ed718b227084578657b8d965aca67 IN  BlowFish: BLOWF Token0 BNB0.000266178
0x049e914e25d4da0588f9b2b6b63711791aa3c18adb52998faa322af57d0f24dd83434212021-06-16 9:42:1010 hrs 6 mins ago0x08f45366607670ea2ed39eed6c06c5837f605baa IN  BlowFish: BLOWF Token0 BNB0.000221815
0x2914d968ec93aa0ee37ef34025fafd43fb9abc9c4fb41baf288953cc4a63893c83425782021-06-16 8:59:5210 hrs 49 mins ago0xeacf4e349ec27f8a95e386c723ffd1e3dc4da306 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x1c569a4895c1e1975a3e9fd888d0c2295be6a8e07441ad2d77287747e9a1defe83420312021-06-16 8:32:0711 hrs 16 mins ago0xeb39cde874faeec4cddb18429c486741aa1d6557 IN  BlowFish: BLOWF Token0 BNB0.000220375
0xf80649be438e3f875c4f5164d5e5c001ea31d3ad9d67e2e1e133470d5a1af77b83419032021-06-16 8:25:4311 hrs 23 mins ago0xeb39cde874faeec4cddb18429c486741aa1d6557 IN  BlowFish: BLOWF Token0 BNB0.000220375
0xb7d5d4370f9e1098daea1dd8af49f081089ef9956d65d3e91d8a98421a996c3b83377922021-06-16 4:58:1414 hrs 50 mins ago0xb5c524c9ca305c70d87cbcac80558cb52550227d IN  BlowFish: BLOWF Token0 BNB0.000221815
0x037f42c209c3f5e84455c92db88d35771dda281172843dd215881dbf3e0fabe683260132021-06-15 19:03:501 day 45 mins ago0x7e9993c1fc74d651a842373e66d4daefd0326b66 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x6bd6f0ad14f4b800f943888fb575f28523fe5cff7f83ea9fdaaf6c395dccba7d83251742021-06-15 18:21:241 day 1 hr ago0x6b78778f83327311511a810408652614e84366f4 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x442701289bc36dbad6a9c7db5408e4eff1956d97b3fd584ada8262c9045a90d883247982021-06-15 18:02:291 day 1 hr ago0xeb39cde874faeec4cddb18429c486741aa1d6557 IN  BlowFish: BLOWF Token0 BNB0.000221815
0xa889e2a82eff7b449eb9ae364aeeffea7b516df4625b3bd4a1ef676d3958416b83232892021-06-15 16:47:021 day 3 hrs ago0x299bb8d4141b2d01f265b77e3bf01e6d9125a4a4 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x2fdaa47dd450460760309b4155907c04c8b15e706bb7d92fba1aa4a608a55ca683194822021-06-15 13:34:091 day 6 hrs ago0x5bbb88ed592343b5dcedc2578dd499c5f1be3685 IN  BlowFish: BLOWF Token0 BNB0.000220375
0x2ff650ac03777214582830c155c497df5e0e8d305f7ade45b97b86af8c430f7e83191372021-06-15 13:15:501 day 6 hrs ago0x945c1f396e3ae46f6a430172051d5deef7add6be IN  BlowFish: BLOWF Token0 BNB0.000221815
0x615af1196a1f6cb23e465337271052c464469156c3e81f1387ed837820e23eae83171142021-06-15 11:31:561 day 8 hrs ago0x6b597c1b54d3fd9f42326d6f8ae5c24aa54638ab IN  BlowFish: BLOWF Token0 BNB0.000221815
0xf8d7b558a00fb9d9f0e7510468f7f2cf2b29a198cbf9a43448ab50c3a364f69883162292021-06-15 10:46:541 day 9 hrs ago0xb2e615512c5c74573916854e0e62920c918e3455 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x4d9ab4817557b51ebdb8b626b673f82b50758447d0efef3f69961d4e8b7397d383150822021-06-15 9:46:471 day 10 hrs ago0x4df0a3818872acfef8c99c5038b0b454238e7903 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x49be1e104bc695354315134b2b94f67e806a8840e32a1d156ed2e6e19312a4b483149102021-06-15 9:38:031 day 10 hrs ago0x822200d2d37b2e97ed57fe8825b819aa09a04514 IN  BlowFish: BLOWF Token0 BNB0.000220315
0x7aab636b141aaeb9bfb4b911115fe8bdbb4031d1ab3d5c5dcec50f46d3eb0b6983119492021-06-15 7:07:111 day 12 hrs ago0xf6cb06b133ba27f97d4bb8b007e423d22ddaecd9 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x950b3a888086e8e24d867405069fc90e979ae45d1e33e146e340cb05c4aff13b83104242021-06-15 5:50:021 day 13 hrs ago0xe7bcc5ceb25a9c19ddbd20df69787f7ea287e4eb IN  BlowFish: BLOWF Token0 BNB0.000221815
0x9bfd0d9e781090fc3771d675be9fbd894aeedf938da6afaa474ce8cf686ff49483098752021-06-15 5:22:331 day 14 hrs ago0xeb39cde874faeec4cddb18429c486741aa1d6557 IN  BlowFish: BLOWF Token0 BNB0.000220375
0x8f5631656d08919b8864f7b59b2493be7bf11411961a46e3ae0887eacdd4e54283000682021-06-14 21:04:481 day 22 hrs ago0xd93941f63ff281058c9b4984c8e8b481e8917551 IN  BlowFish: BLOWF Token0 BNB0.000221815
0x595ce4f8444f67bd80cdd25134601d6ca33f7088fdb416bead7c2e878a23ec6182918942021-06-14 14:13:282 days 5 hrs ago0xb72e3049c08773dcb98908e5c6df42fcf46ab1f3 IN  BlowFish: BLOWF Token0 BNB0.000221815
[ Download CSV Export 

OVERVIEW

BlowFish is a fun utility token. Aiming to be a platform for entertaining DApps.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7879038db9cb1ac3ee0136b495222521381a3f62eee7863ea9bad143b2db2fe858229942021-03-19 17:28:3489 days 2 hrs ago ElonTech: Deployer  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xA9962aa7B9d4D8B78df920589B1Bc8Ec62C64Cf7

Contract Name:
MainToken

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-01
*/

/**
 *Submitted for verification at BscScan.com on 2021-04-01
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.4.26;
//pragma experimental ABIEncoderV2;

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


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

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

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

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


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is IERC20 {


   bool public transferrable = false;
  //  function __enableTransfer() public onlyOwner {
        
  //   transferrable = true;   
        
        
 //   }
  
  function allowance(address owner, address spender)
    public view returns (uint256);

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

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}



/**
 * @title 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) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

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


/**
 * @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 OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


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

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @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 {
    _transferOwnership(_newOwner);
  }

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








/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is IERC20, Ownable {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;
  
  bool transferrable = false;
  
 // function __basicTokenTransferable() public onlyOwner{
      
 //    transferrable = true; 
      
 // }
  
    function __AllowTokenTransfer() public onlyOwner{
      
     transferrable = true; 
      
  }


  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }
  
    function totalSupplyCheck() public 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(transferrable, "Token is not transferrable yet");  
    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];
  }

}


/**
 * @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(transferrable);  
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);
    require(transferrable);
    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;
  }

}


/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
contract MintableToken is StandardToken { 
//contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();
        
    bool __Finalized = false;    
   
    
  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  modifier hasMintPermission() {
    require(msg.sender == owner);
    _;
  }
  
  function __basicTokenTransferable() public onlyOwner {
      
     transferrable = true; 
      
  }
  
  
  
  function stop_mint() onlyOwner {
      
   __Finalized = true;   
      
  }
  /**
   * @dev Function to mint tokens
   * @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
  )
    hasMintPermission
    canMint
    public
    returns (bool)
  {
    require (!__Finalized);    // security measure preventing minting after finalization
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    emit Mint(_to, _amount);
    emit Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}


contract FreezableToken is StandardToken {
    // freezing chains
    mapping (bytes32 => uint64) internal chains;
    // freezing amounts for each chain
    mapping (bytes32 => uint) internal freezings;
    // total freezing balance per address
    mapping (address => uint) internal freezingBalance;

    event Freezed(address indexed to, uint64 release, uint amount);
    event Released(address indexed owner, uint amount);

    function toKey(address _addr, uint _release) internal pure returns (bytes32 result) {
        // WISH masc to increase entropy
        result = 0x5749534800000000000000000000000000000000000000000000000000000000;
        assembly {
            result := or(result, mul(_addr, 0x10000000000000000))
            result := or(result, _release)
        }
    }



    /**
     * @dev gets freezing count
     * @param _addr Address of freeze tokens owner.
     */
    function freezingCount(address _addr) public view returns (uint count) {
        uint64 release = chains[toKey(_addr, 0)];
        while (release != 0) {
            count++;
            release = chains[toKey(_addr, release)];
        }
    }

    /**
     * @dev gets freezing end date and freezing balance for the freezing portion specified by index.
     * @param _addr Address of freeze tokens owner.
     * @param _index Freezing portion index. It ordered by release date descending.
     */
    function getFreezing(address _addr, uint _index) public view returns (uint64 _release, uint _balance) {
        for (uint i = 0; i < _index + 1; i++) {
            _release = chains[toKey(_addr, _release)];
            if (_release == 0) {
                return;
            }
        }
        _balance = freezings[toKey(_addr, _release)];
    }
    
    function releaseOnce() public {
        bytes32 headKey = toKey(msg.sender, 0);
        uint64 head = chains[headKey];
        require(head != 0);
        require(uint64(block.timestamp) > head);
        bytes32 currentKey = toKey(msg.sender, head);

        uint64 next = chains[currentKey];

        uint amount = freezings[currentKey];
        delete freezings[currentKey];

        balances[msg.sender] = balances[msg.sender].add(amount);
        freezingBalance[msg.sender] = freezingBalance[msg.sender].sub(amount);

        if (next == 0) {
            delete chains[headKey];
        } else {
            chains[headKey] = next;
            delete chains[currentKey];
        }
        emit Released(msg.sender, amount);
    }
    
    
        /*
     * @dev release all available for release freezing tokens. Gas usage is not deterministic!
     * @return how many tokens was released
     */
    function releaseAll() public returns (uint tokens) {
        uint release;
        uint balance;
        (release, balance) = getFreezing(msg.sender, 0);
        while (release != 0 && block.timestamp > release) {
            releaseOnce();
            tokens += balance;
            (release, balance) = getFreezing(msg.sender, 0);
        }
    }
    
    function freeze(address _to, uint64 _until) internal {
        require(_until > block.timestamp);
        bytes32 key = toKey(_to, _until);
        bytes32 parentKey = toKey(_to, uint64(0));
        uint64 next = chains[parentKey];

        if (next == 0) {
            chains[parentKey] = _until;
            return;
        }

        bytes32 nextKey = toKey(_to, next);
        uint parent;

        while (next != 0 && _until > next) {
            parent = next;
            parentKey = nextKey;

            next = chains[nextKey];
            nextKey = toKey(_to, next);
        }

        if (_until == next) {
            return;
        }

        if (next != 0) {
            chains[key] = next;
        }

        chains[parentKey] = _until;
    }
}



contract FreezableMintableToken is FreezableToken, MintableToken {
    /**
     * @dev Mint the specified amount of token to the specified address and freeze it until the specified date.
     *      Be careful, gas usage is not deterministic,
     *      and depends on how many freezes _to address already has.
     * @param _to Address to which token will be freeze.
     * @param _amount Amount of token to mint and freeze.
     * @param _until Release date, must be in future.
     * @return A boolean that indicates if the operation was successful.
     */
    function mintAndFreeze(address _to, uint _amount, uint64 _until) public onlyOwner canMint returns (bool) {
        totalSupply_ = totalSupply_.add(_amount);

        bytes32 currentKey = toKey(_to, _until);
        freezings[currentKey] = freezings[currentKey].add(_amount);
        freezingBalance[_to] = freezingBalance[_to].add(_amount);

        freeze(_to, _until);
        emit Mint(_to, _amount);
        emit Freezed(_to, _until, _amount);
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }
}



contract Consts {
    uint  constant TOKEN_DECIMALS = 18;
    uint8  constant TOKEN_DECIMALS_UINT8 = 18;
    uint  constant TOKEN_DECIMAL_MULTIPLIER = 10 ** TOKEN_DECIMALS;



    bool constant CONTINUE_MINTING = false;
    
    
}



contract MainToken is Consts, FreezableMintableToken
    
{
 
 string public name;
    string public symbol;
    uint8 public decimals;
       
       
       constructor (string memory _name, string memory _symbol) public {
        name = _name;
        symbol = _symbol;
        decimals = 18;
    } 
    
    function __name() public view returns (string) {
        return name;
    }

    function __symbol() public view returns (string) {
        return symbol;
    }

    function __decimals() public pure returns (uint8 _decimals) {
        return TOKEN_DECIMALS_UINT8;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool _success) {
     //   require(!paused);
        require(transferrable, "Token is not transferrable yet"); 
        return super.transferFrom(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value) public returns (bool _success) {
    //    require(!paused);
        require(transferrable, "Token is not transferrable yet"); 
        return super.transfer(_to, _value);
    }
    
    
}

Contract ABI

[{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_index","type":"uint256"}],"name":"getFreezing","outputs":[{"name":"_release","type":"uint64"},{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transferrable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_until","type":"uint64"}],"name":"mintAndFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","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":false,"inputs":[],"name":"releaseAll","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[],"name":"releaseOnce","outputs":[],"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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"__name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"__decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stop_mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"totalSupplyCheck","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"freezingCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"__AllowTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"__basicTokenTransferable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"release","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Freezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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"}]

608060405260008060006101000a81548160ff0219169083151502179055506000600360006101000a81548160ff0219169083151502179055506000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff0219169083151502179055503480156200007c57600080fd5b5060405162002f5838038062002f58833981018060405281019080805182019291906020018051820192919050505033600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600990805190602001906200010492919062000142565b5080600a90805190602001906200011d92919062000142565b506012600b60006101000a81548160ff021916908360ff1602179055505050620001f1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018557805160ff1916838001178555620001b6565b82800160010185558215620001b6579182015b82811115620001b557825182559160200191906001019062000198565b5b509050620001c59190620001c9565b5090565b620001ee91905b80821115620001ea576000816000905550600101620001d0565b5090565b90565b612d5780620002016000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d6f73014610185578063047a7ef11461020157806305d2035b1461023057806306fdde031461025f578063095ea7b3146102ef5780630bb2cd6b1461035457806318160ddd146103cd57806323b872dd146103f8578063313ce5671461047d57806340c10f19146104ae5780635be7fde814610513578063661884631461053e57806366a92cda146105a357806370a08231146105ba578063715018a6146106115780637269ada1146106285780637d64bcb4146106b857806382215cb1146106e75780638da5cb5b146107775780638ea2da7d146107ce57806395d89b41146107ff578063a9059cbb1461088f578063aa25d7ce146108f4578063c1c8ac3a1461090b578063ca63b5b814610936578063d73dd6231461098d578063dd62ed3e146109f2578063e6bc8c9814610a69578063f2fde38b14610a80578063f4f55a1914610ac3575b600080fd5b34801561019157600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ada565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561020d57600080fd5b50610216610b92565b604051808215151515815260200191505060405180910390f35b34801561023c57600080fd5b50610245610ba4565b604051808215151515815260200191505060405180910390f35b34801561026b57600080fd5b50610274610bb7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b4578082015181840152602081019050610299565b50505050905090810190601f1680156102e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fb57600080fd5b5061033a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c55565b604051808215151515815260200191505060405180910390f35b34801561036057600080fd5b506103b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803567ffffffffffffffff169060200190929190505050610d47565b604051808215151515815260200191505060405180910390f35b3480156103d957600080fd5b506103e2611008565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b50610463600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611012565b604051808215151515815260200191505060405180910390f35b34801561048957600080fd5b506104926110ac565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ba57600080fd5b506104f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110bf565b604051808215151515815260200191505060405180910390f35b34801561051f57600080fd5b506105286112c2565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b50610589600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611334565b604051808215151515815260200191505060405180910390f35b3480156105af57600080fd5b506105b86115c5565b005b3480156105c657600080fd5b506105fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061190b565b6040518082815260200191505060405180910390f35b34801561061d57600080fd5b50610626611954565b005b34801561063457600080fd5b5061063d611a58565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067d578082015181840152602081019050610662565b50505050905090810190601f1680156106aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106c457600080fd5b506106cd611afa565b604051808215151515815260200191505060405180910390f35b3480156106f357600080fd5b506106fc611bc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073c578082015181840152602081019050610721565b50505050905090810190601f1680156107695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561078357600080fd5b5061078c611c63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107da57600080fd5b506107e3611c89565b604051808260ff1660ff16815260200191505060405180910390f35b34801561080b57600080fd5b50610814611c92565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610854578082015181840152602081019050610839565b50505050905090810190601f1680156108815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561089b57600080fd5b506108da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d30565b604051808215151515815260200191505060405180910390f35b34801561090057600080fd5b50610909611dc8565b005b34801561091757600080fd5b50610920611e41565b6040518082815260200191505060405180910390f35b34801561094257600080fd5b50610977600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4b565b6040518082815260200191505060405180910390f35b34801561099957600080fd5b506109d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef7565b604051808215151515815260200191505060405180910390f35b3480156109fe57600080fd5b50610a53600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120f3565b6040518082815260200191505060405180910390f35b348015610a7557600080fd5b50610a7e61217a565b005b348015610a8c57600080fd5b50610ac1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121f3565b005b348015610acf57600080fd5b50610ad861225b565b005b60008060008090505b60018401811015610b585760056000610b06878667ffffffffffffffff166122d4565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff161415610b4b57610b8a565b8080600101915050610ae3565b60066000610b70878667ffffffffffffffff166122d4565b600019166000191681526020019081526020016000205491505b509250929050565b6000809054906101000a900460ff1681565b600860019054906101000a900460ff1681565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c4d5780601f10610c2257610100808354040283529160200191610c4d565b820191906000526020600020905b815481529060010190602001808311610c3057829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da657600080fd5b600860019054906101000a900460ff16151515610dc257600080fd5b610dd78460025461231790919063ffffffff16565b600281905550610df1858467ffffffffffffffff166122d4565b9050610e21846006600084600019166000191681526020019081526020016000205461231790919063ffffffff16565b60066000836000191660001916815260200190815260200160002081905550610e9284600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610edf8584612333565b8473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885856040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48486604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b6000600254905090565b6000600360009054906101000a900460ff161515611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f546f6b656e206973206e6f74207472616e736665727261626c6520796574000081525060200191505060405180910390fd5b6110a3848484612577565b90509392505050565b600b60009054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111c57600080fd5b600860019054906101000a900460ff1615151561113857600080fd5b600860009054906101000a900460ff1615151561115457600080fd5b6111698260025461231790919063ffffffff16565b6002819055506111c182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060006112d2336000610ada565b8167ffffffffffffffff16915080925081935050505b600082141580156112f857508142115b1561132f576113056115c5565b8083019250611315336000610ada565b8167ffffffffffffffff16915080925081935050506112e8565b505090565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611445576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114d9565b611458838261296d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008060006115d83360006122d4565b945060056000866000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16935060008467ffffffffffffffff161415151561162657600080fd5b8367ffffffffffffffff164267ffffffffffffffff1611151561164857600080fd5b61165c338567ffffffffffffffff166122d4565b925060056000846000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1691506006600084600019166000191681526020019081526020016000205490506006600084600019166000191681526020019081526020016000206000905561171f81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b481600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008267ffffffffffffffff1614156118415760056000866000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff02191690556118b6565b8160056000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060056000846000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff02191690555b3373ffffffffffffffffffffffffffffffffffffffff167fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e826040518082815260200191505060405180910390a25050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b057600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611af05780601f10611ac557610100808354040283529160200191611af0565b820191906000526020600020905b815481529060010190602001808311611ad357829003601f168201915b5050505050905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5757600080fd5b600860019054906101000a900460ff16151515611b7357600080fd5b6001600860016101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6060600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c595780601f10611c2e57610100808354040283529160200191611c59565b820191906000526020600020905b815481529060010190602001808311611c3c57829003601f168201915b5050505050905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d285780601f10611cfd57610100808354040283529160200191611d28565b820191906000526020600020905b815481529060010190602001808311611d0b57829003601f168201915b505050505081565b6000600360009054906101000a900460ff161515611db6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f546f6b656e206973206e6f74207472616e736665727261626c6520796574000081525060200191505060405180910390fd5b611dc08383612986565b905092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e2457600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600254905090565b60008060056000611e5d8560006122d4565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1690505b60008167ffffffffffffffff16141515611ef157818060010192505060056000611ebf858467ffffffffffffffff166122d4565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff169050611e8b565b50919050565b6000611f8882600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121d657600080fd5b6001600360006101000a81548160ff021916908315150217905550565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561224f57600080fd5b61225881612c2f565b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122b757600080fd5b6001600360006101000a81548160ff021916908315150217905550565b60007f5749534800000000000000000000000000000000000000000000000000000000600102905068010000000000000000830281179050818117905092915050565b6000818301905082811015151561232a57fe5b80905092915050565b6000806000806000428667ffffffffffffffff1611151561235357600080fd5b612367878767ffffffffffffffff166122d4565b945061237e87600067ffffffffffffffff166122d4565b935060056000856000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff16141561240c578560056000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061256e565b612420878467ffffffffffffffff166122d4565b91505b60008367ffffffffffffffff161415801561245157508267ffffffffffffffff168667ffffffffffffffff16115b156124b3578267ffffffffffffffff16905081935060056000836000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1692506124ac878467ffffffffffffffff166122d4565b9150612423565b8267ffffffffffffffff168667ffffffffffffffff1614156124d45761256e565b60008367ffffffffffffffff1614151561252b578260056000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8560056000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b50505050505050565b6000600360009054906101000a900460ff16151561259457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156125d057600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561261e57600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126a957600080fd5b600360009054906101000a900460ff1615156126c457600080fd5b61271682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ab82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287d82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600082821115151561297b57fe5b818303905092915050565b6000600360009054906101000a900460ff161515612a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f546f6b656e206973206e6f74207472616e736665727261626c6520796574000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612a4857600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612a9657600080fd5b612ae882600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b7d82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612c6b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820f39a8e35672ab38fde6291765f135ff97a20f9edeea7c3f176bfc6880135b4a0002900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000753616d75726169000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004534d524900000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

19912:1124:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16069:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16069:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3456:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3456:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13308:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19979:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19979:18: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;19979:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10397:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10397:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19117:535;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19117:535:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:85:0;;;;;;;;;;;;;;;;;;;;;;;20527:258;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20527:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20031:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20031:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13951:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13951:416:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17372:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17372:357:0;;;;;;;;;;;;;;;;;;;;;;;12325:440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12325:440:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16436:756;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16436:756:0;;;;;;8428:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8428:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6197:114:0;;;;;;20239:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20239:77: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;20239:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14487:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14487:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20324:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20324:81: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;20324:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5579:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5579:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20413:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20413:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20004:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20004:20: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;20004:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20793:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20793:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13629:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13629:80:0;;;;;;7579:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7579:85:0;;;;;;;;;;;;;;;;;;;;;;;15554:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15554:249:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11547:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11547:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10916:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10916:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7318:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7318:99:0;;;;;;6479:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6479:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13509:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13509:104:0;;;;;;16069:355;16139:15;16156:13;16187:6;16196:1;16187:10;;16182:180;16212:1;16203:6;:10;16199:1;:14;16182:180;;;16246:6;:30;16253:22;16259:5;16266:8;16253:22;;:5;:22::i;:::-;16246:30;;;;;;;;;;;;;;;;;;;;;;;;;;;16235:41;;16307:1;16295:8;:13;;;16291:60;;;16329:7;;16291:60;16215:3;;;;;;;16182:180;;;16383:9;:33;16393:22;16399:5;16406:8;16393:22;;:5;:22::i;:::-;16383:33;;;;;;;;;;;;;;;;;;16372:44;;16069:355;;;;;;;:::o;3456:33::-;;;;;;;;;;;;;:::o;13308:35::-;;;;;;;;;;;;;:::o;19979:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10397:192::-;10464:4;10509:6;10477:7;:19;10485:10;10477:19;;;;;;;;;;;;;;;:29;10497:8;10477:29;;;;;;;;;;;;;;;:38;;;;10548:8;10527:38;;10536:10;10527:38;;;10558:6;10527:38;;;;;;;;;;;;;;;;;;10579:4;10572:11;;10397:192;;;;:::o;19117:535::-;19216:4;19286:18;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;13387:15;;;;;;;;;;;13386:16;13378:25;;;;;;;;19248;19265:7;19248:12;;:16;;:25;;;;:::i;:::-;19233:12;:40;;;;19307:18;19313:3;19318:6;19307:18;;:5;:18::i;:::-;19286:39;;19360:34;19386:7;19360:9;:21;19370:10;19360:21;;;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;19336:9;:21;19346:10;19336:21;;;;;;;;;;;;;;;;;:58;;;;19428:33;19453:7;19428:15;:20;19444:3;19428:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;19405:15;:20;19421:3;19405:20;;;;;;;;;;;;;;;:56;;;;19474:19;19481:3;19486:6;19474;:19::i;:::-;19514:3;19509:18;;;19519:7;19509:18;;;;;;;;;;;;;;;;;;19551:3;19543:29;;;19556:6;19564:7;19543:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;19609:3;19588:34;;19597:10;19588:34;;;19614:7;19588:34;;;;;;;;;;;;;;;;;;19640:4;19633:11;;19117:535;;;;;;:::o;7484:85::-;7528:7;7551:12;;7544:19;;7484:85;:::o;20527:258::-;20609:13;20672;;;;;;;;;;;20664:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20739:38;20758:5;20765:3;20770:6;20739:18;:38::i;:::-;20732:45;;20527:258;;;;;:::o;20031:21::-;;;;;;;;;;;;;:::o;13951:416::-;14072:4;13481:5;;;;;;;;;;;13467:19;;:10;:19;;;13459:28;;;;;;;;13387:15;;;;;;;;;;;13386:16;13378:25;;;;;;;;14098:11;;;;;;;;;;;14097:12;14088:22;;;;;;;;14193:25;14210:7;14193:12;;:16;;:25;;;;:::i;:::-;14178:12;:40;;;;14241:26;14259:7;14241:8;:13;14250:3;14241:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;14225:8;:13;14234:3;14225:13;;;;;;;;;;;;;;;:42;;;;14284:3;14279:18;;;14289:7;14279:18;;;;;;;;;;;;;;;;;;14330:3;14309:34;;14326:1;14309:34;;;14335:7;14309:34;;;;;;;;;;;;;;;;;;14357:4;14350:11;;13951:416;;;;:::o;17372:357::-;17410:11;17434:12;17457;17501:26;17513:10;17525:1;17501:11;:26::i;:::-;17480:47;;;;;;;;;;;;;17538:184;17556:1;17545:7;:12;;:41;;;;;17579:7;17561:15;:25;17545:41;17538:184;;;17603:13;:11;:13::i;:::-;17641:7;17631:17;;;;17684:26;17696:10;17708:1;17684:11;:26::i;:::-;17663:47;;;;;;;;;;;;;17538:184;;;17372:357;;;:::o;12325:440::-;12433:4;12449:13;12465:7;:19;12473:10;12465:19;;;;;;;;;;;;;;;:29;12485:8;12465:29;;;;;;;;;;;;;;;;12449:45;;12524:8;12505:16;:27;12501:168;;;12575:1;12543:7;:19;12551:10;12543:19;;;;;;;;;;;;;;;:29;12563:8;12543:29;;;;;;;;;;;;;;;:33;;;;12501:168;;;12631:30;12644:16;12631:8;:12;;:30;;;;:::i;:::-;12599:7;:19;12607:10;12599:19;;;;;;;;;;;;;;;:29;12619:8;12599:29;;;;;;;;;;;;;;;:62;;;;12501:168;12701:8;12680:61;;12689:10;12680:61;;;12711:7;:19;12719:10;12711:19;;;;;;;;;;;;;;;:29;12731:8;12711:29;;;;;;;;;;;;;;;;12680:61;;;;;;;;;;;;;;;;;;12755:4;12748:11;;12325:440;;;;;:::o;16436:756::-;16477:15;16526:11;16645:18;16702:11;16747;16495:20;16501:10;16513:1;16495:5;:20::i;:::-;16477:38;;16540:6;:15;16547:7;16540:15;;;;;;;;;;;;;;;;;;;;;;;;;;;16526:29;;16582:1;16574:4;:9;;;;16566:18;;;;;;;;16629:4;16603:30;;16610:15;16603:30;;;16595:39;;;;;;;;16666:23;16672:10;16684:4;16666:23;;:5;:23::i;:::-;16645:44;;16716:6;:18;16723:10;16716:18;;;;;;;;;;;;;;;;;;;;;;;;;;;16702:32;;16761:9;:21;16771:10;16761:21;;;;;;;;;;;;;;;;;;16747:35;;16800:9;:21;16810:10;16800:21;;;;;;;;;;;;;;;;;16793:28;;;16857:32;16882:6;16857:8;:20;16866:10;16857:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16834:8;:20;16843:10;16834:20;;;;;;;;;;;;;;;:55;;;;16930:39;16962:6;16930:15;:27;16946:10;16930:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;16900:15;:27;16916:10;16900:27;;;;;;;;;;;;;;;:69;;;;16994:1;16986:4;:9;;;16982:159;;;17019:6;:15;17026:7;17019:15;;;;;;;;;;;;;;;;;;17012:22;;;;;;;;;;;16982:159;;;17085:4;17067:6;:15;17074:7;17067:15;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17111:6;:18;17118:10;17111:18;;;;;;;;;;;;;;;;;;17104:25;;;;;;;;;;;16982:159;17165:10;17156:28;;;17177:6;17156:28;;;;;;;;;;;;;;;;;;16436:756;;;;;:::o;8428:101::-;8484:7;8507:8;:16;8516:6;8507:16;;;;;;;;;;;;;;;;8500:23;;8428:101;;;:::o;6197:114::-;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;6274:5;;;;;;;;;;;6255:25;;;;;;;;;;;;6303:1;6287:5;;:18;;;;;;;;;;;;;;;;;;6197:114::o;20239:77::-;20278:6;20304:4;20297:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20239:77;:::o;14487:137::-;14539:4;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;13387:15;;;;;;;;;;;13386:16;13378:25;;;;;;;;14570:4;14552:15;;:22;;;;;;;;;;;;;;;;;;14586:14;;;;;;;;;;14614:4;14607:11;;14487:137;:::o;20324:81::-;20365:6;20391;20384:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20324:81;:::o;5579:20::-;;;;;;;;;;;;;:::o;20413:106::-;20456:15;19766:2;20484:27;;20413:106;:::o;20004:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20793:228::-;20856:13;20919;;;;;;;;;;;20911:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20986:27;21001:3;21006:6;20986:14;:27::i;:::-;20979:34;;20793:228;;;;:::o;13629:80::-;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;13688:4;13674:11;;:18;;;;;;;;;;;;;;;;;;13629:80::o;7579:85::-;7623:7;7646:12;;7639:19;;7579:85;:::o;15554:249::-;15613:10;15636:14;15653:6;:23;15660:15;15666:5;15673:1;15660:5;:15::i;:::-;15653:23;;;;;;;;;;;;;;;;;;;;;;;;;;;15636:40;;15687:109;15705:1;15694:7;:12;;;;15687:109;;;15723:7;;;;;;;15755:6;:29;15762:21;15768:5;15775:7;15762:21;;:5;:21::i;:::-;15755:29;;;;;;;;;;;;;;;;;;;;;;;;;;;15745:39;;15687:109;;;15554:249;;;;:::o;11547:304::-;11650:4;11707:46;11741:11;11707:7;:19;11715:10;11707:19;;;;;;;;;;;;;;;:29;11727:8;11707:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;11666:7;:19;11674:10;11666:19;;;;;;;;;;;;;;;:29;11686:8;11666:29;;;;;;;;;;;;;;;:88;;;;11787:8;11766:61;;11775:10;11766:61;;;11797:7;:19;11805:10;11797:19;;;;;;;;;;;;;;;:29;11817:8;11797:29;;;;;;;;;;;;;;;;11766:61;;;;;;;;;;;;;;;;;;11841:4;11834:11;;11547:304;;;;:::o;10916:162::-;11021:7;11047;:15;11055:6;11047:15;;;;;;;;;;;;;;;:25;11063:8;11047:25;;;;;;;;;;;;;;;;11040:32;;10916:162;;;;:::o;7318:99::-;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;7398:4;7382:13;;:20;;;;;;;;;;;;;;;;;;7318:99::o;6479:105::-;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;6549:29;6568:9;6549:18;:29::i;:::-;6479:105;:::o;13509:104::-;6082:5;;;;;;;;;;;6068:19;;:10;:19;;;6060:28;;;;;;;;13594:4;13578:13;;:20;;;;;;;;;;;;;;;;;;13509:104::o;15076:362::-;15144:14;15222:66;15213:75;;;;15355:19;15348:5;15344:31;15336:6;15333:43;15323:53;;15411:8;15403:6;15400:20;15390:30;;15308:123;;;;:::o;5226:127::-;5284:9;5310:1;5306;:5;5302:9;;5330:1;5325;:6;;5318:14;;;;;;5346:1;5339:8;;5226:127;;;;:::o;17741:789::-;17849:11;17892:17;17944:11;18089:15;18134:11;17822:15;17813:6;:24;;;17805:33;;;;;;;;17863:18;17869:3;17874:6;17863:18;;:5;:18::i;:::-;17849:32;;17912:21;17918:3;17930:1;17912:21;;:5;:21::i;:::-;17892:41;;17958:6;:17;17965:9;17958:17;;;;;;;;;;;;;;;;;;;;;;;;;;;17944:31;;18000:1;17992:4;:9;;;17988:89;;;18038:6;18018;:17;18025:9;18018:17;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18059:7;;17988:89;18107:16;18113:3;18118:4;18107:16;;:5;:16::i;:::-;18089:34;;18158:189;18173:1;18165:4;:9;;;;:26;;;;;18187:4;18178:13;;:6;:13;;;18165:26;18158:189;;;18217:4;18208:13;;;;18248:7;18236:19;;18279:6;:15;18286:7;18279:15;;;;;;;;;;;;;;;;;;;;;;;;;;;18272:22;;18319:16;18325:3;18330:4;18319:16;;:5;:16::i;:::-;18309:26;;18158:189;;;18373:4;18363:14;;:6;:14;;;18359:53;;;18394:7;;18359:53;18436:1;18428:4;:9;;;;18424:60;;;18468:4;18454:6;:11;18461:3;18454:11;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;18424:60;18516:6;18496;:17;18503:9;18496:17;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17741:789;;;;;;;;:::o;9217:545::-;9329:4;9353:13;;;;;;;;;;;9345:22;;;;;;;;9399:1;9384:17;;:3;:17;;;;9376:26;;;;;;;;9427:8;:15;9436:5;9427:15;;;;;;;;;;;;;;;;9417:6;:25;;9409:34;;;;;;;;9468:7;:14;9476:5;9468:14;;;;;;;;;;;;;;;:26;9483:10;9468:26;;;;;;;;;;;;;;;;9458:6;:36;;9450:45;;;;;;;;9510:13;;;;;;;;;;;9502:22;;;;;;;;9549:27;9569:6;9549:8;:15;9558:5;9549:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9531:8;:15;9540:5;9531:15;;;;;;;;;;;;;;;:45;;;;9599:25;9617:6;9599:8;:13;9608:3;9599:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9583:8;:13;9592:3;9583:13;;;;;;;;;;;;;;;:41;;;;9660:38;9691:6;9660:7;:14;9668:5;9660:14;;;;;;;;;;;;;;;:26;9675:10;9660:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;9631:7;:14;9639:5;9631:14;;;;;;;;;;;;;;;:26;9646:10;9631:26;;;;;;;;;;;;;;;:67;;;;9726:3;9710:28;;9719:5;9710:28;;;9731:6;9710:28;;;;;;;;;;;;;;;;;;9752:4;9745:11;;9217:545;;;;;:::o;5046:113::-;5104:7;5132:1;5127;:6;;5120:14;;;;;;5152:1;5148;:5;5141:12;;5046:113;;;;:::o;7825:394::-;7888:4;7909:13;;;;;;;;;;;7901:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7989:1;7974:17;;:3;:17;;;;7966:26;;;;;;;;8017:8;:20;8026:10;8017:20;;;;;;;;;;;;;;;;8007:6;:30;;7999:39;;;;;;;;8070:32;8095:6;8070:8;:20;8079:10;8070:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8047:8;:20;8056:10;8047:20;;;;;;;;;;;;;;;:55;;;;8125:25;8143:6;8125:8;:13;8134:3;8125:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;8109:8;:13;8118:3;8109:13;;;;;;;;;;;;;;;:41;;;;8183:3;8162:33;;8171:10;8162:33;;;8188:6;8162:33;;;;;;;;;;;;;;;;;;8209:4;8202:11;;7825:394;;;;:::o;6725:175::-;6817:1;6796:23;;:9;:23;;;;6788:32;;;;;;;;6860:9;6832:38;;6853:5;;;;;;;;;;;6832:38;;;;;;;;;;;;6885:9;6877:5;;:17;;;;;;;;;;;;;;;;;;6725:175;:::o

Swarm Source

bzzr://f39a8e35672ab38fde6291765f135ff97a20f9edeea7c3f176bfc6880135b4a0
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.