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