anchor.diff:  %% =========================================================================================================
   %% group
   %% =========================================================================================================
  -encode(MsgFields = [{GroupName1, _} | _], #field_group{type = group, name = GroupName2}, Context = #context{pmap = PMap})
  -when GroupName1 =/= GroupName2 ->
  -   {<<>>, MsgFields, Context#context{pmap = <<PMap/bits, 0:1>>}};
  +encode([{GroupName, Value} | MsgFieldsRest], #field_group{type = group, name = GroupName}, Context = #context{pmap = PMap})
  +when  (Value == absent) ->
  +   {<<>>, MsgFieldsRest, Context#context{pmap = <<PMap/bits, 0:1>>}};
   
   encode([{GroupName, MsgGroupFields} | MsgFieldsRest],
      #field_group{type = group, name = GroupName, instructions = Instrs}, Context = #context{pmap = PMap, template = T}) ->
  
positive.code: %% =========================================================================================================
  %% decFieldOp
  %% =========================================================================================================
  encode(MsgFields = [{FieldName1, _Value} | _],
     F = #field{name = FieldName2, presence = Presence, operator = #decFieldOp{exponent = EOp}}, Context)
  when (FieldName1 =/= FieldName2) ->
     {EBin, [], Context1} = encode([{FieldName2, absent}], F#field{type = int32, name = FieldName2, presence = Presence, operator = EOp}, Context),
     {EBin, MsgFields, Context1};
  
  encode(MsgFields = [{FieldName1, Value} | MsgFieldsRest],
     F = #field{name = FieldName2, presence = Presence, operator = #decFieldOp{exponent = EOp}}, Context)
  when ((FieldName1 == FieldName2) andalso (Value == absent)) ->
     {EBin, [], Context1} = encode(MsgFields, F#field{type = int32, name = FieldName1, presence = Presence, operator = EOp}, Context),
     {EBin, MsgFieldsRest, Context1};
  
  encode([{FieldName, {Mantissa, Exponent}} | MsgFieldsRest],
  
negative.code: %% no operator
  %% =========================================================================================================
  
  encode([{FieldName, Value} | MsgFieldsRest],
     #field{type = Type, name = FieldName, presence = _Presence, operator = undef}, Context) when (Value == absent) ->
     {encode_type(Type, null, true), MsgFieldsRest, Context};
  
  encode([{FieldName, Value} | MsgFieldsRest],
  