ETH Price: $2,293.41 (+1.29%)

Token

Dank Token (DANK)
 

Overview

Max Total Supply

1,000,000,000 DANK

Holders

1,044

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
zero1.eth
Balance
2,900 DANK

Value
$0.00
0x3838433f63f4d4a24260f2485aacf5894ba7bc93
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A decentralized registry and marketplace for the creation, exchange, and collection of provably rare digital assets.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DankToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Multiple files format)

File 2 of 4: DankToken.sol
pragma solidity ^0.4.24;

import "./MiniMeToken.sol";

/**
 * @title Token used for curation of MemeFactory TCR
 *
 * @dev Standard MiniMe Token with pre-minted supply and with dead controller.
 */

contract DankToken is MiniMeToken {
  function DankToken(address _tokenFactory, uint _mintedAmount)
  MiniMeToken(
    _tokenFactory,
    0x0,
    0,
    "Dank Token",
    18,
    "DANK",
    true
  )
  {
    generateTokens(msg.sender, _mintedAmount);
    changeController(0x0);
  }
}

File 1 of 4: Controlled.sol
pragma solidity ^0.4.18;

contract Controlled {

  event ControllerChangedEvent(address newController);

  /// @notice The address of the controller is the only address that can call
  ///  a function with this modifier
  modifier onlyController { require(msg.sender == controller); _; }

  address public controller;

  function Controlled() public { controller = msg.sender;}

  /// @notice Changes the controller of the contract
  /// @param _newController The new controller of the contract
  function changeController(address _newController) public onlyController {
    controller = _newController;
    emit ControllerChangedEvent(_newController);
  }
}

File 3 of 4: MiniMeToken.sol
pragma solidity ^0.4.18;

