anchor.diff:        gHands.CleanUpGroupPointer(Group);
       end;
     end;
  -  fDefence.FindEnemyInDefLine(UGA);
  +  fDefence.FindEnemyInDefLine(UGA, fDefendRequest);
   end;
   
   
  
positive.code:   //function FindBestTarget(var aBestTargetPlayer, aTargetPlayer: TKMHandIndex; var aTargetPoint: TKMPoint; aForceToAttack: Boolean = False): Boolean;
    function FindBestTarget(var aBestTargetPlayer: TKMHandIndex; var aTargetPoint: TKMPoint; aForceToAttack: Boolean): Boolean;
    const
      ALLIANCE_TARGET_COEF = 0.15;
      BEST_ALLIANCE_TARGET_COEF = 0.2;
      DISTANCE_COEF = 0.75; // If second enemy is twice as far away decrease chance by 3/8
      MIN_COMPARSION = 0.2; // 20% advantage for attacker
    var
      I, K, MinDist: Integer;
      Comparison, BestComparison: Single;
      OwnerArr: array of TKMHandIndex;
      EnemyStats: TKMEnemyStatisticsArray;
    begin
      Result := False;
  
negative.code:     LoadStream.Read(BestPoint);
      LoadStream.Read(Count);
      SetLength(Enemies,Count);
      if (Length(Enemies) > 0) then
        LoadStream.Read(Enemies[0], SizeOf(Enemies[0])*Length(Enemies));
    end;
  
    with fDefendRequest do
    begin
      LoadStream.Read(PointsCnt);
      SetLength(Points,PointsCnt);
      if (Length(Points) > 0) then
        LoadStream.Read(Points[0], SizeOf(Points[0])*PointsCnt);
    end;
  
    LoadStream.Read(Count);
  