<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def symlink_read(self, symlink, flags):
 """Reads the target value of a symbolic link in the guest. in symlink of type str Path to the symbolic link to read. in flags of type :class:`SymlinkReadFlag` Zero or more :py:class:`SymlinkReadFlag` values. return target of type str Target value of the symbolic link. Guest path style. raises :class:`OleErrorNotimpl` The method is not implemented yet. """

        if not isinstance(symlink, basestring):
            raise TypeError("symlink can only be an instance of type basestring")
        if not isinstance(flags, list):
            raise TypeError("flags can only be an instance of type list")
        for a in flags[:10]:
            if not isinstance(a, SymlinkReadFlag):
                raise TypeError(
                        "array can only contain objects of type SymlinkReadFlag")
        target = self._call("symlinkRead",
                     in_p=[symlink, flags])
        return target