anchor.diff:      result[6]:=ansichar(byte($80 or (CharValue and $3f)));
      end;
      else begin
  -    SetLength(result,3);
  +    result[0]:=ansichar(byte(3));
       result[1]:=#$ef;
       result[2]:=#$bf;
       result[3]:=#$bd;
  
positive.code:                                                      (($f0,$f0),($80,$bf),($80,$bf),($80,$bf),(-1,-1)),  // F0-F0 90-BF 80-BF 80-BF
                                                       (($f1,$f3),($80,$bf),($80,$bf),($80,$bf),(-1,-1)),  // F1-F3 80-BF 80-BF 80-BF
                                                       (($f4,$f4),($80,$bf),($80,$bf),($80,$bf),(-1,-1))); // F4-F4 80-8F 80-BF 80-BF
         HexChars:array[$0..$f] of ansichar='0123456789ABCDEF';
   var OutputNode,NodeChain:PFLRENode;
    procedure Add(const NewNode:PFLRENode);
    begin
  
negative.code:  begin
    case CharValue of
     $00000000..$0000007f:begin
      result[0]:=ansichar(byte(1));
      result[1]:=ansichar(byte(CharValue));
     end;
     $00000080..$000007ff:begin
      result[0]:=ansichar(byte(2));
      result[1]:=ansichar(byte($c0 or ((CharValue shr 6) and $1f)));
      result[2]:=ansichar(byte($80 or (CharValue and $3f)));
     end;
  // {$ifdef PLREStrictUTF8}$00000800..$0000d7ff,$0000e000..$0000ffff{$else}$00000800..$0000ffff{$endif}:begin
     $00000800..$0000ffff:begin
      result[0]:=ansichar(byte(3));
      result[1]:=ansichar(byte($e0 or ((CharValue shr 12) and $0f)));
      result[2]:=ansichar(byte($80 or ((CharValue shr 6) and $3f)));
      result[3]:=ansichar(byte($80 or (CharValue and $3f)));
     end;
     $00010000..$0010ffff:begin
      result[0]:=ansichar(byte(4));
      result[1]:=ansichar(byte($f0 or ((CharValue shr 18) and $07)));
      result[2]:=ansichar(byte($80 or ((CharValue shr 12) and $3f)));
      result[3]:=ansichar(byte($80 or ((CharValue shr 6) and $3f)));
      result[4]:=ansichar(byte($80 or (CharValue and $3f)));
     end;
     $00200000..$03ffffff:begin
      result[0]:=ansichar(byte(5));
      result[1]:=ansichar(byte($f8 or ((CharValue shr 24) and $03)));
      result[2]:=ansichar(byte($80 or ((CharValue shr 18) and $3f)));
      result[3]:=ansichar(byte($80 or ((CharValue shr 12) and $3f)));
  