$ od -c -N 50000 [Pixel]<Tioga>TBase>tbasedefs.dm!1
0000000  377  \0  \0   C   a   r   d   A   d   d   r   s   .   m   e   s
0000020    a  \0 373 226 341   O 212  \0  \0 376 001  \0 343   "   -   -
0000040        C   a   r   d   A   d   d   r   s   .   M   e   s   a  \r
0000060    -   -       w   r   i   t   t   e   n       b   y       P   a
0000100    x   t   o   n   .           M   a   r   c   h       1   9   8
0000120    1  \r   -   -       l   a   s   t       w   r   i   t   t   e
0000140    n       b   y       P   a   x   t   o   n   .           M   a
0000160    r   c   h       1   9   ,       1   9   8   1           4   :
0000200    1   9       P   M  \r  \r   -   -       *   *   *   *       P
0000220    e   r   s   i   s   t   e   n   t       a   d   d   r   e   s
0000240    s   i   n   g       *   *   *   *  \r  \r   C   a   r   d   A
0000260    d   d   r   s   :       D   E   F   I   N   I   T   I   O   N
0000300    S       =  \r   B   E   G   I   N  \r  \r   R   e   f   :    
0000320    T   Y   P   E       =       R   E   F       B   o   d   y   ;
0000340   \r   B   o   d   y   :       T   Y   P   E   ;       -   -    
0000360    c   o   n   t   a   i   n   s       t   h   e       m   a   p
0000400        f   r   o   m       R   E   F   s       t   o       C   a
0000420    r   d   s  \r  \r   C   a   r   d   :       T   Y   P 376 001
0000440   \0   E 006   E       =       L   O   N   G       C   A   R   D
0000460    I   N   A   L   ;  \r  \r   C   r   e   a   t   e   :       P
0000500    R   O   C       R   E   T   U   R   N   S       [   R   e   f
0000520    ]   ;  \r  \r   P   u   t   A   d   d   r   :       P   R   O
0000540    C       [   r   e   f   :       R   e   f   ,       a   d   d
0000560    r   :       R   E   F   ,       l   o   c   a   t   i   o   n
0000600    :       C   a   r   d   ]   ;      \r  \t   -   -       a   s
0000620    s   i   g   n   s       a   d   d   r       t   o       l   o
0000640    c   a   t   i   o   n       i   n       r   e   f  \r  \t   -
0000660    -       o   k       i   f       a   d   d   r       w   a   s
0000700        p   r   e   v   i   o   u   s   l   y       a   s   s   i
0000720    g   n   e   d       e   l   s   e   w   h   e   r   e  \r  \r
0000740    R   e   m   A   d   d   r   :       P   R   O   C       [   r
0000760    e   f   :       R   e   f   ,       a   d   d   r   :       R
0001000    E   F   ]   ;  \r  \t   -   -       r   e   m   o   v   e   s
0001020        t   h   e       g   i   v   e   n       a   d   d   r  \r
0001040   \r   G   e 376 001  \0 236 221   t   A   d   d   r   :       P
0001060    R   O   C       [   r   e   f   :       R   e   f   ,       a
0001100    d   d   r   :       R   E   F   ]       R   E   T   U   R   N
0001120    S       [   l   o   c   a   t   i   o   n   :       C   a   r
0001140    d   ]   ;  \r  \t   -   -       g   e   n   e   r   a   t   e
0001160    s       C   a   r   d   A   d   d   r   s   .   A   d   d   r
0001200    N   o   t   F   o   u   n   d       i   f       t   h   e    
0001220    a   d   d   r       i   s       n   o   t       i   n       t
0001240    h   e       m   a   p   p   i   n   g  \r  \r   A   d   d   r
0001260    N   o   t   F   o   u   n   d   :       E   R   R   O   R   ;
0001300   \r  \r   T   r   y   G   e   t   A   d   d   r   :       P   R
0001320    O   C       [   r   e   f   :       R   e   f   ,       a   d
0001340    d   r   :       R   E   F   ]  \r  \t   R   E   T   U   R   N
0001360    S       [   f   o   u   n   d   :       B   O   O   L   E   A
0001400    N   ,       l   o   c   a   t   i   o   n   :       C   a   r
0001420    d   ]   ;  \r  \r   M   a   p   A   d   d   r   s   :       P
0001440    R   O   C       [   r   e   f 376 001  \0 024 202   :       R
0001460    e   f   ,       a   c   t   i   o   n   :       M   a   p   A
0001500    d   d   r   s   A   c   t   i   o   n   ]  \r  \t   R   E   T
0001520    U   R   N   S       [   B   O   O   L   E   A   N   ]   ;  \r
0001540   \t   -   -       a   p   p   l   y       t   h   e       a   c
0001560    t   i   o   n       t   o       e   a   c   h       a   d   d
0001600    r   &   l   o   c   a   t   i   o   n       p   a   i   r    
0001620    f   o   r       t   h   e       r   e   f  \r  \t   -   -    
0001640    r   e   t   u   r   n   s       t   r   u   e       i   f   &
0001660    w   h   e   n       a   n       a   c   t   i   o   n       r
0001700    e   t   u   r   n   s       t   r   u   e  \r  \r   M   a   p
0001720    A   d   d   r   s   A   c   t   i   o   n   :       T   Y   P
0001740    E       =       P   R   O   C       [   a   d   d   r   :    
0001760    R   E   F   ,       l   o   c   a   t   i   o   n   :       C
0002000    a   r   d   ]       R   E   T   U   R   N   S       [   B   O
0002020    O   L   E   A   N   ]   ;  \r  \r   -   -       *   *   *   *
0002040        E   d   i   t   i   n   g       O   p   e   r 376 001  \0
0002060  206   2   a   t   i   o   n   s       f   o   r       p   e   r
0002100    s   i   s   t   e   n   t       a   d   d   r   s       *   *
0002120    *   *  \r  \r   R   e   p   l   a   c   e   :       P   R   O
0002140    C       [   r   e   f   :       R   e   f   ,       s   t   a
0002160    r   t   ,       l   e   n   ,       n   e   w   l   e   n   :
0002200        C   a   r   d   ]   ;  \r  \t   -   -       r   e   p   l
0002220    a   c   e       c   h   a   r   s       i   n       [   s   t
0002240    a   r   t   .   .   s   t   a   r   t   +   l   e   n   )    
0002260    b   y       n   e   w   l   e   n       c   h   a   r   s  \r
0002300   \t   -   -       a   d   d   r   s       t   h   a   t       a
0002320    r   e       i   n       t   h   e       r   e   p   l   a   c
0002340    e   d       s   e   c   t   i   o   n       m   o   v   e    
0002360    t   o       s   t   a   r   t  \r  \t   -   -       a   d   d
0002400        (   n   e   w   l   e   n   -   l   e   n   )       t   o
0002420        a   d   d   r   s       t   h   a   t       a   r   e    
0002440    a   f   t   e   r       t   h   e       r   e   p   l   a   c
0002460    e   d 376 001  \0   @ 211       s   e   c   t   i   o   n  \r
0002500   \r   M   o   v   e   :       P   R   O   C       [   r   e   f
0002520    :       R   e   f   ,       d   e   s   t   ,       s   t   a
0002540    r   t   ,       l   e   n   :       C   a   r   d   ]   ;  \r
0002560   \t   -   -       d   e   s   t       m   u   s   t       n   o
0002600    t       b   e       i   n       [   s   t   a   r   t   .   .
0002620    s   t   a   r   t   +   l   e   n   )  \r  \t  \t   -   -    
0002640    o   r       g   e   t       E   R   R   O   R       B   a   d
0002660    M   o   v   e  \r  \r   T   r   a   n   s   p   o   s   e   :
0002700        P   R   O   C       [   r   e   f   :       R   e   f   ,
0002720        a   s   t   a   r   t   ,       a   l   e   n   ,       b
0002740    s   t   a   r   t   ,       b   l   e   n   :       C   a   r
0002760    d   ]   ;  \r  \t   -   -       [   a   s   t   a   r   t   .
0003000    .   a   s   t   a   r   t   +   a   l   e   n   )       m   u
0003020    s   t       n   o   t       i   n   t   e   r   s   e   c   t
0003040        [   b   s   t   a   r   t   .   .   b   s   t   a   r   t
0003060    +   b   l   e   n   )  \r 376 001  \0 244 244  \t  \t   -   -
0003100        o   r       g   e   t       E   R   R   O   R       B   a
0003120    d   T   r   a   n   s   p   o   s   e  \r  \r   -   -       *
0003140    *   *   *       U   p   d   a   t   e       F   u   n   c   t
0003160    i   o   n   s       f   o   r       p   e   r   s   i   s   t
0003200    e   n   t       a   d   d   r   s       *   *   *   *  \r  \r
0003220    A   f   t   e   r   R   e   p   l   a   c   e   :       P   R
0003240    O   C       [   i   n   i   t   L   o   c   ,       s   t   a
0003260    r   t   ,       l   e   n   ,       n   e   w   l   e   n   :
0003300        C   a   r   d   ]       R   E   T   U   R   N   S       [
0003320    n   e   w   L   o   c   :       C   a   r   d   ]   ;  \r  \r
0003340    A   f   t   e   r   M   o   v   e   :       P   R   O   C    
0003360    [   i   n   i   t   L   o   c   ,       d   e   s   t   ,    
0003400    s   t   a   r   t   ,       l   e   n   :       C   a   r   d
0003420    ]       R   E   T   U   R   N   S       [   n   e   w   L   o
0003440    c   :       C   a   r   d   ]   ;  \r  \t   -   -       d   e
0003460    s   t       m   u   s   t       n   o   t     376 001  \0   D
0003500  221   b   e       i   n       [   s   t   a   r   t   .   .   s
0003520    t   a   r   t   +   l   e   n   )       o   r       g   e   t
0003540        E   R   R   O   R       B   a   d   M   o   v   e  \r  \r
0003560    A   f   t   e   r   T   r   a   n   s   p   o   s   e   :    
0003600    P   R   O   C       [   i   n   i   t   L   o   c   ,       a
0003620    s   t   a   r   t   ,       a   l   e   n   ,       b   s   t
0003640    a   r   t   ,       b   l   e   n   :       C   a   r   d   ]
0003660   \r  \t   R   E   T   U   R   N   S       [   n   e   w   L   o
0003700    c   :       C   a   r   d   ]   ;  \r  \t   -   -       [   a
0003720    s   t   a   r   t   .   .   a   s   t   a   r   t   +   a   l
0003740    e   n   )       m   u   s   t       n   o   t       i   n   t
0003760    e   r   s   e   c   t       [   b   s   t   a   r   t   .   .
0004000    b   s   t   a   r   t   +   b   l   e   n   )  \r  \t  \t   -
0004020    -       o   r       g   e   t       E   R   R   O   R       B
0004040    a   d   T   r   a   n   s   p   o   s   e  \r  \r   B   a   d
0004060    M   o   v   e   ,       B   a   d   T   r   a   n   s   p   o
0004100    s 376  \0 020 353 326   e   :       E   R   R   O   R   ;  \r
0004120   \r   E   N   D   .  \r 377  \0  \0   E   d   i   t   N   o   t
0004140    i   f   y   .   m   e   s   a  \0 373 226 340 372 313  \0  \0
0004160  376 001  \0  \n 366   -   -       E   d   i   t   N   o   t   i
0004200    f   y   .   m   e   s   a  \r   -   -       w   r   i   t   t
0004220    e   n       b   y       B   i   l   l       P   a   x   t   o
0004240    n   ,       M   a   r   c   h       1   9   8   1  \r   -   -
0004260        l   a   s   t       e   d   i   t       b   y       B   i
0004300    l   l       P   a   x   t   o   n   ,       M   a   r   c   h
0004320        1   8   ,       1   9   8   1           4   :   4   8    
0004340    P   M  \r  \r  \r   D   I   R   E   C   T   O   R   Y  \r   T
0004360    e   x   t   N   o   d   e       U   S   I   N   G       [   R
0004400    e   f   ,       R   e   f   T   e   x   t   N   o   d   e   ,
0004420        S   t   y   l   e   N   a   m   e   ,       T   y   p   e
0004440    N   a   m   e   ]   ,  \r   T   e   x   t   L   o   o   k   s
0004460        U   S   I   N   G       [   L   o   o   k   s   ]   ;  \r
0004500   \r   E   d   i   t   N   o   t   i   f   y   :       D   E   F
0004520    I   N   I   T   I   O   N   S       =  \r   B   E   G   I   N
0004540        O   P   E   N       n   o   d   e   I   :   T   e   x   t
0004560    N   o   d   e   , 376 001  \0 273 225       l   o   o   k   s
0004600    I   :   T   e   x   t   L   o   o   k   s   ;  \r  \r   R   e
0004620    f   :       T   Y   P   E       =       n   o   d   e   I   .
0004640    R   e   f   ;  \r   R   e   f   T   e   x   t   N   o   d   e
0004660    :       T   Y   P   E       =       n   o   d   e   I   .   R
0004700    e   f   T   e   x   t   N   o   d   e   ;  \r   L   o   o   k
0004720    s   :       T   Y   P   E       =       l   o   o   k   s   I
0004740    .   L   o   o   k   s   ;  \r   C   h   a   r   :       T   Y
0004760    P   E       =       C   H   A   R   A   C   T   E   R   ;  \r
0005000    C   a   r   d   :       T   Y   P   E       =       L   O   N
0005020    G       C   A   R   D   I   N   A   L   ;  \r  \r  \r   -   -
0005040        *   *   *   *       N   o   t   i   f   i   c   a   t   i
0005060    o   n       O   p   e   r   a   t   i   o   n   s       *   *
0005100    *   *  \r  \r   E   d   i   t   N   o   t   i   f   y   P   r
0005120    o   c   :       T   Y   P   E       =  \r  \t   P   R   O   C
0005140        [   t   1   ,       t   2   :       R   e   f   ,       c
0005160    h   a   n   g   e   :       R   E   F 376 001  \0 240   U    
0005200    R   E   A   D   O   N   L   Y       C   h   a   n   g   e   ,
0005220        t   i   m   e   :       W   h   e   n       _       a   f
0005240    t   e   r   ]   ;  \r  \t   -   -       t   1       a   n   d
0005260        t   2       a   r   e       t   e   x   t       n   o   d
0005300    e   s       c   h   a   n   g   e   d       b   y       t   h
0005320    e       e   d   i   t  \r  \t   -   -       t   2       w   i
0005340    l   l       b   e       N   I   L       i   f       o   n   l
0005360    y       o   n   e       n   o   d   e       i   s       c   h
0005400    a   n   g   e   d  \r  \r   W   h   e   n   :       T   Y   P
0005420    E       =       {   b   e   f   o   r   e   ,       a   f   t
0005440    e   r   }   ;  \r  \t   -   -       i   n   d   i   c   a   t
0005460    e   s       w   h   e   t   h   e   r       b   e   f   o   r
0005500    e       o   r       a   f   t   e   r       t   h   e       c
0005520    h   a   n   g   e       h   a   s       t   a   k   e   n    
0005540    p   l   a   c   e  \r  \r   A   d   d   N   o   t   i   f   y
0005560    P   r   o   c   :       P   R   O   C       [   p   r   o 376
0005600  001  \0   H 333   c   :       E   d   i   t   N   o   t   i   f
0005620    y   P   r   o   c   ,       t   i   m   e   :       W   h   e
0005640    n       _       a   f   t   e   r   ]   ;  \r  \t   -   -    
0005660    a   d   d       n   e   w       p   r   o   c       t   o    
0005700    l   i   s   t       o   f       n   o   t   i   f   i   c   a
0005720    t   i   o   n       p   r   o   c   e   d   u   r   e   s  \r
0005740   \t   -   -       c   a   l   l       s   u   c   h       p   r
0005760    o   c   s       b   e   f   o   r   e   /   a   f   t   e   r
0006000        a   n   y       n   o   d   e       e   d   i   t  \r  \t
0006020   \t   -   -       u   s   e       t   i   m   e   =   b   e   f
0006040    o   r   e       f   o   r       a   p   p   l   i   c   a   t
0006060    i   o   n   s       s   u   c   h       a   s       s   a   v
0006100    i   n   g       t   e   x   t       f   o   r       u   n   d
0006120    o  \r  \t  \t   -   -       u   s   e       t   i   m   e   =
0006140    a   f   t   e   r       f   o   r       a   p   p   l   i   c
0006160    a   t   i   o   n   s       s   u   c   h       a   s       r
0006200    e   f   o   r 376 001  \0 354 231   m   a   t       &       r
0006220    e   d   i   s   p   l   a   y  \r  \r   R   e   m   o   v   e
0006240    N   o   t   i   f   y   P   r   o   c   :       P   R   O   C
0006260        [   p   r   o   c   :       E   d   i   t   N   o   t   i
0006300    f   y   P   r   o   c   ,       t   i   m   e   :       W   h
0006320    e   n       _       a   f   t   e   r   ]   ;  \r  \t   -   -
0006340        r   e   m   o   v   e       p   r   o   c       f   r   o
0006360    m       l   i   s   t       o   f       n   o   t   i   f   i
0006400    c   a   t   i   o   n       p   r   o   c   e   d   u   r   e
0006420    s  \r  \r   C   a   l   l   N   o   t   i   f   y   P   r   o
0006440    c   s   :       P   R   O   C  \r  \t   [   t   1   ,       t
0006460    2   :       R   e   f   ,       c   h   a   n   g   e   :    
0006500    R   E   F       R   E   A   D   O   N   L   Y       C   h   a
0006520    n   g   e   ,       t   i   m   e   :       W   h   e   n    
0006540    _       a   f   t   e   r   ]   ;  \r  \t   -   -       c   a
0006560    l   l       n   o   t   i   f   i   c   a   t   i   o   n    
0006600    p   r   o   c   e   d   u   r   e 376 001  \0 210 274   s  \r
0006620   \t   -   -       s   o   m   e       c   l   i   e   n   t   s
0006640        m   a   y       w   a   n   t       t   o       u   s   e
0006660        t   h   i   s       f   o   r       t   h   e   i   r    
0006700    o   w   n       a   p   p   l   i   c   a   t   i   o   n   s
0006720   \r  \t   -   -       s   t   a   n   d   a   r   d       e   d
0006740    i   t       r   o   u   t   i   n   e   s       d   o       t
0006760    h   i   s       a   u   t   o   m   a   t   i   c   a   l   l
0007000    y  \r  \r   C   h   a   n   g   e   :       T   Y   P   E    
0007020    =       R   E   C   O   R   D       [   S   E   L   E   C   T
0007040        k   i   n   d   :   O   f   C   h   a   n   g   e       F
0007060    R   O   M  \r  \r  \t   C   h   a   n   g   i   n   g   L   o
0007100    o   k   s       =   >       [  \r  \t  \t   t   e   x   t   :
0007120        R   e   f   T   e   x   t   N   o   d   e   ,  \r  \t  \t
0007140    r   e   m   o   v   e   L   o   o   k   s   ,       a   d   d
0007160    L   o   o   k   s   :       L   o   o   k   s   ,  \r  \t  \t
0007200    s   t   a   r   t   L   o   c   ,       c   h   a   n 376 001
0007220   \0 306   \   g   e   L   e   n   :       C   a   r   d   ]   ,
0007240   \r  \t  \t   -   -       c   h   a   n   g   e   L   e   n    
0007260    c   h   a   r   a   c   t   e   r   s       i   n       t   e
0007300    x   t       s   t   a   r   t   i   n   g       a   t       s
0007320    t   a   r   t   L   o   c       g   e   t       c   h   a   n
0007340    g   e   d       l   o   o   k   s  \r  \t  \t   -   -       f
0007360    i   r   s   t       r   e   m   o   v   e       t   h   e    
0007400    r   e   m   o   v   e   L   o   o   k   s   ,       t   h   e
0007420    n       a   d   d       t   h   e       a   d   d   L   o   o
0007440    k   s  \r  \t  \r  \t   R   e   p   l   a   c   i   n   g   T
0007460    e   x   t       =   >       [  \r  \t  \t   d   e   s   t   :
0007500        R   e   f   T   e   x   t   N   o   d   e   ,       d   e
0007520    s   t   S   t   a   r   t   ,       d   e   s   t   L   e   n
0007540    :       C   a   r   d   ,  \r  \t  \t   s   o   u   r   c   e
0007560    :       R   e   f   T   e   x   t   N   o   d   e   ,       s
0007600    o   u   r   c   e   S   t   a   r   t   ,       s   o   u   r
0007620    c   e   L 376 001  \0   h   }   e   n   :       C   a   r   d
0007640    ]   ,  \r  \t  \t   -   -       r   e   p   l   a   c   e    
0007660    d   e   s   t   L   e   n       c   h   a   r   a   c   t   e
0007700    r   s       i   n       d   e   s   t       s   t   a   r   t
0007720    i   n   g       a   t       d   e   s   t   S   t   a   r   t
0007740   \r  \t  \t   -   -       b   y       s   o   u   r   c   e   L
0007760    e   n       c   h   a   r   a   c   t   e   r   s       f   r
0010000    o   m       s   o   u   r   c   e       s   t   a   r   t   i
0010020    n   g       a   t       s   o   u   r   c   e   S   t   a   r
0010040    t  \r  \t  \t   -   -       t   h   i   s       c   o   v   e
0010060    r   s       c   o   p   y   i   n   g       a   n   d       d
0010100    e   l   e   t   i   n   g       a   l   s   o  \r  \t  \t  \t
0010120    -   -       d   e   s   t   L   e   n   =   0       f   o   r
0010140        c   o   p   y   i   n   g  \r  \t  \t  \t   -   -       s
0010160    o   u   r   c   e   L   e   n   =   0       f   o   r       d
0010200    e   l   e   t   i   n   g  \r  \t  \r  \t   M   o   v   i   n
0010220    g   T   e   x   t       =   > 376 001  \0 211 356       [    
0010240   \r  \t  \t   d   e   s   t   :       R   e   f   T   e   x   t
0010260    N   o   d   e   ,       d   e   s   t   L   o   c   :        
0010300    C   a   r   d   ,  \r  \t  \t   s   o   u   r   c   e   :    
0010320    R   e   f   T   e   x   t   N   o   d   e   ,       s   o   u
0010340    r   c   e   S   t   a   r   t   ,       s   o   u   r   c   e
0010360    L   e   n   :           C   a   r   d   ]   ,  \r  \t  \t  \t
0010400    -   -       d   e   l   e   t   e       s   o   u   r   c   e
0010420    L   e   n       c   h   a   r   a   c   t   e   r   s       f
0010440    r   o   m       s   o   u   r   c   e       s   t   a   r   t
0010460    i   n   g       a   t       s   o   u   r   c   e   S   t   a
0010500    r   t  \r  \t  \t  \t   -   -       i   n   s   e   r   t    
0010520    t   h   e   m       i   n       d   e   s   t       a   t    
0010540    d   e   s   t   L   o   c  \r  \r  \t   T   r   a   n   s   p
0010560    o   s   i   n   g   T   e   x   t       =   >       [  \r  \t
0010600   \t   a   l   p   h   a   :       R   e   f   T   e   x   t   N
0010620    o   d   e   ,       a   l   p   h   a   S   t   a 376 001  \0
0010640    @ 261   r   t   ,       a   l   p   h   a   L   e   n   :    
0010660    C   a   r   d   ,  \r  \t  \t   b   e   t   a   :       R   e
0010700    f   T   e   x   t   N   o   d   e   ,       b   e   t   a   S
0010720    t   a   r   t   ,       b   e   t   a   L   e   n   :       C
0010740    a   r   d   ]   ,  \r  \t  \t   -   -       e   x   c   h   a
0010760    n   g   e       a   l   p   h   a   L   e   n       c   h   a
0011000    r   a   c   t   e   r   s       o   f       a   l   p   h   a
0011020        s   t   a   r   t   i   n   g       a   t       a   l   p
0011040    h   a   S   t   a   r   t  \r  \t  \t   -   -       w   i   t
0011060    h       b   e   t   a   L   e   n       c   h   a   r   a   c
0011100    t   e   r   s       o   f       b   e   t   a       s   t   a
0011120    r   t   i   n   g       a   t       b   e   t   a   S   t   a
0011140    r   t  \r  \t  \r  \t   I   n   s   e   r   t   i   n   g   T
0011160    e   x   t       =   >       [  \r  \t  \t   -   -       f   o
0011200    r       I   n   s   e   r   t   C   h   a   r   ,       I   n
0011220    s   e   r   t   S   t   r   i   n   g   ,       a   n   d    
0011240    I   n 376 001  \0 204 034   s   e   r   t   R   o   p   e  \r
0011260   \t  \t   d   e   s   t   :       R   e   f   T   e   x   t   N
0011300    o   d   e   ,       d   e   s   t   L   o   c   ,       i   n
0011320    s   e   r   t   L   e   n   :       C   a   r   d   ,  \r  \t
0011340   \t   i   n   h   e   r   i   t   :       B   O   O   L   E   A
0011360    N   ,       l   o   o   k   s   :       L   o   o   k   s   ]
0011400    ,  \r  \t  \t   -   -       i   n   s   e   r   t       i   n
0011420    s   e   r   t   L   e   n       c   h   a   r   a   c   t   e
0011440    r   s       a   t       d   e   s   t   L   o   c       i   n
0011460        d   e   s   t  \r  \t  \t   -   -       i   f       i   n
0011500    h   e   r   i   t       i   s       t   r   u   e   ,       c
0011520    h   a   r   a   c   t   e   r   s       g   e   t   s       l
0011540    o   o   k   s       i   n       f   o   l   l   o   w   i   n
0011560    g       m   a   n   n   e   r   :  \r  \t  \t  \t   -   -    
0011600    i   f       d   e   s   t       l   e   n   g   t   h       i
0011620    s       0   ,       t   h   e   n       g   e   t   s       l
0011640    o   o   k   s       f   r 376 001  \0   i   V   o   m       a
0011660    r   g   u   m   e   n   t       l   i   s   t   ,       e   l
0011700    s   e  \r  \t  \t  \t   -   -       i   f       l   o   c   a
0011720    t   i   o   n       >       0   ,       t   h   e   n       l
0011740    o   o   k   s       a   n   d       l   i   s   t       o   f
0011760        p   r   e   v   i   o   u   s       c   h   a   r   ,  \r
0012000   \t  \t  \t   -   -       e   l   s   e       l   o   o   k   s
0012020        a   n   d       l   i   s   t       o   f       f   i   r
0012040    s   t       c   h   a   r       i   n       d   e   s   t  \r
0012060   \t  \r  \t   C   h   a   n   g   i   n   g   T   y   p   e    
0012100    =   >       [  \r  \t  \t   n   o   d   e   :       R   e   f
0012120    ,  \r  \t  \t   n   e   w   S   t   y   l   e   ,       n   e
0012140    w   T   y   p   e   :       B   O   O   L   E   A   N   ,    
0012160   \r  \t  \t   s   t   y   l   e   N   a   m   e   :       n   o
0012200    d   e   I   .   S   t   y   l   e   N   a   m   e   ,  \r  \t
0012220   \t   t   y   p   e   N   a   m   e   :       n   o   d   e   I
0012240    .   T   y   p   e   N   a   m   e   ]   ,  \r 376 001  \0   7
0012260  257  \t  \t   -   -       c   h   a   n   g   e       s   t   y
0012300    l   e       a   n   d   /   o   r       t   y   p   e       o
0012320    f       n   o   d   e  \r  \t  \r  \t   R   e   p   l   a   c
0012340    i   n   g   N   o   d   e   s       =   >       [  \r  \t  \t
0012360    d   e   s   t   P   a   r   e   n   t   :       R   e   f   ,
0012400        d   e   s   t   S   t   a   r   t   ,       d   e   s   t
0012420    L   e   n   :       C   a   r   d   ,  \r  \t  \t   s   o   u
0012440    r   c   e   P   a   r   e   n   t   :       R   e   f   ,    
0012460    s   o   u   r   c   e   S   t   a   r   t   ,       s   o   u
0012500    r   c   e   L   e   n   :       C   a   r   d   ]   ,  \r  \t
0012520   \t   -   -       r   e   p   l   a   c   e       d   e   s   t
0012540    L   e   n       c   h   i   l   d   r   e   n       i   n    
0012560    d   e   s   t   P   a   r   e   n   t       s   t   a   r   t
0012600    i   n   g       a   t       d   e   s   t   S   t   a   r   t
0012620   \r  \t  \t   -   -       b   y       s   o   u   r   c   e   L
0012640    e   n       c   h   i   l   d   r   e   n       f   r   o   m
0012660      376 001  \0   u 337   s   o   u   r   c   e   P   a   r   e
0012700    n   t       s   t   a   r   t   i   n   g       a   t       s
0012720    o   u   r   c   e   S   t   a   r   t  \r  \t  \t   -   -    
0012740    t   h   i   s       c   o   v   e   r   s       c   o   p   y
0012760    i   n   g       a   n   d       d   e   l   e   t   i   n   g
0013000        n   o   d   e   s       a   l   s   o  \r  \t  \r  \t   M
0013020    o   v   i   n   g   N   o   d   e   s       =   >       [  \r
0013040   \t  \t   d   e   s   t   P   a   r   e   n   t   :       R   e
0013060    f   ,       d   e   s   t   L   o   c   :       C   a   r   d
0013100    ,  \r  \t  \t   s   o   u   r   c   e   P   a   r   e   n   t
0013120    :       R   e   f   ,       s   o   u   r   c   e   S   t   a
0013140    r   t   ,       s   o   u   r   c   e   L   e   n   :       C
0013160    a   r   d   ]   ,  \r  \t  \t  \t   -   -       d   e   l   e
0013200    t   e       s   o   u   r   c   e   L   e   n       c   h   i
0013220    l   d   r   e   n       f   r   o   m       s   o   u   r   c
0013240    e   P   a   r   e   n   t       s   t   a   r   t   i   n   g
0013260        a   t       s   o 376 001  \0 020 277   u   r   c   e   S
0013300    t   a   r   t  \r  \t  \t  \t   -   -       i   n   s   e   r
0013320    t       t   h   e   m       i   n       d   e   s   t   P   a
0013340    r   e   n   t       a   t       d   e   s   t   L   o   c  \r
0013360   \t  \t  \t  \t   -   -       e   .   g   .   ,       d   e   s
0013400    t   L   o   c   =   0       t   o       m   o   v   e       t
0013420    o       s   t   a   r   t       o   f       d   e   s   t  \r
0013440   \t  \t  \t  \t   -   -       a   n   d       d   e   s   t   L
0013460    o   c   =   N   u   m   C   h   i   l   d   r   e   n   [   d
0013500    e   s   t   ]       t   o       m   o   v   e       t   o    
0013520    e   n   d  \r  \t  \r  \t   T   r   a   n   s   p   o   s   i
0013540    n   g   N   o   d   e   s       =   >       [  \r  \t  \t   a
0013560    l   p   h   a   P   a   r   e   n   t   :       R   e   f   ,
0013600        a   l   p   h   a   S   t   a   r   t   ,       a   l   p
0013620    h   a   L   e   n   :       C   a   r   d   ,  \r  \t  \t   b
0013640    e   t   a   P   a   r   e   n   t   :       R   e   f   ,    
0013660    b   e   t   a   S   t   a   r   t   ,     376 001  \0   7   &
0013700    b   e   t   a   L   e   n   :       C   a   r   d   ]   ,  \r
0013720   \t  \t   -   -       e   x   c   h   a   n   g   e       a   l
0013740    p   h   a   L   e   n       c   h   i   l   d   r   e   n    
0013760    o   f       a   l   p   h   a   P   a   r   e   n   t       s
0014000    t   a   r   t   i   n   g       w   i   t   h       a   l   p
0014020    h   a   S   t   a   r   t  \r  \t  \t  \t   -   -       w   i
0014040    t   h       b   e   t   a   L   e   n       c   h   i   l   d
0014060    r   e   n       o   f       b   e   t   a   P   a   r   e   n
0014100    t       s   t   a   r   t   i   n   g       w   i   t   h    
0014120    b   e   t   a   S   t   a   r   t  \r  \t  \r  \t   I   n   s
0014140    e   r   t   i   n   g   N   o   d   e       =   >       [  \r
0014160   \t  \t   d   e   s   t   P   a   r   e   n   t   :       R   e
0014200    f   ,       d   e   s   t   L   o   c   :       C   a   r   d
0014220    ]   ,  \r  \t  \t   -   -       i   n   s   e   r   t       a
0014240        n   e   w       n   o   d   e       a   s       d   e   s
0014260    t   L   o   c   '   t   h       c   h   i   l   d       o   f
0014300  376  \0 314   y   9       d   e   s   t   P   a   r   e   n   t
0014320   \r  \r  \t   E   N   D   C   A   S   E   ]   ;  \r  \r   O   f
0014340    C   h   a   n   g   e   :       T   Y   P   E       =       {
0014360   \r  \t   C   h   a   n   g   i   n   g   L   o   o   k   s   ,
0014400        R   e   p   l   a   c   i   n   g   T   e   x   t   ,    
0014420    M   o   v   i   n   g   T   e   x   t   ,       T   r   a   n
0014440    s   p   o   s   i   n   g   T   e   x   t   ,       I   n   s
0014460    e   r   t   i   n   g   T   e   x   t   ,  \r  \t   C   h   a
0014500    n   g   i   n   g   T   y   p   e   ,       R   e   p   l   a
0014520    c   i   n   g   N   o   d   e   s   ,       M   o   v   i   n
0014540    g   N   o   d   e   s   ,       T   r   a   n   s   p   o   s
0014560    i   n   g   N   o   d   e   s   ,       I   n   s   e   r   t
0014600    i   n   g   N   o   d   e   }   ;  \r  \t  \r   E   N   D   .
0014620   \r 377  \0  \0   L   o   o   k   s   R   e   a   d   e   r   .
0014640    m   e   s   a  \0 373 226 350 344  \b  \0  \0 376 001  \0 332
0014660  037   -   -       L   o   o   k   s   R   e   a   d   e   r   .
0014700    m   e   s   a  \r   -   -       w   r   i   t   t   e   n    
0014720    b   y       B   i   l   l       P   a   x   t   o   n   ,    
0014740        M   a   r   c   h       1   9   8   1  \r   -   -       l
0014760    a   s   t       e   d   i   t       b   y       B   i   l   l
0015000        P   a   x   t   o   n   ,           M   a   r   c   h    
0015020    2   5   ,       1   9   8   1           1   0   :   1   8    
0015040    A   M  \r  \r   -   -       L   o   o   k   s   R   e   a   d
0015060    e   r       p   r   o   v   i   d   e   s       f   a   s   t
0015100        i   n   l   i   n   e       a   c   c   e   s   s       t
0015120    o       l   o   o   k   s  \r  \t   -   -       d   e   s   i
0015140    g   n   e   d       f   o   r       s   p   e   e   d       i
0015160    n       r   e   a   d   i   n   g       a       s   e   q   u
0015200    e   n   c   e       o   f       l   o   o   k   s  \r  \t  \t
0015220    -   -       e   i   t   h   e   r       f   o   r   w   a   r
0015240    d   s       o   r       b   a   c   k   w   a   r   d   s  \r
0015260   \r 376 001  \0 305   +   -   -       s   u   p   p   o   r   t
0015300    s       l   o   o   k   s       a   s       d   e   f   i   n
0015320    e   d       b   y       T   e   x   t   L   o   o   k   s   .
0015340    M   e   s   a  \r  \r   -   -       c   r   e   a   t   e    
0015360    a       r   e   a   d   e   r       b   y       c   a   l   l
0015400    i   n   g       C   r   e   a   t   e  \r  \t   -   -       r
0015420    e   a   d   e   r   :       L   o   o   k   s   R   e   a   d
0015440    e   r   .   R   e   f       _       C   r   e   a   t   e   [
0015460    ]   ;  \r  \r   -   -       p   o   s   i   t   i   o   n    
0015500    i   t       w   h   e   r   e       y   o   u       w   a   n
0015520    t       t   o       r   e   a   d       b   y       S   e   t
0015540    P   o   s   i   t   i   o   n  \r  \t   -   -       L   o   o
0015560    k   s   R   e   a   d   e   r   .   S   e   t   P   o   s   i
0015600    t   i   o   n   [   r   e   a   d   e   r   ,       r   u   n
0015620    s   ,       i   n   d   e   x   ]   ;  \r  \t   -   -       w
0015640    h   e   r   e       r   u   n   s       i   s       T   i   o
0015660    g   a   L   o   o   k 376 001  \0 202 363   s   .   R   u   n
0015700    s       t   o       r   e   a   d       f   r   o   m  \r  \t
0015720    -   -       a   n   d       i   n   d   e   x       i   s    
0015740    t   h   e       i   n   i   t   i   a   l       p   o   s   i
0015760    t   i   o   n       f   o   r       t   h   e       r   e   a
0016000    d   e   r  \r  \t   -   -       y   o   u       c   a   n    
0016020    r   e   p   o   s   i   t   i   o   n       a       r   e   a
0016040    d   e   r       a   t       a   n   y       t   i   m   e  \r
0016060   \r   -   -       r   e   a   d       i   t   s       p   o   s
0016100    i   t   i   o   n       i   n       t   h   e       f   o   l
0016120    l   o   w   i   n   g       w   a   y   s   :  \r  \t   -   -
0016140        [   r   u   n   s   ,       i   n   d   e   x   ]       _
0016160        L   o   o   k   s   R   e   a   d   e   r   .   P   o   s
0016200    i   t   i   o   n   [   r   e   a   d   e   r   ]   ;  \r  \t
0016220    -   -       r   u   n   s       _       L   o   o   k   s   R
0016240    e   a   d   e   r   .   G   e   t   R   u   n   s   [   r   e
0016260    a   d   e   r   ]   ;  \r  \t   -   -     376 001  \0 265 275
0016300    i   n   d   e   x       _       L   o   o   k   s   R   e   a
0016320    d   e   r   .   G   e   t   I   n   d   e   x   [   r   e   a
0016340    d   e   r   ]   ;  \r  \r   -   -       t   o       r   e   a
0016360    d       i   n       a   s   c   e   n   d   i   n   g       o
0016400    r   d   e   r       (   l   e   f   t       t   o       r   i
0016420    g   h   t   )  \r  \t   -   -       i   n   i   t   i   a   l
0016440    i   z   e       p   o   s   i   t   i   o   n       b   e   f
0016460    o   r   e       f   i   r   s   t       l   o   o   k   s    
0016500    t   o       b   e       r   e   a   d  \r  \t  \t   -   -    
0016520    f   o   r       e   x   a   m   p   l   e   ,       u   s   e
0016540        0       t   o       s   t   a   r   t       a   t       b
0016560    e   g   i   n   n   i   n   g  \r  \t   -   -       t   h   e
0016600    n       c   a   l   l       G   e   t       w   h   i   c   h
0016620        r   e   a   d   s       t   o       t   h   e       r   i
0016640    g   h   t       a   n   d       i   n   c   r   e   m   e   n
0016660    t   s       t   h   e       p   o   s   i   t   i   o   n  \r
0016700  376 001  \0 360   }  \t  \t   -   -       l   o   o   k   s    
0016720    _       L   o   o   k   s   R   e   a   d   e   r   .   G   e
0016740    t   [   r   e   a   d   e   r   ]   ;  \r  \r   -   -       t
0016760    o       r   e   a   d       i   n       d   e   s   c   e   n
0017000    d   i   n   g       o   r   d   e   r       (   r   i   g   h
0017020    t       t   o       l   e   f   t   )  \r  \t   -   -       i
0017040    n   i   t   i   a   l   i   z   e       p   o   s   i   t   i
0017060    o   n       a   f   t   e   r       f   i   r   s   t       l
0017100    o   o   k   s       t   o       b   e       r   e   a   d  \r
0017120   \t  \t   -   -       f   o   r       e   x   a   m   p   l   e
0017140    ,       u   s   e       S   i   z   e   [   r   u   n   s   ]
0017160        t   o       s   t   a   r   t       a   t       e   n   d
0017200   \r  \t   -   -       t   h   e   n       c   a   l   l       B
0017220    a   c   k   w   a   r   d   s       w   h   i   c   h       r
0017240    e   a   d   s       t   o       t   h   e       l   e   f   t
0017260        a   n   d       d   e   c   r   e   m   e   n   t   s    
0017300    t   h   e       p 376 001  \0 364 210   o   s   i   t   i   o
0017320    n  \r  \t  \t   -   -       l   o   o   k   s       _       L
0017340    o   o   k   s   R   e   a   d   e   r   .   B   a   c   k   w
0017360    a   r   d   s   [   r   e   a   d   e   r   ]   ;  \r  \r   -
0017400    -       c   a   n       a   l   s   o       g   e   t       l
0017420    o   o   k   s       w   i   t   h   o   u   t       c   h   a
0017440    n   g   i   n   g       t   h   e       r   e   a   d   e   r
0017460        p   o   s   i   t   i   o   n  \r  \t   -   -       t   o
0017500        l   o   o   k       a   t       t   h   e       n   e   x
0017520    t       l   o   o   k   s       t   h   a   t       G   e   t
0017540        w   o   u   l   d       r   e   t   u   r   n   ,       c
0017560    a   l   l       P   e   e   k  \r  \t  \t   -   -       l   o
0017600    o   k   s       _       L   o   o   k   s   R   e   a   d   e
0017620    r   .   P   e   e   k   [   r   e   a   d   e   r   ]   ;  \r
0017640   \t   -   -       t   o       l   o   o   k       a   t       w
0017660    h   a   t       B   a   c   k   w   a   r   d   s       w   o
0017700    u   l   d       r   e   t   u   r   n 376 001  \0 240 316   ,
0017720        c   a   l   l       P   e   e   k   B   a   c   k   w   a
0017740    r   d   s  \r  \t  \t   -   -       l   o   o   k   s       _
0017760        L   o   o   k   s   R   e   a   d   e   r   .   P   e   e
0020000    k   B   a   c   k   w   a   r   d   s   [   r   e   a   d   e
0020020    r   ]   ;  \r  \r   -   -       c   a   n       i   n   t   e
0020040    r   m   i   x       r   e   a   d   i   n   g       o   r    
0020060    p   e   e   k   i   n   g       t   o       l   e   f   t    
0020100    a   n   d       r   i   g   h   t  \r  \t   -   -       d   o
0020120    n   '   t       n   e   e   d       t   o       r   e   i   n
0020140    i   t   i   a   l   i   z   e       t   h   e       r   e   a
0020160    d   e   r       t   o       c   h   a   n   g   e       d   i
0020200    r   e   c   t   i   o   n  \r  \r   D   I   R   E   C   T   O
0020220    R   Y  \r  \t   I   n   l   i   n   e   ,  \r  \t   T   e   x
0020240    t   L   o   o   k   s   ,  \r  \t   R   u   n   R   e   a   d
0020260    e   r   ;  \r  \r   L   o   o   k   s   R   e   a   d   e   r
0020300    :       D   E   F   I   N   I   T   I   O   N   S  \r  \t 376
0020320  001  \0   ^   q   I   M   P   O   R   T   S       R   u   n   R
0020340    e   a   d   e   r   ,       I   n   l   i   n   e       =  \r
0020360    B   E   G   I   N       O   P   E   N       l   o   o   k   s
0020400    I   :   T   e   x   t   L   o   o   k   s   ,       r   e   a
0020420    d   e   r   I   :   R   u   n   R   e   a   d   e   r   ;  \r
0020440   \r   C   a   r   d   :       T   Y   P   E       =       L   O
0020460    N   G       C   A   R   D   I   N   A   L   ;  \r   L   o   o
0020500    k   s   :       T   Y   P   E       =       l   o   o   k   s
0020520    I   .   L   o   o   k   s   ;  \r   n   o   L   o   o   k   s
0020540    :       L   o   o   k   s       =       l   o   o   k   s   I
0020560    .   n   o   L   o   o   k   s   ;  \r   R   u   n   s   :    
0020600    T   Y   P   E       =       l   o   o   k   s   I   .   R   u
0020620    n   s   ;  \r  \r   R   e   f   :       T   Y   P   E       =
0020640        R   E   F       B   o   d   y   ;  \r   B   o   d   y   :
0020660        T   Y   P   E       =       P   R   I   V   A   T   E    
0020700    R   E   C   O   R   D       [  \r  \t   r   e   m   :       N
0020720    A   T   ,     376 001  \0   ~   ~   -   -       r   e   m   a
0020740    i   n   d   e   r       o   f       c   u   r   r   e   n   t
0020760        r   u   n  \r  \t   l   e   n   :       N   A   T   ,    
0021000    -   -       l   e   n   g   t   h       o   f       c   u   r
0021020    r   e   n   t       r   u   n  \r  \t   l   o   o   k   s   :
0021040        L   o   o   k   s   ,       -   -       l   o   o   k   s
0021060        f   o   r       c   u   r   r   e   n   t       r   u   n
0021100   \r  \t   r   u   n   r   e   a   d   e   r   :       r   e   a
0021120    d   e   r   I   .   R   e   f       -   -       r   e   a   d
0021140    e   r       f   o   r       r   u   n   s  \r  \t   ]   ;  \r
0021160   \r   C   r   e   a   t   e   :       P   R   O   C       [   ]
0021200        R   E   T   U   R   N   S       [   R   e   f   ]       =
0021220        I   N   L   I   N   E       {  \r  \t   -   -       c   r
0021240    e   a   t   e       a       r   e   a   d   e   r       f   o
0021260    r       c   h   a   r   s       a   n   d       l   o   o   k
0021300    s  \r  \t   R   E   T   U   R   N       [   N   E   W   [   B
0021320    o   d   y       _       [   0   , 376 001  \0   c   Q   0   ,
0021340    n   o   L   o   o   k   s   ,   N   E   W   [   r   e   a   d
0021360    e   r   I   .   B   o   d   y   ]   ]   ]   ]       }   ;  \r
0021400   \r   S   e   t   P   o   s   i   t   i   o   n   :       P   R
0021420    O   C       [   r   e   a   d   e   r   :       R   e   f   ,
0021440        r   u   n   s   :       R   u   n   s   ,       i   n   d
0021460    e   x   :       C   a   r   d       _       0   ]       =  \r
0021500   \t   I   N   L   I   N   E       {  \r  \t   -   -       s   e
0021520    t       p   o   s   i   t   i   o   n       o   f       r   e
0021540    a   d   e   r  \r  \t   r   e   a   d   e   r   .   r   e   m
0021560        _       r   e   a   d   e   r   .   l   e   n       _    
0021600    0   ;  \r  \t   r   e   a   d   e   r   I   .   S   e   t   P
0021620    o   s   i   t   i   o   n   [   r   e   a   d   e   r   .   r
0021640    u   n   r   e   a   d   e   r   ,       r   u   n   s   ,    
0021660    i   n   d   e   x   ]       }   ;  \r  \r   S   e   t   I   n
0021700    d   e   x   :       P   R   O   C       [   r   e   a   d   e
0021720    r   :       R   e   f   ,       i   n   d   e   x   : 376 001
0021740   \0   b   A       C   a   r   d       _       0   ]       =    
0021760    I   N   L   I   N   E       {  \r  \t   r   e   a   d   e   r
0022000    .   r   e   m       _       r   e   a   d   e   r   .   l   e
0022020    n       _       0   ;  \r  \t   r   e   a   d   e   r   I   .
0022040    S   e   t   I   n   d   e   x   [   r   e   a   d   e   r   .
0022060    r   u   n   r   e   a   d   e   r   ,       i   n   d   e   x
0022100    ]       }   ;  \r  \r   B   a   c   k   u   p   I   n   d   e
0022120    x   :       P   R   O   C       [   r   e   a   d   e   r   :
0022140        R   e   f   ,       a   m   o   u   n   t   :       C   a
0022160    r   d   ]       =       I   N   L   I   N   E       {  \r  \t
0022200    S   e   t   I   n   d   e   x   [   r   e   a   d   e   r   ,
0022220        G   e   t   I   n   d   e   x   [   r   e   a   d   e   r
0022240    ]   -   a   m   o   u   n   t   ]       }   ;  \r  \r   B   u
0022260    m   p   I   n   d   e   x   :       P   R   O   C       [   r
0022300    e   a   d   e   r   :       R   e   f   ,       a   m   o   u
0022320    n   t   :       C   a   r   d   ]       =       I   N   L   I
0022340    N   E     376 001  \0   o 360   {  \r  \t   S   e   t   I   n
0022360    d   e   x   [   r   e   a   d   e   r   ,       G   e   t   I
0022400    n   d   e   x   [   r   e   a   d   e   r   ]   +   a   m   o
0022420    u   n   t   ]       }   ;  \r  \r   P   o   s   i   t   i   o
0022440    n   :       P   R   O   C       [   r   e   a   d   e   r   :
0022460        R   e   f   ]       R   E   T   U   R   N   S       [   r
0022500    u   n   s   :       R   u   n   s   ,       i   n   d   e   x
0022520    :       C   a   r   d   ]       =  \r  \t   -   -       r   e
0022540    t   u   r   n       p   o   s   i   t   i   o   n       o   f
0022560        l   o   o   k   s       r   e   a   d   e   r  \r  \t   I
0022600    N   L   I   N   E       {       R   E   T   U   R   N       [
0022620    G   e   t   R   u   n   s   [   r   e   a   d   e   r   ]   ,
0022640        G   e   t   I   n   d   e   x   [   r   e   a   d   e   r
0022660    ]   ]       }   ;  \r  \r   G   e   t   R   u   n   s   :    
0022700    P   R   O   C       [   r   e   a   d   e   r   :       R   e
0022720    f   ]       R   E   T   U   R   N   S       [   R   u   n   s
0022740    ]       =       I   N   L   I 376 001  \0 331 231   N   E    
0022760    {  \r  \t   R   E   T   U   R   N       [   r   e   a   d   e
0023000    r   I   .   G   e   t   R   u   n   s   [   r   e   a   d   e
0023020    r   .   r   u   n   r   e   a   d   e   r   ]   ]       }   ;
0023040   \r  \r   G   e   t   I   n   d   e   x   :       P   R   O   C
0023060        [   r   e   a   d   e   r   :       R   e   f   ]       R
0023100    E   T   U   R   N   S       [   i   n   d   e   x   :       C
0023120    a   r   d   ]       =       I   N   L   I   N   E       {    
0023140    R   E   T   U   R   N       [  \r  \t   r   e   a   d   e   r
0023160    I   .   G   e   t   I   n   d   e   x   [   r   e   a   d   e
0023200    r   .   r   u   n   r   e   a   d   e   r   ]   -   r   e   a
0023220    d   e   r   .   r   e   m   ]   }   ;  \r  \r   R   e   a   d
0023240    e   r   P   r   o   c   :       T   Y   P   E       =       P
0023260    R   O   C       [   r   e   a   d   e   r   :       R   e   f
0023300    ]       R   E   T   U   R   N   S       [   L   o   o   k   s
0023320    ]   ;  \r  \r   G   e   t   :       R   e   a   d   e   r   P
0023340    r   o   c       =       I   N   L   I   N   E     376 001  \0
0023360    B 023   {  \r  \t   -   -       g   e   t       l   o   o   k
0023400    s   ,       t   h   e   n       i   n   c   r   e   m   e   n
0023420    t       r   e   a   d   e   r       l   o   c   a   t   i   o
0023440    n  \r  \t   r   e   m   :       N   A   T   ;  \r  \t   I   F
0023460        (   r   e   m   _   r   e   a   d   e   r   .   r   e   m
0023500    )       =       0       T   H   E   N       {       -   -    
0023520    g   o       t   o       t   h   e       n   e   x   t       r
0023540    u   n  \r  \t  \t   l   e   n   :       C   a   r   d   ;  \r
0023560   \t  \t   [   l   e   n   ,       r   e   a   d   e   r   .   l
0023600    o   o   k   s   ]       _       r   e   a   d   e   r   I   .
0023620    G   e   t   [   r   e   a   d   e   r   .   r   u   n   r   e
0023640    a   d   e   r   ]   ;  \r  \t  \t   I   F       l   e   n    
0023660    >       L   A   S   T   [   N   A   T   ]       T   H   E   N
0023700        {  \r  \t  \t  \t   r   e   a   d   e   r   I   .   B   a
0023720    c   k   u   p   I   n   d   e   x   [   r   e   a   d   e   r
0023740    .   r   u   n   r   e   a   d   e   r   ,   l   e   n   -   L
0023760    A   S 376 001  \0 241 036   T   [   N   A   T   ]   ]   ;  \r
0024000   \t  \t  \t   l   e   n       _       L   A   S   T   [   N   A
0024020    T   ]       }   ;  \r  \t  \t   r   e   a   d   e   r   .   l
0024040    e   n       _       r   e   m       _       L   O   O   P   H
0024060    O   L   E   [   I   n   l   i   n   e   .   L   o   w   H   a
0024100    l   f   [   l   e   n   ]   ]   }   ;  \r  \t   r   e   a   d
0024120    e   r   .   r   e   m       _       r   e   m   -   1   ;  \r
0024140   \t   R   E   T   U   R   N   [   r   e   a   d   e   r   .   l
0024160    o   o   k   s   ]   }   ;  \r  \r   B   a   c   k   w   a   r
0024200    d   s   :       R   e   a   d   e   r   P   r   o   c       =
0024220        I   N   L   I   N   E       {  \r  \t   -   -       d   e
0024240    c   r   e   m   e   n   t       r   e   a   d   e   r       l
0024260    o   c   a   t   i   o   n   ,       t   h   e   n       g   e
0024300    t       l   o   o   k   s  \r  \t   r   e   m   :       N   A
0024320    T   ;  \r  \t   I   F       (   r   e   m   _   r   e   a   d
0024340    e   r   .   r   e   m   )       >   =       r   e   a   d   e
0024360    r   .   l   e   n       T 376 001  \0 260   {   H   E   N    
0024400    {       -   -       g   o       t   o       t   h   e       p
0024420    r   e   v   i   o   u   s       r   u   n  \r  \t  \t   l   e
0024440    n   :       C   a   r   d   ;  \r  \t  \t   [   l   e   n   ,
0024460        r   e   a   d   e   r   .   l   o   o   k   s   ]       _
0024500        r   e   a   d   e   r   I   .   B   a   c   k   w   a   r
0024520    d   s   [   r   e   a   d   e   r   .   r   u   n   r   e   a
0024540    d   e   r   ]   ;  \r  \t  \t   I   F       l   e   n       >
0024560        L   A   S   T   [   N   A   T   ]       T   H   E   N    
0024600    {  \r  \t  \t  \t   r   e   a   d   e   r   I   .   B   u   m
0024620    p   I   n   d   e   x   [   r   e   a   d   e   r   .   r   u
0024640    n   r   e   a   d   e   r   ,   l   e   n   -   L   A   S   T
0024660    [   N   A   T   ]   ]   ;  \r  \t  \t  \t   l   e   n       _
0024700        L   A   S   T   [   N   A   T   ]       }   ;  \r  \t  \t
0024720    r   e   a   d   e   r   .   l   e   n       _       L   O   O
0024740    P   H   O   L   E   [   I   n   l   i   n   e   .   L   o   w
0024760    H   a   l   f   [   l   e   n   ]   ]   ;     376 001  \0   '
0025000   \0   r   e   m       _       0       }   ;  \r  \t   r   e   a
0025020    d   e   r   .   r   e   m       _       r   e   m   +   1   ;
0025040   \r  \t   R   E   T   U   R   N   [   r   e   a   d   e   r   .
0025060    l   o   o   k   s   ]   }   ;  \r  \r   P   e   e   k   :    
0025100    R   e   a   d   e   r   P   r   o   c       =       I   N   L
0025120    I   N   E       {  \r  \t   -   -       g   e   t       l   o
0025140    o   k   s       w   i   t   h   o   u   t       i   n   c   r
0025160    e   m   e   n   t   i   n   g       r   e   a   d   e   r    
0025200    l   o   c   a   t   i   o   n  \r  \t   l   o   o   k   s   :
0025220        L   o   o   k   s   ;  \r  \t   I   F       r   e   a   d
0025240    e   r   .   r   e   m       =       0       T   H   E   N    
0025260   \r  \t  \t   [   ,   l   o   o   k   s   ]       _       r   e
0025300    a   d   e   r   I   .   P   e   e   k   [   r   e   a   d   e
0025320    r   .   r   u   n   r   e   a   d   e   r   ]  \r  \t   E   L
0025340    S   E       l   o   o   k   s       _       r   e   a   d   e
0025360    r   .   l   o   o   k   s   ;  \r  \t   R   E   T   U   R   N
0025400      376  \0 376   1   O   [   l   o   o   k   s   ]   }   ;  \r
0025420   \r   P   e   e   k   B   a   c   k   w   a   r   d   s   :    
0025440    R   e   a   d   e   r   P   r   o   c       =       I   N   L
0025460    I   N   E       {  \r  \t   -   -       l   i   k   e       B
0025500    a   c   k   w   a   r   d   s   ,       b   u   t       d   o
0025520    e   s   n   '   t       c   h   a   n   g   e       p   o   s
0025540    i   t   i   o   n  \r  \t   l   o   o   k   s   :       L   o
0025560    o   k   s   ;  \r  \t   I   F       r   e   a   d   e   r   .
0025600    r   e   m       >   =       r   e   a   d   e   r   .   l   e
0025620    n       T   H   E   N  \r  \t  \t   [   ,   l   o   o   k   s
0025640    ]       _       r   e   a   d   e   r   I   .   P   e   e   k
0025660    B   a   c   k   w   a   r   d   s   [   r   e   a   d   e   r
0025700    .   r   u   n   r   e   a   d   e   r   ]  \r  \t   E   L   S
0025720    E       l   o   o   k   s       _       r   e   a   d   e   r
0025740    .   l   o   o   k   s   ;  \r  \t   R   E   T   U   R   N    
0025760    [   l   o   o   k   s   ]   }   ;  \r  \r   E   N   D   .  \r
0026000  032   (   6   3 376  \0 003   5   ,   5   )  \r 377  \0  \0   N
0026020    o   d   e   A   d   d   r   s   .   m   e   s   a  \0 373 226
0026040  342 212   ?  \0  \0 376 001  \0   _ 226   -   -       N   o   d
0026060    e   A   d   d   r   s   .   M   e   s   a  \r   -   -       w
0026100    r   i   t   t   e   n       b   y       P   a   x   t   o   n
0026120    .           M   a   r   c   h       1   9   8   1  \r   -   -
0026140        l   a   s   t       w   r   i   t   t   e   n       b   y
0026160        P   a   x   t   o   n   .           M   a   r   c   h    
0026200    2   0   ,       1   9   8   1           2   :   4   2       P
0026220    M  \r  \r   -   -       *   *   *   *       P   e   r   s   i
0026240    s   t   e   n   t       a   d   d   r   e   s   s   i   n   g
0026260        f   o   r       n   o   d   e   s       *   *   *   *  \r
0026300   \r   D   I   R   E   C   T   O   R   Y  \r   C   a   r   d   A
0026320    d   d   r   s   ,  \r   N   o   d   e   P   r   o   p   s   ,
0026340   \r   T   e   x   t   N   o   d   e   ;  \r  \r   N   o   d   e
0026360    A   d   d   r   s   :       D   E   F   I   N   I   T   I   O
0026400    N   S  \r  \t   I   M   P   O   R   T   S       N   o   d   e
0026420    P   r   o   p   s   ,       C   a   r   d   A   d   d   r   s
0026440        =  \r   B   E   G   I   N  \r   O 376 001  \0 027 377   P
0026460    E   N  \r  \t   n   o   d   e   I   :       T   e   x   t   N
0026500    o   d   e   ,  \r  \t   a   d   d   r   s   I   :       C   a
0026520    r   d   A   d   d   r   s   ,  \r  \t   p   r   o   p   s   I
0026540    :       N   o   d   e   P   r   o   p   s   ;  \r  \r   C   a
0026560    r   d   :       T   Y   P   E       =       L   O   N   G    
0026600    C   A   R   D   I   N   A   L   ;  \r   R   e   f   :       T
0026620    Y   P   E       =       n   o   d   e   I   .   R   e   f   ;
0026640   \r   R   e   f   T   e   x   t   N   o   d   e   :       T   Y
0026660    P   E       =       n   o   d   e   I   .   R   e   f   T   e
0026700    x   t   N   o   d   e   ;  \r  \r   -   -       *   *   *   *
0026720        T   e   x   t       A   d   d   r       o   p   e   r   a
0026740    t   i   o   n   s      \r  \r   P   u   t   T   e   x   t   A
0026760    d   d   r   :       P   R   O   C       [   n   :       R   e
0027000    f   T   e   x   t   N   o   d   e   ,       a   d   d   r   :
0027020        R   E   F   ,       l   o   c   a   t   i   o   n   :    
0027040    C   a   r   d   ]       =       I   N   L   I   N   E     376
0027060  001  \0 272 241   {      \r  \t   -   -       a   s   s   i   g
0027100    n   s       a   d   d   r       t   o       l   o   c   a   t
0027120    i   o   n       i   n       n   o   d   e  \r  \t   -   -    
0027140    o   k       i   f       a   d   d   r       w   a   s       p
0027160    r   e   v   i   o   u   s   l   y       a   s   s   i   g   n
0027200    e   d       e   l   s   e   w   h   e   r   e       i   n    
0027220    t   h   e       n   o   d   e  \r  \t   a   d   d   r   s   :
0027240        a   d   d   r   s   I   .   R   e   f   ;  \r  \t   I   F
0027260        (   a   d   d   r   s       _       p   r   o   p   s   I
0027300    .   G   e   t   T   e   x   t   A   d   d   r   s   [   n   ]
0027320    )       =       N   I   L       T   H   E   N  \r  \t  \t   p
0027340    r   o   p   s   I   .   P   u   t   T   e   x   t   A   d   d
0027360    r   s   [   n   ,       a   d   d   r   s       _       a   d
0027400    d   r   s   I   .   C   r   e   a   t   e   [   ]   ]   ;  \r
0027420   \t   a   d   d   r   s   I   .   P   u   t   A   d   d   r   [
0027440    a   d   d   r   s   ,       a   d   d   r   ,       l   o   c
0027460    a   t   i   o 376 001  \0 352 236   n   ]       }   ;  \r  \r
0027500    R   e   m   T   e   x   t   A   d   d   r   :       P   R   O
0027520    C       [   n   :       R   e   f   T   e   x   t   N   o   d
0027540    e   ,       a   d   d   r   :       R   E   F   ]       =    
0027560    I   N   L   I   N   E  \r  \t   -   -       r   e   m   o   v
0027600    e   s       t   h   e       g   i   v   e   n       a   d   d
0027620    r  \r  \t   {       a   d   d   r   s   I   .   R   e   m   A
0027640    d   d   r   [   p   r   o   p   s   I   .   G   e   t   T   e
0027660    x   t   A   d   d   r   s   [   n   ]   ,       a   d   d   r
0027700    ]       }   ;  \r  \r   G   e   t   T   e   x   t   A   d   d
0027720    r   :       P   R   O   C       [   n   :       R   e   f   T
0027740    e   x   t   N   o   d   e   ,       a   d   d   r   :       R
0027760    E   F   ]       R   E   T   U   R   N   S       [   l   o   c
0030000    a   t   i   o   n   :       C   a   r   d   ]       =  \r  \t
0030020    -   -       g   e   n   e   r   a   t   e   s       E   R   R
0030040    O   R       a   d   d   r   s   I   .   A   d   d   r   N   o
0030060    t   F   o   u   n   d       i   f 376 001  \0 202 246       t
0030100    h   e       a   d   d   r       i   s       n   o   t       i
0030120    n       t   h   e       m   a   p   p   i   n   g  \r  \t   I
0030140    N   L   I   N   E       {       R   E   T   U   R   N       [
0030160    a   d   d   r   s   I   .   G   e   t   A   d   d   r   [   p
0030200    r   o   p   s   I   .   G   e   t   T   e   x   t   A   d   d
0030220    r   s   [   n   ]   ,       a   d   d   r   ]   ]       }   ;
0030240   \r  \r   T   r   y   G   e   t   T   e   x   t   A   d   d   r
0030260    :       P   R   O   C       [   n   :       R   e   f   T   e
0030300    x   t   N   o   d   e   ,       a   d   d   r   :       R   E
0030320    F   ]  \r  \t   R   E   T   U   R   N   S       [   f   o   u
0030340    n   d   :       B   O   O   L   E   A   N   ,       l   o   c
0030360    a   t   i   o   n   :       C   a   r   d   ]       =       I
0030400    N   L   I   N   E       {  \r  \t   [   f   o   u   n   d   ,
0030420        l   o   c   a   t   i   o   n   ]       _       a   d   d
0030440    r   s   I   .   T   r   y   G   e   t   A   d   d   r   [   p
0030460    r   o   p   s   I   .   G   e   t   T   e   x   t   A 376 001
0030500   \0   = 363   d   d   r   s   [   n   ]   ,       a   d   d   r
0030520    ]       }   ;  \r  \r   M   a   p   T   e   x   t   A   d   d
0030540    r   s   :       P   R   O   C       [   n   :       R   e   f
0030560    T   e   x   t   N   o   d   e   ,       a   c   t   i   o   n
0030600    :       T   e   x   t   A   d   d   r   s   A   c   t   i   o
0030620    n   ]  \r  \t   R   E   T   U   R   N   S       [   B   O   O
0030640    L   E   A   N   ]       =       I   N   L   I   N   E  \r  \t
0030660    -   -       a   p   p   l   y       t   h   e       a   c   t
0030700    i   o   n       t   o       e   a   c   h       a   d   d   r
0030720    &   l   o   c   a   t   i   o   n       p   a   i   r       f
0030740    o   r       t   h   e       n   o   d   e  \r  \t   -   -    
0030760    r   e   t   u   r   n   s       t   r   u   e       i   f   &
0031000    w   h   e   n       a   n       a   c   t   i   o   n       r
0031020    e   t   u   r   n   s       t   r   u   e  \r  \t   {       R
0031040    E   T   U   R   N       [   a   d   d   r   s   I   .   M   a
0031060    p   A   d   d   r   s   [   p   r   o   p   s   I   .   G   e
0031100    t   T   e 376 001  \0 302   M   x   t   A   d   d   r   s   [
0031120    n   ]   ,       a   c   t   i   o   n   ]   ]       }   ;  \r
0031140   \r  \t   T   e   x   t   A   d   d   r   s   A   c   t   i   o
0031160    n   :       T   Y   P   E       =       a   d   d   r   s   I
0031200    .   M   a   p   A   d   d   r   s   A   c   t   i   o   n   ;
0031220   \r  \t  \t   -   -       =       P   R   O   C       [   a   d
0031240    d   r   :       R   E   F   ,       l   o   c   a   t   i   o
0031260    n   :       C   a   r   d   ]       R   E   T   U   R   N   S
0031300        [   B   O   O   L   E   A   N   ]   ;  \r  \r   -   -    
0031320    *   *   *   *       E   d   i   t   i   n   g       O   p   e
0031340    r   a   t   i   o   n   s       f   o   r       t   e   x   t
0031360        a   d   d   r   s       *   *   *   *  \r  \r   R   e   p
0031400    l   a   c   e   :       P   R   O   C       [   n   :       R
0031420    e   f   T   e   x   t   N   o   d   e   ,       s   t   a   r
0031440    t   ,       l   e   n   ,       n   e   w   l   e   n   :    
0031460    C   a   r   d   ]       =       I   N   L   I   N   E  \r  \t
0031500    -   -       r   e   p   l   a 376 001  \0   A 021   c   e    
0031520    c   h   a   r   s       i   n       [   s   t   a   r   t   .
0031540    .   s   t   a   r   t   +   l   e   n   )       b   y       n
0031560    e   w   l   e   n       c   h   a   r   s  \r  \t   -   -    
0031600    a   d   d   r   s       t   h   a   t       a   r   e       i
0031620    n       t   h   e       r   e   p   l   a   c   e   d       s
0031640    e   c   t   i   o   n       m   o   v   e       t   o       s
0031660    t   a   r   t  \r  \t   -   -       a   d   d       (   n   e
0031700    w   l   e   n   -   l   e   n   )       t   o       a   d   d
0031720    r   s       t   h   a   t       a   r   e       a   f   t   e
0031740    r       t   h   e       r   e   p   l   a   c   e   d       s
0031760    e   c   t   i   o   n  \r  \t   {       a   d   d   r   s   I
0032000    .   R   e   p   l   a   c   e   [   p   r   o   p   s   I   .
0032020    G   e   t   T   e   x   t   A   d   d   r   s   [   n   ]   ,
0032040        s   t   a   r   t   ,       l   e   n   ,       n   e   w
0032060    l   e   n   ]       }   ;  \r  \r   I   n   s   e   r   t   :
0032100        P   R   O   C       [   n   :       R   e   f 376 001  \0
0032120  341 300   T   e   x   t   N   o   d   e   ,       s   t   a   r
0032140    t   ,       l   e   n   g   t   h   :       C   a   r   d   ]
0032160        =       I   N   L   I   N   E       {  \r  \t   -   -    
0032200    a   d   d   s       l   e   n       t   o       a   d   d   r
0032220    s       a   t       o   r       b   e   y   o   n   d       s
0032240    t   a   r   t  \r  \t   R   e   p   l   a   c   e   [   n   ,
0032260        s   t   a   r   t   ,       0   ,       l   e   n   g   t
0032300    h   ]       }   ;  \r  \r   D   e   l   e   t   e   :       P
0032320    R   O   C       [   n   :       R   e   f   T   e   x   t   N
0032340    o   d   e   ,       s   t   a   r   t   ,       l   e   n   g
0032360    t   h   :       C   a   r   d   ]       =       I   N   L   I
0032400    N   E       {  \r  \t   R   e   p   l   a   c   e   [   n   ,
0032420        s   t   a   r   t   ,       l   e   n   g   t   h   ,    
0032440    0   ]       }   ;  \r  \r   M   o   v   e   :       P   R   O
0032460    C       [   n   :       R   e   f   T   e   x   t   N   o   d
0032500    e   ,       d   e   s   t   ,       s   t   a   r   t   ,    
0032520    l   e 376 001  \0 330   N   n   :       C   a   r   d   ]    
0032540    =       I   N   L   I   N   E  \r  \t   -   -       d   e   s
0032560    t       m   u   s   t       n   o   t       b   e       i   n
0032600        [   s   t   a   r   t   .   .   s   t   a   r   t   +   l
0032620    e   n   )  \r  \t  \t   -   -       o   r       g   e   t    
0032640    E   R   R   O   R       B   a   d   M   o   v   e  \r  \t   {
0032660        a   d   d   r   s   I   .   M   o   v   e   [   p   r   o
0032700    p   s   I   .   G   e   t   T   e   x   t   A   d   d   r   s
0032720    [   n   ]   ,       d   e   s   t   ,       s   t   a   r   t
0032740    ,       l   e   n   ]       }   ;  \r  \r   T   r   a   n   s
0032760    p   o   s   e   :       P   R   O   C       [   n   :       R
0033000    e   f   T   e   x   t   N   o   d   e   ,       a   s   t   a
0033020    r   t   ,       a   l   e   n   ,       b   s   t   a   r   t
0033040    ,       b   l   e   n   :       C   a   r   d   ]       =    
0033060    I   N   L   I   N   E  \r  \t   -   -       [   a   s   t   a
0033100    r   t   .   .   a   s   t   a   r   t   +   a   l   e   n   )
0033120        m   u   s   t       n 376 001  \0   !   1   o   t       i
0033140    n   t   e   r   s   e   c   t       [   b   s   t   a   r   t
0033160    .   .   b   s   t   a   r   t   +   b   l   e   n   )  \r  \t
0033200   \t   -   -       o   r       g   e   t       E   R   R   O   R
0033220        B   a   d   T   r   a   n   s   p   o   s   e  \r  \t   {
0033240        a   d   d   r   s   I   .   T   r   a   n   s   p   o   s
0033260    e   [   p   r   o   p   s   I   .   G   e   t   T   e   x   t
0033300    A   d   d   r   s   [   n   ]   ,       a   s   t   a   r   t
0033320    ,       a   l   e   n   ,       b   s   t   a   r   t   ,    
0033340    b   l   e   n   ]       }   ;  \r  \r  \r   -   -       *   *
0033360    *   *       C   h   i   l   d       A   d   d   r       o   p
0033400    e   r   a   t   i   o   n   s      \r  \r   P   u   t   C   h
0033420    i   l   d   A   d   d   r   :       P   R   O   C       [   n
0033440    :       R   e   f   ,       a   d   d   r   :       R   E   F
0033460    ,       l   o   c   a   t   i   o   n   :       C   a   r   d
0033500    ]       =       I   N   L   I   N   E       {      \r  \t   -
0033520    -       a   s   s   i   g   n   s       a   d 376 001  \0   >
0033540    Y   d   r       t   o       l   o   c   a   t   i   o   n    
0033560    i   n       n   o   d   e  \r  \t   -   -       o   k       i
0033600    f       a   d   d   r       w   a   s       p   r   e   v   i
0033620    o   u   s   l   y       a   s   s   i   g   n   e   d       e
0033640    l   s   e   w   h   e   r   e       i   n       t   h   e    
0033660    n   o   d   e  \r  \t   a   d   d   r   s   :       a   d   d
0033700    r   s   I   .   R   e   f   ;  \r  \t   I   F       (   a   d
0033720    d   r   s       _       p   r   o   p   s   I   .   G   e   t
0033740    C   h   i   l   d   A   d   d   r   s   [   n   ]   )       =
0033760        N   I   L       T   H   E   N  \r  \t  \t   p   r   o   p
0034000    s   I   .   P   u   t   C   h   i   l   d   A   d   d   r   s
0034020    [   n   ,       a   d   d   r   s       _       a   d   d   r
0034040    s   I   .   C   r   e   a   t   e   [   ]   ]   ;  \r  \t   a
0034060    d   d   r   s   I   .   P   u   t   A   d   d   r   [   a   d
0034100    d   r   s   ,       a   d   d   r   ,       l   o   c   a   t
0034120    i   o   n   ]       }   ;  \r  \r   R   e   m   C   h   i   l
0034140    d 376 001  \0   k   m   A   d   d   r   :       P   R   O   C
0034160        [   n   :       R   e   f   ,       a   d   d   r   :    
0034200    R   E   F   ]       =       I   N   L   I   N   E  \r  \t   -
0034220    -       r   e   m   o   v   e   s       t   h   e       g   i
0034240    v   e   n       a   d   d   r  \r  \t   {       a   d   d   r
0034260    s   I   .   R   e   m   A   d   d   r   [   p   r   o   p   s
0034300    I   .   G   e   t   C   h   i   l   d   A   d   d   r   s   [
0034320    n   ]   ,       a   d   d   r   ]       }   ;  \r  \r   G   e
0034340    t   C   h   i   l   d   A   d   d   r   :       P   R   O   C
0034360        [   n   :       R   e   f   ,       a   d   d   r   :    
0034400    R   E   F   ]       R   E   T   U   R   N   S       [   l   o
0034420    c   a   t   i   o   n   :       C   a   r   d   ]       =  \r
0034440   \t   -   -       g   e   n   e   r   a   t   e   s       E   R
0034460    R   O   R       a   d   d   r   s   I   .   A   d   d   r   N
0034500    o   t   F   o   u   n   d       i   f       t   h   e       a
0034520    d   d   r       i   s       n   o   t       i   n       t   h
0034540    e       m   a   p   p 376 001  \0  \a   m   i   n   g  \r  \t
0034560    I   N   L   I   N   E       {       R   E   T   U   R   N    
0034600    [   a   d   d   r   s   I   .   G   e   t   A   d   d   r   [
0034620    p   r   o   p   s   I   .   G   e   t   C   h   i   l   d   A
0034640    d   d   r   s   [   n   ]   ,       a   d   d   r   ]   ]    
0034660    }   ;  \r  \r   T   r   y   G   e   t   C   h   i   l   d   A
0034700    d   d   r   :       P   R   O   C       [   n   :       R   e
0034720    f   ,       a   d   d   r   :       R   E   F   ]  \r  \t   R
0034740    E   T   U   R   N   S       [   f   o   u   n   d   :       B
0034760    O   O   L   E   A   N   ,       l   o   c   a   t   i   o   n
0035000    :       C   a   r   d   ]       =       I   N   L   I   N   E
0035020        {  \r  \t   [   f   o   u   n   d   ,       l   o   c   a
0035040    t   i   o   n   ]       _       a   d   d   r   s   I   .   T
0035060    r   y   G   e   t   A   d   d   r   [   p   r   o   p   s   I
0035100    .   G   e   t   C   h   i   l   d   A   d   d   r   s   [   n
0035120    ]   ,       a   d   d   r   ]       }   ;  \r  \r   F   o   l
0035140    l   o   w   C   h   i   l   d   A   d   d 376 001  \0 207 263
0035160    r   s   :       P   R   O   C       [   n   o   d   e   :    
0035200    R   e   f   ,       a   d   d   r   :       R   E   F   ]    
0035220    R   E   T   U   R   N   S       [   R   e   f   ]   ;  \r  \r
0035240    M   a   p   C   h   i   l   d   A   d   d   r   s   :       P
0035260    R   O   C       [   n   :       R   e   f   ,       a   c   t
0035300    i   o   n   :       C   h   i   l   d   A   d   d   r   s   A
0035320    c   t   i   o   n   ]  \r  \t   R   E   T   U   R   N   S    
0035340    [   B   O   O   L   E   A   N   ]       =       I   N   L   I
0035360    N   E  \r  \t   -   -       a   p   p   l   y       t   h   e
0035400        a   c   t   i   o   n       t   o       e   a   c   h    
0035420    a   d   d   r   &   l   o   c   a   t   i   o   n       p   a
0035440    i   r       f   o   r       t   h   e       n   o   d   e  \r
0035460   \t   -   -       r   e   t   u   r   n   s       t   r   u   e
0035500        i   f   &   w   h   e   n       a   n       a   c   t   i
0035520    o   n       r   e   t   u   r   n   s       t   r   u   e  \r
0035540   \t   {       R   E   T   U   R   N       [   a   d   d   r   s
0035560  376 001  \0 260 330   I   .   M   a   p   A   d   d   r   s   [
0035600    p   r   o   p   s   I   .   G   e   t   C   h   i   l   d   A
0035620    d   d   r   s   [   n   ]   ,       a   c   t   i   o   n   ]
0035640    ]       }   ;  \r  \r  \t   C   h   i   l   d   A   d   d   r
0035660    s   A   c   t   i   o   n   :       T   Y   P   E       =    
0035700    a   d   d   r   s   I   .   M   a   p   A   d   d   r   s   A
0035720    c   t   i   o   n   ;  \r  \t  \t   -   -       =       P   R
0035740    O   C       [   a   d   d   r   :       R   E   F   ,       l
0035760    o   c   a   t   i   o   n   :       C   a   r   d   ]       R
0036000    E   T   U   R   N   S       [   B   O   O   L   E   A   N   ]
0036020    ;  \r  \r   -   -       *   *   *   *       E   d   i   t   i
0036040    n   g       O   p   e   r   a   t   i   o   n   s       f   o
0036060    r       c   h   i   l   d       a   d   d   r   s       *   *
0036100    *   *  \r  \r   R   e   p   l   a   c   e   N   o   d   e   s
0036120    :       P   R   O   C       [   n   :       R   e   f   ,    
0036140    s   t   a   r   t   ,       l   e   n   ,       n   e   w   l
0036160    e   n   :       C 376 001  \0   : 225   a   r   d   ]       =
0036200        I   N   L   I   N   E  \r  \t   -   -       r   e   p   l
0036220    a   c   e       c   h   a   r   s       i   n       [   s   t
0036240    a   r   t   .   .   s   t   a   r   t   +   l   e   n   )    
0036260    b   y       n   e   w   l   e   n       c   h   a   r   s  \r
0036300   \t   -   -       a   d   d   r   s       t   h   a   t       a
0036320    r   e       i   n       t   h   e       r   e   p   l   a   c
0036340    e   d       s   e   c   t   i   o   n       m   o   v   e    
0036360    t   o       s   t   a   r   t  \r  \t   -   -       a   d   d
0036400        (   n   e   w   l   e   n   -   l   e   n   )       t   o
0036420        a   d   d   r   s       t   h   a   t       a   r   e    
0036440    a   f   t   e   r       t   h   e       r   e   p   l   a   c
0036460    e   d       s   e   c   t   i   o   n  \r  \t   {       a   d
0036500    d   r   s   I   .   R   e   p   l   a   c   e   [   p   r   o
0036520    p   s   I   .   G   e   t   C   h   i   l   d   A   d   d   r
0036540    s   [   n   ]   ,       s   t   a   r   t   ,       l   e   n
0036560    ,       n   e   w   l   e   n   ]     376 001  \0 215   ?   }
0036600    ;  \r  \r   M   o   v   e   N   o   d   e   s   :       P   R
0036620    O   C       [   n   :       R   e   f   ,       d   e   s   t
0036640    ,       s   t   a   r   t   ,       l   e   n   :       C   a
0036660    r   d   ]       =       I   N   L   I   N   E  \r  \t   -   -
0036700        d   e   s   t       m   u   s   t       n   o   t       b
0036720    e       i   n       [   s   t   a   r   t   .   .   s   t   a
0036740    r   t   +   l   e   n   )  \r  \t  \t   -   -       o   r    
0036760    g   e   t       E   R   R   O   R       B   a   d   M   o   v
0037000    e  \r  \t   {       a   d   d   r   s   I   .   M   o   v   e
0037020    [   p   r   o   p   s   I   .   G   e   t   C   h   i   l   d
0037040    A   d   d   r   s   [   n   ]   ,       d   e   s   t   ,    
0037060    s   t   a   r   t   ,       l   e   n   ]       }   ;  \r  \r
0037100    I   n   s   e   r   t   N   o   d   e   :       P   R   O   C
0037120        [   n   :       R   e   f   ,       s   t   a   r   t   ,
0037140        l   e   n   g   t   h   :       C   a   r   d   ]       =
0037160        I   N   L   I   N   E       {  \r  \t   -   -       a 376
0037200  001  \0 235 271   d   d   s       l   e   n       t   o       a
0037220    d   d   r   s       a   t       o   r       b   e   y   o   n
0037240    d       s   t   a   r   t  \r  \t   R   e   p   l   a   c   e
0037260    N   o   d   e   s   [   n   ,       s   t   a   r   t   ,    
0037300    0   ,       l   e   n   g   t   h   ]       }   ;  \r  \r   T
0037320    r   a   n   s   p   o   s   e   N   o   d   e   s   :       P
0037340    R   O   C       [   n   :       R   e   f   ,       a   s   t
0037360    a   r   t   ,       a   l   e   n   ,       b   s   t   a   r
0037400    t   ,       b   l   e   n   :       C   a   r   d   ]       =
0037420        I   N   L   I   N   E  \r  \t   -   -       [   a   s   t
0037440    a   r   t   .   .   a   s   t   a   r   t   +   a   l   e   n
0037460    )       m   u   s   t       n   o   t       i   n   t   e   r
0037500    s   e   c   t       [   b   s   t   a   r   t   .   .   b   s
0037520    t   a   r   t   +   b   l   e   n   )  \r  \t  \t   -   -    
0037540    o   r       g   e   t       E   R   R   O   R       B   a   d
0037560    T   r   a   n   s   p   o   s   e  \r  \t   {       a   d   d
0037600    r   s   I   . 376  \0   H   3 357   T   r   a   n   s   p   o
0037620    s   e   [   p   r   o   p   s   I   .   G   e   t   C   h   i
0037640    l   d   A   d   d   r   s   [   n   ]   ,       a   s   t   a
0037660    r   t   ,       a   l   e   n   ,       b   s   t   a   r   t
0037700    ,       b   l   e   n   ]       }   ;  \r  \r   E   N   D   .
0037720   \r 377  \0  \0   N   o   d   e   N   a   m   e   T   a   b   l
0037740    e   .   m   e   s   a  \0 373 226 337 354 205  \0  \0 376 001
0037760   \0   0   Z   -   -       N   o   d   e   N   a   m   e   T   a
0040000    b   l   e   .   M   e   s   a  \r   -   -       w   r   i   t
0040020    t   e   n       b   y       P   a   x   t   o   n   .        
0040040    D   e   c   e   m   b   e   r       1   9   8   0  \r   -   -
0040060        l   a   s   t       w   r   i   t   t   e   n       b   y
0040100        P   a   x   t   o   n   .           M   a   r   c   h    
0040120    1   8   ,       1   9   8   1           3   :   0   4       P
0040140    M  \r  \r   D   I   R   E   C   T   O   R   Y  \r   T   e   x
0040160    t   N   o   d   e   ,  \r   T   e   x   t   R   o   p   e   ;
0040200   \r  \r   N   o   d   e   N   a   m   e   T   a   b   l   e   :
0040220        D   E   F   I   N   I   T   I   O   N   S       =  \r   B
0040240    E   G   I   N       O   P   E   N       n   o   d   e   I   :
0040260    T   e   x   t   N   o   d   e   ,       r   o   p   e   I   :
0040300    T   e   x   t   R   o   p   e   ;  \r  \r   N   a   m   e   T
0040320    a   b   l   e   :       T   Y   P   E       =       R   E   F
0040340        N   a   m   e   T   a   b   l   e   B   o   d   y   ;  \r
0040360    N   a   m 376 001  \0 364 337   e   T   a   b   l   e   B   o
0040400    d   y   :       T   Y   P   E   ;       -   -       e   x   p
0040420    o   r   t   e   d       b   y       N   o   d   e   N   a   m
0040440    e   T   a   b   l   e   I   m   p   l  \r  \r   C   r   e   a
0040460    t   e   N   a   m   e   T   a   b   l   e   :       P   R   O
0040500    C       R   E   T   U   R   N   S       [   N   a   m   e   T
0040520    a   b   l   e   ]   ;  \r   -   -       c   r   e   a   t   e
0040540    s       a   n       e   m   p   t   y       n   a   m   e    
0040560    t   a   b   l   e   .  \r  \r   F   i   n   d   N   a   m   e
0040600    T   a   b   l   e   :       P   R   O   C       [   n   :    
0040620    n   o   d   e   I   .   R   e   f   ]       R   E   T   U   R
0040640    N   S       [   N   a   m   e   T   a   b   l   e   ]   ;  \r
0040660    -   -       f   i   n   d       t   h   e       n   a   m   e
0040700        t   a   b   l   e       f   o   r       n   o   d   e    
0040720    n   .  \r   -   -       l   o   o   k       f   o   r       n
0040740    a   m   e   t   a   b   l   e       p   r   o   p       o   n
0040760        n       o   r       a   n 376 001  \0 254 342   c   e   s
0041000    t   o   r   .  \r  \r   A   d   d   N   a   m   e   s   :    
0041020    P   R   O   C       [   n   :       n   o   d   e   I   .   R
0041040    e   f   ,       t   a   b   l   e   :       N   a   m   e   T
0041060    a   b   l   e   ]   ;  \r   -   -       l   o   o   k   s    
0041100    f   o   r       n   a   m   e   s       a   m   o   n   g    
0041120    i   m   m   e   d   i   a   t   e       c   h   i   l   d   r
0041140    e   n       o   f       n   o   d   e       n   .  \r   -   -
0041160        a   d   d       t   h   e   m       t   o       n   a   m
0041200    e       t   a   b   l   e   .  \r  \r   R   e   m   o   v   e
0041220    N   a   m   e   s   :       P   R   O   C       [   n   :    
0041240    n   o   d   e   I   .   R   e   f   ,       t   a   b   l   e
0041260    :       N   a   m   e   T   a   b   l   e   ]   ;  \r   -   -
0041300        l   o   o   k   s       f   o   r       n   a   m   e   s
0041320        a   m   o   n   g       i   m   m   e   d   i   a   t   e
0041340        c   h   i   l   d   r   e   n       o   f       n   o   d
0041360    e       n   .  \r   -   -       r   e   m   o   v 376 001  \0
0041400  374 354   e       t   h   e   m       f   r   o   m       n   a
0041420    m   e       t   a   b   l   e   .  \r  \r   A   d   d   N   a
0041440    m   e   :       P   R   O   C       [   n   a   m   e   :    
0041460    r   o   p   e   I   .   R   o   p   e   ,       n   :       n
0041500    o   d   e   I   .   R   e   f   ,       t   a   b   l   e   :
0041520        N   a   m   e   T   a   b   l   e   ]   ;  \r   -   -    
0041540    a   d   d       n   a   m   e       f   o   r       n       t
0041560    o       t   a   b   l   e  \r  \r   R   e   m   o   v   e   N
0041600    a   m   e   :       P   R   O   C       [   n   a   m   e   :
0041620        r   o   p   e   I   .   R   o   p   e   ,       n   :    
0041640    n   o   d   e   I   .   R   e   f   ,       t   a   b   l   e
0041660    :       N   a   m   e   T   a   b   l   e   ]   ;  \r   -   -
0041700        r   e   m   o   v   e       n   a   m   e       f   o   r
0041720        n       f   r   o   m       t   a   b   l   e   .  \r  \r
0041740    L   o   o   k   u   p   N   a   m   e   :       P   R   O   C
0041760        [  \r           n   a   m   e   :       r   o   p   e   I
0042000    .   R 376 001  \0   \   M   o   p   e   ,       t   a   b   l
0042020    e   :       N   a   m   e   T   a   b   l   e   ,       p   r
0042040    e   v   :       n   o   d   e   I   .   R   e   f       _    
0042060    N   I   L   ]  \r           R   E   T   U   R   N   S       [
0042100    n   o   d   e   I   .   R   e   f   ]   ;  \r   -   -       r
0042120    e   t   u   r   n   s       a       n   o   d   e       t   h
0042140    a   t       h   a   s       t   h   e       g   i   v   e   n
0042160        n   a   m   e   .  \r   -   -       l   e   t       p   r
0042200    e   v       b   e       N   I   L       f   o   r       f   i
0042220    r   s   t       c   a   l   l   .  \r   -   -       i   f    
0042240    p   r   e   v       #       N   I   L   ,       w   i   l   l
0042260        r   e   t   u   r   n       n   e   x   t       n   o   d
0042300    e       w   i   t   h       t   h   a   t       n   a   m   e
0042320    .  \r   -   -       r   e   t   u   r   n   s       N   I   L
0042340        w   h   e   n       n   o       m   o   r   e       n   o
0042360    d   e   s       w   i   t   h       t   h   e       n   a   m
0042400    e   .  \r   -   -       o 376  \0   (   5  \0   r       w   h
0042420    e   n       p   r   e   v       #       N   I   L       i   s
0042440        n   o   t       o   n       l   i   s   t   .  \r  \r   E
0042460    N   D   .  \r 377  \0  \0   N   o   d   e   P   r   o   p   s
0042500    .   m   e   s   a  \0 373 226 337 374 341  \0  \0 376 001  \0
0042520    { 362   -   -       N   o   d   e   P   r   o   p   s   .   M
0042540    e   s   a  \r   -   -       w   r   i   t   t   e   n       b
0042560    y       P   a   x   t   o   n   .           J   a   n   u   a
0042600    r   y       1   9   8   1  \r   -   -       l   a   s   t    
0042620    w   r   i   t   t   e   n       b   y       P   a   x   t   o
0042640    n   .           M   a   r   c   h       1   8   ,       1   9
0042660    8   1           4   :   1   4       P   M  \r  \r   D   I   R
0042700    E   C   T   O   R   Y  \r   T   e   x   t   N   o   d   e   ,
0042720   \r   N   o   d   e   N   a   m   e   T   a   b   l   e   ,  \r
0042740    T   i   o   g   a   P   G   S   u   p   p   o   r   t   ,  \r
0042760    C   a   r   d   A   d   d   r   s   ,  \r   R   o   p   e   ;
0043000   \r  \r   N   o   d   e   P   r   o   p   s   :       D   E   F
0043020    I   N   I   T   I   O   N   S       =  \r  \r   B   E   G   I
0043040    N  \r   O   P   E   N  \r  \t   n   o   d   e   I   :   T   e
0043060    x   t   N   o   d   e   ,  \r  \t   n   a   m   e   I   :   N
0043100    o   d   e   N   a   m   e   T   a   b   l   e   ,  \r  \t   p
0043120    g   s 376 001  \0 201   D   I   :   T   i   o   g   a   P   G
0043140    S   u   p   p   o   r   t   ,  \r  \t   a   d   d   r   s   I
0043160    :   C   a   r   d   A   d   d   r   s   ;      \r  \r   P   u
0043200    t   S   t   y   l   e   N   a   m   e   :       P   R   O   C
0043220    E   D   U   R   E  \r  \t   [   n   :       n   o   d   e   I
0043240    .   R   e   f   ,       s   t   y   l   e   n   a   m   e   :
0043260        n   o   d   e   I   .   S   t   y   l   e   N   a   m   e
0043300    ]   ;  \r  \r   G   e   t   S   t   y   l   e   N   a   m   e
0043320    :       P   R   O   C   E   D   U   R   E  \r  \t   [   n   :
0043340        n   o   d   e   I   .   R   e   f   ,       r   e   m   o
0043360    v   e   :       B   O   O   L   E   A   N       _       F   A
0043400    L   S   E   ]  \r  \t   R   E   T   U   R   N   S       [   n
0043420    o   d   e   I   .   S   t   y   l   e   N   a   m   e   ]   ;
0043440   \r  \r   P   u   t   N   a   m   e   T   a   b   l   e   :    
0043460    P   R   O   C   E   D   U   R   E  \r  \t   [   n   :       n
0043500    o   d   e   I   .   R   e   f   ,       t   a   b   l   e   :
0043520        n   a   m   e   I   . 376 001  \0 266 004   N   a   m   e
0043540    T   a   b   l   e   ]   ;  \r  \r   G   e   t   N   a   m   e
0043560    T   a   b   l   e   :       P   R   O   C   E   D   U   R   E
0043600   \r  \t   [   n   :       n   o   d   e   I   .   R   e   f   ,
0043620        r   e   m   o   v   e   :       B   O   O   L   E   A   N
0043640        _       F   A   L   S   E   ]  \r  \t   R   E   T   U   R
0043660    N   S       [   n   a   m   e   I   .   N   a   m   e   T   a
0043700    b   l   e   ]   ;  \r  \r   P   u   t   S   a   v   e   d   P
0043720    G   S   :       P   R   O   C   E   D   U   R   E  \r  \t   [
0043740    n   :       n   o   d   e   I   .   R   e   f   ,       p   g
0043760    s   :       p   g   s   I   .   P   G   S   ]   ;  \r  \r   G
0044000    e   t   S   a   v   e   d   P   G   S   :       P   R   O   C
0044020    E   D   U   R   E  \r  \t   [   n   :       n   o   d   e   I
0044040    .   R   e   f   ,       r   e   m   o   v   e   :       B   O
0044060    O   L   E   A   N       _       F   A   L   S   E   ]  \r  \t
0044100    R   E   T   U   R   N   S       [   p   g   s   I   .   P   G
0044120    S   ]   ;  \r  \r   P   u   t   T   e   x   t 376 001  \0 036
0044140   \b   A   d   d   r   s   :       P   R   O   C   E   D   U   R
0044160    E  \r  \t   [   n   :       n   o   d   e   I   .   R   e   f
0044200    ,       a   d   d   r   s   :       a   d   d   r   s   I   .
0044220    R   e   f   ]   ;  \r  \r   G   e   t   T   e   x   t   A   d
0044240    d   r   s   :       P   R   O   C   E   D   U   R   E  \r  \t
0044260    [   n   :       n   o   d   e   I   .   R   e   f   ,       r
0044300    e   m   o   v   e   :       B   O   O   L   E   A   N       _
0044320        F   A   L   S   E   ]  \r  \t   R   E   T   U   R   N   S
0044340        [   a   d   d   r   s   I   .   R   e   f   ]   ;  \r  \r
0044360    P   u   t   C   h   i   l   d   A   d   d   r   s   :       P
0044400    R   O   C   E   D   U   R   E  \r  \t   [   n   :       n   o
0044420    d   e   I   .   R   e   f   ,       a   d   d   r   s   :    
0044440    a   d   d   r   s   I   .   R   e   f   ]   ;  \r  \r   G   e
0044460    t   C   h   i   l   d   A   d   d   r   s   :       P   R   O
0044500    C   E   D   U   R   E  \r  \t   [   n   :       n   o   d   e
0044520    I   .   R   e   f   ,       r   e   m   o   v   e   :       B
0044540    O 376 001  \0   ~ 261   O   L   E   A   N       _       F   A
0044560    L   S   E   ]  \r  \t   R   E   T   U   R   N   S       [   a
0044600    d   d   r   s   I   .   R   e   f   ]   ;  \r  \r   P   u   t
0044620    F   i   l   e   N   a   m   e   :       P   R   O   C   E   D
0044640    U   R   E  \r  \t   [   n   :       n   o   d   e   I   .   R
0044660    e   f   ,       f   i   l   e   n   a   m   e   :       R   o
0044700    p   e   .   R   e   f   ]   ;  \r  \r   G   e   t   F   i   l
0044720    e   N   a   m   e   :       P   R   O   C   E   D   U   R   E
0044740   \r  \t   [   n   :       n   o   d   e   I   .   R   e   f   ,
0044760        r   e   m   o   v   e   :       B   O   O   L   E   A   N
0045000        _       F   A   L   S   E   ]  \r  \t   R   E   T   U   R
0045020    N   S       [   R   o   p   e   .   R   e   f   ]   ;  \r  \r
0045040    P   u   t   P   r   o   p   :       P   R   O   C   E   D   U
0045060    R   E  \r  \t   [   n   :       n   o   d   e   I   .   R   e
0045100    f   ,       n   a   m   e   ,       v   a   l   u   e   :    
0045120    R   E   F   ]   ;  \r  \r   G   e   t   P   r   o   p   :    
0045140    P   R   O   C   E   D 376 001  \0 250 003   U   R   E  \r  \t
0045160    [   n   :       n   o   d   e   I   .   R   e   f   ,       n
0045200    a   m   e   :       R   E   F   ,       r   e   m   o   v   e
0045220    :       B   O   O   L   E   A   N       _       F   A   L   S
0045240    E   ]  \r  \t   R   E   T   U   R   N   S       [   R   E   F
0045260    ]   ;  \r  \r   R   e   m   P   r   o   p   :       P   R   O
0045300    C   E   D   U   R   E       [   n   :       n   o   d   e   I
0045320    .   R   e   f   ,       n   a   m   e   :       R   E   F   ]
0045340        R   E   T   U   R   N   S       [   R   E   F   ]       =
0045360        I   N   L   I   N   E       {  \r  \t   -   -       r   e
0045400    m   o   v   e   s       n   a   m   e       &       v   a   l
0045420        f   r   o   m       p   r   o   p   e   r   t   y       l
0045440    i   s   t       f   o   r       n   o   d   e  \r  \t   -   -
0045460        r   e   t   u   r   n   s       o   l   d       v   a   l
0045500    u   e   ,       i   f       a   n   y  \r  \t   R   E   T   U
0045520    R   N       [   G   e   t   P   r   o   p   [   n   ,       n
0045540    a   m   e   ,       T   R   U   E   ]   ] 376 001  \0 211   W
0045560        }   ;  \r  \r   M   a   p   P   r   o   p   s   :       P
0045600    R   O   C       [   n   :       n   o   d   e   I   .   R   e
0045620    f   ,       a   c   t   i   o   n   :       M   a   p   P   r
0045640    o   p   s   A   c   t   i   o   n   ]       R   E   T   U   R
0045660    N   S       [   B   O   O   L   E   A   N   ]   ;  \r  \t   -
0045700    -       a   p   p   l   y       t   h   e       a   c   t   i
0045720    o   n       t   o       e   a   c   h       n   a   m   e    
0045740    &       v   a   l   u   e       p   a   i   r       f   o   r
0045760        t   h   e       n   o   d   e  \r  \t   -   -       r   e
0046000    t   u   r   n   s       t   r   u   e       i   f   &   w   h
0046020    e   n       a   n       a   c   t   i   o   n       r   e   t
0046040    u   r   n   s       t   r   u   e  \r  \t   M   a   p   P   r
0046060    o   p   s   A   c   t   i   o   n   :       T   Y   P   E    
0046100    =       P   R   O   C       [   n   a   m   e   ,       v   a
0046120    l   u   e   :       R   E   F   ]       R   E   T   U   R   N
0046140    S       [   B   O   O   L   E   A   N   ]   ;  \r  \r   E   N
0046160  376  \0 003   D   1   D   .  \r 377  \0  \0   N   o   d   e   S
0046200    t   y   l   e   .   m   e   s   a  \0 373 226 346 210   t  \0
0046220   \0 376 001  \0 374 251   -   -       N   o   d   e   S   t   y
0046240    l   e   .   m   e   s   a  \r   -   -       W   r   i   t   t
0046260    e   n       b   y       B   i   l   l       P   a   x   t   o
0046300    n   ,       J   a   n   u   a   r   y       1   9   8   1  \r
0046320    -   -       L   a   s   t       c   h   a   n   g   e   d    
0046340    b   y       B   i   l   l       P   a   x   t   o   n   ,    
0046360    M   a   r   c   h       2   3   ,       1   9   8   1        
0046400    3   :   2   3       P   M  \r  \r   D   I   R   E   C   T   O
0046420    R   Y  \r  \t   T   e   x   t   N   o   d   e   ,  \r  \t   T
0046440    e   x   t   L   o   o   k   s   ,  \r  \t   T   i   o   g   a
0046460    J   a   M   ;  \r  \r   N   o   d   e   S   t   y   l   e   :
0046500        D   E   F   I   N   I   T   I   O   N   S       =  \r   B
0046520    E   G   I   N       O   P   E   N       n   o   d   e   I   :
0046540    T   e   x   t   N   o   d   e   ,       l   o   o   k   s   I
0046560    :   T   e   x   t   L   o   o   k   s   ,       t   j   I   :
0046600    T   i   o   g   a   J   a   M   ;  \r  \r   R   e   f   :    
0046620    T   Y   P   E       = 376 001  \0 020 264       R   E   F    
0046640    B   o   d   y   ;  \r   B   o   d   y   :       T   Y   P   E
0046660        =       R   E   C   O   R   D       [  \r  \t   f   o   n
0046700    t   F   a   c   e   :       F   o   n   t   F   a   c   e    
0046720    _       R   e   g   u   l   a   r   ,  \r  \t   f   o   n   t
0046740    A   l   p   h   a   b   e   t   s   :       F   o   n   t   A
0046760    l   p   h   a   b   e   t   s       _       C   a   p   s   A
0047000    n   d   L   o   w   e   r   ,  \r  \t   u   n   d   e   r   l
0047020    i   n   i   n   g   :       F   o   n   t   U   n   d   e   r
0047040    l   i   n   i   n   g       _       N   o   n   e   ,  \r  \t
0047060    l   i   n   e   F   o   r   m   a   t   t   i   n   g   :    
0047100    L   i   n   e   F   o   r   m   a   t   t   i   n   g       _
0047120        F   l   u   s   h   L   e   f   t   ,  \r  \t   s   t   y
0047140    l   e   N   a   m   e   :       n   o   d   e   I   .   S   t
0047160    y   l   e   N   a   m   e       _       n   o   d   e   I   .
0047200    n   u   l   l   S   t   y   l   e   N   a   m   e   ,       -
0047220    -       s   u   c   h       a   s       " 376 001  \0 377   _
0047240    T   e   c   h   i   c   a   l   N   o   t   e   "  \r  \t   f
0047260    o   n   t   F   a   m   i   l   y   :       t   j   I   .   J
0047300    a   M   N   a   m   e       _       t   j   I   .   n   o   N
0047320    a   m   e   ,       -   -       s   u   c   h       a   s    
0047340    "   T   i   m   e   s   R   o   m   a   n   "  \r  \t   f   o
0047360    n   t   S   i   z   e   :       D   i   s   t   ,       -   -
0047400        i   n       p   o   i   n   t   s  \r  \t   l   e   f   t
0047420    I   n   d   e   n   t   :       D   i   s   t   ,       -   -
0047440        a   l   l       l   i   n   e   s       i   n   d   e   n
0047460    t       a   t       l   e   a   s   t       t   h   i   s    
0047500    m   u   c   h       o   n       l   e   f   t  \r  \t   r   i
0047520    g   h   t   I   n   d   e   n   t   :       D   i   s   t   ,
0047540        -   -       a   l   l       l   i   n   e   s       i   n
0047560    d   e   n   t       a   t       l   e   a   s   t       t   h
0047600    i   s       m   u   c   h       o   n       r   i   g   h   t
0047620   \r  \t   f   i   r   s   t   I   n   d   e   n   t   :       D
0047640  376 001  \0 002 214   i   s   t   ,       -   -       f   i   r
0047660    s   t       l   i   n   e       i   n   d   e   n   t       t
0047700    h   i   s       m   u   c   h       m   o   r   e       o   n
0047720        l   e   f   t  \r  \t   b   o   d   y   I   n   d   e   n
0047740    t   :       D   i   s   t   ,       -   -       o   t   h   e
0047760    r       l   i   n   e   s       i   n   d   e   n   t       t
0050000    h   i   s       m   u   c   h       m   o   r   e       o   n
0050020        l   e   f   t  \r  \t   t   o   p   I   n   d   e   n   t
0050040    :       D   i   s   t   ,       -   -       t   o   p       l
0050060    i   n   e       a   t       l   e   a   s   t       t   h   i
0050100    s       m   u   c   h       d   o   w   n       f   r   o   m
0050120        t   o   p  \r  \t   b   o   t   t   o   m   I   n   d   e
0050140    n   t   :       D   i   s   t   ,       -   -       b   o   t
0050160    t   o   m       b   a   s   e   l   i   n   e       a   t    
0050200    l   e   a   s   t       t   h   i   s       u   p       f   r
0050220    o   m       b   o   t   t   o   m  \r  \t   l   e   a   d   i
0050240    n   g   :       D 376 001  \0   " 271   i   s   t   ,       -
0050260    -       d   i   s   t   a   n   c   e       b   e   t   w   e
0050300    e   n       b   a   s   e   l   i   n   e   s  \r  \t   t   o
0050320    p   L   e   a   d   i   n   g   :       D   i   s   t   ,    
0050340    -   -       m   i   n       d   i   s   t   a   n   c   e    
0050360    f   r   o   m       f   i   r   s   t       b   a   s   e   l
0050400    i   n   e       t   o       p   r   e   v   i   o   u   s  \r
0050420   \t   b   o   t   t   o   m   L   e   a   d   i   n   g   :    
0050440    D   i   s   t   ,       -   -       m   i   n       d   i   s
0050460    t   a   n   c   e       f   r   o   m       l   a   s   t    
0050500    b   a   s   e   l   i   n   e       t   o       n   e   x   t
0050520   \r  \t   v   s   h   i   f   t   :       D   i   s   t   ,    
0050540    -   -       d   i   s   t   a   n   c   e       t   o       r
0050560    a   i   s   e       t   e   x   t       a   b   o   v   e    
0050600    b   a   s   e   l   i   n   e  \r  \t   m   i   n   G   a   p
0050620    s   :       D   i   s   t   ,       -   -       m   i   n    
0050640    d   i   s   t   a   n   c   e       b 376 001  \0   E   `   e
0050660    t   w   e   e   n       t   o   p   s   &   b   o   t   t   o
0050700    m   s       o   f       l   i   n   e   s  \r  \t   m   i   n
0050720    T   a   b   W   i   d   t   h   :       D   i   s   t   ,    
0050740    -   -       m   i   n       w   i   d   t   h       o   f    
0050760    s   p   a   c   e       a   l   l   o   w   e   d       f   o
0051000    r       t   a   b  \r  \t   t   a   b   s   :       A   R   R
0051020    A   Y       [   1   .   .   n   u   m   T   a   b   s   ]    
0051040    O   F       D   i   s   t       -   -       a   r   r   a   y
0051060        o   f       t   a   b       s   t   o   p   s  \r  \t   ]
0051100    ;  \r  \r   F   o   n   t   F   a   c   e   :       T   Y   P
0051120    E       =       {   R   e   g   u   l   a   r   ,       B   o
0051140    l   d   ,       I   t   a   l   i   c   ,       B   o   l   d
0051160    I   t   a   l   i   c   }   ;  \r   F   o   n   t   A   l   p
0051200    h   a   b   e   t   s   :       T   Y   P   E       =       {
0051220    C   a   p   s   A   n   d   L   o   w   e   r   ,       C   a
0051240    p   s   A   n   d   S   m   a   l   l   C   a   p   s   , 376
0051260  001  \0   w   _       L   o   w   e   r   O   n   l   y   ,    
0051300    C   a   p   s   O   n   l   y   }   ;  \r   F   o   n   t   U
0051320    n   d   e   r   l   i   n   i   n   g   :       T   Y   P   E
0051340        =       {   N   o   n   e   ,       L   e   t   t   e   r
0051360    s   A   n   d   D   i   g   i   t   s   ,       V   i   s   i
0051400    b   l   e   ,       A   l   l   }   ;  \r   L   i   n   e   F
0051420    o   r   m   a   t   t   i   n   g   :       T   Y   P   E    
0051440    =       {   F   l   u   s   h   L   e   f   t   ,       F   l
0051460    u   s   h   R   i   g   h   t   ,       J   u   s   t   i   f
0051500    i   e   d   ,       C   e   n   t   e   r   e   d   }   ;  \r
0051520    n   u   m   T   a   b   s   :       N   A   T       =       2
0051540    0   ;  \r   D   i   s   t   :       T   Y   P   E       =    
0051560    R   E   A   L       _       0   .   0   ;  \r  \r   s   t   y
0051600    l   e   :       R   e   f   ;       -   -       t   h   e    
0051620    c   u   r   r   e   n   t       r   e   f       w   h   i   l
0051640    e       e   x   e   c   u   t   i   n   g       s   t   y   l
0051660    e       o   p 376 001  \0 231 342   s  \r  \r   -   -       *
0051700    *   *   *   *       O   p   e   r   a   t   i   o   n   s  \r
0051720   \r   L   o   a   d   S   t   y   l   e   :       P   R   O   C
0051740        [   n   a   m   e   :       n   o   d   e   I   .   S   t
0051760    y   l   e   N   a   m   e   ]   ;       -   -       f   a   s
0052000    t       r   e   t   u   r   n       i   f       a   l   r   e
0052020    a   d   y       l   o   a   d   e   d  \r   R   e   l   o   a
0052040    d   S   t   y   l   e   :       P   R   O   C       [   n   a
0052060    m   e   :       n   o   d   e   I   .   S   t   y   l   e   N
0052100    a   m   e   ]   ;       -   -       f   o   r   c   e   s    
0052120    r   e   r   e   a   d   i   n   g       o   f       d   e   f
0052140    i   n   i   t   i   o   n  \r   C   u   r   r   e   n   t   S
0052160    t   y   l   e   :       P   R   O   C       R   E   T   U   R
0052200    N   S       [   n   o   d   e   I   .   S   t   y   l   e   N
0052220    a   m   e   ]   ;  \r   S   e   t   S   t   y   l   e   :    
0052240    P   R   O   C       [   n   a   m   e   :       n   o   d   e
0052260    I   .   S   t   y   l   e   N   a 376 001  \0 347 342   m   e
0052300    ]   ;       -   -       f   a   s   t       r   e   t   u   r
0052320    n       i   f       a   l   r   e   a   d   y       c   u   r
0052340    r   e   n   t  \r  \t   -   -       o   t   h   e   r   w   i
0052360    s   e       e   n   d   s       t   o   p       d   i   c   t
0052400    ,       b   e   g   i   n   s       d   i   c   t       f   o
0052420    r       n   a   m   e   d       s   t   y   l   e  \r  \t   -
0052440    -       u   s   e       t   h   i   s       t   o       c   h
0052460    a   n   g   e       s   t   y   l   e  \r  \r   A   p   p   l
0052500    y   :       P   R   O   C       [   r   e   f   :       R   e
0052520    f   ,       n   a   m   e   ,       a   l   t   :       n   o
0052540    d   e   I   .   T   y   p   e   N   a   m   e       _       n
0052560    o   d   e   I   .   n   u   l   l   T   y   p   e   N   a   m
0052600    e   ]   ;  \r  \t   -   -       d   o   e   s       S   e   t
0052620    R   e   f   [   r   e   f   ]  \r  \t   -   -       d   o   e
0052640    s       S   e   t   S   t   y   l   e   [   r   e   f   .   s
0052660    t   y   l   e   N   a   m   e   ]  \r  \t   -   -     376 001
0052700   \0 256 246   t   h   e   n       c   a   l   l   s       J   a
0052720    M       t   o       e   x   e   c   u   t   e       t   h   e
0052740        n   a   m   e  \r  \t  \t   -   -       i   f       n   a
0052760    m   e       i   s       n   o   t       k   n   o   w   n    
0053000    a   n   d       a   l   t       #       n   u   l   l   T   y
0053020    p   e   N   a   m   e   ,       t   r   y       i   t       i
0053040    n   s   t   e   a   d  \r  \r   A   p   p   l   y   L   o   o
0053060    k   s   :       P   R   O   C       [   r   e   f   :       R
0053100    e   f   ,       l   o   o   k   s   :       l   o   o   k   s
0053120    I   .   L   o   o   k   s   ]   ;  \r  \t   -   -       d   o
0053140    e   s       S   e   t   R   e   f   [   r   e   f   ]  \r  \t
0053160    -   -       d   o   e   s       S   e   t   S   t   y   l   e
0053200    [   r   e   f   .   s   t   y   l   e   N   a   m   e   ]  \r
0053220   \t   -   -       t   h   e   n       c   a   l   l   s       J
0053240    a   M       t   o       e   x   e   c   u   t   e       t   h
0053260    e       l   o   o   k   s  \r  \r   S   t   y   l   e   E   r
0053300    r   o   r 376  \0   N 263 030   :       E   R   R   O   R   ;
0053320        -   -       c   a   n       b   e       g   e   n   e   r
0053340    a   t   e   d       b   y       D   o       o   r       i   n
0053360        l   o   a   d   i   n   g       a       s   t   y   l   e
0053400   \r  \r   E   N   D   .  \r 032   (   6   3   5   )   \   1   6
0053420    0   b   1   0   B  \r 377  \0  \0   N   o   d   e   S   t   y
0053440    l   e   E   x   t   r   a   .   m   e   s   a  \0 373 226 347
0053460  211   ,  \0  \0 376 001  \0 034 304   -   -       N   o   d   e
0053500    S   t   y   l   e   E   x   t   r   a   .   m   e   s   a  \r
0053520    -   -       W   r   i   t   t   e   n       b   y       B   i
0053540    l   l       P   a   x   t   o   n   ,       J   a   n   u   a
0053560    r   y       1   9   8   1  \r   -   -       L   a   s   t    
0053600    c   h   a   n   g   e   d       b   y       B   i   l   l    
0053620    P   a   x   t   o   n   ,       M   a   r   c   h       2   4
0053640    ,       1   9   8   1           9   :   3   8       A   M  \r
0053660   \r   -   -       I   n   t   e   r   n   a   l       d   e   f
0053700    s       f   o   r       N   o   d   e   S   t   y   l   e    
0053720    m   o   d   u   l   e   s  \r  \r   D   I   R   E   C   T   O
0053740    R   Y  \r  \t   N   o   d   e   S   t   y   l   e   ,  \r  \t
0053760    T   e   x   t   N   o   d   e   ,  \r  \t   T   e   x   t   L
0054000    o   o   k   s   ,  \r  \t   J   a   M   O   t   h   e   r   D
0054020    e   f   s   ,  \r  \t   T   i   o   g   a   J   a   M   ;  \r
0054040   \r   N   o   d   e   S   t   y   l   e   E   x   t   r   a   :
0054060        D   E   F   I   N   I   T   I 376 001  \0   U 317   O   N
0054100    S  \r  \t   I   M   P   O   R   T   S       N   o   d   e   S
0054120    t   y   l   e   ,       J   a   M   O   t   h   e   r   D   e
0054140    f   s   ,       T   i   o   g   a   J   a   M       =  \r   B
0054160    E   G   I   N       O   P   E   N  \r  \t   N   o   d   e   S
0054200    t   y   l   e   ,  \r  \t   n   o   d   e   I   :   T   e   x
0054220    t   N   o   d   e   ,  \r  \t   l   o   o   k   s   I   :   T
0054240    e   x   t   L   o   o   k   s   ,  \r  \t   t   j   I   :   T
0054260    i   o   g   a   J   a   M   ,  \r  \t   j   a   m   I   :   J
0054300    a   M   O   t   h   e   r   D   e   f   s   ;  \r  \r   S   t
0054320    y   l   e   C   o   m   m   a   n   d   :       P   R   O   C
0054340        [   t   e   x   t   :       R   E   F       T   E   X   T
0054360    ,       p   r   o   c   :       P   R   O   C   ]   ;  \r  \r
0054400    S   t   y   l   e   L   i   t   e   r   a   l   :       P   R
0054420    O   C       [   t   e   x   t   :       R   E   F       T   E
0054440    X   T   ]       R   E   T   U   R   N   S       [   n   a   m
0054460    e   :       t   j   I   .   J   a   M   N   a   m   e 376 001
0054500   \0 217   I   ]   ;  \r  \r   C   o   m   m   a   n   d   :    
0054520    T   Y   P   E       =       j   a   m   I   .   C   o   m   m
0054540    a   n   d   ;  \r  \r   c   v   l   i   t   ,       c   v   x
0054560    ,       d   e   f   ,       p   u   t   ,       g   e   t   ,
0054600        d   i   c   t   ,       a   t   t   a   c   h   d   i   c
0054620    t   ,       d   e   t   a   c   h   a   l   l   ,       a   b
0054640    i   n   d   ,  \r  \t   b   e   g   i   n   ,       e   n   d
0054660    ,       r   u   n   ,       l   o   a   d   ,       c   l   r
0054700    d   i   c   t   ,       w   h   e   r   e   ,       k   n   o
0054720    w   n   ,       a   s   s   i   g   n   ,       f   i   n   i
0054740    s   h   S   u   b   S   t   y   l   e   :  \r  \t   C   o   m
0054760    m   a   n   d   ;  \r  \r   -   -       I   n   l   i   n   e
0055000    s  \r  \r   G   e   t   C   o   m   m   a   n   d   :       P
0055020    R   O   C       [   n   a   m   e   :       t   j   I   .   J
0055040    a   M   N   a   m   e   ]       R   E   T   U   R   N   S    
0055060    [   c   :       C   o   m   m   a   n   d   ]       =       I
0055100    N   L   I 376 001  \0   A  \0   N   E       {  \r  \t   f   l
0055120    a   g   :       B   O   O   L   E   A   N   ;  \r  \t   [   c
0055140    ,       f   l   a   g   ]       _       j   a   m   I   .   T
0055160    r   y   T   o   G   e   t   C   o   m   m   a   n   d   [   L
0055200    O   O   P   H   O   L   E   [   n   a   m   e   ]   ]   ;  \r
0055220   \t   I   F       ~   f   l   a   g       T   H   E   N       E
0055240    R   R   O   R       }   ;  \r  \r   E   x   e   c   u   t   e
0055260    C   o   m   m   a   n   d   :       P   R   O   C       [   c
0055300    :       C   o   m   m   a   n   d   ]       =       I   N   L
0055320    I   N   E       {  \r  \t   j   a   m   I   .   E   x   e   c
0055340    u   t   e   C   o   m   m   a   n   d   [   c   ]       }   ;
0055360   \r  \r   P   u   s   h   C   o   m   m   a   n   d   :       P
0055400    R   O   C       [   c   :       C   o   m   m   a   n   d   ]
0055420        =       I   N   L   I   N   E       {  \r  \t   j   a   m
0055440    I   .   P   u   s   h   C   o   m   m   a   n   d   [   c   ]
0055460        }   ;  \r  \r   O   b   j   e   c   t   :       T   Y   P
0055500    E       =       j   a   m   I 376 001  \0   w  \n   .   O   b
0055520    j   ;  \r  \r   P   u   s   h   O   b   j   e   c   t   :    
0055540    P   R   O   C       [   o   b   :       O   b   j   e   c   t
0055560    ]       =       I   N   L   I   N   E       {  \r  \t   j   a
0055600    m   I   .   P   u   s   h   O   b   j   [   o   b   ]       }
0055620    ;  \r  \r   P   o   p   O   b   j   e   c   t   :       P   R
0055640    O   C       R   E   T   U   R   N   S       [   O   b   j   e
0055660    c   t   ]       =       I   N   L   I   N   E       {  \r  \t
0055700    R   E   T   U   R   N   [   j   a   m   I   .   P   o   p   O
0055720    b   j   [   ]   ]       }   ;  \r  \r   P   u   s   h   N   a
0055740    m   e   :       P   R   O   C       [   n   a   m   e   :    
0055760    t   j   I   .   J   a   M   N   a   m   e   ]       =       I
0056000    N   L   I   N   E       {  \r  \t   j   a   m   I   .   P   u
0056020    s   h   N   a   m   e   [   L   O   O   P   H   O   L   E   [
0056040    n   a   m   e   ]   ]       }   ;  \r  \r   P   o   p   N   a
0056060    m   e   :       P   R   O   C       R   E   T   U   R   N   S
0056100        [   t   j   I   .   J   a   M   N   a   m   e 376 001  \0
0056120  366 300   ]       =       I   N   L   I   N   E       {  \r  \t
0056140    R   E   T   U   R   N       [   L   O   O   P   H   O   L   E
0056160    [   j   a   m   I   .   P   o   p   N   a   m   e   [   ]   ]
0056200    ]       }   ;  \r  \r   E   x   e   c   u   t   e   N   a   m
0056220    e   :       P   R   O   C       [   n   a   m   e   :       t
0056240    j   I   .   J   a   M   N   a   m   e   ]       R   E   T   U
0056260    R   N   S       [   B   O   O   L   E   A   N   ]       =    
0056300    I   N   L   I   N   E       {  \r  \t   R   E   T   U   R   N
0056320    [   j   a   m   I   .   E   x   e   c   u   t   e   N   a   m
0056340    e   [   L   O   O   P   H   O   L   E   [   n   a   m   e   ]
0056360    ]   ]       }   ;  \r  \r   E   v   a   l   N   a   m   e   :
0056400        P   R   O   C       [   n   a   m   e   :       t   j   I
0056420    .   J   a   M   N   a   m   e   ]       =       I   N   L   I
0056440    N   E       {  \r  \t   I   F       ~   j   a   m   I   .   E
0056460    x   e   c   u   t   e   N   a   m   e   [   L   O   O   P   H
0056500    O   L   E   [   n   a   m   e   ]   ]       T   H   E   N    
0056520    E   R 376 001  \0   ?   H   R   O   R       S   t   y   l   e
0056540    E   r   r   o   r       }   ;  \r  \r   T   r   y   T   o   P
0056560    o   p   N   a   m   e   :       P   R   O   C       R   E   T
0056600    U   R   N   S       [   n   a   m   e   :       t   j   I   .
0056620    J   a   M   N   a   m   e   ,       o   k   :       B   O   O
0056640    L   E   A   N   ]       =       I   N   L   I   N   E       {
0056660   \r  \t   j   n   a   m   e   :       j   a   m   I   .   N   a
0056700    m   e   ;  \r  \t   [   j   n   a   m   e   ,       o   k   ]
0056720        _       j   a   m   I   .   T   r   y   T   o   P   o   p
0056740    N   a   m   e   [   ]   ;  \r  \t   R   E   T   U   R   N    
0056760    [   L   O   O   P   H   O   L   E   [   j   n   a   m   e   ]
0057000    ,   o   k   ]   }   ;  \r  \r   P   o   p   N   a   m   e   O
0057020    r   R   e   a   l   :       P   R   O   C       R   E   T   U
0057040    R   N   S  \r  \t   [   f   l   a   g   :       B   O   O   L
0057060    E   A   N   ,       n   a   m   e   :       t   j   I   .   J
0057100    a   M   N   a   m   e   ,       v   a   l   u   e   :       R
0057120    E   A   L   ]       =     376 001  \0 372 377   I   N   L   I
0057140    N   E       {  \r  \t   j   n   a   m   e   :       j   a   m
0057160    I   .   N   a   m   e   ;  \r  \t   [   f   l   a   g   ,    
0057200    j   n   a   m   e   ,       v   a   l   u   e   ]       _    
0057220    j   a   m   I   .   P   o   p   N   a   m   e   O   r   R   e
0057240    a   l   [   ]   ;  \r  \t   R   E   T   U   R   N       [   f
0057260    l   a   g   ,       L   O   O   P   H   O   L   E   [   j   n
0057300    a   m   e   ]   ,       v   a   l   u   e   ]   }   ;  \r  \r
0057320    M   a   k   e   N   a   m   e   :       P   R   O   C       [
0057340    t   x   t   :       R   E   F       R   E   A   D   O   N   L
0057360    Y       T   E   X   T   ]       R   E   T   U   R   N   S    
0057400    [   t   j   I   .   J   a   M   N   a   m   e   ]       =    
0057420    I   N   L   I   N   E       {  \r  \t   R   E   T   U   R   N
0057440        [   L   O   O   P   H   O   L   E   [   t   j   I   .   M
0057460    a   k   e   N   a   m   e   [   L   O   O   P   H   O   L   E
0057500    [   t   x   t   ]   ]   ]   ]       }   ;  \r  \r   E   N   D
0057520    .  \r 032   (   4   7   6   )   \   2   3   2 376  \0 005 227
0057540    x   b   1   5   B  \r 377  \0  \0   R   o   p   e   F   r   o
0057560    m   .   m   e   s   a  \0 373 226 350 360   X  \0  \0 376 001
0057600   \0 214 236   -   -       R   o   p   e   F   r   o   m   .   m
0057620    e   s   a  \r   -   -       w   r   i   t   t   e   n       b
0057640    y       B   i   l   l       P   a   x   t   o   n   ,        
0057660    F   e   b   r   u   a   r   y       1   9   8   1  \r   -   -
0057700        l   a   s   t       e   d   i   t       b   y       B   i
0057720    l   l       P   a   x   t   o   n   ,           M   a   r   c
0057740    h       2   5   ,       1   9   8   1           1   1   :   1
0057760    1       A   M  \r  \r   -   -       r   o   u   t   i   n   e
0060000    s       f   o   r       c   r   e   a   t   i   n   g       r
0060020    o   p   e   s       f   r   o   m       f   i   l   e   s   ,
0060040        s   t   r   i   n   g   s   ,       a   n   d       c   h
0060060    a   r   a   c   t   e   r   s  \r   -   -       a   l   s   o
0060100        f   o   r       c   r   e   a   t   i   n   g       f   l
0060120    a   t       r   o   p   e   s       f   r   o   m       o   t
0060140    h   e   r       o   n   e   s  \r  \r   -   -       c   h   a
0060160    r   a   c   t   e   r   s       g   o       i   n   t   o    
0060200    C   h   a 376 001  \0 212   ?   r   s   A   r   r   a   y   s
0060220        s   o       g   e   t       f   a   s   t       a   c   c
0060240    e   s   s       v   i   a       T   i   o   g   a   R   o   p
0060260    e   R   e   a   d   e   r   '   s  \r  \r   -   -       a    
0060300    s   h   a   r   e   d       C   h   a   r   s   A   r   r   a
0060320    y       i   s       u   s   e   d       t   o       h   o   l
0060340    d       t   e   x   t       f   o   r       c   h   a   r   s
0060360    ,       s   t   r   i   n   g   s   ,       a   n   d       r
0060400    o   p   e   s  \r   -   -       i   t       i   s       a   l
0060420    s   o       u   s   e   d       f   o   r       s   h   o   r
0060440    t       f   i   l   e   s  \r  \r   -   -       l   o   n   g
0060460        f   i   l   e   s       a   r   e       m   a   p   p   e
0060500    d       i   n   t   o       t   h   e   i   r       o   w   n
0060520        C   h   a   r   s   A   r   r   a   y   '   s      \r  \t
0060540    -   -       u   s   i   n   g       P   i   l   o   t       s
0060560    p   a   c   e   s       s   o       d   o   n   '   t       a
0060600    c   t   u   a   l   l   y     376 001  \0   F 270   r   e   a
0060620    d       t   h   e       c   h   a   r   s       a   t       a
0060640    l   l  \r  \r   D   I   R   E   C   T   O   R   Y  \r   -   -
0060660   \t   F   i   l   e       U   S   I   N   G       [   C   a   p
0060700    a   b   i   l   i   t   y   ]   ,  \r  \t   R   o   p   e    
0060720    U   S   I   N   G       [   R   e   f   ]   ;  \r  \r   R   o
0060740    p   e   F   r   o   m   :       D   E   F   I   N   I   T   I
0060760    O   N   S  \r  \t   I   M   P   O   R   T   S       R   o   p
0061000    e       =  \r   B   E   G   I   N       O   P   E   N       r
0061020    :   R   o   p   e   ;  \r  \r   C   a   r   d   :       T   Y
0061040    P   E       =       L   O   N   G       C   A   R   D   I   N
0061060    A   L   ;  \r   C   h   a   r   :       T   Y   P   E       =
0061100        C   H   A   R   A   C   T   E   R   ;  \r   M   a   x   L
0061120    e   n   :       C   a   r   d       =       L   A   S   T   [
0061140    C   a   r   d   ]   ;  \r   R   o   p   e   :       T   Y   P
0061160    E       =       r   .   R   e   f   ;  \r  \r   q   Z   o   n
0061200    e   :       Z   O   N   E   ;       -   -       q 376 001  \0
0061220    -   g   u   a   n   t   i   z   e   d       z   o   n   e    
0061240    f   o   r       a   l   l   o   c   a   t   i   n   g       r
0061260    o   p   e       p   i   e   c   e   s      \r  \t   -   -    
0061300    r   e   p   l   a   c   e       t   h   i   s       e   v   e
0061320    n   t   u   a   l   l   y       b   y       z   o   n   e    
0061340    R   u   s   s       u   s   e   s  \r  \r   F   i   l   e   C
0061360    a   p   a   b   i   l   i   t   y   :       T   Y   P   E    
0061400    =       R   o   p   e   ;       -   -       t   e   m   p  \r
0061420    F   i   l   e   :       P   R   O   C       [  \r  \t   f   i
0061440    l   e   :       F   i   l   e   C   a   p   a   b   i   l   i
0061460    t   y   ,  \r  \t   s   t   a   r   t   :       C   a   r   d
0061500        _       0   ,       -   -       b   y   t   e       a   d
0061520    d   r   e   s   s       i   n       f   i   l   e       w   h
0061540    e   r   e       r   o   p   e       w   i   l   l       s   t
0061560    a   r   t  \r  \t   l   e   n   g   t   h   :       C   a   r
0061600    d       _       M   a   x   L   e   n   ,       -   -       d
0061620    e   f 376 001  \0   F   e   a   u   l   t   s       t   o    
0061640    r   e   s   t       o   f       f   i   l   e  \r  \t   a   c
0061660    t   i   v   a   t   e   :       B   O   O   L   E   A   N    
0061700    _       F   A   L   S   E   ]  \r  \t   R   E   T   U   R   N
0061720    S       [   R   o   p   e   ]   ;  \r  \t  \t   -   -       i
0061740    f       a   c   t   i   v   a   t   e       i   s       t   r
0061760    u   e   ,       t   h   e       s   y   s   t   e   m       w
0062000    i   l   l       s   t   a   r   t       s   w   a   p   p   i
0062020    n   g       t   h   e      \r  \t  \t  \t   -   -       c   h
0062040    a   r   a   c   t   e   r   s       i   n   t   o       r   e
0062060    a   l       m   e   m   o   r   y  \r  \r   S   t   r   i   n
0062100    g   :       P   R   O   C       [   s   t   r   i   n   g   :
0062120        R   E   F       R   E   A   D   O   N   L   Y       T   E
0062140    X   T   ,       s   t   a   r   t   :       N   A   T       _
0062160        0   ,       l   e   n   :       N   A   T       _       L
0062200    A   S   T   [   N   A   T   ]   ]  \r  \t   R   E   T   U   R
0062220    N   S       [   R   o   p 376 001  \0 254 207   e   ]   ;  \r
0062240   \t   -   -       c   o   p   i   e   s       l   e   n       c
0062260    h   a   r   a   c   t   e   r   s       f   r   o   m       s
0062300    t   r   i   n   g       s   t   a   r   t   i   n   g       a
0062320    t       s   t   a   r   t  \r  \r   C   h   a   r   a   c   t
0062340    e   r   :       P   R   O   C       [   c   h   a   r   :    
0062360    C   h   a   r   ]       R   E   T   U   R   N   S       [   R
0062400    o   p   e   ]   ;  \r  \r   S   u   b   s   t   r   :       P
0062420    R   O   C       [   r   o   p   e   :       R   o   p   e   ,
0062440        s   t   a   r   t   ,       l   e   n   :       C   a   r
0062460    d   ]       R   E   T   U   R   N   S       [   R   o   p   e
0062500    ]   ;  \r  \r   C   o   n   c   a   t   :       P   R   O   C
0062520        [   b   a   s   e   ,       r   e   s   t   :       R   o
0062540    p   e   ,       b   a   s   e   S   i   z   e   ,       r   e
0062560    s   t   S   i   z   e   :       C   a   r   d   ]       R   E
0062600    T   U   R   N   S       [   R   o   p   e   ]   ;  \r  \t   -
0062620    -       r   e   t   u   r   n   s       t   h 376 001  \0   h
0062640  240   e       c   o   n   c   a   t   e   n   a   t   i   o   n
0062660        o   f       t   w   o       r   o   p   e   s  \r  \r   R
0062700    e   p   l   a   c   e   :       P   R   O   C  \r  \t   [   b
0062720    a   s   e   ,       r   e   p   l   a   c   e   :       R   o
0062740    p   e   ,       s   t   a   r   t   ,       l   e   n   ,    
0062760    s   i   z   e   ,       b   a   s   e   S   i   z   e   ,    
0063000    r   e   p   S   i   z   e   :       C   a   r   d   ]  \r  \t
0063020   \t   R   E   T   U   R   N   S       [   R   o   p   e   ]   ;
0063040   \r  \t   -   -       r   e   t   u   r   n   s       a       n
0063060    e   w       r   o   p   e       w   i   t   h       t   h   e
0063100        g   i   v   e   n       r   a   n   g   e       r   e   p
0063120    l   a   c   e   d  \r  \t   -   -       s   i   z   e       =
0063140        b   a   s   e   S   i   z   e   +   r   e   p   S   i   z
0063160    e   -   l   e   n  \r  \r   D   e   l   e   t   e   :       P
0063200    R   O   C       [   b   a   s   e   :       R   o   p   e   ,
0063220        s   t   a   r   t   ,       l   e   n   ,       b   a   s
0063240    e 376 001  \0 347 321   S   i   z   e   :       C   a   r   d
0063260    ]       R   E   T   U   R   N   S       [   R   o   p   e   ]
0063300        =       I   N   L   I   N   E  \r  \t   {       R   E   T
0063320    U   R   N       [   R   e   p   l   a   c   e   [   b   a   s
0063340    e   ,       N   I   L   ,       s   t   a   r   t   ,       l
0063360    e   n   ,       b   a   s   e   S   i   z   e   -   l   e   n
0063400    ,       b   a   s   e   S   i   z   e   ,       0   ]   ]    
0063420    }   ;  \r  \r   C   o   p   y   :       P   R   O   C       [
0063440    b   a   s   e   :       R   o   p   e   ,       b   a   s   e
0063460    S   i   z   e   ,       d   e   s   t   ,       s   t   a   r
0063500    t   ,       l   e   n   :       C   a   r   d   ]       R   E
0063520    T   U   R   N   S       [   R   o   p   e   ]   ;  \r  \r   M
0063540    o   v   e   :       P   R   O   C       [   b   a   s   e   :
0063560        R   o   p   e   ,       b   a   s   e   S   i   z   e   ,
0063600        d   e   s   t   ,       s   t   a   r   t   ,       l   e
0063620    n   :       C   a   r   d   ]       R   E   T   U   R   N   S
0063640        [   R   o   p   e 376 001  \0 306   o   ]   ;  \r  \t   -
0063660    -       d   e   s   t       m   u   s   t       n   o   t    
0063700    b   e       i   n       [   s   t   a   r   t   .   .   s   t
0063720    a   r   t   +   l   e   n   )  \r  \r   T   r   a   n   s   p
0063740    o   s   e   :       P   R   O   C       [   b   a   s   e   :
0063760        R   o   p   e   ,       b   a   s   e   S   i   z   e   ,
0064000        a   s   t   a   r   t   ,       a   l   e   n   ,       b
0064020    s   t   a   r   t   ,       b   l   e   n   :       C   a   r
0064040    d   ]  \r  \t   R   E   T   U   R   N   S       [   R   o   p
0064060    e   ]   ;  \r  \t   -   -       [   a   s   t   a   r   t   .
0064100    .   a   s   t   a   r   t   +   a   l   e   n   )       m   u
0064120    s   t       n   o   t       i   n   t   e   r   s   e   c   t
0064140        [   b   s   t   a   r   t   .   .   b   s   t   a   r   t
0064160    +   b   l   e   n   )  \r  \r   A   p   p   e   n   d   C   h
0064200    a   r   :       P   R   O   C       [   b   a   s   e   :    
0064220    R   o   p   e   ,       c   h   a   r   :       C   h   a   r
0064240    ,       b   a   s   e   S   i   z   e   : 376 001  \0 371   @
0064260        C   a   r   d   ]       R   E   T   U   R   N   S       [
0064300    R   o   p   e   ]   ;  \r  \r   A   p   p   e   n   d   S   t
0064320    r   i   n   g   :       P   R   O   C       [   b   a   s   e
0064340    :       R   o   p   e   ,       s   t   r   i   n   g   :    
0064360    R   E   F       R   E   A   D   O   N   L   Y       T   E   X
0064400    T   ,  \r  \t   s   t   r   i   n   g   S   t   a   r   t   ,
0064420        s   t   r   i   n   g   N   u   m   :       N   A   T   ,
0064440        b   a   s   e   S   i   z   e   :       C   a   r   d   ]
0064460        R   E   T   U   R   N   S       [   R   o   p   e   ]   ;
0064500   \r  \r   R   e   p   l   a   c   e   B   y   C   h   a   r   :
0064520        P   R   O   C       [   b   a   s   e   :       R   o   p
0064540    e   ,       c   h   a   r   :       C   h   a   r   ,       s
0064560    t   a   r   t   ,       l   e   n   ,       b   a   s   e   S
0064600    i   z   e   :       C   a   r   d   ]  \r  \t   R   E   T   U
0064620    R   N   S       [   n   e   w   :       R   o   p   e   ]   ;
0064640   \r  \r   I   n   s   e   r   t   C   h   a   r   :       P   R
0064660  376 001  \0 200   -   O   C       [   b   a   s   e   :       R
0064700    o   p   e   ,       c   h   a   r   :       C   h   a   r   ,
0064720        b   a   s   e   S   i   z   e   ,       l   o   c   :    
0064740    C   a   r   d   ]  \r  \t   R   E   T   U   R   N   S       [
0064760    R   o   p   e   ]       =  \r  \t   -   -       c   h   a   r
0065000        i   s       i   n   s   e   r   t   e   d       a   t    
0065020    l   o   c  \r  \t   I   N   L   I   N   E       {       R   E
0065040    T   U   R   N       [   R   e   p   l   a   c   e   B   y   C
0065060    h   a   r   [   b   a   s   e   ,       c   h   a   r   ,    
0065100    l   o   c   ,       0   ,       b   a   s   e   S   i   z   e
0065120    ]   ]       }   ;  \r  \r   R   e   p   l   a   c   e   B   y
0065140    S   t   r   i   n   g   :       P   R   O   C       [   b   a
0065160    s   e   :       R   o   p   e   ,       s   t   r   i   n   g
0065200    :       R   E   F       R   E   A   D   O   N   L   Y       T
0065220    E   X   T   ,  \r  \t   s   t   r   i   n   g   S   t   a   r
0065240    t   ,       s   t   r   i   n   g   N   u   m   :       N   A
0065260    T   ,       s   t 376 001  \0 237 204   a   r   t   ,       l
0065300    e   n   ,       b   a   s   e   S   i   z   e   :       C   a
0065320    r   d   ]  \r  \t   R   E   T   U   R   N   S       [   n   e
0065340    w   :       R   o   p   e   ]   ;  \r  \r   I   n   s   e   r
0065360    t   S   t   r   i   n   g   :       P   R   O   C       [  \r
0065400   \t   b   a   s   e   :       R   o   p   e   ,       b   a   s
0065420    e   S   i   z   e   ,       l   o   c   :       C   a   r   d
0065440    ,       s   t   r   i   n   g   :       R   E   F       R   E
0065460    A   D   O   N   L   Y       T   E   X   T   ,  \r  \t   s   t
0065500    r   i   n   g   S   t   a   r   t   ,       s   t   r   i   n
0065520    g   N   u   m   :       N   A   T   ]       R   E   T   U   R
0065540    N   S       [   R   o   p   e   ]       =       I   N   L   I
0065560    N   E       {       R   E   T   U   R   N       [  \r  \t   -
0065600    -       s   t   r   i   n   g       i   s       i   n   s   e
0065620    r   t   e   d       a   t       l   o   c  \r  \t   -   -    
0065640    i   n   s   e   r   t   s       s   t   r   i   n   g   N   u
0065660    m       c   h   a   r   s       s   t 376 001  \0 346   O   a
0065700    r   t   i   n   g       w   i   t   h       s   t   r   i   n
0065720    g   S   t   a   r   t  \r  \t   R   e   p   l   a   c   e   B
0065740    y   S   t   r   i   n   g   [   b   a   s   e   ,       s   t
0065760    r   i   n   g   ,       s   t   r   i   n   g   S   t   a   r
0066000    t   ,       s   t   r   i   n   g   N   u   m   ,       l   o
0066020    c   ,       0   ,       b   a   s   e   S   i   z   e   ]   ]
0066040        }   ;  \r  \r   I   n   s   e   r   t   R   o   p   e   :
0066060        P   R   O   C       [   b   a   s   e   ,       i   n   s
0066100    e   r   t   :       R   o   p   e   ,       d   e   s   t   ,
0066120        b   a   s   e   S   i   z   e   ,       i   n   s   e   r
0066140    t   S   i   z   e   :       C   a   r   d   ]  \r  \t   R   E
0066160    T   U   R   N   S       [   R   o   p   e   ]       =       I
0066200    N   L   I   N   E       {       R   E   T   U   R   N       [
0066220   \r  \t   R   e   p   l   a   c   e   [   b   a   s   e   ,   i
0066240    n   s   e   r   t   ,   d   e   s   t   ,   0   ,   b   a   s
0066260    e   S   i   z   e   +   i   n   s   e   r   t   S   i   z 376
0066300   \0   (   N 326   e   ,   b   a   s   e   S   i   z   e   ,   i
0066320    n   s   e   r   t   S   i   z   e   ]   ]       }   ;  \r  \r
0066340    E   N   D   .  \r 032   (   6   3   5   )  \r 377  \0  \0   R
0066360    o   p   e   R   e   a   d   e   r   .   m   e   s   a  \0 373
0066400  226 346 207 022  \0  \0 376 001  \0   6 245   -   -       R   o
0066420    p   e   R   e   a   d   e   r   .   m   e   s   a  \r   -   -
0066440        w   r   i   t   t   e   n       b   y       B   i   l   l
0066460        P   a   x   t   o   n   ,           J   a   n   u   a   r
0066500    y       1   9   8   1  \r   -   -       l   a   s   t       e
0066520    d   i   t       b   y       B   i   l   l       P   a   x   t
0066540    o   n   ,           M   a   r   c   h       2   3   ,       1
0066560    9   8   1           3   :   1   7       P   M  \r  \r   -   -
0066600        R   o   p   e   R   e   a   d   e   r       p   r   o   v
0066620    i   d   e   s       f   a   s   t       i   n   l   i   n   e
0066640        a   c   c   e   s   s       t   o       c   h   a   r   a
0066660    c   t   e   r   s       i   n       r   o   p   e   s  \r  \t
0066700    -   -       d   e   s   i   g   n   e   d       f   o   r    
0066720    s   p   e   e   d       i   n       r   e   a   d   i   n   g
0066740        a       s   e   q   u   e   n   c   e       o   f       c
0066760    h   a   r   a   c   t   e   r   s  \r  \t  \t   -   -       e
0067000    i   t   h   e   r       f   o   r   w   a 376 001  \0   v 247
0067020    r   d   s       o   r       b   a   c   k   w   a   r   d   s
0067040   \r  \t   -   -       f   r   o   m       p   a   c   k   e   d
0067060        a   r   r   a   y   s       s   u   c   h       a   s    
0067100    c   r   e   a   t   e   d       b   y       m   a   p   p   i
0067120    n   g       p   a   g   e   s       f   r   o   m       a    
0067140    f   i   l   e  \r  \r   -   -       c   r   e   a   t   e    
0067160    a       r   e   a   d   e   r       b   y       R   o   p   e
0067200    R   e   a   d   e   r   .   C   r   e   a   t   e  \r  \t   -
0067220    -       r   e   a   d   e   r   :       R   o   p   e   R   e
0067240    a   d   e   r   .   R   e   f       _       R   o   p   e   R
0067260    e   a   d   e   r   .   C   r   e   a   t   e   [   ]   ;  \r
0067300   \r   -   -       p   o   s   i   t   i   o   n       i   t    
0067320    w   h   e   r   e       y   o   u       w   a   n   t   o    
0067340    t   o       r   e   a   d       b   y       S   e   t   P   o
0067360    s   i   t   i   o   n  \r  \t   -   -       R   o   p   e   R
0067400    e   a   d   e   r   .   S   e   t   P   o   s   i   t   i   o
0067420  376 001  \0 263 205   n   [   r   e   a   d   e   r   ,       r
0067440    o   p   e   ,       i   n   d   e   x   ]   ;  \r  \t   -   -
0067460        w   h   e   r   e       r   o   p   e       i   s       R
0067500    o   p   e   .   R   e   f       t   o       r   e   a   d    
0067520    f   r   o   m  \r  \t   -   -       a   n   d       i   n   d
0067540    e   x       i   s       t   h   e       i   n   i   t   i   a
0067560    l       p   o   s   i   t   i   o   n       f   o   r       t
0067600    h   e       r   e   a   d   e   r  \r  \t   -   -       y   o
0067620    u       c   a   n       r   e   p   o   s   i   t   i   o   n
0067640        a       r   e   a   d   e   r       a   t       a   n   y
0067660        t   i   m   e  \r  \r   -   -       r   e   a   d       i
0067700    t   s       p   o   s   i   t   i   o   n       i   n       t
0067720    h   e       f   o   l   l   o   w   i   n   g       w   a   y
0067740    s   :  \r  \t   -   -       [   r   o   p   e   ,       i   n
0067760    d   e   x   ]       _       R   o   p   e   R   e   a   d   e
0070000    r   .   P   o   s   i   t   i   o   n   [   r   e   a   d   e
0070020    r   ]   ;  \r  \t 376 001  \0   @ 020   -   -       r   o   p
0070040    e       _       R   o   p   e   R   e   a   d   e   r   .   G
0070060    e   t   R   o   p   e   [   r   e   a   d   e   r   ]   ;  \r
0070100   \t   -   -       i   n   d   e   x       _       R   o   p   e
0070120    R   e   a   d   e   r   .   G   e   t   I   n   d   e   x   [
0070140    r   e   a   d   e   r   ]   ;  \r  \r   -   -       t   o    
0070160    r   e   a   d       i   n       a   s   c   e   n   d   i   n
0070200    g       o   r   d   e   r       (   l   e   f   t       t   o
0070220        r   i   g   h   t   )  \r  \t   -   -       i   n   i   t
0070240    i   a   l   i   z   e       p   o   s   i   t   i   o   n    
0070260    b   e   f   o   r   e       f   i   r   s   t       c   h   a
0070300    r   a   c   t   e   r       t   o       b   e       r   e   a
0070320    d  \r  \t  \t   -   -       f   o   r       e   x   a   m   p
0070340    l   e   ,       u   s   e       0       t   o       s   t   a
0070360    r   t       a   t       b   e   g   i   n   n   i   n   g    
0070400    o   f       r   o   p   e  \r  \t   -   -       t   h   e   n
0070420        c   a   l   l       G   e   t     376 001  \0   o 333   w
0070440    h   i   c   h       r   e   a   d   s       t   o       t   h
0070460    e       r   i   g   h   t       a   n   d       i   n   c   r
0070500    e   m   e   n   t   s       t   h   e       p   o   s   i   t
0070520    i   o   n  \r  \t  \t   -   -       c   h   a   r       _    
0070540    R   o   p   e   R   e   a   d   e   r   .   G   e   t   [   r
0070560    e   a   d   e   r   ]   ;  \r  \r   -   -       t   o       r
0070600    e   a   d       i   n       d   e   s   c   e   n   d   i   n
0070620    g       o   r   d   e   r       (   r   i   g   h   t       t
0070640    o       l   e   f   t   )  \r  \t   -   -       i   n   i   t
0070660    i   a   l   i   z   e       p   o   s   i   t   i   o   n    
0070700    a   f   t   e   r       f   i   r   s   t       c   h   a   r
0070720    a   c   t   e   r       t   o       b   e       r   e   a   d
0070740   \r  \t  \t   -   -       f   o   r       e   x   a   m   p   l
0070760    e   ,       u   s   e       s   i   z   e       o   f       r
0071000    o   p   e       t   o       s   t   a   r   t       a   t    
0071020    e   n   d  \r  \t   -   -       t   h   e   n       c   a 376
0071040  001  \0 026   g   l   l       B   a   c   k   w   a   r   d   s
0071060        w   h   i   c   h       r   e   a   d   s       t   o    
0071100    t   h   e       l   e   f   t       a   n   d       d   e   c
0071120    r   e   m   e   n   t   s       t   h   e       p   o   s   i
0071140    t   i   o   n  \r  \t  \t   -   -       c   h   a   r       _
0071160        R   o   p   e   R   e   a   d   e   r   .   B   a   c   k
0071200    w   a   r   d   s   [   r   e   a   d   e   r   ]   ;  \r  \r
0071220    -   -       c   a   n       a   l   s   o       g   e   t    
0071240    a       c   h   a   r   a   c   t   e   r       w   i   t   h
0071260    o   u   t       c   h   a   n   g   i   n   g       t   h   e
0071300        r   e   a   d   e   r       p   o   s   i   t   i   o   n
0071320   \r  \t   -   -       t   o       l   o   o   k       a   t    
0071340    t   h   e       n   e   x   t       c   h   a   r   a   c   t
0071360    e   r       t   h   a   t       G   e   t       w   o   u   l
0071400    d       r   e   t   u   r   n   ,       c   a   l   l       P
0071420    e   e   k  \r  \t  \t   -   -       c   h   a   r       _    
0071440    R   o   p   e 376 001  \0 222   }   R   e   a   d   e   r   .
0071460    P   e   e   k   [   r   e   a   d   e   r   ]   ;  \r  \t   -
0071500    -       t   o       l   o   o   k       a   t       w   h   a
0071520    t       B   a   c   k   w   a   r   d   s       w   o   u   l
0071540    d       r   e   t   u   r   n   ,       c   a   l   l       P
0071560    e   e   k   B   a   c   k   w   a   r   d   s  \r  \t  \t   -
0071600    -       c   h   a   r       _       R   o   p   e   R   e   a
0071620    d   e   r   .   P   e   e   k   B   a   c   k   w   a   r   d
0071640    s   [   r   e   a   d   e   r   ]   ;  \r  \r   -   -       c
0071660    a   n       i   n   t   e   r   m   i   x       r   e   a   d
0071700    i   n   g       o   r       p   e   e   k   i   n   g       t
0071720    o       l   e   f   t       a   n   d       r   i   g   h   t
0071740   \r  \t   -   -       d   o   n   '   t       n   e   e   d    
0071760    t   o       r   e   i   n   i   t   i   a   l   i   z   e    
0072000    t   h   e       r   e   a   d   e   r       t   o       c   h
0072020    a   n   g   e       d   i   r   e   c   t   i   o   n  \r  \r
0072040    -   -       i   f       r   e   a 376 001  \0 344   4   d    
0072060    o   f   f       e   i   t   h   e   r       e   n   d       o
0072100    f       r   o   p   e   ,       y   o   u       c   a   n    
0072120    g   e   t       a   n       e   r   r   o   r  \r  \t   -   -
0072140        o   r       a       c   l   i   e   n   t   -   s   p   e
0072160    c   i   f   i   e   d       c   h   a   r   a   c   t   e   r
0072200    s  \r  \r   -   -       o   p   e   r   a   t   i   o   n   s
0072220        a   r   e       a   l   s   o       p   r   o   v   i   d
0072240    e   d       t   o       r   e   a   d       a       b   l   o
0072260    c   k       o   f       c   h   a   r   a   c   t   e   r   s
0072300   \r  \t   -   -       d   e   s   t   i   n   a   t   i   o   n
0072320        g   i   v   e   n       b   y       e   i   t   h   e   r
0072340        a       R   E   F       T   E   X   T       o   r       a
0072360        R   E   F       c   h   a   r   s       a   r   r   a   y
0072400   \r  \r   D   I   R   E   C   T   O   R   Y  \r  \t   R   o   p
0072420    e       U   S   I   N   G       [   R   e   f   ]   ;  \r  \r
0072440    R   o   p   e   R   e   a   d   e   r   :       D   E 376 001
0072460   \0  \f 037   F   I   N   I   T   I   O   N   S       =  \r   B
0072500    E   G   I   N       O   P   E   N       r   :   R   o   p   e
0072520    ;  \r  \r   -   -       *   *   *   *   *       R   o   p   e
0072540    R   e   a   d   e   r       D   e   c   l   a   r   a   t   i
0072560    o   n   s  \r  \r   R   e   f   :       T   Y   P   E       =
0072600        R   E   F       B   o   d   y   ;  \r   B   o   d   y   :
0072620        T   Y   P   E       =       P   R   I   V   A   T   E    
0072640    R   E   C   O   R   D       [  \r  \t   c   u   r   r   e   n
0072660    t   :       N   A   T       _       0   ,       -   -       i
0072700    n   d   e   x       o   f       c   u   r   r   e   n   t    
0072720    c   h   a   r   a   c   t   e   r  \r  \t   f   i   r   s   t
0072740    :       N   A   T       _       0   ,       -   -       i   n
0072760    d   e   x       o   f       f   i   r   s   t       c   h   a
0073000    r   a   c   t   e   r       t   o       r   e   a   d  \r  \t
0073020    a   f   t   e   r   :       N   A   T       _       0   ,    
0073040    -   -       i   n   d   e   x       b   e   y   o   n   d    
0073060    l   a   s 376 001  \0 345 021   t       c   h   a   r   a   c
0073100    t   e   r       t   o       r   e   a   d  \r  \t   c   h   a
0073120    r   s   :       C   h   a   r   s   ,       -   -       c   h
0073140    a   r   a   c   t   e   r   s       t   h   a   t       w   e
0073160        a   r   e       c   u   r   r   e   n   t   l   y       r
0073200    e   a   d   i   n   g  \r  \t   r   o   p   e   :       R   o
0073220    p   e   ,       -   -       r   o   p   e       t   h   a   t
0073240        w   e       a   r   e       r   e   a   d   i   n   g  \r
0073260   \t   i   n   d   e   x   :       C   a   r   d       _       0
0073300    ,       -   -       i   n   d   e   x       i   n       r   o
0073320    p   e       o   f       f   i   r   s   t       c   h   a   r
0073340    a   c   t   e   r  \r  \t   c   h   a   r   F   o   r   E   n
0073360    d   O   f   R   o   p   e   :       B   O   O   L   E   A   N
0073400        _       F   A   L   S   E   ,  \r  \t  \t   -   -       i
0073420    f       t   r   u   e   ,       r   e   t   u   r   n       e
0073440    n   d   C   h   a   r   ;       e   l   s   e       g   i   v
0073460    e       E   R   R   O   R     376 001  \0   { 263   R   e   a
0073500    d   O   f   f   E   n   d      \r  \t   e   n   d   C   h   a
0073520    r   :       C   h   a   r       _       0   C       -   -    
0073540    c   h   a   r       t   o       r   e   t   u   r   n       w
0073560    h   e   n       r   e   a   c   h       e   n   d       o   f
0073600        r   o   p   e  \r  \t   ]   ;  \r  \r   R   o   p   e   :
0073620        T   Y   P   E       =       r   .   R   e   f   ;  \r   C
0073640    h   a   r   :       T   Y   P   E       =       C   H   A   R
0073660    A   C   T   E   R   ;  \r   C   a   r   d   :       T   Y   P
0073700    E       =       L   O   N   G       C   A   R   D   I   N   A
0073720    L   ;  \r  \r   R   e   a   d   O   f   f   E   n   d   :    
0073740    E   R   R   O   R   ;  \r  \r   c   h   a   r   s   P   e   r
0073760    P   a   g   e   :       N   A   T       =       5   1   2   ;
0074000   \r   p   a   g   e   s   P   e   r   A   r   r   a   y   :    
0074020    N   A   T       =       3   2   ;  \r   c   h   a   r   s   P
0074040    e   r   A   r   r   a   y   :       N   A   T       =       c
0074060    h   a   r   s   P   e   r   P   a   g   e   *   p 376 001  \0
0074100  260   j   a   g   e   s   P   e   r   A   r   r   a   y   ;    
0074120    -   -       1   6   3   8   4  \r   C   h   a   r   s   A   r
0074140    r   a   y   :       T   Y   P   E       =       P   A   C   K
0074160    E   D       A   R   R   A   Y       [   0   .   .   c   h   a
0074200    r   s   P   e   r   A   r   r   a   y   )       O   F       C
0074220    h   a   r   ;  \r   C   h   a   r   s   :       T   Y   P   E
0074240        =       R   E   F       R   E   A   D   O   N   L   Y    
0074260    C   h   a   r   s   A   r   r   a   y   ;  \r  \r   -   -    
0074300    *   *   *   *   *       R   o   p   e   R   e   a   d   e   r
0074320        O   p   e   r   a   t   i   o   n   s  \r  \r   C   r   e
0074340    a   t   e   :       P   R   O   C       R   E   T   U   R   N
0074360    S       [   R   e   f   ]       =       I   N   L   I   N   E
0074400        {       R   E   T   U   R   N   [   N   E   W   [   B   o
0074420    d   y   ]   ]       }   ;  \r  \t  \r   S   e   t   P   o   s
0074440    i   t   i   o   n   :       P   R   O   C       [   r   e   a
0074460    d   e   r   :       R   e   f   ,       r   o   p   e   :    
0074500    R   o 376 001  \0 361 344   p   e   ,       i   n   d   e   x
0074520    :       C   a   r   d       _       0   ]       =       I   N
0074540    L   I   N   E       {  \r  \t   I   F       G   e   t   R   o
0074560    p   e   [   r   e   a   d   e   r   ]   #   r   o   p   e    
0074600    O   R       G   e   t   I   n   d   e   x   [   r   e   a   d
0074620    e   r   ]   #   i   n   d   e   x       T   H   E   N       {
0074640   \r  \t  \t   r   e   a   d   e   r   .   c   u   r   r   e   n
0074660    t       _       r   e   a   d   e   r   .   f   i   r   s   t
0074700        _       r   e   a   d   e   r   .   a   f   t   e   r    
0074720    _       0   ;  \r  \t  \t   r   e   a   d   e   r   .   c   h
0074740    a   r   s       _       N   I   L   ;       r   e   a   d   e
0074760    r   .   r   o   p   e       _       r   o   p   e   ;       r
0075000    e   a   d   e   r   .   i   n   d   e   x       _       i   n
0075020    d   e   x   }   }   ;  \r  \r   S   e   t   I   n   d   e   x
0075040    :       P   R   O   C       [   r   e   a   d   e   r   :    
0075060    R   e   f   ,       i   n   d   e   x   :       C   a   r   d
0075100        _       0   ]       = 376 001  \0 323   P       I   N   L
0075120    I   N   E       {  \r  \t   I   F       G   e   t   I   n   d
0075140    e   x   [   r   e   a   d   e   r   ]   #   i   n   d   e   x
0075160        T   H   E   N       {  \r  \t  \t   r   e   a   d   e   r
0075200    .   c   u   r   r   e   n   t       _       r   e   a   d   e
0075220    r   .   f   i   r   s   t       _       r   e   a   d   e   r
0075240    .   a   f   t   e   r       _       0   ;  \r  \t  \t   r   e
0075260    a   d   e   r   .   c   h   a   r   s       _       N   I   L
0075300    ;       r   e   a   d   e   r   .   i   n   d   e   x       _
0075320        i   n   d   e   x   }   }   ;  \r  \r   B   a   c   k   u
0075340    p   I   n   d   e   x   :       P   R   O   C       [   r   e
0075360    a   d   e   r   :       R   e   f   ,       a   m   o   u   n
0075400    t   :       C   a   r   d   ]       =       I   N   L   I   N
0075420    E       {  \r  \t   S   e   t   I   n   d   e   x   [   r   e
0075440    a   d   e   r   ,       G   e   t   I   n   d   e   x   [   r
0075460    e   a   d   e   r   ]   -   a   m   o   u   n   t   ]       }
0075500    ;  \r  \r   B   u   m   p   I   n   d   e   x 376 001  \0   o
0075520    X   :       P   R   O   C       [   r   e   a   d   e   r   :
0075540        R   e   f   ,       a   m   o   u   n   t   :       C   a
0075560    r   d   ]       =       I   N   L   I   N   E       {  \r  \t
0075600    S   e   t   I   n   d   e   x   [   r   e   a   d   e   r   ,
0075620        G   e   t   I   n   d   e   x   [   r   e   a   d   e   r
0075640    ]   +   a   m   o   u   n   t   ]       }   ;  \r  \r   P   o
0075660    s   i   t   i   o   n   :       P   R   O   C       [   r   e
0075700    a   d   e   r   :       R   e   f   ]  \r  \t   R   E   T   U
0075720    R   N   S       [   r   o   p   e   :       R   o   p   e   ,
0075740        i   n   d   e   x   :       C   a   r   d   ]       =    
0075760    I   N   L   I   N   E       {  \r  \t   R   E   T   U   R   N
0076000        [   r   e   a   d   e   r   .   r   o   p   e   ,       r
0076020    e   a   d   e   r   .   i   n   d   e   x   +   r   e   a   d
0076040    e   r   .   c   u   r   r   e   n   t   -   r   e   a   d   e
0076060    r   .   f   i   r   s   t   ]       }   ;  \r  \r   G   e   t
0076100    R   o   p   e   :       P   R   O   C       [   r   e   a   d
0076120    e 376 001  \0 342 310   r   :       R   e   f   ]  \r  \t   R
0076140    E   T   U   R   N   S       [   r   o   p   e   :       R   o
0076160    p   e   ]       =       I   N   L   I   N   E       {       R
0076200    E   T   U   R   N       [   r   e   a   d   e   r   .   r   o
0076220    p   e   ]       }   ;  \r  \r   G   e   t   I   n   d   e   x
0076240    :       P   R   O   C       [   r   e   a   d   e   r   :    
0076260    R   e   f   ]  \r  \t   R   E   T   U   R   N   S       [   i
0076300    n   d   e   x   :       C   a   r   d   ]       =       I   N
0076320    L   I   N   E  \r  \t  \t   {       R   E   T   U   R   N    
0076340    [   r   e   a   d   e   r   .   i   n   d   e   x   +   r   e
0076360    a   d   e   r   .   c   u   r   r   e   n   t   -   r   e   a
0076400    d   e   r   .   f   i   r   s   t   ]       }   ;  \r  \r   G
0076420    e   t   E   n   d   C   h   a   r   :       P   R   O   C    
0076440    [   r   e   a   d   e   r   :       R   e   f   ]  \r  \t   R
0076460    E   T   U   R   N   S       [   e   n   d   C   h   a   r   :
0076500        C   h   a   r   ]       =       I   N   L   I   N   E    
0076520    {       R   E   T   U 376 001  \0 224 033   R   N       [   r
0076540    e   a   d   e   r   .   e   n   d   C   h   a   r   ]       }
0076560    ;  \r  \r   C   h   a   r   F   o   r   E   n   d   O   f   R
0076600    o   p   e   :       P   R   O   C       [   r   e   a   d   e
0076620    r   :       R   e   f   ]       R   E   T   U   R   N   S    
0076640    [   B   O   O   L   E   A   N   ]       =  \r  \t   I   N   L
0076660    I   N   E       {       R   E   T   U   R   N       [   r   e
0076700    a   d   e   r   .   c   h   a   r   F   o   r   E   n   d   O
0076720    f   R   o   p   e   ]       }   ;  \r  \r   S   e   t   C   h
0076740    a   r   F   o   r   E   n   d   O   f   R   o   p   e   :    
0076760    P   R   O   C       [   r   e   a   d   e   r   :       R   e
0077000    f   ,       c   h   a   r   :       C   h   a   r   ]       =
0077020        I   N   L   I   N   E       {  \r  \t   r   e   a   d   e
0077040    r   .   e   n   d   C   h   a   r       _       c   h   a   r
0077060    ;       r   e   a   d   e   r   .   c   h   a   r   F   o   r
0077100    E   n   d   O   f   R   o   p   e       _       T   R   U   E
0077120        }   ;  \r  \r   C   l   e   a   r   C 376 001  \0   Q   Z
0077140    h   a   r   F   o   r   E   n   d   O   f   R   o   p   e   :
0077160        P   R   O   C       [   r   e   a   d   e   r   :       R
0077200    e   f   ]       =       I   N   L   I   N   E       {  \r  \t
0077220    r   e   a   d   e   r   .   c   h   a   r   F   o   r   E   n
0077240    d   O   f   R   o   p   e       _       F   A   L   S   E    
0077260    }   ;  \r  \r   R   e   a   d   e   r   P   r   o   c   :    
0077300    T   Y   P   E       =       P   R   O   C       [   r   e   a
0077320    d   e   r   :       R   e   f   ]       R   E   T   U   R   N
0077340    S       [   C   h   a   r   ]   ;  \r  \r   G   e   t   :    
0077360    R   e   a   d   e   r   P   r   o   c       =       I   N   L
0077400    I   N   E       {  \r   -   -       g   e   t       c   h   a
0077420    r   a   c   t   e   r   ,       t   h   e   n       i   n   c
0077440    r   e   m   e   n   t       r   e   a   d   e   r       l   o
0077460    c   a   t   i   o   n  \r  \t   c   u   r   r   e   n   t   :
0077500        N   A   T   ;  \r  \t   I   F       (   c   u   r   r   e
0077520    n   t   _   r   e   a   d   e   r   .   c   u   r   r   e   n
0077540  376 001  \0   m 276   t   )       >   =       r   e   a   d   e
0077560    r   .   a   f   t   e   r       T   H   E   N  \r  \t  \t   R
0077600    E   T   U   R   N   [   R   e   a   d   C   h   a   r   [   r
0077620    e   a   d   e   r   ,       g   e   t   ]   ]   ;  \r  \t   r
0077640    e   a   d   e   r   .   c   u   r   r   e   n   t       _    
0077660    c   u   r   r   e   n   t   +   1   ;  \r  \t   R   E   T   U
0077700    R   N   [   r   e   a   d   e   r   .   c   h   a   r   s   [
0077720    c   u   r   r   e   n   t   ]   ]   }   ;  \r  \r   B   a   c
0077740    k   w   a   r   d   s   :       R   e   a   d   e   r   P   r
0077760    o   c       =       I   N   L   I   N   E       {  \r   -   -
0100000        d   e   c   r   e   m   e   n   t       r   e   a   d   e
0100020    r       l   o   c   a   t   i   o   n   ,       t   h   e   n
0100040        g   e   t       c   h   a   r   a   c   t   e   r  \r  \t
0100060    c   u   r   r   e   n   t   :       N   A   T   ;  \r  \t   I
0100100    F       (   c   u   r   r   e   n   t   _   r   e   a   d   e
0100120    r   .   c   u   r   r   e   n   t   )       <   =       r   e
0100140    a   d   e   r   . 376 001  \0 255 365   f   i   r   s   t    
0100160    T   H   E   N  \r  \t  \t   R   E   T   U   R   N   [   R   e
0100200    a   d   C   h   a   r   [   r   e   a   d   e   r   ,       b
0100220    a   c   k   w   a   r   d   s   ]   ]   ;  \r  \t   R   E   T
0100240    U   R   N   [   r   e   a   d   e   r   .   c   h   a   r   s
0100260    [   r   e   a   d   e   r   .   c   u   r   r   e   n   t    
0100300    _       c   u   r   r   e   n   t   -   1   ]   ]   }   ;  \r
0100320   \r   P   e   e   k   :       R   e   a   d   e   r   P   r   o
0100340    c       =       I   N   L   I   N   E       {  \r   -   -    
0100360    g   e   t       c   h   a   r   a   c   t   e   r       w   i
0100400    t   h   o   u   t       i   n   c   r   e   m   e   n   t   i
0100420    n   g       r   e   a   d   e   r       l   o   c   a   t   i
0100440    o   n  \r  \t   c   u   r   r   e   n   t   :       N   A   T
0100460    ;  \r  \t   I   F       (   c   u   r   r   e   n   t   _   r
0100500    e   a   d   e   r   .   c   u   r   r   e   n   t   )       >
0100520    =       r   e   a   d   e   r   .   a   f   t   e   r       T
0100540    H   E   N  \r  \t  \t   R   E   T   U 376 001  \0   o 206   R
0100560    N   [   R   e   a   d   C   h   a   r   [   r   e   a   d   e
0100600    r   ,       p   e   e   k   ]   ]   ;  \r  \t   R   E   T   U
0100620    R   N   [   r   e   a   d   e   r   .   c   h   a   r   s   [
0100640    c   u   r   r   e   n   t   ]   ]   }   ;  \r  \r   P   e   e
0100660    k   B   a   c   k   w   a   r   d   s   :       R   e   a   d
0100700    e   r   P   r   o   c       =       I   N   L   I   N   E    
0100720    {  \r   -   -       l   i   k   e       B   a   c   k   w   a
0100740    r   d   s   ,       b   u   t       d   o   e   s   n   '   t
0100760        c   h   a   n   g   e       p   o   s   i   t   i   o   n
0101000   \r  \t   c   u   r   r   e   n   t   :       N   A   T   ;  \r
0101020   \t   I   F       (   c   u   r   r   e   n   t   _   r   e   a
0101040    d   e   r   .   c   u   r   r   e   n   t   )       <   =    
0101060    r   e   a   d   e   r   .   f   i   r   s   t       T   H   E
0101100    N  \r  \t  \t   R   E   T   U   R   N   [   R   e   a   d   C
0101120    h   a   r   [   r   e   a   d   e   r   ,       p   e   e   k
0101140    b   a   c   k   w   a   r   d   s   ]   ]   ;  \r  \t   R 376
0101160  001  \0 254   `   E   T   U   R   N   [   r   e   a   d   e   r
0101200    .   c   h   a   r   s   [   c   u   r   r   e   n   t   -   1
0101220    ]   ]   }   ;  \r  \r   M   o   d   e   :       P   R   I   V
0101240    A   T   E       T   Y   P   E       =       {   g   e   t   ,
0101260        b   a   c   k   w   a   r   d   s   ,       p   e   e   k
0101300    ,       p   e   e   k   b   a   c   k   w   a   r   d   s   }
0101320    ;  \r   R   e   a   d   C   h   a   r   :       P   R   I   V
0101340    A   T   E       P   R   O   C       [   r   e   a   d   e   r
0101360    :       R   e   f   ,       m   o   d   e   :       M   o   d
0101400    e   ]       R   E   T   U   R   N   S       [   C   h   a   r
0101420    ]   ;  \r  \r   -   -       t   h   e       f   o   l   l   o
0101440    w   i   n   g       o   p   e   r   a   t   i   o   n   s    
0101460    p   r   o   v   i   d   e       f   o   r       r   e   a   d
0101500    i   n   g       b   l   o   c   k   s       o   f       c   h
0101520    a   r   a   c   t   e   r   s  \r  \r   G   e   t   T   e   x
0101540    t   :       P   R   O   C  \r  \t   [   r   e   a   d   e   r
0101560    :       R   e 376 001  \0 354   "   f   ,       b   :       R
0101600    E   F       T   E   X   T   ,       l   e   n   g   t   h   :
0101620        N   A   T       _       L   A   S   T   [   N   A   T   ]
0101640    ]  \r  \t   R   E   T   U   R   N   S       [   c   o   u   n
0101660    t   :       N   A   T   ]   ;  \r  \t   -   -       a   p   p
0101700    e   n   d   s       c   h   a   r   a   c   t   e   r   s    
0101720    t   o       T   E   X   T       f   r   o   m       r   o   p
0101740    e   ;       r   e   t   u   r   n   s       n   u   m   b   e
0101760    r       o   f       c   h   a   r   a   c   t   e   r   s  \r
0102000   \r   B   a   c   k   w   a   r   d   s   G   e   t   T   e   x
0102020    t   :       P   R   O   C  \r  \t   [   r   e   a   d   e   r
0102040    :       R   e   f   ,       b   :       R   E   F       T   E
0102060    X   T   ,       l   e   n   g   t   h   :       N   A   T    
0102100    _       L   A   S   T   [   N   A   T   ]   ]  \r  \t   R   E
0102120    T   U   R   N   S       [   c   o   u   n   t   :       N   A
0102140    T   ]   ;  \r  \t   -   -       a   p   p   e   n   d   s    
0102160    c   h   a   r   a   c   t   e   r 376 001  \0   w   x   s    
0102200    t   o       T   E   X   T       f   r   o   m       r   o   p
0102220    e   ;       r   e   t   u   r   n   s       n   u   m   b   e
0102240    r       o   f       c   h   a   r   a   c   t   e   r   s  \r
0102260   \r   G   e   t   C   h   a   r   s   :       P   R   O   C    
0102300    [  \r  \t   r   e   a   d   e   r   :       R   e   f   ,  \r
0102320   \t   b   :       R   E   F       C   h   a   r   s   A   r   r
0102340    a   y   ,  \r  \t   l   e   n   g   t   h   :       N   A   T
0102360        _       L   A   S   T   [   N   A   T   ]   ,  \r  \t   o
0102400    f   f   s   e   t   :       N   A   T       _       0   ]  \r
0102420   \t   R   E   T   U   R   N   S       [   c   o   u   n   t   :
0102440        N   A   T   ]   ;  \r  \t   -   -       a   p   p   e   n
0102460    d   s       c   h   a   r   a   c   t   e   r   s       t   o
0102500        C   h   a   r   s   A   r   r   a   y       f   r   o   m
0102520        r   o   p   e   ;       r   e   t   u   r   n   s       n
0102540    u   m   b   e   r       o   f       c   h   a   r   a   c   t
0102560    e   r   s  \r  \r   B   a   c   k   w   a   r   d   s 376  \0
0102600  360 314   |   G   e   t   C   h   a   r   s   :       P   R   O
0102620    C       [  \r  \t   r   e   a   d   e   r   :       R   e   f
0102640    ,       b   :       R   E   F       C   h   a   r   s   A   r
0102660    r   a   y   ,  \r  \t   l   e   n   g   t   h   :       N   A
0102700    T       _       L   A   S   T   [   N   A   T   ]   ,  \r  \t
0102720    o   f   f   s   e   t   :       N   A   T       _       0   ]
0102740   \r  \t   R   E   T   U   R   N   S       [   c   o   u   n   t
0102760    :       N   A   T   ]   ;  \r  \r   -   -       T   h   e    
0103000    f   o   l   l   o   w   i   n   g       i   s       a   v   a
0103020    i   l   a   b   l   e       f   o   r       c   r   e   a   t
0103040    i   n   g       r   o   p   e   s       u   s   i   n   g    
0103060    C   h   a   r   s       a   r   r   a   y   s  \r  \r   C   h
0103100    a   r   s   R   o   p   e   :       P   R   O   C       [   C
0103120    h   a   r   s   ]       R   E   T   U   R   N   S       [   R
0103140    o   p   e   ]   ;  \r  \r   E   N   D   .  \r 032   (   6   3
0103160    5   )  \r 377  \0  \0   R   u   n   R   e   a   d   e   r   .
0103200    m   e   s   a  \0 373 226 346 216 303  \0  \0 376 001  \0 273
0103220  341   -   -       R   u   n   R   e   a   d   e   r   .   m   e
0103240    s   a  \r   -   -       w   r   i   t   t   e   n       b   y
0103260        B   i   l   l       P   a   x   t   o   n   ,           M
0103300    a   r   c   h       1   9   8   1  \r   -   -       l   a   s
0103320    t       e   d   i   t       b   y       B   i   l   l       P
0103340    a   x   t   o   n   ,           M   a   r   c   h       2   3
0103360    ,       1   9   8   1           3   :   5   0       P   M  \r
0103400   \r   -   -       R   u   n   R   e   a   d   e   r       p   r
0103420    o   v   i   d   e   s       f   a   s   t       i   n   l   i
0103440    n   e       a   c   c   e   s   s       t   o       l   o   o
0103460    k       r   u   n   s  \r  \t   -   -       d   e   s   i   g
0103500    n   e   d       f   o   r       s   p   e   e   d       i   n
0103520        r   e   a   d   i   n   g       a       s   e   q   u   e
0103540    n   c   e       o   f       r   u   n   s  \r  \t  \t   -   -
0103560        e   i   t   h   e   r       f   o   r   w   a   r   d   s
0103600        o   r       b   a   c   k   w   a   r   d   s  \r  \r   -
0103620    - 376 001  \0 342   "       s   u   p   p   o   r   t   s    
0103640    l   o   o   k   s       a   s       d   e   f   i   n   e   d
0103660        b   y       T   e   x   t   L   o   o   k   s   .   M   e
0103700    s   a  \r  \r   -   -       c   r   e   a   t   e       a    
0103720    r   e   a   d   e   r       b   y       R   u   n   R   e   a
0103740    d   e   r   .   C   r   e   a   t   e  \r  \t   -   -       r
0103760    e   a   d   e   r   :       R   u   n   R   e   a   d   e   r
0104000    .   R   e   f       _       R   u   n   R   e   a   d   e   r
0104020    .   C   r   e   a   t   e   [   ]   ;  \r  \r   -   -       p
0104040    o   s   i   t   i   o   n       i   t       w   h   e   r   e
0104060        y   o   u       w   a   n   t   o       t   o       r   e
0104100    a   d       b   y       S   e   t   P   o   s   i   t   i   o
0104120    n  \r  \t   -   -       R   u   n   R   e   a   d   e   r   .
0104140    S   e   t   P   o   s   i   t   i   o   n   [   r   e   a   d
0104160    e   r   ,       r   u   n   s   ,       i   n   d   e   x   ]
0104200    ;  \r  \t   -   -       w   h   e   r   e       r   u   n   s
0104220        i   s       T   i 376 001  \0 342   -   o   g   a   L   o
0104240    o   k   s       r   u   n   s       t   o       r   e   a   d
0104260        f   r   o   m  \r  \t   -   -       a   n   d       i   n
0104300    d   e   x       i   s       t   h   e       i   n   i   t   i
0104320    a   l       p   o   s   i   t   i   o   n       f   o   r    
0104340    t   h   e       r   e   a   d   e   r  \r  \t   -   -       y
0104360    o   u       c   a   n       r   e   p   o   s   i   t   i   o
0104400    n       a       r   e   a   d   e   r       a   t       a   n
0104420    y       t   i   m   e  \r  \r   -   -       r   e   a   d    
0104440    i   t   s       c   u   r   r   e   n   t       p   o   s   i
0104460    t   i   o   n       i   n       t   h   e       f   o   l   l
0104500    o   w   i   n   g       w   a   y   s   :  \r  \t   -   -    
0104520    [   r   u   n   s   ,       i   n   d   e   x   ]       _    
0104540    R   u   n   R   e   a   d   e   r   .   P   o   s   i   t   i
0104560    o   n   [   r   e   a   d   e   r   ]   ;  \r  \t   -   -    
0104600    r   u   n   s       _       R   u   n   R   e   a   d   e   r
0104620    .   G   e   t   R   u   n   s   [   r   e 376 001  \0 035 350
0104640    a   d   e   r   ]   ;  \r  \t   -   -       i   n   d   e   x
0104660        _       R   u   n   R   e   a   d   e   r   .   G   e   t
0104700    I   n   d   e   x   [   r   e   a   d   e   r   ]   ;  \r  \r
0104720    -   -       t   o       r   e   a   d       i   n       a   s
0104740    c   e   n   d   i   n   g       o   r   d   e   r       (   l
0104760    e   f   t       t   o       r   i   g   h   t   )  \r  \t   -
0105000    -       i   n   i   t   i   a   l   i   z   e       p   o   s
0105020    i   t   i   o   n       b   e   f   o   r   e       f   i   r
0105040    s   t       c   h   a   r   a   c   t   e   r       t   o    
0105060    b   e       r   e   a   d  \r  \t  \t   -   -       f   o   r
0105100        e   x   a   m   p   l   e   ,       u   s   e       0    
0105120    t   o       s   t   a   r   t       a   t       b   e   g   i
0105140    n   n   i   n   g  \r  \t   -   -       t   h   e   n       c
0105160    a   l   l       G   e   t       w   h   i   c   h       r   e
0105200    a   d   s       t   o       t   h   e       r   i   g   h   t
0105220        a   n   d       i   n   c   r   e   m   e   n   t   s    
0105240  376 001  \0   4 237   t   h   e       p   o   s   i   t   i   o
0105260    n  \r  \t  \t   -   -       [   c   o   u   n   t   ,       l
0105300    o   o   k   s   ]       _       R   u   n   R   e   a   d   e
0105320    r   .   G   e   t   [   r   e   a   d   e   r   ]   ;  \r  \r
0105340    -   -       t   o       r   e   a   d       i   n       d   e
0105360    s   c   e   n   d   i   n   g       o   r   d   e   r       (
0105400    r   i   g   h   t       t   o       l   e   f   t   )  \r  \t
0105420    -   -       i   n   i   t   i   a   l   i   z   e       p   o
0105440    s   i   t   i   o   n       a   f   t   e   r       f   i   r
0105460    s   t       r   u   n       t   o       b   e       r   e   a
0105500    d  \r  \t  \t   -   -       f   o   r       e   x   a   m   p
0105520    l   e   ,       u   s   e       s   i   z   e       o   f    
0105540    r   o   p   e       t   o       s   t   a   r   t       a   t
0105560        e   n   d  \r  \t   -   -       t   h   e   n       c   a
0105600    l   l       B   a   c   k   w   a   r   d   s       w   h   i
0105620    c   h       r   e   a   d   s       t   o       t   h   e    
0105640    l   e   f   t     376 001  \0 377 207   a   n   d       d   e
0105660    c   r   e   m   e   n   t   s       t   h   e       p   o   s
0105700    i   t   i   o   n  \r  \t  \t   -   -       [   c   o   u   n
0105720    t   ,       l   o   o   k   s   ]       _       R   u   n   R
0105740    e   a   d   e   r   .   B   a   c   k   w   a   r   d   s   [
0105760    r   e   a   d   e   r   ]   ;  \r  \r   -   -       c   a   n
0106000        a   l   s   o       g   e   t       a       r   u   n    
0106020    w   i   t   h   o   u   t       c   h   a   n   g   i   n   g
0106040        t   h   e       r   e   a   d   e   r       p   o   s   i
0106060    t   i   o   n  \r  \t   -   -       t   o       l   o   o   k
0106100        a   t       t   h   e       n   e   x   t       r   u   n
0106120        t   h   a   t       G   e   t       w   o   u   l   d    
0106140    r   e   t   u   r   n   ,       c   a   l   l       P   e   e
0106160    k  \r  \t  \t   -   -       [   c   o   u   n   t   ,       l
0106200    o   o   k   s   ]       _       R   u   n   R   e   a   d   e
0106220    r   .   P   e   e   k   [   r   e   a   d   e   r   ]   ;  \r
0106240   \t   -   -       t   o       l   o   o 376 001  \0 205 027   k
0106260        a   t       w   h   a   t       B   a   c   k   w   a   r
0106300    d   s       w   o   u   l   d       r   e   t   u   r   n   ,
0106320        c   a   l   l       P   e   e   k   B   a   c   k   w   a
0106340    r   d   s  \r  \t  \t   -   -       [   c   o   u   n   t   ,
0106360        l   o   o   k   s   ]       _       R   u   n   R   e   a
0106400    d   e   r   .   P   e   e   k   B   a   c   k   w   a   r   d
0106420    s   [   r   e   a   d   e   r   ]   ;  \r  \r   -   -       c
0106440    a   n       i   n   t   e   r   m   i   x       r   e   a   d
0106460    i   n   g       o   r       p   e   e   k   i   n   g       t
0106500    o       l   e   f   t       a   n   d       r   i   g   h   t
0106520   \r  \t   -   -       d   o   n   '   t       n   e   e   d    
0106540    t   o       r   e   i   n   i   t   i   a   l   i   z   e    
0106560    t   h   e       r   e   a   d   e   r       t   o       c   h
0106600    a   n   g   e       d   i   r   e   c   t   i   o   n  \r  \r
0106620    -   -       i   f       r   e   a   d       o   f   f       e
0106640    i   t   h   e   r       e   n   d   ,       y   o   u     376
0106660  001  \0   1  \v   w   i   l   l       g   e   t       a   n    
0106700    e   r   r   o   r  \r  \r   D   I   R   E   C   T   O   R   Y
0106720   \r   T   e   x   t   L   o   o   k   s   ;  \r  \r   R   u   n
0106740    R   e   a   d   e   r   :       D   E   F   I   N   I   T   I
0106760    O   N   S  \r  \t   S   H   A   R   E   S       T   e   x   t
0107000    L   o   o   k   s       =  \r   B   E   G   I   N       O   P
0107020    E   N       l   o   o   k   s   I   :   T   e   x   t   L   o
0107040    o   k   s   ;  \r  \r   -   -       *   *   *   *   *       R
0107060    u   n   R   e   a   d   e   r       D   e   c   l   a   r   a
0107100    t   i   o   n   s  \r  \r   B   a   s   e   :       T   Y   P
0107120    E       =       l   o   o   k   s   I   .   B   a   s   e   R
0107140    u   n   s   ;  \r   L   o   o   k   s   :       T   Y   P   E
0107160        =       l   o   o   k   s   I   .   L   o   o   k   s   ;
0107200   \r   n   o   L   o   o   k   s   :       L   o   o   k   s    
0107220    =       l   o   o   k   s   I   .   n   o   L   o   o   k   s
0107240    ;  \r   R   u   n   s   :       T   Y   P   E       =       l
0107260    o   o   k   s 376 001  \0 372 342   I   .   R   u   n   s   ;
0107300   \r  \r   N   o   M   o   r   e   R   u   n   s   :       E   R
0107320    R   O   R   ;       -   -       i   f       t   r   y       t
0107340    o       r   e   a   d       o   f   f       e   n   d  \r  \r
0107360    R   e   f   :       T   Y   P   E       =       R   E   F    
0107400    B   o   d   y   ;  \r   B   o   d   y   :       T   Y   P   E
0107420        =       P   R   I   V   A   T   E       R   E   C   O   R
0107440    D       [  \r  \t   c   u   r   r   e   n   t   :       N   A
0107460    T       _       0   ,       -   -       i   n   d   e   x    
0107500    o   f       c   u   r   r   e   n   t       r   u   n  \r  \t
0107520    f   i   r   s   t   :       N   A   T       _       0   ,    
0107540    -   -       i   n   d   e   x       o   f       f   i   r   s
0107560    t       r   u   n       t   o       r   e   a   d  \r  \t   a
0107600    f   t   e   r   :       N   A   T       _       0   ,       -
0107620    -       i   n   d   e   x       b   e   y   o   n   d       l
0107640    a   s   t       r   u   n       t   o       r   e   a   d  \r
0107660   \t   b   a   s   e   :       B   a 376 001  \0   N   _   s   e
0107700    ,       -   -       c   u   r   r   e   n   t       a   r   r
0107720    a   y       o   f       r   u   n   s  \r  \t   c   h   a   n
0107740    g   e   L   o   o   k   s   :       B   O   O   L   E   A   N
0107760        _       F   A   L   S   E   ,       -   -       i   f    
0110000    n   e   e   d       t   o       c   h   a   n   g   e       l
0110020    o   o   k   s       f   r   o   m       b   a   s   e  \r  \t
0110040    r   e   m   o   v   e   ,       a   d   d   :       L   o   o
0110060    k   s       _       n   o   L   o   o   k   s   ,       -   -
0110100        t   h   e       c   h   a   n   g   e  \r  \t   r   u   n
0110120    s   :       R   u   n   s       _       N   I   L   ,       -
0110140    -       r   u   n   s       t   h   a   t       w   e       a
0110160    r   e       r   e   a   d   i   n   g  \r  \t   i   n   d   e
0110200    x   :       C   a   r   d       _       0       -   -       i
0110220    n   d   e   x       i   n       r   u   n   s  \r  \t   ]   ;
0110240   \r  \r   C   a   r   d   :       T   Y   P   E       =       L
0110260    O   N   G       C   A   R   D   I   N   A   L   ;  \r 376 001
0110300   \0 262   n  \r   -   -       *   *   *   *   *       R   u   n
0110320    R   e   a   d   e   r       O   p   e   r   a   t   i   o   n
0110340    s  \r  \r   C   r   e   a   t   e   :       P   R   O   C    
0110360    R   E   T   U   R   N   S       [   R   e   f   ]       =    
0110400    I   N   L   I   N   E       {       R   E   T   U   R   N    
0110420    [   N   E   W   [   B   o   d   y   ]   ]       }   ;  \r  \r
0110440    S   e   t   P   o   s   i   t   i   o   n   :       P   R   O
0110460    C       [   r   e   a   d   e   r   :       R   e   f   ,    
0110500    r   u   n   s   :       R   u   n   s   ,       i   n   d   e
0110520    x   :       C   a   r   d       _       0   ]       =  \r  \t
0110540    I   N   L   I   N   E       {  \r  \t   I   F       r   u   n
0110560    s       #       G   e   t   R   u   n   s   [   r   e   a   d
0110600    e   r   ]       O   R       i   n   d   e   x       #       G
0110620    e   t   I   n   d   e   x   [   r   e   a   d   e   r   ]    
0110640    T   H   E   N  \r  \t  \t   r   e   a   d   e   r   ^       _
0110660        [   0   ,   0   ,   0   ,   N   I   L   ,   F   A   L   S
0110700    E   ,   n 376 001  \0 352       o   L   o   o   k   s   ,   n
0110720    o   L   o   o   k   s   ,   r   u   n   s   ,   i   n   d   e
0110740    x   ]   ;  \r  \t   }   ;  \r  \r   S   e   t   I   n   d   e
0110760    x   :       P   R   O   C       [   r   e   a   d   e   r   :
0111000        R   e   f   ,       i   n   d   e   x   :       C   a   r
0111020    d       _       0   ]       =       I   N   L   I   N   E    
0111040    {  \r  \t   I   F       i   n   d   e   x       #       G   e
0111060    t   I   n   d   e   x   [   r   e   a   d   e   r   ]       T
0111100    H   E   N       {  \r  \t  \t   r   u   n   s   :       R   u
0111120    n   s       _       G   e   t   R   u   n   s   [   r   e   a
0111140    d   e   r   ]   ;  \r  \t  \t   r   e   a   d   e   r   ^    
0111160    _       [   0   ,   0   ,   0   ,   N   I   L   ,   F   A   L
0111200    S   E   ,   n   o   L   o   o   k   s   ,   n   o   L   o   o
0111220    k   s   ,   r   u   n   s   ,   i   n   d   e   x   ]   }   }
0111240    ;  \r  \r   B   a   c   k   u   p   I   n   d   e   x   :    
0111260    P   R   O   C       [   r   e   a   d   e   r   :       R   e
0111300    f   ,       a   m   o   u   n 376 001  \0   [ 314   t   :    
0111320    C   a   r   d   ]       =       I   N   L   I   N   E       {
0111340   \r  \t   S   e   t   I   n   d   e   x   [   r   e   a   d   e
0111360    r   ,       G   e   t   I   n   d   e   x   [   r   e   a   d
0111400    e   r   ]   -   a   m   o   u   n   t   ]       }   ;  \r  \r
0111420    B   u   m   p   I   n   d   e   x   :       P   R   O   C    
0111440    [   r   e   a   d   e   r   :       R   e   f   ,       a   m
0111460    o   u   n   t   :       C   a   r   d   ]       =       I   N
0111500    L   I   N   E       {  \r  \t   S   e   t   I   n   d   e   x
0111520    [   r   e   a   d   e   r   ,       G   e   t   I   n   d   e
0111540    x   [   r   e   a   d   e   r   ]   +   a   m   o   u   n   t
0111560    ]       }   ;  \r  \r   P   o   s   i   t   i   o   n   :    
0111600    P   R   O   C       [   r   e   a   d   e   r   :       R   e
0111620    f   ]  \r  \t   R   E   T   U   R   N   S       [   r   u   n
0111640    s   :       R   u   n   s   ,       i   n   d   e   x   :    
0111660    C   a   r   d   ]       =       I   N   L   I   N   E       {
0111700   \r   -   -       r   e   t   u   r   n   s       t 376 001  \0
0111720  374 362   h   e       c   u   r   r   e   n   t       p   o   s
0111740    i   t   i   o   n       o   f       t   h   e       r   e   a
0111760    d   e   r  \r  \t   R   E   T   U   R   N       [   G   e   t
0112000    R   u   n   s   [   r   e   a   d   e   r   ]   ,       G   e
0112020    t   I   n   d   e   x   [   r   e   a   d   e   r   ]   ]    
0112040    }   ;  \r  \r   G   e   t   R   u   n   s   :       P   R   O
0112060    C       [   r   e   a   d   e   r   :       R   e   f   ]  \r
0112100   \t   R   E   T   U   R   N   S       [   r   u   n   s   :    
0112120    R   u   n   s   ]       =       I   N   L   I   N   E       {
0112140        R   E   T   U   R   N       [   r   e   a   d   e   r   .
0112160    r   u   n   s   ]       }   ;  \r  \r   G   e   t   I   n   d
0112200    e   x   :       P   R   O   C       [   r   e   a   d   e   r
0112220    :       R   e   f   ]       R   E   T   U   R   N   S       [
0112240    i   n   d   e   x   :       C   a   r   d   ]   ;  \r  \r   R
0112260    e   a   d   e   r   P   r   o   c   :       T   Y   P   E    
0112300    =       P   R   O   C       [   r   e   a   d   e   r   :    
0112320    R   e 376 001  \0 367 220   f   ]       R   E   T   U   R   N
0112340    S       [   c   o   u   n   t   :       C   a   r   d   ,    
0112360    l   o   o   k   s   :       L   o   o   k   s   ]   ;  \r  \r
0112400    G   e   t   :       R   e   a   d   e   r   P   r   o   c    
0112420    =       I   N   L   I   N   E       {  \r   -   -       g   e
0112440    t       r   u   n   ,       t   h   e   n       i   n   c   r
0112460    e   m   e   n   t       r   e   a   d   e   r       l   o   c
0112500    a   t   i   o   n  \r  \t   c   u   r   r   e   n   t   :    
0112520    N   A   T   ;  \r  \t   b   a   s   e   :       B   a   s   e
0112540    ;  \r  \t   I   F       (   c   u   r   r   e   n   t   _   r
0112560    e   a   d   e   r   .   c   u   r   r   e   n   t   )       >
0112600    =       r   e   a   d   e   r   .   a   f   t   e   r       T
0112620    H   E   N  \r  \t  \t   {       [   c   o   u   n   t   ,    
0112640    l   o   o   k   s   ]       _       R   e   a   d   R   u   n
0112660    [   r   e   a   d   e   r   ,       g   e   t   ]   ;       R
0112700    E   T   U   R   N       }   ;  \r  \t   I   F       r   e   a
0112720    d   e   r   .   c   h   a 376 001  \0 001 366   n   g   e   L
0112740    o   o   k   s       T   H   E   N      \r  \t  \t   {       [
0112760    c   o   u   n   t   ,       l   o   o   k   s   ]       _    
0113000    R   e   a   d   C   h   a   n   g   e   d   R   u   n   [   r
0113020    e   a   d   e   r   ,       g   e   t   ]   ;       R   E   T
0113040    U   R   N       }   ;  \r  \t   r   e   a   d   e   r   .   c
0113060    u   r   r   e   n   t       _       c   u   r   r   e   n   t
0113100    +   1   ;  \r  \t   b   a   s   e       _       r   e   a   d
0113120    e   r   .   b   a   s   e   ;  \r  \t   c   o   u   n   t    
0113140    _       I   F       c   u   r   r   e   n   t   =   0       T
0113160    H   E   N       b   a   s   e   [   0   ]   .   a   f   t   e
0113200    r       E   L   S   E  \r  \t  \t  \t  \t  \t   b   a   s   e
0113220    [   c   u   r   r   e   n   t   ]   .   a   f   t   e   r   -
0113240    b   a   s   e   [   c   u   r   r   e   n   t   -   1   ]   .
0113260    a   f   t   e   r   ;  \r  \t   l   o   o   k   s       _    
0113300    b   a   s   e   [   c   u   r   r   e   n   t   ]   .   l   o
0113320    o   k   s       }   ;  \r  \r   B   a   c   k 376 001  \0   j
0113340    ?   w   a   r   d   s   :       R   e   a   d   e   r   P   r
0113360    o   c       =       I   N   L   I   N   E       {  \r   -   -
0113400        d   e   c   r   e   m   e   n   t       r   e   a   d   e
0113420    r       l   o   c   a   t   i   o   n   ,       t   h   e   n
0113440        g   e   t       r   u   n  \r  \t   c   u   r   r   e   n
0113460    t   :       N   A   T   ;  \r  \t   b   a   s   e   :       B
0113500    a   s   e   ;  \r  \t   I   F       (   c   u   r   r   e   n
0113520    t   _   r   e   a   d   e   r   .   c   u   r   r   e   n   t
0113540    )       <   =       r   e   a   d   e   r   .   f   i   r   s
0113560    t       T   H   E   N  \r  \t  \t   {       [   c   o   u   n
0113600    t   ,       l   o   o   k   s   ]       _       R   e   a   d
0113620    R   u   n   [   r   e   a   d   e   r   ,       b   a   c   k
0113640    w   a   r   d   s   ]   ;       R   E   T   U   R   N       }
0113660    ;  \r  \t   I   F       r   e   a   d   e   r   .   c   h   a
0113700    n   g   e   L   o   o   k   s       T   H   E   N      \r  \t
0113720   \t   {       [   c   o   u   n   t   ,       l   o   o   k   s
0113740    ] 376 001  \0   e   O       _       R   e   a   d   C   h   a
0113760    n   g   e   d   R   u   n   [   r   e   a   d   e   r   ,    
0114000    b   a   c   k   w   a   r   d   s   ]   ;       R   E   T   U
0114020    R   N       }   ;  \r  \t   b   a   s   e       _       r   e
0114040    a   d   e   r   .   b   a   s   e   ;  \r  \t   c   o   u   n
0114060    t       _       I   F       (   r   e   a   d   e   r   .   c
0114100    u   r   r   e   n   t       _       c   u   r   r   e   n   t
0114120        _       c   u   r   r   e   n   t   -   1   )   =   0    
0114140    T   H   E   N       b   a   s   e   [   0   ]   .   a   f   t
0114160    e   r       E   L   S   E  \r  \t  \t  \t  \t  \t   b   a   s
0114200    e   [   c   u   r   r   e   n   t   ]   .   a   f   t   e   r
0114220    -   b   a   s   e   [   c   u   r   r   e   n   t   -   1   ]
0114240    .   a   f   t   e   r   ;  \r  \t   l   o   o   k   s       _
0114260        b   a   s   e   [   c   u   r   r   e   n   t   ]   .   l
0114300    o   o   k   s       }   ;  \r  \r   P   e   e   k   :       R
0114320    e   a   d   e   r   P   r   o   c       =       I   N   L   I
0114340    N   E       {  \r   - 376 001  \0 357   e   -       g   e   t
0114360        r   u   n       w   i   t   h   o   u   t       i   n   c
0114400    r   e   m   e   n   t   i   n   g       r   e   a   d   e   r
0114420        l   o   c   a   t   i   o   n  \r  \t   c   u   r   r   e
0114440    n   t   :       N   A   T   ;  \r  \t   b   a   s   e   :    
0114460    B   a   s   e   ;  \r  \t   I   F       (   c   u   r   r   e
0114500    n   t   _   r   e   a   d   e   r   .   c   u   r   r   e   n
0114520    t   )       >   =       r   e   a   d   e   r   .   a   f   t
0114540    e   r       T   H   E   N  \r  \t  \t   {       [   c   o   u
0114560    n   t   ,       l   o   o   k   s   ]       _       R   e   a
0114600    d   R   u   n   [   r   e   a   d   e   r   ,       p   e   e
0114620    k   ]   ;       R   E   T   U   R   N       }   ;  \r  \t   I
0114640    F       r   e   a   d   e   r   .   c   h   a   n   g   e   L
0114660    o   o   k   s       T   H   E   N      \r  \t  \t   {       [
0114700    c   o   u   n   t   ,       l   o   o   k   s   ]       _    
0114720    R   e   a   d   C   h   a   n   g   e   d   R   u   n   [   r
0114740    e   a   d   e   r   ,       p   e   e   k 376 001  \0 223   D
0114760    ]   ;       R   E   T   U   R   N       }   ;  \r  \t   b   a
0115000    s   e       _       r   e   a   d   e   r   .   b   a   s   e
0115020    ;  \r  \t   c   o   u   n   t       _       I   F       c   u
0115040    r   r   e   n   t   =   0       T   H   E   N       b   a   s
0115060    e   [   0   ]   .   a   f   t   e   r       E   L   S   E  \r
0115100   \t  \t  \t  \t  \t   b   a   s   e   [   c   u   r   r   e   n
0115120    t   ]   .   a   f   t   e   r   -   b   a   s   e   [   c   u
0115140    r   r   e   n   t   -   1   ]   .   a   f   t   e   r   ;  \r
0115160   \t   l   o   o   k   s       _       b   a   s   e   [   c   u
0115200    r   r   e   n   t   ]   .   l   o   o   k   s       }   ;  \r
0115220   \r   P   e   e   k   B   a   c   k   w   a   r   d   s   :    
0115240    R   e   a   d   e   r   P   r   o   c       =       I   N   L
0115260    I   N   E       {  \r   -   -       l   i   k   e       B   a
0115300    c   k   w   a   r   d   s   ,       b   u   t       d   o   e
0115320    s   n   '   t       c   h   a   n   g   e       p   o   s   i
0115340    t   i   o   n  \r  \t   c   u   r   r   e   n   t   :       N
0115360  376 001  \0 027 224   A   T   ;  \r  \t   b   a   s   e   :    
0115400    B   a   s   e   ;  \r  \t   I   F       (   c   u   r   r   e
0115420    n   t   _   r   e   a   d   e   r   .   c   u   r   r   e   n
0115440    t   )       <   =       r   e   a   d   e   r   .   f   i   r
0115460    s   t       T   H   E   N  \r  \t  \t   {       [   c   o   u
0115500    n   t   ,       l   o   o   k   s   ]       _       R   e   a
0115520    d   R   u   n   [   r   e   a   d   e   r   ,       b   a   c
0115540    k   w   a   r   d   s   ]   ;       R   E   T   U   R   N    
0115560    }   ;  \r  \t   I   F       r   e   a   d   e   r   .   c   h
0115600    a   n   g   e   L   o   o   k   s       T   H   E   N      \r
0115620   \t  \t   {       [   c   o   u   n   t   ,       l   o   o   k
0115640    s   ]       _       R   e   a   d   C   h   a   n   g   e   d
0115660    R   u   n   [   r   e   a   d   e   r   ,       b   a   c   k
0115700    w   a   r   d   s   ]   ;       R   E   T   U   R   N       }
0115720    ;  \r  \t   b   a   s   e       _       r   e   a   d   e   r
0115740    .   b   a   s   e   ;  \r  \t   c   o   u   n   t       _    
0115760    I   F       (   c 376 001  \0 250 210   u   r   r   e   n   t
0116000        _       c   u   r   r   e   n   t   -   1   )   =   0    
0116020    T   H   E   N       b   a   s   e   [   0   ]   .   a   f   t
0116040    e   r       E   L   S   E  \r  \t  \t  \t  \t  \t   b   a   s
0116060    e   [   c   u   r   r   e   n   t   ]   .   a   f   t   e   r
0116100    -   b   a   s   e   [   c   u   r   r   e   n   t   -   1   ]
0116120    .   a   f   t   e   r   ;  \r  \t   l   o   o   k   s       _
0116140        b   a   s   e   [   c   u   r   r   e   n   t   ]   .   l
0116160    o   o   k   s       }   ;  \r  \r   M   o   d   e   :       P
0116200    R   I   V   A   T   E       T   Y   P   E       =       {   g
0116220    e   t   ,       b   a   c   k   w   a   r   d   s   ,       p
0116240    e   e   k   ,       p   e   e   k   b   a   c   k   w   a   r
0116260    d   s   }   ;  \r   R   e   a   d   e   r   E   s   c   P   r
0116300    o   c   :       T   Y   P   E       =       P   R   O   C    
0116320    [   r   e   a   d   e   r   :       R   e   f   ,       m   o
0116340    d   e   :       M   o   d   e   ]       R   E   T   U   R   N
0116360    S       [   C   a   r   d   ,       L 376  \0   D   d 267   o
0116400    o   k   s   ]   ;  \r   R   e   a   d   R   u   n   ,       R
0116420    e   a   d   C   h   a   n   g   e   d   R   u   n   :       P
0116440    R   I   V   A   T   E       R   e   a   d   e   r   E   s   c
0116460    P   r   o   c   ;  \r  \r   E   N   D   .  \r 032   (   6   3
0116500    5   )  \r 377  \0  \0   T   e   x   t   E   d   i   t   .   m
0116520    e   s   a  \0 373 226 341   X   "  \0  \0 376 001  \0 307 243
0116540    -   -       T   e   x   t   E   d   i   t   .   m   e   s   a
0116560   \r   -   -       w   r   i   t   t   e   n       b   y       B
0116600    i   l   l       P   a   x   t   o   n   ,       F   e   b   r
0116620    u   a   r   y       1   9   8   1  \r   -   -       l   a   s
0116640    t       e   d   i   t       b   y       B   i   l   l       P
0116660    a   x   t   o   n   ,       M   a   r   c   h       1   9   ,
0116700        1   9   8   1           4   :   5   5       P   M  \r  \r
0116720    -   -       T   h   i   s       p   a   c   k   a   g   e    
0116740    p   r   o   v   i   d   e   s       e   d   i   t   i   n   g
0116760        o   f       T   e   x   t       n   o   d   e   s       a
0117000    s       u   s   e   d       i   n       T   i   o   g   a  \r
0117020   \t   -   -       a       t   e   x   t       n   o   d   e    
0117040    c   o   n   t   a   i   n   s       t   h   e       f   o   l
0117060    l   o   w   i   n   g       e   l   e   m   e   n   t   s   :
0117100   \r  \t  \t   -   -       a       r   o   p   e       (   s   u
0117120    p   p   l   i   e   d       b   y       T   e   x   t   R   o
0117140  376 001  \0 337 200   p   e   .   M   e   s   a   )  \r  \t  \t
0117160    -   -       r   u   n   s       o   f       l   o   o   k   s
0117200        (   s   u   p   p   l   i   e   d       b   y       T   i
0117220    o   g   a   L   o   o   k   s   .   M   e   s   a   )  \r  \t
0117240   \t   -   -       "   p   e   r   s   i   s   t   e   n   t   "
0117260        a   d   d   r   e   s   s   e   s       f   o   r       l
0117300    o   c   a   t   i   o   n   s       w   i   t   h   i   n    
0117320    t   h   e       n   o   d   e  \r  \t  \t   -   -       a    
0117340    p   r   o   p   e   r   t   y       l   i   s   t  \r  \r   -
0117360    -       E   d   i   t   i   n   g  \r  \t   -   -       O   p
0117400    e   r   a   t   i   o   n   s       a   r   e       a   v   a
0117420    i   l   a   b   l   e       t   o       e   d   i   t       t
0117440    h   e       c   o   n   t   e   n   t   s       o   f       t
0117460    e   x   t       n   o   d   e   s  \r  \t  \t   -   -       u
0117500    n   l   i   k   e       r   o   p   e   s       o   r       r
0117520    u   n   s       o   f       l   o   o   k   s   ,       t   e
0117540    x   t       n   o 376 001  \0 203 022   d   e   s       a   r
0117560    e       m   u   t   a   b   l   e  \r  \r   -   -       P   e
0117600    r   s   i   s   t   e   n   t       a   d   d   r   e   s   s
0117620    e   s  \r  \t   -   -       Y   o   u       c   a   n       a
0117640    s   s   o   c   i   a   t   e       a   n       a   d   d   r
0117660    e   s   s       w   i   t   h       a       l   o   c   a   t
0117700    i   o   n       i   n       a       t   e   x   t       n   o
0117720    d   e  \r  \t   -   -       t   h   e       a   d   d   r   e
0117740    s   s       p   e   r   s   i   s   t   s       a   t       t
0117760    h   e       s   a   m   e       l   o   c   a   t   i   o   n
0120000        e   v   e   n       i   f       t   h   e       n   o   d
0120020    e       i   s       e   d   i   t   e   d  \r  \t   -   -    
0120040    t   h   e       a   d   d   r   e   s   s       i   s       a
0120060    n       a   r   b   i   t   r   a   r   y       R   E   F    
0120100    A   N   Y       s   u   p   p   l   i   e   d       b   y    
0120120    t   h   e       c   l   i   e   n   t       p   r   o   g   r
0120140    a   m      \r  \r   -   -       P   r 376 001  \0   9  \b   o
0120160    p   e   r   t   y       l   i   s   t  \r  \t   -   -       E
0120200    a   c   h       n   o   d   e       i   n   c   l   u   d   e
0120220    s       a       p   r   o   p   e   r   t   y       l   i   s
0120240    t      \r  \t   -   -       T   h   e       k   e   y   s    
0120260    a   n   d       t   h   e       v   a   l   u   e   s       a
0120300    r   e       a   r   b   i   t   r   a   r   y       R   E   F
0120320        A   N   Y   '   s  \r  \r   -   -       F   i   l   i   n
0120340    g  \r  \t   -   -       T   h   e   r   e       a   r   e    
0120360    o   p   e   r   a   t   i   o   n   s       t   o       r   e
0120400    a   d       a   n   d       w   r   i   t   e       f   i   l
0120420    e   s       c   o   n   t   a   i   n   i   n   g       t   e
0120440    x   t       n   o   d   e   s  \r  \t   -   -       T   h   e
0120460        c   h   a   r   a   c   t   e   r   s       g   o       a
0120500    t       t   h   e       f   r   o   n   t       o   f       t
0120520    h   e       f   i   l   e   ,       f   o   l   l   o   w   e
0120540    d       b   y       0   '   s  \r  \t  \t   -   -       t 376
0120560  001  \0   v 345   h   e   n       t   h   e       i   n   f   o
0120600    r   m   a   t   i   o   n       a   b   o   u   t       l   o
0120620    o   k   s   ,       e   t   c   .  \r  \t  \t  \t   -   -    
0120640    a   n   d       f   i   n   a   l   l   y       a       p   a
0120660    s   s   w   o   r   d       a   n   d       a       p   o   i
0120700    n   t   e   r       t   o       t   h   e       e   n   d    
0120720    o   f       t   h   e       t   e   x   t   .  \r  \t   -   -
0120740        T   h   u   s       p   r   o   g   r   a   m   s       t
0120760    h   a   t       s   i   m   p   l   y       w   a   n   t    
0121000    t   o       l   o   o   k       a   t       t   h   e       c
0121020    h   a   r   a   c   t   e   r   s       c   a   n       r   e
0121040    a   d       u   p       t   o       0   '   s  \r  \r   -   -
0121060        E   d   i   t       n   o   t   i   f   i   c   a   t   i
0121100    o   n       p   r   o   c   e   d   u   r   e   s  \r  \t   -
0121120    -       C   l   i   e   n   t   '   s       c   a   n       r
0121140    e   g   i   s   t   e   r       p   r   o   c   e   d   u   r
0121160    e   s       t 376 001  \0 303 363   o       b   e       c   a
0121200    l   l   e   d       b   e   f   o   r   e   /   a   f   t   e
0121220    r       e   d   i   t   s  \r  \t   -   -       T   h   e    
0121240    d   e   t   a   i   l   s       a   r   e       i   n       E
0121260    d   i   t   N   o   t   i   f   y   .   M   e   s   a      \r
0121300   \r  \r   D   I   R   E   C   T   O   R   Y  \r   -   -   F   i
0121320    l   e   ,  \r   T   e   x   t   R   o   p   e   ,  \r   T   e
0121340    x   t   L   o   o   k   s   ,  \r   T   e   x   t   N   o   d
0121360    e   ,  \r   N   o   d   e   P   r   o   p   s   ,  \r   C   a
0121400    r   d   A   d   d   r   s   ,  \r   N   o   d   e   A   d   d
0121420    r   s   ;  \r  \r   T   e   x   t   E   d   i   t   :       D
0121440    E   F   I   N   I   T   I   O   N   S  \r  \t   I   M   P   O
0121460    R   T   S       C   a   r   d   A   d   d   r   s   ,       N
0121500    o   d   e   A   d   d   r   s   ,       N   o   d   e   P   r
0121520    o   p   s   ,       T   e   x   t   L   o   o   k   s   ,    
0121540    T   e   x   t   R   o   p   e       =  \r   B   E   G   I   N
0121560   \r   O   P   E   N  \r  \t   n   o 376 001  \0 303 026   d   e
0121600    I   :       T   e   x   t   N   o   d   e   ,  \r  \t   p   r
0121620    o   p   s   I   :       N   o   d   e   P   r   o   p   s   ,
0121640   \r  \t   a   d   d   r   s   I   :       N   o   d   e   A   d
0121660    d   r   s   ,  \r  \t   c   a   r   d   A   d   d   r   :    
0121700    C   a   r   d   A   d   d   r   s   ,  \r  \t   r   o   p   e
0121720    I   :       T   e   x   t   R   o   p   e   ,  \r  \t   l   o
0121740    o   k   s   I   :       T   e   x   t   L   o   o   k   s   ;
0121760   \r  \r   R   e   f   :       T   Y   P   E       =       n   o
0122000    d   e   I   .   R   e   f   ;  \r   R   e   f   T   e   x   t
0122020    N   o   d   e   :       T   Y   P   E       =       n   o   d
0122040    e   I   .   R   e   f   T   e   x   t   N   o   d   e   ;  \r
0122060    R   o   p   e   :       T   Y   P   E       =       r   o   p
0122100    e   I   .   R   o   p   e   ;  \r  \r   L   o   o   k   s   :
0122120        T   Y   P   E       =       l   o   o   k   s   I   .   L
0122140    o   o   k   s   ;  \r   n   o   L   o   o   k   s   :       L
0122160    o   o   k   s       =       l   o   o   k   s   I   . 376 001
0122200   \0 355   ]   n   o   L   o   o   k   s   ;  \r   a   l   l   L
0122220    o   o   k   s   :       L   o   o   k   s       =       l   o
0122240    o   k   s   I   .   a   l   l   L   o   o   k   s   ;  \r   C
0122260    h   a   r   :       T   Y   P   E       =       C   H   A   R
0122300    A   C   T   E   R   ;  \r   C   a   r   d   :       T   Y   P
0122320    E       =       L   O   N   G       C   A   R   D   I   N   A
0122340    L   ;  \r   M   a   x   L   e   n   :       C   a   r   d    
0122360    =       L   A   S   T   [   C   a   r   d   ]   ;  \r   M   a
0122400    x   C   a   r   d   :       C   a   r   d       =       L   A
0122420    S   T   [   C   a   r   d   ]   ;  \r  \r  \r   -   -       *
0122440    *   *   *       O   p   e   r   a   t   i   o   n   s       t
0122460    o       c   r   e   a   t   e   /   s   a   v   e       a    
0122500    t   e   x   t       n   o   d   e       *   *   *   *  \r  \r
0122520    F   r   o   m   R   o   p   e   :       P   R   O   C       [
0122540    r   o   p   e   :       R   o   p   e   ]       R   E   T   U
0122560    R   N   S       [   R   e   f   T   e   x   t   N   o   d   e
0122600    ]   ;  \r 376 001  \0 234   &  \t   -   -       c   r   e   a
0122620    t   e       a       t   e   x   t       n   o   d   e       w
0122640    i   t   h       l   o   o   k   s       f   r   o   m       a
0122660        n   o   r   m   a   l       r   o   p   e  \r  \r   F   r
0122700    o   m   S   t   r   i   n   g   :       P   R   O   C       [
0122720    s   t   r   i   n   g   :       R   E   F       R   E   A   D
0122740    O   N   L   Y       T   E   X   T   ]       R   E   T   U   R
0122760    N   S       [   R   e   f   T   e   x   t   N   o   d   e   ]
0123000    ;  \r  \t   -   -       c   o   p   i   e   s       t   h   e
0123020        c   o   n   t   e   n   t   s       o   f       t   h   e
0123040        s   t   r   i   n   g  \r  \r   G   e   t   R   o   p   e
0123060    :       P   R   O   C       [   t   e   x   t   :       R   e
0123100    f   T   e   x   t   N   o   d   e   ]       R   E   T   U   R
0123120    N   S       [   R   o   p   e   ]   ;  \r  \r   G   e   t   R
0123140    u   n   s   :       P   R   O   C       [   t   e   x   t   :
0123160        R   e   f   T   e   x   t   N   o   d   e   ]       R   E
0123200    T   U   R   N   S       [   l 376 001  \0 001 233   o   o   k
0123220    s   I   .   R   u   n   s   ]   ;  \r  \r   F   i   l   e   C
0123240    a   p   a   b   i   l   i   t   y   :       T   Y   P   E    
0123260    =       R   E   F   ;       -   -       p   h   o   n   y    
0123300    d   e   c   l       u   n   t   i   l       g   o   t   o    
0123320    P   i   l   o   t  \r  \r   T   o   F   i   l   e   :       P
0123340    R   O   C       [   f   i   l   e   :       F   i   l   e   C
0123360    a   p   a   b   i   l   i   t   y   ,       n   o   d   e   :
0123400        R   e   f   ]   ;  \r  \t   -   -       w   r   i   t   e
0123420        t   h   e       n   o   d   e       o   n       t   h   e
0123440        s   p   e   c   i   f   i   e   d       f   i   l   e  \r
0123460   \r   F   r   o   m   F   i   l   e   :       P   R   O   C    
0123500    [   f   i   l   e   :       F   i   l   e   C   a   p   a   b
0123520    i   l   i   t   y   ]       R   E   T   U   R   N   S       [
0123540    R   e   f   ]   ;  \r  \t   -   -       c   r   e   a   t   e
0123560        n   o   d   e       f   r   o   m       t   h   e       c
0123600    o   n   t   e   n   t   s       o   f       a     376 001  \0
0123620  202 311   f   i   l   e  \r  \t   -   -       i   f       f   i
0123640    l   e       w   a   s       n   o   t       c   r   e   a   t
0123660    e   d       b   y       T   o   F   i   l   e       (   i   .
0123700    e   .   ,       p   a   s   s   w   o   r   d       n   o   t
0123720        c   o   r   r   e   c   t   )  \r  \t  \t   -   -       t
0123740    h   e   n       r   e   t   u   r   n   s       F   r   o   m
0123760    R   o   p   e   [   R   o   p   e   F   r   o   m   .   F   i
0124000    l   e   [   f   i   l   e   ]   ]  \r  \r  \r   -   -       *
0124020    *   *   *       P   r   o   p   e   r   t   y       L   i   s
0124040    t       O   p   e   r   a   t   i   o   n   s       *   *   *
0124060    *  \r  \r   P   u   t   P   r   o   p   :       P   R   O   C
0124100        [   n   o   d   e   :       R   e   f   ,       n   a   m
0124120    e   ,       v   a   l   :       R   E   F   ]       =  \r  \t
0124140    -   -       a   d   d   s       n   a   m   e       &       v
0124160    a   l       t   o       p   r   o   p   e   r   t   y       l
0124200    i   s   t       f   o   r       n   o   d   e  \r  \t   I   N
0124220    L   I 376 001  \0 252   3   N   E       {       p   r   o   p
0124240    s   I   .   P   u   t   P   r   o   p   [   n   o   d   e   ,
0124260        n   a   m   e   ,       v   a   l   ]       }   ;  \r  \r
0124300    R   e   m   P   r   o   p   :       P   R   O   C       [   n
0124320    o   d   e   :       R   e   f   ,       n   a   m   e   :    
0124340    R   E   F   ]       R   E   T   U   R   N   S       [   R   E
0124360    F   ]       =  \r  \t   -   -       r   e   m   o   v   e   s
0124400        n   a   m   e       &       v   a   l       f   r   o   m
0124420        p   r   o   p   e   r   t   y       l   i   s   t       f
0124440    o   r       n   o   d   e  \r  \t   -   -       r   e   t   u
0124460    r   n   s       o   l   d       v   a   l   u   e   ,       i
0124500    f       a   n   y  \r  \t   I   N   L   I   N   E       {    
0124520    R   E   T   U   R   N       [   p   r   o   p   s   I   .   R
0124540    e   m   P   r   o   p   [   n   o   d   e   ,       n   a   m
0124560    e   ]   ]       }   ;  \r  \r   G   e   t   P   r   o   p   :
0124600        P   R   O   C       [   n   o   d   e   :       R   e   f
0124620    ,       n   a   m   e   : 376 001  \0 315 365       R   E   F
0124640    ]       R   E   T   U   R   N   S       [   R   E   F   ]    
0124660    =  \r  \t   -   -       r   e   t   u   r   n   s       t   h
0124700    e       v   a   l   u   e       a   s   s   o   c   i   a   t
0124720    e   d       w   i   t   h       t   h   e       g   i   v   e
0124740    n       n   a   m   e  \r  \t  \t   -   -       v   a   l   u
0124760    e       i   s       N   I   L       i   f       n   a   m   e
0125000        i   s       n   o   t       o   n       t   h   e       p
0125020    r   o   p   e   r   t   y       l   i   s   t  \r  \t   I   N
0125040    L   I   N   E       {       R   E   T   U   R   N       [   p
0125060    r   o   p   s   I   .   G   e   t   P   r   o   p   [   n   o
0125100    d   e   ,       n   a   m   e   ]   ]       }   ;  \r  \r   M
0125120    a   p   P   r   o   p   s   :       P   R   O   C       [   n
0125140    o   d   e   :       R   e   f   ,       a   c   t   i   o   n
0125160    :       M   a   p   P   r   o   p   s   A   c   t   i   o   n
0125200    ]       R   E   T   U   R   N   S       [   B   O   O   L   E
0125220    A   N   ]       =  \r  \t   I   N   L   I   N 376 001  \0   f
0125240  303   E       {       R   E   T   U   R   N       [   p   r   o
0125260    p   s   I   .   M   a   p   P   r   o   p   s   [   n   o   d
0125300    e   ,       L   O   O   P   H   O   L   E   [   a   c   t   i
0125320    o   n   ]   ]   ]       }   ;  \r  \t   -   -       a   p   p
0125340    l   y       t   h   e       a   c   t   i   o   n       t   o
0125360        e   a   c   h       n   a   m   e       &       v   a   l
0125400    u   e       p   a   i   r       f   o   r       t   h   e    
0125420    n   o   d   e  \r  \t   -   -       r   e   t   u   r   n   s
0125440        t   r   u   e       i   f   &   w   h   e   n       a   n
0125460        a   c   t   i   o   n       r   e   t   u   r   n   s    
0125500    t   r   u   e  \r  \r  \t   M   a   p   P   r   o   p   s   A
0125520    c   t   i   o   n   :       T   Y   P   E       =       P   R
0125540    O   C       [   n   a   m   e   ,       v   a   l   :       R
0125560    E   F   ]       R   E   T   U   R   N   S       [   B   O   O
0125600    L   E   A   N   ]   ;  \r  \r  \r   -   -       *   *   *   *
0125620        P   e   r   s   i   s   t   e   n   t       a   d   d   r
0125640    e 376 001  \0   ? 247   s   s   i   n   g       f   o   r    
0125660    c   h   a   r   a   c   t   e   r   s       i   n       t   e
0125700    x   t       n   o   d   e       *   *   *   *  \r  \r   P   u
0125720    t   T   e   x   t   A   d   d   r   :       P   R   O   C    
0125740    [   n   o   d   e   :       R   e   f   T   e   x   t   N   o
0125760    d   e   ,       a   d   d   r   :       R   E   F   ,       l
0126000    o   c   a   t   i   o   n   :       C   a   r   d   ]       =
0126020       \r  \t   -   -       a   s   s   i   g   n   s       a   d
0126040    d   r       t   o       l   o   c   a   t   i   o   n       i
0126060    n       t   e   x   t  \r  \t   -   -       o   k       i   f
0126100        a   d   d   r       w   a   s       p   r   e   v   i   o
0126120    u   s   l   y       a   s   s   i   g   n   e   d       e   l
0126140    s   e   w   h   e   r   e       i   n       t   h   e       t
0126160    e   x   t  \r  \t   -   -       l   o   c   a   t   i   o   n
0126200        a   u   t   o   m   a   t   i   c   a   l   l   y       u
0126220    p   d   a   t   e   d       w   h   e   n       t   e   x   t
0126240        i   s       e   d 376 001  \0 315 225   i   t   e   d  \r
0126260   \t   I   N   L   I   N   E       {       a   d   d   r   s   I
0126300    .   P   u   t   T   e   x   t   A   d   d   r   [   n   o   d
0126320    e   ,       a   d   d   r   ,       l   o   c   a   t   i   o
0126340    n   ]       }   ;  \r  \r   R   e   m   T   e   x   t   A   d
0126360    d   r   :       P   R   O   C       [   n   o   d   e   :    
0126400    R   e   f   T   e   x   t   N   o   d   e   ,       a   d   d
0126420    r   :       R   E   F   ]       =  \r  \t   -   -       r   e
0126440    m   o   v   e   s       t   h   e       g   i   v   e   n    
0126460    a   d   d   r  \r  \t   I   N   L   I   N   E       {       a
0126500    d   d   r   s   I   .   R   e   m   T   e   x   t   A   d   d
0126520    r   [   n   o   d   e   ,       a   d   d   r   ]       }   ;
0126540   \r  \r   G   e   t   T   e   x   t   A   d   d   r   :       P
0126560    R   O   C       [   n   o   d   e   :       R   e   f   T   e
0126600    x   t   N   o   d   e   ,       a   d   d   r   :       R   E
0126620    F   ]       R   E   T   U   R   N   S       [   l   o   c   a
0126640    t   i   o   n   :       C   a   r   d   ] 376 001  \0   (   n
0126660        =  \r  \t   -   -       g   e   n   e   r   a   t   e   s
0126700        E   R   R   O   R       T   e   x   t   A   d   d   r   N
0126720    o   t   F   o   u   n   d       i   f       t   h   e       a
0126740    d   d   r       i   s       n   o   t       i   n       t   h
0126760    e       m   a   p   p   i   n   g  \r  \t   I   N   L   I   N
0127000    E       {       R   E   T   U   R   N       [  \r  \t  \t   a
0127020    d   d   r   s   I   .   G   e   t   T   e   x   t   A   d   d
0127040    r   [   n   o   d   e   ,       a   d   d   r  \r  \t  \t  \t
0127060    !       c   a   r   d   A   d   d   r   .   A   d   d   r   N
0127100    o   t   F   o   u   n   d       =   >       E   R   R   O   R
0127120        T   e   x   t   A   d   d   r   N   o   t   F   o   u   n
0127140    d   ]   ]       }   ;  \r  \r   T   r   y   G   e   t   T   e
0127160    x   t   A   d   d   r   :       P   R   O   C       [   n   o
0127200    d   e   :       R   e   f   T   e   x   t   N   o   d   e   ,
0127220        a   d   d   r   :       R   E   F   ]  \r  \t   R   E   T
0127240    U   R   N   S       [   f   o   u   n   d   :       B   O   O
0127260  376 001  \0   5   i   L   E   A   N   ,       l   o   c   a   t
0127300    i   o   n   :       C   a   r   d   ]       =  \r  \t   I   N
0127320    L   I   N   E       {       [   f   o   u   n   d   ,       l
0127340    o   c   a   t   i   o   n   ]       _       a   d   d   r   s
0127360    I   .   T   r   y   G   e   t   T   e   x   t   A   d   d   r
0127400    [   n   o   d   e   ,       a   d   d   r   ]       }   ;  \r
0127420   \r   T   e   x   t   A   d   d   r   N   o   t   F   o   u   n
0127440    d   :       E   R   R   O   R   ;  \r  \r   M   a   p   T   e
0127460    x   t   A   d   d   r   s   :       P   R   O   C       [   n
0127500    o   d   e   :       R   e   f   T   e   x   t   N   o   d   e
0127520    ,       a   c   t   i   o   n   :       T   e   x   t   A   d
0127540    d   r   s   A   c   t   i   o   n   ]  \r  \t   R   E   T   U
0127560    R   N   S       [   B   O   O   L   E   A   N   ]       =  \r
0127600   \t   I   N   L   I   N   E       {       R   E   T   U   R   N
0127620        [   a   d   d   r   s   I   .   M   a   p   T   e   x   t
0127640    A   d   d   r   s   [   n   o   d   e   ,       a   c   t   i
0127660    o   n   ]   ]     376 001  \0 321 355   }   ;  \r  \t   -   -
0127700        a   p   p   l   y       t   h   e       a   c   t   i   o
0127720    n       t   o       e   a   c   h       a   d   d   r   &   l
0127740    o   c   a   t   i   o   n       p   a   i   r       f   o   r
0127760        t   h   e       t   e   x   t  \r  \t   -   -       r   e
0130000    t   u   r   n   s       t   r   u   e       i   f   &   w   h
0130020    e   n       a   n       a   c   t   i   o   n       r   e   t
0130040    u   r   n   s       t   r   u   e  \r  \r  \t   T   e   x   t
0130060    A   d   d   r   s   A   c   t   i   o   n   :       T   Y   P
0130100    E       =       a   d   d   r   s   I   .   T   e   x   t   A
0130120    d   d   r   s   A   c   t   i   o   n   ;  \r  \t  \t   -   -
0130140        =       P   R   O   C       [   a   d   d   r   :       R
0130160    E   F   ,       l   o   c   a   t   i   o   n   :       C   a
0130200    r   d   ]       R   E   T   U   R   N   S       [   B   O   O
0130220    L   E   A   N   ]   ;  \r  \r  \r   -   -       *   *   *   *
0130240        P   e   r   s   i   s   t   e   n   t       a   d   d   r
0130260    e   s   s   i   n   g       f   o   r 376 001  \0   y   l    
0130300    c   h   i   l   d   r   e   n       o   f       n   o   d   e
0130320        *   *   *   *  \r  \r   P   u   t   C   h   i   l   d   A
0130340    d   d   r   :       P   R   O   C       [   n   o   d   e   :
0130360        R   e   f   ,       a   d   d   r   :       R   E   F   ,
0130400        l   o   c   a   t   i   o   n   :       C   a   r   d   ]
0130420        =      \r  \t   -   -       a   s   s   i   g   n   s    
0130440    a   d   d   r       t   o       n   o   d   e       c   h   i
0130460    l   d       n   u   m   b   e   r       g   i   v   e   n    
0130500    b   y       l   o   c   a   t   i   o   n  \r  \t   -   -    
0130520    o   k       i   f       a   d   d   r       w   a   s       p
0130540    r   e   v   i   o   u   s   l   y       a   s   s   i   g   n
0130560    e   d       i   n       t   h   e       n   o   d   e  \r  \t
0130600    -   -       l   o   c   a   t   i   o   n       a   u   t   o
0130620    m   a   t   i   c   a   l   l   y       u   p   d   a   t   e
0130640    d       w   h   e   n       n   o   d   e       c   h   i   l
0130660    d   r   e   n       a   r   e       e   d   i   t   e   d 376
0130700  001  \0   @ 314  \r  \t   I   N   L   I   N   E       {       a
0130720    d   d   r   s   I   .   P   u   t   C   h   i   l   d   A   d
0130740    d   r   [   n   o   d   e   ,       a   d   d   r   ,       l
0130760    o   c   a   t   i   o   n   ]       }   ;  \r  \r   R   e   m
0131000    C   h   i   l   d   A   d   d   r   :       P   R   O   C    
0131020    [   n   o   d   e   :       R   e   f   ,       a   d   d   r
0131040    :       R   E   F   ]       =  \r  \t   -   -       r   e   m
0131060    o   v   e   s       t   h   e       g   i   v   e   n       a
0131100    d   d   r  \r  \t   I   N   L   I   N   E       {       a   d
0131120    d   r   s   I   .   R   e   m   C   h   i   l   d   A   d   d
0131140    r   [   n   o   d   e   ,       a   d   d   r   ]       }   ;
0131160   \r  \r   G   e   t   C   h   i   l   d   A   d   d   r   :    
0131200    P   R   O   C       [   n   o   d   e   :       R   e   f   ,
0131220        a   d   d   r   :       R   E   F   ]       R   E   T   U
0131240    R   N   S       [   l   o   c   a   t   i   o   n   :       C
0131260    a   r   d   ]       =  \r  \t   -   -       g   e   n   e   r
0131300    a   t   e   s 376 001  \0   n 347       E   R   R   O   R    
0131320    C   h   i   l   d   A   d   d   r   N   o   t   F   o   u   n
0131340    d       i   f       t   h   e       a   d   d   r       i   s
0131360        n   o   t       i   n       t   h   e       m   a   p   p
0131400    i   n   g  \r  \t   I   N   L   I   N   E       {       R   E
0131420    T   U   R   N       [  \r  \t  \t   a   d   d   r   s   I   .
0131440    G   e   t   C   h   i   l   d   A   d   d   r   [   n   o   d
0131460    e   ,       a   d   d   r  \r  \t  \t  \t   !       c   a   r
0131500    d   A   d   d   r   .   A   d   d   r   N   o   t   F   o   u
0131520    n   d       =   >       E   R   R   O   R       C   h   i   l
0131540    d   A   d   d   r   N   o   t   F   o   u   n   d   ]   ]    
0131560    }   ;  \r  \r   T   r   y   G   e   t   C   h   i   l   d   A
0131600    d   d   r   :       P   R   O   C       [   n   o   d   e   :
0131620        R   e   f   ,       a   d   d   r   :       R   E   F   ]
0131640   \r  \t   R   E   T   U   R   N   S       [   f   o   u   n   d
0131660    :       B   O   O   L   E   A   N   ,       l   o   c   a   t
0131700    i   o   n   :       C   a   r   d 376 001  \0   y 220   ]    
0131720    =  \r  \t   I   N   L   I   N   E       {       [   f   o   u
0131740    n   d   ,       l   o   c   a   t   i   o   n   ]       _    
0131760    a   d   d   r   s   I   .   T   r   y   G   e   t   C   h   i
0132000    l   d   A   d   d   r   [   n   o   d   e   ,       a   d   d
0132020    r   ]       }   ;  \r  \r   C   h   i   l   d   A   d   d   r
0132040    N   o   t   F   o   u   n   d   :       E   R   R   O   R   ;
0132060   \r  \r   F   o   l   l   o   w   C   h   i   l   d   A   d   d
0132100    r   s   :       P   R   O   C       [   n   o   d   e   :    
0132120    R   e   f   ,       a   d   d   r   :       R   E   F   ]    
0132140    R   E   T   U   R   N   S       [   R   e   f   ]       =  \r
0132160   \t   -   -       f   o   l   l   o   w   s       a   d   d   r
0132200        c   h   a   i   n       d   o   w   n       s   t   a   r
0132220    t   i   n   g       f   r   o   m       n   o   d   e  \r  \t
0132240    -   -       r   e   t   u   r   n   s       f   i   r   s   t
0132260        n   o   d   e       i   n       c   h   a   i   n       f
0132300    o   r       w   h   i   c   h       a   d   d   r     376 001
0132320   \0 267 317   n   o   t       f   o   u   n   d  \r  \t   I   N
0132340    L   I   N   E       {       R   E   T   U   R   N       [    
0132360    a   d   d   r   s   I   .   F   o   l   l   o   w   C   h   i
0132400    l   d   A   d   d   r   s   [   n   o   d   e   ,       a   d
0132420    d   r   ]   ]       }   ;  \r  \r   M   a   p   C   h   i   l
0132440    d   A   d   d   r   s   :       P   R   O   C       [   n   o
0132460    d   e   :       R   e   f   ,       a   c   t   i   o   n   :
0132500        C   h   i   l   d   A   d   d   r   s   A   c   t   i   o
0132520    n   ]  \r  \t   R   E   T   U   R   N   S       [   B   O   O
0132540    L   E   A   N   ]       =  \r  \t   I   N   L   I   N   E    
0132560    {       R   E   T   U   R   N       [   a   d   d   r   s   I
0132600    .   M   a   p   C   h   i   l   d   A   d   d   r   s   [   n
0132620    o   d   e   ,       a   c   t   i   o   n   ]   ]       }   ;
0132640   \r  \t   -   -       a   p   p   l   y       t   h   e       a
0132660    c   t   i   o   n       t   o       e   a   c   h       a   d
0132700    d   r   &   l   o   c   a   t   i   o   n       p   a   i   r
0132720        f   o 376 001  \0 003 260   r       t   h   e       n   o
0132740    d   e  \r  \t   -   -       r   e   t   u   r   n   s       t
0132760    r   u   e       i   f   &   w   h   e   n       a   n       a
0133000    c   t   i   o   n       r   e   t   u   r   n   s       t   r
0133020    u   e  \r  \r  \t   C   h   i   l   d   A   d   d   r   s   A
0133040    c   t   i   o   n   :       T   Y   P   E       =       a   d
0133060    d   r   s   I   .   C   h   i   l   d   A   d   d   r   s   A
0133100    c   t   i   o   n   ;  \r  \t  \t   -   -       =       P   R
0133120    O   C       [   a   d   d   r   :       R   E   F   ,       l
0133140    o   c   a   t   i   o   n   :       C   a   r   d   ]       R
0133160    E   T   U   R   N   S       [   B   O   O   L   E   A   N   ]
0133200    ;  \r  \r  \r   -   -       *   *   *   *       O   p   e   r
0133220    a   t   i   o   n   s       t   o       a   d   d       o   r
0133240        d   e   l   e   t   e       l   o   o   k   s       *   *
0133260    *   *  \r  \r  \t   -   -       L   o   o   k   s       a   r
0133300    e       r   e   p   r   e   s   e   n   t   e   d       b   y
0133320        a       v   e   c   t   o 376 001  \0 243 334   r       o
0133340    f       3   2       b   i   t   s  \r  \t   -   -       E   a
0133360    c   h       c   h   a   r   a   c   t   e   r       i   n    
0133400    a       t   e   x   t       n   o   d   e       h   a   s    
0133420    l   o   o   k   s       a   s   s   o   c   i   a   t   e   d
0133440        w   i   t   h       i   t  \r  \t   -   -       s   e   e
0133460        T   i   o   g   a   L   o   o   k   s   .   M   e   s   a
0133500        f   o   r       m   o   r   e       o   p   e   r   a   t
0133520    i   o   n   s  \r  \r   C   h   a   n   g   e   L   o   o   k
0133540    s   :       P   R   O   C       [  \r  \t   t   e   x   t   :
0133560        R   e   f   T   e   x   t   N   o   d   e   ,       r   e
0133600    m   o   v   e   ,       a   d   d   :       L   o   o   k   s
0133620    ,  \r  \t   s   t   a   r   t   :       C   a   r   d       _
0133640        0   ,       l   e   n   :       C   a   r   d       _    
0133660    M   a   x   C   a   r   d   ]   ;  \r  \t   -   -       f   i
0133700    r   s   t       r   e   m   o   v   e       t   h   e   n    
0133720    a   d   d       i   n       t   h   e       g   i 376 001  \0
0133740  302   ?   v   e   n       r   a   n   g   e  \r  \r   A   d   d
0133760    L   o   o   k   s   :       P   R   O   C       [  \r  \t   t
0134000    e   x   t   :       R   e   f   T   e   x   t   N   o   d   e
0134020    ,       a   d   d   :       L   o   o   k   s   ,  \r  \t   s
0134040    t   a   r   t   :       C   a   r   d       _       0   ,    
0134060    l   e   n   :       C   a   r   d       _       M   a   x   C
0134100    a   r   d   ]  \r  \t   =       I   N   L   I   N   E       {
0134120        C   h   a   n   g   e   L   o   o   k   s   [   t   e   x
0134140    t   ,       n   o   L   o   o   k   s   ,       a   d   d   ,
0134160        s   t   a   r   t   ,       l   e   n   ]       }   ;  \r
0134200   \r   R   e   m   o   v   e   L   o   o   k   s   :       P   R
0134220    O   C       [  \r  \t   t   e   x   t   :       R   e   f   T
0134240    e   x   t   N   o   d   e   ,       r   e   m   o   v   e   :
0134260        L   o   o   k   s       _       a   l   l   L   o   o   k
0134300    s   ,  \r  \t   s   t   a   r   t   :       C   a   r   d    
0134320    _       0   ,       l   e   n   :       C   a   r   d       _
0134340        M 376 001  \0 245 221   a   x   C   a   r   d   ]  \r  \t
0134360    =       I   N   L   I   N   E       {       C   h   a   n   g
0134400    e   L   o   o   k   s   [   t   e   x   t   ,       r   e   m
0134420    o   v   e   ,       n   o   L   o   o   k   s   ,       s   t
0134440    a   r   t   ,       l   e   n   ]       }   ;  \r  \r   S   e
0134460    t   L   o   o   k   s   :       P   R   O   C       [  \r  \t
0134500    t   e   x   t   :       R   e   f   T   e   x   t   N   o   d
0134520    e   ,       n   e   w   :       L   o   o   k   s   ,  \r  \t
0134540    s   t   a   r   t   :       C   a   r   d       _       0   ,
0134560        l   e   n   :       C   a   r   d       _       M   a   x
0134600    C   a   r   d   ]  \r  \t   =       I   N   L   I   N   E    
0134620    {       C   h   a   n   g   e   L   o   o   k   s   [   t   e
0134640    x   t   ,       a   l   l   L   o   o   k   s   ,       n   e
0134660    w   ,       s   t   a   r   t   ,       l   e   n   ]       }
0134700    ;  \r  \r   C   l   e   a   r   L   o   o   k   s   :       P
0134720    R   O   C       [  \r  \t   t   e   x   t   :       R   e   f
0134740    T   e   x   t   N   o   d 376 001  \0     027   e   ,       s
0134760    t   a   r   t   :       C   a   r   d       _       0   ,    
0135000    l   e   n   :       C   a   r   d       _       M   a   x   C
0135020    a   r   d   ]  \r  \t   =       I   N   L   I   N   E       {
0135040        C   h   a   n   g   e   L   o   o   k   s   [   t   e   x
0135060    t   ,       a   l   l   L   o   o   k   s   ,       n   o   L
0135100    o   o   k   s   ,       s   t   a   r   t   ,       l   e   n
0135120    ]       }   ;  \r  \r   F   e   t   c   h   L   o   o   k   s
0135140    :       P   R   O   C       [   t   e   x   t   :       R   e
0135160    f   T   e   x   t   N   o   d   e   ,       l   o   c   a   t
0135200    i   o   n   :       C   a   r   d   ]       R   E   T   U   R
0135220    N   S       [   L   o   o   k   s   ]   ;  \r  \t   -   -    
0135240    r   e   t   u   r   n   s       t   h   e       l   o   o   k
0135260    s       f   o   r       t   h   e       c   h   a   r   a   c
0135300    t   e   r       a   t       t   h   e       g   i   v   e   n
0135320        l   o   c   a   t   i   o   n  \r  \t   -   -       u   s
0135340    e       r   e   a   d   e   r   '   s       i 376 001  \0 023
0135360    w   f       g   e   t   t   i   n   g       l   o   o   k   s
0135400        f   o   r       s   e   q   u   e   n   c   e       o   f
0135420        l   o   c   a   t   i   o   n   s  \r  \r  \r   -   -    
0135440    *   *   *   *       C   h   a   n   g   i   n   g       S   t
0135460    y   l   e       /       T   y   p   e       o   f       n   o
0135500    d   e       *   *   *   *  \r  \t  \r   C   h   a   n   g   e
0135520    T   y   p   e   :       P   R   O   C       [  \r  \t   n   o
0135540    d   e   :       R   e   f   ,       n   e   w   S   t   y   l
0135560    e   ,       n   e   w   T   y   p   e   :       B   O   O   L
0135600    E   A   N   ,      \r  \t   s   t   y   l   e   N   a   m   e
0135620    :       n   o   d   e   I   .   S   t   y   l   e   N   a   m
0135640    e   ,       t   y   p   e   N   a   m   e   :       n   o   d
0135660    e   I   .   T   y   p   e   N   a   m   e   ]   ;  \r  \t   -
0135700    -       c   h   a   n   g   e       s   t   y   l   e       a
0135720    n   d   /   o   r       t   y   p   e       o   f       n   o
0135740    d   e  \r  \r  \r   -   -       *   *   *   *       E   d   i
0135760    t 376 001  \0 260 333   i   n   g       O   p   e   r   a   t
0136000    i   o   n   s       f   o   r       t   e   x   t       *   *
0136020    *   *  \r  \r  \t   -   -       N   O   T   E   :       e   d
0136040    i   t       o   p   e   r   a   t   i   o   n   s       d   o
0136060        n   o   t       c   r   e   a   t   e       o   r       d
0136100    e   l   e   t   e       a   d   d   r   s   ,  \r  \t  \t   -
0136120    -       b   u   t       t   h   e   y       c   a   n       c
0136140    h   a   n   g   e       t   h   e   i   r       l   o   c   a
0136160    t   i   o   n   s       w   i   t   h   i   n       t   h   e
0136200        t   e   x   t  \r  \r   R   e   p   l   a   c   e   T   e
0136220    x   t   :       P   R   O   C       [  \r  \t   d   e   s   t
0136240    :       R   e   f   T   e   x   t   N   o   d   e   ,       d
0136260    e   s   t   S   t   a   r   t   :       C   a   r   d       _
0136300        0   ,       d   e   s   t   L   e   n   :       C   a   r
0136320    d       _       M   a   x   L   e   n   ,  \r  \t   s   o   u
0136340    r   c   e   :       R   e   f   T   e   x   t   N   o   d   e
0136360    ,       s   o   u   r 376 001  \0   m   '   c   e   S   t   a
0136400    r   t   :       C   a   r   d       _       0   ,       s   o
0136420    u   r   c   e   L   e   n   :       C   a   r   d       _    
0136440    M   a   x   L   e   n   ]   ;  \r  \t   -   -       r   e   p
0136460    l   a   c   e       t   h   e       d   e   s   t       t   e
0136500    x   t       b   y       a       c   o   p   y       o   f    
0136520    t   h   e       s   o   u   r   c   e       t   e   x   t  \r
0136540   \t   -   -       a   d   d   r   s       t   h   a   t       a
0136560    r   e       i   n       t   h   e       r   e   p   l   a   c
0136600    e   d       t   e   x   t       m   o   v   e       t   o    
0136620    d   e   s   t   S   t   a   r   t  \r  \t   -   -       a   d
0136640    d   r   s       t   h   a   t       a   r   e       a   f   t
0136660    e   r       t   h   e       r   e   p   l   a   c   e   d    
0136700    t   e   x   t       a   r   e       a   d   j   u   s   t   e
0136720    d  \r  \r   D   e   l   e   t   e   T   e   x   t   :       P
0136740    R   O   C       [  \r  \t   t   e   x   t   :       R   e   f
0136760    T   e   x   t   N   o   d   e   ,       s 376 001  \0   L 266
0137000    t   a   r   t   :       C   a   r   d       _       0   ,    
0137020    l   e   n   :       C   a   r   d       _       M   a   x   L
0137040    e   n   ]       =       I   N   L   I   N   E       {  \r  \t
0137060    -   -       d   e   l   e   t   e       t   h   e       s   p
0137100    e   c   i   f   i   e   d       r   a   n   g   e       o   f
0137120        t   e   x   t  \r  \t   -   -       a   d   d   r   s    
0137140    t   h   a   t       a   r   e       i   n       t   h   e    
0137160    d   e   l   e   t   e   d       s   e   c   t   i   o   n    
0137200    m   o   v   e       t   o       s   t   a   r   t  \r  \t   R
0137220    e   p   l   a   c   e   T   e   x   t   [   t   e   x   t   ,
0137240        s   t   a   r   t   ,       l   e   n   ,       N   I   L
0137260    ]       }   ;  \r  \r   C   o   p   y   T   e   x   t   :    
0137300    P   R   O   C       [  \r  \t   d   e   s   t   :       R   e
0137320    f   T   e   x   t   N   o   d   e   ,       d   e   s   t   L
0137340    o   c   :       C   a   r   d   ,  \r  \t   s   o   u   r   c
0137360    e   :       R   e   f   T   e   x   t   N   o   d   e   ,    
0137400  376 001  \0   8   %   s   t   a   r   t   :       C   a   r   d
0137420        _       0   ,       l   e   n   :       C   a   r   d    
0137440    _       M   a   x   L   e   n   ]       =       I   N   L   I
0137460    N   E       {  \r  \t   -   -       c   o   p   y       t   h
0137500    e       s   p   e   c   i   f   i   e   d       t   e   x   t
0137520   \r  \t   -   -       a   d   d       l   e   n   g   t   h    
0137540    o   f       i   n   s   e   r   t   e   d       t   e   x   t
0137560        t   o       a   d   d   r   s       t   h   a   t       a
0137600    r   e       b   e   y   o   n   d       d   e   s   t   L   o
0137620    c  \r  \t   R   e   p   l   a   c   e   T   e   x   t   [   d
0137640    e   s   t   ,       d   e   s   t   L   o   c   ,       0   ,
0137660        s   o   u   r   c   e   ,       s   t   a   r   t   ,    
0137700    l   e   n   ]       }   ;  \r  \r   M   o   v   e   T   e   x
0137720    t   :       P   R   O   C       [  \r  \t   d   e   s   t   :
0137740        R   e   f   T   e   x   t   N   o   d   e   ,       d   e
0137760    s   t   L   o   c   :       C   a   r   d   ,  \r  \t   s   o
0140000    u   r   c   e   : 376 001  \0 263 271       R   e   f   T   e
0140020    x   t   N   o   d   e   ,       s   t   a   r   t   :       C
0140040    a   r   d       _       0   ,       l   e   n   :       C   a
0140060    r   d       _       M   a   x   L   e   n   ]   ;  \r  \t   -
0140100    -       m   o   v   e       t   h   e       s   p   e   c   i
0140120    f   i   e   d       t   e   x   t  \r  \t   -   -       a   d
0140140    d   r   s       t   h   a   t       a   r   e       i   n    
0140160    t   h   e       m   o   v   e   d       t   e   x   t       d
0140200    o       o   n   e       o   f       t   h   e       f   o   l
0140220    l   o   w   i   n   g   :  \r  \t  \t   -   -       m   o   v
0140240    e       w   i   t   h       t   h   e       t   e   x   t    
0140260    i   f       d   e   s   t       =       s   o   u   r   c   e
0140300    ,  \r  \t  \t   -   -       o   r       m   o   v   e       t
0140320    o       s   t   a   r   t       i   f       d   e   s   t    
0140340    #       s   o   u   r   c   e  \r  \r   T   r   a   n   s   p
0140360    o   s   e   T   e   x   t   :       P   R   O   C       [  \r
0140400   \t   a   l   p   h   a   :       R   e 376 001  \0 256   *   f
0140420    T   e   x   t   N   o   d   e   ,       a   l   p   h   a   S
0140440    t   a   r   t   :       C   a   r   d       _       0   ,    
0140460    a   l   p   h   a   L   e   n   :       C   a   r   d       _
0140500        M   a   x   L   e   n   ,  \r  \t   b   e   t   a   :    
0140520    R   e   f   T   e   x   t   N   o   d   e   ,       b   e   t
0140540    a   S   t   a   r   t   :       C   a   r   d       _       0
0140560    ,       b   e   t   a   L   e   n   :       C   a   r   d    
0140600    _       M   a   x   L   e   n   ]   ;  \r  \t   -   -       t
0140620    r   a   n   s   p   o   s   e       t   h   e       a   l   p
0140640    h   a       t   e   x   t       a   n   d       t   h   e    
0140660    b   e   t   a       t   e   x   t  \r  \t   -   -       a   d
0140700    d   r   s       t   r   e   a   t   e   d       s   a   m   e
0140720        a   s       i   n       M   o   v   e  \r  \t  \t   -   -
0140740        m   o   v   e       w   i   t   h       t   h   e       t
0140760    e   x   t       i   f       a   l   p   h   a       =       b
0141000    e   t   a   ,  \r  \t  \t   -   -       o   r       m   o 376
0141020  001  \0 025 356   v   e       t   o       r   e   s   p   e   c
0141040    t   i   v   e       s   t   a   r   t   s       i   f       a
0141060    l   p   h   a       #       b   e   t   a  \r  \r   R   e   p
0141100    l   a   c   e   W   o   r   d   s   :       P   R   O   C    
0141120    [  \r  \t   d   e   s   t   :       R   e   f   T   e   x   t
0141140    N   o   d   e   ,       d   e   s   t   S   t   a   r   t   :
0141160        C   a   r   d       _       0   ,       d   e   s   t   L
0141200    e   n   :       C   a   r   d       _       M   a   x   L   e
0141220    n   ,  \r  \t   s   o   u   r   c   e   :       R   e   f   T
0141240    e   x   t   N   o   d   e   ,       s   o   u   r   c   e   S
0141260    t   a   r   t   :       C   a   r   d       _       0   ,    
0141300    s   o   u   r   c   e   L   e   n   :       C   a   r   d    
0141320    _       M   a   x   L   e   n   ]   ;  \r  \t   -   -       r
0141340    e   p   l   a   c   e       t   h   e       d   e   s   t    
0141360    w   o   r   d   s       b   y       a       c   o   p   y    
0141400    o   f       t   h   e       s   o   u   r   c   e       w   o
0141420    r   d   s  \r 376 001  \0 203   w  \t   -   -       a   d   j
0141440    u   s   t   s       a   p   p   r   o   p   r   i   a   t   e
0141460    l   y       t   o       r   e   t   a   i   n       p   r   o
0141500    p   e   r       s   p   a   c   i   n   g  \r  \t   -   -    
0141520