$ od -c -N 50000 [eris]<LispCore>INTERNAL>DOC>CMLERROR-PROPOSAL.TEDIT!4 0000000 E r r o r s a n d r e l a t 0000020 e d m a t t e r s i n C o 0000040 m m o n L o o p s - \r A P r 0000060 o p o s a l \r H e n r y T h o 0000100 m p s o n \r 1 1 A u g u s t 0000120 1 9 8 5 \r T h i s p r o p o s 0000140 a l r e p r e s e n t s a n 0000160 a t t e m p t t o p r o v 0000200 i d e a s e t o f c o n 0000220 t r o l p r i m a t i v e s 0000240 f o r C o m m o n L o o p s 0000260 w h i c h w i l l \r 1 ) \t S u 0000300 p p o r t t h e e x i s t i 0000320 n g I n t e r l i s p e r r 0000340 o r h a n d l i n g m e c h 0000360 a n i s m s ( i n c l u d i n 0000400 g E R R O R a n d f r i e 0000420 n d s , E R R O R S E T a n 0000440 d f r i e n d s , R E S E T 0000460 L S T a n d f r i e n d s , 0000500 E R R O R T Y P E L S T , B 0000520 R E A K C H E C K a n d i t 0000540 s c o n s e q u e n c e s , 0000560 a n d t h e r e l a t i o n 0000600 s h i p s b e t w e e n E R 0000620 R O R X , F A U L T 1 a n d 0000640 B R E A K 1 , a l l i n 0000660 t h e c o n t e x t o f s 0000700 p a g h e t t i s t a c k s 0000720 a n d t h e e x i s t i n g 0000740 p r o c e s s m e c h a n i 0000760 s m s ; \r 2 ) \t S u p p o r t 0001000 t h e C o m m o n L i s p c 0001020 o n s t r u c t s c a t c h , 0001040 t h r o w , u n w i n d p r 0001060 o t e c t , t h e r e l a t 0001100 i o n s h i p o f u n w i n 0001120 d p r o t e c t t o g o a 0001140 n d r e t u r n ( - f r o m ) 0001160 , e r r o r , c e r r o r 0001200 a n d w a r n ; \r 3 ) \t S u b 0001220 s t a n t i a l l y r e p r o 0001240 d u c e t h e f u n c t i o 0001260 n a l i t y o f t h e Z e 0001300 t a L i s p s i g n a l l i n 0001320 g f a c i l i t y ; \r 4 ) \t B 0001340 e a r e a s o n a b l y p 0001360 l a u s i b l e a t t e m p t 0001400 t o t a k e t h e h i g 0001420 h g r o u n d w r t w h a 0001440 t e v e r p r o p o s a l s 0001460 t h e C o m m o n L i s p w 0001500 o r k i n g p a r t y o n 0001520 e r r o r h a n d l i n g c 0001540 o m e u p w i t h ; \r 5 ) \t 0001560 B e a G o o d T h i n g 0001600 i n i t s o w n r i g h t 0001620 . \r N e e d l e s s - t o - s a 0001640 y t r y i n g t o s a t i 0001660 s f y a l l t h e s e g o 0001700 a l s s i m u l t a n e o u s 0001720 l y i s n o t p o s s i b 0001740 l e w i t h o u t s o m e 0001760 c o m p r o m i s e s , b u t 0002000 I t h i n k w h a t f o 0002020 l l o w s i s a g o o d 0002040 f i r s t c u t . \r T h e s 0002060 t a r t i n g p o i n t f o 0002100 r t h i s d e s i g n i s 0002120 t h e M e s a s i g n a l 0002140 a n d e r r o r m e c h a 0002160 n i s m , w i t h o n e k 0002200 e y i d e a b o r r o w e d 0002220 f r o m Z e t a L i s p . 0002240 W e s t a r t w i t h t 0002260 h e n o t i o n t h a t i 0002300 t m u s t b e p o s s i b 0002320 l e t o u n w i n d t h e 0002340 s t a c k , e i t h e r 0002360 a s a p a r t o f n o n 0002400 - l o c a l t r a n s f e r s 0002420 o f c o n t r o l , o r 0002440 a s a c o n s e q u e n c e 0002460 o f a b n o r m a l t e r 0002500 m i n a t i o n . W e a d 0002520 d t o t h i s t h e n o 0002540 t i o n t h a t a t c e r 0002560 t a i n p o i n t s o n t 0002600 h e s t a c k w e m a y 0002620 w i s h t o t a k e s o m 0002640 e a c t i o n i f s u c h 0002660 a n u n w i n d i n g i s 0002700 u n d e r w a y . F i n a 0002720 l l y w e d i s c r i m a t 0002740 e b e t w e e n a c t i o n 0002760 s m a n d a t e d a t s o 0003000 m e p o i n t o n t h e 0003020 s t a c k b u t t a k i n g 0003040 p l a c e b e f o r e t h 0003060 e u n w i n d i n g a c t u 0003100 a l l y s t a r t s , a n d 0003120 a c t i o n s w h i c h o 0003140 c c u r a t a p o i n t 0003160 o n t h e s t a c k a s 0003200 t h e u n w i n d i n g g o 0003220 e s b y . \r S o m e t e r m 0003240 i n o l o g y i s i n o r 0003260 d e r a t t h i s p o i n 0003300 t . \r W e c a l l t h e u 0003320 n w i n d i n g p r o c e s s 0003340 u n w i n d i n g . W e 0003360 c a l l t h e p o i n t s 0003400 o n t h e s t a c k a t 0003420 w h i c h a c t i o n w r t 0003440 u n w i n d i n g m a y b 0003460 e s p e c i f i e d U n w i 0003500 n d C o n t r o l P o i n t 0003520 s , o r U W C P o i n t s 0003540 f o r s h o r t . T h e 0003560 p r o c e s s b y w h i c h 0003600 t h e u s e r o r t h e 0003620 s y s t e m a n n o u n c e 0003640 c i r c u m s t a n c e s w 0003660 h i c h m a y p r o v o k e 0003700 u n w i n d i n g i s c a 0003720 l l e d s i g n a l l i n g , 0003740 a n d t h e c o n c r e t 0003760 e r e p r e s e n t a t i o n 0004000 o f t h e c i r c u m s t 0004020 a n c e s a t i s s u e i 0004040 s c a l l e d a c o n d i 0004060 t i o n . A c o n d i t i 0004100 o n i s a C o m m o n L o 0004120 o p s c l a s s , a n d s 0004140 h o u l d b e a s u b - t 0004160 y p e o f c l a s s C o n 0004200 d i t i o n . \r U n w i n d C 0004220 o n t r o l P o i n t s \r U W 0004240 C P o i n t s a r e c e n t 0004260 r a l t o t h i s p r o p 0004300 o s a l . T h e y p r o v 0004320 i d e a v e h i c l e f o 0004340 r a l l a c t i v i t i e s 0004360 a s s o c i a t e d w i t h 0004400 u n w i n d i n g , b o t h 0004420 b e f o r e t h e f a c t 0004440 i n t h e c o n t e x t 0004460 o f s i g n a l l i n g , a 0004500 n d a s t h e s t a c k 0004520 u n w i n d s . A U W C P 0004540 o i n t i s c r e a t e d 0004560 w i t h a c a l l t o t 0004600 h e s p r e a d l a m b d a 0004620 U W C P : \r ( u w c p b o d 0004640 y c a t c h e x i t a l w 0004660 a y s - d o - e x i t s ) . \r I 0004700 t s d e f i n i t i o n i s 0004720 s i m p l e : \r \t [ p r o g 1 0004740 \t ( a p p l y b o d y n i l 0004760 ) \r \t \t ( c o n d \t ( a l w a y 0005000 s - d o - e x i t s \r \t \t \t ( 0005020 a p p l y e x i t ' ( n o r 0005040 m a l n i l ) ) ] , \r b u t 0005060 i t i s w h a t g o e s 0005100 o n b e h i n d t h e s c 0005120 e n e s w h i c h i s i m 0005140 p o r t a n t . A U W C P 0005160 o i n t i s b a s i c a l l 0005200 y a w a y o f e v a l u 0005220 a t i n g b o d y ( a c t u 0005240 a l l y a p p l y i n g i t 0005260 a s a f u n c t i o n o 0005300 f n o a r g u m e n t s , 0005320 t o a l l o w f o r c l o 0005340 s u r e s ) i n a c o n t 0005360 e x t w h i c h a f f e c t 0005400 s w h a t h a p p e n s i 0005420 n t h e c a s e o f s i 0005440 g n a l l i n g a n d / o r 0005460 u n w i n d i n g o c c u r i 0005500 n g w i t h i n t h e d y 0005520 n a m i c e x t e n t o f 0005540 t h a t U W C P o i n t . 0005560 I f n o s i g n a l l i n g 0005600 o r u n w i n d i n g o c 0005620 c u r s , t h e v a l u e 0005640 o f u w c p i s t h e v 0005660 a l u e o f b o d y . I 0005700 f t h e s t a c k i s u 0005720 n w o u n d p a s t t h i s 0005740 p o i n t , ( a p p l y e 0005760 x i t ' ( u n w i n d < c o 0006000 n d i t i o n > ) ) w i l l 0006020 b e p e r f o r m e d o n 0006040 t h e w a y p a s t . T 0006060 h i s s u f f i c e s f o r 0006100 u n w i n d p r o t e c t a 0006120 n d R E S E T L S T ( n o t 0006140 e I u s e ( f : l a r g 0006160 s . b o d y ) t h r o u g 0006200 h o u t a s s h o r t f o 0006220 r ( f u n c t i o n ( l a m 0006240 b d a a r g s . b o d y ) 0006260 ) ) : \r ( u n w i n d p r o t e 0006300 c t f o r m . c l e a n u 0006320 p s ) = > \r ( u w c p \t ( f : 0006340 l ( ) f o r m ) \r \t \t \t n i 0006360 l \r \t \t \t ( f : l ( e x i t - 0006400 k e y c ) \r \t \t \t \t ( s e l e 0006420 c t q e x i t - k e y \r \t \t \t 0006440 \t \t ( ( u n w i n d n o r m a 0006460 l ) . c l e a n u p s ) \r \t 0006500 \t \t \t \t n i l ) ) \r \t \t \t t ) \r 0006520 ( R E S E T L S T . f o r m 0006540 s ) = > \r ( L E T ( ( L I S 0006560 P X H I S T L I S P X H I S T 0006600 ) \r \t \t \t ( R E S E T X R E S 0006620 E T V A R S L S T ) ) \r \t \t ( D 0006640 E C L A R E ( S P E C V A R S 0006660 R E S E T X ) ) \r \t ( u w c p 0006700 \t ( f : l ( ) . f o r m s 0006720 ) \r \t \t \t n i l \r \t \t \t ( f : l 0006740 ( e x i t - k e y c ) \r \t \t 0006760 \t \t ( s e l e c t q e x i t - 0007000 k e y \r \t \t \t \t \t ( n o r m a l 0007020 ( R E S E T R E S T O R E R 0007040 E S E T X ) ) \r \t \t \t \t \t ( u n 0007060 w i n d ( R E S E T R E S T O 0007100 R E R E S E T X ' E R R O R 0007120 ) ) \r \t \t \t \t \t n i l ) ) \r \t \t 0007140 \t t ) ) \r R E S E T S A V E a 0007160 n d R E S E T R E S T O R E 0007200 a r e e x a c t l y a s b 0007220 e f o r e . N o t e t h a 0007240 t t h i s m e a n s t h a 0007260 t c l o s u r e s m a y a 0007300 p p e a r o n R E S E T V A 0007320 R S L S T i n c a s e o f 0007340 e . g . \r \t ( R E S E T S A V 0007360 E x x ( L I S T ( f : l 0007400 . . . ) y y ) ) \r b u t t h 0007420 i s i s p r e s u m a b l y 0007440 j u s t w h a t i s w a 0007460 n t e d . \r U n w i n d i n g \r 0007500 T h e a c t u a l u n r o l 0007520 l i n g o f t h e s t a c 0007540 k i s p e r f o r m e d b 0007560 y t h e s p r e a d l a m 0007600 b d a U N W I N D ! : \r ( u n 0007620 w i n d ! f r a m e e x i t 0007640 - k e y c o n d i t i o n ) . 0007660 \r f r a m e i s a s t a c 0007700 k p o i n t e r t o t h e 0007720 f r a m e t o u n w i n d 0007740 t o . c o n d i t i o n 0007760 i s a n i n s t a n c e o 0010000 f s o m e s u b - c l a s s 0010020 o f C o n d i t i o n , d 0010040 e s c r i p t i v e o f w h 0010060 a t i s c a u s i n g t h 0010100 e u n w i n d i n g . I n 0010120 t h e s i m p l e c a s e 0010140 f r a m e w i l l b e a 0010160 U W C P o i n t , i n w h 0010200 i c h c a s e e x i t - k e 0010220 y w i l l d e t e r m i n e 0010240 w h a t h a p p e n s w h 0010260 e n w e g e t t h e r e . 0010300 \r u n w i n d ! w o r k s b 0010320 y s c a n n i n g t h e s 0010340 t a c k u p w a r d s v i a 0010360 c - l i n k s [ L a r r y 0010400 - s h o u l d t h i s b e 0010420 a - l i n k s ? I n o t 0010440 i c e t h a t e . g . G O 0010460 a n d R E S E T c h a s e 0010500 a - l i n k s , n o t c - 0010520 l i n k s ? ] f r o m i t s 0010540 o w n f r a m e u n t i l 0010560 i t g e t s t o f r a m 0010600 e . A l o n g t h e w a 0010620 y , w h e n e v e r i t e 0010640 n c o u n t e r s a U W C P 0010660 o i n t , i t a p p l i e s 0010700 t h e e x i t a r g u m e 0010720 n t o f t h a t U W C P o 0010740 i n t t o ( l i s t ' u n 0010760 w i n d c o n d i t i o n ) . 0011000 W h e n i t g e t s t 0011020 o f r a m e t h e r e a r 0011040 e t w o c a s e s . I f 0011060 f r a m e i s a U W C P 0011100 o i n t , t h e n t h e u 0011120 n w i n d i n g c o m p l e t 0011140 e s w i t h ( r e t a p p l 0011160 y f r a m e < t h e e x i 0011200 t a r g u m e n t o f f r 0011220 a m e > ( l i s t e x i t - 0011240 k e y c o n d i t i o n ) t 0011260 ) . I f f r a m e i s 0011300 n o t a U W C P o i n t , 0011320 t h e n t h e u n w i n d i 0011340 n g c o m p l e t e s w i t 0011360 h ( a p p l y e x i t - k e 0011400 y ( l i s t f r a m e ) ) . 0011420 T h i s l a t t e r c a 0011440 s e i s f o r n o n - l o 0011460 c a l ' g o ' s a n d ' r 0011500 e t u r n ( - f r o m ) ' s , 0011520 s e e N o t e o n N o n - 0011540 l o c a l X f e r s b e l o 0011560 w . \r A c r u c i a l i m p 0011600 l e m e n t a t i o n p o i n 0011620 t i s t h a t u n w i n d 0011640 ! r e l e a s e s f r a m e 0011660 b e f o r e s c a n n i n g 0011700 t h e s t a c k , a n d 0011720 u s e s r a w p o i n t e r 0011740 s d u r i n g i t s s c a 0011760 n . T h i s i s t o p 0012000 r e v e n t t h e s t a c k 0012020 f r o m i n a d v e r t e n 0012040 t l y b e i n g t i e d d 0012060 o w n i f s o m e u n w i 0012100 n d c l a u s e p r e - e m 0012120 p t s t h e u n w i n d i n 0012140 g b y d o i n g i t s o 0012160 w n n o n - l o c a l t r a 0012200 n s f e r , s o m e t h i n g 0012220 w h i c h c a n n o t ( a 0012240 n d i n d e e d p r o b a b 0012260 l y s h o u l d n o t ) b 0012300 e r u l e d o u t . T h 0012320 i s h a s t h e f u r t h 0012340 e r c o n s e q u e n c e t 0012360 h a t i f f r a m e i s 0012400 n o t a U W C P o i n t t 0012420 h e n i t m u s t b e r 0012440 e - c o n s t i t u t e d b e 0012460 f o r e b e i n g h a v i n 0012500 g e x i t - k e y a p p l i 0012520 e d t o i t , s e e a b 0012540 o v e . W h a t w o u l d 0012560 m a k e s e n s e i s f 0012600 o r u n w i n d ! t o b e 0012620 d e f i n e d t o g e t 0012640 t h e r a w p o i n t e r 0012660 o u t o f t h e s t a c k 0012700 p o i n t e r , i n v o k e 0012720 a n o p c o d e w h i c h 0012740 d o e s t h e a c t u a l 0012760 s t a c k s c a n i n m 0013000 i c r o c o d e , a n d t h 0013020 e n r e c o n s t r u c t t 0013040 h e s t a c k p o i n t e r 0013060 a n d d o t h e f i n a 0013100 l a p p l y o r r e t a p 0013120 p l y . \r S i g n a l l i n g \r 0013140 C o n d i t i o n s a r e s 0013160 i g n a l l e d w i t h t h 0013200 e s p r e a d l a m b d a 0013220 r a i s e - s i g n a l : \r ( r 0013240 a i s e - s i g n a l c o n d 0013260 i t i o n c a n - r e s u m e 0013300 n e e d n t - c a t c h ) . \r 0013320 c o n d i t i o n m u s t b 0013340 e a n i n s t a n c e o f 0013360 s o m e s u b - c l a s s 0013400 o f C o n d i t i o n . I 0013420 t i d e n t i f i e s t h e 0013440 c i r c u m s t a n c e s w 0013460 h i c h p r o v o k e d t h 0013500 e s i g n a l l i n g , a n 0013520 d m a y c o n t a i n r e 0013540 l e v a n t p a r a m e t e r 0013560 s . I f c a n - r e s u m 0013600 e i s n o n - n i l , t h 0013620 e n t h e s i g n a l m a 0013640 y b e r e s u m e d , o t 0013660 h e r w i s e n o t ( s e e 0013700 b e l o w ) . I f n e e 0013720 d n t - c a t c h i s n o n 0013740 - n i l , t h e n t h e s 0013760 i g n a l n e e d n o t b 0014000 e c a u g h t , o t h e r w 0014020 i s e a c o n d i t i o n 0014040 U n c a u g h t w i l l b e 0014060 s i g n a l l e d i f i t 0014100 i s n o t c a u g h t . \r 0014120 r a i s e - s i g n a l w o r 0014140 k s b y s c a n n i n g t 0014160 h e s t a c k u p w a r d s 0014200 l o o k i n g f o r U W C 0014220 P o i n t s . W h e n i t 0014240 f i n d s o n e i t a p 0014260 p l i e s t h e c a t c h 0014300 a r g u m e n t t h e r e o f 0014320 t o ( l i s t c o n d i t 0014340 i o n ) . I f t h e r e 0014360 s u l t i s n i l , i t 0014400 c o n t i n u e s t h e s c 0014420 a n . I f t h e r e s u 0014440 l t i s n o n - n i l w e 0014460 s a y t h e s i g n a l 0014500 h a s b e e n c a u g h t 0014520 a t t h a t U W C P o i n t 0014540 . \r W h a t h a p p e n s n 0014560 e x t d e p e n d s o n t 0014600 h e t y p e o f t h e r 0014620 e s u l t . I f i t i s 0014640 n o t a l i s t i t i 0014660 s c a l l e d t h e e x i 0014700 t k e y , a n d r a i s e 0014720 - s i g n a l e x i t s t h 0014740 e s i g n a l b y c a u s 0014760 i n g t h e s t a c k t o 0015000 u n w i n d t o t h e U 0015020 W C P o i n t w h i c h c a 0015040 u g h t t h e s i g n a l 0015060 b y c a l l i n g ( u n w i 0015100 n d ! < t h e U W C P o i n 0015120 t > < t h e e x i t k e y 0015140 > c o n d i t i o n ) . I 0015160 f i t i s a l i s t t 0015200 h e n i t s f i r s t e l 0015220 e m e n t i s c o n s i d e 0015240 r e d a r e s u m e v a l 0015260 u e . I f c a n - r e s u 0015300 m e i s n o n - n i l , t 0015320 h e n t h e r e s u m e v 0015340 a l u e i s r e t u r n e d 0015360 a s t h e v a l u e o f 0015400 t h e c a l l t o r a i 0015420 s e - s i g n a l , o t h e r 0015440 w i s e a n e r r o r c o 0015460 n d i t i o n C a n t R e s u 0015500 m e w i l l b e s i g n a 0015520 l l e d . \r I f t h e s t a 0015540 c k i s s c a n n e d a l 0015560 l t h e w a y t o t h e 0015600 t o p w i t h o u t t h e 0015620 s i g n a l b e i n g c a 0015640 u g h t , t h e n i f n e 0015660 e d n t - c a t c h i s n o 0015700 n - n i l , t h e v a l u e 0015720 o f r a i s e - s i g n a l 0015740 i s n i l . O t h e r w 0015760 i s e , t h e c o n d i t i 0016000 o n U n c a u g h t w i l l 0016020 b e s i g n a l l e d , w 0016040 i t h i n s t a n c e v a r 0016060 i a b l e s r e c o r d i n g 0016100 t h e p a r a m e t e r s 0016120 t o r a i s e - s i g n a l . 0016140 I f i t i s e x i t e 0016160 d , f i n e . I f i t 0016200 i s r e s u m e d , t h e 0016220 v a l u e r e t u r n e d i 0016240 s t h e v a l u e o f t 0016260 h e c a l l t o r a i s e 0016300 - s i g n a l . O t h e r w 0016320 i s e a b r e a k i s c 0016340 a u s e d a r o u n d t h e 0016360 c a l l t o r a i s e - s 0016400 i g n a l . \r N o t e t h a t 0016420 t h e a p p l i c a t i o n 0016440 o f t h e c a t c h a r 0016460 g u m e n t a t e a c h U 0016500 W C P o i n t i s d o n e 0016520 i n t h e d y n a m i c c 0016540 o n t e x t o f t h e c a 0016560 l l t o r a i s e - s i g n 0016600 a l , b u t a s t h e c 0016620 a t c h a r g u m e n t i s 0016640 l e x i c a l l y i n t h 0016660 e c o n t e x t o f t h e 0016700 c a l l t o u w c p , i 0016720 f i t i s a c l o s u r 0016740 e i t s n o n - s p e c i a 0016760 l v a r i a b l e r e f e r 0017000 e n c e s w i l l b e t o 0017020 t h a t c o n t e x t . \r T 0017040 h r e e m a c r o s a r e 0017060 p r o v i d e d f o r t h e 0017100 c o m m o n c a s e s : \r ( 0017120 s i g n a l c o n d i t i o n 0017140 ) = > ( r a i s e - s i g n 0017160 a l c o n d i t i o n t n 0017200 i l ) - c a n r e s u m e 0017220 , m u s t b e c a u g h t 0017240 \r ( e r r o r c o n d i t i o 0017260 n ) = > ( r a i s e - s i g 0017300 n a l c o n d i t i o n n i 0017320 l n i l ) - c a n ' t r 0017340 e s u m e , m u s t b e c 0017360 a u g h t \r ( n o t i f y c o 0017400 n d i t i o n ) = > ( r a i 0017420 s e - s i g n a l c o n d i t 0017440 i o n t t ) - c a n r 0017460 e s u m e , n e e d n ' t b 0017500 e c a u g h t \r E R R O R ! 0017520 a n d E R R O R S E T \r E R R 0017540 O R ! a n d c o n t r o l - 0017560 E a r e n o w d e f i n e 0017600 d a s ( e r r o r \ A b o 0017620 r t ) , w h e r e \ A b o r 0017640 t i s a n i n s t a n c e 0017660 o f c l a s s A b o r t . 0017700 \r E R R O R S E T i s n o w 0017720 d e f i n e d a s \r ( l a m 0017740 b d a ( f o r m f l a g ) \r 0017760 \t \t \t \t \t ( u w c p ( f : l 0020000 ( ) ( l i s t ( e v a l f 0020020 o r m ) ) ) \r \t \t \t \t \t \t \t ( f 0020040 : l ( c o n d i t i o n ) \r \t 0020060 \t \t \t \t \t \t \t ( s e l e c t - t 0020100 y p e c o n d i t i o n \r \t \t 0020120 \t \t \t \t \t \t \t ( A b o r t t ) 0020140 ) ) \r \t \t \t \t \t \t \t ( f : l ( 0020160 e x i t - k e y c o n d i t i 0020200 o n ) \r \t \t \t \t \t \t \t \t \t n i l 0020220 ) ) ) . \r t i s b y c o n 0020240 v e n t i o n t h e ' d o - 0020260 n o t h i n g ' e x i t k e 0020300 y . N o t e t h e s e m 0020320 a n t i c s o f E R R O R S 0020340 E T a r e s u b t l y c h 0020360 a n g e d b y t h i s d e 0020400 f i n i t i o n . I t i s 0020420 n o l o n g e r t h e c 0020440 a s e t h a t E R R O R S E 0020460 T f l a t l y s t o p s t 0020500 h e s t a c k f r o m u n 0020520 w i n d i n g . W h a t i 0020540 t d o e s i s c a t c h 0020560 A b o r t , w h i c h m e a 0020600 n s i t s h o r t - s t o p 0020620 s E R R O R ! / c o n t r o l 0020640 - E / ^ , a s i t u s e d 0020660 t o , b u t n o t u n w 0020700 i n d i n g a s s o c i a t e 0020720 d w i t h o t h e r s i g 0020740 n a l s w h i c h h a v e 0020760 b e e n c a u g h t o v e r 0021000 h e a d . T h i s s e e m 0021020 s t o m e t o b e w h 0021040 a t i s w a n t e d . O n 0021060 e c o u l d o f c o u r s 0021100 e w r i t e a c a t c h 0021120 p h r a s e f o r C o n d i 0021140 t i o n t o i n s u r e c 0021160 a t c h i n g a n y t h i n g 0021200 a n d e v e r y t h i n g , 0021220 b u t t h a t w o u l d 0021240 b e p r e t t y d a n g e r 0021260 o u s . \r c a t c h a n d t 0021300 h r o w \r T h e s e C o m m o 0021320 n L i s p f u n c t i o n s 0021340 a r e i m p l e m e n t e d 0021360 i n t e r m s o f a s u 0021400 b - c l a s s o f C o n d i 0021420 t i o n c a l l e d T h r o 0021440 w : \r ( c a t c h t a g . 0021460 b o d y ) = > \r ( u w c p ( 0021500 f : l ( ) b o d y ) \r \t \t \t 0021520 ( f : l ( c o n d i t i o n ) 0021540 \r \t \t \t \t ( s e l e c t - t y p 0021560 e c o n d i t i o n \r \t \t \t \t 0021600 \t ( T h r o w ( c o n d ( ( 0021620 e q c o n d i t i o n : t a g 0021640 t a g ) ' c a u g h t ) ) ) 0021660 ) ) \r \t \t \t ( f : l ( e x i t 0021700 - k e y c o n d i t i o n ) \r 0021720 \t \t \t \t ( s e l e c t q e x i 0021740 t - k e y \r \t \t \t \t \t ( c a u g 0021760 h t c o n d i t i o n : v a l 0022000 u e ) \r \t \t \t \t \t n i l ) ) ) 0022020 \r ( t h r o w t a g f o r m 0022040 ) = > \r ( l e t ( ( v a l u 0022060 e f o r m ) ) \r \t \t ( r a i s 0022100 e - s i g n a l ( c r e a t e 0022120 T h r o w t a g _ t a g v 0022140 a l u e _ v a l u e ) n i l 0022160 n i l ) ) \r E R R O R , E R R 0022200 O R X a n d B R E A K C H E 0022220 C K \r E R R O R h a s a n 0022240 a m e c o n f l i c t w i t 0022260 h t h e n e w ( a n d C 0022300 o m m o n L i s p ) e r r o r 0022320 - I p r o p o s e c h a 0022340 n g i n g i t s n a m e t 0022360 o o l d - e r r o r a n d 0022400 i n t h e s h o r t t e r 0022420 m d i c r i m i n a t i n g 0022440 o n t h e b a s i s o f 0022460 t h e t y p e o f t h e 0022500 f i r s t a r g u m e n t . 0022520 T h e o n l y c h a n g e 0022540 t o o l d - e r r o r i s 0022560 t h a t i t n o w p a s 0022600 s e s i t s n o b r e a k 0022620 a r g u m e n t o n t o E 0022640 R R O R X , w h i c h p a s 0022660 s e s i t t o E R R O R X 0022700 2 . E R R O R X i s u n 0022720 c h a n g e d e x c e p t f 0022740 o r t h a t . F A U L T 1 0022760 c a l l s E R R O R X 2 i 0023000 n s t e a d o f r e p l i c 0023020 a t i n g i t - m o r e 0023040 o n t h i s l a t e r . 0023060 E R R O R X 2 c a l l s B R 0023100 E A K C H E C K a s b e f o 0023120 r e , a n d t h e n c o n 0023140 s t r u c t s a n i n s t a 0023160 n c e o f c l a s s S y s 0023200 t e m E r r o r , w h i c h 0023220 i s a s u b - c l a s s o 0023240 f c o n d i t i o n , i n c 0023260 l u d i n g t h e e r r o r 0023300 n u m b e r , m e s s a g e 0023320 , p o s i t i o n , B R E A 0023340 K C H K a n d P R I N T M S 0023360 G a s i n s t a n c e v a 0023400 r i a b l e s , a n d s i g 0023420 n a l s i t . \r A t t h e 0023440 t o p o f e v e r y p r o 0023460 c e s s t h e r e i s a 0023500 U W C P o i n t , w h i c h 0023520 i n t e r a l i a c a t c h 0023540 e s A b o r t , a n d a l 0023560 s o h a n d l e s m o s t 0023600 o f w h a t u s e d t o 0023620 b e i n E R R O R X 2 . 0023640 I t c a t c h e s S y s t e 0023660 m E r r o r i n o r d e r 0023700 t o i m p l e m e n t b o t 0023720 h t h e b u i l t - i n a 0023740 n d u s e r s p e c i f i e 0023760 d e r r o r t y p e l i s 0024000 t c l a u s e s , d e c l i 0024020 n i n g t o c a t c h t h 0024040 e s i g n a l i f t h e y 0024060 d o n ' t a p p l y . I 0024100 t c a t c h e s U n c a u g 0024120 h t i f w h a t w a s n ' 0024140 t c a u g h t w a s a S 0024160 y s t e m E r r o r , a n d 0024200 t h e n e i t h e r p r o d 0024220 u c e s t h e a p p r o p r 0024240 i a t e c a l l t o B R E 0024260 A K 1 o r r a i s e s A b 0024300 o r t , d e p e n d i n g o 0024320 n t h e r e c o r d e d v 0024340 a l u e o f B R E A K C H K 0024360 . B R E A K 1 , h o w e v 0024400 e r i n v o k e d , s i g n 0024420 a l s A b o u t T o B r e a k 0024440 b e f o r e d o i n g a n 0024460 y t h i n g e l s e . T h 0024500 i s i s a l l a b i t 0024520 h a i r y , b u t t h e c 0024540 o d e h a s b e e n w o r 0024560 k e d o u t a n d w i l l 0024600 b e f o r t h c o m i n g . 0024620 \r N o n - L o c a l T r a n s 0024640 f e r s o f C o n t r o l \r 0024660 L e x i c a l s c o p i n g 0024700 o f g o t o t a g s a n d 0024720 b l o c k l a b e l s i n 0024740 C o m m o n L i s p r e p r 0024760 e s e n t s a b i t o f 0025000 b o t h e r i n t h e I n 0025020 t e r l i s p c o n t e x t . 0025040 F o r i n s t a n c e \r ( 0025060 p r o g \t ( ( d a m n F u n ( 0025100 f : l ( a r g ) \r \t ( i f ( 0025120 w e i r d a r g ) \r \t \t t h e 0025140 n ( g o b o t h e r ) \r \t \t 0025160 e l s e ( p r o c e s s a r 0025200 g ) ) ) ) ) \r \t ( r e t u r n 0025220 ( u n w i n d p r o t e c t ( 0025240 a p p l y * d a m n F u n ' 0025260 f o o ) ( c l e a n u p ) ) ) 0025300 \r b o t h e r \r \t ( r e t u r n 0025320 ' l o s t ) ) \r w o r k s n 0025340 o t o n l y i n t h e s 0025360 e n s e t h a t i f ' f o 0025400 o i s w e i r d , t h e 0025420 v a l u e o f t h e p r o 0025440 g i s ' l o s t , b u t 0025460 a l s o t h a t i n t h a 0025500 t c a s e t h e u n w i n 0025520 d p r o t e c t i s o b s e 0025540 r v e d a n d c l e a n u p 0025560 i s c a l l e d . N o w 0025600 I d o n ' t u n d e r s t 0025620 a n d h o w c l o s u r e s 0025640 a r e t o b e i m p l e 0025660 m e n t e d i n C o m m o n 0025700 L o o p s , b u t I a s s 0025720 u m e t h e f o l l o w i n 0025740 g m u s t b e t r u e : \r 0025760 1 ) \t T h e i n t e r p r e t 0026000 e r w i l l c o n t i n u e 0026020 t o e x i s t i n d e p e 0026040 n d e n t l y o f t h e c 0026060 o m p i l e r ( i f t h i s 0026100 i s f a l s e t h a t j 0026120 u s t s i m p l i f i e s t 0026140 h i n g s a b i t ) . \r 2 ) 0026160 \t T h e r e i s a w a y 0026200 o f i d e n t i f y i n g o 0026220 n t h e s t a c k l e x i 0026240 c a l s c o p i n g b o u n 0026260 d a r y p o i n t s - t h 0026300 a t i s t o s a y , I 0026320 p r e s u m e , f r a m e s 0026340 c r e a t e d b y t h e a 0026360 p p l i c a t i o n o f a 0026400 f u n c t i o n d e f i n i t 0026420 i o n o r a n o n - q u o 0026440 t e d a r g u m e n t t o 0026460 a p p l y . \r 3 ) \t T h e d e 0026500 f i n i t i o n o f f u n c 0026520 t i o n i s s u c h t h a 0026540 t a c l o s u r e k n o w 0026560 s o f e v e r y n o n - l 0026600 o c a l l e x i c a l v a r 0026620 i a b l e r e f e r e n c e , 0026640 g o t o t a g a n d b l 0026660 o c k l a b e l w i t h i n 0026700 i t . T h i s i m p l i 0026720 e s i n t e r a l i a t h 0026740 a t w h e n r u n n i n g 0026760 i n t e r p r e t e d a l l 0027000 m a c r o s a r e e x p a n 0027020 d e d b y f u n c t i o n , 0027040 a n d t h a t e v a l u a 0027060 t i n g o r c o m p i l i n 0027100 g c a l l s t o f u n c t 0027120 i o n m a y p r o d u c e 0027140 u b a , n o s u c h t a g 0027160 o r n o s u c h l a b e 0027200 l e r r o r s . \r 4 ) \t T h e 0027220 s t a c k e n t r y f o r 0027240 a l o c a l v a r i a b l 0027260 e w h i c h i s r e f e r 0027300 e n c e d b y a c l o s u 0027320 r e c o n t a i n s n o t 0027340 i t s v a l u e b u t a n 0027360 i n v i s i b l e p o i n t 0027400 e r t o a ' f r e e - f l 0027420 o a t i n g ' v a l u e c e 0027440 l l , w h i c h i s a l s 0027460 o p o i n t e d t o b y 0027500 t h e c l o s u r e . \r 5 ) \t 0027520 W h e n t h e i n t e r p r 0027540 e t e r n e e d s t h e v 0027560 a l u e o f a l e x i c a 0027600 l v a r i a b l e , i t s 0027620 c a n s t h e s t a c k u 0027640 p t o t h e f i r s t b 0027660 o u n d a r y p o i n t a n 0027700 d n o f u r t h e r . T 0027720 h e c o m p i l e r w i l l 0027740 p r e s u m a b l y b e p 0027760 r e t t y m u c h a s n o 0030000 w - c o l l a p s i n g a 0030020 l l b i n d i n g s u p w a 0030040 r d s t o t h e b o u n d 0030060 a r y f r a m e i n s o 0030100 f a r a s p o s s i b l e , 0030120 a n d b u i l d i n g i n 0030140 r e f e r e n c e s t o t 0030160 h e r i g h t p o i n t s 0030200 i n t h e r i g h t f r a 0030220 m e s . \r 6 ) \t T h u s w h e 0030240 n a c l o s u r e i s a 0030260 p p l i e d t o a n y t h i 0030300 n g , a f r a m e c a n 0030320 b e b u i l t w h i c h h 0030340 a s e n t r i e s f o r a 0030360 l l i t s n o n - l o c a l 0030400 l e x i c a l v a r i a b l 0030420 e r e f e r e n c e s w h i 0030440 c h w i l l d o t h e r 0030460 i g h t t h i n g . \r 7 ) \t A 0030500 s i m i l a r , a l t h o u 0030520 g h m e s s i e r , a p p r 0030540 o a c h w i l l w o r k f 0030560 o r l a b e l s a n d t a 0030600 g s . M e s s i e r b e c 0030620 a u s e a l t h o u g h s u 0030640 c h ' f r e e - f l o a t i n 0030660 g ' v a l u e c e l l s m 0030700 a y p e r s i s t a f t e r 0030720 t h e i r ' h o m e ' f r 0030740 a m e h a s g o n e , ' f 0030760 r e e - f l o a t i n g ' l a 0031000 b e l s a n d t a g s m u 0031020 s t b e i n v a l i d a t e 0031040 d w h e n t h e f r a m e 0031060 t h e y a r e b a s e d 0031100 o n g o e s a w a y ( s e 0031120 e e . g . p a g e 4 1 o 0031140 f t h e C o m m o n L i s p 0031160 b o o k ) . M o s t o f 0031200 t h i s h a i r i s p r 0031220 o b a b l y n e c e s s a r y 0031240 s i m p l y t o a l l o w 0031260 ' g o ' s f r o m i n s i 0031300 d e n e s t e d p r o g s 0031320 i n a n y c a s e : \r a ) \t 0031340 C o m p i l e d P R O G a n 0031360 d i n t e r p r e t e d \ P 0031400 R O G 0 f r a m e s h a v e 0031420 t w o n e w s o r t s o 0031440 f e n t r y f o r t a g s 0031460 a n d l a b e l s . E a 0031500 c h h a s t w o f i e l d 0031520 s , a n a t o m n u m b e 0031540 r a n d a p o i n t e r . 0031560 E v e r y P R O G o r 0031600 \ P R O G 0 f r a m e h a s 0031620 o n e t a g e n t r y w 0031640 i t h t h e a t o m n u m 0031660 b e r f o r e a c h g o t 0031700 o t a g i t o w n s , a 0031720 n d o n e l a b e l e n t 0031740 r y f o r t h e l a b e l 0031760 o f t h e b l o c k , u 0032000 s u a l l y n i l . I n 0032020 t h e c a s e w h e r e n 0032040 o c l o s u r e s a r e i 0032060 n v o l v e d , t h e p o i 0032100 n t e r f i e l d o f e a 0032120 c h e n t r y c o r r e s p 0032140 o n d i n g t o a g o t o 0032160 t a g c o n t a i n s t h 0032200 e a p p r o p r i a t e p - 0032220 c o u n t e r t o t r a n s 0032240 f e r t o i n t h e c a 0032260 s e o f c o m p i l e d P 0032300 R O G f r a m e s , a n d 0032320 t h e a p p r o p r i a t e 0032340 t a i l o f t h e P R O G 0032360 b o d y i n t h e c a s 0032400 e o f i n t e r p r e t e d 0032420 \ P R O G 0 f r a m e s . 0032440 T h e p o i n t e r f i e 0032460 l d o f t h e l a b e l 0032500 e n t r y c o n t a i n s n 0032520 i l . B y c o n v e n t i 0032540 o n ( s e e p a g e 1 2 0 0032560 o f t h e C o m m o n L i 0032600 s p b o o k ) e v e r y b 0032620 o u n d i n g f r a m e a l 0032640 s o h a s a l a b e l e 0032660 n t r y f o r i t s f r a 0032700 m e - n a m e . \r b ) \t W h e n 0032720 a g o , r e t u r n , o 0032740 r r e t u r n - f r o m i s 0032760 e v a l u a t e d , t h e 0033000 s t a c k i s s c a n n e d 0033020 t o t h e f i r s t b o 0033040 u n d a r y p o i n t l o o 0033060 k i n g f o r a n a p p r 0033100 o p r i a t e t a g / l a b e 0033120 l e n t r y . W h e n o 0033140 n e i s f o u n d w e c 0033160 a l l \r \t \t ( u n w i n d ! < 0033200 t h e f r a m e > ( f : l 0033220 ( f r a m e ) ( d o - g o f 0033240 r a m e t a g < v a l u e 0033260 o f e n t r y > ) ) ) \r \t i f 0033300 e v a l u a t i n g a g o 0033320 , o t h e r w i s e \r \t \t ( u 0033340 n w i n d ! < t h e f r a m 0033360 e > ( f : l ( f r a m e ) 0033400 ( d o - r e t u r n f r a m e 0033420 l a b e l \r \t \t \t < v a l u e 0033440 o f e n t r y > \r \t \t \t < a 0033460 r g t o r e t u r n > ) ) ) 0033500 \r c ) \t W h e n a c l o s u 0033520 r e i s c o n s t r u c t e 0033540 d w h o s e b o d y r e f 0033560 e r s t o n o n - l o c a l 0033600 t a g s o r l a b e l s , 0033620 i t c o n s t r u c t s ( 0033640 o r f i n d s , s e e b e 0033660 l o w ) a s t a c k p o i 0033700 n t e r f o r t h e f r a 0033720 m e i n w h i c h t h e 0033740 t a g / l a b e l i s b o u 0033760 n d , a n d i n c l u d e s 0034000 t h a t t o g e t h e r w 0034020 i t h t h e t a g / l a b e 0034040 l i n t h e c l o s u r e 0034060 . A p o i n t e r t o 0034100 t h i s s t a c k p o i n t 0034120 e r i s l e f t i n a 0034140 d i s t i n g u i s h e d p a 0034160 r t o f t h e f r a m e , 0034200 s o t h a t i t c a n 0034220 b e r e - u s e d b y o t 0034240 h e r c l o s u r e s , a n 0034260 d s o t h a t i t c a n 0034300 b e r e l e a s e d w h e 0034320 n t h e f r a m e g o e s 0034340 a w a y . N o t e t h a 0034360 t t h i s m e a n s i t 0034400 i s a s p e c i a l s o r 0034420 t o f s t a c k p o i n t 0034440 e r , i n t h a t i t s 0034460 r e f e r e n c e t o t h e 0034500 f r a m e m u s t n o t 0034520 b e c o u n t e d . T h i 0034540 s a l s o i m p l i e s a 0034560 n a d d i t i o n a l c o s 0034600 t b o t h i n s i z e a 0034620 n d t i m e t o r e t u r 0034640 n f o r e v e r y f r a m 0034660 e , b u t I d o n ' t s 0034700 e e h o w i t c a n b e 0034720 a v o i d e d . \r d ) \t W h e 0034740 n a c l o s u r e i s a 0034760 p p l i e d w h i c h i n c 0035000 l u d e s s u c h t a g s / 0035020 l a b e l s , t a g a n d 0035040 l a b e l e n t r i e s c o 0035060 n t a i n i n g t h e a p p 0035100 r o p r i a t e a t o m n u 0035120 m b e r s a n d t h e a s 0035140 s o c i a t e d s t a c k p 0035160 o i n t e r a r e i n c l u 0035200 d e d i n t h e c o n s t 0035220 r u c t e d f r a m e . \r e ) 0035240 \t I t f o l l o w s f r o m 0035260 a l l t h i s t h a t d 0035300 o - g o a n d d o - r e t u 0035320 r n i m p l e m e n t t h e 0035340 d i s t i n c t i o n b e t 0035360 w e e n l o c a l a n d n 0035400 o n - l o c a l t r a n s f e 0035420 r s . I f t h e v a l u 0035440 e o f t h e e n t r y t 0035460 h e y a r e p a s s e d i 0035500 s n o t a s t a c k p o 0035520 i n t e r , t h e n t h e y 0035540 e f f e c t t h e l o c a 0035560 l t r a n s f e r , v i a 0035600 r e t f r o m f o r d o - r 0035620 e t u r n , a n d b y a p 0035640 p r o p r i a t e h a c k i n 0035660 g o f t h e P R O G ( c 0035700 o m p i l e d ) o r \ P R O 0035720 G 0 ( i n t e r p r e t e d ) 0035740 f r a m e f o l l o w e d 0035760 b y r e t t o i n t h e 0036000 c a s e o f d o - g o . 0036020 I f t h e y d o g e t a 0036040 s t a c k p o i n t e r , 0036060 t h e n t h e y c o n v e r 0036100 t t h e m s e l v e s i n t 0036120 o t h e l o c a l c a s e 0036140 b y g e t t i n g t h e 0036160 e n t r y f r o m f o r t 0036200 h e t a g / l a b e l f r o 0036220 m t h e f r a m e p o i n 0036240 t e d t o , a n d d o i n 0036260 g a f u r t h e r u n w i 0036300 n d ! t o t h a t f r a m 0036320 e w i t h a n a p p r o p 0036340 r i a t e r e - c a l l o f 0036360 t h e m s e l v e s a s t 0036400 h e e x i t - k e y a r g u 0036420 m e n t . N e e d l e s s - 0036440 t o - s a y , i f t h e s 0036460 t a c k p o i n t e r h a s 0036500 b e e n r e l e a s e d , 0036520 w e g e t a n e r r o r . 0036540 \r f ) \t A l l t h i s i s 0036560 u n n e c e s s a r y f o r 0036600 c o m p i l e d t r a n s f e 0036620 r s w h i c h d o n ' t c 0036640 r o s s a n y f r a m e b 0036660 o u n d a r i e s , w h i c h 0036700 c a n s t i l l b e c o 0036720 d e d o p e n . \r g ) \t I t 0036740 i s n o t c l e a r t o 0036760 m e w h a t w i l l h a p 0037000 p e n i n t h e c a s e 0037020 o f e . g . ( e v a l ' ( 0037040 g o f o o ) ) . I f w e 0037060 t a k e t h e C o m m o n 0037100 L i s p m a n u a l s e r i 0037120 o u s l y , t h i s w i l l 0037140 f a i l , a s i t p r 0037160 o b a b l y s h o u l d , b 0037200 e c a u s e e v a l w i l l 0037220 s e t u p a b o u n d i 0037240 n g f r a m e w i t h n o 0037260 l e x i c a l v a r i a b l 0037300 e s o r t a g s , b u t 0037320 t h e n s o w i l l m o s 0037340 t e x i s t i n g u s e s 0037360 o f e v a l . . . I g u 0037400 e s s t h i s g e t s b e 0037420 y o n d w h a t I c a n 0037440 r e a s o n a b l y h o p e 0037460 t o s e c o n d - g u e s s . 0037500 . . \r e n a b l e \r A s p e c 0037520 i a l f o r m i s p r o v 0037540 i d e d w h i c h w i l l 0037560 b e t h e s t a n d a r d 0037600 w a y o f p r o d u c i n g 0037620 U W C P o i n t s . I t 0037640 i s m o d e l l e d o n t 0037660 h e C e d a r M e s a E N 0037700 A B L E f o r m , a n d l 0037720 o o k s l i k e t h i s : \r 0037740 ( e n a b l e \r c 1 = > 0037760 a 1 a 2 a 3 . . . \r \t 0040000 . . . \r c n = > 0040020 n 1 n 2 n 3 . . . \r f o 0040040 r m \r k 1 - > e a 1 0040060 e a 2 . . . \r . . 0040100 . \r k n - > e n 1 e 0040120 n 2 . . . ) \r T h e d o u b 0040140 l e a r r o w l i n e s a 0040160 b o v e a r e c a l l e d 0040200 c a t c h p h r a s e s , t 0040220 h e s i n g l e a r r o w 0040240 l i n e s a r e c a l l e d 0040260 e x i t p h r a s e s . 0040300 E v a l u a t e s f o r m s 0040320 o a s t o c a t c h c o 0040340 n d i t i o n s c 1 , . . . 0040360 c n i f t h e y a r e 0040400 s i g n a l l e d d u r i n g 0040420 i t s e v a l u a t i o n . 0040440 I f e . g . c 1 i s 0040460 s i g n a l l e d , t h e f 0040500 o r m s a 1 . . . a n ( 0040520 t h e c a t c h p h r a s e 0040540 f o r c 1 ) w i l l b e 0040560 e v a l u a t e d i n t h 0040600 e c o n t e x t o f t h e 0040620 c a l l w h i c h s i g n 0040640 a l l e d c 1 . C a t c h 0040660 p h r a s e s a r e i m p 0040700 l e m e n t e d w i t h s e 0040720 l e c t - t y p e , s o t h 0040740 e o r d e r o f t h e c 0040760 o n d i t i o n n a m e s i 0041000 s s i g n i f i c a n t . 0041020 F o r a c a t c h p h r a 0041040 s e t o b e w e l l f o 0041060 r m e d , a l l c o n t r o 0041100 l p a t h s t h r o u g h 0041120 i t m u s t e n d w i t h 0041140 o n e o f t h e f o l l 0041160 o w i n g f o u r q u i t 0041200 f o r m s : \r ( e x i t ) \r C a 0041220 u s e s t h e s t a c k t 0041240 o u n w i n d b a c k t h 0041260 r o u g h t h e e n c l o s 0041300 i n g e n a b l e f o r m , 0041320 w h i c h i s e x i t e d 0041340 w i t h v a l u e N I L . 0041360 \r ( r e s u m e f o r m ) \r R 0041400 e t u r n s f r o m t h e 0041420 c a l l w h i c h d i d t 0041440 h e s i g n a l l i n g w i 0041460 t h t h e v a l u e o f 0041500 f o r m a s t h e v a l 0041520 u e o f t h a t c a l l , 0041540 i f i t i s r e s u m a 0041560 b l e , o t h e r w i s e g 0041600 e n e r a t e s a n e r r o 0041620 r . \r ( g o t o e x i t - k e 0041640 y ) \r C a u s e s t h e s t 0041660 a c k t o u n w i n d b a 0041700 c k t o t h e e n c l o s 0041720 i n g e n a b l e f o r m , 0041740 w h e r e t h e e x i t 0041760 p h r a s e f o r e x i t - 0042000 k e y i s e v a l u a t e d 0042020 . T h e v a l u e o f 0042040 t h e l a s t f o r m i n 0042060 t h e p h r a s e i s t 0042100 h e v a l u e o f t h e 0042120 e n a b l e . E x i t p h 0042140 r a s e s a r e i m p l e m 0042160 e n t e d w i t h S E L E C 0042200 T Q , s o l i s t s o f 0042220 e x i t k e y s m a y p r 0042240 e c e d e - > . \r ( r e j e c 0042260 t ) \r C a u s e s t h e s i 0042300 g n a l h a n d l i n g p r 0042320 o c e s s t o a c t a s 0042340 i f t h e c a t c h p h r 0042360 a s e h a d n o t b e e n 0042400 t h e r e a t a l l . \r T 0042420 h e r e i s a s p e c i a 0042440 l e x i t k e y w h o s e 0042460 n a m e i s u n w i n d , 0042500 w h i c h h a s a s p e 0042520 c i a l m e a n i n g . T 0042540 h e e x i t c l a u s e f 0042560 o r t h e u n w i n d k e 0042600 y w i l l b e e v a l u a 0042620 t e d w h e n e v e r t h e 0042640 s t a c k u n w i n d s u 0042660 p w a r d s p a s t t h i s 0042700 p o i n t . \r T h e r e i s 0042720 a n o t h e r s p e c i a l 0042740 e x i t k e y w h o s e 0042760 n a m e i s n o r m a l . 0043000 I t s e x i t c l a u s e 0043020 w i l l b e e x e c u t e 0043040 d i n c a s e o f a n 0043060 o r m a l r e t u r n f r o 0043100 m t h e e n c l o s e d f 0043120 o r m , w i t h o u t a f f 0043140 e c t i n g t h e v a l u e 0043160 o f t h e e n a b l e , 0043200 w h i c h w i l l s t i l l 0043220 b e t h e v a l u e o f 0043240 t h e e n c l o s e d f o 0043260 r m . \r T h e r e i s a n o 0043300 t h e r s p e c i a l e x i 0043320 t k e y w h o s e n a m e 0043340 i s a l w a y s . a l w 0043360 a y s i s a j u s t a 0043400 s y n o n y m f o r ( n o r 0043420 m a l u n w i n d ) . T h 0043440 u s i t s e x i t c l a u 0043460 s e w i l l b e e x e c u 0043500 t e d i f t h e s t a c k 0043520 e v e r u n w i n d s p a 0043540 s t i t a n d i t w i l 0043560 l a l s o b e e x e c u t 0043600 e d i n c a s e o f a 0043620 n o r m a l r e t u r n f r 0043640 o m t h e e n c l o s e d 0043660 f o r m . \r C a l l s t o e 0043700 n a b l e t r a n s l a t e 0043720 i n t o c a l l s t o u w 0043740 c p a s f o l l o w s , t 0043760 a k i n g t h e a b o v e 0044000 t e m p l a t e f o r e n a 0044020 b l e a s t h e i n p u t 0044040 : \r ( u w c p \t ( f : l ( ) 0044060 f o r m ) \r \t \t \t ( f : l ( c 0044100 o n d i t i o n ) \r \t \t \t \t ( s 0044120 e l e c t - t y p e c o n d i 0044140 t i o n \r \t \t \t \t \t ( c 1 0044160 a 1 a 2 a 3 . . . ) \r \t 0044200 \t \t \t \t \t \t . . . \r 0044220 \t \t \t \t \t ( c n n 1 n 2 0044240 n 3 . . . ) ) ) \r \t \t \t ( f : 0044260 l ( e x i t - k e y c o n d 0044300 i t i o n ) \r \t \t \t \t ( s e l e 0044320 c t q e x i t - k e y \r \t \t \t 0044340 \t \t ( k 1 e a 1 e a 2 . . 0044360 . ) \r \t \t \t \t \t . . 0044400 . \r \t \t \t \t ( k n e n 1 0044420 e n 2 . . . ) \r \t \t \t \t \t ( 0044440 t n i l ) \r \t \t \t \t \t n i l ) 0044460 ) \r \t \t \t < i f n o r m a l 0044500 o r a l w a y s a p p e a r 0044520 e d t h e n t e l s e n 0044540 i l > ) \r ( e x i t ) = > \r t 0044560 \r ( r e s u m e f o r m ) = 0044600 > \r ( l i s t f o r m ) \r ( g 0044620 o t o e x i t - k e y ) = > 0044640 \r ( q u o t e e x i t - k e y 0044660 ) \r ( r e j e c t ) = > \r n i 0044700 l \r B u i l t i n C o n d i 0044720 t i o n c l a s s e s \r H e r 0044740 e f o l l o w t h e d e f 0044760 i n i t i o n s o f c l a s 0045000 s C o n d i t i o n a n d 0045020 i t s b u i l t i n s u b 0045040 - c l a s s e s : \r ( d e f s t 0045060 r u c t C o n d i t i o n " 0045100 a n u n s p e c i a l i s e d 0045120 c o n d i t i o n " ) \r [ N o 0045140 t e : I t m a y t u r n 0045160 o u t t o b e u s e f u l 0045200 t o i n c l u d e h e r e 0045220 i n s t a n c e v a r i a b 0045240 l e s c a n - r e s u m e a 0045260 n d n e e d n t - c a t c h 0045300 w h i c h a r e u s e d i 0045320 n s t e a d o f t h e a r 0045340 g u m e n t s t o r a i s e 0045360 - s i g n a l . ] \r ( d e f s t 0045400 r u c t ( A b o r t ( : i n 0045420 c l u d e C o n d i t i o n ) 0045440 ) " a n a b o r t c o n d 0045460 i t i o n " ) \r ( d e f s t r u 0045500 c t ( T h r o w ( : i n c l 0045520 u d e C o n d i t i o n ) ) 0045540 " a c o n d i t i o n f o r 0045560 t h r o w i n g t o a c 0045600 a t c h " \r \t t a g v a l u e 0045620 ) \r ( d e f s t r u c t ( S y 0045640 s t e m E r r o r ( : i n c l 0045660 u d e C o n d i t i o n ) ) \r 0045700 \t " a c o n d i t i o n r e 0045720 s u l t i n g f r o m a c 0045740 a l l t o E R R O R X " \r \t 0045760 n u m b e r m e s s a g e s 0046000 t a c k - p o s b r e a k c h 0046020 k p r i n t m s g ) \r ( d e f 0046040 s t r u c t ( U n c a u g h t 0046060 ( : i n c l u d e C o n d i 0046100 t i o n ) ) \r \t " a c o n d i 0046120 t i o n r e s u l t i n g f 0046140 r o m a n u n c a u g h t 0046160 s i g n a l " c o n d i t i o 0046200 n ) \r ( d e f s t r u c t ( A 0046220 b o u t T o B r e a k ( : i n 0046240 c l u d e C o n d i t i o n ) 0046260 ) \r \t " a c o n d i t i o n 0046300 s i g n a l l e d b y B R E 0046320 A K 1 o n e n t r y " ) \r R 0046340 e l a t i o n t o C o m m o 0046360 n L i s p \r T h i s p r o p o 0046400 s a l s u p p o r t s e v e 0046420 r y t h i n g r e l e v a n t 0046440 i n t h e C o m m o n L i 0046460 s p b o o k . \r \0 \0 \0 \0 \0 005 \0 0046500 \v \0 ) \0 \0 \0 \0 \0 \0 \0 003 \0 \0 \0 \0 003 0046520 002 \0 024 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0046540 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ) \0 $ \0 $ 0046560 \0 \0 \0 003 \0 \0 \0 \0 003 004 \0 024 \0 \0 \0 \0 0046600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0046620 \0 \0 \0 \0 ) \0 022 \0 022 \0 \0 \0 003 \0 \0 \0 0046640 \0 003 004 \0 024 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0046660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 2 \0 * 0046700 \0 < \0 \0 \0 \0 \0 \0 \0 \0 003 004 \0 024 003 \0 0046720 < \0 \0 Z \0 001 P \0 \0 \0 \0 \0 \0 \0 \0 \0 0046740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 , 0046760 \0 * \0 < \0 \0 \0 \0 \0 \0 \0 \0 003 004 \0 024 0047000 001 \0 < \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ) \0 006 \0 022 0047040 \0 \0 \0 003 \0 \0 \0 \0 003 001 \0 024 \0 \0 \0 \0 0047060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047100 \0 \0 \0 \0 ) \0 \0 \0 \0 \0 \0 \0 003 \0 \0 \0 0047120 \0 003 004 \0 024 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 & \0 \0 0047160 \0 \0 \0 \0 \0 003 \0 \0 \0 \0 002 004 \0 \0 \0 \0 0047200 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047220 \0 \0 \0 , \0 030 \0 * \0 \0 \0 003 \0 \0 \0 \0 0047240 003 004 \0 \0 001 \0 * \0 \0 \0 \0 \0 \0 \0 \0 \0 0047260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 & 0047300 \0 \0 \0 \0 \0 \0 \0 003 \0 \0 \0 \0 002 003 \0 \0 0047320 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047340 \0 \0 \0 \0 \0 & \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047360 \0 \0 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0047400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 0047420 \0 \b \0 024 \0 006 M O D E R N \0 \f \0 \0 0047440 \0 \0 \0 \0 003 \0 \0 024 \0 006 M O D E R N 0047460 \0 \f \0 \0 \0 \0 \0 \0 001 \0 \0 024 \0 006 M O 0047500 D E R N \0 \f \0 \0 \0 \0 \0 \0 \0 \0 \0 024 0047520 \0 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 0047540 002 \0 \0 026 \0 \b T E R M I N A L \0 \f 0047560 \0 \0 \0 \0 \0 \0 \0 \0 \0 023 \0 005 G A C H 0047600 A \0 \n \0 \0 \0 \0 \0 \0 002 \0 \0 026 \0 \b T 0047620 E R M I N A L \0 \f \0 \0 \0 \0 \0 \0 \0 0047640 \0 \0 ? \0 1 ( D E F A U L T F O N 0047660 T 1 ( G A C H A 1 0 ) ( 0047700 G A C H A 8 ) ( T E R M I N 0047720 A L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0047740 \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 , \0 \0 \0 \0 0047760 004 \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 \v \0 \0 \0 0050000 \0 004 \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 017 \0 \0 0050020 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 017 \0 0050040 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 f 0050060 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \t \0 \0 001 0050100 : \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \t \0 \0 0050120 \0 025 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \t \0 0050140 \0 \0 R \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \t 0050160 \0 \0 \0 021 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0050200 \t \0 \0 \0 035 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0050220 \0 \t \0 \0 \0 \b \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0050240 002 \0 \t \0 \0 \0 031 \0 \0 \0 \0 003 \0 \0 \0 \0 0050260 \0 002 \0 \t \0 \0 \0 1 \0 \0 \0 \0 003 \0 \0 \0 0050300 \0 \0 002 \0 \t \0 \0 \0 221 \0 \0 \0 \0 003 \0 \0 0050320 \0 \0 \0 002 \0 \t \0 \0 \0 % \0 \0 \0 \0 003 \0 0050340 \0 \0 \0 \0 002 \0 \b \0 \0 \0 231 \0 \0 \0 \0 003 0050360 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 230 \0 \0 \0 \0 0050400 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 001 311 \0 \0 \0 0050420 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \v \0 \0 0050440 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \n \0 0050460 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 " 0050500 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0050520 036 \0 \0 \0 \0 003 \0 \0 \0 \t \0 \0 \0 \0 004 \0 0050540 \0 \0 0 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b 0050560 \0 \0 \0 " \0 \0 \0 \0 003 \0 \0 \0 006 \0 \0 \0 0050600 \0 002 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 017 \0 \0 0050620 \0 \0 002 \0 \0 \0 005 \0 \0 \0 \0 003 \0 \0 \0 006 0050640 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0050660 003 \0 \0 \0 \0 002 \0 \0 \0 026 \0 \0 \0 \0 003 \0 0050700 \0 \0 \0 \0 002 \0 \b \0 \0 \0 031 \0 \0 \0 \0 003 0050720 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 ! \0 \0 \0 \0 0050740 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 331 \0 \0 \0 0050760 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 026 \0 \0 0051000 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 210 \0 0051020 \0 \0 \0 003 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 0051040 021 \0 \0 \0 \0 003 \0 \0 \0 004 \0 \0 \0 \0 002 \0 0051060 \0 \0 X \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b 0051100 \0 \0 \0 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 0051120 \b \0 \0 \0 \b \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 0051140 \0 \b \0 \0 \0 032 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0051160 002 \0 \b \0 \0 \0 001 \0 \0 \0 \0 \b \0 \0 \0 \0 0051200 \0 002 \0 \b \0 \0 \0 024 \0 \0 \0 \0 \b \0 \0 \0 0051220 \0 \0 002 \0 \b \0 \0 \0 \a \0 \0 \0 \0 \b \0 \0 0051240 \0 \0 \0 002 \0 \b \0 \0 \0 025 \0 \0 \0 \0 \b \0 0051260 \0 \0 \0 \0 002 \0 \b \0 \0 \0 026 \0 \0 \0 \0 \b 0051300 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \f \0 \0 \0 \0 0051320 \b \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 026 \0 \0 \0 0051340 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \v \0 \0 0051360 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 006 \0 0051400 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 026 0051420 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0051440 034 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 0051460 \0 032 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 0051500 \0 \0 036 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b 0051520 \0 \0 \0 030 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0051540 \b \0 \0 \0 \a \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0051560 \0 \b \0 \0 \0 025 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0051600 002 \0 \b \0 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 \0 0051620 \0 002 \0 \b \0 \0 \0 $ \0 \0 \0 \0 003 \0 \0 \0 0051640 \0 \0 002 \0 \b \0 \0 \0 + \0 \0 \0 \0 003 \0 \0 0051660 \0 \0 \0 002 \0 \b \0 \0 \0 \v \0 \0 \0 \0 003 \0 0051700 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \a \0 \0 \0 \0 003 0051720 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 001 \0 \0 \0 \0 0051740 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 $ \0 \0 \0 0051760 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 , \0 \0 0052000 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \n \0 0052020 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 $ 0052040 \0 \0 \0 \0 003 \0 \0 \0 # \0 \0 \0 \0 \b \0 \0 0052060 \0 006 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 0052100 \0 \0 $ \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a 0052120 \0 \0 \0 4 \0 \0 \0 \0 003 \0 \0 \0 021 \0 \0 \0 0052140 \0 \b \0 \0 \0 031 \0 \0 \0 \0 003 \0 \0 \0 \0 0052160 \0 \0 \0 \b \0 \0 \0 002 \0 \0 \0 \0 003 \0 \0 \0 0052200 \0 \0 002 \0 \a \0 \0 \0 220 \0 \0 \0 \0 \a \0 \0 0052220 \0 \0 \0 002 \0 \a \0 \0 001 ! \0 \0 \0 \0 \a \0 0052240 \0 \0 \0 \0 002 \0 \a \0 \0 \0 201 \0 \0 \0 \0 003 0052260 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 $ \0 \0 \0 \0 0052300 \b \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 , \0 \0 \0 0052320 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \n \0 \0 0052340 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 9 \0 0052360 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 024 0052400 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 0052420 $ \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 0052440 001 020 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 0052460 \0 001 035 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a 0052500 \0 \0 \0 016 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0052520 \a \0 \0 \0 > \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0052540 \0 \a \0 \0 \0 2 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0052560 002 \0 \a \0 \0 001 003 \0 \0 \0 \0 003 \0 \0 \0 \0 0052600 \0 002 \0 \a \0 \0 002 212 \0 \0 \0 \0 003 \0 \0 \0 0052620 \0 \0 002 \0 \a \0 \0 \0 l \0 \0 \0 \0 003 \0 \0 0052640 \0 \0 \0 002 \0 \a \0 \0 \0 \v \0 \0 \0 \0 004 \0 0052660 \0 \0 \0 \0 002 \0 \a \0 \0 \0 > \0 \0 \0 \0 003 0052700 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 2 \0 \0 \0 \0 0052720 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 312 \0 \0 \0 0052740 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 001 030 \0 \0 0052760 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 0 \0 0053000 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 R 0053020 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 0053040 . \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 0053060 \0 & \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 0053100 \0 \0 S \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a 0053120 \0 \0 \0 024 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0053140 \a \0 \0 \0 d \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0053160 \0 \a \0 \0 \0 033 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0053200 002 \0 \b \0 \0 \0 024 \0 \0 \0 \0 003 \0 \0 \0 \0 0053220 \0 002 \0 \b \0 \0 \0 ' \0 \0 \0 \0 003 \0 \0 \0 0053240 \0 \0 002 \0 \b \0 \0 \0 030 \0 \0 \0 \0 003 \0 \0 0053260 \0 \0 \0 002 \0 \b \0 \0 \0 037 \0 \0 \0 \0 003 \0 0053300 \0 \0 \0 \0 002 \0 \b \0 \0 \0 025 \0 \0 \0 \0 003 0053320 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 ! \0 \0 \0 \0 0053340 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 021 \0 \0 \0 0053360 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 / \0 \0 0053400 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 001 261 \0 0053420 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 @ 0053440 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 0053460 020 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 0053500 \0 ^ \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 006 \0 0053520 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b 0053540 \0 \0 \0 024 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0053560 \b \0 \0 \0 024 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0053600 \0 \b \0 \0 \0 033 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0053620 002 \0 \b \0 \0 \0 021 \0 \0 \0 \0 003 \0 \0 \0 \0 0053640 \0 002 \0 \b \0 \0 \0 & \0 \0 \0 \0 003 \0 \0 \0 0053660 \0 \0 002 \0 \b \0 \0 \0 \n \0 \0 \0 \0 003 \0 \0 0053700 \0 \0 \0 002 \0 \b \0 \0 \0 023 \0 \0 \0 \0 \a \0 0053720 \0 \0 \0 \0 002 \0 \b \0 \0 \0 026 \0 \0 \0 \0 \a 0053740 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 036 \0 \0 \0 \0 0053760 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 \v \0 \0 \0 0054000 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 002 \0 \0 0054020 \0 \0 \a \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 024 \0 0054040 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 024 0054060 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0054100 + \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 0054120 \0 022 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 0054140 \0 \0 035 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a 0054160 \0 \0 \0 $ \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 0054200 \a \0 \0 \0 024 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0054220 \0 \a \0 \0 \0 d \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0054240 002 \0 \a \0 \0 \0 033 \0 \0 \0 \0 003 \0 \0 \0 \0 0054260 \0 002 \0 \a \0 \0 \0 271 \0 \0 \0 \0 \a \0 \0 \0 0054300 \0 \0 002 \0 \a \0 \0 \0 226 \0 \0 \0 \0 003 \0 \0 0054320 \0 \0 \0 002 \0 \a \0 \0 001 212 \0 \0 \0 \0 003 \0 0054340 \0 \0 \0 \0 002 \0 \a \0 \0 \0 020 \0 \0 \0 \0 004 0054360 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 ^ \0 \0 \0 \0 0054400 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 203 \0 \0 \0 0054420 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 037 \0 \0 0054440 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 177 \0 0054460 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 033 0054500 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0054520 027 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 \0 0054540 \0 035 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 \b \0 0054560 \0 \0 \f \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b 0054600 \0 \0 \0 < \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0054620 \b \0 \0 \0 \a \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0054640 \0 \b \0 \0 \0 023 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0054660 002 \0 \b \0 \0 001 027 \0 \0 \0 \0 003 \0 \0 \0 \0 0054700 \0 002 \0 \b \0 \0 \0 ~ \0 \0 \0 \0 003 \0 \0 \0 0054720 \0 \0 002 \0 \b \0 \0 \0 I \0 \0 \0 \0 003 \0 \0 0054740 \0 \0 \0 002 \0 \b \0 \0 \0 F \0 \0 \0 \0 003 \0 0054760 \0 \0 \0 \0 002 \0 \b \0 \0 001 020 \0 \0 \0 \0 003 0055000 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 C \0 \0 \0 \0 0055020 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 001 % \0 \0 \0 0055040 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 037 \0 \0 0055060 \0 \0 006 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 004 \0 0055100 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 ' 0055120 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 0055140 T \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \b \0 \0 0055160 \0 033 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b \0 0055200 \0 \0 021 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \b 0055220 \0 \0 \0 023 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 0055240 \b \0 \0 \0 031 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 0055260 \0 \b \0 \0 \0 : \0 \0 \0 \0 \a \0 \0 \0 \0 \0 0055300 002 \0 \b \0 \0 \0 \a \0 \0 \0 \0 \a \0 \0 \0 \0 0055320 \0 002 \0 \b \0 \0 \0 021 \0 \0 \0 \0 \a \0 \0 \0 0055340 \0 \0 002 \0 \b \0 \0 \0 034 \0 \0 \0 \0 003 \0 \0 0055360 \0 \0 \0 002 \0 \b \0 \0 \0 373 \0 \0 \0 \0 003 \0 0055400 \0 \0 \0 \0 002 \0 005 \0 \0 \0 ~ \0 \0 \0 \0 003 0055420 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 311 \0 \0 \0 \0 0055440 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 * \0 \0 \0 0055460 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 + \0 \0 0055500 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 I \0 0055520 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 037 0055540 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 0055560 ; \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 004 \0 \0 0055600 \0 024 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 004 \0 0055620 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 0055640 \0 \0 \0 1 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0055660 005 \0 \0 \0 303 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0055700 \0 005 \0 \0 001 % \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0055720 002 \0 005 \0 \0 \0 # \0 \0 \0 \0 003 \0 \0 \0 \0 0055740 \0 002 \0 005 \0 \0 \0 ! \0 \0 \0 \0 003 \0 \0 \0 0055760 \0 \0 002 \0 005 \0 \0 \0 206 \0 \0 \0 \0 003 \0 \0 0056000 \0 \0 \0 002 \0 005 \0 \0 001 = \0 \0 \0 \0 003 \0 0056020 \0 \0 \0 \0 002 \0 005 \0 \0 \0 d \0 \0 \0 \0 003 0056040 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 025 \0 \0 \0 \0 0056060 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 001 i \0 \0 \0 0056100 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 001 \0 \0 0056120 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 \a \0 0056140 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 026 0056160 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 0056200 x \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 0056220 \0 330 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 0056240 \0 \0 ' \0 \0 \0 \0 003 \0 \0 \0 \f \0 \0 \0 \0 0056260 002 \0 \0 \0 F \0 \0 \0 \0 003 \0 \0 \0 002 \0 \0 0056300 \0 \0 002 \0 \0 \0 0 \0 \0 \0 \0 003 \0 \0 \0 \0 0056320 \0 002 \0 005 \0 \0 \0 2 \0 \0 \0 \0 005 \0 \0 \0 0056340 \0 \0 002 \0 003 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0 0056360 \0 \0 \0 002 \0 002 \0 \0 \0 020 \0 \0 \0 \0 005 \0 0056400 \0 \0 \0 \0 002 \0 002 \0 \0 \0 037 \0 \0 \0 \0 003 0056420 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 4 \0 \0 \0 \0 0056440 005 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 016 \0 \0 \0 0056460 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 # \0 \0 0056500 \0 \0 005 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 p \0 0056520 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 020 0056540 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 0056560 207 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 0056600 \0 \t \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 0056620 \0 \0 \ \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 0056640 \0 \0 \0 271 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0056660 005 \0 \0 \0 t \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0056700 \0 005 \0 \0 \0 x \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0056720 002 \0 005 \0 \0 \0 L \0 \0 \0 \0 003 \0 \0 \0 \0 0056740 \0 002 \0 005 \0 \0 \0 6 \0 \0 \0 \0 003 \0 \0 \0 0056760 \0 \0 002 \0 005 \0 \0 \0 l \0 \0 \0 \0 003 \0 \0 0057000 \0 \0 \0 002 \0 005 \0 \0 \0 024 \0 \0 \0 \0 003 \0 0057020 \0 \0 \0 \0 002 \0 005 \0 \0 \0 024 \0 \0 \0 \0 003 0057040 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 033 \0 \0 \0 \0 0057060 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 E \0 \0 \0 0057100 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 035 \0 \0 0057120 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 026 \0 0057140 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 = 0057160 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 0057200 \r \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 0057220 \0 \v \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 0057240 \0 \0 = \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 0057260 \0 \0 \0 002 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0057300 005 \0 \0 \0 021 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0057320 \0 005 \0 \0 \0 \f \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0057340 002 \0 005 \0 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 \0 0057360 \0 002 \0 005 \0 \0 \0 021 \0 \0 \0 \0 003 \0 \0 \0 0057400 \0 \0 002 \0 005 \0 \0 \0 \f \0 \0 \0 \0 003 \0 \0 0057420 \0 \0 \0 002 \0 005 \0 \0 \0 004 \0 \0 \0 \0 003 \0 0057440 \0 \0 \0 \0 002 \0 005 \0 \0 \0 033 \0 \0 \0 \0 003 0057460 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 M \0 \0 \0 \0 0057500 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 026 \0 \0 \0 0057520 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 035 \0 \0 0057540 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 \ \0 0057560 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 C 0057600 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 0057620 > \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 \0 0057640 \0 N \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 \0 0057660 \0 \0 \f \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 005 0057700 \0 \0 \0 . \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0057720 005 \0 \0 \0 / \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0057740 \0 005 \0 \0 \0 - \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0057760 002 \0 005 \0 \0 \0 004 \0 \0 \0 \0 003 \0 \0 \0 \0 0060000 \0 002 \0 \a \0 \0 \0 \a \0 \0 \0 \0 004 \0 \0 \0 0060020 \0 \0 002 \0 \a \0 \0 \0 037 \0 \0 \0 \0 003 \0 \0 0060040 \0 \0 \0 002 \0 \a \0 \0 \0 1 \0 \0 \0 \0 003 \0 0060060 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \f \0 \0 \0 \0 003 0060100 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 / \0 \0 \0 \0 0060120 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \v \0 \0 \0 0060140 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 " \0 \0 0060160 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 027 \0 0060200 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 ? 0060220 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 002 0060240 / \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 0060260 \0 \a \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 0060300 \0 \0 c \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a 0060320 \0 \0 \0 016 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 0060340 \a \0 \0 \0 J \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0060360 \0 \a \0 \0 \0 J \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0060400 002 \0 \a \0 \0 \0 020 \0 \0 \0 \0 \a \0 \0 \0 \0 0060420 \0 002 \0 \a \0 \0 \0 224 \0 \0 \0 \0 003 \0 \0 \0 0060440 \0 \0 002 \0 \a \0 \0 \0 025 \0 \0 \0 \0 003 \0 \0 0060460 \0 \0 \0 002 \0 \a \0 \0 \0 ^ \0 \0 \0 \0 003 \0 0060500 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \t \0 \0 \0 \0 \a 0060520 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \ \0 \0 \0 \0 0060540 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 271 \0 \0 \0 0060560 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 354 \0 \0 0060600 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 001 002 \0 0060620 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 l 0060640 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 \a \0 \0 001 0060660 C \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 0060700 \0 \f \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 0060720 \0 \0 035 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a 0060740 \0 \0 \0 $ \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 0060760 \a \0 \0 \0 020 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 0061000 \0 \a \0 \0 \0 033 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0061020 002 \0 \a \0 \0 \0 M \0 \0 \0 \0 003 \0 \0 \0 \0 0061040 \0 002 \0 \a \0 \0 \0 016 \0 \0 \0 \0 \a \0 \0 \0 0061060 \0 \0 002 \0 \a \0 \0 \0 % \0 \0 \0 \0 \a \0 \0 0061100 \0 \0 \0 002 \0 \a \0 \0 \0 235 \0 \0 \0 \0 003 \0 0061120 \0 \0 \0 \0 002 \0 \a \0 \0 \0 > \0 \0 \0 \0 \a 0061140 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 Z \0 \0 \0 \0 0061160 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 V \0 \0 \0 0061200 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 020 \0 \0 0061220 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 $ \0 0061240 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 + 0061260 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 0061300 < \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 \0 0061320 \0 \ \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 \a \0 0061340 \0 \0 017 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 001 0061360 \0 \0 \0 \b \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 0061400 \a \0 \0 \0 021 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0061420 \0 \a \0 \0 \0 2 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0061440 002 \0 \a \0 \0 M 9 002 C z 272 0061453