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