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