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