contract MintableToken is StandardToken, Ownable {
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    bool public mintingFinished = false;


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

    /**
    * @dev Funciónpara acuñar fichas
    * @param _to La dirección que recibirá las fichas acuñadas.
    * @param _amount La cantidad de fichas para acuñar.
    * @return Un valor booleano que indica si la operación se realizó correctamente.
    */
    function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
        return true;
    }

    /**
    * @dev Función para dejar de acuñar nuevas fichas.
    * @return Es cierto si la operación fue exitosa.
    */
    function finishMinting() onlyOwner canMint public returns (bool) {
        mintingFinished = true;
        emit MintFinished();
        return true;
    }
}
function finishMinting() onlyOwner canMint public returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
}

/**
 * @dev Función para dejar de acuñar nuevas fichas.
 * @return Es cierto si la operación fue exitosa.
 */