contract Ownable {
    // Public properties
    address public owner;

    // Log if ownership has been changed
    event ChangeOwnership(address indexed _owner, address indexed _newOwner);

    // Checks if address is an owner
    modifier OnlyOwner() {
        require(msg.sender == owner);

        _;
    }

    // The Ownable constructor sets the owner address
    function Ownable() public {
        owner = msg.sender;
    }

    // Transfer current ownership to the new account
    function transferOwnership(address _newOwner) public OnlyOwner {
        require(_newOwner != address(0x0));

        owner = _newOwner;

        emit ChangeOwnership(owner, _newOwner);
    }
}
/**
 * @title Ownable
 * @dev The Ownable contract has an owner address and
 *      provides basic authorization control functions
 */
function Ownable() public {
    owner = msg.sender;
}

// The Ownable constructor sets the owner address