`KWDpackage`END`PLN foo`END`PUN;`END`PLN

`END`KWDimport`END`PLN java`END`PUN.`END`PLNutil`END`PUN.`END`TYPIterator`END`PUN;`END`PLN

`END`COM/**
 * the fibonacci series implemented as an Iterable.
 */`END`PLN
`END`KWDpublic`END`PLN `END`KWDfinal`END`PLN `END`KWDclass`END`PLN `END`TYPFibonacci`END`PLN `END`KWDimplements`END`PLN `END`TYPIterable`END`PUN<`END`TYPInteger`END`PUN>`END`PLN `END`PUN{`END`PLN
  `END`COM/** the next and previous members of the series. */`END`PLN
  `END`KWDprivate`END`PLN `END`KWDint`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN

  `END`LIT@Override`END`PLN
  `END`KWDpublic`END`PLN `END`TYPIterator`END`PUN<`END`TYPInteger`END`PUN>`END`PLN iterator`END`PUN()`END`PLN `END`PUN{`END`PLN
    `END`KWDreturn`END`PLN `END`KWDnew`END`PLN `END`TYPIterator`END`PUN<`END`TYPInteger`END`PUN>()`END`PLN `END`PUN{`END`PLN
      `END`COM/** the series is infinite. */`END`PLN
      `END`KWDpublic`END`PLN `END`KWDboolean`END`PLN hasNext`END`PUN()`END`PLN `END`PUN{`END`PLN `END`KWDreturn`END`PLN `END`KWDtrue`END`PUN;`END`PLN `END`PUN}`END`PLN
      `END`KWDpublic`END`PLN `END`TYPInteger`END`PLN `END`KWDnext`END`PUN()`END`PLN `END`PUN{`END`PLN
        `END`KWDint`END`PLN tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN
        a `END`PUN+=`END`PLN b`END`PUN;`END`PLN
        b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN
        `END`KWDreturn`END`PLN a`END`PUN;`END`PLN
      `END`PUN}`END`PLN
      `END`KWDpublic`END`PLN `END`KWDvoid`END`PLN remove`END`PUN()`END`PLN `END`PUN{`END`PLN `END`KWDthrow`END`PLN `END`KWDnew`END`PLN `END`TYPUnsupportedOperationException`END`PUN();`END`PLN `END`PUN}`END`PLN
    `END`PUN};`END`PLN
  `END`PUN}`END`PLN

  `END`COM/**
   * the n<sup>th</sup> element of the given series.
   * @throws NoSuchElementException if there are less than n elements in the
   *   given Iterable's {@link Iterable#iterator iterator}.
   */`END`PLN
  `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END`PUN<`END`PLNT`END`PUN>`END`PLN
  T nth`END`PUN(`END`KWDint`END`PLN n`END`PUN,`END`PLN `END`TYPIterable`END`PUN<`END`PLNT`END`PUN>`END`PLN iterable`END`PUN)`END`PLN `END`PUN{`END`PLN
    `END`TYPIterator`END`PUN<?`END`PLN `END`KWDextends`END`PLN T`END`PUN>`END`PLN it `END`PUN=`END`PLN iterable`END`PUN.`END`PLNiterator`END`PUN();`END`PLN
    `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>`END`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN
      it`END`PUN.`END`KWDnext`END`PUN();`END`PLN
    `END`PUN}`END`PLN
    `END`KWDreturn`END`PLN it`END`PUN.`END`KWDnext`END`PUN();`END`PLN
  `END`PUN}`END`PLN

  `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END`KWDvoid`END`PLN main`END`PUN(`END`TYPString`END`PUN[]`END`PLN args`END`PUN)`END`PLN `END`PUN{`END`PLN
    `END`TYPSystem`END`PUN.`END`KWDout`END`PUN.`END`KWDprint`END`PUN(`END`PLNnth`END`PUN(`END`LIT10`END`PUN,`END`PLN `END`KWDnew`END`PLN `END`TYPFibonacci`END`PUN()));`END`PLN
  `END`PUN}`END`PLN
`END`PUN}`END