<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def StartMergeTaskStorage(self, task):
 """Starts a merge of a task storage with the session storage. Args: task (Task):
 task. Returns: StorageMergeReader: storage merge reader of the task storage. Raises: IOError: if the storage file cannot be opened or if the storage type is not supported or if the temporary path for the task storage does not exist or if the temporary path for the task storage doe not refers to a file. OSError: if the storage file cannot be opened or if the storage type is not supported or if the temporary path for the task storage does not exist or if the temporary path for the task storage doe not refers to a file. """

    if self._storage_type != definitions.STORAGE_TYPE_SESSION:
      raise IOError('Unsupported storage type.')

    if not self._merge_task_storage_path:
      raise IOError('Missing merge task storage path.')

    merge_storage_file_path = self._GetMergeTaskStorageFilePath(task)

    if not os.path.isfile(merge_storage_file_path):
      raise IOError('Merge task storage path is not a file.')

    return self._CreateTaskStorageMergeReader(merge_storage_file_path)