anchor.diff:  %% @end
   %%--------------------------------------------------------------------
   -spec get_binary(cowboy_req:req(), cdmi_handler:cdmi_req()) ->
  -    {term(), cowboy_req:req(), cdmi_handler:cdmi_req()}.
  +    {stop, cowboy_req:req(), cdmi_handler:cdmi_req()}.
   get_binary(Req, #cdmi_req{
       client = ?USER(_UserId, SessionId),
       file_attrs = #file_attr{guid = FileGuid, size = Size}
  
positive.code:     options = Options
  } = CdmiReq) ->
      NonEmptyOpts = utils:ensure_defined(Options, [], ?DEFAULT_GET_FILE_OPTS),
      Answer = get_file_info(NonEmptyOpts, CdmiReq),
  
      case maps:get(<<"value">>, Answer, undefined) of
          {range, Range} ->
              % prepare response
              BodyWithoutValue = maps:remove(<<"value">>, Answer),
              ValueTransferEncoding = cdmi_metadata:get_encoding(SessionId, {guid, FileGuid}),
              JsonBodyWithoutValue = json_utils:encode(BodyWithoutValue),
              JsonBodyPrefix = case BodyWithoutValue of
                  #{} = Map when map_size(Map) =:= 0 -> <<"{\"value\":\"">>;
                  _ ->
                      <<(erlang:binary_part(JsonBodyWithoutValue, 0, byte_size(JsonBodyWithoutValue) - 1))/binary, ",\"value\":\"">>
              end,
              JsonBodySuffix = <<"\"}">>,
  
              Req2 = cdmi_streamer:stream_cdmi(
                  Req, CdmiReq, Range,
                  ValueTransferEncoding, JsonBodyPrefix, JsonBodySuffix
              ),
              {stop, Req2, CdmiReq};
          undefined ->
              {json_utils:encode(Answer), Req, CdmiReq}
      end.
  
  
  
negative.code:                         )};
                      _ ->
                          Acc#{<<"valuerange">> => iolist_to_binary(
                              [<<"0-">>, integer_to_binary(FileSize - 1)]
                          )} %todo fix 0--1 when file is empty
                  end;
              (_, Acc) ->
  