anchor.diff:      procedure SetByUrl(Url: String; AValue: TqBTorrentsTracker);
     protected
     public
  +    // Enumerator
  +    function GetEnumerator: TqBTorrentsTrackersEnumerator;
  +
       procedure LoadTrackers(const aJSON: String);
       procedure LoadTrackers(const aJSONData: TJSONData);
       procedure LoadTrackers(const aJSONArray: TJSONArray);
  
positive.code:     qtrsNotWorking: Result := csStatusNotWorking;
      qtrsNotContactedYet: Result := csStatusNotContactedYet;
    end;
  end;
  
  { TqBTorrentsTracker }
  
negative.code:       write SetByUrl;
    end;
  
  { TqBTorrentsTrackersEnumerator }
    TqBTorrentsTrackersEnumerator = class(TObject)
    private
      FTrackers: TqBTorrentsTrackers;
      FPosition: Integer;
    public
      constructor Create(ATrackers: TqBTorrentsTrackers);
      function GetCurrent: TqBTorrentsTracker;
      function MoveNext: Boolean;
  
      property Current: TqBTorrentsTracker
        read GetCurrent;
    end;
  
  // Helper functions
  function StrToqBTrackerStatus(const aStatus: String): TqBTrackerStatus;
  function qBTrackerStatusToStr(aStatus: TqBTrackerStatus): String;
  