anchor.diff:  			       SaltLen:8/unsigned, Salt:SaltLen/binary-unit:8,
   			       HashLen:8/unsigned, Hash:HashLen/binary-unit:8,
   			       TypeBMP/binary>>, _MsgBin) ->
  -    #dns_rrdata_nsec3{hash_alg = HashAlg, opt_out = OptOut,
  +    #dns_rrdata_nsec3{hash_alg = HashAlg, opt_out = decode_bool(OptOut),
   		      iterations = Iterations, salt = Salt,
   		      hash = Hash, types = decode_nsec_types(TypeBMP)};
   decode_rrdata(_Class, nsec3param, <<Alg:8, Flags:8, Iterations:16, SaltLen:8,
  
positive.code: decode_nsec_types(Bin) when is_binary(Bin) -> decode_nsec_types(Bin, []).
  
  decode_nsec_types(<<>>, Types) -> lists:reverse(Types);
  decode_nsec_types(<<WindowNum:8, BMPLength:8, BMP:BMPLength/binary, Rest/binary>>, Types) ->
      BaseNo = WindowNum * 256,
      NewTypes = decode_nsec_types(BaseNo, BMP, Types),
      decode_nsec_types(Rest, NewTypes).
  
negative.code: 					      hash = Hash,
  					      types = Types}, CompMap) ->
      TypeBMP = encode_nsec_types(Types),
      OptOutN = encode_bool(OptOut),
      SaltLength = byte_size(Salt),
      HashLength = byte_size(Hash),
      {<<HashAlg:8, 0:7, OptOutN:1, Iterations:16,
         SaltLength:8/unsigned, Salt:SaltLength/binary-unit:8,
         HashLength:8/unsigned, Hash:HashLength/binary-unit:8,
         TypeBMP/binary>>, CompMap};
  