anchor.diff:  send_chunked_body_part(#client_state{requester = Pid}, Buffer, Window, _Size) ->
       Pid ! {body_part, self(), list_to_binary(lists:reverse(Buffer))},
       receive
  -        {ack, Pid} ->  Window; 
  +        {ack, Pid} ->  Window;
           {'DOWN', _, process, Pid, _} -> exit(normal)
       after 0 ->
           lhttpc_lib:dec(Window)
  
positive.code:         upload_window = UploadWindowSize,
          chunked_upload = ChunkedUpload,
          partial_download = PartialDownload,
          download_window = proplists:get_value(window_size, 
              PartialDownloadOptions, infinity),
          part_size = proplists:get_value(part_size,
              PartialDownloadOptions, infinity) 
      },
      Response = case send_request(State) of
          {R, undefined} ->
  
negative.code:                 [Chunk | Buffer], 0)
      end;
  read_partial_chunked_body(State = #client_state{socket = Socket, ssl = Ssl,
          part_size = PartSize}, Hdrs, Window, BufferSize, Buffer,
          RestChunkSize) ->
      if
          BufferSize + RestChunkSize >= PartSize ->
              {Chunk, NewRestChunkSize} =
                  read_partial_chunk(Socket, Ssl, PartSize - BufferSize,
                      RestChunkSize),
              NewWindow = send_chunked_body_part(State, [Chunk | Buffer],
                  Window, not_empty),
              read_partial_chunked_body(State, Hdrs, NewWindow, 0, [],
                  NewRestChunkSize);
          BufferSize + RestChunkSize < PartSize ->
              Chunk = read_chunk(Socket, Ssl, RestChunkSize),
              read_partial_chunked_body(State, Hdrs, Window,
                  BufferSize + RestChunkSize, [Chunk | Buffer], 0)
      end.
  
  read_chunk_size(Socket, Ssl) ->
      lhttpc_sock:setopts(Socket, [{packet, line}], Ssl),
  