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