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