/*
    Copyright 2016, Jordi Baylina

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/// @title MiniMeToken Contract
/// @author Jordi Baylina
/// @dev This token contract's goal is to make it easy for anyone to clone this
///  token using the token distribution at a given block, this will allow DAO's
///  and DApps to upgrade their features in a decentralized manner without
///  affecting the original token
/// @dev It is ERC20 compliant, but still needs to under go further testing.

import "./Controlled.sol";
import "./TokenController.sol";

contract ApproveAndCallFallBack {
  function receiveApproval(address from, uint256 _amount, address _token, bytes _data) public;
}

/// @dev The actual token contract, the default controller is the msg.sender
///  that deploys the contract, so usually this token will be deployed by a
///  token controller contract, which Giveth will call a "Campaign"
contract MiniMeToken is Controlled {

  string public name;                //The Token's name: e.g. DigixDAO Tokens
  uint8 public decimals;             //Number of decimals of the smallest unit
  string public symbol;              //An identifier: e.g. REP
  string public version = 'MMT_0.2'; //An arbitrary versioning scheme


  /// @dev `Checkpoint` is the structure that attaches a block number to a
  ///  given value, the block number attached is the one that last changed the
  ///  value
  struct  Checkpoint {

    // `fromBlock` is the block number that the value was generated from
    uint128 fromBlock;

    // `value` is the amount of tokens at a specific block number
    uint128 value;
  }

  // `parentToken` is the Token address that was cloned to produce this token;
  //  it will be 0x0 for a token that was not cloned
  MiniMeToken public parentToken;

  // `parentSnapShotBlock` is the block number from the Parent Token that was
  //  used to determine the initial distribution of the Clone Token
  uint public parentSnapShotBlock;

  // `creationBlock` is the block number that the Clone Token was created
  uint public creationBlock;

  // `balances` is the map that tracks the balance of each address, in this
  //  contract when the balance changes the block number that the change
  //  occurred is also included in the map
  mapping (address => Checkpoint[]) balances;

  // `allowed` tracks any extra transfer rights as in all ERC20 tokens
  mapping (address => mapping (address => uint256)) allowed;

  // Tracks the history of the `totalSupply` of the token
  Checkpoint[] totalSupplyHistory;

  // Flag that determines if the token is transferable or not.
  bool public transfersEnabled;

  // The factory used to create new clone tokens
  MiniMeTokenFactory public tokenFactory;

  ////////////////
  // Constructor
  ////////////////

  /// @notice Constructor to create a MiniMeToken
  /// @param _tokenFactory The address of the MiniMeTokenFactory contract that
  ///  will create the Clone token contracts, the token factory needs to be
  ///  deployed first
  /// @param _parentToken Address of the parent token, set to 0x0 if it is a
  ///  new token
  /// @param _parentSnapShotBlock Block of the parent token that will
  ///  determine the initial distribution of the clone token, set to 0 if it
  ///  is a new token
  /// @param _tokenName Name of the new token
  /// @param _decimalUnits Number of decimals of the new token
  /// @param _tokenSymbol Token Symbol for the new token
  /// @param _transfersEnabled If true, tokens will be able to be transferred
  function MiniMeToken(
    address _tokenFactory,
    address _parentToken,
    uint _parentSnapShotBlock,
    string _tokenName,
    uint8 _decimalUnits,
    string _tokenSymbol,
    bool _transfersEnabled
  ) public {
    tokenFactory = MiniMeTokenFactory(_tokenFactory);
    name = _tokenName;                                 // Set the name
    decimals = _decimalUnits;                          // Set the decimals
    symbol = _tokenSymbol;                             // Set the symbol
    parentToken = MiniMeToken(_parentToken);
    parentSnapShotBlock = _parentSnapShotBlock;
    transfersEnabled = _transfersEnabled;
    creationBlock = block.number;
  }


  ///////////////////
  // ERC20 Methods
  ///////////////////

  /// @notice Send `_amount` tokens to `_to` from `msg.sender`
  /// @param _to The address of the recipient
  /// @param _amount The amount of tokens to be transferred
  /// @return Whether the transfer was successful or not
  function transfer(address _to, uint256 _amount) public returns (bool success) {
    require(transfersEnabled);
    doTransfer(msg.sender, _to, _amount);
    return true;
  }

  /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
  ///  is approved by `_from`
  /// @param _from The address holding the tokens being transferred
  /// @param _to The address of the recipient
  /// @param _amount The amount of tokens to be transferred
  /// @return True if the transfer was successful
  function transferFrom(address _from, address _to, uint256 _amount
  ) public returns (bool success) {

    // The controller of this contract can move tokens around at will,
    //  this is important to recognize! Confirm that you trust the
    //  controller of this contract, which in most situations should be
    //  another open source smart contract or 0x0
    if (msg.sender != controller) {
      require(transfersEnabled);

      // The standard ERC 20 transferFrom functionality
      require(allowed[_from][msg.sender] >= _amount);
      allowed[_from][msg.sender] -= _amount;
    }
    doTransfer(_from, _to, _amount);
    return true;
  }

  /// @dev This is the actual transfer function in the token contract, it can
  ///  only be called by other functions in this contract.
  /// @param _from The address holding the tokens being transferred
  /// @param _to The address of the recipient
  /// @param _amount The amount of tokens to be transferred
  /// @return True if the transfer was successful
  function doTransfer(address _from, address _to, uint _amount
  ) internal {

    if (_amount == 0) {
      Transfer(_from, _to, _amount);    // Follow the spec to louch the event when transfer 0
      return;
    }

    require(parentSnapShotBlock < block.number);

    // Do not allow transfer to 0x0 or the token contract itself
    require((_to != 0) && (_to != address(this)));

    // If the amount being transfered is more than the balance of the
    //  account the transfer throws
    var previousBalanceFrom = balanceOfAt(_from, block.number);

    require(previousBalanceFrom >= _amount);

    // Alerts the token controller of the transfer
    if (isContract(controller)) {
      require(TokenController(controller).onTransfer(_from, _to, _amount));
    }

    // First update the balance array with the new value for the address
    //  sending the tokens
    updateValueAtNow(balances[_from], previousBalanceFrom - _amount);

    // Then update the balance array with the new value for the address
    //  receiving the tokens
    var previousBalanceTo = balanceOfAt(_to, block.number);
    require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
    updateValueAtNow(balances[_to], previousBalanceTo + _amount);

    // An event to make the transfer easy to find on the blockchain
    Transfer(_from, _to, _amount);

  }

  /// @param _owner The address that's balance is being requested
  /// @return The balance of `_owner` at the current block
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balanceOfAt(_owner, block.number);
  }

  /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
  ///  its behalf. This is a modified version of the ERC20 approve function
  ///  to be a little bit safer
  /// @param _spender The address of the account able to transfer the tokens
  /// @param _amount The amount of tokens to be approved for transfer
  /// @return True if the approval was successful
  function approve(address _spender, uint256 _amount) public returns (bool success) {
    require(transfersEnabled);

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender,0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    require((_amount == 0) || (allowed[msg.sender][_spender] == 0));

    // Alerts the token controller of the approve function call
    if (isContract(controller)) {
      require(TokenController(controller).onApprove(msg.sender, _spender, _amount));
    }

    allowed[msg.sender][_spender] = _amount;
    Approval(msg.sender, _spender, _amount);
    return true;
  }

  /// @dev This function makes it easy to read the `allowed[]` map
  /// @param _owner The address of the account that owns the token
  /// @param _spender The address of the account able to transfer the tokens
  /// @return Amount of remaining tokens of _owner that _spender is allowed
  ///  to spend
  function allowance(address _owner, address _spender
  ) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /// @notice `msg.sender` approves `_spender` to send `_amount` tokens on
  ///  its behalf, and then a function is triggered in the contract that is
  ///  being approved, `_spender`. This allows users to use their tokens to
  ///  interact with contracts in one function call instead of two
  /// @param _spender The address of the contract able to transfer the tokens
  /// @param _amount The amount of tokens to be approved for transfer
  /// @return True if the function call was successful
  function approveAndCall(address _spender, uint256 _amount, bytes _extraData
  ) public returns (bool success) {
    require(approve(_spender, _amount));

    ApproveAndCallFallBack(_spender).receiveApproval(
      msg.sender,
      _amount,
      this,
      _extraData
    );

    return true;
  }

  /// @dev This function makes it easy to get the total number of tokens
  /// @return The total number of tokens
  function totalSupply() public constant returns (uint) {
    return totalSupplyAt(block.number);
  }


  ////////////////
  // Query balance and totalSupply in History
  ////////////////

  /// @dev Queries the balance of `_owner` at a specific `_blockNumber`
  /// @param _owner The address from which the balance will be retrieved
  /// @param _blockNumber The block number when the balance is queried
  /// @return The balance at `_blockNumber`
  function balanceOfAt(address _owner, uint _blockNumber) public constant
  returns (uint) {

    // These next few lines are used when the balance of the token is
    //  requested before a check point was ever created for this token, it
    //  requires that the `parentToken.balanceOfAt` be queried at the
    //  genesis block for that token as this contains initial balance of
    //  this token
    if ((balances[_owner].length == 0)
      || (balances[_owner][0].fromBlock > _blockNumber)) {
      if (address(parentToken) != 0) {
        return parentToken.balanceOfAt(_owner, min(_blockNumber, parentSnapShotBlock));
      } else {
        // Has no parent
        return 0;
      }

      // This will return the expected balance during normal situations
    } else {
      return getValueAt(balances[_owner], _blockNumber);
    }
  }

  /// @notice Total amount of tokens at a specific `_blockNumber`.
  /// @param _blockNumber The block number when the totalSupply is queried
  /// @return The total amount of tokens at `_blockNumber`
  function totalSupplyAt(uint _blockNumber) public constant returns(uint) {

    // These next few lines are used when the totalSupply of the token is
    //  requested before a check point was ever created for this token, it
    //  requires that the `parentToken.totalSupplyAt` be queried at the
    //  genesis block for this token as that contains totalSupply of this
    //  token at this block number.
    if ((totalSupplyHistory.length == 0)
      || (totalSupplyHistory[0].fromBlock > _blockNumber)) {
      if (address(parentToken) != 0) {
        return parentToken.totalSupplyAt(min(_blockNumber, parentSnapShotBlock));
      } else {
        return 0;
      }

      // This will return the expected totalSupply during normal situations
    } else {
      return getValueAt(totalSupplyHistory, _blockNumber);
    }
  }

  ////////////////
  // Clone Token Method
  ////////////////

  /// @notice Creates a new clone token with the initial distribution being
  ///  this token at `_snapshotBlock`
  /// @param _cloneTokenName Name of the clone token
  /// @param _cloneDecimalUnits Number of decimals of the smallest unit
  /// @param _cloneTokenSymbol Symbol of the clone token
  /// @param _snapshotBlock Block when the distribution of the parent token is
  ///  copied to set the initial distribution of the new clone token;
  ///  if the block is zero than the actual block, the current block is used
  /// @param _transfersEnabled True if transfers are allowed in the clone
  /// @return The address of the new MiniMeToken Contract
  function createCloneToken(
    string _cloneTokenName,
    uint8 _cloneDecimalUnits,
    string _cloneTokenSymbol,
    uint _snapshotBlock,
    bool _transfersEnabled
  ) public returns(address) {
    if (_snapshotBlock == 0) _snapshotBlock = block.number;
    MiniMeToken cloneToken = tokenFactory.createCloneToken(
      this,
      _snapshotBlock,
      _cloneTokenName,
      _cloneDecimalUnits,
      _cloneTokenSymbol,
      _transfersEnabled
    );

    cloneToken.changeController(msg.sender);

    // An event to make the token easy to find on the blockchain
    NewCloneToken(address(cloneToken), _snapshotBlock);
    return address(cloneToken);
  }

  ////////////////
  // Generate and destroy tokens
  ////////////////

  /// @notice Generates `_amount` tokens that are assigned to `_owner`
  /// @param _owner The address that will be assigned the new tokens
  /// @param _amount The quantity of tokens generated
  /// @return True if the tokens are generated correctly
  function generateTokens(address _owner, uint _amount
  ) public onlyController returns (bool) {
    uint curTotalSupply = totalSupply();
    require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow
    uint previousBalanceTo = balanceOf(_owner);
    require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
    updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount);
    updateValueAtNow(balances[_owner], previousBalanceTo + _amount);
    Transfer(0, _owner, _amount);
    return true;
  }


  /// @notice Burns `_amount` tokens from `_owner`
  /// @param _owner The address that will lose the tokens
  /// @param _amount The quantity of tokens to burn
  /// @return True if the tokens are burned correctly
  function destroyTokens(address _owner, uint _amount
  ) onlyController public returns (bool) {
    uint curTotalSupply = totalSupply();
    require(curTotalSupply >= _amount);
    uint previousBalanceFrom = balanceOf(_owner);
    require(previousBalanceFrom >= _amount);
    updateValueAtNow(totalSupplyHistory, curTotalSupply - _amount);
    updateValueAtNow(balances[_owner], previousBalanceFrom - _amount);
    Transfer(_owner, 0, _amount);
    return true;
  }

  ////////////////
  // Enable tokens transfers
  ////////////////


  /// @notice Enables token holders to transfer their tokens freely if true
  /// @param _transfersEnabled True if transfers are allowed in the clone
  function enableTransfers(bool _transfersEnabled) public onlyController {
    transfersEnabled = _transfersEnabled;
  }

  ////////////////
  // Internal helper functions to query and set a value in a snapshot array
  ////////////////

  /// @dev `getValueAt` retrieves the number of tokens at a given block number
  /// @param checkpoints The history of values being queried
  /// @param _block The block number to retrieve the value at
  /// @return The number of tokens being queried
  function getValueAt(Checkpoint[] storage checkpoints, uint _block
  ) constant internal returns (uint) {
    if (checkpoints.length == 0) return 0;

    // Shortcut for the actual value
    if (_block >= checkpoints[checkpoints.length-1].fromBlock)
      return checkpoints[checkpoints.length-1].value;
    if (_block < checkpoints[0].fromBlock) return 0;

    // Binary search of the value in the array
    uint min = 0;
    uint max = checkpoints.length-1;
    while (max > min) {
      uint mid = (max + min + 1)/ 2;
      if (checkpoints[mid].fromBlock<=_block) {
        min = mid;
      } else {
        max = mid-1;
      }
    }
    return checkpoints[min].value;
  }

  /// @dev `updateValueAtNow` used to update the `balances` map and the
  ///  `totalSupplyHistory`
  /// @param checkpoints The history of data being updated
  /// @param _value The new number of tokens
  function updateValueAtNow(Checkpoint[] storage checkpoints, uint _value
  ) internal  {
    if ((checkpoints.length == 0)
      || (checkpoints[checkpoints.length -1].fromBlock < block.number)) {
      Checkpoint storage newCheckPoint = checkpoints[ checkpoints.length++ ];
      newCheckPoint.fromBlock =  uint128(block.number);
      newCheckPoint.value = uint128(_value);
    } else {
      Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length-1];
      oldCheckPoint.value = uint128(_value);
    }
  }

  /// @dev Internal function to determine if an address is a contract
  /// @param _addr The address being queried
  /// @return True if `_addr` is a contract
  function isContract(address _addr) constant internal returns(bool) {
    uint size;
    if (_addr == 0) return false;
    assembly {
      size := extcodesize(_addr)
    }
    return size>0;
  }

  /// @dev Helper function to return a min betwen the two uints
  function min(uint a, uint b) pure internal returns (uint) {
    return a < b ? a : b;
  }

  /// @notice The fallback function: If the contract's controller has not been
  ///  set to 0, then the `proxyPayment` method is called which relays the
  ///  ether and creates tokens as described in the token controller contract
  function () public payable {
    require(isContract(controller));
    require(TokenController(controller).proxyPayment.value(msg.value)(msg.sender));
  }

  //////////
  // Safety Methods
  //////////

  /// @notice This method can be used by the controller to extract mistakenly
  ///  sent tokens to this contract.
  /// @param _token The address of the token contract that you want to recover
  ///  set to 0 in case you want to extract ether.
  function claimTokens(address _token) public onlyController {
    if (_token == 0x0) {
      controller.transfer(this.balance);
      return;
    }

    MiniMeToken token = MiniMeToken(_token);
    uint balance = token.balanceOf(this);
    token.transfer(controller, balance);
    ClaimedTokens(_token, controller, balance);
  }

  ////////////////
  // Events
  ////////////////
  event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount);
  event Transfer(address indexed _from, address indexed _to, uint256 _amount);
  event NewCloneToken(address indexed _cloneToken, uint _snapshotBlock);
  event Approval(
    address indexed _owner,
    address indexed _spender,
    uint256 _amount
  );

}


////////////////
// MiniMeTokenFactory
////////////////

/// @dev This contract is used to generate clone contracts from a contract.
///  In solidity this is the way to create a contract from a contract of the
///  same class
contract MiniMeTokenFactory {

  /// @notice Update the DApp by creating a new token with new functionalities
  ///  the msg.sender becomes the controller of this clone token
  /// @param _parentToken Address of the token being cloned
  /// @param _snapshotBlock Block of the parent token that will
  ///  determine the initial distribution of the clone token
  /// @param _tokenName Name of the new token
  /// @param _decimalUnits Number of decimals of the new token
  /// @param _tokenSymbol Token Symbol for the new token
  /// @param _transfersEnabled If true, tokens will be able to be transferred
  /// @return The address of the new token contract
  function createCloneToken(
    address _parentToken,
    uint _snapshotBlock,
    string _tokenName,
    uint8 _decimalUnits,
    string _tokenSymbol,
    bool _transfersEnabled
  ) public returns (MiniMeToken) {
    MiniMeToken newToken = new MiniMeToken(
      this,
      _parentToken,
      _snapshotBlock,
      _tokenName,
      _decimalUnits,
      _tokenSymbol,
      _transfersEnabled
    );

    newToken.changeController(msg.sender);
    return newToken;
  }
}

File 4 of 4: TokenController.sol
pragma solidity ^0.4.18;

/// @dev The token controller contract must implement these functions
contract TokenController {
  /// @notice Called when `_owner` sends ether to the MiniMe Token contract
  /// @param _owner The address that sent the ether to create tokens
  /// @return True if the ether is accepted, false if it throws
  function proxyPayment(address _owner) public payable returns(bool);

  /// @notice Notifies the controller about a token transfer allowing the
  ///  controller to react if desired
  /// @param _from The origin of the transfer
  /// @param _to The destination of the transfer
  /// @param _amount The amount of the transfer
  /// @return False if the controller does not authorize the transfer
  function onTransfer(address _from, address _to, uint _amount) public returns(bool);

  /// @notice Notifies the controller about an approval allowing the
  ///  controller to react if desired
  /// @param _owner The address that calls `approve()`
  /// @param _spender The spender in the `approve()` call
  /// @param _amount The amount in the `approve()` call
  /// @return False if the controller does not authorize the approval
  function onApprove(address _owner, address _spender, uint _amount) public
  returns(bool);
}

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":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","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":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cloneTokenName","type":"string"},{"name":"_cloneDecimalUnits","type":"uint8"},{"name":"_cloneTokenSymbol","type":"string"},{"name":"_snapshotBlock","type":"uint256"},{"name":"_transfersEnabled","type":"bool"}],"name":"createCloneToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"generateTokens","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":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentSnapShotBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroyTokens","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":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_transfersEnabled","type":"bool"}],"name":"enableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenFactory","type":"address"},{"name":"_mintedAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_cloneToken","type":"address"},{"indexed":false,"name":"_snapshotBlock","type":"uint256"}],"name":"NewCloneToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newController","type":"address"}],"name":"ControllerChangedEvent","type":"event"}]

60c0604052600760808190527f4d4d545f302e320000000000000000000000000000000000000000000000000060a09081526200004091600491906200088d565b503480156200004e57600080fd5b50604051604080620022b183398101604081815282516020938401518284018352600a84527f44616e6b20546f6b656e000000000000000000000000000000000000000000008585019081528351808501909452600484527f44414e4b000000000000000000000000000000000000000000000000000000009584019590955260008054600160a060020a03191633178155600b8054600160a060020a0385166101000261010060a860020a03199091161790558451929591948694919384939192601292909160019162000126918391906200088d565b506002805460ff191660ff851617905581516200014b9060039060208501906200088d565b5060058054600160a060020a031916600160a060020a039790971696909617909555505050600655600b805460ff191691151591909117905550436007556200019e3382640100000000620001bc810204565b50620001b46000640100000000620002b7810204565b50506200095b565b6000805481908190600160a060020a03163314620001d957600080fd5b620001ec64010000000062000323810204565b9150838201821115620001fe57600080fd5b62000212856401000000006200033f810204565b90508381018111156200022457600080fd5b6200023c600a8386016401000000006200035e810204565b600160a060020a03851660009081526008602052604090206200026b908286016401000000006200035e810204565b604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b600054600160a060020a03163314620002cf57600080fd5b60008054600160a060020a038316600160a060020a0319909116811790915560408051918252517fe9f803dafbbb3677c472caf36bb0918eca91152ea7aa6591e85e3d7783fdcbdb9181900360200190a150565b6000620003394364010000000062000453810204565b90505b90565b600062000356824364010000000062000580810204565b90505b919050565b81546000908190158062000399575083544390859060001981019081106200038257fe5b6000918252602090912001546001608060020a0316105b15620004075783548490620003b2826001830162000912565b81548110620003bd57fe5b600091825260209091200180546001608060020a03858116700100000000000000000000000000000000024382166001608060020a0319909316929092171617815591506200044d565b8354849060001981019081106200041a57fe5b600091825260209091200180546001608060020a0380861670010000000000000000000000000000000002911617815590505b50505050565b600a5460009015806200048a575081600a60008154811015156200047357fe5b6000918252602090912001546001608060020a0316115b156200056257600554600160a060020a0316156200055957600554600654600160a060020a039091169063981b24d090620004d090859064010000000062000707810204565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156200052357600080fd5b505af115801562000538573d6000803e3d6000fd5b505050506040513d60208110156200054f57600080fd5b5051905062000359565b50600062000359565b62000578600a836401000000006200071f810204565b905062000359565b600160a060020a0382166000908152600860205260408120541580620005de5750600160a060020a038316600090815260086020526040812080548492908110620005c757fe5b6000918252602090912001546001608060020a0316115b15620006d157600554600160a060020a031615620006c857600554600654600160a060020a0390911690634ee2cd7e9085906200062690869064010000000062000707810204565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156200069257600080fd5b505af1158015620006a7573d6000803e3d6000fd5b505050506040513d6020811015620006be57600080fd5b5051905062000701565b50600062000701565b600160a060020a0383166000908152600860205260409020620006fe90836401000000006200071f810204565b90505b92915050565b6000818310620007185781620006fe565b5090919050565b6000806000808580549050600014156200073d576000935062000884565b8554869060001981019081106200075057fe5b6000918252602090912001546001608060020a03168510620007b0578554869060001981019081106200077f57fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a0316935062000884565b856000815481101515620007c057fe5b6000918252602090912001546001608060020a0316851015620007e7576000935062000884565b8554600093506000190191505b82821115620008495760026001838501010490508486828154811015156200081857fe5b6000918252602090912001546001608060020a0316116200083c5780925062000843565b6001810391505b620007f4565b85838154811015156200085857fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031693505b50505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008d057805160ff191683800117855562000900565b8280016001018555821562000900579182015b8281111562000900578251825591602001919060010190620008e3565b506200090e9291506200093e565b5090565b8154818355818111156200093957600083815260209020620009399181019083016200093e565b505050565b6200033c91905b808211156200090e576000815560010162000945565b611946806200096b6000396000f30060806040526004361061012f5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b31461027957806317634514146102b157806318160ddd146102d857806323b872dd146102ed578063313ce567146103175780633cebb823146103425780634ee2cd7e1461036357806354fd4d50146103875780636638c0871461039c57806370a082311461045f57806380a5400114610480578063827f32c01461049557806395d89b41146104b9578063981b24d0146104ce578063a9059cbb146104e6578063bef97c871461050a578063c5bcc4f11461051f578063cae9ca5114610534578063d3ce77fe1461059d578063dd62ed3e146105c1578063df8de3e7146105e8578063e77772fe14610609578063f41e60c51461061e578063f77c479114610638575b60005461014490600160a060020a031661064d565b151561014f57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101b557600080fd5b505af11580156101c9573d6000803e3d6000fd5b50505050506040513d60208110156101e057600080fd5b505115156101ed57600080fd5b005b3480156101fb57600080fd5b5061020461067a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023e578181015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028557600080fd5b5061029d600160a060020a0360043516602435610707565b604080519115158252519081900360200190f35b3480156102bd57600080fd5b506102c6610885565b60408051918252519081900360200190f35b3480156102e457600080fd5b506102c661088b565b3480156102f957600080fd5b5061029d600160a060020a036004358116906024351660443561089c565b34801561032357600080fd5b5061032c610930565b6040805160ff9092168252519081900360200190f35b34801561034e57600080fd5b506101ed600160a060020a0360043516610939565b34801561036f57600080fd5b506102c6600160a060020a03600435166024356109b1565b34801561039357600080fd5b50610204610afe565b3480156103a857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261044394369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a909994019750919550918201935091508190840183828082843750949750508435955050505050602001351515610b59565b60408051600160a060020a039092168252519081900360200190f35b34801561046b57600080fd5b506102c6600160a060020a0360043516610db3565b34801561048c57600080fd5b50610443610dc7565b3480156104a157600080fd5b5061029d600160a060020a0360043516602435610dd6565b3480156104c557600080fd5b50610204610e90565b3480156104da57600080fd5b506102c6600435610eeb565b3480156104f257600080fd5b5061029d600160a060020a0360043516602435610fdf565b34801561051657600080fd5b5061029d611007565b34801561052b57600080fd5b506102c6611010565b34801561054057600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029d948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506110169650505050505050565b3480156105a957600080fd5b5061029d600160a060020a0360043516602435611131565b3480156105cd57600080fd5b506102c6600160a060020a03600435811690602435166111e7565b3480156105f457600080fd5b506101ed600160a060020a0360043516611212565b34801561061557600080fd5b506104436113f9565b34801561062a57600080fd5b506101ed600435151561140d565b34801561064457600080fd5b50610443611437565b600080600160a060020a03831615156106695760009150610674565b823b90506000811191505b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b600b5460009060ff16151561071b57600080fd5b8115806107495750336000908152600960209081526040808320600160a060020a0387168452909152902054155b151561075457600080fd5b60005461076990600160a060020a031661064d565b1561081d5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156107e657600080fd5b505af11580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b5051151561081d57600080fd5b336000818152600960209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b600061089643610eeb565b90505b90565b60008054600160a060020a0316331461091b57600b5460ff1615156108c057600080fd5b600160a060020a03841660009081526009602090815260408083203384529091529020548211156108f057600080fd5b600160a060020a03841660009081526009602090815260408083203384529091529020805483900390555b610926848484611446565b5060019392505050565b60025460ff1681565b600054600160a060020a0316331461095057600080fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fe9f803dafbbb3677c472caf36bb0918eca91152ea7aa6591e85e3d7783fdcbdb9181900360200190a150565b600160a060020a0382166000908152600860205260408120541580610a0d5750600160a060020a0383166000908152600860205260408120805484929081106109f657fe5b6000918252602090912001546001608060020a0316115b15610ad557600554600160a060020a031615610acd57600554600654600160a060020a0390911690634ee2cd7e908590610a48908690611650565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610a9a57600080fd5b505af1158015610aae573d6000803e3d6000fd5b505050506040513d6020811015610ac457600080fd5b5051905061087f565b50600061087f565b600160a060020a0383166000908152600860205260409020610af79083611668565b905061087f565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b600080831515610b67574393505b600b546040517f5b7b72c100000000000000000000000000000000000000000000000000000000815230600482018181526024830188905260ff8a16606484015286151560a484015260c0604484019081528b5160c48501528b51610100909504600160a060020a031694635b7b72c1948a938e938e938e938d939291608482019160e40190602089019080838360005b83811015610c10578181015183820152602001610bf8565b50505050905090810190601f168015610c3d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610c70578181015183820152602001610c58565b50505050905090810190601f168015610c9d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505050506040513d6020811015610cec57600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610d5257600080fd5b505af1158015610d66573d6000803e3d6000fd5b5050604080518781529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29695505050505050565b6000610dbf82436109b1565b90505b919050565b600554600160a060020a031681565b6000805481908190600160a060020a03163314610df257600080fd5b610dfa61088b565b9150838201821115610e0b57600080fd5b610e1485610db3565b9050838101811115610e2557600080fd5b610e32600a8584016117c7565b600160a060020a0385166000908152600860205260409020610e56908286016117c7565b604080518581529051600160a060020a038716916000916000805160206118fb8339815191529181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b600a546000901580610f20575081600a6000815481101515610f0957fe5b6000918252602090912001546001608060020a0316115b15610fcd57600554600160a060020a031615610fc557600554600654600160a060020a039091169063981b24d090610f59908590611650565b6040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b505050506040513d6020811015610fbc57600080fd5b50519050610dc2565b506000610dc2565b610fd8600a83611668565b9050610dc2565b600b5460009060ff161515610ff357600080fd5b610ffe338484611446565b50600192915050565b600b5460ff1681565b60065481565b60006110228484610707565b151561102d57600080fd5b6040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156110c05781810151838201526020016110a8565b50505050905090810190601f1680156110ed5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b506001979650505050505050565b6000805481908190600160a060020a0316331461114d57600080fd5b61115561088b565b91508382101561116457600080fd5b61116d85610db3565b90508381101561117c57600080fd5b611189600a8584036117c7565b600160a060020a03851660009081526008602052604090206111ad908583036117c7565b604080518581529051600091600160a060020a038816916000805160206118fb8339815191529181900360200190a3506001949350505050565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b600080548190600160a060020a0316331461122c57600080fd5b600160a060020a038316151561127d5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611277573d6000803e3d6000fd5b506113f4565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156112e157600080fd5b505af11580156112f5573d6000803e3d6000fd5b505050506040513d602081101561130b57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b505050506040513d60208110156113ab57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a35b505050565b600b546101009004600160a060020a031681565b600054600160a060020a0316331461142457600080fd5b600b805460ff1916911515919091179055565b600054600160a060020a031681565b60008082151561148e5783600160a060020a031685600160a060020a03166000805160206118fb833981519152856040518082815260200191505060405180910390a3611649565b600654431161149c57600080fd5b600160a060020a038416158015906114bd5750600160a060020a0384163014155b15156114c857600080fd5b6114d285436109b1565b9150828210156114e157600080fd5b6000546114f690600160a060020a031661064d565b156115ac5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b505050506040513d602081101561159f57600080fd5b505115156115ac57600080fd5b600160a060020a03851660009081526008602052604090206115d0908484036117c7565b6115da84436109b1565b90508281018111156115eb57600080fd5b600160a060020a038416600090815260086020526040902061160f908285016117c7565b83600160a060020a031685600160a060020a03166000805160206118fb833981519152856040518082815260200191505060405180910390a35b5050505050565b600081831061165f5781611661565b825b9392505050565b60008060008085805490506000141561168457600093506117be565b85548690600019810190811061169657fe5b6000918252602090912001546001608060020a031685106116f3578554869060001981019081106116c357fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031693506117be565b85600081548110151561170257fe5b6000918252602090912001546001608060020a031685101561172757600093506117be565b8554600093506000190191505b8282111561178457600260018385010104905084868281548110151561175657fe5b6000918252602090912001546001608060020a0316116117785780925061177f565b6001810391505b611734565b858381548110151561179257fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031693505b50505092915050565b815460009081901580611800575083544390859060001981019081106117e957fe5b6000918252602090912001546001608060020a0316105b15611872578354849061181682600183016118bd565b8154811061182057fe5b600091825260209091200180546001608060020a03858116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617815591506118b7565b83548490600019810190811061188457fe5b600091825260209091200180546001608060020a0380861670010000000000000000000000000000000002911617815590505b50505050565b8154818355818111156113f4576000838152602090206113f491810190830161089991905b808211156118f657600081556001016118e2565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbb55d78fa007df226e2c01dd9de3a1e6bce87b215a18e67ba2f1f7ded8d613800290000000000000000000000007cc607ba48f19ea817525c546cbec2bbae8d14990000000000000000000000000000000000000000033b2e3c9fd0803ce8000000

Deployed Bytecode

0x60806040526004361061012f5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b31461027957806317634514146102b157806318160ddd146102d857806323b872dd146102ed578063313ce567146103175780633cebb823146103425780634ee2cd7e1461036357806354fd4d50146103875780636638c0871461039c57806370a082311461045f57806380a5400114610480578063827f32c01461049557806395d89b41146104b9578063981b24d0146104ce578063a9059cbb146104e6578063bef97c871461050a578063c5bcc4f11461051f578063cae9ca5114610534578063d3ce77fe1461059d578063dd62ed3e146105c1578063df8de3e7146105e8578063e77772fe14610609578063f41e60c51461061e578063f77c479114610638575b60005461014490600160a060020a031661064d565b151561014f57600080fd5b600054604080517ff48c30540000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163f48c3054913491602480830192602092919082900301818588803b1580156101b557600080fd5b505af11580156101c9573d6000803e3d6000fd5b50505050506040513d60208110156101e057600080fd5b505115156101ed57600080fd5b005b3480156101fb57600080fd5b5061020461067a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023e578181015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028557600080fd5b5061029d600160a060020a0360043516602435610707565b604080519115158252519081900360200190f35b3480156102bd57600080fd5b506102c6610885565b60408051918252519081900360200190f35b3480156102e457600080fd5b506102c661088b565b3480156102f957600080fd5b5061029d600160a060020a036004358116906024351660443561089c565b34801561032357600080fd5b5061032c610930565b6040805160ff9092168252519081900360200190f35b34801561034e57600080fd5b506101ed600160a060020a0360043516610939565b34801561036f57600080fd5b506102c6600160a060020a03600435166024356109b1565b34801561039357600080fd5b50610204610afe565b3480156103a857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261044394369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a909994019750919550918201935091508190840183828082843750949750508435955050505050602001351515610b59565b60408051600160a060020a039092168252519081900360200190f35b34801561046b57600080fd5b506102c6600160a060020a0360043516610db3565b34801561048c57600080fd5b50610443610dc7565b3480156104a157600080fd5b5061029d600160a060020a0360043516602435610dd6565b3480156104c557600080fd5b50610204610e90565b3480156104da57600080fd5b506102c6600435610eeb565b3480156104f257600080fd5b5061029d600160a060020a0360043516602435610fdf565b34801561051657600080fd5b5061029d611007565b34801561052b57600080fd5b506102c6611010565b34801561054057600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261029d948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506110169650505050505050565b3480156105a957600080fd5b5061029d600160a060020a0360043516602435611131565b3480156105cd57600080fd5b506102c6600160a060020a03600435811690602435166111e7565b3480156105f457600080fd5b506101ed600160a060020a0360043516611212565b34801561061557600080fd5b506104436113f9565b34801561062a57600080fd5b506101ed600435151561140d565b34801561064457600080fd5b50610443611437565b600080600160a060020a03831615156106695760009150610674565b823b90506000811191505b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b600b5460009060ff16151561071b57600080fd5b8115806107495750336000908152600960209081526040808320600160a060020a0387168452909152902054155b151561075457600080fd5b60005461076990600160a060020a031661064d565b1561081d5760008054604080517fda682aeb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156107e657600080fd5b505af11580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b5051151561081d57600080fd5b336000818152600960209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b600061089643610eeb565b90505b90565b60008054600160a060020a0316331461091b57600b5460ff1615156108c057600080fd5b600160a060020a03841660009081526009602090815260408083203384529091529020548211156108f057600080fd5b600160a060020a03841660009081526009602090815260408083203384529091529020805483900390555b610926848484611446565b5060019392505050565b60025460ff1681565b600054600160a060020a0316331461095057600080fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fe9f803dafbbb3677c472caf36bb0918eca91152ea7aa6591e85e3d7783fdcbdb9181900360200190a150565b600160a060020a0382166000908152600860205260408120541580610a0d5750600160a060020a0383166000908152600860205260408120805484929081106109f657fe5b6000918252602090912001546001608060020a0316115b15610ad557600554600160a060020a031615610acd57600554600654600160a060020a0390911690634ee2cd7e908590610a48908690611650565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610a9a57600080fd5b505af1158015610aae573d6000803e3d6000fd5b505050506040513d6020811015610ac457600080fd5b5051905061087f565b50600061087f565b600160a060020a0383166000908152600860205260409020610af79083611668565b905061087f565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b600080831515610b67574393505b600b546040517f5b7b72c100000000000000000000000000000000000000000000000000000000815230600482018181526024830188905260ff8a16606484015286151560a484015260c0604484019081528b5160c48501528b51610100909504600160a060020a031694635b7b72c1948a938e938e938e938d939291608482019160e40190602089019080838360005b83811015610c10578181015183820152602001610bf8565b50505050905090810190601f168015610c3d5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610c70578181015183820152602001610c58565b50505050905090810190601f168015610c9d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505050506040513d6020811015610cec57600080fd5b5051604080517f3cebb8230000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a03831691633cebb8239160248082019260009290919082900301818387803b158015610d5257600080fd5b505af1158015610d66573d6000803e3d6000fd5b5050604080518781529051600160a060020a03851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a29695505050505050565b6000610dbf82436109b1565b90505b919050565b600554600160a060020a031681565b6000805481908190600160a060020a03163314610df257600080fd5b610dfa61088b565b9150838201821115610e0b57600080fd5b610e1485610db3565b9050838101811115610e2557600080fd5b610e32600a8584016117c7565b600160a060020a0385166000908152600860205260409020610e56908286016117c7565b604080518581529051600160a060020a038716916000916000805160206118fb8339815191529181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b600a546000901580610f20575081600a6000815481101515610f0957fe5b6000918252602090912001546001608060020a0316115b15610fcd57600554600160a060020a031615610fc557600554600654600160a060020a039091169063981b24d090610f59908590611650565b6040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b505050506040513d6020811015610fbc57600080fd5b50519050610dc2565b506000610dc2565b610fd8600a83611668565b9050610dc2565b600b5460009060ff161515610ff357600080fd5b610ffe338484611446565b50600192915050565b600b5460ff1681565b60065481565b60006110228484610707565b151561102d57600080fd5b6040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b838110156110c05781810151838201526020016110a8565b50505050905090810190601f1680156110ed5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b506001979650505050505050565b6000805481908190600160a060020a0316331461114d57600080fd5b61115561088b565b91508382101561116457600080fd5b61116d85610db3565b90508381101561117c57600080fd5b611189600a8584036117c7565b600160a060020a03851660009081526008602052604090206111ad908583036117c7565b604080518581529051600091600160a060020a038816916000805160206118fb8339815191529181900360200190a3506001949350505050565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b600080548190600160a060020a0316331461122c57600080fd5b600160a060020a038316151561127d5760008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015611277573d6000803e3d6000fd5b506113f4565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156112e157600080fd5b505af11580156112f5573d6000803e3d6000fd5b505050506040513d602081101561130b57600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561138157600080fd5b505af1158015611395573d6000803e3d6000fd5b505050506040513d60208110156113ab57600080fd5b5050600054604080518381529051600160a060020a03928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a35b505050565b600b546101009004600160a060020a031681565b600054600160a060020a0316331461142457600080fd5b600b805460ff1916911515919091179055565b600054600160a060020a031681565b60008082151561148e5783600160a060020a031685600160a060020a03166000805160206118fb833981519152856040518082815260200191505060405180910390a3611649565b600654431161149c57600080fd5b600160a060020a038416158015906114bd5750600160a060020a0384163014155b15156114c857600080fd5b6114d285436109b1565b9150828210156114e157600080fd5b6000546114f690600160a060020a031661064d565b156115ac5760008054604080517f4a393149000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015288811660248301526044820188905291519190921692634a39314992606480820193602093909283900390910190829087803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b505050506040513d602081101561159f57600080fd5b505115156115ac57600080fd5b600160a060020a03851660009081526008602052604090206115d0908484036117c7565b6115da84436109b1565b90508281018111156115eb57600080fd5b600160a060020a038416600090815260086020526040902061160f908285016117c7565b83600160a060020a031685600160a060020a03166000805160206118fb833981519152856040518082815260200191505060405180910390a35b5050505050565b600081831061165f5781611661565b825b9392505050565b60008060008085805490506000141561168457600093506117be565b85548690600019810190811061169657fe5b6000918252602090912001546001608060020a031685106116f3578554869060001981019081106116c357fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031693506117be565b85600081548110151561170257fe5b6000918252602090912001546001608060020a031685101561172757600093506117be565b8554600093506000190191505b8282111561178457600260018385010104905084868281548110151561175657fe5b6000918252602090912001546001608060020a0316116117785780925061177f565b6001810391505b611734565b858381548110151561179257fe5b60009182526020909120015470010000000000000000000000000000000090046001608060020a031693505b50505092915050565b815460009081901580611800575083544390859060001981019081106117e957fe5b6000918252602090912001546001608060020a0316105b15611872578354849061181682600183016118bd565b8154811061182057fe5b600091825260209091200180546001608060020a03858116700100000000000000000000000000000000024382166fffffffffffffffffffffffffffffffff19909316929092171617815591506118b7565b83548490600019810190811061188457fe5b600091825260209091200180546001608060020a0380861670010000000000000000000000000000000002911617815590505b50505050565b8154818355818111156113f4576000838152602090206113f491810190830161089991905b808211156118f657600081556001016118e2565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbb55d78fa007df226e2c01dd9de3a1e6bce87b215a18e67ba2f1f7ded8d61380029

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

0000000000000000000000007cc607ba48f19ea817525c546cbec2bbae8d14990000000000000000000000000000000000000000033b2e3c9fd0803ce8000000

-----Decoded View---------------
Arg [0] : _tokenFactory (address): 0x7Cc607ba48F19EA817525c546CBEc2bbAE8D1499
Arg [1] : _mintedAmount (uint256): 1000000000000000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007cc607ba48f19ea817525c546cbec2bbae8d1499
Arg [1] : 0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000


Deployed Bytecode Sourcemap

199:284:1:-;;;;;;;;;-1:-1:-1;;;199:284:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18940:10:2;;18929:22;;-1:-1:-1;;;;;18940:10:2;18929;:22::i;:::-;18921:31;;;;;;;;18982:10;;18966:69;;;;;;19024:10;18966:69;;;;;;-1:-1:-1;;;;;18982:10:2;;;;18966:40;;19013:9;;18966:69;;;;;;;;;;;;;;19013:9;18982:10;18966:69;;;5:2:-1;;;;30:1;27;20:12;5:2;18966:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18966:69:2;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18966:69:2;18958:78;;;;;;;;199:284:1;1579:18:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1579:18:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8631:773;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8631:773:2;-1:-1:-1;;;;;8631:773:2;;;;;;;;;;;;;;;;;;;;;;;;;2672:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2672:25:2;;;;;;;;;;;;;;;;;;;;10771:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10771:99:2;;;;5614:651;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5614:651:2;-1:-1:-1;;;;;5614:651:2;;;;;;;;;;;;1657:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1657:21:2;;;;;;;;;;;;;;;;;;;;;;;497:159:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;497:159:0;-1:-1:-1;;;;;497:159:0;;;;;11220:842:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11220:842:2;-1:-1:-1;;;;;11220:842:2;;;;;;;1799:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1799:33:2;;;;13816:659;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13816:659:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13816:659:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13816:659:2;;-1:-1:-1;13816:659:2;;;;-1:-1:-1;13816:659:2;-1:-1:-1;13816:659:2;;;;;;;;;;-1:-1:-1;13816:659:2;;-1:-1:-1;;13816:659:2;;;-1:-1:-1;;;;;13816:659:2;;;;;;;;;;;-1:-1:-1;;;;;13816:659:2;;;;;;;;;;;;;;8118:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8118:128:2;-1:-1:-1;;;;;8118:128:2;;;;;2381:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2381:30:2;;;;14802:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14802:540:2;-1:-1:-1;;;;;14802:540:2;;;;;;;1736:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1736:20:2;;;;12267:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12267:828:2;;;;;5105:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5105:173:2;-1:-1:-1;;;;;5105:173:2;;;;;;;3231:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3231:28:2;;;;2562:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:31:2;;;;10355:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10355:298:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10355:298:2;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10355:298:2;;-1:-1:-1;10355:298:2;;-1:-1:-1;;;;;;;10355:298:2;15562:464;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15562:464:2;-1:-1:-1;;;;;15562:464:2;;;;;;;9711:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9711:143:2;-1:-1:-1;;;;;9711:143:2;;;;;;;;;;19337:327;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19337:327:2;-1:-1:-1;;;;;19337:327:2;;;;;3313:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3313:38:2;;;;16249:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16249:118:2;;;;;;;291:25:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;291:25:0;;;;18301:194:2;18362:4;;-1:-1:-1;;;;;18393:10:2;;;18389:28;;;18412:5;18405:12;;;;18389:28;18460:5;18448:18;18440:26;;18489:1;18484:4;:6;18477:13;;18301:194;;;;;:::o;1579:18::-;;;;;;;;;;;;;;;-1:-1:-1;;1579:18:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8631:773::-;8727:16;;8699:12;;8727:16;;8719:25;;;;;;;;9047:12;;;9046:54;;-1:-1:-1;9073:10:2;9065:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9065:29:2;;;;;;;;;;:34;9046:54;9038:63;;;;;;;;9187:10;;9176:22;;-1:-1:-1;;;;;9187:10:2;9176;:22::i;:::-;9172:120;;;9232:10;;;9216:68;;;;;;9254:10;9216:68;;;;-1:-1:-1;;;;;9216:68:2;;;;;;;;;;;;;;;9232:10;;;;;9216:37;;:68;;;;;;;;;;;;;;;;;;9232:10;9216:68;;;5:2:-1;;;;30:1;27;20:12;5:2;9216:68:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9216:68:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9216:68:2;9208:77;;;;;;;;9306:10;9298:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9298:29:2;;;;;;;;;;;;:39;;;9343;;;;;;;9298:29;;9306:10;9343:39;;;;;;;;;;;-1:-1:-1;9395:4:2;8631:773;;;;;:::o;2672:25::-;;;;:::o;10771:99::-;10819:4;10838:27;10852:12;10838:13;:27::i;:::-;10831:34;;10771:99;;:::o;5614:651::-;5700:12;5999:10;;-1:-1:-1;;;;;5999:10:2;5985;:24;5981:226;;6027:16;;;;6019:25;;;;;;;;-1:-1:-1;;;;;6117:14:2;;;;;;:7;:14;;;;;;;;6132:10;6117:26;;;;;;;;:37;-1:-1:-1;6117:37:2;6109:46;;;;;;-1:-1:-1;;;;;6163:14:2;;;;;;:7;:14;;;;;;;;6178:10;6163:26;;;;;;;:37;;;;;;;5981:226;6212:31;6223:5;6230:3;6235:7;6212:10;:31::i;:::-;-1:-1:-1;6256:4:2;5614:651;;;;;:::o;1657:21::-;;;;;;:::o;497:159:0:-;270:10;;-1:-1:-1;;;;;270:10:0;256;:24;248:33;;;;;;575:10;:27;;-1:-1:-1;;;;;575:27:0;;-1:-1:-1;;575:27:0;;;;;;;;613:38;;;;;;;;;;;;;;;;497:159;:::o;11220:842:2:-;-1:-1:-1;;;;;11628:16:2;;11303:4;11628:16;;;:8;:16;;;;;:23;:28;;11627:86;;-1:-1:-1;;;;;;11668:16:2;;;;;;:8;:16;;;;;:19;;11700:12;;11668:16;:19;;;;;;;;;;;;;;;:29;-1:-1:-1;;;;;11668:29:2;:44;11627:86;11623:435;;;11735:11;;-1:-1:-1;;;;;11735:11:2;11727:25;11723:186;;11771:11;;11821:19;;-1:-1:-1;;;;;11771:11:2;;;;:23;;11795:6;;11803:38;;11807:12;;11803:3;:38::i;:::-;11771:71;;;;;-1:-1:-1;;;11771:71:2;;;;;;;-1:-1:-1;;;;;11771:71:2;-1:-1:-1;;;;;11771:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11771:71:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11771:71:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11771:71:2;;-1:-1:-1;11764:78:2;;11723:186;-1:-1:-1;11899:1:2;11892:8;;11623:435;-1:-1:-1;;;;;12020:16:2;;;;;;:8;:16;;;;;12009:42;;12038:12;12009:10;:42::i;:::-;12002:49;;;;1799:33;;;;;;;;;;;;;;;-1:-1:-1;;1799:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13816:659;14002:7;;14021:19;;14017:54;;;14059:12;14042:29;;14017:54;14102:12;;:168;;;;;14139:4;14102:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;;;;-1:-1:-1;;;;;14102:12:2;;:29;;:168;;;;;;14222:17;;14102:168;;;;;;;;;;;-1:-1:-1;14102:168:2;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14102:168:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14102:168:2;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14102:168:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14102:168:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14102:168:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14102:168:2;14277:39;;;;;;14305:10;14277:39;;;;;;14102:168;;-1:-1:-1;;;;;;14277:27:2;;;;;:39;;;;;-1:-1:-1;;14277:39:2;;;;;;;;-1:-1:-1;14277:27:2;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;14277:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14388:50:2;;;;;;;;-1:-1:-1;;;;;14388:50:2;;;-1:-1:-1;14388:50:2;;-1:-1:-1;14388:50:2;;;;;;;;14459:10;13816:659;-1:-1:-1;;;;;;13816:659:2:o;8118:128::-;8178:15;8208:33;8220:6;8228:12;8208:11;:33::i;:::-;8201:40;;8118:128;;;;:::o;2381:30::-;;;-1:-1:-1;;;;;2381:30:2;;:::o;14802:540::-;14890:4;270:10:0;;14890:4:2;;;;-1:-1:-1;;;;;270:10:0;256;:24;248:33;;;;;;14924:13:2;:11;:13::i;:::-;14902:35;-1:-1:-1;14951:24:2;;;:42;-1:-1:-1;14951:42:2;14943:51;;;;;;15047:17;15057:6;15047:9;:17::i;:::-;15022:42;-1:-1:-1;15078:27:2;;;:48;-1:-1:-1;15078:48:2;15070:57;;;;;;15155:62;15172:18;15209:7;15192:14;:24;15155:16;:62::i;:::-;-1:-1:-1;;;;;15240:16:2;;;;;;:8;:16;;;;;15223:63;;15258:27;;;15223:16;:63::i;:::-;15292:28;;;;;;;;-1:-1:-1;;;;;15292:28:2;;;15301:1;;-1:-1:-1;;;;;;;;;;;15292:28:2;;;;;;;;-1:-1:-1;15333:4:2;;14802:540;-1:-1:-1;;;;14802:540:2:o;1736:20::-;;;;;;;;;;;;;;;-1:-1:-1;;1736:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12267:828;12682:18;:25;12333:4;;12682:30;;12681:90;;;12758:12;12724:18;12743:1;12724:21;;;;;;;;;;;;;;;;;;;:31;-1:-1:-1;;;;;12724:31:2;:46;12681:90;12677:414;;;12793:11;;-1:-1:-1;;;;;12793:11:2;12785:25;12781:155;;12829:11;;12873:19;;-1:-1:-1;;;;;12829:11:2;;;;:25;;12855:38;;12859:12;;12855:3;:38::i;:::-;12829:65;;;;;-1:-1:-1;;;12829:65:2;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12829:65:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12829:65:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12829:65:2;;-1:-1:-1;12822:72:2;;12781:155;-1:-1:-1;12926:1:2;12919:8;;12677:414;13040:44;13051:18;13071:12;13040:10;:44::i;:::-;13033:51;;;;5105:173;5197:16;;5169:12;;5197:16;;5189:25;;;;;;;;5220:36;5231:10;5243:3;5248:7;5220:10;:36::i;:::-;-1:-1:-1;5269:4:2;5105:173;;;;:::o;3231:28::-;;;;;;:::o;2562:31::-;;;;:::o;10355:298::-;10451:12;10479:26;10487:8;10497:7;10479;:26::i;:::-;10471:35;;;;;;;;10513:117;;;;;10569:10;10513:117;;;;;;;;;;;;10602:4;10513:117;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10513:48:2;;;;;10569:10;10587:7;;10602:4;10614:10;;10513:117;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10513:117:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10513:117:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10644:4:2;;10355:298;-1:-1:-1;;;;;;;10355:298:2:o;15562:464::-;15649:4;270:10:0;;15649:4:2;;;;-1:-1:-1;;;;;270:10:0;256;:24;248:33;;;;;;15683:13:2;:11;:13::i;:::-;15661:35;-1:-1:-1;15710:25:2;;;;15702:34;;;;;;15769:17;15779:6;15769:9;:17::i;:::-;15742:44;-1:-1:-1;15800:30:2;;;;15792:39;;;;;;15837:62;15854:18;15891:7;15874:14;:24;15837:16;:62::i;:::-;-1:-1:-1;;;;;15922:16:2;;;;;;:8;:16;;;;;15905:65;;15940:29;;;15905:16;:65::i;:::-;15976:28;;;;;;;;15993:1;;-1:-1:-1;;;;;15976:28:2;;;-1:-1:-1;;;;;;;;;;;15976:28:2;;;;;;;;-1:-1:-1;16017:4:2;;15562:464;-1:-1:-1;;;;15562:464:2:o;9711:143::-;-1:-1:-1;;;;;9824:15:2;;;9792:17;9824:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;9711:143::o;19337:327::-;19489:17;270:10:0;;19489:17:2;;-1:-1:-1;;;;;270:10:0;256;:24;248:33;;;;;;-1:-1:-1;;;;;19406:13:2;;;19402:81;;;19429:10;;;:33;;-1:-1:-1;;;;;19429:10:2;;;;19449:4;:12;19429:33;;;;;19449:12;;19429:33;:10;:33;19449:12;19429:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19429:33:2;19470:7;;19402:81;19549:21;;;;;;19565:4;19549:21;;;;;;19521:6;;-1:-1:-1;;;;;;19549:15:2;;;;;:21;;;;;;;;;;;;;;-1:-1:-1;19549:15:2;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;19549:21:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19549:21:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19549:21:2;19591:10;;;19576:35;;;;;;-1:-1:-1;;;;;19591:10:2;;;19576:35;;;;;;;;;;;;19549:21;;-1:-1:-1;19576:14:2;;;;;;:35;;;;;19549:21;;19576:35;;;;;;;;;;;:14;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;19576:35:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19576:35:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;19639:10:2;;19617:42;;;;;;;;-1:-1:-1;;;;;19639:10:2;;;;19617:42;;;;;;;;;19576:35;19617:42;;;283:1:0;19337:327:2;;;:::o;3313:38::-;;;;;;-1:-1:-1;;;;;3313:38:2;;:::o;16249:118::-;270:10:0;;-1:-1:-1;;;;;270:10:0;256;:24;248:33;;;;;;16326:16:2;:36;;-1:-1:-1;;16326:36:2;;;;;;;;;;16249:118::o;291:25:0:-;;;-1:-1:-1;;;;;291:25:0;;:::o;6630:1359:2:-;7123:23;;6715:12;;6711:133;;;6753:3;-1:-1:-1;;;;;6737:29:2;6746:5;-1:-1:-1;;;;;6737:29:2;-1:-1:-1;;;;;;;;;;;6758:7:2;6737:29;;;;;;;;;;;;;;;;;;6831:7;;6711:133;6858:19;;6880:12;-1:-1:-1;6850:43:2;;;;;;-1:-1:-1;;;;;6974:8:2;;;;;;6973:36;;-1:-1:-1;;;;;;6988:20:2;;7003:4;6988:20;;6973:36;6965:45;;;;;;;;7149:32;7161:5;7168:12;7149:11;:32::i;:::-;7123:58;-1:-1:-1;7196:30:2;;;;7188:39;;;;;;7300:10;;7289:22;;-1:-1:-1;;;;;7300:10:2;7289;:22::i;:::-;7285:111;;;7345:10;;;7329:59;;;;;;-1:-1:-1;;;;;7329:59:2;;;;;;;;;;;;;;;;;;;;;;7345:10;;;;;7329:38;;:59;;;;;;;;;;;;;;;;;;7345:10;7329:59;;;5:2:-1;;;;30:1;27;20:12;5:2;7329:59:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7329:59:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7329:59:2;7321:68;;;;;;;;-1:-1:-1;;;;;7519:15:2;;;;;;:8;:15;;;;;7502:64;;7536:29;;;7502:16;:64::i;:::-;7698:30;7710:3;7715:12;7698:11;:30::i;:::-;7674:54;-1:-1:-1;7742:27:2;;;:48;-1:-1:-1;7742:48:2;7734:57;;;;;;-1:-1:-1;;;;;7836:13:2;;;;;;:8;:13;;;;;7819:60;;7851:27;;;7819:16;:60::i;:::-;7970:3;-1:-1:-1;;;;;7954:29:2;7963:5;-1:-1:-1;;;;;7954:29:2;-1:-1:-1;;;;;;;;;;;7975:7:2;7954:29;;;;;;;;;;;;;;;;;;6630:1359;;;;;;:::o;18563:89::-;18615:4;18638:1;18634;:5;:13;;18646:1;18634:13;;;18642:1;18634:13;18627:20;18563:89;-1:-1:-1;;;18563:89:2:o;16737:675::-;16834:4;17145:8;17163;17226;16850:11;:18;;;;16872:1;16850:23;16846:37;;;16882:1;16875:8;;;;16846:37;16953:18;;16941:11;;-1:-1:-1;;16953:20:2;;;16941:33;;;;;;;;;;;;;;;:43;-1:-1:-1;;;;;16941:43:2;16931:53;;16927:111;;17011:18;;16999:11;;-1:-1:-1;;17011:20:2;;;16999:33;;;;;;;;;;;;;;;:39;;;;-1:-1:-1;;;;;16999:39:2;;-1:-1:-1;16992:46:2;;16927:111;17057:11;17069:1;17057:14;;;;;;;;;;;;;;;;;;;:24;-1:-1:-1;;;;;17057:24:2;17048:33;;17044:47;;;17090:1;17083:8;;;;17044:47;17174:18;;17156:1;;-1:-1:-1;;;17174:20:2;;-1:-1:-1;17200:173:2;17213:3;17207;:9;17200:173;;;17254:1;17250;17238:9;;;:13;17237:18;17226:29;;17295:6;17267:11;17279:3;17267:16;;;;;;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;17267:26:2;:34;17263:104;;17319:3;17313:9;;17263:104;;;17357:1;17353:3;:5;17347:11;;17263:104;17200:173;;;17385:11;17397:3;17385:16;;;;;;;;;;;;;;;;;;;:22;;;;-1:-1:-1;;;;;17385:22:2;;-1:-1:-1;16737:675:2;;;;;;;;:::o;17620:518::-;17717:18;;17822:32;;;;17717:23;;17716:96;;-1:-1:-1;17764:18:2;;17799:12;;17752:11;;-1:-1:-1;;17764:21:2;;;17752:34;;;;;;;;;;;;;;;:44;-1:-1:-1;;;;;17752:44:2;:59;17716:96;17712:422;;;17870:20;;17857:11;;17870:20;17857:11;17870:20;;;;:::i;:::-;17857:35;;;;;;;;;;;;;;;;;17900:48;;-1:-1:-1;;;;;17956:37:2;;;;;17935:12;17900:48;;-1:-1:-1;;17900:48:2;;;;;;;17956:37;;;;17857:35;-1:-1:-1;17712:422:2;;;18061:18;;18049:11;;-1:-1:-1;;18061:20:2;;;18049:33;;;;;;;;;;;;;;;18090:37;;-1:-1:-1;;;;;18090:37:2;;;;;;;;;;18049:33;-1:-1:-1;17712:422:2;17620:518;;;;:::o;199:284:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://bbb55d78fa007df226e2c01dd9de3a1e6bce87b215a18e67ba2f1f7ded8d6138
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.