LOCAL lnfirst, lnlast, lnmid, llfound, lnoffset * m.Policy is the value to search for. lnoffset = 0 lnfirst = 1 lnlast = o.ListCount lnmid = INT((lnfirst + lnlast) / 2) llfound = (ALLTRIM(o.List(lnmid, x)) + ALLTRIM(o.List(lnmid, x + 2) = m.Policy) DO WHILE NOT llfound AND lnfirst < lnlast IF (ALLTRIM(o.List(lnmid, x)) + ALLTRIM(o.List(lnmid, x + 2) > m.Policy) lnfirst = lnmid + 1 ELSE lnlast = lnmid - 1 ENDIF lnmid = INT((lnfirst + lnlast) / 2) llfound = (ALLTRIM(o.List(lnmid, x)) + ALLTRIM(o.List(lnmid, x + 2) = m.Policy) ENDDO IF llfound lnoffset = lnmid ENDIF RETURN lnoffset