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