anchor.diff:  
        TFLREInstructionGenerations=array of int64;
   
  +     TFLREPrefilterNode=class;
  +
  +     TFLREPrefilterNodeList=class(TList)
  +      protected
  +       function GetNodeItem(Index:longint):TFLREPrefilterNode;
  +       procedure SetNodeItem(Index:longint;Value:TFLREPrefilterNode);
  +      public
  +       property Items[Index:longint]:TFLREPrefilterNode read GetNodeItem write SetNodeItem; default;
  +     end;
  +
  +     TFLREPrefilterNodeOperation=(FLREpfnoANY,FLREpfnoATOM,FLREpfnoAND,FLREpfnoOR);
  +
  +     TFLREPrefilterNode=class
  +      public
  +       Operation:TFLREPrefilterNodeOperation;
  +       Subs:TFLREPrefilterNodeList;
  +       Atom:ansistring;
  +       Exact:boolean;
  +       constructor Create;
  +       destructor Destroy; override;
  +       function Clone:TFLREPrefilterNode;
  +       function Expression:ansistring;
  +       function ShortExpression:ansistring;
  +       function SQLBooleanFullTextExpression:ansistring;
  +       function SQLExpression(const Field:ansistring):ansistring;
  +     end;
  +
        TFLREThreadLocalStorageInstance=class
         private
          AllNext:TFLREThreadLocalStorageInstance;
  
positive.code:        RangeHigh:ansistring;
         HasRange:boolean;
  
         function NewNode(const NodeType:longint;const Left,Right,Extra:PFLRENode;const Value:longint):PFLRENode;
         procedure FreeNode(var Node:PFLRENode);
  
  
negative.code:  RangeHigh:='';
   HasRange:=false;
  
   PrefilterRootNode:=nil;
   HasPrefilter:=false;
  
   try
  
    try
  