private static void New_subs(Io_url owner_dir, List_adp list, IoItmList subs, byte[] dir_cmd) {
   subs.Sort();
   int len = subs.Len();
   int list_total = list.Len();
   byte[] owner_dir_bry = owner_dir.RawBry();
   for (int i = 0; i < len; ++i) {
     IoItm_base src = (IoItm_base) subs.Get_at(i);
     Xow_import_doc trg = null;
     if (src.Type_dir()) {
       byte[] trg_url = src.Url().RawBry();
       trg =
           new Xow_import_doc(
               Bool_.Y,
               Bool_.N,
               list_total + i,
               owner_dir_bry,
               trg_url,
               Bry_.new_u8(src.Url().NameAndExt_noDirSpr()),
               Bry_.Empty,
               Bry_.Empty,
               dir_cmd,
               Ary_empty);
     } else {
       IoItmFil src_as_fil = (IoItmFil) src;
       String size_str = Io_size_.To_str(src_as_fil.Size(), "#,###");
       boolean is_xowa_core =
           gplx.xowa.wikis.data.Xow_db_file__core_.Is_core_fil_name(
               owner_dir.NameOnly(), src.Url().NameAndExt());
       trg =
           new Xow_import_doc(
               Bool_.N,
               is_xowa_core,
               list_total + i,
               owner_dir_bry,
               src.Url().RawBry(),
               Bry_.new_u8(src.Name()),
               Bry_.new_u8(src_as_fil.ModifiedTime().XtoStr_fmt("yyyy-MM-dd")),
               Bry_.new_u8(size_str),
               dir_cmd,
               Ary_empty);
     }
     list.Add(trg);
   }
 }
 private byte Select_fsdb_itms(List_adp list) {
   list.Clear();
   boolean pages_found = false, links_found = false;
   DataRdr rdr =
       Xob_xfer_regy_tbl.Select_by_tier_page(bldr_conn, tier_id_val, page_id_val, select_interval);
   try {
     while (rdr.MoveNextPeer()) {
       pages_found = true; // at least one page found; set true
       Xodb_tbl_oimg_xfer_itm itm = Xodb_tbl_oimg_xfer_itm.new_rdr_(rdr);
       if (itm.Lnki_page_id() == page_id_val // same page_id
           && itm.Lnki_id() <= lnki_id_val // ... but lnki_id < last
       ) continue; // ... ignore; note that select is by page_id, not page_id + link_id; needed
       // else restarts would not resume exactly at same point;
       links_found = true;
       list.Add(itm);
     }
   } finally {
     rdr.Rls();
   }
   if (pages_found && !links_found)
     return Select_rv_next_page; // pages found, but all links processed
   else if (!pages_found) return Select_rv_stop; // no more pages found
   else return Select_rv_process; // pages and links found
 }