anchor.diff:      fGameTick: Cardinal;
       fSavedTicksCnt: Cardinal;
       fRngChecksInTick: TKMRLRecordList;
  -    fSaveStream: TKMemoryStreamBinary;
  +//    fSaveStream: TKMemoryStreamBinary;
   //    fRngLogStream: TKMemoryStream;
       fCallers: TDictionary<Byte, AnsiString>;
       fRngLog: TDictionary<Cardinal, TKMRLRecordList>;
  +    fTickStreamQueue: TObjectQueue<TKMemoryStreamBinary>;
  +
       function GetCallerID(const aCaller: AnsiString; aValue: Extended; aValueType: TKMLogRngType): Byte;
       procedure AddRecordToList(aTick: Cardinal; const aRec: TKMRngLogRecord);
       procedure AddRecordToDict(aTick: Cardinal; const aRec: TKMRngLogRecord);
  
positive.code:   FreeAndNil(fRngLog);
    FreeAndNil(fCallers);
    FreeAndNil(fRngChecksInTick);
  //  FreeAndNil(fRngLogStream);
  
    FreeAndNil(fSaveStream);
  
    inherited;
  end;
  
negative.code: 
  var
    I, K, CountInTick: Integer;
    Tick, tickStreamSize: Cardinal;
  begin
    for I := 0 to fSavedTicksCnt - 1 do
    begin
      aLoadStream.Read(tickStreamSize); // load tick stream size and omit it, we don't use it here
  
      aLoadStream.Read(Tick);
      aLoadStream.Read(CountInTick);
  
  