code: public int getRunStart(int run)
      {
          verifyValidParaOrLine();
          BidiLine.getRuns(this);
          verifyRange(run, 0, runCount);
          getLogicalToVisualRunsMap();
          return runs[logicalToVisualRunsMap[run]].start;
      }
docs: Return the index of the character at the start of the nth logical run in
  this line, as an offset from the start of the line.
  
  @param run the index of the run, between 0 and <code>countRuns()</code>
  
  @return the start of the run
  
  @throws IllegalStateException if this call is not preceded by a successful
  call to <code>setPara</code> or <code>setLine</code>
  @throws IllegalArgumentException if <code>run</code> is not in
  the range <code>0&lt;=run&lt;countRuns()</code>