$ od -c -N 50000 [Indigo]<AltoSource>READPRESS.DM!1
0000000  377  \0  \0   r   e   a   d   p   r   e   s   s   .   b   c   p
0000020    l  \0 376 001  \0 325   2   /   /   R       E       A       D
0000040        P       R       E       S       S  \r   /   /       p   r
0000060    o   g   r   a   m       t   o       r   e   a   d       p   r
0000100    e   s   s       f   i   l   e   ,       a   n   d       r   e
0000120    p   o   r   t       c   o   n   t   e   n   t   s       b   a
0000140    c   k       t   o       u   s   e   r  \r   /   /       R   e
0000160    a   d   P   r   e   s   s   /   F       p   u   t   s       o
0000200    u   t   p   u   t       o   n       f   i   l   e       a   s
0000220        w   e   l   l       (   R   e   a   d   P   r   e   s   s
0000240    .   L   s   t   )  \r   /   /   B   l   d   r       r   e   a
0000260    d   p   r   e   s   s       r   e   a   d   o   p   s       g
0000300    p      \t  \r   /   /       C   o   p   y   r   i   g   h   t
0000320        X   e   r   o   x       C   o   r   p   o   r   a   t   i
0000340    o   n       1   9   7   9  \r  \r   /   /   o   u   t   g   o
0000360    i   n   g       p   r   o   c   e   d   u   r   e   s  \t   (
0000400    f   o   r       r   e   a   d   o   p   s   )  \r   e   x   t
0000420    e   r   n   a   l       [ 376 001  \0   1   3  \r  \t   G   e
0000440    t   B   y   t   e   ;   G   e   t   W   o   r   d   ;   O   d
0000460    d   B   y   t   e   ;   G   e   t   R   e   s   e   t   ;   D
0000500    L   E   v   e   n  \r  \t   S   h   o   w   ;   S   h   o   w
0000520    n   ;   S   h   o   w   c   h   ;   S   h   o   w   F   l   o
0000540    a   t   ;   E   r   r   o   r  \r  \t   D   o   u   b   l   e
0000560    C   o   p   ;       D   o   u   b   l   e   S   u   b   ;    
0000600    M   u   l   F   u   l   l   ;       D   o   u   b   l   e   S
0000620    h   r  \r  \t   ]  \r  \r   /   /   i   n   c   o   m   i   n
0000640    g       p   r   o   c   e   d   u   r   e   s  \r   e   x   t
0000660    e   r   n   a   l       [  \r  \t   S   e   t   u   p   R   e
0000700    a   d   P   a   r   a   m   ;   R   e   a   d   P   a   r   a
0000720    m  \t   /   /   f   r   o   m       g   p  \r  \t  \r   /   /
0000740    P   r   i   n   t   F   l   o   a   t  \r  \t   P   r   i   n
0000760    t   F   l   o   a   t  \r  \r   /   /   R   e   a   d   o   p
0001000    s  \r  \t   R   e   a   d   O   b   j   e   c   t   ;   R   e
0001020    a   d   P   a   r   t  \r  \t   ]  \r  \r   / 376 001  \0   5
0001040    ?   /       O   S       p   r   o   c   e   d   u   r   e   s
0001060   \r   e   x   t   e   r   n   a   l       [  \r  \t   O   p   e
0001100    n   F   i   l   e  \r  \t   R   e   a   d   B   l   o   c   k
0001120   \r  \t   S   e   t   F   i   l   e   P   o   s  \r  \t   F   i
0001140    l   e   L   e   n   g   t   h  \r  \t   P   u   t   s  \r  \t
0001160    G   e   t   s  \r  \t   C   l   o   s   e   s  \r  \r  \t   C
0001200    r   e   a   t   e   D   i   s   p   l   a   y   S   t   r   e
0001220    a   m  \r  \t   S   h   o   w   D   i   s   p   l   a   y   S
0001240    t   r   e   a   m  \r  \t   G   e   t   F   i   x   e   d  \r
0001260   \t   W   n   s  \r  \t   W   s   s  \r  \t   D   o   u   b   l
0001300    e   A   d   d  \r  \t   k   e   y   s  \r  \t   ]  \r  \r   /
0001320    /   o   u   t   g   o   i   n   g       s   t   a   t   i   c
0001340    s  \r   e   x   t   e   r   n   a   l       [  \r  \t   P   r
0001360    e   s   s   F   i   l   e  \r  \t   ]  \r   s   t   a   t   i
0001400    c       [  \r  \t   P   r   e   s   s   F   i   l   e  \r  \t
0001420    M   y   D   s   p   ;   L   i   n   e   s   P   r   i   n   t
0001440    e 376 001  \0 367 327   d   ;   P   W   o   r   d   ;   P   B
0001460    y   t   e  \r  \t   L   i   s   t   F   i   l   e  \r  \t   ]
0001500   \r  \r   /   /   i   n   t   e   r   n   a   l       m   a   n
0001520    i   f   e   s   t       a   n   d       s   t   r   u   c   t
0001540    u   r   e       d   e   c   l   a   r   a   t   i   o   n   s
0001560   \r   m   a   n   i   f   e   s   t       [  \r  \t   N   U   M
0001600    L   I   N   E   S   =   4   0  \r  \t   P   r   e   s   s   p
0001620    a   s   s   w   o   r   d   =   2   7   1   8   3  \t   /   /
0001640        P   r   e   s   s       p   a   s   s   w   o   r   d  \r
0001660   \t   ]  \r  \r   /   /       S   t   r   u   c   t   u   r   e
0001700    s  \r   s   t   r   u   c   t   u   r   e       s   t   r   :
0001720   \r  \t   [  \r  \t   n       b   y   t   e  \r  \t   c   h   ^
0001740    1   ,   2   5   5       b   y   t   e  \r  \t   ]  \r  \r   s
0001760    t   r   u   c   t   u   r   e  \r  \t   [  \r  \t   l   h  \t
0002000    b   y   t   e  \r  \t   r   h  \t   b   y   t   e  \r  \t   ]
0002020   \r  \r  \r   /   /       D   D   V       u   s   e   d       t
0002040    o       a   c   c   e 376 001  \0 267 031   s   s       P   R
0002060    d   d   i   r       -   -       P   R       f   i   l   e    
0002100    d   o   c   u   m   e   n   t       d   i   r   e   c   t   o
0002120    r   y  \r   s   t   r   u   c   t   u   r   e       D   D   V
0002140    :       /   /   u   s   e   d       t   o       a   c   c   e
0002160    s   s       P   R   d   d   i   r       -   -       P   R    
0002200    f   i   l   e       d   o   c   u   m   e   n   t       d   i
0002220    r   e   c   t   o   r   y  \r       [  \t   p   a   s   s   w
0002240    d  \t   w   o   r   d  \t   /   /       p   a   s   s   w   o
0002260    r   d   =   2   7   1   8   3  \r  \t   n   r   e   c   s  \t
0002300    w   o   r   d  \t   /   /       t   o   t   a   l       n   o
0002320        o   f       r   e   c   o   r   d   s       i   n       P
0002340    R       f   i   l   e  \r  \t   n   p   a   r   t   s  \t   w
0002360    o   r   d               /   /       n   o       o   f       p
0002400    a   r   t   s  \r  \t   p   d   s   t   a   r   t  \t   w   o
0002420    r   d  \t   /   /       w   h   e   r   e       p   a   r   t
0002440        d   i   r   e   c   t   o   r   y     376 001  \0 234    
0002460    b   e   g   i   n   s  \r  \t   p   d   r   e   c   s  \t   w
0002500    o   r   d               /   /       n   o       o   f       r
0002520    e   c   o   r   d   s  \r  \t   b   a   c   k   p  \t   w   o
0002540    r   d  \t   /   /       b   a   c   k       p   o   i   n   t
0002560    e   r  \r  \t   s   p   a   r   e   1  \t   w   o   r   d  \r
0002600   \t   s   p   a   r   e   2  \t   w   o   r   d  \r  \t   f   c
0002620    o   p   y  \t   w   o   r   d  \t   /   /       f   i   r   s
0002640    t       c   o   p   y       t   o       p   r   i   n   t  \r
0002660   \t   l   c   o   p   y  \t   w   o   r   d  \t   /   /       l
0002700    a   s   t       c   o   p   y       t   o       p   r   i   n
0002720    t  \r       ]  \r   m   a   n   i   f   e   s   t       D   D
0002740    V   l   e   n   =   s   i   z   e       D   D   V   /   1   6
0002760       \r  \r   /   /       P   D       u   s   e   d       t   o
0003000        r   e   a   d       p   a   g   e       d   i   r   e   c
0003020    t   o   r   y       i   n   f   o  \r  \r   s   t   r   u   c
0003040    t   u   r   e       P   D   :       /   /   u   s   e   d    
0003060  376 001  \0 262 351   t   o       r   e   a   d       p   a   g
0003100    e       d   i   r   e   c   t   o   r   y       i   n   f   o
0003120   \r       [  \t   t   y   p   e  \t  \t   w   o   r   d  \r  \t
0003140    p   s   t   a   r   t  \t   w   o   r   d  \r  \t   p   r   e
0003160    c   s  \t   w   o   r   d  \r  \t   i   n   f   i   l   e  \t
0003200    b   i   t       1  \t  \t   /   /       t   r   u   e       o
0003220    r       f   a   l   s   e       a   c   c   o   r   d   i   n
0003240    g       t   o  \r  \t  \t  \t  \t   /   /       w   h   e   t
0003260    h   e   r       p   a   r   t       i   s       s   t   i   l
0003300    l       i   n       i   n   p   u   t       f   i   l   e  \r
0003320   \t   d   i   r   t   y  \t   b   i   t       1  \t  \t   /   /
0003340        t   o       i   n   d   i   c   a   t   e       i   f    
0003360    p   a   g   e       i   s       d   i   r   t   y  \r  \t   p
0003400    a   d   d   i   n   g  \t   b   i   t       1   4  \r       ]
0003420   \r   m   a   n   i   f   e   s   t       P   D   l   e   n   =
0003440    s   i   z   e       P   D   /   1   6  \r  \r   s   t   r   u
0003460    c   t   u   r   e 376 001  \0 026 247       P   D   V   :    
0003500    /   /   f   o   r       s   t   o   r   i   n   g       s   t
0003520    u   f   f       a   b   o   u   t       p   a   r   t       d
0003540    i   r   e   c   t   o   r   y  \r       [  \t   n   p   a   g
0003560    e   s  \t   w   o   r   d  \t  \t   /   /       c   o   u   n
0003600    t       o   f       p   a   g   e   s  \r  \t   p   a   g   e
0003620    n   o  \t   w   o   r   d  \t  \t   /   /       p   a   g   e
0003640        i   n       v   e   c   t   o   r  \r  \t   r   e   c   n
0003660    o  \t   w   o   r   d  \t  \t   /   /       r   e   c   o   r
0003700    d       n   o   w       i   n       b   u   f  \r  \t   t   b
0003720    l  \t  \t   w   o   r   d  \t  \t   /   /       t   a   b   l
0003740    e       o   f       p   a   g   e       d   a   t   a  \r  \t
0003760    b   u   f  \t  \t   w   o   r   d  \t  \t   /   /       a   d
0004000    d   r   e   s   s       o   f       2   5   6   -   w   o   r
0004020    d       b   u   f   f   e   r  \r       ]  \r   m   a   n   i
0004040    f   e   s   t       P   D   V   l   e   n   =   s   i   z   e
0004060        P   D   /   1   6  \r  \r   s   t 376 001  \0 034   v   r
0004100    u   c   t   u   r   e       F   E   :       /   /   u   s   e
0004120    d       t   o       r   e   a   d       F   o   n   t       D
0004140    i   r   e   c   t   o   r   y       e   n   t   r   i   e   s
0004160   \r       [  \t   l   e   n   g   t   h  \t   w   o   r   d  \t
0004200    /   /       l   e   n   g   t   h       o   f       e   n   t
0004220    r   y  \r  \t   s   e   t  \t  \t   b   i   t       8  \r  \t
0004240    f   n   o  \t  \t   b   i   t       8  \r  \t   d   e   s   t
0004260    m  \t   b   i   t       8  \t   /   /       f   i   r   s   t
0004300        c   h   a   r       c   o   d   e  \r  \t   d   e   s   t
0004320    n  \t   b   i   t       8  \t   /   /       l   a   s   t  \r
0004340   \t   f   a   m  \t  \t   w   o   r   d       1   0  \t   /   /
0004360        n   a   m   e       s   t   r   i   n   g  \r  \t   f   a
0004400    c   e  \t  \t   b   i   t       8  \r  \t   s   o   u   r   c
0004420    e  \t   b   i   t       8  \t   /   /       f   i   r   s   t
0004440        c   h   a   r  \r  \t   s   i   z  \t  \t   w   o   r   d
0004460   \r  \t   r   o   t   n  \t  \t   w   o   r   d  \r         376
0004500  001  \0 356  \0   ]  \r   m   a   n   i   f   e   s   t       F
0004520    E   l   e   n   =   s   i   z   e       F   E   /   1   6  \r
0004540   \r   s   t   r   u   c   t   u   r   e       E   T   :       /
0004560    /   u   s   e   d       t   o       a   c   c   e   s   s    
0004600    E   n   t   i   t   y       T   r   a   i   l   e   r  \r    
0004620    [  \t   t   y   p   e  \t   b   i   t       8  \t  \t   /   /
0004640        e   n   t   i   t   y       t   y   p   e  \r  \t   f   o
0004660    n   t   s   e   t  \t   b   i   t       8  \t  \t   /   /    
0004700    f   o   n   t       s   e   t  \r  \t   d   s   t   a   r   t
0004720    1  \t   w   o   r   d  \t  \t   /   /       b   y   t   e    
0004740    a   d   d   r   e   s   s       o   f       d   a   t   a   ,
0004760        h   i   g   h   -   o   r   d   e   r  \r  \t   d   s   t
0005000    a   r   t   2  \t   w   o   r   d  \t  \t   /   /       l   o
0005020    w   -   o   r   d   e   r  \r  \t   d   l   e   n   g   t   h
0005040    1      \t   w   o   r   d  \t   /   /       b   y   t   e    
0005060    l   e   n   g   t   h       o   f       d   a   t   a   ,    
0005100    h   i   g   h 376 001  \0   a   =   -   o   r   d   e   r  \r
0005120   \t   d   l   e   n   g   t   h   2      \t   w   o   r   d  \t
0005140    /   /       l   o   w   -   o   r   d   e   r  \r  \t   x   e
0005160   \t  \t   w   o   r   d  \t   /   /       o   r   i   g   i   n
0005200        x  \r  \t   y   e  \t  \t   w   o   r   d  \t   /   /    
0005220    y  \r  \t   x   l   e   f   t  \t   w   o   r   d  \t  \t   /
0005240    /       l   h       c   o   r   n   e   r  \r  \t   y   b   o
0005260    t   t   o   m  \t   w   o   r   d  \r  \t   w   i   d   t   h
0005300   \t   w   o   r   d  \r  \t   h   e   i   g   h   t  \t   w   o
0005320    r   d  \r  \t   l   e   n   g   t   h  \t   w   o   r   d  \t
0005340   \t   /   /       l   e   n   g   t   h       i   n       w   o
0005360    r   d   s       o   f       e   n   t   i   t   y  \r        
0005400    ]  \r   m   a   n   i   f   e   s   t       [       E   T   l
0005420    e   n   =   s   i   z   e       E   T   /   1   6       ]  \r
0005440   \r   m   a   n   i   f   e   s   t       [  \r  \t   l   m   a
0005460    r   g   =   1   0   2   4  \r  \t   b   m   a   r   g   =   1
0005500    0   2   4  \r  \t   S   c   r   e 376 001  \0 364   0   e   n
0005520    X   M   a   x   =   6   0   8  \r  \t   S   c   r   e   e   n
0005540    Y   M   a   x   =   8   0   8  \r  \t   ]  \r  \r   s   t   r
0005560    u   c   t   u   r   e       S   V   :  \r       [  \t   c   o
0005600    d   e  \t   w   o   r   d  \r  \t   b   w   i   d   t   h  \t
0005620    w   o   r   d  \r  \t   n   s   l  \t  \t   w   o   r   d  \r
0005640   \t   m   o   d   e  \t  \t   w   o   r   d  \r  \t   d   o   t
0005660    s   i   z   e  \t   w   o   r   d  \r  \t   p   w  \t  \t   w
0005700    o   r   d  \r  \t   p   h  \t  \t   w   o   r   d  \r  \t   w
0005720    i   n   d   o   w  \t   w   o   r   d  \r  \t   p   b  \t  \t
0005740    w   o   r   d  \r  \t   d   b  \t  \t   w   o   r   d  \r  \t
0005760    p   l  \t  \t   w   o   r   d  \r  \t   d   l  \t  \t   w   o
0006000    r   d  \r  \t   f   o   l   l   o   w  \t   w   o   r   d  \r
0006020        ]  \r   m   a   n   i   f   e   s   t       S   V   l   e
0006040    n   =   s   i   z   e       S   V   /   1   6  \r  \r   l   e
0006060    t       s   t   a   r   t   (   )       b   e  \r       [  \r
0006100   \t   l   e   t       s   t   r   =   v   e   c       3 376 001
0006120   \0 253 257   0   ;       l   e   t       s   w   =   v   e   c
0006140        2   6  \r  \t   S   e   t   u   p   R   e   a   d   P   a
0006160    r   a   m   (   s   t   r   ,       s   w   )  \r  \t   i   f
0006200        s   w   !   0       n   e       0       &       (   (   s
0006220    w   !   1       e   q       $   F   )   %   (   s   w   !   1
0006240        e   q       $   f   )   )       t   h   e   n  \r  \t  \t
0006260    [  \r  \t  \t   L   i   s   t   F   i   l   e   =   O   p   e
0006300    n   F   i   l   e   (   "   R   e   a   d   P   r   e   s   s
0006320    .   L   s   t   "   ,   0   ,   1   )  \r  \t  \t   ]  \r  \t
0006340    P   r   e   s   s   F   i   l   e   =   R   e   a   d   P   a
0006360    r   a   m   (   "   I   W   "   ,   "   P   r   e   s   s    
0006400    f   i   l   e       n   a   m   e       -   -       "   )  \r
0006420   \r  \t   l   e   t       M   y   D   s   p   S   i   z   e   =
0006440    3   0   *   1   4   *   3   0  \r  \t   M   y   D   s   p   =
0006460    C   r   e   a   t   e   D   i   s   p   l   a   y   S   t   r
0006500    e   a   m   (   N   U   M   L   I   N   E   S   ,   G   e   t
0006520    F   i   x 376 001  \0 035   N   e   d   (   M   y   D   s   p
0006540    S   i   z   e   )   ,   M   y   D   s   p   S   i   z   e   )
0006560   \r  \t   S   h   o   w   D   i   s   p   l   a   y   S   t   r
0006600    e   a   m   (   M   y   D   s   p   )  \r  \t   L   i   n   e
0006620    s   P   r   i   n   t   e   d   =   0  \r  \r  \t   l   e   t
0006640        e   n   d   =   v   e   c       1  \r  \t   F   i   l   e
0006660    L   e   n   g   t   h   (   P   r   e   s   s   F   i   l   e
0006700    ,   e   n   d   )  \r  \t   i   f       (   e   n   d   !   1
0006720    &   #   7   7   7   )       n   e       0       t   h   e   n
0006740   \r  \t  \t   E   r   r   o   r   (   "   I   l   l   e   g   a
0006760    l       P   r   e   s   s       f   i   l   e   :       f   i
0007000    l   e       d   o   e   s       n   o   t       e   n   d    
0007020    o   n       p   a   g   e       b   o   u   n   d   a   r   y
0007040    "   )  \r  \r  \t   l   e   t       d   o   c   =   v   e   c
0007060        1  \r  \t   l   e   t       p   a   g   e   =   v   e   c
0007100        1   ;   p   a   g   e   !   0   =   0   ;   p   a   g   e
0007120    !   1   =   2   5   6   *   2 376 001  \0 347  \v  \r  \t   D
0007140    o   u   b   l   e   C   o   p   (   d   o   c   ,   e   n   d
0007160    )  \r  \t   D   o   u   b   l   e   S   u   b   (   d   o   c
0007200    ,   p   a   g   e   )  \r  \t   S   h   o   w   (   "   D   o
0007220    c   u   m   e   n   t       d   i   r   e   c   t   o   r   y
0007240    :   *   n   "   )  \r  \t   S   e   t   F   i   l   e   P   o
0007260    s   (   P   r   e   s   s   F   i   l   e   ,   d   o   c   )
0007300   \r  \t   l   e   t       d   o   c   D   i   r   =   v   e   c
0007320        2   5   6  \r  \t   R   e   a   d   B   l   o   c   k   (
0007340    P   r   e   s   s   F   i   l   e   ,   d   o   c   D   i   r
0007360    ,   2   5   6   )  \r  \r  \t   S   h   o   w   (   "        
0007400        P   a   s   s   w   o   r   d       "   )  \r  \t   l   e
0007420    t       p   a   s   s   =   d   o   c   D   i   r   !   0  \r
0007440   \t   t   e   s   t       p   a   s   s       e   q       P   r
0007460    e   s   s   p   a   s   s   w   o   r   d       t   h   e   n
0007500        S   h   o   w   (   "   O   K   *   N   "   )  \r  \t    
0007520    o   r       [       S   h   o   w   (   "   i   l 376 001  \0
0007540    Y 352   l   e   g   a   l       (   =   "   )   ;   S   h   o
0007560    w   n   (   p   a   s   s   )   ;   S   h   o   w   (   "   )
0007600    *   n   "   )   ]  \r  \t   l   e   t       n   u   m   R   e
0007620    c   s   =   d   o   c   D   i   r   !   1  \r  \t   S   h   o
0007640    w   (   "               N   u   m   b   e   r       o   f    
0007660    r   e   c   o   r   d   s   :       "   )   ;   S   h   o   w
0007700    n   (   n   u   m   R   e   c   s   )  \r  \t   f   o   r    
0007720    i   =   1       t   o       9       d   o       D   o   u   b
0007740    l   e   S   h   r   (   d   o   c   )  \r  \t   l   e   t    
0007760    r   e   a   l   R   e   c   L   e   n   =   d   o   c   !   1
0010000    +   1  \r  \t   i   f       r   e   a   l   R   e   c   L   e
0010020    n       n   e       n   u   m   R   e   c   s       t   h   e
0010040    n  \t   /   /   W   r   o   n   g  \r  \t       [       S   h
0010060    o   w   (   "           W   R   O   N   G   !       C   o   r
0010100    r   e   c   t       n   u   m   b   e   r       i   s       "
0010120    )   ;   S   h   o   w   n   (   r   e   a   l   R   e   c   L
0010140    e   n 376 001  \0   3 325   )   ]  \r  \t   l   e   t       n
0010160    u   m   P   a   r   t   s   =   d   o   c   D   i   r   !   2
0010200   \r  \t   S   h   o   w   (   "   *   n               N   u   m
0010220    b   e   r       o   f       p   a   r   t   s   :       "   )
0010240    ;   S   h   o   w   n   (   n   u   m   P   a   r   t   s   )
0010260   \r  \t   l   e   t       p   a   r   t   S   t   a   r   t   =
0010300    d   o   c   D   i   r   !   3  \r  \t   S   h   o   w   (   "
0010320    *   n               P   a   r   t       d   i   r   e   c   t
0010340    o   r   y       s   t   a   r   t   s       i   n       r   e
0010360    c   o   r   d       "   )   ;   S   h   o   w   n   (   p   a
0010400    r   t   S   t   a   r   t   )  \r  \t   l   e   t       p   a
0010420    r   t   L   e   n   =   d   o   c   D   i   r   !   4  \r  \t
0010440    S   h   o   w   (   "   *   n               P   a   r   t    
0010460    d   i   r   e   c   t   o   r   y       l   e   n   g   t   h
0010500        (   i   n       r   e   c   o   r   d   s   )       "   )
0010520    ;   S   h   o   w   n   (   p   a   r   t   L   e   n   )  \r
0010540   \t   S   h   o   w   (   " 376 001  \0 215   g   *   n        
0010560        F   i   r   s   t       c   o   p   y       "   )   ;   S
0010600    h   o   w   n   (   d   o   c   D   i   r   !   8   )  \r  \t
0010620    S   h   o   w   (   "   *   n               L   a   s   t    
0010640    c   o   p   y       "   )   ;   S   h   o   w   n   (   d   o
0010660    c   D   i   r   !   9   )  \r  \t   S   h   o   w   (   "   *
0010700    n               F   i   l   e       n   a   m   e   :       "
0010720    )   ;   S   h   o   w   (   d   o   c   D   i   r   +   #   2
0010740    0   0   )  \r  \t   S   h   o   w   (   "   *   n            
0010760    C   r   e   a   t   o   r   '   s       n   a   m   e   :    
0011000    "   )   ;   S   h   o   w   (   d   o   c   D   i   r   +   #
0011020    2   3   2   )  \r  \t   S   h   o   w   (   "   *   n        
0011040        C   r   e   a   t   i   o   n       d   a   t   e   :    
0011060    "   )   ;   S   h   o   w   (   d   o   c   D   i   r   +   #
0011100    2   5   2   )  \r  \t   S   h   o   w   (   "   *   n   "   )
0011120   \r  \r  \t   l   e   t       p   a   r   t   S   t   a   r   t
0011140    v   =   v   e   c       1  \r  \t   M   u   l 376 001  \0   s
0011160  333   F   u   l   l   (   p   a   r   t   S   t   a   r   t   ,
0011200    5   1   2   ,   p   a   r   t   S   t   a   r   t   v   )  \r
0011220   \r  \t   S   e   t   F   i   l   e   P   o   s   (   P   r   e
0011240    s   s   F   i   l   e   ,   p   a   r   t   S   t   a   r   t
0011260    v   )  \r  \t   l   e   t       p   a   r   t   s   =   G   e
0011300    t   F   i   x   e   d   (   4   *   n   u   m   P   a   r   t
0011320    s   )  \r  \t   R   e   a   d   B   l   o   c   k   (   P   r
0011340    e   s   s   F   i   l   e   ,   p   a   r   t   s   ,   4   *
0011360    n   u   m   P   a   r   t   s   )  \r  \t   f   o   r       i
0011400    =   0       t   o       (   n   u   m   P   a   r   t   s   -
0011420    1   )   *   4       b   y       4       d   o  \r  \t   i   f
0011440        p   a   r   t   s   !   i       e   q       1       t   h
0011460    e   n       R   e   a   d   F   o   n   t   (   p   a   r   t
0011500    s   +   i   )  \r  \r  \t   f   o   r       i   =   1       t
0011520    o       n   u   m   P   a   r   t   s       d   o  \r  \t    
0011540    [  \r  \t  \t   S   e   t   F   i   l   e   P   o   s   (   P
0011560    r 376 001  \0  \t   +   e   s   s   F   i   l   e   ,   p   a
0011600    r   t   S   t   a   r   t   v   )  \r  \t  \t   R   e   a   d
0011620    P   a   r   t   (   i   )  \r  \t       ]  \r  \r  \t   t   e
0011640    s   t       L   i   s   t   F   i   l   e       t   h   e   n
0011660        C   l   o   s   e   s   (   L   i   s   t   F   i   l   e
0011700    )       o   r  \r  \t  \t   [  \r  \t  \t   S   h   o   w   (
0011720    "   *   n   *   n   H   i   t       a   n   y       c   h   a
0011740    r   a   c   t   e   r       t   o       f   i   n   i   s   h
0011760    *   n   "   )  \r  \t  \t   G   e   t   s   (   k   e   y   s
0012000    )  \r  \t  \t   ]  \r       ]  \r  \r  \f  \r   a   n   d    
0012020    R   e   a   d   F   o   n   t   (   P   a   r   t   D   i   r
0012040    )       b   e  \r       [  \r  \t   l   e   t       f   o   n
0012060    t   D   i   r   =   v   e   c       1  \r  \t   M   u   l   F
0012100    u   l   l   (   P   a   r   t   D   i   r   !   1   ,   5   1
0012120    2   ,   f   o   n   t   D   i   r   )  \r  \t   S   e   t   F
0012140    i   l   e   P   o   s   (   P   r   e   s   s   F   i   l   e
0012160    ,   f   o   n   t   D 376 001  \0 221 022   i   r   )  \r  \t
0012200    l   e   t       e   n   t   r   y   l   e   n   =   G   e   t
0012220    s   (   P   r   e   s   s   F   i   l   e   )  \r  \t   G   e
0012240    t   R   e   s   e   t   (   )  \r  \t   S   h   o   w   (   "
0012260    *   n   F   o   n   t       D   i   r   e   c   t   o   r   y
0012300    *   n   "   )  \r  \t   u   n   t   i   l       e   n   t   r
0012320    y   l   e   n       e   q       0       d   o  \r  \t  \t   [
0012340   \r  \t  \t   S   h   o   w   (   "   *   n               S   e
0012360    t   :       "   )   ;   S   h   o   w   n   (   G   e   t   B
0012400    y   t   e   (   )   )  \r  \t  \t   S   h   o   w   (   "   *
0012420    n               F   o   n   t   -   n   o   :       "   )   ;
0012440    S   h   o   w   n   (   G   e   t   B   y   t   e   (   )   )
0012460   \r  \t  \t   S   h   o   w   (   "   *   n               m   :
0012500        "   )   ;   S   h   o   w   n   (   G   e   t   B   y   t
0012520    e   (   )   )  \r  \t  \t   l   e   t       n   =   G   e   t
0012540    B   y   t   e   (   )  \r  \t  \t   S   h   o   w   (   "   *
0012560    n               n   :       "   )   ;   S 376 001  \0 265   u
0012600    h   o   w   n   (   n   )  \r  \t  \t   l   e   t       f   a
0012620    m   =   v   e   c       1   0  \r  \t  \t   f   a   m   !   0
0012640    =   G   e   t   s   (   P   r   e   s   s   F   i   l   e   )
0012660   \r  \t  \t   t   e   s   t       n       e   q       #   3   7
0012700    7       &       f   a   m   !   0       e   q       0       t
0012720    h   e   n       /   /   s   p   e   c   i   a   l       f   o
0012740    r   m   a   t  \r  \t  \t  \t   R   e   a   d   O   b   j   e
0012760    c   t   (   e   n   t   r   y   l   e   n   -   4   )       o
0013000    r  \r  \t  \t  \t   [  \r  \t  \t  \t   R   e   a   d   B   l
0013020    o   c   k   (   P   r   e   s   s   F   i   l   e   ,   f   a
0013040    m   +   1   ,   9   )  \r  \t  \t  \t   S   h   o   w   (   "
0013060    *   n               F   a   m   i   l   y       n   a   m   e
0013100    :       "   )   ;   S   h   o   w   (   f   a   m   )  \r  \t
0013120   \t  \t   S   h   o   w   (   "   *   n               F   a   c
0013140    e   :       "   )   ;   S   h   o   w   n   (   G   e   t   B
0013160    y   t   e   (   )   )  \r  \t  \t  \t   S   h   o   w   (   "
0013200  376 001  \0 346   ;   *   n               S   o   u   r   c   e
0013220    :       "   )   ;   S   h   o   w   n   (   G   e   t   B   y
0013240    t   e   (   )   )  \r  \t  \t  \t   S   h   o   w   (   "   *
0013260    n               S   i   z   e   :       "   )   ;   S   h   o
0013300    w   n   (   G   e   t   s   (   P   r   e   s   s   F   i   l
0013320    e   )   )  \r  \t  \t  \t   S   h   o   w   (   "   *   n    
0013340            R   o   t   a   t   i   o   n   :       "   )   ;   S
0013360    h   o   w   n   (   G   e   t   s   (   P   r   e   s   s   F
0013400    i   l   e   )   )  \r  \t  \t  \t   S   h   o   w   (   "   *
0013420    n   "   )  \r  \t  \t  \t   ]  \r  \t  \t   e   n   t   r   y
0013440    l   e   n   =   G   e   t   s   (   P   r   e   s   s   F   i
0013460    l   e   )  \r  \t  \t   ]  \r       ]  \r  \t  \r  \f  \r   a
0013500    n   d       G   e   t   R   e   s   e   t   (   )       b   e
0013520        P   B   y   t   e   =   0  \r  \r   a   n   d       O   d
0013540    d   B   y   t   e   (   )       =       (   P   B   y   t   e
0013560        n   e       0   )  \r  \r   a   n   d       G   e   t   B
0013600    y   t   e   (   ) 376 001  \0 201   =       =       v   a   l
0013620    o   f  \r       [  \r  \t   i   f       P   B   y   t   e    
0013640    e   q       0       t   h   e   n      \r  \t  \t   [  \r  \t
0013660   \t   P   W   o   r   d   =   G   e   t   s   (   P   r   e   s
0013700    s   F   i   l   e   )  \r  \t  \t   P   B   y   t   e   =   1
0013720   \r  \t  \t   r   e   s   u   l   t   i   s       P   W   o   r
0013740    d   <   <   l   h  \r  \t  \t   ]  \r  \t   P   B   y   t   e
0013760    =   0  \r  \t   r   e   s   u   l   t   i   s       P   W   o
0014000    r   d   <   <   r   h  \r       ]  \r  \r   a   n   d       G
0014020    e   t   W   o   r   d   (   )       =       (   G   e   t   B
0014040    y   t   e   (   )       l   s   h   i   f   t       8   )   +
0014060    G   e   t   B   y   t   e   (   )  \r  \r   a   n   d       D
0014100    o   u   b   l   e   C   o   p   (   a   ,       b   )       b
0014120    e  \r   [  \r  \t   a   !   0   =   b   !   0   ;       a   !
0014140    1   =   b   !   1  \r   ]  \r  \r   a   n   d       D   o   u
0014160    b   l   e   S   u   b   (   a   ,       b   )       b   e  \r
0014200    [  \r  \t   l   e   t       c   =   v 376 001  \0  \0   @   e
0014220    c       2  \r  \t   c   !   0   =   n   o   t       b   !   0
0014240    ;       c   !   1   =   n   o   t       b   !   1  \r  \t   D
0014260    o   u   b   l   e   A   d   d   (   c   ,       t   a   b   l
0014300    e       [       0   ;   1       ]       )  \r  \t   D   o   u
0014320    b   l   e   A   d   d   (   a   ,       c   )  \r   ]  \r  \r
0014340    a   n   d       D   o   u   b   l   e   S   h   r   (   a   )
0014360        b   e  \r   [  \r  \t   a   !   1   =   (   a   !   1    
0014400    r   s   h   i   f   t       1   )   +   (   a   !   0       l
0014420    s   h   i   f   t       1   5   )  \r  \t   a   !   0   =   a
0014440    !   0       r   s   h   i   f   t       1  \r   ]  \r  \r   a
0014460    n   d       M   u   l   F   u   l   l   (   a   ,       b   ,
0014500        l   v   r   e   s   )       b   e  \r   [  \r  \t   l   e
0014520    t       m   =   v   e   c       1   ;       m   !   0   =   0
0014540    ;       m   !   1   =   a  \r  \t   D   o   u   b   l   e   C
0014560    o   p   (   l   v   r   e   s   ,       t   a   b   l   e    
0014600    [       0   ;   0       ]       )  \r  \t   w   h   i   l 376
0014620  001  \0   l  \r   e       b       n   e       0       d   o  \r
0014640   \t  \t   [  \r  \t  \t   i   f       (   b   &   1   )       n
0014660    e       0       t   h   e   n       D   o   u   b   l   e   A
0014700    d   d   (   l   v   r   e   s   ,       m   )  \r  \t  \t   D
0014720    o   u   b   l   e   A   d   d   (   m   ,       m   )  \r  \t
0014740   \t   b   =   b       r   s   h   i   f   t       1  \r  \t  \t
0014760    ]  \r   ]  \r  \r  \f  \r   a   n   d       S   h   o   w   (
0015000    s   ,   c   o   u   n   t   ;   n   u   m   a   r   g   s    
0015020    n   )       b   e  \r   [  \r  \t   i   f       n       e   q
0015040        1       t   h   e   n       c   o   u   n   t   =   s   >
0015060    >   s   t   r   .   n  \r  \t   f   o   r       i   =   1    
0015100    t   o       c   o   u   n   t       d   o  \r  \t  \t   [  \r
0015120   \t  \t   l   e   t       c   h   =   s   >   >   s   t   r   .
0015140    c   h   ^   i  \r  \t  \t   P   u   t   s   (   M   y   D   s
0015160    p   ,       c   h   )  \r  \t  \t   i   f       L   i   s   t
0015200    F   i   l   e       t   h   e   n       P   u   t   s   (   L
0015220    i   s   t   F 376 001  \0 366 237   i   l   e   ,       c   h
0015240    )  \r  \t  \t   i   f       c   h       e   q       $   *   n
0015260        &       L   i   s   t   F   i   l   e       e   q       0
0015300        t   h   e   n  \r  \t  \t  \t   [  \r  \t  \t  \t   L   i
0015320    n   e   s   P   r   i   n   t   e   d   =   L   i   n   e   s
0015340    P   r   i   n   t   e   d   +   1  \r  \t  \t  \t   i   f    
0015360    L   i   n   e   s   P   r   i   n   t   e   d       g   e    
0015400    (   N   U   M   L   I   N   E   S   -   1   )       t   h   e
0015420    n  \r  \t  \t  \t  \t   [  \r  \t  \t  \t  \t   W   s   s   (
0015440    M   y   D   s   p   ,   "   M   o   r   e   ?   "   )  \r  \t
0015460   \t  \t  \t   l   e   t       c   h   =   G   e   t   s   (   k
0015500    e   y   s   )  \r  \t  \t  \t  \t   L   i   n   e   s   P   r
0015520    i   n   t   e   d   =   0  \r  \t  \t  \t  \t   i   f       (
0015540    c   h       e   q       $   n   )   %   (   c   h       e   q
0015560        $   N   )       t   h   e   n      \r  \t  \t  \t  \t    
0015600    [       i   f       L   i   s   t   F   i   l   e       t   h
0015620    e   n       C   l   o   s   e   s 376 001  \0 352 315   (   L
0015640    i   s   t   F   i   l   e   )   ;   f   i   n   i   s   h  \r
0015660   \t  \t  \t  \t       ]  \r  \t  \t  \t  \t   W   s   s   (   M
0015700    y   D   s   p   ,   "           Y   e   s   *   n   "   )  \r
0015720   \t  \t  \t  \t   ]  \r  \t  \t  \t   ]  \r  \t  \t   ]  \r   ]
0015740   \r  \r   a   n   d       S   h   o   w   F   l   o   a   t   (
0015760    A   C   )       b   e  \r       [       P   r   i   n   t   F
0016000    l   o   a   t   (   M   y   D   s   p   ,   A   C   )  \r    
0016020            i   f       L   i   s   t   F   i   l   e       t   h
0016040    e   n       P   r   i   n   t   F   l   o   a   t   (   L   i
0016060    s   t   F   i   l   e   ,   A   C   )  \r       ]  \r  \r   a
0016100    n   d       S   h   o   w   c   h   (   c   )       b   e  \r
0016120    [  \r  \t   l   e   t       a   =   v   e   c       1  \r  \t
0016140    a   >   >   s   t   r   .   n   =   1   ;       a   >   >   s
0016160    t   r   .   c   h   ^   1   =   c  \r  \t   S   h   o   w   (
0016200    a   )  \r   ]  \r  \r   a   n   d       S   h   o   w   n   (
0016220    n   ,       r   a   d   ;   n   u   m   a   r   g   s 376 001
0016240   \0   Q 201       n   a   )       b   e  \r   [  \r  \t   i   f
0016260        n   a       n   e       2       t   h   e   n       r   a
0016300    d   =   -   1   0  \r  \t   W   n   s   (   M   y   D   s   p
0016320    ,       n   ,       r   a   d   )  \r  \t   i   f       L   i
0016340    s   t   F   i   l   e       t   h   e   n       W   n   s   (
0016360    L   i   s   t   F   i   l   e   ,       n   ,       r   a   d
0016400    )  \r   ]  \r  \r   a   n   d       E   r   r   o   r   (   s
0016420    )       b   e  \r   [  \r  \t   S   h   o   w   (   s   )  \r
0016440   \t   i   f       L   i   s   t   F   i   l   e       t   h   e
0016460    n       C   l   o   s   e   s   (   L   i   s   t   F   i   l
0016500    e   )  \r  \t   S   h   o   w   (   "   *   n       H   i   t
0016520        a   n   y       k   e   y       t   o       f   i   n   i
0016540    s   h   "   )  \r  \t   G   e   t   s   (   k   e   y   s   )
0016560   \r  \t   f   i   n   i   s   h  \r   ]  \r  \r   a   n   d    
0016600    D   L   E   v   e   n   (   )       b   e  \r   [  \r  \t   i
0016620    f       O   d   d   B   y   t   e   (   )       t   h   e   n
0016640        S   h 376  \0   @ 234 356   o   w   (   "   *   n       E
0016660    R   R   O   R       -   -       D   L       h   a   s       o
0016700    d   d       b   y   t   e       c   o   u   n   t       f   o
0016720    r       o   b   j   e   c   t       o   r       d   o   t   s
0016740        "   )  \r   ]  \r  \r  \r 377  \0  \0   r   e   a   d   o
0016760    p   s   .   b   c   p   l  \0 376 001  \0 032 327   /   /   R
0017000        E       A       D       O       P       S  \r   /   /   f
0017020    u   n   c   t   i   o   n   s       f   o   r       R   e   a
0017040    d   P   r   e   s   s  \r   /   /       C   o   p   y   r   i
0017060    g   h   t       X   e   r   o   x       C   o   r   p   o   r
0017100    a   t   i   o   n       1   9   7   9  \r  \r   /   /   o   u
0017120    t   g   o   i   n   g       r   o   u   t   i   n   e   s  \r
0017140    e   x   t   e   r   n   a   l       [  \r  \t   R   e   a   d
0017160    P   a   r   t   ;   R   e   a   d   E   n   t   i   t   y   ;
0017200    R   e   a   d   O   b   j   e   c   t   ;   R   e   a   d   F
0017220    o   n   t  \r  \t   ]  \r  \r   /   /   i   n   c   o   m   i
0017240    n   g       r   o   u   t   i   n   e   s  \r   e   x   t   e
0017260    r   n   a   l       [  \r  \t   D   o   u   b   l   e   S   h
0017300    r   ;   D   o   u   b   l   e   C   o   p   ;   D   o   u   b
0017320    l   e   S   u   b   ;   M   u   l   F   u   l   l  \r  \t   G
0017340    e   t   B   y   t   e   ;   G   e   t   W   o   r   d   ;   O
0017360    d   d   B   y   t   e   ;   G   e   t   R   e   s 376 001  \0
0017400  027 035   e   t  \r  \t   S   h   o   w   F   l   o   a   t   ;
0017420    S   h   o   w   ;   S   h   o   w   n   ;   S   h   o   w   c
0017440    h   ;   E   r   r   o   r   ;   D   L   E   v   e   n  \t   /
0017460    /   f   r   o   m       r   e   a   d   p   r   e   s   s  \r
0017500   \r  \t   R   e   a   d   B   l   o   c   k  \t  \t   /   /   O
0017520    S  \r  \t   G   e   t   s  \r  \t   S   e   t   F   i   l   e
0017540    P   o   s  \r  \t   F   i   l   e   P   o   s  \r  \t   D   o
0017560    u   b   l   e   A   d   d  \r  \t   U   s   c  \r  \t   ]  \r
0017600   \r   /   /   i   n   c   o   m   i   n   g       s   t   a   t
0017620    i   c   s  \r   e   x   t   e   r   n   a   l       [  \r  \t
0017640    P   r   e   s   s   F   i   l   e  \r  \t   ]  \r  \r   /   /
0017660    i   n   t   e   r   n   a   l       m   a   n   i   f   e   s
0017700    t       a   n   d       s   t   r   u   c   t   u   r   e    
0017720    d   e   c   l   a   r   a   t   i   o   n   s  \r   s   t   r
0017740    u   c   t   u   r   e       s   t   r   :  \r  \t   [  \r  \t
0017760    n       b   y   t   e  \r  \t   c   h   ^   1   ,   2   5   5
0020000        b 376 001  \0 327   0   y   t   e  \r  \t   ]  \r  \r   s
0020020    t   r   u   c   t   u   r   e  \r  \t   [  \r  \t   l   h  \t
0020040    b   y   t   e  \r  \t   r   h  \t   b   y   t   e  \r  \t   ]
0020060   \r  \r   l   e   t       R   e   a   d   P   a   r   t   (   n
0020100    )       b   e  \r       [  \r  \t   l   e   t       P   a   r
0020120    t   D   i   r   =   v   e   c       4  \r  \t   f   o   r    
0020140    i   =   1       t   o       n       d   o       R   e   a   d
0020160    B   l   o   c   k   (   P   r   e   s   s   F   i   l   e   ,
0020200    P   a   r   t   D   i   r   ,   4   )  \r  \r  \t   l   e   t
0020220        T   y   p   e   =   P   a   r   t   D   i   r   !   0  \r
0020240   \t   l   e   t       S   t   a   r   t   =   P   a   r   t   D
0020260    i   r   !   1  \r  \t   l   e   t       L   e   n   =   P   a
0020300    r   t   D   i   r   !   2  \r  \t   l   e   t       p   a   d
0020320    d   i   n   g   =   P   a   r   t   D   i   r   !   3  \r  \r
0020340   \t   S   h   o   w   (   "   *   n   P   a   r   t       "   )
0020360    ;   S   h   o   w   n   (   n   )  \r  \t   S   h   o   w   (
0020400    "   :   *   n             376 001  \0 304   D   T   y   p   e
0020420    =   "   )  \r  \t   s   w   i   t   c   h   o   n       T   y
0020440    p   e       i   n   t   o  \r  \t  \t   [  \r  \t  \t   c   a
0020460    s   e       0   :       S   h   o   w   (   "   P   a   g   e
0020500    *   n   "   )   ;   e   n   d   c   a   s   e  \r  \t  \t   c
0020520    a   s   e       1   :       S   h   o   w   (   "   F   o   n
0020540    t   *   n   "   )   ;   e   n   d   c   a   s   e  \r  \t  \t
0020560    c   a   s   e       2   :       S   h   o   w   (   "   E   x
0020600    t   e   r   n   a   l       F   i   l   e       D   i   r   e
0020620    c   t   o   r   y   *   n   "   )   ;   e   n   d   c   a   s
0020640    e  \r  \t  \t   d   e   f   a   u   l   t   :       S   h   o
0020660    w   (   "   U   n   k   n   o   w   n       (   "   )   ;   S
0020700    h   o   w   n   (   T   y   p   e   )   ;   S   h   o   w   (
0020720    "   )   *   n   "   )   ;   e   n   d   c   a   s   e  \r  \t
0020740   \t   ]  \r  \t   S   h   o   w   (   "   *   n               R
0020760    e   c   o   r   d       S   t   a   r   t   =   "   )   ;   S
0021000    h   o   w   n   (   S   t   a   r   t   )  \r 376 001  \0   8
0021020  322  \t   S   h   o   w   (   "   *   n               L   e   n
0021040    g   t   h       (   i   n       r   e   c   o   r   d   s   )
0021060    =   "   )   ;   S   h   o   w   n   (   L   e   n   )  \r  \t
0021100    S   h   o   w   (   "   *   n               P   a   d   d   i
0021120    n   g       L   e   n   g   t   h   =   "   )   ;   S   h   o
0021140    w   n   (   p   a   d   d   i   n   g   )  \r  \r  \t   i   f
0021160        T   y   p   e       e   q       0       t   h   e   n    
0021200    /   /   s   h   o   w       c   o   m   m   a   n   d   s  \r
0021220   \t   [  \r  \t   l   e   t       d   a   t   a   P   o   s   =
0021240    v   e   c       1  \r  \t   M   u   l   F   u   l   l   (   S
0021260    t   a   r   t   ,   5   1   2   ,   d   a   t   a   P   o   s
0021300    )  \r  \t   l   e   t       p   a   r   t   P   o   s   =   v
0021320    e   c       1  \r  \t   M   u   l   F   u   l   l   (   L   e
0021340    n   ,   5   1   2   ,   p   a   r   t   P   o   s   )  \r  \t
0021360    D   o   u   b   l   e   A   d   d   (   p   a   r   t   P   o
0021400    s   ,   d   a   t   a   P   o   s   )  \r  \t   l   e   t    
0021420    d 376 001  \0   ^ 225   o   u   b   l   e   P   a   d   d   i
0021440    n   g   =   v   e   c       1  \r  \t   d   o   u   b   l   e
0021460    P   a   d   d   i   n   g   !   0   =   0   ;   d   o   u   b
0021500    l   e   P   a   d   d   i   n   g   !   1   =   p   a   d   d
0021520    i   n   g   *   2   +   2  \r  \t   D   o   u   b   l   e   S
0021540    u   b   (   p   a   r   t   P   o   s   ,   d   o   u   b   l
0021560    e   P   a   d   d   i   n   g   )  \r  \t   S   e   t   F   i
0021600    l   e   P   o   s   (   P   r   e   s   s   F   i   l   e   ,
0021620    p   a   r   t   P   o   s   )  \r  \t   l   e   t       e   n
0021640    t   i   t   y   L   e   n   =   G   e   t   s   (   P   r   e
0021660    s   s   F   i   l   e   )  \r  \t   u   n   t   i   l       e
0021700    n   t   i   t   y   L   e   n       e   q       0       d   o
0021720   \r  \t       e   n   t   i   t   y   L   e   n   =   R   e   a
0021740    d   E   n   t   i   t   y   (   e   n   t   i   t   y   L   e
0021760    n   ,   p   a   r   t   P   o   s   ,   d   a   t   a   P   o
0022000    s   )  \r  \t   ]  \r  \r  \t   i   f       T   y   p   e    
0022020    e   q       2       t 376 001  \0 273   N   h   e   n       /
0022040    /   s   h   o   w       f   i   l   e   s       n   e   e   d
0022060    e   d  \r  \t       [       l   e   t       p   a   r   t   P
0022100    o   s   =   v   e   c       1  \r  \t               M   u   l
0022120    F   u   l   l   (   S   t   a   r   t   ,   5   1   2   ,   p
0022140    a   r   t   P   o   s   )  \r  \t               S   e   t   F
0022160    i   l   e   P   o   s   (   P   r   e   s   s   F   i   l   e
0022200    ,   p   a   r   t   P   o   s   )  \r  \t               l   e
0022220    t       n   a   m   e   =   v   e   c       4   0  \r  \t    
0022240            R   e   a   d   B   l   o   c   k   (   P   r   e   s
0022260    s   F   i   l   e   ,   n   a   m   e   ,   1   )  \r  \t    
0022300            S   h   o   w   (   "   *   n   F   i   l   e   s    
0022320    r   e   q   u   i   r   e   d   :   *   n   "   )  \r  \t    
0022340            u   n   t   i   l       n   a   m   e   !   0       e
0022360    q       0       d   o  \r  \t                   [       l   e
0022400    t       w   o   r   d   L   e   n   =   n   a   m   e   >   >
0022420    s   t   r   .   n   /   2  \r  \t         376 001  \0   Z 273
0022440                    R   e   a   d   B   l   o   c   k   (   P   r
0022460    e   s   s   F   i   l   e   ,   n   a   m   e   +   1   ,   w
0022500    o   r   d   L   e   n   )  \r  \t                           S
0022520    h   o   w   (   "               "   )   ;   S   h   o   w   (
0022540    n   a   m   e   )   ;   S   h   o   w   (   "   *   n   "   )
0022560   \r  \t                           R   e   a   d   B   l   o   c
0022600    k   (   P   r   e   s   s   F   i   l   e   ,   n   a   m   e
0022620    ,   1   )  \r  \t                   ]  \r  \t       ]  \r  \r
0022640   \r       ]  \r  \r   a   n   d       R   e   a   d   E   n   t
0022660    i   t   y   (   e   n   t   i   t   y   L   e   n   ,   p   a
0022700    r   t   P   o   s   ,   d   a   t   a   P   o   s   )   =   v
0022720    a   l   o   f  \r       [  \r  \t   l   e   t       e   v   e
0022740    c   =   v   e   c       1  \r  \t   e   v   e   c   !   0   =
0022760    0  \r  \t   e   v   e   c   !   1   =   e   n   t   i   t   y
0023000    L   e   n  \r  \t   D   o   u   b   l   e   A   d   d   (   e
0023020    v   e   c   ,   e   v   e   c   )  \t   /   /   *   2       f
0023040  376 001  \0 001 313   o   r       b   y   t   e       p   o   s
0023060    i   t   i   o   n  \r  \t   D   o   u   b   l   e   S   u   b
0023100    (   p   a   r   t   P   o   s   ,   e   v   e   c   )  \r  \t
0023120    i   f       p   a   r   t   P   o   s   !   0       l   s    
0023140    0       t   h   e   n  \r  \t  \t   [  \r  \t  \t   S   h   o
0023160    w   (   "   *   n                           I   L   L   E   G
0023200    A   L       E   N   T   I   T   Y       L   E   N   G   T   H
0023220        (   =   "   )  \r  \t  \t   S   h   o   w   n   (   e   n
0023240    t   i   t   y   L   e   n   )  \r  \t  \t   S   h   o   w   (
0023260    "   )   *   n   "   )  \r  \t  \t   r   e   s   u   l   t   i
0023300    s       0  \r  \t  \t   ]  \r  \t   S   e   t   F   i   l   e
0023320    P   o   s   (   P   r   e   s   s   F   i   l   e   ,   p   a
0023340    r   t   P   o   s   )  \r  \t   l   e   t       n   e   x   t
0023360    l   e   n   =   G   e   t   s   (   P   r   e   s   s   F   i
0023400    l   e   )  \r  \r  \t   l   e   t       e   d   a   t   a   =
0023420    @   #   3   3   5  \r  \t   @   #   3   3   5   =   e   d   a
0023440    t   a   +   e   n 376 001  \0 346   )   t   i   t   y   L   e
0023460    n   +   1  \r  \t   i   f       U   s   c   (   @   #   3   3
0023500    5   ,       l   v       e   d   a   t   a   )       g   r    
0023520    0       t   h   e   n      \r  \t  \t   E   r   r   o   r   (
0023540    "   E   n   t   i   t   y       t   o   o       l   o   n   g
0023560        f   o   r       R   E   A   D   P   R   E   S   S       t
0023600    o       r   e   a   d   *   n   "   )  \r  \r  \t   R   e   a
0023620    d   B   l   o   c   k   (   P   r   e   s   s   F   i   l   e
0023640    ,   e   d   a   t   a   ,   e   n   t   i   t   y   L   e   n
0023660    )  \r  \t   l   e   t       t   h   i   s   D   a   t   a   =
0023700    v   e   c       1  \r  \t   D   o   u   b   l   e   C   o   p
0023720    (   t   h   i   s   D   a   t   a   ,   e   d   a   t   a   +
0023740    e   n   t   i   t   y   L   e   n   -   1   1   )  \r  \r  \t
0023760    S   h   o   w   (   "   *   n   E   n   t   i   t   y   :    
0024000        L   e   n   g   t   h   =   "   )   ;   S   h   o   w   n
0024020    (   e   d   a   t   a   !   (   e   n   t   i   t   y   L   e
0024040    n   -   1   )   )  \r  \t   S   h   o 376 001  \0   5 277   w
0024060    (   "   *   n       T   r   a   i   l   e   r   :   *   n   "
0024100    )  \r  \t   S   h   o   w   (   "               T   y   p   e
0024120    ;   F   o   n   t   =   "   )   ;   S   h   o   w   n   (   e
0024140    d   a   t   a   !   (   e   n   t   i   t   y   L   e   n   -
0024160    1   2   )   )  \r  \t   S   h   o   w   (   "   *   n        
0024200        B   e   g   i   n   -   B   y   t   e   =   "   )   ;   S
0024220    h   o   w   n   (   t   h   i   s   D   a   t   a   !   0   )
0024240    ;  \r  \t   S   h   o   w   c   h   (   $   ;   )   ;   S   h
0024260    o   w   n   (   t   h   i   s   D   a   t   a   !   1   )  \r
0024300   \t   S   h   o   w   (   "               B   y   t   e   -   L
0024320    e   n   =   "   )   ;   S   h   o   w   n   (   e   d   a   t
0024340    a   !   (   e   n   t   i   t   y   L   e   n   -   9   )   )
0024360   \r  \t   S   h   o   w   c   h   (   $   ;   )   ;   S   h   o
0024400    w   n   (   e   d   a   t   a   !   (   e   n   t   i   t   y
0024420    L   e   n   -   8   )   )  \r  \t   S   h   o   w   (   "   *
0024440    n               X   e   =   "   )   ;   S   h   o   w   n 376
0024460  001  \0 357   _   (   e   d   a   t   a   !   (   e   n   t   i
0024500    t   y   L   e   n   -   7   )   )  \r  \t   S   h   o   w   (
0024520    "               Y   e   =   "   )   ;   S   h   o   w   n   (
0024540    e   d   a   t   a   !   (   e   n   t   i   t   y   L   e   n
0024560    -   6   )   )  \r  \t   S   h   o   w   (   "   *   n        
0024600        l   e   f   t   =   "   )   ;   S   h   o   w   n   (   e
0024620    d   a   t   a   !   (   e   n   t   i   t   y   L   e   n   -
0024640    5   )   )  \r  \t   S   h   o   w   (   "               b   o
0024660    t   t   o   m   =   "   )   ;   S   h   o   w   n   (   e   d
0024700    a   t   a   !   (   e   n   t   i   t   y   L   e   n   -   4
0024720    )   )  \r  \t   S   h   o   w   (   "   *   n               w
0024740    i   d   t   h   =   "   )   ;   S   h   o   w   n   (   e   d
0024760    a   t   a   !   (   e   n   t   i   t   y   L   e   n   -   3
0025000    )   )  \r  \t   S   h   o   w   (   "               h   e   i
0025020    g   h   t   =   "   )   ;   S   h   o   w   n   (   e   d   a
0025040    t   a   !   (   e   n   t   i   t   y   L   e   n   -   2   )
0025060    )  \r  \r  \t 376 001  \0   $   (   S   h   o   w   (   "   *
0025100    n       C   o   m   m   a   n   d   s   :   *   n   "   )    
0025120           \r  \t   l   e   t       n   u   m   B   y   t   e   s
0025140    =   (   e   n   t   i   t   y   L   e   n   -   1   2   )   *
0025160    2  \r  \t   D   o   u   b   l   e   A   d   d   (   t   h   i
0025200    s   D   a   t   a   ,   d   a   t   a   P   o   s   )  \r  \t
0025220    l   e   t       o   d   d   B   y   t   e   =   (   t   h   i
0025240    s   D   a   t   a   !   1   )   &   1  \r  \t   t   h   i   s
0025260    D   a   t   a   !   1   =   t   h   i   s   D   a   t   a   !
0025300    1   &   #   1   7   7   7   7   6  \t   /   /   p   o   s   i
0025320    t   i   o   n       t   o       w   o   r   d       b   o   u
0025340    n   d   a   r   y  \r  \t   S   e   t   F   i   l   e   P   o
0025360    s   (   P   r   e   s   s   F   i   l   e   ,   t   h   i   s
0025400    D   a   t   a   )  \r  \t   G   e   t   R   e   s   e   t   (
0025420    )  \r  \t   i   f       o   d   d   B   y   t   e       t   h
0025440    e   n       G   e   t   B   y   t   e   (   )  \r  \t   P   r
0025460    i   n   t   C   o   m   m   a   n 376 001  \0   9 220   d   s
0025500    (   n   u   m   B   y   t   e   s   ,   e   d   a   t   a   ,
0025520    t   h   i   s   D   a   t   a   )  \r  \r  \t   @   #   3   3
0025540    5   =   e   d   a   t   a  \r  \t   r   e   s   u   l   t   i
0025560    s       n   e   x   t   l   e   n  \r       ]  \r  \r   a   n
0025600    d       G   r   a   b   (   b   ,   v   )   =   v   a   l   o
0025620    f  \r       [  \r  \t   l   e   t       n   =   @   b  \r  \t
0025640    @   b   =   n   +   1  \r  \t   l   e   t       W   o   r   d
0025660    =   v   !   (   n   /   2   )  \r  \t   r   e   s   u   l   t
0025700    i   s       (   (   n   &   1   )       e   q       1   )   ?
0025720    W   o   r   d   <   <   r   h   ,   W   o   r   d   <   <   l
0025740    h  \r       ]  \r  \r   a   n   d       G   r   a   b   W   (
0025760    b   ,   v   )       =       G   r   a   b   (   b   ,   v   )
0026000    *   2   5   6   +   G   r   a   b   (   b   ,   v   )  \r  \r
0026020    a   n   d       P   r   i   n   t   C   o   m   m   a   n   d
0026040    s   (   n   u   m   C   o   m   m   a   n   d   s   ,   v   ,
0026060    d   a   t   a   P   o   s   )       b   e  \r       [ 376 001
0026100   \0 251 273  \r  \t   l   e   t       c   o   u   n   t   =   0
0026120   \r  \t   l   e   t       p   v   =   v   e   c       1   0  \r
0026140   \t   l   e   t       b   =   l   v       c   o   u   n   t  \r
0026160   \r   u   n   t   i   l       c   o   u   n   t       g   e    
0026200    n   u   m   C   o   m   m   a   n   d   s       d   o  \r   [
0026220   \t   /   /   g   r   a   b       n   e   x   t       b   y   t
0026240    e  \r  \t   l   e   t       c   =   G   r   a   b   (   b   ,
0026260    v   )  \r  \t   l   e   t       p   =   1  \t  \t  \t   /   /
0026300    n   u   m       a   r   g   s   ,       d   e   f   a   u   l
0026320    t       i   s       1       a   r   g  \r  \t   p   v   !   1
0026340    =   G   r   a   b   (   b   ,   v   )  \t   /   /   G   e   t
0026360        o   n   e       a   r   g   u   m   e   n   t       a   h
0026400    e   a   d  \r  \r  \t   l   e   t       s   =   n   i   l  \r
0026420   \t   s   w   i   t   c   h   o   n       (   c   &   #   3   7
0026440    0   )   /   #   1   0       i   n   t   o  \r  \t  \t   [  \r
0026460   \t  \t   c   a   s   e       0   :       c   a   s   e       1
0026500    :       c 376 001  \0   & 372   a   s   e       2   :       c
0026520    a   s   e       3   :       /   /   s   h   o   w       s   h
0026540    o   r   t  \r  \t  \t  \t   s   =   "   S   h   o   w   -   C
0026560    h   a   r   a   c   t   e   r   s   -   S   h   o   r   t   "
0026600   \r  \t  \t  \t   p   v   !   1   =   (   c   &   #   3   7   )
0026620    +   1  \r  \t  \t  \t   c   o   u   n   t   =   c   o   u   n
0026640    t   -   1  \r  \t  \t  \t   c   =   #   3   6   0  \r  \t  \t
0026660   \t   e   n   d   c   a   s   e  \r  \t  \t   c   a   s   e    
0026700    4   :       c   a   s   e       5   :       c   a   s   e    
0026720    6   :       c   a   s   e       7   :  \t   /   /   s   k   i
0026740    p       s   h   o   r   t  \r  \t  \t  \t   s   =   "   S   k
0026760    i   p   -   C   h   a   r   a   c   t   e   r   s   -   S   h
0027000    o   r   t   "  \r  \t  \t  \t   p   v   !   1   =   (   c   &
0027020    #   3   7   )   +   1  \r  \t  \t  \t   c   o   u   n   t   =
0027040    c   o   u   n   t   -   1  \r  \t  \t  \t   c   =   #   3   6
0027060    1  \r  \t  \t  \t   e   n   d   c   a   s   e  \r  \t  \t   c
0027100    a   s   e       #   1   0   : 376 001  \0   8 003       c   a
0027120    s   e       #   1   1   :       c   a   s   e       #   1   2
0027140    :       c   a   s   e       #   1   3   :  \r  \t  \t  \t   s
0027160    =   "   S   h   o   w   -   C   h   a   r   a   c   t   e   r
0027200    s   -   a   n   d   -   S   k   i   p   "  \r  \t  \t  \t   p
0027220    v   !   1   =   (   c   &   #   3   7   )   +   1  \r  \t  \t
0027240   \t   c   o   u   n   t   =   c   o   u   n   t   -   1  \r  \t
0027260   \t  \t   c   =   #   1   0   0  \r  \t  \t  \t   e   n   d   c
0027300    a   s   e  \r  \t  \t   c   a   s   e       #   1   4   :  \r
0027320   \t  \t  \t   s   =   "   S   e   t   -   S   p   a   c   e   -
0027340    X   -   S   h   o   r   t   "  \r  \t  \t  \t   p   v   !   1
0027360    =   (   c   &   #   7   )   *   2   5   6   +   p   v   !   1
0027400   \r  \t  \t  \t   e   n   d   c   a   s   e  \r  \t  \t   c   a
0027420    s   e       #   1   5   :  \r  \t  \t  \t   s   =   "   S   e
0027440    t   -   S   p   a   c   e   -   Y   -   S   h   o   r   t   "
0027460   \r  \t  \t  \t   p   v   !   1   =   (   c   &   7   )   *   2
0027500    5   6   +   p   v   !   1  \r  \t  \t  \t   e   n 376 001  \0
0027520    : 341   d   c   a   s   e  \r  \t  \t   c   a   s   e       #
0027540    1   6   :  \r  \t  \t   c   a   s   e       #   1   7   :  \r
0027560   \t  \t  \t   s   =   "   F   o   n   t   "  \r  \t  \t  \t   p
0027600    v   !   1   =   c   &   #   1   7  \r  \t  \t  \t   c   o   u
0027620    n   t   =   c   o   u   n   t   -   1  \r  \t  \t  \t   e   n
0027640    d   c   a   s   e  \r  \t  \t   d   e   f   a   u   l   t   :
0027660       \r  \t  \t  \t   s   w   i   t   c   h   o   n       c    
0027700    i   n   t   o  \r  \t  \t  \t   [  \r  \t  \t   c   a   s   e
0027720        #   3   5   3   :       s   =   "   S   k   i   p   -   C
0027740    o   n   t   r   o   l   -   B   y   t   e   s   -   I   m   m
0027760    e   d   i   a   t   e   "  \r  \t  \t  \t   f   o   r       i
0030000    =   1       t   o       p   v   !   1       d   o       G   r
0030020    a   b   (   b   ,   v   )  \r  \t  \t  \t   e   n   d   c   a
0030040    s   e  \r  \t  \t   c   a   s   e       #   3   5   4   :    
0030060    s   =   "   A   l   t   e   r   n   a   t   i   v   e   "  \r
0030100   \t  \t  \t   p   v   !   1   =   (   p   v   !   1   )   *   2
0030120    5   6 376 001  \0   L   A   +   G   r   a   b   (   b   ,   v
0030140    )  \t   /   /   E   L       t   y   p   e   s  \r  \t  \t  \t
0030160    p   v   !   2   =   G   r   a   b   W   (   b   ,   v   )  \r
0030200   \t  \t  \t   p   v   !   3   =   G   r   a   b   W   (   b   ,
0030220    v   )  \r  \t  \t  \t   p   v   !   4   =   G   r   a   b   W
0030240    (   b   ,   v   )  \r  \t  \t  \t   p   v   !   5   =   G   r
0030260    a   b   W   (   b   ,   v   )  \r  \t  \t  \t   p   =   5   ;
0030300    e   n   d   c   a   s   e  \r  \t  \t   c   a   s   e       #
0030320    3   5   5   :       s   =   "   O   n   l   y   -   o   n   -
0030340    c   o   p   y   "   ;   e   n   d   c   a   s   e  \r  \t  \t
0030360    c   a   s   e       #   3   5   6   :       s   =   "   S   e
0030400    t   -   X   "  \r  \t  \t  \t   p   v   !   1   =   (   p   v
0030420    !   1   )   *   2   5   6   +   G   r   a   b   (   b   ,   v
0030440    )   ;   e   n   d   c   a   s   e  \r  \t  \t   c   a   s   e
0030460        #   3   5   7   :       s   =   "   S   e   t   -   Y   "
0030500   \r  \t  \t  \t   p   v   !   1   =   (   p   v   !   1   )   *
0030520    2   5   6   +   G   r   a 376 001  \0   N 301   b   (   b   ,
0030540    v   )   ;   e   n   d   c   a   s   e  \r  \t  \t   c   a   s
0030560    e       #   3   6   0   :       s   =   "   S   h   o   w   -
0030600    C   h   a   r   a   c   t   e   r   s   "   ;   e   n   d   c
0030620    a   s   e  \r  \t  \t   c   a   s   e       #   3   6   1   :
0030640        s   =   "   S   k   i   p   -   C   h   a   r   a   c   t
0030660    e   r   s   "   ;   e   n   d   c   a   s   e  \r  \t  \t   c
0030700    a   s   e       #   3   6   2   :       s   =   "   S   k   i
0030720    p   -   C   o   n   t   r   o   l   -   B   y   t   e   s   "
0030740   \r  \t  \t  \t   p   v   !   1   =   (   p   v   !   1   )   *
0030760    2   5   6   +   G   r   a   b   (   b   ,   v   )  \r  \t  \t
0031000   \t   p   v   !   2   =   G   r   a   b   (   b   ,   v   )  \t
0031020    /   /   t   y   p   e  \r  \t  \t  \t   e   n   d   c   a   s
0031040    e  \r  \t  \t   c   a   s   e       #   3   6   3   :       s
0031060    =   "   S   h   o   w   -   C   h   a   r   a   c   t   e   r
0031100    -   I   m   m   e   d   i   a   t   e                        
0031120            :       "  \r  \t  \t  \t   s   >   > 376 001  \0 255
0031140    }   s   t   r   .   c   h   ^   (   s   >   >   s   t   r   .
0031160    n   -   1   )   =   p   v   !   1  \r  \t  \t  \t   e   n   d
0031200    c   a   s   e  \r  \t  \t   c   a   s   e       #   3   6   4
0031220    :       s   =   "   S   e   t   -   S   p   a   c   e   -   X
0031240    "  \r  \t  \t  \t   p   v   !   1   =   (   p   v   !   1   )
0031260    *   2   5   6   +   G   r   a   b   (   b   ,   v   )   ;   e
0031300    n   d   c   a   s   e  \r  \t  \t   c   a   s   e       #   3
0031320    6   5   :       s   =   "   S   e   t   -   S   p   a   c   e
0031340    -   Y   "  \r  \t  \t  \t   p   v   !   1   =   (   p   v   !
0031360    1   )   *   2   5   6   +   G   r   a   b   (   b   ,   v   )
0031400    ;   e   n   d   c   a   s   e  \r  \t  \t   c   a   s   e    
0031420    #   3   6   6   :       s   =   "   R   e   s   e   t   -   S
0031440    p   a   c   e   "   ;   p   =   0   ;   e   n   d   c   a   s
0031460    e  \r  \t  \t   c   a   s   e       #   3   6   7   :       s
0031500    =   "   S   p   a   c   e   "   ;   p   =   0   ;   e   n   d
0031520    c   a   s   e  \r  \t  \t   c   a   s   e       #   3   7   0
0031540    : 376 001  \0 016 340       s   =   "   S   e   t   -   B   r
0031560    i   g   h   t   n   e   s   s   "   ;   e   n   d   c   a   s
0031600    e  \r  \t  \t   c   a   s   e       #   3   7   1   :       s
0031620    =   "   S   e   t   -   H   u   e   "   ;   e   n   d   c   a
0031640    s   e  \r  \t  \t   c   a   s   e       #   3   7   2   :    
0031660    s   =   "   S   e   t   -   S   a   t   u   r   a   t   i   o
0031700    n   "   ;   e   n   d   c   a   s   e  \r  \t  \t   c   a   s
0031720    e       #   3   7   3   :       s   =   "   S   h   o   w   -
0031740    O   b   j   e   c   t   "  \r  \t  \t  \t   p   v   !   1   =
0031760    (   p   v   !   1   )   *   2   5   6   +   G   r   a   b   (
0032000    b   ,   v   )   ;   e   n   d   c   a   s   e  \r  \t  \t   c
0032020    a   s   e       #   3   7   4   :       s   =   "   S   h   o
0032040    w   -   D   o   t   s   "  \r  \t  \t  \t   p   v   !   1   =
0032060    (   p   v   !   1   )   *   2   5   6   +   G   r   a   b   (
0032100    b   ,   v   )  \r  \t  \t  \t   p   v   !   2   =   G   r   a
0032120    b   W   (   b   ,   v   )   ;   p   =   2   ;   e   n   d   c
0032140    a   s   e  \r  \t  \t 376 001  \0 321 341   c   a   s   e    
0032160    #   3   7   5   :       s   =   "   S   h   o   w   -   D   o
0032200    t   s   -   O   p   a   q   u   e   "  \r  \t  \t  \t   p   v
0032220    !   1   =   (   p   v   !   1   )   *   2   5   6   +   G   r
0032240    a   b   (   b   ,   v   )  \r  \t  \t  \t   p   v   !   2   =
0032260    G   r   a   b   W   (   b   ,   v   )   ;   p   =   2   ;   e
0032300    n   d   c   a   s   e  \r  \t  \t   c   a   s   e       #   3
0032320    7   6   :       s   =   "   S   h   o   w   -   R   e   c   t
0032340    a   n   g   l   e   "  \r  \t  \t  \t   p   v   !   1   =   (
0032360    p   v   !   1   )   *   2   5   6   +   G   r   a   b   (   b
0032400    ,   v   )  \r  \t  \t  \t   p   v   !   2   =   G   r   a   b
0032420    W   (   b   ,   v   )   ;   p   =   2   ;   e   n   d   c   a
0032440    s   e  \r  \t  \t   c   a   s   e       #   3   7   7   :    
0032460    s   =   "   N   o   p   "   ;   p   =   0   ;   e   n   d   c
0032500    a   s   e  \r  \r  \t  \t   d   e   f   a   u   l   t   :  \r
0032520   \t  \t  \t   s   =   (   c       g   e       2   0   0   b    
0032540    &       c       l   e       2   3   7   b 376 001  \0 362 356
0032560    )   ?       "   <   .   .   a   v   a   i   l   a   b   l   e
0032600    .   .   >   "   ,   "   <   .   .   s   p   a   r   e   .   .
0032620    >   "  \r  \t  \t  \t   c   o   u   n   t   =   c   o   u   n
0032640    t   -   1  \r  \t  \t  \t   p   v   !   1   =   c   ;   e   n
0032660    d   c   a   s   e  \r  \t  \t  \t   ]  \r  \t  \t   ]  \r  \r
0032700    /   /   N   o   w       p   r   i   n   t       o   u   t    
0032720    c   o   m   m   a   n   d       n   a   m   e   ,       a   n
0032740    d       a   r   g   u   m   e   n   t   s   :  \r  \t   S   h
0032760    o   w   (   s   )  \r  \t   t   e   s   t       p       e   q
0033000        0       t   h   e   n       c   o   u   n   t   =   c   o
0033020    u   n   t   -   1  \r  \t   o   r       f   o   r       i   =
0033040    1       t   o       p       d   o  \r  \t  \t   [  \r  \t  \t
0033060    S   h   o   w   (   "           "   )  \r  \t  \t   S   h   o
0033100    w   n   (   p   v   !   i   )  \r  \t  \t   ]  \r  \t   S   h
0033120    o   w   (   "   *   n   "   )  \r  \r   /   /   N   o   w   ,
0033140        i   f       t   h   e   r   e   '   s       a   n   y    
0033160  376 001  \0   K 321   d   a   t   a       i   n       D   L   ,
0033200        s   h   o   w       i   t  \r  \t   s   w   i   t   c   h
0033220    o   n       c       i   n   t   o  \r  \t   [  \r  \t   c   a
0033240    s   e       #   3   6   0   :       /   /   S   h   o   w    
0033260    C   h   a   r   a   c   t   e   r   s  \r  \t  \t   S   h   o
0033300    w   (   "                           "   )  \r  \t  \t   f   o
0033320    r       i   =   1       t   o       p   v   !   1       d   o
0033340        [       l   e   t       c   h   =   G   e   t   B   y   t
0033360    e   (   )   ;   S   h   o   w   (   l   v       c   h   ,   1
0033400    )   ]  \r  \t  \t   S   h   o   w   (   "   *   N   "   )  \r
0033420   \t  \t   e   n   d   c   a   s   e  \r  \t   c   a   s   e    
0033440    #   3   6   1   :       c   a   s   e       #   3   6   2   :
0033460    /   /   S   k   i   p       C   h   a   r   a   c   t   e   r
0033500    s       (   o   r       C   o   n   t   r   o   l       B   y
0033520    t   e   s   )  \r  \t  \t   f   o   r       i   =   1       t
0033540    o       p   v   !   1       d   o       G   e   t   B   y   t
0033560    e   (   )  \r  \t 376 001  \0 202 225  \t   e   n   d   c   a
0033600    s   e  \r  \t   c   a   s   e       #   1   0   0   :       /
0033620    /   S   h   o   w       C   h   a   r   a   c   t   e   r   s
0033640        a   n   d       S   k   i   p  \r  \t  \t   S   h   o   w
0033660    (   "                           "   )  \r  \t  \t   f   o   r
0033700        i   =   1       t   o       p   v   !   1       d   o    
0033720    [       l   e   t       c   h   =   G   e   t   B   y   t   e
0033740    (   )   ;   S   h   o   w   (   l   v       c   h   ,   1   )
0033760    ]  \r  \t  \t   S   h   o   w   (   "   *   N   "   )  \r  \t
0034000   \t   G   e   t   B   y   t   e   (   )  \r  \t  \t   e   n   d
0034020    c   a   s   e  \r  \t   c   a   s   e       #   3   7   3   :
0034040        /   /   S   h   o   w       O   b   j   e   c   t  \r  \t
0034060   \t   R   e   a   d   O   b   j   e   c   t   (   p   v   !   1
0034100    )  \r  \t  \t   e   n   d   c   a   s   e  \r  \t   c   a   s
0034120    e       #   3   7   4   :       /   /   S   h   o   w       D
0034140    o   t   s  \r  \t   c   a   s   e       #   3   7   5   :    
0034160    /   /   S   h   o   w       D   o   t 376 001  \0   Z 002   s
0034200        O   p   a   q   u   e  \r  \t  \t   D   o   u   b   l   e
0034220    A   d   d   (   p   v   +   1   ,   p   v   +   1   )  \t   /
0034240    /   n   u   m       w   o   r   d   s       t   o       n   u
0034260    m       b   y   t   e   s  \r  \t  \t   R   e   a   d   D   o
0034300    t   s   (   p   v   +   1   )  \r  \t  \t   e   n   d   c   a
0034320    s   e  \r  \t   d   e   f   a   u   l   t   :  \t  \r  \t   ]
0034340   \r   ]  \r   ]  \r  \r   a   n   d       R   e   a   d   O   b
0034360    j   e   c   t   (   n   )       b   e  \r   [  \r  \t   D   L
0034400    E   v   e   n   (   )  \r   [  \t   n   =   n   -   1  \r  \t
0034420    s   w   i   t   c   h   o   n       G   e   t   W   o   r   d
0034440    (   )       i   n   t   o  \r  \t   [  \r  \t   c   a   s   e
0034460        0   :       S   h   o   w   (   "   *   n                
0034500            M   o   v   e   t   o       "   )  \r  \t  \t   S   h
0034520    o   w   n   (   G   e   t   W   o   r   d   (   )   )   ;   S
0034540    h   o   w   c   h   (   $   *   s   )  \r  \t  \t   S   h   o
0034560    w   n   (   G   e   t   W   o   r   d   (   )   )   ;   n 376
0034600  001  \0 202   '   =   n   -   2   ;   e   n   d   c   a   s   e
0034620   \r  \t   c   a   s   e       1   :       S   h   o   w   (   "
0034640    *   n                           D   r   a   w   t   o       "
0034660    )  \r  \t  \t   S   h   o   w   n   (   G   e   t   W   o   r
0034700    d   (   )   )   ;   S   h   o   w   c   h   (   $   *   s   )
0034720   \r  \t  \t   S   h   o   w   n   (   G   e   t   W   o   r   d
0034740    (   )   )   ;   n   =   n   -   2   ;   e   n   d   c   a   s
0034760    e  \r  \t   c   a   s   e       2   :       S   h   o   w   (
0035000    "   *   n                           D   r   a   w   C   u   r
0035020    v   e       "   )  \r  \t  \t   f   o   r       i   =   1    
0035040    t   o       6       d   o  \r  \t  \t       [       l   e   t
0035060        t   e   m   p   A   C   =   v   e   c       1  \r  \t  \t
0035100   \t   t   e   m   p   A   C   !   0   =   G   e   t   W   o   r
0035120    d   (   )  \r  \t  \t  \t   t   e   m   p   A   C   !   1   =
0035140    G   e   t   W   o   r   d   (   )  \r  \t  \t                
0035160        S   h   o   w   F   l   o   a   t   (   t   e   m   p   A
0035200    C   )  \r  \t 376 001  \0 376 327  \t  \t   S   h   o   w   c
0035220    h   (   $   *   s   )  \r  \t  \t  \t   n   =   n   -   2  \r
0035240   \t  \t       ]  \r  \t  \t   e   n   d   c   a   s   e  \r  \t
0035260    ]  \r   ]       r   e   p   e   a   t   u   n   t   i   l    
0035300    n       l   e       0  \r           S   h   o   w   (   "   *
0035320    n   "   )  \r   ]  \r  \r   a   n   d       R   e   a   d   D
0035340    o   t   s   (   n   v   e   c   )       b   e  \r       [  \r
0035360   \t   D   L   E   v   e   n   (   )  \r  \t   l   e   t       n
0035400    =   n   i   l  \r  \t   l   e   t       t   w   o   =   t   a
0035420    b   l   e       [       0   ;   2   ]  \r  \t   D   o   u   b
0035440    l   e   S   u   b   (   n   v   e   c   ,   t   w   o   )  \r
0035460   \t   s   w   i   t   c   h   o   n       G   e   t   B   y   t
0035500    e   (   )       i   n   t   o  \r  \t  \t   [  \r  \t  \t   c
0035520    a   s   e       0   :  \t   /   /   f   u   l   l       w   o
0035540    r   d       c   o   m   m   a   n   d  \r  \t  \t   s   w   i
0035560    t   c   h   o   n       G   e   t   B   y   t   e   (   )    
0035600    i   n   t   o  \r  \t  \t  \t   [ 376 001  \0 315 250  \r  \t
0035620   \t  \t   c   a   s   e       1   :       n   =   4  \t       /
0035640    /   s   e   t   -   w   i   n   d   o   w  \r  \t  \t  \t  \t
0035660    S   h   o   w   (   "   *   n                           S   e
0035700    t       W   i   n   d   o   w       "   )   ;   e   n   d   c
0035720    a   s   e  \r  \t  \t  \t   c   a   s   e       2   :       n
0035740    =   2  \t   /   /   s   e   t   -   s   i   z   e  \r  \t  \t
0035760   \t  \t   S   h   o   w   (   "   *   n                        
0036000    S   e   t       S   i   z   e       "   )   ;   e   n   d   c
0036020    a   s   e  \r  \t  \t  \t   c   a   s   e       3   :       n
0036040    =   0  \t   /   /   d   o   t   s   -   f   o   l   l   o   w
0036060   \r  \t  \t  \t  \t   S   h   o   w   (   "   *   n            
0036100                D   o   t   s       F   o   l   l   o   w   *   n
0036120    "   )   ;   e   n   d   c   a   s   e  \r  \t  \t  \t   c   a
0036140    s   e       4   :       /   /   G   e   t   -   d   o   t   s
0036160    -   f   r   o   m   -   f   i   l   e  \r  \t  \t  \t  \t   S
0036200    h   o   w   (   "   *   n                           G 376 001
0036220   \0   = 356   e   t       D   o   t   s       F   r   o   m    
0036240    F   i   l   e   :       "   )  \r  \t  \t  \t  \t   [       l
0036260    e   t       r   e   c   S   =   G   e   t   W   o   r   d   (
0036300    )   ;   D   o   u   b   l   e   S   u   b   (   n   v   e   c
0036320    ,   t   w   o   )  \r  \t  \t  \t  \t           l   e   t    
0036340    l   e   n   =   G   e   t   B   y   t   e   (   )  \r  \t  \t
0036360   \t  \t           l   e   t       v   =   v   e   c       1   ;
0036400    v   !   0   =   0   ;   v   !   1   =   (   (   l   e   n   /
0036420    2   )   +   1   )   *   2   ;   D   o   u   b   l   e   S   u
0036440    b   (   n   v   e   c   ,   v   )  \r  \t  \t  \t  \t        
0036460    f   o   r       i   =   1       t   o       l   e   n       d
0036500    o       S   h   o   w   c   h   (   G   e   t   B   y   t   e
0036520    (   )   )  \r  \t  \t  \t  \t           i   f       (   l   e
0036540    n   &   1   )       e   q       0       t   h   e   n       G
0036560    e   t   B   y   t   e   (   )  \r  \t  \t  \t  \t           S
0036600    h   o   w   (   "       (   r   e   c   o   r   d       s   t
0036620    a   r   t 376 001  \0 365 333   =   "   )   ;   S   h   o   w
0036640    n   (   r   e   c   S   )   ;   S   h   o   w   (   "   )   *
0036660    n   "   )  \r  \t  \t  \t  \t           n   =   0  \r  \t  \t
0036700   \t  \t           e   n   d   c   a   s   e  \r  \t  \t  \t  \t
0036720    ]  \t  \t  \t  \t          \r  \t  \t  \t   c   a   s   e    
0036740    5   :       n   =   -   1  \t   /   /   g   e   t       d   o
0036760    t   s       f   r   o   m       p   r   e   s   s       f   i
0037000    l   e  \r  \t  \t  \t  \t   e   n   d   c   a   s   e  \r  \t
0037020   \t  \t   c   a   s   e       6   :      \r  \t  \t  \t  \t   n
0037040    =   G   e   t   W   o   r   d   (   )  \r  \t  \t  \t  \t   f
0037060    o   r       i   =   0       t   o       n       d   o       D
0037100    o   u   b   l   e   S   u   b   (   n   v   e   c   ,   t   w
0037120    o   )  \r  \t  \t  \t  \t   S   h   o   w   (   "   *   n    
0037140                        S   e   t       S   a   m   p   l   i   n
0037160    g       P   r   o   p   e   r   t   i   e   s   "   )  \r  \t
0037200   \t  \t  \t   w   h   i   l   e       n       g   r       0    
0037220    d   o       s   w   i   t   c 376 001  \0 243   {   h   o   n
0037240        G   e   t   W   o   r   d   (   )       i   n   t   o  \r
0037260   \t  \t  \t  \t  \t   [  \r  \t  \t  \t  \t  \t   c   a   s   e
0037300        0   :       S   h   o   w   (   "   *   n                
0037320                    S   S   P       i   n   p   u   t       i   n
0037340    t   e   n   s   i   t   y   :               M   i   n   =   "
0037360    )  \r  \t  \t  \t  \t  \t               S   h   o   w   n   (
0037400    G   e   t   W   o   r   d   (   )   )   ;   S   h   o   w   (
0037420    "           M   a   x   =   "   )  \r  \t  \t  \t  \t  \t    
0037440            S   h   o   w   n   (   G   e   t   W   o   r   d   (
0037460    )   )  \r  \t  \t  \t  \t  \t               n   =   n   -   3
0037500   \r  \t  \t  \t  \t  \t               e   n   d   c   a   s   e
0037520   \r  \t  \t  \t  \t  \t   c   a   s   e       1   :       S   h
0037540    o   w   (   "   *   n                                   S   S
0037560    P       o   u   t   p   u   t       i   n   t   e   n   s   i
0037600    t   y   :           "   )  \r  \t  \t  \t  \t  \t            
0037620    f   o   r       i   =   1       t   o       3     376 001  \0
0037640  211 251   d   o      \r  \t  \t  \t  \t  \t                   [
0037660        S   h   o   w   n   (   G   e   t   W   o   r   d   (   )
0037700    )   ;   S   h   o   w   (   "           "   )   ]  \r  \t  \t
0037720   \t  \t  \t               n   =   n   -   4  \r  \t  \t  \t  \t
0037740   \t               e   n   d   c   a   s   e  \r  \t  \t  \t  \t
0037760   \t   c   a   s   e       2   :       S   h   o   w   (   "   *
0040000    n                                   S   S   P       s   c   r
0040020    e   e   n   *   n   "   )  \r  \t  \t  \t  \t  \t            
0040040    S   h   o   w   (   "                                        
0040060        A   n   g   l   e           "   )   ;   S   h   o   w   n
0040100    (   G   e   t   W   o   r   d   (   )   )  \r  \t  \t  \t  \t
0040120   \t               S   h   o   w   (   "               A   m   p
0040140    l   i   t   u   d   e       "   )   ;   S   h   o   w   n   (
0040160    G   e   t   W   o   r   d   (   )   )  \r  \t  \t  \t  \t  \t
0040200                S   h   o   w   (   "               L   i   n   e
0040220    s   /   I   n   c   h           "   )   ;   S   h   o   w   n
0040240    (   G 376 001  \0   x 355   e   t   W   o   r   d   (   )   )
0040260   \r  \t  \t  \t  \t  \t               n   =   n   -   4  \r  \t
0040300   \t  \t  \t  \t               e   n   d   c   a   s   e  \r  \t
0040320   \t  \t  \t  \t   c   a   s   e       3   :       S   h   o   w
0040340    (   "   *   n                                   S   S   P    
0040360    d   o   t       d   e   f   i   n   i   t   i   o   n   :    
0040400        (   "   )  \r  \t  \t  \t  \t  \t               [       l
0040420    e   t       n   C   e   l   l   s   =   G   e   t   W   o   r
0040440    d   (   )  \r  \t  \t  \t  \t  \t                       S   h
0040460    o   w   n   (   n   C   e   l   l   s   )   ;   S   h   o   w
0040500    c   h   (   $   ,   )  \r  \t  \t  \t  \t  \t                
0040520        S   h   o   w   n   (   G   e   t   W   o   r   d   (   )
0040540    )   ;   S   h   o   w   c   h   (   $   ,   )  \r  \t  \t  \t
0040560   \t  \t                       S   h   o   w   n   (   G   e   t
0040600    W   o   r   d   (   )   )   ;   S   h   o   w   c   h   (   $
0040620    )   )  \r  \t  \t  \t  \t  \t                       f   o   r
0040640        i   =   1       t   o 376 001  \0   "   F       n   C   e
0040660    l   l   s       d   o       G   e   t   W   o   r   d   (   )
0040700   \r  \t  \t  \t  \t  \t                       n   =   n   -   (
0040720    1   +   3   +   n   C   e   l   l   s   )  \r  \t  \t  \t  \t
0040740   \t                       e   n   d   c   a   s   e  \r  \t  \t
0040760   \t  \t  \t           ]  \r  \t  \t  \t  \t  \t   d   e   f   a
0041000    u   l   t   :       S   h   o   w   (   "   *   n            
0041020                        U   n   k   n   o   w   n       c   o   m
0041040    m   a   n   d   .   .   .   "   )  \r  \t  \t  \t  \t  \t    
0041060                f   o   r       i   =   2       t   o       n    
0041100    d   o       G   e   t   W   o   r   d   (   )  \r  \t  \t  \t
0041120   \t  \t                   n   =   0  \r  \t  \t  \t  \t  \t    
0041140                e   n   d   c   a   s   e  \r  \t  \t  \t  \t  \t
0041160    ]  \r  \t  \t  \t  \t   l   o   o   p  \t   /   /   b   a   c
0041200    k       t   o       t   o   p       o   f       r   o   u   t
0041220    i   n   e  \r  \t  \t  \t       ]       /   /   e   n   d    
0041240    o   f       "   s   w   i   t   c   h   o   n 376 001  \0 034
0041260    f       G   e   t   B   y   t   e   (   )       i   n   t   o
0041300    "  \r  \t  \t  \t   i   f       n       l   e       0       t
0041320    h   e   n  \t   /   /   D   o   t   s       c   o   m   i   n
0041340    g       n   o   w  \r  \t  \t  \t  \t   [  \r  \t  \t  \t  \t
0041360    l   e   t       f   p   =   v   e   c       1  \r  \t  \t  \t
0041400   \t   F   i   l   e   P   o   s   (   P   r   e   s   s   F   i
0041420    l   e   ,   f   p   )  \r  \t  \t  \t  \t   D   o   u   b   l
0041440    e   A   d   d   (   f   p   ,   n   v   e   c   )  \r  \t  \t
0041460   \t  \t   S   e   t   F   i   l   e   P   o   s   (   P   r   e
0041500    s   s   F   i   l   e   ,   f   p   )  \r  \t  \t  \t  \t   r
0041520    e   t   u   r   n  \r  \t  \t  \t  \t   ]  \r  \t  \t  \t   f
0041540    o   r       i   =   1       t   o       n       d   o  \r  \t
0041560   \t  \t  \t   [  \r  \t  \t  \t  \t   S   h   o   w   n   (   G
0041600    e   t   W   o   r   d   (   )   )   ;   S   h   o   w   c   h
0041620    (   $   *   s   )  \r  \t  \t  \t  \t   D   o   u   b   l   e
0041640    S   u   b   (   n   v   e   c   ,   t   w   o   )  \r  \t  \t
0041660   \t 376 001  \0 315   @  \t   ]  \r  \t  \t  \t   e   n   d   c
0041700    a   s   e  \r  \t  \t   c   a   s   e       1   :  \t   /   /
0041720    s   e   t       c   o   d   i   n   g  \r  \t  \t  \t   S   h
0041740    o   w   (   "   *   n                           S   e   t    
0041760    C   o   d   i   n   g       "   )  \r  \t  \t  \t   S   h   o
0042000    w   n   (   G   e   t   B   y   t   e   (   )   )   ;   S   h
0042020    o   w   c   h   (   $   ;   )  \r  \t  \t  \t   S   h   o   w
0042040    n   (   G   e   t   W   o   r   d   (   )   )   ;   S   h   o
0042060    w   c   h   (   $   ;   )  \r  \t  \t  \t   S   h   o   w   n
0042100    (   G   e   t   W   o   r   d   (   )   )  \r  \t  \t  \t   D
0042120    o   u   b   l   e   S   u   b   (   n   v   e   c   ,   t   a
0042140    b   l   e       [       0   ;   4   ]   )  \r  \t  \t  \t   e
0042160    n   d   c   a   s   e  \r  \t  \t   c   a   s   e       2   :
0042200       \t   /   /   s   e   t           m   o   d   e  \r  \t  \t
0042220   \t   S   h   o   w   (   "   *   n                           S
0042240    e   t       M   o   d   e       "   )  \r  \t  \t  \t   S   h
0042260    o   w   n   (   G   e 376  \0   * 264 005   t   B   y   t   e
0042300    (   )   )  \r  \t  \t  \t   e   n   d   c   a   s   e  \r  \t
0042320        ]  \r       ]       r   e   p   e   a   t  \r 032   (   1
0042340    2   7   0   )  \r 377  \0  \0   p   r   i   n   t   f   l   o
0042360    a   t   .   b   c   p   l  \0 376 001  \0 351 026   /   /    
0042400    P   r   i   n   t   F   l   o   a   t   (   s   t   r   ,   l
0042420    v   n   u   m   )  \t   P   r   i   n   t   s       f   l   o
0042440    a   t   i   n   g       p   o   i   n   t       n   u   m   b
0042460    e   r   .  \r   /   /       C   o   p   y   r   i   g   h   t
0042500        X   e   r   o   x       C   o   r   p   o   r   a   t   i
0042520    o   n       1   9   7   9  \r  \r  \r   /   /   o   u   t   g
0042540    o   i   n   g       r   o   u   t   i   n   e   s  \r   e   x
0042560    t   e   r   n   a   l       P   r   i   n   t   F   l   o   a
0042600    t  \r  \r   e   x   t   e   r   n   a   l      \r  \t   [  \r
0042620   \t   /   /   O   S  \r  \t   P   u   t   s  \r  \t   W   n   s
0042640   \r  \r   /   /   F   L   O   A   T  \r  \t   F   L   D   ;   F
0042660    S   T   ;   F   T   R   ;   F   L   D   I   ;   F   N   E   G
0042700    ;   F   A   D   ;   F   S   B   ;   F   M   L   ;   F   D   V
0042720    ;   F   C   M   ;   F   S   N  \r  \t   F   L   D   V   ;   F
0042740    S   T   V   ;   F   L   D   D   P   ;   F   S   T   D   P   ;
0042760    D   P   A   D   ;   D   P   S   B  \r  \t   ]  \r 376 001  \0
0043000    e 232  \r   /   /       i   n   c   o   m   i   n   g       s
0043020    t   a   t   i   c   s  \r   e   x   t   e   r   n   a   l  \r
0043040   \t   [  \r  \t   k   e   y   s  \r  \t   d   s   p  \r  \t   ]
0043060   \r  \r   /   /       i   n   t   e   r   n   a   l       s   t
0043100    a   t   i   c   s  \r   s   t   a   t   i   c  \r  \t   [  \r
0043120   \t   c   o   m   s  \r  \t   s   c  \r  \t   ]  \r  \r   /   /
0043140        F   i   l   e   -   w   i   d   e       s   t   r   u   c
0043160    t   u   r   e       a   n   d       m   a   n   i   f   e   s
0043200    t       d   e   c   l   a   r   a   t   i   o   n   s   .  \r
0043220   \r   s   t   r   u   c   t   u   r   e       S   T   R   :    
0043240    [  \r  \t   l   e   n   g   t   h       b   y   t   e  \r  \t
0043260    c   h   a   r   ^   1   ,   2   5   5       b   y   t   e  \r
0043300    ]  \r  \r   m   a   n   i   f   e   s   t       s   t   r   l
0043320    e   n   =   1   0  \t  \t   /   /   n   u   m   b   e   r    
0043340    o   f       w   o   r   d   s  \r  \r   /   /       P   r   o
0043360    c   e   d   u   r   e   s  \r   l   e   t       P   r   i   n
0043400    t   F 376 001  \0 202 304   l   o   a   t   (   s   ,   l   v
0043420    n   u   m   )       b   e       [  \r  \t   l   e   t       v
0043440    =   v   e   c       4   *   5  \r  \t   f   o   r       i   =
0043460    1       t   o       4       d   o       F   S   T   V   (   i
0043500    ,   v   +   4   *   i   )  \r  \t   F   L   D   (   1   ,   l
0043520    v   n   u   m   )  \r  \t   l   e   t       p   =   F   S   N
0043540    (   1   )  \r  \t   t   e   s   t       p       e   q       0
0043560        t   h   e   n       P   u   t   s   (   s   ,   $   0   )
0043600        o   r       [  \t  \t   /   /   R   e   a   l   l   y    
0043620    w   o   r   k  \r  \t   i   f       p       e   q       -   1
0043640        t   h   e   n       [       F   N   E   G   (   1   )   ;
0043660        P   u   t   s   (   s   ,   $   -   )       ]  \r  \r  \n
0043700   \t   F   L   D   V   (   2   ,   t   a   b   l   e       [    
0043720    0   ;       1   ;       #   1   0   0   0   0   0   ;       4
0043740        ]   )   ;      \t   /   /   F   u   z   z   1   =       1
0043760    +   2   E   -   9  \r  \t   F   M   L   (   1   ,   2   )  \t
0044000    /   /   n   _   f   u   z 376 001  \0 266 003   z   1   *   n
0044020    u   m   b   e   r  \r  \t   F   L   D   I   (   3   ,   1   )
0044040    ;   F   L   D   I   (   2   ,   1   0   )  \r  \t   F   L   D
0044060    (   4   ,   1   )  \t   /   /   n   u   m   b   e   r  \r  \t
0044100    p   =   0  \r  \t   w   h   i   l   e       F   C   M   (   4
0044120    ,   2   )       e   q       1       d   o       [       F   D
0044140    V   (   4   ,   2   )   ;       p   =   p   +   1       ]  \r
0044160   \t   w   h   i   l   e       F   C   M   (   4   ,   3   )    
0044200    e   q       -   1       d   o       [       F   M   L   (   4
0044220    ,   2   )   ;       p   =   p   -   1       ]  \r  \r   /   /
0044240        4       h   a   s           n   u   m   b   e   r       b
0044260    e   t   w   e   e   n       1       a   n   d       1   0   ,
0044300        a   n   d       p       h   a   s       p   o   w   e   r
0044320   \r  \r  \t   F   L   D   (   3   ,   t   a   b   l   e       [
0044340        #   0   3   1   3   2   5   ;       #   1   6   3   0   7
0044360    3       ]   )  \t   /   /   F   u   z   z   2       =       5
0044400    E   -   9  \r  \t   F   M   L   (   3   ,   1 376 001  \0 205
0044420  375   )  \t   /   /   s   _   f   u   z   z   2       *       n
0044440   \r  \t   l   e   t       q   =   p  \r  \t   t   e   s   t    
0044460    p       g   r       7       %       p       l   s       -   3
0044500        t   h   e   n       p   =   0       o   r       q   =   0
0044520   \r  \t   t   e   s   t       p       l   s       0       t   h
0044540    e   n       [       P   u   t   s   (   s   ,   $   0   )   ;
0044560        P   u   t   s   (   s   ,   $   .   )  \r  \t  \t   f   o
0044600    r       i   =   p       t   o       -   2       d   o       P
0044620    u   t   s   (   s   ,   $   0   )  \r  \t  \t   f   o   r    
0044640    i   =   1       t   o       -   p       d   o       F   D   V
0044660    (   3   ,   2   )  \t   /   /   s   =   s       E       P  \r
0044700   \t   ]       o   r       [  \t   f   o   r       i   =   1    
0044720    t   o       p       d   o       F   M   L   (   3   ,   2   )
0044740        ]  \r  \r   /   /   n   o   w       p   r   i   n   t    
0044760    (   s       s   u   p   p   r   e   s   s   e   s       t   r
0045000    a   i   l   i   n   g       z   e   r   o   e   s   )  \r  \r
0045020   \t 376 001  \0 226  \t   f   o   r       i   =   1       t   o
0045040        9       d   o       [  \r  \t  \t   l   e   t       i   p
0045060    a   r   t   =   F   T   R   (   4   )  \r  \t  \t   P   u   t
0045100    s   (   s   ,   $   0   +   i   p   a   r   t   )  \r  \t  \t
0045120    p   =   p   -   1  \r  \t  \t   F   L   D   I   (   1   ,   i
0045140    p   a   r   t   )   ;       F   S   B   (   4   ,   1   )   ;
0045160        F   M   L   (   4   ,   2   )  \r  \t  \t   i   f       p
0045200        l   s       0       t   h   e   n       [  \r  \t  \t  \t
0045220    i   f       p       e   q       -   1       t   h   e   n    
0045240    P   u   t   s   (   s   ,   $   .   )  \r  \t  \t  \t   F   M
0045260    L   (   3   ,   2   )  \r  \t  \t  \t   i   f       F   C   M
0045300    (   4   ,   3   )       e   q       -   1       t   h   e   n
0045320        b   r   e   a   k       /   /   f   u   z   z  \r  \t  \t
0045340    ]  \r  \t   ]  \r  \t   i   f       q       n   e       0    
0045360    t   h   e   n  \r  \t  \t   [  \r  \t  \t   P   u   t   s   (
0045400    s   ,   $   E   )   ;  \r  \t  \t   W   n   s   (   s   ,   q
0045420    )  \r  \t  \t   ]  \r 376  \0   3 355   ,  \t   ]       /   /
0045440    R   e   a   l   l   y       w   o   r   k  \r  \t   f   o   r
0045460        i   =   1       t   o       4       d   o       F   L   D
0045500    V   (   i   ,   v   +   4   *   i   )  \r   ]  \r  \r 374    
0045517