$ od -c -N 50000 [phylum]<LISP>KOTO>Library>DOC>HASH.TEDIT!1 0000000 1 \r \r L I S P L I B R A R Y 0000020 P A C K A G E S M A N U A L \r 0000040 1 \r \r L I S P L I B R A R Y 0000060 P A C K A G E S M A N U A L \r 0000100 H A S H \r 1 \r \r E X T E N S I O 0000120 N S T O L I S P \r 1 \r \r \r H 0000140 A S H \r 6 \r \r H a s h i s a 0000160 h a s h - c o d e d d i c t 0000200 i o n a r y f a c i l i t y , 0000220 p r o v i d i n g m u c h 0000240 t h e s a m e f u n c t i o 0000260 n a l i t y a s h a s h a 0000300 r r a y s d o , e x c e p t 0000320 t h a t t h e d a t a i 0000340 s s t o r e d o n a f i 0000360 l e . \r 2 \r \r I n t r o d u c t 0000400 i o n \r 1 \r \r T h e H a s h 0000420 p a c k a g e p e r m i t s 0000440 i n f o r m a t i o n a s s o 0000460 c i a t e d w i t h s t r i 0000500 n g o r a t o m 251 251 k e y 0000520 s ' ' t o b e s t o r e d 0000540 o n a n d r e t r i e v e 0000560 d f r o m f i l e s . T 0000600 h e i n f o r m a t i o n ( 0000620 o r 251 251 v a l u e s ' ' ) a 0000640 s s o c i a t e d w i t h t 0000660 h e k e y s i n a f i l 0000700 e m a y b e n u m b e r s 0000720 , s t r i n g s , o r a r 0000740 b i t a r y I n t e r l i s p 0000760 e x p r e s s i o n s . T h 0001000 e a s s o c i a t i o n s a 0001020 r e m a i n t a i n e d b y 0001040 a h a s h i n g s c h e m 0001060 e t h a t m i n i m i z e s 0001100 t h e n u m b e r o f f 0001120 i l e o p e r a t i o n s i 0001140 t t a k e s t o a c c e s 0001160 s a v a l u e f r o m i 0001200 t s k e y . \r 2 \r \r H a s h 0001220 F i l e s \r 1 \r \r T h e i n f 0001240 o r m a t i o n i s s a v e 0001260 d i n a 251 251 h a s h f i 0001300 l e , ' ' w h i c h i s a 0001320 n a l o g o u s t o a h a 0001340 s h a r r a y . A c t u a 0001360 l l y , t h e p h r a s e 0001400 251 251 h a s h f i l e 271 271 r e 0001420 f e r s e i t h e r t o t 0001440 h e f i l e i t s e l f , 0001460 o r t o t h e h a n d l e 0001500 o n t h a t f i l e w h 0001520 i c h i s u s e d b y t 0001540 h e H a s h p a c k a g e . 0001560 T h e l a t t e r , o f 0001600 d a t a t y p e H a s h F 0001620 i l e , i s t h e d a t u 0001640 m r e t u r n e d b y C R 0001660 E A T E H A S H F I L E o r 0001700 O P E N H A S H F I L E , c u 0001720 r r e n t l y a n a r r a y 0001740 r e c o r d c o n t a i n i 0001760 n g t h e h a s h f i l e 0002000 n a m e , t h e n u m b e 0002020 r o f s l o t s i n t h 0002040 e f i l e , t h e u s e d 0002060 s l o t s , a n d o t h e 0002100 r d e t a i l s . A l l 0002120 o t h e r f u n c t i o n s 0002140 w i t h h a s h f i l e a 0002160 r g u m e n t s u s e t h i 0002200 s d a t u m . \r I n o l d e 0002220 r i m p l e m e n t a t i o n 0002240 s , ( e . g . , f o r I n 0002260 t e r l i s p - 1 0 ) h a s h 0002300 f i l e s c a m e i n s 0002320 e v e r a l v a r i e t i e s 0002340 , a c c o r d i n g t o t 0002360 h e t y p e s o f v a l u 0002400 e s t o r e d i n t h e m 0002420 . T h e E M Y C I N s y 0002440 s t e m p r o v i d e d e v 0002460 e n m o r e f l e x i b i l 0002500 i t y . T h i s s y s t e m 0002520 o n l y s u p p o r t s t 0002540 h e m o s t g e n e r a l 0002560 E X P R t y p e o f h a s 0002600 h f i l e s a n d E M Y C 0002620 I N - s t y l e T E X T e n 0002640 t r i e s , i n t h e s a 0002660 m e f i l e . T h e V A 0002700 L U E T Y P E a n d I T E M 0002720 L E N G T H a r g u m e n t s 0002740 a r e f o r t h e m o s 0002760 t p a r t i g n o r e d . 0003000 T w o - k e y h a s h i n g 0003020 i s s u p p o r t e d i n 0003040 t h i s s y s t e m b u t 0003060 i s d i s c o u r a g e d a 0003100 s i t i s o n l y u s e 0003120 d i n E M Y C I N , n o t 0003140 i n t h e I n t e r l i s 0003160 p - 1 0 s y s t e m . T h 0003200 e f u n c t i o n s G E T P 0003220 A G E , D E L P A G E , a n 0003240 d G E T P N A M E , w h i c 0003260 h m a n i p u l a t e 251 251 s 0003300 e c r e t p a g e s , 271 271 d 0003320 o n o t e x i s t i n t 0003340 h i s i m p l e m e n t a t i 0003360 o n . H o w e v e r , i t 0003400 i s p e r m i s s i b l e 0003420 t o w r i t e d a t a a t 0003440 t h e e n d o f a h a 0003460 s h f i l e ; t h a t d a 0003500 t a w i l l b e i g n o r 0003520 e d b y t h e H a s h p 0003540 a c k a g e , a n d c a n 0003560 b e u s e d t o s t o r e 0003600 a d d i t i o n a l d a t a 0003620 . \r C r e a t i n g a H a s 0003640 h F i l e \r 1 \r \r ( C R E A T 0003660 E H A S H F I L E F i l e V 0003700 a l u e T y p e I t e m L e n 0003720 g t h \r 0003740 0003760 # E n t r i 0004000 e s S m a s h C o p y F n ) 0004020 \t [ F u n c t i o n ] \r C r e a 0004040 t e s a n e w h a s h f 0004060 i l e n a m e d F i l e . 0004100 A l l o t h e r a r g u m 0004120 e n t s a r e o p t i o n a 0004140 l . V a l u e T y p e c a n 0004160 b e E X P R o r T E X T 0004200 , h o w e v e r b o t h k 0004220 i n d s o f e n t r i e s 0004240 c a n e x i s t o n t h e 0004260 s a m e f i l e s o E X 0004300 P R i s b e s t . I t e 0004320 m L e n g t h i s n o t u 0004340 s e d b y t h e s y s t e 0004360 m b u t i s c u r r e n t 0004400 l y s a v e d o n t h e 0004420 f i l e ( i f l e s s t h 0004440 a n 2 5 6 ) f o r f u t u 0004460 r e u s e . # E n t r i e s 0004500 i s a n e s t i m a t e 0004520 o f t h e n u m b e r o f 0004540 e n t r i e s t h e f i l 0004560 e w i l l h a v e . ( T 0004600 h i s s h o u l d b e a 0004620 r e a l i s t i c g u e s s . 0004640 ) S m a s h i s a h a 0004660 s h f i l e d a t u m t o 0004700 r e u s e . \r C o p y F n i 0004720 s a f u n c t i o n t o 0004740 b e a p p l i e d t o e n 0004760 t r i e s w h e n t h e f 0005000 i l e i s r e h a s h e d 0005020 ( s e e t h e d e s c r i p 0005040 t i o n o f R E H A S H F I 0005060 L E ) . \r 2 \r \r U s i n g a 0005100 H a s h F i l e \r 1 \r \r O p e 0005120 n i n g a n d C l o s i n g 0005140 H a s h F i l e s \r 1 \r \r B 0005160 e f o r e y o u c a n u s 0005200 e a h a s h f i l e w i 0005220 t h t h i s p a c k a g e , 0005240 y o u h a v e t o o p e 0005260 n i t , u s i n g t h e 0005300 f u n c t i o n \r ( O P E N H A 0005320 S H F I L E F i l e A c c e 0005340 s s I t e m L e n g t h \r 0005360 * 0005420 # E n t r i e s S m 0005440 a s h ) \t [ F u n c t i o n ] \r 0005460 R e o p e n s t h e p r e v 0005500 i o u s l y e x i s t i n g 0005520 h a s h f i l e F i l e . 0005540 A c c e s s m a y b e 0005560 I N P U T ( o r N I L ) , 0005600 i n w h i c h c a s e F i 0005620 l e i s o p e n e d f o r 0005640 r e a d i n g o n l y , o 0005660 r B O T H , i n w h i c h 0005700 c a s e F i l e i s o p 0005720 e n f o r b o t h i n p u 0005740 t a n d o u t p u t . C 0005760 a u s e s a n e r r o r N 0006000 O T A H A S H F I L E , i 0006020 f F i l e i s n o t r e 0006040 c o g n i z e d a s a h a 0006060 s h f i l e . I t e m L e 0006100 n g t h a n d # E n t r i e 0006120 s a r e f o r b a c k w a 0006140 r d c o m p a t i b i l i t y 0006160 w i t h E M Y C I N w h e 0006200 r e O P E N H A S H F I L E 0006220 a l s o c r e a t e d n e w 0006240 h a s h f i l e s ; t h e 0006260 s e a r g u m e n t s s h o 0006300 u l d b e a v o i d e d . 0006320 S m a s h i s a h a s h 0006340 f i l e d a t u m t o r 0006360 e u s e . \r I f A c c e s s 0006400 i s B O T H a n d F i l e 0006420 i s a h a s h f i l e 0006440 o p e n f o r r e a d i n g 0006460 o n l y , O P E N H A S H F 0006500 I L E a t t e m p t s t o 0006520 c l o s e i t a n d r e o 0006540 p e n i t f o r w r i t i 0006560 n g . O t h e r w i s e , i 0006600 f F i l e d e s i g n a t e 0006620 s a n a l r e a d y o p e 0006640 n h a s h f i l e , O P E 0006660 N H A S H F I L E i s a n 0006700 o - o p . \r O P E N H A S H F I 0006720 L E r e t u r n s a h a s 0006740 h f i l e d a t u m . \r W h 0006760 e n y o u a r e f i n i s 0007000 h e d u s i n g a h a s h 0007020 f i l e , y o u s h o u l 0007040 d c l o s e i t , u s i n 0007060 g t h e f u n c t i o n \r ( 0007100 C L O S E H A S H F I L E H a 0007120 s h F i l e R e O p e n ) \t [ 0007140 F u n c t i o n ] \r C l o s e s 0007160 H a s h F i l e . I f R 0007200 e O p e n i s n o n - N I L 0007220 i t s h o u l d b e o n 0007240 e o f t h e a c c e p t e 0007260 d a c c e s s t y p e s . 0007300 I n t h i s c a s e t h 0007320 e f i l e i s c l o s e d 0007340 a n d t h e n i m m e d i 0007360 a t e l y r e o p e n e d w 0007400 i t h a c c e s s = R e O 0007420 p e n . T h i s i s u s 0007440 e d t o m a k e s u r e 0007460 t h e h a s h f i l e i s 0007500 v a l i d o n t h e d i 0007520 s k . \r S t o r i n g a n d 0007540 R e t r i e v i n g D a t a \r 0007560 1 \r \r ( P U T H A S H F I L E 0007600 K e y V a l u e H a s h F i 0007620 l e K e y 2 ) \t [ F u n c t i 0007640 o n ] \r P u t s V a l u e u 0007660 n d e r K e y i n H a s h 0007700 F i l e . I f V a l u e 0007720 i s N I L , a n y p r e v 0007740 i o u s e n t r y f o r K 0007760 e y i s d e l e t e d . 0010000 K e y 2 i s f o r E M Y C 0010020 I N t w o - k e y h a s h i 0010040 n g : K e y 2 i s i n t e 0010060 r n a l l y a p p e n d e d 0010100 t o K e y a n d t h e y 0010120 a r e t r e a t e d a s a 0010140 s i n g l e k e y . \r ( G E 0010160 T H A S H F I L E K e y H a 0010200 s h F i l e K e y 2 ) \t [ F u 0010220 n c t i o n ] \r G e t s t h e 0010240 v a l u e s t o r e d u n 0010260 d e r K e y i n H a s h F 0010300 i l e . K e y 2 i s n e 0010320 c e s s a r y i f i t w a 0010340 s s u p p l i e d t o P U 0010360 T H A S H F I L E . \r ( L O O K 0010400 U P H A S H F I L E K e y V 0010420 a l u e H a s h F i l e \r 0010440 * 0010500 C a l l T y p e K 0010520 e y 2 ) \t [ F u n c t i o n ] \r 0010540 A g e n e r a l i z e d e n 0010560 t r y f o r i n s e r t i n 0010600 g a n d r e t r i e v i n g 0010620 v a l u e s ; p r o v i d e 0010640 s c e r t a i n o p t i o n 0010660 s n o t a v a i l a b l e 0010700 w i t h G E T H A S H F I L E 0010720 o r P U T H A S H F I L E . 0010740 L O O K U P H A S H F I L E 0010760 l o o k s u p K e y i n 0011000 H a s h F i l e . C a l l 0011020 T y p e i s a n a t o m 0011040 o r a l i s t o f a t o 0011060 m s . T h e s e k e y w o 0011100 r d s a r e i n t e r p r e 0011120 t e d a s f o l l o w s : \r 0011140 R E T R I E V E \t I f K e y 0011160 i s f o u n d , t h e n 0011200 i f C a l l T y p e i s o 0011220 r c o n t a i n s R E T R I 0011240 E V E , t h e o l d v a l 0011260 u e i s r e t u r n e d f 0011300 r o m L O O K U P H A S H F I 0011320 L E ; o t h e r w i s e r e 0011340 t u r n s T . \r D E L E T E \t 0011360 I f C a l l T y p e i s o 0011400 r c o n t a i n s D E L E T 0011420 E , t h e v a l u e a s s 0011440 o c i a t e d w i t h K e y 0011460 i s d e l e t e d f r o m 0011500 t h e f i l e . \r R E P L 0011520 A C E \t I f C a l l T y p e 0011540 i s o r c o n t a i n s R 0011560 E P L A C E , t h e o l d 0011600 v a l u e i s r e p l a c e 0011620 d w i t h V a l u e . \r I N 0011640 S E R T \t I f C a l l T y p e 0011660 i s o r c o n t a i n s 0011700 I N S E R T , L O O K U P H A 0011720 S H F I L E i n s e r t s V 0011740 a l u e a s t h e v a l u 0011760 e a s s o c i a t e d w i t 0012000 h K e y . \r C o m b i n a t i 0012020 o n s a r e p o s s i b l e 0012040 . F o r e x a m p l e , 0012060 ( R E T R I E V E D E L E T E 0012100 ) w i l l d e l e t e a 0012120 k e y a n d r e t u r n t 0012140 h e o l d v a l u e . \r ( P 0012160 U T H A S H T E X T K e y S 0012200 R C F I L H a s h F i l e S 0012220 t a r t E n d ) \t [ F u n c t 0012240 i o n ] \r P u t s t e x t f 0012260 r o m S R C F I L o n t o 0012300 H a s h F i l e u n d e r K 0012320 e y . S t a r t a n d E n 0012340 d a r e p a s s e d d i r 0012360 e c t l y t o C O P Y B Y T 0012400 E S . \r ( G E T H A S H T E X T 0012420 K e y H a s h F i l e D S 0012440 T F I L ) \t [ F u n c t i o n ] 0012460 \r U s e s C O P Y B Y T E S 0012500 t o r e t r i e v e t e x t 0012520 s t o r e d u n d e r K e 0012540 y o n H a s h F i l e . 0012560 T h e b y t e s a r e a p 0012600 p e n d e d t o t h e f i 0012620 l e D S T F I L . \r F u n c t 0012640 i o n s f o r M a n i p u l 0012660 a t i n g H a s h F i l e s 0012700 \r 1 \r \r ( H A S H F I L E P H 0012720 a s h F i l e W r i t e ? ) \t 0012740 [ F u n c t i o n ] \r R e t u r 0012760 n s H a s h F i l e i f i 0013000 t i s a v a l i d , o p 0013020 e n h a s h f i l e d a t 0013040 u m o r r e t u r n s t h 0013060 e h a s h f i l e d a t u 0013100 m a s s o c i a t e d w i t 0013120 h H a s h F i l e i f i t 0013140 i s t h e n a m e o f 0013160 a n o p e n h a s h f i l 0013200 e . I f W r i t e ? i 0013220 s n o n - N I L , H a s h F 0013240 i l e m u s t a l s o b e 0013260 o p e n f o r w r i t e 0013300 a c c e s s . \r ( H A S H F I L 0013320 E P R O P H a s h F i l e P 0013340 r o p e r t y ) \t [ F u n c t i 0013360 o n ] \r R e t u r n s t h e 0013400 v a l u e o f a P r o p e 0013420 r t y o f a H a s h F i l 0013440 e d a t u m . C u r r e n 0013460 t l y a c c e p t e d p r o 0013500 p e r t i e s a r e N A M E 0013520 , A C C E S S , V A L U E T 0013540 Y P E , I T E M L E N G T H , 0013560 S I Z E , # E N T R I E S , 0013600 C o p y F n a n d S T R E 0013620 A M . \r ( H A S H F I L E N A M 0013640 E H a s h F i l e ) \t [ F u n 0013660 c t i o n ] \r S a m e a s ( 0013700 H A S H F I L E P R O P H a s 0013720 h F i l e ' N A M E ) . \r ( M 0013740 A P H A S H F I L E H a s h F 0013760 i l e M a p F n D o u b l e 0014000 ) \t [ F u n c t i o n ] \r M a p 0014020 s o v e r H a s h F i l e 0014040 a p p l y i n g M a p F n . 0014060 I f M a p F n t a k e s 0014100 t w o a r g u m e n t s , i 0014120 t i s a p p l i e d t o 0014140 K e y a n d V a l u e . 0014160 I f M a p F n o n l y t a 0014200 k e s o n e a r g u m e n t 0014220 , i t i s o n l y a p p 0014240 l i e d t o K e y a n d 0014260 s a v e s t h e c o s t o 0014300 f r e a d i n g v a l u e 0014320 f r o m t h e f i l e . 0014340 I f D o u b l e i s n o n 0014360 - N I L , t h e n M a p F n 0014400 i s a p p l i e d t o ( 0014420 K e y 1 K e y 2 V a l u e ) 0014440 o r ( K e y 1 K e y 2 ) 0014460 i f t h e M a p F n o n l 0014500 y t a k e s t w o a r g u 0014520 m e n t s . \r ( R E H A S H F I 0014540 L E H a s h F i l e N e w N 0014560 a m e N e w V a l u e T y p e 0014600 ) \t [ F u n c t i o n ] \r A s 0014620 k e y s a r e r e p l a c e 0014640 d , s p a c e i n t h e 0014660 d a t a s e c t i o n o f 0014700 t h e f i l e i s n o t 0014720 r e u s e d ( t h o u g h s 0014740 p a c e i n t h e k e y 0014760 s e c t i o n i s ) . E v 0015000 e n t u a l l y t h e f i l 0015020 e m a y n e e d r e h a s 0015040 h i n g t o r e c l a i m 0015060 t h e w a s t e d d a t a 0015100 s p a c e . R E H A S H F I 0015120 L E i s r e a l l y a s 0015140 p e c i a l c a s e o f C 0015160 O P Y H A S H F I L E , a n d 0015200 c r e a t e s a n e w f 0015220 i l e . I f N e w N a m e 0015240 i s n o n - N I L , i t 0015260 i s t a k e n a s t h e 0015300 n a m e o f t h e r e h a 0015320 s h e d f i l e . N e w V 0015340 a l u e T y p e i s a n o 0015360 - o p . \r T h e s y s t e m 0015400 a u t o m a t i c a l l y r e 0015420 h a s h e s f i l e s w h e 0015440 n 7 / 8 o f t h e k e y 0015460 s e c t i o n i s f i l l 0015500 e d . T h e s y s t e m 0015520 w i l l p r i n t a m e s 0015540 s a g e w h e n a u t o m a 0015560 t i c a l l y r e h a s h i n 0015600 g a f i l e i f t h e 0015620 g l o b a l v a r i a b l e 0015640 R E H A S H G A G i s n o n 0015660 - N I L . \r C e r t a i n a p 0015700 p l i c a t i o n s s a v e 0015720 d a t a o u t s i d e H a s 0015740 h ' s n o r m a l f r a m e 0015760 w o r k . H a s h f i l e 0016000 s f o r t h o s e a p p l 0016020 i c a t i o n s w i l l n e 0016040 e d a c u s t o m C o p y 0016060 F n , w h i c h i s u s e 0016100 d t o c o p y d a t a d 0016120 u r i n g t h e r e h a s h 0016140 i n g p r o c e s s . T h e 0016160 C o p y F n i s u s e d 0016200 a s t h e F N a r g u m e 0016220 n t t o C O P Y H A S H F I 0016240 L E d u r i n g t h e r e 0016260 h a s h i n g . \r ( C O P Y H A 0016300 S H F I L E H a s h F i l e 0016320 N e w N a m e F N \r 0016340 0016360 V a l 0016400 u e T y p e L e a v e O p e n 0016420 ) \t [ F u n c t i o n ] \r M a k 0016440 e s a c o p y o f H a s 0016460 h F i l e u n d e r N e w N 0016500 a m e . E a c h k e y a 0016520 n d v a l u e p a i r i s 0016540 m o v e d i n d i v i d u a 0016560 l l y a n d i f F N i s 0016600 s u p p l i e d , i s a p 0016620 p l i e d t o ( K E Y V A 0016640 L U E H A S H F I L E N E W 0016660 H A S H F I L E ) a n d w h 0016700 a t i t r e t u r n s i s 0016720 u s e d a s t h e v a l 0016740 u e o f t h e k e y i n 0016760 t h e n e w h a s h f i 0017000 l e ( t h i s l e t s t h 0017020 e u s e r i n t e r v e n e 0017040 , p e r h a p s t o c o p 0017060 y o u t - o f - b a n d d a 0017100 t a a s s o c i a t e d w i 0017120 t h V A L U E ) . V a l u 0017140 e T y p e i s a n o - o p 0017160 . I f L e a v e O p e n 0017200 i s n o n - N I L t h e n 0017220 t h e n e w h a s h f i l 0017240 e d a t u m i s r e t u r 0017260 n e d o p e n , o t h e r w 0017300 i s e t h e n e w H a s h 0017320 f i l e i s c l o s e d 0017340 a n d t h e n a m e i s 0017360 r e t u r n e d . \r ( H A S H F 0017400 I L E S P L S T H a s h F i l 0017420 e X W o r d ) \t [ F u n c t i 0017440 o n ] \r R e t u r n s a n I 0017460 n t e r l i s p g e n e r a t 0017500 o r f o r t h e k e y s 0017520 i n H a s h F i l e , u s a 0017540 b l e w i t h t h e s p e 0017560 l l i n g c o r r e c t o r . 0017600 I f X W o r d i s s u 0017620 p p l i e d , o n l y k e y 0017640 s s t a r t i n g w i t h 0017660 t h e p r e f i x i n X W 0017700 o r d a r e g e n e r a t e 0017720 d . \r G l o b a l V a r i a b 0017740 l e s \r 1 \r \r T h e v a r i a 0017760 b l e s u s e d b y t h e 0020000 s y s t e m o f i n t e r 0020020 e s t t o t h e u s e r 0020040 a r e : \r H A S H F I L E D E F 0020060 A U L T S I Z E 5 1 2 \r S i 0020100 z e u s e d w h e n # E n 0020120 t r i e s i s o m i t t e d 0020140 o r i s t o o s m a l l 0020160 . \r H A S H F I L E R D T B L 0020200 O R I G \r T h e h a s h f 0020220 i l e r e a d t a b l e . \r 0020240 H A S H L O A D F A C T O R . 0020260 8 7 5 \r T h e r a t i o , 0020300 u s e d s l o t s / t o t a l 0020320 s l o t s , a t w h i c h 0020340 t h e s y s t e m r e h a 0020360 s h e s t h e f i l e , i 0020400 n i t i a l l y 7 / 8 . \r H A 0020420 S H T E X T C H A R ^ A \r T 0020440 h e c h a r a c t e r s e p 0020460 a r a t i n g t w o k e y 0020500 h a s h k e y s . \r H F G R O 0020520 W T H F A C T O R 3 \r T h e 0020540 r a t i o n o f t o t a l 0020560 s l o t s t o u s e d s 0020600 l o t s w h e n a h a s h 0020620 f i l e i s c r e a t e d 0020640 . \r R E H A S H G A G N I L 0020660 \r F l a g s w h e t h e r t 0020700 o p r i n t m e s s a g e 0020720 w h e n r e h a s h i n g ; 0020740 i n i t i a l l y o f f . \r S 0020760 Y S H A S H F I L E N I L \r 0021000 T h e c u r r e n t h a s h 0021020 f i l e . \r S Y S H A S H F I 0021040 L E L S T N I L \r A n a l 0021060 i s t o f o p e n h a s h 0021100 f i l e s . \r 2 \r \r I m p l e 0021120 m e n t a t i o n \r 1 \r \r T h e 0021140 H a s h p a c k a g e v i 0021160 e w s f i l e s a s a s 0021200 e q u e n c e o f b y t e s 0021220 , r a n d o m l y a c c e s 0021240 s i b l e . N o n o t i c 0021260 e i s m a d e o f p a g 0021300 e s a n d i t i s a s s 0021320 u m e d t h a t t h e h o 0021340 s t c o m p u t e r b u f f 0021360 e r s I / O s u f f i c i e 0021400 n t l y . \r H a s h f i l e s 0021420 c o n s i s t o f a s h 0021440 o r t h e a d e r s e c t i 0021460 o n ( 8 b y t e s ) , a 0021500 l a y e r o f p o i n t e r 0021520 s ( 4 * H A S H F I L E : S i 0021540 z e b y t e s ) f o l l o w 0021560 e d b y A S C I I d a t a 0021600 . P o i n t e r s a r e 0021620 t h r e e b y t e s w i d e 0021640 , p r e c e e d e d b y a 0021660 s t a t u s b y t e . T 0021700 h e p o i n t e r s p o i n 0021720 t t o k e y P N A M E S 0021740 i n t h e d a t a s e c t 0021760 i o n , w h e r e e a c h 0022000 k e y i s f o l l o w e d 0022020 b y i t s v a l u e . \r D e 0022040 l e t e d k e y p o i n t e 0022060 r s a r e r e u s e d , d 0022100 e l e t e d d a t a s p a c 0022120 e i s n o t , s o r e h 0022140 a s h i n g i s r e q u i r 0022160 e d i f m a n y i t e m s 0022200 h a v e b e e n 251 251 r e p 0022220 l a c e d . ' ' \r T h e d a t 0022240 a s e c t i o n s t a r t s 0022260 a t 4 * H A S H F I L E : S 0022300 i z e + 9 , a n d c o n 0022320 s i s t s o f a l t e r n a 0022340 t i n g k e y s a n d v a 0022360 l u e s . A s d e l e t e 0022400 d d a t a i s n o t r e 0022420 w r i t t e n , n o t a l l 0022440 d a t a i n t h e d a t 0022460 a s e c t i o n i s v a l 0022500 i d . \r W h e n a k e y h 0022520 a s h e s i n t o a u s e 0022540 d s l o t , a p r o b e 0022560 v a l u e i s a d d e d t 0022600 o i t t o f i n d t h e 0022620 n e x t s l o t t o s e 0022640 a r c h . T h e p r o b e 0022660 v a l u e i s a s m a l 0022700 l p r i m e d e r i v e d 0022720 f r o m t h e o r i g i n a 0022740 l h a s h k e y . \r 2 \r \r L 0022760 i m i t a t i o n s \r 1 \r \r T h 0023000 e s y s t e m c u r r e n t 0023020 l y i s a b l e t o m a 0023040 n i p u l a t e f i l e s o 0023060 n C O R E , D S K , F L O 0023100 P P Y a n d o v e r t h e 0023120 n e t w o r k , v i a l e 0023140 a f s e r v e r s . H a s 0023160 h f i l e s c a n n o t b 0023200 e u s e d w i t h N S s 0023220 e r v e r s u n t i l t h e 0023240 y s u p p o r t r a n d o m 0023260 a c c e s s f i l e s . \r D 0023300 u e t o t h e p o i n t e 0023320 r s i z e , o n l y h a s 0023340 h f i l e s o f < 6 m 0023360 i l l i o n i n i t i a l e 0023400 n t r i e s c a n b e c r 0023420 e a t e d , t h o u g h t h 0023440 e s e c a n g r o w t o 0023460 1 4 m i l l i o n e n t r i 0023500 e s b e f o r e a u t o m a 0023520 t i c r e h a s h i n g e x 0023540 c e e d s t h e p o i n t e 0023560 r l i m i t . T h e t o 0023600 t a l f i l e l e n g t h 0023620 i s l i m i t e d t o 1 6 0023640 m i l l i o n b y t e s . 0023660 N o r a n g e c h e c k i 0023700 n g i s d o n e f o r t 0023720 h e s e l i m i t s . \0 \0 \0 \0 0023740 \0 003 ( L I S T ( ( P A G E N 0023760 I L ( P A P E R S I Z E L e 0024000 t t e r F O L I O I N F O ( 0024020 A R A B I C ) S T A R T I 0024040 N G P A G E # 2 8 2 ) ( 0 0024060 0 6 1 2 7 9 2 ) ( ( F O L 0024100 I O N I L ( P A R A L O O K 0024120 S ( Q U A D L E F T ) C H 0024140 A R L O O K S ( S U P E R S C 0024160 R I P T 0 I N V I S I B L E 0024200 O F F S E L E C T P O I N T 0024220 O F F P R O T E C T E D O 0024240 F F S I Z E 1 0 F A M I L 0024260 Y M O D E R N O V E R L I N 0024300 E O F F S T R I K E O U T 0024320 O F F U N D E R L I N E O F 0024340 F E X P A N S I O N R E G U 0024360 L A R S L O P E R E G U L A 0024400 R W E I G H T M E D I U M 0024420 I N V E R T E D O F F U S E 0024440 R I N F O N I L S T Y L E 0024460 N I L ) F O R M A T I N F O 0024500 ( A R A B I C ) ) ( 5 4 0024520 1 2 2 8 8 3 6 ) N I L ) 0024540 ( H E A D I N G N I L ( H E 0024560 A D I N G T Y P E F O O T I N 0024600 G V ) ( 5 4 2 7 5 5 8 3 0024620 6 ) N I L ) ( H E A D I N G 0024640 N I L ( H E A D I N G T Y P 0024660 E V E R S O H E A D ) ( 5 4 0024700 7 6 2 5 5 8 3 6 ) N I L 0024720 ) ( T E X T N I L N I L 0024740 ( 5 4 5 4 5 0 4 6 1 8 ) 0024760 N I L ) ) ) ( P A G E N I L 0025000 ( P A P E R S I Z E L e t t 0025020 e r F O L I O I N F O ( A R 0025040 A B I C ) ) ( 0 0 6 1 0025060 2 7 9 2 ) ( ( F O L I O N 0025100 I L ( P A R A L O O K S ( Q 0025120 U A D R I G H T ) C H A R L 0025140 O O K S ( S U P E R S C R I P 0025160 T 0 I N V I S I B L E O F 0025200 F S E L E C T P O I N T O F 0025220 F P R O T E C T E D O F F 0025240 S I Z E 1 0 F A M I L Y M 0025260 O D E R N O V E R L I N E O 0025300 F F S T R I K E O U T O F F 0025320 U N D E R L I N E O F F E 0025340 X P A N S I O N R E G U L A R 0025360 S L O P E R E G U L A R W 0025400 E I G H T M E D I U M I N V 0025420 E R T E D O F F U S E R I N 0025440 F O N I L S T Y L E N I L 0025460 ) F O R M A T I N F O ( A R 0025500 A B I C ) ) ( 2 7 0 1 2 0025520 2 8 8 3 6 ) N I L ) ( H 0025540 E A D I N G N I L ( H E A D 0025560 I N G T Y P E F O O T I N G R 0025600 ) ( 5 4 2 7 5 5 8 3 6 ) 0025620 N I L ) ( H E A D I N G N 0025640 I L ( H E A D I N G T Y P E 0025660 R E C T O H E A D ) ( 5 4 7 0025700 6 2 5 5 8 3 6 ) N I L ) 0025720 ( T E X T N I L N I L ( 5 0025740 4 5 4 5 0 4 6 8 4 ) N I 0025760 L ) ) ) ( P A G E N I L ( 0026000 P A P E R S I Z E L e t t e r 0026020 F O L I O I N F O ( A R A B 0026040 I C ) ) ( 0 0 6 1 2 0026060 7 9 2 ) ( ( F O L I O N I L 0026100 ( P A R A L O O K S ( Q U A 0026120 D L E F T ) C H A R L O O K 0026140 S ( S U P E R S C R I P T 0 0026160 I N V I S I B L E O F F S 0026200 E L E C T P O I N T O F F P 0026220 R O T E C T E D O F F S I Z 0026240 E 1 0 F A M I L Y M O D E 0026260 R N O V E R L I N E O F F 0026300 S T R I K E O U T O F F U N 0026320 D E R L I N E O F F E X P A 0026340 N S I O N R E G U L A R S L 0026360 O P E R E G U L A R W E I G 0026400 H T M E D I U M I N V E R T 0026420 E D O F F U S E R I N F O 0026440 N I L S T Y L E N I L ) F 0026460 O R M A T I N F O ( A R A B I 0026500 C ) ) ( 5 4 1 2 2 8 8 0026520 3 6 ) N I L ) ( H E A D I 0026540 N G N I L ( H E A D I N G T 0026560 Y P E F O O T I N G V ) ( 5 0026600 4 2 7 5 5 8 3 6 ) N I L 0026620 ) ( H E A D I N G N I L ( 0026640 H E A D I N G T Y P E V E R S 0026660 O H E A D ) ( 5 4 7 6 2 5 0026700 5 8 3 6 ) N I L ) ( T E X 0026720 T N I L N I L ( 5 4 5 4 0026740 5 0 4 6 8 4 ) N I L ) ) ) 0026760 ) ) \0 \0 \0 \0 \0 005 \0 024 \0 * \0 \0 \0 \0 0027000 001 370 \0 016 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 0027020 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 \0 001 T 0027040 \0 \0 \0 \0 \0 / \0 314 \0 314 001 370 \0 \a \0 \0 0027060 \0 \0 003 004 \0 \0 001 001 370 001 \0 \0 \0 \0 \0 \0 0027100 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 \0 \0 \0 0027120 \0 \0 \0 \0 0 \0 \0 \0 \0 001 370 \0 016 \0 \0 \0 0027140 \0 003 001 \0 \0 001 001 370 001 \0 \0 \0 \0 \0 \0 \0 0027160 \0 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 \0 001 T \0 0027200 \0 \0 \0 \0 . \0 314 \0 314 001 370 \0 \v \0 \0 \0 0027220 \0 003 004 \0 \0 001 001 370 001 \0 \0 \0 \0 \0 \0 \0 0027240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027260 \0 \0 . \0 314 \0 314 001 370 \0 \v \0 \0 \0 \0 003 0027300 004 \0 \0 001 001 370 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027320 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027340 . \0 314 \0 314 001 370 \0 \0 \0 \0 \0 \0 003 004 \0 0027360 \0 001 001 370 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 . \0 0027420 314 001 \b 001 370 \0 \a \0 \0 \0 \0 003 004 \0 \0 001 0027440 001 \b 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 / \0 \0 \0 0027500 \0 001 370 \0 \0 \0 \0 \0 \0 003 001 \0 \0 001 001 370 0027520 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027540 \0 \0 \0 \0 001 T \0 \0 \0 \0 \0 . \0 314 \0 314 0027560 001 370 \0 \a \0 \0 \0 \0 003 004 \0 \0 001 001 370 001 0027600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027620 \0 \0 \0 \0 \0 \0 \0 \0 \0 ) \0 \0 \0 \0 001 370 0027640 \0 016 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 0027660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 \0 0027700 \0 \0 ( \0 314 \0 314 001 370 \0 \v \0 \0 \0 \0 002 0027720 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0027740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ) \0 314 \0 314 001 0027760 370 \0 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 0030000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 0030020 \0 \0 \0 ) \0 314 \0 314 001 370 \0 \0 \0 \0 \0 \0 0030040 002 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0030060 \0 \0 \0 \0 \0 001 T \0 \0 \0 \0 \0 ) \0 \0 \0 0030100 \0 001 370 \0 2 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 0030120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 T 0030140 \0 \0 \0 \0 \0 ) \0 \0 \0 \0 001 370 \0 \0 \0 \0 0030160 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0030200 \0 \0 \0 \0 \0 \0 \0 001 T \0 \0 \0 \0 \0 ( \0 0030220 314 \0 314 001 370 \0 \a \0 \0 \0 \0 002 004 \0 \0 \0 0030240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0030260 \0 \0 \0 \0 \0 \0 B \0 \0 \0 \0 001 370 \0 \0 \0 0030300 \0 \0 \0 003 001 \0 \0 001 001 370 001 \0 \0 \0 \0 \0 0030320 \0 \0 \v P A G E H E A D I N G \0 \t 0030340 V E R S O H E A D \0 \0 \0 \0 \0 \0 \0 0030360 \0 \0 \0 \0 \0 \0 \0 \0 B \0 \0 \0 \0 001 370 \0 0030400 \0 \0 \0 \0 \0 003 002 \0 \0 001 001 370 001 \0 \0 \0 0030420 \0 \0 \0 \0 \v P A G E H E A D I N G 0030440 \0 \t R E C T O H E A D \0 \0 \0 \0 \0 0030460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 A \0 \0 \0 \0 001 0030500 370 \0 001 \0 \0 \0 001 003 002 \0 \0 001 001 370 001 \0 0030520 \0 \0 \0 \0 \0 \0 \v P A G E H E A D I 0030540 N G \0 \b F O O T I N G V \0 \0 \0 \0 0030560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 A \0 \0 \0 \0 0030600 001 370 \0 001 \0 \0 \0 001 003 001 \0 \0 001 001 370 001 0030620 \0 \0 \0 \0 \0 \0 \0 \v P A G E H E A D 0030640 I N G \0 \b F O O T I N G R \0 \0 \0 0030660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0030700 004 \0 005 \0 024 \0 006 M O D E R N \0 \n \0 0030720 \0 \0 \0 \0 \0 001 \0 \0 024 \0 006 M O D E R 0030740 N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 006 M 0030760 O D E R N \0 016 \0 \0 \0 \0 \0 \0 002 \0 \0 0031000 024 \0 006 M O D E R N \0 022 \0 \0 \0 \0 \0 0031020 \0 002 \0 \0 024 \0 006 M O D E R N \0 \n \0 0031040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 024 \0 0031060 \0 \0 002 \0 001 \0 \v H R U L E . G E T 0031100 F N 001 \0 024 \0 006 M O D E R N \0 \n \0 0031120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 0031140 \0 \0 \0 \0 \0 002 \0 024 \0 \0 \0 035 \0 \0 \0 \0 0031160 005 \0 \0 \0 \0 \0 002 \0 023 \0 \0 \0 002 \0 001 \0 0031200 \v H R U L E . G E T F N 001 \0 024 \0 0031220 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 0031240 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0031260 \0 023 \0 \0 \0 035 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0031300 002 \0 022 \0 \0 \0 005 \0 \0 \0 \0 005 \0 \0 \0 \0 0031320 \0 002 \0 022 \0 \0 \0 002 \0 001 \0 \v H R U L 0031340 E . G E T F N 001 \0 024 \0 006 M O D E 0031360 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0031400 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 021 \0 \0 \0 0031420 023 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 021 \0 \0 0031440 \0 002 \0 001 \0 \v H R U L E . G E T F 0031460 N 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 0031500 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 005 \0 0031520 \0 \0 \0 \0 002 \0 \r \0 \0 \0 005 \0 \0 \0 \0 004 0031540 \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0 002 \0 001 \0 \v 0031560 H R U L E . G E T F N 001 \0 024 \0 006 0031600 M O D E R N \0 022 \0 \0 \0 \0 \0 \0 002 \0 0031620 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 0031640 020 \0 \0 \0 215 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0031660 \0 016 \0 \0 \0 002 \0 001 \0 \v H R U L E . 0031700 G E T F N 001 \0 024 \0 006 M O D E R N 0031720 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 0031740 \0 \0 005 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 \r \0 0031760 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 002 0032000 \0 001 \0 \v H R U L E . G E T F N 001 0032020 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 0032040 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 0032060 \0 \0 002 \0 \v \0 \0 001 201 \0 \0 \0 \0 005 \0 \0 0032100 \0 \0 \0 002 \0 016 \0 \0 \0 002 \0 001 \0 \v H R 0032120 U L E . G E T F N 001 \0 024 \0 006 M O 0032140 D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0032160 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 017 \0 0032200 \0 \0 \v \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 017 0032220 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0032240 T F N 001 \0 024 \0 006 M O D E R N \0 \n 0032260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 0032300 005 \0 \0 \0 \0 \0 002 \0 \v \0 \0 001 360 \0 \0 \0 0032320 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 003 \t \0 \0 0032340 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 025 \0 0032360 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 002 0032400 \0 001 \0 \v H R U L E . G E T F N 001 0032420 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 0032440 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 0032460 \0 \0 002 \0 005 \0 \0 \0 020 \0 \0 \0 \0 005 \0 \0 0032500 \0 032 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 006 \0 0032520 \0 \0 ; \0 \0 \0 \0 001 \0 \0 \0 \r \0 \0 \0 \0 0032540 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 036 \0 \0 \0 0032560 \0 005 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 % \0 0032600 \0 \0 \0 005 \0 \0 \0 \t \0 \0 \0 \0 001 \0 \0 \0 0032620 ` \0 \0 \0 \0 005 \0 \0 \0 \v \0 \0 \0 \0 001 \0 0032640 \0 \0 a \0 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 \0 0032660 001 \0 \0 \0 c \0 \0 \0 \0 005 \0 \0 \0 005 \0 \0 0032700 \0 \0 001 \0 \0 \0 \0 \0 \0 \0 005 \0 \0 \0 \0 0032720 \0 002 \0 020 \0 \0 \0 006 \0 \0 \0 \0 001 \0 \0 \0 0032740 g \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 016 \0 \0 0032760 \0 002 \0 001 \0 \v H R U L E . G E T F 0033000 N 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 0033020 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 0033040 \0 \0 \0 \0 002 \0 017 \0 \0 \0 022 \0 \0 \0 \0 003 0033060 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 002 \0 001 \0 \v 0033100 H R U L E . G E T F N 001 \0 024 \0 006 0033120 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0033140 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0033160 \n \0 \0 \0 037 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 0033200 \0 017 \0 \0 \0 002 \0 001 \0 \v H R U L E . 0033220 G E T F N 001 \0 024 \0 006 M O D E R N 0033240 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 0033260 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 Z \0 0033300 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 \r 0033320 \0 \0 \0 \0 005 \0 \0 \0 M \0 \0 \0 \0 001 \0 \0 0033340 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 0033360 \0 \0 * \0 \0 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 0033400 001 \0 \0 \0 0 \0 \0 \0 \0 005 \0 \0 \0 004 \0 \0 0033420 \0 \0 001 \0 \0 \0 4 \0 \0 \0 \0 005 \0 \0 \0 004 0033440 \0 \0 \0 \0 001 \0 \0 \0 H \0 \0 \0 \0 005 \0 \0 0033460 \0 004 \0 \0 \0 \0 001 \0 \0 \0 $ \0 \0 \0 \0 005 0033500 \0 \0 \0 \n \0 \0 \0 \0 001 \0 \0 \0 005 \0 \0 \0 0033520 \0 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 200 \0 0033540 \0 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 0033560 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 0033600 \0 025 \0 \0 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 0033620 \0 \0 \0 r \0 \0 \0 \0 005 \0 \0 \0 004 \0 \0 \0 0033640 \0 001 \0 \0 \0 @ \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0033660 002 \0 020 \0 \0 \0 ( \0 \0 \0 \0 005 \0 \0 \0 \0 0033700 \0 002 \0 020 \0 \0 \0 Q \0 \0 \0 \0 005 \0 \0 \0 0033720 \0 \0 002 \0 \t \0 \0 \0 016 \0 \0 \0 \0 005 \0 \0 0033740 \0 020 \0 \0 \0 \0 001 \0 \0 \0 \r \0 \0 \0 \0 005 0033760 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 \a \0 \0 \0 \0 0034000 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 006 \0 \0 0034020 \0 \0 005 \0 \0 \0 006 \0 \0 \0 \0 001 \0 \0 \0 207 0034040 \0 \0 \0 \0 005 \0 \0 \0 \a \0 \0 \0 \0 001 \0 \0 0034060 \0 A \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 003 \0 0034100 \0 \0 034 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 \b 0034120 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0034140 T F N 001 \0 024 \0 006 M O D E R N \0 \n 0034160 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 0034200 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 \f \0 \0 \0 0034220 \0 005 \0 \0 \0 030 \0 \0 \0 \0 001 \0 \0 \0 \r \0 0034240 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 005 0034260 \0 \0 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 0034300 \0 \a \0 \0 \0 \0 005 \0 \0 \0 003 \0 \0 \0 \0 001 0034320 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 0034340 \0 001 \0 \0 \0 006 \0 \0 \0 \0 005 \0 \0 \0 005 \0 0034360 \0 \0 \0 001 \0 \0 \0 037 \0 \0 \0 \0 005 \0 \0 \0 0034400 004 \0 \0 \0 \0 001 \0 \0 \0 016 \0 \0 \0 \0 005 \0 0034420 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 \0 \0 0034440 005 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 032 \0 \0 0034460 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 ' 0034500 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 0034520 \f \0 \0 \0 \0 005 \0 \0 \0 022 \0 \0 \0 \0 001 \0 0034540 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 0034560 \0 \0 \0 034 \0 \0 \0 \0 005 \0 \0 \0 003 \0 \0 \0 0034600 \0 001 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 \b \0 0034620 \0 \0 \0 001 \0 \0 \0 003 \0 \0 \0 \0 005 \0 \0 \0 0034640 004 \0 \0 \0 \0 001 \0 \0 \0 1 \0 \0 \0 \0 005 \0 0034660 \0 \0 \0 \0 002 \0 \t \0 \0 \0 020 \0 \0 \0 \0 005 0034700 \0 \0 \0 022 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 0034720 \0 005 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 5 \0 \0 0034740 \0 \0 001 \0 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 0034760 \0 002 \0 020 \0 \0 \0 232 \0 \0 \0 \0 005 \0 \0 \0 0035000 003 \0 \0 \0 \0 001 \0 \0 \0 017 \0 \0 \0 \0 005 \0 0035020 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 L \0 \0 \0 \0 0035040 005 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \f \0 \0 \0 0035060 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 022 \0 0035100 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 0035120 ^ \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \a \0 \0 0035140 \0 \n \0 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 \0 001 0035160 \0 \0 \0 2 \0 \0 \0 \0 005 \0 \0 \0 003 \0 \0 \0 0035200 \0 001 \0 \0 \0 034 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0035220 002 \0 \a \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 \b 0035240 \0 \0 \0 \0 001 \0 \0 \0 8 \0 \0 \0 \0 005 \0 \0 0035260 \0 005 \0 \0 \0 \0 001 \0 \0 \0 002 \0 \0 \0 \0 005 0035300 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 \n \0 \0 \0 \0 0035320 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 / \0 \0 0035340 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 035 0035360 \0 \0 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 0035400 \0 002 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 0035420 \0 \0 g \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t 0035440 \0 \0 \0 \f \0 \0 \0 \0 005 \0 \0 \0 036 \0 \0 \0 0035460 \0 001 \0 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0035500 002 \0 020 \0 \0 \0 017 \0 \0 \0 \0 005 \0 \0 \0 006 0035520 \0 \0 \0 \0 001 \0 \0 \0 006 \0 \0 \0 \0 005 \0 \0 0035540 \0 \b \0 \0 \0 \0 001 \0 \0 \0 \a \0 \0 \0 \0 005 0035560 \0 \0 \0 003 \0 \0 \0 \0 001 \0 \0 \0 002 \0 \0 \0 0035600 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 004 \0 0035620 \0 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 001 \0 \0 \0 0035640 # \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 0035660 \0 \f \0 \0 \0 \0 005 \0 \0 \0 024 \0 \0 \0 \0 001 0035700 \0 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0035720 020 \0 \0 \0 - \0 \0 \0 \0 005 \0 \0 \0 003 \0 \0 0035740 \0 \0 001 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 \t 0035760 \0 \0 \0 \0 001 \0 \0 \0 % \0 \0 \0 \0 005 \0 \0 0036000 \0 \a \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 005 0036020 \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 & \0 \0 \0 \0 0036040 002 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 002 \0 001 \0 0036060 \v H R U L E . G E T F N 001 \0 024 \0 0036100 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 0036120 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0036140 \0 004 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 020 \0 0036160 \0 \0 \0 001 \0 \0 \0 \f \0 \0 \0 \0 005 \0 \0 \0 0036200 \0 \0 002 \0 020 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0 0036220 \0 \t \0 \0 \0 \0 001 \0 \0 \0 W \0 \0 \0 \0 005 0036240 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 - \0 \0 \0 0036260 \0 005 \0 \0 \0 006 \0 \0 \0 \0 001 \0 \0 \0 016 \0 0036300 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 0036320 % \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0036340 \0 016 \0 \0 \0 \0 005 \0 \0 \0 021 \0 \0 \0 \0 001 0036360 \0 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0036400 020 \0 \0 \0 027 \0 \0 \0 \0 005 \0 \0 \0 \b \0 \0 0036420 \0 \0 001 \0 \0 \0 006 \0 \0 \0 \0 005 \0 \0 \0 \b 0036440 \0 \0 \0 \0 001 \0 \0 \0 s \0 \0 \0 \0 005 \0 \0 0036460 \0 \0 \0 002 \0 \t \0 \0 \0 \r \0 \0 \0 \0 005 \0 0036500 \0 \0 \t \0 \0 \0 \0 001 \0 \0 \0 \r \0 \0 \0 \0 0036520 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 026 \0 \0 \0 0036540 \0 005 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 \t \0 0036560 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 \r 0036600 \0 \0 \0 \0 005 \0 \0 \0 025 \0 \0 \0 \0 001 \0 \0 0036620 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 0036640 \0 \0 \t \0 \0 \0 \0 005 \0 \0 \0 \t \0 \0 \0 \0 0036660 001 \0 \0 \0 \t \0 \0 \0 \0 005 \0 \0 \0 006 \0 \0 0036700 \0 \0 001 \0 \0 \0 006 \0 \0 \0 \0 005 \0 \0 \0 005 0036720 \0 \0 \0 \0 001 \0 \0 \0 & \0 \0 \0 \0 005 \0 \0 0036740 \0 004 \0 \0 \0 \0 001 \0 \0 \0 005 \0 \0 \0 \0 005 0036760 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 006 \0 \0 \0 0037000 \0 005 \0 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 0 \0 0037020 \0 \0 \0 005 \0 \0 \0 003 \0 \0 \0 \0 001 \0 \0 \0 0037040 7 \0 \0 \0 \0 005 \0 \0 \0 \a \0 \0 \0 \0 001 \0 0037060 \0 \0 022 \0 \0 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 0037100 001 \0 \0 \0 020 \0 \0 \0 \0 005 \0 \0 \0 017 \0 \0 0037120 \0 \0 001 \0 \0 \0 006 \0 \0 \0 \0 005 \0 \0 \0 \t 0037140 \0 \0 \0 \0 001 \0 \0 \0 \b \0 \0 \0 \0 005 \0 \0 0037160 \0 006 \0 \0 \0 \0 001 \0 \0 \0 033 \0 \0 \0 \0 005 0037200 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 \f \0 \0 \0 \0 0037220 005 \0 \0 \0 035 \0 \0 \0 \0 001 \0 \0 \0 \r \0 \0 0037240 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 001 \f \0 0037260 \0 \0 \0 005 \0 \0 \0 \a \0 \0 \0 \0 001 \0 \0 \0 0037300 < \0 \0 \0 \0 005 \0 \0 \0 \f \0 \0 \0 \0 001 \0 0037320 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 0037340 \0 \0 \0 301 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0037360 020 \0 \0 \0 v \0 \0 \0 \0 005 \0 \0 \0 006 \0 \0 0037400 \0 \0 001 \0 \0 \0 ? \0 \0 \0 \0 005 \0 \0 \0 006 0037420 \0 \0 \0 \0 001 \0 \0 \0 020 \0 \0 \0 \0 005 \0 \0 0037440 \0 002 \0 \0 \0 \0 001 \0 \0 \0 0 \0 \0 \0 \0 005 0037460 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 \r \0 \0 \0 \0 0037500 005 \0 \0 \0 024 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 0037520 \0 \0 005 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 ! \0 0037540 \0 \0 \0 005 \0 \0 \0 024 \0 \0 \0 \0 001 \0 \0 \0 0037560 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 0037600 \0 017 \0 \0 \0 \0 005 \0 \0 \0 \t \0 \0 \0 \0 001 0037620 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0 \0 \a \0 \0 \0 0037640 \0 001 \0 \0 \0 8 \0 \0 \0 \0 005 \0 \0 \0 002 \0 0037660 \0 \0 \0 001 \0 \0 \0 034 \0 \0 \0 \0 005 \0 \0 \0 0037700 037 \0 \0 \0 \0 001 \0 \0 \0 233 \0 \0 \0 \0 005 \0 0037720 \0 \0 005 \0 \0 \0 \0 001 \0 \0 \0 004 \0 \0 \0 \0 0037740 005 \0 \0 \0 \t \0 \0 \0 \0 001 \0 \0 \0 020 \0 \0 0037760 \0 \0 005 \0 \0 \0 \n \0 \0 \0 \0 001 \0 \0 \0 { 0040000 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 0040020 017 \0 \0 \0 \0 005 \0 \0 \0 016 \0 \0 \0 \0 001 \0 0040040 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \t 0040060 \0 \0 \0 / \0 \0 \0 \0 005 \0 \0 \0 \b \0 \0 \0 0040100 \0 001 \0 \0 \0 ) \0 \0 \0 \0 005 \0 \0 \0 006 \0 0040120 \0 \0 \0 001 \0 \0 \0 4 \0 \0 \0 \0 005 \0 \0 \0 0040140 005 \0 \0 \0 \0 001 \0 \0 \0 020 \0 \0 \0 \0 005 \0 0040160 \0 \0 \0 \0 002 \0 001 \0 \0 \0 021 \0 \0 \0 \0 002 0040200 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 002 \0 001 \0 \v 0040220 H R U L E . G E T F N 001 \0 024 \0 006 0040240 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0040260 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0040300 \v \0 \0 \0 > \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0040320 \0 020 \0 \0 \0 031 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0040340 002 \0 020 \0 \0 \0 017 \0 \0 \0 \0 005 \0 \0 \0 \b 0040360 \0 \0 \0 \0 001 \0 \0 \0 035 \0 \0 \0 \0 005 \0 \0 0040400 \0 \0 \0 002 \0 020 \0 \0 \0 024 \0 \0 \0 \0 005 \0 0040420 \0 \0 \0 \0 002 \0 020 \0 \0 \0 032 \0 \0 \0 \0 005 0040440 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 025 \0 \0 \0 \0 0040460 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 Y \0 \0 \0 0040500 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 021 \0 \0 0040520 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 , \0 0040540 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 022 0040560 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 0040600 E \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 0040620 \0 017 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 0040640 \0 \0 > \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 0040660 \0 \0 \0 021 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 0040700 020 \0 \0 \0 027 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 0040720 \0 020 \0 \0 \0 024 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 0040740 002 \0 020 \0 \0 \0 035 \0 \0 \0 \0 005 \0 \0 \0 \0 0040760 \0 002 \0 016 \0 \0 \0 002 \0 001 \0 \v H R U L 0041000 E . G E T F N 001 \0 024 \0 006 M O D E 0041020 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0041040 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 017 \0 \0 \0 0041060 017 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 017 \0 \0 0041100 \0 002 \0 001 \0 \v H R U L E . G E T F 0041120 N 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 0041140 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 0041160 \0 \0 \0 \0 002 \0 \v \0 \0 \0 251 \0 \0 \0 \0 005 0041200 \0 \0 \0 \0 \0 002 \0 020 \0 \0 001 030 \0 \0 \0 \0 0041220 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 { \0 \0 \0 0041240 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 253 \0 \0 0041260 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 \0 \0 \0 250 \0 0041300 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 016 \0 \0 \0 002 0041320 \0 001 \0 \v H R U L E . G E T F N 001 0041340 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 0041360 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 0041400 \0 \0 002 \0 017 \0 \0 \0 \f \0 \0 \0 \0 003 \0 \0 0041420 \0 \0 \0 002 \0 017 \0 \0 \0 002 \0 001 \0 \v H R 0041440 U L E . G E T F N 001 \0 024 \0 006 M O 0041460 D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0041500 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \v \0 0041520 \0 \0 301 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 020 0041540 \0 \0 001 035 \0 \0 \0 \0 005 \0 \0 ' 334 001 263 z 0041560 272 0041561