$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!10
0000000    (   D   E   F   I   N   E   -   F   I   L   E   -   I   N   F
0000020    O     247   R   E   A   D   T   A   B   L   E       "   X   C
0000040    L   "     247   P   A   C   K   A   G   E       "   I   N   T
0000060    E   R   L   I   S   P   "   )  \r 006 001   (   f   i   l   e
0000100    c   r   e   a   t   e   d       "   2   4   -   O   c   t   -
0000120    8   6       1   9   :   1   1   :   2   7   "     006 004   {
0000140    e   r   i   s   }   <   l   i   s   p   c   o   r   e   >   s
0000160    o   u   r   c   e   s   >   c   l   -   e   r   r   o   r   .
0000200    \   ;   1   0 006 001       3   4   9   9   7          \r  \r
0000220                            |   c   h   a   n   g   e   s   |    
0000240    |   t   o   :   |           (   v   a   r   s       c   l   -
0000260    e   r   r   o   r   c   o   m   s   )  \r                    
0000300                                                                 
0000320            (   f   u   n   c   t   i   o   n   s       n   o   r
0000340    m   a   l   i   z   e   -   s   l   o   t   -   d   e   s   c
0000360    r   i   p   t   i   o   n   s       s   p   l   i   t   -   p
0000400    r   o   c   e   e   d   -   c   l   a   u   s   e   s      \r
0000420                                                                 
0000440                                                            p   r
0000460    o   c   e   e   d   -   c   a   s   e   -   f   r   o   m   -
0000500    c   l   a   u   s   e       p   r   o   c   e   s   s   -   p
0000520    r   o   c   e   e   d   -   k   e   y   w   o   r   d   s    
0000540    c   h   e   c   k   -   *   c   a   s   e   -   s   e   l   e
0000560    c   t   o   r      \r                                        
0000600                                                                 
0000620                    c   o   l   l   e   c   t   -   c   a   s   e
0000640    -   s   e   l   e   c   t   o   r   s       d   e   f   i   n
0000660    e   -   c   o   n   d   i   t   i   o   n       c   l   :   c
0000700    t   y   p   e   c   a   s   e       c   l   :   e   c   a   s
0000720    e   )  \r  \r                           |   p   r   e   v   i
0000740    o   u   s   |       |   d   a   t   e   :   |       "   2   1
0000760    -   O   c   t   -   8   6       1   3   :   0   1   :   0   9
0001000    "       {   e   r   i   s   }   <   l   i   s   p   c   o   r
0001020    e   >   s   o   u   r   c   e   s   >   c   l   -   e   r   r
0001040    o   r   .   \   ;   9   )  \r  \r  \r   ;       C   o   p   y
0001060    r   i   g   h   t       (   c   )       1   9   8   6       b
0001100    y       X   e   r   o   x       C   o   r   p   o   r   a   t
0001120    i   o   n   .           A   l   l       r   i   g   h   t   s
0001140        r   e   s   e   r   v   e   d   .  \r  \r   (   p   r   e
0001160    t   t   y   c   o   m   p   r   i   n   t       c   l   -   e
0001200    r   r   o   r   c   o   m   s   )  \r  \r   (   r   p   a   q
0001220    q     006 002   c   l   -   e   r   r   o   r   c   o   m   s
0001240  006 001      \r                               (   (   c   o   m
0001260    s       (   *       |   ;   ;   |      \r                    
0001300                                            "   T   e   m   p   o
0001320    r   a   r   y       b   o   o   t   s   t   r   a   p   p   i
0001340    n   g       s   t   u   f   f   .       A   n   y   t   h   i
0001360    n   g       i   n       h   e   r   e       g   e   t   s    
0001400    c   h   a   n   g   e   d       o   n   c   e       C   L    
0001420    s   t   a   r   t   s       w   o   r   k   i   n   g   .   "
0001440   \r                                                            
0001460            )  \r                                                
0001500            (   f   u   n   c   t   i   o   n   s       c   o   n
0001520    d   i   t   i   o   n   -   t   y   p   e   c   a   s   e    
0001540    c   o   n   d   i   t   i   o   n   -   b   l   o   c   k    
0001560    c   o   n   d   i   t   i   o   n   -   r   e   t   u   r   n
0001600    )   )  \r                                   (   c   o   m   s
0001620        (   *       |   ;   ;   |       "   I   n   t   e   r   n
0001640    a   l       s   t   u   f   f   .   "   )  \r                
0001660                                            (   e   x   p   o   r
0001700    t       (   v   a   r   i   a   b   l   e   s       %   c   o
0001720    n   d   i   t   i   o   n   -   t   y   p   e   s   -   r   e
0001740    a   l   )   )  \r                                            
0001760                (   f   u   n   c   t   i   o   n   s       d   e
0002000    f   a   u   l   t   -   p   r   o   c   e   e   d   -   r   e
0002020    p   o   r   t   )  \r                                        
0002040                    (   f   u   n   c   t   i   o   n   s       w
0002060    i   t   h   -   g   e   n   s   y   m   s       w   i   t   h
0002100    -   e   r   r   -   l   o   o   p   -   v   a   r   s       s
0002120    t   r   i   p   -   k   e   y   w   o   r   d   s       m   a
0002140    k   e   -   f   a   k   e   -   r   e   p   o   r   t   -   f
0002160    u   n   c   t   i   o   n      \r                            
0002200                                                            m   a
0002220    k   e   -   r   e   p   o   r   t   -   f   u   n   c   t   i
0002240    o   n       m   a   k   e   -   e   n   c   a   p   s   u   l
0002260    a   t   i   o   n       n   o   r   m   a   l   i   z   e   -
0002300    s   l   o   t   -   d   e   s   c   r   i   p   t   i   o   n
0002320    s      \r                                                    
0002340                                    e   x   t   r   a   c   t   -
0002360    c   o   n   d   i   t   i   o   n   -   b   i   n   d   i   n
0002400    g   s       n   o   r   m   a   l   i   z   e   -   c   o   n
0002420    d   i   t   i   o   n   -   c   l   a   u   s   e   s      \r
0002440                                                                 
0002460                        m   a   s   s   a   g   e   -   c   a   t
0002500    c   h   -   c   o   n   d   i   t   i   o   n   -   c   l   a
0002520    u   s   e   s       s   p   l   i   t   -   p   r   o   c   e
0002540    e   d   -   c   l   a   u   s   e   s       p   r   o   c   e
0002560    e   d   -   c   a   s   e   -   f   r   o   m   -   c   l   a
0002600    u   s   e      \r                                            
0002620                                            p   r   o   c   e   s
0002640    s   -   p   r   o   c   e   e   d   -   k   e   y   w   o   r
0002660    d   s       c   h   e   c   k   -   *   c   a   s   e   -   s
0002700    e   l   e   c   t   o   r       c   o   l   l   e   c   t   -
0002720    c   a   s   e   -   s   e   l   e   c   t   o   r   s      \r
0002740                                                                 
0002760                        n   o   -   p   r   o   c   e   e   d   -
0003000    t   e   s   t       %   p   r   e   f   i   x   -   s   y   m
0003020    b   o   l       %   s   u   f   f   i   x   -   s   y   m   b
0003040    o   l       p   r   o   c   e   e   d   -   a   r   g   -   c
0003060    o   l   l   e   c   t   o   r   )   )  \r                    
0003100                (   c   o   m   s       (   *       |   ;   ;   |
0003120       \r                                               "   U   s
0003140    e   r   -   v   i   s   i   b   l   e       f   o   r   m   s
0003160    .       T   h   e   s   e       s   h   o   u   l   d       a
0003200    l   l       b   e       e   x   t   e   r   n   a   l       s
0003220    y   m   b   o   l   s   .       A   n   y       o   t   h   e
0003240    r   s       s   h   o   u   l   d       b   e       i   n   t
0003260    e   r   n   a   l   .   "  \r                                
0003300                                        )  \r                    
0003320                                        (   f   u   n   c   t   i
0003340    o   n   s       d   e   f   i   n   e   -   c   o   n   d   i
0003360    t   i   o   n       c   l   :   c   h   e   c   k   -   t   y
0003400    p   e       c   l   :   e   t   y   p   e   c   a   s   e    
0003420    c   l   :   c   t   y   p   e   c   a   s   e       c   l   :
0003440    e   c   a   s   e       c   l   :   c   c   a   s   e      \r
0003460                                                                 
0003500                        c   l   :   a   s   s   e   r   t       h
0003520    a   n   d   l   e   r   -   b   i   n   d       c   o   n   d
0003540    i   t   i   o   n   -   b   i   n   d       c   o   n   d   i
0003560    t   i   o   n   -   c   a   s   e       r   e   a   l   -   c
0003600    o   n   d   i   t   i   o   n   -   c   a   s   e      \r    
0003620                                                                 
0003640                    i   g   n   o   r   e   -   e   r   r   o   r
0003660    s       p   r   o   c   e   e   d   -   c   a   s   e       r
0003700    e   a   l   -   p   r   o   c   e   e   d   -   c   a   s   e
0003720        d   e   f   i   n   e   -   p   r   o   c   e   e   d   -
0003740    f   u   n   c   t   i   o   n       c   a   t   c   h   -   a
0003760    b   o   r   t  \r                                            
0004000                                            )   )  \r            
0004020                        (   p   r   o   p       f   i   l   e   t
0004040    y   p   e       c   l   -   e   r   r   o   r   )  \r        
0004060                            (   d   e   c   l   a   r   e   \   :
0004100        d   o   n   t   e   v   a   l   @   l   o   a   d       d
0004120    o   e   v   a   l   @   c   o   m   p   i   l   e       d   o
0004140    n   t   c   o   p   y       c   o   m   p   i   l   e   r   v
0004160    a   r   s       (   a   d   d   v   a   r   s       (   n   l
0004200    a   m   a   )  \r                                            
0004220                                                                 
*
0004320            (   n   l   a   m   l   )  \r                        
0004340                                                                 
*
0004440                                (   l   a   m   a   )   )   )   )
0004460    )  \r  \r  \r  \r 006 004   (   *       |   ;   ;   |       "
0004500    T   e   m   p   o   r   a   r   y       b   o   o   t   s   t
0004520    r   a   p   p   i   n   g       s   t   u   f   f   .       A
0004540    n   y   t   h   i   n   g       i   n       h   e   r   e    
0004560    g   e   t   s       c   h   a   n   g   e   d       o   n   c
0004600    e       C   L       s   t   a   r   t   s       w   o   r   k
0004620    i   n   g   .   "   ) 006 001  \r  \r   (   d   e   f   m   a
0004640    c   r   o     006 002   c   o   n   d   i   t   i   o   n   -
0004660    t   y   p   e   c   a   s   e 006 001       (   o   b   j   e
0004700    c   t       &   r   e   s   t       c   l   a   u   s   e   s
0004720    )  \r               (   l   e   t  \r                   (   (
0004740    v   a   l       (   c   l   :   g   e   n   s   y   m   )   )
0004760    )  \r                   (   c   l   :   i   f       %   c   o
0005000    n   d   i   t   i   o   n   -   t   y   p   e   s   -   r   e
0005020    a   l       `   (   c   l   :   t   y   p   e   c   a   s   e
0005040        ,   o   b   j   e   c   t       ,   @   c   l   a   u   s
0005060    e   s   )  \r                                               `
0005100    (   l   e   t       (   (   ,   v   a   l       ,   o   b   j
0005120    e   c   t   )   )  \r                                        
0005140                                (   c   o   n   d  \r            
0005160                                                                 
0005200        ,   @   (   c   l   :   m   a   p   c   a   r       (   f
0005220    u   n   c   t   i   o   n       (   c   l   :   l   a   m   b
0005240    d   a  \r                                                    
0005260                                                                 
0005300                                                                (
0005320    c   l   a   u   s   e   )  \r                                
0005340                                                                 
*
0005400                    (   d   e   s   t   r   u   c   t   u   r   i
0005420    n   g   -   b   i   n   d  \r                                
0005440                                                                 
*
0005500                        (   s   e   l   e   c   t   o   r       .
0005520        b   o   d   y   )  \r                                    
0005540                                                                 
*
0005600                    c   l   a   u   s   e  \r                    
0005620                                                                 
*
0005660                                    (   c   l   :   i   f       (
0005700    e   q       s   e   l   e   c   t   o   r       t   )  \r    
0005720                                                                 
*
0006000                c   l   a   u   s   e  \r                        
0006020                                                                 
*
0006060                                                            `   (
0006100    (   c   o   n   d   i   t   i   o   n   -   t   y   p   e   p
0006120        ,   v   a   l       '   ,   s   e   l   e   c   t   o   r
0006140    )  \r                                                        
0006160                                                                 
*
0006220                                    ,   @   b   o   d   y   )   )
0006240    )   )   )  \r                                                
0006260                                                                 
0006300        c   l   a   u   s   e   s   )   )   )   )   )   )  \r  \r
0006320    (   d   e   f   m   a   c   r   o     006 002   c   o   n   d
0006340    i   t   i   o   n   -   b   l   o   c   k 006 001       (   t
0006360    a   g       &   b   o   d   y       f   o   r   m   s   )    
0006400    `   (   c   l   :   c   a   t   c   h       '   ,   t   a   g
0006420        ,   @   f   o   r   m   s   )   )  \r  \r   (   d   e   f
0006440    m   a   c   r   o     006 002   c   o   n   d   i   t   i   o
0006460    n   -   r   e   t   u   r   n 006 001       (   t   a   g    
0006500    &   o   p   t   i   o   n   a   l       r   e   s   u   l   t
0006520    )       `   (   c   l   :   t   h   r   o   w       '   ,   t
0006540    a   g       ,   r   e   s   u   l   t   )   )  \r  \r  \r  \r
0006560   \r 006 004   (   *       |   ;   ;   |       "   I   n   t   e
0006600    r   n   a   l       s   t   u   f   f   .   "   ) 006 001  \r
0006620   \r   (   *       F   O   L   L   O   W   I   N   G       D   E
0006640    F   I   N   I   T   I   O   N   S       E   X   P   O   R   T
0006660    E   D   )  \r  \r  \r   (   c   l   :   d   e   f   c   o   n
0006700    s   t   a   n   t     006 002   %   c   o   n   d   i   t   i
0006720    o   n   -   t   y   p   e   s   -   r   e   a   l 006 001    
0006740    n   i   l   )  \r  \r  \r  \r   (   *       E   N   D       E
0006760    X   P   O   R   T   E   D       D   E   F   I   N   I   T   I
0007000    O   N   S   )  \r  \r   (   d   e   f   m   a   c   r   o    
0007020  006 002   d   e   f   a   u   l   t   -   p   r   o   c   e   e
0007040    d   -   r   e   p   o   r   t 006 001       (   p   r   o   c
0007060    e   e   d   -   t   y   p   e   )       `   (   g   e   t    
0007100    ,   p   r   o   c   e   e   d   -   t   y   p   e       '   %
0007120    d   e   f   a   u   l   t   -   p   r   o   c   e   e   d   -
0007140    r   e   p   o   r   t  \r                                    
0007160                                                                 
*
0007220                                                        '   d   e
0007240    f   a   u   l   t   -   p   r   o   c   e   e   d   -   r   e
0007260    p   o   r   t   e   r   )   )  \r  \r   (   d   e   f   m   a
0007300    c   r   o     006 002   w   i   t   h   -   g   e   n   s   y
0007320    m   s 006 001       (   v   a   r   s       p   r   e   f   i
0007340    x       &   b   o   d   y       b   o   d   y   )  \r        
0007360        `   (   l   e   t       ,   (   m   a   p   c   a   r    
0007400    v   a   r   s       (   f   u   n   c   t   i   o   n       (
0007420    c   l   :   l   a   m   b   d   a       (   v   a   r   )  \r
0007440                                                                 
*
0007500                                    `   (   ,   v   a   r       (
0007520    g   e   n   s   y   m       ,   p   r   e   f   i   x   )   )
0007540    )   )   )       ,   @   b   o   d   y   )   )  \r  \r   (   d
0007560    e   f   m   a   c   r   o     006 002   w   i   t   h   -   e
0007600    r   r   -   l   o   o   p   -   v   a   r   s 006 001       (
0007620    p   r   e   f   i   x       &   b   o   d   y       b   o   d
0007640    y   )       `   (   w   i   t   h   -   g   e   n   s   y   m
0007660    s       (   v   a   l       b   l   o   c   k   -   n   a   m
0007700    e       a   g   a   i   n   )  \r                            
0007720                                                                 
*
0010000            ,   p   r   e   f   i   x  \r                        
0010020                                                                 
*
0010100                ,   @   b   o   d   y   )   )  \r  \r   (   c   l
0010120    :   d   e   f   u   n     006 002   s   t   r   i   p   -   k
0010140    e   y   w   o   r   d   s 006 001       (   a   r   g   s   )
0010160        (   c   l   :   v   a   l   u   e   s       ( 006 002   f
0010200    o   r 006 001     006 002   o   l   d 006 001       a   r   g
0010220    s     006 002   o   n 006 001       a   r   g   s     006 002
0010240    b   y 006 001       c   d   d   r  \r                        
0010260                                                                 
*
0010320                                  006 002   w   h   i   l   e 006
0010340  001       (   c   l   :   k   e   y   w   o   r   d   p       (
0010360    c   l   :   f   i   r   s   t       a   r   g   s   )   )  \r
0010400                                                                 
*
0010440                                                          006 002
0010460    c   o   l   l   e   c   t 006 001       (   l   i   s   t    
0010500    (   c   l   :   f   i   r   s   t       a   r   g   s   )  \r
0010520                                                                 
*
0010600                                                    (   c   l   :
0010620    s   e   c   o   n   d       a   r   g   s   )   )   )  \r    
0010640                                                                 
*
0010700                            a   r   g   s   )   )  \r  \r   (   c
0010720    l   :   d   e   f   u   n     006 002   m   a   k   e   -   f
0010740    a   k   e   -   r   e   p   o   r   t   -   f   u   n   c   t
0010760    i   o   n 006 001       (   d   a   t   u   m       b   o   u
0011000    n   d   -   v   a   r       &   o   p   t   i   o   n   a   l
0011020        e   n   c   a   p   s   u   l   a   t   i   o   n   )  \r
0011040                (   c   l   :   e   t   y   p   e   c   a   s   e
0011060        d   a   t   u   m       (   s   t   r   i   n   g       `
0011100    (   l   a   m   b   d   a       (   d   a   t   u   m       s
0011120    t   r   e   a   m   )  \r                                    
0011140                                                                 
0011160                                        ( 006 002   d   e   c   l
0011200    a   r   e 006 001       (   i   g   n   o   r   e       d   a
0011220    t   u   m   )   )  \r                                        
0011240                                                                 
0011260                                    (   c   l   :   w   r   i   t
0011300    e   -   s   t   r   i   n   g       ,   d   a   t   u   m    
0011320    s   t   r   e   a   m   )   )   )  \r                        
0011340                    (   l   i   s   t       `   (   l   a   m   b
0011360    d   a       (   ,   b   o   u   n   d   -   v   a   r       *
0011400    s   t   a   n   d   a   r   d   -   o   u   t   p   u   t   *
0011420    )  \r                                                        
0011440                        ,   (   c   l   :   i   f       (   n   u
0011460    l   l       e   n   c   a   p   s   u   l   a   t   i   o   n
0011500    )  \r                                                        
0011520                                                        d   a   t
0011540    u   m  \r                                                    
0011560                                                            `   (
0011600    l   e   t       ,   e   n   c   a   p   s   u   l   a   t   i
0011620    o   n       ,   d   a   t   u   m   )   )   )   )   )   )  \r
0011640   \r   (   c   l   :   d   e   f   u   n     006 002   m   a   k
0011660    e   -   r   e   p   o   r   t   -   f   u   n   c   t   i   o
0011700    n 006 001       (   d   a   t   u   m       b   o   u   n   d
0011720    -   v   a   r       &   o   p   t   i   o   n   a   l       t
0011740    y   p   e   -   n   a   m   e   )  \r               (   c   l
0011760    :   e   t   y   p   e   c   a   s   e       d   a   t   u   m
0012000        (   s   t   r   i   n   g       `   (   l   a   m   b   d
0012020    a       (   d   a   t   u   m       s   t   r   e   a   m   )
0012040   \r                                                            
0012060                                                                 
0012100                ( 006 002   d   e   c   l   a   r   e 006 001    
0012120    (   i   g   n   o   r   e       d   a   t   u   m   )   )  \r
0012140                                                                 
*
0012200            (   c   l   :   w   r   i   t   e   -   s   t   r   i
0012220    n   g       ,   d   a   t   u   m       s   t   r   e   a   m
0012240    )   )   )  \r                                           (   l
0012260    i   s   t       `   (   l   a   m   b   d   a       (   ,   b
0012300    o   u   n   d   -   v   a   r       *   s   t   a   n   d   a
0012320    r   d   -   o   u   t   p   u   t   *   )  \r                
0012340                                                                ,
0012360    (   c   l   :   i   f       t   y   p   e   -   n   a   m   e
0012400        `   ( 006 002   w   i   t   h 006 001       ,   t   y   p
0012420    e   -   n   a   m   e       ,   b   o   u   n   d   -   v   a
0012440    r       ,   d   a   t   u   m   )       d   a   t   u   m   )
0012460    )   )   )   )  \r  \r   (   c   l   :   d   e   f   u   n    
0012500  006 002   m   a   k   e   -   e   n   c   a   p   s   u   l   a
0012520    t   i   o   n 006 001       (   c   o   n   d   i   t   i   o
0012540    n   -   t   y   p   e       s   l   o   t   -   n   a   m   e
0012560    s   )  \r               (   m   a   p   c   a   r       (   c
0012600    l   :   r   e   m   o   v   e       '   -   -   d   u   m   m
0012620    y   -   s   l   o   t   -   -       s   l   o   t   -   n   a
0012640    m   e   s   )  \r                                           (
0012660    f   u   n   c   t   i   o   n       (   l   a   m   b   d   a
0012700        (   s   l   o   t   )  \r                                
0012720                                                            `   (
0012740    ,   s   l   o   t       (   ,   (   %   s   u   f   f   i   x
0012760    -   s   y   m   b   o   l       c   o   n   d   i   t   i   o
0013000    n   -   t   y   p   e       (   c   l   :   c   o   n   c   a
0013020    t   e   n   a   t   e       '   s   t   r   i   n   g       "
0013040    -   "  \r                                                    
0013060                                                                 
*
0013140                                        (   c   l   :   s   y   m
0013160    b   o   l   -   n   a   m   e       s   l   o   t   )   )   )
0013200       \r                                                        
0013220                                                                 
0013240                                c   o   n   d   i   t   i   o   n
0013260    )   )   )   )   )   )  \r  \r   (   c   l   :   d   e   f   u
0013300    n     006 002   n   o   r   m   a   l   i   z   e   -   s   l
0013320    o   t   -   d   e   s   c   r   i   p   t   i   o   n   s 006
0013340  001       (   s   l   o   t   s   )  \r               (   m   a
0013360    p   c   a   r       s   l   o   t   s       (   f   u   n   c
0013400    t   i   o   n       (   c   l   :   l   a   m   b   d   a    
0013420    (   s   l   o   t   )  \r                                    
0013440                                                                 
0013460                                        ( 006 002   i   f 006 001
0013500        (   l   i   s   t   p       s   l   o   t   )  \r        
0013520                                                                 
*
0013560                  006 002   t   h   e   n 006 001       ( 006 002
0013600    i   f 006 001       (   e   q   u   a   l       (   l   e   n
0013620    g   t   h       s   l   o   t   )  \r                        
0013640                                                                 
*
0013720    1   )  \r                                                    
0013740                                                                 
*
0014000          006 002   t   h   e   n 006 001       (   a   p   p   e
0014020    n   d       s   l   o   t       '   (   n   i   l       :   r
0014040    e   a   d   o   n   l   y       t   )   )  \r                
0014060                                                                 
*
0014120                                      006 002   e   l   s   e 006
0014140  001       `   (   ,   (   c   a   r       s   l   o   t   )    
0014160    ,   (   c   a   d   r       s   l   o   t   )       :   r   e
0014200    a   d   -   o   n   l   y       t  \r                        
0014220                                                                 
*
0014300                    ,   @   (   c   d   d   r       s   l   o   t
0014320    )   )   )  \r                                                
0014340                                                                 
0014360                                  006 002   e   l   s   e 006 001
0014400        `   (   ,   s   l   o   t       n   i   l       :   r   e
0014420    a   d   -   o   n   l   y       t   )   )   )   )   )   )  \r
0014440   \r   (   c   l   :   d   e   f   u   n     006 002   e   x   t
0014460    r   a   c   t   -   c   o   n   d   i   t   i   o   n   -   b
0014500    i   n   d   i   n   g   s 006 001       (   c   l   a   u   s
0014520    e   s   )  \r               (   m   a   p   c   a   r       c
0014540    l   a   u   s   e   s       (   f   u   n   c   t   i   o   n
0014560        (   c   l   :   l   a   m   b   d   a       (   c   l   a
0014600    u   s   e   )  \r                                            
0014620                                                                 
0014640                                        `   (   c   o   n   s    
0014660    '   ,   (   c   l   :   f   i   r   s   t       c   l   a   u
0014700    s   e   )       ,   (   c   l   :   s   e   c   o   n   d    
0014720    c   l   a   u   s   e   )   )   )   )   )   )  \r  \r   (   c
0014740    l   :   d   e   f   u   n     006 002   n   o   r   m   a   l
0014760    i   z   e   -   c   o   n   d   i   t   i   o   n   -   c   l
0015000    a   u   s   e   s 006 001       (   c   l   a   u   s   e   s
0015020    )  \r               (   m   a   p   c   o   n   c       c   l
0015040    a   u   s   e   s       (   f   u   n   c   t   i   o   n    
0015060    (   c   l   :   l   a   m   b   d   a  \r                    
0015100                                                                 
0015120                                            (   c   l   a   u   s
0015140    e   )  \r                                                    
0015160                                                                 
0015200            (   l   e   t       (   (   c   o   n   d   i   t   i
0015220    o   n   s       (   c   l   :   f   i   r   s   t       c   l
0015240    a   u   s   e   )   )   )  \r                                
0015260                                                                 
0015300                                                    (   c   l   :
0015320    t   y   p   e   c   a   s   e  \r                            
0015340                                                                 
0015360                                                            c   o
0015400    n   d   i   t   i   o   n   s  \r                            
0015420                                                                 
0015440                                                            (   l
0015460    i   s   t       (   c   l   :   i   f       (   e   q       (
0015500    c   l   :   f   i   r   s   t       c   o   n   d   i   t   i
0015520    o   n   s   )  \r                                            
0015540                                                                 
*
0015600                                                '   q   u   o   t
0015620    e   )  \r                                                    
0015640                                                                 
*
0015700                        (   c   l   :   e   r   r   o   r      \r
0015720                                                                 
*
0016000                                        "   B   a   d       c   o
0016020    n   d   i   t   i   o   n       s   p   e   c       ~   s   .
0016040        S   h   o   u   l   d       b   e       u   n   q   u   o
0016060    t   e   d   .   "      \r                                    
0016100                                                                 
*
0016160    c   o   n   d   i   t   i   o   n   s   )  \r                
0016200                                                                 
*
0016240                                                            (   m
0016260    a   p   c   a   r       c   o   n   d   i   t   i   o   n   s
0016300   \r                                                            
0016320                                                                 
*
0016360                                            (   f   u   n   c   t
0016400    i   o   n       (   c   l   :   l   a   m   b   d   a  \r    
0016420                                                                 
*
0016520                (   c   )  \r                                    
0016540                                                                 
*
0016620                                                (   c   l   :   i
0016640    f       (   c   l   :   s   y   m   b   o   l   p       c   )
0016660   \r                                                            
0016700                                                                 
*
0016760                                                    (   c   o   n
0017000    s       c       (   c   d   r       c   l   a   u   s   e   )
0017020    )  \r                                                        
0017040                                                                 
*
0017120                                                        (   c   l
0017140    :   e   r   r   o   r      \r                                
0017160                                                                 
*
0017220        "   B   a   d       c   o   n   d   i   t   i   o   n    
0017240    s   p   e   c       ~   s   .       S   h   o   u   l   d    
0017260    b   e       l   i   s   t       o   f       u   n   q   u   o
0017300    t   e   d       s   y   m   b   o   l   s   .   "      \r    
0017320                                                                 
*
0017440        c   o   n   d   i   t   i   o   n   s   )   )   )   )   )
0017460    )   )  \r                                                    
0017500                                                                 
0017520                                    (   c   l   :   s   y   m   b
0017540    o   l       (   l   i   s   t       c   l   a   u   s   e   )
0017560    )  \r                                                        
0017600                                                                 
0017620                                (   t       (   c   l   :   e   r
0017640    r   o   r      \r                                            
0017660                                                                 
0017700                                                        "   B   a
0017720    d       c   o   n   d   i   t   i   o   n       s   p   e   c
0017740        ~   s   .       S   h   o   u   l   d       b   e       s
0017760    y   m   b   o   l       o   r       l   i   s   t       o   f
0020000        s   y   m   b   o   l   s   .   "      \r                
0020020                                                                 
*
0020060                                                c   o   n   d   i
0020100    t   i   o   n   s   )   )   )   )   )   )   )   )  \r  \r   (
0020120    c   l   :   d   e   f   u   n     006 002   m   a   s   s   a
0020140    g   e   -   c   a   t   c   h   -   c   o   n   d   i   t   i
0020160    o   n   -   c   l   a   u   s   e   s 006 001       (   c   l
0020200    a   u   s   e   s       i   n   i   t   -   v   a   l   u   e
0020220    )  \r               (   m   a   p   c   a   r       c   l   a
0020240    u   s   e   s       (   f   u   n   c   t   i   o   n       (
0020260    c   l   :   l   a   m   b   d   a  \r                        
0020300                                                                 
0020320                                    (   c   l   a   u   s   e   )
0020340   \r                                                            
0020360                                                                (
0020400    d   e   s   t   r   u   c   t   u   r   i   n   g   -   b   i
0020420    n   d  \r                                                    
0020440                                                                 
0020460            (   s   e   l   e   c   t   o   r       b   v   l    
0020500    .       f   o   r   m   s   )  \r                            
0020520                                                                 
0020540                                    c   l   a   u   s   e  \r    
0020560                                                                 
0020600                                                            (   c
0020620    l   :   i   f       (   n   u   l   l       b   v   l   )  \r
0020640                                                                 
*
0020700                            (   c   o   n   s       s   e   l   e
0020720    c   t   o   r       f   o   r   m   s   )  \r                
0020740                                                                 
*
0021000            (   l   i   s   t       s   e   l   e   c   t   o   r
0021020        `   (   l   e   t       (   ,   (   l   i   s   t       (
0021040    c   a   r       b   v   l   )  \r                            
0021060                                                                 
*
0021140                                                    i   n   i   t
0021160    -   v   a   l   u   e   )       ,   @   (   c   d   r       b
0021200    v   l   )   )  \r                                            
0021220                                                                 
*
0021300    ,   @   f   o   r   m   s   )   )   )   )   )   )   )   )  \r
0021320   \r   (   c   l   :   d   e   f   u   n     006 002   s   p   l
0021340    i   t   -   p   r   o   c   e   e   d   -   c   l   a   u   s
0021360    e   s 006 001       (   c   l   a   u   s   e   s       t   a
0021400    g   )  \r               (   l   e   t  \r                   (
0021420    c   a   s   e   s       b   o   d   i   e   s   )  \r        
0021440            ( 006 002   f   o   r 006 001       c   l   a   u   s
0021460    e     006 002   i   n 006 001       c   l   a   u   s   e   s
0021500      006 002   a   s 006 001       s   e   l   e   c   t   o   r
0021520      006 002   f   r   o   m 006 001       0  \r                
0021540              006 002   d   o 006 001       (   d   e   s   t   r
0021560    u   c   t   u   r   i   n   g   -   b   i   n   d  \r        
0021600                                        (   n   a   m   e       v
0021620    a   r   s   )  \r                                            
0021640    c   l   a   u   s   e  \r                                    
0021660            (   c   l   :   m   u   l   t   i   p   l   e   -   v
0021700    a   l   u   e   -   b   i   n   d  \r                        
0021720                            (   t   e   s   t       r   e   p   o
0021740    r   t       t   a   i   l   )  \r                            
0021760                        (   p   r   o   c   e   s   s   -   p   r
0022000    o   c   e   e   d   -   k   e   y   w   o   r   d   s       n
0022020    a   m   e       (   c   d   d   r       c   l   a   u   s   e
0022040    )   )  \r                                                   (
0022060  006 002   i   f 006 001       (   n   u   l   l       n   a   m
0022100    e   )  \r                                                    
0022120              006 002   t   h   e   n 006 001       (   c   l   :
0022140    u   n   l   e   s   s       t   e   s   t       (   c   l   :
0022160    s   e   t   f       t   e   s   t       '   t   r   u   e   )
0022200    )  \r                                                        
0022220                                (   c   l   :   u   n   l   e   s
0022240    s       r   e   p   o   r   t       (   c   l   :   e   r   r
0022260    o   r      \r                                                
0022300                                                                 
*
0022340            "   U   n   n   a   m   e   d       p   r   o   c   e
0022360    e   d       c   a   s   e   s       m   u   s   t       h   a
0022400    v   e       a       r   e   p   o   r   t       m   e   t   h
0022420    o   d   :       ~   S   "      \r                            
0022440                                                                 
*
0022500                                c   l   a   u   s   e   )   )  \r
0022520                                                          006 002
0022540    e   l   s   e 006 001       (   c   l   :   u   n   l   e   s
0022560    s       t   e   s   t       ( 006 002   i   f 006 001       (
0022600    n   o   t       (   g   e   t       n   a   m   e       '   %
0022620    d   e   f   a   u   l   t   -   p   r   o   c   e   e   d   -
0022640    t   e   s   t   )   )  \r                                    
0022660                                                                 
0022700                                                          006 002
0022720    t   h   e   n 006 001       (   c   l   :   w   a   r   n    
0022740   \r                                                            
0022760                                                                 
0023000                                                    "   N   o    
0023020    t   e   s   t       s   p   e   c   i   f   i   e   d       f
0023040    o   r       p   r   o   c   e   e   d       t   y   p   e    
0023060    ~   A   :       m   a   y       b   e       u   n   d   e   f
0023100    i   n   e   d   .   "      \r                                
0023120                                                                 
*
0023160                                                n   a   m   e   )
0023200    )   )  \r                                                    
0023220                            (   c   l   :   u   n   l   e   s   s
0023240        r   e   p   o   r   t       (   c   l   :   s   e   t   f
0023260        r   e   p   o   r   t       `   (   c   l   :   l   a   m
0023300    b   d   a       (   p   c       s   t   r   e   a   m   )  \r
0023320                                                                 
*
0023400                                                        (   c   l
0023420    :   f   u   n   c   a   l   l       (   d   e   f   a   u   l
0023440    t   -   p   r   o   c   e   e   d   -   r   e   p   o   r   t
0023460   \r                                                            
0023500                                                                 
*
0023560                                                '   ,   n   a   m
0023600    e   )  \r                                                    
0023620                                                                 
*
0023700                                p   c       s   t   r   e   a   m
0023720    )   )   )   )   )  \r                                        
0023740            (   c   l   :   p   u   s   h       `   (   m   a   k
0023760    e   -   p   r   o   c   e   e   d   -   c   a   s   e       :
0024000    n   a   m   e       '   ,   n   a   m   e       :   t   a   g
0024020        ,   t   a   g       :   s   e   l   e   c   t   o   r    
0024040    ,   s   e   l   e   c   t   o   r       :   t   e   s   t  \r
0024060                                                                 
0024100                                                        ,   (   a
0024120    n   d       t   e   s   t       `   (   f   u   n   c   t   i
0024140    o   n       ,   t   e   s   t   )   )       :   r   e   p   o
0024160    r   t       (   f   u   n   c   t   i   o   n       ,   r   e
0024200    p   o   r   t   )   )       c   a   s   e   s   )  \r        
0024220                                            (   c   l   :   p   u
0024240    s   h       `   (   ,   s   e   l   e   c   t   o   r       (
0024260    f   u   n   c   t   i   o   n       (   c   l   :   l   a   m
0024300    b   d   a       ,   v   a   r   s       ,   @   t   a   i   l
0024320    )   )   )       b   o   d   i   e   s   )   )   )   )  \r    
0024340                (   c   l   :   v   a   l   u   e   s       (   r
0024360    e   v   e   r   s   e       c   a   s   e   s   )  \r        
0024400                                        (   r   e   v   e   r   s
0024420    e       b   o   d   i   e   s   )   )   )   )  \r  \r   (   c
0024440    l   :   d   e   f   u   n     006 002   p   r   o   c   e   e
0024460    d   -   c   a   s   e   -   f   r   o   m   -   c   l   a   u
0024500    s   e 006 001       (   c   l   a   u   s   e       t   a   g
0024520        d   u   m   m   y   )  \r               (   d   e   s   t
0024540    r   u   c   t   u   r   i   n   g   -   b   i   n   d  \r    
0024560                (   n   a   m   e       v   a   r   s       .    
0024600    t   a   i   l   )  \r                   c   l   a   u   s   e
0024620   \r                   (   c   l   :   m   u   l   t   i   p   l
0024640    e   -   v   a   l   u   e   -   b   i   n   d  \r            
0024660            (   t   e   s   t       r   e   p   o   r   t       b
0024700    o   d   y   )  \r                       (   p   r   o   c   e
0024720    s   s   -   p   r   o   c   e   e   d   -   k   e   y   w   o
0024740    r   d   s       n   a   m   e       t   a   i   l   )  \r    
0024760                    ( 006 002   i   f 006 001       (   n   u   l
0025000    l       n   a   m   e   )  \r                                
0025020      006 002   t   h   e   n 006 001       (   c   l   :   u   n
0025040    l   e   s   s       t   e   s   t       (   c   l   :   s   e
0025060    t   f       t   e   s   t       '   t   r   u   e   )   )  \r
0025100                                                            (   c
0025120    l   :   u   n   l   e   s   s       r   e   p   o   r   t    
0025140    (   c   l   :   e   r   r   o   r       "   U   n   n   a   m
0025160    e   d       p   r   o   c   e   e   d       c   a   s   e   s
0025200        m   u   s   t       h   a   v   e       a       r   e   p
0025220    o   r   t       m   e   t   h   o   d   :       ~   S   "    
0025240   \r                                                            
0025260                                                                 
0025300                                    c   l   a   u   s   e   )   )
0025320   \r                             006 002   e   l   s   e 006 001
0025340        (   c   l   :   u   n   l   e   s   s       t   e   s   t
0025360        ( 006 002   i   f 006 001       (   n   o   t       (   g
0025400    e   t       n   a   m   e       '   %   d   e   f   a   u   l
0025420    t   -   p   r   o   c   e   e   d   -   t   e   s   t   )   )
0025440   \r                                                            
0025460                                                                 
0025500      006 002   t   h   e   n 006 001       (   c   l   :   w   a
0025520    r   n      \r                                                
0025540                                                                 
0025560                                                                "
0025600    N   o       t   e   s   t       s   p   e   c   i   f   i   e
0025620    d       f   o   r       p   r   o   c   e   e   d       t   y
0025640    p   e       ~   A   :       m   a   y       b   e       u   n
0025660    d   e   f   i   n   e   d   .   "      \r                    
0025700                                                                 
*
0025740                                n   a   m   e   )   )   )  \r    
0025760                                                (   c   l   :   u
0026000    n   l   e   s   s       r   e   p   o   r   t       (   c   l
0026020    :   s   e   t   f       r   e   p   o   r   t       `   (   c
0026040    l   :   l   a   m   b   d   a       (   p   c       s   t   r
0026060    e   a   m   )  \r                                            
0026100                                                                 
*
0026140                                                (   c   l   :   f
0026160    u   n   c   a   l   l       (   d   e   f   a   u   l   t   -
0026200    p   r   o   c   e   e   d   -   r   e   p   o   r   t  \r    
0026220                                                                 
*
0026320            '   ,   n   a   m   e   )  \r                        
0026340                                                                 
*
0026420                                p   c       s   t   r   e   a   m
0026440    )   )   )   )   )  \r                       `   (   m   a   k
0026460    e   -   r   e   a   l   -   p   r   o   c   e   e   d   -   c
0026500    a   s   e       :   n   a   m   e       '   ,   n   a   m   e
0026520        :   t   a   g       ,   t   a   g       :   c   o   n   t
0026540    i   n   u   a   t   i   o   n  \r                            
0026560                            (   f   u   n   c   t   i   o   n    
0026600    (   c   l   :   l   a   m   b   d   a       (   &   o   p   t
0026620    i   o   n   a   l       ,   @   (   o   r       v   a   r   s
0026640        (   l   i   s   t       d   u   m   m   y   )   )   )  \r
0026660                                                                 
0026700                                                            ,   @
0026720    b   o   d   y   )   )  \r                                    
0026740                    :   t   e   s   t  \r                        
0026760                                ,   (   a   n   d       t   e   s
0027000    t       `   (   f   u   n   c   t   i   o   n       ,   t   e
0027020    s   t   )   )       :   r   e   p   o   r   t       (   f   u
0027040    n   c   t   i   o   n       ,   r   e   p   o   r   t   )   )
0027060    )   )   )  \r  \r   (   c   l   :   d   e   f   u   n     006
0027100  002   p   r   o   c   e   s   s   -   p   r   o   c   e   e   d
0027120    -   k   e   y   w   o   r   d   s 006 001       (   n   a   m
0027140    e       a   r   g   )  \r               (   l   e   t       (
0027160    t   e   s   t       r   e   p   o   r   t   )  \r            
0027200                        (   c   l   :   m   u   l   t   i   p   l
0027220    e   -   v   a   l   u   e   -   b   i   n   d  \r            
0027240                            (   k   e   y   s       t   a   i   l
0027260    )  \r                                       (   s   t   r   i
0027300    p   -   k   e   y   w   o   r   d   s       a   r   g   )  \r
0027320                                        ( 006 002   |   f   o   r
0027340    | 006 001       p   a   i   r     006 002   |   i   n   | 006
0027360  001       k   e   y   s  \r                                    
0027400              006 002   |   d   o   | 006 001       (   d   e   s
0027420    t   r   u   c   t   u   r   i   n   g   -   b   i   n   d    
0027440    (   k   e   y       v   a   l   u   e   )  \r                
0027460                                                                 
0027500                    p   a   i   r  \r                            
0027520                                                                 
0027540        (   c   a   s   e       k   e   y       (   :   t   e   s
0027560    t       (   c   l   :   i   f       t   e   s   t       (   c
0027600    l   :   e   r   r   o   r      \r                            
0027620                                                                 
*
0027660                                            "   D   u   p   l   i
0027700    c   a   t   e       t   e   s   t       f   o   r   m       s
0027720    p   e   c   i   f   i   e   d       f   o   r       p   r   o
0027740    c   e   e   d       t   y   p   e       ~   S   .   "      \r
0027760                                                                 
*
0030040                                                    n   a   m   e
0030060    )   )  \r                                                    
0030100                                                                 
0030120                                                    (   c   l   :
0030140    s   e   t   f       t   e   s   t       v   a   l   u   e   )
0030160    )  \r                                                        
0030200                                                                 
0030220    (   :   c   o   n   d   i   t   i   o   n       (   c   l   :
0030240    i   f       t   e   s   t       (   c   l   :   e   r   r   o
0030260    r      \r                                                    
0030300                                                                 
*
0030340                    "   D   u   p   l   i   c   a   t   e       t
0030360    e   s   t       f   o   r   m       s   p   e   c   i   f   i
0030400    e   d       f   o   r       p   r   o   c   e   e   d       t
0030420    y   p   e       ~   S   .   "      \r                        
0030440                                                                 
*
0030520                                n   a   m   e   )   )  \r        
0030540                                                                 
*
0030600                (   c   l   :   s   e   t   f       t   e   s   t
0030620        `   (   c   l   :   l   a   m   b   d   a       (   c   )
0030640   \r                                                            
0030660                                                                 
*
0030720                                                    (   c   o   n
0030740    d   i   t   i   o   n   -   t   y   p   e   p       c       '
0030760    ,   v   a   l   u   e   )   )   )   )  \r                    
0031000                                                                 
0031020                                        (   :   r   e   p   o   r
0031040    t   -   f   u   n   c   t   i   o   n       (   c   l   :   i
0031060    f       r   e   p   o   r   t       (   c   l   :   e   r   r
0031100    o   r      \r                                                
0031120                                                                 
*
0031160                "   D   u   p   l   i   c   a   t   e       r   e
0031200    p   o   r   t       f   o   r   m       s   p   e   c   i   f
0031220    i   e   d       f   o   r       p   r   o   c   e   e   d    
0031240    t   y   p   e       ~   S   .   "      \r                    
0031260                                                                 
*
0031360    n   a   m   e   )   )  \r                                    
0031400                                                                 
0031420                                                    (   c   l   :
0031440    s   e   t   f       r   e   p   o   r   t       v   a   l   u
0031460    e   )   )  \r                                                
0031500                                                                 
0031520            (   :   r   e   p   o   r   t       (   c   l   :   i
0031540    f       r   e   p   o   r   t       (   c   l   :   e   r   r
0031560    o   r      \r                                                
0031600                                                                 
*
0031640                "   D   u   p   l   i   c   a   t   e       r   e
0031660    p   o   r   t       f   o   r   m       s   p   e   c   i   f
0031700    i   e   d       f   o   r       p   r   o   c   e   e   d    
0031720    t   y   p   e       ~   S   .   "      \r                    
0031740                                                                 
*
0032020                                n   a   m   e   )   )  \r        
0032040                                                                 
*
0032100                (   c   l   :   s   e   t   f       r   e   p   o
0032120    r   t       (   m   a   k   e   -   r   e   p   o   r   t   -
0032140    f   u   n   c   t   i   o   n       v   a   l   u   e       '
0032160    p   r   o   c   e   e   d   -   c   a   s   e   )   )   )  \r
0032200                                                                 
0032220                                                            (   c
0032240    l   :   o   t   h   e   r   w   i   s   e       (   c   l   :
0032260    c   e   r   r   o   r       "   I   g   n   o   r   e       k
0032300    e   y   /   v   a   l   u   e       p   a   i   r   "      \r
0032320                                                                 
*
0032400                "   I   l   l   e   g   a   l       k   e   y   w
0032420    o   r   d       ~   S       i   n       p   r   o   c   e   e
0032440    d       c   a   s   e       ~   S   .   "       k   e   y    
0032460    n   a   m   e   )  \r                                        
0032500                                                                 
0032520                                                )   )   )   )  \r
0032540                                        (   c   l   :   v   a   l
0032560    u   e   s       t   e   s   t       r   e   p   o   r   t    
0032600    t   a   i   l   )   )   )   )  \r  \r   (   c   l   :   d   e
0032620    f   u   n     006 002   c   h   e   c   k   -   *   c   a   s
0032640    e   -   s   e   l   e   c   t   o   r 006 001       (   s   e
0032660    l   e   c   t   o   r       n   a   m   e   )       (   c   l
0032700    :   i   f       (   o   r       (   e   q       s   e   l   e
0032720    c   t   o   r       '   t   )  \r                            
0032740                                                                 
*
0033020                (   e   q       s   e   l   e   c   t   o   r    
0033040    '   c   l   :   o   t   h   e   r   w   i   s   e   )   )  \r
0033060                                                                 
*
0033140                            (   c   l   :   e   r   r   o   r    
0033160    "   ~   A       n   o   t       a   l   l   o   w   e   d    
0033200    i   n       t   h   e       ~   A       f   o   r   m   .   "
0033220       \r                                                        
0033240                                                                 
*
0033300                                                                s
0033320    e   l   e   c   t   o   r       n   a   m   e   )  \r        
0033340                                                                 
*
0033420                    s   e   l   e   c   t   o   r   )   )  \r  \r
0033440    (   c   l   :   d   e   f   u   n     006 002   c   o   l   l
0033460    e   c   t   -   c   a   s   e   -   s   e   l   e   c   t   o
0033500    r   s 006 001       (   c   l   a   u   s   e   s       n   a
0033520    m   e   )  \r               (   m   a   p   c   o   n   c    
0033540    c   l   a   u   s   e   s       (   f   u   n   c   t   i   o
0033560    n       (   c   l   :   l   a   m   b   d   a       (   c   l
0033600    a   u   s   e   )  \r                                        
0033620                                                                 
0033640                                                ( 006 002   i   f
0033660  006 001       (   a   n   d       (   c   l   :   c   o   n   s
0033700    p       (   c   a   r       c   l   a   u   s   e   )   )  \r
0033720                                                                 
*
0033760                                                            (   f
0034000    m   e   m   b       n   a   m   e       '   (   c   l   :   e
0034020    c   a   s   e       c   l   :   c   c   a   s   e   )   )   )
0034040   \r                                                            
0034060                                                                 
0034100                                          006 002   t   h   e   n
0034120  006 001       (   c   l   :   c   o   p   y   -   l   i   s   t
0034140        (   c   a   r       c   l   a   u   s   e   )   )  \r    
0034160                                                                 
*
0034220                          006 002   e   l   s   e 006 001       (
0034240    l   i   s   t       (   c   h   e   c   k   -   *   c   a   s
0034260    e   -   s   e   l   e   c   t   o   r       (   c   a   r    
0034300    c   l   a   u   s   e   )  \r                                
0034320                                                                 
*
0034400        n   a   m   e   )   )   )   )   )   )   )  \r  \r   (   c
0034420    l   :   d   e   f   u   n     006 002   n   o   -   p   r   o
0034440    c   e   e   d   -   t   e   s   t 006 001       (   n   a   m
0034460    e       &   a   u   x       o   n   c   e   )  \r            
0034500    (   p   r   o   c   e   e   d   -   c   a   s   e       (   h
0034520    a   n   d   l   e   r   -   b   i   n   d       (   (   n   o
0034540    -   p   r   o   c   e   e   d   -   t   e   s   t       (   f
0034560    u   n   c   t   i   o   n       (   c   l   :   l   a   m   b
0034600    d   a  \r                                                    
0034620                                                                 
*
0034660                                                                (
0034700    c   )  \r                                                    
0034720                                                                 
*
0034760                                                                (
0035000    c   l   :   w   h   e   n       (   e   q       (   n   o   -
0035020    p   r   o   c   e   e   d   -   t   e   s   t   -   n   a   m
0035040    e       c   )  \r                                            
0035060                                                                 
*
0035140                                                            n   a
0035160    m   e   )  \r                                                
0035200                                                                 
*
0035260                                (   c   l   :   i   f       o   n
0035300    c   e       (   c   l   :   t   h   r   o   w       '  \r    
0035320                                                                 
*
0035440                s   k   i   p   -   p   r   o   c   e   e   d   -
0035460    c   a   s   e      \r                                        
0035500                                                                 
*
0035600                                                    n   i   l   )
0035620   \r                                                            
0035640                                                                 
*
0035720                                                (   c   l   :   s
0035740    e   t   f       o   n   c   e       t   )   )   )   )   )   )
0035760    )  \r                                                        
0036000                                            (   c   l   :   e   r
0036020    r   o   r       '   n   o   -   p   r   o   c   e   e   d   -
0036040    t   e   s   t       :   n   a   m   e       n   a   m   e   )
0036060    )  \r                                           (   n   i   l
0036100        n   i   l       :   r   e   p   o   r   t       "   U   s
0036120    e       F   A   L   S   E       f   o   r       t   h   e    
0036140    t   e   s   t   "       :   c   o   n   d   i   t   i   o   n
0036160        n   o   -   p   r   o   c   e   e   d   -   t   e   s   t
0036200        (   f   u   n   c   t   i   o   n       f   a   l   s   e
0036220    )   )  \r                                           (   p   r
0036240    o   c   e   e   d       n   i   l       :   r   e   p   o   r
0036260    t       "   M   a   k   e       T   R   U   E       t   h   e
0036300        d   e   f   a   u   l   t       t   e   s   t   "       :
0036320    c   o   n   d   i   t   i   o   n       n   o   -   p   r   o
0036340    c   e   e   d   -   t   e   s   t  \r                        
0036360                                                (   c   l   :   s
0036400    e   t   f       (   d   e   f   a   u   l   t   -   p   r   o
0036420    c   e   e   d   -   t   e   s   t       n   a   m   e   )  \r
0036440                                                                 
0036460                                    (   f   u   n   c   t   i   o
0036500    n       t   r   u   e   )   )   )   )   )  \r  \r   (   c   l
0036520    :   d   e   f   u   n     006 002   %   p   r   e   f   i   x
0036540    -   s   y   m   b   o   l 006 001       (   p   r   e   f   i
0036560    x       c   l   :   s   y   m   b   o   l   )       (   c   l
0036600    :   i   n   t   e   r   n       (   c   l   :   c   o   n   c
0036620    a   t   e   n   a   t   e       '   s   t   r   i   n   g    
0036640    p   r   e   f   i   x       (   c   l   :   s   y   m   b   o
0036660    l   -   n   a   m   e  \r                                    
0036700                                                                 
*
0037000                                                            c   l
0037020    :   s   y   m   b   o   l   )   )  \r                        
0037040                                                                 
*
0037100                                                        (   c   l
0037120    :   s   y   m   b   o   l   -   p   a   c   k   a   g   e    
0037140    c   l   :   s   y   m   b   o   l   )   )   )  \r  \r   (   c
0037160    l   :   d   e   f   u   n     006 002   %   s   u   f   f   i
0037200    x   -   s   y   m   b   o   l 006 001       (   c   l   :   s
0037220    y   m   b   o   l       s   u   f   f   i   x   )       (   c
0037240    l   :   i   n   t   e   r   n       (   c   l   :   c   o   n
0037260    c   a   t   e   n   a   t   e       '   s   t   r   i   n   g
0037300        (   c   l   :   s   y   m   b   o   l   -   n   a   m   e
0037320       \r                                                        
0037340                                                                 
*
0037440                                    c   l   :   s   y   m   b   o
0037460    l   )  \r                                                    
0037500                                                                 
*
0037560        s   u   f   f   i   x   )  \r                            
0037600                                                                 
*
0037640                                                    (   c   l   :
0037660    s   y   m   b   o   l   -   p   a   c   k   a   g   e       c
0037700    l   :   s   y   m   b   o   l   )   )   )  \r  \r   (   d   e
0037720    f   m   a   c   r   o     006 002   p   r   o   c   e   e   d
0037740    -   a   r   g   -   c   o   l   l   e   c   t   o   r 006 001
0037760        (   n   a   m   e   )       "   F   u   n   c   t   i   o
0040000    n       t   h   a   t       c   o   l   l   e   c   t   s    
0040020    u   s   e   r   -   s   p   e   c   i   f   i   e   d       o
0040040    p   t   i   o   n   a   l       a   r   g   s       (   e   x
0040060    c   l   u   d   i   n   g       t   h   e       c   o   n   d
0040100    i   t   i   o   n   )       f   o   r       a       n   a   m
0040120    e   d       p   r   o   c   e   e   d       c   a   s   e   .
0040140    "  \r               `   (   g   e   t       ,   n   a   m   e
0040160        '   %   p   r   o   c   e   e   d   -   a   r   g   -   c
0040200    o   l   l   e   c   t   o   r   )   )  \r  \r  \r  \r  \r 006
0040220  004   (   *       |   ;   ;   |       "   U   s   e   r   -   v
0040240    i   s   i   b   l   e       f   o   r   m   s   .       T   h
0040260    e   s   e       s   h   o   u   l   d       a   l   l       b
0040300    e       e   x   t   e   r   n   a   l       s   y   m   b   o
0040320    l   s   .       A   n   y       o   t   h   e   r   s       s
0040340    h   o   u   l   d       b   e       i   n   t   e   r   n   a
0040360    l   .   "   ) 006 001  \r  \r   (   d   e   f   d   e   f   i
0040400    n   e   r     006 002   d   e   f   i   n   e   -   c   o   n
0040420    d   i   t   i   o   n 006 001  \r               s   t   r   u
0040440    c   t   u   r   e   s  \r               (   n   a   m   e    
0040460    p   a   r   e   n   t   -   t   y   p   e       &   r   e   s
0040500    t       a   r   g   s   )  \r               "   D   e   f   i
0040520    n   e   s       a       n   e   w       c   o   n   d   i   t
0040540    i   o   n       t   y   p   e   "  \r               (   l   e
0040560    t  \r                   (   (   c   l   a   s   s   -   o   p
0040600    t   i   o   n   s       `   (   ,   @   (   c   l   :   i   f
0040620        %   c   o   n   d   i   t   i   o   n   -   t   y   p   e
0040640    s   -   r   e   a   l       '   (   (   :   p   r   i   n   t
0040660    -   f   u   n   c   t   i   o   n       %   p   r   i   n   t
0040700    -   c   o   n   d   i   t   i   o   n   )   )  \r            
0040720                                                                 
0040740                                                    '   (   (   :
0040760    t   y   p   e       l   i   s   t   )  \r                    
0041000                                                                 
0041020                                                    :   n   a   m
0041040    e   d   )   )       (   :   c   o   n   s   t   r   u   c   t
0041060    o   r       ,   (   %   p   r   e   f   i   x   -   s   y   m
0041100    b   o   l       "   %   M   A   K   E   -   "       n   a   m
0041120    e   )   )  \r                                                
0041140                                                                 
0041160    (   :   c   o   p   i   e   r       n   i   l   )  \r        
0041200                                                                 
0041220                                            (   :   p   r   e   d
0041240    i   c   a   t   e       n   i   l   )   )   )  \r            
0041260            r   e   p   o   r   t   e   r       h   a   n   d   l
0041300    e   r       e   n   c   a   p   s   u   l   a   t   i   o   n
0041320    )  \r                   (   c   l   :   m   u   l   t   i   p
0041340    l   e   -   v   a   l   u   e   -   b   i   n   d  \r        
0041360                (   k   e   y   s       s   l   o   t   -   d   e
0041400    s   c   r   i   p   t   i   o   n   s   )  \r                
0041420        (   s   t   r   i   p   -   k   e   y   w   o   r   d   s
0041440        a   r   g   s   )  \r                       (   c   l   :
0041460    s   e   t   f       s   l   o   t   -   d   e   s   c   r   i
0041500    p   t   i   o   n   s       (   n   o   r   m   a   l   i   z
0041520    e   -   s   l   o   t   -   d   e   s   c   r   i   p   t   i
0041540    o   n   s       s   l   o   t   -   d   e   s   c   r   i   p
0041560    t   i   o   n   s   )   )  \r                       (   a   n
0041600    d       (   n   e   q       p   a   r   e   n   t   -   t   y
0041620    p   e       n   a   m   e   )  \r                            
0041640                (   l   e   t   *       (   (   a   l   l   -   s
0041660    u   p   e   r   -   s   l   o   t   s       (   s   l   o   t
0041700    -   l   i   s   t       p   a   r   e   n   t   -   t   y   p
0041720    e   )   )  \r                                                
0041740                        (   r   e   d   e   f   i   n   e   d   -
0041760    s   l   o   t   s       ( 006 002   f   o   r 006 001       s
0042000    l   o   t     006 002   i   n 006 001       s   l   o   t   -
0042020    d   e   s   c   r   i   p   t   i   o   n   s     006 002   w
0042040    h   e   n 006 001       (   c   l   :   m   e   m   b   e   r
0042060        (   c   a   r       s   l   o   t   )  \r                
0042100                                                                 
*
0042200                                        a   l   l   -   s   u   p
0042220    e   r   -   s   l   o   t   s   )  \r                        
0042240                                                                 
0042260                                                              006
0042300  002   c   o   l   l   e   c   t 006 001       s   l   o   t   )
0042320    )   )  \r                                                    
0042340                (   c   l   :   p   u   s   h       (   l   i   s
0042360    t   *       :   i   n   c   l   u   d   e       p   a   r   e
0042400    n   t   -   t   y   p   e       r   e   d   e   f   i   n   e
0042420    d   -   s   l   o   t   s   )  \r                            
0042440                                                                 
0042460    c   l   a   s   s   -   o   p   t   i   o   n   s   )  \r    
0042500                                                                (
0042520    c   l   :   s   e   t   f       s   l   o   t   -   d   e   s
0042540    c   r   i   p   t   i   o   n   s       ( 006 002   f   o   r
0042560  006 001       s   l   o   t     006 002   i   n 006 001       s
0042600    l   o   t   -   d   e   s   c   r   i   p   t   i   o   n   s
0042620   \r                                                            
0042640                                                                 
0042660                                                              006
0042700  002   u   n   l   e   s   s 006 001       (   c   l   :   m   e
0042720    m   b   e   r       s   l   o   t       r   e   d   e   f   i
0042740    n   e   d   -   s   l   o   t   s   )     006 002   c   o   l
0042760    l   e   c   t 006 001       s   l   o   t   )   )   )  \r    
0043000                                        )  \r                    
0043020    (   c   l   :   u   n   l   e   s   s       (   a   n   d    
0043040    n   i   l       %   c   o   n   d   i   t   i   o   n   -   t
0043060    y   p   e   s   -   r   e   a   l   )  \r                    
0043100                                (   c   l   :   s   e   t   f    
0043120    e   n   c   a   p   s   u   l   a   t   i   o   n       (   m
0043140    a   k   e   -   e   n   c   a   p   s   u   l   a   t   i   o
0043160    n       n   a   m   e       (   a   p   p   e   n   d       (
0043200    s   l   o   t   -   l   i   s   t       p   a   r   e   n   t
0043220    -   t   y   p   e   )  \r                                    
0043240                                                                 
*
0043320                                            (   m   a   p   c   a
0043340    r       s   l   o   t   -   d   e   s   c   r   i   p   t   i
0043360    o   n   s  \r                                                
0043400                                                                 
*
0043460                                                            (   f
0043500    u   n   c   t   i   o   n       c   a   r   )   )   )   )   )
0043520    )  \r                       ( 006 002   f   o   r 006 001    
0043540    p   a   i   r     006 002   i   n 006 001       k   e   y   s
0043560   \r                                 006 002   d   o 006 001    
0043600    (   d   e   s   t   r   u   c   t   u   r   i   n   g   -   b
0043620    i   n   d  \r                                                
0043640    (   k   e   y       v   a   l   u   e   )  \r                
0043660                                    p   a   i   r  \r            
0043700                                        (   c   a   s   e       k
0043720    e   y       (   :   c   o   n   c   -   n   a   m   e       (
0043740    c   l   :   p   u   s   h       p   a   i   r       c   l   a
0043760    s   s   -   o   p   t   i   o   n   s   )   )  \r            
0044000                                                                (
0044020    :   r   e   p   o   r   t   -   f   u   n   c   t   i   o   n
0044040        ( 006 002   i   f 006 001       r   e   p   o   r   t   e
0044060    r  \r                                                        
0044100                                                                 
0044120                                          006 002   t   h   e   n
0044140  006 001       (   c   l   :   e   r   r   o   r       "   R   e
0044160    p   o   r   t       f   u   n   c   t   i   o   n       a   l
0044200    r   e   a   d   y       s   p   e   c   i   f   i   e   d    
0044220    f   o   r       ~   S   .   "      \r                        
0044240                                                                 
*
0044300                                                            n   a
0044320    m   e   )  \r                                                
0044340                                                                 
0044360                                          006 002   e   l   s   e
0044400  006 001       (   c   l   :   s   e   t   f       r   e   p   o
0044420    r   t   e   r       v   a   l   u   e   )   )   )  \r        
0044440                                                                 
0044460    (   :   r   e   p   o   r   t       ( 006 002   i   f 006 001
0044500        r   e   p   o   r   t   e   r  \r                        
0044520                                                                 
0044540                                      006 002   t   h   e   n 006
0044560  001       (   c   l   :   e   r   r   o   r       "   R   e   p
0044600    o   r   t       f   u   n   c   t   i   o   n       a   l   r
0044620    e   a   d   y       s   p   e   c   i   f   i   e   d       f
0044640    o   r       ~   S   .   "       n   a   m   e   )  \r        
0044660                                                                 
0044700                                              006 002   e   l   s
0044720    e 006 001       (   c   l   :   s   e   t   f       r   e   p
0044740    o   r   t   e   r       (   c   l   :   i   f       (   a   n
0044760    d       n   i   l       %   c   o   n   d   i   t   i   o   n
0045000    -   t   y   p   e   s   -   r   e   a   l   )  \r            
0045020                                                                 
*
0045100                                    (   m   a   k   e   -   r   e
0045120    p   o   r   t   -   f   u   n   c   t   i   o   n       v   a
0045140    l   u   e       '   c   o   n   d   i   t   i   o   n      \r
0045160                                                                 
*
0045260            n   a   m   e   )  \r                                
0045300                                                                 
*
0045360                (   m   a   k   e   -   f   a   k   e   -   r   e
0045400    p   o   r   t   -   f   u   n   c   t   i   o   n       v   a
0045420    l   u   e  \r                                                
0045440                                                                 
*
0045520                            '   c   o   n   d   i   t   i   o   n
0045540        e   n   c   a   p   s   u   l   a   t   i   o   n   )   )
0045560    )   )   )  \r                                                
0045600                            (   :   h   a   n   d   l   e   r   -
0045620    f   u   n   c   t   i   o   n       ( 006 002   i   f 006 001
0045640        h   a   n   d   l   e   r  \r                            
0045660                                                                 
*
0045720          006 002   t   h   e   n 006 001       (   c   l   :   e
0045740    r   r   o   r       "   H   a   n   d   l   e   r       a   l
0045760    r   e   a   d   y       s   p   e   c   i   f   i   e   d    
0046000    f   o   r       ~   S   .   "       n   a   m   e   )  \r    
0046020                                                                 
*
0046060                          006 002   e   l   s   e 006 001       (
0046100    c   l   :   s   e   t   f       h   a   n   d   l   e   r    
0046120    v   a   l   u   e   )   )   )  \r                            
0046140                                                (   :   h   a   n
0046160    d   l   e       ( 006 002   i   f 006 001       h   a   n   d
0046200    l   e   r  \r                                                
0046220                                                                 
0046240              006 002   t   h   e   n 006 001       (   c   l   :
0046260    e   r   r   o   r       "   H   a   n   d   l   e   r       a
0046300    l   r   e   a   d   y       s   p   e   c   i   f   i   e   d
0046320        f   o   r       ~   S   .   "       n   a   m   e   )  \r
0046340                                                                 
0046360                                                      006 002   e
0046400    l   s   e 006 001       (   c   l   :   s   e   t   f       h
0046420    a   n   d   l   e   r       `   (   l   a   m   b   d   a    
0046440    (   c   o   n   d   i   t   i   o   n   )  \r                
0046460                                                                 
*
0046540            ,   (   c   l   :   i   f       (   n   u   l   l    
0046560    e   n   c   a   p   s   u   l   a   t   i   o   n   )  \r    
0046600                                                                 
*
0046660                                                        v   a   l
0046700    u   e  \r                                                    
0046720                                                                 
*
0047000        `   (   l   e   t       ,   e   n   c   a   p   s   u   l
0047020    a   t   i   o   n       ,   v   a   l   u   e   )   )   )   )
0047040    )   )  \r                                                    
0047060                        (   c   l   :   o   t   h   e   r   w   i
0047100    s   e       (   c   l   :   c   e   r   r   o   r       "   S
0047120    k   i   p       k   e   y   -   v   a   l   u   e       p   a
0047140    i   r   "       "   I   l   l   e   g   a   l       k   e   y
0047160    w   o   r   d       ~   S       i   n       ~   S   .   "    
0047200    k   e   y  \r                                                
0047220                                                                 
0047240                                                '   d   e   f   i
0047260    n   e   -   c   o   n   d   i   t   i   o   n   )   )   )   )
0047300    )  \r                       `   (   p   r   o   g   n       (
0047320    c   l   :   d   e   f   s   t   r   u   c   t       ( 006 002
0047340    (   \   \   \   ,       n   a   m   e   ) 006 001       ,   @
0047360    c   l   a   s   s   -   o   p   t   i   o   n   s   )       ,
0047400    @   s   l   o   t   -   d   e   s   c   r   i   p   t   i   o
0047420    n   s       )  \r  \r                                        
0047440                ,   @   (   c   l   :   i   f       (   n   e   q
0047460        n   a   m   e       p   a   r   e   n   t   -   t   y   p
0047500    e   )  \r                                                    
0047520                                        `   (   (   f   i   x   -
0047540    i   n   h   e   r   i   t   a   n   c   e   -   l   i   n   k
0047560    s       '   ,   n   a   m   e       '   ,   p   a   r   e   n
0047600    t   -   t   y   p   e   )   )   )  \r                        
0047620                                ,   @   (   c   l   :   i   f    
0047640    (   c   l   :   c   o   n   s   p       h   a   n   d   l   e
0047660    r   )  \r                                                    
0047700                                        (   l   e   t       (   (
0047720    h   a   n   d   l   e   r   -   n   a   m   e       (   %   s
0047740    u   f   f   i   x   -   s   y   m   b   o   l       n   a   m
0047760    e       "       d   e   f   a   u   l   t       h   a   n   d
0050000    l   e   r   "   )   )   )  \r                                
0050020                                                                 
0050040                (   p   r   o   g   1       `   (   (   c   l   :
0050060    s   e   t   f       (   c   l   :   s   y   m   b   o   l   -
0050100    f   u   n   c   t   i   o   n       '   ,   h   a   n   d   l
0050120    e   r   -   n   a   m   e   )  \r                            
0050140                                                                 
*
0050200                    (   f   u   n   c   t   i   o   n       ,   h
0050220    a   n   d   l   e   r   )   )   )       (   s   e   t   q    
0050240    h   a   n   d   l   e   r       h   a   n   d   l   e   r   -
0050260    n   a   m   e   )   )   )   )  \r                            
0050300                            (   c   l   :   s   e   t   f       (
0050320    c   o   n   d   i   t   i   o   n   -   h   a   n   d   l   e
0050340    r       '   ,   n   a   m   e   )  \r                        
0050360                                                            ,   (
0050400    a   n   d       h   a   n   d   l   e   r       `   (   f   u
0050420    n   c   t   i   o   n       ,   h   a   n   d   l   e   r   )
0050440    )   )  \r                                                    
0050460    ,   @   (   c   l   :   i   f       (   c   l   :   c   o   n
0050500    s   p       r   e   p   o   r   t   e   r   )  \r            
0050520                                                                 
0050540                (   l   e   t       (   (   r   e   p   o   r   t
0050560    e   r   -   n   a   m   e       (   %   s   u   f   f   i   x
0050600    -   s   y   m   b   o   l       n   a   m   e       "       r
0050620    e   p   o   r   t       m   e   t   h   o   d   "   )   )   )
0050640   \r                                                            
0050660                                                    (   p   r   o
0050700    g   1       `   (   (   c   l   :   s   e   t   f       (   c
0050720    l   :   s   y   m   b   o   l   -   f   u   n   c   t   i   o
0050740    n       '   ,   r   e   p   o   r   t   e   r   -   n   a   m
0050760    e   )  \r                                                    
0051000                                                                 
0051020                                                            (   f
0051040    u   n   c   t   i   o   n       ,   r   e   p   o   r   t   e
0051060    r   )   )   )       (   s   e   t   q       r   e   p   o   r
0051100    t   e   r       r   e   p   o   r   t   e   r   -   n   a   m
0051120    e   )   )   )   )  \r                                        
0051140                (   c   l   :   s   e   t   f       (   c   o   n
0051160    d   i   t   i   o   n   -   r   e   p   o   r   t   e   r    
0051200    '   ,   n   a   m   e   )  \r                                
0051220                                                    ,   (   a   n
0051240    d       r   e   p   o   r   t   e   r       `   (   f   u   n
0051260    c   t   i   o   n       ,   r   e   p   o   r   t   e   r   )
0051300    )   )  \r                                                    
0051320    '   ,   n   a   m   e   )   )   )   )  \r  \r   (   d   e   f
0051340    m   a   c   r   o     006 002   c   l   :   c   h   e   c   k
0051360    -   t   y   p   e 006 001       (   p   l   a   c   e       t
0051400    y   p   e   s   p   e   c       &   o   p   t   i   o   n   a
0051420    l       s   t   r   i   n   g   )  \r               (   w   i
0051440    t   h   -   e   r   r   -   l   o   o   p   -   v   a   r   s
0051460        "   C   H   E   C   K   -   T   Y   P   E   "       `   (
0051500    c   l   :   b   l   o   c   k       ,   b   l   o   c   k   -
0051520    n   a   m   e  \r                                            
0051540                                                                 
*
0051600        (   c   l   :   t   a   g   b   o   d   y       ,   a   g
0051620    a   i   n  \r                                                
0051640                                                                 
*
0051700                                (   l   e   t       (   (   ,   v
0051720    a   l       ,   p   l   a   c   e   )   )  \r                
0051740                                                                 
*
0052020                    (   c   l   :   w   h   e   n       (   t   y
0052040    p   e   p       ,   v   a   l       '   ,   t   y   p   e   s
0052060    p   e   c   )  \r                                            
0052100                                                                 
*
0052160                    (   c   l   :   r   e   t   u   r   n   -   f
0052200    r   o   m       ,   b   l   o   c   k   -   n   a   m   e   )
0052220    )  \r                                                        
0052240                                                                 
*
0052300                                            (   c   l   :   s   e
0052320    t   f       ,   p   l   a   c   e       (   c   h   e   c   k
0052340    -   t   y   p   e   -   f   a   i   l  \r                    
0052360                                                                 
*
0052460                    t  \r                                        
0052500                                                                 
*
0052560                                                                '
0052600    ,   p   l   a   c   e  \r                                    
0052620                                                                 
*
0052720    ,   v   a   l  \r                                            
0052740                                                                 
*
0053020                                                            '   ,
0053040    t   y   p   e   s   p   e   c  \r                            
0053060                                                                 
*
0053160            ,   s   t   r   i   n   g   )   )  \r                
0053200                                                                 
*
0053260                    (   g   o       ,   a   g   a   i   n   )   )
0053300    )   )   )   )  \r  \r   (   d   e   f   m   a   c   r   o    
0053320  006 002   c   l   :   e   t   y   p   e   c   a   s   e 006 001
0053340        (   k   e   y   f   o   r   m       &   b   o   d   y    
0053360    c   l   a   u   s   e   s   )  \r               (   w   i   t
0053400    h   -   g   e   n   s   y   m   s       (   v   a   l   u   e
0053420    )  \r                                           "   E   T   Y
0053440    P   E   C   A   S   E   "  \r                                
0053460            (   l   e   t       (   (   c   a   s   e   -   s   e
0053500    l   e   c   t   o   r   s       (   c   o   n   s       '   o
0053520    r       (   c   o   l   l   e   c   t   -   c   a   s   e   -
0053540    s   e   l   e   c   t   o   r   s       c   l   a   u   s   e
0053560    s       '   c   l   :   e   t   y   p   e   c   a   s   e   )
0053600    )   )   )  \r                                                
0053620                `   (   l   e   t       (   (   ,   v   a   l   u
0053640    e       ,   k   e   y   f   o   r   m   )   )  \r            
0053660                                                                 
0053700            (   c   l   :   t   y   p   e   c   a   s   e       ,
0053720    v   a   l   u   e       ,   @   c   l   a   u   s   e   s    
0053740    (   t       (   c   h   e   c   k   -   t   y   p   e   -   f
0053760    a   i   l       n   i   l       '   ,   k   e   y   f   o   r
0054000    m       ,   v   a   l   u   e  \r                            
0054020                                                                 
*
0054100                            '   ,   c   a   s   e   -   s   e   l
0054120    e   c   t   o   r   s       n   i   l   )   )   )   )   )   )
0054140    )  \r  \r   (   d   e   f   m   a   c   r   o     006 002   c
0054160    l   :   c   t   y   p   e   c   a   s   e 006 001       (   k
0054200    e   y   p   l   a   c   e       &   b   o   d   y       c   l
0054220    a   u   s   e   s   )  \r               (   l   e   t       (
0054240    (   c   a   s   e   -   s   e   l   e   c   t   o   r   s    
0054260    (   c   o   n   s       '   o   r       (   c   o   l   l   e
0054300    c   t   -   c   a   s   e   -   s   e   l   e   c   t   o   r
0054320    s       c   l   a   u   s   e   s       '   c   l   :   c   t
0054340    y   p   e   c   a   s   e   )   )   )   )  \r                
0054360                    (   w   i   t   h   -   e   r   r   -   l   o
0054400    o   p   -   v   a   r   s  \r                                
0054420        "   C   T   Y   P   E   C   A   S   E   "  \r            
0054440                            `   (   c   l   :   b   l   o   c   k
0054460        ,   b   l   o   c   k   -   n   a   m   e       (   c   l
0054500    :   t   a   g   b   o   d   y  \r                            
0054520                                                                 
0054540                                            ,   a   g   a   i   n
0054560   \r                                                            
0054600                                                                 
0054620            (   l   e   t       (   (   ,   v   a   l       ,   k
0054640    e   y   p   l   a   c   e   )   )  \r                        
0054660                                                                 
*
0054720    (   c   l   :   r   e   t   u   r   n   -   f   r   o   m    
0054740    ,   b   l   o   c   k   -   n   a   m   e  \r                
0054760                                                                 
*
0055020                                        (   c   l   :   t   y   p
0055040    e   c   a   s   e       ,   v   a   l       ,   @   c   l   a
0055060    u   s   e   s  \r                                            
0055100                                                                 
*
0055140                                        (   t       (   c   l   :
0055160    s   e   t   f       ,   k   e   y   p   l   a   c   e       (
0055200    c   h   e   c   k   -   t   y   p   e   -   f   a   i   l  \r
0055220                                                                 
*
0055320                                                t  \r            
0055340                                                                 
*
0055440                                    '   ,   k   e   y   p   l   a
0055460    c   e  \r                                                    
0055500                                                                 
*
0055560                                                            ,   v
0055600    a   l  \r                                                    
0055620                                                                 
*
0055700                                                            '   ,
0055720    c   a   s   e   -   s   e   l   e   c   t   o   r   s       n
0055740    i   l   )   )  \r                                            
0055760                                                                 
*
0056020                                                    (   g   o    
0056040    ,   a   g   a   i   n   )   )   )   )   )   )   )   )   )   )
0056060   \r  \r   (   d   e   f   m   a   c   r   o     006 002   c   l
0056100    :   e   c   a   s   e 006 001       (   k   e   y   f   o   r
0056120    m       &   r   e   s   t       c   l   a   u   s   e   s   )
0056140   \r               (   w   i   t   h   -   g   e   n   s   y   m
0056160    s       (   v   a   l   u   e   )  \r                        
0056200                    "   E   C   A   S   E   "  \r                
0056220                            (   l   e   t       (   (   c   a   s
0056240    e   -   s   e   l   e   c   t   o   r   s       (   c   o   l
0056260    l   e   c   t   -   c   a   s   e   -   s   e   l   e   c   t
0056300    o   r   s       c   l   a   u   s   e   s       '   c   l   :
0056320    e   c   a   s   e   )   )   )  \r                            
0056340                                    (   c   l   :   i   f       c
0056360    a   s   e   -   s   e   l   e   c   t   o   r   s       `   (
0056400    l   e   t       (   (   ,   v   a   l   u   e       ,   k   e
0056420    y   f   o   r   m   )   )  \r                                
0056440                                                                 
*
0056500                (   c   a   s   e       ,   v   a   l   u   e    
0056520    ,   @   c   l   a   u   s   e   s       (   t       (   e   c
0056540    a   s   e   -   f   a   i   l       n   i   l  \r            
0056560                                                                 
*
0056660                                        '   ,   k   e   y   f   o
0056700    r   m  \r                                                    
0056720                                                                 
*
0057000                                                                ,
0057020    v   a   l   u   e  \r                                        
0057040                                                                 
*
0057140            '   ,   c   a   s   e   -   s   e   l   e   c   t   o
0057160    r   s   )   )   )   )  \r                                    
0057200                                                        (   c   l
0057220    :   e   r   r   o   r       "   E   m   p   t   y       c   a
0057240    s   e       s   t   a   t   e   m   e   n   t   .   "   )   )
0057260    )   )   )  \r  \r   (   d   e   f   m   a   c   r   o     006
0057300  002   c   l   :   c   c   a   s   e 006 001       (   k   e   y
0057320    f   o   r   m       &   b   o   d   y       c   l   a   u   s
0057340    e   s   )  \r               (   l   e   t       (   (   c   a
0057360    s   e   -   s   e   l   e   c   t   o   r   s       (   c   o
0057400    l   l   e   c   t   -   c   a   s   e   -   s   e   l   e   c
0057420    t   o   r   s       c   l   a   u   s   e   s       '   c   l
0057440    :   c   c   a   s   e   )   )   )  \r                        
0057460            (   c   l   :   u   n   l   e   s   s       c   a   s
0057500    e   -   s   e   l   e   c   t   o   r   s       (   c   l   :
0057520    e   r   r   o   r       "   E   m   p   t   y       C   C   A
0057540    S   E   .   "   )   )  \r                                   (
0057560    w   i   t   h   -   e   r   r   -   l   o   o   p   -   v   a
0057600    r   s  \r                                       "   C   C   A
0057620    S   E   "  \r                                       `   (   c
0057640    l   :   b   l   o   c   k       ,   b   l   o   c   k   -   n
0057660    a   m   e       (   c   l   :   t   a   g   b   o   d   y  \r
0057700                                                                 
*
0057740        ,   a   g   a   i   n  \r                                
0057760                                                                 
0060000                                        (   l   e   t       (   (
0060020    ,   v   a   l       ,   k   e   y   f   o   r   m   )   )  \r
0060040                                                                 
*
0060100                            (   c   l   :   r   e   t   u   r   n
0060120    -   f   r   o   m       ,   b   l   o   c   k   -   n   a   m
0060140    e  \r                                                        
0060160                                                                 
0060200                                                                (
0060220    c   a   s   e       ,   v   a   l       ,   @   c   l   a   u
0060240    s   e   s  \r                                                
0060260                                                                 
*
0060320                                (   t       (   c   l   :   s   e
0060340    t   f       ,   k   e   y   f   o   r   m       (   e   c   a
0060360    s   e   -   f   a   i   l  \r                                
0060400                                                                 
*
0060500        t  \r                                                    
0060520                                                                 
*
0060600                                                    '   ,   k   e
0060620    y   f   o   r   m  \r                                        
0060640                                                                 
*
0060720                                                                ,
0060740    v   a   l  \r                                                
0060760                                                                 
*
0061040                                                        '   ,   c
0061060    a   s   e   -   s   e   l   e   c   t   o   r   s   )   )  \r
0061100                                                                 
*
0061160                            (   g   o       ,   a   g   a   i   n
0061200    )   )   )   )   )   )   )   )   )   )  \r  \r   (   d   e   f
0061220    m   a   c   r   o     006 002   c   l   :   a   s   s   e   r
0061240    t 006 001       (   t   e   s   t   -   f   o   r   m       &
0061260    o   p   t   i   o   n   a   l       p   l   a   c   e   s    
0061300    s   t   r   i   n   g       &   r   e   s   t       a   r   g
0061320    s   )  \r               (   c   l   :   u   n   l   e   s   s
0061340        (   c   l   :   l   i   s   t   p       p   l   a   c   e
0061360    s   )  \r                                           (   c   l
0061400    :   e   r   r   o   r       "   ~   S       s   h   o   u   l
0061420    d       b   e       a       l   i   s   t       o   f       p
0061440    l   a   c   e   s   .   "       p   l   a   c   e   s   )   )
0061460   \r               (   w   i   t   h   -   e   r   r   -   l   o
0061500    o   p   -   v   a   r   s       "   A   S   S   E   R   T   "
0061520        `   (   c   l   :   b   l   o   c   k       ,   b   l   o
0061540    c   k   -   n   a   m   e       (   c   l   :   t   a   g   b
0061560    o   d   y       ,   a   g   a   i   n       (   c   l   :   w
0061600    h   e   n  \r                                                
0061620                                                                 
*
0061700                                                                ,
0061720    t   e   s   t   -   f   o   r   m  \r                        
0061740                                                                 
*
0062040                        (   c   l   :   r   e   t   u   r   n   -
0062060    f   r   o   m  \r                                            
0062100                                                                 
*
0062200        ,   b   l   o   c   k   -   n   a   m   e  \r            
0062220                                                                 
*
0062320                                        (   c   l   :   v   a   l
0062340    u   e   s   )   )   )  \r                                    
0062360                                                                 
*
0062440                        (   a   s   s   e   r   t   -   f   a   i
0062460    l       ,   s   t   r   i   n   g       ,   @   a   r   g   s
0062500    )  \r                                                        
0062520                                                                 
*
0062600    (   g   o       ,   a   g   a   i   n   )   )   )   )   )  \r
0062620   \r   (   d   e   f   m   a   c   r   o     006 002   h   a   n
0062640    d   l   e   r   -   b   i   n   d 006 001       (   b   i   n
0062660    d   i   n   g   s       &   r   e   s   t       f   o   r   m
0062700    s   )       "   E   v   a   l       f   o   r   m   s       u
0062720    n   d   e   r       t   e   m   p   o   r   a   r   y       n
0062740    e   w       c   o   n   d   i   t   i   o   n       h   a   n
0062760    d   l   e   r   s   .   "  \r               `   (   l   e   t
0063000        (   (   *   c   o   n   d   i   t   i   o   n   -   h   a
0063020    n   d   l   e   r   -   b   i   n   d   i   n   g   s   *    
0063040    (   l   i   s   t   *       ,   @   (   e   x   t   r   a   c
0063060    t   -   c   o   n   d   i   t   i   o   n   -   b   i   n   d
0063100    i   n   g   s       (  \r                                    
0063120                                                                 
*
0063220        n   o   r   m   a   l   i   z   e   -   c   o   n   d   i
0063240    t   i   o   n   -   c   l   a   u   s   e   s  \r            
0063260                                                                 
*
0063360                                                b   i   n   d   i
0063400    n   g   s   )   )      \r                                    
0063420                                                                 
*
0063460                            *   c   o   n   d   i   t   i   o   n
0063500    -   h   a   n   d   l   e   r   -   b   i   n   d   i   n   g
0063520    s   *   )   )   )  \r                                       ,
0063540    @   f   o   r   m   s   )   )  \r  \r   (   d   e   f   m   a
0063560    c   r   o     006 002   c   o   n   d   i   t   i   o   n   -
0063600    b   i   n   d 006 001       (   b   i   n   d   i   n   g   s
0063620        &   r   e   s   t       f   o   r   m   s   )      \r    
0063640                                                                 
0063660                                "   E   v   a   l       f   o   r
0063700    m   s       u   n   d   e   r       t   e   m   p   o   r   a
0063720    r   y       n   e   w       c   o   n   d   i   t   i   o   n
0063740        h   a   n   d   l   e   r   s   ;       s   y   n   o   n
0063760    y   m       f   o   r       H   A   N   D   L   E   R   -   B
0064000    I   N   D   "  \r               `   (   h   a   n   d   l   e
0064020    r   -   b   i   n   d       ,   b   i   n   d   i   n   g   s
0064040        ,   @   f   o   r   m   s   )   )  \r  \r   (   d   e   f
0064060    m   a   c   r   o     006 002   c   o   n   d   i   t   i   o
0064100    n   -   c   a   s   e 006 001       (   f   o   r   m       &
0064120    r   e   s   t       b   i   n   d   i   n   g   s   )      \r
0064140                                                                 
0064160                                                "   E   v   a   l
0064200        f   o   r   m       u   n   d   e   r       c   o   n   d
0064220    i   t   i   o   n       h   a   n   d   l   e   r   s       t
0064240    h   a   t       p   r   o   v   i   d   e       a   l   t   e
0064260    r   n   a   t   e       c   o   n   t   i   n   u   a   t   i
0064300    o   n   s   .   "  \r               (   w   i   t   h   -   g
0064320    e   n   s   y   m   s  \r                   (   c   o   n   d
0064340    i   t   i   o   n       c   l   :   v   a   l   u   e   s    
0064360    b   n   a   m   e       h   a   n   d   l   e   r   )  \r    
0064400                "   C   O   N   D   I   T   I   O   N   -   C   A
0064420    S   E   "  \r                   (   l   e   t  \r            
0064440            (   (   c   l   a   u   s   e   s       (   n   o   r
0064460    m   a   l   i   z   e   -   c   o   n   d   i   t   i   o   n
0064500    -   c   l   a   u   s   e   s       b   i   n   d   i   n   g
0064520    s   )   )   )  \r                       ( 006 002   |   i   f
0064540    | 006 001       (   n   u   l   l       c   l   a   u   s   e
0064560    s   )  \r                                     006 002   |   t
0064600    h   e   n   | 006 001       f   o   r   m  \r                
0064620              006 002   |   e   l   s   e   | 006 001       `   (
0064640    l   e   t   *       (   (   ,   c   o   n   d   i   t   i   o
0064660    n       n   i   l   )  \r                                    
0064700                                                        (   ,   c
0064720    l   :   v   a   l   u   e   s       (   c   o   n   d   i   t
0064740    i   o   n   -   b   l   o   c   k  \r                        
0064760                                                                 
0065000                                                        ,   b   n
0065020    a   m   e  \r                                                
0065040                                                                 
0065060                                (   l   e   t       (   (   ,   h
0065100    a   n   d   l   e   r       (   f   u   n   c   t   i   o   n
0065120        (   c   l   :   l   a   m   b   d   a       (   c   )  \r
0065140                                                                 
*
0065240                    (   c   l   :   s   e   t   f       ,   c   o
0065260    n   d   i   t   i   o   n       c   )  \r                    
0065300                                                                 
*
0065360                                                                (
0065400    c   o   n   d   i   t   i   o   n   -   r   e   t   u   r   n
0065420        ,   b   n   a   m   e   )   )   )   )   )  \r            
0065440                                                                 
*
0065500                        (   h   a   n   d   l   e   r   -   b   i
0065520    n   d       (   (   ,   (   c   l   :   m   a   p   c   a   r
0065540        (   f   u   n   c   t   i   o   n       c   a   r   )  \r
0065560                                                                 
*
0065660    c   l   a   u   s   e   s   )       ,   h   a   n   d   l   e
0065700    r   )   )  \r                                                
0065720                                                                 
*
0065760                (   c   l   :   m   u   l   t   i   p   l   e   -
0066000    v   a   l   u   e   -   l   i   s   t       ,   f   o   r   m
0066020    )   )   )   )   )   )  \r                                    
0066040                                                    (   c   l   :
0066060    i   f       ,   c   o   n   d   i   t   i   o   n       ,   (
0066100  006 002   |   i   f   | 006 001       (   e   q   l       (   l
0066120    e   n   g   t   h       c   l   a   u   s   e   s   )  \r    
0066140                                                                 
*
0066220            1   )  \r                                            
0066240                                                                 
*
0066300      006 002   |   t   h   e   n   | 006 001       (   c   a   d
0066320    r       (   c   a   r       (   m   a   s   s   a   g   e   -
0066340    c   a   t   c   h   -   c   o   n   d   i   t   i   o   n   -
0066360    c   l   a   u   s   e   s      \r                            
0066400                                                                 
*
0066460                                                            c   l
0066500    a   u   s   e   s       c   o   n   d   i   t   i   o   n   )
0066520    )   )  \r                                                    
0066540                                                                 
0066560                                                      006 002   |
0066600    e   l   s   e   | 006 001       `   (   c   o   n   d   i   t
0066620    i   o   n   -   t   y   p   e   c   a   s   e       ,   c   o
0066640    n   d   i   t   i   o   n  \r                                
0066660                                                                 
*
0066740        ,   @   (   m   a   s   s   a   g   e   -   c   a   t   c
0066760    h   -   c   o   n   d   i   t   i   o   n   -   c   l   a   u
0067000    s   e   s       c   l   a   u   s   e   s      \r            
0067020                                                                 
*
0067100                                                                c
0067120    o   n   d   i   t   i   o   n   )  \r                        
0067140                                                                 
*
0067220                (   t       (   c   l   :   e   r   r   o   r    
0067240   \r                                                            
0067260                                                                 
*
0067320                "   B   u   g       i   n       c   o   n   d   i
0067340    t   i   o   n   -   c   a   s   e   !   ~   &   U   n   e   x
0067360    p   e   c   t   e   d       c   o   n   d   i   t   i   o   n
0067400    :       ~   S   .   "  \r                                    
0067420                                                                 
*
0067500                                            ,   c   o   n   d   i
0067520    t   i   o   n   )   )   )   )       (   c   l   :   v   a   l
0067540    u   e   s   -   l   i   s   t  \r                            
0067560                                                                 
*
0067660                                                    ,   c   l   :
0067700    v   a   l   u   e   s   )   )   )   )   )   )   )  \r  \r   (
0067720    d   e   f   m   a   c   r   o     006 002   r   e   a   l   -
0067740    c   o   n   d   i   t   i   o   n   -   c   a   s   e 006 001
0067760        (   f   o   r   m       &   r   e   s   t       c   a   s
0070000    e   s   )      \r                                            
0070020                                                                 
0070040    "   E   v   a   l       f   o   r   m       u   n   d   e   r
0070060        c   o   n   d   i   t   i   o   n       h   a   n   d   l
0070100    e   r   s       t   h   a   t       p   r   o   v   i   d   e
0070120        a   l   t   e   r   n   a   t   e       c   o   n   t   i
0070140    n   u   a   t   i   o   n   s   .   "  \r               (   w
0070160    i   t   h   -   g   e   n   s   y   m   s  \r                
0070200    (   o   u   t   e   r       i   n   n   e   r       c   o   n
0070220    d   i   t   i   o   n       d   u   m   m   y   )  \r        
0070240            "   C   O   N   D   I   T   I   O   N   -   C   A   S
0070260    E   "  \r                   `   (   c   l   :   b   l   o   c
0070300    k  \r                           ,   o   u   t   e   r  \r    
0070320                        (   c   l   :   m   u   l   t   i   p   l
0070340    e   -   v   a   l   u   e   -   c   a   l   l  \r            
0070360                    '   c   l   :   f   u   n   c   a   l   l  \r
0070400                                (   c   l   :   b   l   o   c   k
0070420   \r                                   ,   i   n   n   e   r  \r
0070440                                    (   h   a   n   d   l   e   r
0070460    -   b   i   n   d  \r                                       ,
0070500    ( 006 002   f   o   r 006 001       c   a   s   e     006 002
0070520    i   n 006 001       c   a   s   e   s  \r                    
0070540                                  006 002   c   o   l   l   e   c
0070560    t 006 001  \r                                                
0070600        (   d   e   s   t   r   u   c   t   u   r   i   n   g   -
0070620    b   i   n   d  \r                                            
0070640                (   t   y   p   e   s       b   v   l       .    
0070660    b   o   d   y   )  \r                                        
0070700                    c   a   s   e  \r                            
0070720                                `   (   ,   t   y   p   e   s  \r
0070740                                                                 
0070760    (   f   u   n   c   t   i   o   n       (   c   l   :   l   a
0071000    m   b   d   a  \r                                            
0071020                                                                 
0071040    (   ,   c   o   n   d   i   t   i   o   n   )  \r            
0071060                                                                 
0071100                                    (   c   l   :   r   e   t   u
0071120    r   n   -   f   r   o   m  \r                                
0071140                                                                 
0071160                    ,   i   n   n   e   r  \r                    
0071200                                                                 
0071220                                (   c   l   :   v   a   l   u   e
0071240    s  \r                                                        
0071260                                                                (
0071300    f   u   n   c   t   i   o   n       (   c   l   :   l   a   m
0071320    b   d   a  \r                                                
0071340                                                                 
0071360                                                    ,   @   (   c
0071400    l   :   i   f       b   v   l       (   l   i   s   t       b
0071420    v   l   )  \r                                                
0071440                                                                 
*
0071500                        `   (   (   ,   d   u   m   m   y   )  \r
0071520                                                                 
*
0071600                ( 006 002   d   e   c   l   a   r   e 006 001    
0071620    (   i   g   n   o   r   e       ,   d   u   m   m   y   )   )
0071640    )   )  \r                                                    
0071660                                                                 
0071700                                                ,   @   b   o   d
0071720    y   )   )  \r                                                
0071740                                                                 
0071760        ,   c   o   n   d   i   t   i   o   n   )   )   )   )   )
0072000    )   )  \r                                       (   c   l   :
0072020    r   e   t   u   r   n   -   f   r   o   m       ,   o   u   t
0072040    e   r       ,   f   o   r   m   )   )   )   )   )   )   )  \r
0072060   \r   (   d   e   f   m   a   c   r   o     006 002   i   g   n
0072100    o   r   e   -   e   r   r   o   r   s 006 001       (   &   b
0072120    o   d   y       f   o   r   m   s   )       "   E   v   a   l
0072140        f   o   r   m   s       w   i   t   h       h   a   n   d
0072160    l   e   r       f   o   r       a   n   y       c   o   n   d
0072200    i   t   i   o   n       o   f       t   y   p   e       E   R
0072220    R   O   R   .   "  \r               `   (   c   o   n   d   i
0072240    t   i   o   n   -   c   a   s   e       (   p   r   o   g   n
0072260        ,   @   f   o   r   m   s   )  \r                        
0072300                        (   e   r   r   o   r       (   c   o   n
0072320    d   i   t   i   o   n   )  \r                                
0072340                                            n   i   l   )   )   )
0072360   \r  \r   (   d   e   f   m   a   c   r   o     006 002   p   r
0072400    o   c   e   e   d   -   c   a   s   e 006 001       (   f   o
0072420    r   m       &   r   e   s   t       c   l   a   u   s   e   s
0072440    )      \r                                                    
0072460                                                                 
0072500                                                            "   E
0072520    v   a   l       f   o   r   m   s   ,       e   s   t   a   b
0072540    l   i   s   h   i   n   g       a       p   l   a   c   e    
0072560    t   o       p   r   o   c   e   e   d       f   r   o   m    
0072600    e   r   r   o   r   s   .   "  \r               (   w   i   t
0072620    h   -   g   e   n   s   y   m   s  \r                   (   s
0072640    e   l   e   c   t   o   r       c   l   :   v   a   l   u   e
0072660    s       t   a   g   )  \r                   "   P   R   O   C
0072700    E   E   D   -   C   A   S   E   "  \r                   (   c
0072720    l   :   m   u   l   t   i   p   l   e   -   v   a   l   u   e
0072740    -   b   i   n   d  \r                       (   c   a   s   e
0072760    s       b   o   d   i   e   s   )  \r                       (
0073000    s   p   l   i   t   -   p   r   o   c   e   e   d   -   c   l
0073020    a   u   s   e   s       c   l   a   u   s   e   s       t   a
0073040    g   )  \r                       ( 006 002   |   i   f   | 006
0073060  001       (   n   u   l   l       c   a   s   e   s   )  \r    
0073100                                  006 002   |   t   h   e   n   |
0073120  006 001       f   o   r   m  \r                             006
0073140  002   |   e   l   s   e   | 006 001       `   (   d   e   s   t
0073160    r   u   c   t   u   r   i   n   g   -   b   i   n   d       (
0073200    ,   s   e   l   e   c   t   o   r       \   \   \   ,       c
0073220    l   :   v   a   l   u   e   s   )  \r                        
0073240                                                                 
0073260    (   l   e   t       (   (   ,   t   a   g       (   l   i   s
0073300    t       n   i   l   )   )   )  \r                            
0073320                                                                 
0073340                    (   c   l   :   c   a   t   c   h       ,   t
0073360    a   g       (   c   o   n   s       :   n   o   r   m   a   l
0073400        (   l   e   t       (   (   *   p   r   o   c   e   e   d
0073420    -   c   a   s   e   s   *       (   l   i   s   t   *       ,
0073440    @   c   a   s   e   s      \r                                
0073460                                                                 
*
0073560                                                            *   p
0073600    r   o   c   e   e   d   -   c   a   s   e   s   *  \r        
0073620                                                                 
*
0073740                    )   )   )  \r                                
0073760                                                                 
*
0074040                        (   c   l   :   m   u   l   t   i   p   l
0074060    e   -   v   a   l   u   e   -   l   i   s   t       ,   f   o
0074100    r   m   )   )   )   )   )  \r                                
0074120                                                            (   c
0074140    l   :   i   f       (   e   q       ,   s   e   l   e   c   t
0074160    o   r       :   n   o   r   m   a   l   )  \r                
0074200                                                                 
0074220                                        (   c   l   :   v   a   l
0074240    u   e   s   -   l   i   s   t       ,   c   l   :   v   a   l
0074260    u   e   s   )  \r                                            
0074300                                                                 
0074320            (   c   l   :   a   p   p   l   y       ,   ( 006 002
0074340    |   i   f   | 006 001       (   e   q   l       (   l   e   n
0074360    g   t   h       b   o   d   i   e   s   )  \r                
0074400                                                                 
*
0074440                                                                1
0074460    )  \r                                                        
0074500                                                                 
0074520                                                          006 002
0074540    |   t   h   e   n   | 006 001       (   c   a   d   r       (
0074560    c   a   r       b   o   d   i   e   s   )   )  \r            
0074600                                                                 
*
0074640                              006 002   |   e   l   s   e   | 006
0074660  001       `   (   c   a   s   e       ,   s   e   l   e   c   t
0074700    o   r       ,   @   b   o   d   i   e   s   )   )       ,   c
0074720    l   :   v   a   l   u   e   s   )   )   )   )   )   )   )  \r
0074740   \r   (   d   e   f   m   a   c   r   o     006 002   r   e   a
0074760    l   -   p   r   o   c   e   e   d   -   c   a   s   e 006 001
0075000        (   f   o   r   m       &   r   e   s   t       c   l   a
0075020    u   s   e   s   )      \r                                    
0075040                                                                 
*
0075100            "   E   v   a   l       f   o   r   m   s   ,       e
0075120    s   t   a   b   l   i   s   h   i   n   g       a       p   l
0075140    a   c   e       t   o       p   r   o   c   e   e   d       f
0075160    r   o   m       e   r   r   o   r   s   .   "  \r            
0075200    (   w   i   t   h   -   g   e   n   s   y   m   s       (   o
0075220    u   t   e   r       t   a   g       d   u   m   m   y   )  \r
0075240                                            "   P   R   O   C   E
0075260    E   D   -   C   A   S   E   "  \r                            
0075300                `   (   c   l   :   b   l   o   c   k       ,   o
0075320    u   t   e   r       (   l   e   t   *       (   (   ,   t   a
0075340    g       (   l   i   s   t       n   i   l   )   )  \r        
0075360                                                                 
*
0075420        (   *   p   r   o   c   e   e   d   -   c   a   s   e   s
0075440    *       (   l   i   s   t   *       ,   @   (   m   a   p   c
0075460    a   r       c   l   a   u   s   e   s  \r                    
0075500                                                                 
*
0075560                                                                (
0075600    f   u   n   c   t   i   o   n       (   c   l   :   l   a   m
0075620    b   d   a       (   c   l   a   u   s   e   )  \r            
0075640                                                                 
*
0075760            (  \r                                                
0076000                                                                 
*
0076100        p   r   o   c   e   e   d   -   c   a   s   e   -   f   r
0076120    o   m   -   c   l   a   u   s   e  \r                        
0076140                                                                 
*
0076260    c   l   a   u   s   e       t   a   g      \r                
0076300                                                                 
*
0076420            d   u   m   m   y   )   )   )   )      \r            
0076440                                                                 
*
0076520                                    *   p   r   o   c   e   e   d
0076540    -   c   a   s   e   s   *   )   )   )  \r                    
0076560                                                                 
0076600                                                        (   c   l
0076620    :   m   u   l   t   i   p   l   e   -   v   a   l   u   e   -
0076640    c   a   l   l       '   c   l   :   f   u   n   c   a   l   l
0076660        (   c   l   :   c   a   t   c   h       ,   t   a   g  \r
0076700                                                                 
*
0077000                                                        (   c   l
0077020    :   r   e   t   u   r   n   -   f   r   o   m  \r            
0077040                                                                 
*
0077140                                                ,   o   u   t   e
0077160    r  \r                                                        
0077200                                                                 
*
0077300    ,   f   o   r   m   )   )   )   )   )   )   )  \r  \r   (   d
0077320    e   f   d   e   f   i   n   e   r     006 002   d   e   f   i
0077340    n   e   -   p   r   o   c   e   e   d   -   f   u   n   c   t
0077360    i   o   n 006 001  \r               f   u   n   c   t   i   o
0077400    n   s  \r               (   n   a   m   e       &   r   e   s
0077420    t       t   a   i   l       &   a   u   x       v   a   r   s
0077440    )  \r               (   c   l   :   m   u   l   t   i   p   l
0077460    e   -   v   a   l   u   e   -   b   i   n   d  \r            
0077500        (   t   e   s   t       r   e   p   o   r   t       a   r
0077520    g   l   i   s   t   )  \r                   (   p   r   o   c
0077540    e   s   s   -   p   r   o   c   e   e   d   -   k   e   y   w
0077560    o   r   d   s       n   a   m   e       t   a   i   l   )  \r
0077600                    (   c   l   :   s   e   t   f       v   a   r
0077620    s       (   m   a   p   c   a   r       a   r   g   l   i   s
0077640    t       (   f   u   n   c   t   i   o   n       (   l   a   m
0077660    b   d   a       (   x   )  \r                                
0077700                                                                 
*
0077740                            (   c   l   :   i   f       (   c   l
0077760    :   s   y   m   b   o   l   p       x   )  \r                
0100000                                                                 
*
0100060        x  \r                                                    
0100100                                                                 
*
0100140                                    (   c   a   r       x   )   )
0100160    )   )   )   )  \r                   (   c   l   :   u   n   l
0100200    e   s   s       t   e   s   t       (   c   l   :   s   e   t
0100220    f       t   e   s   t       '   t   r   u   e   )   )  \r    
0100240                (   c   l   :   u   n   l   e   s   s       r   e
0100260    p   o   r   t       (   c   l   :   s   e   t   f       r   e
0100300    p   o   r   t       '   d   e   f   a   u   l   t   -   p   r
0100320    o   c   e   e   d   -   r   e   p   o   r   t   e   r   )   )
0100340   \r                   `   (   p   r   o   g   n       ,   @   (
0100360    c   l   :   i   f       (   c   l   :   c   o   n   s   p    
0100400    t   e   s   t   )  \r                                        
0100420                                                (   l   e   t    
0100440    (   (   t   e   s   t   e   r       (   %   s   u   f   f   i
0100460    x   -   s   y   m   b   o   l       n   a   m   e       "   -
0100500    p   r   o   c   e   e   d   -   t   e   s   t   "   )   )   )
0100520   \r                                                            
0100540                                                (   p   r   o   g
0100560    1       `   (   (   c   l   :   s   e   t   f       (   c   l
0100600    :   s   y   m   b   o   l   -   f   u   n   c   t   i   o   n
0100620        '   ,   t   e   s   t   e   r   )  \r                    
0100640                                                                 
*
0100700                        (   f   u   n   c   t   i   o   n       ,
0100720    t   e   s   t   )   )   )       (   s   e   t   q       t   e
0100740    s   t       t   e   s   t   e   r   )   )   )   )  \r        
0100760                                            (   c   l   :   s   e
0101000    t   f       (   d   e   f   a   u   l   t   -   p   r   o   c
0101020    e   e   d   -   t   e   s   t       '   ,   n   a   m   e   )
0101040   \r                                                            
0101060                    '   ,   t   e   s   t   )  \r                
0101100                                    ,   @   (   c   l   :   i   f
0101120        (   c   l   :   c   o   n   s   p       r   e   p   o   r
0101140    t   )  \r                                                    
0101160                                    (   l   e   t       (   (   r
0101200    e   p   o   r   t   e   r       (   %   s   u   f   f   i   x
0101220    -   s   y   m   b   o   l       n   a   m   e       "   -   p
0101240    r   o   c   e   e   d   -   r   e   p   o   r   t   e   r   "
0101260    )   )   )  \r                                                
0101300                                                            (   p
0101320    r   o   g   1       `   (   (   c   l   :   s   e   t   f    
0101340    (   c   l   :   s   y   m   b   o   l   -   f   u   n   c   t
0101360    i   o   n       '   ,   r   e   p   o   r   t   e   r   )  \r
0101400                                                                 
*
0101440                                            (   f   u   n   c   t
0101460    i   o   n       ,   r   e   p   o   r   t   )   )   )       (
0101500    s   e   t   q       r   e   p   o   r   t       r   e   p   o
0101520    r   t   e   r   )   )   )   )  \r                            
0101540                        (   c   l   :   s   e   t   f       (   d
0101560    e   f   a   u   l   t   -   p   r   o   c   e   e   d   -   r
0101600    e   p   o   r   t       '   ,   n   a   m   e   )  \r        
0101620                                                                 
0101640        '   ,   r   e   p   o   r   t   )  \r                    
0101660                                (   c   l   :   s   e   t   f    
0101700    (   p   r   o   c   e   e   d   -   a   r   g   -   c   o   l
0101720    l   e   c   t   o   r       '   ,   n   a   m   e   )  \r    
0101740                                                                 
0101760            (   f   u   n   c   t   i   o   n       (   c   l   :
0102000    l   a   m   b   d   a       (   &   o   p   t   i   o   n   a
0102020    l       c   o   n   d   i   t   i   o   n       ,   @   a   r
0102040    g   l   i   s   t   )  \r                                    
0102060                                                                 
0102100                                                (   l   i   s   t
0102120        ,   @   v   a   r   s   )   )   )   )  \r                
0102140                                    (   c   l   :   d   e   f   u
0102160    n       ( 006 002   \   \   \   , 006 001       n   a   m   e
0102200    )       (   &   o   p   t   i   o   n   a   l       c   o   n
0102220    d   i   t   i   o   n       ,   @   a   r   g   l   i   s   t
0102240    )       (   c   o   n   d   i   t   i   o   n   -   c   a   s
0102260    e  \r                                                        
0102300                                                                 
*
0102360                        (   i   n   v   o   k   e   -   p   r   o
0102400    c   e   e   d   -   c   a   s   e  \r                        
0102420                                                                 
*
0102500                                                            '   ,
0102520    n   a   m   e       c   o   n   d   i   t   i   o   n       ,
0102540    @   v   a   r   s   )  \r                                    
0102560                                                                 
*
0102640                                            (   b   a   d   -   p
0102660    r   o   c   e   e   d   -   c   a   s   e       n   i   l    
0102700    n   i   l   )   )   )  \r   )   )   )  \r  \r   (   d   e   f
0102720    m   a   c   r   o     006 002   c   a   t   c   h   -   a   b
0102740    o   r   t 006 001       (   p   r   i   n   t   -   f   o   r
0102760    m       &   b   o   d   y       f   o   r   m   s   )       `
0103000    (   p   r   o   c   e   e   d   -   c   a   s   e       (   p
0103020    r   o   g   n       ,   @   f   o   r   m   s   )  \r        
0103040                                                                 
*
0103120                        (   a   b   o   r   t       (   c   o   n
0103140    d   i   t   i   o   n   )  \r                                
0103160                                                                 
*
0103240                            :   r   e   p   o   r   t  \r        
0103260                                                                 
*
0103340                                                    ,   p   r   i
0103360    n   t   -   f   o   r   m       :   t   e   s   t       t   r
0103400    u   e       (   c   l   :   v   a   l   u   e   s  \r        
0103420                                                                 
*
0103540                    n   i   l       c   o   n   d   i   t   i   o
0103560    n   )   )  \r                                                
0103600                                                                 
*
0103640                                                )   )  \r  \r  \r
0103660    (   p   u   t   p   r   o   p   s     006 002   c   l   -   e
0103700    r   r   o   r       f   i   l   e   t   y   p   e 006 001    
0103720    c   l   :   c   o   m   p   i   l   e   -   f   i   l   e   )
0103740   \r   (   d   e   c   l   a   r   e   \   :       d   o   n   t
0103760    e   v   a   l   @   l   o   a   d       d   o   e   v   a   l
0104000    @   c   o   m   p   i   l   e       d   o   n   t   c   o   p
0104020    y       c   o   m   p   i   l   e   r   v   a   r   s      \r
0104040   \r   (   a   d   d   t   o   v   a   r     006 002   n   l   a
0104060    m   a 006 001       )  \r  \r   (   a   d   d   t   o   v   a
0104100    r     006 002   n   l   a   m   l 006 001       )  \r  \r   (
0104120    a   d   d   t   o   v   a   r     006 002   l   a   m   a 006
0104140  001       )  \r   )  \r   (   p   u   t   p   r   o   p   s    
0104160    c   l   -   e   r   r   o   r       c   o   p   y   r   i   g
0104200    h   t       (   "   X   e   r   o   x       C   o   r   p   o
0104220    r   a   t   i   o   n   "       1   9   8   6   )   )  \r   (
0104240    d   e   c   l   a   r   e   \   :       d   o   n   t   c   o
0104260    p   y  \r           (   f   i   l   e   m   a   p       (   n
0104300    i   l   )   )   )  \r   s   t   o   p  \r                    
0104313