/**
  * create root pager from the largest non-empty category range
  * @param $ranges - array of "complete" token queues (range)
  *   (every range is an stdobject of decoded infix queue and encoded reverse polish queue)
  */
 public static function newFromCategoryRange($ranges)
 {
     $rp = null;
     foreach ($ranges as &$range) {
         $rp = CB_RootPager::newFromInfixTokens($range->infix_tokens);
         $rp->getCurrentRows();
         if (is_object($rp) && $rp->offset != -1) {
             break;
         }
     }
     return $rp;
 }