anchor.diff:  constructor TAbTarItem.Create;
   begin
     inherited Create;
  -  FTarHeaderList := TList.Create;
  -  FTarHeaderTypeList := TList.Create;
  +  FTarHeaderList := TList<PAbTarHeaderRec>.Create;
  +  FTarHeaderTypeList := TList<TAbTarHeaderType>.Create;
     GetMem(PTarHeader, AB_TAR_RECORDSIZE); { PTarHeader is our new Header }
     FillChar(PTarHeader^, AB_TAR_RECORDSIZE, #0);
     FTarHeaderList.Add(PTarHeader);
  -  FTarHeaderTypeList.Add(Pointer(FILE_HEADER));
  +  FTarHeaderTypeList.Add(FILE_HEADER);
     FTarItem.FileHeaderCount := 1;
     { set defaults }
     FTarItem.ArchiveFormat := UNKNOWN_FORMAT;
  
positive.code:         GetMem(PTarHeader, AB_TAR_RECORDSIZE); { Create a new Header }
          AStream.ReadBuffer(PTarHeader^, AB_TAR_RECORDSIZE); { Get the Meta Data }
          FTarHeaderList.Add(PTarHeader); { Store the Header to the list }
          FTarHeaderTypeList.Add(Pointer(MD_DATA_HEADER));
        end;
        { Loop and reparse }
      end
  
negative.code:   { Check sums are in valid headers but NOT in the data headers. }
    for I := 0 to FTarHeaderList.Count - 1 do
    begin
      if FTarHeaderTypeList.Items[I] in [FILE_HEADER, META_DATA_HEADER] then
      begin
        PHeader := FTarHeaderList.Items[i];
        { Save off old Check sum }
  