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