anchor.diff:  %%
   %% %CopyrightBegin%
   %%
  -%% Copyright Ericsson AB 1997-2020. All Rights Reserved.
  +%% Copyright Ericsson AB 1997-2021. All Rights Reserved.
   %%
   %% Licensed under the Apache License, Version 2.0 (the "License");
   %% you may not use this file except in compliance with the License.
  
positive.code:     %% Bypass name compression (RFC 2915: section 2)
      {B,_} = encode_name(B3, gb_trees:empty(), Pos+byte_size(B3), Replacement),
      {B,Comp};
  %% ?S_OPT falls through to default
  encode_data(Comp, _, ?S_TXT, in, Data) -> {encode_txt(Data),Comp};
  encode_data(Comp, _, ?S_SPF, in, Data) -> {encode_txt(Data),Comp};
  encode_data(Comp, _, ?S_URI, in, {Prio,Weight,Target}) ->
      {<<Prio:16,Weight:16,(iolist_to_binary(Target))/binary>>,Comp};
  encode_data(Comp, _, ?S_URI, in, Data) -> {encode_txt(Data),Comp};
  encode_data(Comp, _, ?S_CAA, in, {Flags,Tag,Value}) ->
      B0 = <<Flags:8>>,
      B1 = encode_string(B0, iolist_to_binary(Tag)),
      B2 = iolist_to_binary(Value),
      {<<B1/binary,B2/binary>>,Comp};
  encode_data(Comp, _, ?S_CAA, in, Data) -> {encode_txt(Data),Comp};
  encode_data(Comp, _Pos, _Type, _Class, Data) -> {iolist_to_binary(Data),Comp}.
  
  %% Array of strings
  %%
  
negative.code: decode_name_labels([Label|Labels], Name) ->
      decode_name_labels(Labels, "."++decode_name_label(Label, Name)).
  
  decode_name_label(Label, Name) ->
      ?MATCH_ELSE_DECODE_ERROR(
         Label,
         _, 1 =< byte_size(Label),
         %% Empty label is only allowed for the root domain,
         %% and that is handled above.
         decode_name_label(Label, Name, byte_size(Label))).
  
  %% Decode $. and $\\ to become $\\ escaped characters
  %% in the string representation.
  