home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume41 / libftp / part03 < prev    next >
Encoding:
Text File  |  1993-12-14  |  70.5 KB  |  1,109 lines

  1. Newsgroups: comp.sources.misc
  2. From: orel@oea.ihep.su (Oleg Orel)
  3. Subject: v41i036:  libftp - A C library interface for the FTP protocol, v1.2, Part03/05
  4. Message-ID: <1993Dec14.154837.25835@sparky.sterling.com>
  5. X-Md4-Signature: fde458bc5f84c29ecd762ec63da29e82
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 14 Dec 1993 15:48:37 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: orel@oea.ihep.su (Oleg Orel)
  12. Posting-number: Volume 41, Issue 36
  13. Archive-name: libftp/part03
  14. Environment: UNIX
  15. Supersedes: libftp: Volume 38, Issue 52
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then feed it
  19. # into a shell via "sh file" or similar.  To overwrite existing files,
  20. # type "sh file -c".
  21. # Contents:  libftp/Changes libftp/etc/eng.ps.B libftp/etc/rus.tex.UU
  22. # Wrapped by kent@sparky on Tue Dec 14 09:20:58 1993
  23. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 3 (of 5)."'
  26. if test -f 'libftp/Changes' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'libftp/Changes'\"
  28. else
  29.   echo shar: Extracting \"'libftp/Changes'\" \(1490 characters\)
  30.   sed "s/^X//" >'libftp/Changes' <<'END_OF_FILE'
  31. X10/16/1993       FtpConnect.c     Replace gethostbyname with FtpGetHost
  32. X10/16/1993       FtpGetHost.c     Created. Read host by name or address.
  33. X10/16/1993       ftptry.c     Add signals SIGSEGV,SIGPIPE
  34. X10/16/1993       ftptry.c    Add key -c (cat mode)
  35. X10/16/1993       ftptry.c    Add key -m (redirect output via e-mail)
  36. X10/16/1993       ftptry.c    Add exit(0) in loop 
  37. X10/16/1993       ftptry.c    Add logging via e-mail
  38. X10/16/1993       ftptry.c    In loop2 replace loop() with longjmp,
  39. X                                Add setjmp in loop. 
  40. X10/16/1993       ftptry.c    Replace FtpSetDebugDebug 
  41. X                with FtplibDebug(1)
  42. X10/16/1993       ftptry.c    Replace /dev/tty with *STDOUT*
  43. X10/16/1993       FtpFopen.c    Created. Check file name for 
  44. X                                *STDIN*, *STDOUT*, *STDERR* there special 
  45. X                file name witch rederected for pipes 0,1,2 
  46. X10/16/1993       FtpRetrTimeout.c \
  47. X        FtpStorTimeout.c  > Replace fopen with Ftpfopen 
  48. X        FtpFullOpen.c    /
  49. X10/17/1993    ftptry.c    Add key -P for read password from tty.
  50. X10/19/1993      FtpLibrary.h    Add enum for ftplib_debug
  51. X                                FTP_nodebug (default)
  52. X                                FTP_debug (debug with exit)
  53. X                                FTP_noexit (debug without exit)
  54. X10/19/1993      FtpDebug.c      \ Move ftplib_debug var from 
  55. X                FtpConnect.c     / FtpConnect.c to FtpDebug.c
  56. X10/24/1993    ftptry.c    Add close chanel procedure to front of the loop2 func.
  57. X10/26/1993    ftptry.c    Add keys O & G. Add function domultiget                                
  58. END_OF_FILE
  59.   if test 1490 -ne `wc -c <'libftp/Changes'`; then
  60.     echo shar: \"'libftp/Changes'\" unpacked with wrong size!
  61.   fi
  62.   # end of 'libftp/Changes'
  63. fi
  64. if test -f 'libftp/etc/eng.ps.B' -a "${1}" != "-c" ; then 
  65.   echo shar: Will not clobber existing file \"'libftp/etc/eng.ps.B'\"
  66. else
  67.   echo shar: Extracting \"'libftp/etc/eng.ps.B'\" \(43748 characters\)
  68.   sed "s/^X//" >'libftp/etc/eng.ps.B' <<'END_OF_FILE'
  69. X01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
  70. X01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
  71. X01FE00FFFFFCFFFFFCFFFFFC16297FA819>I<FFFE00007FFFFFFF00007FFFFFFF00007FFF03FF
  72. X800001C003FFC00001C003FFE00001C003BFF00001C0039FF80001C0038FFC0001C00387FC0001
  73. XC00383FE0001C00383FF0001C00381FF8001C00380FFC001C003807FE001C003803FE001C00380
  74. X1FF001C003800FF801C003800FFC01C0038007FE01C0038003FF01C0038001FF81C0038000FF81
  75. XC00380007FC1C00380007FE1C00380003FF1C00380001FF9C00380000FFDC003800007FDC00380
  76. X0003FFC003800001FFC003800001FFC003800000FFC0038000007FC0038000003FC0038000001F
  77. XC0038000000FC0038000000FC0FFFE000007C0FFFE000003C0FFFE000001C030297EA835>78
  78. XD<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F80007E00003F00003F00007E0
  79. X0001F8000FE00001FC001FC00000FE001FC00000FE003F8000007F003F8000007F007F8000007F
  80. X807F0000003F807F0000003F807F0000003F80FF0000003FC0FF0000003FC0FF0000003FC0FF00
  81. X00003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003F
  82. XC07F0000003F807F8000007F807F8000007F803F8000007F003F8000007F001FC00000FE001FC0
  83. X0000FE000FE00001FC0007F00003F80003F80007F00001FC000FE00000FE001FC000003FC0FF00
  84. X00000FFFFC00000000FFC000002A297CA833>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003F
  85. XE003FC0007F003FC0003F803FC0003FC03FC0001FC03FC0001FE03FC0001FE03FC0001FE03FC00
  86. X01FE03FC0001FE03FC0001FE03FC0001FE03FC0001FC03FC0003FC03FC0003F803FC0007F003FC
  87. X003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC00000003
  88. XFC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000
  89. X03FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027297EA82E>I<FFFF
  90. XFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE00003FC000FF00003FC0007F80003FC0003FC
  91. X0003FC0001FC0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC
  92. X0001FE0003FC0001FC0003FC0003F80003FC0007F80003FC000FE00003FC003FC00003FFFFFE00
  93. X0003FFFFFE000003FC00FF800003FC003FE00003FC001FF00003FC000FF00003FC000FF80003FC
  94. X0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F8
  95. X0003FC0007F80003FC0007F80E03FC0007F80E03FC0003FC0E03FC0003FC1EFFFFF001FE3CFFFF
  96. XF0007FF8FFFFF0000FE02F297EA832>82 D<00FF00C003FFE1C00FFFF9C01F80FFC03F003FC03E
  97. X000FC07C0007C07C0007C0FC0003C0FC0003C0FC0001C0FE0001C0FE0001C0FF000000FFC00000
  98. X7FFC00007FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007F
  99. XE000001FF000000FF0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003E0F800
  100. X07E0FC0007C0FF000F80FFE01F80E3FFFF00E1FFFC00C01FF0001C297CA825>I<7FFFFFFFFF80
  101. X7FFFFFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078007F80078070007F
  102. X800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0007F8001C0E0007F8001C0
  103. XE0007F8001C000007F80000000007F80000000007F80000000007F80000000007F80000000007F
  104. X80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F800000
  105. X00007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F
  106. X80000000007F80000000007F80000000007F80000000FFFFFFC00000FFFFFFC00000FFFFFFC000
  107. X2A287EA72F>I<FFFFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC0000038003FC0000038003FC
  108. X0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC000003
  109. X8003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC
  110. X0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC000003
  111. X8003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000078001FE
  112. X0000070001FE0000070000FE00000F0000FF00001E00007F80003C00003FC0007800000FF003F0
  113. X000007FFFFE0000000FFFF800000001FFC00002F297EA834>I<03FF80000FFFF0001F01FC003F
  114. X80FE003F807F003F803F003F803F801F003F8000003F8000003F8000003F8000003F80003FFF80
  115. X01FC3F800FE03F801F803F803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F
  116. X807E00DFC03F839FFC1FFE0FFC03F803FC1E1B7E9A21>97 D<FFE00000FFE00000FFE000000FE0
  117. X00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F
  118. XE000000FE000000FE1FE000FE7FF800FFE07E00FF803F00FF001F80FE000FC0FE000FC0FE0007E
  119. X0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE000
  120. X7E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803F00F9C0FE00F0FFF800E01FC00202A
  121. X7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F003F007F003F007F007F003E007E00
  122. X00007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E
  123. X0000007F0000003F0003803F8003801F8007000FE00E0003F83C0001FFF800003FC000191B7E9A
  124. X1E>I<00007FF000007FF000007FF0000007F0000007F0000007F0000007F0000007F0000007F0
  125. X000007F0000007F0000007F0000007F0000007F0000007F0003F87F001FFF7F007F03FF00FC00F
  126. XF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007F0FE0007F0FE0007F0FE0007F0FE00
  127. X07F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F07E0007F03F0007F03F0007F01F800FF00F
  128. XC01FF007E07FFF01FFE7FF007F87FF202A7EA925>I<003FC00001FFF00007E07C000FC03E001F
  129. X801F003F001F803F000F807F000F807E000FC0FE000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0
  130. XFE000000FE000000FE000000FE0000007E0000007F0000003F0001C03F8001C01F8003C00FC007
  131. X8003F01F0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F03F07F07
  132. XF07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007
  133. XF00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
  134. XF00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<007F80
  135. XF001FFE3F807C0FE1C0F807C7C1F003E7C1F003E103F003F003F003F003F003F003F003F003F00
  136. X3F003F003F001F003E001F003E000F807C0007C0F80005FFE0000C7F8000180000001C0000001C
  137. X0000001E0000001FFFF8001FFFFF000FFFFFC007FFFFE003FFFFF00FFFFFF03E0007F07C0001F8
  138. XF80000F8F80000F8F80000F8F80000F87C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0
  139. X001E287E9A22>I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000
  140. X000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE07E000FE1FF800FE3
  141. X0FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE007F00FE007F00F
  142. XE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0
  143. X0FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07001FC01FE03FE03FE03FE0
  144. X1FE01FC007000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00F
  145. XE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7EAA
  146. X12>I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
  147. X0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
  148. XE00FE0FFFEFFFEFFFE0F2A7EA912>108 D<FFC07F001FC000FFC1FFC07FF000FFC307E0C1F800
  149. X0FC407F101FC000FC803F200FC000FD803FE00FE000FD003FC00FE000FD003FC00FE000FE003F8
  150. X00FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000F
  151. XE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800
  152. XFE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE
  153. X3FFF8FFFE0FFFE3FFF8FFFE0331B7D9A3A>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E0
  154. X0FD807F00FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007
  155. XF00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE
  156. X3FFFFFFE3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F00
  157. X07E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE
  158. X0003F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F07F00
  159. X01FFFC00003FE0001D1B7E9A22>I<FFE1FE00FFE7FF80FFFE0FE00FF803F00FF001F80FE001FC
  160. X0FE000FC0FE000FE0FE000FE0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE000
  161. X7F0FE0007F0FE0007E0FE000FE0FE000FE0FE000FC0FE001FC0FF001F80FF803F00FFC0FE00FEF
  162. XFF800FE1FC000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F
  163. XE00000FFFE0000FFFE0000FFFE000020277E9A25>I<FFC3E0FFC7F8FFCC7C0FD8FE0FD0FE0FD0
  164. XFE0FF0FE0FE07C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0
  165. X000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00171B7E9A1B>114
  166. XD<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFFC03FFF
  167. XE01FFFF007FFF800FFF80007FC0000FCE0007CE0003CF0003CF00038F80038FC0070FF01E0E7FF
  168. XC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F00003F00003
  169. XF00007F0001FFFE0FFFFE0FFFFE007F00007F00007F00007F00007F00007F00007F00007F00007
  170. XF00007F00007F00007F00007F00007F07007F07007F07007F07007F07007F07007F07003F0E001
  171. XF8C000FFC0003F0014267FA51A>I<FFE07FF0FFE07FF0FFE07FF00FE007F00FE007F00FE007F0
  172. X0FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007
  173. XF00FE007F00FE007F00FE007F00FE007F00FE007F00FE00FF00FE00FF007E017F003F067FF01FF
  174. XC7FF007F87FF201B7D9A25>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F8
  175. X01C003F801C001FC038001FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C0000
  176. X3F9C00003FFC00001FF800001FF800000FF000000FF000000FF0000007E0000007E0000003C000
  177. X0003C000201B7F9A23>I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0
  178. X038007F007E0038007F807F0078003F807F0070003F807F8070001FC0FF80E0001FC0FF80E0001
  179. XFE1FFC1E0000FE1CFC1C0000FE1CFE1C0000FF387E3C00007F387E3800007F787F3800003FF03F
  180. X7000003FF03F7000003FE01FF000001FE01FE000001FE01FE000000FC00FC000000FC00FC00000
  181. X0FC00FC0000007800780000007800780002E1B7F9A31>I<FFFC1FFEFFFC1FFEFFFC1FFE07F007
  182. X8003F8070001FC0F0001FE1E0000FE3C00007F7800003FF800003FF000001FE000000FE0000007
  183. XF0000007F800000FF800001FFC00003DFE000038FF0000787F0000F03F8001E03FC003C01FE003
  184. X800FE0FFF03FFFFFF03FFFFFF03FFF201B7F9A23>I E /Fh 15 117 df<70F8FCFC7404040404
  185. X080810102040060F7C840E>44 D<008003800F80F3800380038003800380038003800380038003
  186. X8003800380038003800380038003800380038003800380038003800380038003800380038007C0
  187. XFFFE0F217CA018>49 D<03F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801
  188. XE0F801E02003E00003E00003C00003C0000780000700000E00001C0000180000300000600000C0
  189. X000180000100000200200400200800201800603000403FFFC07FFFC0FFFFC013217EA018>I<03
  190. XF8000C1E001007002007804007C07807C07803C07807C03807C0000780000780000700000F0000
  191. X0E0000380003F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F8
  192. X03E0F003C04003C0400780200780100F000C1C0003F00013227EA018>I<01F800060E00080300
  193. X1001802001802000C06000C06000C06000C07000C07801803E01003F02001FC4000FF80003F800
  194. X03FC00067F00083F80100F803007C06001C06000E0C000E0C00060C00060C00060C00060600040
  195. X6000C03000801803000E0E0003F00013227EA018>56 D<01F000060C000C060018070038038070
  196. X0380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E07003E03803E018
  197. X05E00C05E00619E003E1E00001C00001C00001C0000380000380300300780700780600700C0020
  198. X18001030000FC00013227EA018>I<000FE00000783C0000E00E0003C00780078003C00F0001E0
  199. X0E0000E01E0000F03C0000783C0000787C00007C7C00007C7800003C7800003CF800003EF80000
  200. X3EF800003EF800003EF800003EF800003EF800003EF800003EF800003E7800003C7C00007C7C00
  201. X007C3C0000783E0000F81E0000F00F0001E00F0001E0078003C003C0078000E00E0000783C0000
  202. X0FE0001F247DA226>79 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E
  203. X00000E00000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E
  204. X001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F0017
  205. X237FA21B>98 D<01FE000703000C07801C0780380300780000700000F00000F00000F00000F000
  206. X00F00000F00000F000007000007800403800401C00800C010007060001F80012157E9416>I<01
  207. XFC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F0
  208. X00007000007800203800201C00400E008007030000FC0013157F9416>101
  209. XD<00007001F198071E180E0E181C07001C07003C07803C07803C07803C07801C07001C07000E0E
  210. X000F1C0019F0001000001000001800001800001FFE000FFFC00FFFE03800F0600030400018C000
  211. X18C00018C000186000306000303800E00E038003FE0015217F9518>103
  212. XD<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
  213. X0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B237FA20E>
  214. X108 D<01FC000707000C01801800C03800E0700070700070F00078F00078F00078F00078F00078
  215. XF00078F000787000707800F03800E01C01C00E038007070001FC0015157F9418>111
  216. XD<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E00
  217. X0F00FFF010157F9413>114 D<02000200020002000600060006000E001E003E00FFF80E000E00
  218. X0E000E000E000E000E000E000E000E000E000E040E040E040E040E040E040708030801F00E1F7F
  219. X9E13>116 D E /Fi 15 118 df<07000F801FC01FC01FC01F400E400040008000800080010001
  220. X00020004000400080010002000400080000A1570B116>39 D<000FFFFFFC00000FFFFFFF800000
  221. X7E000FC000007C0003E000007C0001F000007C0001F800007C0000F80000F80000F80000F80000
  222. XF80000F80000FC0000F80000F80001F00000F80001F00001F80001F00001F80001F00001F00003
  223. XE00003F00003E00003E00003E00007C00003E0000FC00007C0001F000007C0003E000007C000FC
  224. X000007C003F000000FFFFFC000000F8001F000000F80007C00000F80003E00001F00003E00001F
  225. X00001F00001F00001F00001F00001F00003E00001F80003E00001F80003E00001F80003E00001F
  226. X80007C00001F00007C00003F00007C00003F00007C00003E0000F800007E0000F80000FC0000F8
  227. X0000FC0000F80001F80001F00003F00001F00007E00001F0001FC00003F0007F0000FFFFFFFC00
  228. X00FFFFFFF000002E317BB031>66 D<000FFFFFFFF8000FFFFFFFF800007E0003F800007C0000F8
  229. X00007C00007800007C00007800007C0000300000F80000300000F80000300000F80000300000F8
  230. X0000300001F00000300001F00000300001F00000300001F00000600003E00180600003E0018000
  231. X0003E00180000003E00180000007C00300000007C00300000007C00700000007C01F0000000FFF
  232. XFE0000000FFFFE0000000F801E0000000F800E0000001F000C0000001F000C0000001F000C0000
  233. X001F000C0000003E00180000003E00180000003E00000000003E00000000007C00000000007C00
  234. X000000007C00000000007C0000000000F80000000000F80000000000F80000000000F800000000
  235. X01F00000000001F00000000001F00000000003F000000000FFFFE0000000FFFFE00000002D317B
  236. XB02E>70 D<000FFFFE000FFFFE00003F0000003E0000003E0000003E0000003E0000007C000000
  237. X7C0000007C0000007C000000F8000000F8000000F8000000F8000001F0000001F0000001F00000
  238. X01F0000003E0000003E0000003E0000003E0000007C0000007C0000007C0000007C000000F8000
  239. X000F8000000F8000000F8000001F0000001F0000001F0000001F0000003E0000003E0000003E00
  240. X00003E0000007C0000007C0000007C0000007C000000F8000000F8000000F8000001F800007FFF
  241. XE000FFFFE0001F317CB01B>73 D<000FFFFE00000FFFFE0000007F000000007C000000007C0000
  242. X00007C000000007C00000000F800000000F800000000F800000000F800000001F000000001F000
  243. X000001F000000001F000000003E000000003E000000003E000000003E000000007C000000007C0
  244. X00000007C000000007C00000000F800000000F800000000F800000000F800000001F000000001F
  245. X000000001F000000001F000000003E000018003E000018003E000018003E000030007C00003000
  246. X7C000070007C000060007C0000E000F80000C000F80001C000F80001C000F800038001F0000780
  247. X01F0000F8001F0003F0003F001FF00FFFFFFFE00FFFFFFFE0025317BB02C>76
  248. XD<000FFFFFFC00000FFFFFFF0000007E001FC000007C0007E000007C0001F000007C0001F00000
  249. X7C0000F80000F80000F80000F80000F80000F80000F80000F80000F80001F00001F80001F00001
  250. XF80001F00001F80001F00001F80003E00003F00003E00003F00003E00007E00003E00007C00007
  251. XC0000F800007C0001F000007C0003E000007C0007C00000F8003F000000FFFFF8000000F800000
  252. X00000F80000000001F00000000001F00000000001F00000000001F00000000003E00000000003E
  253. X00000000003E00000000003E00000000007C00000000007C00000000007C00000000007C000000
  254. X0000F80000000000F80000000000F80000000000F80000000001F00000000001F00000000001F0
  255. X0000000003F000000000FFFFC0000000FFFF800000002D317BB030>80 D<07FFFFFFFFF007FFFF
  256. XFFFFF00FE007E007F00F8007C001F00E0007C000E00C0007C000E01C0007C000E018000F8000E0
  257. X18000F8000E030000F8000C030000F8000C030001F0000C060001F0000C060001F0000C060001F
  258. X0000C0C0003E00018000003E00000000003E00000000003E00000000007C00000000007C000000
  259. X00007C00000000007C0000000000F80000000000F80000000000F80000000000F80000000001F0
  260. X0000000001F00000000001F00000000001F00000000003E00000000003E00000000003E0000000
  261. X0003E00000000007C00000000007C00000000007C00000000007C0000000000F80000000000F80
  262. X000000000F80000000000F80000000001F00000000001F00000000001F00000000003F00000000
  263. X7FFFFF0000007FFFFF0000002C3174B032>84 D<1FFFF003FFF01FFFF003FFF000FC00007F0000
  264. XF800001C0000F80000180000F80000180000F80000180001F00000300001F00000300001F00000
  265. X300001F00000300003E00000600003E00000600003E00000600003E00000600007C00000C00007
  266. XC00000C00007C00000C00007C00000C0000F80000180000F80000180000F80000180000F800001
  267. X80001F00000300001F00000300001F00000300001F00000300003E00000600003E00000600003E
  268. X00000600003E00000600007C00000C00007C00000C00007C00000C00007C00000C000078000018
  269. X0000780000180000F80000300000780000300000780000600000780000600000780000C0000078
  270. X00018000003C00030000003C00060000001E000C0000000F003800000007C0F000000003FFC000
  271. X0000007E000000002C3272B034>I<0000007C00000FFC00000FFC0000007C0000007800000078
  272. X0000007800000078000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001
  273. XE0000003C0000003C0000003C00007C3C0001867800070378000E0178001C01F8003801F000780
  274. X0F000F000F000F000F001F001E001E001E003E001E003E001E007C003C007C003C007C003C007C
  275. X003C00F8007800F8007800F8007800F8007810F800F030F000F030F000F0307001F0307003F060
  276. X7802E0603804E0C0180870C00C30318007C01E001E3278B124>100 D<0007E000383000F01801
  277. XC00C03800C07800C0F000C1E000C1E00183E00187C00307C00E07C0780FFFC00F80000F80000F8
  278. X0000F00000F00000F00000F00000F00000F00008F0000CF000187000307000603800C01803800C
  279. X0E0003F000161F779E20>I<00007C000001863000070378000E0178001C01F8003801F0007800
  280. XF000F000F000F000F001F001E001E001E003E001E003E001E007C003C007C003C007C003C007C0
  281. X03C00F8007800F8007800F8007800F8007800F800F000F000F000F000F0007001F0007003E0007
  282. X803E0003805E0001809E0000C33C00007C3C0000003C0000003C00000078000000780000007800
  283. X000078000000F0000000F0003801E0007801C000F8038000F8070000701C00003FF000001D2D7C
  284. X9E20>103 D<000700000F80000F80000F00000600000000000000000000000000000000000000
  285. X00000000000000000000000000000000000003E000063000083800183800303C00303C00603C00
  286. X607800607800C07800C0F00000F00001E00001E00001E00003C00003C00003C000078000078000
  287. X0781000F03000F03001E03001E06001E06001E04001E0C000E180006300003C00011307AAF16>
  288. X105 D<07C03F800C60C0E0187180E0107B01F0307E01F0307C01E0607C01C06078000060780000
  289. XC0F00000C0F0000000F0000000F0000001E0000001E0000001E0000001E0000003C0000003C000
  290. X0003C0000003C00000078000000780000007800000078000000F0000000F0000000F0000000F00
  291. X00001E0000000C0000001C1F7A9E1E>114 D<000FC000383000601800C00C01C00C01801C0380
  292. X3C03803C03801807800007C00003E00003FE0003FF8001FFC0007FE0000FF00001F00000F80000
  293. X78000078700070F80070F80070F00060E000E0C000C0400180600300181C0007F000161F7A9E1D
  294. X>I<01E00038063800780C180078181C0078101C0078303C00F0203C00F0603C00F0607800F0C0
  295. X7801E0C07801E000F001E000F001E000F003C001E003C001E003C001E003C003C0078003C00780
  296. X03C0078003C0078103800F0307800F0307800F0307800F0303801F0603801E0603C02E0C01C047
  297. X0C00E18318003E01E0201F7A9E26>117 D E end
  298. X%%EndProlog
  299. X%%BeginSetup
  300. X%%Feature: *Resolution 300
  301. XTeXDict begin 
  302. X%%EndSetup
  303. X%%Page: 1 1
  304. Xbop 565 482 a Fi(LIBFTP)25 b(User's)f(guide)796 602 y Fh(Oleg)16
  305. Xb(Orel)716 700 y(Octob)q(er)h(28,)f(1993)183 871 y Fg(INTR)n(ODUCTION)245
  306. X962 y Ff(The)e(basic)f(orien)o(tation)g(of)g(this)g(library)g(is)g(making)e
  307. X(user's)j(programs)e(whic)o(h)h(trans-)183 1012 y(p)q(ort)g(\014les)g(via)f
  308. X(TCP/IP)g(net)o(w)o(ork.)18 b(It)13 b(con)o(tains)g(set)g(of)f(functions,)h
  309. X(starting)g(from)d(prim-)183 1061 y(itiv)o(e,)i(suc)o(h)h(as)h(op)q(ening)e
  310. X(FTP)i(connection)f(to)g(the)h(serv)o(er,)g(and)f(\014nishing)f(b)o(y)h
  311. X(high-lev)o(el)183 1111 y(functions,)i(suc)o(h)i(as)e(functions)h(whic)o(h)g
  312. X(retriev)o(e)h(\014les)f(via)e(net)o(w)o(ork,)i(making)d(and)j(clos-)183
  313. X1161 y(ing)h(c)o(hannels)h(to)g(the)h(serv)o(er.)31 b(All)18
  314. Xb(functions)g(ha)o(v)o(e)f(protot)o(yp)q(es)i(in)f(common)d(header)183
  315. X1211 y(\014le)g(named)g Fe(FtpLibrary)l(.h)p 387 1226 268 2
  316. Xv -3 w Ff(,)g(whic)o(h)g(m)o(ust)g(b)q(e)h(a)o(v)n(ailable)d(in)i(standard)h
  317. X(headers)h(direc-)183 1261 y(tory)m(.)24 b(Those)17 b(protot)o(yp)q(es)g
  318. X(almost)d(fully)h(describ)q(e)j(orien)o(tation)d(and)h(argumen)o(ts)f(of)h
  319. X(all)183 1310 y(functions,)d(but)h(common)d(ideology)i(and)h(library)f(comp)q
  320. X(onen)o(ts)g(should)h(b)q(e)g(men)o(tioned.)245 1360 y(This)g(library)f(is)h
  321. X(a)f(clien)o(t)h(and)g(uses)h(standard)f(FTPD)g(from)e(the)j(other)f(side.)
  322. X245 1410 y(There)20 b(are)g(problems)e(of)g(errors)j(pro)q(cessing)f(in)e
  323. X(UNIX)i(including)e(input/output)183 1460 y(errors.)h(The)13
  324. Xb(m)o(utual)d(mec)o(hanism)g(of)i(v)n(alue)g(returning)i(of)e(all)f
  325. X(functions)i(is)f(used)i(in)e(this)183 1510 y(library)m(.)23
  326. Xb(\(EXIT)17 b(macros,)e(de\014ned)j(in)d(\014le)h(FtpLibrary)m(.h\).)25
  327. Xb(This)16 b(mec)o(hanism)d(allo)o(ws,)183 1560 y(after)d(the)h(de\014nition)e
  328. X(of)h(the)g(error)h(pro)q(cessing)h(functions,)e(write)g(programs,)f
  329. X(considering)183 1609 y(the)h(conditions)g(to)g(b)q(e)g(ideal.)16
  330. Xb(Data)10 b(transfer)h(functions)f(ha)o(v)o(e)g(p)q(ossibilit)o(y)e(to)i
  331. X(preset)i(data)183 1659 y(stream)g(exp)q(ectation)h(timeout.)j(When)c(the)h
  332. X(set)g(time)e(expires,)j(previously)e(set)h(function)183 1709
  333. Xy(will)f(b)q(e)j(called.)245 1759 y(The)10 b(\014rst)g(function,)g(whic)o(h)f
  334. X(should)g(b)q(e)h(called)f(for)g(w)o(ork)h(with)f(library)f(is)i(FtpConnect)
  335. X183 1809 y(or)k(FtpLogin.)k(They)c(mak)o(e)f(connection)h(to)g(FTP)h(serv)o
  336. X(er)g(and)f(return)h(p)q(oin)o(ter)g(to)e(FTP)183 1858 y(date)h(structure.)
  337. X183 1995 y Fg(1)67 b(The)22 b(FTP)g(data)g(structure)183 2085
  338. Xy Ff(in)o(t)13 b Fe(so)q(c)o(k)p 246 2092 90 2 v 578 w Ff(|)f(descriptor)i
  339. X(of)e(a)h(command)d(c)o(hannel)j(to)913 2135 y(the)i(serv)o(er;)183
  340. X2176 y(FILE)f(*)p Fe(data)p 314 2183 92 2 v 507 w Ff(|)e(p)q(oin)o(ter)i(to)e
  341. X(data)h(structure,)i(whic)o(h)d(de-)913 2226 y(scrib)q(es)k(data)d(c)o
  342. X(hannel)h(to)g(the)g(serv)o(er;)183 2267 y(in)o(t)f Fe(errno)p
  343. X246 2274 112 2 v 554 w Ff(|)j(last)g(returned)i(v)n(alue.)25
  344. Xb(When)16 b(v)n(alue)g(is)913 2317 y(lo)o(w)o(er)e(than)f(1,)h(an)f(error)i
  345. X(o)q(ccurred;)183 2358 y(c)o(har)f Fe(mo)q(de)p 274 2365 114
  346. X2 v 525 w Ff(|)f(t)o(yp)q(e)i(of)e(transfer;)183 2408 y(in)o(t)g(c)o(h)627
  347. Xb(|)21 b(help)h(v)n(ariable.)39 b(Is)22 b(used)h(to)e(con)o(v)o(ert)913
  348. X2458 y(ASCI)q(I)14 b(\014les;)p eop
  349. X%%Page: 2 2
  350. Xbop 1078 147 a Ff(Connection/Disconnection)14 b(with)g(serv)o(er)p
  351. X340 164 1433 2 v 340 307 a(ST)m(A)m(TUS)g(\(*func\)\(\))393
  352. Xb(|)19 b(p)q(oin)o(ter)h(to)g(an)g(error)g(handler.)37 b(It)20
  353. Xb(is)1071 357 y(called)f(when)h(status)h(from)d(the)i(serv)o(er)i(is)1071
  354. X407 y(bad;)340 448 y(ST)m(A)m(TUS)14 b(\(*debug\)\(\))362 b(|)10
  355. Xb(p)q(oin)o(ter)h(to)g(a)f(debug)h(handler.)18 b(Is)11 b(called)1071
  356. X498 y(from)32 b(functions)i(of)f(sending/receiving)1071 547
  357. Xy(messages)14 b(to/from)e(serv)o(er;)340 591 y(ST)m(A)m(TUS)i(\(*IO\)\(\))423
  358. Xb(|)13 b(p)q(oin)o(ter)i(to)f(Input/Output)h(error)g(han-)1071
  359. X641 y(dler.)27 b(Is)17 b(called)f(when)h(c)o(hannel)g(to)g(serv)o(er)1071
  360. X690 y(is)d(brok)o(en.)340 830 y Fg(2)90 b(Connection/Disconnection)22
  361. Xb(with)i(serv)n(er)403 964 y Fe(ST)l(A)l(TUS)15 b(FtpConnect)p
  362. X603 979 249 2 v -2 w(\(FTP)g(**,)h(c)o(har)g(*hostname)1402
  363. X949 y Fd(1)1437 964 y Fe(\))403 1014 y Ff(Mak)o(es)c(c)o(hannel)f(to)h(the)g
  364. X(serv)o(er,)h(at)f(the)g(\\hostname")e(mac)o(hine.)16 b(Creates)d(FTP)f(data)
  365. X340 1064 y(structure)g(and)e(returns)h(p)q(oin)o(ter)f(to)g(it.)16
  366. Xb(If)9 b(the)i(pro)q(cedure)g Fe(FtplibDebu)o(g)p 1265 1079
  367. X264 2 v -3 w Ff(\(1\))f(w)o(as)f(previ-)340 1114 y(ously)g(called,)h
  368. XFe(FtpConnect)p 569 1128 249 2 v 8 w Ff(calls)f(automatically)d
  369. XFe(FtpDebug)p 1172 1128 211 2 v 7 w Ff(for)j(the)h Fe(debug)k(mo)q(de)p
  370. X1518 1128 255 2 v 340 1164 a Ff(to)g(b)q(e)h(turned)g(on.)i(\(Chapter)e(3,)e
  371. X(page)h(3\).)403 1256 y Fe(ST)l(A)l(TUS)h(FtpUser)p 603 1271
  372. X173 2 v -2 w(\(FTP)g(*,)i(c)o(har)e(*user\))403 1306 y Ff(Sends)k(the)g(name)
  373. Xe(of)h(the)h(user)g(to)f(the)h(serv)o(er.)33 b(The)19 b(connection)g(m)o(ust)
  374. Xe(b)q(e)i(done)340 1356 y(b)q(efore)c(it.)403 1449 y Fe(ST)l(A)l(TUS)g(FtpP)o
  375. X(assw)o(ord)p 603 1463 271 2 v -3 w(\(FTP)h(*,)g(c)o(har)f(*passw)o(ord\))403
  376. X1498 y Ff(Sends)c Fe(passw)o(ord)p 517 1513 191 2 v 10 w Ff(to)f(the)h(serv)o
  377. X(er.)19 b(The)11 b(function)f Fe(FtpUser)p 1211 1513 173 2
  378. Xv 9 w Ff(m)o(ust)g(b)q(e)h(called)g(b)q(efore)340 1548 y(it.)403
  379. X1641 y Fe(ST)l(A)l(TUS)k(FtpAccoun)o(t)p 603 1656 248 2 v -2
  380. Xw(\(FTP)g(*,)h(c)o(har)f(*acct\))403 1691 y Ff(Sends)g(a)f(name)f(of)g(the)i
  381. X(accoun)o(t)g(to)f(the)h(serv)o(er.)21 b(The)14 b(name)f(of)h(the)h(accoun)o
  382. X(t)f(is)h(not)340 1741 y(standard)f(attribute)g(for)f(man)o(y)e(systems,)i
  383. X(so)g(this)h(function)f(is)g(used)h(v)o(ery)f(seldom.)k(The)340
  384. X1790 y(function)d Fe(FtpP)o(assw)o(ord)p 503 1805 271 2 v 11
  385. Xw Ff(m)o(ust)f(b)q(e)i(called)e(b)q(efore)i(it.)403 1883 y
  386. XFe(ST)l(A)l(TUS)10 b(FtpLogin)p 598 1898 192 2 v -3 w(\(FTP)g(**,)i(c)o(har)e
  387. X(*hostname,)g(c)o(har)f(*user,)i(c)o(har)f(*pass-)340 1933
  388. Xy(w)o(ord,)16 b(c)o(har)f(*accoun)o(t\))403 1983 y Ff(Executes)h(functions)e
  389. XFe(FtpConnect)p 757 1998 249 2 v -2 w Ff(,)g Fe(FtpUser)p 1031
  390. X1998 173 2 v -2 w Ff(,)g Fe(FtpP)o(assw)o(ord)p 1229 1998 271
  391. X2 v -3 w Ff(,)g Fe(FtpAccoun)o(t)p 1525 1998 248 2 v 340 2033
  392. Xa Ff(\(if)e(necessary\))i(consisten)o(tly)m(.)k(If)12 b(the)h(name)e(of)g
  393. X(the)i(accoun)o(t)g(is)f(absen)o(t,)g(replaces)i(it)e(with)340
  394. X2082 y(the)j Fe(NULL)p 412 2089 132 2 v 13 w Ff(v)n(alue.)403
  395. X2175 y Fe(ST)l(A)l(TUS)g(FtpBy)o(e)p 603 2190 155 2 v -1 w(\(FTP)g(*\))403
  396. X2230 y Ff(Finishes)f(w)o(ork)g(with)f(the)i(serv)o(er)g(and)f(closes)g(all)f
  397. X(c)o(hannels.)1390 2214 y Fd(2)p 340 2253 573 2 v 387 2280
  398. Xa Fc(1)404 2291 y Fb(The)h(name)e(of)i(the)f(host)g(ma)o(y)g(b)q(e)g(sym)o(b)
  399. Xq(olic)f(\(for)h(example)e Fa(dxcern.cern.c)o(h)p 1248 2298
  400. X259 2 v -1 w Fb(\))i(or)h(n)o(umeric)e(\(for)340 2331 y(example)e
  401. XFa(128.141.201.)q(96)p 479 2338 258 2 v 3 w Fb(\))387 2359
  402. Xy Fc(2)404 2370 y Fb(Y)m(ou)15 b(can)f(see)g(from)f(the)h(description)e(of)j
  403. X(connect/di)o(scon)o(ne)o(ct)d(functions,)h(that)h(y)o(ou)f(can)h(create)340
  404. X2410 y(more)d(than)f(one)h(connection)d(to)j(serv)o(ers)f(sim)o(ultaneousl)o
  405. X(y)m(.)340 2574 y Ff(2)p eop
  406. X%%Page: 3 3
  407. Xbop 183 147 a Ff(The)14 b(debugging)p 183 164 1433 2 v 183
  408. X307 a Fg(3)67 b(The)22 b(debugging)245 410 y Ff(There)15 b(is)f(a)f(p)q
  409. X(ossibilit)o(y)g(to)h(prede\014ne)h(three)h(functions,)d(suc)o(h)i(as:)1325
  410. X395 y Fd(3)245 543 y Fe(FtpSetDebug)o(Handl)o(er)p 245 558
  411. X446 2 v -3 w(\(FTP)g(*,function\))245 600 y Ff(Prede\014nes)24
  412. Xb(function)d(of)h(proto)q(col)f(debugging.)41 b(After)22 b(the)h(function)e
  413. X(is)h(prede-)183 650 y(\014ned,)16 b(it)g(is)g(called)g(with)g(ev)o(ery)g
  414. X(sending/receiving)h(messages)f(from)e(the)j(serv)o(er.)26
  415. Xb(The)183 700 y(function,)16 b(de\014ned)i(as)f(a)f(debug)h(handler)g(m)o
  416. X(ust)f(do)g(returns)j(to)d(the)h(calling)f(functions)183 749
  417. Xy(\()p Fe(FtpSendMessage)p 199 764 351 2 v -3 w Ff(/)p Fe(FtpGetMessage)p
  418. X570 764 327 2 v -2 w Ff(\),)d(but)h(can)h(also)e(ab)q(ort)h(the)g(program.)
  419. X245 882 y Fe(FtpSetErrorHandl)o(er)p 245 897 425 2 v -3 w(\(FTP)h
  420. X(*,function\))245 939 y Ff(Prede\014nes)g(error)f(handler.)k(If)12
  421. Xb(the)i(serv)o(er's)g(answ)o(er)g(means,)e(that)h(the)g(op)q(eration)g(is)183
  422. X989 y(not)h(\014nished)i(correctly)m(,)f(this)g(function)g(will)e(b)q(e)i
  423. X(called.)21 b(The)15 b(result)h(co)q(de)g(is)e(negativ)o(e,)183
  424. X1038 y(if)f(an)g(error)i(is)f(o)q(ccurs.)245 1171 y Fe(FtpSetIOHandler)p
  425. X245 1186 365 2 v -4 w(\(FTP)i(*,function\))245 1228 y Ff(Prede\014nes)c
  426. X(handler)e(of)f(Input/Output)h(pro)q(cessing.)18 b(This)10
  427. Xb(function)f(is)g(called,)h(when)183 1278 y(a)17 b(connection)h(to)g(the)g
  428. X(serv)o(er)h(is)f(brok)o(en.)30 b(F)m(or)17 b(example,)g(when)h(the)h(net)o
  429. X(w)o(ork)e(or)h(the)183 1327 y(remote)h(host)i(is)f(do)o(wn.)36
  430. Xb(This)20 b(handler)g(also)g(is)g(called)f(after)i(the)g Fe(timeout)p
  431. X1317 1334 163 2 v 17 w Ff(of)f(one)183 1377 y(c)o(haracter)15
  432. Xb(w)o(aiting)d(expires.)245 1510 y Fe(FtpDebug)p 245 1525 211
  433. X2 v -3 w(\(FTP)k(*\))245 1567 y Ff(T)m(urns)9 b(on)g(all)g(standard)g
  434. X(debugging)g(functions.)33 b Fe(FtpDebugError)p 1038 1581 325
  435. X2 v 183 1616 a Ff(|)28 b(prin)o(ts)h(a)g(string,)j(tak)o(en)e(from)d(the)183
  436. X1666 y(serv)o(er,)15 b(and)e(ab)q(orts)i(the)f(program;)183
  437. X1707 y Fe(FtpDebugDeb)o(ug)p 183 1722 346 2 v 381 w Ff(|)28
  438. Xb(prin)o(ts)i(a)e(string,)33 b(tak)o(en)c(from)e(the)913 1757
  439. Xy(serv)o(er;)183 1800 y Fe(FtpDebugIO)p 183 1815 265 2 v 463
  440. Xw Ff(|)18 b(prin)o(ts)h(string)f Fe(strerror\(errn)o(o\))p
  441. X1219 1817 311 2 v 15 w Ff(and)913 1850 y(ab)q(orts)c(the)h(program.)245
  442. X1919 y(All)e(function)h(for)f(debugging)g(ha)o(v)o(e)h(three)h(argumen)o(ts:)
  443. X183 1969 y(1.)i(P)o(oin)o(ter)d(to)g(FTP)g(data)g(structure;)183
  444. X2019 y(2.)28 b(Last)17 b(returned)j(v)n(alue)c(from)g(the)i(serv)o(er.)30
  445. Xb(When)18 b(errors)g(o)q(ccur,)h(the)f(v)n(alue)f(is)g(less)183
  446. X2068 y(than)d(1;)183 2118 y(3.)j(Diagnostic)c(string.)245 2251
  447. Xy Fe(FtplibDeb)o(ug)p 245 2266 264 2 v -4 w(\(1)j(or)f(0\))245
  448. X2308 y Ff(T)m(urns)f(on/o\013)f(autostart)i(debug)f(mo)q(de,)e(when)j
  449. X(connection)f(is)g(established.)p 183 2371 573 2 v 229 2398
  450. Xa Fc(3)246 2410 y Fb(If)d(the)f Fa(NULL)p 341 2417 112 2 v
  451. X12 w Fb(v)n(alue)f(is)i(transferred)d(as)j(a)f(parameter)e
  452. XFa(\\function")p 1007 2417 189 2 v 11 w Fb(to)j(the)f(functions,)e(describ)q
  453. X(ed)183 2449 y(b)q(elo)o(w,)i(the)h(debugging)e(will)i(b)q(e)g(turned)f
  454. X(o\013.)1594 2574 y Ff(3)p eop
  455. X%%Page: 4 4
  456. Xbop 1078 147 a Ff(Data)13 b(transfer)i(pro)q(cedures)h(to)d(the)i(serv)o(er)p
  457. X340 164 1433 2 v 340 307 a Fg(4)67 b(Data)22 b(transfer)g(pro)r(cedures)h
  458. X(from)d(the)i(serv)n(er)403 450 y Fe(ST)l(A)l(TUS)10 b(FtpRetrTimeou)o(t)p
  459. X598 465 349 2 v -3 w(\(FTP)g(*,)i(c)o(har)d(*command,)i(c)o(har)f(*inp,)g(c)o
  460. X(har)g(*out)340 489 y Fd(4)359 504 y Fe(,)16 b(long)f(time\))403
  461. X554 y Ff(Sends)e(a)e(command)f(to)i(the)g(serv)o(er,)i(if)d(command)e(con)o
  462. X(tains)j(substring)h(\045s)f(it)f(will)g(b)q(e)340 604 y(replaced)17
  463. Xb(b)o(y)e(string)h Fe(inp)p 685 619 67 2 v -2 w Ff(.)24 b(Creates)17
  464. Xb(data)e(transfer)i(c)o(hannel,)e(and)h(cop)o(ying)f(data)g(from)340
  465. X654 y(this)j(c)o(hannel)g(to)f(a)g(lo)q(cal)g(\014le)h Fe(out)p
  466. X845 661 69 2 v -1 w Ff(.)29 b(If)17 b(during)g(time)f(p)q(erio)q(d)i
  467. XFe(\\time")p 1366 661 144 2 v 16 w Ff(no)g(c)o(haracters)340
  468. X704 y(are)c(obtained)g(from)e(the)i(serv)o(er,)h(this)f(connection)g(will)e
  469. X(b)q(e)i(closed,)g(and)g(Input/Output)340 754 y(error)j(status)g(will)e(b)q
  470. X(e)i(returned.)26 b(When)16 b Fe(timeout)p 1023 761 163 2 v
  471. X-3 w Ff(=0,)h(timeout)d(in)i(library)f(lev)o(el)h(will)340
  472. X803 y(b)q(e)g(turned)h(o\013,)e(but)g(pro)q(cedures)j(ma)o(y)13
  473. Xb(b)q(e)j(ab)q(orted)g(b)o(y)f(the)h(k)o(ernel)g(of)e(TCP/IP)m(,)h(when)340
  474. X853 y(the)g(k)o(ernel's)f Fe(timeout)p 562 860 V 11 w Ff(expires.)894
  475. X838 y Fd(5)403 955 y Fe(FtpRetr)p 403 969 172 2 v -2 w(\(FTP)h(*,)h(c)o(har)f
  476. X(*command,)g(c)o(har)g(*inp,)g(c)o(har)g(*out\))403 1005 y
  477. XFf(Calls)e Fe(FtpRetrTimeou)o(t)p 507 1019 349 2 v -3 w Ff(,)g(with)h(turned)
  478. Xh(o\013)e Fe(timeout)p 1167 1012 163 2 v -2 w Ff(.)403 1106
  479. Xy Fe(FtpGetTimeou)o(t)p 403 1121 331 2 v -3 w(\(FTP)i(*,)h(c)o(har)f(*inp,)g
  480. X(c)o(har)g(*out,)g(long)f(time\))403 1156 y Ff(T)m(ransfers)e(\014le)f
  481. XFe(inp)p 645 1171 67 2 v 10 w Ff(from)f(the)i(serv)o(er)h(to)e(the)h(lo)q
  482. X(cal)f(\014le)g Fe(out)p 1283 1163 69 2 v -1 w Ff(,)h(with)f
  483. XFe(timeout=ti)o(me)p 1468 1163 294 2 v -3 w Ff(.)403 1258 y
  484. XFe(FtpGet)p 403 1272 154 2 v -2 w(\(FTP)k(*,)h(c)o(har)f(*in,)g(c)o(har)g
  485. X(*out\))403 1308 y Ff(Calls)e Fe(FtpGetTimeou)o(t)p 507 1322
  486. X331 2 v -3 w Ff(,)g(with)h(turned)h(o\013)e Fe(timeout)p 1149
  487. X1315 163 2 v -2 w Ff(.)403 1413 y Fe(FtpDirector)o(y)p 403
  488. X1428 276 2 v -2 w(\(FTP)i(*,)h(c)o(har)f(*pat)1059 1398 y Fd(6)1077
  489. X1413 y Fe(,)h(c)o(har)f(*out\))403 1464 y Ff(T)m(ransfers)d(\014les)h
  490. X(listing)e(from)f(the)j(serv)o(er,)g(describ)q(ed)h(b)o(y)e
  491. XFe(pat)p 1320 1478 69 2 v -1 w Ff(,)g(to)g(the)h(lo)q(cal)e(\014le)h
  492. XFe(out)p 1692 1471 V -1 w Ff(.)403 1615 y Fe(FtpDir)p 403 1629
  493. X145 2 v -3 w(\(FTP)k(*,)g(c)o(har)f(*out\))403 1665 y Ff(T)m(ransfers)e
  494. X(\014les)f(listing)f(of)h(the)h(curren)o(t)g(directory)g(from)e(the)i(serv)o
  495. X(er)g(to)f(the)h(lo)q(cal)e(\014le)340 1715 y Fe(out)p 340
  496. X1722 69 2 v -1 w Ff(.)340 1854 y Fg(5)67 b(Data)22 b(transfer)g(pro)r
  497. X(cedures)h(to)f(the)h(serv)n(er)403 1997 y Fe(FtpStorTimeo)o(ut)p
  498. X403 2011 341 2 v -4 w(\(FTP)f(*,)j(c)o(har)c(*command,)i(c)o(har)f(*inp,)h(c)
  499. Xo(har)e(*out,)340 2046 y(long)15 b(time\))403 2096 y Ff(Sends)h(b)q(o)q(dy)f
  500. X(of)g(the)g(lo)q(cal)g(\014le)g Fe(inp)p 917 2111 67 2 v 13
  501. Xw Ff(to)h(the)f(serv)o(er,)i(and)e(stores)h(it)f(in)g(the)h(\014le)f
  502. XFe(out)p 1692 2103 69 2 v -1 w Ff(.)340 2146 y(The)g(\\time",)c(is)j(maxim)n
  503. X(um)c(time)i(needed)k(to)d(transfer)i(one)f(c)o(haracter)i(to)d(the)i(serv)o
  504. X(er.)403 2248 y Fe(FtpStor)p 403 2262 164 2 v -3 w(\(FTP)h(*,)g(c)o(har)f
  505. X(*command,)g(c)o(har)g(*inp,)f(c)o(har*)i(out\))p 340 2292
  506. X573 2 v 387 2319 a Fc(4)404 2330 y Fb(When)f(the)f(name)g(of)h(the)f(lo)q
  507. X(cal)g(\014le)h(is)g Fa(*STDIN*)p 968 2337 170 2 v 1 w Fb(,)h
  508. XFa(*STDOUT*)p 1164 2337 213 2 v 1 w Fb(,)g Fa(*STDERR*)p 1403
  509. X2337 211 2 v 1 w Fb(,)g(then)f(the)340 2370 y(curren)o(t)10
  510. Xb(stream)g(is)h(redirected)e(to)i(these)g(c)o(hannels)387 2398
  511. Xy Fc(5)404 2410 y Fb(In)g(di\013eren)o(t)e(k)o(ernels)h(timeout)f(is)j
  512. X(di\013eren)o(t)387 2437 y Fc(6)404 2449 y Fb(This)f(is)h(the)f(\014rst)f
  513. X(argumen)o(t)f(for)i Fa(\\ls")p 865 2456 70 2 v 13 w Fb(command)340
  514. X2574 y Ff(4)p eop
  515. X%%Page: 5 5
  516. Xbop 183 147 a Ff(Serv)o(er's)15 b(\014les)f(read/write)g(pro)q(cedures)p
  517. X183 164 1433 2 v 245 307 a(Calls)f Fe(FtpStorTimeou)o(t)p 349
  518. X322 341 2 v -3 w Ff(,)g(without)h Fe(timeout)p 870 314 163
  519. X2 v -3 w Ff(.)245 410 y Fe(FtpPutTimeou)o(t)p 245 425 330 2
  520. Xv -3 w(\(FTP)h(*,)h(c)o(har)f(*in,)g(c)o(har)g(*out,)g(long)g(time\))245
  521. X460 y Ff(T)m(ransfers)h(data)f(from)f(the)i(lo)q(cal)f(\014le)g
  522. XFe(inp)p 864 475 67 2 v 14 w Ff(to)g(the)h(serv)o(er)h(and)f(stores)g(it)g
  523. X(in)f(the)h(\014le)183 510 y Fe(out)p 183 517 69 2 v -1 w Ff(.)245
  524. X613 y Fe(FtpPut)p 245 628 153 2 v -2 w(\(FTP)f(*,)h(c)o(har)f(*in,)g(c)o(har)
  525. Xg(*out\))245 663 y Ff(Calls)e(FtpPutTimeout)g(with)h(turned)g(o\013)g
  526. X(timeout.)183 804 y Fg(6)67 b(Serv)n(er's)22 b(\014les)h(read/write)g(pro)r
  527. X(cedures)245 896 y Ff(This)15 b(library)f(con)o(tains)g(sp)q(ecial)h
  528. X(functions)g(for)f(remote)h(\014les)g(reading)f(and)h(writing,)183
  529. X946 y(without)20 b(precop)o(ying)g(them)g(to)g(lo)q(cal)f(\014les.)38
  530. Xb(The)21 b(functions,)h(whic)o(h)e(are)h(describ)q(ed)183 995
  531. Xy(b)q(elo)o(w,)e(do)f(it.)33 b(After)19 b(the)g(data)g(c)o(hannel)g(to)f(a)h
  532. X(remote)f(\014le)h(is)f(created,)j(it)d(b)q(ecomes)183 1045
  533. Xy(p)q(ossible)e(to)g(read)h(and)f(write)h(c)o(haracters)g(using)f(standard)h
  534. X(Input/Output)g(functions,)183 1095 y(or)g(using)h(sp)q(ecial)g(functions)g
  535. XFe(FtpRead)p 672 1110 183 2 v -1 w Ff(/)p Fe(FtpW)l(rite)p
  536. X876 1110 194 2 v -3 w Ff(,)g(whic)o(h)g(reorganize)h(stream)e(for)183
  537. X1149 y(standard)d(text)g(\014le,)g(under)h(condition)e(that)h(the)g
  538. XFe(ASCI)q(I)p 982 1156 135 2 v 15 w Ff(mo)q(de)f(is)g(set.)1365
  539. X1134 y Fd(7)245 1252 y Fe(FtpData)p 245 1267 177 2 v -1 w(\(FTP)i(*,)h(c)o
  540. X(har)f(*command,)g(c)o(har)g(*param,)h(c)o(har)f(*mo)q(de\))245
  541. X1303 y Ff(Mak)o(es)22 b(data)f(transfer)i(c)o(hannel,)g(with)f(presending)g
  542. X(command)d(comp)q(osed)i(from)183 1352 y Fe(command)p 183 1359
  543. X201 2 v 12 w Ff(and)14 b Fe(param)p 478 1367 133 2 v -1 w Ff(.)k(The)d(mo)q
  544. X(de)e(m)o(ust)f(b)q(e)j Fe(\\r")p 997 1359 70 2 v 14 w Ff(or)e
  545. XFe(\\w")p 1131 1359 85 2 v 245 1455 a(FtpOp)q(enRead)p 245
  546. X1470 295 2 v -2 w(\(FTP)i(*,c)o(har)g(*\014lename\))245 1506
  547. Xy Ff(Op)q(ens)g(\014le)f(named)f Fe(\014lename)p 574 1513 174
  548. X2 v 12 w Ff(for)g(reading)h(on)g(serv)o(er)245 1608 y Fe(FtpOp)q(enW)l(rite)p
  549. X245 1623 306 2 v -3 w(\(FTP)h(*,c)o(har)h(*\014lename\))245
  550. X1659 y Ff(Creats)f(and)e(op)q(ens)i(\014le)f(named)f Fe(\014lename)p
  551. X775 1666 174 2 v 12 w Ff(for)g(writing)g(on)h(serv)o(er)245
  552. X1761 y Fe(FtpOp)q(enApp)q(end)p 245 1776 353 2 v -3 w(\(FTP)h(*,c)o(har)g
  553. X(*\014lename\))245 1812 y Ff(Creats)g(and)e(op)q(ens)i(\014le)f(named)f
  554. XFe(\014lename)p 775 1819 174 2 v 12 w Ff(for)g(app)q(ending)h(on)g(serv)o(er)
  555. X245 1915 y Fe(FtpOp)q(enDir)p 245 1929 257 2 v -3 w(\(FTP)h(*,)h(c)o(har)f
  556. X(*\014les\))245 1965 y Ff(Creats)g(c)o(hannel)f(for)f(directory)i(list)e
  557. X(reading,)h(describ)q(ed)h(b)o(y)f(argumen)o(t)f Fe(\014les)p
  558. X1424 1972 81 2 v -2 w Ff(.)245 2068 y Fe(in)o(t)h(FtpRead)p
  559. X318 2082 183 2 v -2 w(\(FTP)i(*\))245 2123 y Ff(Reads)c(c)o(haracter)i(from)c
  560. X(data)i(stream.)17 b(If)12 b Fe(ASCI)q(I)p 927 2130 135 2 v
  561. X13 w Ff(mo)q(de)f(is)h(set)1274 2108 y Fd(8)1305 2123 y Ff(con)o(v)o(erts)i
  562. X(new)e(line)183 2172 y(mark)o(ers.)17 b(When)d(the)h(end)f(of)f(\014le)h(is)g
  563. X(detected)i(or)e(c)o(hannel)g(is)g(brok)o(en,)f(returns)j Fe(EOF)p
  564. X1484 2179 98 2 v 245 2275 a(FtpGetStri)o(ng)p 245 2290 282
  565. X2 v -4 w(\(FTP)g(*,)g(c)o(har)f(*str\))245 2326 y Ff(Reads)f(one)g(string)g
  566. X(from)e(data)i(stream)f(using)h Fe(FtpRead)p 1000 2340 183
  567. X2 v 183 2371 573 2 v 229 2398 a Fc(7)246 2410 y Fb(Of)e(course,)e(suc)o(h)h
  568. X(functions)e(as)i Fa(seek)p 689 2417 75 2 v Fb(,)g Fa(io)q(ctl)p
  569. X785 2417 78 2 v 1 w Fb(,)h(....)j(can)10 b(not)h(b)q(e)g(used.)229
  570. X2437 y Fc(8)246 2449 y Fb(By)h(default)1594 2574 y Ff(5)p eop
  571. X%%Page: 6 6
  572. Xbop 1277 147 a Ff(Other)15 b(commands)c(for)j(serv)o(er)p 340
  573. X164 1433 2 v 403 307 a Fe(FtpW)l(rite)p 403 322 194 2 v -2
  574. Xw(\(FTP)h(*,)h(c)o(har)f(c\))403 357 y Ff(W)m(rites)g(single)h(c)o(haracter)h
  575. X(to)f(stream,)g(if)f Fe(ASCI)q(I)p 1081 364 135 2 v 16 w Ff(mo)q(de)g(is)h
  576. X(set)h(con)o(v)o(erts)g(new)f(line)340 407 y(mark)o(ers.)i(When)c(c)o(hannel)
  577. Xg(is)g(brok)o(en,)f(returns)j Fe(EOF)p 1119 414 98 2 v 403
  578. X504 a(FtpClose)p 403 519 188 2 v -2 w(\(FTP)f(*\))403 554 y
  579. XFf(Closes)f(op)q(ened)h(c)o(hannel)f(to)g(serv)o(er)340 691
  580. Xy Fg(7)67 b(Other)23 b(comm)n(ands)d(for)i(serv)n(er)403 829
  581. Xy Fe(FtpCommand)p 403 844 290 2 v -2 w(\(FTP)13 b(*,)i(c)o(har)e(*command,)h
  582. X(c)o(har)f(*param,)h(in)o(t)e(ok1,)i(ok2,)340 879 y(ok3,)i(...,)h(okN,)g
  583. X(EOF\))403 929 y Ff(Sends)i(a)f(command,)e(comp)q(osed)i(from)f
  584. XFe(command)p 1068 936 201 2 v 17 w Ff(and)h Fe(param)p 1372
  585. X943 133 2 v 18 w Ff(using)g Fe(sprin)o(tf)p 1636 943 137 2
  586. Xv 340 978 a Ff(function.)i(Reads)14 b(an)h(answ)o(er)g(from)d(the)j(serv)o
  587. X(er.)22 b(When)14 b(return)i(co)q(de)f(from)e(the)i(serv)o(er)340
  588. X1028 y(is)f(not)g(included)g(to)g Fe(ok-list)p 673 1035 129
  589. X2 v -2 w Ff(\()p Fe(ok1)p 818 1035 73 2 v Ff(,)p Fe(ok2)p 903
  590. X1035 V -1 w Ff(...\))j(the)e(sign)e(of)h(co)q(de)g(will)f(b)q(e)h(in)o(v)o
  591. X(erted.)403 1126 y Fe(FtpT)o(yp)q(e)p 403 1140 182 2 v -1 w(\(FTP)h(*,c)o
  592. X(har)g(*mo)q(de\))403 1175 y Ff(Sets)g(transfer)f(mo)q(de,)f(suc)o(h)h(as)g
  593. XFe(\\A")p 912 1182 87 2 v Ff(,)p Fe("I")p 1010 1182 69 2 v
  594. XFf(,)p Fe("S")p 1090 1182 77 2 v 403 1273 a(FtpBinary)p 403
  595. X1287 217 2 v -2 w(\(FTP)h(*\))403 1322 y Ff(Sets)g(binary)e(mo)q(de)403
  596. X1420 y Fe(FtpAscii)p 403 1434 178 2 v -3 w(\(FTP)j(*\))403
  597. X1469 y Ff(Sets)f Fe(ASCI)q(I)p 491 1476 135 2 v 14 w Ff(mo)q(de)403
  598. X1567 y Fe(FtpMkdir)p 403 1581 206 2 v -2 w(\(FTP)g(*,c)o(har)g(*dirname\))403
  599. X1617 y Ff(Mak)o(es)f(directory)h(on)e(serv)o(er)403 1714 y
  600. XFe(FtpChdir)p 403 1729 196 2 v -3 w(\(FTP)j(*,c)o(har)f(*dirname\))403
  601. X1764 y Ff(Changes)f(w)o(orking)f(directory)i(on)e(serv)o(er)403
  602. X1861 y Fe(FtpRm)p 403 1876 151 2 v -2 w(\(FTP)j(*,c)o(har)f(*\014lename\))403
  603. X1911 y Ff(Remo)o(v)o(es)d(\014le)i(on)g(serv)o(er)403 2008
  604. Xy Fe(c)o(har)h(*FtpPwd)p 532 2023 169 2 v -2 w(\(FTP)h(*\))403
  605. X2058 y Ff(Returns)e(the)h(name)e(of)g(w)o(orking)g(directory)h(on)g(serv)o
  606. X(er)403 2155 y Fe(FtpMo)o(v)o(e)p 403 2170 189 2 v -2 w(\(FTP)i(*,c)o(har)f
  607. X(*old\014lename,)e(c)o(har)i(*new\014lename\))403 2205 y Ff(Renames)e(\014le)
  608. Xh(from)e Fe(old\014lename)p 744 2212 237 2 v 10 w Ff(to)i Fe(new\014lename)p
  609. X1045 2212 256 2 v 403 2302 a(FtpGetFil)o(e)p 403 2317 232 2
  610. Xv -3 w(\(FTP)i(*,c)o(har)f(*\014lename\))403 2352 y Ff(Sends)g(start)f
  611. X(transfer)h(\014le)f(command)d(to)j(serv)o(er.)19 b(Do)q(es)14
  612. Xb(not)g(mak)o(e)f(data)g(c)o(hannel)403 2449 y Fe(FtpPutFil)o(e)p
  613. X403 2464 V -3 w(\(FTP)i(*,c)o(har)h(*\014lename\))340 2574
  614. Xy Ff(6)p eop
  615. X%%Page: 7 7
  616. Xbop 183 147 a Ff(High-lev)o(el)13 b(functions)p 183 164 1433
  617. X2 v 245 307 a(Sends)f(start)g(transfer)g(\014le)f(command)d(to)j(the)g(serv)o
  618. X(er.)19 b(Do)q(es)11 b(not)g(mak)o(e)f(data)h(c)o(hannel)245
  619. X407 y Fe(FtpP)o(ort)p 245 422 169 2 v -3 w(\(FTP)16 b(*,)g(in)o(t)e(a,)i(in)o
  620. X(t)e(b,)i(in)o(t)e(c,)i(in)o(t)e(d,)i(in)o(t)e(e,)i(in)o(t)e(f)5
  621. Xb(\))245 457 y Ff(A)14 b(command)c(for)j(the)i(serv)o(er)g(for)e(making)e(a)i
  622. X(new)h(data)f(c)o(hannel.)18 b Fe(a.b.c.d)p 1322 464 138 2
  623. Xv 14 w Ff(is)13 b(an)h(IP)183 506 y(address)h(of)e(a)h(clien)o(t\(i.e.)j(y)o
  624. X(our)d(IP)g(address\),)h Fe(e*256+f)p 926 519 170 2 v 13 w
  625. XFf(is)f(a)f(p)q(ort)h(n)o(um)o(b)q(er)183 644 y Fg(8)67 b(Subprograms)13
  626. Xb(for)i(sending/receiving)i(con)n(trol)f(mes-)284 718 y(sages)k(to/from)f
  627. X(serv)n(er)245 859 y Fe(FtpSendMessage)p 245 874 351 2 v -3
  628. Xw(\(FTP)d(*,)g(c)o(har)f(*message\))245 909 y Ff(Sends)g(a)e(message)h(to)g
  629. X(the)g(serv)o(er)245 1009 y Fe(in)o(t)g(FtpGetMessage)p 318
  630. X1023 327 2 v -2 w(\(FTP)h(*\))245 1058 y Ff(Receiv)o(es)g(a)e(message)h(from)
  631. Xe(the)j(serv)o(er.)245 1158 y Fe(FtpMessage)p 245 1173 249
  632. X2 v -1 w(\(in)o(t)e(Num)o(b)q(er\))245 1208 y Ff(Gets)h(a)g(message)f(b)o(y)h
  633. X(co)q(de.)183 1345 y Fg(9)67 b(High-lev)n(el)24 b(functions)245
  634. X1486 y Fe(FILE)16 b(*FtpF)l(ullOp)q(en)p 393 1501 267 2 v -4
  635. Xw(\(c)o(har)f(*\014lename,c)o(har)e(*mo)q(de\))245 1536 y Ff(P)o(arses)i
  636. X(string)f Fe(\014lename)p 492 1543 174 2 v -2 w Ff(,)f(whic)o(h)h(m)o(ust)f
  637. X(con)o(tain)h(a)f(string)h(in)f(format)g(or)183 1585 y Fe(host/user/pass)o(w)
  638. Xo(ord:\014)o(len)o(ame)p 183 1603 600 2 v 12 w Ff(or)j Fe(\014lename)p
  639. X850 1592 174 2 v -2 w Ff(,)f(what)h(corresp)q(onds)h(to)f(remote)f(or)183
  640. X1635 y(lo)q(cal)c(\014le.)18 b(The)13 b(second)h(argumen)o(t)e(is)g(the)h(t)o
  641. X(yp)q(e)h(of)e(op)q(ening,)g(divided)g(in)o(to)g(t)o(w)o(o)g(c)o(harac-)183
  642. X1685 y(ters:)18 b(\014rst)c(|)e(the)h(mo)q(de)f(of)g(op)q(ening)h
  643. XFe(\\r")p 800 1692 70 2 v Ff(,)f Fe(\\w")p 894 1692 85 2 v
  644. X13 w Ff(or)h Fe(\\a")p 1041 1692 74 2 v Ff(,)g(second)h(is)e(the)i(transfer)f
  645. X(t)o(yp)q(e)183 1735 y(,)g(if)g(con)o(tains)h(c)o(haracter)h
  646. XFe(\\b")p 590 1742 77 2 v Ff(,)e(then)i(the)f(mo)q(de)f(is)h(binary)m(.)245
  647. X1835 y Fe(ST)l(A)l(TUS)h(FtpF)l(ullClose\()o(FILE)e(*stream\))245
  648. X1884 y Ff(Closes)h(an)g(op)q(ened)h(\014le)1594 2574 y(7)p
  649. Xeop
  650. X%%Page: 8 8
  651. Xbop 340 370 a Fg(Index)340 452 y Ff(data,)13 b(2)340 549 y(EOF,)h(6)340
  652. X599 y(errno,)h(2)340 695 y(FtpAccoun)o(t,)g(3)340 746 y(FtpAscii,)f(7)340
  653. X796 y(FtpBinary)m(,)g(7)340 846 y(FtpBy)o(e,)h(3)340 896 y(FtpChdir,)f(7)340
  654. X946 y(FtpClose,)g(6)340 996 y(FtpCommand,)d(7)340 1046 y(FtpConnect,)k(2)340
  655. X1096 y(FTPD,)f(1)340 1146 y(FtpData,)f(6)340 1197 y(FtpDebug,)h(4)340
  656. X1247 y(FtpDebugDebug,)g(2,)f(4)340 1297 y(FtpDebugError,)i(2,)e(4)340
  657. X1347 y(FtpDebugIO,)h(2,)f(4)340 1397 y(FtpDir,)h(5)340 1447
  658. Xy(FtpDirectory)m(,)g(5)340 1497 y(FtpF)m(ullClose,)f(8)340
  659. X1547 y(FtpF)m(ullOp)q(en,)h(8)340 1597 y(FtpGet,)g(5)340 1647
  660. Xy(FtpGetFile,)g(7)340 1698 y(FtpGetMessage,)h(8)340 1748 y(FtpGetString,)f(6)
  661. X340 1798 y(FtpGetTimeout,)f(5)340 1848 y(FtplibDebug,)g(2,)g(4)340
  662. X1898 y(FtpLibrary)m(.h,)g(1)340 1948 y(FtpLogin,)g(3)340 1998
  663. Xy(FtpMessage,)i(8)340 2048 y(FtpMkdir,)f(7)340 2098 y(FtpMo)o(v)o(e,)g(7)340
  664. X2149 y(FtpOp)q(enApp)q(end,)i(6)340 2199 y(FtpOp)q(enDir,)f(6)340
  665. X2249 y(FtpOp)q(enRead,)g(6)340 2299 y(FtpOp)q(enW)m(rite,)g(6)340
  666. X2349 y(FtpP)o(assw)o(ord,)g(2)340 2399 y(FtpP)o(ort,)f(7)340
  667. X2449 y(FtpPut,)h(5)1129 452 y(FtpPutFile,)f(7)1129 502 y(FtpPutTimeout,)f(5)
  668. X1129 552 y(FtpPwd,)h(7)1129 602 y(FtpRead,)g(6)1129 652 y(FtpRetr,)g(5)1129
  669. X701 y(FtpRetrTimeout,)f(4)1129 751 y(FtpRm,)f(7)1129 801 y(FtpSendMessage,)k
  670. X(8)1129 851 y(FtpSetDebugHandler,)f(3)1129 901 y(FtpSetErrorHandler,)g(3)1129
  671. X950 y(FtpSetIOHandler,)g(3)1129 1000 y(FtpStor,)f(5)1129 1050
  672. Xy(FtpStorTimeout,)f(5)1129 1100 y(FtpT)o(yp)q(e,)h(7)1129 1150
  673. Xy(FtpUser,)h(2)1129 1200 y(FtpW)m(rite,)e(6)1129 1291 y(mo)q(de,)f(2)1129
  674. X1382 y(so)q(c)o(k,)i(2)1129 1432 y(ST)m(A)m(TUS,)f(3)1129 1523
  675. Xy(timeout,)f(4)p eop
  676. X%%Page: 9 9
  677. Xbop 183 147 a Ff(CONTENTS)961 b(CONTENTS)p 183 164 1433 2 v
  678. X183 307 a Fg(Con)n(ten)n(ts)183 399 y Fe(1)38 b(The)15 b(FTP)h(data)g
  679. X(structure)835 b(1)183 490 y(2)54 b(Connection/Di)o(sconn)o(ecti)o(on)12
  680. Xb(with)j(serv)o(er)526 b(2)183 581 y(3)38 b(The)15 b(debugging)1033
  681. Xb(3)183 672 y(4)38 b(Data)15 b(transfer)f(pro)q(cedures)g(from)h(the)g(serv)o
  682. X(er)482 b(4)183 764 y(5)38 b(Data)15 b(transfer)f(pro)q(cedures)g(to)h(the)g
  683. X(serv)o(er)538 b(4)183 855 y(6)38 b(Serv)o(er's)14 b(\014les)h(read/write)f
  684. X(pro)q(cedures)599 b(5)183 946 y(7)38 b(Other)14 b(commands)h(for)g(serv)o
  685. X(er)771 b(6)183 1038 y(8)38 b(Subprograms)18 b(for)j(sending/recei)o(vin)o(g)
  686. Xd(con)o(trol)i(messages)g(to/from)245 1088 y(serv)o(er)1219
  687. Xb(7)183 1179 y(9)38 b(High-lev)o(el)13 b(functions)926 b(7)1594
  688. X2574 y Ff(9)p eop
  689. X%%Trailer
  690. Xend
  691. Xuserdict /end-hook known{end-hook}if
  692. X%%EOF
  693. END_OF_FILE
  694.   if test 43748 -ne `wc -c <'libftp/etc/eng.ps.B'`; then
  695.     echo shar: \"'libftp/etc/eng.ps.B'\" unpacked with wrong size!
  696.   elif test -f 'libftp/etc/eng.ps.A'; then
  697.     echo shar: Combining  \"'libftp/etc/eng.ps'\" \(87332 characters\)
  698.     cat 'libftp/etc/eng.ps.A' 'libftp/etc/eng.ps.B' > 'libftp/etc/eng.ps'
  699.     if test 87332 -ne `wc -c <'libftp/etc/eng.ps'`; then
  700.       echo shar: \"'libftp/etc/eng.ps'\" combined with wrong size!
  701.     else 
  702.       rm libftp/etc/eng.ps.A libftp/etc/eng.ps.B 
  703.     fi 
  704.   fi
  705.   # end of 'libftp/etc/eng.ps.B'
  706. fi
  707. if test -f 'libftp/etc/rus.tex.UU' -a "${1}" != "-c" ; then 
  708.   echo shar: Will not clobber existing file \"'libftp/etc/rus.tex.UU'\"
  709. else
  710.   echo shar: Extracting \"'libftp/etc/rus.tex.UU'\" \(22541 characters\)
  711.   sed "s/^X//" >'libftp/etc/rus.tex.UU' <<'END_OF_FILE'
  712. Xbegin 644 libftp/etc/rus.tex
  713. XM7&1O8W5M96YT<W1Y;&5;<G5S<VEA;BQF86YC>6AE861I;F=S+'1W;W-I9&4L
  714. XM97!S9BQI;F1E;G1F:7)S=%U[87)T:6-L97T*)2!697)T:6-A;"!S:7IE<PHE
  715. XM7'9S:7IE/3(P8VT*)5QV;V9F<V5T/2TR+C-C;0HE7'1O<&UA<F=I;CTP8VT*
  716. XM)5QH96%D:&5I9VAT/3 N.6-M"B5<9F]O='-K:7 ],6-M"B5<9F]O=&AE:6=H
  717. XM=#TP+CEC;0HE7'1E>'1H96EG:'0],39C;0HE7&AE861R=6QE=VED=&@@,"XP
  718. XM,6-M"B5<9F]O=')U;&5W:61T:" P+C!C;0HE(&AO<FES;VYT86P@<VEZ97,*
  719. XM)5QH<VEZ93TS,&-M"B5<:&]F9G-E=#TM-"XS8VT*)5QH;V9F<V5T/2TR+C-C
  720. XM;0D*)5QT97AT=VED=&@],3-C;0HE($UO9&5S"B4@7'-P96-I86Q[;&%N9'-C
  721. XM87!E?0I<<&%G97-T>6QE>V5M<'1Y?0I<<&%G97-T>6QE>V9A;F-Y<&QA:6Y]
  722. XM"EQN97=C;VUM86YD>UQT:71]6S%=>R,Q?0I<<FAE861;7&9A;F-Y<&QA:6Y[
  723. XM?7M<=&ET>UQL969T;6%R:WU]77M<9F%N8WEP;&%I;GM]>UQT:71[7')I9VAT
  724. XM;6%R:WU]?0I<;&AE861;7&9A;F-Y<&QA:6Y[?7M<=&ET>UQR:6=H=&UA<FM]
  725. XM?5U[7&9A;F-Y<&QA:6Y[?7M<=&ET>UQL969T;6%R:WU]?0I<8VAE861[7&AF
  726. XM:6QL?0I<;&9O;W1;7&9A;F-Y<&QA:6Y[?7M<=&ET>UQT:&5P86=E?7U=>UQF
  727. XM86YC>7!L86EN>WU[7&AF:6QL?7T*7')F;V]T6UQF86YC>7!L86EN>WU[7&AF
  728. XM:6QL?5U[7&9A;F-Y<&QA:6Y[?7M<=&ET>UQT:&5P86=E?7U]"EQC9F]O='M<
  729. XM:&9I;&Q]"EQR96YE=V-O;6UA;F1[7'-E8W1I;VYM87)K?5LQ77M<;6%R:V)O
  730. XM=&A[(S%]>UP@?7T*7')E;F5W8V]M;6%N9'M<<W5B<V5C=&EO;FUA<FM]6S%=
  731. XM>UQM87)K<FEG:'1[7"!]?0I<;F5W8V]M;6%N9'M<;&]O:WU;,5U[*.?,P=?!
  732. XM?EQR969[(S%]+"#3U-(N?EQP86=E<F5F>R,Q?2E]"EQN97=C;VUM86YD>UQT
  733. XM;VEN9&5X?5LQ77M<=6YD97)L:6YE>UQB9B,Q?5QI;F1E>'LC,7U]"EQN97=C
  734. XM;VUM86YD>UQA9&1]6S%=>UQS>6UB;VQ[-C1]?0I<;F5W8V]M;6%N9'M<<'-]
  735. XM6S%=>UQS>6UB;VQ[,S=]<WT*7&YE=V-O;6UA;F1[7'1W8V]L?5LT77L*7&YO
  736. XM:6YD96YT7'!A<F)O>%MT77LC,5QT97AT=VED=&A]>R,S?2!<:&9I;&P@7'!A
  737. XM<F)O>%MT77LC,EQT97AT=VED=&A]>R,T7&AF:6QL?5Q<"GT*7&YE=V-O;6UA
  738. XM;F1[7'1C?5LR77M<='=C;VQ[,"XT.7U[,"XT.7U[(S%]>R,R?7T*7&YE=V-O
  739. XM;6UA;F1[7'1C8WU;,EU[7'1W8V]L>S N-#E]>S N-#E]>UQT;VEN9&5X>R,Q
  740. XM?7U[(S)]?0I<;F5W8V]M;6%N9'M<='1T?5LR77M<8FEG<VMI< H*>UQB9B,Q
  741. XM?0H*(S)]"EQN97=C;VUM86YD>UQT<WU;,5U[>UQU;F1E<FQI;F5[7&)F(S%]
  742. XM?7T*7&YE=V-O;6UA;F1[7&1L?5LR77M<<&%R8F]X6W1=>S N-%QT97AT=VED
  743. XM=&A]>R,Q7&AF:6QL?5QH9FEL; H@(" @(" @(" @(" @(" @(" @(%QP87)B
  744. XM;WA;=%U[,"XT7'1E>'1W:61T:'U[(S)<:&9I;&Q]?0I<;6%K96EN9&5X"EQB
  745. XM96=I;GMD;V-U;65N='T@"EQT:71L97M<8F9<:70@\O7K[_?OY//T]^\@\._L
  746. XM^/KO]^'TY>SQ(.+IXNSI[_3EZ^_J("),24)&5% B?0I<875T:&]R>^_,Q<<@
  747. XM[]+%S'T*7&1A=&5[7'1O9&%Y?0I<;F5W<&%G92 *7&UA:V5T:71L90H*7'-E
  748. XM8W1I;VXJ>^SIX^7N^NGQ?0H*\-+/Q-7+U"#0TL7$SL':P<[!WL7.(,3,T2#.
  749. XMP=#)T\'.R=$@T]?/PL_$SL_'SR#.Q<O/S<W%TM[%T\O/Q\\@T-+/Q]+!S<W.
  750. XMS\?/"L_"Q=/0Q=[%SLG1+B#OSB#-S];%U"#)T]#2P=?,T=38T]$@R2#$S]#)
  751. XMT]G7P=38T]$N( KAU]3/TB#"U<3%U"#"S,''S\3!TL7.(-K!(-#/S-7>Q<[)
  752. XMQ2#3S]?%U,_7+"#.S]?9R"#+S\W0S\[%SM0@R2#0TL'7S\L@"M/5W<73U-?5
  753. XMP-W)R"#0S\30TL_'TL'-S2X*"O?/VLW/UL[/(-3!RR#6Q2#)(,O/S<W%TM[%
  754. XMT\O/Q2#)T]#/S-C:S]?!SLG%(-S4S\H@PLG"S,G/U,7+R2#3(-#2R=?,Q=[%
  755. XMSLG%S0K%7"+%(,'7U,_2P2X*"EQS96-T:6]N*GOW]^7DY>[IY7T*"N+)PLS)
  756. XMS]3%R\$@8&!L:6)F=' G)R#0TL7$SL':SL'>Q<[!(,3,T2#.P=#)T\'.R=$@
  757. XMT-+)R\S!Q,[9R"#0TL_'TL'-S2#7(,O/U,_2V<@*T]7=Q=/4U]7%U"#.Q<_"
  758. XMR,_$R<W/T]38(-#%TL7$P=?!U-@@QL'*S-D@T,\@T\74R2!40U O25 N($_.
  759. XMP0K1U\S1Q=33T2#.P<+/TL_-(,;5SLO#R<H@SL'>R<[!T2#/U"#0TLG-R=3)
  760. XMU\_7+"#4P<O)R"#+P<L@S]3+TMG4R<4@T\_%Q,G.Q<[)T2#0SR#0TL_4S\O/
  761. XMS-4@1E10(,[!(-7$P<S%SL[5P"#-P=O)SM4L(,3/(,;5SLO#R<H@U]G3S\O/
  762. XMQ\\@U=+/U\[1+"#+S]3/TMG%(-#%TL7$P<#4( K&P<K,V2#3P<W)(-#2S\G:
  763. XMU\_$T2#3S\7$R<[%SLG%+]+!VM_%Q,G.Q<[)Q2#3(-/%TM?%TL_-+B *]]/%
  764. XM(,;5SLO#R<D@R<W%P-0@T-+/U,_4R=#9(-<@QL'*S,4@7'1O:6YD97A[1G1P
  765. XM3&EB<F%R>2YH?2P@"LO/U,_2V<H@Q,_,UL7.(,+9U-@@T,_-Q=W%S@K7(,O!
  766. XMU,',S\<@T]3!SL3!TM3.V<@@VL''S\S/U\O/URX@_-3)(-#2S]3/U,G0V2#0
  767. XMTL'+U,G>Q=/+R2#0S\S.S]/4V, @S]#)T]G7P<#4"L[!VL[!WL7.R<4@QM7.
  768. XMR\/)RB @R2#)R"#!TL?5S<7.U-DL(,[/(-3%S2#.Q2#-Q<[%Q2#.Q<_"R,_$
  769. XMR<W/(-/+P=K!U-@@S\(@S\+=Q<H@R<3%S\S/Q\G)"M#/T]32S\7.R=$@PLG"
  770. XMS,G/U,7+R2#)(,7%(,O/S=#/SL7.U"X@"@KWT]$@PLG"S,G/U,7+P2P@T=?,
  771. XMT='3V"#+S,G%SM3/S2P@R=/0S\S8VM7%U K3(-#2S]3)U\_0S\S/UL[/RB#3
  772. XMU,_2S\[9(-//Q<3)SL7.R=$@T]3!SL3!TM3.V<H@7'1O:6YD97A[1E101'TN
  773. XM"@KW(._S(%5.25@@T]7=Q=/4U]7%U"#0TL_"S,7-P2#/PM+!PL_4R\D@TL':
  774. XMSL_'SR#2S\3!(,_;R<+/RR#7(-3/S2#>R=/,Q2#/V\G"S\L@"M?7S\3!+]?9
  775. XMU\_$P2P@UR#$P<[.S\T@R<[3U-+5S<7.U,'2R<D@R=/0S\S8VL_7P<X@Q<3)
  776. XMSMG*(,W%R,'.R=K-(-?/VM?2P=3!( K2Q=K5S-C4P=3!(-+!PL_4V2#,P,+/
  777. XMRB#&U<[+P\G)(" HS<'+TL_+S\W!SL3!(%QT<WM%6$E4?2P@S]#2Q<3%S,7.
  778. XMSL'1(-<@7'1S>T9T<$QI8G)A<GDN:'TI( K+S]3/TMG*(-#/VM?/S-'%U" *
  779. XMT-+%Q-?!TLG4Q<S8SL\@U=/4P<[/U\G7(-/7S\D@R<S)(-/4P<[$P=+4SMG%
  780. XM(,;5SLO#R<D@S\+2P<+/U,O)(,_;R<+/RR#)(,9YSLO#R<D*S]3,P<3+R2P@
  781. XMT,G3P=38(-/-V=/,S]?5P"#>P=/4V"#0TL_'TL'-S=DL(,35S<'1(-3/S-C+
  782. XMSR#/(,7%(,W%U,_$Q2#2P<+/U-D@"M<@R<3%P<S8SMG((-73S,_7R='(+B#T
  783. XMP<L@UL4@UR#&U<[+P\G1R"#0Q=+%Q,'>R2#$P<[.V<@@UR#/PL4@T]3/TL_.
  784. XMV2#3U=W%T]37U<74"M?/VLW/UL[/T]38(-73U,'.S]?)U-@@S<'+T\G-P<S8
  785. XMSL_%(-?2Q<W1(,_6R<3!SLG1(-#/U,_+P2#$P<[.V<@L(,D@UR#3S-7>P<4@
  786. XMR\_'Q,$*S\[/("C7TL7-T2D@R=/4Q=[%U"P@U]G:U\'4V"#/T-+%Q,7,Q<[.
  787. XMU< @T-+/P\7$U=+5+B *"@KPTLD@TL'"S]3%(-,@PLG"S,G/U,7+S\HL(-#%
  788. XMTM?/RB#7T\7'Q,$@U]G:V=?!Q=33T2#0TL_#Q<35TL$@T\_%Q,G.Q<[)T2#3
  789. XM(-/%TM?%TL_-( K+S]3/TL'1(-?/VM?2P=W!Q=0@U<O!VL'4Q<S8(,[!(-?.
  790. XMS]?8(-//VL3!SL[5P"#3U-+5R]35TM4@Q,'.SMG(("C4R=#!(%QT<WM&5%!]
  791. XM*2 @"L\@T\_%Q,G.Q<[)R2#3(-/%TM?%TL_-+B *"@H*"EQS96-T:6]N>_/4
  792. XMTM7+U-72P2#$P<[.V<@@1E10?0H*"EQT8WMI;G0@7'1O:6YD97A[<V]C:WU]
  793. XM>RTM+2#$Q=/+TLG0U,_2(,O!SL',P2#0Q=+%Q,'>R2#+S\W!SL0@SL$@T\72
  794. XMU\72.WT*7'1C>T9)3$4@*EQT;VEN9&5X>V1A=&%]?7LM+2T@S]#)T\'.R<4@
  795. XMR\'.P<S!(,3,T2#0Q=+%Q,'>R2#$P<[.V<@@SL$@T\72U\72.WT*7'1C>VEN
  796. XM="!<=&]I;F1E>'ME<G)N;WU]>R M+2T@VL[!WL7.R<4@T,_3S,7$SL7'SR#7
  797. XMS]K7TL'=Q<[.S\?/(,+)PLS)S]3%R\_*(-K.P=[%SLG1+@H@(" @(" @(" @
  798. XM(" @(" @(" @(" @("#W(-/,U=[!Q2#%T\S)(,_.SR#/U-+)P\'4Q<S8SL\@
  799. XMR<S)(-+!U\[/(,[5S, L( H@(" @(" @(" @(" @(" @(" @(" @("#4SR#0
  800. XMTL_)VL_;S,$@S]O)PLO!.WT*7'1C>V-H87(@7'1O:6YD97A[;6]D97U]>RTM
  801. XM+2#4R= @T,72Q<3!WLD@Q,'.SMG(.WT*7'1C>VEN="!C:'U[+2TM(-?3T,_-
  802. XMS\?!U,7,V,[!T2#0Q=+%S<7.SL'1(,G3T,_,V-K5Q<W!T2#$S-$@T-+%S\+2
  803. XMP=K/U\'.R=$*(" @(" @(" @(" @(" @(" @(" @(" @T,_4S\O!(-<@TL76
  804. XMR<W%(-#%TL7$P=[)(-3%R]/4S]?9R"#&P<K,S]<[?0I<=&-[4U1!5%53("@J
  805. XM9G5N8RDH*7U[+2TM(,'$TL73(,;5SLO#R<DL(,O/U,_2P=$@U]G:V=?!Q=33
  806. XMT2#7(-/,U=[!Q2#+S\?$P2#/U"#3Q=+7Q=+!"B @(" @(" @(" @(" @(" @
  807. XM(" @(" @(-#/S-7>Q<X@S]37Q=0@S\(@S]O)PLO%.WT*7'1C>U-405154R H
  808. XM*F1E8G5G*2@I?7LM+2T@P<32Q=,@QM7.R\/)R2P@R\_4S]+!T2#7V=K9U\'%
  809. XMU-/1(,3,T2#/U,S!Q,O)(-#2S]3/R\_,P3M]"EQT8WM35$%455,@*"I)3RDH
  810. XM*7U[+2TM(,;5SLO#R=$@U]G:V=?!Q<W!T2#7(-/,U=[!Q2#0S]3%TLD@T]?1
  811. XMVLD@TR#3Q=+7Q=+/S2P@R<S)"B @(" @(" @(" @(" @(" @(" @(" @(-#/
  812. XM(,G3U,7>Q<[)P"#-P<O3R<W!S-C.S\?/(-?2Q<W%SLD@SL$@T-+)Q<TOT,72
  813. XMQ<3!WM4@S\3.S\?/"B @(" @(" @(" @(" @(" @(" @(" @(-/)S=?/S,$N
  814. XM?0H@"@I<<V5C=&EO;GL@\-+/P\7$U=+9(-//Q<3)SL7.R=$OTL':W\7$R<[%
  815. XMSLG1(-,@T\72U\72S\U]"@I<='1T>U-405154R!<=&]I;F1E>'M&='!#;VYN
  816. XM96-T?2A&5%!^*BHL(&-H87)^*FAO<W1N86UE"EQF;V]T;F]T97OIS=$@S<';
  817. XMR<[9(,W/UL74(,+9U-@@R\'+(-/)S=?/S-C.S\4@U,'+(,D@P\G&TL_7S\4L
  818. XM(,[!T-+)S<72( I<='-[9'AC97)N+F-E<FXN8VA](,G,R2!<='-[,3(X+C$T
  819. XM,2XR,#$N.39]?0HI?0I["B @\\_:Q,'%U"#+P<[!S"#3S\7$R<[%SLG1(-,@
  820. XMT\72U\72S\TL(,[!R,_$T=W)S=/1(,[!(,W!V\G.Q2 @:&]S=&YA;64L"B @
  821. XMR2#3S]K$P<74(-/4TM7+U-72U2!&5% L(-?/VM?2P=W!T2#.P2#.Q<4@U<O!
  822. XMVL'4Q<S8+B#ET\S)(-#2Q<37P=+)U,7,V,[/"B @PMG,P2#7V=#/S,[%SL$@
  823. XMT-+/P\7$U=+!(%QT;VEN9&5X>T9T<&QI8D1E8G5G?2@Q*2P@"B @U,\@Q,\@
  824. XMT\_%Q,G.Q<[)T2#3(-/%TM?%TL_-(-?+S,#>P<74(-/4P<[$P=+4SMG%"B @
  825. XMT,_$T-+/Q]+!S<W9(,_"TL'"S]3+R2#/V\G"S\L@7'1O:6YD97A[1G1P1&5B
  826. XM=6=$96)U9WTL(%QT;VEN9&5X>T9T<$1E8G5G17)R;W)]+" *("!<=&]I;F1E
  827. XM>'M&='!$96)U9TE/?2!<;&]O:WMD96)U9WTN"GT*7'1T='M35$%455,@7'1O
  828. XM:6YD97A[1G1P57-E<GTH1E10?BHL(&-H87)^*G5S97(I?0I["B#PS]/9S,'%
  829. XMU"#3Q=+7Q=+5(,G-T2#0S\S8VL_7P=3%S-$N(/+!SL7%(,3/S-;.SR#"V<S/
  830. XM(,+9U-@@T-+/R=K7Q<3%SL\@T\_%Q,G.Q<[)Q0I]"@I<='1T>U-405154R!<
  831. XM=&]I;F1E>'M&='!087-S=V]R9'TH1E10?BHL(&-H87)^*G!A<W-W;W)D*7T*
  832. XM>PH@\,_3V<S!Q=0@T\72U\72U2#0P=+/S-@N(/+!SL7%(,3/S-;.P2#"V<S!
  833. XM(,+9U-@@U]G0S\S.Q<[!(-#2S\/%Q-72P2!<='-[1G1P57-E<GT@"GU<='1T
  834. XM>U-405154R!<=&]I;F1E>'M&='!!8V-O=6YT?2A&5%!^*BP@8VAA<GXJ86-C
  835. XM="E]"GL*(/#/T]G,P<74(-/%TM?%TM4@R<W1(,'+P=7.U,$N(/S4P2#&U<[+
  836. XMP\G1(-/$Q<S!SL$@Q,S1(-#/S,[/Q\\@T\_/U-?%U-/4U\G1"B#"R<+,R<_4
  837. XMQ<O)(-#2S]3/R\_,U2!<='-[1E10?2P@SL\@U"[++B#-P<S/(-3!R\G((,_0
  838. XMQ=+!P\G/SL[9R"#3R=/4Q<T@UR#+S]3/TMG((,[%S\+(S\3)S2#<U,_4( H@
  839. XMP=32R<+5U"#0S\S8VL_7P=3%S-$@U,\@QM7.R\/)T2!<='-[1G1P06-C;W5N
  840. XM='T@UR#/PMW%S2#4SR#.Q2#.U=;.P2X*(/#2Q<37P=+)U,7,V,[/(,3/S-;.
  841. XMP2#"V<S!(,+9U-@@U]G0S\S.Q<[!(-#2S\/%Q-72P0H@7'1S>T9T<%5S97)]
  842. XM+@I]"@I<='1T>PI35$%455,@7'1O:6YD97A[1G1P3&]G:6Y]*$944'XJ*BP@
  843. XM8VAA<GXJ:&]S=&YA;64L(&-H87)^*G5S97(L(&-H87)^*G!A<W-W;W)D+"!C
  844. XM:&%R?BIA8V-O=6YT*7T*>PH@(/#/T\S%Q,_7P=3%S-C.SR#7V=#/S,[1Q=0@
  845. XMT-+/P\7$U=+9(%QT<WM&='!#;VYN96-T?2P@7'1S>T9T<%5S97)]+"!<='-[
  846. XM1G1P4&%S<W=O<F1]+"!<='-[1G1P06-C;W5N='T@"BC%T\S)(-S4SR#.Q<_"
  847. XMR,_$R<W/*2X@1=/,R2#!R\'5SM0@S]33U=33U-?5Q=0L(,O!RR#/PMG>SL\@
  848. XMR2#"V=?!Q=0L(-?-Q=/4SR#.Q<?/"L[!Q,\@T,72Q<3!U\'4V"#:SL'>Q<[)
  849. XMQ2!<='-[3E5,3'U]"@I<='1T>U-405154R!<=&]I;F1E>'M&='!">65]*$94
  850. XM4'XJ*7T*>R#ZP=?%TMO!Q=0@T\7!SM,@TL'"S]39(-,@T\72U\72S\T@7&9O
  851. XM;W1N;W1E>^O!RR#7R<3.SR#)VB#/T,G3P<[)T2#0TL_#Q<35TB#3S\7$R<[%
  852. XMSLG1+]+!VM_%Q,G.Q<[)T2#)VB#/Q,[/RB#0TL_'TL'-S=D@S<_6SL\@S\3.
  853. XMS]?2Q<W%SL[/(-//Q<3)SM'4T]$@TR#.Q=/+S\S8R\G-R2#3Q=+7Q=+!S<E]
  854. XM('T*"@H*"EQS96-T:6]N>_#2S\/%Q-72V2#/U,S!Q,O)(-#2S\?2P<W-V7T@
  855. XM7&QA8F5L>V1E8G5G?2 *"O/5W<73U-?5Q=0@U\_:S<_6SL_3U-@@T-+%Q-?!
  856. XMTLG4Q<S8SL\@S]#2Q<3%S,G4V"#4TLD@T-+/P\7$U=+9.@I<9F]O=&YO=&5[
  857. XMY=/,R2#7(,S PM7 (,G:(,;5SLO#R<HL(,_0R=/!SL[9R"#.R=;%+"#7S<73
  858. XMU,\@T,'2P<W%U-+!(&9U;F-T:6]N(-#%TL7$P=38(-K.P=[%SLG%(%QT<WM.
  859. XM54Q,?2P@U,\@W-3/(,+5Q,74(,_:SL'>P=38"L_4R\S WL7.R<4@S]3,P<3+
  860. XMR2X@\-+)(,_4R\S WL7.SL_*(,_4S,'$R\4@TL7:U<S8U,'4(-+!PL_4V2#-
  861. XMS];.SR *S]#2Q<3%S,G4V"#)S,D@UL4@T,\@U\_:U]+!W<'%S<_-U2#&U<[+
  862. XMP\G%RB#:SL'>Q<[)P" HY=/,R2#/SL$@U,G0P2!<=&]I;F1E>'M35$%455-]
  863. XM*2#)S,D@"M#/(-#%TL7-Q<[.S\H@97)R;F\@UR#3U-+5R]35TL4@7'1S>T94
  864. XM4'U]"@I<='1T>UQT;VEN9&5X>T9T<%-E=$1E8G5G2&%N9&QE<GTH1E10("HL
  865. XM9G5N8W1I;VXI?0I[("#UT]3!SL'7S,G7P<74(-#2S\/%Q-72U2#/U,S!Q,O)
  866. XM(-#2S]3/R\_,P2#3(-7$P<S%SL[9S2#3Q=+7Q=+/S2X@"B @(.73S,D@Q<4@
  867. XMS]#2Q<3%S,G4V"P@U,\@S\[!(-?3Q<?$P2#"U<3%U"#7V=K9U\'%U-/1(,G:
  868. XM(-/4P<[$P=+4SL_*(,;5SLO#R<D@"B @(-#2R<7-P2_0Q=+%Q,'>R2#3S\_"
  869. XMW<7.R=$@TR_.P2#3Q=+7Q=+!+B#DS\S6SL$@Q,7,P=38(-?/VM?2P=0L(,[/
  870. XM(-<@T-+)SL/)T,4*(" @R<W%Q=0@T,_,SL_%(-#2P=?/(-#2Q=+9U\'4V"#7
  871. XMV=#/S,[%SLG%(-#2S\?2P<W-V2#7(-/,U=[!Q2#.Q<_"R,_$R<W/T]3)+@I]
  872. XM"@I<='1T>UQT;VEN9&5X>T9T<%-E=$5R<F]R2&%N9&QE<GTH1E10("HL9G5N
  873. XM8W1I;VXI?0I["B @(._0TL7$Q<S1U"#&U<[+P\G (,_"TL'"S]3+R2#/V\G"
  874. XMS\LN"B @(/#/T\S%(,7%(,_0TL7$Q<S%SLG1(-<@T\S5WL'%(-?/VM?2P=W%
  875. XMSLG1(-/%TM?%TL_-"B @(,[%U<3/U\S%U-?/TLG4Q<S8SL_'SR#/U-?%U,$@
  876. XMPM7$Q=0@U]G:V=?!U-C3T2#5R\':P<[.P=$@QM7.R\/)T2X@"B @(/#2R2#<
  877. XMU,_-(-K.P<L@U2#+S\3!(,_;R<++R2#-Q<[1Q=33T2#.P2 G+2<L(,D@U"[/
  878. XM+B#2Q=K5S-C4P=0@"B @(-/4P<[/U\G4T]$@S<7.V-O%(,[5S-$N"GT*7'1T
  879. XM='M<=&]I;F1E>'M&='!3971)3TAA;F1L97)]*$944" J+&9U;F-T:6]N*7T*
  880. XM>PH@("#OT-+%Q,7,Q<[)Q2#&U<[+P\G)(,_"TL'"S]3+R2#/V\G"S\L@U]?/
  881. XMQ,$OU]G7S\3!+@H@("#PTLD@T,72Q<3!WL4@Q,'.SMG((,G,R2#+S\W!SL0@
  882. XMSL$@T\72U\72+"#-S];%U"#7S]K.R<O.U=38(-/)U-7!P\G1(,O/Q\3!( H@
  883. XM("#3U]':V"#3(-/%TM?%TL_-(,+5Q,74(-#/U,72T<[!("C3P,3!(-?(S\31
  884. XMU"#0TL'+U,G>Q=/+R2#7T\4@T\+/R2#3Q=3)( H@("#)(-/"S\D@T-+)(-+!
  885. XMPL_4Q2#3Q=+7Q=+!(,[!(-7$P<S%SL[/RB#-P=O)SL4I(-#2R2#<U,_-(,+5
  886. XMQ,74(-?9VM?!SL$*(" @U<O!VL'.SL'1(,;5SLO#R=$N(._.P2 @U]G:V=?!
  887. XMQ=33T2#4P<L@UL4@T,\@R=/4Q=[%SLG "B @(,W!R]/)S<',V,[/Q\\@U]+%
  888. XMS<7.R2#0TLD@S];)Q,'.R<D@S][%TL7$SL_'SR#3R<W7S\S!(-,@T\72U\72
  889. XMP2#7SR#7TL7-T0H@("#0Q=+%Q,'>R2#$P<[.V<@N("A<=&]I;F1E>'MT:6UE
  890. XM;W5T?2D*?0H*7'1T='M<=&]I;F1E>'M&='!$96)U9WTH1E10("HI?0I["O#/
  891. XMQ,O,P-[%SLG%(-/4P<[$P=+4SMG((,;5SLO#R<H@S]3,P<3+R2#0TL_4S\O/
  892. XMS,$@U,'+R<@@R\'+( I<=&-[7'1O:6YD97A[1G1P1&5B=6=%<G)O<GU]>RTM
  893. XM+2#0Q=[!U,'%U"#3U-+/R]4@U\_:U]+!W<7.SM7 (-/%TM?%TL_-(,D@T-+%
  894. XMTMG7P<74(-#2S\?2P<W-U3M]"EQT8WM<=&]I;F1E>'M&='!$96)U9T1E8G5G
  895. XM?7U[+2TM(-#%WL'4P<74(-/4TL_+U2#7S]K7TL'=Q<[.U< @T\72U\72S\T[
  896. XM?0I<=&-[7'1O:6YD97A[1G1P1&5B=6=)3WU]>RTM+2#0Q=[!U,'%U"#3U-+/
  897. XMR]4@7'1S>W-T<F5R<F]R*&5R<FYO*7T@R2#0TL72V=?!Q=0@T-+/Q]+!S<W5
  898. XM+GT*?0H*]\\@U]/%(-#2S\/%Q-72V2#0Q=+%Q,' U-/1(-32R2#!TL?5S<7.
  899. XMU,$Z7%P*,2X@\]32U<O4U=+!(%QT<WM&5%!].UQ<"C(N(/K.P=[%SLG%(-?/
  900. XMVM?2P=W%SL[/Q2#&U<[+P\G%RBP@Q=/,R2#/SL\@S<7.V-O%(,7$R<[)P]D@
  901. XMU,\@T-+/R=K/V\S!(,_;R<++P3M<7 HS+B#SR<W7S\S8SL_%(-//S\+=Q<[)
  902. XMQ2#/T,G3V=?!Q<W/Q2#/V\G"R]4@*&-H87(@*BDN"@I<='1T>UQT;VEN9&5X
  903. XM>T9T<&QI8D1E8G5G?2@Q(&]R(# I?0I["??+S,#>P<74+]?9R\S WL'%U"#!
  904. XMU]3/S<'4R=[%T\O/Q2#7R\S WL7.R<4@U]/%R"#7R<3/UR#/U,S!Q,O)(-#2
  905. XMR2 *(" @(" @("#7V=#/S,[%SLG)(,;5SLO#R<D@7'1S>T9T<$-O;FYE8W0H
  906. XM1G1P3&]G:6XI?7T*7'-E8W1I;VY[\-+/P\7$U=+9(-#%TL7$P=[)(,3!SL[9
  907. XMR"#3(-/%TM?%TL%]"@I<='1T>U-405154R @7'1O:6YD97A[1G1P4F5T<E1I
  908. XM;65O=71]*$944'XJ+"!C:&%R?BIC;VUM86YD+"!C:&%R?BII;G L(&-H87)^
  909. XM*F]U= I<9F]O=&YO=&5[Y=/,R2#)S=$@S,_+P<S8SL_'SR#&P<K,P2!<='-[
  910. XM;W5T?2#3S]?0P<3%U"#3SR#3U-+/R\'-R2!<='-[*E-41$E.*GTL(%QT<WLJ
  911. XM4U1$3U54*GTL(%QT<WLJ4U1$15)2*'T@U,\@"M?-Q=/4SR#/U,O2V=3)T2#.
  912. XMS]?/Q\\@QL'*S,$@T-+/R=K/RL3%U"#$U<+,R=+/U\'.R<4@T,_4S\O!(-//
  913. XMS]37Q=33U-?%SL[/(-,@R\'.P<S!S<D@"EQT<WMS=&1I;GTL(%QT<WMS=&1O
  914. XM=71]+"!<='-[<W1D97)R?7TL"B!L;VYG?G1I;64I?0I["@GPS]/9S,'%U"#+
  915. XMS\W!SL35(%QT<WMC;VUM86YD?2#.P2#3Q=+7Q=(L(-#2R=[%S2#%T\S)(-<@
  916. XMR\_-P<[$Q2 *(" @(" @("#7T]32Q=3)U-/1(-#/Q-/4TL_+P2!<<',L(-3/
  917. XM(,[!(,7%(,W%T]3/(,+5Q,74(-#/Q-/4P=?,Q<[!(-/4TL_+P2!<='-[:6YP
  918. XM?2X*(" @(" @("#SS]K$P<74(,O!SL',(,3,T2#0Q=+%Q,'>R2#$P<[.V<@L
  919. XM(,D@U,\@WM3/(,+5Q,74(-#%TL7$P<[/"@G3Q=+7Q=+/S2#7(-S4S]0@R\'.
  920. XMP<P@PM7$Q=0@T\O/T,G2U<74(-<@S,_+P<S8SMG*(,;!RLP@7'1S>V]U='TN
  921. XM( H@(" @(" @(.73S,D@UR#4Q=[%SLG)(-?2Q<W%SLD@7'1S>W1I;65]+" *
  922. XM"<O/U,_2V<H@R=K-Q=+1Q=33T2#7(-/%R]7.Q,'(+"#3(-/%TM?%TL$@SL4@
  923. XMT-+)Q,74(,[%(,_$SL_'SR#3R<W7S\S!+"#4SR *(" @(" @("#&U<[+P\G1
  924. XM(-?/VM?2P=3)U"#3U,'4U=,@R\_4S]+9RB#"U<3%U"#/VL[!WL'4V"#/V\G"
  925. XMR]4@U]?/Q,$OU]G7S\3!+@H)]R#3S-7>P<4@R\_'Q,$@7'1O:6YD97A[=&EM
  926. XM96]U='T],"P@"B @(" @(" @S<'+T\G-P<S8SL_%(-?2Q<W1(,[!(-72S]?.
  927. XMQ2#"R<+,R<_4Q<O)(-+!U\[/"B @(" @(" @PL73R\_.Q=[.S]/4R2P@SL\@
  928. XMUR#<U,_-(-/,U=[!Q2#3U,'4U=,@S\(@S]O)PLO%(-?7S\3!+]?9U\_$P2#0
  929. XMTL_)T\C/Q,G4"B @(" @(" @T,\@R=/4Q=[%SLG ('1I;65O=70G82#7(-'$
  930. XMTL4@5$-0+TE0+B#TP<O)S2#/PM+!VL_-+"#%T\S)(%QT<WMT:6UE;W5T?2#7
  931. XM( H)T,'2P<W%U-+%('1I;64@PL_,V-O%(-[%S2!T:6UE;W5T(-<@T<32Q2!4
  932. XM0U O25 L(,_.(,[)R\_'Q,$@"B @(" @(" @SL4@T-+%TM?%U"#0Q=+%Q,'>
  933. XMU2#$P<[.V<@N(%QF;V]T;F]T97M<='-[5&EM96]U='T@UR#1Q-+!R"#2P=K.
  934. XMV<@@5$-0+TE0(-+!VL[9RGT@"GT*"EQT='1[7'1O:6YD97A[1G1P4F5T<GTH
  935. XM1E10?BHL(&-H87)^*F-O;6UA;F0L(&-H87)^*FEN<"P@8VAA<GXJ;W5T*7T*
  936. XM>PH@]]G:V=?!Q=0@U,_6Q2#$Q<K3U-?)Q2#>U,\@R2!&='!2971R5&EM96]U
  937. XM="P@SL\@TR#7V<O,P-[%SL[9S2!T:6UE;W5T)\_-+@I]"@I<='1T>UQT;VEN
  938. XM9&5X>T9T<$=E=%1I;65O=71]*$944'XJ+"!C:&%R?BII;G L(&-H87)^*F]U
  939. XM="P@;&]N9WYT:6UE*7T*>PH@\,72Q<3!Q=0@TR#3Q=+7Q=+!(,;!RLP@7'1S
  940. XM>VEN<'T@UR#,S\O!S-C.V<H@QL'*S"!<='-[;W5T?2P@T-+)(-S4S\T@U=/4
  941. XMP<[!U\S)U\'%U-/1"B!<='-[=&EM96]U=#UT:6UE?2X*?0H*7'1T='M<=&]I
  942. XM;F1E>'M&='!'971]*$944'XJ+"!C:&%R?BII;BP@8VAA<GXJ;W5T*7T*>PH@
  943. XM]]G:V=?!Q=0@QM7.R\/)P"!<='-[1G1P1V5T5&EM96]U='T@TR#7V<O,P-[%
  944. XMSL[9S2#-P<O3R<W!S-C.V<T@U]+%S<7.Q<T@"L_6R<3!SLG1(,3!SL[9R'T*
  945. XM"EQT='1[7'1O:6YD97A[1G1P1&ER96-T;W)Y?2A&5%!^*BP@8VAA<GXJ<&%T
  946. XM7&9O;W1N;W1E>_S4SR#0Q=+7V<H@P=+'U<W%SM0@Q,S1(,O/S<'.Q-D@;',H
  947. XM9&ER*7TL(&-H87)^*F]U="E]"GL*(/#%TL7$P<74(-//Q,72ULG-S\4@Q,G2
  948. XMQ<O4S]+)R2P@S]#)T\'.SL_'SR#0P=+!S<74TL_-(%QT<WMP871]+"#3(-/%
  949. XMTM?%TL$@UR#&P<K,(%QT<WMO=71]+@I]"EQT='1[7'1O:6YD97A[1G1P1&ER
  950. XM?2A&5%!^*BP@8VAA<GXJ;W5T*7T*>PH@\,72Q<3!Q=0@T\_$Q=+6R<W/Q2#4
  951. XMQ<O5W<7*(,3)TL7+U,_2R<D@TR#3Q=+7Q=+!(-<@QL'*S"!<='-[;W5T?2X*
  952. XM?0H*7'-E8W1I;VY[\-+/P\7$U=+9(-#%TL7$P=[)(,3!SL[9R"#.P2#3Q=+7
  953. XMQ=)]"@I<='1T>UQT;VEN9&5X>T9T<%-T;W)4:6UE;W5T?2A&5%!^*BP@8VAA
  954. XM<GXJ8V]M;6%N9"P@8VAA<GXJ:6YP+"!C:&%R?BIO=70L(&QO;F=^=&EM92E]
  955. XM"GL*("#PQ=+%Q,'%U"#3S\3%TM;)S<_%(,S/R\',V,[/Q\\@QL'*S,$@7'1S
  956. XM>VEN<'T@SL$@T\72U\72+"#0TL7$U\'2R=3%S-C.SR#0S]/,P=<@"L7-U2#+
  957. XMS\W!SL35+"#3S]/4P=?,Q<[.U< @R=H@7'1S>V-O;6UA;F1](,D@7'1S>V]U
  958. XM='TN(/#!TL'-Q=32(%QT<WMT:6UE?2P@VL'$P<74(,W!R]/)S<',V,[/Q0K7
  959. XMTL7-T2#.P2#/U-#2P=?+U2#/Q,[/Q\\@T\G-U\_,P2X@"GT*"EQT='1[7'1O
  960. XM:6YD97A[1G1P4W1O<GTH1E10?BHL(&-H87)^*F-O;6UA;F0L(&-H87)^*FEN
  961. XM<"P@8VAA<BI^;W5T*7T*>PH@(/?9VMG7P<74(-K!T-73RR#0TL7$V<35W<7*
  962. XM(-#2S\/%Q-72V2#3(-#!TL'-Q=32S\T@7'1S>W1I;64],'TN"GT*"EQT='1[
  963. XM7'1O:6YD97A[1G1P4'5T5&EM96]U='TH1E10?BHL(&-H87)^*FEN+"!C:&%R
  964. XM?BIO=70L(&QO;F=^=&EM92E]"GL@\,72Q<3!Q=0@S,_+P<S8SMG*(,;!RLP@
  965. XM7'1S>VEN?2#.P2#3Q=+7Q=(@UR#&P<K,(-,@R<W%SL7-(%QT<WMO=71]+"#0
  966. XMTLD@W-3/S2!<='-[=&EM96]U=#UT:6UE?7T*"EQT='1[7'1O:6YD97A[1G1P
  967. XM4'5T?2A&5%!^*BP@8VAA<GXJ:6XL(&-H87)^*F]U="E]"GL*("#WV=K9U\'%
  968. XMU"#0TL_#Q<35TM4@7'1S>T9T<%!U=%1I;65O=71](-,@T,'2P<W%U-+/S2!<
  969. XM='-[=&EM93TP?7T*"@I<<V5C=&EO;GOPTL_#Q<35TMD@WM3%SLG1+]K!T,G3
  970. XMR2#7(,;!RLP@SL$@T\72U\72Q7T*"N3,T2#4S\?/+"#>U,_"V2#0TL_)VM?/
  971. XMQ,G4V"#7U\_$+]?9U\_$(,G:+]<@QL'*S-D@R\_4S]+9Q2#.P<C/Q-'4T]$@
  972. XMSL$@T\72U\72Q2P@"M#2R=[%S2#.Q2#+S]#)TM71(,G((-#2Q<37P=+)U,7,
  973. XMV,[/(-<@S,_+P<S8SMG*(,;!RLPL(,$@TL'"S]3!T2#.Q=#/T]+%Q-/4U\7.
  974. XMSL\@TR#/TLG'R<[!S,_-+" *T]7=Q=/4U]7%U"#7S]K-S];.S]/4V"#/U,O2
  975. XMV=38(,;!RLP@SL$@T\72U\72Q2#.P2#>U,7.R<4OVL'0R=/8+\3/VL'0R=/8
  976. XM(,D*VL'4Q<T@TR#0S\W/W=C (,G,R2#6Q2#/PMG>SMG((-#2S\/%Q-72(-?7
  977. XMS\3!+]?9U\_$P2#)S,D@UL4@T-+)(-#/S<_=R2#0TL_#Q<35T@I<='-[1G1P
  978. XM4F5A9'T@R2!<='-[1G1P5W)I=&5]+"#+S]3/TMG%(-<@S]3,R=[)R2#/U"#0
  979. XMQ=+7V<@@T-+%S\+2P=K5P-0@U,7+T]3/U]G%(,;!RLS9+" *T-+/R=K7S\3)
  980. XMU-@@SL7/PLC/Q,G-V<4@S]#%TL'#R<DN"EQF;V]T;F]T97OET]3%T]37Q<[.
  981. XMSRP@U,'+R<4@QM7.R\/)R2#+P<L@7'1S>W-E96M]+"!<='-[:6]C=&Q]+" N
  982. XM+BX@"B @(" @(" @("#$S-$@W-3)R"#&P<K,S]<@SL7$S]#5T]3)S=DN?0H*
  983. XM"EQT='1[7'1O:6YD97A[1G1P1&%T87TH1E10?BHL(&-H87)^*F-O;6UA;F0L
  984. XM(&-H87)^*G!A<F%M+"!C:&%R?BIM;V1E*7T*>R#SS]K$P<74(,O!SL',(,3,
  985. XMT2#0Q=+%Q,'>R2#$P<[.V<@@T-+%Q-?!TLG4Q<S8SL\@T,_3S,'7(-/%TM?%
  986. XMTM4@R\_-P<[$U2#+S]3/TL'1"M//T]3!U\S1Q=33T2#)VB#0P=+!S<74TL_7
  987. XM(%QT<WMC;VUM86YD?2#)(%QT<WMP87)A;7TN(/#!TL'-Q=32(%QT<WMM;V1E
  988. XM?2#5R\':V=?!Q=0@S<_6Q=0@PMG4V" *R<S)(&!@<B<G(,G,R2!@8'<G)WT*
  989. XM"EQT='1[7'1O:6YD97A[1G1P3W!E;E)E861]*$944'XJ+&-H87)^*F9I;&5N
  990. XM86UE*7T*>R#OU,O2V=?!Q=0@Q,S1(-[4Q<[)T2#&P<K,(-,@R<W%SL7-(%QT
  991. XM<WMF:6QE;F%M97T@SL$@T\72U\72Q2!]"@I<='1T>UQT;VEN9&5X>T9T<$]P
  992. XM96Y7<FET97TH1E10?BHL8VAA<GXJ9FEL96YA;64I?0I[(._4R]+9U\'%U"#$
  993. XMS-$@VL'0R=/)(,;!RLP@TR#)S<7.Q<T@7'1S>V9I;&5N86UE?2#.P2#3Q=+7
  994. XMQ=+%('T*"EQT='1[7'1O:6YD97A[1G1P3W!E;D%P<&5N9'TH1E10?BHL8VAA
  995. XM<GXJ9FEL96YA;64I?0I[(._4R]+9U\'%U"#$S-$@Q,_:P=#)T\D@QL'*S"#3
  996. XM(,G-Q<[%S2!<='-[9FEL96YA;65](,[!(-/%TM?%TL4@?0H*7'1T='M<=&]I
  997. XM;F1E>'M&='!/<&5N1&ER?2A&5%!^*BP@8VAA<GXJ9FEL97,I?0I["B @\\_:
  998. XMQ,'%U"#+P<[!S"#$S-$@WM3%SLG1(-7$P<S%SL[/Q\\@S,G3U,G.Q\$@Q,G2
  999. XMQ<O4S]+)R2P@T,'2P<W%U-(@9FEL97,@T,72Q<3!Q=33T0K+S\W!SL3%(%QT
  1000. XM<WML<WT@SL$@T\72U\72Q2#7(,O!WL73U-?%(#$MQ\\@T,'2P<W%U-+!"GT*
  1001. XM"EQT='1[:6YT(%QT;VEN9&5X>T9T<%)E861]*$944'XJ*7U[_LG4P<74(-/)
  1002. XMS=?/S"#)VB#0S]3/R\$@Q,'.SMG(+"#%T\S)(,+9S,$@U=/4P<[/U\S%SL$*
  1003. XM(-3%R]/4S]?!T2#-S\3!(-#%TL7$P=[)(%QF;V]T;F]T97OUT]3!SL_7S,7.
  1004. XMP2#0SR#5S<_,WL'.R< N?2P@T-+%S\+2P=K5Q=0@T,72Q<C/Q-D@SL$@SL_7
  1005. XMU< @T]32S\O5+B#PTLD@S\+.P=+5UL7.R<D*R\_.P\$@T,_4S\O!(-?/VM?2
  1006. XMP=W!Q=0@7'1O:6YD97A[14]&?7T@"@I<='1T>UQT;VEN9&5X>T9T<$=E=%-T
  1007. XM<FEN9WTH1E10?BHL(&-H87)^*G-T<BE]"GL@_M3%SLG%(,_$SL_*(-/4TL_+
  1008. XMR2#)VB#0S]3/R\$@Q,'.SMG((-#2R2#0S\W/W<D@QM7.R\/)R2!<='-[1G1P
  1009. XM4F5A9'TN?0H*7'1T='M<=&]I;F1E>'M&='!7<FET97TH1E10?BHL(&-H87)^
  1010. XM8RE]>_#)V\74(-/)S=?/S"#7(-#/U,_+(,3!SL[9R"P@Q=/,R2#"V<S!(-73
  1011. XMU,'.S]?,Q<[!"B#4Q<O3U,_7P=$@S<_$P2#0Q=+%Q,'>R2P@T-+%S\+2P=K5
  1012. XMQ=0@T,72Q<C/Q-D@SL$@SL_7U< @T]32S\O5+B#PTLD@S\+.P=+5UL7.R<D*
  1013. XMS]O)PLO)(-?7S\3!+]?9U\_$P2#7S]K7TL'=P<74(%QT;VEN9&5X>T5/1GU]
  1014. XM( H*7'1T='M<=&]I;F1E>'M&='!#;&]S97TH1E10?BHI?0I[^L'+TMG7P<74
  1015. XM(-+!SL7%(,_4R]+9U-G*(-#/U,_+(,3!SL[9R"Y]"@I<<V5C=&EO;GOKS\W!
  1016. XMSL39(,3,T2#3Q=+79=+!?0H*7'1T='M<=&]I;F1E>'M&='!#;VUM86YD?2A&
  1017. XM5%!^*BP@8VAA<GXJ8V]M;6%N9"P@8VAA<GXJ<&%R86TL(&EN='YO:S$L(&]K
  1018. XM,BP@;VLS+" N+BXL(&]K3BP@14]&*7T*>R#PS]/9S,'%U"#+S\W!SL35+"#3
  1019. XMS]/4P=?,Q<[.U< @R=H@T,'2P<W%U-+/UR!<='-[8V]M;6%N9'T@R2!<='-[
  1020. XM<&%R86U]+"#)(-/>R=39U\'%U" *S]37Q=0@T\72U\72P2P@Q=/,R2#+S\0@
  1021. XMS]37Q=3!(,[%(-//U]#!Q,'%U"#.Q2#3(,_$SLG-(-K.P=[%SLG%S2!<='-[
  1022. XM;VM]+"#4SPK:SL'+(,O/Q,$@S]37Q=3!(,W%SM'%U-/1(,[!("<M)RX@]R#3
  1023. XMS-7>P<4@Q=/,R2#5T]3!SL_7S,7.(&AA;F1L97(@S\+2P<+/U,O)( K/V\G"
  1024. XMS\L@U]G:V=?!Q=0@Q<?/+B *?0H*7'1T='M<=&]I;F1E>'M&='!4>7!E?2A&
  1025. XM5%!^*BQC:&%R?BIM;V1E*7T*>_73U,'.P=?,R=?!Q=0@S<_$U2#0Q=+%Q,'>
  1026. XMR2#&P<K,S]<L(&UO9&4@S<_6Q=0@PMG4V"!@8$$G)RP@8&!))R<L(&!@4R<G
  1027. XM+"XN+BY]"@I<='1T>UQT;VEN9&5X>T9T<$)I;F%R>7TH1E10?BHI?0I[]=/4
  1028. XMP<[!U\S)U\'%U"#$U\_)WL[5P"#-S\35(-#%TL7$P=[)(,;!RLS/UWT*"EQT
  1029. XM='1[7'1O:6YD97A[1G1P07-C:6E]*$944'XJ*7T*>_73U,'.P=?,R=?!Q=0@
  1030. XMU,7+T]3/U]7 (,W/Q-4@T,72Q<3!WLD@QL'*S,_7?0H*"EQT='1[7'1O:6YD
  1031. XM97A[1G1P36MD:7)]*$944'XJ+&-H87(@*F1I<FYA;64I?0I[\\_:Q,'%U"#$
  1032. XMR=+%R]3/TLG (,[!(-/%TM?%TL5]"@I<='1T>UQT;VEN9&5X>T9T<$-H9&ER
  1033. XM?2A&5%!^*BQC:&%R("ID:7)N86UE*7T*>^W%SM'%U"#!R]3)U\[5P"#$R=+%
  1034. XMR]3/TLG (,[!(-/%TM?%TL5]"@I<='1T>UQT;VEN9&5X>T9T<%)M?2A&5%!^
  1035. XM*BQC:&%R("IF:6QE;F%M92E]"GOUQ,',T<74(,;!RLP@SL$@T\72U\72Q7T*
  1036. XM"EQT='1[8VAA<GXJ7'1O:6YD97A[1G1P4'=D?2A&5%!^*BE]"GOWS]K7TL'=
  1037. XMP<74(,'+U,G7SM7 (,3)TL7+U,_2R< @SL$@T\72U\72Q7T*"EQT='1[7'1O
  1038. XM:6YD97A[1G1P36]V97TH1E10?BHL8VAA<B J;VQD9FEL96YA;64L(&-H87(@
  1039. XM*FYE=V9I;&5N86UE*7T*>_#%TL7)S<7.S]?9U\'%U"#.P2#3Q=+7Q=+%(,;!
  1040. XMRLP@7'1S>V]L9&9I;&5N86UE?2#7(,;!RLP@7'1S>VYE=V9I;&5N86UE?7T*
  1041. XM"EQT='1[7'1O:6YD97A[1G1P1V5T1FEL97TH1E10?BHL8VAA<B J9FEL96YA
  1042. XM;64I?0I[Y,'%U"#+S\W!SL35(-/%TM?%TM4@SL'>P<S!(-#%TL7$P=[)(,;!
  1043. XMRLS!(,_4(-/%TM?%TL$@RR#+S,G%SM35+"#/U,S)WLG%"L_4(%QT<WM&='!/
  1044. XM<&5N4F5A9'T@UR#4S\T@WM3/+"!<='-[1G1P1V5T1FEL97T@SL4@T\_:Q,'%
  1045. XMU"#+P<[!S"#$S-$@T,72Q<3!WLD@Q,'.SMG(?0H*7'1T='M<=&]I;F1E>'M&
  1046. XM='!0=71&:6QE?2A&5%!^*BQC:&%R("IF:6QE;F%M92E]"GODP<74(,O/S<'.
  1047. XMQ-4@T\72U\72U2#.P=[!S,$@T,72Q<3!WLD@QL',P2#/U"#+S,G%SM3!(,L@
  1048. XMT\72U\72U2P@S]3,R=[)Q0K/U"!<='-[1G1P3W!E;E=R:71E?2#7(-3/S2#>
  1049. XMU,\@7'1S>T9T<%!U=$9I;&5](,[%(-//VL3!Q=0@R\'.P<P@Q,S1(-#%TL7$
  1050. XMP=[)(,3!SL[9R'T*"EQT='1[7'1O:6YD97A[1G1P4&]R='TH1E10?BHL(&EN
  1051. XM='YA+"!I;G1^8BP@:6YT?F,L(&EN='YD+"!I;G1^92P@:6YT?F8I?0I[Z\_-
  1052. XMP<[$P2#3Q=+7Q=+5(-//VL3!U-@@R\'.P<P@Q,S1(-#%TL7$P=[)(,3!SL[9
  1053. XMR"X@\-+)WL7-(%QT<WMA+F(N8RYD?2#<U,\@25 @P<32Q=,@"LO,R<7.U,$@
  1054. XMP2!<='-[92HR-38K9GT@SL_-Q=(@T,_2U,$N?0H*7'-E8W1I;VY[\,_$T-+/
  1055. XMQ]+!S<W9(-#%TL7$P=[)(-//S\+=Q<[)RB#7+\G:(-/%TM?%TL%]"@I<='1T
  1056. XM>UQT;VEN9&5X>T9T<%-E;F1-97-S86=E?2A&5%!^*BP@8VAA<GXJ;65S<V%G
  1057. XM92E]"GOPS]/9S,'%U"#3S\_"W<7.R<4@T\72U\72U7T*"EQT='1[:6YT(%QT
  1058. XM;VEN9&5X>T9T<$=E=$UE<W-A9V5]*$944'XJ*7T*>_#2R<[)S<'%U"#3S\_"
  1059. XMW<7.R<4@S]0@T\72U\72P2#)(-?/VM?2P=W!Q=0@Q<?/(,O/Q'T*"EQT='1[
  1060. XM7'1O:6YD97A[1G1P365S<V%G97TH:6YT($YU;6)E<BE]"GOWS]K7TL'=P<74
  1061. XM(-#/(,O/Q-4@T\_/PMW%SLG1(,7'SR#3S\3%TM;)S<_%?0H*7'-E8W1I;VY[
  1062. XMYM7.R\/)R2#0S\S.S\?/(-/%P<[3P2#2P<+/U-E]"@I<='1T>T9)3$4@*EQT
  1063. XM;VEN9&5X>T9T<$9U;&Q/<&5N?2AC:&%R("IF:6QE;F%M92QC:&%R("IM;V1E
  1064. XM*7T*>R#RP=K"R=+!Q=0@T]32S\O5(&9I;&5N86UE(,O/U,_2P=$@Q,_,UL[!
  1065. XM(,+9U-@@R<S)(-;%(-3)T,$@"EQT<WMH;W-T+W5S97(O<&%S<W=O<F0Z9FEL
  1066. XM96YA;65](,G,R2#6Q2#4R=#!(%QT<WMF:6QE;F%M97TL(,D@UR#:P=?)T\G-
  1067. XMS]/4R2#/U"#<U,_'SR *S]3+TMG7P<74T]$@(,;!RLP@R<S)(-;%(,[!(-/%
  1068. XMTM?%TL4@7'1S>VAO<W1](,G,R2#6Q2#,S\O!S-C.V<H@QL'*S"X@\,'2P<W%
  1069. XMU-(@;6]D92#$S\S6Q<X*T\_$Q=+6P=38(,_$R<X@R<S)(,37P2#3R<W7S\S!
  1070. XM+B#PQ=+7V<H@VL'$P<74(-3)T"#/U,O2V=3)T2#&P<K,P2!@8'(G)RQ@8'<G
  1071. XM)R#)S,D*8&!A)R<N(/?4S]+/RB#3R<W7S\P@S<_6Q=0@T\_$Q=+6P=38(-/)
  1072. XMS=?/S"!@8&(G)R#>U,\@PM7$Q=0@VL'$P=?!U-@@Q-?/R=[.U< @S<_$U2#0
  1073. XMQ=+%Q,'>R7T*7'1T='M<=&]I;F1E>'M&='!&=6QL0VQO<V5]*$9)3$4@*F8I
  1074. XM?0I[^L'+TMG4R<4@QL'*S,%]"@H*7&YE=W!A9V4*7&EN<'5T(')U<RYI;F0*
  1075. XK7&YE=W!A9V4*7'1A8FQE;V9C;VYT96YT<PI<96YD>V1O8W5M96YT?0H*"F0*
  1076. Xend
  1077. END_OF_FILE
  1078.   if test 22541 -ne `wc -c <'libftp/etc/rus.tex.UU'`; then
  1079.     echo shar: \"'libftp/etc/rus.tex.UU'\" unpacked with wrong size!
  1080.   else
  1081.     echo shar: Uudecoding \"'libftp/etc/rus.tex'\" \(16333 characters\)
  1082.     cat libftp/etc/rus.tex.UU | uudecode
  1083.     if test 16333 -ne `wc -c <'libftp/etc/rus.tex'`; then
  1084.       echo shar: \"'libftp/etc/rus.tex'\" uudecoded with wrong size!
  1085.     else
  1086.       rm libftp/etc/rus.tex.UU
  1087.     fi
  1088.   fi
  1089.   # end of 'libftp/etc/rus.tex.UU'
  1090. fi
  1091. echo shar: End of archive 3 \(of 5\).
  1092. cp /dev/null ark3isdone
  1093. MISSING=""
  1094. for I in 1 2 3 4 5 ; do
  1095.     if test ! -f ark${I}isdone ; then
  1096.     MISSING="${MISSING} ${I}"
  1097.     fi
  1098. done
  1099. if test "${MISSING}" = "" ; then
  1100.     echo You have unpacked all 5 archives.
  1101.     rm -f ark[1-9]isdone
  1102. else
  1103.     echo You still must unpack the following archives:
  1104.     echo "        " ${MISSING}
  1105. fi
  1106. exit 0
  1107. exit 0 # Just in case...
  1108.