home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / csbruce / zed077.uua < prev   
Text File  |  1993-12-24  |  38KB  |  684 lines

  1. zed-128 VERSION 0.77.00  [fEBRUARY 16, 1993]
  2.  
  3. hERE IS A TEXT EDITOR PROGRAM FOR THE cOMMODORE 128 80-COLUMN SCREEN THAT i AM
  4. CURRENTLY WORKING ON.  it is not complete, BUT i THINK THAT IT IS COMPLETE
  5. ENOUGH TO BE QUITE USEFUL.  tO USE IT, JUST load AND run THE "zed-128" BINARY
  6. FILE.  bE SURE TO SAVE IT IN prg FORMAT.
  7. ==============================================================================
  8. nEW FEATURES OF VERSION 0.77 OVER VERSION 0.75:
  9.  
  10. wELL, REALLY NOT MUCH.  tHE BUG WITH LOADING A FILE THAT IS TOO LARGE FROM A
  11. NON-BURST DEVICE CAUSING THE MACHINE TO CRASH HAS BEEN FIXED.  a COUPLE OF
  12. OTHER MINOR BUGS HAVE BEEN FIXED.
  13.  
  14. aLSO, ct-^ (eNTER cOMMODORE dos COMMAND) HAS BEEN IMPLEMENTED.  tHIS IS VERY
  15. USEFUL FOR cmd DRIVE USERS OUT THERE.
  16. ==============================================================================
  17. hERE IS A SUMMARY OF zED'S IMPORTANT FEATURES:
  18.  
  19. - wORKS WITH *big* TEXT FILES.  iT GIVES OVER 100k BYTES FREE FOR THE
  20.   UNEXPANDED 128 AND ALMOST 630k BYTES FREE WITH A 512k ram EXPANDER.  iT
  21.   AUTO-DETECTS WHETHER YOU HAVE A ram EXPANDER AND SUPPORTS UP TO 8 mEGS.
  22.  
  23. - 100% UNADULTERATED MACHINE CODE WITH HIGH-SPEED vdc ACCESSING.
  24.  
  25. - uSES bURST COMMANDS FOR READING 1571 AND 1581 FILES.  rEADS ABOUT 3,500
  26.   BYTES/SEC FROM A 1571 AND ABOUT 6,100 BYTES/SEC FROM A 1581.  wORKS WITH
  27.   NON-BURST DEVICES AS WELL.
  28.  
  29. - uSES A DYNAMICALLY ALLOCATED DATA STRUCTURE TO HOLD THE EDITOR DOCUMENT AND
  30.   THE "kILL bUFFER", SO THERE ARE NO FIXED LIMITS ON THE SIZE OF EACH; THEY
  31.   BOTH CAN USE ALL OF THE MEMORY THAT IS AVAILABLE.
  32.  
  33. - wILL OPTIONALLY EXPAND tab CHARACTERS INTO SPACES WHILE LOADING A FILE AND
  34.   COMPRESS SPACES INTO tabS WHILE SAVING.
  35.  
  36. - gLOBAL SEARCH AND REPLACE.
  37.  
  38. - rANGE DELETE AND RECALL.
  39.  
  40. - fILE TRANSLATION TO AND FROM ascii-cRlF, ascii-lF, ascii-cR, AND speedscript
  41.   CHARACTER CODES.  ascii-cRlF IS USED BY ms-dos AND ascii-lF IS USED BY uNIX.
  42.  
  43. aND HERE IS ITS MAJOR LIMITATION:
  44.  
  45. - hAS A MAXIMUM LINE LENGTH OF 80 CHARACTERS.  iT WILL SPLIT FILE LINES LONGER
  46.   THAN THAT.  tHE COMPLETE VERSION WILL SUPPORT LINES UP TO 240 CHARACTERS AND
  47.   USE HORIZONTAL SCROLLING, BUT THAT'S ANOTHER DAY.
  48.  
  49. aND THERE IS ALSO A KNOWN BUG:
  50.  
  51. - dON'T LET THE NUMBER OF BYTES FREE GET LOWER THAN AROUND 150 OR YOU RUN THE
  52.   CHANCE OF HAVING THE INTERNAL MEMORY ALLOCATE FUNCTION FAIL.  mOST OF THE
  53.   ROUTINES DO NOT CHECK WHETHER A MEMORY ALLOCATE CALL SUCCEEDED, SO THEY
  54.   PROCEED AS IF IT DID, AND ALL KINDS OF BAD STUFF CAN HAPPEN.
  55. ==============================================================================
  56. hERE IS THE ACTION KEY SUMMARY (AN * PRECEEDS THE KEYS THAT HAVE ACTUALLY BEEN
  57. IMPLEMENTED).  fOR THE KEYS PRECEEDED BY A "ct-", HOLD THE cONTROL KEY WHILE
  58. TYPING THEM (DUH!), "sh" MEANS sHIFT AND "co" MEANS cOMMODORE.  tHE up, down,
  59. left AND right KEYS ARE THE CURSOR ARROW KEYS.  wHEN YOU HAVE TO HOLD DOWN sh,
  60. co, OR ct WITH A ARROW KEY, USE THE ARROW KEYS ON THE TOP OF THE KEYBOARD.  fOR
  61. CONVENIENCE, sh-up AND sh-down DO THE SAME AS ct-up AND ct-down.
  62.  
  63. zed-128 cOMMAND kEY sUMMARY:
  64.  
  65. cONTROL cOMMANDS:
  66.  
  67. i code  key     action
  68. - ----  ---     ------
  69. * $E0   ct-@    eXCHANGE CURSOR POSITION WITH MARK POSITION
  70. * $E1   ct-a    aLTER CASE OF LETTER UNDER CURSOR
  71. * $E2   ct-b    bYTE VALUE INPUT
  72.   $E3   ct-c    cOPY RANGE
  73. * $E4   ct-d    dELETE RANGE
  74. * $E5   ct-e    eXIT WITH SAVE
  75. * $E6   ct-f    fIND NEXT OCCURANCE OF HUNT STRING
  76.   $E7   ct-g    gOTO GIVEN LINE NUMBER
  77. * $E8   ct-h    sET hUNT STRING
  78.   $E9   ct-i    iNSERT NEW FILE INTO CURRENT ONE
  79. * $EA   ct-j    jUGGLE RANGE OF LINES FOR TEXT FORMATTING
  80. * $EB   ct-k    kILL CURRENT LINE
  81. * $EC   ct-l    lOAD FILE
  82. * $ED   ct-m    sET mARK FOR RANGE OPERATIONS
  83. * $EE   ct-n    sET nAME OF CURRENT FILE
  84. * $EF   ct-o    sET oPTIONS: INPUT/OUTPUT TRANSLATION/TAB-EXPANSION, ETC.
  85. * $F0   ct-p    pRINT CURRENT FILE
  86. * $F1   ct-q    qUIT WITHOUT SAVE
  87. * $F2   ct-r    rECALL TEXT FROM BUFFER
  88. * $F3   ct-s    sAVE FILE
  89.   $F4   ct-t    tRANSLATION UTILS: wc,rOT13,uP/lOWCASE,iNDENT,jUSTIFY,pREFIX
  90. * $F5   ct-u    uSE NEW DISK DEVICE NUMBER
  91.   $F6   ct-v    vERIFY FILE
  92.   $F7   ct-w    wRITE RANGE WITH NEW NAME
  93. * $F8   ct-x    eXCHANGE CURSOR CHARACTER WITH NEXT CHARACTER
  94. * $F9   ct-y    rEPLACE (ALL THE OTHER LETTERS WERE TAKEN!)
  95.   $FA   ct-z    gOTO BOTTOM OF SCREEN
  96. * $FB   ct-[    tOGGLE INSERT MODE
  97. * $FC   ct-\    tOGGLE MODIFIED FLAG
  98. * $FD   ct-]    tOGGLE INDENT MODE (iNDENT / nOINDENT / wORDwRAP)
  99. * $FE   ct-^    eNTER cOMMODORE dos COMMAND
  100. * $FF   ct-_    <NOTHING>
  101.  
  102. kEY cOMMANDS 1:
  103.  
  104. i code  key          action
  105. - ----  ---          ------
  106. * $00   <NONE>       <NOTHING>
  107.   $01   ct-return    gO UP ONE PARAGRAPH
  108. * $02   sh-tab       bACKTAB
  109. * $03   stop         <STOP SOME OPERATIONS>
  110.   $04   sh-help      <SAME AS help>
  111. * $05   ct-2         cLEAR BUFFER
  112. * $06   sh-left      wORD LEFT
  113. * $07   sh-linefeed  ?
  114. * $08   co-del       rUBOUT
  115. * $09   tab          tAB
  116. * $0A   linefeed     ?
  117. * $0B   sh-right     wORD RIGHT
  118. * $0C   co-up        gOTO TOP OF DOCUMENT
  119. * $0D   return       sPLIT CURRENT LINE (INDENT NOT YET IMPLEMENTED)
  120. * $0E   sh-escape    ?
  121. * $0F   co-down      gOTO BOTTOM OF DOCUMENT
  122. * $10   co-left      gOTO BEGINNING OF LINE
  123. * $11   down         cURSOR DOWN
  124. * $12   ct-9         rEVERSE SCREEN ON
  125. * $13   home         <NOTHING>
  126. * $14   delete       dELETE CHARACTER
  127. * $15   co-right     gOTO END OF LINE
  128. * $16   ct-up        pAGE UP
  129. * $17   ct-down      pAGE DOWN
  130.   $18   ct-tab       ?
  131.   $19   ct-left      pAGE LEFT
  132.   $1A   ct-right     pAGE RIGHT
  133. * $1B   escape       <NOTHING>
  134.   $1C   ct-3         dIRECTORY WITH BLOCK COUNTS
  135. * $1D   right        cURSOR RIGHT
  136. * $1E   ct-6         ?
  137. * $1F   ct-7         ?
  138.  
  139. kEY cOMMANDS 2:
  140.  
  141. i code  key          action
  142. - ----  ---          ------
  143.   $80   ct-f1        fUNCTION KEY 9
  144. * $81   co-1         sET DISPLAY TO 25 LINES
  145.   $82   ct-f3        fUNCTION KEY 10
  146.   $83   sh-stop      ?
  147.   $84   help         dISPLAY HELP MESSAGE
  148.   $85   f1           fUNCTION KEY 1
  149.   $86   f3           fUNCTION KEY 3
  150.   $87   f5           fUNCTION KEY 5
  151.   $88   f7           fUNCTION KEY 7
  152.   $89   sh-f1        fUNCTION KEY 2
  153.   $8A   sh-f3        fUNCTION KEY 4
  154.   $8B   sh-f5        fUNCTION KEY 6
  155.   $8C   sh-f7        fUNCTION KEY 8
  156.   $8D   sh-return    gO TO NEXT PARAGRAPH
  157.   $8E   ct-f5        fUNCTION KEY 11
  158.   $8F   ct-f7        fUNCTION KEY 12
  159. * $90   ct-1         cLEAR DOCUMENT
  160. * $91   up           cURSOR UP
  161. * $92   ct-0         sCREEN REVERSE OFF
  162. * $93   sh-home      cURSOR HOME
  163.   $94   sh-delete    iNSERT ONE SPACE
  164. * $95   co-2         sET DISPLAY TO 27 LINES
  165. * $96   co-3         sET DISPLAY TO 30 LINES
  166. * $97   co-4         sET DISPLAY TO 45 LINES
  167. * $98   co-5         sET DISPLAY TO 51 LINES
  168. * $99   co-6         sET DISPLAY TO 29 LINES
  169.   $9A   co-7         ?
  170.   $9B   co-8         ?
  171.   $9C   ct-5         dISPLAY CODE OF CURRENT CHARACTER
  172. * $9D   left         cURSOR LEFT
  173.   $9E   ct-8         ?
  174. * $9F   ct-4         dISPLAY DIRECTORY WITH BYTE COUNTS
  175. ==============================================================================
  176. tO DELETE A RANGE, USE ct-m TO SET THE MARK FOR ONE BOUND OF THE RANGE AND MOVE
  177. THE CURSOR TO THE OTHER BOUND OF THE RANGE.  tHEN PRESS ct-d TO DELETE.  tHE
  178. RANGE INCLUDES BOTH BOUNDING LINES.  ct-k (KILL CURRENT LINE) IS THE SAME AS
  179. PRESSING ct-m AND THEN ct-d ON THE SAME LINE.
  180.  
  181. ct-r RECALLS THE TEXT AT THE CURRENT CURSOR LINE.  tO RECALL AFTER THE END OF
  182. THE DOCUMENT, ADD A NEW BLANK LINE TO THE END, RECALL, AND THEN DELETE THE
  183. EXTRA LINE YOU ADDED.  yOU CAN RECALL THE KILL BUFFER TEXT AS MANY TIMES AS YOU
  184. WISH.
  185.  
  186. tO SEARCH OR REPLACE, USE ct-h TO SET THE STRING TO HUNT FOR, AND THEN USE ct-f
  187. (FIND) OR ct-y (REPLACE).  zED SEARCHES IN A CASE insensitive MANNER.  tHUS,
  188. "strING" WILL MATCH WITH "StRiNg".
  189.  
  190. tHE STATUS LINE ON THE TOP OF THE SCREEN DISPLAYS THE CURRENT FILE LINE, THE
  191. CURSOR COLUMN, A FLAG ("*") INDICATING WHETHER THE FILE HAS UNSAVED CHANGES,
  192. iNSERT AND iNDENT MODE FLAGS, THE NUMBER OF BYTES THE THE DOCUMENT USES, THE
  193. NUMBER OF BYTES FREE, THE CURRENT DEVICE NUMBER, AND THE DOCUMENT NAME.
  194.  
  195. tHE OPTIONS SETTING FEATURE (ct-o) PROVIDES A FULL-SCREEN INTERFACE.  yOU MOVE
  196. THE FIELD CURSOR AMONG THE VARIOUS FIELDS ON THE SCREEN WITH THE CURSOR KEYS.
  197. wHEN THE CURSOR IS ON A FIELD THAT YOU WANT TO CHANGE, PRESS THE return KEY.
  198. iF THE FIELD IS AN ENUMERATED FIELD (LIKE rEAD tRANSLATION mODE), THE VALUE
  199. WILL CHANGE IN A WRAP-AROUND FASHION.  iF IT IS A NUMERIC FIELD, THE
  200. CHARACTER-CURSOR WILL FLASH AND YOU ARE TO TYPE IN THE NEW VALUE AND PRESS
  201. return.  delete IS THE ONLY EDITING KEY.  wHEN YOU ARE FINISHED SETTING (OR
  202. VIEWING) THE OPTIONS, PRESS escape, ct-o, OR space TO EXIT BACK TO EDITING
  203. MODE.  iF YOU RE-SAVE THE zED PROGRAM BY EXITING BACK TO basic AND USING dsave,
  204. ALL OF THE OPTIONS SETTINGS WILL BE SAVED AND WILL BE SET WHEN YOU RUN THE
  205. PROGRAM IN THE FUTURE.
  206.  
  207. tHERE ARE SOME FIELDS (LIKE THE FUNCTION KEYS) THAT ARE NOT USED AND DO
  208. NOTHING.  tHE COLOR FIELDS ALLOW YOU TO SET THE COLORS FOR THE VARIOUS ITEMS ON
  209. THE EDITING SCREEN.  cOLOR CHANGES TAKE EFFECT WHEN YOU EXIT FROM THE oPTIONS
  210. SCREEN.  rEAD AND WRITE TRANSLATIONS TAKE EFFECT WHEN YOU ARE LOADING (ct-l) OR
  211. SAVING (ct-s) A FILE.  tHE POSSIBLE TRANSLATION VALUES ARE: nONE, asc-cl
  212. (ms-dos - LINES END WITH cR lF), asc-lF (uNIX - LINES END WITH lF), asc-cR, AND
  213. sPDsCR (sPEEDSCRIPT - WHICH USES SCREEN CODES AND BACK-ARROW FOR RETURN).  tAB
  214. EXPANSION WILL CONVERT THE tab CHARACTER INTO THE EQUIVALENT NUMBER OF SPACES
  215. WHEN READING, AND tab COMPRESSION WILL REPLACE A NUMBER OF SPACES WITH THE tab
  216. CHARACTER WHENEVER IT CAN TO MAKE THE FILE SHORTER.  tab COMPRESSION IS VERY
  217. EFFECTIVE ON INDENTED PROGRAM FILES OR OTHER FILES THAT HAVE A LOT OF SPACES IN
  218. THEM.
  219.  
  220. tHERE IS A FIELD FOR DISABLING THE USE OF BURST MODE WHEN READING FILES.  zED
  221. WILL AUTO-DETECT WHETHER A DEVICE IS fAST OR NOT, BUT THIS OPTION IS PROVIDED
  222. IN CASE THE AUTO-DETECTION FAILS FOR SOME ODD DEVICE THAT YOU HAVE.  wHEN zED
  223. DETECTS THAT A DEVICE IS sLOW OR IF THE BURST OPTION IS DIABLED, ONLY THE
  224. STANDARD kERNAL ROUTINES ARE USED FOR READING FILES.  i HAVEN'T HAD THE
  225. OPPORTUNITY TO CHECK zED OUT ON THE LINE OF cmd PRODUCTS, BUT i'M SURE i WILL
  226. BE CATCHING SOME FLACK IF zED DOES NOT WORK ON THEM.
  227.  
  228. tHE TEXT LINE LENGTH AND TAB SPACING FIELDS SHOW A VALUE BUT THEY ARE NOT
  229. IMPLEMENTED IN THE REST OF THE PROGRAM.  tHE CURSOR DELAY AND REPEAT
  230. CHARACTERISTICS CAN BE SET WITH THE FIELDS OF THE SAME NAMES.  tHE TIME UNITS
  231. ARE IN JIFFIES (1/60TH OF A SECOND, BUT YOU SHOULD KNOW THAT!).  eXPERIMENT
  232. WITH THESE TO DETERMINE WHAT YOU LIKE THE MOST.  i WROTE MY OWN CUSTOM KEY-
  233. SCANNING ROUTINES, SO i WAS ABLE TO EASILY PROVIDE THESE PARAMETERS.  yOU MAY
  234. ALSO NOTICE THAT i FIXED THE PROBLEM OF THE KERNAL MISTAKING pORT#1 JOYSTICK
  235. MOVEMENTS FOR KEYSTROKES.  iN THE FUTURE, i MAY IMPLEMENT A TWO-KEY ROLLOVER.
  236.  
  237. a FIELD IS ALSO PROVIDED FOR SETTING THE MAXIMUM AMOUNT OF reu MEMORY THAT zED
  238. IS ALLOWED TO USE.  tHE DEFAULT IS 127 bANKS, SO zED WILL USE UP TO 8 mEGS OF
  239. EXPANSION MEMORY (IF YOU HAVE IT).  iF THIS FIELD IS SET TO 0 bANKS, zED WILL
  240. LEAVE YOUR EXPANSION MEMORY COMPLETELY UNTOUCHED.  tHE VALUE IN THIS FIELD ONLY
  241. TAKES EFFECT WHEN zED IS STARTED UP, SO YOU WILL HAVE TO EXIT BACK TO basic AND
  242. run zED AGAIN AFTER CHANGING IT.
  243.  
  244. fINALLY, FIELDS ARE PROVIDED FOR THE PRINTER dEVICEnUMBER, sECONDARYaDDRESS,
  245. AND tRANSLATIONmODE.  tHE DEFAULT IS dEV=4, sa=7, tRANS=nONE, WHICH IS THE
  246. cOMMODORE STANDARD.  sINCE i HAVE A pANASONIC ibm-pc COMPATIBLE PRINTER WITH A
  247. sUPERgRAFIX jR. INTERFACE, i USE dEV=4, sa=5, tRANS=asc-cl.  tHIS WAY, i CAN
  248. PRINT THE \ {$7b} {$7d} {$7c} {$7e} {$60} {$7c} _ AND ^ CHARACTERS.
  249.  
  250. tO USE THE jUGGLE LINES FEATURE (ct-j), SET THE MARK (ct-m) TO THE FIRST LINE
  251. OF THE FIRST PARAGRAPH TO JUGGLE AND MOVE THE CURSOR TO THE LAST LINE OF THE
  252. LAST PARAGRAPH TO JUGGLE AND PRESS ct-j.  aFTER JUGGLING, THE DISPLAY WILL
  253. ALWAYS GO TO THE LAST LINE OF THE LAST PARAGRAPH.  tHERE ARE THREE OBJECTS
  254. THAT jUGGLE CONCERNS ITSELF WITH: PARAGRAPHS, SENTENCES, AND WORDS.
  255. pARAGRAPHS ARE DELIMITED BY ONE OR MORE BLANK LINES, WORDS BY ONE OR MORE
  256. SPACE CHARACTERS OR BY A NEW LINE, AND SENTENCES BY A PERIOD, QUESTION MARK,
  257. OR EXCLAMATION MARK.  iF THE FIRST WORD FOLLOWING A ".", "!" OR "?" DOES NOT
  258. START WITH A CAPITAL LETTER, THEN THE PREVIOUS WORD WAS NOT THE END OF A
  259. SENTENCE.  tHIS DEFINITION OF SENTENCE DOES NOT ALWAYS WORK (EG. "dR. bRUCE"),
  260. BUT IT WORKS MOST OF THE TIME.
  261.  
  262. tHE REASON THAT DISTINGUISHING SENTENCES IS IMPORTANT IS THAT WHEN JUGGLING A
  263. PARAGRAPH, WORDS CAN BE RIPPED FROM THE START OF ONE LINE AND PUT ONTO THE END
  264. OF A PREVIOUS LINE (OR SPILL FORWARD) AND MOST TEXT FILES DO NOT CONTAIN A
  265. CORRECT NUMBER OF SPACES FOLLOWING THE LAST WORD ON A LINE.  jUGGLE WILL PUT
  266. ONE SPACE AFTER EACH WORD THAT GETS RIPPED AND TWO AT THE END OF A SENTENCE.
  267. wORDS THAT DON'T GET RIPPED FROM ONE LINE TO ANOTHER WILL RETAIN THEIR
  268. ORIGINAL SPACING.  jUGGLE ELIMINATES SPACES AFTER THE LAST WORD OF A TEXT
  269. LINE.  tHE TARGET LINE LENGTH IS SELECTED BY THE "tEXTlINElEN" FIELD ON THE
  270. OPTIONS SCREEN.  dON'T SET THIS FIELD ANY HIGHER THAN 80 CHARACTERS.  jUGGLING
  271. SPEED IS APPROXIMATELY 1350 WORDS PER SECOND.  tHESE LAST TWO PARAGRAPHS WERE
  272. JUGGLED.
  273.  
  274. tHE tab KEY WILL MOVE THE CURSOR TO THE NEXT TAB STOP AND WILL EXTEND THE LINE
  275. WITH SPACE CHARACTERS IF NECESSARY.  tHE NUMBER OF CHARACTERS BETWEEN TAB
  276. STOPS IS SELECTED BY THE "tABsPACING" FIELD ON THE OPTION SCREEN.  nOTE THAT
  277. THIS SETTING DOES NOT CHANGE THE TAB SPACING FOR THE FILE READ/WRITE TAB
  278. EXPANSION/TAB COMPRESSION FEATURES; THEY ALWAYS USE A TAB SPACING OF 8.
  279. ==============================================================================
  280. pLEASE SEND ANY QUESTIONS, COMMENTS, OR SUGGESTIONS TO ME AT THE BELOW ADDRESS,
  281. EVEN IF THEY ARE JUST AN "aWESOME dUDE!" OR A "sUCKS rOCKS!".
  282.  
  283. i AM A pH.d. STUDENT IN cOMPUTER sCIENCE AT THE uNIVERSITY OF wATERLOO IN
  284. cANADA.  i HAVE BEEN A DIE-*hard* cOMMODORE ENTHUSIAST SINCE i FIRST GOT MY
  285. vic-20 TEN YEARS AGO.  uNTIL i STARTED zED, i DIDN'T HAVE AN ACCEPTABLE EDITOR
  286. FOR ALL THE TEXT FILES i DEAL WITH SINCE i WAS EXPOSED TO THE iNTERNET, SO THE
  287. LIGHT BULB WENT OFF ABOVE MY HEAD.
  288.  
  289. mY PLANS FOR zED ARE TO RIP IT APART AND START IT OVER (IN ASSEMBLER THIS TIME
  290. RATHER THAN RAW MACHINE LANGUAGE) AND MAKE IT FOR THE ace PROGRAMMING
  291. ENVIRONMENT (WHICH IS STILL UNDER CONSTRUCTION).  ace (WHEN IT IS MORE
  292. COMPLETE) WILL RUN ON EITHER THE 64 OR THE 128, SO zED WILL SOMEDAY WORK ON
  293. A 64 TOO.
  294.  
  295. zED-128 IS pUBLIC dOMAIN sOFTWARE.
  296. ==============================================================================
  297. tHE crc32 OF "zed-128.077" IS 3571615286.
  298. ==============================================================================
  299. -cRAIG bRUCE
  300. CSBRUCE@NEUMANN.UWATERLOO.CA
  301. "sHIT WILL ALWAYS HAPPEN, BUT SHIT WILL NEVER BE RUSHED."
  302. ==============================================================================
  303. BEGIN 640 ZED-128.077
  304. m{$60}1p<'{$60}h{$60}gb{$60}w,c{$60}p(#h@cr{$60}v-3{$60}r(%!/5t52(0{$60}{$60}{$60}{$60}{$60}{$60}j0z-{$60}/^m$={$60}i[xt1
  305. mt*d!c3#0j0!(*$sm':t<"bf_c1p*j0"%d*7\(+'_)){$60}0!*d%.&"i;r"3_r20
  306. m,/.i52"h_r20,.ji,""h_zf?(*c_h{$60}"y{$60}{$60};p!b"h_\c0]2"n_r20,,pl#=rm
  307. m'{$60}hi0-{$60}$.*d08'bm{$60}-u)$(t{$60}w2#0'*7]r0*0!={$60}$.*d$8,d?t!vd_zd(+{$60}w<
  308. m\/nm{$60}-u)$(t{$60}w:t,w*3_f0{$60}+3)tx8#@)$&{$60}l__^i""p-w/#[k0#=21"-{$60}-vm
  309. m#-r%_:+^r0*0%ld?t#2i""p-w/#[k@s<k0#=21"-{$60}-v&_z{$60}{$60}j0@l#=sp^zt{$60}
  310. mw4d0c0#=k0s<f0{$60}+r,3_t.:e_qa@.{$60}d08"s__z7^q?_0$z7]r1_0!*g_.&{$60}@
  311. m%4^p^jd{$60}a?y,9d_e^qae_i{$60}"j?_%_y{$60}"i?^%^j3^iony{$60}{$60}n="{$60}3(z,d-\{$60}3$
  312. m^i#pa/z&^qa@>*t{$60}'h7\3!a.l#fi{$60}(7^a?n%cr{$60}i';{$60}lion]!p3)#?{$60}$x%&0
  313. m[l;[()0bion]"{$60}3)#={$60}&j0"%^_#:c0@$j0&%^x6/t,_)__{$60}#3%)/i?op{$60}r"4
  314. m(dps3z)qo4{$60}>g0{$60}"ra#w8*d{$60}c0?5('{$60}=2*(%m?j=^@c*$/bi"(t'u6a,>1vb
  315. m{$60}*d{$60}g0{$60}(z-#zj0b-!]5,{$60}"!@"{$60}!e^e^@!/lr&p.p0/h{$60}@{$60}x${$60}tw@!@{$60}{$60}\"w{$60}
  316. m8(#zv?hr^xo[@/kd^qd{$60}x<40{$60}pb.\3{$60}{$60}{$60}/\{$60}3j{$60}(!{$60}<{$60}#o\{$60}{$60}(cp#8t"_[&{$60}
  317. mc0'_d82(t/.-{$60}o^q@(t!_y&$j0z-{$60}/]@b/{$60}-c0'_l82-{$60}o^1@(c0\xt!_[&$
  318. mc0+_d8"i#ht{$60}_v"e@ht{$60}_x2#h{$60}"q@)4{$60}z,c$@y#vj0z-{$60}/]@i8*-{$60}/^$@z{$60}{$60}
  319. mm0"1@.c(q(.0]jd.c0#_8{$60}{$60}{$60}s#h{$60}"@##.@{$60}e{$60},(z{$60}"\{$60}qch{$60}.@#$.@#__p{$60}{$60}
  320. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"q)<dewr4#)kted24v)o\?r4y315)4{$60},e.1$5.
  321. m5{$60}{$60}@("{$60}@("{$60}{$60}*@{$60}@{$60},q/041)3d<n+bx@(,q)3d53/3{$60}@("{$60}@("{$60}@pee415,]
  322. m,"{$60}@("{$60}@("{$60}{$60}3d].04u%{$60}-k%q"tq,c@@5d524te/3b{$60}p+c<w+c{$60}p($)9(,-2
  323. m04e'(,)254-%(#$v+<9%0bty,p{$60}@1d]2(,%.1t5,02x{$60}{$60}!0-'8b%ah<1,u=!
  324. m-%i310$u4d0v0t946#=91sa"2%56.4e*,$u+3txk4$pm+ci{$60}+%pj.q,!/5xo
  325. m,5\$,b{$60}"40,$.#4),c0w,1lk+0h--cds"#{$60}nd1&='?__{$60}'@?p"h9*w(k)"s+
  326. m*\y/($-(05)!0u1%4e,@5$\@4e5"($]55{$60}#3059)3d<n{$60}&{$60}@t"8@&r<@8b<@
  327. mpe@@a"<@8c*i{$60}(t'u6"m!]5(j0"-!]78(,0[d{$60}{$60}@^/4@t.zm#=rm!{$60}i*d{$60},@
  328. m!d!hc0?53#/_>*t4{$60}zp5{$60}xt"'hp#'jd8h""-%{$60}.,%0-88'bm{$60}azl{$60}qz-%{$60}.,
  329. m%0-88*6",{$60}-,0@*-!m^.{$60}m^,!]^i"(t#wz6{$60}i(&-!-^,!=^i{$60}(t(wz({$60}j9&@
  330. m{$60}8xpt(t!wxppt&"e@c{$60}#3%l"c0;?c@+?c{$60}??j0b-{$60}]^e@*2!c03?c{$60}7?j0"-
  331. m"-^b{$60}*f0h{$60}&.,-"-{$60}=^,,-!@j0"%.(4ya3ji_x4pa3&%,jd{$60}k{$60}0>hc^%@(2!
  332. mah*i{$60}*p%'h4va#<@.2&l!azb?x2!ah*l!qz$-r{$60}y(:d{$60}a3ne.\t!'i{$60}!8*d{$60}
  333. ma8&e.pf{$60}a8*i^*#_ico0!b3_)/^i^(4va#<@.2'f.]#5h@*u,)4sm8"5,,h0
  334. m]:(sh{$60}4@g"{$60}@i4qe-x4yd{$60}+f.f{$60}8:0>0{$60}<@i^(6(a(fb{$60}k4pe8"i_y6$ra#u
  335. mi8+)_]{$60}$.$ro3*(sh{$60}4@:""e-l6(i3?eb;{$60}/h@*u@)6$m3.5@,h0]3#63+@f
  336. mzm{$60}&i3?%b?{$60}c.*4vy8b%-j4wy8f%-z(sh{$60}4@g"{$60}8i8!e-h6{$60}i8%e-x6!&&"e
  337. malg_t{$60}nb{$60}k4se3#*$/d88*("m8"ta)6$e(#*$/6b,z{$60}#()p@h@*ua)6{$60}ra#y
  338. m&&"e@c{$60}*r3_p{$60}tp{$60}{$60}dq\,*f13#\bi8(p"ld_\{$60}-,({$60}),bc"id$p_(hcp![&{$60}
  339. md82(t/fq@)&$8(cp![&$d8"(t/fqa)&{$60}8$b,!]^@{$60}(p(wz6$i(6-{$60}m^,{$60}]^e
  340. m@*2!ih*-!-^,!=^.!m]hh@"@{$60}8xpt(t!wxppt&"b{$60}jg_e9"5dzd{$60}e9:5f<h0
  341. m\:t('h6?(/\?(-$="$@@_q]h*&#fem{$60}&yi?0{$60}n:8.*699?n%f9{$60}&yik0{$60}n:;
  342. m&*7[c0<$:0b%gj{$60}{$60}(%dal%fedz24ii6-{$60}p2,!{$60}2.!02i_xt{$60}!(t!!(t"!*d{$60}
  343. mh{$60}2%a(2%i)x@#b*b{$60}k63m("5@)23ra#ui8+)_]{$60}+h@*udy60ra#y,{$60}>bdz{$60}#
  344. m()p@qi_0"*t('h6?()hf8&ah3!%>ha^.{$60}-8l{$60}-80^zt!uf"b'xx{$60}ubp{$60}ua#[
  345. mc0'68*(2c@#6+{$60}#6$/n,{$60}=;hc@#6+{$60}#6$/n-{$60}=9@j0"@("{$60}x(zt.'jp/'h4"
  346. ma{$60}.i"(4$h{$60}"b'xx{$60}uj((l0(l{$60}-80^xt!ulc*t/*b'jd{$60}3$hrp{$60}#0x.8#q@30
  347. mvf"e/*0]a3z$/zd@hc.%{$60}h8#x{$60}#0{$60}6"e/j0_(#@ci0(@*b.b'je/("pcq@/0
  348. m\&"b%*d{$60}h!{$60}@.b.b&"{$60}>(re_("pcj0"@{$60}(4\a#vb4*p)'h9/a$zi{$60}(5,a4vb
  349. m"zd(("pchah@'b.-&!zm%!x@+"-,_q\{$60}a0*${$60}z4^i#\@.".i'xt{$60}uj{$60}{$60}l0+p
  350. m"rp{$60}ua#[c0'6r-#q8.{$60}{$60}\!3*a@,@.".e{$60}b{$60}j(z4#\{$60}6b'dpl(v{$60}@d".e/1ai
  351. m$(4_i3r%/jt0'b":(z4]&&d0a3^m$1z%{$60}j4\i#^b4"{$60}b)"!j)$r4)*t9'h4"
  352. m&*4\i#ui4){$60}!r(4^a#^b4"{$60}b)*t2'h4"&*4_:1"hi3zb4$pb)*frh!z%$(01
  353. mh{$60}"q$!ae/(4^r+$093v%/z40i!$8:0*0{$60}<@@{$60}"2@{$60}<bq$-#[f#ae$(40d{$60}+f
  354. m$:{$60}!l1#)_]#*8(4&a{$60}>&"*d{$60}h@.5{$60}lh0^_b@&{$60}8&)@<f"*4%906%!:4$902%
  355. m!*4#90.%{$60}z4"90*%{$60}hc0w]bi{$60}(4&h@"e{$60}b{$60}p):4#(#{$60}ei00@,"6e!2{$60}p)>{$60}{$60}
  356. mt{$60}6i,(40z*d{$60}e1"*8$a*2di*(#le:"d/q0;p!pdpe1#ha09@(-,dr0cp#jji
  357. m()40z.{$60}(d/fi{$60}(488*d{$60}a2&i@(4@i2{$60}e;m{$60}-yb'f(48@i2#){$60}=#p8$5na6zf
  358. m(;w@'h4bo>$>a2,@cb5,:r5l(@"i,4be.*0yich@1r5hi#t893r0{$60}<b%/h0_
  359. mj1"@{$60}$p{$60})*d"2*5&i$>f2$r:):dg2*56i%>f6$r:):d,2!be36d!h{$60}"b{$60}"!'
  360. m):d{$60}a1-,g26e7\5it{$60}%@a6fe/*0]&&d0d{$60}'(a3z$/zd%h!\d7s{$60}"j0=,{$60}"08
  361. mi3rd/6d3d{$60}'(a3z$/zgph!xd;s{$60}"j?x@{$60}"08i3yi"84^d{$60}+f/zgwh!xd;w{$60}"
  362. mj?y,{$60}"0@/"9,12:i/$bm{$60}!y,t26b$*d@e:#*$/n@_\by{$60}{$60}?0^j(0n0{$60}'e:#*
  363. mb!#wi3rd/1ai0){$60}!r(4^a#^ih*{$60}{$60}3{$60}{$60}d2*4\&&e0a3ze/6d{$60}a3]h({$60}{$60}dk1,>
  364. ma0*8jabe/vd0j*4^3"(d()$e(*pfj6)(i9:dez:83)hej7!(i9fdfj:;3)he
  365. m.*4xy8b%.*4yy8f%.;{$60}"qcje-l6(3*{$60}a($q"(+h_(,4=(#e((+tcj?^b{$60}i59
  366. me6"58y5{$60}ra#ua6zi{$60}(5?a6fm&az%;z({$60}o3(?g0{$60}'\{$60}/ht/4@e34@.r0@726i
  367. m.:{$60}?('8f3/\?i4d%2@5+\{$60}%@j0b@{$60}"!9(;{$60}{$60}h@*u@)50e5/*$/>i{$60}:{$60}{$60}a4f$
  368. m2h1+a5:$5x18i6x)#(5nj?^b!95pra#[j0"%=z)ph{$60}a,g""b{$60}k50e4"50\h0
  369. m]zd!h{$60}"%1h1'a$b$3:d"a4re;@g{$60}a6y@(%te(/$g(*4gi6xi{$60}?{$60}'16z%;b!j
  370. m)"{$60}:*"#l**5k$.!@j0"-!]58(.3_r0#p^:((c@?5a6q@i4r@{$60}(0#"@h894rb
  371. m!{$60}hf{$60}\k0^aae/(4"i0-e/84#(!xv90*%{$60}h4$d{$60}+f{$60}qbe{$60}vd0a06e{$60}j0#8""z
  372. m)z(.(#hch@h@$#8@+".e!*0%(#@c(!pca6je!*0%(#@ck14>3"hc(+hgh@ji
  373. m("{$60}l(z4$i{$60}4@.".e:dpj(z4^i#\@.".@'xp{$60}uj({$60}y'?p$+t(!"p{$60}ua#[c0'6
  374. mz.1wd/{$60}xj5#e=y{$60};j/{$60}8j2{$60}l{$60}-80^xt!uhcp"z(>c@#63&pq+/__8*("m4.5
  375. m@,h0^:d"a1"e/*0]&&f@d{$60}'(a3z$/z)ph{$60}@@:""i{$60}*{$60}$a82$a1be=vd(j"#[
  376. m(2{$60}p*.80i1#%3k{$60}=&*4^:5"%/i{$60}"yc^e<*1qig*%@(2!ah+@_]#"\{$60}%@j0"%
  377. m=r{$60}p*!be/fe0a3z0{$60}n8_ya"e$,5.d.i@i6s)(+{$60}/"jj]{$60}"j%{$60}kt!*h4#;{$60}({$60}
  378. mr8"p{$60}tsc,\f@l{$60}4xz6"px<g@d/#ih+#9i5\0!2#>0+{$60}'(/\?j?^%:v!xh@&]
  379. m%@.="az]&{$60}.=#![*$/&i?z{$60}ic18#c!<#j?*@/xt8{$60}xp9{$60}z(+o3x#g1p>o=(?
  380. mg3x#ra#q6&{$60}@u#]xh@.]"az=%@/*$/>b"[t<'it^{$60}\h0]ua@({$60}\@{$60}"#"0+!6
  381. m(.@n(*t_h@"]{$60}{$60}:={$60}{$60}?p{$60}^c0]:5n"0.%;jd)h!\@=b8@724@*3:p+r":)je]
  382. mh"p@=b:b{$60}k60e5"udy53m9:52;69e5;*$.ve;@dla6x@&r<@8b<@-4%@r030
  383. m$"!j)*f%h"p@=b8@{$60}"y,nbd@:b2i5*{$60}\('8f3+hi_q__'[q9_q__'p!>2%g_
  384. m't{$60}u<5g_'qa9wr]t/?\?f#{$60}7,)pq3c[_'q@u"3{$60};,%$o_q__'_\?_q__'_tq
  385. m_q__'_\?[3#_'_\?_q__'_\?_q__'_\?_q__'_\?_q__'_\?vuc6,5@^3#'_
  386. m'_$p]3#y,/tp{$60}3'_'_\?_q\=,o\?$$h,0@<^:$o_'^9$[4#f0o\?)d+_'^99
  387. mg4:#*0-!3$0m4,%+&2e81s4v_q\q2_\?_q]s1{$60}9#_q\p/d$^-#xa7o\?e(v=
  388. mc(f*by$cu\$dvm/%{$60}272q";#qm38)]g'*,+(u=8ir<hps<o/smo0s-t^6[h\
  389. mw,!=dp$]wc\awp0b({$60}+1@p0x-0(r-#<q&rlm"htv.3,(,"x6%p8+__\(c9v/
  390. m@(*$d9:sl)>mkk$!f+*lf;r[h[v:mz6;o[2xobfbm3"gh;fjij^v?#y;i#rh
  391. m?uv3{$60}3w>/x%?!)5?{$60}jl#!#@u&#(t-s$;*rt*c38y,p@p+@p/$!7__p@{$60}__^/
  392. m@(*$'/?ag_ksy?^<\n0>x^;t^!_yyy[bz/7v$ngjdnwk[^y[\.q]__o@__q@
  393. m_?__{$60}/[_d{$60}#_!2#_\?\$c(<8b8j(a1n$cph{$60}bx"&"((n%a<9&o__%{$60}t=b(6&
  394. maq$su\$tvm/%{$60}372q#;#qm38-]g'.,+(u=8yr<hps<o/sbo0s"tn.d{$60}l7"h[
  395. m$p$]7b\q7p0r({$60}+1{$60}p0x-0dr-#<q&rlm"@tv.3,(,"z1$9t=__\({$60}!v(a8:'
  396. m$3-w831z<v7_-7)d-f-f='@w>6=x8fau=cei:c!m:v]n>w!l?2y[nbri8't3
  397. m_w]^+s%_!#(@{$60}g$#!#@u"3(t-s$;*rt*#38y,p@p+i$1g1w__\q/041%1"x{$60}
  398. msd57($9)3$4{$60}s$]!1#h@14y415(@1de,14y!344@6p#,24y%4r!(059%($)%
  399. m14x@4u!,250{$60}70{$60}{$60}{$60}{$60}#@?b{$60}=_.<9{$60}.!^(![\yql{$60}x7x@'_sg'@#f@#@s_^@m
  400. m{$60}{$60}:{$60}.#7_z#,{$60}x'x@'osg'0{$60}3$y-:140@15a)5"{$60}b{$60}"(n#0##55)214y4($q)
  401. m3d4@25,@1e5,3{$60}{$60},#{$60}d({$60}@x+"@9)2eq>7\#;w-w>wu4g{$60}{$60}{$60}{$60}&{$60}{$60}x&!@8/{$60}{$60}&
  402. m{$60}{$60}x&!@9f/{$60}!@,!@,!@,{$60}"!pv8p{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}!^{$60}#{$60}8#{$60}{$60}{$60}{$60}{$60}{$60}{$60}#a@8<!@8
  403. m#@{$60}8&!@{$60}&!@8{$60}'{$60}8&{$60}x8&'{$60}{$60}<]o.{$60}{$60}{$60}{$60}{$60}{$60}{$60}('#9c8v-_{$60}{$60}{$60}{$60}9f9f9cx{$60}#!@p
  404. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}#/4$5.24y'($9)3$4@1d]2
  405. m(%=2251%{$60}--#4d%40ta)3d<@3tq$($9)3$4{$60}td5/4$5.24y'($9)3$4@1d]2
  406. m(%=2251%{$60}#{$60}z{$60}"q7{$60}{$60}{$60}{$60}4s{$60}z{$60}*d{$60}c0?5j0:n{$60}!z@#r"z_zd{$60}(+w_j0"-{$60}{$60}8@
  407. mp/^p(:(&(,;_h@{$60}@s__)#?{$60}&g0{$60}&z-#sj0"={$60}{$60}8@s/^i!b##_zd(c0?58*d{$60}
  408. mh{$60}9,=b:i4(41(-<nj0"%$*1,idv$$h83j0"%3*40a4t@\2<@i2<@&bbe;,d#
  409. m\$s)#?{$60}hr13p2:80y!&pwz5lg0{$60}&(){$60}nya#0tqbe/*0]91"0{$60}<@@.".e;$pj
  410. m(zd{$60}ia"={$60}{$60}:d$j83a$r&32#7+b"4)*g^!6z%;b!=)1a@(*(n.&"e$/{$60})qa"i
  411. m((5l(){$60}n3&,nj0"%::d@a0*b4*4\i#u,(b2i{$60}(t{$60}!jf.h"p@-r^i{$60}*{$60}'(#<o
  412. mj;n@+"{$60}w+zd{$60}h{$60}8@=b:i$"!.+@@@:b0hl{$60}:m{$60}{$60};p{$60}6!h:&{$60}@=2bec]{$60}!8"!j
  413. m)*feh"p@=b:e;@d!a6y@a0*${$60}z+_z+t{$60}!m#zh{$60}"q{$60}it{$60}!o{$60}$z,c0]6"b{$60}k5#
  414. me8#*$/fi{$60}h40hg"@""!h(*40q4zp$z5rr?_p:z("m7"5@,h0^>80t."b{$60}k6{$60}
  415. me4/*$/dxi4[e3"#e+zd"a1"e$,5,\!je<lg_\!2b{$60}k5pe8#*$/fb<*{$60}((&@@
  416. mya#0x*("m8"50,h0^:40a4pxz0(@y2^e3<5w\{$60}v0"z5wzh5-i6x)0(5n3'4h
  417. m3)@p(&(g3'4h&&5&a4:0!n9't{$60}+f2*5n"8"%;f"b{$60}k5{$60}e8#*$/fb<*{$60}(3&@@
  418. m(/doi7>%3:5n"4"%;f"i{$60}/#sh@*u0y6{$60}ra#yj0*%$*)ph{$60}@@:""e$,5.l!:e
  419. m=<g_t{$60}-,wr^b{$60}k5se8#*$/gf$-#=h@*u@)5#ra#y.*5,z00894x@8c!,cr\x
  420. ma0*e1n4"a4:p"*5't{$60}+&2,9'i6x)@(5n8*d_c0#_("$bj0z-{$60}/]@j3^-{$60}/\@
  421. m,"*i#ht{$60}_v"b{$60}k53e4"5@+5)e4;*$/.b<*{$60}((&@@i7>%3:5n"<"%;jd#a1"e
  422. m$,5.\!je=<g_\!2b{$60}k5se8#*$/fb<*{$60}((&@@ya#0x*("m8"50\h0^:80rh9,
  423. m3'4hh{$60}#p$j{$60}(t{$60}z@$-{$60}*h!c0!j{$60}@t{$60}*@**(%n<{$60}l("pch@"yp2p@+".b!+g"
  424. m+"{$60}l(z('n<,l("pch@byq"p@+".b";g%+"{$60}l(z(&n<8l("pcn<8lq4r%3o{$60}"
  425. ml{$60},@mti,p4hxi4si{$60}b!b,*("m4.50,h0^:{$60}"h@"$3(9-i6x)p(5n8"p{$60}ua#[
  426. mc{$60}'68*5{$60}i$&f0h6{$60}a(&&@j)ph{$60}a,:"{$60}@=3&i{$60}*{$60}$a82$a1be=vd(j$s[(2!u
  427. m,:5rr?_0{$60}6"f3.cd3i{$60}#3&<sadri{$60}2#e+z("m7"50,h0^2!u,:5-q7?p#){$60}*
  428. mi7>%3:5n"4"%;f{$60}@=3&e=<g_t{$60}%@ids*x{$60}*p{$60}trp,x9,j0$@8c"b{$60}k5se4#*
  429. m$/e,p#&e;@e{$60}a6x@=3&e3<5w\{$60}/f36"e<lg_t{$60}%@j0"%34r<,:5n"4"%;j5-
  430. m\{$60}/&36{$60}@=3&e=<g_\/:b{$60}k5se8#*$/fb<*{$60}((&@@i7>%34s6,2p{$60}ua#[c0'6
  431. mc@#6+{$60}#6$/ni!xt!udr%(r"?2jd{$60}k"\*ha0@.b.b&jt8'b{$60}l(zd{$60}c0?5j0"-
  432. m{$60}{$60}:i\*{$60}l(#<oj0"@!r{$60}w+zg^h"p@-r\@75@@9#6i"(t'u4qc*:{$60}{$60}n0{$60}&\{$60}8@
  433. mto_(t/5@&*4\i#uih){$60}!r"{$60}x(qai4){$60}!r*(@(#hc(.4rh{$60}.b'je0("pcr,1.
  434. md/bb&"{$60}>(re_3"pcha@@'b,)@$pl(sbe3nd!($0sa1*$$sci4+{$60}!b(40a!&i
  435. m{$60}x44(.4rhb"e$*01(#hci1*d$r{$60}x(z(>j5{$60}@+",xi1#i4(40l{$60}+&$3be$ne0
  436. ma1*p{$60}l83ya2e%,5.d,m,vs*%!*{$60}{$60}a{$60},*"aae!*($"b8#rm#z&&4\a0*e{$60}v4]
  437. ma0.e{$60}j0#8"!u,:5rr?_0{$60}6"b{$60}k5pe4#*$/fi{$60}2#e+z("m4.5@,h0^:)xh{$60}@@
  438. m:""b{$60}k5xe4/*$/d@lc(@h3-,ps$@b#&e3"!$,x4^a#],,"@@=3&e=<g_t{$60}%@
  439. mh@*u<y5{$60}e4/*$/>i{$60}2!b,"#o,b"a,ts#,:d{$60}c0?5j0<@to^i"(t'u6{$60}@b#&e
  440. m3<e0l$xd;q{$60}&i7?)4+!$idwd=]{$60}5yg>e;)t(!"#[-.9-i6x)0(5n3*0s)&\0
  441. m%.9w.*5wy4vhig>]!p2="{$60}3*b-#vidu,_c.b{$60}k5{$60}e8#*$/e,636i{$60}j{$60}m3$tu
  442. m{$60}!be=vd(h{$60}{$60}@lcbb{$60}k6{$60}e4#*$/e@h@>u<)t{$60}!,h0^*d{$60}h{$60}2%a(2%&*5w:0bh
  443. m3{$60}xb&&d!a0(xi5;e{$60}h56l{$60}be5]{$60}"qec&5z5n"0b%;f{$60}8:0$895:%5i{$60}&ye?0
  444. m{$60}n98i6x)"(5n8*f{$60}a5^e;@d@3/q{$60}i77)_]{$60}*h@*u0)50ra#y8*("m7.5@,h0
  445. m^:){$60}h{$60}-,g""e<lg_t{$60}jb{$60}k5{$60}e5/*$/e@h@*u<)6{$60}ra#y&*6{$60}:0.%@){$60}"yh&b
  446. m0*{$60}#3)p@k0<$('$t("xt($(t(%8ti7<@cc0@i30@l#1,{$60}#:e3={$60}#3,0x)&\p
  447. m{$60}tp=,b"(,<9-idv]"02="{$60}3hy'>0]<9w(/lt3{$60}@t((@qidwd=]#bj=z@'r!v
  448. m)j5n"0&%;ds3,zt'!!ai"*{$60}{$60}3+xxk0x>k{$60}\>a02$!:d{$60}h-"%{$60}h0#j0^-{$60}/^b
  449. m"*{$60}{$60}l0*1!,c0^>8#y@7*t/*i#ht{$60}_tq2(zt.'jp/'h4$a{$60}6i#xt{$60}_z({$60}j={$60}=
  450. m&"v%{$60}zd{$60}a0*@{$60}+$"d03(t/gf!>c@")#ej0z-{$60}/^b{$60}(8"j0"%!;t@+:{$60}#"b8%
  451. mb-#za008i05m#qz%!8h*"@jjh{$60}"],"v1!.c(p{$60}b0]>8"i@+@#9#-3%(ch@+d
  452. m3-{$60}'m4"50\h0^4s0-*5-r5{$60}(k1l>*-{$60}"22!@i4w)4+{$60}!8!bi3v"i{$60}(6/('{$60}b
  453. mh@"&7v"b{$60}+t{$60}!yt{$60}"_{$60}#z-#uj;"@+2!v)j5n"0&%;b{$60}b-r"n-k!)($0wk0{$60}&
  454. mr3;0*:t!!ldst"(@:b2iqz{$60}m('8f({$60}pw($0w(&hdj=n@+2!v)b"n-k{$60}9($0w
  455. mk0{$60}&r3*p%r"v-r#\-b#_'r!1.$r%-t@@:b1h3/\?(&hd3$4nj0"-{$60}{$60}:i]*{$60}m
  456. m(#<oj0"@"r{$60}w+zgwh"t@-r^i{$60}(t'u:d!(,/_j0^b#r!h_zd!k@{$60}>h{$60}(@no^b
  457. m_^b]{$60}{$60};0^hjb{$60}*{$60}&(+w_(,#_h@b.!]5@j0"-!]6i{$60}2##_zd(c0?58*d{$60}c0{$60}&
  458. mj?r@+2{$60}w+zd{$60}h{$60}l@-r],:s>i{$60}(t'u:d/(,/_j0^n{$60}!z@#r"z_zd{$60}(+w_(,#_
  459. mj0b-!]5@j0"-!]6b#r#&_z({$60}(,__r0wp!it{$60}!nc0\zd{$60}g0{$60}&(,s_j0b-!]5@
  460. mj0"-!]6b#r#)_z({$60}o0{$60}&\{$60}8@to_ht/5,8c>i{$60}(t'u:d/(,/_j0b-!]5@j0"-
  461. m!]6l!p3p#*({$60}o0@$($]-z(c0]jd-($]-j0b-!]5@(&hdj0f@'r!v)jgwh!\@
  462. m=b:b{$60}k50e8"i{$60})66e9g*$/.m*!z%gzd{$60}c0?5h@$@r?^i"(t'u2"!3:d{$60}c0?5
  463. m(,s_j0b-!]5@hg"@""!h(*d{$60}h{$60}2%a(2%&*5w:0bh(/la({$60}!..*6997>%f9{$60}&
  464. myik0{$60}n:;yi;0!n:7t{$60}+ff,:?t{$60},@2#bb{$60}k5pe8#*$/fe@lg_t+9,2#@@fb:e
  465. mhnj%gv{$60}@1#>b{$60}+t{$60}!it{$60}"_{$60}#z-#uj0"-{$60}{$60}:i{$60}z{$60}y(#<oj1"@'r{$60}w+zd{$60}h#d@
  466. m-r^i{$60}*{$60}+(#<o(&hd($4n()hfk0{$60}+r3*p"jd{$60}a5^e;@d@a6y@yo^i""p-w/#[
  467. mk0s<i/^9{$60}{$60}of_qa@(%dal{$60}:e;@d$a6y@(&(^d/1@('4qi77)_]{$60}!8*("m7.5
  468. m@,h0^:)xh{$60}@@:"{$60}8i7=e?\e1d{$60}>i"z{$60}y3$tuh@>u<)5xra#y(!tr((@q3{$60}{$60}]
  469. m+2{$60}{$60}tt%6140n+@#43t\@34%.62!#2$%204-415)3(%1/($i/24x@5$\@4%)%
  470. m5de/55,@3$e.10#&4d5%24y'($1/0u5-14y4($u%34]262xn+@{$60}{$60}{$60}@0$!@8&
  471. m!@@("{$60}@("{$60}@(("c9+txi/p#,3t%${$60}#h@pu524d5.5"!&24q%($a!4r!53e-!
  472. m5d5$($-(04y'15,[(%!23t-%140@04y95t%9{$60}"!9v0u.s@/154e4{$60},u!4dl@
  473. m4t54(%1/($q)3d4@{$60},u!4dl@25,@3d]4(%-%5{$60}#%3e1%4b!314%20t@@4u12
  474. m24y'{$60},y/5"!&3u5.1{$60}#314%20ta)3d<n+bx{$60}tt5!4d-((%-44de.1r!.3u0@
  475. m4t54("a54t4@p\_.u-+/s"w(*0#%3e1%4b!215!,04-%345.5"!35%))3d<{$60}
  476. mqde.25-(140@4d503$%#24y'{$60}-)%4$q!0t4@5$a)4r!/0t-54d%.0t4@*-d]
  477. mv453+"#./<y/+"#!/<%55$_915,l(-$]t55)5"d_{$60},%55$\@4d503$%#10##
  478. m04y.3u0@4d503$%#13l@4d5354q424y'($q)3d4@5t]53$0@0d4@5$]/($q/
  479. m3d<[($%"3u)4140{$60}sd57sd%-10#&4d5%24y'($m)3$p@0e5&1d52{$60}"!,24y%
  480. m4p{$60}@1$5,151%1{$60}#+24q,($)51d9%4b!%35!460#215!,24-!5$e.1r!+24q,
  481. m($)51d9%4@{$60}@4d5#04q,140{$60}vd5${$60}"0p0ee415,@1e)%12x{$60}$e!215-3($$@
  482. m2t59d@{$60}3$y,.r4y)5$e!3$e:24y'+bxn{$60},1)4d5#5$]262xn+@t-{$60},5.5$52
  483. m($y%5r!$25-+($1%5de#12!.54u"15({$60}pd%$($1%5de#12!.54u"15({$60}q4y4
  484. m15(@0ta!4b!.54u"15({$60}t%))3e1)3d<{$60}t%))3e1%1"x{$60}j0z-{$60}/\@"tri{$60}(t{$60}
  485. m_v{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}!0({$60}14+("%a&el%p""{$60}0&{$60}!01i[!>{$60}@@{$60}t?
  486. m{$60}8x2("{$60}{$60}({$60}t!x1_{$60}(&{$60}@0""@({$60}{$60}(%{$60}$)%r{$60}ap1i;!<{$60}!01k;!8!{$60}8"#@(${$60}?
  487. m#0$@(,{$60}@h"{$60}{$60}#6{$60}!#a)@(({$60}@x"{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60},#{$60}p2{$60}{$60}"{$60}@(:s$]!
  488. m1"!%4e)/4@{$60}{$60}!@d;,4=%2ta(!p8#"p0{$60}{$60}{$60},{$60}{$60}00{$60}{$60}@4{$60}{$60}p8{$60}!{$60}<{$60}!0@{$60}!@d{$60}
  489. m!ph{$60}"{$60}l{$60}"0p{$60}{$60}pt{$60}{$60}px{$60}{$60}y$#8c(!$%("('("4)(#8s,!$5,"(7,#8#0!$e0#
  490. m,'0%<)0#9#4!$u4#,74$@#8!%'8$@;8#9=8#9c<!%5<!0'<#8?<"(@{$60}{$60}{$60}{$60}{$60}{$60}
  491. m{$60}{$60}#_'s)7cu;55am7_q_l5o\?_q__'_\?{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}*5w&&d(h{$60}2%a(2%
  492. mh@*u<)6{$60}ra#y&&d(a8"0{$60}n:!i'_p{$60}r#[(1be=v5_a7>e?r!q-*("m7"5@+5x
  493. me7#*$/6e?z{$60}{$60}&&d((+xx(/ltj0$@4cu,=2@xa0*e2>4"a4fp"*9*t{$60}+&2\9*
  494. m8!ae285)d{$60};f2m{$60}"ydm@((@qj0"@!h6$a(6e=qai"*@@^r&e=tbe34b%=r#[
  495. m-*('m7"5h,h0^:g_a:_%<m{$60}5h@*u0)5sj?^5h,h0]>9,j0"%k_{$60}&(/tq('4q
  496. m:*iha1"@{$60}.00l{$60}r]"{$60}:9"{$60}3(z.00d/2$=z("m:"5<,h0^2{$60}$-:d!(&8]i:_p
  497. m{$60}tqu**("m7.50,h0^<9,(/tq3'4h+/__+/__((@qi4w%=[{$60}=idv]"{$60}0i?\e!
  498. md!+)6[{$60}.o0@$28"="{$60}0@^s0@h3-,_3&i@-{$60}"j4!%;x5oi6y)$(5n8*5?28"%
  499. m7z5n"2"%;f"b&"{$60}>(pe{$60}3"pcha@@'b,iotpl(qai!y{$60}!r"gxa8r$c:("m8"5
  500. mb;4pe8"i_y6&ra#qi8+)__{$60}hi8+%by{$60}bt{$60}je@,6)i8'ebk{$60}6hc.@{$60}r!h(*("
  501. mm8"5ak4se8#*$/4ptj("m8:5@,h0^:6"r?_0&*("m3"5,[6)e3#*$/6ec*2-
  502. ma3:$-tp:/z(sh{$60}4@:""e@l6+t"h8i8!e-jje@64wq8k0'.2)t!@8i39ec(4v
  503. mi3=ec84wh@*uai6)ra#y,{$60}^bb:{$60}#()p@i8rdc84va#>eb\4ut#@8i8ee-jje
  504. mbf4wq330*n0st":b{$60}k4se8#*$/fba*{$60}%(&@@h@*ua)4sra#y&*4v98>%-j4w
  505. m98b%-z("m8f5@,h0^:(sh{$60}4@g"{$60}8i3aec(4xi3eec84yd{$60}+f.aa@h@*u4)6{$60}
  506. mra#yi8+)_]{$60}'i6x)!(5n8*)ph{$60}@@:"{$60}8i7=i"*{$60}{$60}(&(^h@*u<)6{$60}ra#y,->i
  507. m.*{$60}y('8f('l_3&hd>*(!o3h#g2h>ra#wj>2@/xtz{$60}xp[{$60}ua,7tixh@&]*az=
  508. m.@/*$/=83%d@h@z.{$60}/\@#d"b{$60}(x{$60}_v"i#ht{$60}_r#]/tps_zt'u4bi{$60}(t'u2#_
  509. m'vb-!]5@r5?0%,75\{$60}j%u:d-32$*c2$*j7^-{$60}-q@h@!,.d3jz.a*t/n]/@.%
  510. ms+t_{$60}x7-i-2qs*k$u={$60};k"0*\{$60}7.){$60}k0tlxc"m#-k"t>c",*i-#0p_{$60}&k"p>
  511. mc"0*i-2$u>#_\+.i{$60}(ta"hjft.p@"k{$60}%g4h#ym!,($"i8z{$60}y(#<oj0"@!b!v
  512. m)j5,2*5-2*{$60}!i@/ha$r&32#q)r"e)r{$60}:*"!j)&b%36b%3*5lh@;=hsgp!<h0
  513. m^##*x{$60}1@)%\p{$60}aa@j0"-{$60}{$60}:i:z{$60}y(#<oj7"@.2{$60}w+tr"0"1?,{$60}(88*d{$60}c0{$60}&
  514. mj:k0xb1?${$60}@@-38d7q{$60}!8$p9*85nj?^%6v"b{$60}k5{$60}e5fu1i5<ra#uj0"-{$60}{$60}:i
  515. mkz{$60}y(#<oi4:d1z9((-,dj1"@{$60}"{$60}w+z5n"0&%;dq%+jg_a5m,'b^e6\g_\{$60}%@
  516. mj<&@.2!--6ah8*("m4:5{$60}\h0^3be3.d"a0(xi0/e{$60}h4#l{$60}bf!-{$60}"q@7&!#be
  517. m3nd"i{$60}2f!1ae{$60}y{$60}$r-{$60}!z(4&a{$60}>&"*63q0.ee.4$i97e!9{$60}yi9/%!j64y0>e
  518. me>4(l"nb{$60}k60e4"udy5&ra#u.*5&y0,8:0*%3"!u,:66q7>0{$60}j5wa4ve;@g{$60}
  519. ma6y@i9.%{$60}z5.2h40qa"b{$60}k60e8#*$/fb<*{$60}((&@@i77)__{$60}/q@.b{$60}k5se8#*
  520. m$/g&$-#dh@*u@)5#ra#y(*)!3'4h(#q!h@*u6960m5r5d\h0]:5-a98@{$60}t%,
  521. m34&it:{$60}y('8f($pnl!>b{$60}+t{$60}!lg!d{$60};)v[{$60}"*7^={$60}{$60}7hr0#0ztqj)*d{$60}c0{$60}%
  522. m3${$60}@q'>0{$60}6"b{$60}+d(!,g!d{$60};)v[{$60}"*7_={$60}{$60}7p"$pf1,1wd.=@z,b]{$60}{$60}70]#b8
  523. ma@+e{$60}j@88""!,4r+,:goh#d@=b:b{$60}k5{$60}e8"u1i63ra#ui$w(a!{$60}@a4*d$"!4
  524. m0i{$60}@j0"%$*5rr?_p*:("m7"5@,h0^>:3t{$60};fe-{$60}"yi5,i$*$ej("m8"5d,h0
  525. m^2!j)"!-01a@(&hd.&{$60}@]d(@bt*p{$60}6"iy:{$60}y3$tuk0{$60}%\{$60}%@j?r@.2!--6ah
  526. m8*d{$60}a2bd38b$*2#v0j+_z+t{$60}!=#zabni(j{$60}z('8f($pnd{$60}%@ho_ho0{$60}&t/j&
  527. m+"!j)*5-a2je*85-((m"d!*e*h5-j3n@.b!v)j5n"0&%;f"e384j)"@0"jf'
  528. mh#h@=b9,m$.i3j{$60}z('8f(/$g(*4g(!hhi6s)#?#gr2#pxre_r5gpw<e1t{$60}8@
  529. m:b1,0t/)0={$60})(&hdj8"%*#"[r4[p!b#3,tqn0qbe364ka2g&*4ps0r"(,3be
  530. m=^4k&&4lr5&0"b!j)*f4h#i,334@w$,8i4ue+(4iqbe,,t,8i4ue*zjd3;t(
  531. m!)d(!.c(q'>0]#be=^4ka7<8i7>j92r%=zb]"{$60}29"{$60}3@{$60}/{$60}&b,kd3;#ph@"d
  532. m3;t{$60}!o{$60}'f0@$r.c0]"#[-$ra,xk0!,a,<$*8a@(xy0*hr*({$60}3'!"i=/)$/{$60}'
  533. m*0_p!4pl0*(*3#%{$60}j0"-{$60}{$60}:isj{$60}z(#<oj9*@+"#q+j({$60}o0{$60}&g0{$60}'\{$60}/ht/6e
  534. m;@d"a6y@((@qidwd=_{$60}%z.1wt{$60}%@idv]"{$60}2\"02="028g0@$(/lt3*$si6<%
  535. m:-{$60})i6;0{$60}6#)%){$60}'j=:@.b!v)j("m6"5@,h0^2"$/r!j)*("j0"59jg_e6"5
  536. m8\h0\v"e7,5&i5we1z5>y4b0{$60}zd{$60}8"{$60},0b!j)*g_8"{$60}\02"71"#,1#be7.5&
  537. ma6:e7>5'a6>e7n5(a6cf9m{$60}&yf?0{$60}n9hh@*u0)5@m5f58\h0]2!u,:("m7.5
  538. md*g_e7/*$/6b<*{$60}(()p@h@*u696{$60}j?^5<,h0]:*3h{$60},@:""b<*{$60}#()p@i94e
  539. mdlg_t{$60}-,9$:b{$60}k63e4#*$/fee<g_\!8@=3&b{$60}k60e7/*$/fb<*{$60}(()p@3(9%
  540. mh@*ud)5{$60}e5/*$/>b{$60}k60e8#*$/fedlg_\{$60}jbdz{$60}#()p@3*a%h@*udy50ra#y
  541. m.*5)y6:%2:5*y6>%2j5+y6b%2z("m6"5@,h0^2!m1cbe5n4#a5:e5^4$a5>e
  542. m6.4%a5bee<g_t{$60}ze1m{$60}(i4?0{$60}l9(qd?&1b{$60}!1b"e-"!31b!u**5n"<v%;f"e
  543. me<g_\!*e3,d"t{$60}fb{$60}k5{$60}e4/*$/e,p#&e3,d"\.[&3$p61jd{$60}c0{$60}&i6:d9z9h
  544. m(-,dj1"@{$60}"{$60}w+zgjh#h@-r^e9p5ht{$60}re9ld!t{$60};*j0"={$60}{$60}9@("1&j?&@.b{$60}w
  545. m+zd{$60}h{$60}9,=b8@)"<@8b=,\46i{$60}(4#a02%!:6"r?_0{$60}6"b<*{$60}((&@@.*4#97>%
  546. m{$60}y{$60}&y@30{$60}n8%h@*u<)6{$60}ra#y,-@@{$60}t$@:b1,yd2b{$60}jg_e9:5f:d{$60}e9s*$/.e
  547. mdlg_t{$60}%@h@*ud)6{$60}ra#yhg"@""!h(*d{$60}h{$60}2%a(2%&*5w:0bh(/la&*5w:0b@
  548. m{$60}"!9(;#2h@*i_yt{$60}!+69g0,$ra#sj0"@!(6$a(6e=vd(j"{$60}.(j("m9ft@)29
  549. me8#*$/6e@lg_\{$60}>bf:{$60}#()p@i9c)_]{$60})h@*uf966ra#y.*6<97>%g){$60}&yiw0
  550. m{$60}n:>h@*ud-63t{$60}3*$/=@h@*u<)60ra#y3+5&i68%9p5ht{$60}>i^j{$60}z3$tuj0r@
  551. m.r!v)j("m6"5d+5ce9/*$/4@id8@:b0@=3&b{$60}k5se9"uf95sm4"5d\h0\:)p
  552. mh{$60}@@g""b{$60}k69e8#*$/fbdz{$60}#()p@h@*uei5{$60}ra#y('4qh@*ud)5sra#yhg"@
  553. m"""<(*("m9"5@,h0^:6"r?_p"j*6h{$60},@g"!,zd>b{$60}k66e5#*$/fe3,d"t{$60}fb
  554. m{$60}k5{$60}e4/*$/d8i4ee9h5)i4ie9x5*i4me:(5+&*5699r%5j5799v%5z5899z%
  555. m6"{$60}d1jddh#l@-r^i{$60}*{$60}&('8f(*4t(,{$60}q3/=%3-%,)/^b"kt{$60}wyt0!lh0]zd.
  556. mc0#_h@*]+cn5(,h0^*d{$60}c0$>j0"b@(6{$60}a8&&@b"/2+{$60}+[@$>yh+j(+y,d/"i
  557. m/xt{$60}_z(*o1{$60}&g0#?ra#wj0z-{$60}/],t""e@h4chb"@!""<("#$3+{$60}1i8*%)*f{$60}
  558. ma8*%(r#$3*4da8)@hbb@!"!h(*(#m2c5(-{$60}%ra#w&&{$60}x8*d{$60}c0?5j0$@p_^b
  559. m{$60}*d{$60}(&c_j0*b,j{$60}[(+w_j0&n{$60}!z@{$60}""z_r#{$60}_[{$60}%h@$@qo^b"(x'u6"i{$60}"#t
  560. m3*({$60}(.a,l!2=@@;){$60}/{$60}#z-#qx{$60}*0^2#/_r#/_z60c8{$60}&3+q)8*v"!jr#!h0e
  561. m"h4d)b4xj0#e)(4@k8(&y26%(:v#!nd{$60}jj4@i"$@tr2%{$60}j({$60}.*d(y0*0#o{$60},
  562. ma0*i()t{$60}!ncd{$60}i#xj0"={$60}{$60}:i$*{$60}{$60}(#<oj2"-"{$60}:-"0:b_^b]a{$60};)(/#xh{$60}#)
  563. m0o{$60}<o80&f0h&\{$60}3hr-#tj2#9!p;0{$60}xc0^*d{$60}f0h&8(p)!jdth#m,-r\@d".i
  564. m{$60}(t'u:f3(-+_j0b-!]5@h@"-!]6]{$60}{$60};p!b#2_^c0]:d-(-+_(.'_"*d(c0?5
  565. m*&"i{$60}(t'u2#,_zd!(,/_j0b-!]5@h@".!]6%^h3[h{$60}"q^o{$60}&(-+_r-#vj0b-
  566. m!]5@($a8j6*@.r#u22#'2+{$60}dj0"-!]6b!"#/_\k0^jd(c0?5(/m(("1)(,))
  567. m\{$60}>m@{$60}8i0/#n(.))j4"@.r#u22"e)r{$60}[)*g^a6zi{$60}(5i3$)8zjd{$60}c0?5)-<p
  568. m{$60}r!?_zto"htn'j7qc2\>j1"-+pjm$!x)@(7qj0b-!]6i3j{$60}[(/5)j<n%:r"<
  569. m2jd{$60}a6m,*bel,!zi{$60}(t'u:tn'hto"jto'h7qj0b-!]5,_q^e:\g+\{$60}-,3#%@
  570. mi6o)r_#y3*%8j0"%{$60}h4#a02@{$60}+d{$60}!ldpl{$60}>e{$60}j0#i@1@r3jp]2d/a06b{$60}k4"
  571. me0;*$/fb{$60}@8")@,f!){$60}'i0:d!z8(8,k0[abb{$60}+4"=0:5{$60}nb*20/0]{$60}8")@,f
  572. m!+#?i0)e!84"d{$60}cf{$60}]{$60}$y@3ps\c0hzeqh#l@=b:i""!.+@@@:b0hl!p@rdk@
  573. m{$60}-{$60}6p{$60}#0$ld?l{$60}[)!i{$60}*c0{$60}>i6x){$60}h5n8*f.h#m,336ih*{$60}[('8fj0,@3bx(
  574. m(&hd*+{$60}((,i*a6q,xs-@j0"-!]6i{$60}2##_zd!kcd>k#h>(+k_j0{$60}@o?\@p/^p
  575. m"j(!(,g_j0b-!]5@j0"-!]4@s/^i{$60}2##_zd(c0?58"!j)*d)h!\@=b:ilj{$60}[
  576. m('8fh@*u4)6{$60}j0"5ei69ra#sj0&%gr"$2[{$60}3k3l>h@&@{$60}"!s32s__rs__r"n
  577. m2zf[h#l@=b:e;@d!a6y@i0$i0$e{$60}2dj%tz!8a-2i_xt{$60}w(tot*x!w.#_t{$60}^i
  578. m{$60}(t{$60}w(tot*x!w.#_t{$60}jeu(75j7^-{$60}-q@j*t^{$60}x7,k3\#a<vi_xtot"hdts{$60}%
  579. mc0#<${$60}.-+]"b"$bm{$60}=s-{$60}=s0^$jp%tbqs,d(\{$60}c)!;{$60})r0/p!073a=,la-1h
  580. mr,k0xl!9l!!h."jppht{$60}w";3.&;3*m"w!m-&tvbeu&pz{$60}qbe.&4va3be.6"i
  581. m{$60}*{$60}2hc^%@(2!ah*i$6"e@lt]'f"i_x4ha2f%*h4k3+%(k3t>r8&p"*d{$60}c0$>
  582. m3-{$60}@j3^-{$60}/],/d@@s_^p!220<{$60}%@.&"-!]6b{$60}zd{$60}g8(&ra#xj4*-a{$60}9@h{$60}"&
  583. m{$60}kw@.tb]x3nj:)d{$60}#<cp#!ai{$60}<k0]*8"z.c0xv!(jku*/*h@!tuhr0+0!:d-
  584. mc0h-8$bjo4\\jb{$60}'36c){$60}m{$60}%j0j-#0u@ao_)#?{$60})jkt{$60}#:;_3-+_k0t-(-+_
  585. mk:$(r0'0!:d*(-+_io]@a:&&hh2cai\@.tu,^s>m,qzl-1zn*!y,<ttdhs{$60}#
  586. m3)4wj0"%{$60}h4#a02i"(4%i@+l!p20"r#n3:4#c0<$3)4wo0@$y@+)(/{$60}.2"#n
  587. m36bf{$60}yt(!.8#t{$60}+f!,8%t-&i"(4%i03){$60}k{$60}&(.y-&)#!j0ff{$60}^8#g0@$j0"%
  588. m!/"ri03p#<8$j2"f{$60}yt(!.8#t.]@j0"-!]4@x?\(j0b-!]4h\{$60}-,c4uh:#a@
  589. mk3(>#30>(%e/j0\@p_^m'{$60}hioxt<"jd{$60}a9"-_p2i#z;\h{$60}\@no^i{$60}""]_r#{$60}
  590. m_y{$60}!8"20${$60}<@s/\xj05@h@\@qo^p[220,.x@s_^py"20,.5p!,d-t/$@s/\d
  591. md##8k3x>,!2m'{$60}hi0/{$60}-j?^-_p2i#r##_tpy'$rr3j{$60}{$60}(,__l{$60}v9{$60}{$60}o())!p
  592. m!,#^d.\8a/^ed"e{$60}\{$60}*i'x7]8*d!(,/_j0"b{$60}"!h_zd!ior@{$60}b"z_z+_z+t{$60}
  593. m!m#zbj({$60}h{$60}8@o?\@p/^0{$60}6{$60}@1#>i{$60}(t'u:t{$60}!ldrd!_)-o{$60}0j0%(j0$@p_^i
  594. m#r##_v@x8*t!!ldrt.fi!-#gh@$@qo^px$r13bs_!!{$60}#3-{$60}<j0"-!]4@d4zf
  595. m_z3]j0b-!]6&_x3]8"s_!#{$60}7j0"-!]4@s/^i{$60}2##_zd/(,/_j0b-!]58&&!(
  596. m(#-/:#a@c?x$jo{$60}&k3(>("=-8*w^!-{$60}&.*e13$4=i/zf^[d{$60}"\d)t{$60}-,n4_)
  597. m"m{$60}#3*e/r1kp^8;zjkt{$60}#:;zg0@$z,c)#?{$60}(x%&p!,3_d-*$_h;[&&!(k3(>
  598. mr0'p!&a,bd]h3)9/k3(>r030!:d)3']/x%"0!*d!t{$60}j**0>%\#bi".7pa?"i
  599. m()t(!.c&\-#x3)9/("hcb/{$60}&f*(>3"pc8*{$60}{$60}l0+f{$60}m{$60}"y@-@a0*${$60}x8$(/-/
  600. mr0#0{$60}6#)k[{$60}$h{$60}'0$_{$60}(..foj*4$t{$60}d@\t]((/-/j&@@yd],!%{$60}@_q_jhaji
  601. mx"{$60}l(rr0(zd{$60}h!{$60}@.".i0*!3h@x@_d^i{$60}*{$60}{$60}(#@cj0"@4:(@(/y/(&e6(,q0
  602. m(%!*hajm%!x@+"-@a6e,=2be${$60}h891"hn7{$60}\*bhj*bd'jku@/(41n7{$60}\*1^%
  603. m$kyq/+uh/(43n7(\2di*2h44n7(\*0^%%:42($0s&&41d{$60}'(a1:$%v"i1m{$60}"
  604. mj0z%{$60}abe%vd0j*46ia-,(b2m/!z%$*d{$60}+/__(')0(+=0(*4gi6s)[_{$60},r1op
  605. m",d@\{$60}3){$60}]{$60}+j?\l__^e$(t\'f!,{$60}%8{$60}<$!:!00m,3(x0!8%$a,)#py{$60},"xw
  606. m-rxp,*]{$60}'0(90$,2{$60}0d'0$(2%0,%0#$v+48%{$60}bty,t!n7<]&54y#5$e/3f!+
  607. m15e3t%u=_5u=l08q/?a=7;$&,cwx75vq!c,]^%u=l08t/?a=7;$&-3wx75vq
  608. m!c8]^%u=l08w/?a=7;$&.#wx75vq!cd]^%u=l{$60}8q,#wx75vp!c$q/?a=7;{$60}&
  609. m,3(]^%ukkt{$60}0<j]{$60}$7*o0!arkt{$60}2<uvt0t],3u)3m%vr5%)!3e-,051)3tzr
  610. m7;-415a4l%!!4d%-151%4e.t7;!#55)33u*z75v_7<!=quvs1{$60}4,{$60}1d]l@h)
  611. m!a.p75vr0p@!$cvw7;-2!0$$/;==l4p)#@5*%0<'#{$60}4]nevr4@40!0$4/;(*
  612. m"083l%u=l%,4{$60}105$svw7;)7$@d4!3vw7;!4!1@43{$60}d.!4p%#cvz7;!-05bp
  613. m4d55l%5304=%luu=l5,%${$60}$2/;==l50!{$60}d48$#vw7;!,#p$$3{$60}y3${$60}p)%#vz
  614. m7;-"{$60}0x+$svw75vp2{$60}e,"10%/;==l%0!{$60}d,-$!(]muvs1@d.!$,!$p4]nevp
  615. m4%))3e1%4ke=7;%""t<.!#vw7;,&"0p%l!(%{$60}02s7;!2!1{$60},{$60}0,%0p$3!3vz
  616. m7;!$!18){$60}p4]le-!/;-=7;!#%1(3#q(]muvr0a42$q0]muvq5{$60}$"4q{$60}!{$60}pd.
  617. m!svz7;!4$@$.$pp!%{$60}4]meumkt{$60}0<:]{$60}$7&o0!aqkt{$60})15-#/448"11{$60}?0{$60}{$60}
  618. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}@x.oc{$60}>#kxp'@z^,!z^#'8r,@z^,!8.oc{$60}6#kxp)
  619. mkx,#sz^-#="#@_v#@[&$a(sx@x.qa(2,^(.#l82$c/b#@[&$a(sx@x.qa(2,
  620. m^(.#l82$c/b#@[&$a(sx@x.qa(2,^(.#l82$c/b#@["oa{$60}.,^(.#l*^${$60}xsx
  621. m@x.pkx0#c/bo@u*tkxt&m(.rkxt+lh.skxt/m(.pkxt&nh.#ox/{$60}@\>#lz^$
  622. m!8rrkxp$l(.#lj^$!(rw@[.oa{$60}2,mx.qkx0*c+j#lj^$!hrrkxp$l(.#l*^$
  623. m!hrw@[*oa{$60}6,mx.pkx0+c+j#l*^-#;.#@[&oa{$60}6,mx.qkx0&c+>#l*^$"xrz
  624. m@[.oa{$60}6,mx.#l*^$!hrw@["oa{$60}>,mx.skx0(c+j#l*^-![f#@[&oa{$60}6,mx.s
  625. mkxt)lx.pkx0+c+j#l*^$!hrra(2,lx.#l*^$!hrw@[*oa{$60}6,mx.qkx0*c+j#
  626. ml*^$"8rvkx-'kxd(@x,{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}'p{$60}!{$60}@,$
  627. m!08'"{$60}d*"pl+"pp-#@\1$a,0%!46&!h7%ql9'!x{$60}{$60}{$60}{$60}!{$60}@,$!08'"{$60}d*"pt0
  628. m$1(3%q05%a@9&at;(!p?(2(b{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}/\?0%?"5n-6*5?_'r)8_q__'_\?
  629. m_q_.3ty%{$60},'3prw#s{$60}#!t\,ms$8{$60}p=/#+<-2{$60}--01--#4@{$60}b)rxu/#(s.\]&
  630. m1@#/3@{$60}v."pm/3dzq4y!0dq%{$60},1)4t%"3$4{$60}>'z%bi&7gz:kk[6\q<o2v<),
  631. m04-+{$60},0nqu)%60#"3%5%{$60},pnpdq510#'4d5%3@#,+l=2145.{$60},0npue!3@##
  632. m64%.{$60}-)%1{$60}#,+m)%1{$60}#055)03$4{$60}s%!54e!,10{$60}{$60}pe)/5tx{$60}v45,3$]7{$60},pn
  633. mqu)%60#72$e410{$60}9&qxm,qt{$60}[3#q,/4p^3#],{$60}$q{$60}{$60}##3$5!4b#&24q%{$60}{$60}#)
  634. m'={$60}2(+m0ya"e$,dcd{$60}2i{$60}(403-90r9w0#2"[4,80$/*i(h40t.s)d={$60}-(+m0
  635. mia"]p%2%$$s64,d1t{$60}t@nu"f$+wf5(403-90r0w0{$60}r!\5b!65ds<4*44"jj]
  636. mx#r%{$60}kwa/(4#ia5l{$60}@"i{$60}(40(')0(%96ya"e$,dcd/)@i10*jkt,584"o0u5
  637. ma0.f%6p"{$60}+q(5;x{$60}'ku#5:!5h@".{$60}{$60}8@-r^i(,03l{$60}:9{$60}{$60};(t/:i{$60})d{$60}!j46
  638. mi!>%/h0_j0"@!dp{$60})+q(51by{$60}!yi{$60}<d%d{$60}*i{$60})d{$60}'f"i2[pt'o{$60}"j4^@54r:
  639. m5ktt'dg_g30>8*402+q25;d{$60}'n{$60}$t{$60}(i?z({$60}h{$60}{$60}@tr2b{$60}+40g0{$60}$\{$60}/ht/9h
  640. ma1{$60}@<e"i{$60}*{$60}$3)i6j5f@52p^'a{$60}"j6!,fe:m/ay)_xt^'f"]$!xi#zj]:%6@
  641. m54r:5kt0'bgpa0*]$!x8:0$i#p4"g1{$60}>8*d{$60}\{$60}*i_tbe3(4ai4v%(jt5'h4c
  642. mj0>-%1x8i1%e((5-i1*%3&@p!b#q)tr%5r{$60}:**4aa4re(h5-i2.-%1y@j0vb
  643. m%(4dab6b_^b]{$60}{$60};0^h8@(%57(*4g(%e7i6s%)-{$60})ib"i{$60})t{$60}!aa@q270{$60}ts?
  644. m5\d#t{$60}4@m%<x8*0@q!.p"9d{$60}!lb$(""b5dre5z0@\/f(3-=7ia"&**({$60}h{$60}{$60}@
  645. mtr2b{$60}+40g0{$60}&\{$60}/ht/:&*:4ha1{$60}@<e"d*2"b5j8ij0"={$60}{$60}8@du>p"2#*2n{$60}!
  646. ml{$60}+{$60}{$60}6"\4e6y{$60}![@!-{$60}"*7\@yu>p"*85x{$60}30{$60}@f{$60}o%)5f0{$60}>8"!=)4qu*""o
  647. m2:d{$60}c0?5k1{$60}>"8"%\:d(c0?58*({$60}o0{$60}&g0{$60}-\{$60}/ht/5x((3_(('_6*d!c3#0
  648. mk1'0*>^-$={$60}dus{$60}#(%__hajm&!x@+".m+qz%\:({$60}o0{$60}-\{$60}8@to_ht/5@i4z-
  649. m"1zb!=w?5?{$60}#ra#xb@jjo>95c3{$60}>o>=5c3$>3'4hj0"-!]6fnhx{$60}'jd(c0?5
  650. m(/\?j?^%;dq=)21?${$60}^i{$60}(t{$60}!jgth%4@t4"0{$60}6{$60}@k3^i{$60}(5)a4j%2r{$60};)r!b
  651. m)r!u**d{$60}a5^i_h5nh@"],a^={$60}{$60}?p{$60}^c0]6"e;@e{$60}a6x@b#&f3>1wt{$60}-,_3&]
  652. m"{$60}3)(/{$60}(z.1wd/2&36"]"{$60}3)(-#vz.1wd/1,-efe;@e{$60}a6ze3={$60}#3!tr((@q
  653. midw*\-fi(-t(!/#vz,kpsmt(!-#xz$pv6:5n"4"%;b"(,:tx'm{$60}!8*5-..tx
  654. m'k#[;3@>a0(xk3@>y0(894w)4;#ea4w%=_#?d-vf3:d@g0@$rn#_\{$60}3d=[#t
  655. midv&=r#[-$rd,z5n"4"%;j5-t{$60}%@kc@>\/hx[3@>l/mm.![){$60}-{$60}#k3@>a0(x
  656. mi4we{$60}h5-8"{$60}\02#,1(7#j0"%q(7%((@qh@*u<y7{$60}ra#y(.=<()-;3%]<i<40
  657. m{$60}ca@il3d=[{$60}'o0@$yl088.#_\{$60}bi#:+_al088*("m4#56={$60}$ra#wz{$60}@@45je
  658. m0lg_\{$60},@b#$ht{$60}:i_x7%.&"i{$60}(7$3{$60}e:(,m<h@*u<)5{$60}ra#y8"{$60})6k{$60}%r0wp
  659. m{$60}aa@),8p{$60}n;&&&"i{$60}(t{$60}!h7'("%;d{$60}.b{$60}v#)(/#tr0wp\*;&al@@,eojil>=
  660. m{$60}{$60};fqr{$60}a6\d@\{$60}3)#=#nil>i{$60})t{$60}!j3)a,j%r<j]{$60}{$60};)+o{$60}(r2'p!,d_t{$60}2i
  661. m_x7)3'q;zi{$60}#h@)@),hp{$60}z({$60}8*t{$60}!lg!d/;)v[#rh@%@a0(89<>p"67.l{$60}7-
  662. m-az0"o{$60}(i<[p{$60}ca@a0*fsj0"\{$60}fi()t(#.b(t/f@{$60}+d{$60}!it(#.c(q,>0]*d{$60}
  663. mg0@,alx88"!>6k{$60}+il;0!ld@t{$60}+fsqa@il^&oz({$60}al:&sv{$60}@<5k@{$60}o{$60}!8"!j
  664. m6x7+h@*u<)5{$60}ra#y((@q(&i;a<rb{$60}k5se4#*$/d@b#&b{$60}f"b{$60}.1wl{$60}j]"{$60}3)
  665. m(-{$60}#z-#rbf#))_{$60}+r2+p!z7(r0),quk@{$60}/#urdrp6jd"a<:i_x7-j0"%sb{$60}]
  666. m6^{$60}#t{$60}beso{$60}#(.5;8.{$60}"t!<ds3{$60}'(.5;qlc0^:d{$60}a<verr#a6dr?6z6_t{$60}bi
  667. m{$60}>{$60}{$60}\{$60}*i{$60}b#a6i#%(.5;i<p@x5i,gunb{$60}k7{$60}g0,,j?^={$60}{$60}s*$/.esht'#!ai
  668. m"*{$60}{$60}(%daj0"@#(6$a(48i<yi"*@@#b*b{$60}k6{$60}m,"4@)7{$60}ra#ui8+)_]{$60}+h@*u
  669. mp)50ra#y,{$60}>bp*{$60}#()p@.*7.95:%5i{$60}&ye?0{$60}n98j0"%sn9&t{$60};f1]{$60}"ydcf
  670. m2={$60}&ydk0{$60}n9+8*5"r?_0"z("m<"54\h0^3{$60}c('4qh@*up)5sra#yhg"@"""<
  671. m(*("m<"5@,h0^:){$60}h{$60},@g""b{$60}k7{$60}e9"u1i63ra#u.*63z0&%dz64z0"%e+{$60}"
  672. mqi6i{$60}(66(&(g($u!(&hd('4h(*4ti6x)[(5n8"{$60}n-*5w('$thddxm0#i{$60}94{$60}
  673. ml{$60}bu{$60}={$60}"u@+6{$60}6"i[j!<3'8fre5'1tq)3d<@3$e.15,n+bx{$60}rte,3"!"549&
  674. m15(@0tq%05)%1{$60}#%3e1%4b##3tu-3t1/4d4@q,_3($-/34u!3d0{$60}ut]22te.
  675. m1rxn+@{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  676. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  677. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  678. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  679. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}""71*d{$60}h%t@=b:e;@d!a6y@j0"-!]4@
  680. ms/^i"(t'u5@x8*d4h%t@=b8@3"x@:b2i,*!=('8f("(wk0{$60}&\{$60},@:s<@1#<@
  681. 3a3<@:b2i{$60}*{$60}&('8fi6x){$60}85n8{$60}{$60}{$60}
  682. {$60}
  683. END
  684.