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