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