anchor.diff:   CurrentThreadList^.Count:=0;
    NewThreadList^.Count:=0;
   
  - State:=ParallelNFAStateAllocate(Instance.CountSubMatches,0,0);
  + State:=ParallelNFAStateAllocate(Instance.CountSubMatches,0);
   
    inc(Generation);
    if UnanchoredStart then begin
  
positive.code:    Move(State^.SubMatches[0],result^.SubMatches[0],State^.Count*SizeOf(TFLREParallelNFAStateItem));
    end;
  {$endif}
    for Counter:=0 to longint(longword(longword(result^.UsedCheckBitmapSize+31) shr 5))-1 do begin
     result^.CheckBitmap[Counter]:=State^.CheckBitmap[Counter];
    end;
    dec(State^.ReferenceCounter);
   end;
  {$ifdef cpu386}
  
negative.code:   GetMem(result,SizeOf(TFLREParallelNFAState));
    FillChar(result^,SizeOf(TFLREParallelNFAState),#0);
    SetLength(result^.SubMatches,Instance.CountSubMatches);
    AllParallelNFAStates.Add(result);
   end;
   result^.ReferenceCounter:=1;
   result^.Count:=Count;
   result^.SubMatchesBitmap:=SubMatchesBitmap;
  end;
  
  function TFLREThreadLocalStorageInstance.ParallelNFAStateAcquire(const State:PFLREParallelNFAState):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  