anchor.diff:  %%====================================================================
   
   %%--------------------------------------------------------------------
  -%% @spec    (Contacts) -> [#contact{}] | {unparsable, Reason}
  +%% @spec    (Contacts) -> [#contact{}]
   %%
   %%            Contacts = string() "\"contact1, concact2\" or just \"c1\""
  +%%
  +%% @throws  {yxa_unparsable, contact, {Reason, In :: string()}}
   %%
   %% @doc     Parse header data from a request that uses the same (or
   %%          nearly the same) grammar as "Contact". This include
  
positive.code: 
      %% test invalid hostname that is not quoted and not a token
      autotest:mark(?LINE, "parse/1 - 24"),
      {unparsable, {invalid_contact_param, _}} = (catch parse(["<sip:example.org>;foo=|.example.org"])),
  
      %% test parameters with delimeter-alike characters, interop problem (our fault) encountered
      %% with Cisco 79xx phones firmware > 7.4
  
negative.code:     %% test parameters with unbalanced quotes
      autotest:mark(?LINE, "parse/1 - 27"),
      {unparsable, {unparsable_contact_params, unbalanced_quotes}} =
  	test_parse(["<sip:ft@192.0.2.12:5060>;foo=\"test"]),
  
      %% test invalid expires parameter
      autotest:mark(?LINE, "parse/1 - 28"),
      {unparsable, {malformed_expires, "aa"}} =
  	test_parse(["<sip:ft@192.0.2.12:5060>;expires=aa"]),
  
      %% test with invalid IPv6 address in parameter
      autotest:mark(?LINE, "parse/1 - 29"),
      {unparsable, {invalid_contact_param, "test=[2001:6b0:5:987::1234"}} =
  	test_parse(["<sip:ft@192.0.2.12:5060>;test=[2001:6b0:5:987::1234"]),
  
      %% test invalid q parameter
      autotest:mark(?LINE, "parse/1 - 30"),
      {unparsable, {malformed_qvalue, "aa"}} =
  	test_parse(["<sip:ft@192.0.2.12:5060>;q=aa"]),
  
  
      %% print(Contact) / print(Contacts)
  