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