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