anchor.diff:      }, Req, ?MIN_SEND_RETRY_DELAY, 0).
   
   
  --spec send_data_chunk(Data :: binary(), cowboy_req:req()) -> NextRetryDelay :: time:millis().
  +-spec send_data_chunk(Data :: iodata(), cowboy_req:req()) -> NextRetryDelay :: time:millis().
   send_data_chunk(Data, Req) ->
       send_data_chunk(Data, Req, ?MAX_DOWNLOAD_BUFFER_SIZE div ?DEFAULT_READ_BLOCK_SIZE, ?MIN_SEND_RETRY_DELAY).
   
  
positive.code: ) ->
      tar_utils:stream() | undefined | no_return().
  stream_bytes_range(FileHandle, FileSize, Range, Req, EncodingFun, ReadBlockSize, TarStream) ->
      stream_bytes_range_internal(Range, #download_ctx{
          file_size = FileSize,
          file_handle = FileHandle,
          read_block_size = ReadBlockSize,
  
negative.code:             NextSendRetryDelay = send_data_chunk(BytesToSend, Req, MaxReadBlocksCount, SendRetryDelay),
              stream_bytes_range_internal(
                  {From + DataSize, To},
                  DownloadCtx#streaming_ctx{file_handle = NewFileHandle, tar_stream = FinalTarStream},
                  Req, NextSendRetryDelay, ReadBytes + DataSize
              )
      end.
  