From mipos3!intelca!amd!amdcad!ames!ucbcad!ucbvax!decvax!tektronix!tekgen!tekred!games-request Thu Jul 30 18:56:37 PDT 1987 Article 56 of comp.sources.games: Path: td2cad!mipos3!intelca!amd!amdcad!ames!ucbcad!ucbvax!decvax!tektronix!tekgen!tekred!games-request From: games-request@tekred.TEK.COM Newsgroups: comp.sources.games Subject: v02i001: nethack - display oriented dungeons & dragons, Part01/16 Message-ID: <1443@tekred.TEK.COM> Date: 28 Jul 87 17:18:57 GMT Sender: billr@tekred.TEK.COM Lines: 1366 Approved: billr@tekred.TEK.COM Submitted by: mike@genat.UUCP (Mike Stephenson) Comp.sources.games: Volume 2, Issue 1 Archive-name: nethack/Part01 [OK hack fans, here it is. This posting and the following 15 compose the latest version of hack, known as nethack. -br] [[From the author: To make NetHack on any Unix system, copy "Makefile.unix" to "Makefile", edit it and "config.h" then type "make". I've tested it out on 4.2BSD and System V Unix systems, and there seems to be no obvious build problems. To make NetHack on a SCO Xenix system, copy "Makefile.xenix" to "Makefile", edit "config.h" (Makefile.xenix" should??? be OK), then type "make". I know that it won't run, as it exists now, under Xenix, but maybe someone out there can get it working - especially the hackers at SCO - maybe in time for the 2.3 release???? To make NetHack on a Dos PC, copy "Makefile.pc" to "Makefile", edit config.h, then type "make". This one may not even link properly, although it should compile. If anyone comes across a bug, or manages to get the program to run under Xenix or Dos, ***please*** send me a set of diffs or whatever so that I can patch my code and get a release with the proper information out to the net in general. Also, if anyone wants to put the 3.51 --> 3.61 PC Hack changes into the source, send me diffs. Once I have a significantly large set of mods, I will send them to the moderator of comp.sources.games so that he can post them. I will try to keep the postings of diffs up to a level of about one posting per month, although I am taking three weeks vacation about a month from now. I can hopefully get the first set of mods out before I take off. Mike Stephenson Mail: Genamation Inc. Phone: (416) 475-9434 351 Steelcase Rd. W Markham, Ontario. UUCP: {seismo, utzoo}!mnetor!genat!mike Canada L3R 3W1 ]] ------------------------------------------------------------ #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh README <<'END_OF_README' X NetHack V1.0 README X X This file contains information on NetHack, it's history, features, Xand installation proceedures. X X For a detailed history of the game, see the README.OLD file, which Xcontains three separate readme files, dating back to the original release of Xthe game (then named hack) by Jay Fenlason. X X History: X ========== X X NetHack is the product of literally dozens of people's work. I have Xa list of *some* of those who made major additions to the game which appears Xbelow: X XJay Fenlason wrote the original release of "Hack", with help from X Kenny Woodland, Mike Thome and Jon Payne. X XAndries Brouwer did a major re-write on the program and publshed (at least) X two versions to the Usenet. X XDon Kneller ported the 1.0.3 version of Hack to the PC, creating PC-Hack. X X The following folks didn't actually re-write the game, or port it to Xa new machine, but have made significant contributions to the playability of Xthe game: X Xins_akaa@jhunix.UUCP (Ken Arromdee) X X New character classes. X New weapons code. X Armor weights implemented. X New tools code. X Polymorph self code. X additional bug fixes. X Xsrt@ucla-cs (Scott R. Turner) X X Rockmole & Keystone Kops code. X Squeeky Board & Magic traps. X Fountain code. X more bug fixes. X Xgil@cornell.UUCP (Gil Neiger) X X Magic Marker code. X Fountain code enhancements. X Enhancements to dozens of routines. X more bug fixes (esp. in hack.zap.c) X Xericb@hplsla.UUCP (Eric Backus) X X #dip mods to fountain code. X yet more bug fixes. X X As for myself, I have added new character classes and traps, the XThrone Room, spellbooks and spellcasting, implemented code for praying and Xmade some enhancements to the endgame. X X NetHack is an integrated version of two major "flavors" of Hack, XUnix and PC Hack. It is designed so that you should be able to compile it Xin either one of the target enviornments. The filenames of all modules have Xbeen modified to correspond with the PC-Hack standards implemented by Don XKneller. X X config.h X ========== X X As distributed, it is set up to compile on my machine (a Pyramid 98xe Xin the Berkeley universe). Due to the large number of "features" in NetHack, Xthe config file (config.h) is used to select the target options. X X Here is a list of the currently supported options: X XSPELLS Spell casting code XPRAYERS Prayer code XKAA Various changes made by Ken Arromdee XMARKER Magic marker modification XNEWCLASS New classes, traps, and Throne Rooms. XSAFE_ATTACK Safe attack code XPROBING Wand of probing code XDIAGS Diagnostics after death/quit XSORTING Sorted inventory XDGK Additional features by Don Kneller (PC specific) XDGKMOD Additional features by Don Kneller (Non-PC specific) XREDO support for redoing last command XHARD Enhanced wizard code among other things. XNEWTRAPS Magic and Squeeky board traps XFREEHAND Cannot use Pick-axe without wielding it. XSPIDERS Spiders and webs XFOUNTAINS Fountain code XKOPS Keystone Kops XROCKMOLE Rockmoles X XStatus Line options: X XGOLD_ON_BOTL XEXP_ON_BOTL X X In a number of cases, code written for one specific version of Hack Xor another was separated out and given it's own designation (eg. REDO has Xbeen moved out of DGKMOD which was moved out of DGK from PC-HACK). X X Some New Features: X ==================== X X Some of the old code (eg. KOPS) has been enhanced to allow for more Xfunctionality. Here's a couple of examples - you can find out the rest for Xyourself in the traditional Hack style :-) X X Kops now throw cream pies (thank/blame KAA for the suggestion). X X The wizard may not stay dead!!! X X There are a couple of new types of demons. X X Demons may not be aggressive. X X There are lots more of these little gems, with sufficient hints in Xvarious fortune cookies to give away enough clues. X X Makefiles: X ============ X X The Unix "Makefile" has been enhanced to make installation cleaner Xand also to allow "initialization" of the play directories (WARNING: this Xwill destroy old score files!!!). The PC Makefile hasn't been upgraded in Xthis respect. X X The program "makedefs" has been modified in order to allow limited Xuse of "#ifdef/#else/#endif" sets in objects.h. Makedefs will only generate Xone #define for any number of ocurrences of a given object name string. In Xaddition, "makedefs" also generates alternate defines for "DEAD_xxxxx" in Xthose cases where a monster has been given an alternate identity. X X Makedefs has also been modified in order that it may be used to Xinitialize the following variable def files: X X objects.h -o option, see above. X trap.h -t option, trap type defines. X date.h -d option, date string. X data -D option, optional monster names. X rumors -r option, optional rumor addition. X X To compile the program on any 4.n or Sys V system, you should only Xneed to copy "Makefile.unix" to "Makefile", set up "Makefile" and "config.h", Xthen type "make". On a Xenix system, use "Makefile.xenix" and similarly set Xup "Makefile" and "config.h", with "STUPID" defined. At this point in time, XI can get the Xenix version to build, but it will immediately dump core on Xinvocation. X X Known Problems: X ================= X X There are several known problem areas and deficiencies in the code Xwhich I haven't yet addressed, prefering to get the really fatal bugs out of Xthe way. Here's a short list of things someone out there might want to work Xon (and it is by no means complete): X X - The WALKIES code is really crude. Fido get's mnexto()'d you when X he gets out of the effective leash range. I haven't yet been able X to integrate leashed movement into dogmove(). You might just want X to comment out the #define in config.h. X X - ROCKMOLES have some problems with screen updating. I didn't make X any changes to the code I received, and have noticed some distinct X problems with walls not being set to "door" until the rockmole X moves off the cell. X X - There are some problems in the item selection code, the usual effect X of which is to leave the cursor sitting at some arbitrary point on X the screen instead of returning it to the upper left hand corner or X onto the "@". This doesn't affect the screen updating, so I have X ignored it up to now. X X - REDO may not be completely implemented. I am still working on it X here but would appreciate any help anyone out there might want to X give. X X I fully expect that about one week's worth of play on the net will Xresult in a couple dozen bugs being discovered. I would like to keep a lid Xon the potential explosion of different sub-versions of the game, so if you Xpossibly can, please send me the bug reports, instead of releasing them to Xthe general public. I will apply them to my code here, and will generate an Xupdate to the release when the mass of fixes (or mass * severity factor) gets Xlarge enough. This way, we should be able to keep most of the net up to a Xcertain level - this may turn out to be the first truely net maintained Xgame. Unless circumstances change, I will continue to consolidate fixes and Xmodifications to the game, and will continue to post to the net through Xcomp.sources.games, with notices of new patches/fixes/mods going out through Xrec.games.hack. X X Making Bug Reports: X ===================== X X To send bug reports, just E-Mail me at any one of the following net Xaddresses (in order of connectivity): X X seismo!mnetor!genat!mike X utzoo!mnetor!genat!mike X pyramid!pyrnj!genat!mike X utzoo!utgpu!genat!mike X X When you send in a bug report, please keep your code fragments as Xsmall as possible. Remember that each site along the way is paying for the Xtransmission of the code. X X Mike Stephenson X XMail: Genamation Inc. Phone: (416) 475-9434 X 351 Steelcase Rd. W X Markham, Ontario. UUCP: {seismo, utzoo}!mnetor!genat!mike X Canada L3R 3W1 END_OF_README if test 7713 -ne `wc -c MANIFEST <<'END_OF_MANIFEST' X File Name Archive # Description X----------------------------------------------------------- X MANIFEST 1 This shipping list X Make.ini 16 X Makefile.pc 15 X Makefile.unix 14 X Makefile.xenix 12 X README 1 X README.OLD 11 X alloc.c 16 X apply.c 5 X bones.c 15 X cmd.c 11 X config.h 13 X data.base 11 X date.h 5 X decl.c 16 X do.c 12 X do_name.c 13 X do_wear.c 12 X dog.c 15 X dogmove.c 13 X dothrow.c 13 X eat.c 8 X edog.h 16 X end.c 13 X engrave.c 9 X eshk.h 16 X extern.h 16 X fight.c 6 X flag.h 16 X fountain.c 13 X func_tab.h 16 X gen.h 10 X gold.h 12 X hack.c 3 X hack.h 16 X help 14 X hh 16 X invent.c 4 X ioctl.c 14 X lev.c 8 X make.exe.uu 1 X makedefs.c 9 X makemon.c 1 X mfndpos.h 16 X mhitu.c 8 X mklev.c 4 X mkmaze.c 6 X mkobj.c 15 X mkroom.h 16 X mkshop.c 12 X mon.c 5 X monmove.c 10 X monst.c 15 X monst.h 16 X msdos.c 7 X msdos.h 16 X nansi.sys.uu 16 X nethack.6 14 X nethack.sh 16 X netquest.sh 16 X o_init.c 14 X obj.h 16 X objclass.h 16 X objects.h 6 X objnam.c 7 X options.c 4 X pager.c 12 X pcmain.c 10 X pctty.c 15 X pcunix.c 16 X permonst.h 16 X polyself.c 14 X potion.c 7 X pray.c 15 X pri.c 9 X prisym.c 12 X read.c 6 X rip.c 16 X rm.h 16 X rnd.c 16 X rumors.base 2 X rumors.c 9 X rumors.kaa 15 X rumors.mrx 16 X save.c 11 X search.c 15 X shk.c 2 X shknam.c 14 X sit.c 15 X spell.c 11 X spell.h 16 X steal.c 14 X termcap.c 13 X timeout.c 16 X topl.c 15 X topten.c 10 X track.c 16 X trap.c 5 X trap.h 2 X u_init.c 8 X undo.sh 8 X unixmain.c 9 X unixtty.c 14 X unixunix.c 7 X vault.c 10 X version.c 16 X wield.c 3 X wizard.c 10 X worm.c 14 X worn.c 11 X write.c 15 X wseg.h 16 X you.h 15 X zap.c 3 END_OF_MANIFEST if test 3534 -ne `wc -c make.exe.uu <<'END_OF_make.exe.uu' Xbegin 644 ./make.exe.uu XM35JR`#<`"@`@`,L`RP#V!@`(HY2?+```'@````$`F`NI!:`L``"4,```MS,` XM`/H\``!S/0``Q3T``+D_``"Z#ZD%O@^I!0`````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM```````````````````````````````````````````````````````````` XM````````````````````````````````````````````58OLN#``Z'(L5L=& XM^@``QT;\``#'!@H5`0`SP*,0%:,.%:,&%:,,%:,(%>D]`8M&_BT_`#TU`'8# XMZ:\``\"3+O^G#P&#/O04`'1`BQ[T%(`_+74/N'D`4%/HC32#Q`0+P'4H@W[Z XM%'T1BW;Z_T;ZT>:A]!2)0M#I\0"X%`!0N'L`4.@%!H/$!.G@`+B5`%#H^`7K XM3L<&"A4``+AN`.L_QP8&%0$`N&D`ZS3'!@@5`0"X=`#K*<<&#A4!`+AK`.L> XMQT;\`0"X<@#K%,<&#!4!`+AS`.L)QP80%0$`N&0`4.C&'X/$`NF#`.AK)8M> XM!O\WN*X`4.A+!8/$!.A9)>ML^`#[`/L`^P#[`.4`^P!4`/L`^`"O`/L`Q0#[ XM`/L`I`#[`/L`^P#0`-H`N@#[`/L`^P#[`/L`^P#[`/L`^P#[`/L`^P#[`/L` XM^P#E`/L`5`#[`/@`KP#[`,4`^P#[`*0`^P#[`/L`T`#:`+H`N&,`4/]V!O]V XM!.@G)X/$!HE&_D!T`^FJ_NB;'X-^_`!T"KC#`%#H(AV#Q`*#?OH`="#'1OX` XM`(M&^CE&_GT=BW;^T>;__M'CBW8&_S#HGP7K#8M>_M'C XMBW8&_S#H7QR#Q`+_1OZ+1@0Y1OY\OH,^$A4`=0BAX!"C$A7K'*$2%>L&BU[X XMBT<$B4;XB]B#?P0`=>^AX!")1P2#/A`5`'0&Z'P)Z)80Z*@DZ-<7,\!0Z%$D XM@\0"7HOE7<-5B^RX`@#H%2JXR`!0_W8$Z'DR@\0$"\!U$+C*`%"X$@M0Z#`` XM@\0$ZR>XT`!0_W8$Z$PL@\0$B4;^"\!T$_]V!%#H$`"#Q`3_=O[HBRN#Q`*+ XMY5W#58OLN`0`Z,`I@SX0%0!T#?]V!KC2`%#H6B^#Q`2A`A6C=!!`4.@$`X/$ XM`J-R$*%T$`,&A```.F2`,=&_@``BQYR$(`_`'1: XM@#\C=%6`/RYU!E/HW![K1(L>\!+'!P``ZPW_-G(0Z/0(@\0"B4;^ XM@W[^`'0D_S9R$(-^_O]U!;CH`.L#N/,`4/\V>A#_=@:X]`!0Z``#@\0*_W8$ XMZ!4`@\0""\!T`^E>__\V!#_!GH0_W8$N``"4(V&`/Y0Z*\J@\0&"\!U(HM>!/9'!A!T!3/`Z1X!_S;& XM`.B^+8/$`K@!`%#H)BJ#Q`*+]8'N``*#OOC]`'04ZPV*!)B+V/:'A0P(=`9& XM@#P`=>Z+_K@C`%!6Z&&^/T``+A<`%!6Z*(Q@\0$B8;^_0O`="&+V(!_`0!U&<>& XM^/T!`(OXZPR*!9B+V/:'A0P(=%7&!0!/._YS[.M+H780.09X$'(W@09T$/\# XMH7(0B8;^_:%T$$!0_S9R$.A4`8/$!*-R$*%T$`,&!`KAO[]`P9R XM$*-X$(L>>!#_!G@0K(@'@#P`=;"#OOC]`'0+BQYX$/\&>!#&!R"#OOC]`'0# XMZ<3^BQYX$,8'`+@!`%Y?B^5=PU6+[+@"`.AG)U=6BW8$QT;^``#K68M&!CE& XM_G-6ZPV*!)B+V/:'A0P(=`9&@#P`=>ZA`!4Y1OYR"@4_`%#HLQN#Q`*+7O[_ XM1O[1XXL^Y!*),>L-B@28B]CVAX4,"'4&1H`\`'7N@#P`=`3&!`!&@#P`=:*+ XM7O[1XXL^Y!+'`0``BT;^7E^+Y5W#58OLN`0`Z-XFZP^*!YB+V/:'A0P(=`O_ XM1@2+7@2`/P!UZ?]V!.B?+X/$`D")1OY0Z!<`@\0"B4;\_W8$4.AD+X/$!(M& XM_(OE7<-5B^RX`@#HE";_=@3H>2N#Q`*)1OX+P'4*_S;$`.B,`(/$`HOE7<-5 XMB^PSP.AN)H-^!`!T#O]V!O]V!.BL+(/$!.L)_W8&Z#\K@\0"B48$"\!U"O\V XMQ`#H4@"#Q`*+1@2+Y5W#58OL,\#H,2;_-L8`N`@!4+@B"U#HJBB#Q`;_=A#_ XM=@[_=@S_=@K_=@C_=@;_=@2X(@M0Z(LH@\00N`T!4+@B"U#H?2B+Y5W#58OL XM,\#HZ27_-L8`N!`!4+@B"U#H8BB#Q`;_=A#_=@[_=@S_=@K_=@C_=@;_=@2X XM(@M0Z$,H@\00N!4!4+@B"U#H-2B#Q`2X`0!0Z,X?B^5=PU6+[+@&`.B6):'F XM$NL8BU[\_S?_=@3H]"V#Q`0+P'1!BU[\BT<&B4;\"\!UX8-^!@!U1/]V!.BR XM*(/$`HE&_@O`="/'1OSH$HM>_(M&!(D'BU[\BT;^B4<"BU[\QT<$``"+1OSK XM3?]V!+@@`5#H]OZ#Q`0SP.L\N`@`4.B$_H/$`HE&_/]V!.@N_H/$`HM>_(D' XMBU[\QT<"``"+7OS'1P0``(M>_*'F$HE'!HM&_*/F$NNNB^5=PU6+[+@&`.C? XM)+@]`%#_=@3HYRR#Q`2)1OH+P'4@N#0`4+@_`5"X1P%0N"(+4.A`)X/$"+@! XM`%#H42:#Q`*+7OK_1OK&!P#K#XH'F(O8]H>%#`AT"_]&^HM>^H`_`'7IN`$` XM4/]V!.@/_8/$!+@!`%"+'N02_S?HT/Z#Q`2)1OR+V(-_`@!T"?]W`N@X*8/$ XM`O]V^NAK_8/$`HM>_(E'`HOE7<-5B^RX"`#H/"2+7@2`/RAU"L9&_"C&1O@I XMZPC&1OQ[QD;X?8M>!(I&_#@'=`J+P_]&!(E&_NLZ_T8$BT8$B4;^ZPJ*1O@X XM!W0+_T8$BUX$@#\`=>Z+7@2`/P!U%8M&_DA(4(I&^)A0N&L!4.CF_8/$!HM> XM!(H'B$;ZQ@<`_W;^Z-S\@\0"BUX&B0>+7@2*1OJ(!XI&^#A&^G4#_T8$BT8$ XMB^5=PU6+[#/`Z)DCH0(5HWP00%#H\?R#Q`*C@!"C@A"A?!`#!H`0HWX0_W8& XM_W8$Z!$`@\0$BQZ"$,8'`*&`$(OE7<-5B^RX!@#H6"-6Z?@`H7X0.0:"$'(U XM@09\$/\#H8`0B4;^H7P00%#_-H`0Z+W\@\0$HX`0H8(0*T;^`P:`$*."$*%\ XM$`,&@!"C?A"+'H(0_P:"$(MV!/]&!(H$B`>+7@2`/P!T$(`_)'6C_T8$BUX$ XM@#\D=)B+7@2`/P!U`^F0`(U&^E!3Z)3^@\0$B48$BU[Z@'\!`'4@B@>84+A^ XM`5#HT2J#Q`0+P'0._W8&_W;ZZ&,`@\0$ZT4SP%#_=OKH`OV#Q`2)1OP+P'0R XMB]B#?P0!=0O_-[B#`5#HE?SKU8M>_,='!`$`_W8&BU[\_W<"Z`__@\0$BU[\ XMQT<$``#_=OKH/">#Q`*+7@2`/P!T`^E-_UZ+Y5W#58OLN!0`Z$,B5L=&_`$` XM@WX&`'41BUX$B@>84+B8`5#H./R#Q`2+7@2*!Y@]*@!T$CT\`'0V/3\`=#$] XM0`!T(>E+`?]V!C/`4%"+1@8%$`!0Z"08@\0&4.B0_H/$!.DM`?]V!HM&!@40 XM`.OKH8`0B4;NH8(0B4;RH7X0B4;^H7P0B4;X_W8&Z`(&@\0"B4;PB4;ZBT;N XMHX`0BT;RHX(0BT;^HWX0BT;XHWP0ZQ**!YB+V/:'A0P(=0/IO@#_1OJ+7OJ` XM/P!UYNFP`(O#B4;LZP^*!YB+V/:'A0P(=0O_1OJ+7OJ`/P!UZ8M>^HH'B$;T XMQ@<`BUX$@#\\=16#?OP`=`?'1OP``.M%_W8&N++7OJ`/P!T$8H'F(O8]H>%#`AT!?]& XM^NOGBU[Z@#\`=`/I1?__=O#HGB6#Q`)>B^5=PU6+[+@$`.BP(+B[`5#HBB:# XMQ`*AYA+K&(M>_O]W`O\WN,L!4.@])H/$!HM>_HM'!HE&_@O`=>&XU@%0Z%PF XM@\0"H?(2ZQ6+1OQ`0%"XZ`%0Z!$F@\0$BU[\BP>)1OP+P'7D_PX<"X,^'`L` XM?!"P"HL>&@O_!AH+B`_O]&_L8'`#/` XM4/]V\NA,_(/$!(E&_+C__U#_=OSH;?B#Q`2+7OZ`/SIU3(L>Y!*+'X`_+G4Z XMN"X`4(L>Y!*+!T!0Z,HG@\0$"\!T)+CL`5"+'N02_S?H!"F#Q`0+P'40N/`! XM4.A=^8/$`K@!`.DH`<=&^@(`ZQ/'1OH!`.L/B@>8B]CVAX4,"'0+_T;^BU[^ XM@#\`=>FX.P!0_W;^Z'`G@\0$B4;P"\!T"(O8_T;PQ@<`,_;K93DV_!1W#:'\ XM%`4_`%#HEQ.#Q`+_=OJX`0!0B][1XXL^Y!+_,>AW`8/$!HO>T>.+/O`2B0&+ XMWM'CBS[P$H,Y`'4#Z7'_B][1XXL9@$\,$(M>_H`_`'4.B][1XXL^\!*+&8!/ XM#`%&B][1XXL^Y!*#.0!UCHO>T>.+/O`2QP$``/]V_.BA(X/$`HM>_H`_`'0Q XMN/__4%/H0?>#Q`0S]NL5_S;D$HO>T>.+/O`2_S'H.@"#Q`1&B][1XXL^\!*# XM.0!UWL=&^```@W[P`'0,_W;PZ`P%@\0"B4;X_W;RZ$@C@\0"BT;X7E^+Y5W# XM58OLN`8`Z%8>5U:#?@0`=`/IDP"X5@!0N!("4+@;`E"X(@M0Z,`@@\0(N`$` XM4.C1'X/$`NMQN#\"4/\WZ%HF@\0$"\!U"8M>!(!/#`CK5#/`4+@!`%"+7@;_ XM-^A7`(/$!HE&^C/_BUX$BW<"ZPR+!#E&^G0NB_Z+=`(+]G7PN`0`4.@]]X/$ XM`HOPBT;ZB03'1`(```O_=0B+7@2)=P+K`XEU`H-&!@*+7@:#/P!UAUY?B^5= XMPU6+[+@*`.BA'5=6BUX$@#\N=2BX+@!0B\-`4.B>)8/$!`O`=!:X20)0_W8$ XMZ-LF@\0$"\!U!;CB$.L/@S[X%`!T!;C@$.L#N!(5B4;V,_^)?OZ+V(LW"_9U XM`^FA`/]V!(U$$%#HL26#Q`0+P'0#Z:<`@WX&`'02@WX(`'0,@WP.`'4+BT8( XMB40.B\;I5@&#?@@!=5F#?`X!=5.+7@2`/RYU/[@N`%"+PT!0Z`\E@\0$"\!T XM+;A-`E#_=@3H3":#Q`0+P'47XOE7<-5B^RX XM$`#HMQM75J$"%8E&_D!0Z`WU@\0"B4;PB_B+1OX#QXE&^HM>!.F'`/]V!(M> XM\HL'!1``4.CD]X/$!(E&^(OP@#P`=$6*!)B+V/:'A0P(=#E&Z^PY?OIW+8%& XM_O\#BT;PB4;\BT;^0$!0_W;PZ-?T@\0$B4;P*T;\`\>+^(M&_@-&\(E&^JR( XM!4>`/`!UQ8M>\H-_`@!T#(M>^(`_`'0$Q@4@1_]V^.CP'X/$`HM>\HM'`HE& XM\@O`=`/I;/_&!0"+1O!>7XOE7<-5B^RX!`#HZQI75HMV!.LEB_Y&@#TZ=1V` XM/`!T%(H$F(O8]H>%#`AU"#P[=`0\.G4$B\?K!X`\`'76,\!>7XOE7<-5B^PS XMP.BJ&NL!(M'`HE&!(-^!`!UWHOE7<-5 XMB^PSP.AZ&NL:BT8$!0@`4+B$`E#H%2"#Q`2+7@2+1P:)1@2#?@0`=>"+Y5W# XM58OLN`0`Z$L:Z9\`BUX$@W\.`'4#Z8H`@W\&`'0%N(D"ZP.XBP*)1OR+1@3K XM8_]V_(M&!`40`%"XC`)0Z,`?@\0&BU[^_W<"Z%?_@\0"BU[^_S?H?/^#Q`*+ XM7OZ#?P8`="G_#AP+@SX<"P!\$+`*BQX:"_\&&@N(!RKDZPZX&@M0N`H`4.BO XM&(/$!(M>_HM'!HE&_@O`=9:XD@)0Z)8?@\0"BUX$BT<$B48$@WX$`'0#Z5C_ XMB^5=PU6+[#/`Z)09N)0"4.AN'X/$`O\V$A7H+_^#Q`*XI@)0Z%H?@\0"_S;B XM$.@;_XOE7<-5B^RX!@#H8AE75NL/B@>8B]CVAX4,"'0+_T8$BUX$@#\`=>F+ XM7@2`/P!U`^G>`(L>\!*#/P!U$+BY`E#H\_*#Q`*X`0#IQP#_=@3H_2&#Q`(% XM"@!0Z';R@\0"B4;^_W8$!0@`4.C`(8/$!(M>_L='!@``,_:+WM'CBS[P$HL9 XM]T<,`@!U&HO>T>.+/O`2BP$%$`!0N-`"4.B7\H/$!.NBBQ[P$HL?BP>)1OH+ XMP'09ZP:+1P:)1OJ+7OJ#?P8`=?&+1OZ)1P;K"XL>\!*+'XM&_HD'O@$`BQ[P XM$HL?BP>)1OKK'8O>T>.+/O`2BQGW1PP"`'22B][1XXL9BT;ZB0=&B][1XXL^ XM\!*#.0!UUC/`7E^+Y5W#58OLN`8`Z$T8BT8$B4;^ZP^*!YB+V/:'A0P(=0O_ XM1OZ+7OZ`/P!UZ8M>_HH'B$;ZQ@<`@'[Z`'0#_T;^,\!0_W;^_W8$_W8$4.BS XM'X/$"HE&_(!^^@!T"_]._HM>_HI&^H@'BT;\B^5=PU6+[+@"`.CC%X,^^A0` XM=!XSP%#_=@3_-NH"_S;Z%/\V^A10Z&\?@\0,B4;^ZP^X[`)0Z'[Q@\0"QT;^ XM`0"+1OZ+Y5W#58OLN!``Z)\7@SX(%0!T&8M>!/='#`$`=0^+PP40`%#H\P^# XMQ`+IB@*+7@2+!XE&\`O`=0/I>P+'1O@``,=&\@``QT;Z``#_=@0%"`!0Z+;S XM@\0$B4;VB4;^BU[^B@>84+CW`E#H4A^#Q`0+P'0^BU[^_T;^B@>8/2L`=`P] XM+0!T#CU``'00Z]''1O(!`.O*QT;X`0#KP\=&^@$`Z[R*!YB+V/:'A0P(=`O_ XM1OZ+7OZ`/P!UZ8,^#!4`=0:#?OH`=`>#/@H5`'4-_W;^N/L"4.B`'(/$!(-^ XM\@!U%KC_`E#_=O[H(B"#Q`0+P'0%QT;R`0"#/@H5`'42_W;VZ(8;@\0"BU[P XMBT<&Z2/_N`$`4+@"`%#H1!V#Q`2)1O2#?O(`=1S_=O[H*OZ#Q`*)1OP+P'T, XM@SY"#`)U!<=&\@$`@W[R`'0,_W;^Z'+^@\0"B4;\@W[\`'U5@SY"#`=U3K@$ XM`%#_=OZX`P-0Z#8?@\0&"\!T%;@$`%#_=OZX"`-0Z"$?@\0&"\!U)/]V\H,^ XM#!4`=0:#?OH`=`6X`0#K`C/`4/]V_N@2`8/$!HE&_(-^_`!U`^FS`(-^_`!] XM&?]V_K@-`U#HJ^^#Q`3_-L8`Z`L;@\0"ZQ'_=ORX'0-0N"(+4.A/&(/$!H,^ XM!A4`=0:#?O@`=`6X+P/K`[@Z`U"X.P-0N"(+4.@K&(/$!H,^!A4`=2*#?O@` XM=1R+7@3W1PP(`'42@W\"`'0,B\,%$`!0Z"8?@\0"@SX.%0!T&/]V]NA'&H/$ XM`O]V]+@"`%#H#QR#Q`3K8X,^!A4`=1"#?O@`=0JX`0!0Z&\/@\0"@SX,%0!U XM-8-^^@!U+X-^\@!U*?\.'`N#/AP+`'P0L`J+'AH+_P8:"X@'*N3K#K@:"U"X XM"@!0Z.L3@\0$_W;TN`(`4.BM&X/$!.E&_HOE7<-5B^RX&`+HZ!16QD;H*\=& XM_@``N#\#4(U&[E#HD!V#Q`2-1NY0Z!,9@\0""\!U"KA(`U#HRNZ#Q`*#?@8` XM=0Z-1NY0N&8#4.A2&H/$!+B``U"-1NY0Z/L6@\0$B4;L"\!U%(U&[E"X@@-0 XMZ$ON@\0$N`$`Z2$"_W8$Z([M@\0"B4;XN/__4/]V^.CU[(/$!,=&^@$`BU[Z XMT>.+-N02@S@`=!Z#?@@`=0/IA@"XH0-0BU[ZT>/_,.B8'8/$!`O`='&XN0-0 XM_W;LZ*\6@\0$_W;LZ-D5@\0"C4;N4(L>Y!+_-[B[`U"-ANC]4.C"&X/$"(M> XM^M'CBS;D$H,X`'4#Z4X!C8;H_5#HR1R#Q`*+\(V"Z/V)1NJ+7OK_1OK1XXLV XMY!+_,+C"`U#_=NKH@AN#Q`;KOK@L`%"+7OK1XXLVY!+_,.C`&X/$!(E&Z@O` XM='R+V/]&ZL8'`(M>^M'CBS;D$O\PZ&X<@\0"0`%&_H-^_C)V$HI&Z)A0N*4# XM4/]V[.CZ%8/$!HM>^M'CBS;D$O\PN*D#4/]V[.CB%8/$!NL/B@>8B]CVAX4, XM"'0+_T;JBU[J@#\`=>F+7OK1XXLVY!*+1NJ)`,=&_@``Z.+-N02 XM_S#H^AN#Q`)``4;^@W[^,G9,BW;ZT>:+'N02@W@"`'0]N*T#4(MV^M'F_W`" XMZ$\<@\0$"\!U)XI&Z)A0N+$#4/]V[.AA%8/$!HM>^M'CBS;D$O\PZ*@;@\0" XM0(E&_HM>^M'CBS;D$O\PN+4#4/]V[.@T%8/$!O]&^NE&_O]V^.AZ%X/$`H-^ XM!@!U#XV&Z/U0N,8#4.@S&(/$!(-^"`!T"HV&Z/U0Z(OZZPB-ANC]4.@7^H/$ XM`HE&_(U&[E#H#!R#Q`*+1OQ>B^5=PU6+[+@$`.A,$H,^$!4`=`JXR@-0Z!\8 XM@\0"@S[^%`!U+:$2%8E&_`O`=!.+V/='#"``=5,%$`!0Z`$$@\0"@W[\`'4* XMN.`#4.@9[(/$`J'^%(E&_@O`='^X\`-0BU[^_S?H7QJ#Q`0+P'4D,\!0BU[^ XM_S?H-?2#Q`0+P'42BU[^_S>X]0/K0(M>_(M'!.N5QP:$$```BU[^_S?H8@&# XMQ`(SP%"+7O[_-^@`](/$!(E&_(,^A!``=1:+V(,_`'0/BU[^_S>X`010Z%'K XM@\0$BU[^BT<"Z7K_B^5=PU6+[+@0`.AQ$8M>!(L'BU<"B4;TB5;V"\)U$;@4 XM!%"XB!!0Z!$9@\0$Z9``BT;T)1\`T>")1O*P!5"-1O10Z!P1BT;T)3\`B4;Z XML`90C4;T4.@)$8M&]"4?`(E&^+`%4(U&]%#H]A"+1O0E'P")1O"P!5"-1O10 XMZ.,0BT;T)0\`B4;^L`10C4;T4.C0$(M&]`50`(E&_/]V\O]V^O]V^#UD`'(# XM+60`4/]V\/]V_K@F!%"XB!!0Z'X8@\00N(@0B^5=PU6+[+@$`.BN$/]V!.B( XM&8/$`HE&_CT,`'8%+0P`ZP(SP`,&]A0M&`#WV(E&_`O`?P7'1OP!`(M&!@4( XM`%#H_?Z#Q`)0N$,$4/]V_/]V!+A$!%#_-O84N$4$4.@%%HOE7<-5B^RX)`#H XM31!6,\!0N`$`4/]V!.B5\H/$!HE&WHO8BT<("T<*=`/IWP'W1PP$`'0#Z=4! XM_W8$Z"X'@\0"BU[>B4<(B5<*BU[>BT<(BU<*B4;\B5;^@SX0%0!T"E/_=@3H XM//^#Q`3_!H80H880T>#1X*/V%(M>WH!/#`3'1N8``(M&_`M&_G4%QT;F`0"+ XM7MZ#/P!U,XU&[%!3Z,@"@\0$B4;H"\!T(8M>WHOPBP2)!XU&[(E&X,=&X@`` XMC4;@4/]VWN@R\8/$!/]VWNC(\X/$`HE&W(E&ZNL/B@>8B]CVAX4,"'0+_T;J XMBU[J@#\`=>F+7NJ`/P!U2?]VW.@U%(/$`H-^Y@!U#8M>WO='#`$`=0/IS0"+ XM7MZ#/P!U`^FH`%/HB_>#Q`+'!H00`0`SP%#HV@:#Q`*+7MZ)1PB)5PKIH`"+ XMPXE&^NL/B@>8B]CVAX4,"'4+_T;JBU[J@#\`=>F+7NJ*!XA&Y,8'`/]V^NB0 XM_H/$`CM6_GPH?P4[1OQV(8,^$!4`=!7_=@2X5`10_S;V%+A5!%#H:12#Q`C' XM1N8!`(M>ZHI&Y(@'BU[J@#\`=0/I/?^*!YB+V/:'A0P(=0/I+O__1NKKX8M> XMWO='#!``=1"+PP40`%"X=`10Z(?H@\0$BU[>@6<,^_^+7MZ#?P8`=`F+1P:) XM1M[I>?[_#H80H880T>#1X*/V%(,^$!4`=!^+7MZ+1OR+5OXY5PIU!3E'"'0, XM_W;>_W8$Z'/]@\0$BU[>BT<(BU<*7HOE7<-5B^RX!`#H$`ZX!`!0Z&SG@\0" XMB4;^H?X4B4;\BU[^BT8$B0>+7O['1P(``(,^_A0`=0Z+1OZC_A3K%8M'`HE& XM_(M>_(-_`@!U\8M&_HE'`HOE7<-5B^RX"@#HO`U6ZQ>*!YB+V/:'A0P(=0B+ XM7@2`/SIU"_]&!(M>!(`_`'7A,\!0_W8$Z/#I@\0$B4;XN/__4/]V^.@1YH/$ XM!(E&^@O`=2:A\A+K$HM>_HL'B4;\4^A#$H/$`HM&_(E&_@O`=>?'!O(2``#K XM4HM&^DB)1O;K0XM>]M'CBS;D$O\PZ!H6@\0"!00`4.B3YH/$`HE&_HM>]M'C XMBS;D$O\P0$!0Z-85@\0$BU[^H?(2B0>+1OZC\A+_3O:#?O8`?;?_=OCHUA&# XMQ`)>B^5=PU6+[+@,`NCH#(V&]/U0C8;^_5"+1@0%$`!0Z``#@\0&BY[T_8`_ XM`'4#Z>P`H?(2B8;V_0O`=!%`0%#_MO3]Z!X5@\0$"\!U"H.^]OT`=0OIQ@"+ XMGO;]BP?KU8N>]OWIJ@#_MO3]BX;X_4!`4+B0!%"-A@#^4.@V%(/$"#/`4(V& XM`/Y0Z,'N@\0$B8;Z_0O`=':#/A`5`'07C88`_E"XE010_S;V%+B6!%#H\!&# XMQ`B+AOC]0$!0_[;^_;BI!%#_=@;HZA.#Q`@SP%#_=@;H7`6#Q`2)AOS]"\!\ XM+(,^$!4`=!7_=@:XK@10_S;V%+BO!%#HJ!&#Q`C_MOS]Z*P%@\0"BX;Z_>L3 XMBY[X_8L'B8;X_0O`=`/I2?\SP(OE7<-5B^PSP.C+"XI&!)A0N)@04.C1$X/$ XM!`O`=1.XF!!0Z)$4@\0"B]B*1@2(AY@0B^5=PU6+[#/`Z)D+BT8$H_P4T>!` XM0%#_-O`2Z!'E@\0$H_`2B^5=PU6+[#/`Z'4+BT8$HP`5T>!`0%#_-N02Z.WD XM@\0$H^02B^5=PU6+[+@(`NA0"\<&`A7_`[@_`%#HQO^#Q`*X/P!0Z)C_@\0" XMN)@04(`^F!``=`6X+0#K`[@@`%"XV`10C8;X_5#HTQ*#Q`B-AOC]4.@CYH/$ XM`KCD!%"-AOC]4.BY$X/$!+C[`5"-AOS]4.BL#8/$!(V&^/U0Z/KE@\0"N.D$ XM4.@D#H/$`J/Z%.BZ`8L>Z@*(!XV&^/U0N/$$4/\VU@3HT0B#Q`:)1O@+P'0C XMQP;X%`$`C8;X_5#_=OCHU>"#Q`3_=OCH4`R#Q`+'!O@4``"+Y5W#58OLN`(` XMZ'\*BUX$@#\N=""X7`!0N/,$4+CZ!%"X(@M0Z.P,@\0(N`$`4.C]"X/$`K@) XM`%"X'@50_W8$Z$(3@\0&"\!U#XM&!`4)`%#H<_R#Q`+K6;@'`%"X*`50_W8$ XMZ!X3@\0&"\!U",<&#!4!`.L\N`<`4+@P!5#_=@3H`1.#Q`8+P'4(QP8&%0$` XMZQ__=@3HR>F#Q`(+P'02_W8$N#@%4.BIXX/$!+@!`.L",\"+Y5W#58OLN`8` XMZ,L)5O]V!.BD$H/$`@-&!(E&_.L+BU[\@#\N=`O_3OR+1@0Y1OQW[8M&_(E& XM^O].^HM&!#E&^G(5BU[ZB@>84+A1!5#HF1&#Q`0+P'3@_T;ZQT;^J!#K&XM& XM_BVH$#T(`'T8BU[^_T;^BW;Z_T;ZB@2(!XM&_#E&^G+=BU[^Q@<`@WX&`'0' XMBUX&QP>H$+@$`%#_=ORXHA!0Z&P2@\0&Q@:F$`"#?@@`=`>+7@C'!Z(0N*@0 XM7HOE7<-5B^RX#@#H#`G&1O,WQD;R`(U&\E"-1O)0Z)4,@\0$BD;XF(OE7<-5 XMB^RX%`#HY0@SP%#_=@3H%P*#Q`2)1O`+P'T%,\"9ZW_&1O(`QD;S5XM&\(E& XM](U&\E"-1O)0Z%`,@\0$BD;Y*N2)1NS'1NX``(M6[HKRBM2*X"K`BD[X*NT# XMP8/2`(E&[(E6[HKRBM2*X"K`BD[W`\&#T@")1NR)5NZ*\HK4BN`JP(I.]@/! XM@](`B4;LB5;N_W;PZ!`"@\0"BT;LBU;NB^5=PU6+[+@2`.A!",9&\RJ-1O)0 XMC4;R4.C."X/$!(M&]BV\!XE&[L=&\```BU;PL03H6`R*3ODJ[0/!@](`B4;N XMB5;PL07H0PR*3O@J[0/!@](`B4;NB5;PQD;S+(U&\E"-1O)0Z($+@\0$BT;N XMBU;PL07H%@R*3OX`0!0 XM_W8$Z+H`@\0$B4;L"\!]&?]V!.CR`(/$`K@!`%#_=@3HG0"#Q`2)1NR#?NP` XM?0__=@2X5050Z!/A@\0$ZWZ#/@P5`'4-_W8$N&8%4.CA#(/$!#/`4.CC_H/$ XM`HE&[HE6\,9&\@'&1O-7BT;LB4;TBD;NB$;VL`A0C4;N4.CI!HI&[HA&][`( XM4(U&[E#HV0:*1NZ(1OBP"%"-1NY0Z,D&BD;NB$;YC4;R4(U&\E#H<0J#Q`3_ XM=NSHA0"#Q`*+Y5W#58OLN!P`Z+P&BT8$B4;\C%[^B4;TC-B)1NK&1N\]BD8& XMB$;NC4;D4(U&[E"-1NY0Z',*@\0&@W[Z`'0%N/__ZP.+1NZ+Y5W#58OLN!H` XMZ'0&BT8$B4;\C%[^B4;TC-B)1NS&1N\\QT;R``"-1N90C4;N4(U&[E#H+`J+ XMY5W#58OLN`X`Z#X&QD;S/HM&!(E&](U&\E"-1O)0Z,4)B^5=PU6+[+@"`.@< XM!L=&_DH*N$4*4(M>_O\WZ+8+@\0$ZPC_-^CB"X/$`H-&_@*+7OZ#/P!U[#/` XM4.B/!XOE7<-5B^PSP.C@!;@!`%#H!`"+Y5W#58OLN`X`Z,P%N`$`4+@"`%#H XM+Y5W#58OLN!0`Z'X%QT;^``"X`0!0N`(`4.@@#(/$!,=& XM_$H*ZQR#1OP"BP>)1OJ+7OJ`/P!T"_]&^HH'F`%&_NOMBU[\@S\`==R!?O[: XMH'0),\!0Z-8&@\0"H0H5B4;PQP8*%0$`,\!0N(D*4.APYX/$!(E&^`O`=`=0 XMZ&3M@\0"BT;PHPH5N*,F4+@"`%#HJ@N+Y5W#CP:2"HX>0`P6![Z``*R8,](F XM@#Y(#`-R95".!BP`,\"+R/?1B_CRKB8X!77Y@\<#B\CWT8OW)HH%1T$ZX'04 XM/")T"#P)=`0\('7K6!8'OH$`ZRM/*_X+_W3QB\]"6XO#`\$%`P`E_O\KX(O\ XM'@8?%@?SI+`@JHO+'[Z!`.L.B\@$!"3^*^"+_+A#(*OSI(O!JHOT%A]0B]R+ XM_JRJ"L!T3CPB=3!.5D;_!DH,K`K`=#T\(G46@'W_7'0/JCOW=0ZLQ@4`"L!T XM)^O/3ZKKWD?&1?\`Z\3H.@!TOTY61O\&2@RLJ@K`=`CH*`!U]>OAJHOT2TL[ XM\W,(K8<'B43^Z_*+W`O2=0+_!XDF3`SHH`W_)I(*/`ET`CP@PU6+[+@(`.C3 XM`U=6@SX*"P%U3J$("SE&!'X@BUX&T>`#V(L?@#\M=1*+7@:A"`O1X`/8BQ^` XM?P$`=0:X___IK@&XE`I0BUX&H0@+T>`#V/\WZ,,+@\0$"\!U!O\&"`OKVHM> XM!J$("]'@`]B+'P,>"@N*!YB+\(DV!!6#_CIT$%;_=@CH:0N#Q`2+^`O_=7^# XM/@8+`'1/B\:(1OK&1OL*BUX&_S?H%@R#Q`)0BUX&_S>X`@!0Z)!J$( XM"]'@`]B+'_\&"@L#'@H+@#\`=0K_!@@+QP8*"P$`N#\`Z>$`1X`].G0#Z:T` XMBUX&H0@+T>`#V(L?`QX*"X!_`0!T%XM>!J$("_\&"`O1X`/8BP<#!@H+0.MU XM_P8("Z$("SE&!']9@SX&"P!TJXO&B$;XQD;Y"HM>!O\WZ%4+@\0"4(M>!O\W XMN`(`4.C6#H/$!KC!"E#H.PN#Q`)0N.,*4+@"`%#HO0Z#Q`:X`@!0C4;X4+@" XM`%#HJPZ#Q`;I6?^+7@:A"`O_!@@+T>`#V(L'H_04QP8*"P$`ZRF+7@:A"`O1 XMX`/8BQ__!@H+`QX*"X`_`'4*QP8*"P$`_P8("\<&]!0``(O&7E^+Y5W#58OL XMN`H"Z-\!5H-^"`!T!8M&".L$C8;X_8F&]OW_=@10Z($*@\0$_W8&_[;V_>@9 XM!(/$!(E&^`O`=`/IB`"X#`M0Z.\$@\0"B4;ZZW&+7OJ`/P!T;XN&]OV)1O[K XM&(`_.W0;BU[^_T;^BW;Z_T;ZB@2(!XA&_(M>^H`_`'7@@'[\7'0/@'[\+W0) XMBU[^_T;^Q@=<_W8$_W;^Z`D*@\0$_W8&_[;V_>BA`X/$!(E&^`O`=1.+7OJ` XM/P!T`_]&^H-^^@!UB3/`7HOE7<-5B^R#[`175HMV!HI$!IBI@P!T!O9$!D!T XM!KC__^G:`/9$!@%T!H!,!B#K[H!,!@*`9`;O,\")1`*+^(E^_O9$!@AU#XI$ XM!YB+V-'C]H>R"P%T,(L\*WP$"_]^$E?_=`2*1`>84.@F#8/$!HE&_HM$!$") XM!,=$`O\!BUP$BD8$B`?K:O9$!@1U3H'^&@MU+8I$!YA0Z"(6@\0""\!U-<<& XM1@R;0,=$!.00BD0'F(O8T>/&A[(+`<<$Y1#KN+@``E#H106#Q`*)1`0+P'0& XM@$P&".N;@$P&!+\!`%>-1@10BD0'F%#HIPR#Q`:)1OXY?OYT`^DQ_XI&!"KD XM7E^+Y5W#58OLBUX$BP>+5P*+3@;HR!6+7@2)!XE7`EW"!`!9B]PKV'(*.Q[< XM"W($B^/_X>EH`;^D!8LV`@`K]X'^`!!R`[X`$/J.UX'$'A7[

)-@(`C,,KWO?;M$K- XM(3:,'D`,BS8L`!X6N``US2$VB1[>"S:,!N`+#A^X`"6Z("[-(3:+#F@0XR(V XMQ09J$(S:,]LV_QYF$',#ZOEL1VZ XMZBWKWE6+[(,^1@P`=`3_%D8,_W8$Z(T+B^5=PU6+[(/L`E=6BW8$O___BD0& XMF*F#`'0H]D0&0'4B5NC)$8/$`HOX5NA>#(/$`HI$!YA0Z+(0@\0""\!]`[__ XM_\9$!@"+QUY?B^5=PU6+[(/L!%=6BW8(BWX$@WX&`'4JZQ)6Z&@+@\0"B4;^ XM0'4).7X$=0XSP.LJBD;^B`5'/`IU",8%`(M&!.L8_TX&=//_3`*#?`(`?,J+ XM'/\$B@5N@6`H/$`HOX XM"_]U#L<&0@P,`,<&4`P(`.M:B7X$,\!0C4:^4.C"#X/$!(U&OE#HW06#Q`(% XM`P`[QGP0QP9"#"(`QP90#`$`,\#K*3/`4%"X&0!0Z,$.@\0&!$&(!4?&!3I' XMQ@5<1XU&OE!7Z'T%@\0$BT8$7E^+Y5W#58OL@^P$5U:+-DX,"_9T.(-^!`!T XM,O]V!.AX!8/$`HOXZR"+'(`Y/7465_]V!%/H>P6#Q`8+P'4'BQR-00'K"H/& XM`H,\`'7;,\!>7XOE7<-5B^Q75HM^!(L%BUT"BTT$BU4&BW4(BWT*S2%7BWX& XMB06)70*)302)50:)=0B/10IR!#/VZPCH#0^^`0"+!8EU#%Y?7<-5B^Q75AZ+ XM?@2+!8M=`HM-!(M5!HMU"/]U"HM^"(X%CET&7\TA5QZ_I`6.WXM^"(P%CT4& XMBWX&B06)70*)302)50:)=0B/10IR!#/VZPCHL`Z^`0"+!8EU#!]>7UW#,NWC XM!M'@T=+B^L-5B^R#[`975HMV!+]A`.@G$8E&_NL!1H`\`'7ZZQF+1OXKTKD* XM`/?Q@,(PB!2+1OXKTO?QB4;^3H`\6'3A1H`\`'4'ZQ>+QT>(!/]V!.@9`(/$ XM`@O`=`F#_WMUZ3/`ZP.+1@1>7XOE7<-5B^S'!D(,```SP%#_=@3HN`N#Q`1` XM=0N#/D(,`G4$,\#K`[@!`(OE7<-5B^R+7@2`3_X!B^5=PU6+[%97NX8-@S\` XM=2D>![@%`.C*#'4%,\"9ZR1`)/ZCA@VCB`V6QP0!`(/&!,=$_O[_B3:,#8M. XM!(S8CL#H=`M?7HOE7<-5B^R#[`)75HMV!+\"``OV="*`/`!T'5;HE`,#YU!6 XM5^@=!X/$!HO'4+BV#E!7Z`\'@\0&H10/.09"#'T3@SY"#`!\#(L>0@S1XXN' XMR@[K`[BY#HOP5NA6`X/$`E!65^C>!H/$!K@!`%"XQPY05^C/!H/$!EY?B^5= XMPU6+[(/L!E=6OAH+5NBP"8/$`HOXC48&4/]V!%;H_0^#Q`:)1OI65^@7"H/$ XM!(M&^EY?B^5=PU6+[(/L"%=6OAH+_W8$Z.X"@\0"B_A6Z&\)@\0"B4;^5E>X XM`0!0_W8$Z#<.@\0(B4;Z5O]V_NC2"8/$!#E^^G4B_TP"@WP"`'P,L`J+'/\$ XMB`+QT\+P'7PBT;^7E^+Y5W#58OL@WX$ XM`G0'N`$`^>D4#*&`#*,6#Z&"#*,8#X-^!@!U#Z%^#*."#*%\#*.`#.LLD(,^ XM?@P`=1FP([0US2&,!GX,B1Y\#+JR,QX.'[0ES2$?BT8&HX`,C,BC@@RA%@^+ XM%A@/.P9\#'4*.Q9^#'4$,\"+T%W#G!Y04KBD!8[8@SYZ#`!U&*&`#(L6@@P] XM`0!T83D&?`QU,3D6?@QU*X/L!%6+[(/%`K`$BU8$B58`147^R#P`=?*A?`R) XM1@"A?@R)1@)=6E@?G+?@0>!XO?,\"Y XM___RKD'WV8I&!HO[\JY/.`5T`C/_B\=?7<-5B^Q75HMV!(M^!AX'B]\SP+G_ XM__*N0??9B_OSIHI$_S/).D7_<@5T!4'K`O?1B\%>7UW#58OL5U:+=@2+?@8> XM![=!LUJU82KOBB2*!0KD="`*P'0<1D+?@:+]S/`N?__\JY!]]F+ XM?@2+U_.DB\)>7UW#58OL5QX'BWX$,\"Y___RKHO!0$#WV%]=PU6+[%=6'@>+ XM3@CC+XO9BWX$B_7UW#58OL5U8>!XM^!(MV!HO?BTX(XPRL"L!T`ZKB^#+`\ZJ+ XMPUY?7<-5B^Q75AX'BW8&Z&84BW8$,\"L.L1T".B`%'3VB\9(7E]=PU6+[%<> XM!XM^!#/`N?__\JY!]]E/BD8&_?*N1S@%=`0SP.L"B\?\7UW#58OLBU8$M$'- XM(>D5"56+[+@*`.@^]E=6BS9,##/`H[00H[(0Z)<&BS9,#.MHBQR`/R)U+U/H XM_/Z#Q`*+V$N)7O@#'(`_(G4;BP1`4.CG`8/$`@O`=`/IK@"+7O@#',8'`.LO XMN!X/4/\TZ$C_@\0$B4;\"\!T$%#_-.B1`(/$!`O`=`_I@0#_-.BK`8/$`@O` XM=76#Q@*#/`!UD\=&^```BSZR$.L&BWT"_T;X"_]U]HM&^-'@0$!0Z(7Z@\0" XMB4;V"\!T0Z-,#(M&^*-*#(L^LA#K#HM>]H-&]@*+!8D'BWT""_]U[HM>]L<' XM``#K$8L>LA"+1P*CLA!7Z#7Z@\0"BSZR$`O_=>=>7XOE7<-5B^RX"@#H/O57 XM5HMV!L=&^@``ZPN`/%QT"X`\.G0&3CEV!'7P@#PZ=12+1@1`.\9T#/]V!.CQ XM`(/$`NGE`(`\7'0%@#PZ=0F+QBM&!$")1OC_=@3H.@6#Q`*+^`O_=-*AM!") XM1ORX(0]05^@3_8/$!`O`='FX(P]05^@$_8/$!`O`=&J`/%QT(X`\.G0>5^C* XM$H/$`HE&!`O`=`M0Z(D`@\0""\!T1+C__^MW5^AW_8/$`@-&^$!0Z'?Y@\0" XMB4;V"\!TXE?_=OC_=@10Z+']@\0&`T;X4.@J_8/$!"M&^%#H10"#Q`(+P'6\ XM_T;Z,\!0Z)T$@\0"B_@+_W0#Z6;_@W[Z`'4#Z2G_@W[\`'0(BU[\BT<"ZP.A XMLA!0Z%,`@\0",\!>7XOE7<-5B^RX`@#H%?16N`0`4.CX^(/$`HOP"_9U!;C_ XM_^LDBT8$B03'1`(``(,^LA``=`F+'K00B7<"ZP2)-K(0B3:T$#/`7HOE7<-5 XMB^RX!`#HS?-75HMV!`OV="_K)O\T_S7H]?N#Q`0+P'T.BP2)1OR+!8D$BT;\ XMB06+?0(+_W7=BW0"BWP""_]UTUY?B^5=PU6+[(M>!/:'9@P@=`ZX`D(SR8O1 XMS2%S`^E*!O:'9@R`=0/I@0"+3@B+5@8>!S/`_%=6B_"+^N-EN`I`\JYU,E&+ XMSRO*2>,0S2&<`_"=M)"\!T+T:Y`@"Z)@^T0,TALT"\!T&EF+ XMU^O%48O/*\K-(9P#\)US!+0)ZQH+P'46]H=F#$!T"XM>!H`_&G4#^.L$^;@( XM'%ER`HO&7E_IOP6+3@B+5@:T0,TAOMX^L+P'7G]H=F#$!T"HO:@#\: XM=0/XZ];YN`@!`KD=`J`?@0`=03& XM1@3^'L46W@NX`"7-(1^+#F@0XP>[`@#_'F80BT8$M$S-(56+[%:+=@2*1`:8 XMJ8,`=`;V1`9`=`:X___IF@#V1`8"=`:`3`8@Z^Z`3`8!]D0&#'4IBD0'F(O8 XMT>/VA[(+`74:N``"4.@;]X/$`HE$!`O`=`2P".L"L`0(1`:#?`0`=0R*1`>8 XMT>`%LPN)1`2+1`2)!/9$!@1T!;@!`.L#N``"4/]T!(I$!YA0Z`43@\0&B40" XM"\!_%0O`=`2P(.L"L!`(1`;'1`(``.EK__],`HL<_P2*!RKD7HOE7<-5B^Q6 XMBW8$BD0&F*F#`'0=]D0&"'07_W0$Z'[V@\0"@&0&]S/`B02)1`2)1`)>B^5= XMPU6+[(/L!E=6BW8(BUX&B@>8/6$`=$(]<@!T"#UW`'0QZ88`QT;^`0#_1@:+ XM7@:`/RMU!X!._@C_1@:+1OXE!P`]`0!T&CT"`'0T/00`=#3K$,=&_@(`Z]#' XM1OX$`.O),__W1OX(`'0(@<\"`('G_O^+7@:`/W1U$('/`$#K%K\!`^O>OPD! XMZ]F+7@:`/V)U!('/`("XI`%05_]V!.BP$(/$!HE&^@O`?00SP.M"]T;^"`!T XM!L9$!H#K$?=&_@8`=`;&1`8"ZP3&1`8!QP9&#)M`,L"+7OK1XXB'L@N8B40" XM,\")!(E$!(I&^HA$!XO&7E^+Y5W#58OL5HMV!('^&@MU//9$!@QU-HI$!YB+ XMV-'C]H>R"P%U)\=$!.00BD0'F(O8T>/&A[(+`<<&1@R;0,=$`@`"BT0$B02X XM`0#K-('^,@MU+/9$!@QU)HI$!YB+V-'C]H>R"P%U%[@``E#H%O6#Q`*)1`0+ XMP'0&@$P&".NY,\!>B^5=PU6+[%:+=@:#?@0`=$R!_AH+=26*1`>84.B5!8/$ XM`@O`=!96Z),#@\0"BD0'F(O8T>/&A[(+`.L:@?XR"W4;5NAW`X/$`O]T!.BF XM](/$`H!D!O)1/[KYHO^=`P#^8E,_BO!2(D%ZP4#^?Y,_HO&C-J!^J0% XM=`4FC!Y8#XE_`L,FQ@9<#P(]_O]T)8O^`_"MJ`%T\HO^2#O!<[V+T`/PK:@! XM=.(#P@4"`(OWB43^Z^:+1P@+P'0$CMCK$R;^#EP/=!",V#VD!70%)HX>5`^+ XM-^N]BW<&,\#H60`[QG0-)`%`0)CH30!T#?Y-_N@+`'0%EDY.ZYHSP)G#48M% XM_J@!=`,KR$E!0;K_?R8[%EH/=@31ZG7UB\$#QG(5`\)R#??2(\(KQN@,`'4( XM]]+1ZG7E,\!9PU)1Z!T`=!A7B_Z+\`/RQT3^_O^)=P:+UBO72HE5_EA96L-3 XM4#/2'E)24+@!`%`&'^B6#(/$"(/Z_Q]:6W0""]+#58OLBF8$BU8&BD8(S2%= XMPU6+[%8S]KDU`#+D_*PRX.+[@/15_@XU`'4&B"8T`.L1"N1T#;HV`+L"`+D9 XM`+1`S2$RP*(U`%Z+Y5W#58OL@^P(5U:+-DX,ZQ>X#`!0N%X/4/\TZ*KV@\0& XM"\!T"(/&`H,\`'7D@SP`=#F+/(/'#,=&_@``B@5'F(E&^NL7XOE7<-5B^R+7@2T/LTA XM<@K&AV8,`,:'4@P`Z1,`58OLB]Z+5@:+=@2T1\TAB_-=PW((,\"+Y5W#0/!-V XM`K`3NVP/UYBC0@S#BL3K]U6+[%97'OP>!XM.!D&`X?Z+?@0SVXS8/:0%=0.[ XMA@V+5P)/3XOWK5!7)/Z)!0/P._)U`4*MJ`%T!_\%`05(Z^W1ZG,#B7\".PUT XM+G(?/?[_=2Q'1S/`Z#G^.\9U(>CX_708B]C1X_:'L@L!=">+!"M$!(E&_`O`?AM0_W0$ XMBD0'F%#H@OB#Q`8[1OQT!X!,!B"___^+1`2)!,=$`@``B\=>7XOE7<-5B^R# XM[`175KX2"S/_ZQ>*1`:8J8,`=`M6Z'G_@\0"0'0!1X/&"#DVV@MSXXO'7E^+ XMY5W#58OL@^P&5U:+=@2+?@J+1@;W9@B)1OJ)1OP+P'0[]D4&#'4^BD4'F(O8 XMT>/VA[(+`74O_TT"@WT"`'P,B@2+'?\%B`8B]C1X_:'L@L!=0/IHP"#?OP`=0/IB0"+ XM1OPY10)R'%!6_S7HG0J#Q`:+1OPI10*+1OP!!<=&_```Z].#?0(`="'_=0)6 XM_S7H>0J#Q`:+10(!!8M%`BE&_`-U`L=%`@``ZZS_30*#?0(`?`R*!(L=_P6( XM!RKDZPM7B@284.BTZ8/$!/9%!B!U&$;_3OSI?_]7B@284.B_BUC`#T5`'<^`\"3+O^GF4/_!LH0QP;4$```N`H`4.B' XM`(/$`NM0N`@`Z_*X$`#K[3/`4.B@`>OIN`$`Z_7_MI[^Z!X"Z]N+_NM!AT-C XM0XQ#C$.,0Y5#E4.50Y5#E4.50Y5#=4.50Y5#E4-_0Y5#7T.50Y5#>D.#/M`0 XM`'0%H+5P*)1OB)5OJ# XM!KX0!.LI@S[*$`!T$(L>OA"+!XE&^,=&^@``ZPV+'KX0BP>9B4;XB5;Z@P:^ XM$`*#/M00`'0-BT;X"T;Z=`6+1@3K`C/`H](0BS;"$(,^RA``=2J#?OH`?22# XM?@0*=1?&!"U&BT;XBU;Z]]B#T@#WVHE&^(E6^L=&]@$`ZP7'1O8``(O]@^\8 XM_W8$5_]V^O]V^.AA"X/$"(,^P!``="!7Z*;P@\0"BP[($"O(B4[^ZP3&!#!& XMBT;^_T[^"\!_\HH%B`2#/K80`'0'/&%\`X`L($9'@'W_`'7F@S[*$`!U%*'& XM$`L&N!!T"X-^]@!U!;@!`.L",\!0Z%4"@\0"7E^+Y5W#58OLN`@`Z%WG5U;' XM!L00(`"#?@0`=!"^`0"AOA"#!KX0`HE&_.LSBQZ^$(L'B4;\@P:^$`(+P'4% XMQT;\@@__=OSH`O"#Q`*+\(,^P!``=`HY!L@07XOE7<-5B^RX`@#H XMT>:AOA")1OZ#/L`0`'4&QP;($`8`_S:V$/\VR!#_=@3_-L(0_W;^Z.H%@\0* XM@WX$9W0&@WX$1W48@S[4$`!U$8,^R!``=`K_-L(0Z-`%@\0"@S[4$`!T$8,^ XMR!``=0K_-L(0Z,(%@\0"@P:^$`C'!M(0``"AQA`+!K@0=!+_=O[HN06#Q`(+ XMP'0%N`$`ZP(SP%#H)`&+Y5W#58OL,\#H,N96@S[0$`!U.(L>NA#_3P*#?P(` XM?!&*1@2+'KH0BS?_!X@$*N3K#?\VNA#_=@3HY>2#Q`1`=0;_!M`0ZP3_!LX0 XM7HOE7<-5B^RX`@#HY.575H,^T!``=5&+=@0+]GY*ZS.+'KH0_T\"@W\"`'P1 XMH,00BQZZ$(L__P>(!2KDZP[_-KH0_S;$$.B,Y(/$!$!U!/\&T!"+QDX+P'_& XM@S[0$`!U!XM&!`$&SA!>7XOE7<-5B^RX`@#H>^575HMV!(M^!H,^T!``=4SK XM-8L>NA#_3P*#?P(`?!**!(L>NA"+#_\'B]F(!RKDZP[_-KH0B@284.@CY(/$ XM!$!U!/\&T!!&B\=/"\!UQ(,^T!``=0>+1@8!!LX07E^+Y5W#58OLN`H`Z!'E XM5U:+-L(0,\")1OR)1OB+/LP05NC;[8/$`HE&^BOX*WX$H=(0L0/3^"OX@S[6 XM$`!U%8`\+740@S[$$#!U":R84.B4_H/$`H,^Q!`P=`L+_WX'@S[6$`!T&8-^ XM!`!T!O]&^.A>`(,^TA``=`;_1OSH;P"#/M80`'4F5^BH_H/$`H-^!`!T"8-^ XM^`!U`^@T`(,^TA``=`F#?OP`=0/H0@#_=OI6Z.C^@\0$@S[6$`!T#<<&Q!`@ XM`%?H:_Z#Q`)>7XOE7<-5B^PSP.A'Y(,^QA``=`2P*^L"L""84.C[_8OE7<-5 XMB^PSP.@IY+@P`%#HZ/V#Q`*#/M(0$'45@SZV$`!T!+!8ZP*P>)A0Z,S]@\0" XMB^5=PU6+[+@"`.CVXU=6BW8&@#PJ=0Z+'KX0@P:^$`*+/T;K.C/_@#PP?#.` XM/#E_+CD^P!!U"X`\,'4&QP;$$#``K)B+S]'AT>$#S]'A`\B#Z3"+^8`\,'P% XM@#PY?N.+7@2)/XO&7E^+Y5W#58OLN`(`Z([C5KZ)#^L-B@0X1@1U!;@!`.L( XM1H`\`'7N,\!>B^5=PU6+[+C6`.AFXU=6B_V#[U+_-DX,_W8(_W8&_W8$Z"X% XM@\0(B4;^0'4J@SY"#`)U(XM>!H`_7'0;@#\`=`:`?P$Z=!"XC@]0Z''F@\0" XMB_`+]G4&BT;^Z8<`N'\`4%:-ABS_4.A#[(/$!HOPQD:K`+B3#U!6Z#(&@\0$ XMB_`+]G335E?HI^N#Q`17Z,/K@\0"B]B`>?]<=`NXE0]05^C;!8/$!/]V!E?H XMT06#Q`3_-DX,_W8(5_]V!.B4!(/$"(E&_D!UD(,^0@P"=8FXEP]0,\!0Z-4% XM@\0$B_`+]G6CZ7/_7E^+Y5W#CP::#XX>0`PSR8O!B^F+^4F+-BP`"_9T"([& XM\JY%KG7Z19=`)/Z+_='E`\46'^A8XHO/B_P#_8OL%@>.WC/V2>,-B7X`146L XMJ@K`=?KB\XE.`!8?B29.#/\FF@^_G`^+W[D0`#/`\ZJL"L!T%8OXL0/3[P/[ XML@&*R(#A!]+B"!7KYL-1B_BQ`]/O`_NR`8K(@.$'TN)9,\"$%70!0,-5B^Q7 XMBWX$5^C`ZD!0Z,;F6PO`=0-;ZP=0Z(SJ@\0$7UW#58OL@^P"5KX2"XI$!IBI XM@P!U%3/`B40"B$0&B40$B03&1`?_B\;K#8O&@\8(.P;:"W77,\!>B^5=PU6+ XM[%97!H-^"`!U.+_F"XM6!HM&!$AU!^A3`'(GZTB+-C8,2'01._=T#8M$`HE& XM#%;H.@!>L=B]J#PP_1V[$#T^NT2,TAL[]W4)`]FA0`PKV([`M$K-(7(- XM._=U!(D6X@N2AP2+T<-5B^R+7@2`9P;/7<-5B^SH5>*+Y5W#58OLZ$OBB^5= XMPU6+[.A!XHOE7<-5B^SH-^*+Y5W#58OLZ"WBB^5=PU6+[%=6'@>+?@2+=@:+ XMUXM."#O^=A2+Q@/!._AS#`/Q`_E.3_WSI/SK(8O'"\;1Z',*B\GSI='KX!1'YZ<+RQ@;9#P&1J0`"=`N+5@2X`$/-(>F@`*D#`'17J0"`=5+V XM!CL0@'5+L`(*!M@/BU8$M#W-(7+'D[@`1,TA]L*`=2VY__^+T;@"0LTA]]FZ XMK`^T/\TA"\!T%H`^K`\:=0_WV8O1N`)"S2$SR;1`S2&T/LTABD8&)`,*!M@/ XMBU8$M#W-(7([Z0L%]T8&``%U!K@"`.EH_\8&V0\`_W8(Z$,%68E."#+M]@;8 XM#_]U!_=&!@(`=0.`X?Z+5@2T/,TA

XMPX/Y`70'@#P*=.WKZ/:'9@Q`=!FX`$3-(??"(`!U"HT6V@^T/\TANZ58OLN(H`Z!C>5U:+=@:#?@0"=1#_=@K_ XM=@A6Z-($@\0&Z0(!@SY&#`!T!/\61@PSP%"-AGC_4#/`4(U&^%"-1OY0_W8* XM_W8(Z&L!@\0.0'4&N/__Z<\`N%P`4%;H1>>#Q`2+^`O_=0*+_K@N`%!7Z,'E XM@\0$"\!T&/]V^(V&>/]05O]V!.BV`X/$"(E&^NF)`%;H;.:#Q`(%!0!0Z&WB XM@\0"B_@+_W4+_W;^Z%#B@\0"ZYZXW`]05E?H(N:#Q`10Z&D`@\0$QP9"#``` XM_W;XC89X_U!7_W8$Z&,#@\0(B4;Z@SY"#`!T*[CA#U"X+@!05^BPYH/$!%#H XMX^6#Q`3_=OB-AGC_4%?_=@3H,0.#Q`B)1OI7Z.?A@\0"_W;^Z-[A@\0"BT;Z XM7E^+Y5W#58OL5U8>!XM^!(O7,\"Y___RKD^+]XM^!HO?N?__\JY!]]F+_HOS XM\Z2+PEY?7<-5B^Q75AX'BW8&Z(SZ@`\!BW8$"_9U!(LVY@\SP*P*P'0MZ)OZ XM.L1U]$Z+SC/`K(KPZ(SZ.L1T]@KV=0E.._%U"#/`ZPK&1/\`B3;F#XO!7E]= XMPU6+[+,`Z>D%58OL@^P.5U:#?@8`=0:A3@R)1@:+=@;'1O0``.L0@\8"_W3^ XMZ"3E@\0"0`%&](,\`'7KBT;T0(E&]L=&_!,`BU[\@+]F#`!U"?]._(-^_/]_ XM[8-^_`!\$[CH#U#H[.2#Q`(#1OP%`P`!1O:#?A``=!&+7@3_-^C2Y(/$`@4# XM``%&]HM&]@4/`%#HRN"#Q`*)1OB+7@B)!PO`=2&#?@P`=`G_=@SHH>"#Q`+' XM!D(,#`#'!E`,"`"X___I,@&+1O@%#P`D\(OXBUX*B3^+=@;K&3/`4/\T5^A/ XMY(/$!%#HG>.#Q`1`B_B#Q@*#/`!UXH-^_`!\2C/`4+CU#U!7Z"GD@\0$4.AW XMXX/$!(OXBD;\_L"(!4?'1O0``(M>]("_9@P`=`:*AV8,ZP*P_X@%1_]&](M& XM_/]._`O`==[&!0!'Q@4`@WX0`'0/@\<#BUX$_S=7Z-7C@\0$QT;T``"+?@Y' XMBUX$@S\`='F#?P(`=`?&!2!'_T;TBW8$@\8"@SP`=&'_-.C'XX/$`HE&^@-& XM]#U]`'XLQP9"#`<`QP90#`H`BUX(_S?HHM^#Q`*#?@P`=0/I!/__=@SHD-^# XMQ`+I^/Z+1OI``4;T,\!0_S17Z%KC@\0$4.BHXH/$!(OXQ@4@1^N7Q@4-BUX. XMBD;TB`>+1O9>7XOE7<-5B^S&!ML"L1#W1@8`0'4.]T8&`(!U"O8&.Q"`=0.`R8`* XM#M#L58OLH40,]]"+7@0C XMPX'C`,"H@'4#@,L!B5X$7<,`````````````58OL5E>,V(M>"K$$T^L#PZ," XM$(M&"*,$$(P>!A`>!XLV!!!&OQ`0N`$IS2&X`2F_(!#-(54&'BZ,%J!2+HDF XMGE*[`A"#?@0`=`:P!#/)ZP(RP/B_+@"+-2Z)-J)2BW4"+HDVI%(NC!ZF4E"T XM"\TA6,<&>@P!`(M6!K1+S2$NCA:@4BZ+)IY2'\<&>@P``+\N`"Z.'J92+HLV XMI%*)=0(NBS:B4HDU!UU?7G($M$W-(>D'[%6+[+BD`.@HV5=6,__'1O0!`#D^ XM1@QT!/\61@RX7`!0_W8$Z([B@\0$B_`+]G4#BW8$N"X`4%;H">&#Q`0+P'09 XMN`"`4/]V!.BJ^(/$!(E&YD!U>+C__^E/`O]V!.BQX8/$`@4%`%#HLMV#Q`*+ XM^`O_=.&X,!!0_W8$5^APX8/$!%#HM_N#Q`2X`(!05^AE^(/$!(E&YD!U,+@U XM$%"X+@!05^@/XH/$!%#H0N&#Q`2X`(!05^@^^(/$!(E&YD!U"5?H2MV#Q`+K XMBXE^!(OU@>ZB`+@8`%!6_W;FZ&WY@\0&0'4C"_]T!U?H(]V#Q`+_=N;HW^J# XMQ`+'!D(,"`#'!E`,"P#I3O^X`@!0*\!04/]VYN@K!8/$"(E&^HE6_`O2?0@S XMP(E&_(E&^O=&^@\`=!F+1OJ+5ORQ!.BR[04!`(/2`(E&^HE6_.L*L`10C4;Z XM4.C!U_]VYNAZZH/$`H`\374&@'P!6G01@#Q:=`/IN`"`?`%-=`/IKP#_3O2* XM1`68L0C3X"K`BDP$*NT#P8E&[L=&\```N"``F5)0C4;N4.AK`8I$"9BQ"-/@ XM*L"*3`@J[0/!*](I1NX95O"*1`.8L0C3X"+%BDP"`\$M``+WV(E&WK$$TV[> XMBT;>*4;N&5;PBD0/F+$(T^`BQ8I,#@/!B4;@BD01F+$(T^`BQ8I,$`/!B4;R XMBD05F+$(T^`BQ8I,%`/!B4;HBD07F+$(T^`BQ8I,%@/!B4;^N`$`4(V&7O]0 XM5XU&Y%"-1OA0_W8(_W8&Z(3Z@\0.B4;B0'40"_]T!U?HN]N#Q`*+1N+K3O]V XM^O]VZ/]V_O]V\O]VX/]V[O]VXO]VY(V&7O]0_W8$Z)/?@\0"0%#_=@3_=O3H XMH`"#Q!B)1NH+_W0'5^ATVX/$`O]V^.AKVX/$`HM&ZEY?B^5=PU=6BTX*BT8$ XMBU8&BWX(5QX'_),*P'03@_D*=0X+TGD*L"VJ]]N#T@#WVHOWDC/2"\!T`O?Q XMD_?QDH?3!#`\.78"!">JB\(+PW7BB`5/K(8%B$3_3SOW XM!/]V"/]V!O]W`O\WZ),#BUX$B0>)5P)=P@8`58OL,]*Y$P"[Y@N#PP2+1P(+ XMP'03CL!3N___M$K-(0/30EN#PP3BYHX&0`R[__^T2LTA`]J`/D@,`G<4=`RZ XM/!"T"@KV$N#?@0`=`B+3AI!4@8?NH`` XMM!K-(5H?C,`%$`"#?@0`=`0#1AI`0":C+`"_@`"+=@J*#$%!\Z2_7`"1N2`` XM\ZJ_7`"+=@I&N`$IS2$\_W0",L"*R+]L`+@!* XM$(M.#H-^!`"+ZW1')HL^+`",PRO[4;$$T^>+WX/K$";'!P`!)HQ'`B;'1P2, XMV";'1P:.P";'1PB+Q8KKL;LFB4\*M?B*SR:)3PQ9)L='#O\OZS"_$`&[``$F XMB1>#P@@FQT<$C-@FQT<&CL`FQT<(B\4FQT<*NP`FQT<,`?@FQT<._R_\@SY^ XM#`!T%%!2'HX>?@R+%GP,L".T)+``KV$NQ!-/C^H[0B^/[,\!0G`:#PP13C,&X(37-(0:.P5.,PHS9CMJ. XMP;1)RU6+[(M>!/=&"`"`=$N#?@H`=!HSR8O1N`%"S2%R4/=&"@(`=0X#1@83 XM5@AY*[@!`/GK.XD68!"C8A"+T;@"0LTA`T8&$U8(>0^+#F`0BQ9B$+@`0LTA XMZ]6+5@:+3@B*1@JT0LTA<@?&AU(,`.L#NO__Z53E58OL5HM&"HM.!/?AB]B+ XM1@B+\/?A`]J6]V8&`]B+TXO&7EW""`````````````````````````````!# XM($QI8G)A2`E9"!M86ME9FEL97,@86QL XM;W=E9`!N965D(&$@9FEL96YA;64@869T97(@+68`=6YK;F]W;B!O<'1I;VX@ XM8"5S)PH``%``7@`M`'-T9&EN`'(`*BHJ(')E861I;F<@8"5S)R`J*BH*`&)A XM9"!L:6YE.B```"5S*&QI;F4@)74I.B`E2!B92!FF5R;R!O2!O=70@;V8@9&%T92!T87)G971S+@!/<'1I;VYS(&UA>2!B XM92!G2!M86-R;W,@=&AA="!C;VYT86EN('-P86-E&4*`#,N.```<@6]!0(&109T!G4&M`:U!N@&^`85!TD'@0>W!_<' XM,PAL"*P(K0CN"!,)3@E/"9<)W`D="AX*```N049415(`+D)%1D]210`````M XM+0`Z(&EL;&5G86P@;W!T:6]N("TM(``Z(&EL;&5G86P@;W!T:6]N("TM(``Z XM(&]P=&EO;B!R97%U:7)EP-[0W]#0\.$`X1#A(.'@XP#C$.,@XS#D0. XM10Y9#EH.6PY<#G0.=0YV#G<.>`Z&#I<.F`XE````````````*C\`+@`N+@`- XM"@`````````````````````````````````````````````````````````` XM`````````"```#M#7T9)3$5?24Y&3P```!8"`A@-"0P,#`<(____$@T2`O\` XM`"AN=6QL*0`K+2`C`%!!5$@`.P!<`#L````````````````````````````` XM```````````````````````````````````````````````````````````` XM`"YC;VT`+F5X90```#M#7T9)3$5?24Y&3P`[0U]&24Q%7TE.1D\````````` XMP`^I!=`/J04``````````````````````````````````````````"YC;VT` XM+F5X90```$5X96,@;F]T(&%V86EL86)L92!O;B!$3U,@,2YX#0HD```````` X0`````````````````````&%V X` Xend END_OF_make.exe.uu if test 38372 -ne `wc -c makemon.c <<'END_OF_makemon.c' X/* SCCS Id: @(#)makemon.c 1.3 87/07/14 X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X/* makemon.c - version 1.0.2 */ X X#include "hack.h" Xextern char fut_geno[]; Xextern char *index(); Xextern struct obj *mkobj_at(), *mksobj(), *mkobj(); Xstruct monst zeromonst; Xextern boolean in_mklev; X X#ifdef HARD /* used in hell for bigger, badder demons! */ X Xstruct permonst d_lord = { "demon lord", '&',12,13,-5,50,1,5,0 }, X d_prince = { "demon prince", '&',14,14,-6,70,1,6,0 }; X#endif X X/* X * called with [x,y] = coordinates; X * [0,0] means anyplace X * [u.ux,u.uy] means: call mnexto (if !in_mklev) X * X * In case we make an Orc or killer bee, we make an entire horde X * (swarm); note that in this case we return only one of them X * (the one at [x,y]). X */ Xstruct monst * Xmakemon(ptr,x,y) Xregister struct permonst *ptr; X{ X register struct monst *mtmp; X register tmp, ct; X boolean anything = (!ptr); X X if(x != 0 || y != 0) if(m_at(x,y)) return((struct monst *) 0); X if(ptr){ X if(index(fut_geno, ptr->mlet)) return((struct monst *) 0); X } else { X ct = CMNUM - strlen(fut_geno); X if(index(fut_geno, 'm')) ct++; /* make only 1 minotaur */ X if(index(fut_geno, '@')) ct++; X if(ct <= 0) return(0); /* no more monsters! */ X tmp = 7; X#ifdef KOPS X tmp--; X#endif X#ifdef ROCKMOLE X if(dlevel<4) tmp--; X#endif X tmp = rn2(ct*dlevel/24 + 7); X if(tmp < dlevel - 4) tmp = rn2(ct*dlevel/24 + 12); X if(tmp >= ct) tmp = rn1(ct - ct/2, ct/2); X ct = 0; X#ifdef KOPS X ct++; X#endif X while(!(tmp + 1 <= CMNUM - ct)) tmp--; X for(; ct < CMNUM; ct++){ X ptr = &mons[ct]; X#ifdef KOPS X if(ptr->mlet == 'K') { X tmp--; X continue; X } X#endif X if(index(fut_geno, ptr->mlet)) continue; X if(tmp-- <= 0) goto gotmon; X } X panic("makemon?"); X } Xgotmon: X mtmp = newmonst(ptr->pxlth); X *mtmp = zeromonst; /* clear all entries in structure */ X for(ct = 0; ct < ptr->pxlth; ct++) X ((char *) &(mtmp->mextra[0]))[ct] = 0; X mtmp->nmon = fmon; X fmon = mtmp; X mtmp->m_id = flags.ident++; X mtmp->data = ptr; X mtmp->mxlth = ptr->pxlth; X if(ptr->mlet == 'D') mtmp->mhpmax = mtmp->mhp = 80; X else if(!ptr->mlevel) mtmp->mhpmax = mtmp->mhp = rnd(4); X else mtmp->mhpmax = mtmp->mhp = d(ptr->mlevel, 8); X mtmp->mx = x; X mtmp->my = y; X mtmp->mcansee = 1; X if(ptr->mlet == 'M'){ X mtmp->mimic = 1; X mtmp->mappearance = ']'; X } X if(!in_mklev) { X if(x == u.ux && y == u.uy && ptr->mlet != ' ') X mnexto(mtmp); X if(x == 0 && y == 0) X rloc(mtmp); X } X if(ptr->mlet == 's' || ptr->mlet == 'S') { X mtmp->mhide = mtmp->mundetected = 1; X if(in_mklev) X if(mtmp->mx && mtmp->my) X (void) mkobj_at(0, mtmp->mx, mtmp->my); X } X if(ptr->mlet == ':') { X#ifdef DGKMOD X /* If you're protected with a ring, don't create X * any shape-changing chameleons -dgk X */ X if (Protection_from_shape_changers) X mtmp->cham = 0; X else { X mtmp->cham = 1; X (void) newcham(mtmp, X &mons[dlevel+14+rn2(CMNUM-14-dlevel)]); X } X#else X mtmp->cham = 1; X (void) newcham(mtmp, &mons[dlevel+14+rn2(CMNUM-14-dlevel)]); X#endif X } X if(ptr->mlet == 'I' || ptr->mlet == ';') X mtmp->minvis = 1; X if(ptr->mlet == 'L' || ptr->mlet == 'N' X || (in_mklev && index("&w;", ptr->mlet) && rn2(5)) X ) mtmp->msleep = 1; X#ifdef HARD X if(ptr->mlet == '&' && (Inhell || u.udemigod)) { X X if(!rn2(5 + !Inhell)) { X if (rn2(3 + Inhell)) mtmp->data = &d_lord; X else { X mtmp->data = &d_prince; X mtmp->mpeaceful = 1; X mtmp->minvis = 1; X } X } X } X#endif /* HARD /**/ X#ifndef NOWORM X if(ptr->mlet == 'w' && getwn(mtmp)) initworm(mtmp); X#endif X X if(anything) if(ptr->mlet == 'O' || ptr->mlet == 'k') { X coord enexto(); X coord mm; X register int cnt = rnd(10); X mm.x = x; X mm.y = y; X while(cnt--) { X mm = enexto(mm.x, mm.y); X (void) makemon(ptr, mm.x, mm.y); X } X } X#ifdef DGKMOD X m_initinv(mtmp); X#endif X return(mtmp); X} X X#ifdef DGKMOD X/* Give some monsters an initial inventory to use */ Xm_initinv(mtmp) Xstruct monst *mtmp; X{ X struct obj *otmp; X X switch (mtmp->data->mlet) { X# ifdef KAA X case '9': X if (rn2(2)) { X otmp = mksobj(ENORMOUS_ROCK); X mpickobj(mtmp, otmp); X } X# endif X# ifdef KOPS X case 'K': /* create Keystone Kops with cream pies to X * throw. As suggested by KAA. [MRS] X */ X if (!rn2(4)) { X otmp = mksobj(CREAM_PIE); X otmp->quan = 2 + rnd(2); X mpickobj(mtmp, otmp); X } X break; X case 'O': X# else X case 'K': X# endif X if (!rn2(4)) { X otmp = mksobj(DART); X otmp->quan = 2 + rnd(12); X mpickobj(mtmp, otmp); X } X break; X case 'C': X if (rn2(2)) { X otmp = mksobj(CROSSBOW); X otmp->cursed = rn2(2); X mpickobj(mtmp, otmp); X otmp = mksobj(CROSSBOW_BOLT); X otmp->quan = 2 + rnd(12); X mpickobj(mtmp, otmp); X } X break; X default: X break; X } X} X#endif X Xcoord Xenexto(xx,yy) Xregister xchar xx,yy; X{ X register xchar x,y; X coord foo[15], *tfoo; X int range; X X tfoo = foo; X range = 1; X do { /* full kludge action. */ X for(x = xx-range; x <= xx+range; x++) X if(goodpos(x, yy-range)) { X tfoo->x = x; X (tfoo++)->y = yy-range; X if(tfoo == &foo[15]) goto foofull; X } X for(x = xx-range; x <= xx+range; x++) X if(goodpos(x,yy+range)) { X tfoo->x = x; X (tfoo++)->y = yy+range; X if(tfoo == &foo[15]) goto foofull; X } X for(y = yy+1-range; y < yy+range; y++) X if(goodpos(xx-range,y)) { X tfoo->x = xx-range; X (tfoo++)->y = y; X if(tfoo == &foo[15]) goto foofull; X } X for(y = yy+1-range; y < yy+range; y++) X if(goodpos(xx+range,y)) { X tfoo->x = xx+range; X (tfoo++)->y = y; X if(tfoo == &foo[15]) goto foofull; X } X range++; X } while(tfoo == foo); Xfoofull: X return( foo[rn2(tfoo-foo)] ); X} X Xgoodpos(x,y) /* used only in mnexto and rloc */ X{ X return( X ! (x < 1 || x > COLNO-2 || y < 1 || y > ROWNO-2 || X m_at(x,y) || !ACCESSIBLE(levl[x][y].typ) X || (x == u.ux && y == u.uy) X || sobj_at(ENORMOUS_ROCK, x, y) X )); X} X Xrloc(mtmp) Xstruct monst *mtmp; X{ X register tx,ty; X register char ch = mtmp->data->mlet; X X#ifndef NOWORM X if(ch == 'w' && mtmp->mx) return; /* do not relocate worms */ X#endif X do { X tx = rn1(COLNO-3,2); X ty = rn2(ROWNO); X } while(!goodpos(tx,ty)); X mtmp->mx = tx; X mtmp->my = ty; X if(u.ustuck == mtmp){ X if(u.uswallow) { X u.ux = tx; X u.uy = ty; X docrt(); X } else u.ustuck = 0; X } X pmon(mtmp); X} X Xstruct monst * Xmkmon_at(let,x,y) Xchar let; Xregister int x,y; X{ X register int ct; X register struct permonst *ptr; X X for(ct = 0; ct < CMNUM; ct++) { X ptr = &mons[ct]; X if(ptr->mlet == let) X return(makemon(ptr,x,y)); X } X return(0); X} END_OF_makemon.c if test 6426 -ne `wc -c