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