contract HeartBoutToken is StandardToken, Ownable {
    
    string public constant name = "HeartBout";
    string public constant symbol = "HB";
    uint32 public constant decimals = 18;
    
    uint256 public constant totalSupply         = 63695267 * (10 ** 18);
    
    uint256 public constant Sale                = totalSupply * 785 / 1000;  // 78.5%
    uint256 constant FirstInvestment            = totalSupply * 5 / 100;    // 5%
    uint256 constant DevelopmentTeam            = totalSupply * 6 / 100;   // 6%
    uint256 constant Bounty                     = totalSupply * 4 / 100;  // 4%
    uint256 constant Advisers                   = totalSupply * 5 / 100; // 5%
    uint256 constant Marketing                  = totalSupply * 15 / 1000; // 1.5%
    
    function HeartBoutToken() public {
        address contractAddress = address(this);
        balances[contractAddress] = totalSupply;
        Transfer(0x0, contractAddress, totalSupply);
    }
    
    function SaleCount() public pure returns (uint256) {
        return Sale;
    }
    
    function transferTokents(address addr, uint256 tokens) public onlyAgentOrOwner {
        require(addr != address(0));
        require(balances[address(this)] >= tokens);
        
        balances[addr] = balances[addr].add(tokens);
        balances[address(this)] = balances[address(this)].sub(tokens);
        Transfer(address(this), addr, tokens);
    }
}
function HeartBoutToken() public {
    address contractAddress = address(this);
    balances[contractAddress] = totalSupply;
    Transfer(0x0, contractAddress, totalSupply);
}

// 1.5%