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