/// <summary>
/// Moves the read/write head to a random point in the underlying stream.
/// The progress tracker will then assume that the bytes up to the new point
/// have been "read" or "written" for the purpose of tracking.
/// </summary>
/// <param name="offset"></param>
/// <param name="origin"></param>
/// <returns></returns>
public override long Seek(long offset, SeekOrigin origin)
{
outStream.Seek(offset, origin);
return(SourceStream.Seek(offset, origin));
}