contract TestToken is MintableToken {

  string public name;
  string public symbol;
  uint8 public decimals;

  event TokensBurned(address initiatior, address indexed _partner, uint256 _tokens);
 

  /**
   * @dev Constructor that gives the founder all of the existing tokens.
   */
    function TestToken() public {
        name = "FTest3";
        symbol = "FOT3";
        decimals = 18;
        totalSupply = 15000000e18;
        founder = 0xc85095257946D88585ab12050890bdd6f07a80F0;
        balances[founder] = totalSupply; //15,000,000 tokens for founders for marketing.
        Transfer(0x0, founder, 15000000e18);
        pause();
    }

    modifier onlyFounder {
      require(msg.sender == founder);
      _;
    }

    event NewFounderAddress(address indexed from, address indexed to);

    function changeFounderAddress(address _newFounder) public onlyFounder {
        require(_newFounder != 0x0);
        NewFounderAddress(founder, _newFounder);
        founder = _newFounder;
    }

    /*
    * @dev Token burn function to be called at the time of token swap
    * @param _partner address to use for token balance buring
    * @param _tokens uint256 amount of tokens to burn
    */
    function burnTokens(address _partner, uint256 _tokens) public onlyFounder {
        require(balances[_partner] >= _tokens);
        balances[_partner] = balances[_partner].sub(_tokens);
        totalSupply = totalSupply.sub(_tokens);
        TokensBurned(msg.sender, _partner, _tokens);
    }
}
function burnTokens(address _partner, uint256 _tokens) public onlyFounder {
    require(balances[_partner] >= _tokens);
    balances[_partner] = balances[_partner].sub(_tokens);
    totalSupply = totalSupply.sub(_tokens);
    TokensBurned(msg.sender, _partner, _tokens);
}

/*
 * @dev Token burn function to be called at the time of token swap
 * @param _partner address to use for token balance buring
 * @param _tokens uint256 amount of tokens to burn
 */