$ od -c -N 50000 [_CD6_]<sil>GobSources.dm!1>gobe.bcpl 0000000 \r / / g o b e . b c p l \r \r g e 0000020 t " s y s d e f s . d " \r g e 0000040 t " g o b . d e f s " \r \r / / 0000060 S Y M B O L T 0000100 A B L E S T U 0000120 F F \r \r l e t D e f i n e 0000140 S y m b o l ( s t r ) = v a 0000160 l o f / / r e t u r n s p o 0000200 i n t e r t o s t r e c \r [ 0000220 032 ( 6 3 5 ) \ f 1 \r l e t s t 0000240 p = L o o k u p ( s t r ) \r 0000260 i f s t p n e 0 t h e n 0000300 r e s u l t i s s t p \r \r l 0000320 e t h = H a s h ( s t r ) 0000340 / / p l a c e i n s y m b 0000360 o l t a b l e f o r t h i 0000400 s s t r i n g \r \r l e t l 0000420 = s t r > > s t r . l e n g t 0000440 h \r l e t s z = ( o f f s 0000460 e t s t r e c . s t ) / 1 6 0000500 + l / 2 + 1 \r C h e c k F i 0000520 t ( s z ) / / s e e i f t 0000540 h e r e i s e n o u g h r 0000560 o o m \r \r N e w I t e m > > s t 0000600 r e c . l i n k = @ h \r @ h 0000620 = N e w I t e m \r \r N e w I 0000640 t e m > > s t r e c . o r d e r 0000660 e d = 0 \r N e w I t e m > > 0000700 s t r e c . n e t l e n g t h 0000720 = 0 \r N e w I t e m > > s t r 0000740 e c . n e t n u m = 0 \r N e 0000760 w I t e m > > s t r e c . l i s 0001000 t = N e w I t e m + ( o f 0001020 f s e t s t r e c . m a r k ) 0001040 / 1 6 \r N e w I t e m > > s t r 0001060 e c . m a r k = - 1 \r \r N e 0001100 w I t e m > > s t r e c . s t . 0001120 l e n g t h = l \r f o r i 0001140 = 1 t o l d o N e w 0001160 I t e m > > s t r e c . s t . c 0001200 h a r ^ i = s t r > > s t r 0001220 . c h a r ^ i \r N e w I t e m = 0001240 N e w I t e m + s z \r r e s u 0001260 l t i s @ h 032 l 4 2 6 8 \ f 1 0001300 \r ] \r \r a n d L o o k u p ( s 0001320 t r ) = v a l o f / / r e 0001340 t u r n s s t p i f d e f 0001360 i n e d , e l s e 0 \r [ 032 \ 0001400 f 1 \r l e t l i n k = H a 0001420 s h ( s t r ) \r u n t i l l i 0001440 n k e q 0 d o \r [ 032 l 4 2 0001460 6 8 \ f 1 \r i f S t E q ( s t 0001500 r , l v ( l i n k > > s t r e c 0001520 . s t ) ) t h e n r e s u l 0001540 t i s l i n k \r l i n k = 0001560 l i n k > > s t r e c . l i n k 0001600 032 l 5 5 3 8 \ f 1 \r ] \r r e s u 0001620 l t i s 0 032 l 4 2 6 8 \ f 1 \r 0001640 ] \r \r a n d H a s h ( s t r ) 0001660 = v a l o f \r [ 032 \ f 1 \r l 0001700 e t r = 0 \r f o r i = 0001720 1 t o s t r > > s t r . l 0001740 e n g t h d o r = r + ( 0001760 s t r > > s t r . c h a r ^ i ) 0002000 \r r e s u l t i s h a s h t a 0002020 b + ( r r e m h t s i z 0002040 e ) \r 032 l 4 2 6 8 \ f 1 \r ] \r \r 0002060 a n d C h e c k F i t ( w r d 0002100 s ) b e \r [ 032 \ f 1 \r l e t 0002120 l = N e w I t e m + w r d s 0002140 \r i f U s c ( l , S p a c e T 0002160 o p ) g r 0 t h e n \r [ 032 0002200 l 4 2 6 8 \ f 1 \r C a l l S w a 0002220 t ( " S p a c e E x h a u s t 0002240 e d " ) \r f i n i s h 032 l 5 5 3 0002260 8 \ f 1 \r ] 032 l 4 2 6 8 \ f 1 \r 0002300 ] \r / / S T R I N G 0002320 R O U T I N E 0002340 S \r a n d W S S ( s t r e a 0002360 m , s t r i n g ) b e \r [ 032 \ 0002400 f 1 \r f o r i = 1 t o 0002420 s t r i n g > > s t r . l e n g 0002440 t h d o P u t s ( s t r e a 0002460 m , s t r i n g > > s t r . c h 0002500 a r ^ i ) 032 l 4 2 6 8 \ f 1 \r ] 0002520 \r \r a n d A p p e n d C ( c h 0002540 a r , s t r i n g ) b e \r [ 032 0002560 \ f 1 \r l e t s t = s t r 0002600 i n g > > s t r . l e n g t h 0002620 + 1 \r s t r i n g > > s t r . c 0002640 h a r ^ s t = c h a r \r s t 0002660 r i n g > > s t r . l e n g t h 0002700 = s t \r 032 l 4 2 6 8 \ f 1 \r 0002720 ] \r \r a n d A p p e n d S ( s 0002740 t s , s t d ) b e / / c o p 0002760 y f r o m s o u r c e t o 0003000 d e s t i n a t i o n \r [ 032 \ 0003020 f 1 \r l e t d l = s t d > 0003040 > s t r . l e n g t h \r f o r 0003060 i = 1 t o s t s > > s t 0003100 r . l e n g t h d o \r [ 032 l 4 0003120 2 6 8 \ f 1 \r d l = d l + 1 0003140 \r s t d > > s t r . c h a r ^ d 0003160 l = s t s > > s t r . c h a 0003200 r ^ i 032 l 5 5 3 8 \ f 1 \r ] \r s 0003220 t d > > s t r . l e n g t h = 0003240 d l 032 l 4 2 6 8 \ f 1 \r ] \r \r 0003260 a n d A p p e n d N ( n u m , 0003300 s t r , f l ; n u m a r g s 0003320 n a ) b e / / d e c i m a 0003340 l n u m b e r \r [ 032 \ f 1 \r i 0003360 f n a l s 3 t h e n f 0003400 l = 0 \r l e t c h o u t 0003420 = f a l s e \r l e t r t a b 0003440 = t a b l e [ 1 0 0 0 0 0003460 ; 1 0 0 0 ; 1 0 0 ; 1 0 ; 0003500 1 ; ] \r f o r i = 0 0003520 t o 4 d o \r [ 032 l 4 2 6 8 \ 0003540 f 1 \r l e t r a d p = r t 0003560 a b ! i \r i f r a d p g r 0003600 n u m t h e n \r [ 032 l 5 5 3 8 0003620 \ f 1 \r i f i g r ( 4 - f 0003640 l ) t h e n c h o u t = 0003660 t r u e \r i f c h o u t t h 0003700 e n A p p e n d C ( $ 0 , s t 0003720 r ) \r l o o p 032 l 6 8 0 8 \ f 1 0003740 \r ] \r \r / / n u m b e r g e 0003760 r a d p \r l e t c h = $ 0 0004000 \r \r u n t i l n u m l s r 0004020 a d p d o \r [ 032 l 5 5 3 8 \ f 0004040 1 \r c h = c h + 1 \r n u m 0004060 = n u m - r a d p 032 l 6 8 0 8 0004100 \ f 1 \r ] \r \r c h o u t = t 0004120 r u e \r A p p e n d C ( c h , s 0004140 t r ) 032 l 5 5 3 8 \ f 1 \r ] \r i 0004160 f n o t c h o u t t h e n 0004200 A p p e n d C ( $ 0 , s t r ) 0004220 / / n o t h i n g o u t p u 0004240 t y e t 032 l 4 2 6 8 \ f 1 \r ] 0004260 \r \r a n d A p p e n d B ( n u 0004300 m , s t r ) b e / / o c t a 0004320 l n u m b e r , n o z e r 0004340 o s u p p r e s s i o n \r [ 032 0004360 \ f 1 \r f o r i = 1 5 t 0004400 o 0 b y - 3 d o \r A p 0004420 p e n d C ( ( ( n u m r s h i 0004440 f t i ) & 7 ) + $ 0 , s t r ) 0004460 032 l 4 2 6 8 \ f 1 \r ] \r 032 \ f 1 0004500 \r \0 0004502