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