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