anchor.diff:        if (FActualInfo.Sectors = nil) or (FActualInfo.SectorsChanged) then
           ActualizeSectors;
   
  -      FinishSector := PByte(NativeInt(FActualInfo.Sectors) +
  -        NativeInt(Self.Width) * Params.Finish.Y + Params.Finish.X)^;
  +      Store.FinishSector := PByte(NativeInt(FActualInfo.Sectors) +
  +        NativeInt(Width) * Params.Finish.Y + Params.Finish.X)^;
       end else
       begin
         if (FActualInfo.Sectors <> nil) then
           CPFFreeMem(Pointer(FActualInfo.Sectors));
   
  -      FinishSector := SECTOR_EMPTY;
  +      Store.FinishSector := SECTOR_EMPTY;
       end;
   
       // excluded points
  
positive.code:     begin
        if (FActualInfo.Weights.Count <> 0) then
        begin
          HLine := FInfo.HeuristicsLine;
          HDiagonal := FInfo.HeuristicsDiagonal;
          if (not ActualizeWeights(nil, 0 = Flags and (FLAG_CACHING or FLAG_FINISH or FLAG_TILES))) then goto weights_flags;
        end;
      end else
      if (FActualInfo.Weights.Current <> Params.Weights.FInfo) or
        (FActualInfo.Weights.UpdateId <> Params.Weights.FInfo.PrepareId) then
      begin
        HLine := FInfo.HeuristicsLine;
        HDiagonal := FInfo.HeuristicsDiagonal;
  
        if (not ActualizeWeights(Params.Weights.FInfo, 0 = Flags and (FLAG_CACHING or FLAG_FINISH or FLAG_TILES))) then
        begin
        weights_flags:
          Flags := Flags or FLAG_WEIGHTS;
  
          if (HLine <> FInfo.HeuristicsLine) or (HDiagonal <> FInfo.HeuristicsDiagonal) then
            Flags := Flags or FLAG_HEURISTICS;
        end;
      end;
  
negative.code:   // each start point find algorithm
    FoundPaths := Params.StartsCount;
    StartPoint := FActualInfo.Starts.Buffer.Memory;
    Store.AttainableAlgorithm := (FoundPaths > 1) or (FCaching);
    for i := Params.StartsCount downto 1 do
    begin
      // sector test
      if (Store.FinishSector <> SECTOR_EMPTY{Self.SectorTest}) then
      begin
        if (Store.FinishSector <> PByte(NativeInt(FActualInfo.Sectors) +
          NativeInt(Width) * StartPoint.Y + StartPoint.X)^) then
          goto path_not_found;
      end;
  
  