home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / alt / lang / basic / 857 < prev    next >
Encoding:
Text File  |  1992-11-18  |  83.6 KB  |  2,074 lines

  1. Newsgroups: alt.lang.basic
  2. Path: sparky!uunet!mcsun!sun4nl!star.cs.vu.nl!jprins
  3. From: jprins@cs.vu.nl (Someone)
  4. Subject: Multi Window Editor / DOS Shell
  5. Message-ID: <Bxx08C.BBG@cs.vu.nl>
  6. Summary: Multi Window Editor / DOS Shell
  7. Keywords: editor, shell
  8. Sender: news@cs.vu.nl
  9. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  10. Date: Wed, 18 Nov 1992 14:00:12 GMT
  11. Lines: 2061
  12.  
  13.  
  14. : This is a shar archive.  Extract with sh, not csh.
  15. : This archive ends with exit, so do not worry about trailing junk.
  16. : --------------------------- cut here --------------------------
  17. PATH=/bin:/usr/bin:/usr/ucb
  18. echo Extracting 'readme'
  19. sed 's/^X//' > 'readme' << '+ END-OF-FILE ''readme'
  20. XGreetings,
  21. X
  22. XThis is my Multi Window Editor/ DOS Shell (so far). 
  23. XI am having serious problems with allocating string space. At the moment I
  24. Xcannot process files any larger than about 25Kb, which is really demotivating
  25. Xfor me. I know I have to implement page swapping, but that seems so useless
  26. Xwhen working with pages of about 1Kb (slow).
  27. XThe basics are working fine, resizing, moving etc. windows, dos window..
  28. XTo start this at runtime enter: qb /l q4t /run pedit.asc
  29. XCompiling into an executable could be done when including the q4t library.
  30. X-> q4tool.lib is obtained from simtel20!!
  31. X
  32. XCommand Summary:
  33. X
  34. XAlt-W      Window Menu
  35. XAlt-R      Resize window 
  36. XAlt-M      Move window
  37. XAlt-C      Close window
  38. XAlt-0      Open/Activate window 0 = DOS Shell window
  39. XAlt-<1-4>  Open/Activate window 1
  40. XAlt-O      Options Menu
  41. XAlt-F      File Menu
  42. XAlt-L      Load file
  43. XAlt-S      Save file
  44. X
  45. XHm.. maybe I left a few out.. but.. ok.
  46. X
  47. XWHY am I posting? Maybe someone clever could point out how to go further
  48. Xin a simple manner (or not), maybe it's just a nice idea but not very   
  49. Xpractical, I don't know, and maybe someone could pick up a few hints (ehr..)
  50. X
  51. XRegards, Jeroen. 
  52. + END-OF-FILE readme
  53. chmod 'u=rw,g=,o=' 'readme'
  54. set `wc -c 'readme'`
  55. count=$1
  56. case $count in
  57. 1161)    :;;
  58. *)    echo 'Bad character count in ''readme' >&2
  59.         echo 'Count should be 1161' >&2
  60. esac
  61. echo Extracting 'pedit.cfg'
  62. sed 's/^X//' > 'pedit.cfg' << '+ END-OF-FILE ''pedit.cfg'
  63. X>
  64. X 1 
  65. X 3 
  66. X 1 
  67. X 4 
  68. X 79 
  69. X 14 
  70. X 4 
  71. X 6 
  72. X 110 
  73. X 7 
  74. X 2 
  75. XDOS Shell   
  76. XPEDIT.SWP                                                                       
  77. X 40 
  78. X 1 
  79. X 41 
  80. X 24 
  81. XNONAME01.TXT
  82. XNONAME01.TXT
  83. X 4 
  84. X 4 
  85. X 51 
  86. X 20 
  87. XNONAME02.TXT
  88. XNONAME02.TXT                                                                    
  89. X 14 
  90. X 8 
  91. X 44 
  92. X 17 
  93. XNONAME03.TXT
  94. XNONAME03.TXT                                                                    
  95. X 12 
  96. X 6 
  97. X 27 
  98. X 17 
  99. XNONAME04.TXT
  100. XNONAME04.TXT                                                                    
  101. X 10 
  102. X 11 
  103. X 37 
  104. X 13 
  105. X
  106. X
  107. + END-OF-FILE pedit.cfg
  108. chmod 'u=rw,g=r,o=r' 'pedit.cfg'
  109. set `wc -c 'pedit.cfg'`
  110. count=$1
  111. case $count in
  112. 549)    :;;
  113. *)    echo 'Bad character count in ''pedit.cfg' >&2
  114.         echo 'Count should be 549' >&2
  115. esac
  116. echo Extracting 'pedit.asc'
  117. sed 's/^X//' > 'pedit.asc' << '+ END-OF-FILE ''pedit.asc'
  118. XDECLARE SUB wordleft (nr!)
  119. XDECLARE SUB wordright (nr!)
  120. XDECLARE FUNCTION letter! (c$)
  121. XDECLARE SUB beginofline (nr!)
  122. XDECLARE SUB endofline (nr!)
  123. XDECLARE SUB rewriteline (nr!, lin!, ypos%)
  124. XDECLARE SUB loadinteractive (nr!)
  125. XDECLARE SUB saveinteractive (nr!)
  126. XDECLARE SUB savefile (nr!, filename$, linestart!, lineend!)
  127. XDECLARE FUNCTION extractfilenames! (nr!, c$)
  128. XDECLARE SUB menufile (nr!)
  129. XDECLARE FUNCTION fieldinput$ (title$, tx%, lx%)
  130. XDECLARE SUB dosprompt (writeprompt!)
  131. XDECLARE SUB saveconfig (f$)
  132. XDECLARE SUB closewindow (nr!)
  133. XDECLARE SUB showstatus ()
  134. XDECLARE SUB checkfatal ()
  135. XDECLARE SUB pgdn (nr!)
  136. XDECLARE SUB pgup (nr!)
  137. XDECLARE SUB cursorup (nr!)
  138. XDECLARE SUB cursorright (nr!, skip!)
  139. XDECLARE SUB cursordown (nr!)
  140. XDECLARE SUB resizewindow (nr!)
  141. XDECLARE SUB refresh ()
  142. XDECLARE SUB movewindow (nr!)
  143. XDECLARE SUB outlinewindow (nr!)
  144. XDECLARE SUB moveright (nr!)
  145. XDECLARE SUB moveup (nr!)
  146. XDECLARE SUB moveleft (nr!)
  147. XDECLARE SUB movedown (nr!)
  148. XDECLARE SUB readconfig (f$)
  149. XDECLARE SUB cursorleft (nr!)
  150. XDECLARE SUB readconfigfile ()
  151. XDECLARE SUB loadfile (nr!, filename$, lineno!, scroll!)
  152. XDECLARE SUB scrollup (nr!, steps!)
  153. XDECLARE SUB backspace (nr!, wipe!, skip!)
  154. XDECLARE SUB scrollleft (nr!, steps!)
  155. XDECLARE SUB openwindow (windwnr!)
  156. XDECLARE SUB scrolldown (nr!, steps!)
  157. XDECLARE SUB scrollright (nr!, steps!)
  158. XDECLARE SUB rewritewindow (nr!)
  159. XDECLARE SUB nextline (nr!, insert!)
  160. XDECLARE SUB dosshell ()
  161. XDECLARE SUB delchar (nr!)
  162. XDECLARE SUB curs (nr!, visible!)
  163. XDECLARE SUB writechar (nr!, char$)
  164. XDECLARE SUB menuwindow (nr!)
  165. XDECLARE SUB escape ()
  166. XDECLARE SUB menuoptions ()
  167. XDECLARE SUB openwindow (windwnr!)
  168. XDECLARE SUB activatewindow (windwnr!)
  169. XREM $INCLUDE: 'q4t.bi'
  170. X
  171. X' type declarations
  172. X
  173. XCONST maxwin = 4
  174. XTYPE windwtype
  175. X        titel AS STRING * 12            'title on top of window
  176. X        filename AS STRING * 80         'full pathname of the file
  177. X        tx AS INTEGER                   'top x coordinate
  178. X        ty AS INTEGER                   'top y coordinate
  179. X        lx AS INTEGER                   'width of window
  180. X        ly AS INTEGER                   'height of window
  181. X        x AS INTEGER                    'real x cursor position
  182. X        y AS INTEGER                    'real y cursor position
  183. X        leftmargin AS INTEGER           'real x startpoint in editbuffer
  184. X        topmargin AS INTEGER            'real y startpoint in editbuffer
  185. X        textx AS INTEGER                'relative x cursor position
  186. X        texty AS INTEGER                'relative y cursor position
  187. X        lasty AS INTEGER                'actual number of lines in buffer
  188. X        display AS INTEGER              '1 if window is currently displayed
  189. X        mem AS INTEGER                  'total memory usage of contents
  190. XEND TYPE
  191. XDIM windw(0 TO maxwin) AS windwtype
  192. XDIM scrnbuf(1 TO 1) AS STRING * 4000
  193. XDIM regel$(0 TO maxwin, 500)
  194. XCOMMON SHARED windw() AS windwtype, scrnbuf() AS STRING * 4000, regel$(), back%, sysback%, sysfore%, sysborder%, sysframe%, editback%, editfore%, editborder%, editframe%, shadow%, active, statusline, pagesize, prompt$, cfg$
  195. X
  196. X' setup system
  197. X
  198. XON ERROR GOTO setuperror
  199. Xp = INSTR(COMMAND$, "-")
  200. XIF p > 0 THEN
  201. X        q = INSTR(p + 1, COMMAND$, " ")
  202. X        IF q = 0 THEN q = LEN(COMMAND$)
  203. X        cfg$ = MID$(COMMAND$, p + 1, q - p)
  204. X        c$ = LEFT$(COMMAND$, p - 1) + RIGHT$(COMMAND$, LEN(COMMAND$) - q)
  205. XELSE
  206. X        cfg$ = "pedit.cfg"
  207. X        c$ = COMMAND$
  208. XEND IF
  209. XCALL readconfig(cfg$)
  210. Xpagesize = (FRE(0) - 10000) / maxwin
  211. X
  212. X' read commandline arguments
  213. X
  214. Xnr = extractfilenames(1, c$)
  215. X
  216. X' display windows
  217. X
  218. XLOCATE 1, 1, 0
  219. XCOLOR 0, back%, back%
  220. XCLS
  221. XIF nr > 0 THEN
  222. X        FOR t = 1 TO nr
  223. X                CALL openwindow(t)
  224. X                ON ERROR GOTO loaderror
  225. X                CALL loadfile(t, windw(t).filename, 1, 0)
  226. Xnextfile:
  227. X        NEXT t
  228. X        active = nr
  229. XELSE
  230. X        CALL openwindow(1)
  231. X        active = 1
  232. XEND IF
  233. X
  234. X' welcome screen if no arguments passed
  235. X
  236. XIF COMMAND$ = "" THEN
  237. X        CALL putscrn(scrnbuf(1))
  238. X        CALL dowindow(16, 20, 9, 60, sysborder%, sysback%, sysframe%, shadow%, "Press any key to begin", 1)
  239. X        CALL prtscrn("Welcome to PEDIT V2.0 !", 19, 39, sysfore%)
  240. X        CALL prtscrn("(c) 1992 by Prinssoft Corporation. All rights reserved.", 22, 23, sysfore% - 8)
  241. X        c$ = INPUT$(1)
  242. X        CALL getscrn(scrnbuf(1))
  243. XEND IF
  244. X
  245. XCALL dosprompt(0)
  246. XCALL curs(active, 1)
  247. X
  248. Xmain:
  249. X
  250. XON ERROR GOTO resumer
  251. XCALL checkfatal
  252. XDO
  253. X        c$ = INKEY$
  254. X        IF active >= 0 THEN
  255. X                IF LEFT$(c$, 1) <> CHR$(0) THEN
  256. X                        SELECT CASE LEFT$(c$, 1)
  257. X                        CASE CHR$(27)
  258. X                                CALL escape
  259. X                        CASE CHR$(32) TO CHR$(255)
  260. X                                CALL writechar(active, LEFT$(c$, 1))
  261. X                        CASE CHR$(13)
  262. X                                CALL curs(active, 0)
  263. X                                CALL nextline(active, 1)
  264. X                                IF active = 0 THEN CALL dosshell
  265. X                        CASE CHR$(8)
  266. X                                CALL backspace(active, 1, 1)
  267. X                        CASE ELSE
  268. X                        END SELECT
  269. X                ELSE
  270. X                        SELECT CASE RIGHT$(c$, 1)
  271. X                        CASE CHR$(72)   'cursor-up
  272. X                                CALL cursorup(active)
  273. X                        CASE CHR$(75)   'cursor-left
  274. X                                CALL backspace(active, 0, 1)
  275. X                        CASE CHR$(77)   'cursor-right
  276. X                                CALL cursorright(active, 1)
  277. X                        CASE CHR$(80)   'cursor-down
  278. X                                CALL cursordown(active)
  279. X                        CASE CHR$(73)   'pgup
  280. X                                CALL pgup(active)
  281. X                        CASE CHR$(81)   'pgdn            
  282. X                                CALL pgdn(active)
  283. X                        CASE CHR$(71)   'home
  284. X                                CALL beginofline(active)
  285. X                        CASE CHR$(79)   'end
  286. X                                CALL endofline(active)
  287. X                        CASE CHR$(115)  'ctrl-left
  288. X                                CALL wordleft(active)
  289. X                        CASE CHR$(116)  'ctrl-right
  290. X                                CALL wordright(active)
  291. X                        CASE CHR$(46)   'alt-c
  292. X                                CALL closewindow(active)
  293. X                                IF active = -1 THEN GOTO exitif
  294. X                        CASE CHR$(24)   'alt-o
  295. X                                CALL menuoptions
  296. X                        CASE CHR$(17)   'alt-w
  297. X                                CALL menuwindow(active)
  298. X                                IF active = -1 THEN GOTO exitif
  299. X                        CASE CHR$(50)   'alt-m
  300. X                                CALL movewindow(active)
  301. X                        CASE CHR$(19)   'alt-r
  302. X                                CALL resizewindow(active)
  303. X                        CASE CHR$(33)   'alt-f
  304. X                                CALL menufile(active)
  305. X                        CASE CHR$(38)   'alt-l
  306. X                                CALL loadinteractive(active)
  307. X                        CASE CHR$(31)   'alt-s
  308. X                                CALL saveinteractive(active)
  309. X                        CASE CHR$(120) TO CHR$(120 + maxwin - 1)
  310. X                                CALL curs(active, 0)
  311. X                                active = ASC(RIGHT$(c$, 1)) - 119
  312. X                                CALL activatewindow(active)
  313. X                        CASE CHR$(129)
  314. X                                CALL curs(active, 0)
  315. X                                active = 0
  316. X                                CALL activatewindow(active)
  317. X                        CASE ELSE
  318. X                                REM IF RIGHT$(c$, 1) <> "" THEN PRINT ASC(RIGHT$(c$, 1))
  319. X                        END SELECT
  320. X                END IF
  321. X                IF statusline = 1 THEN CALL showstatus
  322. X        ELSE
  323. X                IF c$ = CHR$(27) THEN CALL escape
  324. X                SELECT CASE RIGHT$(c$, 1)
  325. X                CASE CHR$(120) TO CHR$(120 + maxwin - 1)
  326. X                        active = ASC(RIGHT$(c$, 1)) - 119
  327. X                        CALL activatewindow(active)
  328. X                CASE CHR$(129)
  329. X                        active = 0
  330. X                        CALL activatewindow(active)
  331. X                CASE ELSE
  332. X                END SELECT
  333. X        END IF
  334. Xexitif:
  335. XLOOP
  336. X
  337. Xresumer:
  338. XRESET
  339. XCALL checkfatal
  340. XCALL putscrn(scrnbuf(1))
  341. XIF sysback% = 0 AND sysfore% = 0 THEN
  342. X        sysback% = 4
  343. X        sysfore% = 75
  344. XEND IF
  345. XSELECT CASE ERR
  346. XCASE 53
  347. X        msg$ = "Could not open file!"
  348. XCASE 5
  349. X        msg$ = "System would not accept function call!"
  350. XCASE 9
  351. X        msg$ = "System buffer sizes are too small!"
  352. XCASE 64
  353. X        msg$ = "System command is not accepted!"
  354. XCASE 62
  355. X        msg$ = "Syntax error in config file!"
  356. XCASE ELSE
  357. X        msg$ = "Internal system failure (" + STR$(ERR) + " )"
  358. XEND SELECT
  359. XCALL dowindow(20, 30, 5, 50, sysborder%, sysback%, sysframe%, shadow%, "Internal failure", 0)
  360. Xxpos% = 56 - LEN(msg$) / 2
  361. XCALL prtscrn(msg$, 22, xpos%, sysfore%)
  362. Xc$ = INPUT$(1)
  363. XCALL getscrn(scrnbuf(1))
  364. XRESUME main
  365. X
  366. Xsetuperror:
  367. XPRINT "Sorry.. I could not open configurationfile " + cfg$
  368. XPRINT "You can give an alternative path with  pedit -<filespec>"; ""
  369. XEND
  370. X
  371. Xloaderror:
  372. XRESUME nextfile
  373. X
  374. XSUB activatewindow (nr)
  375. X               
  376. XCALL openwindow(nr)
  377. XCALL rewritewindow(nr)
  378. XCALL curs(nr, 1)
  379. X
  380. XEND SUB
  381. X
  382. XSUB backspace (nr, wipe, skip)
  383. X
  384. XIF wipe = 1 THEN
  385. X        temp$ = regel$(nr, windw(nr).texty)
  386. X        IF windw(nr).textx > LEN(temp$) AND LEN(temp$) > 0 THEN
  387. X                regel$(nr, windw(nr).texty) = LEFT$(temp$, LEN(temp$) - 1)
  388. X        ELSE
  389. X                IF windw(nr).textx > 1 THEN
  390. X                        regel$(nr, windw(nr).texty) = LEFT$(temp$, windw(nr).textx - 2) + RIGHT$(temp$, LEN(temp$) - windw(nr).textx + 1)
  391. X                ELSE
  392. X                        IF windw(nr).texty > 1 THEN
  393. X                                windw(nr).textx = LEN(regel$(nr, windw(nr).texty - 1)) + 1
  394. X                                regel$(nr, windw(nr).texty - 1) = regel$(nr, windw(nr).texty - 1) + regel$(nr, windw(nr).texty)
  395. X                                IF windw(nr).texty <= windw(nr).lasty THEN
  396. X                                        FOR i = windw(nr).texty TO windw(nr).lasty
  397. X                                                regel$(nr, i) = regel$(nr, i + 1)
  398. X                                        NEXT i
  399. X                                        windw(nr).lasty = windw(nr).lasty - 1
  400. X                                END IF
  401. X                                CALL rewritewindow(nr)
  402. X                        END IF
  403. X                END IF
  404. X        END IF
  405. XEND IF
  406. XIF (windw(nr).x > windw(nr).tx + 1 + skip) OR (windw(nr).x = windw(nr).tx + 1 + skip AND windw(nr).leftmargin = skip) THEN
  407. X        CALL curs(nr, 0)
  408. X        windw(nr).x = windw(nr).x - skip
  409. X        windw(nr).textx = windw(nr).textx - skip
  410. X        lin = windw(nr).texty
  411. X        CALL rewriteline(nr, lin, windw(nr).y)
  412. XELSE                         ' we are at the left border of the window
  413. X        IF windw(nr).leftmargin > skip THEN  ' we have more text waiting
  414. X                CALL scrollleft(nr, skip)
  415. X                windw(nr).textx = windw(nr).textx - skip
  416. X        ELSE
  417. X                IF windw(nr).texty > 1 THEN          ' we can go a line back
  418. X                        CALL curs(nr, 0)
  419. X                        IF windw(nr).y > windw(nr).ty + 1 THEN 'we are not at
  420. X                                windw(nr).y = windw(nr).y - 1  'top of window
  421. X                        ELSE
  422. X                                CALL scrollup(nr, 1)
  423. X                        END IF
  424. X                        windw(nr).texty = windw(nr).texty - 1
  425. X                        length = LEN(regel$(nr, windw(nr).texty))
  426. X                        IF wipe = 0 THEN windw(nr).textx = length + 1
  427. X                        IF length < windw(nr).lx - 2 OR windw(nr).textx < windw(nr).lx - 2 THEN
  428. X                                windw(nr).x = windw(nr).tx + windw(nr).textx
  429. X                        ELSE                ' we have to scroll right as well
  430. X                                windw(nr).x = windw(nr).tx + windw(nr).lx - 2
  431. X                                CALL scrollright(nr, windw(nr).textx - (windw(nr).lx - 2))
  432. X                        END IF
  433. X                END IF
  434. X        END IF
  435. XEND IF
  436. XCALL curs(nr, 1)
  437. X
  438. XEND SUB
  439. X
  440. XSUB beginofline (nr)
  441. X
  442. XCALL curs(nr, 0)
  443. Xwindw(nr).textx = 1
  444. Xwindw(nr).x = windw(nr).tx + 1
  445. Xwindw(nr).leftmargin = 1
  446. XCALL rewritewindow(nr)
  447. XCALL curs(nr, 1)
  448. X
  449. XEND SUB
  450. X
  451. XSUB checkfatal
  452. X
  453. XIF FRE(0) < 4000 THEN
  454. X        CALL dowindow(18, 16, 7, 64, sysborder%, sysback%, sysframe%, shadow%, "Fatal Error", 0)
  455. X        CALL prtscrn("Out of memory", 20, 42, sysfore% + 128)
  456. X        CALL prtscrn("I will crash upon resume!", 22, 36, sysfore%)
  457. X        CALL prtscrn("Press a key to flush buffers and quit", 23, 30, sysfore%)
  458. X        c$ = INPUT$(1)
  459. X        FOR i = 1 TO maxwin
  460. X                lineend = windw(i).lasty
  461. X                CALL savefile(i, windw(i).filename, 1, lineend)
  462. X        NEXT i
  463. X        END
  464. XEND IF
  465. XIF FRE(-2) < 0 THEN
  466. X        CALL putscrn(scrnbuf(1))
  467. X        CALL dowindow(18, 30, 7, 50, sysborder%, sysback%, sysframe%, shadow%, "Fatal Error", 0)
  468. X        CALL prtscrn("Out of stack space", 20, 45, sysfore% + 128)
  469. X        CALL prtscrn("I may crash upon further difficulties!", 22, 36, sysfore%)
  470. X        CALL prtscrn("I recommend you to save your files and restart", 23, 32, sysfore%)
  471. X        c$ = INPUT$(1)
  472. X        CALL getscrn(scrnbuf(1))
  473. XEND IF
  474. X
  475. XEND SUB
  476. X
  477. XSUB closewindow (nr)
  478. X
  479. Xwindw(nr).display = 0
  480. XIF nr = active THEN
  481. X        FOR i = active TO 0 STEP -1
  482. X                IF windw(i).display = 1 THEN EXIT FOR
  483. X        NEXT i
  484. X        IF i = -1 THEN
  485. X                FOR i = active + 1 TO maxwin
  486. X                        IF windw(i).display = 1 THEN EXIT FOR
  487. X                NEXT i
  488. X                IF i = maxwin + 1 THEN i = -1
  489. X        END IF
  490. X        active = i
  491. XEND IF
  492. XCALL refresh
  493. X
  494. XEND SUB
  495. X
  496. XSUB curs (nr, visible)
  497. X
  498. XLOCATE windw(nr).y, windw(nr).x, visible, 11, 12
  499. X
  500. XEND SUB
  501. X
  502. XSUB cursordown (nr)
  503. X
  504. XIF windw(nr).texty < windw(nr).lasty THEN
  505. X        CALL curs(nr, 0)
  506. X        windw(nr).texty = windw(nr).texty + 1
  507. X        IF windw(nr).textx > LEN(regel$(nr, windw(nr).texty)) + 1 THEN
  508. X                windw(nr).textx = LEN(regel$(nr, windw(nr).texty)) + 1
  509. X                IF windw(nr).leftmargin > 1 THEN
  510. X                        temp = LEN(regel$(nr, windw(nr).texty - 1)) - LEN(regel$(nr, windw(nr).texty))
  511. X                        IF temp > windw(nr).leftmargin THEN CALL scrollleft(nr, temp)
  512. X                END IF
  513. X                windw(nr).x = windw(nr).tx + windw(nr).textx - windw(nr).leftmargin + 1
  514. X        END IF
  515. X        IF windw(nr).y < windw(nr).ty + windw(nr).ly - 2 THEN
  516. X                windw(nr).y = windw(nr).y + 1
  517. X        ELSE
  518. X                CALL scrolldown(nr, 1)
  519. X        END IF
  520. X        CALL curs(nr, 1)
  521. XEND IF
  522. X
  523. XEND SUB
  524. X
  525. XSUB cursorright (nr, skip)
  526. X
  527. XCALL curs(nr, 0)
  528. Xwindw(nr).textx = windw(nr).textx + skip
  529. XIF windw(nr).textx > LEN(regel$(nr, windw(nr).texty)) + 1 THEN
  530. X        IF windw(nr).texty < windw(nr).lasty THEN
  531. X                CALL nextline(nr, 0)
  532. X        ELSE
  533. X                windw(nr).textx = windw(nr).textx - skip
  534. X        END IF
  535. XELSE
  536. X        IF windw(nr).x > windw(nr).tx + windw(nr).lx - 2 - skip THEN
  537. X                CALL scrollright(nr, skip)
  538. X        ELSE
  539. X                windw(nr).x = windw(nr).x + skip
  540. X        END IF
  541. XEND IF
  542. XCALL curs(nr, 1)
  543. X
  544. XEND SUB
  545. X
  546. XSUB cursorup (nr)
  547. X
  548. XIF windw(nr).texty > 1 THEN
  549. X        CALL curs(nr, 0)
  550. X        windw(nr).texty = windw(nr).texty - 1
  551. X        IF windw(nr).textx > LEN(regel$(nr, windw(nr).texty)) + 1 THEN
  552. X                windw(nr).textx = LEN(regel$(nr, windw(nr).texty)) + 1
  553. X                IF windw(nr).leftmargin > 1 THEN
  554. X                        temp = LEN(regel$(nr, windw(nr).texty + 1)) - LEN(regel$(nr, windw(nr).texty))
  555. X                        IF temp > windw(nr).leftmargin THEN CALL scrollleft(nr, temp)
  556. X                END IF
  557. X                windw(nr).x = windw(nr).tx + windw(nr).textx - windw(nr).leftmargin + 1
  558. X        END IF
  559. X        IF windw(nr).y > windw(nr).ty + 1 THEN
  560. X                windw(nr).y = windw(nr).y - 1
  561. X        ELSE
  562. X                CALL scrollup(nr, 1)
  563. X        END IF
  564. X        CALL curs(nr, 1)
  565. XEND IF
  566. X
  567. XEND SUB
  568. X
  569. XSUB dosprompt (writeprompt)
  570. X
  571. XIF writeprompt = 1 THEN
  572. X        FOR i = 1 TO LEN(prompt$)
  573. X                CALL writechar(0, MID$(prompt$, i, 1))
  574. X        NEXT i
  575. XELSE
  576. X        regel$(0, windw(0).texty) = prompt$
  577. X        windw(0).textx = windw(0).textx + LEN(prompt$)
  578. X        windw(0).x = windw(0).x + LEN(prompt$)
  579. XEND IF
  580. X
  581. XEND SUB
  582. X
  583. XSUB dosshell
  584. X
  585. XON ERROR GOTO resumer
  586. XIF LEFT$(regel$(0, windw(0).texty - 1), LEN(prompt$)) = prompt$ THEN
  587. X        cmd$ = RIGHT$(regel$(0, windw(0).texty - 1), LEN(regel$(0, windw(0).texty - 1)) - LEN(prompt$))
  588. X        IF LCASE$(LEFT$(cmd$, 2)) = "cd" AND LEN(cmd$) > 3 THEN
  589. X                CHDIR RIGHT$(cmd$, LEN(cmd$) - 3)
  590. X        ELSE
  591. X                IF LEN(cmd$) = 2 AND MID$(cmd$, 2, 1) = ":" THEN
  592. X                        SHELL cmd$
  593. X                ELSE
  594. X                        SHELL cmd$ + " > " + windw(0).filename
  595. X                END IF
  596. X                lineno = windw(nr).texty
  597. X                CALL loadfile(0, windw(0).filename, lineno, 1)
  598. X        END IF
  599. X        CALL nextline(0, 1)
  600. X        CALL dosprompt(1)
  601. X        CALL curs(0, 1)
  602. XEND IF
  603. X
  604. XEND SUB
  605. X
  606. XSUB endofline (nr)
  607. X
  608. XCALL curs(nr, 0)
  609. Xwindw(nr).textx = LEN(regel$(nr, windw(nr).texty)) + 1
  610. XIF windw(nr).textx < windw(nr).lx - 2 THEN
  611. X        windw(nr).x = windw(nr).tx + windw(nr).textx
  612. XELSE
  613. X        windw(nr).x = windw(nr).tx + windw(nr).lx - 2
  614. X        CALL scrollright(nr, windw(nr).textx - (windw(nr).lx - 2))
  615. XEND IF
  616. XCALL curs(nr, 1)
  617. X
  618. XEND SUB
  619. X
  620. XSUB escape
  621. X
  622. XCALL putscrn(scrnbuf(1))
  623. XCALL dowindow(20, 50, 5, 30, sysborder%, sysback%, sysframe%, shadow%, "Exit", 0)
  624. XCALL prtscrn("Discard all changes (y/n)?", 22, 52, sysfore%)
  625. XIF LCASE$(INPUT$(1)) = "y" THEN
  626. X        COLOR 7, 0, 0
  627. X        CLS
  628. X        END
  629. XEND IF
  630. XCALL getscrn(scrnbuf(1))
  631. X
  632. XEND SUB
  633. X
  634. XFUNCTION extractfilenames (nr, c$)
  635. X
  636. XDO WHILE (c$ <> "")
  637. X        IF INSTR(c$, " ") > 0 THEN
  638. X                temp$ = LEFT$(c$, INSTR(c$, " ") - 1)
  639. X        ELSE
  640. X                temp$ = c$
  641. X        END IF
  642. X        windw(nr).filename = temp$
  643. X        FOR t = LEN(temp$) TO 1 STEP -1
  644. X                IF MID$(temp$, t, 1) = "\" OR MID$(temp$, t, 1) = "/" THEN EXIT FOR
  645. X        NEXT t
  646. X        temp2$ = RIGHT$(temp$, LEN(temp$) - t)
  647. X        l = LEN(temp2$)
  648. X        IF l > 12 THEN temp2$ = LEFT$(temp2$, 12)
  649. X        windw(nr).titel = SPACE$(INT((12 - l) / 2)) + temp2$ + SPACE$(FIX((12 - l) / 2))
  650. X        IF INSTR(c$, " ") > 0 THEN
  651. X                c$ = RIGHT$(c$, LEN(c$) - LEN(temp$) - 1)
  652. X        ELSE
  653. X                c$ = ""
  654. X        END IF
  655. X        nr = nr + 1
  656. X        IF nr > maxwin THEN EXIT DO
  657. XLOOP
  658. Xextractfilenames = nr - 1
  659. X
  660. XEND FUNCTION
  661. X
  662. XFUNCTION fieldinput$ (title$, tx%, lx%)
  663. X
  664. XCALL dowindow(19, tx%, 5, lx%, sysborder%, sysback%, sysframe%, shadow%, title$, 0)
  665. Xi = tx% + 2
  666. XDO WHILE i < tx% + lx% - 2
  667. X        c$ = INPUT$(1)
  668. X        SELECT CASE c$
  669. X        CASE CHR$(13)
  670. X                EXIT DO
  671. X        CASE CHR$(8)
  672. X                IF LEN(temp$) > 0 THEN temp$ = LEFT$(temp$, LEN(temp$) - 1)
  673. X        CASE ELSE
  674. X        temp$ = temp$ + c$
  675. X        i = i + 1
  676. X        END SELECT
  677. X        CALL prtscrn(temp$ + " ", 21, tx% + 2, sysfore%)
  678. XLOOP
  679. Xfieldinput$ = temp$
  680. X
  681. XEND FUNCTION
  682. X
  683. XFUNCTION letter (c$)
  684. X
  685. XIF (c$ >= CHR$(48) AND c$ <= CHR$(57)) OR (c$ >= CHR$(65) AND c$ <= CHR$(90)) OR (c$ >= CHR$(97) AND c$ <= CHR$(122)) THEN letter = 1 ELSE letter = 0
  686. X
  687. XEND FUNCTION
  688. X
  689. XSUB loadfile (nr, filename$, lineno, scroll)
  690. X
  691. Xbottom = windw(nr).ty + windw(nr).ly - 3
  692. XOPEN filename$ FOR INPUT AS #1
  693. XWHILE NOT EOF(1) AND windw(nr).mem < pagesize
  694. Xtemp = FRE(0)
  695. XLINE INPUT #1, regel$(nr, lineno)
  696. XIF FRE(0) < 4000 THEN CALL checkfatal
  697. Xwindw(nr).mem = windw(nr).mem + temp - FRE(0)
  698. Xlineno = lineno + 1
  699. XIF scroll = 1 THEN
  700. X        IF windw(nr).y > bottom THEN
  701. X                windw(nr).topmargin = windw(nr).topmargin + 1
  702. X        ELSE
  703. X                windw(nr).y = windw(nr).y + 1
  704. X        END IF
  705. XEND IF
  706. XWEND
  707. XCLOSE #1
  708. XIF scroll = 1 THEN windw(nr).texty = lineno
  709. Xwindw(nr).lasty = lineno
  710. Xwindw(nr).leftmargin = 1
  711. XCALL rewritewindow(nr)
  712. X
  713. XEND SUB
  714. X
  715. XSUB loadinteractive (nr)
  716. X
  717. XON ERROR GOTO resumer
  718. XCALL putscrn(scrnbuf(1))
  719. Xname$ = UCASE$(fieldinput$("Enter Filename(s)", 3, 77))
  720. XCALL getscrn(scrnbuf(1))
  721. XIF name$ <> "" THEN
  722. X        FOR i = nr TO extractfilenames(nr, name$)
  723. X                CALL openwindow(i)
  724. X                lineno = windw(i).texty
  725. X                CALL loadfile(i, windw(i).filename, lineno, 0)
  726. X        NEXT i
  727. X        active = i - 1
  728. X        CALL curs(active, 1)
  729. XEND IF
  730. X
  731. XEND SUB
  732. X
  733. XSUB menufile (nr)
  734. X
  735. XCALL putscrn(scrnbuf(1))
  736. XCALL dowindow(14, 65, 11, 15, sysborder%, sysback%, sysframe%, shadow%, "File", 0)
  737. XCALL prtscrn("Load   Alt-l", 16, 67, sysfore%)
  738. XCALL prtscrn("Save   Alt-s", 17, 67, sysfore%)
  739. XCALL prtscrn("save Block", 18, 67, sysfore%)
  740. XCALL prtscrn("Change name", 20, 67, sysfore%)
  741. XCALL prtscrn("New", 22, 67, sysfore%)
  742. XSELECT CASE LCASE$(INPUT$(1))
  743. XCASE "l"
  744. X        CALL getscrn(scrnbuf(1))
  745. X        CALL loadinteractive(nr)
  746. X        EXIT SUB
  747. XCASE "c"
  748. X        name$ = UCASE$(fieldinput$("Enter New Filename(s)", 3, 77))
  749. X        CALL getscrn(scrnbuf(1))
  750. X        IF name$ <> "" THEN
  751. X                FOR i = nr TO extractfilenames(nr, name$)
  752. X                        CALL activatewindow(i)
  753. X                NEXT i
  754. X                active = i - 1
  755. X        END IF
  756. X        EXIT SUB
  757. XCASE "s"
  758. X        CALL getscrn(scrnbuf(1))
  759. X        CALL saveinteractive(nr)
  760. X
  761. XCASE "n"
  762. X        CALL getscrn(scrnbuf(1))
  763. X        CALL curs(nr, 0)
  764. X        FOR i = 1 TO windw(nr).lasty
  765. X                regel$(nr, i) = ""
  766. X        NEXT i
  767. X        windw(nr).lasty = 1
  768. X        windw(nr).leftmargin = 1
  769. X        windw(nr).topmargin = 1
  770. X        windw(nr).texty = 1
  771. X        windw(nr).textx = 1
  772. X        windw(nr).x = windw(nr).tx + 1
  773. X        windw(nr).y = windw(nr).ty + 1
  774. X        CALL rewritewindow(nr)
  775. X        CALL curs(nr, 1)
  776. X        EXIT SUB
  777. XCASE ELSE
  778. XEND SELECT
  779. XCALL getscrn(scrnbuf(1))
  780. X
  781. XEND SUB
  782. X
  783. XSUB menuoptions
  784. X
  785. XCALL putscrn(scrnbuf(1))
  786. XCALL dowindow(4, 55, 20, 25, sysborder%, sysback%, sysframe%, shadow%, "Environment Options", 0)
  787. XCALL prtscrn("1  root background", 6, 57, back%)
  788. XCALL prtscrn("2  system foreground", 8, 57, sysfore%)
  789. XCALL prtscrn("3  system background", 9, 57, sysback%)
  790. XCALL prtscrn("4  system border", 10, 57, sysback% * 16 + sysborder%)
  791. XCALL prtscrn("5  system frame style", 11, 57, sysfore%)
  792. XCALL prtscrn("6  edit foreground", 13, 57, editfore%)
  793. XCALL prtscrn("7  edit background", 14, 57, editback%)
  794. XCALL prtscrn("8  edit border", 15, 57, editback% * 16 + editborder%)
  795. XCALL prtscrn("9  edit frame style", 16, 57, sysfore%)
  796. XCALL prtscrn("shell Prompt", 18, 57, sysfore%)
  797. XCALL prtscrn("Toggle statusline", 19, 57, sysfore%)
  798. XCALL prtscrn("sHadow style", 20, 57, sysfore%)
  799. XCALL prtscrn("Save environment", 22, 57, sysfore%)
  800. XSELECT CASE LCASE$(INPUT$(1))
  801. XCASE "1"
  802. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Root background", 0)
  803. X        DO
  804. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, back%)
  805. X                c$ = INKEY$
  806. X                SELECT CASE c$
  807. X                CASE CHR$(0) + CHR$(72)
  808. X                        IF back% < 7 THEN back% = back% + 1
  809. X                CASE CHR$(0) + CHR$(80)
  810. X                        IF back% > 0 THEN back% = back% - 1
  811. X                CASE CHR$(27)
  812. X                        EXIT DO
  813. X                CASE ELSE
  814. X                END SELECT
  815. X        LOOP
  816. XCASE "2"
  817. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "System foreground", 0)
  818. X        DO
  819. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, sysfore%)
  820. X                c$ = INKEY$
  821. X                SELECT CASE c$
  822. X                CASE CHR$(0) + CHR$(72)
  823. X                        IF sysfore% < 127 THEN sysfore% = sysfore% + 1
  824. X                CASE CHR$(0) + CHR$(80)
  825. X                        IF sysfore% > 0 THEN sysfore% = sysfore% - 1
  826. X                CASE CHR$(27)
  827. X                        EXIT DO
  828. X                CASE ELSE
  829. X                END SELECT
  830. X        LOOP
  831. XCASE "3"
  832. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "System background", 0)
  833. X        DO
  834. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, sysback%)
  835. X                c$ = INKEY$
  836. X                SELECT CASE c$
  837. X                CASE CHR$(0) + CHR$(72)
  838. X                        IF sysback% < 7 THEN sysback% = sysback% + 1
  839. X                CASE CHR$(0) + CHR$(80)
  840. X                        IF sysback% > 0 THEN sysback% = sysback% - 1
  841. X                CASE CHR$(27)
  842. X                        EXIT DO
  843. X                CASE ELSE
  844. X                END SELECT
  845. X        LOOP
  846. XCASE "4"
  847. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "System border", 0)
  848. X        DO
  849. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, sysback% * 16 + sysborder%)
  850. X                c$ = INKEY$
  851. X                SELECT CASE c$
  852. X                CASE CHR$(0) + CHR$(72)
  853. X                        IF sysborder% < 7 THEN sysborder% = sysborder% + 1
  854. X                CASE CHR$(0) + CHR$(80)
  855. X                        IF sysborder% > 0 THEN sysborder% = sysborder% - 1
  856. X                CASE CHR$(27)
  857. X                        EXIT DO
  858. X                CASE ELSE
  859. X                END SELECT
  860. X        LOOP
  861. XCASE "5"
  862. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "System frame style", 0)
  863. X        DO
  864. X                CALL prtscrn("Frame style = " + CHR$(sysframe% + 48), 21, 37, sysback% * 16 + sysborder%)
  865. X                c$ = INKEY$
  866. X                SELECT CASE c$
  867. X                CASE CHR$(0) + CHR$(72)
  868. X                        IF sysframe% < 5 THEN sysframe% = sysframe% + 1
  869. X                CASE CHR$(0) + CHR$(80)
  870. X                        IF sysframe% > 0 THEN sysframe% = sysframe% - 1
  871. X                CASE CHR$(27)
  872. X                        EXIT DO
  873. X                CASE ELSE
  874. X                END SELECT
  875. X        LOOP
  876. XCASE "6"
  877. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Edit foreground", 0)
  878. X        DO
  879. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, editfore%)
  880. X                c$ = INKEY$
  881. X                SELECT CASE c$
  882. X                CASE CHR$(0) + CHR$(72)
  883. X                        IF editfore% < 127 THEN editfore% = editfore% + 1
  884. X                CASE CHR$(0) + CHR$(80)
  885. X                        IF editfore% > 0 THEN editfore% = editfore% - 1
  886. X                CASE CHR$(27)
  887. X                        EXIT DO
  888. X                CASE ELSE
  889. X                END SELECT
  890. X        LOOP
  891. XCASE "7"
  892. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Edit background", 0)
  893. X        DO
  894. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, editback%)
  895. X                c$ = INKEY$
  896. X                SELECT CASE c$
  897. X                CASE CHR$(0) + CHR$(72)
  898. X                        IF editback% < 7 THEN editback% = editback% + 1
  899. X                CASE CHR$(0) + CHR$(80)
  900. X                        IF editback% > 0 THEN editback% = editback% - 1
  901. X                CASE CHR$(27)
  902. X                        EXIT DO
  903. X                CASE ELSE
  904. X                END SELECT
  905. X        LOOP
  906. XCASE "8"
  907. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Edit border", 0)
  908. X        DO
  909. X                CALL prtscrn("Cursor to select, Escape to accept", 21, 37, editback% * 16 + editborder%)
  910. X                c$ = INKEY$
  911. X                SELECT CASE c$
  912. X                CASE CHR$(0) + CHR$(72)
  913. X                        IF editborder% < 7 THEN editborder% = editborder% + 1
  914. X                CASE CHR$(0) + CHR$(80)
  915. X                        IF editborder% > 0 THEN editborder% = editborder% - 1
  916. X                CASE CHR$(27)
  917. X                        EXIT DO
  918. X                CASE ELSE
  919. X                END SELECT
  920. X        LOOP
  921. XCASE "9"
  922. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Edit frame style", 0)
  923. X        DO
  924. X                CALL prtscrn("Frame style = " + CHR$(editframe% + 48), 21, 37, sysback% * 16 + sysborder%)
  925. X                c$ = INKEY$
  926. X                SELECT CASE c$
  927. X                CASE CHR$(0) + CHR$(72)
  928. X                        IF editframe% < 5 THEN editframe% = editframe% + 1
  929. X                CASE CHR$(0) + CHR$(80)
  930. X                        IF editframe% > 0 THEN editframe% = editframe% - 1
  931. X                CASE CHR$(27)
  932. X                        EXIT DO
  933. X                CASE ELSE
  934. X                END SELECT
  935. X        LOOP
  936. XCASE "h"
  937. X        CALL dowindow(19, 35, 5, 40, sysborder%, sysback%, sysframe%, shadow%, "Shadow Style", 0)
  938. X        DO
  939. X                SELECT CASE shadow%
  940. X                CASE 0
  941. X                        msg$ = "None               "
  942. X                CASE 1
  943. X                        msg$ = "Left Solid         "
  944. X                CASE 2
  945. X                        msg$ = "Right Solid        "
  946. X                CASE 3
  947. X                        msg$ = "Left Grid (default)"
  948. X                CASE 4
  949. X                        msg$ = "Right Grid         "
  950. X                END SELECT
  951. X                CALL prtscrn(msg$, 21, 37, sysback% * 16 + sysborder%)
  952. X                c$ = INKEY$
  953. X                SELECT CASE c$
  954. X                CASE CHR$(0) + CHR$(72)
  955. X                        IF shadow% < 4 THEN shadow% = shadow% + 1
  956. X                CASE CHR$(0) + CHR$(80)
  957. X                        IF shadow% > 0 THEN shadow% = shadow% - 1
  958. X                CASE CHR$(27)
  959. X                        EXIT DO
  960. X                CASE ELSE
  961. X                END SELECT
  962. X        LOOP
  963. X        CALL refresh
  964. XCASE "p"
  965. X        prompt$ = fieldinput$("New prompt", 50, 15)
  966. XCASE "t"
  967. X        IF statusline = 1 THEN
  968. X                statusline = 0
  969. X                CALL getscrn(scrnbuf(1))
  970. X                CALL prtscrn(STRING$(9, 205), windw(active).ty + windw(active).ly - 1, windw(active).tx + windw(active).lx - 10, editback% * 16 + editborder%)
  971. X                EXIT SUB
  972. X        ELSE
  973. X                statusline = 1
  974. X        END IF
  975. XCASE "s"
  976. X        CALL dowindow(19, 50, 5, 15, sysborder%, sysback%, sysframe%, shadow%, "Save", 0)
  977. X        CALL prtscrn("Saving..", 21, 53, sysfore%)
  978. X        CALL saveconfig(cfg$)
  979. XCASE ELSE
  980. XEND SELECT
  981. XCALL getscrn(scrnbuf(1))
  982. X
  983. XEND SUB
  984. X
  985. XSUB menuwindow (nr)
  986. X
  987. XCALL putscrn(scrnbuf(1))
  988. XCALL dowindow(11, 60, 14, 20, sysborder%, sysback%, sysframe%, shadow%, "Window", 0)
  989. XCALL prtscrn("Move     Alt-M", 13, 62, sysfore%)
  990. XCALL prtscrn("Resize   Alt-R", 14, 62, sysfore%)
  991. XCALL prtscrn("maXimize", 16, 62, sysfore%)
  992. XCALL prtscrn("mInimize", 17, 62, sysfore%)
  993. XCALL prtscrn("Open/Act Alt-<nr>", 19, 62, sysfore%)
  994. XCALL prtscrn("Close    Alt-C", 20, 62, sysfore%)
  995. XCALL prtscrn("reFresh display", 22, 62, sysfore%)
  996. XSELECT CASE LCASE$(INPUT$(1))
  997. XCASE "o", "a"
  998. X        CALL dowindow(19, 50, 5, 15, sysborder%, sysback%, sysframe%, shadow%, "Activate", 0)
  999. X        CALL prtscrn("Window Nr?", 21, 52, sysfore%)
  1000. X        c$ = INPUT$(1)
  1001. X        CALL getscrn(scrnbuf(1))
  1002. X        IF c$ >= "1" AND c$ <= CHR$(maxwin + 48) THEN
  1003. X                CALL curs(nr, 0)
  1004. X                active = ASC(c$) - 48
  1005. X                CALL activatewindow(active)
  1006. X        END IF
  1007. XCASE "m"
  1008. X        CALL getscrn(scrnbuf(1))
  1009. X        CALL movewindow(nr)
  1010. XCASE "r"
  1011. X        CALL getscrn(scrnbuf(1))
  1012. X        CALL resizewindow(nr)
  1013. XCASE "x"
  1014. X        CALL getscrn(scrnbuf(1))
  1015. X        windw(nr).x = windw(nr).x - (windw(nr).tx - 3)
  1016. X        windw(nr).y = windw(nr).y - (windw(nr).ty - 1)
  1017. X        windw(nr).tx = 3
  1018. X        windw(nr).ty = 1
  1019. X        windw(nr).lx = 78
  1020. X        windw(nr).ly = 24
  1021. X        CALL refresh
  1022. XCASE "i"
  1023. X        windw(nr).topmargin = windw(active).texty
  1024. X        windw(nr).x = windw(active).tx + 1
  1025. X        windw(nr).y = windw(active).ty + 1
  1026. X        windw(nr).lx = 18
  1027. X        windw(nr).ly = 3
  1028. X        CALL refresh
  1029. XCASE "c"
  1030. X        CALL closewindow(nr)
  1031. XCASE "f"
  1032. X        CALL refresh
  1033. XCASE ELSE
  1034. X        CALL getscrn(scrnbuf(1))
  1035. XEND SELECT
  1036. X
  1037. XEND SUB
  1038. X
  1039. XSUB movewindow (nr)
  1040. X
  1041. XCALL putscrn(scrnbuf(1))
  1042. XCALL outlinewindow(nr)
  1043. XDO
  1044. X        c$ = INKEY$
  1045. X        IF LEFT$(c$, 1) <> CHR$(0) THEN
  1046. X                IF LEFT$(c$, 1) = CHR$(27) THEN EXIT DO
  1047. X        ELSE
  1048. X                SELECT CASE RIGHT$(c$, 1)
  1049. X                CASE CHR$(75)
  1050. X                        IF windw(nr).tx > 3 THEN
  1051. X                                CALL getscrn(scrnbuf(1))
  1052. X                                windw(nr).tx = windw(nr).tx - 1
  1053. X                                windw(nr).x = windw(nr).x - 1
  1054. X                                CALL outlinewindow(nr)
  1055. X                        END IF
  1056. X                CASE CHR$(77)
  1057. X                        IF windw(nr).tx + windw(nr).lx < 81 THEN
  1058. X                                CALL getscrn(scrnbuf(1))
  1059. X                                windw(nr).tx = windw(nr).tx + 1
  1060. X                                windw(nr).x = windw(nr).x + 1
  1061. X                                CALL outlinewindow(nr)
  1062. X                        END IF
  1063. X                CASE CHR$(72)
  1064. X                        IF windw(nr).ty > 1 THEN
  1065. X                                CALL getscrn(scrnbuf(1))
  1066. X                                windw(nr).ty = windw(nr).ty - 1
  1067. X                                windw(nr).y = windw(nr).y - 1
  1068. X                                CALL outlinewindow(nr)
  1069. X                        END IF
  1070. X                CASE CHR$(80)
  1071. X                        IF windw(nr).ty + windw(nr).ly < 25 THEN
  1072. X                                CALL getscrn(scrnbuf(1))
  1073. X                                windw(nr).ty = windw(nr).ty + 1
  1074. X                                windw(nr).y = windw(nr).y + 1
  1075. X                                CALL outlinewindow(nr)
  1076. X                        END IF
  1077. X                CASE ELSE
  1078. X                END SELECT
  1079. X        END IF
  1080. XLOOP
  1081. XCALL refresh
  1082. X
  1083. XEND SUB
  1084. X
  1085. XSUB nextline (nr, insert)
  1086. X
  1087. XIF insert = 1 THEN
  1088. X        temp$ = regel$(nr, windw(nr).texty)
  1089. X        FOR i = windw(nr).lasty + 1 TO windw(nr).texty + 2 STEP -1
  1090. X                regel$(nr, i) = regel$(nr, i - 1)
  1091. X        NEXT i
  1092. X        IF windw(nr).textx > LEN(temp$) THEN
  1093. X                regel$(nr, i) = ""
  1094. X        ELSE
  1095. X                regel$(nr, i - 1) = LEFT$(temp$, windw(nr).textx - 1)
  1096. X                regel$(nr, i) = RIGHT$(temp$, LEN(temp$) - windw(nr).textx + 1)
  1097. X        END IF
  1098. X        windw(nr).lasty = windw(nr).lasty + 1
  1099. XEND IF
  1100. Xwindw(nr).x = windw(nr).tx + 1
  1101. Xwindw(nr).textx = 1
  1102. Xwindw(nr).texty = windw(nr).texty + 1
  1103. XIF windw(nr).y < windw(nr).ty + windw(nr).ly - 2 THEN
  1104. X        windw(nr).y = windw(nr).y + 1
  1105. X        CALL rewritewindow(nr)
  1106. XELSE
  1107. X        CALL scrolldown(nr, 1)
  1108. XEND IF
  1109. XIF windw(nr).leftmargin > 1 THEN CALL scrollleft(nr, windw(nr).leftmargin + 1)
  1110. XCALL curs(nr, 1)
  1111. X
  1112. XEND SUB
  1113. X
  1114. XSUB openwindow (nr)
  1115. X
  1116. XCALL dowindow(windw(nr).ty, windw(nr).tx, windw(nr).ly, windw(nr).lx, editborder%, editback%, editframe%, shadow%, windw(nr).titel, 2)
  1117. Xwindw(nr).display = 1
  1118. X
  1119. XEND SUB
  1120. X
  1121. XSUB outlinewindow (nr)
  1122. X
  1123. XCALL putscrn(scrnbuf(1))
  1124. Xocolor% = editback% * 16 + 15 - editborder%
  1125. Xtop$ = CHR$(218) + STRING$((((windw(nr).lx - 2) / 2) - LEN(windw(nr).titel) / 2), 196) + windw(nr).titel + STRING$(FIX(((windw(nr).lx - 2) / 2) - LEN(windw(nr).titel) / 2), 196) + CHR$(191)
  1126. Xbot$ = CHR$(192) + STRING$(windw(nr).lx - 2, 196) + CHR$(217)
  1127. XCALL prtscrn(top$, windw(nr).ty, windw(nr).tx, ocolor%)
  1128. XCALL prtscrn(bot$, windw(nr).ty + windw(nr).ly - 1, windw(nr).tx, ocolor%)
  1129. XFOR y% = windw(nr).ty + 1 TO windw(nr).ty + windw(nr).ly - 2
  1130. X        CALL prtscrn(CHR$(179), y%, windw(nr).tx, ocolor%)
  1131. X        CALL prtscrn(CHR$(179), y%, windw(nr).tx + windw(nr).lx - 1, ocolor%)
  1132. XNEXT y%
  1133. X
  1134. XEND SUB
  1135. X
  1136. XSUB pgdn (nr)
  1137. X
  1138. XCALL curs(nr, 0)
  1139. Xsteps = windw(nr).ly - 2
  1140. XIF windw(nr).texty + steps <= windw(nr).lasty THEN
  1141. X        CALL scrolldown(nr, steps)
  1142. X        windw(nr).texty = windw(nr).texty + steps
  1143. XEND IF
  1144. XCALL curs(nr, 1)
  1145. X
  1146. XEND SUB
  1147. X
  1148. XSUB pgup (nr)
  1149. X
  1150. XCALL curs(nr, 0)
  1151. Xsteps = windw(nr).ly - 2
  1152. XIF windw(nr).topmargin - steps >= 1 THEN
  1153. X        CALL scrollup(nr, steps)
  1154. X        windw(nr).texty = windw(nr).texty - steps
  1155. XELSE
  1156. X        CALL scrollup(nr, windw(nr).topmargin - 1)
  1157. X        windw(nr).texty = 1
  1158. X        windw(nr).y = windw(nr).ty + 1
  1159. XEND IF
  1160. XCALL curs(nr, 1)
  1161. X
  1162. XEND SUB
  1163. X
  1164. XSUB readconfig (f$)
  1165. X
  1166. XOPEN f$ FOR INPUT AS #1
  1167. XINPUT #1, prompt$
  1168. XINPUT #1, statusline
  1169. XINPUT #1, shadow%
  1170. XINPUT #1, back%
  1171. XINPUT #1, sysback%
  1172. XINPUT #1, sysfore%
  1173. XINPUT #1, sysborder%
  1174. XINPUT #1, sysframe%
  1175. XINPUT #1, editback%
  1176. XINPUT #1, editfore%
  1177. XINPUT #1, editborder%
  1178. XINPUT #1, editframe%
  1179. XFOR t = 0 TO maxwin
  1180. X        INPUT #1, windw(t).titel
  1181. X        INPUT #1, windw(t).filename
  1182. X        INPUT #1, windw(t).tx
  1183. X        INPUT #1, windw(t).ty
  1184. X        INPUT #1, windw(t).lx
  1185. X        INPUT #1, windw(t).ly
  1186. X        windw(t).x = windw(t).tx + 1
  1187. X        windw(t).y = windw(t).ty + 1
  1188. X        windw(t).leftmargin = 1
  1189. X        windw(t).topmargin = 1
  1190. X        windw(t).textx = 1
  1191. X        windw(t).texty = 1
  1192. X        windw(t).lasty = 1
  1193. X        windw(t).mem = 1
  1194. XNEXT t
  1195. XCLOSE #1
  1196. X
  1197. XEND SUB
  1198. X
  1199. XSUB refresh
  1200. X
  1201. XLOCATE , , 0
  1202. XCLS
  1203. XFOR t = 0 TO maxwin
  1204. X        IF windw(t).display = 1 AND t <> active THEN
  1205. X                CALL activatewindow(t)
  1206. X                CALL curs(t, 0)
  1207. X        END IF
  1208. XNEXT t
  1209. XIF active >= 0 THEN IF windw(active).display = 1 THEN CALL activatewindow(active)
  1210. X
  1211. XEND SUB
  1212. X
  1213. XSUB resizewindow (nr)
  1214. X
  1215. XCALL putscrn(scrnbuf(1))
  1216. XCALL outlinewindow(nr)
  1217. XDO
  1218. X        c$ = INKEY$
  1219. X        IF LEFT$(c$, 1) <> CHR$(0) THEN
  1220. X                IF LEFT$(c$, 1) = CHR$(27) THEN EXIT DO
  1221. X        ELSE
  1222. X                SELECT CASE RIGHT$(c$, 1)
  1223. X                CASE CHR$(75)
  1224. X                        IF windw(nr).lx > 18 THEN
  1225. X                                CALL getscrn(scrnbuf(1))
  1226. X                                windw(nr).lx = windw(nr).lx - 1
  1227. X                                CALL outlinewindow(nr)
  1228. X                        END IF
  1229. X                CASE CHR$(77)
  1230. X                        IF windw(nr).tx + windw(nr).lx < 81 THEN
  1231. X                                CALL getscrn(scrnbuf(1))
  1232. X                                windw(nr).lx = windw(nr).lx + 1
  1233. X                                CALL outlinewindow(nr)
  1234. X                        END IF
  1235. X                CASE CHR$(72)
  1236. X                        IF windw(nr).ly > 3 THEN
  1237. X                                CALL getscrn(scrnbuf(1))
  1238. X                                windw(nr).ly = windw(nr).ly - 1
  1239. X                                CALL outlinewindow(nr)
  1240. X                        END IF
  1241. X                CASE CHR$(80)
  1242. X                        IF windw(nr).ty + windw(nr).ly < 25 THEN
  1243. X                                CALL getscrn(scrnbuf(1))
  1244. X                                windw(nr).ly = windw(nr).ly + 1
  1245. X                                CALL outlinewindow(nr)
  1246. X                        END IF
  1247. X                CASE ELSE
  1248. X                END SELECT
  1249. X        END IF
  1250. XLOOP
  1251. XCALL refresh
  1252. X
  1253. XEND SUB
  1254. X
  1255. XSUB rewriteline (nr, lin, ypos%)
  1256. X      
  1257. Xwinwidth = windw(nr).lx - 2
  1258. Xtemp$ = MID$(regel$(nr, lin), windw(nr).leftmargin, winwidth)
  1259. XCALL prtscrn(temp$, ypos%, windw(nr).tx% + 1, editfore%)
  1260. XIF LEN(temp$) < winwidth THEN CALL prtscrn(SPACE$(winwidth - LEN(temp$)), ypos%, windw(nr).tx% + LEN(temp$) + 1, editfore%)
  1261. X
  1262. XEND SUB
  1263. X
  1264. XSUB rewritewindow (nr)
  1265. X
  1266. XFOR i% = windw(nr).ty + 1 TO windw(nr).ty + windw(nr).ly - 2
  1267. X        winwidth = windw(nr).lx - 2
  1268. X        temp$ = MID$(regel$(nr, windw(nr).topmargin + (i% - windw(nr).ty) - 1), windw(nr).leftmargin, winwidth)
  1269. X        CALL prtscrn(temp$, i%, windw(nr).tx% + 1, editfore%)
  1270. X        IF LEN(temp$) < winwidth THEN CALL prtscrn(SPACE$(winwidth - LEN(temp$)), i%, windw(nr).tx% + LEN(temp$) + 1, editfore%)
  1271. XNEXT i%
  1272. X
  1273. XEND SUB
  1274. X
  1275. XSUB saveconfig (f$)
  1276. X
  1277. XOPEN f$ FOR OUTPUT AS #1
  1278. XPRINT #1, prompt$
  1279. XPRINT #1, statusline
  1280. XPRINT #1, shadow%
  1281. XPRINT #1, back%
  1282. XPRINT #1, sysback%
  1283. XPRINT #1, sysfore%
  1284. XPRINT #1, sysborder%
  1285. XPRINT #1, sysframe%
  1286. XPRINT #1, editback%
  1287. XPRINT #1, editfore%
  1288. XPRINT #1, editborder%
  1289. XPRINT #1, editframe%
  1290. XFOR t = 0 TO maxwin
  1291. X        PRINT #1, windw(t).titel
  1292. X        PRINT #1, windw(t).filename
  1293. X        PRINT #1, windw(t).tx
  1294. X        PRINT #1, windw(t).ty
  1295. X        PRINT #1, windw(t).lx
  1296. X        PRINT #1, windw(t).ly
  1297. XNEXT t
  1298. XCLOSE #1
  1299. X
  1300. XEND SUB
  1301. X
  1302. XSUB savefile (nr, filename$, linestart, lineend)
  1303. X
  1304. XOPEN filename$ FOR OUTPUT AS #1
  1305. XFOR i = linestart TO lineend
  1306. X        PRINT #1, regel$(nr, i)
  1307. XNEXT i
  1308. XCLOSE #1
  1309. X
  1310. XEND SUB
  1311. X
  1312. XSUB saveinteractive (nr)
  1313. X
  1314. XCALL putscrn(scrnbuf(1))
  1315. XCALL dowindow(19, 50, 5, 15, sysborder%, sysback%, sysframe%, shadow%, "Save", 0)
  1316. XCALL prtscrn("Saving..", 21, 53, sysfore%)
  1317. Xlineend = windw(nr).lasty
  1318. XCALL savefile(nr, windw(nr).filename, 1, lineend)
  1319. XCALL getscrn(scrnbuf(1))
  1320. X
  1321. XEND SUB
  1322. X
  1323. XSUB scrolldown (nr, steps)
  1324. X
  1325. Xwindw(nr).topmargin = windw(nr).topmargin + steps
  1326. XCALL rewritewindow(nr)
  1327. X
  1328. XEND SUB
  1329. X
  1330. XSUB scrollleft (nr, steps)
  1331. X
  1332. Xwindw(nr).leftmargin = windw(nr).leftmargin - steps
  1333. XIF windw(nr).leftmargin < 1 THEN windw(nr).leftmargin = 1
  1334. XCALL rewritewindow(nr)
  1335. X
  1336. XEND SUB
  1337. X
  1338. XSUB scrollright (nr, steps)
  1339. X
  1340. Xwindw(nr).leftmargin = windw(nr).leftmargin + steps
  1341. XCALL rewritewindow(nr)
  1342. X
  1343. XEND SUB
  1344. X
  1345. XSUB scrollup (nr, steps)
  1346. X
  1347. Xwindw(nr).topmargin = windw(nr).topmargin - steps
  1348. XIF windw(nr).topmargin < 1 THEN windw(nr).topmargin = 1
  1349. XCALL rewritewindow(nr)
  1350. X
  1351. XEND SUB
  1352. X
  1353. XSUB showstatus
  1354. X
  1355. Xtemp1$ = RIGHT$(STR$(windw(active).texty), LEN(STR$(windw(active).texty)) - 1)
  1356. Xtemp2$ = RIGHT$(STR$(windw(active).textx), LEN(STR$(windw(active).textx)) - 1)
  1357. XCALL prtscrn(STRING$(4 - LEN(temp1$), 48) + temp1$ + ":" + STRING$(4 - LEN(temp2$), 48) + temp2$, windw(active).ty + windw(active).ly - 1, windw(active).tx + windw(active).lx - 10, editback% * 16 + editborder%)
  1358. X
  1359. XEND SUB
  1360. X
  1361. XSUB wordleft (nr)
  1362. X
  1363. XIF windw(nr).textx = 1 THEN
  1364. X        CALL cursorup(nr)
  1365. X        CALL endofline(nr)
  1366. XEND IF
  1367. Xtemp$ = regel$(nr, windw(nr).texty)
  1368. XFOR i = windw(nr).textx - 1 TO 2 STEP -1
  1369. X        IF letter(MID$(temp$, i, 1)) = 1 AND letter(MID$(temp$, i - 1, 1)) = 0 THEN EXIT FOR
  1370. XNEXT i
  1371. XIF i > 1 THEN
  1372. X        CALL backspace(nr, 0, windw(nr).textx - i)
  1373. XELSE
  1374. X        CALL beginofline(nr)
  1375. XEND IF
  1376. X
  1377. XEND SUB
  1378. X
  1379. XSUB wordright (nr)
  1380. X
  1381. Xtemp$ = regel$(nr, windw(nr).texty)
  1382. XFOR i = windw(nr).textx + 1 TO LEN(temp$)
  1383. X        IF letter(MID$(temp$, i - 1, 1)) = 0 AND letter(MID$(temp$, i, 1)) = 1 THEN EXIT FOR
  1384. XNEXT i
  1385. XIF i <= LEN(temp$) THEN
  1386. X        CALL cursorright(nr, i - windw(nr).textx)
  1387. XELSE
  1388. X        CALL cursordown(nr)
  1389. X        CALL beginofline(nr)
  1390. XEND IF
  1391. X
  1392. XEND SUB
  1393. X
  1394. XSUB writechar (nr, char$)
  1395. X
  1396. Xtemp$ = regel$(nr, windw(nr).texty)
  1397. XIF windw(nr).textx > LEN(temp$) THEN
  1398. X        regel$(nr, windw(nr).texty) = temp$ + char$
  1399. X        CALL prtscrn(char$, windw(nr).y, windw(nr).x, editfore%)
  1400. XELSE
  1401. X        regel$(nr, windw(nr).texty) = LEFT$(temp$, windw(nr).textx - 1) + char$ + RIGHT$(temp$, LEN(temp$) - windw(nr).textx + 1)
  1402. X        lin = windw(nr).texty
  1403. X        CALL rewriteline(nr, lin, windw(nr).y)
  1404. XEND IF
  1405. Xwindw(nr).textx = windw(nr).textx + 1
  1406. XIF windw(nr).x > windw(nr).tx + windw(nr).lx - 3 THEN
  1407. X        CALL scrollright(nr, 1)
  1408. XELSE
  1409. X        windw(nr).x = windw(nr).x + 1
  1410. XEND IF
  1411. XCALL curs(nr, 1)
  1412. X
  1413. XEND SUB
  1414. X
  1415. + END-OF-FILE pedit.asc
  1416. chmod 'u=rw,g=r,o=r' 'pedit.asc'
  1417. set `wc -c 'pedit.asc'`
  1418. count=$1
  1419. case $count in
  1420. 42576)    :;;
  1421. *)    echo 'Bad character count in ''pedit.asc' >&2
  1422.         echo 'Count should be 42576' >&2
  1423. esac
  1424. echo Extracting 'q4t.bi'
  1425. sed 's/^X//' > 'q4t.bi' << '+ END-OF-FILE ''q4t.bi'
  1426. X'----------------------------------------------------------------------------
  1427. X'                            **    Q4T.BI    **
  1428. X'     The $INCLUDE file needed for the operation of Q4T.QLB and Q4T.LIB
  1429. X'                 Written by R. J. Crouch  -  April 1990
  1430. X'                     Copyright  -  1990  -  CareWare
  1431. X'----------------------------------------------------------------------------
  1432. X
  1433. XDECLARE FUNCTION Ctr! (strg$)
  1434. XDECLARE SUB Delay (lenght!, Forced%)
  1435. X
  1436. XTYPE RegType
  1437. X   ax    AS INTEGER
  1438. X   bx    AS INTEGER
  1439. X   cx    AS INTEGER
  1440. X   dx    AS INTEGER
  1441. X   bp    AS INTEGER
  1442. X   si    AS INTEGER
  1443. X   di    AS INTEGER
  1444. X   flags AS INTEGER
  1445. X   ds    AS INTEGER
  1446. X   es    AS INTEGER
  1447. XEND TYPE
  1448. X
  1449. + END-OF-FILE q4t.bi
  1450. chmod 'u=rw,g=r,o=r' 'q4t.bi'
  1451. set `wc -c 'q4t.bi'`
  1452. count=$1
  1453. case $count in
  1454. 702)    :;;
  1455. *)    echo 'Bad character count in ''q4t.bi' >&2
  1456.         echo 'Count should be 702' >&2
  1457. esac
  1458. echo Extracting 'q4t.lib.uu'
  1459. sed 's/^X//' > 'q4t.lib.uu' << '+ END-OF-FILE ''q4t.lib.uu'
  1460. Xbegin 644 q4t.lib
  1461. XM\ T  #0   $          ( 9 !=E.EQD96UO7'%B7&%B<V]L=71E+F%S;5>(
  1462. XM#   HPAA8G-O;'5T96*( P" GE>6+   !D1'4D]54 U!0E-/3%5415]415A4
  1463. XM!$1!5$$$0T]$101?0E-3!5]$051!49@' $@,  ,% 028!P!(   '! $-F < 
  1464. XM2   !@0!#IH&  +_ O\#6XP(  5")%-%1P BD \   $(04)33TQ55$4   #Y
  1465. XMB 0  *(!T: 0  $  %A:6U)0_S8  /\WRVJ<!@#$!Q8! 7N* @  =     " 
  1466. XM%P 593I<9&5M;UQQ8EQI;G1R<'0N87-M&8@*  "C!FEN=')P="2( P" GE>6
  1467. XM)0  !D1'4D]54 1$051!!$-/1$4%7T1!5$$+24Y44E!47U1%6%0CF < 2 <!
  1468. XM!@0!!I@' $@   4# 1":!  "_P)?D!X   $)24Y415)255!4    "DE.5$52
  1469. XM4E505%@-   _B 0  *(!T: + 0$  %6+[(/$XL=&^@@ ZPM5B^R#Q.+'1OH*
  1470. XM (EVY(E^XHQ>_)R/1OZ+=@B-?N:+3OK\%@?SI56+=@J+' K_= /I  " ^R5T
  1471. XM!8#[)G4.N @ 4+@"RE"X@\10ZP<SP%"XR@90BN.PS5 .N   4!:+Q 4& %"+
  1472. XM1O0EU0]0BT;FBU[HBT[JBU;LBW;PBW[R@W[Z"'04@7[V__]T XY>]H%^^/__
  1473. XM= ..1OB+;NZ=RU6+[(MN IR/1O3_=OZ=B4;FB5[HB4[JB5;LBT;>B4;NB7;P
  1474. XMB7[RC%[VC$;XCE[\C7;F'@>+?@:+3OK\\Z6+=N2+?N*+Y5W*!@"+=@K'!/__
  1475. XMBW;DBW[BCE[\B^5=R@8 ZYP/ (0^  $!\0#$9@ ! :@ S(H"  !T    @!D 
  1476. XM%V4Z7&1E;6]<<6)<:6YT.#9O;&0N87-MOH@,  "C"&EN=#@V;VQDR8@# (">
  1477. XM5Y8G   &1$=23U50#4E.5#@V3TQ$7U1%6%0$1$%4001#3T1%!5]$051!R)@'
  1478. XM $@> 0,% ?&8!P!(   &! $.F@0  O\"7Y <   !"$E.5#@V3TQ$    "4E.
  1479. XM5#@V6$],1 T  &V(!   H@'1H"(! 0  58OL@\3@QT;X" #K"U6+[(/$X,=&
  1480. XM^ H B7;BB7[@G(]&_HMV!N@  (E6_(E&^HMV".@  !Z.VHOPC7[DBT[X_!8'
  1481. XM\Z4?58MV"HL<"O]T ^D  (#[)70%@/LF=0ZX" !0N +*4+B#Q%#K!S/ 4+C*
  1482. XM!E"*X[#-4 ZX  !0%HO$!08 4(M&\B75#U"+1N2+7N:+3NB+5NJ+=NZ+?O"#
  1483. XM?O@(=!2!?O3__W0#CE[T@7[V__]T XY&]HMN[)W+58OLBVX"G(]&\O]V_IV)
  1484. XM1N2)7N:)3NB)5NJ+1MR)1NR)=NZ)?O",7O2,1O86'XUVY(Y&_(M^^HM.^/SS
  1485. XMI8MVXHM^X(OE7<H& !8?BW8*QP3__XMVXHM^X(OE7<H& (M4 HL$P_^<'0"$
  1486. XM)@ ! 1@!A#(  0$8 810  $! P'$>  ! ;H WXH"  !T             ( 1
  1487. XM  ]A<VU<9V5T<V-R;BYA<VU>B L  *,'9V5T<V-R;LV6)@  !D1'4D]54 Q'
  1488. XM15130U).7U1%6%0$1$%4001#3T1%!5]$051![)@' $@[  ,% =68!P!(   &
  1489. XM! $.F@0  O\"7Y .   !!T=E=%-C<FX   "DB 0  *(!T: _  $  %6+[!X&
  1490. XM5E>+7@:+#XMW KL  ([#)J%)!#P#?@<\!W0)Z9"0NP"XZ9"0NP"PCL._  #S
  1491. XMI%]>!Q]=R@( KZ &  $@ .L1/: &  $F .L$1(H"  %S            @!$ 
  1492. XM#V%S;5QP=71S8W)N+F%S;46("P  HP=P=71S8W)NM)8F   &1$=23U50#%!5
  1493. XM5%-#4DY?5$585 1$051!!$-/1$4%7T1!5$'3F < 2#T  P4!TY@' $@   8$
  1494. XM 0Z:!  "_P)?D X   $'4'5T<V-R;@   &N(!   H@'1H$$  0  58OL'@96
  1495. XM5XM>!HL/BW\"NP  CL,FH4D$/ -^!SP'= GID)"[ +CID)"[ + >CML'O@  
  1496. XM\Z1?7@<?7<H" &F@!@ !( #K$SN@!@ !)@#K!$2* @ !<P        " #  *
  1497. XM431724Y$+D)!4Z^("@  HP9Q-'=I;F1NB"0   !-:6-R;W-O9G0@475I8VM"
  1498. XM05-)0R!#;VUP:6QE<B T+C 2B D  (%"0T]--#%HB 8  *$Q0U8'EJH   ="
  1499. XM0U]#3T1%!4),04Y+!T)#7U9!4E,'0D-?4T5'4P9$14)465 &1$5"4UE-!T)#
  1500. XM7T1!5$$'0E)?1$%400="4E]32UE3!D-/34U/3@="0U]$051!!TY-04Q,3T,(
  1501. XM14Y-04Q,3T,%0D-?1E0%0D-?0TX%0D-?1%,&0D-?4T%"!4)#7U-!!R0D5%E0
  1502. XM15,))"1364U"3TQ3!D1'4D]54 M1-%=)3D1?0T]$1;68!P!H:@<7 @%NF < 
  1503. XM:   "0,![)@' &@   H# >N8!P!X   + P':F < 2 8 # @!_I@' %@   T$
  1504. XM ?>8!P!8   .! 'VF < 2   #P4!!)@' &@J ! % ;F8!P!H P 1!0'?F < 
  1505. XM2   $@4! 9@' $@$ !,% ?R8!P @   5!P$DF < (   % 8!)IH8 !;_ O\#
  1506. XM_P3_!?\&_P?_"/\)_PK_"_\,]IP+ $0!  $!"0($ P7[C!,  R1!0P $)$1!
  1507. XM0P %8B1S96< _* (  P       !,G 8 S  $ 0&,H#0  0  8FQ1-%=)3D0@
  1508. XM(                                             #__X 0V)P7 ,08
  1509. XMA 3$#H0%Q!"$",0@A G$#( * @!AC!$ !D(D14Y200 &0B1305-3 "N@4P !
  1510. XM, #I  "Y  ":     +@  %"-1O)0F@    "+=@J#/ !_ ^D  (,\ ;@  '4!
  1511. XM2(,\ [D  '4!20O((\EU ^D  (MV%HL$!?[_B4;PB4;NZ0  %YP. ,P'5@3$
  1512. XM#(D  ,P45@65H"  "0  %P   $-O<'ER:6=H="TQ.3DP+4-A<F5787)E #"<
  1513. XM!@#$ HD$  N@!@ !;  1 -R@.0 !?P"+=@J#/ *X  !U 4B#/ 2Y  !U 4D+
  1514. XMR"/)=0/I  "+=A:+!(M^$HO8 P6)1O"#PP*+PXE&[LR@!@ !?0 U *>@!@ !
  1515. XMFP 7 *>@0@ !M "+=AB+!(M^% ,%/1D N0  ?@%)@W[P ;@  'T!2 O!BT[P
  1516. XM@\$"@_E0N@  ?@%*"] CTG4#Z0  BW8*QP0  "2@!@ !Z0 ' &F,"0 &0B1&
  1517. XM4T-. -6@*@ !\@"+=@J#/ -T ^D  (MV&/\TBW86BP1(4+@! %":     (E&
  1518. XM[.D  $6<!0#,'%8&&Z &  '[ !L 0Z O  $8 8MV"H,\!'0#Z0  BW88_S2+
  1519. XM=A:+!(M^$@,%0%"X 0!0F@    ")1NSI  #]G 4 S"%6!A:@!@ !(0$@ !>@
  1520. XM"0 !0P''1NP  !F@!@ !%@$P !*@!@ !00$% !*,(0 &0B1&24PR  9")$E.
  1521. XM5#0 !D(D1DE35  &0B1-54DT "*@,P !2 &X$ "94E"+1NR:     ,TT-@  
  1522. XMS3V:     )H     )0< @^( 4E":     (E&ZHZ<%@#,"E8'Q!&)' #,%E8(
  1523. XMS!M6"<PH5@K'H @ "1P   " 07*@!@ !40 D >.@@0 !=P&+=A:#/ &X  !]
  1524. XM 4B+=AB#/ &Y  !] 4D+R"/)= /I  "+=A:+!(M^$@,%2#U0 +D  'X!28MV
  1525. XM&(L$BWX4 P5(/1D N@  ?@%*"]$CTG0#Z0  BW8.BP0E!P#1X-'@T>#1X(MV
  1526. XM$ ,$B4;HBW8,@SP N   ?@%(@SP&N0  ?;B,$0 &0B1&0TA2  9")%-#050 
  1527. XM/:!\  'T 0%)(\@CR74#Z0  @SP!= /I  #'1N;: ,=&Y+\ QT;BP #'1N#9
  1528. XM ,=&WL0 QT;<LP#'1MK$ ,=&V+, N+0 4)H     4+@  %":     %"-1M10
  1529. XMF@    "X  !0N,, 4)H     4)H     4(U&T%":     .D  (:<(P#,0%8+
  1530. XMQ$:)( #,2E8,S%16!<19B2  S&%6"\QG5@S,<58%K: *  D@  $    @LEJ<
  1531. XM!@#$ HDD .N@!@ !!0)E .V@=  !; *+=@R#/ )T ^D  ,=&YLD QT;DNP#'
  1532. XM1N+( ,=&X+P QT;>S0#'1MRZ ,=&VLT QT;8N@"XM0!0F@    !0N   4)H 
  1533. XM    4(U&U%":     +@  %"XQ@!0F@    !0F@    !0C4;04)H     Z0  
  1534. XMCYPC ,PX5@O$/HD@ ,Q"5@S,3%8%Q%&)( #,658+S%]6#,QI5@7MH 8  74"
  1535. XM90!]H'0  =P"BW8,@SP#= /I  #'1N;5 ,=&Y+@ QT;BU #'1N"^ ,=&WLT 
  1536. XMQT;<LP#'1MK- ,=&V+, N+4 4)H     4+@  %":     %"-1M10F@    "X
  1537. XM  !0N,8 4)H     4)H     4(U&T%":     .D  !6<(P#,.%8+Q#Z)( #,
  1538. XM0E8,S$Q6!<11B2  S%E6"\Q?5@S,:58%[: &  'E F4 #:!T  %, XMV#(,\
  1539. XM!'0#Z0  QT;FU@#'1N2W ,=&XM, QT;@T #'1M[$ ,=&W+H QT;:Q #'1MBZ
  1540. XM +BT %":     %"X  !0F@    !0C4;44)H     N   4+C# %":     %":
  1541. XM     %"-1M!0F@    #I  ":G", S#A6"\0^B2  S$)6#,Q,5@7$48D@ ,Q9
  1542. XM5@O,7U8,S&E6!>V@!@ !50-E )R@<0 !O .+=@R#/ 5T ^D  ,=&YML QT;D
  1543. XMVP#'1N+; ,=&X-L QT;>WP#'1MS; ,=&VMP QT;8VP"XW0!0F@    !0N   
  1544. XM4)H     4(U&U%":     +@  %"XW@!0F@    !0F@    !0C4;04)H     
  1545. XM()PC ,PX5@O$/HD@ ,Q"5@S,3%8%Q%&)( #,658+S%]6#,QI5@7MH 8  6H"
  1546. XMO0$OH 8  =H"30$OH 8  4H#W0 OH 8  ;H#;0 OH 8  <4#8@ OC D !D(D
  1547. XM4U1220"]H($  2D$_W;FF@    !0BW82BP0%_O]0_W;>B4;.F@    !0F@  
  1548. XM  !0_W;DF@    !0F@    !0C4;*4)H     _W;<F@    !0_W;.N"  4)H 
  1549. XM    4)H     4/]VV)H     4)H     4(U&QE":     /]VXIH     4/]V
  1550. XMSO]?G#4 S 16"\P95@W,'U8,S"A6"\PN5@S,.%8%S$!6"\Q-5@W,4U8,S%Q6
  1551. XM"\QB5@S,;%8%S'16"Z*,"@ '4%)44T-23@ WH&P  :8$=MJ:     %":    
  1552. XM %#_=N":     %":     %"-1L)0F@    "-1LI0_W88_W86C4;H4)H     
  1553. XMBW84BP2+?A@#!07^_XE&P(L%0.D  )"-1L90C4:^4/]V%HU&Z%":     (M&
  1554. XMOD!CG!T S -6#<P)5@S,$E8+S!A6#,PB5@7,-58.S&!6#AN@!@ !\P09 $F@
  1555. XM(P !#@6)1KX[1L!^X(U&PE"-1KY0_W86C4;H4)H     Z0  'IP% ,P85@X7
  1556. XMH 8  ?T!+@,JH$<  2T%BW82_S2X( !0F@    !0C4:X4)H     BW84BP2+
  1557. XM?A@#!4B)1KR+!>D  (U&N%"-1KY0_W86C4;H4)H     BT:^0$6<#0#,"E8-
  1558. XMS!16!<P[5@YXH 8  58%& #FH P  7 %B4:^.T:\?N"VH 8  2L%2P#>C D 
  1559. XM!D(D4U1$3 #(H%\  7@%BW8*@SP ?P/I  "+=AB+!(M^%(O8 P5(B4:V0XO#
  1560. XMZ0  D+@" %"XL0!0F@    !0C4:R4)H     C4:R4(U&L%"-1O!0C4;J4)H 
  1561. XM    C4:R4)H     BT:P0)F<$0#,*U8-S#56!<Q*5@[,4U8/GZ &  &7!3H 
  1562. XM@Z!"  '3!8E&L#M&MGZ_BW82_S2XL0!0F@    !0C4:L4)H     C4:L4(U&
  1563. XML%"-1NY0C4;J4)H     C4:L4)H     /9P1 ,P25@W,'%8%S#%6#LPZ5@\#
  1564. XMH 8  8$%C@!%C D !D(D1DQ%3@#:H&   1$&_W8(F@     +P+D  'X!2?]V
  1565. XM"(E.JIH     !00 BW82.P2Y  !] 4DC3JHCR74#Z0  BW8&@SP N   =0%(
  1566. XM@SP"N0  =0%)"\@CR74#Z0  BW88BP2)1JCI   -G D S 16$,P75A#<H 8 
  1567. XM 6 &"P#HH!(  6T&BW88BP2+?A0#!4B)1JA.H 8  6L&#@#:H#(  7L&BW8&
  1568. XM@SP!?P/I  "-1M10_W8(F@    !0C4;04)H     4(U&I%":     .D  /6<
  1569. XM#0#,$U8,S!U6#,PG5@5]H 8  80&(P"LH"0  :D&N   4/]V")H     4+@ 
  1570. XM %":     %"-1J10F@    #*G!< Q &)( #,"%8,Q Z)( #,$E8,S!Q6!:N@
  1571. XM!@ !IP8@ (R,"0 &0B1&25,R .N@4  !R0:+=A:+!)H     BW82BP2+V(U&
  1572. XMI%")7J*:     "M&HO?8F@    #--#8  ,TZP9H     B4:@C4:D4(U&J%"-
  1573. XM1J!0C4;H4)H     DYP: ,P&5@?,&580S"-6!\0JB28 S#!6$<Q(5@X,H @ 
  1574. XM"28     0.F@!@ !0@;1 $"@!@ !E@%]!4"@!@ !QP%,!4"@3  !%0>-1KA0
  1575. XMF@    "-1L)0F@    "-1M!0F@    "-1M10F@    "-1L90F@    "-1O)0
  1576. XMF@    "-1J10F@    "-1LI0F@    #+G"$ S 56#\P.5@_,%U8/S"!6#\PI
  1577. XM5@_,,E8/S#M6#\Q$5@^7H 8  30 5@#/C D !D(D15A300#.H P  5T'F@  
  1578. XM  #*% !WG 4 S %6$BJ@!@ !,0 R!^^0#P   0A$3U=)3D1/5S,  +J@!P *
  1579. XM  #__P%0C D !D(D0T5.4 #9H D  64'F@    !0G 4 S %6$RF* @ !<P  
  1580. XM      " $0 /87-M7'!R='-C<FXN87-M2(@+  "C!W!R='-C<FZWEC    9$
  1581. XM1U)/55 ,4%)44T-23E]415A4"4-!4D1?1$%4001$051!!$-/1$4%7T1!5$$P
  1582. XMF H  $   &, ! $!M9@' $A<  ,& ;.8!P!(   '!0$,F@0  O\#7I .   "
  1583. XM!U!R=%-C<FX   "-B 0  *(!T92K   "&    !D  0 :  , &P $ !P !0 =
  1584. XM  8 'P ' "  "@ A  P (P - "0 $  E !( )P 3 "@ %@ I !@ *@ : "P 
  1585. XM'0 M "  +@ B "\ )P P "D ,@ K #, +@ T #, -0 V #8 .0 W #L .0 ^
  1586. XM #H 0P [ $8 / !) #T 2P _ $T 0 !. $$ 40!" %( 1 !4 $4 50!& %8 
  1587. XM1P!7 $@ 6 !) %D @J!@  (  %6+[%<>5@:+7@B+/T^+7@J+!TB+7@R+#^,Z
  1588. XMBW<"NP  CL,F]R8   /XT>>X + FBQX  (/C,(/[,'0#N "X)HL6  "#P@:+
  1589. XM7@:+'X[ I":('4?B^0=>'U]=R@@ VIP9 ,@>4 %C ,0E4 %* ,0Q4 $0 ,1!
  1590. XM4 %C !Z* @ !<P           ( ,  I1-%1/3TPN0D%3HX@*  "C!G$T=&]O
  1591. XM;&*()    $UI8W)O<V]F="!1=6EC:T)!4TE#($-O;7!I;&5R(#0N,!*("0  
  1592. XM@4)254XT,5*(!@  H3%#5@>6J@  !T)#7T-/1$4%0DQ!3DL'0D-?5D%24P="
  1593. XM0U]314=3!D1%0E194 9$14)364T'0D-?1$%400="4E]$051!!T)27U-+65,&
  1594. XM0T]-34].!T)#7T1!5$$'3DU!3$Q/0PA%3DU!3$Q/0P5"0U]&5 5"0U]#3@5"
  1595. XM0U]$4P9"0U]304(%0D-?4T$')"1465!%4PDD)%-934)/3%,&1$=23U50"U$T
  1596. XM5$]/3%]#3T1%J9@' &BP 1<" 2Z8!P!H   ) P'LF < :   "@,!ZY@' '@ 
  1597. XM  L# =J8!P!("@ ," 'ZF < 6   #00!]Y@' %@   X$ ?:8!P!(   /!0$$
  1598. XMF < :"P $ 4!MY@' &@# !$% =^8!P!(   2!0$!F < 2 0 $P4!_)@' "  
  1599. XM !4' 228!P @   4!@$FFA@ %O\"_P/_!/\%_P;_!_\(_PG_"O\+_PSVG L 
  1600. XM1 $  0$) @0#!?N,$P #)$%#  0D1$%#  5B)'-E9P#\H @ #        $R<
  1601. XM!@#,  0! 8R@-  !  !B;5$T5$]/3" @                            
  1602. XM                 /__@ #;G!< Q!B$!,0.A 7$$(0(Q""$"<0,@ H" &&,
  1603. XM*0 &0B1305-3  9")$5.4D$ !D(D1DQ%3@ &0B1&24PR  9")$9)4S( B:!+
  1604. XM  $P +@  %"X  !0F@    #I  "Y  ":     ,TU!@  _W8(F@    ":    
  1605. XM ,TT-@  S3KIF@    ":     (MV!LTU',T]BT8&Y)PM ,0!B0  Q 6+!@#,
  1606. XM"58$S!16!<0;B1P S"%6!LPF5@?$+8D@ ,PS5@C,.%8'L: H  D  !<   !#
  1607. XM;W!Y<FEG:'0M,3DY,"U#87)E5V%R90   "!"    0(:<!@#$ HD$  N@!@ !
  1608. XM00   !B,"0 &0B1%6%-! ,Z@#  !=P":     ,H$ '2<!0#, 58),Z &  $^
  1609. XM #\ W) *   ! T-44D   #F,'@ &0B1424U2  M-3U5315-405154P &0B1&
  1610. XM0TU0 *2@7P !?P#I  "Y  ":     )H     B_#--02+=@C-- 3--5[RS3V-
  1611. XM1O!0F@    "+=@:+!"/ =0/I  "0F@    "+\,TU!,TU7NS-/<TU1O+--4;L
  1612. XMS3V:     ';?Z0  Z)P5 ,P'5@7,#%8*S"96"\PX5@K,4E8,LJ &  &S "4 
  1613. XM@8P1  9")$E.2UD !D(D4T--4  =H"H  =H F@    !0N   4)H     =0/I
  1614. XM  ":     %"-1NA0F@    #KVY")G!8 S %6#<0'B20 S M6#LP55@W,'U8$
  1615. XMXJ (  DD       KG 8 Q *)* #GH 8  >P $@!;H"L  0 !S34&  "+=@C-
  1616. XM-03-/9H     =0/I  ":     (OPS34$S35>[,T]IIP. ,0#B2@ S Y6#,P8
  1617. XM5@I>H @ "2@      ">@!@ !%0$0 #.,#0 *34]54T5#3$E#2P!NH!\  2<!
  1618. XMBT;P(\!U ^D  (U&YE"-1N10C4;B4)H     9)P% ,P75@\7H 8  2\!$0 8
  1619. XMH%,  4(!F@    !0C4;>4)H     S35&\LTU1NS-/9H     N   =@%(B]B-
  1620. XM1MY0N   4(E>W)H     N   = %("T;<"T;F"T;D"T;B(\!U ^EO__^<%@#,
  1621. XM 58-S M6!,P:5@S$*XDD ,PR5@ZGH 8  =@ MP#*C D !D(D4U1$3 #(H!8 
  1622. XM 9$!C4;>4)H     C4;H4)H     =YP) ,P%5A#,#E80Y* &  &# !H O* ,
  1623. XM  &C 9H     R@0 1YP% ,P!5@DSH 8  8  *0&OD P   $%1$5,05F"  !M
  1624. XMH < "@  __\!4(P)  9")$-%3E  V: )  &K 9H     $)P% ,P!5A$KB@( 
  1625. XM 7,             @ T "U$T34]54T4N0D%35H@+  "C!W$T;6]U<V7UB"0 
  1626. XM  !-:6-R;W-O9G0@475I8VM"05-)0R!#;VUP:6QE<B T+C 2B D  (%"4E5.
  1627. XM-#%2B 8  *$Q0U8'EJL   ="0U]#3T1%!4),04Y+!T)#7U9!4E,'0D-?4T5'
  1628. XM4P9$14)465 &1$5"4UE-!T)#7T1!5$$'0E)?1$%400="4E]32UE3!D-/34U/
  1629. XM3@="0U]$051!!TY-04Q,3T,(14Y-04Q,3T,%0D-?1E0%0D-?0TX%0D-?1%,&
  1630. XM0D-?4T%"!4)#7U-!!R0D5%E015,))"1364U"3TQ3!D1'4D]54 Q1-$U/55-%
  1631. XM7T-/1$5<F < :'8)%P(!8)@' &@   D# >R8!P!H   * P'KF < >   "P,!
  1632. XMVI@' $A\  P( 8B8!P!8   -! 'WF < 6   #@0!]I@' $@   \% 028!P!H
  1633. XM*@ 0!0&YF < : , $04!WY@' $@  !(% 0&8!P!(!  3!0'\F < (   %0<!
  1634. XM))@' "   !0& 2::&  6_P+_ _\$_P7_!O\'_PC_"?\*_PO_#/:<"P!$ 0 !
  1635. XM 0D"! ,%^XP3  ,D04, !"1$04, !6(D<V5G /R@"  ,        3)P& ,P 
  1636. XM! $!C* T  $  &)M431-3U5312                                  
  1637. XM            __^  +"<%P#$&(0$Q Z$!<00A C$((0)Q R "@( 88PD  9"
  1638. XM)$1$24T !D(D4T%34P &0B1%3E)!  E)3E1%4E)54%0 N*"!  $P #/ 4/\V
  1639. XM  "X @!0N $!4+@  %":     #/ 4/\V  "X @!0N $!4+@  %":     +@ 
  1640. XM %"X  !0F@    #I  "Y  ":     (MV"L<$  "+=@C'!   BW8&QP0  ,<&
  1641. XM   # ,=&]#, C4;T4+@  %"X  !0F@    "A  ") 9Q' ,0%BV  Q!"+3@#,
  1642. XM%%8$Q!V+8 #$*(MB ,PL5@3$,8D  ,0UBW0 S#E6!<Q$5@;$7XL& ,1MBP8 
  1643. XMQ'&+%@#,=58'Q'J+& !^H"  "0  %P   $-O<'ER:6=H="TQ.3DP+4-A<F57
  1644. XM87)E #"<!@#$ HD$  N@$  !K0!&\B/ =0/I  "C  "#G 8 Q J+> "-H 8 
  1645. XM ;0  P"BH"   ;D H0  .T;R=0/I   E 0 CP'4#Z0  BW8*QP0! -"<!@#$
  1646. XM 8MX ):@!@ !S  ' (:@&  !U0"A   E @ CP'4#Z0  BW8&QP0! ).<!@#$
  1647. XM 8MX ):@!@ !X  ' '*@&  !Z0"A   E!  CP'4#Z0  BW8(QP0! 'N<!@#$
  1648. XM 8MX ):@!@ !]  ' %Z@"@ !_0#'!@    "+G 8 Q *+> "5H 8  <( /P!8
  1649. XMH 8  7$ ! #DC D !D(D15A300#.H P  0,!F@    #*!@#EG 4 S %6"#2@
  1650. XM!@ !;@"; %"0$0   0I-3U5314-,24-+<   ]:"!  $+ >D  +D  )H     
  1651. XMBW8(@SP'N   ?@%(BW8*@SP/N0  ?@%)"\B+=@:!//\ N   ?@%("\$CP'0#
  1652. XMZ0  QP8   H QP8     QP8     BW8(BP31X-'@T>#1X-'@T>#1X-'@T>#1
  1653. XMX-'@T>"+=@J+#-'AT>'1X='AT>'1X='A]9P4 ,P'5@;$/8L& ,1#BP@ Q$F+
  1654. XM"@!3H"@  8@!T>$#R(MV!@,,B\&C  #'1O0S (U&]%"X  !0N   4)H     
  1655. XM-YP4 ,0,BPP Q!B+!@#$'(L6 ,P@5@>RH 8  40!9@"NH 8  0\! @!'H P 
  1656. XM :P!F@    #*!@ \G 4 S %6"#2@!@ !# &F *:0$@   0M-3U5314-54E-/
  1657. XM4@X! -R@@0 !M 'I  "Y  ":     (MV!HL$(\!U ^D  (MV#H,\ +@  'X!
  1658. XM2(M^#(,] +D  'X!22/(BW8*@SP N   ?@%((\&+=@B#/ "Y  !^ 4DCR"/)
  1659. XM=0/I  "+=@Z+!-'@T>#1X 7X_XE&](L%T>#1X-'@!?C_B4;RBW8*BP31X-'@
  1660. XMT3J<!0#,!U8&,* ?  $Q N %^/^)1O"+=@B+!-'@T>#1X 7X_XE&[ND  "6@
  1661. XM!@ !!@)$  V@!P !3 +I   AH 8  4H" P *H <  4\"Z0  'J &  ') 8< 
  1662. XM"* D  %2 HMV#HL$B4;TBW8,BP2)1O*+=@J+!(E&\(MV"(L$B4;N>Z &  %0
  1663. XM B  YZ ^  %R L<&   0 (M&\J,  (M&]*,  (M&[J,  (M&\*,  ,=&[#, 
  1664. XMC4;L4+@  %"X  !0F@    #'!@    "*G"T Q *+!@#$"HL* ,00BPP Q!:+
  1665. XM$ #$'(L2 ,0HBP8 Q"R+%@#,,%8'Q#:+>@"ZH 8  4T"70"MH 8  ;@!"@"6
  1666. XMH P  :P"F@    #*"@ WG 4 S %6"#2@!@ !M0'] *:0$P   0Q-3U531458
  1667. XM0TQ51$6W 0 %H($  ;0"Z0  N0  F@    "+=@:+!"/ =0/I  "+=@Z#/ "X
  1668. XM  !^ 4B+?@R#/0"Y  !^ 4DCR(MV"H,\ +@  'X!2"/!BW8(@SP N0  ?@%)
  1669. XM(\@CR74#Z0  BW8.BP31X-'@T> %^/^)1O2+!='@T>#1X 7X_XE&\HMV"HL$
  1670. XMT>#1X-$YG 4 S =6!C"@'P !,0/@!?C_B4;PBW8(BP31X-'@T> %^/^)1N[I
  1671. XM   DH 8  08#1  ,H <  4P#Z0  (* &  %* P, ": '  %/ ^D  !V@!@ !
  1672. XMR0*'  >@)  !4@.+=@Z+!(E&](MV#(L$B4;RBW8*BP2)1O"+=@B+!(E&[GJ@
  1673. XM!@ !4 ,@ .:@5  !<@/'!@  " "+1O2C  "+1O"C  #'1NPS (U&[%"X  !0
  1674. XMN   4)H     QP8   < BT;RHP  BT;NHP  QT;J,P"-1NI0N   4+@  %":
  1675. XM     ).<.P#$ HL& ,0*BPH Q!"+# #$'(L& ,0@BQ8 S"16!\0JBP8 Q#*+
  1676. XM"@#$.(L, ,1$BP8 Q$B+%@#,3%8':: &  %- W, EJ &  &X @P DZ ,  '"
  1677. XM YH     R@H ()P% ,P!5@@TH 8  ;4"$P&.D!(   $+34]54T5,24U)5%.W
  1678. XM @ ^H%L  <H#Z0  N0  F@    "+=@:+!"/ =0/I  "+=@J#/ "X  !^ 4B+
  1679. XM?@B#/0"Y  !^ 4DCR"/)=0/I  "+!-'@T>#1X 7X_XE&](L%T>#1X-'@!?C_
  1680. XMB4;RZ0  I)P% ,P'5@8PH 8  0 $'P VH <  2$$Z0  2J &  $?! , ,Z '
  1681. XM  $D!.D  $>@!@ !WP-& #&@%  !)P2+=@J+!(E&](MV"(L$B4;R:J &  $E
  1682. XM!!  (* L  $W!,<&   $ (M&\J,  (M&]*,  ,=&\#, C4;P4+@  %"X  !0
  1683. XMF@    !LG!X Q *+!@#$"HL* ,00BPP Q!R+!@#$((L6 ,PD5@?>H 8  2($
  1684. XM.P#XH 8  <X#!@""H P  5\$F@    #*!@"&G 4 S %6"#2@!@ !RP.: /&0
  1685. XM$@   0M-3U5314Q/0T%41<T# $&,$0 &0B1&24PR  9")$9)4S( :J!R  %G
  1686. XM!.D  +D  )H     QP8   , QT;T,P"-1O10N   4+@  %":     (MV!HL$
  1687. XM(\!U ^D  *$  )H     S30V  #-- 8  )H     BW8*B02A  ":     ,TT
  1688. XM-@  S30&  ":     (MV"(D$Z0  :IQ& ,P'5@;$#8L& ,0;BP8 Q!^+%@#,
  1689. XM(U8'Q#2+' #,-U8)Q#Z)' #$0XD@ ,Q&5@K$4(L: ,Q35@G$6HD< ,1?B2  
  1690. XMS&)6"B^@#  )'     !!  " /R^@!@ !F 0[ (*@%  !U02A  "+=@J)!*$ 
  1691. XM (MV"(D$ IP+ ,0!BQP Q F+&@![H 8  =,$$ !RH 8  6L$ @#HH P  >4$
  1692. XMF@    #*!@  G 4 S %6"#2@!@ !: 2# &J0%    0U-3U5315!/4TE424].
  1693. XM:@0 XJ!-  'M!.D  +D  )H     BW8&BP2)1O2#?O0 = /I  #'!@    #'
  1694. XM1O(S (U&\E"X  !0N   4)H     H0  BW8&B03'!@    #I  ".G"( S =6
  1695. XM!L0>BP8 Q"R+!@#$,(L6 ,PT5@?$.8L8 ,1"BWH @J &  $'!2T (* Z  $V
  1696. XM!8-^] %T ^D  ,<&   A ,=&\#, C4;P4+@  %"X  !0F@    "A  "+=@:)
  1697. XM!,<&     .D  ,Z<'@#$"XL& ,09BP8 Q!V+%@#,(58'Q":+& #$+XMZ ">@
  1698. XM!@ !/04M .J,%0 &0B121$E-  I)3E1%4E)54%18 )B@@@ !; 6#?O0"= /I
  1699. XM  #'!@  %0#'1NXS (U&[E"X  !0N   4)H     H0  0(E&[#/ 4/]V[+@"
  1700. XM %"X 0%0N   4)H     QP8  !8 O@  NP(  UP*CD0"C,"C  "[ @ #7 J.
  1701. XM1 *+PZ,  ,=&ZC, C4;J4+@  %"X  !0F@    #^G$0 Q N+!@#$&8L& ,0=
  1702. XMBQ8 S"%6!\0FBQ@ Q#N+3@#,/U8+Q$6+)@#$2HM. ,18BS@ Q&:++ #$<HLF
  1703. XM ,1VBSH S'I6#,:@!P !Z@7I  " H 8  7,%> !IH$L  >T%@W[T W0#Z0  
  1704. XMQP8  !< O@  NP(  UP*CD0"C,"C  "[ @ #7 J.1 *+PZ,  ,=&Z#, C4;H
  1705. XM4+@  %"X  !0F@    #I  ".G", Q N+)@#$$(M. ,0>BS@ Q"R++ #$.(LF
  1706. XM ,0\BSH S$!6#.B@!@ !] 4^ "*@@@ !- :#?O0$= /I  #'!@  %0#'1N8S
  1707. XM (U&YE"X  !0N   4)H     H0  0(E&Y#/ 4/]VY+@" %"X 0%0N   4)H 
  1708. XM    QP8  !8 O@  NP(  UP*CD0"C,"C  "[ @ #7 J.1 *+PZ,  ,=&XC, 
  1709. XMC4;B4+@  %"X  !0F@    !CG$0 Q N+!@#$&8L& ,0=BQ8 S"%6!\0FBQ@ 
  1710. XMQ#N+8@#,/U8+Q$6+)@#$2HMB ,18BS@ Q&:++ #$<HLF ,1VBSH S'I6#)Z@
  1711. XM!P !L@;I  "WH 8  3L&> "@H$L  ;4&@W[T!70#Z0  QP8  !< O@  NP( 
  1712. XM UP*CD0"C,"C  "[ @ #7 J.1 *+PZ,  ,=&X#, C4;@4+@  %"X  !0F@  
  1713. XM  #I  #3G", Q N+)@#$$(MB ,0>BS@ Q"R++ #$.(LF ,0\BSH S$!6#-2@
  1714. XM!@ !O 8^ %F@!@ !- 7& 5F@!@ !:@60 5F@!@ !ZP4/ 5F@!@ !,@;( %F@
  1715. XM!@ !LP9' %F@!@ !^@8  %F@!@ !\006 $Z@#  !_ ::     ,H" .N<!0#,
  1716. XM 58(-* &  'N!!0"49 1   !"DU/55-%4D53153P! !4H%0  00'Z0  N0  
  1717. XMF@    "+=@K'!   BW8(QP0  (MV!L<$  #'!@   P#'1O0S (U&]%"X  !0
  1718. XMN   4)H     H0  )0$ (\!U ^D  (MV"L<$ 0"AG!T S =6!L0BBP8 Q#"+
  1719. XM!@#$-(L6 ,PX5@?$/8L8 'Z@!@ !2P<'  "@&  !5 >A   E @ CP'4#Z0  
  1720. XMBW8&QP0!  V<!@#$ 8L8 /:@!@ !7P<' .R@&  !: >A   E!  CP'4#Z0  
  1721. XMBW8(QP0! /6<!@#$ 8L8 /:@!@ !<P<' -B@!@ !" <" $B@#  !? >:    
  1722. XM ,H& &:<!0#, 58(-* &  $%!WT T) 2   !"TU/55-%4T-23TQ,!P< [* _
  1723. XM  &$!^D  +D  )H     QP8  #,UQT;T(0"-1O10N   4+@  %":     (,^
  1724. XM    = /I  "+=@;'!   Z0  99P= ,P'5@;$#8LF ,0;BR8 Q!^+.@#,(U8,
  1725. XMQ"F+3 !)H 8  ;,'"@"5H"<  ;\'BW8&QP0! ,<&   @ ,=&\C, C4;R4+@ 
  1726. XM %"X  !0F@    #!G!0 Q F+!@#$%XL& ,0;BQ8 S!]6![Z@!@ !O0<C '*@
  1727. XM!@ !B <$ ,:@#  !X@>:     ,H"  2<!0#, 58(-* &  &%!V, :I 2   !
  1728. XM"TU/55-%4U1!5%53AP< 5XP1  9")%-423( !D(D1DU)1 !)H($  >H'Z0  
  1729. XMN0  F@    #'!@  ) #'1O0S (U&]%"X  !0N   4)H     N0 !H0  )0#_
  1730. XMF??YB4;R4)H     4+@" %"X_W]0F@    !0C4;N4)H     H0  )?  B4;L
  1731. XMBPX  (/A#XO!B4;JN   4/]V[)H     4+@" %"X_W^.G#P S =6!L0-BP8 
  1732. XMQ!N+!@#$'XL6 ,PC5@?$*XL8 ,PX5@W,1E8.S%!6!<15BQ@ Q%^+& #$:HDD
  1733. XM ,QQ5@UTH H "20  0   "X ^IP& ,0"B2@ YXP1  9")%-#050 !D(D4U1$
  1734. XM3  IH&P  6<(4)H     4)H     4(U&YE":     (U&YE#_=NJ:     %"X
  1735. XM @!0N/]_4)H     4)H     4(U&YE":     (U&[E"-1N90F@    !0_W8&
  1736. XMF@    "-1N90F@    "-1NY0F@    #]G"T S )6#LP(5@_,$E8%S!Y6#<PL
  1737. XM5@[,,E8/S#Q6!<Q)5@_,4E8%S%M6$,QD5A .H 8  >X'$ !4H P  <\(F@  
  1738. XM  #* @ 6G 4 S %6"#2@!@ !ZP?J 'V0$P   0Q-3U53159%4E-)3T[M!P"M
  1739. XMH%0  =<(Z0  N0  F@    "+=@:#/ &X  !U 4B#/@   +D  '4!22/((\EU
  1740. XM ^D  ,<&   ! ,=&]#, C4;T4+@  %"X  !0F@    #'!@   0#I  #(G"( 
  1741. XMS =6!L09BWH Q"V+!@#$.XL& ,0_BQ8 S$-6!\1)BWH _: &  $ "24 *Z!&
  1742. XM  $G"8MV!H,\ +@  '4!2(,^   !N0  =0%)(\@CR74#Z0  QP8   ( QT;R
  1743. XM,P"-1O)0N   4+@  %":     ,<&     *Z<'@#$#HMZ ,0BBP8 Q#"+!@#$
  1744. XM-(L6 ,PX5@?$/HMZ '*@!@ !)0E" .F@!@ !10DB .F@!@ !VP@$ '*@#  !
  1745. XM:0F:     ,H" 'N<!0#, 58(-* &  '8")< XI 3   !#$U/55-%5DE324),
  1746. XM1=H( ->@!P *  #__P%0C D !D(D0T5.4 #9H D  7$)F@    !"G 4 S %6
  1747. XM$2N* @ !<P   /&M 0                                          
  1748. XM                                                            
  1749. XM                                                            
  1750. XM                                                            
  1751. XM                                                            
  1752. XM                                                            
  1753. XM                                                            
  1754. XM                                                            
  1755. XM                                                            
  1756. XM                                                 '%6 $.Q "(F
  1757. XM/8["M[PW$P  AQE/,4D E6D?>,A;8LVDG !_K"S2"$%"4T],551% 0  "6%B
  1758. XM<V]L=71E(0$  T-44FP!!41%3$%9; $(1$]724Y$3U=E   '1V5T4V-R;DD 
  1759. XM"&=E='-C<FXA20  "$E.5#@V3TQ$*@  "6EN=#@V;VQD(2H "4E.5#@V6$],
  1760. XM1"H "4E.5$524E505 X "DE.5$524E505%@.   ':6YT<G!T(0X "DU/55-%
  1761. XM0TQ)0TO. 0 +34]54T5#55)33U+. 0Q-3U5314580TQ51$7. 0 +34]54T5,
  1762. XM24U)5%/. 0M-3U5314Q/0T%41<X!#4U/55-%4$]3251)3T[. 0I-3U5315)%
  1763. XM4T54S@$ "TU/55-%4T-23TQ,S@$+34]54T535$%455/. 0Q-3U53159%4E-)
  1764. XM3T[. 0 ,34]54T5625-)0DQ%S@$ !U!R=%-C<FY/ 0AP<G1S8W)N(4\!  =0
  1765. XM=71S8W)N5P (<'5T<V-R;B%7   (<31M;W5S92'. 0 '<31T;V]L(6P!!W$T
  1766. XM=VEN9"%E                                                    
  1767. XM                                                            
  1768. XM            \D( "0 ! "@ #@ J "H + !) "X 5P P &4 ,@!/ 38 ; $X
  1769. XA ,X!/                     $ !@    $ "  !  $ 
  1770. Xend
  1771. + END-OF-FILE q4t.lib.uu
  1772. chmod 'u=rw,g=,o=' 'q4t.lib.uu'
  1773. set `wc -c 'q4t.lib.uu'`
  1774. count=$1
  1775. case $count in
  1776. 19166)    :;;
  1777. *)    echo 'Bad character count in ''q4t.lib.uu' >&2
  1778.         echo 'Count should be 19166' >&2
  1779. esac
  1780. echo Extracting 'q4t.qlb.uu'
  1781. sed 's/^X//' > 'q4t.qlb.uu' << '+ END-OF-FILE ''q4t.qlb.uu'
  1782. Xbegin 644 q4t.qlb
  1783. XM35J8 3( 90%@ /____]-!0  4^L- !L"'@    $ * !-!3  304X $T%0 !-
  1784. XM!4@ 3050 $T%6 !-!6  305H $T%< !-!7@ 306  $T%B !-!9  3068 $T%
  1785. XMH !-!:@ 306P $T%N !-!<  307( $T%T !-!=@ 307@ $T%Z !-!?  307X
  1786. XM $T%  %-!0@!3040 4T%& %-!2 !304H 4T%, %-!3@!305  4T%2 %-!5 !
  1787. XM3058 4T%8 %-!6@!305P 4T%>@%-!8(!306* 4T%D@%-!9H!306B 4T%J@%-
  1788. XM!;(!306Z 4T%P@%-!<H!3072 4T%X@%-!>H!307R 4T%^@%-!0("304* DT%
  1789. XM$@)-!1H"304B DT%*@)-!3("304Z DT%0@)-!4H"3052 DT%6@)-!6("305J
  1790. XM DT%<@)-!7H"306" DT%B@)-!9("306: DT%H@)-!:H"306R DT%N@)-!<("
  1791. XM307* DT%T@)-!=H"307B DT%Z@)-!?("307\ DT%! --!0P#3044 TT%' --
  1792. XM!20#304L TT%- --!3P#305$ TT%3 --!50#305< TT%9 --!6P#305T TT%
  1793. XM? --!80#306, TT%E --!9P#306D TT%K --!;0#306\ TT%Q --!<P#3074
  1794. XM TT%W --!>0#307L TT%] --!?P#304$!$T%# 1-!10$304<!$T%) 1-!2P$
  1795. XM304T!$T%/ 1-!0, 304. $T%$ !-!1( 3046 $T%' !-!08 2P4Y -8 1@#6
  1796. XM ! !U@ [ =8 5 '6 & !U@!E =8 <@'6 #8"U@!  M8 2@+6 %<"U@!= M8 
  1797. XM9P+6 *8"U@"P M8 N@+6 ,<"U@#- M8 UP+6 !8#U@ @ ]8 *@/6 #<#U@ ]
  1798. XM ]8 1P/6 (8#U@"0 ]8 F@/6 *<#U@"M ]8 MP/6 /8#U@  !-8 "@36 !<$
  1799. XMU@ =!-8 )P36 "\$U@!$!-8 2@36 %,$U@!9!-8 8P36 &L$U@!X!-8 ?@36
  1800. XM (<$U@"-!-8 EP36 )\$U@"K!-8 L036 +H$U@# !-8 R@36 -T$U@ (!=8 
  1801. XM* 76 #D%U@!#!=8 :@76 *4%U@"O!=8 Q 76 ,T%U@#G!=8 \076  8&U@ /
  1802. XM!M8 %P;6 "H&U@"0!M8 F@;6 *0&U@"S!M8 O0;6 ,<&U@#1!M8 Y ;6 .X&
  1803. XMU@#[!M8 $P?6 !P'U@ E!]8 +@?6 #<'U@! !]8 20?6 %('U@!;!]8 8 ?6
  1804. XM &@'U@ * $L%.P!- 48 30%3 $T!6 !- 64 30%J $T!>@!- 8@ 30&- $T!
  1805. XMIP!- ;D 30'3 $T!W0!- >< 30'Q $T!^P!- 1 !30$: 4T!0 %- 44!30%/
  1806. XM 4T!7@%- 78!30&8 4T!H0%- :8!30&N 4T!#@!+!48 : %> &@!:P!H 78 
  1807. XM: &G &@!!@%H 10!: &J 6@!KP%H ;T!: &D F@!KP)H ;T": &8 V@!P -H
  1808. XM <4#: '3 V@!701H 6($: %P!&@!C 1H : $: &O!&@!O 1H <L$: 'H!&@!
  1809. XM]@1H 2,%: %9!6@!CP5H :T%: 'H!6@!+P9H 5<&: %U!F@!L 9H ?<&: '_
  1810. XM!F@!#0=H 3X': %_!V@!C0=H :D': '@!V@!Y0=H ?,': $/"&@!) AH 3((
  1811. XM: $\"&@!70AH 6L(: %Q"&@!>PAH 8<(: &5"&@!FPAH :4(: &R"&@!NPAH
  1812. XM <0(: '-"&@!T@AH > (: $<"6@!80EH 6P): %T"6@!"@ Q!0X ,042 #$%
  1813. XM-0"1 #X D0!( )$ 40"1  @!,  B C  *@(P #(",  Z C  0@(P $H", "/
  1814. XM Y$ 2P21 -0",  M S  40,P %D#, !F S  F ,P /\#, !:!#  F 0P *<$
  1815. XM, #\!#  204P $X%,  )!C                                      
  1816. XM                                                            
  1817. XM          !5B^P>!E97BUX&BP^+=P*[  ".PR:A200\ WX'/ =T">L1D+L 
  1818. XMN.L$D+L L([#OP  \Z1?7@<?7<H"  !5B^P>!E97BUX&BP^+?P*[  ".PR:A
  1819. XM200\ WX'/ =T">L3D+L N.L$D+L L!Z.VP>^  #SI%]>!Q]=R@(  %6+[%<>
  1820. XM5@:+7@B+/T^+7@J+!TB+7@R+#^,ZBW<"NT  CL,F]R9*  /XT>>X + FBQX0
  1821. XM (/C,(/[,'0#N "X)HL68P"#P@:+7@:+'X[ I":('4?B^0=>'U]=R@@ 6%I;
  1822. XM4E#_-LD _S?+58OL@\3BQT;Z" #K"U6+[(/$XL=&^@H B7;DB7[BC%[\G(]&
  1823. XM_HMV"(U^YHM.^OP6!_.E58MV"HL<"O]T ^FQ (#[)70%@/LF=0ZX" !0N +*
  1824. XM4+B#Q%#K!S/ 4+C*!E"*X[#-4 ZXJ@!0%HO$!08 4(M&]"75#U"+1N:+7NB+
  1825. XM3NJ+5NR+=O"+?O*#?OH(=!2!?O;__W0#CE[V@7[X__]T XY&^(MN[IW+58OL
  1826. XMBVX"G(]&]/]V_IV)1N:)7NB)3NJ)5NR+1MZ)1NZ)=O")?O*,7O:,1OB.7OR-
  1827. XM=N8>!XM^!HM.^OSSI8MVY(M^XHOE7<H& (MV"L<$__^+=N2+?N*.7OR+Y5W*
  1828. XM!@  58OL@\3@QT;X" #K"U6+[(/$X,=&^ H B7;BB7[@G(]&_HMV!NCP (E6
  1829. XM_(E&^HMV".CD !Z.VHOPC7[DBT[X_!8'\Z4?58MV"HL<"O]T ^FQ (#[)70%
  1830. XM@/LF=0ZX" !0N +*4+B#Q%#K!S/ 4+C*!E"*X[#-4 ZXQ !0%HO$!08 4(M&
  1831. XM\B75#U"+1N2+7N:+3NB+5NJ+=NZ+?O"#?O@(=!2!?O3__W0#CE[T@7[V__]T
  1832. XM XY&]HMN[)W+58OLBVX"G(]&\O]V_IV)1N2)7N:)3NB)5NJ+1MR)1NR)=NZ)
  1833. XM?O",7O2,1O86'XUVY(Y&_(M^^HM.^/SSI8MVXHM^X(OE7<H& !8?BW8*QP3_
  1834. XM_XMVXHM^X(OE7<H& (M4 HL$P\, .R:V '(@_P;P /]&]LO_#O  _T[V>!6#
  1835. XMQ */!DPSCP9*,_\N2C-5B^SI* %5B^SI$@&/!DHSCP9,,_\.\ #_#A,!C6;Z
  1836. XM7UZ/!NX 7?\N2C.+Q"O!<M M"@!RRSL&M@!RQ8\&2C./!DPS58OL_S;N %97
  1837. XM45 KX8DN[@#_!O  _P83 8O\!AX'T>E!,\#SJP?_+DHS %:+W8O+BQ\['NX 
  1838. XM=?:+V3/)BU\$F)8>CMNM'U[#!H[")HL.(@ 'B\0KP7(R+0H <BT[!K8 <B>/
  1839. XM!E SCP92,U6+[/\V[@!65U$SP% KX8DN[@#_!O  _P83 ?\N4#-5B^SI7 !5
  1840. XMB^SJ) (P %8>4+ *Z(S_CMN6,]N+TUFM"\!T%CO!<P\[PW(+DZUU!#O"=NN2
  1841. XMZ^BMZ^4?"]N27L, NP"4Z;< LS8]LS0]LPL]LP4]LP,]LP<]LTD]LP8R_^F;
  1842. XM +L'D.OX@<=^ 2[_%<N!P8 !B]DN_R?_'L( 7\/_+KX G@#S ^<#PP55!4P"
  1843. XM#P.$ X<#M@)7OP  Z]Q7OP( Z]97OP0 Z]!7OP8 Z\I7OP@ Z\17OPH Z[Y7
  1844. XMOPP Z[A7OPX Z[)7OQ  ZZQ7OQ( ZZ97OQ0 ZZ!7OQ8 ZYI7OQ@ ZY17OQH 
  1845. XMZXY7OQP ZXA7OQX ZX)7OR  Z7O_5[\B .ET_U>_) #I;?]7OR8 Z6;_5[\H
  1846. XM .E?_U>_*@#I6/^[  #J>@$P +L$ .IZ 3  NP@ ZGH!, "[# #J>@$P +L0
  1847. XM .IZ 3  NQ0 ZGH!, !5B^PSP.A*_L<&!@$" (D>" &A"@& /@X! '5*"N1U
  1848. XM1L8&#@'_BUX&BT<"BU<$HP(!B18$ 5+HA?ZC# %:'H[:BQX. !^+7P2'R^,:
  1849. XMBUX&BR^+Q2M&^"M&]BM&]BT* (O@4E'I"?Y=R@( 58OL!HM>!@O;= :#?P( 
  1850. XM=07'1@9&,[,,_W8&FHD#,  +P'4$"])T*5'H^@!;4(X&TP"#PP@FQ$<$C,+H
  1851. XMZ "26"O0=@H][#-U"(/Z!G<#,\"9DS/ !UW* @!5B^R#[ 2+1@8+TG0HL5]1
  1852. XMB]RY 0!348O<4U":8@&1 (/$!HO8BP^+7P* /RYU \8'7T/B]8U>_,=' @  
  1853. XM4%.:7P&1 +,(4)J) S  "])U&8U>_%.:A ,P  :.!M, ,]LF.U<.!W,"DYF-
  1854. XM7OSH7/Z+Y5W* @"S"CVS#%6+[%97!C+_4_]V!IJA 9$ 6U"6,\"9C@;3 (L,
  1855. XMBW0")HL?@^L(@\,()H,_ '09)HM_ E%6\Z9>677K)C@%=>8FQ$<$C,*+RUOH
  1856. XM"_X'7UY=R@( C-DKT;$$T^(#PL.Q [@H,^B7 .C7 ,M7!O8&Z0 "= B:YP,P
  1857. XM .CC !X'N= TO\0T*\\SP-'I\ZMS :J.!M, )HL6(  FBQX> ":.!AP ,_\+
  1858. XMTG0/N0" \ZN,P8#%$([!2G7QB\O1Z?.K<P&JN.PSNO(SB\HKR(/Y!G<6FC0"
  1859. XM,  +P'0'DXO" ]/K!KCL,[KR,Z.Z *,, (D6O !!@ [I  *X.C/H P '7\M6
  1860. XM5S+MEK@# %%64(O<4U.:AP,P %N#1P(#Z#K_EE.:AP,P .@P_Y<[]W0.@^\$
  1861. XMBP4+10)T\O\=Z^Y87@/P6>+(7U[#!KL0 #L>7 !W#(Y' K1)S2&#PP3K[L<&
  1862. XM7  ,  ?#5E<&'HL^UP"#/ML  '10,\!0FK8", "+#M4 "]N<= 0KWX?9H=L 
  1863. XM'@>.V#/VT>GSI7,!I)UT"@/R _J+RRO.\Z0&'XX&TP FBQ8: ":+'A@ )HX&
  1864. XM%@".'N, Z)H ZPJ:' (P )I5!3  'P=?7L-04U%25E<&'J'5  O =$2+R#/2
  1865. XMN]D Z*#\"\!T-HX&VP S_XLVUP!!T>GSI8X&TP FBQ8: ":A&  [PG4$"\!T
  1866. XM)(O(N^$ Z'#\"\!U"+O9 .AM_.L0B]F+#N, )HX>%@".P>@D !\'7UY:65M8
  1867. XMRX,^VP  = :[V0#H1?R#/N,  '0&N^$ Z#C\RS/V,_\+TG06N0" \Z6,P8#%
  1868. XM$([!C-F Q1".V4IUZHO+T>GSI7,!I,.:1 (P ,L                     
  1869. XM     +@!3,TA              #-/^S-/^W-/_\OS3__,,T__S&:-P"1 ,T_
  1870. XM_S*:00"1 ,O-/_\SFDH D0#-/_\TFE, D0#-/_\U            S3\ S3\&
  1871. XMS3\'S3\)S3\/S3\3S3\4S3\RS3\SS3\TS3\US3\VS3\WS3\XS3\YS3] S3]!
  1872. XMS3]"S3]%S3]&S3]'S3](S3])S3]*S3]+S3].S3]0S3]1S3]2S3]3S3]6S3]7
  1873. XMS3]8S3]9S3]:S3];S3]BS3]CS3]DS3]ES3]FS3]HS3]IS3]JS3]KS3]LS3]N
  1874. XMS3]PS3]QS3]RS3]SS3]TS3]US3]VS3]WS3]YS3^&S3^'S3^,S3^-S3^/S3^0
  1875. XMS3^1S3^3S3^4S3^5S3^6S3^7S3^8S3^CS3^DS3^ES3^FS3^GS3^MS3^NS3^Q
  1876. XMS3^RS3^SS3^TS3^US3^VS3^[S3^\S3_!S3_"S3_#S3_$S3_%S3_&S3_+S3_,
  1877. XMS3_-S3_.S3_1S3_2S3_3S3_6S3_7S3_8S3_9S3_:S3_;S3_<S3_=S3_>S3_?
  1878. XMS3_@S3_AS3_BS3_FS3_GS3_JS3_KS3_NS3_RS3_US3_YS3_ZS3__!,T__P7-
  1879. XM/_\'S3__",T__PG-/_\*S3__#<T__P[-/_\;         ,T__Q7-/_\6S3__
  1880. XM%\T__QC-/_\9S3__<__QS-/_\=S3__'LT__Q_-/_\@S3__(<T__R+-/_\C
  1881. XMS3__),T__R7-/_\FS3__)\T__RC-/_\IS3__*LT__RO-/_\LS3__+<T__RX 
  1882. XM              #-/P'-/P+-/P/-/P7-/PS-/Q'-/Q+-/Q7-/QC-/QG-/QK-
  1883. XM/QO-/QS-/QW-/Q[-/Q_-/R#-/R'-/R+-/R/-/R3-/R7-/R;-/R?-/RC-/RG-
  1884. XM/RK-/RO-/RS-/RW-/R[-/R_-/S#-/S'-/SK-/SO-/SS-/SW-/S[-/S_-/T/-
  1885. XM/T3-/TS-/TW-/T_-/U3-/U7-/US-/UW-/U[-/U_-/V?-/V_-/WC-/W[-/W_-
  1886. XM/X#-/X'-/X+-/X/-/X3-/X7-/Y+-/YG-/YK-/Z#-/ZG-/ZK-/ZO-/ZS-/Z_-
  1887. XM/[#-/[?-/[C-/[G-/[K-/\?-/\C-/\G-/\K-/\_-/]#-/]3-/]7-/_\&S3__
  1888. XM#\T__Q#-/_\1S3__$LT__Q/-/_\4S3__-LT__S?-/_\XS3__.<T__SKJ/ (P
  1889. XM  !5B^Q65P:#?@H =3B_# "+5@B+1@9(=0?H4P!R)^M(BS9< $AT$3OW= V+
  1890. XM1 *)1@Y6Z#H 7G,P@\8$@?Y< ',$"])U!KC__YGK'8O:@\,/T=NQ ]/KM$C-
  1891. XM(7+IDHD$B50"B39< #/ !U]>B^5=RXM.#HOW.4P"= R#Q@2!_EP =?+YZRR+
  1892. XMV@,<<B:+TX[!._=U"#D>O !S$^L6@\,/T=O1Z]'KT>NT2LTA<@62AP2+T<-5
  1893. XMB^P6'^I4 3      8FQ1-%=)3D0@(   DC1@,_(S        8#,         
  1894. XM-             #__X 0Z3('N58 FFL , "X #10C4;R4)I? 9$ BW8*@SP 
  1895. XM?P/I) &#/ &X  !U 4B#/ .Y  !U 4D+R"/)=0/I$0"+=A:+! 7^_XE&\(E&
  1896. XM[NDU (MV"H,\ K@  '4!2(,\!+D  '4!20O((\EU ^D7 (MV%HL$BWX2B]@#
  1897. XM!8E&\(/# HO#B4;NBW88BP2+?A0#!3T9 +D  'X!28-^\ &X  !] 4@+P8M.
  1898. XM\(/! H/Y4+H  'X!2@O0(])U ^D' (MV"L<$  "+=@J#/ -T ^D; (MV&/\T
  1899. XMBW86BP1(4+@! %":MP"1 (E&[.DP (MV"H,\!'0#Z2  BW88_S2+=A:+!(M^
  1900. XM$@,%0%"X 0!0FK< D0")1NSI!0#'1NP  +@0 )E24(M&[)H( I$ S30V'#3-
  1901. XM/9HD I$ FA0"D0 E!P"#X@!24)H% 9$ B4;JBW86@SP!N   ?0%(BW88@SP!
  1902. XMN0  ?0%)"\@CR70#Z7T%BW86BP2+?A(#!4@]4 "Y  !^ 4F+=AB+!(M^% ,%
  1903. XM2#T9 +H  'X!2@O1(])T ^E,!8MV#HL$)0< T>#1X-'@T>"+=A #!(E&Z(MV
  1904. XM#(,\ +@  'X!2(,\!KD  'T!22/((\EU ^DN X,\ 70#Z64 QT;FV@#'1N2_
  1905. XM ,=&XL  QT;@V0#'1M[$ ,=&W+, QT;:Q #'1MBS +BT %":=0"1 %"X(#10
  1906. XMFF(!D0!0C4;44)I? 9$ N" T4+C# %":=0"1 %":8@&1 %"-1M!0FE\!D0#I
  1907. XMO0&+=@R#/ )T ^EE ,=&YLD QT;DNP#'1N+( ,=&X+P QT;>S0#'1MRZ ,=&
  1908. XMVLT QT;8N@"XM0!0FG4 D0!0N" T4)IB 9$ 4(U&U%":7P&1 +@@-%"XQ@!0
  1909. XMFG4 D0!0FF(!D0!0C4;04)I? 9$ Z4T!BW8,@SP#= /I90#'1N;5 ,=&Y+@ 
  1910. XMQT;BU #'1N"^ ,=&WLT QT;<LP#'1MK- ,=&V+, N+4 4)IU )$ 4+@@-%":
  1911. XM8@&1 %"-1M10FE\!D0"X(#10N,8 4)IU )$ 4)IB 9$ 4(U&T%":7P&1 .G=
  1912. XM (MV#(,\!'0#Z64 QT;FU@#'1N2W ,=&XM, QT;@T #'1M[$ ,=&W+H QT;:
  1913. XMQ #'1MBZ +BT %":=0"1 %"X(#10FF(!D0!0C4;44)I? 9$ N" T4+C# %":
  1914. XM=0"1 %":8@&1 %"-1M!0FE\!D0#I;0"+=@R#/ 5T ^EB ,=&YML QT;DVP#'
  1915. XM1N+; ,=&X-L QT;>WP#'1MS; ,=&VMP QT;8VP"XW0!0FG4 D0!0N" T4)IB
  1916. XM 9$ 4(U&U%":7P&1 +@@-%"XW@!0FG4 D0!0FF(!D0!0C4;04)I? 9$ _W;F
  1917. XMFG4 D0!0BW82BP0%_O]0_W;>B4;.FHD!D0!0FF(!D0!0_W;DFG4 D0!0FF(!
  1918. XMD0!0C4;*4)I? 9$ _W;<FG4 D0!0_W;.N"  4)J) 9$ 4)IB 9$ 4/]VV)IU
  1919. XM )$ 4)IB 9$ 4(U&QE":7P&1 /]VXIIU )$ 4/]VSO]VVIJ) 9$ 4)IB 9$ 
  1920. XM4/]VX)IU )$ 4)IB 9$ 4(U&PE":7P&1 (U&RE#_=AC_=A:-1NA0F@H !P"+
  1921. XM=A2+!(M^& ,%!?[_B4; BP5 Z1D D(U&QE"-1KY0_W86C4;H4)H*  < BT:^
  1922. XM0(E&OCM&P'[@C4;"4(U&OE#_=A:-1NA0F@H !P#I2P"+=A+_-+@@ %":B0&1
  1923. XM %"-1KA0FE\!D0"+=A2+!(M^& ,%2(E&O(L%Z1@ C4:X4(U&OE#_=A:-1NA0
  1924. XMF@H !P"+1KY B4:^.T:\?N"+=@J#/ !_ ^F. (MV&(L$BWX4B]@#!4B)1K9#
  1925. XMB\/I.@"0N ( 4+BQ %":B0&1 %"-1K)0FE\!D0"-1K)0C4:P4(U&\%"-1NI0
  1926. XMF@H !P"-1K)0FGH!D0"+1K! B4:P.T:V?K^+=A+_-+BQ %":B0&1 %"-1JQ0
  1927. XMFE\!D0"-1JQ0C4:P4(U&[E"-1NI0F@H !P"-1JQ0FGH!D0#_=@B:DP"1  O 
  1928. XMN0  ?@%)_W8(B4ZJFI, D0 %! "+=A([!+D  'T!22-.JB/)=0/IT0"+=@:#
  1929. XM/ "X  !U 4B#/ *Y  !U 4D+R"/)=0/I"P"+=AB+!(E&J.D. (MV&(L$BWX4
  1930. XM P5(B4:HBW8&@SP!?P/I(P"-1M10_W8(FF(!D0!0C4;04)IB 9$ 4(U&I%":
  1931. XM7P&1 .D@ +@@-%#_=@B:8@&1 %"X(#10FF(!D0!0C4:D4)I? 9$ BW86BP2:
  1932. XM" *1 (MV$HL$B]B-1J10B5ZBFI, D0 K1J+WV)H( I$ S30V)C3-.L&:$ *1
  1933. XM (E&H(U&I%"-1JA0C4:@4(U&Z%":"@ ' (U&N%":>@&1 (U&PE":>@&1 (U&
  1934. XMT%":>@&1 (U&U%":>@&1 (U&QE":>@&1 (U&\E":>@&1 (U&I%":>@&1 (U&
  1935. XMRE":>@&1 )H\ #  RA0 FB, D0        !B;5$T5$]/3" @  "B-&8S\C, 
  1936. XM      !@,P       # T             /__@ "X,#10N&PS4)I? 9$ Z3\ 
  1937. XMN0  FFL , #--09,-/]V")J3 )$ F@@"D0#--#90-,TZZ9H0 I$ F@@"D0"+
  1938. XM=@;--1S-/8M&!IH\ #  R@0 Z2D!N1H FFL , ":FP&1 (OPS34$BW8(S30$
  1939. XMS35>\LT]C4;P4)J'!V@!BW8&BP0CP'4#Z24 D)J; 9$ B_#--03--5[LS3W-
  1940. XM-4;RS35&[,T]FN4!D0!VW^FW )K, )$ 4+A4-%":U0&1 '4#Z1( FLP D0!0
  1941. XMC4;H4)I? 9$ Z]N0S34&6#2+=@C--03-/9KE 9$ =0/I$ ":FP&1 (OPS34$
  1942. XMS35>[,T]BT;P(\!U ^D1 (U&YE"-1N10C4;B4)IP &@!FLP D0!0C4;>4)I?
  1943. XM 9$ S35&\LTU1NS-/9KE 9$ N   =@%(B]B-1MY0N%0T4(E>W)K5 9$ N   
  1944. XM= %("T;<"T;F"T;D"T;B(\!U ^EO_XU&WE":>@&1 (U&Z%":>@&1 )H\ #  
  1945. XMR@0 FB, D0!B;5$T34]54T4@  "R-' S\C,       !@,P       & T    
  1946. XM         /__@  SP%#_-M SN ( 4+@! 5"XOC-0FFP D0 SP%#_-M SN ( 
  1947. XM4+@! 5"XTC-0FFP D0"X8#10N.0S4)I? 9$ Z9L N00 FFL , "+=@K'!   
  1948. XMBW8(QP0  (MV!L<$  #'!G8S P#'1O0S (U&]%"X=C-0N(8S4)H"  X H8@S
  1949. XMB4;R(\!U ^D# */H,Z'H,SM&\G4#Z3\ )0$ (\!U ^D' (MV"L<$ 0"AZ#,E
  1950. XM @ CP'4#Z0< BW8&QP0! *'H,R4$ "/ =0/I!P"+=@C'! $ QP;H,P  FCP 
  1951. XM, #*!@#II@"Y @"::P P (MV"(,\![@  'X!2(MV"H,\#[D  'X!20O(BW8&
  1952. XM@3S_ +@  'X!2 O!(\!T ^EF ,<&=C,* ,<&>#,  ,<&>C,  (MV"(L$T>#1
  1953. XMX-'@T>#1X-'@T>#1X-'@T>#1X-'@BW8*BPS1X='AT>'1X='AT>'1X='A \B+
  1954. XM=@8##(O!HWPSQT;T,P"-1O10N'8S4+B&,U": @ . )H\ #  R@8 Z?T N0H 
  1955. XMFFL , "+=@:+!"/ =0/IAP"+=@Z#/ "X  !^ 4B+?@R#/0"Y  !^ 4DCR(MV
  1956. XM"H,\ +@  'X!2"/!BW8(@SP N0  ?@%)(\@CR74#Z40 BW8.BP31X-'@T> %
  1957. XM^/^)1O2+!='@T>#1X 7X_XE&\HMV"HL$T>#1X-'@!?C_B4;PBW8(BP31X-'@
  1958. XMT> %^/^)1N[I P#I70#I( "+=@Z+!(E&](MV#(L$B4;RBW8*BP2)1O"+=@B+
  1959. XM!(E&[L<&=C,0 (M&\J-Z,XM&]*-\,XM&[J. ,XM&\*.",\=&[#, C4;L4+AV
  1960. XM,U"XAC-0F@( #@#'!NHS  ":/  P ,H* .D3 ;D, )IK #  BW8&BP0CP'4#
  1961. XMZ8< BW8.@SP N   ?@%(BWX,@ST N0  ?@%)(\B+=@J#/ "X  !^ 4@CP8MV
  1962. XM"(,\ +D  'X!22/((\EU ^E$ (MV#HL$T>#1X-'@!?C_B4;TBP71X-'@T> %
  1963. XM^/^)1O*+=@J+!-'@T>#1X 7X_XE&\(MV"(L$T>#1X-'@!?C_B4;NZ0, Z7, 
  1964. XMZ2  BW8.BP2)1O2+=@R+!(E&\HMV"HL$B4;PBW8(BP2)1N['!G8S" "+1O2C
  1965. XM>C.+1O"C?#/'1NPS (U&[%"X=C-0N(8S4)H"  X QP9V,P< BT;RHWHSBT;N
  1966. XMHWPSQT;J,P"-1NI0N'8S4+B&,U": @ . )H\ #  R@H Z9H N08 FFL , "+
  1967. XM=@:+!"/ =0/I1@"+=@J#/ "X  !^ 4B+?@B#/0"Y  !^ 4DCR"/)=0/I'P"+
  1968. XM!-'@T>#1X 7X_XE&](L%T>#1X-'@!?C_B4;RZ0, Z3L Z1  BW8*BP2)1O2+
  1969. XM=@B+!(E&\L<&=C,$ (M&\J-Z,XM&]*-\,\=&\#, C4;P4+AV,U"XAC-0F@( 
  1970. XM#@":/  P ,H& .F# +D" )IK #  QP9V,P, QT;T,P"-1O10N'8S4+B&,U":
  1971. XM @ . (MV!HL$(\!U ^D[ *&,,YH( I$ S30V?#3-- : -)H0 I$ BW8*B02A
  1972. XMBC.:" *1 ,TT-GPTS30&@#2:$ *1 (MV"(D$Z1  H8PSBW8*B02ABC.+=@B)
  1973. XM!)H\ #  R@8 Z10"N18 FFL , "+=@:+!(E&](-^] !T ^DM ,<&=C,  ,=&
  1974. XM\C, C4;R4+AV,U"XAC-0F@( #@"AB#.+=@:)!,<&ZC,  .G& 8-^] %T ^DM
  1975. XM ,<&=C,A ,=&\#, C4;P4+AV,U"XAC-0F@( #@"AB#.+=@:)!,<&ZC,  .F0
  1976. XM 8-^] )T ^EX ,<&=C,5 ,=&[C, C4;N4+AV,U"XAC-0F@( #@"AB#- B4;L
  1977. XM,\!0_W;LN ( 4+@! 5"XOC-0FC(#D0#'!I8S%@"^OC.[ @ #7 J.1 *,P*.H
  1978. XM,[L"  -<"HY$ HO#HYPSQT;J,P"-1NI0N)8S4+BJ,U":#P . .D/ 8-^] -T
  1979. XM ^D^ ,<&EC,7 +Z^,[L"  -<"HY$ HS HZ@SNP(  UP*CD0"B\.CG#/'1N@S
  1980. XM (U&Z%"XEC-0N*HS4)H/  X Z<@ @W[T!'0#Z7@ QP9V,Q4 QT;F,P"-1N90
  1981. XMN'8S4+B&,U": @ . *&(,T")1N0SP%#_=N2X @!0N $!4+C2,U":,@.1 ,<&
  1982. XMEC,6 +[2,[L"  -<"HY$ HS HZ@SNP(  UP*CD0"B\.CG#/'1N(S (U&XE"X
  1983. XMEC-0N*HS4)H/  X Z4< @W[T!70#Z3X QP:6,Q< OM(SNP(  UP*CD0"C,"C
  1984. XMJ#.[ @ #7 J.1 *+PZ.<,\=&X#, C4;@4+B6,U"XJC-0F@\ #@#I  ":/  P
  1985. XM ,H" .E] +D" )IK #  BW8*QP0  (MV",<$  "+=@;'!   QP9V,P, QT;T
  1986. XM,P"-1O10N'8S4+B&,U": @ . *&(,R4! "/ =0/I!P"+=@K'! $ H8@S)0( 
  1987. XM(\!U ^D' (MV!L<$ 0"AB#,E!  CP'4#Z0< BW8(QP0! )H\ #  R@8 Z6, 
  1988. XMN00 FFL , #'!I8S,S7'1O0A (U&]%"XEC-0N*HS4)H/  X @SZ\,P!T ^D*
  1989. XM (MV!L<$  #I(P"+=@;'! $ QP9V,R  QT;R,P"-1O)0N'8S4+B&,U": @ .
  1990. XM )H\ #  R@( Z>H N1  FFL , #'!G8S) #'1O0S (U&]%"X=C-0N(8S4)H"
  1991. XM  X N0 !H8@S)0#_F??YB4;R4)I] 9$ 4+@" %"X_W]0FID D0!0C4;N4)I?
  1992. XM 9$ H8@S)?  B4;LBPZ(,X/A#XO!B4;JN(0T4/]V[)I] 9$ 4+@" %"X_W]0
  1993. XMFID D0!0FF(!D0!0C4;F4)I? 9$ C4;F4/]VZII] 9$ 4+@" %"X_W]0FID 
  1994. XMD0!0FF(!D0!0C4;F4)I? 9$ C4;N4(U&YE":8@&1 %#_=@::7P&1 (U&YE":
  1995. XM>@&1 (U&[E":>@&1 )H\ #  R@( Z9< N00 FFL , "+=@:#/ &X  !U 4B#
  1996. XM/NHS +D  '4!22/((\EU ^DE ,<&=C,! ,=&]#, C4;T4+AV,U"XAC-0F@( 
  1997. XM#@#'!NHS 0#I0@"+=@:#/ "X  !U 4B#/NHS ;D  '4!22/((\EU ^DB ,<&
  1998. XM=C," ,=&\C, C4;R4+AV,U"XAC-0F@( #@#'!NHS  ":/  P ,H" )HC )$ 
  1999. XM             !<S &L!, !C 3  NP P    $P!83T)83T584$)84$580T)8
  2000. XM0T5824)8245#3TU-3TX& $ S                                    
  2001. XM                                                            
  2002. XM                                                            
  2003. XM                                                            
  2004. XM                           7  0T0V]P>7)I9VAT+3$Y.3 M0V%R95=A
  2005. XM<F4   " 00$ )#0@L@   $         7 #0T0V]P>7)I9VAT+3$Y.3 M0V%R
  2006. XM95=A<F4    @0@   $   %@T           7 &0T0V]P>7)I9VAT+3$Y.3 M
  2007. XM0V%R95=A<F4     00  @#\! (@T+@        #__P$                 
  2008. XM__\!                 /__ 0   -8   !- 0  : $                 
  2009. XM    ZA  D0 "=6PB '0!]@(    "307("  "       "      $ 0 22 Y$ 
  2010. XM 0!(!$,$D0 ! % $C .1  $ 5@00 )$  0!<!#, U@ ! &4$!@ -  $ ;@1#
  2011. XM!)$  0!W!'@#D0 ! ($$0 !- 0$ A03P 9$  0"1!!  D0 ! )P$= .1  $ 
  2012. XMJ@1P Y$  0"V! \ #@ ! ,$$MP)H 0$ S02" $T! 0#3!$4 D0 ! -\$*@"1
  2013. XM  $ Z 1. )$  0#R!(P#D0 ! /D$.P"1  $ !07:"&@! 0 2!28 D0 ! !P%
  2014. XM @ .  $ )@4R )$  0 O!2X D0 ! #L%< !H 0$ 1@4&!C   0!0!0P  P !
  2015. XM %@%"@ >  $ 804. 6@! 0!M!<T#: $! 'D%%P >  $ @P5J!&@! 0"1!>T'
  2016. XM: $! )X%\@$P  $ J 6W 6@! 0"U!? $: $! , %!P=H 0$ S 4      0#4
  2017. XM!0H !P ! -P%AP=H 0   @#H!= T  (" .T%RP   @( \048,P " @#Z!<0T
  2018. XM  ("  $&RP   @( !@8" 0 " @ /!@P!  (" !@&!@$  @( (08* 0 " @ J
  2019. XM!M,   (" #4&     @( / :>   "!0!%!G:8   " % &=P   @( 5P8"   "
  2020. XM @!D!EP   (" &P&#    @( =09<   " @!_!EX   (" (D&J    @( D@:J
  2021. XM   " @"<!JP   (" *8&"@   @( L@9K   " @"\!@8   (" ,4&"    @( 
  2022. XMS@:X   " @#9!J    (" .$&@@   @( [ 9_   " @#Z!H    ("  @';P  
  2023. XM @( #@>O   " @ 6!X0   (" !X'@@   @( )@>&   " @ O!W\   (" #D'
  2024. XM@    @( 0P>!   " @!,!W\   (" %@'K@   @( 8@>P   " @!K!Z(   ("
  2025. XM '0'?0   @( >@=[   " @"#!WD   (" (X'F@   @( E@><   "   # )X'
  2026. XM      , JP<,  ,  P"X!PH !P # ,4'!@ -  , TP<"  X  P#?!PH '@ #
  2027. XM .T'"  P  , \@<  )$  P#X!P  U@ #  0(  !- 0, $ @  &@! P ="   
  2028. XM  (# "8(     @, +@@    " P S" @ ,04# #D("@ T!0, /@@$ #4% P!"
  2029. XM" 0 -04# $4(!  U!0, 20@$ #4% P!-" 0 -04# % (!  U!0, 5 @$ #4%
  2030. XM P!8" 0 -04# %L(!  U!0, 7P@  #8% P!G"   -@4$ &\(   V!0, =@@ 
  2031. XM #8%! !^" P /@4$ (8( @ _!0, CP@" #\% P"5"   0 4# )L(  !)!0, 
  2032. XMH0@$ $L% P"H" 0 2P4# *X(! !,!0, L@@$ $P% P"U" 0 3 4# +D(  !-
  2033. XM!0, OP@  $T%  !?8G)K8W1L %]E>&5C=F4 7V5X:70 7VUA:6X 1$]724Y$
  2034. XM3U< 04)33TQ55$4 7W-P87=N=F4 7U1%6%1?14Y$ $-44@!?5$585%]35$%2
  2035. XM5 !?7V%U;'-T87)T %]?0D1E4F5G4W1A8VL 7U]"4F5G4W1A8VL 24Y415)2
  2036. XM55!46 !-3U5314Q)34E44P!$14Q!60!?7V%M<V=?97AI= !?7V-H:W-T:P!?
  2037. XM7V-I;G1$258 7U]E>&ET %]?1DU31U]415A4 $U/55-%5DE324),10!?7V9P
  2038. XM<F5S970 24Y415)255!4 %]?9G!T<F%P %]?;G5L;&-H96-K $U/55-%0TQ)
  2039. XM0TL 4V5T545V96YT %!U='-C<FX 24Y4.#9/3$0 34]54T5#55)33U( 34]5
  2040. XM4T5,3T-!5$4 24Y4.#983TQ$ $U/55-%4$]3251)3TX 34]54T5615)324].
  2041. XM %]?0E)53D524@!-3U5314580TQ51$4 34]54T5215-%5 !-3U5315-#4D],
  2042. XM3 !'97138W)N %!25%-#4DX 34]54T535$%455, 7V5N9  D04, 8E]53%9A
  2043. XM<G, 7V5D871A "1$04, 8E]E<G)A9'( 8E]E<G)L:6X 8E]E<G)M;V0 8E]E
  2044. XM<G)N=6T 8E]53%-Y;5-E9P!35$M(45$ 7V5N=FER;VX 7U]A8W)T=7-E9 !?
  2045. XM97)R;F\ 7U]A86QT<W1K;W9R %]?86)R:W  7U]A8G)K=&( 7U]A8G)K=&)E
  2046. XM %]?86-F:6YF;P!?7V%C;61L;@!?7V%C;61S96< 7U]A96YV<V5G %]?865X
  2047. XM:71?<G1N %]?86EN=&1I=@!?7V%S:7ID<P!?7V%T;W!S< !?7V)P0D-?4T%"
  2048. XM %]?8VAI;&0 7U]D;W-E<G)N;P!?7V1O<W9E<FUA:F]R %]?9&]S=F5R;6EN
  2049. XM;W( 7U]F86, 7U]I;G1N;P!?7VYF:6QE %]?;W-E<G( 7U]O<V9I;&4 7U]O
  2050. XM<VUA:F]R %]?;W-M:6YO<@!?7V]S;6]D90!?7V]S=F5R<VEO;@!?7V]V;&9L
  2051. XM86< 7U]O=FQV96, 7U]P9VUP='( 7U]P<W  7U]P<W!A9'( 7U]U;6%S:W9A
  2052. XM; !?7U]A<F=C %]?7V%R9W8 1T544T-23E]415A4 %!55%-#4DY?5$585 !0
  2053. XM4E130U).7U1%6%0 04)33TQ55$5?5$585 !)3E124%1?5$585 !)3E0X-D],
  2054. XM1%]415A4 $-/1$4 7U1%6%0 431724Y$7T-/1$4 43143T],7T-/1$4 431-
  2055. XM3U5315]#3T1% $9!4E]$051! $9!4E]"4U, 3E5,3 !?1$%400!?0E-3 %A)
  2056. XM0@!820!8244 6%!" %A0 %A010!80T( 6$, 6$-% $)27T1!5$$ 0E)?4TM9
  2057. XM4P!#3TU-3TX 0D-?1$%400!.34%,3$]# $5.34%,3$]# $)#7T94 $)#7T-.
  2058. XM $)#7T13 $)#7U-!0@!"0U]300!83T( 6$\ 6$]% %-404-+ %-934)/3   
  2059. X! $)#
  2060. Xend
  2061. + END-OF-FILE q4t.qlb.uu
  2062. chmod 'u=rw,g=,o=' 'q4t.qlb.uu'
  2063. set `wc -c 'q4t.qlb.uu'`
  2064. count=$1
  2065. case $count in
  2066. 17142)    :;;
  2067. *)    echo 'Bad character count in ''q4t.qlb.uu' >&2
  2068.         echo 'Count should be 17142' >&2
  2069. esac
  2070. exit 0
  2071.