anchor.diff:  -module(simple_http_worker).
   
   -export([initial_state/0, metrics/0,
  -         get/3, get/4, post/5, random_get/3]).
  +         get/3, get/4, post/5, random_get/3, reset_cookies/2]).
   
   -type state() :: term().
   -type meta() :: [{Key :: atom(), Value :: any()}].
  
positive.code: parse_options([_|T], OAcc, HAcc) ->
      parse_options(T, OAcc, HAcc).
  
  
negative.code:     ShouldLog = proplists:get_value(log, Options, false),
      ExpectedCode = proplists:get_value(expected, Options, 200),
  
      {HackneyOptions, Headers} = parse_options(Options),
      Headers2 = add_cookies(Headers),
  
      ShouldLog andalso lager:info("GET ~s~nHeaders: ~p", [URL, Headers2]),
      StartTime = os:timestamp(),
      Response = hackney:request(get, list_to_binary(URL), Headers2, <<"">>, HackneyOptions),
      Latency = timer:now_diff(os:timestamp(), StartTime),
  
      mzb_metrics:notify({"latency", histogram}, Latency),
  
      case Response of
          {ok, ExpectedCode, RespHeaders, Ref} ->
              save_cookies(RespHeaders),
              case ShouldLog of
                  true -> lager:info("GET succ~nURL: ~p~nReply: ~p ~p~n~p", [URL, ExpectedCode, RespHeaders, hackney:body(Ref)]);
                  false -> hackney:skip_body(Ref)
              end,
              mzb_metrics:notify({"http_ok", counter}, 1);
          {ok, _, _, Ref} = Reply ->
              lager:error("GET failed~nURL: ~p~nHeaders: ~p~nReply:~p~n~p", [URL, Headers2, Reply, hackney:body(Ref)]),
              mzb_metrics:notify({"http_fail", counter}, 1);
          E ->
              lager:error("hackney:request failed: ~p", [E]),
  