$ od -c -N 50000 [Indigo]<Casaba>7.0>Saffron2.0>Shared-Derived>SaffronAG9Impl.Mesa!17 0000000 - - S a f f r o n A G 9 I m p 0000020 l . m e s a \r - - C o p y r 0000040 i g h t 323 1 9 8 7 b y X 0000060 e r o x C o r p o r a t i o n 0000100 . A l l r i g h t s r e 0000120 s e r v e d . \r - - G e n e 0000140 r a t e d b y h e d e r m a 0000160 n . p a a t A u g u s t 1 0000200 7 , 1 9 8 7 4 : 3 3 : 1 9 0000220 p m P D T \r - - u s i n 0000240 g T h r e e C a s a b a F o u 0000260 r [ 1 . 2 ] o f J u n e 0000300 1 , 1 9 8 7 6 : 0 0 : 0 0 0000320 p m P D T \r \r D I R E C T O R 0000340 Y \r \t S a f f r o n A G 9 D e f 0000360 , \r \t S a f f r o n G e n e r i 0000400 c D e f , \r \t S a f f r o n A T 0000420 D e f ; \r \r S a f f r o n A G 9 0000440 I m p l : C E D A R P R O G 0000460 R A M I M P O R T S S a f f 0000500 r o n A G 9 D e f E X P O R T 0000520 S S a f f r o n A G 9 D e f = 0000540 \r B E G I N \r O P E N S a f 0000560 f r o n A G 9 D e f , S a f f 0000600 r o n G e n e r i c D e f , S 0000620 a f f r o n A T D e f ; \r \r - - 0000640 M o d u l e P i m p l P r o d 0000660 \r \r M o d u l e P i m p l P r o 0000700 d P r o c s : \t P U B L I C M 0000720 o d u l e P N o d e P r o c s 0000740 _ \r \t N E W [ M o d u l e P N o 0000760 d e P r o c s B o d y _ [ M 0001000 o d u l e P i m p l P r o d M a 0001020 k e E n v i r o n m e n t , M 0001040 o d u l e P i m p l P r o d E x 0001060 p l o r e ] ] ; \r \r B u i l d M 0001100 o d u l e P i m p l P r o d N o 0001120 d e : \t P U B L I C P R O C [ 0001140 p o s i t i o n : I N T , l 0001160 e n g t h : I N T , D i r e 0001200 c t o r y : D i r e c t o r y 0001220 N o d e , I d e n t L i s t : 0001240 I d e n t L i s t N o d e , 0001260 C e d a r : C e d a r N o d e 0001300 , P r o g H e a d : P r o g 0001320 H e a d N o d e , C h e c k e 0001340 d : C h e c k e d N o d e , 0001360 B l o c k : B l o c k N o d e 0001400 ] \r \t R E T U R N S [ M o d u l 0001420 e P N o d e ] = \r \t \t B E G I 0001440 N \r \t \t d a t a : \t M o d u l e 0001460 P i m p l P r o d D a t a _ \r 0001500 \t \t \t N E W [ M o d u l e P i m 0001520 p l P r o d D a t a B o d y _ 0001540 [ \r \t \t \t D i r e c t o r y , 0001560 I d e n t L i s t , C e d a 0001600 r , P r o g H e a d , C h e 0001620 c k e d , B l o c k ] ] ; \r \t 0001640 \t R E T U R N [ N E W [ M o d u 0001660 l e P N o d e B o d y _ [ p o s 0001700 i t i o n , l e n g t h , M 0001720 o d u l e P i m p l P r o d P r 0001740 o c s , d a t a ] ] ] ; \r \t \t 0001760 E N D ; \r \r \r - - M o d u l e 0002000 P d e f P r o d \r \r M o d u l e 0002020 P d e f P r o d P r o c s : \t P 0002040 U B L I C M o d u l e P N o d 0002060 e P r o c s _ \r \t N E W [ M o 0002100 d u l e P N o d e P r o c s B o 0002120 d y _ [ M o d u l e P d e f 0002140 P r o d M a k e E n v i r o n m 0002160 e n t , M o d u l e P d e f P 0002200 r o d E x p l o r e ] ] ; \r \r B 0002220 u i l d M o d u l e P d e f P r 0002240 o d N o d e : \t P U B L I C P 0002260 R O C [ p o s i t i o n : I N 0002300 T , l e n g t h : I N T , 0002320 D i r e c t o r y : D i r e c 0002340 t o r y N o d e , I d e n t L 0002360 i s t : I d e n t L i s t N o 0002400 d e , C e d a r : C e d a r 0002420 N o d e , D e f H e a d : D 0002440 e f H e a d N o d e , D e f B 0002460 o d y : D e f B o d y N o d e 0002500 ] \r \t R E T U R N S [ M o d u l 0002520 e P N o d e ] = \r \t \t B E G I 0002540 N \r \t \t d a t a : \t M o d u l e 0002560 P d e f P r o d D a t a _ \r \t 0002600 \t \t N E W [ M o d u l e P d e f 0002620 P r o d D a t a B o d y _ [ 0002640 \r \t \t \t D i r e c t o r y , I 0002660 d e n t L i s t , C e d a r , 0002700 D e f H e a d , D e f B o d 0002720 y ] ] ; \r \t \t R E T U R N [ N E 0002740 W [ M o d u l e P N o d e B o d 0002760 y _ [ p o s i t i o n , l e n 0003000 g t h , M o d u l e P d e f P 0003020 r o d P r o c s , d a t a ] ] 0003040 ] ; \r \t \t E N D ; \r \r \r - - D 0003060 i r e c t o r y e m p t y P r o 0003100 d \r \r D i r e c t o r y e m p t 0003120 y P r o d P r o c s : \t P U B L 0003140 I C D i r e c t o r y N o d e 0003160 P r o c s _ \r \t N E W [ D i r 0003200 e c t o r y N o d e P r o c s B 0003220 o d y _ [ D i r e c t o r y 0003240 e m p t y P r o d P r o c e s s 0003260 D i r e c t o r y C l a u s e , 0003300 D i r e c t o r y e m p t y P 0003320 r o d E x p l o r e D i r e c t 0003340 o r y C l a u s e ] ] ; \r \r B u 0003360 i l d D i r e c t o r y e m p t 0003400 y P r o d N o d e : \t P U B L I 0003420 C P R O C [ p o s i t i o n : 0003440 I N T , l e n g t h : I N 0003460 T ] \r \t R E T U R N S [ D i r e 0003500 c t o r y N o d e ] = \r \t \t B 0003520 E G I N \r \t \t R E T U R N [ N E 0003540 W [ D i r e c t o r y N o d e B 0003560 o d y _ [ p o s i t i o n , l 0003600 e n g t h , D i r e c t o r y 0003620 e m p t y P r o d P r o c s , 0003640 N I L ] ] ] ; \r \t \t E N D ; \r \r 0003660 \r - - D i r e c t o r y m o r 0003700 e P r o d \r \r D i r e c t o r y 0003720 m o r e P r o d P r o c s : \t P 0003740 U B L I C D i r e c t o r y N 0003760 o d e P r o c s _ \r \t N E W [ 0004000 D i r e c t o r y N o d e P r o 0004020 c s B o d y _ [ D i r e c t 0004040 o r y m o r e P r o d P r o c e 0004060 s s D i r e c t o r y C l a u s 0004100 e , D i r e c t o r y m o r e 0004120 P r o d E x p l o r e D i r e c 0004140 t o r y C l a u s e ] ] ; \r \r B 0004160 u i l d D i r e c t o r y m o r 0004200 e P r o d N o d e : \t P U B L I 0004220 C P R O C [ p o s i t i o n : 0004240 I N T , l e n g t h : I N 0004260 T , D i r e c t o r y : D i 0004300 r e c t o r y N o d e , I n c 0004320 l u d e I t e m : I n c l u d 0004340 e I t e m N o d e ] \r \t R E T U 0004360 R N S [ D i r e c t o r y N o d 0004400 e ] = \r \t \t B E G I N \r \t \t d 0004420 a t a : \t D i r e c t o r y m o 0004440 r e P r o d D a t a _ \r \t \t \t 0004460 N E W [ D i r e c t o r y m o r 0004500 e P r o d D a t a B o d y _ 0004520 [ \r \t \t \t D i r e c t o r y , 0004540 I n c l u d e I t e m ] ] ; \r \t 0004560 \t R E T U R N [ N E W [ D i r e 0004600 c t o r y N o d e B o d y _ [ p 0004620 o s i t i o n , l e n g t h , 0004640 D i r e c t o r y m o r e P r 0004660 o d P r o c s , d a t a ] ] ] 0004700 ; \r \t \t E N D ; \r \r \r - - I n 0004720 c l u d e I t e m f r o m p P r 0004740 o d \r \r I n c l u d e I t e m f 0004760 r o m p P r o d P r o c s : \t P 0005000 U B L I C I n c l u d e I t e 0005020 m N o d e P r o c s _ \r \t N E 0005040 W [ I n c l u d e I t e m N o d 0005060 e P r o c s B o d y _ [ I n 0005100 c l u d e I t e m f r o m p P r 0005120 o d P r o c e s s D i r e c t o 0005140 r y C l a u s e , I n c l u d 0005160 e I t e m f r o m p P r o d E x 0005200 p l o r e D i r e c t o r y C l 0005220 a u s e ] ] ; \r \r B u i l d I n 0005240 c l u d e I t e m f r o m p P r 0005260 o d N o d e : \t P U B L I C P 0005300 R O C [ p o s i t i o n : I N 0005320 T , l e n g t h : I N T , 0005340 I d : I d N o d e , S t r i 0005360 n g : S t r i n g N o d e , 0005400 U s i n g : U s i n g N o d e 0005420 ] \r \t R E T U R N S [ I n c l u 0005440 d e I t e m N o d e ] = \r \t \t 0005460 B E G I N \r \t \t d a t a : \t I n 0005500 c l u d e I t e m f r o m p P r 0005520 o d D a t a _ \r \t \t \t N E W [ 0005540 I n c l u d e I t e m f r o m p 0005560 P r o d D a t a B o d y _ [ 0005600 \r \t \t \t I d , S t r i n g , 0005620 U s i n g ] ] ; \r \t \t R E T U R 0005640 N [ N E W [ I n c l u d e I t e 0005660 m N o d e B o d y _ [ p o s i t 0005700 i o n , l e n g t h , I n c 0005720 l u d e I t e m f r o m p P r o 0005740 d P r o c s , d a t a ] ] ] ; 0005760 \r \t \t E N D ; \r \r \r - - I n c 0006000 l u d e I t e m t y p e P r o d 0006020 \r \r I n c l u d e I t e m t y p 0006040 e P r o d P r o c s : \t P U B L 0006060 I C I n c l u d e I t e m N o 0006100 d e P r o c s _ \r \t N E W [ I 0006120 n c l u d e I t e m N o d e P r 0006140 o c s B o d y _ [ I n c l u 0006160 d e I t e m t y p e P r o d P r 0006200 o c e s s D i r e c t o r y C l 0006220 a u s e , I n c l u d e I t e 0006240 m t y p e P r o d E x p l o r e 0006260 D i r e c t o r y C l a u s e ] 0006300 ] ; \r \r B u i l d I n c l u d e 0006320 I t e m t y p e P r o d N o d e 0006340 : \t P U B L I C P R O C [ p o 0006360 s i t i o n : I N T , l e n 0006400 g t h : I N T , I d : I d 0006420 N o d e , U s i n g : U s i 0006440 n g N o d e ] \r \t R E T U R N S 0006460 [ I n c l u d e I t e m N o d e 0006500 ] = \r \t \t B E G I N \r \t \t d a 0006520 t a : \t I n c l u d e I t e m t 0006540 y p e P r o d D a t a _ \r \t \t 0006560 \t N E W [ I n c l u d e I t e m 0006600 t y p e P r o d D a t a B o d y 0006620 _ [ \r \t \t \t I d , U s i n 0006640 g ] ] ; \r \t \t R E T U R N [ N E 0006660 W [ I n c l u d e I t e m N o d 0006700 e B o d y _ [ p o s i t i o n , 0006720 l e n g t h , I n c l u d e 0006740 I t e m t y p e P r o d P r o c 0006760 s , d a t a ] ] ] ; \r \t \t E N 0007000 D ; \r \r \r - - I n c l u d e I 0007020 t e m p l a i n P r o d \r \r I n 0007040 c l u d e I t e m p l a i n P r 0007060 o d P r o c s : \t P U B L I C 0007100 I n c l u d e I t e m N o d e P 0007120 r o c s _ \r \t N E W [ I n c l 0007140 u d e I t e m N o d e P r o c s 0007160 B o d y _ [ I n c l u d e I 0007200 t e m p l a i n P r o d P r o c 0007220 e s s D i r e c t o r y C l a u 0007240 s e , I n c l u d e I t e m p 0007260 l a i n P r o d E x p l o r e D 0007300 i r e c t o r y C l a u s e ] ] 0007320 ; \r \r B u i l d I n c l u d e I 0007340 t e m p l a i n P r o d N o d e 0007360 : \t P U B L I C P R O C [ p o 0007400 s i t i o n : I N T , l e n 0007420 g t h : I N T , I d : I d 0007440 N o d e , U s i n g : U s i 0007460 n g N o d e ] \r \t R E T U R N S 0007500 [ I n c l u d e I t e m N o d e 0007520 ] = \r \t \t B E G I N \r \t \t d a 0007540 t a : \t I n c l u d e I t e m p 0007560 l a i n P r o d D a t a _ \r \t 0007600 \t \t N E W [ I n c l u d e I t e 0007620 m p l a i n P r o d D a t a B o 0007640 d y _ [ \r \t \t \t I d , U s 0007660 i n g ] ] ; \r \t \t R E T U R N [ 0007700 N E W [ I n c l u d e I t e m N 0007720 o d e B o d y _ [ p o s i t i o 0007740 n , l e n g t h , I n c l u 0007760 d e I t e m p l a i n P r o d P 0010000 r o c s , d a t a ] ] ] ; \r \t 0010020 \t E N D ; \r \r \r - - I n c l u 0010040 d e I t e m t y p e a n d i d P 0010060 r o d \r \r I n c l u d e I t e m 0010100 t y p e a n d i d P r o d P r o 0010120 c s : \t P U B L I C I n c l u 0010140 d e I t e m N o d e P r o c s 0010160 _ \r \t N E W [ I n c l u d e I t 0010200 e m N o d e P r o c s B o d y 0010220 _ [ I n c l u d e I t e m t y 0010240 p e a n d i d P r o d P r o c e 0010260 s s D i r e c t o r y C l a u s 0010300 e , I n c l u d e I t e m t y 0010320 p e a n d i d P r o d E x p l o 0010340 r e D i r e c t o r y C l a u s 0010360 e ] ] ; \r \r B u i l d I n c l u 0010400 d e I t e m t y p e a n d i d P 0010420 r o d N o d e : \t P U B L I C 0010440 P R O C [ p o s i t i o n : I 0010460 N T , l e n g t h : I N T , 0010500 I d l o c a l : I d N o d e 0010520 , I d g l o b a l : I d N o 0010540 d e , U s i n g : U s i n g 0010560 N o d e ] \r \t R E T U R N S [ I 0010600 n c l u d e I t e m N o d e ] 0010620 = \r \t \t B E G I N \r \t \t d a t a 0010640 : \t I n c l u d e I t e m t y p 0010660 e a n d i d P r o d D a t a _ 0010700 \r \t \t \t N E W [ I n c l u d e I 0010720 t e m t y p e a n d i d P r o d 0010740 D a t a B o d y _ [ \r \t \t \t 0010760 I d l o c a l , I d g l o b a 0011000 l , U s i n g ] ] ; \r \t \t R E 0011020 T U R N [ N E W [ I n c l u d e 0011040 I t e m N o d e B o d y _ [ p o 0011060 s i t i o n , l e n g t h , 0011100 I n c l u d e I t e m t y p e a 0011120 n d i d P r o d P r o c s , d 0011140 a t a ] ] ] ; \r \t \t E N D ; \r \r 0011160 \r - - U s i n g r e s t r i c 0011200 t e d P r o d \r \r U s i n g r e 0011220 s t r i c t e d P r o d P r o c 0011240 s : \t P U B L I C U s i n g N 0011260 o d e P r o c s _ \r \t N E W [ 0011300 U s i n g N o d e P r o c s B o 0011320 d y _ [ U s i n g r e s t r 0011340 i c t e d P r o d M a k e I n t 0011360 e r f a c e T G N ] ] ; \r \r B u 0011400 i l d U s i n g r e s t r i c t 0011420 e d P r o d N o d e : \t P U B L 0011440 I C P R O C [ p o s i t i o n 0011460 : I N T , l e n g t h : I 0011500 N T , I d L i s t : I d L i 0011520 s t N o d e ] \r \t R E T U R N S 0011540 [ U s i n g N o d e ] = \r \t \t 0011560 B E G I N \r \t \t d a t a : \t U s 0011600 i n g r e s t r i c t e d P r o 0011620 d D a t a _ \r \t \t \t N E W [ U 0011640 s i n g r e s t r i c t e d P r 0011660 o d D a t a B o d y _ [ \r \t 0011700 \t \t I d L i s t ] ] ; \r \t \t R E 0011720 T U R N [ N E W [ U s i n g N o 0011740 d e B o d y _ [ p o s i t i o n 0011760 , l e n g t h , U s i n g r 0012000 e s t r i c t e d P r o d P r o 0012020 c s , d a t a ] ] ] ; \r \t \t E 0012040 N D ; \r \r \r - - U s i n g n o 0012060 t h i n g P r o d \r \r U s i n g 0012100 n o t h i n g P r o d P r o c s 0012120 : \t P U B L I C U s i n g N o 0012140 d e P r o c s _ \r \t N E W [ U 0012160 s i n g N o d e P r o c s B o d 0012200 y _ [ U s i n g n o t h i n 0012220 g P r o d M a k e I n t e r f a 0012240 c e T G N ] ] ; \r \r B u i l d U 0012260 s i n g n o t h i n g P r o d N 0012300 o d e : \t P U B L I C P R O C 0012320 [ p o s i t i o n : I N T , 0012340 l e n g t h : I N T ] \r \t R E 0012360 T U R N S [ U s i n g N o d e ] 0012400 = \r \t \t B E G I N \r \t \t R E T 0012420 U R N [ N E W [ U s i n g N o d 0012440 e B o d y _ [ p o s i t i o n , 0012460 l e n g t h , U s i n g n o 0012500 t h i n g P r o d P r o c s , 0012520 N I L ] ] ] ; \r \t \t E N D ; \r \r 0012540 \r - - U s i n g u n r e s t r 0012560 i c t e d P r o d \r \r U s i n g 0012600 u n r e s t r i c t e d P r o d 0012620 P r o c s : \t P U B L I C U s 0012640 i n g N o d e P r o c s _ \r \t 0012660 N E W [ U s i n g N o d e P r o 0012700 c s B o d y _ [ U s i n g u 0012720 n r e s t r i c t e d P r o d M 0012740 a k e I n t e r f a c e T G N ] 0012760 ] ; \r \r B u i l d U s i n g u n 0013000 r e s t r i c t e d P r o d N o 0013020 d e : \t P U B L I C P R O C [ 0013040 p o s i t i o n : I N T , l 0013060 e n g t h : I N T ] \r \t R E T 0013100 U R N S [ U s i n g N o d e ] 0013120 = \r \t \t B E G I N \r \t \t R E T U 0013140 R N [ N E W [ U s i n g N o d e 0013160 B o d y _ [ p o s i t i o n , 0013200 l e n g t h , U s i n g u n r 0013220 e s t r i c t e d P r o d P r o 0013240 c s , N I L ] ] ] ; \r \t \t E N 0013260 D ; \r \r \r - - D e f B o d y P 0013300 r o d \r \r D e f B o d y P r o d 0013320 P r o c s : \t P U B L I C D e 0013340 f B o d y N o d e P r o c s _ 0013360 \r \t N E W [ D e f B o d y N o d 0013400 e P r o c s B o d y _ [ D e 0013420 f B o d y P r o d M a k e C o n 0013440 t e x t T r e e , D e f B o d 0013460 y P r o d M a k e C o n t e x t 0013500 T r e e 1 ] ] ; \r \r B u i l d D 0013520 e f B o d y P r o d N o d e : \t 0013540 P U B L I C P R O C [ p o s i 0013560 t i o n : I N T , l e n g t 0013600 h : I N T , B i n d L i s t 0013620 : B i n d L i s t N o d e , 0013640 D e c L i s t : D e c L i s t 0013660 N o d e ] \r \t R E T U R N S [ D 0013700 e f B o d y N o d e ] = \r \t \t 0013720 B E G I N \r \t \t d a t a : \t D e 0013740 f B o d y P r o d D a t a _ \r 0013760 \t \t \t N E W [ D e f B o d y P r 0014000 o d D a t a B o d y _ [ \r \t 0014020 \t \t B i n d L i s t , D e c L 0014040 i s t ] ] ; \r \t \t R E T U R N [ 0014060 N E W [ D e f B o d y N o d e B 0014100 o d y _ [ p o s i t i o n , l 0014120 e n g t h , D e f B o d y P r 0014140 o d P r o c s , d a t a ] ] ] 0014160 ; \r \t \t E N D ; \r \r \r - - D e 0014200 f H e a d P r o d \r \r D e f H e 0014220 a d P r o d P r o c s : \t P U B 0014240 L I C D e f H e a d N o d e P 0014260 r o c s _ \r \t N E W [ D e f H 0014300 e a d N o d e P r o c s B o d y 0014320 _ [ D e f H e a d P r o d f 0014340 o o ] ] ; \r \r B u i l d D e f H 0014360 e a d P r o d N o d e : \t P U B 0014400 L I C P R O C [ p o s i t i o 0014420 n : I N T , l e n g t h : 0014440 I N T , L o c k s : L o c k 0014460 s N o d e , M o d u l e L i s 0014500 t : M o d u l e L i s t N o d 0014520 e , S h a r e s : S h a r e 0014540 s N o d e , A c c e s s : A 0014560 c c e s s N o d e ] \r \t R E T U 0014600 R N S [ D e f H e a d N o d e ] 0014620 = \r \t \t B E G I N \r \t \t d a t 0014640 a : \t D e f H e a d P r o d D a 0014660 t a _ \r \t \t \t N E W [ D e f H 0014700 e a d P r o d D a t a B o d y 0014720 _ [ \r \t \t \t L o c k s , M o 0014740 d u l e L i s t , S h a r e s 0014760 , A c c e s s ] ] ; \r \t \t R E 0015000 T U R N [ N E W [ D e f H e a d 0015020 N o d e B o d y _ [ p o s i t i 0015040 o n , l e n g t h , D e f H 0015060 e a d P r o d P r o c s , d a 0015100 t a ] ] ] ; \r \t \t E N D ; \r \r \r 0015120 - - C e d a r y e s P r o d \r 0015140 \r C e d a r y e s P r o d P r o 0015160 c s : \t P U B L I C C e d a r 0015200 N o d e P r o c s _ \r \t N E W 0015220 [ C e d a r N o d e P r o c s B 0015240 o d y _ [ C e d a r y e s P 0015260 r o d f o o ] ] ; \r \r B u i l d 0015300 C e d a r y e s P r o d N o d e 0015320 : \t P U B L I C P R O C [ p o 0015340 s i t i o n : I N T , l e n 0015360 g t h : I N T ] \r \t R E T U R 0015400 N S [ C e d a r N o d e ] = \r 0015420 \t \t B E G I N \r \t \t R E T U R N 0015440 [ N E W [ C e d a r N o d e B o 0015460 d y _ [ p o s i t i o n , l e 0015500 n g t h , C e d a r y e s P r 0015520 o d P r o c s , N I L ] ] ] ; 0015540 \r \t \t E N D ; \r \r \r - - C e d 0015560 a r n o P r o d \r \r C e d a r n 0015600 o P r o d P r o c s : \t P U B L 0015620 I C C e d a r N o d e P r o c 0015640 s _ \r \t N E W [ C e d a r N o 0015660 d e P r o c s B o d y _ [ C 0015700 e d a r n o P r o d f o o ] ] ; 0015720 \r \r B u i l d C e d a r n o P r 0015740 o d N o d e : \t P U B L I C P 0015760 R O C [ p o s i t i o n : I N 0016000 T , l e n g t h : I N T ] \r 0016020 \t R E T U R N S [ C e d a r N o 0016040 d e ] = \r \t \t B E G I N \r \t \t 0016060 R E T U R N [ N E W [ C e d a r 0016100 N o d e B o d y _ [ p o s i t i 0016120 o n , l e n g t h , C e d a 0016140 r n o P r o d P r o c s , N I 0016160 L ] ] ] ; \r \t \t E N D ; \r \r \r - 0016200 - P r o g H e a d P r o d \r \r 0016220 P r o g H e a d P r o d P r o c 0016240 s : \t P U B L I C P r o g H e 0016260 a d N o d e P r o c s _ \r \t N 0016300 E W [ P r o g H e a d N o d e P 0016320 r o c s B o d y _ [ P r o g 0016340 H e a d P r o d f o o ] ] ; \r \r 0016360 B u i l d P r o g H e a d P r o 0016400 d N o d e : \t P U B L I C P R 0016420 O C [ p o s i t i o n : I N T 0016440 , l e n g t h : I N T , S 0016460 a f e : S a f e N o d e , C 0016500 l a s s : C l a s s N o d e , 0016520 A r g u m e n t s : A r g u 0016540 m e n t s N o d e , L o c k s 0016560 : L o c k s N o d e , I n t 0016600 e r f a c e : I n t e r f a c 0016620 e N o d e , A c c e s s : A 0016640 c c e s s N o d e ] \r \t R E T U 0016660 R N S [ P r o g H e a d N o d e 0016700 ] = \r \t \t B E G I N \r \t \t d a 0016720 t a : \t P r o g H e a d P r o d 0016740 D a t a _ \r \t \t \t N E W [ P r 0016760 o g H e a d P r o d D a t a B o 0017000 d y _ [ \r \t \t \t S a f e , 0017020 C l a s s , A r g u m e n t s 0017040 , L o c k s , I n t e r f a 0017060 c e , A c c e s s ] ] ; \r \t \t 0017100 R E T U R N [ N E W [ P r o g H 0017120 e a d N o d e B o d y _ [ p o s 0017140 i t i o n , l e n g t h , P 0017160 r o g H e a d P r o d P r o c s 0017200 , d a t a ] ] ] ; \r \t \t E N D 0017220 ; \r \r \r - - C l a s s p r o g 0017240 r a m P r o d \r \r C l a s s p r 0017260 o g r a m P r o d P r o c s : \t 0017300 P U B L I C C l a s s N o d e 0017320 P r o c s _ \r \t N E W [ C l a 0017340 s s N o d e P r o c s B o d y 0017360 _ [ C l a s s p r o g r a m P 0017400 r o d f o o ] ] ; \r \r B u i l d 0017420 C l a s s p r o g r a m P r o d 0017440 N o d e : \t P U B L I C P R O 0017460 C [ p o s i t i o n : I N T , 0017500 l e n g t h : I N T ] \r \t R 0017520 E T U R N S [ C l a s s N o d e 0017540 ] = \r \t \t B E G I N \r \t \t R E 0017560 T U R N [ N E W [ C l a s s N o 0017600 d e B o d y _ [ p o s i t i o n 0017620 , l e n g t h , C l a s s p 0017640 r o g r a m P r o d P r o c s , 0017660 N I L ] ] ] ; \r \t \t E N D ; \r 0017700 \r \r - - C l a s s m o n i t o 0017720 r P r o d \r \r C l a s s m o n i 0017740 t o r P r o d P r o c s : \t P U 0017760 B L I C C l a s s N o d e P r 0020000 o c s _ \r \t N E W [ C l a s s 0020020 N o d e P r o c s B o d y _ 0020040 [ C l a s s m o n i t o r P r o 0020060 d f o o ] ] ; \r \r B u i l d C l 0020100 a s s m o n i t o r P r o d N o 0020120 d e : \t P U B L I C P R O C [ 0020140 p o s i t i o n : I N T , l 0020160 e n g t h : I N T ] \r \t R E T 0020200 U R N S [ C l a s s N o d e ] 0020220 = \r \t \t B E G I N \r \t \t R E T U 0020240 R N [ N E W [ C l a s s N o d e 0020260 B o d y _ [ p o s i t i o n , 0020300 l e n g t h , C l a s s m o n 0020320 i t o r P r o d P r o c s , N 0020340 I L ] ] ] ; \r \t \t E N D ; \r \r \r 0020360 - - I n t e r f a c e P r o d 0020400 \r \r I n t e r f a c e P r o d P 0020420 r o c s : \t P U B L I C I n t 0020440 e r f a c e N o d e P r o c s 0020460 _ \r \t N E W [ I n t e r f a c e 0020500 N o d e P r o c s B o d y _ 0020520 [ I n t e r f a c e P r o d f o 0020540 o ] ] ; \r \r B u i l d I n t e r 0020560 f a c e P r o d N o d e : \t P U 0020600 B L I C P R O C [ p o s i t i 0020620 o n : I N T , l e n g t h : 0020640 I N T , M o d u l e L i s t 0020660 i m p o r t s : M o d u l e L 0020700 i s t N o d e , M o d u l e L 0020720 i s t e x p o r t s : M o d u 0020740 l e L i s t N o d e , S h a r 0020760 e s : S h a r e s N o d e ] \r 0021000 \t R E T U R N S [ I n t e r f a 0021020 c e N o d e ] = \r \t \t B E G I 0021040 N \r \t \t d a t a : \t I n t e r f 0021060 a c e P r o d D a t a _ \r \t \t 0021100 \t N E W [ I n t e r f a c e P r 0021120 o d D a t a B o d y _ [ \r \t 0021140 \t \t M o d u l e L i s t i m p o 0021160 r t s , M o d u l e L i s t e 0021200 x p o r t s , S h a r e s ] ] 0021220 ; \r \t \t R E T U R N [ N E W [ I 0021240 n t e r f a c e N o d e B o d y 0021260 _ [ p o s i t i o n , l e n g 0021300 t h , I n t e r f a c e P r o 0021320 d P r o c s , d a t a ] ] ] ; 0021340 \r \t \t E N D ; \r \r \r - - M o d 0021360 u l e L i s t e m p t y P r o d 0021400 \r \r M o d u l e L i s t e m p t 0021420 y P r o d P r o c s : \t P U B L 0021440 I C M o d u l e L i s t N o d 0021460 e P r o c s _ \r \t N E W [ M o 0021500 d u l e L i s t N o d e P r o c 0021520 s B o d y _ [ M o d u l e L 0021540 i s t e m p t y P r o d f o o ] 0021560 ] ; \r \r B u i l d M o d u l e L 0021600 i s t e m p t y P r o d N o d e 0021620 : \t P U B L I C P R O C [ p o 0021640 s i t i o n : I N T , l e n 0021660 g t h : I N T ] \r \t R E T U R 0021700 N S [ M o d u l e L i s t N o d 0021720 e ] = \r \t \t B E G I N \r \t \t R 0021740 E T U R N [ N E W [ M o d u l e 0021760 L i s t N o d e B o d y _ [ p o 0022000 s i t i o n , l e n g t h , 0022020 M o d u l e L i s t e m p t y P 0022040 r o d P r o c s , N I L ] ] ] 0022060 ; \r \t \t E N D ; \r \r \r - - M o 0022100 d u l e L i s t m o r e P r o d 0022120 \r \r M o d u l e L i s t m o r e 0022140 P r o d P r o c s : \t P U B L I 0022160 C M o d u l e L i s t N o d e 0022200 P r o c s _ \r \t N E W [ M o d 0022220 u l e L i s t N o d e P r o c s 0022240 B o d y _ [ M o d u l e L i 0022260 s t m o r e P r o d f o o ] ] ; 0022300 \r \r B u i l d M o d u l e L i s 0022320 t m o r e P r o d N o d e : \t P 0022340 U B L I C P R O C [ p o s i t 0022360 i o n : I N T , l e n g t h 0022400 : I N T , M o d u l e L i s 0022420 t : M o d u l e L i s t N o d 0022440 e , M o d u l e I t e m : M 0022460 o d u l e I t e m N o d e ] \r \t 0022500 R E T U R N S [ M o d u l e L i 0022520 s t N o d e ] = \r \t \t B E G I 0022540 N \r \t \t d a t a : \t M o d u l e 0022560 L i s t m o r e P r o d D a t a 0022600 _ \r \t \t \t N E W [ M o d u l e 0022620 L i s t m o r e P r o d D a t a 0022640 B o d y _ [ \r \t \t \t M o d u 0022660 l e L i s t , M o d u l e I t 0022700 e m ] ] ; \r \t \t R E T U R N [ N 0022720 E W [ M o d u l e L i s t N o d 0022740 e B o d y _ [ p o s i t i o n , 0022760 l e n g t h , M o d u l e L 0023000 i s t m o r e P r o d P r o c s 0023020 , d a t a ] ] ] ; \r \t \t E N D 0023040 ; \r \r \r - - M o d u l e I t e 0023060 m o n e P r o d \r \r M o d u l e 0023100 I t e m o n e P r o d P r o c s 0023120 : \t P U B L I C M o d u l e I 0023140 t e m N o d e P r o c s _ \r \t 0023160 N E W [ M o d u l e I t e m N o 0023200 d e P r o c s B o d y _ [ M 0023220 o d u l e I t e m o n e P r o d 0023240 f o o ] ] ; \r \r B u i l d M o d 0023260 u l e I t e m o n e P r o d N o 0023300 d e : \t P U B L I C P R O C [ 0023320 p o s i t i o n : I N T , l 0023340 e n g t h : I N T , I d : 0023360 I d N o d e ] \r \t R E T U R N S 0023400 [ M o d u l e I t e m N o d e ] 0023420 = \r \t \t B E G I N \r \t \t d a t 0023440 a : \t M o d u l e I t e m o n e 0023460 P r o d D a t a _ \r \t \t \t N E 0023500 W [ M o d u l e I t e m o n e P 0023520 r o d D a t a B o d y _ [ \r 0023540 \t \t \t I d ] ] ; \r \t \t R E T U R 0023560 N [ N E W [ M o d u l e I t e m 0023600 N o d e B o d y _ [ p o s i t i 0023620 o n , l e n g t h , M o d u 0023640 l e I t e m o n e P r o d P r o 0023660 c s , d a t a ] ] ] ; \r \t \t E 0023700 N D ; \r \r \r - - M o d u l e I 0023720 t e m t w o P r o d \r \r M o d u 0023740 l e I t e m t w o P r o d P r o 0023760 c s : \t P U B L I C M o d u l 0024000 e I t e m N o d e P r o c s _ 0024020 \r \t N E W [ M o d u l e I t e m 0024040 N o d e P r o c s B o d y _ 0024060 [ M o d u l e I t e m t w o P r 0024100 o d f o o ] ] ; \r \r B u i l d M 0024120 o d u l e I t e m t w o P r o d 0024140 N o d e : \t P U B L I C P R O 0024160 C [ p o s i t i o n : I N T , 0024200 l e n g t h : I N T , I d 0024220 r e c o r d : I d N o d e , 0024240 I d t y p e : I d N o d e ] \r 0024260 \t R E T U R N S [ M o d u l e I 0024300 t e m N o d e ] = \r \t \t B E G 0024320 I N \r \t \t d a t a : \t M o d u l 0024340 e I t e m t w o P r o d D a t a 0024360 _ \r \t \t \t N E W [ M o d u l e 0024400 I t e m t w o P r o d D a t a B 0024420 o d y _ [ \r \t \t \t I d r e c 0024440 o r d , I d t y p e ] ] ; \r \t 0024460 \t R E T U R N [ N E W [ M o d u 0024500 l e I t e m N o d e B o d y _ [ 0024520 p o s i t i o n , l e n g t h 0024540 , M o d u l e I t e m t w o P 0024560 r o d P r o c s , d a t a ] ] 0024600 ] ; \r \t \t E N D ; \r \r \r - - S 0024620 h a r e s a b s e n t P r o d \r 0024640 \r S h a r e s a b s e n t P r o 0024660 d P r o c s : \t P U B L I C S 0024700 h a r e s N o d e P r o c s _ 0024720 \r \t N E W [ S h a r e s N o d e 0024740 P r o c s B o d y _ [ S h a 0024760 r e s a b s e n t P r o d f o o 0025000 ] ] ; \r \r B u i l d S h a r e s 0025020 a b s e n t P r o d N o d e : \t 0025040 P U B L I C P R O C [ p o s i 0025060 t i o n : I N T , l e n g t 0025100 h : I N T ] \r \t R E T U R N S 0025120 [ S h a r e s N o d e ] = \r \t 0025140 \t B E G I N \r \t \t R E T U R N [ 0025160 N E W [ S h a r e s N o d e B o 0025200 d y _ [ p o s i t i o n , l e 0025220 n g t h , S h a r e s a b s e 0025240 n t P r o d P r o c s , N I L 0025260 ] ] ] ; \r \t \t E N D ; \r \r \r - - 0025300 S h a r e s p r e s e n t P r 0025320 o d \r \r S h a r e s p r e s e n 0025340 t P r o d P r o c s : \t P U B L 0025360 I C S h a r e s N o d e P r o 0025400 c s _ \r \t N E W [ S h a r e s 0025420 N o d e P r o c s B o d y _ 0025440 [ S h a r e s p r e s e n t P r 0025460 o d f o o ] ] ; \r \r B u i l d S 0025500 h a r e s p r e s e n t P r o d 0025520 N o d e : \t P U B L I C P R O 0025540 C [ p o s i t i o n : I N T , 0025560 l e n g t h : I N T , I d 0025600 L i s t : I d L i s t N o d e 0025620 ] \r \t R E T U R N S [ S h a r e 0025640 s N o d e ] = \r \t \t B E G I N 0025660 \r \t \t d a t a : \t S h a r e s p 0025700 r e s e n t P r o d D a t a _ 0025720 \r \t \t \t N E W [ S h a r e s p r 0025740 e s e n t P r o d D a t a B o d 0025760 y _ [ \r \t \t \t I d L i s t ] 0026000 ] ; \r \t \t R E T U R N [ N E W [ 0026020 S h a r e s N o d e B o d y _ [ 0026040 p o s i t i o n , l e n g t h 0026060 , S h a r e s p r e s e n t P 0026100 r o d P r o c s , d a t a ] ] 0026120 ] ; \r \t \t E N D ; \r \r \r - - L 0026140 o c k s a b s e n t P r o d \r \r 0026160 L o c k s a b s e n t P r o d P 0026200 r o c s : \t P U B L I C L o c 0026220 k s N o d e P r o c s _ \r \t N 0026240 E W [ L o c k s N o d e P r o c 0026260 s B o d y _ [ L o c k s a b 0026300 s e n t P r o d f o o ] ] ; \r \r 0026320 B u i l d L o c k s a b s e n t 0026340 P r o d N o d e : \t P U B L I C 0026360 P R O C [ p o s i t i o n : 0026400 I N T , l e n g t h : I N T 0026420 ] \r \t R E T U R N S [ L o c k s 0026440 N o d e ] = \r \t \t B E G I N \r 0026460 \t \t R E T U R N [ N E W [ L o c 0026500 k s N o d e B o d y _ [ p o s i 0026520 t i o n , l e n g t h , L o 0026540 c k s a b s e n t P r o d P r o 0026560 c s , N I L ] ] ] ; \r \t \t E N 0026600 D ; \r \r \r - - L o c k s p r e 0026620 s e n t P r o d \r \r L o c k s p 0026640 r e s e n t P r o d P r o c s : 0026660 \t P U B L I C L o c k s N o d 0026700 e P r o c s _ \r \t N E W [ L o 0026720 c k s N o d e P r o c s B o d y 0026740 _ [ L o c k s p r e s e n t 0026760 P r o d f o o ] ] ; \r \r B u i l 0027000 d L o c k s p r e s e n t P r o 0027020 d N o d e : \t P U B L I C P R 0027040 O C [ p o s i t i o n : I N T 0027060 , l e n g t h : I N T , E 0027100 x p : E x p N o d e , L a m 0027120 b d a : L a m b d a N o d e ] 0027140 \r \t R E T U R N S [ L o c k s N 0027160 o d e ] = \r \t \t B E G I N \r \t 0027200 \t d a t a : \t L o c k s p r e s 0027220 e n t P r o d D a t a _ \r \t \t 0027240 \t N E W [ L o c k s p r e s e n 0027260 t P r o d D a t a B o d y _ 0027300 [ \r \t \t \t E x p , L a m b d a 0027320 ] ] ; \r \t \t R E T U R N [ N E W 0027340 [ L o c k s N o d e B o d y _ [ 0027360 p o s i t i o n , l e n g t h 0027400 , L o c k s p r e s e n t P r 0027420 o d P r o c s , d a t a ] ] ] 0027440 ; \r \t \t E N D ; \r \r \r - - L a 0027460 m b d a a b s e n t P r o d \r \r 0027500 L a m b d a a b s e n t P r o d 0027520 P r o c s : \t P U B L I C L a 0027540 m b d a N o d e P r o c s _ \r 0027560 \t N E W [ L a m b d a N o d e P 0027600 r o c s B o d y _ [ L a m b 0027620 d a a b s e n t P r o d f o o ] 0027640 ] ; \r \r B u i l d L a m b d a a 0027660 b s e n t P r o d N o d e : \t P 0027700 U B L I C P R O C [ p o s i t 0027720 i o n : I N T , l e n g t h 0027740 : I N T ] \r \t R E T U R N S [ 0027760 L a m b d a N o d e ] = \r \t \t 0030000 B E G I N \r \t \t R E T U R N [ N 0030020 E W [ L a m b d a N o d e B o d 0030040 y _ [ p o s i t i o n , l e n 0030060 g t h , L a m b d a a b s e n 0030100 t P r o d P r o c s , N I L ] 0030120 ] ] ; \r \t \t E N D ; \r \r \r - - 0030140 L a m b d a p r e s e n t P r o 0030160 d \r \r L a m b d a p r e s e n t 0030200 P r o d P r o c s : \t P U B L I 0030220 C L a m b d a N o d e P r o c 0030240 s _ \r \t N E W [ L a m b d a N 0030260 o d e P r o c s B o d y _ [ 0030300 L a m b d a p r e s e n t P r o 0030320 d f o o ] ] ; \r \r B u i l d L a 0030340 m b d a p r e s e n t P r o d N 0030360 o d e : \t P U B L I C P R O C 0030400 [ p o s i t i o n : I N T , 0030420 l e n g t h : I N T , I d e 0030440 n t : I d e n t N o d e , T 0030460 y p e E x p : T y p e E x p N 0030500 o d e ] \r \t R E T U R N S [ L a 0030520 m b d a N o d e ] = \r \t \t B E 0030540 G I N \r \t \t d a t a : \t L a m b 0030560 d a p r e s e n t P r o d D a t 0030600 a _ \r \t \t \t N E W [ L a m b d 0030620 a p r e s e n t P r o d D a t a 0030640 B o d y _ [ \r \t \t \t I d e n 0030660 t , T y p e E x p ] ] ; \r \t \t 0030700 R E T U R N [ N E W [ L a m b d 0030720 a N o d e B o d y _ [ p o s i t 0030740 i o n , l e n g t h , L a m 0030760 b d a p r e s e n t P r o d P r 0031000 o c s , d a t a ] ] ] ; \r \t \t 0031020 E N D ; \r \r E N D . . \r 0031034