Original text:
Running state in the CHECK LIST SET has been processed, the first CHECK LIST is selected again.  Etc. <del> NOTE: When timer Ta fires, and the agent processes a CHECK LIST, if no check is performed for a pair in the CHECK LIST (based on the rules below), the agent can immediately select the next CHECK LIST in the Running state, without waiting for timer Ta to expire again. </del> Whenever Ta fires, the agent will perform a check for a candidate <del> pair within the selected CHECK LIST as follows: </del>  If the TRIGGERED CHECK QUEUE associated with the CHECK LIST contains one or more candidate pairs, the agent removes the top <del> pair from the queue, performs a connectivity check on that pair and puts the candidate pair state to In-Progress; or If the TRIGGERED CHECK QUEUE associated with the CHECK LIST is empty, and if there are one or more candidate pairs in the Waiting state, the agent selects the highest-priority candidate pair (if there are multiple pairs with the same priority, the pair with the lowest component ID is selected) in the Waiting state, performs a connectivity check on that pair and puts the candidate pair par state to In-Progress; or </del>  If there is no candidate pair in the Waiting state, and if there are one or more pairs in the Frozen state, for each pair in the <del> Frozen state the the agent checks the foundation associated with the pair.  For a given foundation, if there is no pair (in any CHECK LIST in the CHECK LIST SET) in the Waiting or In-Progress state, the agent performs a connectivity check on the pair and puts the pair state to In-Prograss.  If, for the same foundation, there are one or more pairs in the Waiting or In-Progress state, (in any CHECK LIST in the CHECK LIST SET) the agent does not perform a connectivity check on the pair. </del>  Once the agent has selected a candidate pair, for which a connectivity check is to be performed, the agent performs the check

Reviewer comments:
Alternate version of PR . Rather than structuring the Ta procedures as: If , do , or; If , do , or; ... This PR structures them more like pseudocode, with the ability for multiple steps to be run in the same Ta cycle, reducing some text duplication.

Revised text:
Running state in the CHECK LIST SET has been processed, the first CHECK LIST is selected again.  Etc.  Whenever Ta fires, the agent will perform a check for a candidate  <ins> pair within the selected CHECK LIST by performing the following steps: </ins> If the TRIGGERED CHECK QUEUE associated with the CHECK LIST contains one or more candidate pairs, the agent removes the top  <ins> pair from the queue, performs a connectivity check on that pair, puts the candidate pair state to In-Progress, and aborts the subsequent steps. </ins> If there is no candidate pair in the Waiting state, and if there are one or more pairs in the Frozen state, for each pair in the  <ins> Frozen state the agent checks the foundation associated with the pair.  For a given foundation, if there is no pair (in any CHECK LIST in the CHECK LIST SET) in the Waiting or In-Progress state, the agent puts the candidate pair state to Waiting and continues with the next step. If there are one or more candidate pairs in the Waiting state, the agent selects the highest-priority candidate pair (if there are multiple pairs with the same priority, the pair with the lowest component ID is selected) in the Waiting state, performs a connectivity check on that pair, puts the candidate pair par state to In-Progress, and abort the subsequent steps. If this step is reached, no check could be performed for the selected CHECK LIST.  So, without waiting for timer Ta to expire again, select the next CHECK LIST in the Running state and return to step #1.  If this happens for every single CHECK LIST in the Running state, meaning there are no remaining candidate pairs to perform connectivity checks for, abort these steps. </ins> Once the agent has selected a candidate pair, for which a connectivity check is to be performed, the agent performs the check