anchor.diff:  {$ENDIF FPC}
   end;
   
  -class function TConverters.SplitString(const AInput: String; ADelimiter: Char)
  -  : THashLibStringArray;
  -var
  -  LPosStart, LPosSkip, LSplitPoints, LIdx, LLowIndex, LHighIndex,
  -    LLength: Int32;
  -begin
  -  result := Nil;
  -  if AInput <> '' then
  -  begin
  -    { Determine the length of the resulting array }
  -    LSplitPoints := 0;
  -{$IFDEF DELPHIXE3_UP}
  -    LLowIndex := System.Low(AInput);
  -    LHighIndex := System.High(AInput);
  -{$ELSE}
  -    LLowIndex := 1;
  -    LHighIndex := System.length(AInput);
  -{$ENDIF DELPHIXE3_UP}
  -    for LIdx := LLowIndex to LHighIndex do
  -    begin
  -      if (ADelimiter = AInput[LIdx]) then
  -      begin
  -        System.Inc(LSplitPoints);
  -      end;
  -    end;
  -
  -    System.SetLength(result, LSplitPoints + 1);
  -
  -    { Split the string and fill the resulting array }
  -
  -    LIdx := 0;
  -    LLength := System.length(ADelimiter);
  -{$IFDEF DELPHIXE3_UP}
  -    LPosStart := System.Low(AInput);
  -    LHighIndex := System.High(AInput);
  -{$ELSE}
  -    LPosStart := 1;
  -    LHighIndex := System.length(AInput);
  -{$ENDIF DELPHIXE3_UP}
  -    LPosSkip := System.Pos(ADelimiter, AInput);
  -    while LPosSkip > 0 do
  -    begin
  -      result[LIdx] := System.Copy(AInput, LPosStart, LPosSkip - LPosStart);
  -      LPosStart := LPosSkip + LLength;
  -      LPosSkip := PosEx(ADelimiter, AInput, LPosStart);
  -      System.Inc(LIdx);
  -    end;
  -    result[LIdx] := System.Copy(AInput, LPosStart, LHighIndex);
  -  end;
  -end;
  -
   end.
  
positive.code:   TConverters = class sealed(TObject)
  
    strict private
      class function SplitString(const AInput: String; ADelimiter: Char)
        : THashLibStringArray; static;
  
  {$IFDEF DEBUG}
      class procedure Check(const AInput: THashLibByteArray;
        AInputSize, AOutputSize: Int32); overload; static;
  {$ENDIF DEBUG}
      class procedure swap_copy_str_to_u32(ASource: Pointer; ASourceIndex: Int32;
        ADestination: Pointer; ADestinationIndex: Int32; ASize: Int32); static;
  
  
negative.code: 
  class function TConverters.ConvertBytesToHexString(const AInput
    : THashLibByteArray; AGroup: Boolean): String;
  begin
    result := UpperCase(TBitConverter.ToString(AInput));
  
    if System.length(AInput) = 1 then
    begin
      Exit;
    end;
  
    if (AGroup) then
    begin
      Exit;
    end;
  
    result := StringReplace(result, '-', '', [rfIgnoreCase, rfReplaceAll]);
  end;
  
  class function TConverters.ConvertHexStringToBytes(const AInput: String)
  