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