%!PS-Adobe-2.0
%%Creator: dvips 5.485 Copyright 1986-92 Radical Eye Software
%%Title: coolmud.dvi
%%Pages: 48 1
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips coolmud
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}
B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0]
concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize
-72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix
currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put
setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed
true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N
/IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix
fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{
CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn
put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0
0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data
dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128
ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127
sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N
/cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get
S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height
sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0
-1 -.1 ch-xoff sub ch-yoff .1 add]/id ch-image N /rw ch-width 7 add 8 idiv
string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}
imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get
exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval
putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get
dup 0 eq{pop 1}{dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}
ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}
{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B
/fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}{adv 1 chg
nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add
adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{
bind pop}forall N /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
known{bop-hook}if /SI save N @rigin 0 0 moveto pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{
start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N
0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X
65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N
/rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V statusdict begin /product
where{pop product dup length 7 ge{0 7 getinterval(Display)eq}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat
{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false
RMat{BDot}imagemask grestore}}ifelse B /a{moveto}B /delta 0 N /tail{dup /delta
X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}B /e{-2
M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{
p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B
/t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS
restore}B end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300 @start /Fa 1 59
df<127812FCA4127806067B8510>58 D E /Fb 36 122 df<126012F0A212701210A31220A212
401280040B7D830B>44 D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CA2EA700EA3EAF00F
AAEA700EA3EA381CA2EA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EAFFF00C187D97
13>I<EA0F80EA30E0EA4070EAF038EAF83CA31270120013381378137013E013C0EA0180EA0300
1206EA040412081210EA2008EA3FF8127F12FF0E187E9713>I<EA0F80EA10E0EA3070EA7878A3
1230EA0070A213E0EA01C0EA0F80EA00E013701338133CA2127012F8A2EAF038EA6070EA30E0EA
0F800E187E9713>I<1330A2137013F0A2EA0170120312021204120C1208121012301220124012
C0B5FCEA0070A6EA07FF10187F9713>I<EA3018EA3FF013E013C0EA2000A5EA2FC0EA3060EA20
70EA0038A2133CA2127012F0A2EAE03812401370EA30E0EA0F800E187E9713>I<EA01E0EA0610
EA0C38EA187812381330EA7000A212F0EAF3C0EAFC60EAF830EAF038A2133CA31270A213381230
EA3870EA1860EA07C00E187E9713>I<1240EA7FFE13FCA2EA4008EA8010A21320EA004013C013
801201A31203A31207A7EA03000F197E9813>I<EA0780EA1860EA3030EA20181260A21270EA78
10EA7E30EA3F60EA1FC0EA0FE0EA1BF0EA31F8EA607CEA403CEAC01C130CA213081260EA2010EA
1860EA0F800E187E9713>I<EA0780EA1860EA3870EA7030133812F0A2133CA31270A2EA307CEA
18FCEA0F3C12001338A21230EA78701360EA70C0EA2180EA1F000E187E9713>I<EA1FC0EA7060
EA78707F12301200EA03F8EA1E381238127812F01480A21378EA78FD381F1E0011107F8F13>97
D<12FC121CA913F8EA1F0EEA1E07001C1380130314C0A61480EB0700121EEA1B0CEA10F0121A7F
9915>I<EA07F0EA0C1CEA383CA2EA7018EAF000A61270EA38041308EA0C18EA07E00E107F8F11>
I<137E130EA9EA03CEEA0C3EEA380EA2127012F0A612701278EA381EEA1C2E3807CFC0121A7F99
15>I<EA07C0EA1C70EA38381270131C12F0EAFFFCEAF000A41270EA38041308EA0C18EA07E00E
107F8F11>I<13F0EA0398EA073C120E13181300A5EAFFC0EA0E00AEEA7FE00E1A80990C>I<EA0F
CEEA1CF3EA3872EA7878A4EA3870EA1CE0EA2FC0EA2000A21230EA3FF0EA1FFC13FEEA600FEAC0
03A4EA6006EA381CEA07E010187F8F13>I<12FC121CA913F8EA1D0CEA1E0EA2121CAB38FF9FC0
121A7F9915>I<1218123CA21218C7FCA612FC121CAEEAFF80091A80990A>I<13C0EA01E0A2EA00
C01300A6EA07E01200B1126012F0EAF1C0EA6180EA3E000B2183990C>I<12FC121CA9EB3F80EB
1E00131813105B5BEA1DC0EA1FE0121C1370137813387F131E131F38FF3FC0121A7F9914>I<12
FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301AB39FF9FE7
F81D107F8F20>I<EAFCF8EA1D0CEA1E0EA2121CAB38FF9FC012107F8F15>I<EA07E0EA1C38EA38
1CEA700EA2EAF00FA6EA700EA2EA381CEA1C38EA07E010107F8F13>I<EAFCF8EA1F0EEA1E0700
1C1380A2EB03C0A6EB07801400EA1E0FEA1F1CEA1CF090C7FCA6B47E12177F8F15>I<EAFDC0EA
1E7013F0121C13601300AAEAFFC00C107F8F0F>114 D<EA1F20EA60E0EA402012C0A2EAF00012
7FEA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1204A3120CA212
1C123CEAFFC0EA1C00A81320A5EA0E40EA03800B177F960F>I<EAFC7EEA1C0EAC131EEA0C2E38
07CFC012107F8F15>I<38FF1F80383C0600EA1C04A2EA1E0CEA0E08A26C5AA21390EA03A0A2EA
01C0A36C5A11107F8F14>I<39FF3F9F80393C0E070000381306381C16041317001E130C380E23
081488000F13983807419014D03803C1E01380A200015BEB004019107F8F1C>I<38FF3F80383C
1C00EA1C18EA0E106C5A13606C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC012107F
8F14>I<38FF1F80383C0600EA1C04A2EA1E0CEA0E08A26C5AA21390EA03A0A2EA01C0A36C5AA2
48C7FC126112F112F25A127811177F8F14>I E /Fc 1 59 df<126012F0A2126004047D830B>
58 D E /Fd 47 122 df<EA01C0487EA21360A2EA0770A4EA0630EA0E38A5EA1FFCA3EA1C1CEA
3C1E38FE3F80A311177F9614>65 D<EAFFF813FE7FEA1C0FEB0380A4EB0700133FEA1FFEA27FEA
1C07EB0380A41307EB0F00B5FC5B5B1117809614>I<EA03C6EA0FFE121FEA3E3EEA3C1EEA780E
127012F0EAE000A7EAF00E12701278EA3C1EEA3E3CEA1FF8EA0FF0EA03C00F177E9614>I<EAFF
E013F87FEA383E131E7F7FA2EB0380A7130714005B131E133EEAFFFC5B13E011177F9614>I<B5
1280A3EA1C03A490C7FC1338A2EA1FF8A3EA1C38A290C7FCEB01C0A4B5FCA31217809614>I<B5
1280A3EA1C03A490C7FC1338A2EA1FF8A3EA1C38A290C7FCA5B47EA311177F9614>I<EA03C6EA
0FFE121FEA3E3EEA3C1EEA780E127012F048C7FCA4EB7F80A338F00E001270EA781E123CEA3E3E
EA1FFE120FEA03CE11177F9614>I<38FE3F80A338380E00A7EA3FFEA3EA380EA738FE3F80A311
177F9614>I<EAFFFEA3EA0380B1EAFFFEA30F177E9614>I<EA07FFA3EA0038AE126012F01378EA
FFF0EA7FE0EA1F8010177E9614>I<EAFFC0A3001CC7FCADEB0380A4B5FCA311177F9614>76
D<38FE0FE0A3383B1B80A413BBA2EA39B3A313F3EA38E3A21303A538FE0FE0A31317809614>I<
38FE3F80A3383B0E00A4138E1239A213CEA31238A213EE136EA4EAFE3EA311177F9614>I<EA1F
F0EA7FFCA2EA701CEAF01EEAE00EADEAF01EEA783CEA7FFCA2EA1FF00F177E9614>I<EAFFF813
FE7FEA1C0FEB07801303A41307EB0F00EA1FFF5B13F8001CC7FCA6B47EA31117809614>I<EAFF
E07F7FEA383C7F130EA3131E5BEA3FF85B7FEA383C131CA41480EB1DC0EAFE1F130FEB07001217
7F9614>82 D<EA0FCCEA3FFC127FEAF87CEAF03CEAE01CA2EAF000A2127EEA3FE0EA0FF8EA01FC
EA003C131E130E12E0A2EAF01EEAF83CEAFFFC13F8EAC7E00F177E9614>I<B51280A3EAE1C3A4
3801C000ADEA0FF8A311177F9614>I<38FF8FF8A3381C01C0AEEA1E03000E1380EA0F073807FF
006C5AEA00F81517819614>I<38FE3F80A338380E00A26C5AA56C5AA4EA0630EA0770A3EA0360
A213E0A26C5A11177F9614>I<EAFE7FA3EA1E38EA0E78EA0F70EA07F05B12035B120112037FA2
EA0770A2EA0E781338EA1C3C131C38FE3F80A311177F9614>88 D<38FE3F80A3383C1E00EA1C1C
EA1E3CEA0E38A26C5AA2EA036013E0A26C5AA7EA07F0A311177F9614>I<EA1FC0EA7FF07FEA78
3CEA301CEA00FC120F123FEA7F1C12F012E0133CEAF07C387FFF80A2EA1F8F11107E8F14>97
D<12FCA3121CA413FCEA1FFE7FEB0780EA1E03001C13C01301A4EA1E03EB0780EA1F0FEBFF005B
EA1CF81217809614>I<EA03F0EA0FFC123FEA7C3CEA7818EAF0005AA4EAF00E1278EA7E1EEA3F
FCEA0FF8EA03E00F107E8F14>I<137EA3130EA4EA07CEEA1FFE123FEA7C3EEA781EEAF00E12E0
A4EAF01EEA703EEA787E383FFFC0EA1FEFEA078F12177F9614>I<EA07E0EA1FF8EA3FFCEA7C3C
EA781EEAF00EEAFFFEA3EAE000EAF00E1278EA7E1EEA3FFCEA0FF8EA03E00F107E8F14>I<133C
13FE1201EA03DE138C1380A2EAFFFEA3EA0380AAEA7FFCA30F177F9614>I<EA07CF381FFF805A
387C7F00EA783CEA701CA2EA783CEA7C7CEA3FF8485AEA77C00078C7FCEA3FF813FE487E38F00F
80EAE0071303A2EAF00738780F00EA3FFE6C5AEA07F011197F8F14>I<12FCA3121CA413F8EA1F
FE7F130FEA1E07121CA838FF9FE0A31317809614>I<1203EA0780A2EA0300C7FCA4EAFF80A312
03AAEAFFFEA30F187D9714>I<136013F0A213601300A4EA1FF0A3EA0070B0EA60F0EAF1E012FF
1380EA3E000C207E9714>I<12FCA3121CA4381DFF80A3381C78005BEA1DE0EA1FC07FA2EA1EF0
EA1C7013787F38FF3F80A311177F9614>I<EAFF80A31203B1EAFFFEA30F177E9614>I<EAFB8EB5
1280A2EA3CF3A2EA38E3A838FEFBE0A31310808F14>I<EAFCF8EAFFFE7FEA1F0FEA1E07121CA8
38FF9FE0A31310808F14>I<EA07C0EA1FF0EA3FF8EA783CEA701CEAF01EEAE00EA4EAF01EEA70
1CEA7C7CEA3FF8EA1FF0EA07C00F107E8F14>I<EAFCFCB47E7F381F0780EA1E03001C13C01301
A4EA1E03EB0780EA1F0FEBFF005BEA1CF890C7FCA5B47EA31218808F14>I<EA07CEEA1FFE123F
EA7C3EEA781E12F0EAE00EA4EAF01E1278EA7C3EEA3FFE121FEA07CEEA000EA5EB7FC0A312187F
8F14>I<EAFF1FEB7FC013FFEA07E3EBC180EB8000A290C7FCA6EAFFFCA31210808F14>I<EA0FD8
EA3FF812FFEAF03812E0EAF000EA7F80EA3FF0EA07FCEA003EEAE00EA2EAF01EEAFFFC13F8EACF
E00F107E8F14>I<1207A5EAFFFCA3EA0700A6130EA3139E13FCEA03F8EA00E00F157F9414>I<EA
FC3FA3EA1C07A95B381FFFE07EEA07E71310808F14>I<38FF7F80A3381C1C00A36C5AA3EA0630
EA0770A36C5AA311107F8F14>I<38FF7F80A338380E00A3EA3BEEA3136EEA1B6CA3EA1F7CEA1E
3CA211107F8F14>I<38FE7F80A3380E7800EA07705B12036C5A12037FEA0770EA0E78133838FF
7F80A311107F8F14>I<38FF3F80A3381C1C00A2120E5BA212071330A2EA0370A26C5AA35BA3EA
7B80127F90C7FC127E123C11187F8F14>I E /Fe 5 115 df<137013E0EA01C0EA038012071300
120E121EA25AA35AA4127012F0AC12701278A47EA37EA2120E7E13801203EA01C0EA00E013700C
2E7EA112>40 D<12E012707E7E121E120E7E1380A2EA03C0A3EA01E0A4120013F0AC13E01201A4
EA03C0A3EA0780A21300120E121E121C5A5A5A0C2E7DA112>I<EA03F0EA0FFC487EEA3E1FEA3C
07127838700380B5FCA300F0C7FCA3127012786C5AEA3E076CB4FCEA07FEEA01F811147F9314>
101 D<EA01F8EA07FE381FFF80383F0FC0EA3C03387801E0A238F000F0A6387801E0A2383C03C0
EA3F0F381FFF803807FE00EA01F814147F9317>111 D<EAF0E012F312F7EAFF0012FCA25AA25A
AC0B147D9310>114 D E /Ff 25 122 df<EA07FE381FFF80383E07E0387F03F0130180123E12
1C120013FF1207EA1FE1EA3F01127E12FCA4EA7E03397F0EFF80EA1FFC3807F03F19167E951C>
97 D<B47EA3121FAAEB8FF0EBBFFCEBF07EEBC01F01801380EC0FC0A215E0A715C0A3EC1F8001
C01300EBF07E381E3FFC381C0FE01B237EA220>I<13FF000713C0380FC3E0381F07F0123F127E
EB03E0EB01C000FEC7FCA6127EA2127F6C1370381F80E0EA0FE13807FFC03800FE0014167E9519
>I<49B4FCA3EB003FAA13FE0007B5FCEA0FC148C67E487F127EA312FEA7127EA27E6C5B390FC1
FFE03807FFBF3801FE3F1B237EA220>I<13FE3807FF80380F87E0EA1F03383F01F0127E14F8EA
FE00A2B5FCA248C7FCA4127E007F13387E381F8070380FC1F03803FFC0C6130015167E951A>I<
EB1FC0EBFFE03801F9F03803E3F81207EA0FC3A2EBC1F0EBC000A5EAFFFEA3EA0FC0B0EA7FFCA3
15237EA212>I<EBFE0F3903FFBF80390F83F1C0381F01F7ECF380003FEBF90014F8A4001F5BA2
380F83E0EBFF80D81CFEC7FC90C8FCA2121E381FFFE014FC6C13FFA2003F1480397C001FC04813
0F1407A3007CEB0F806CEB1F00381F807E6CB45A000113E01A217F951D>I<B47EA3121FAAEB87
F0EB9FFCEBB87EEBE03EEBC03FA21380AD39FFF1FFE0A31B237DA220>I<121E123FEA7F80A4EA
3F00121EC7FCA6EAFF80A3121FB0EAFFF0A30C247EA30F>I<131E133FEB7F80A4EB3F00131E90
C7FCA63801FF80A3EA001FB3A3127C12FEA2EB3F00A2EA7C7EEA3FF8EA0FE0112E84A312>I<B4
7EA3121FAA903881FF80A3903880F800EB81E0EB87C0EB8F80019FC7FC13BE13FFA280EBDFC0EB
8FE013076D7E806D7E130039FFE1FFC0A31A237EA21E>I<EAFF80A3121FB3ABEAFFF0A30C237E
A20F>I<3AFF03F803F890390FFE0FFE9039383F383F3A1F601F601F01C001C01380A201801380
AD3BFFF0FFF0FFF0A32C167D9531>I<38FF07F0EB1FFCEB387E381F603EEBC03FA21380AD39FF
F1FFE0A31B167D9520>I<13FF000713E0380FC3F0381F00F84813FC007E137EA300FE137FA700
7E137EA26C13FC6C13F8380FC3F03807FFE0C6130018167E951D>I<38FF8FF0EBBFFCEBF07E38
1FC03F9038801F8015C0A2EC0FE0A715C0141FA215809038C03F00EBF07EEBBFFCEB8FE00180C7
FCA7EAFFF0A31B207E9520>I<EBFE073807FF8F380FC1DF381F80FF48487E487FA2127E12FEA7
127FA26C5B6C6C5AEA0FC13807FFBF3801FC3FC7FCA7903801FFE0A31B207E951E>I<38FF0F80
EB3FE0EB33F0EA1F6313C3A2EBC1E0EB8000ACEAFFF8A314167E9518>I<3807F980EA1FFFEA38
0FEA7007EAF003A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003FC0EAE007130312F0A200F8
138038FC0F00EAFFFEEAC3F812167E9517>I<EA01C0A41203A31207A2120FEA3FFFB5FCA2EA0F
C0AAEBC380A51400EA07E7EA03FEC65A11207F9F16>I<38FF81FFA3381F803FAE5C5CD80FC113
E03807FF3FEA01FE1B167D9520>I<39FFF03FE0A3390FC00E00EBE01E0007131CA26C6C5AA2EB
F87800011370EBFCF000005BA2EB7FC0A36D5AA26DC7FCA2130E1B167F951E>I<3AFFE3FF8FFC
A33A0FC07C01C0147E1503D807E0148014FF6C6CEB0700A29038F1CF87D801F9138E01FB13CE90
38FF87DE6C14DCEC03FC017F5BA2EB7E01013E5BA290381C00E026167F9529>I<39FFF0FFC0A3
3907E078006D5A00035BEA01F96CB45A6D5A91C7FC7F6D7E497E497EEBF7F0EA01E3EBC1F83803
C0FC48487E39FFC1FFE0A31B167F951E>I<39FFF03FE0A3390FC00E00EBE01E0007131CA26C6C
5AA23801F8781470EBFCF000005B13FEEB7FC0A2133F5CA26DC7FCA2130EA2131EEA7C1CEAFE3C
1338EAE0781370EA71E0EA3FC06CC8FC1B207F951E>I E /Fg 15 119 df<EA07F8EA1FFE383F
FF80383E07C01303381C01E01200133FEA03FF120FEA3FC1EA7E01127812F0A3EA7803EA7C0738
3FFFFEEA1FFE3803F87E17157E941A>97 D<B4FCA3120FA6133EEBFF8014E0EBC1F01380EB0078
A2143CA71478138014F0EBC1E0EBFFC0148038073E00161E7F9D1A>I<EB3FC0A31303A6EA01F3
EA07FF5AEA1E0FEA3C07EA7803A212F0A712781307EA3C0FEA3E1F381FFFFCEA07FBEA01E3161E
7E9D1A>100 D<EA01F8EA07FF481380381F07C0EA3C03387801E0A238F000F0A2B5FCA300F0C7
FC12701278007C13F07EEA1F03380FFFE0000313C03800FE0014157D941A>I<13E0487EA36C5A
90C7FCA5EA7FF012FF127F1200AFB512E0A3131F7D9E1A>105 D<130E131FA3130E1300A5EA0F
FFA3EA000FB3A5EA701E12F8133CEAFFF8EA7FF0EA1FC0102A7E9E1A>I<EAFFF0A31200B3A6B5
12F0A3141E7D9D1A>108 D<387CF07838FFFDFEEA7FFF381F0F87001E1307A2EA1C0EAC397F1F
8FC039FF9FCFE0397F1F8FC01B1581941A>I<EAFF1FEB7F80EBFFC0EA0FE1EBC1E013811301AC
38FFF1FEA317157F941A>I<EA01FCEA07FF481380381F07C0383E03E0387C01F0EA7800481378
A66C13F8007813F0EA7C01383E03E0381F07C0380FFF806C1300EA01FC15157E941A>I<38FFC1
F8EBC7FCEBDFFE3803FE1EEBF80CEBF0005BA25BAAB5128014C0148017157F941A>114
D<3807FB80EA1FFF127FEA780FEAE007A30078C7FCEA7FE0EA3FFCEA0FFFC613801307387003C0
EAF001A2EAF80338FC0780B51200EAEFFEEAE3F812157C941A>I<EA01C01203A6387FFFE0B5FC
A23803C000AA14F0A43801E1E013FF6C1380EB3F00141C7F9B1A>I<38FF1FE0A3EA0F01AD1303
13873807FFFE7EEA00F917157F941A>I<387FC7FC00FF13FE007F13FC380E00E0A2EA0F010007
13C0A2138300031380A33801C700A3EA00EEA3137CA2133817157F941A>I
E /Fh 1 59 df<127012F8A3127005057C840D>58 D E /Fi 47 122 df<EAFFFEA50F057F8E14
>45 D<123C127E12FFA4127E123C08087C8711>I<131C133CEA01FC12FFA212FE1200B3A8387F
FFFCA316237CA21F>49 D<48B4FC000F13C04813F0383C0FF8387C03FC38FE01FEEAFF0014FFA2
147F127E001813FFC7FC14FEA2EB01FCEB03F814F0EB07E0EB0F80EB1F00131E13385BEBE007EA
01C03803800F3806000E5A381FFFFE5A5AB512FCA318237DA21F>I<48B4FC000713E0001F13F0
383E03F8EB01FC007F13FE1300A3EA3F01001E13FC1200EB03F814F0EB0FE03801FF00A2380007
E0EB01F814FCEB00FEA214FFA2127EA2B4FCA214FEEAFE01007E13FC383E07F8381FFFF06C13C0
3801FE0018237DA21F>I<1478A214F8130113031307A2130E131C13381370A213E0EA01C0EA03
80EA07005A120E5A5A5A12F0B612C0A3390001F800A790387FFFC0A31A237EA21F>I<0010130C
001F137CEBFFF814F014E014C01480EBFC00001CC7FCA513FF001F13E0EB01F0381C00F8001813
FCC7127EA2147FA21218127C12FEA3147E5A007813FC1301383E03F8381FFFE0000713C03801FE
0018237DA21F>I<EB1FC0EB7FF03801FFF83803F03C3807C07E380F80FE121FEA3F00A2007E13
7C1400A338FE3FC0EBFFF038FF80F814FCEB007C147E5A147FA4127EA3147E123E123F6C13FC38
0FC1F83807FFF06C13C038007F0018237DA21F>I<1238123E003FB512C0A348148015005C3870
001E5C00F05B485B495A00005B1303495A49C7FCA25B131E133EA2137E137C13FCA41201A8EA00
701A257DA41F>I<13FF000313E0000F13F0381F81F8383E007C003C137E007C133EA3127E387F
803CEBE07C383FF8F8381FFDF0EBFFC07E000313E014F8000F13FCEA1E1F383E07FEEA7C01EB00
FF48133FA2141FA36C131E007C133E007E137C383F81F8381FFFF0000713E0C6130018237DA21F
>I<13FF000313C0000F13E0381F83F0383F00F8003E13FC007E137C147E12FEA3147FA4127E14
FF123EEA3F01121F380FFF7FEA03FCC7FC147EA2123E007F13FCA214F8EB01F0EA7E03383C0FE0
381FFF806C1300EA03F818237DA21F>I<141C143EA3147FA24A7EA3903801DFC0A201037F148F
A290380707F0A2010F7FEB0E03A2496C7EA2013C7FEB3800A2017FB5FCA290B67E9038E0003FA2
00018149131FA248486D7EA226FFFC01B51280A329257EA42E>65 D<9138FF8018010FEBF03801
3FEBFC789039FFC03EF83901FE0007D803F813034848130148481300485A003F15785B007F1538
A290C8FC481500A97E6D1438A2123F6D1478001F15706C6C14F06C6C14E06C6CEB01C0D801FEEB
07803A00FFC01F0090383FFFFE010F13F8010013C025257DA42C>67 D<B7FCA33803F800ED1F80
150F1507A21503A2140EED01C0A3021EC7FC143EEBFFFEA3EBF83E141E140E16E0A3EC000116C0
A31503A21507151FED7F80B7FCA323257EA428>69 D<B512E0A33803F800B3ADB512E0A313257E
A417>73 D<B512F0A3D803F8C7FCB3150EA3151CA3153CA2157C15FC1401EC07F8B6FCA31F257E
A425>76 D<D8FFFC913801FFF8A26D5C0003EEFE00A201BFEC077EA2D99F80130EA2D98FC0131C
A3D987E01338A2D983F01370A2D981F813E0A29138FC01C01380A291387E0380A291383F0700A2
EC1F8EA3EC0FDCA2EC07F8A26E5AA2D8FFFE91381FFFF8EC01E0A235257EA43A>I<903803FF80
011F13F090387F01FC3901FC007FD803F0EB1F804848EB0FC0000F15E04848EB07F0491303003F
15F8A2007F15FC90C71201A24815FEA96C15FCA26D1303003F15F8A26C6CEB07F0A26C6CEB0FE0
6C6CEB1FC06C6CEB3F806C6CEB7F0039007F01FC90381FFFF00103138027257DA42E>79
D<B612E015FC15FF2603F8001380ED3FC0ED1FE0150FA216F0A516E0A2ED1FC0153FEDFF0090B5
5A15F801F8C8FCAEB512E0A324257EA42A>I<B67E15F015FC3903F801FF6E6C7E6F7E151F82A5
5EA24B5A4BC7FCEC01FE90B512F815C09038F803F0EC01FC140081157FA482A31740EEC0E0A2ED
3FC1B539E01FE1C092380FFF80923801FE002B257EA42E>82 D<9038FF0180000713E34813F738
1F00FF003E133F48130F0078130712F81403A27E91C7FCB4FCEA7FE013FF6C13E014F86C13FE00
077F6C1480C67E010313C0EB003FEC0FE01407A200E01303A36C14C0A26C130700FEEB0F8039FF
C03F00EBFFFE00E313F838C03FE01B257DA422>I<007FB612F8A3903800FE03007C1400007815
780070153800F0153CA248151CA5C71400B390B512FEA326247EA32B>I<B539C007FFE0A3D803
F8C7EA3800A26C6C5CA26D14F000005D7F6D495AA26D6C485AA2ECC007011F91C7FC14E0010F13
0EA2ECF01E0107131CECF83C01031338A26D6C5AA2ECFEF001005B14FF6E5AA26E5AA36EC8FCA2
140E2B257FA42E>86 D<EA03FF000F13C0381F03E0383F81F080EB80FCEA1F00120EC7FCA213FF
1207EA1FE0EA3F80EA7E00A25AA31301127E393F077FE0381FFE3F3807F81F1B187E971E>97
D<EAFFC0A3120FABEBC7F8EBDFFE9038F81F809038E00FC09038C007E0A2EC03F0A215F8A815F0
A2EC07E015C0EBE00F9038B83F00EB1FFE380E07F01D267EA522>I<EB7FC03803FFF03807C0F8
381F81FC1301123F387E00F8147000FE1300A8127E127F6C131CEA1F80EBC0383807E0F03803FF
E038007F0016187E971B>I<903801FF80A3EB001FAB137F3803FFDF3807E0FF381F803F383F00
1FA2127EA212FEA8127EA27E143F381F807F390FC0FFF83803FFDF3800FE1F1D267EA522>I<13
7F3803FFC0380FC1F0381F80F8383F00FC147C007E137EA212FEA2B512FEA248C7FCA4127E007F
130E7EEB801E001F133C3807E0F83803FFE038007F8017187E971C>I<EB0FE0EB3FF0EBFCF838
01F1FC120313E11207EBE0F81400A6B5FCA3EA07E0B2EA7FFFA316267EA513>I<3901FF078000
07EBDFC0390F83F8E0381F01F3393E00F9C0007EEBFC801500A5003E5B6C485A380F83E048B45A
003990C7FC0038C8FCA3123C383FFFE06C13FC806C7F003F1480387C003F0078EB0FC000F81307
A4007CEB0F806CEB1F00381F807E3807FFF8C613C01B247E971F>I<EAFFC0A3120FABEBC1F8EB
C7FEEBDC3FEBF01F158013E0A213C0AE39FFFCFFF8A31D267DA522>I<120FEA1F80EA3FC0A4EA
1F80EA0F00C7FCA7EAFFC0A3120FB2EAFFF8A30D277EA611>I<130FEB1F80EB3FC0A4EB1F80EB
0F0090C7FCA7EBFFC0A3130FB3A6127C12FEA2EB1F801400EA7C3EEA3FFCEA0FE0123284A613>
I<EAFFC0A3120FAB9038C1FFC0A39038C07C005CEBC1F0EBC3E0EBC78001CFC7FC13DFEBFF8080
8013E7EBC3F0EB83F8EB81FC1380147E147FEC3F8039FFF8FFF0A31C267EA520>I<EAFFC0A312
0FB3AEEAFFFCA30E267EA511>I<3AFF81FC01FC903987FF07FF903A9C1F9C1F803A0FB80FB80F
01B001F013C001E013E0A201C013C0AE3BFFFCFFFCFFFCA32E187D9733>I<38FF81F8EB87FEEB
9C3F380FB01F158013E0A213C0AE39FFFCFFF8A31D187D9722>I<EB7F803803FFF03807C0F838
1F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E6C6C5A3803FFF0
38007F801A187E971F>I<38FFC7F8EBDFFE9038F83F80390FE00FC001C013E0140715F0140315
F8A8EC07F0A215E0EC0FC0EBE01F9038F83F00EBDFFEEBC7F001C0C7FCA8EAFFFCA31D237E9722
>I<90387F03803803FFC73807E0E7381FC07FEB803F383F001F5AA212FEA8127E127F7EEB803F
001F137F380FE1FF3803FF9F3800FE1F1300A8903801FFF8A31D237E9720>I<38FF8F80EB9FE0
EBB1F0380FE3F8A3EBC1F0EBC0E01400ADEAFFFEA315187E9719>I<3807F980EA1FFFEA3C0FEA
7007EAF003A300FCC7FCB47EEA7FFC7F383FFF80000F13C0120338001FE01303EAE001A212F014
C0EAF80338FE0780B51200EAC3FC13187E9718>I<13E0A41201A31203A21207120F381FFFC0B5
FCA23807E000AB14E0A63803E1C013F13801FF8038007E0013237FA218>I<39FFC1FF80A3380F
C01FAF143FA20007137F9038E0DFF83803FF9F3800FE1F1D187D9722>I<39FFF81FF8A3390FC0
03803907E00700A26D5A0003130EEBF81E0001131CA26C6C5AA2EBFE78EB7E70EB7FF06D5AA26D
5AA36D5AA26DC7FC1D187F9720>I<39FFF87FF0A33907E01E006C6C5A6D5A3801FC70000013F0
EB7FE06D5A5C131F6D7E497E497EEB7BF813F1EBE0FC0001137E3803C07F48487E39FFE07FF8A3
1D187F9720>120 D<39FFF81FF8A3390FC003803907E00700A26D5A0003130EEBF81E0001131C
A26C6C5AA2EBFE78EB7E70137F6D5AA2131F5CA26D5AA26DC7FCA25BEA380E127CEAFE1CA25B13
78EA7CF0EA3FC06C5A1D237F9720>I E /Fj 7 117 df<1238127C12FEA3127C12381200A61238
127C12FEA3127C123807147D930D>58 D<39FFE007FE13F0390FF80060A27FEA0DFEEA0CFFA2EB
7F80EB3FC0131F14E0EB0FF0EB07F8A2EB03FCEB01FEEB00FFA2EC7FE0143FA2141F140F1407A2
140314011400EAFFC015601F1F7E9E24>78 D<12FEA312E0B3B3A312FEA3072D7CA10D>91
D<12FEA3120EB3B3A312FEA3072D7FA10D>93 D<EA03F8EA0FFEEA1F1F383E0F80EA7E07007C13
C012FCA2B5FCA200FCC7FCA4127C007E13C0EA3E01381F03803807FF00EA01FC12147F9315>
101 D<EA01F8EA0FFF381F0F80383E07C0387C03E0A300FC13F0A7007C13E0A2383E07C0381F0F
80380FFF00EA03FC14147F9317>111 D<1203A45AA25AA2123FEAFFF8A2EA1F00AA1318A5EA0F
30EA07F0EA03E00D1D7F9C12>116 D E /Fk 39 123 df<903803F07C90381E0DC69038380F0F
EB701E01E0130EEC0C003801C01CA548485A007FB512C0A23903803800A348485AA6000E5BA6EA
1E0138FF8FFEA220207E9F1B>11 D<13031304130813101320136013C0EA018013005A1206A25A
A2121C1218A212381230A21270A21260A412E0A61260A57EA2121012181208120C12047E7E102E
7CA112>40 D<138013C01360132013301318A2130CA3130E1306AB130EA3130CA2131C1318A213
381330A21360A213C0A2EA018013005A12065A5A5A5A12800F2E7FA112>I<EAFFC0A20A027D8A
0F>45 D<1230127812F81278127005057C840D>I<137EEA01C338030180000613C0120E381C00
E01301123CA212381278A438F003C0A51480130712E014005BEA600EEA701CEA3018EA1870EA0F
C0131D7C9C17>48 D<130C131C13F8120F13381200A31370A613E0A6EA01C0A61203EA7FFE12FF
0F1D7C9C17>I<EB3F80EBFFE0380181F0380200F8481378000F137C1380A2EB00781206C712F8
14F0EB01E014C0EB0380EB0700130E5B13305B5B48C7FC000213205A001813405A387FFFC0B512
80A2161D7E9C17>I<137F3801FF80380303C0380701E0000F13F0A3000013E0A2EB03C01480EB
0700130E13F8130EEB0780A2EB03C0A3EA3007127812F81480EAF00F38C01F00EA703EEA3FF8EA
0FE0141D7D9C17>I<14C01301EB03801307130F131B13131323EB47001387EA01071202120412
08EA100E1220124012C0B512F0A238001C00A6133C3803FFC0A2141D7D9C17>I<0007B512F8A2
39003C00781538491318A5EC0810EBF0101500A21430EBFFF0A23801E0601420A2150815101400
485A1520A2156015C0140100071307007FB51280B6FC1D1F7E9E1F>69 D<3A07FC01FFC013FE3A
003E003C001518014F1310A2EB4780A2EB43C0A201835BEB81E0A2EB80F0A21478D801005B147C
143CA2141EA200026D5AA31407A200061303000F91C7FC387FE00112FF221F7E9E22>78
D<EB03F8EB1C1EEB70079038E003803901C001C0D8038013E00007130048C712F05A121E003E14
F8123C127CA448EB01F0A315E014031278EC07C0007C1480003C130F15006C131E000E13386C5B
3803C1C0D8007FC7FC1D1F7B9E23>I<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E
07EA3C0E127800F01310A3131EEB2E2038784F40381F878014147D9317>97
D<1207123F5A120F7E120EA65A137CEA1D87381E0380381C01C0A2123814E0A5387003C0A21480
13071400130EEAE81CEAC438EA83E013207B9F19>I<EA01FCEA0706EA0E0F121CEA380EEA7800
127012F0A45AA4EAF002EA7004EA3008EA1830EA0FC010147C9314>I<1470EB03F01307130014
7014E0A6EB01C013F9EA0305EA0E03121CEA380138780380127012F0A438E00700A5EA700FEA30
1F38186FE0EA0F8F14207C9F19>I<13F8EA070EEA0E07121C383803801278127012F0A2B5FC00
F0C7FC5AA46C5AEA7002EA3004EA1C18EA07E011147D9314>I<EB0780EB18C0EB31E01361EBE1
C0EBC0001201A5485AEA7FF8A2EA0380A348C7FCA6120EA6121EEAFFE0A213207E9F0E>I<EB3E
0EEBE1B33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA2121812
1CEA0FFF14C06C13E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181E809317>
I<13E01207120F12011200485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01
C0A6EA1E0338FFCFF8A215207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA0380121FA212
071203EA0700A6120EA6121EEAFF80A20B1F7F9E0C>I<EB0380EB07C0A21480EB030090C7FCA6
1307137FA2130F7F130EA65BA65BA65B1260EAF0605BEA6180003FC7FC1228839E0E>I<13E012
07120F12011200485AA6485AEB83FCA2EB81E014801400EA07045B13181338137C131C120E7FA2
130F7F1480001E13C038FF8FF0A216207E9F18>I<13E01207120F12011200EA01C0A6EA0380A6
EA0700A6120EA6121EEAFFC0A20B207F9F0C>I<390387C07C391F986186393FA072073907C034
03380380380007EB7807EB0070A5000EEBE00EA6D81E01131E3AFFCFFCFFC0A222147E9326>I<
38038F80381F90E0EA3FA03807C060EA0380000713E01300A5380E01C0A6EA1E0338FFCFF8A215
147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300
F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC38380FF01C3800E01E140E
EA01C0140FA53803801EA2141C143C14381470380740E0EB21C0EB1F0090C7FCA3120EA4EAFFC0
A2181D809319>I<EBF04038038CC0EA0E04EA1C03123C00781380A212F0A438E00700A312F05B
1270EA301EEA186EEA0F8EEA000EA35BA43801FF80A2121D7C9318>I<EA038E381FB380EA3FC7
120738038300EA078090C7FCA5120EA6121EEAFFE0A211147E9312>I<EA01F2EA060EEA080612
181302EA38041300121EEA1FE0EA0FF0EA03F8EA003CEA401C130CA212601318EAE010EAD060EA
8FC00F147E9312>I<1380EA0100A35AA25A120EEA3FF812FFEA0E00A35AA65A1320A41340A2EA
1880EA0F000D1C7C9B12>I<380E01C0EA7E0FEAFE1FEA1E03EA0E01381C0380A638380700A45B
A25B38182FE0EA0FCF13147C9319>I<38FF83F8A2381E01E0381C00807EEB01001302A2EA0F04
12075BA25BEA039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FCA2391C038070EC00
60EC80401580EA0E079038058100130914C21311380731C41321EB60C81340EB80F0A26C485A14
60000213401E147C9321>I<381FF0FFA23801C07014403800E08013E1EB73001376133CA2131C
132E134E1387EA0107380203801206381E01C038FF07FCA218147F9318>I<390FF83F80A23901
E01E00EBC0083800E01814105CA26D5A13705CA20171C7FC1339133A133E133C133813181310A2
5BA25BEA70C0EAF08000F1C8FC12E2127C191D809318>I<3807FFE01301000413C0380C038038
080700130E485AC65A5BA25B485A38038080EA0700120E381C0100A2485AEA700EEAFFFE13147F
9314>I E /Fl 36 121 df<91391FFC03FC49B5EA1FFF010F91B512C090261FF007131F903B7F
C00FFC3FE09038FF001F4815F85B484814F0EF1FC0030FEB070094C7FCA7B812F0A32803FC000F
F0C7FCB3A8267FFFE1B512C0A333327FB12F>11 D<14E013011307133FEA1FFFB5FCA2EAE03F12
00B3B1007FB512E0A31B2E7AAD28>49 D<EB3FE03801FFFC0007EBFF80D81F8013C0393E003FE0
48EB1FF0007FEB0FF8D8FF8013FCEBC00715FEA31403EA7F80383F0007C7FCA215FC140F15F814
1F15F0EC3FE015C0EC7F80ECFF00EB01FC5C495A495A90380F800EEB1F00133E49131E49131C48
5A4848133C48B512FCA25A5A5A4814F8B6FCA31F2E7CAD28>I<EB0FF8EB7FFF48B512C03903F0
3FE03907801FF0390FE00FF8EA1FF06D6C7EA5380FF00FD807E05BEA0180C75B141F4A5A5D02FF
C7FCEB3FFE14F8ECFF809038001FE0EC0FF86E7E6E7E8180A2000E1580EA3F80EA7FC0EAFFE0A4
16005CD87FC05B90380007FC003E495A391FC01FF00007B55A000191C7FC38001FF8212E7DAD28
>I<15F0140114031407A2140F141F143FA2147F14FFEB01EFEB03CF148F1307EB0F0F131E131C
133C137813F0EA01E013C01203EA0780EA0F00120E121E5A5A5AB712E0A3C7381FF000A9011FB5
12E0A3232E7EAD28>I<913A03FF800180023FEBF00349B5EAFC0F01079038003F1FD91FF8EB07
FFD97FE01301D9FF807F4890C8127F4848153F4848151F485A170F48481507123F5B1703127FA2
4992C7FC12FFAB127F7FEF0380123FA27F001F16076C6C16005F6C6C150E6C6C151E6C6C5D6C6D
5CD97FE0495AD91FF8495AD907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>
67 D<B712F016FF17C0C6D9C00013F0EE0FF8EE03FE707E701380EF7FC0173FEF1FE018F0170F
18F8A2EF07FCA418FEAB18FCA4EF0FF8A218F0171F18E0173FEF7FC01880933801FF004C5AEE0F
FCEE7FF0B812C094C7FC16F037317EB03E>I<B812E0A3C69038C0007FEE0FF016031601A21600
A21770A31738A21507A21700A35D5D5D91B5FCA3ECC03F818181A592C8FCACB612F0A32D317EB0
33>70 D<B612C0A3C6EBC000B3B3A7B612C0A31A317EB01E>73 D<B612F0A3C601C0C8FCB3A9EE
01C0A416031780A21607A3160F161F163F167FEEFF001507B8FCA32A317EB030>76
D<B500E00307B5FCA26E5DC61900D9EFF8151DA3D9E7FC1539A2D9E3FE1571A2D9E1FF15E1A201
E06DEB01C1A36E6CEB0381A26E6CEB0701A26E6C130EA26E6C131CA26E6C1338A36E6C1370A26E
6C13E0A26EEB81C0A292387FC380A392383FE700A2ED1FFEA26F5AA26F5AA3486C6D5AB500E04A
B6FCED01E0A248317EB04D>I<EC0FFF91B512F0010714FE903A1FFC03FF80903A3FE0007FC0D9
7F80EB1FE04848C7EA0FF848486E7E48486E7E491401000F8248486E1380A24848ED7FC0A3007F
17E049153FA200FF17F0AB007F17E06D157FA3003F17C06D15FF001F1780A26C6C4A13006C6C4A
5AA26C6C4A5A6C6C4A5A6C01C0EB3FF0D93FE0EB7FC0903A1FFC03FF800107B548C7FC010014F0
020F90C8FC34317CB03D>79 D<90391FF8018090B51203000314C73907F007EF390FC000FF4848
137F48C7123F48141F007E140F150712FEA26C1403A27F6D90C7FC7F13FE387FFFE014FF6C14E0
15F86C806C806C80000115806C6C14C0010F14E0EB007F14079138007FF0153F151F150F12E015
07A37E16E06C140F16C07EB4EC1F8001C0EB3F0001FC13FE00F1B55AD8E03F13F0D8C003138024
317CB02D>83 D<007FB8FCA39039C00FFC01D87E00EC003F007C82007882A200708200F01780A2
17035AA5C792C7FCB3AA017FB67EA331307DAF38>I<B6D8C003B51280A3C601C0C73807C00071
5AB3AE1707017F93C7FC80013F5D170E6D6C141E6D6C5C6D6C14F86D6C495A903A00FFC01FE002
3FB51280020F49C8FC020013E039317EB03E>I<B500FE91B5FCA300030180EC07C06CEE03806E
14076C170080017F150E80171E013F151C6E143C011F153880010F5D8001075D8016016D5DED80
036D5D15C06D4AC7FC15E05E027F130EEDF01E023F131CEDF83C021F133815FC020F5B15FE16F0
02075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB03D>I<EB7FF03803FFFE000F6D
7E391FE03FE09038F00FF06E7EA26E7EEA0FE0EA07C0EA0100C7FCA2EB01FF133F3801FFE33807
FC03EA1FF0EA3FE0EA7FC0138012FF1300A31407EB800F387FC01F393FE07DFE3A1FFFF9FFF000
0713E0C6EB003F24207E9F27>97 D<EA01F812FFA3120F1207ADEC1FF0ECFFFC01FB13FF9039FF
E07FC09138001FE049EB0FF04914F849130716FC1503A216FEAA16FC1507A216F86DEB0FF06D13
1F6DEB3FE09039E7C07F8001C3B51200018013FC9038001FE027327EB12D>I<EB0FFE90387FFF
C048B512F03903FC07F8380FF00FEA1FE0A2EA3FC0007FEB07F0EC03E0903880008000FF1400AA
6C7EA2151C6C7E001F143C6D13786C6C13F03903FE03E06CB512C06C6C1300EB0FF81E207D9F24
>I<ED0FC0EC07FFA3EC007F153FADEB0FF0EB7FFE48B512BF3903FC07FF380FF80148487E4913
7F4848133F127FA25B12FFAA127FA27F003F147F7F001F14FF380FF0032607FC0F13E00001B5EA
3FFE38007FFCEB0FF027327DB12D>I<EB0FFC90387FFF8048B512E03903FC0FF0390FF003F890
38E001FC121F393FC000FEA2127F49137F12FFA290B6FCA30180C7FCA4127F7FA2003F14077F00
1F140F6C6C131ED807FC133C6CB413F8C6EBFFF0013F13C0903807FE0020207E9F25>I<14FF01
0713C0011F13F0EB7FC79038FF0FF85A13FE120313FCEC07F0EC01C091C7FCA7B512FCA3D803FC
C7FCB3A8387FFFF0A31D327EB119>I<90391FF007C09039FFFE3FE0000390B512F03907F83FF3
390FE00FE3001F14F39039C007F0C0003FECF800A7001F5CEBE00F000F5C3907F83FC090B55A00
0E49C7FCEB1FF0001EC9FCA3121F7F90B57E6C14F015FC6C14FF168016C0121F48C7127F007EEC
1FE000FE140F481407A36C140F007E15C0007F141F6C6CEB3F803A1FF001FF000007B512FC0001
14F0D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFE91B512809038F9
F07F9039FBC03FC0EBFF809138001FE05B5BA25BB3B500C3B5FCA328327DB12D>I<EA03E0487E
487E487EA56C5A6C5A6C5AC8FCA8EA01F812FFA3120F1207B3A6B51280A311337DB217>I<EA01
F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFF
F891B5008313FE903AF1F07F87C13C0FF3C03FCF00FF2607F78013DE9126001FFCEB7F8001FE5C
495CA2495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE91B512809038F1
F07F3A0FF3C03FC03807F7809138001FE013FE5BA25BB3B500C3B5FCA328207D9F2D>I<EB07FC
90387FFFC048B512F03903FC07F83907F001FC48486C7E4848137F003F1580A24848EB3FC0A300
FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE6C6C485A3903FC07F86CB55A6C6C13C0
D907FCC7FC23207E9F28>I<3901F81FF000FFEBFFFC01FB13FF9039FFE07FC000079038003FE0
49EB1FF049EB0FF85BED07FCA3ED03FEAAED07FCA3ED0FF86DEB1FF07F6DEB3FE09138C0FF8001
FBB5120001F813FCEC1FE091C8FCABB512C0A3272E7E9F2D>I<3803F07E39FFF1FF8001F313E0
148F390FF71FF0120713FE13FCEC0FE0EC07C0EC010049C7FCB2B512E0A31C207E9F21>114
D<3801FF86000713FE121FEA3F00007C133E0078131E00F8130EA27E91C7FCB4FC13F86CB47E14
F06C7F6C7F6C7F00017FEA003F01011380EB003F00E0131F140F7EA27E6CEB1F006C5B38FF807E
EBFFFC00F313F038C07F8019207D9F20>I<131CA4133CA3137CA213FC120112031207121FB512
FEA3D803FCC7FCB0EC0380A7EBFE07000114006D5A6C13FEEB3FFCEB07F0192E7FAD1F>I<D801
F8EB07E000FFEB03FFA3000FEB003F0007141FB2153FA2157FA26C6C13FF913803DFF06CB5EA9F
FF39007FFE1FEB0FF828207D9F2D>I<B53A1FFFE07FF8A33C0FF000FE0007807F00071700157F
6C6C150EEDFF806D151E0001161C913801DFC001FF153C6C0103EBE038DA838F1378017F157091
388707F002C714F0D93FCF6D5AECCE03D91FEEEBF9C09138FC01FD16FF010F5D4A7E010792C7FC
4A7FA20103147E4A133E0101143C4A131C35207E9F3A>119 D<3A7FFF807FFCA33A03FE001F80
0001EC1E006C6C5B6E5AEB7FC06D6C5A90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E
81815B903803DFE09038078FF08190380F07FCEB1E03496C7E496C7E49148049EB7FC00003143F
26FFFC01B5FCA328207F9F2B>I E /Fm 90 126 df<127012F8B012701200A5127012F8A31270
051C779B18>33 D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA638
7FFFC0B512E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18
>I<EA3803387C0780A2EAEE0F1400A25B131EA2133EEA7C3CA2EA387CEA0078A213F85B12015B
A212035BA21207EB8380EB87C0120FEB0EE0A2121F121EA2123E383C07C0A23818038013247E9F
18>37 D<EA01C0EA07E0487EEA0E70487EA4EB73F0A213E3000F1380EBC70013871307EA1F0E12
3FEA7B8EEA73DC12E1EAE0F8A2EB70701378EA70FC387FFFE0EA3FCF380F03C0141C7F9B18>I<
1238127CA2127E123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03
C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F012001370
0C24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2
EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A438C1C180EAF1C7EAF9CF387FFF
00EA1FFCEA07F0A2EA1FFCEA7FFF38F9CF80EAF1C7EAC1C13801C000A411147D9718>I<136013
F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C123E127E127F123F121F
1207120E121E127C12F81260080C788518>I<EA7FFFB51280A26C130011047D8F18>I<12301278
12FCA2127812300606778518>I<1303EB0780A2130F14005B131EA2133E133C137C1378A213F8
5B12015B12035BA212075B120F90C7FCA25A121E123E123CA2127C127812F85AA2126011247D9F
18>I<EA01F0EA07FC487EEA1F1FEA1C0738380380007813C0EA7001A238E000E0A9EAF0010070
13C0A2EA780300381380381C0700EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A212
07120F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF
387C0F80387003C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B48
5AEA07C0485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<EA07F8EA1FFE487E38780780EB03C0
13011230120013031480EB0F00EA03FF5B7F38000780EB03C01301EB00E0A312F0A2EB01C01303
387C0780383FFF006C5AEA03F8131C7E9B18>I<131F5B5B137713F7EA01E713C71203EA078713
07120E121E123C1238127812F0B512F8A338000700A6EB7FF0EBFFF8EB7FF0151C7F9B18>I<38
1FFF805AA20038C7FCA8EA3BF8EA3FFE7F383C0780381803C0EA0001EB00E0A2126012F0A238E0
01C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00071380380F83C0
EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803C0EAF001EB00E05A7E12
70A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B18>I<12E0B512E0A338E003C0
EB078000001300130E131E131C5BA25BA25BA3485AA412035BA7131D7E9C18>I<EA03F8EA0FFE
487E383E0F80EA3803387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C07803870
01C000F013E0EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<EA03
F0EA0FFC487EEA3C0F38780780EA700338E001C0A314E0A21270EA7803EA3C0FEA1FFFEA0FFEEA
03F0C7FCEB01C0A338300380EA7807EB0F00133EEA3FFCEA1FF0EA07C0131C7E9B18>I<123012
7812FCA2127812301200A81230127812FCA2127812300614779318>I<1218123C127EA2123C12
181200A81218123C127EA2123E121E120E121C123C127812F01260071A789318>I<1303EB0780
131FEB3F00137E485AEA03F0485AEA1FC048C7FC127E5AA2127E7EEA1FC0EA07E06C7EEA01FCEA
007E7FEB1F801307EB030011187D9918>I<387FFFC0B512E0A3C8FCA4B512E0A36C13C0130C7E
9318>I<126012F012FC127E7EEA1FC0EA07E06C7EEA01FCEA007E7FEB1F80A2EB3F00137E485A
EA03F0485AEA1FC048C7FC127E5A12F0126011187D9918>I<EA0FF0EA3FFC48B4FCEA700F38F0
0380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<
137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1
C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E
9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA41306EA0707A4380FFF80A3EA0E03A2381C
01C0A2387F07F038FF8FF8387F07F0151C7F9B18>I<EAFFFC13FF1480381C03C01301EB00E0A4
130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303B512C01480EBFE00
141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A2
7E123C381E01C0EA0F073807FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F
80EB03C0A2EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8
141C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512
F8A3151C7F9B18>I<B512E0A3EA1C00A41400A2131CA3EA1FFCA3EA1C1CA390C7FCA7EAFFC0A3
131C7E9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF013
1F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F0
38FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>
I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FFC05A7E3800
0E00B312F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03
C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01
C0387F03F038FF87F8387F03F0151C7F9B18>I<EA7FE012FF127F000EC7FCB11470A5387FFFF0
B5FC7E141C7F9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F8
1370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121C
A213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA
0FF8EA3FFE487EEA780FEA700700F01380EAE003B0EAF00700701300EA780FEA7FFF6C5AEA0FF8
111C7D9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF1480EB
FE00001CC7FCA8B47EA3141C7F9B18>I<EA0FF8EA3FFE487EEA780FEA700700F01380EAE003AE
EAE1E3A2EAF0E73870F700EA787FEA7FFF6C5AEA0FFCEA001C131E130E130F7FA211227D9B18>
I<EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380
A5149CA3387F01F8EAFF81387F00F0161C7F9B18>I<3803F380EA1FFF5AEA7C0FEA7007EAE003
A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100F013
C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07
FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C
171C809B18>I<38FF07F8A3381C01C0A4380E0380A4EA0F0700071300A4EA038EA4EA018C13DC
A3EA00D813F8A21370151C7F9B18>I<38FE03F8A338700070A36C13E0A513F8A2EA39DCA20019
13C0A3138CEA1D8DA4000D13801305EA0F07A2EA0E03151C7F9B18>I<387F8FE0139F138F380E
0700120FEA070E138EEA039C13DCEA01F8A26C5AA2137013F07F120113DCEA039E138EEA070F7F
000E13801303001E13C0387F07F038FF8FF8387F07F0151C7F9B18>I<38FF07F8A3381C01C0EA
1E03000E1380EA0F0700071300A2EA038EA2EA01DCA213FC6C5AA21370A9EA01FC487E6C5A151C
7F9B18>I<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91 D<126012F0A27E1278127C123CA2
123E121E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480
1307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA
1FF0EA7EFCEAF83EEAE00E0F067C9B18>I<EA7FFFB51280A26C130011047D7F18>I<EA1FE0EA3F
F8487EEA781EEA300EC67EA213FF1207121FEA7F07127812E0A36C5AEA781F383FFFF0EA1FFBEA
07E114147D9318>97 D<127E12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E14
38A6000F1370A2EB80E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F13
80EA3E073838030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D93
18>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38
380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E03381FFF8000071300EA01
FC12147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA
7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA1FFC
5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0EA7E03381F
FFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF80000F13C013C1EB80E0
1300120EAB387FC3FC38FFE7FE387FC3FC171C809B18>I<EA0380487EA36C5AC8FCA4EA7FC012
FF127F1201AEB5FC14801400111D7C9C18>I<1338137CA313381300A4EA0FFC121F120FEA001C
B3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<12FEA3120EA5EB3FF0137F133FEB07
80EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB038014C038FFC7F8A3151C7F9B18>I<EA
7FE012FF127F1200B3A4387FFFC0B512E06C13C0131C7E9B18>I<387CE0E038FFFBF8EA7FFF38
1F1F1CEA1E1EA2EA1C1CAB387F1F1F39FFBFBF80397F1F1F001914819318>I<EA7E3E38FEFF80
007F13C0EA0FC1EB80E01300120EAB387FC3FC38FFE7FE387FC3FC1714809318>I<EA01F0EA0F
FE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C0780EA3E0F381F
FF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6
000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<38
01E380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFB
EA03E3EA0003A7EB3FF8A3151E7E9318>I<387F87E038FF9FF0387FBFF83803F878EBF030EBE0
005BA25BA9EA7FFEB5FC6C5A15147F9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7F
E0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<48
7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>
I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<38
7F8FF000FF13F8007F13F0381E03C0000E1380A338070700A3EA038EA313DEEA01DCA3EA00F8A2
137015147F9318>I<38FF8FF8A3383800E0A3381C01C0A2137113F9A213D9A2380DDD80A3138D
EA0F8FA23807070015147F9318>I<387F8FF0139F138F38070700138EEA039EEA01DC13F81200
137013F07FEA01DCEA039E138EEA0707000F1380387F8FF000FF13F8007F13F015147F9318>I<
387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA03871386138EEA01CEA2EA00
CCA213DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2
387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314
147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7F
E0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC13C01203C67EAB7FEB
7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18>I
E /Fn 5 42 df<B612C0A21A027C8B23>0 D<EB01FE90380FFFC090383E01F09038F0003CD801
C0130E48487F48C7EA0380000EEC01C048EC00E000181560003815700030153000701538006015
18A200E0151C48150CA96C151C00601518A200701538003015300038157000181560001C15E06C
EC01C06CEC03806C6CEB07006C6C130ED800F0133C90383E01F090380FFFC0D901FEC7FC26297D
9F2D>13 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA8EA7FFEA2EA3FFCEA1FF8EA07E010127D9317
>15 D<B612F0A2C9FCA7B612F0A2C9FCA7B612F0A21C147D9423>17 D<14021403A26E7E6E7EA2
1560007FB512F0B612FCC8120EED0380ED01F0ED007C16F0ED03C0ED0700150CB612F86C5CC812
605D4A5AA24AC7FCA21402261A7D972D>41 D E /Fo 58 122 df<903901FF01FE011FEBCFFF90
3A7F01FF0F80903AFC03FE1FC03901F807FC1203D807F013F8EE0F80020390C7FCA7B712F0A327
07F003F8C7FCB3A33A7FFF3FFFC0A32A2A7FA927>11 D<003C1378007F13FE38FF81FFA201C113
80A3EA7FC0003E137D00001301A23901800300A338030006A200065B000E131C485B485B003013
6019157EA923>34 D<13031306131C1338137813F013E01201EA03C0A2EA0780120FA2EA1F00A3
123EA3127EA3127C12FCAE127C127EA3123EA37EA3EA0F80A21207EA03C0A2EA01E0120013F013
781338131C13061303103C7BAC1A>40 D<12C0126012387E121E7E7E1380EA03C0A2EA01E013F0
A2EA00F8A3137CA3137EA3133E133FAE133E137EA3137CA313F8A3EA01F0A213E0EA03C0A2EA07
8013005A121E121C5A12605A103C7CAC1A>I<B5FCA610067F9016>45 D<121C127FA2EAFF80A3
EA7F00A2121C09097B8813>I<130E131E137EEA07FE12FFA212F81200B3AB387FFFFEA317277B
A622>49 D<EBFF80000713F04813FC381E03FE393800FF80007C137F00FEEB3FC06C131F15E0A3
127E123CC7FC15C0143F1580EC7F00147E5C495A495A5CEB078049C7FC131E013813E05B5B3901
C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803FFF04813FC380F
81FE48C67E486C7E1580A3121F1300C713005C5C495A5CEB07F0EBFFC0A2EB01F8EB00FE147F15
80EC3FC0A215E0A2123C127EB4FCA215C0A248EB7F80007CEBFF00383F01FE6CB45A000713F0C6
13801B277DA622>I<140E141E143E147E14FEA213011303EB077E130EA2131C1338137013E0A2
EA01C0EA0380EA0700120EA25A5A5A5AB612F8A3C7EAFE00A890387FFFF8A31D277EA622>I<00
181303381F801FEBFFFE5C5C5C5C148049C7FC001CC8FCA6EB7FC0381DFFF8381F80FC381E003F
121CC7EA1F8015C0A215E0A21218127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A
000313F0C613801B277DA622>I<1238123E003FB512F0A34814E015C0A215803970000F00141E
5C48133814785CC6485A495A5C130749C7FCA25B131E133EA2137EA2137C13FCA41201A8EA0070
1C297CA822>55 D<EB7F803801FFF000077F380FE0FC381F807E003F7F397F001F80A34814C0A3
15E0A47E143FA27E381F807F000F13DF3807FF9F0001131FEA0008010013C0A31580003E133F12
7F1500147EA2007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>57
D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F1480A249486C
7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303A248486D7EA20003
81D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8003FE0ED0FF016F8150716FC
A21503A3150716F8A2ED0FF0151FED3FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED07F8ED03
FC16FE1501A216FFA616FE1503ED07FC150FED1FF8B712E016C0EDFE0028297DA830>I<91387F
E003903903FFFC07011FEBFF0F90397FF00FDF9039FF8001FF4848C7FC4848147FD807F0143F00
0F151F485A160F485A1607127F5B160012FFA9127FA26D1407123FA26C7E160E6C7E0007151CD8
03FC143C6C6C14783A00FF8001F090397FF007C0011FB512800103EBFE009038007FF028297CA8
31>I<B612FCEDFF8016E03A03FC001FF8ED03FC6F7E6F7EEE7F80EE3FC0161F17E0A2EE0FF0A4
17F8AA17F0A3EE1FE0A217C0163F1780EE7F004B5AED03FCED1FF8B75A168003FCC7FC2D297EA8
34>I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90
B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327
297EA82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403A2
140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003903903FF
FC07011FEBFF0F90397FF00FDF9039FF8001FF4848C7FC484880D807F080000F81485A82485A82
127F5B93C7FC12FFA892B512F8127FA26D01001300123FA26C7EA26C7E1207EA03FC6C7E6C6C6C
5A90387FF007011FB5129F0103EBFE0F9039007FF0032D297CA835>I<B5D8F00FB5FCA3D803FC
C7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<B512FCA33801FE00B3B1
B512FCA316297FA819>I<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F
157F913801FF00B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014
EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE13
38A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5AA26E
5AD8FFFE0203B51280A2157039297DA840>I<D8FFFEEC7FFF7FA200036DEB01C08080EBBFF0EB
9FF8EB8FFC1387EB83FE8001811380018013C0EC7FE0143FEC1FF0EC0FF815FCEC07FEEC03FF6E
138180ED7FC116E1ED3FF1ED1FF9ED0FFD1507ED03FF81A281167F163F161F160FA2D8FFFE1407
1603160130297EA835>I<ECFFC0010F13FC90383FC0FF9039FE001FC048486D7E48486D7E4848
6D7E48486D7E001F81491300003F81A2007F168049147FA300FF16C0AA007F16806D14FFA2003F
1600A26C6C495AA26C6C495A00075D6C6C495A6C6C495A6CB4EB3FC090263FC0FFC7FC90380FFF
FC010013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED0FF0ED07F816FC150316FEA716
FC150716F8ED0FF0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<ECFFC0010F
13FC90383FC0FF9039FF003FC0D801FCEB0FE048486D7E48486D7E000F8148486D7EA248486D7E
A2007F168049147FA300FF16C0AA007F1680A26D14FF003F1600A26C6C495A143E000F9038FF81
FC3A07F1C1C3F83A03F980E7F0D801FDEBFFE0D800FF6D5A90263FC0FFC7FC90380FFFFC010015
C0EC007EED3F01168316FFA26F1380A28117006F5A6F5AED00F82A357CA833>I<B612E015FE6F
7E3A03FC007FE0ED0FF06F7E82150382A65E4B5AA2ED1FE0ED7FC090B500FEC7FC15F89038FC00
FEED7F806F7E6F7EA26F7EA482A4170E16FC1507171EB539F003FE3C923800FFF8EE1FE02F297E
A832>I<01FF13C0000313E1000F13FB381F80FF383F003F003E130F481307A200FC1303A21401
7EA26C90C7FC13C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1F
F0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE01F00F3B5120000E113FC38C01F
F01C297CA825>I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A2
481501A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3A916
076C6C1500A200005D6D141E6D6C5B6D6C5B90390FF003F06DB55A01001480DA1FFCC7FC2F297E
A834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26C6CEC0700A26E5B017F140E80013F
5C80011F5CA26E1378010F14706E13F001075C800103495AA2ECFE0301015CECFF076D91C7FC15
87EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>I<B500E0B539E01FFF
C0A32803FC0003FCC7EA7000A26D6E14F0000102015DA26D6E13016C60A26D6C486D485AA26E48
EBC007013F023F91C7FCA2DAE00F6D5A011FD90E1F130EA26D6C486C6C5AA217F8902707F83807
5BA2DAFC78EBFC780103D970031370A2DAFEF0EBFEF00101D9E0015BA26D6C486C6C5AA36E486D
5AA36EC76CC8FCA3021E141EA242297FA845>I<0003130648130E000E5B485B00181330485BA2
485BA348485AA200DF13BE38FF81FF01C11380A3EA7FC0A2393F807F00380F001E191579A923>
92 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA314FF137F3803FFBF38
0FF03FEA1F80EA3F00127E5AA46C137F007EEBDFC0393F839FFC381FFF0F3803FC031E1B7E9A21
>97 D<EAFFE0A3120FACEBE1FE9038E7FF809038FE07E09038F803F09038F001F89038E000FCA2
157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380FFF80390E01FC00202A
7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FEA7
127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E9A1E>I<
EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA2
7EA2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF03807
E07C48487E48487ED83F001380140F5A007E14C012FE1407A2B6FCA248C8FCA4127E127F6CEB01
C01380001F1303390FC007803903F01F003800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E
3E3801FC7FEA03F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<
90387F81F03901FFE7F83907C0FE1C390F807C7C381F003E151048EB3F00A66C133EA26C6C5A6C
6C5A380DFFE0381C7F8090C8FCA3121E381FFFF814FF6C14C015E06C14F0121F383E000748EB01
F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I<EAFFE0
A3120FAC14FE9038E3FF809038E70FC001EC13E0EBF80715F013F0A213E0B039FFFE3FFFA3202A
7DA925>I<1207EA1FC0EA3FE0A5EA1FC0EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA
12>I<1307EB1FC0EB3FE0A5EB1FC0EB070090C7FCA73801FFE0A3EA000FB3AA127C12FEEB1FC0
A21480387C3F00EA3FFCEA0FF0133784AA15>I<EAFFE0A3120FACEC3FF8A3EC0F80EC1F00143E
14785CEBE1E0EBE3C013EF13FF8080A2EBF3F8EBC3FCEBC1FE13C080EC7F80143F15C0EC1FE039
FFFC7FFCA31E2A7EA923>I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>I<26FFC07FEB1FC0903A
C1FFC07FF0903AC707E1C1F8D80FCC9038F301FC9039D803F60003FE7F01F05BA201E05BB03CFF
FE3FFF8FFFE0A3331B7D9A38>I<38FFC0FE9038C3FF809038C70FC0D80FCC13E0EBD80715F013
F0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0
393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907
F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038E7FF809038FE0FE0390FF803F09038
F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F803F09038FC0FE090
38EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC3E0EBCFF8EBDC7C380FD8FE
13F0A3EBE07C1400B0B5FCA3171B7E9A1B>114 D<3803FE30380FFFF0EA3E03EA7800127000F0
1370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6FCEB07FC130000E0137C143C
7E14387E6C137038FF01E038F7FFC000C11300161B7E9A1B>I<1370A413F0A312011203A21207
381FFFE0B5FCA23807F000AD1470A7000313E03801F8C0EA00FFEB3F0014267FA51A>I<39FFE0
7FF0A3000F1307B2140FA20007131F3903F077FF3801FFE738007F87201B7D9A25>I<3BFFFC7F
FC1FFCA33B0FE00FE001C02607F007EB0380A201F8EBF0070003160015F82601FC0F130EA29039
FE1FFC1E0000011C131C15FE9039FF387E3C017F1438EC787F6D486C5AA29138E01FF0011F5CA2
6D486C5AA36D486C5AA22E1B7F9A31>119 D<39FFFC1FFEA33907F00780D803F813006C6C5AEB
FE1E00005BEB7F78EB3FF85C6D5A130F6D7E80130F497EEB3DFEEB38FFEB787F9038F03F80D801
E013C03903C01FE0EB800F39FFF03FFFA3201B7F9A23>I<39FFFE07FFA33907F000E0A2EBF801
000314C0A23901FC0380A2EBFE07000014006D5AEB7F0EA2EB3F9CA214FC6D5AA26D5AA213075C
A26D5AA25CA21307003890C7FC127CEAFE0EA25B5BEA7C70EA3FE0EA0F8020277F9A23>I
E /Fp 75 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7B612
80A23907007000B0387FE3FFA21D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701A290C7
FCA6B512E0A2EA0700B0387FC3FEA21720809F19>I<EB3FE013E0EA01C1EA0381EA0700A8B5FC
A2EA0700B0387FE7FEA21720809F19>I<90381F81F89038F04F043901C07C06390380F80FEB00
F05A0270C7FCA6B7FCA23907007007B03A7FE3FE3FF0A22420809F26>I<EA7038EAF87CEAFC7E
A2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7E9F17>34 D<127012F812FCA21274
1204A31208A21210A212201240060E7C9F0D>39 D<132013401380EA0100120212065AA25AA25A
A312701260A312E0AC1260A312701230A37EA27EA27E12027EEA0080134013200B2E7DA112>I<
7E12407E7E7E120C7EA27EA2EA0180A313C01200A313E0AC13C0A312011380A3EA0300A21206A2
5A12085A5A5A5A0B2E7DA112>I<127012F812FCA212741204A31208A21210A212201240060E7C
840D>44 D<EAFFC0A20A027F8A0F>I<127012F8A3127005057C840D>I<1303A213071306A2130E
130CA2131C1318A213381330A213701360A213E013C0A212011380A312031300A25A1206A2120E
120CA2121C1218A212381230A212701260A212E05AA2102D7DA117>I<EA03F0EA0E1C487E487E
A238700380A300F013C0AD00701380A338380700A2EA1C0E6C5AEA03F0121D7E9C17>I<EA0180
1203120F12FF12F31203B3A4EAFFFEA20F1D7C9C17>I<EA07F0EA1FFCEA303FEA600F38400780
00F013C012F81303A2EA200712001480130F1400131E131C5B5B5BEA018048C7FC12024813405A
5A481380EA7FFFB5FCA2121D7E9C17>I<EA07F0EA1FFCEA301EEA780F1480A2EA3807EA000FA2
1400130E5B5BEA03F0EA001C7F130FEB078014C0A2122012F8A21480EAF00F00401300EA381EEA
1FFCEA07F0121D7E9C17>I<1306A2130E131E133E132E134E138E1201EA030E12021204120812
1812101220124012C0B512F0A238000E00A7EBFFE0A2141D7F9C17>I<EA1803EA1FFE5B5B13E0
0010C7FCA6EA11F0EA160CEA1806EA100738000380A214C0A3127012F0A200E01380EA40073860
0F00EA381EEA1FF8EA07E0121D7E9C17>I<137CEA01FEEA0783380E0380EA1C07A23838030000
78C7FC1270A212F0EAF1F0EAF20CEAF406EAF807EB038012F014C0A31270A3003813801307001C
1300EA0E0EEA07FCEA03F0121D7E9C17>I<1240387FFFC0A21480EA40003880010013025B1200
5B5B5BA21360134013C0A212015B1203A41207A66CC7FC121E7D9D17>I<EA03F0EA0FFCEA1C0E
EA3003382001801260A2127000781300EA3E03EA3F06EA1FCCEA0FF0EA03F8487EEA087FEA303F
38200F80386003C0EAC0011300A43860018038700300EA3C0EEA0FFCEA03F0121D7E9C17>I<EA
03F0EA0FF8EA1E1EEA380EEA780700701380EAF003A314C0A3127013071238EA180BEA0C13EA03
E3EA00031480A21307003013001278130EEA701CEA3078EA1FF0EA0FC0121D7E9C17>I<127012
F8A312701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212
781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A2EB
607CEB403CA2EB803E141EEBFFFE487FEB000FA20002EB0780A30006EB03C0120F39FFC03FFEA2
1F1F7F9E22>65 D<B512E014F83807803E141E141FEC0F80A515005C141E5CEBFFF8EB803C8080
1580140715C0A51580140FEC1F00143EB512FC14F01A1F7E9E20>I<90381FC04090387FF0C038
01F81D3803C00738078003380F0001001E1300123E003C1440127CA20078140012F8A71278127C
1540123C123E001E14807E39078001003803C0023801F80C38007FF8EB1FE01A1F7D9E21>I<B5
12E014FC3807803E140FEC0780EC03C015E0140115F01400A215F8A915F0A2140115E0A2EC03C0
EC0780EC0F00143EB512FC14E01D1F7E9E23>I<B6FCA23807800F140380A215801400A21480A2
1500A2138113FFA213811380A21520A214001540A315C0A21401EC0780B6FCA21B1F7E9E1F>I<
B6FCA23807800F140380A215801400A21480A21500A2138113FFA213811380A491C7FCA8EAFFFE
A2191F7E9E1E>I<90380FE02090387FF8603901F80EE03803E0033807800148C7FC001E146012
3E003C1420127CA20078140012F8A6EC7FFC1278007CEB01E0A2123C123E121E7EEA07803803E0
033801F80E39007FFC6090380FE0201E1F7D9E24>I<39FFF8FFF8A23907800F00AC90B5FCA2EB
800FAD39FFF8FFF8A21D1F7E9E22>I<EAFFFCA2EA0780B3A9EAFFFCA20E1F7F9E10>I<380FFFC0
A238003C00B3A3122012F8A3485AEA4070EA30E0EA0F80121F7E9E17>I<EAFFFEA2EA0780B114
02A41406A21404140C141C147CB512FCA2171F7E9E1C>76 D<B46CEB1FF8A200071500D805C013
2FA3D804E0134FA20170138FA3903838010FA3EB1C02A3EB0E04A3EB0708A3EB0390A2EB01E0A3
380E00C03AFFE0C1FFF8A2251F7E9E2A>I<39FF803FF813C00007EB03803905E00100A2EA04F0
1378A2133CA2131E130FA2EB0781A2EB03C1EB01E1A2EB00F1A21479143DA2141FA28080A2000E
7FEAFFE0801D1F7E9E22>I<EB3FC0EBE0703803C03C48487E48487E001EEB0780A248EB03C0A2
007C14E00078130100F814F0A9007814E0007C1303A2003C14C06CEB0780A26CEB0F003807801E
6C6C5A3800F0F0EB3FC01C1F7D9E23>I<B512E014F83807807C141E141F801580A515005C141E
147CEBFFF00180C7FCADEAFFFCA2191F7E9E1F>I<B57E14E0380780F8143C143E141E141FA514
1E5C5C5CEBFF80EB81C0EB80E08014701478A3147CA31504147E143E39FFFC1F18EC07E01E1F7E
9E21>82 D<3807E080EA1FF9EA3C1FEA3007EA7003EAE0011300A36C1300A21278127FEA3FF0EA
1FFC6C7EEA03FF38001F801307EB03C0A213011280A300C01380130300F01300EAFC0EEACFFCEA
83F8121F7D9E19>I<007FB512E0A238780F010060EB006000401420A200C0143000801410A400
001400B23807FFFEA21C1F7E9E21>I<39FFFC3FF8A23907800380EC0100B3A30003130213C000
015B3800E00CEB7838EB3FF0EB0FC01D1F7E9E22>I<39FFF003FEA2390F8000F0156000071440
A26C6C1380A27F0001EB0100A23800F002A3EB7804A2EB7C0CEB3C08A26D5AA36D5AA214E06D5A
A26D5AA36DC7FC1F1F7F9E22>I<3BFFF07FF81FF0A23B0F0007800780EE010015C0D807801402
A2EC0FE02603C0095BA215F02601E0105BA33A00F0207810A3903978403C20A36D486C5AA39039
3F000FC06D5CA2011E1307010E91C7FCA2010C7F010413022C1F7F9E2F>I<397FF83FF8A23907
C007800003EB06003801E004EBF00C00001308EB7810137CEB3C20EB3E40131E6D5AA213076D7E
497E1305EB09F0EB18F8EB1078EB207CEB603CEB401EEB801F00017F90380007804814C0EA0F80
39FFE01FFEA21F1F7F9E22>I<39FFF003FFA2390F8000F0000714407F6C6C138012019038F001
0000005BEBF802EB7C04133CEB3E08131EEB1F10EB0FB0EB07A014C01303ABEB7FFEA2201F7F9E
22>I<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7B9F17>
92 D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA078EEA1E0E1238127800F01310A3131E1278
38386720380F83C014147E9317>I<120E12FEA2120EA9133EEBC380380F01C0EB00E0120E1470
A21478A61470A214E0120F380D01C0380CC300EA083E15207F9F19>I<EA03F8EA0E0CEA1C1E12
38130CEA7000A212F0A61270A2EA3801A2EA1C02EA0E0CEA03F010147E9314>I<EB0380133FA2
1303A9EA03E3EA061BEA1C07EA3803A21270A212F0A61270A212381307121C380E1BF8EA03E315
207E9F19>I<EA03F0EA0E1C487E487EA21270EB038012F0A2B5FC00F0C7FCA31270A26C138012
18380C0100EA0706EA01F811147F9314>I<137C13C6EA018F1203EA07061300A7EAFFF0A2EA07
00B0EA7FF0A21020809F0E>I<3803E1E0380E3A30EA1C1C38380E00EA780FA5EA380E6C5AEA1E
38EA33E00020C7FCA21230A2EA3FFE381FFF806C13C0383001E038600070481330A4006013606C
13C0381C03803803FC00141E7F9317>I<120E12FEA2120EA9133E1343EB8180380F01C0A2120E
AD38FFE7FCA216207F9F19>I<121C123EA3121CC7FCA6120E127EA2120EAFEAFFC0A20A1F809E
0C>I<13E0EA01F0A3EA00E01300A61370EA07F0A212001370B3A21260EAF06013C0EA6180EA3F
000C28829E0E>I<120E12FEA2120EA9EB0FF0A2EB0780EB02005B5B5B1330137013F8EA0F38EA
0E1C131E130E7F1480130314C038FFCFF8A215207F9F18>I<120E12FEA2120EB3A9EAFFE0A20B
20809F0C>I<390E1F01F039FE618618903881C81C390F00F00EA2000E13E0AD3AFFE7FE7FE0A2
23147F9326>I<EA0E3EEAFE43EB8180380F01C0A2120EAD38FFE7FCA216147F9319>I<EA01F8EA
070E381C0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C038038070E00
EA01F814147F9317>I<EA0E3E38FEC38038FF01C0380F00E0120E14F014701478A6147014F014
E0EA0F0114C0380EC300133E90C7FCA7EAFFE0A2151D7F9319>I<3803E080EA0619EA1C05EA3C
07EA38031278127012F0A61270127812381307EA1C0BEA0E13EA03E3EA0003A7EB3FF8A2151D7E
9318>I<EA0E78EAFE8CEAFF1E120F130CEA0E00ADEAFFE0A20F147F9312>I<EA1F90EA3070EA40
30EAC010A3EAE0001278EA7F80EA3FE0EA0FF0EA0070EA80381318A212C0A2EAE030EAD060EA8F
800D147E9312>I<1202A41206A2120EA2EA3FF812FFEA0E00AA1308A5EA06101203EA01E00D1C
7F9B12>I<380E01C0EAFE1FA2EA0E01AD1303120638030DFCEA01F116147F9319>I<38FF83F8A2
381E00E0000E1380A338070100A2EA0382A3EA01C4A213ECEA00E8A21370A3132015147F9318>
I<39FF9FE1FCA2391C0380701560000E1440A214C0D807071380130414E039038861001471EBC8
733801D032143A3800F03CEBE01CA2EB6018EB40081E147F9321>I<387FC3FCA2380701C01480
38038100EA01C2EA00E413EC13781338133C137C134E1387EA010738030380380201C0000E13E0
38FF07FEA21714809318>I<38FF83F8A2381E00E0000E1380A338070100A2EA0382A3EA01C4A2
13ECEA00E8A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA3FFFEA380E
1220131CEA403813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA700613
0EEAFFFE10147F9314>I E /Fq 18 118 df<120FEA3F80EA7FC013E0EAFFF0A213F8A2127FA2
123FEA0F381200A31370A313E0A2120113C0EA0380A2EA0700120E5A5A12100D1D79BB1B>39
D<DB1FFE14600203B500E013E0021FECF801027FECFE03903B01FFFC00FF07010701C0EB1FCF49
90C7EA07FFD91FFC1401D93FF0804948157F4948153F4849151F4890C9120F5A48481607A24848
1603A2485A1801A2127FA24993C7FCA212FFAB127FA27FF001E0123FA36C7EF003C06C7EA26C6C
EE07807E6C6DED0F006C6D5D6D6C153E6D6C5DD91FFC5D6DB4EC03F06D01C0EB0FE0010101FCEB
7F806D6CB6C7FC021F14FC020314E09126001FFEC8FC3B3D7BBB46>67 D<B87E17F817FF18C028
007FF000077F9338007FF8EF1FFC717EEF03FF7113807113C0F07FE0A2F03FF019F8181FA219FC
A2F00FFEA519FFAC19FEA419FC181FA219F8183F19F0187F19E0F0FFC05F4D13804D1300EF1FFE
EF7FF8933807FFF0B912C095C7FC17F81780403B7CBA4A>I<B612FEA426007FF0C9FCB3ADEF07
80A5170F1800A35FA35FA25F5F5E5EEE0FFE167FB8FCA4313B7CBA3A>76
D<B500F00403B512E06E5EA26E5ED8007FF1C000A2D97BFE161EA2D979FF5EA201786D5DA36E6C
5DA26E6C4A5AA26E6C4A5AA36E6C4A5AA26E6C4A5AA26E6C141EA36E6C5CA26E6D5BA26F6C5BA3
6F6C485AA26F6C485AA26F6C485AA26F6C48C7FCA3923803FE1EA26F6C5AA26F13F8A3705AA270
5AA201FC6E5AB500FC4BB612E0A2EE0F80EE0700533B7CBA5C>I<ED7FF8020FB512C0027F14F8
903A01FFE01FFE010790390003FF80D90FFC01007FD91FF0EC3FE0D97FE0EC1FF849486E7E4849
6E7E91C81203488348486F1380000F18C04981001F18E0A24848EE7FF0A3007F18F849163FA400
FF18FCAC007F18F86D167FA3003F18F0A26D16FF001F18E0A26C6C4B13C0A26C6C4B13806C1800
6E5C6C5F6C6D4A5A6D6C4A5AD93FF8EC7FF0D90FFCECFFC06DB401035B01019026E01FFEC7FC6D
6CB512F8020F14C09126007FF8C8FC3E3D7BBB49>79 D<B8FC17F017FC17FF28007FF0000F13C0
040113E09338007FF0EF3FF8EF1FFCA218FE170FA218FFA718FEA2171F18FC18F8173FEF7FF093
3801FFE0040F138091B7120017FC17C002F0C9FCB3A5B612F8A4383B7CBA42>I<B600F8011FB5
1280A426007FF0C8381F800072C7FCB3B3A3013F161EA280011F5EA26D6C5D010716F86E4A5A6D
6C14036D6D495A6D01E0EB1FC0913A3FFC01FF806EB548C8FC020714F8020014E0DB0FFEC9FC41
3C7CBA4A>85 D<EB3FFE48B512E0000714F8390FE007FC9038F001FE486C6C7E6F7E82153F6C48
806C5A6C5AC8FCA491B5FC131F90387FF83F3803FF803807FC00EA0FF0485A123F485AA2485AA4
157F6C7E15DF3A3FE0039FF03B1FF80F0FFFE03807FFFE0001EBF80739003FE0002B267DA52F>
97 D<49B47E010F13F0013F13FC9038FF81FE3A03FE007F80D807F8133F000FEC1FC049EB0FE0
485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F0
6C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA52C
>101 D<161FD907FEEBFF8090263FFFC113C090B538F3C7E03A01FE07FF0F3903F801FC3907F0
00FE000F9138FF07C0484890387F8380EE8000003F81A7001F5DA26C6C49C7FC00075C6C6C485A
3901FE07F848B55AD8073F13C0260607FEC8FC000ECAFCA2120FA27F7F90B512F8EDFF806C15E0
826C816C814881000F81391FC0000F48C8FC48ED7F8000FE153FA5007FED7F00A26C6C14FE6C6C
495AD80FF0EB07F8D807FEEB3FF00001B612C06C6C91C7FC010713F02B397DA630>103
D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108 D<D801FCD97FC0EB0FF800FF9026
03FFF8EB7FFF020F6D48B57E913C1F03FE03E07FC0913C3800FF07001FE0000749028E80000301
C0D97F98130F01FD03F8804A5C01FFC75BA3495DB3A4B5D8F81FB50003B512E0A44B267CA552>
I<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701607F0003497E01FD1580
5C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>I<903801FFC0010F13F8017F13FFD9FF80
7F3A03FE003FE0D807F8EB0FF048486D7EA248486D7E003F81A248486D7EA400FF1680A9007F16
00A36C6C495AA2001F5D6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13
F8010113C029267DA530>I<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FF
C000035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
D<90383FF0703903FFFEF04813FF381FC01F383F0003003E13015A140012FCA27E6C140013C013
FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC07FE0070130100
F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B512C0D8F07F130038C01F
F81F267DA526>I<01FEEC3F8000FFEC3FFFA400071401000380B3A45DA25D120115066C6C4913
C090267F807813FE6DB45A6D5B010313802F267CA536>117 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin

%%EndSetup
%%Page: 1 1
0 bop 0 693 a Fq(COOLMUD)32 b(Programmer's)e(Man)m(ual)p 0
743 1500 17 v 941 791 a Fp(F)l(or)14 b(COOLMUD)i(V)l(ersion)g(2.0)1184
845 y(Septem)o(b)q(er)g(1992)0 2002 y Fo(b)n(y)23 b(Rust)n(y)h(W)-6
b(righ)n(t)24 b(\(ak)l(a)f(\\Gus"\))0 2064 y Fp(\(This)13 b(do)q(cumen)o(t)g
(is)h(hea)o(vily)g(mo)q(di\014ed)g(from)e(the)h(Lam)o(b)q(daMOO)g(man)o(ual)h
(b)o(y)e(P)o(a)o(v)o(el)0 2114 y(Curtis.\))p 0 2150 1500 9
v eop
%%Page: 2 2
1 bop 0 246 a Fp(Cop)o(yrigh)o(t)226 245 y(c)214 246 y Fn(\015)15
b Fp(1992)f(b)o(y)h(Rust)o(y)h(W)l(righ)o(t.)0 1515 y(Copies)23
b(of)e(the)h(electronic)i(source)e(for)g(this)g(do)q(cumen)o(t)h(can)f(b)q(e)
g(obtained)h(using)0 1565 y(anon)o(ymous)11 b(FTP)g(on)h(the)g(In)o(ternet.)
19 b(A)o(t)11 b(the)h(site)g(`)p Fm(ferkel.ucsb.edu)p Fp(')d(the)j(\014les)g
(are)0 1615 y(`)p Fm(pub/mud/CoolMUD/coolmud)o(.*)p Fp(';)17
b(sev)o(eral)i(di\013eren)o(t)f(\014le)i(formats)d(are)i(pro)o(vided,)0
1665 y(including)f(T)l(exinfo,)d(plain)i(text,)d(and)i(P)o(ostscript.)0
1727 y(P)o(ermission)e(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)
o(erbatim)e(copies)h(of)e(this)i(man)o(ual)0 1777 y(pro)o(vided)g(the)e(cop)o
(yrigh)o(t)h(notice)g(and)g(this)g(p)q(ermission)h(notice)g(are)e(preserv)o
(ed)h(on)g(all)0 1827 y(copies.)0 1889 y(P)o(ermission)f(is)g(gran)o(ted)f
(to)f(cop)o(y)i(and)f(distribute)i(mo)q(di\014ed)g(v)o(ersions)e(of)g(this)h
(man)o(ual)0 1939 y(under)h(the)f(conditions)i(for)d(v)o(erbatim)h(cop)o
(ying,)h(pro)o(vided)g(that)f(the)g(en)o(tire)h(resulting)0
1988 y(deriv)o(ed)j(w)o(ork)e(is)i(distributed)h(under)e(the)h(terms)e(of)h
(a)g(p)q(ermission)h(notice)g(iden)o(tical)0 2038 y(to)f(this)g(one.)0
2101 y(P)o(ermission)f(is)f(gran)o(ted)f(to)h(cop)o(y)g(and)g(distribute)h
(translations)f(of)f(this)i(man)o(ual)f(in)o(to)0 2150 y(another)j(language,)
g(under)h(the)g(ab)q(o)o(v)o(e)e(conditions)j(for)e(mo)q(di\014ed)h(v)o
(ersions,)f(except)0 2200 y(that)g(this)g(p)q(ermission)i(notice)f(ma)o(y)e
(b)q(e)i(stated)f(in)h(a)f(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)0
2250 y(author.)p eop
%%Page: 1 3
2 bop 0 -58 a Fp(In)o(tro)q(duction)1229 b(1)0 183 y Fl(In)n(tro)r(duction)62
295 y Fp(COOLMUD)18 b(is)f(a)g(net)o(w)o(ork-accessible,)h(m)o(ulti-user,)h
(programmable,)e(in)o(terac-)0 345 y(tiv)o(e)k(system)f(designed)i(for)e(the)
h(construction)g(of)g(text-based)f(adv)o(en)o(ture)h(games,)0
395 y(conferencing)16 b(systems,)f(and)g(other)g(collab)q(orativ)o(e)h(soft)o
(w)o(are.)62 457 y(P)o(articipan)o(ts)c(\(usually)h(referred)g(to)e(as)h
Fk(pla)o(y)o(ers)r Fp(\))g(connect)g(to)g(COOLMUD)g(using)0
507 y Fm(telnet)k Fp(or)g(some)g(other,)g(more)h(sp)q(ecialized,)i
Fk(clien)o(t)g Fp(program.)k(Up)q(on)17 b(connecting,)0 557
y(they)d(are)f(usually)i(presen)o(ted)e(with)h(a)f Fk(w)o(elcome)h(message)i
Fp(explaining)f(ho)o(w)e(to)g(either)0 607 y(create)19 b(a)f(new)i
Fk(c)o(haracter)h Fp(or)e(connect)g(to)g(an)g(existing)h(one.)31
b(Characters)18 b(are)h(the)0 656 y(em)o(b)q(o)q(dimen)o(t)d(of)f(pla)o(y)o
(ers)g(in)h(the)f(virtual)h(realit)o(y)g(that)e(is)i(COOLMUD.)62
719 y(Ha)o(ving)k(connected)g(to)e(a)h(c)o(haracter,)g(pla)o(y)o(ers)g(then)h
(giv)o(e)f(one-line)i(commands)0 769 y(that)16 b(are)g(parsed)g(and)h(in)o
(terpreted)g(b)o(y)f(COOLMUD)h(as)f(appropriate.)23 b(Suc)o(h)17
b(com-)0 818 y(mands)g(ma)o(y)g(cause)g(c)o(hanges)h(in)g(the)f(virtual)h
(realit)o(y)l(,)g(for)f(example,)h(c)o(hanging)g(the)0 868
y(lo)q(cation)c(of)e(a)g(c)o(haracter,)g(or)h(ma)o(y)f(simply)i(rep)q(ort)e
(something,)h(suc)o(h)g(as)g(the)g(app)q(ear-)0 918 y(ance)j(of)e(some)h(ob)s
(ject.)62 980 y(The)i(job)f(of)g(in)o(terpreting)h(commands)g(is)g(shared)f
(b)q(et)o(w)o(een)h(t)o(w)o(o)e(ma)s(jor)g(comp)q(o-)0 1030
y(nen)o(ts)e(in)h(the)g(COOLMUD)f(system:)19 b(the)13 b Fk(serv)o(er)j
Fp(and)e(the)f Fk(database)p Fp(.)19 b(The)14 b(serv)o(er)e(is)0
1080 y(a)j(program,)e(written)i(in)h(a)f(standard)g(programming)f(language,)h
(that)f(manages)h(the)0 1130 y(net)o(w)o(ork)g(connections,)i(main)o(tains)g
(queues)g(of)f(commands)g(and)g(other)g(tasks)g(to)f(b)q(e)0
1180 y(executed,)j(con)o(trols)f(all)i(access)e(to)g(the)g(database,)g(and)g
(executes)h(other)f(programs)0 1229 y(written)e(in)h(the)e(COOL)i
(programming)e(language.)20 b(The)15 b(database)g(con)o(tains)g(repre-)0
1279 y(sen)o(tations)e(of)g(all)h(ob)s(jects)f(in)h(the)f(virtual)h(realit)o
(y)l(,)g(including)i(the)d(COOL)h(programs)0 1329 y(the)h(serv)o(er)g
(executes)h(to)e(giv)o(e)i(ob)s(jects)e(their)i(sp)q(eci\014c)h(b)q(eha)o
(viors.)62 1391 y(Almost)i(ev)o(ery)f(command)g(is)h(parsed)g(b)o(y)f(the)h
(serv)o(er)f(in)o(to)h(a)f(call)h(on)g(a)f(COOL)0 1441 y Fk(metho)q(d)24
b Fp(that)d(actually)h(do)q(es)g(the)g(w)o(ork.)39 b(Th)o(us,)23
b(programming)e(in)h(the)g(COOL)0 1491 y(language)17 b(is)g(a)f(cen)o(tral)h
(part)f(of)g(making)h(non-trivial)h(extensions)f(to)f(the)h(database)0
1541 y(and)e(th)o(us,)g(the)g(virtual)h(realit)o(y)l(.)62 1603
y(In)g(the)f(next)g(c)o(hapter)g(w)o(e'll)g(go)g(o)o(v)o(er)f(the)h
(structure)f(and)h(con)o(ten)o(ts)g(of)f(a)h(COOL-)0 1653 y(MUD)h(database.)
22 b(The)17 b(follo)o(wing)g(c)o(hapter)f(giv)o(es)h(a)f(complete)h
(description)h(of)d(ho)o(w)0 1703 y(the)f(serv)o(er)g(p)q(erforms)g(its)g
(primary)g(dut)o(y:)19 b(parsing)14 b(the)g(commands)g(t)o(yp)q(ed)h(b)o(y)f
(pla)o(y-)0 1752 y(ers.)26 b(Next,)17 b(w)o(e'll)h(examine)g(the)f(syn)o(tax)
g(and)g(seman)o(tics)h(of)e(the)i(COOL)g(program-)0 1802 y(ming)i(language.)
33 b(Finally)l(,)23 b(w)o(e'll)d(co)o(v)o(er)f(the)h(database)f(con)o(v)o(en)
o(tions)g(assumed)h(b)o(y)0 1852 y(the)15 b(serv)o(er.)90 1914
y Fj(Note:)i Fp(This)11 b(man)o(ual)g(describ)q(es)i(only)e(those)f(asp)q
(ects)h(of)g(COOLMUD)g(that)90 1964 y(are)18 b(en)o(tirely)i(indep)q(enden)o
(t)g(of)e(the)h(con)o(ten)o(ts)f(of)g(the)g(database.)29 b(It)19
b(do)q(es)90 2014 y(not)10 b(describ)q(e,)j(for)d(example,)h(the)g(commands)f
(or)g(programming)g(in)o(terfaces)90 2064 y(presen)o(t)15 b(in)h(the)g
(COOLMUD)f(database.)p eop
%%Page: 2 4
3 bop 0 -58 a Fp(2)776 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)p
eop
%%Page: 3 5
4 bop 0 -58 a Fp(Chapter)15 b(1:)k(The)d(COOLMUD)f(database)719
b(3)0 183 y Fl(1)41 b(The)15 b(COOLMUD)f(database)62 300 y
Fp(In)h(this)g(c)o(hapter)g(w)o(e'll)g(examine)g(in)g(detail)h(the)f(v)m
(arious)g(kinds)g(of)f(data)g(that)g(can)0 350 y(app)q(ear)h(in)g(a)f
(COOLMUD)h(database)f(and)h(that,)e(therefore,)h(COOL)i(programs)d(can)0
400 y(manipulate.)27 b(In)18 b(a)f(few)g(places,)i(w)o(e'll)e(refer)g(to)g
(the)g Fm(boot)g Fp(database.)26 b(This)17 b(is)h(just)0 449
y(one)d(particular)h(COOLMUD)g(database.)0 612 y Fo(1.1)33
b(V)-6 b(alues)62 704 y Fp(There)11 b(are)f(only)g(a)g(few)g(kinds)h(of)f(v)m
(alues)h(that)f(COOL)h(programs)e(can)h(manipulate:)127 781
y Fn(\017)30 b Fp(n)o(um)o(b)q(ers)15 b(\(in)o(tegers)g(in)h(a)f(sp)q
(eci\014c,)i(large)e(range\))127 844 y Fn(\017)30 b Fp(strings)15
b(\(of)g(c)o(haracters\))127 907 y Fn(\017)30 b Fp(ob)s(jects)15
b(\(in)g(the)h(virtual)f(realit)o(y\))127 970 y Fn(\017)30
b Fp(errors)14 b(\(arising)i(during)g(program)e(execution\))127
1034 y Fn(\017)30 b Fp(lists)16 b(\(of)e(all)j(of)d(the)i(ab)q(o)o(v)o(e,)e
(including)k(lists\))62 1097 y(The)e(only)g Fk(n)o(um)o(b)q(ers)h
Fp(that)e(COOL)h(understands)f(are)g(the)h(in)o(tegers)f(from)g
Fn(\000)p Fp(2)p Fm(^)p Fp(31)0 1147 y(\(that)k(is,)h(negativ)o(e)g(t)o(w)o
(o)e(to)h(the)h(p)q(o)o(w)o(er)f(of)g(31\))g(up)h(to)f(2)p
Fm(^)p Fp(31)f Fn(\000)i Fp(1)f(\(one)h(less)g(than)0 1196
y(t)o(w)o(o)d(to)h(the)h(p)q(o)o(w)o(er)f(of)g(31\);)g(that's)g(from)g
Fn(\000)p Fp(2147483648)e(to)h(2147483647,)g(enough)0 1246
y(for)i(most)g(purp)q(oses.)34 b(In)21 b(COOL)g(programs,)e(n)o(um)o(b)q(ers)
h(are)g(written)f(just)h(as)f(y)o(ou)0 1296 y(see)i(them)f(here,)i(an)e
(optional)h(min)o(us)h(sign)e(follo)o(w)o(ed)h(b)o(y)g(a)f(sequence)h(of)f
(decimal)0 1346 y(digits.)33 b(In)20 b(particular,)g(y)o(ou)f(ma)o(y)g(not)g
(put)g(commas,)g(p)q(erio)q(ds,)j(or)c(spaces)i(in)g(the)0
1396 y(middle)j(of)e(large)g(n)o(um)o(b)q(ers,)i(as)e(w)o(e)f(sometimes)i(do)
f(in)h(natural)f(languages)h(\(e.g.,)0 1446 y(`2,147,483,6)o(47')o(\).)62
1509 y(Character)15 b Fk(strings)j Fp(are)d(arbitrarily-long)i(sequences)g
(of)e(normal,)h(ASCI)q(I)g(prin)o(t-)0 1559 y(ing)e(c)o(haracters.)19
b(When)13 b(written)h(as)f(v)m(alues)i(in)f(a)f(program,)g(strings)g(are)g
(enclosed)i(in)0 1608 y(double-quotes,)h(lik)o(e)g(this:)90
1672 y Fm("This)23 b(is)h(a)f(character)g(string.")0 1735 y
Fp(T)l(o)18 b(include)k(a)c(double-quote)i(in)g(the)e(string,)i(precede)f(it)
g(with)g(a)g(bac)o(kslash)g(\(`)p Fm(\\)p Fp('\),)0 1785 y(lik)o(e)d(this:)90
1848 y Fm("His)23 b(name)h(was)f(\\"Leroy\\",)g(but)g(nobody)g(ever)g(called)
g(him)h(that.")0 1911 y Fp(Finally)l(,)17 b(to)d(include)k(a)d(bac)o(kslash)g
(in)h(a)f(string,)g(double)h(it:)90 1974 y Fm("Some)23 b(people)g(use)h
(backslash)e(\('\\\\'\))h(to)h(mean)f(set)h(difference.")0
2037 y Fp(COOL)13 b(strings)f(ma)o(y)f(not)h(include)j(sp)q(ecial)f(ASCI)q(I)
f(c)o(haracters)e(lik)o(e)i(carriage-return,)0 2087 y(line-feed,)k(b)q(ell,)g
(etc.)62 2150 y Fk(Ob)s(jects)g Fp(are)d(the)g(bac)o(kb)q(one)h(of)f(the)h
(COOL)g(database)f(and,)h(as)f(suc)o(h,)h(deserv)o(e)f(a)0
2200 y(great)i(deal)h(of)f(discussion;)j(the)e(next)f(section)h(is)h(dev)o
(oted)e(to)g(them.)24 b(Ev)o(ery)17 b(ob)s(ject)0 2250 y(has)g(a)f(n)o(um)o
(b)q(er,)h(unique)h(to)f(that)f(ob)s(ject.)23 b(In)18 b(programs,)d(w)o(e)i
(write)g(a)f(reference)i(to)p eop
%%Page: 4 6
5 bop 0 -58 a Fp(4)776 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y(a)i(ob)s(ject)h(b)o(y)f(putting)h(a)g(hash)g(mark)f(\(`)p
Fm(#)p Fp('\))f(follo)o(w)o(ed)i(b)o(y)f(the)h(ob)s(ject's)f(n)o(um)o(b)q
(er,)h(lik)o(e)0 233 y(this:)90 301 y Fm(#495)0 368 y Fp(There)f(is)h(one)f
(sp)q(ecial)i(ob)s(ject)e(n)o(um)o(b)q(er)h(used)f(for)g(an)g(error)g(v)m
(alue;)h Fm(#-1)p Fp(.)62 436 y(COOLMUD)i(allo)o(ws)f(serv)o(ers)g(to)f(in)o
(terconnect,)i(and)f(for)g(ob)s(jects)f(to)h(mo)o(v)o(e)f(b)q(e-)0
485 y(t)o(w)o(een)j(serv)o(ers.)34 b(A)19 b Fk(visitor)24 b
Fp(ob)s(ject)19 b(is)h(sp)q(eci\014ed)i(just)e(lik)o(e)h(a)e(lo)q(cal)i(ob)s
(ject)e(and)h(is)0 535 y(app)q(ended)d(with)e(an)g(amp)q(ersand)h(`)p
Fm(@)p Fp(')e(and)i(the)f(name)g(of)g(the)g(remote)g(serv)o(er:)90
603 y Fm(#23@east)90 653 y(#13@unlucky)62 720 y Fk(Errors)24
b Fp(are,)f(b)o(y)g(far,)g(the)f(least)h(frequen)o(tly)g(used)g(v)m(alues)h
(in)f(COOL.)g(In)g(the)0 770 y(normal)18 b(case,)h(when)g(a)f(program)f
(attempts)h(an)g(op)q(eration)h(that)e(is)i(erroneous)g(for)0
820 y(some)g(reason)f(\(for)h(example,)h(trying)f(to)g(add)g(a)g(n)o(um)o(b)q
(er)g(to)g(a)f(c)o(haracter)h(string\),)0 870 y(the)i(serv)o(er)f(stops)g
(running)i(the)f(program)f(and)h(prin)o(ts)g(an)f(error)h(message.)36
b(It)20 b(is)0 919 y(p)q(ossible)12 b(for)e(a)g(program)f(to)h(stipulate)h
(that)f(suc)o(h)g(errors)g(should)h(not)f(stop)g(execution;)0
969 y(instead,)i(the)f(serv)o(er)f(should)i(just)f(let)g(the)g(v)m(alue)h(of)
f(the)g(op)q(eration)g(b)q(e)g(an)g(error)f(v)m(alue.)0 1019
y(The)17 b(program)e(can)i(then)g(test)f(for)g(suc)o(h)g(a)h(result)g(and)f
(tak)o(e)g(appropriate)h(reco)o(v)o(ery)0 1069 y(action.)22
b(In)17 b(programs,)e(error)g(v)m(alues)i(are)f(written)g(as)g(w)o(ords)f(b)q
(eginning)j(with)e(`)p Fm(E_)p Fp('.)0 1119 y(The)e(complete)h(list)g(of)e
(error)h(v)m(alues,)h(along)f(with)g(their)g(asso)q(ciated)h(messages,)e(is)h
(as)0 1168 y(follo)o(ws:)90 1236 y Fm(E_DIV)166 b Fp(Division)17
b(b)o(y)e(zero)90 1286 y Fm(E_FOR)166 b Fp(F)l(or)15 b(v)m(ariable)i(not)d(a)
h(list)90 1336 y Fm(E_INTERNAL)46 b Fp(In)o(ternal)16 b(error)90
1385 y Fm(E_INVIND)94 b Fp(In)o(v)m(alid)18 b(indirection)90
1435 y Fm(E_MAXREC)94 b Fp(Maxim)o(um)15 b(recursion)h(exceeded)90
1485 y Fm(E_MESSAGE)70 b Fp(Message)15 b(unparseable)90 1535
y Fm(E_METHODNF)46 b Fp(Metho)q(d)16 b(not)e(found)90 1585
y Fm(E_NONE)142 b Fp(No)15 b(error)90 1635 y Fm(E_OBJNF)118
b Fp(Ob)s(ject)16 b(not)e(found)90 1684 y Fm(E_PERM)142 b Fp(P)o(ermission)16
b(denied)90 1734 y Fm(E_RANGE)118 b Fp(Range)16 b(error)90
1784 y Fm(E_SERVERDN)46 b Fp(Serv)o(er)16 b(do)o(wn)90 1834
y Fm(E_SERVERNF)46 b Fp(Serv)o(er)16 b(not)e(found)90 1884
y Fm(E_STACKOVR)46 b Fp(Stac)o(k)15 b(o)o(v)o(er\015o)o(w)90
1933 y Fm(E_STACKUND)46 b Fp(Stac)o(k)15 b(under\015o)o(w)90
1983 y Fm(E_TIMEOUT)70 b Fp(Timed)16 b(out)90 2033 y Fm(E_TYPE)142
b Fp(T)o(yp)q(e)16 b(mismatc)o(h)90 2083 y Fm(E_VARNF)118 b
Fp(V)l(ariable)17 b(not)e(found)62 2150 y(The)f(\014nal)h(kind)g(of)e(v)m
(alue)i(in)g(COOL)g(programs)d(is)j Fk(lists)p Fp(.)20 b(A)14
b(list)g(is)h(a)e(sequence)i(of)0 2200 y(arbitrary)e(COOL)h(v)m(alues,)h(p)q
(ossibly)g(including)h(other)d(lists.)21 b(In)14 b(programs,)e(lists)i(are)0
2250 y(written)g(with)h(eac)o(h)f(of)f(the)i(elemen)o(ts)f(in)h(order,)f
(separated)g(b)o(y)g(commas,)f(the)h(whole)p eop
%%Page: 5 7
6 bop 0 -58 a Fp(Chapter)15 b(1:)k(The)d(COOLMUD)f(database)719
b(5)0 183 y(enclosed)15 b(in)f(curly)g(braces)f(\(`)p Fm({)p
Fp(')f(and)i(`)p Fm(})p Fp('\).)k(F)l(or)12 b(example,)i(a)f(list)i(of)d(the)
i(names)f(of)g(the)0 233 y(da)o(ys)i(of)g(the)g(w)o(eek)g(is)h(written:)90
297 y Fm({"Sunday",)22 b("Monday",)h("Tuesday",)g("Wednesday",)114
347 y("Thursday",)f("Friday",)h("Saturday"})0 411 y Fp(Note)18
b(that)g(it)h(do)q(esn't)f(matter)f(that)h(w)o(e)g(put)h(a)f(line-break)j(in)
e(the)g(middle)h(of)e(the)0 460 y(list.)j(This)15 b(is)h(true)f(in)h(general)
f(in)h(COOL:)g(an)o(ywhere)f(that)f(a)h(space)g(can)g(go,)f(a)h(line-)0
510 y(break)d(can)h(go,)f(with)g(the)h(same)f(meaning.)20 b(The)12
b(only)h(exception)h(is)e(inside)j(c)o(haracter)0 560 y(strings,)g(where)g
(line-breaks)i(are)e(not)g(allo)o(w)o(ed.)0 729 y Fo(1.2)33
b(Ob)t(jects)62 822 y Fp(Ob)s(jects)16 b(are,)e(in)i(a)f(sense,)h(the)f
(whole)h(p)q(oin)o(t)g(of)f(the)g(COOL)i(programming)d(lan-)0
872 y(guage.)19 b(They)12 b(are)h(used)g(to)f(represen)o(t)g(ob)s(jects)g(in)
h(the)g(virtual)g(realit)o(y;)h(for)d(example,)0 921 y(pla)o(y)o(ers,)k(ro)q
(oms,)f(exits,)h(and)g(other)g(concrete)h(things.)62 985 y(Num)o(b)q(ers)h
(alw)o(a)o(ys)f(exist,)i(in)f(a)g(sense;)h(y)o(ou)e(ha)o(v)o(e)g(only)i(to)e
(write)h(them)g(do)o(wn)f(in)0 1035 y(order)k(to)g(op)q(erate)g(on)h(them.)36
b(With)20 b(ob)s(jects)g(it)h(is)g(di\013eren)o(t.)36 b(The)21
b(ob)s(ject)f(with)0 1085 y(n)o(um)o(b)q(er)d(`)p Fm(#958)p
Fp(')e(do)q(es)j(not)e(exist)h(just)f(b)q(ecause)i(y)o(ou)f(write)f(do)o(wn)h
(its)g(n)o(um)o(b)q(er.)25 b(An)0 1135 y(explicit)15 b(op)q(eration,)f(the)f
Fm(clone\(\))g Fp(function)h(describ)q(ed)h(later,)e(is)h(required)h(to)d
(bring)0 1184 y(an)g(ob)s(ject)f(in)o(to)h(existence.)20 b(Symmetrically)l(,)
14 b(once)e(created,)g(an)g(ob)s(ject)f(con)o(tin)o(ues)i(to)0
1234 y(exist)i(un)o(til)h(is)f(explicitly)i(destro)o(y)o(ed)e(b)o(y)f(the)h
Fm(destroy\(\))e Fp(function)j(\(also)e(describ)q(ed)0 1284
y(later\).)62 1348 y(The)d(iden)o(tifying)i(n)o(um)o(b)q(er)d(asso)q(ciated)h
(with)g(an)g(ob)s(ject)f(is)h(unique)h(to)e(that)g(ob)s(ject.)0
1398 y(It)j(is)g(assigned)h(when)f(the)g(ob)s(ject)f(is)i(created)f(and)g
(will)h(nev)o(er)f(b)q(e)h(reused,)f(ev)o(en)h(if)f(the)0 1448
y(ob)s(ject)k(is)h(destro)o(y)o(ed.)26 b(F)l(or)17 b(example,)i(if)f(w)o(e)f
(create)g(an)h(ob)s(ject)f(and)h(it)f(is)h(assigned)0 1497
y(the)f(n)o(um)o(b)q(er)g(`)p Fm(#1076)p Fp(',)e(the)i(next)g(ob)s(ject)f
(created)h(will)h(b)q(e)g(assigned)f(`)p Fm(#1077)p Fp(',)f(ev)o(en)0
1547 y(if)g(`)p Fm(#1076)p Fp(')d(w)o(as)i(destro)o(y)o(ed)f(in)i(the)g(mean)
o(time.)62 1611 y(Ev)o(ery)f(ob)s(ject)h(is)g(made)f(of)g(four)h(pieces)h
(that)d(together)h(de\014ne)i(its)f(b)q(eha)o(vior;)g(its)0
1661 y Fk(paren)o(ts)p Fp(,)e Fk(v)m(ariables)p Fp(,)i Fk(metho)q(ds)p
Fp(,)f(and)h Fk(v)o(erbs)p Fp(.)0 1808 y Fi(1.2.1)30 b(P)n(aren)n(ts)62
1901 y Fp(Except)19 b(for)g(the)f(ro)q(ot)g(ob)s(ject)h(\(`)p
Fm(#1)p Fp('\))e(all)j(ob)s(jects)e(ha)o(v)o(e)g(one)h(or)f(more)h(paren)o
(ts.)0 1951 y(COOLMUD)d(has)f(m)o(ultiple)i(inheritance,)g(so)e(an)h(ob)s
(ject)f(can)g(ha)o(v)o(e)g(more)g(than)h(one)0 2001 y(\\parallel")i(paren)o
(t.)24 b(When)18 b(an)e(ob)s(ject)h(is)g(created,)g(it)g(is)h(cloned)g(from)e
(some)g(other)0 2051 y(ob)s(ject.)23 b(The)16 b(c)o(hild)i(ob)s(ject)e
(inherits)h(all)h(of)d(the)i(metho)q(ds)f(and)h(v)m(ariables)g(from)f(the)0
2101 y(paren)o(ts)d(of)g(the)g(ob)s(ject)f(it)i(w)o(as)e(cloned)j(from.)j
(The)c(ob)s(ject)e(it)i(w)o(as)e(cloned)i(from)f(isn't)0 2150
y(its)19 b(paren)o(t,)g(but)g(it)g(has)g(the)g(same)f(paren)o(ts)g(as)h(that)
f(ob)s(ject.)30 b(After)18 b(an)h(ob)s(ject)f(is)0 2200 y(cloned)h(it)e(can)h
(ha)o(v)o(e)f(its)g(paren)o(ts)g(c)o(hanged)h(b)o(y)f(either)h(reprogramming)
f(the)g(en)o(tire)0 2250 y(ob)s(ject)e(or)f(b)o(y)h(calling)i(the)f(built-in)
h Fm(chparents\(\))d Fp(function.)p eop
%%Page: 6 8
7 bop 0 -58 a Fp(6)776 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)62
183 y(The)22 b(paren)o(t/c)o(hild)h(hierarc)o(h)o(y)f(is)h(used)f(for)f
(classifying)i(ob)s(jects)f(in)o(to)f(general)0 233 y(classes)16
b(and)f(then)h(sharing)f(b)q(eha)o(vior)h(among)f(all)h(mem)o(b)q(ers)f(of)g
(that)g(class.)20 b(F)l(or)15 b(ex-)0 283 y(ample,)f(the)e
Fm(boot)h Fp(database)f(con)o(tains)h(an)f(ob)s(ject)h(represen)o(ting)g(a)f
(sort)g(of)h(\\generic")0 333 y(ro)q(om.)19 b(All)e(other)e(ro)q(oms)f(are)h
Fk(descendan)o(ts)i Fp(\(i.e.,)e(c)o(hildren)i(or)e(c)o(hildren's)h(c)o
(hildren,)0 382 y(or)h(...\))24 b(of)16 b(that)h(one.)25 b(The)18
b(generic)g(ro)q(om)e(de\014nes)i(those)f(pieces)h(of)f(b)q(eha)o(vior)h
(that)0 432 y(are)13 b(common)f(to)h(all)h(ro)q(oms;)e(other)h(ma)o(y)f(ro)q
(oms)g(sp)q(ecialize)k(that)d(b)q(eha)o(vior)g(for)f(their)0
482 y(o)o(wn)17 b(purp)q(oses.)28 b(The)18 b(notion)g(of)f(classes)h(and)g
(sp)q(ecialization)i(is)e(the)g(v)o(ery)f(essence)0 532 y(of)e(what)f(is)i
(mean)o(t)f(b)o(y)g Fk(ob)s(ject-orien)o(ted)i Fp(programming.)0
679 y Fi(1.2.2)30 b(Ob)s(ject)15 b(v)m(ariables)62 771 y Fp(An)h(ob)s(ject)e
Fk(v)m(ariable)19 b Fp(is)d(a)e(named)i(\\slot")e(in)i(an)f(ob)s(ject)f(that)
g(can)i(hold)f(an)g(arbi-)0 821 y(trary)f(COOL)h(v)m(alue.)21
b(An)15 b(ob)s(ject)f(can)h(ha)o(v)o(e)g(an)o(y)f(n)o(um)o(b)q(er)h(of)f(v)m
(ariables,)i(and)f(whic)o(h)0 871 y(are)g(declared)h(to)f(b)q(e)h(of)e(a)h
(certain)h(t)o(yp)q(e.)62 935 y(Ob)s(jects)j(app)q(ear)f(to)g(ha)o(v)o(e)f(v)
m(ariables)j(corresp)q(onding)f(to)f(ev)o(ery)g(v)m(ariable)i(in)f(its)0
985 y(paren)o(ts')g(ob)s(jects.)35 b(T)l(o)20 b(use)h(the)f(jargon)g(of)g(ob)
s(ject-orien)o(ted)g(programming,)h(this)0 1034 y(is)e(a)f(kind)i(of)e
Fk(inheritance)p Fp(.)31 b(If)19 b(some)f(paren)o(t)h(ob)s(ject)f(has)g(a)g
(v)m(ariable)i(named)f Fm(foo)p Fp(,)0 1084 y(then)e(it)g(app)q(ears)f(that)g
(all)i(of)e(its)h(c)o(hildren)h(and)f(th)o(us)f(its)h(c)o(hildren's)h(c)o
(hildren,)h(and)0 1134 y(so)h(on)g(ha)o(v)o(e)f(that)g(v)m(ariable.)36
b(W)l(e)20 b(sa)o(y)f(it)i(\\app)q(ears")e(to)h(ha)o(v)o(e)f(all)i(of)f(its)g
(paren)o(ts')0 1184 y(v)m(ariables)e(b)q(ecause)f(y)o(ou)g(don't)f(ha)o(v)o
(e)g(to)g(declare)h(an)o(y)g(v)m(ariables)h(on)e(a)g(c)o(hild)j(ob)s(ject)0
1234 y(that)14 b(are)h(on)g(its)g(paren)o(ts;)f(when)i(y)o(ou)e(ask)h(for)f
(the)h(v)m(alue)i(of)d(an)o(y)h(of)f(these)i(v)m(ariables)0
1283 y(the)h(COOLMUD)h(serv)o(er)f(\014nds)h(the)f(v)m(ariable)i(on)e(the)g
(nearest)g(paren)o(t)g(ob)s(ject)g(and)0 1333 y(returns)k(its)f(v)m(alue.)38
b(But)21 b(when)g(an)g(ob)s(ject)f(c)o(hanges)h(the)f(v)m(alue)i(of)f(one)f
(of)h(these)0 1383 y(v)m(ariables,)14 b(the)e(ob)s(ject)g(then)g(gets)g(its)h
(o)o(wn)e(p)q(ermanen)o(t)i(cop)o(y)f(of)g(the)g(v)m(ariable,)i(whic)o(h)0
1433 y(is)i(then)f(c)o(hanged.)20 b(This)c(b)q(eha)o(vior)g(is)g(t)o
(ypically)g(referred)g(to)e(as)h(\\cop)o(y-on-write.")62 1497
y(An)f(ob)s(ject)e(ma)o(y)g(also)h(ha)o(v)o(e)g(a)g(new)g(v)m(ariable)h
(de\014ned)h(only)e(on)g(itself)h(\(and)f(its)g(de-)0 1547
y(scendan)o(ts\).)19 b(F)l(or)13 b(example,)h(an)f(ob)s(ject)g(represen)o
(ting)h(a)f(ro)q(c)o(k)g(migh)o(t)g(ha)o(v)o(e)g(v)m(ariables)0
1596 y(indicating)22 b(its)e(w)o(eigh)o(t,)g(c)o(hemical)h(comp)q(osition,)h
(and/or)d(p)q(oin)o(tiness,)j(dep)q(ending)0 1646 y(up)q(on)16
b(ho)o(w)f(the)g(ro)q(c)o(k)g(is)g(used)h(in)g(the)g(virtual)f(realit)o(y)l
(.)62 1710 y(V)l(ariables)e(on)e(ob)s(jects)g(can)h(only)g(b)q(e)g(read)f(or)
g(mo)q(di\014ed)i(when)f(there)g(are)f(metho)q(ds)0 1760 y(that)22
b(pro)o(vide)h(suc)o(h)g(access)g(to)f(the)h(v)m(ariables.)43
b(F)l(or)22 b(example,)j(there)e(are)f(often)0 1810 y(metho)q(ds)15
b(on)g(ob)s(jects)g(that)g(pro)o(vide)g(simple)i(\\read")e(access)g(for)f(v)m
(ariables:)90 1873 y Fm(method)23 b(name)185 1923 y(return)g(name;)90
1973 y(endmethod)62 2037 y Fp(F)l(or)18 b(mo)q(difying)i(v)m(ariables,)g
(metho)q(ds)f(t)o(ypically)h(implemen)o(t)f(some)g(p)q(ermission)0
2087 y(c)o(hec)o(k)c(to)g(see)h(if)f(the)g(v)m(ariable)i(can)e(b)q(e)h(mo)q
(di\014ed)h(b)o(y)e(the)g Fk(caller)s Fp(:)90 2150 y Fm(method)23
b(set_name)185 2200 y(if)h(\(!\(caller)f(in)g(owners\)\))281
2250 y(raise\(E_PERM\);)p eop
%%Page: 7 9
8 bop 0 -58 a Fp(Chapter)15 b(1:)k(The)d(COOLMUD)f(database)719
b(7)185 183 y Fm(endif)185 233 y(name)24 b(=)f(args[1];)90
283 y(endmethod)g(/*)g(set_name)g(*/)62 346 y Fp(In)d(the)f(ab)q(o)o(v)o(e)g
(example)g(the)g(c)o(hec)o(k)h(is)f(quite)h(simple.)33 b(Since)20
b(metho)q(ds)f(imple-)0 396 y(men)o(t)h(the)g(p)q(ermission)i(sc)o(heme,)f
(access)g(is)f(completely)i(con)o(trolled)f(b)o(y)f(them.)35
b(It)0 446 y(is)16 b(imp)q(ortan)o(t)g(to)f(note)h(that)f(the)h(COOLMUD)g
(serv)o(er)g(pro)o(vides)g(no)g(\\o)o(v)o(erride")f(on)0 495
y(v)m(ariable)g(access;)e(ev)o(en)h(the)f(wizards)g(can)h(b)q(e)g(excluded)h
(access)e(to)g(a)g(v)m(ariable,)h(whic)o(h)0 545 y(the)h(ab)q(o)o(v)o(e)g
(piece)i(of)d(co)q(de)i(is)g(an)f(example)h(of.)0 685 y Fi(1.2.3)30
b(Metho)r(ds)62 777 y Fp(The)12 b(other)e(piece)j(making)e(up)h(an)f(ob)s
(ject)f(is)i(its)f Fk(metho)q(ds)p Fp(.)19 b(A)11 b(metho)q(d)g(is)h(a)f
(named)0 827 y(COOL)21 b(program)d(that)i(is)g(asso)q(ciated)g(with)g(a)g
(particular)g(ob)s(ject.)33 b(Metho)q(ds)20 b(are)0 877 y(also)14
b(used)h(to)e(implemen)o(t)i(commands)f(that)f(a)h(pla)o(y)o(er)g(migh)o(t)g
(t)o(yp)q(e;)g(for)f(example,)i(in)0 926 y(the)h Fm(boot)f
Fp(database,)f(there)i(is)g(a)f(metho)q(d)h(on)f(all)i(ob)s(jects)e(represen)
o(ting)h(con)o(tainers)0 976 y(that)i(implemen)o(ts)j(commands)d(of)h(the)g
(form)f(`put)h Fk(ob)s(ject)h Fp(in)g Fk(con)o(tainer)s Fp('.)31
b(COOL)0 1026 y(metho)q(ds)20 b(can)h(also)f(in)o(v)o(ok)o(e)g(metho)q(ds)h
(de\014ned)g(on)f(ob)s(jects.)35 b(Some)20 b(metho)q(ds)g(are)0
1076 y(designed)e(to)e(b)q(e)h(used)h(only)f(from)f(within)i(COOL)f(co)q(de;)
h(they)f(do)f(not)h(corresp)q(ond)0 1126 y(to)f(an)o(y)f(particular)i(pla)o
(y)o(er)g(command)f(at)f(all.)24 b(Th)o(us,)16 b(metho)q(ds)h(in)g(COOL)g
(are)f(lik)o(e)0 1175 y(the)f(`pro)q(cedures')h(or)e(`functions')h(found)h
(in)g(other)f(programming)f(languages.)0 1315 y Fi(Metho)r(d)h(v)m(ariables)
62 1407 y Fp(Metho)q(ds)e(can)g(ha)o(v)o(e)f(their)h(o)o(wn)f(v)m(ariables.)
20 b(They)13 b(are)g(un)o(t)o(yp)q(ed)g(and)g(are)f(lo)q(cal)i(to)0
1457 y(the)i(metho)q(d;)h(when)f(the)g(metho)q(d)h(\014nishes)g(running,)g
(its)g(v)m(ariables)g(cease)f(to)g(exist.)0 1507 y(Metho)q(d)f(v)m(ariables)i
(are)e(declared)h(with)g(the)f Fm(var)g Fp(declaration.)0 1647
y Fi(1.2.4)30 b(V)-5 b(erbs)62 1739 y Fp(In)15 b(order)e(for)h(an)f(ob)s
(ject's)g(metho)q(d)h(to)g(b)q(e)g(used)h(as)e(a)h(command)f(b)o(y)h(pla)o(y)
o(ers,)g(the)0 1788 y(metho)q(d)j(m)o(ust)e(b)q(e)j(\\b)q(ound")e(to)g(a)g
Fk(v)o(erb)p Fp(.)24 b(If)16 b(a)h(metho)q(d)f(is)h(not)f(b)q(ound)h(to)f(a)g
(v)o(erb)h(it)0 1838 y(can't)c(b)q(e)i(accessed)f(b)o(y)f(pla)o(y)o(ers,)h
(only)g(b)o(y)g(COOL)h(co)q(de.)20 b(In)14 b(a)f(later)h(section)g(w)o(e'll)h
(go)0 1888 y(o)o(v)o(er)f(ho)o(w)h(to)g(bind)h(a)f(metho)q(d)g(to)g(a)g(v)o
(erb.)62 1951 y(When)d(a)f(metho)q(d)h(is)f(run)h(as)f(a)g(v)o(erb,)h(an)o(y)
f(w)o(ords)f(follo)o(wing)i(the)g(v)o(erb)f(are)g(giv)o(en)h(to)0
2001 y(the)h(metho)q(d)f(as)g(argumen)o(ts.)19 b(F)l(or)11
b(example,)j(if)f(ob)s(ject)f Fm(xyz)g Fp(has)g(a)h Fm(look)f
Fp(v)o(erb)g(b)q(ound)0 2051 y(to)h(the)g Fm(look_verb)f Fp(metho)q(d,)h(and)
h(a)f(pla)o(y)o(er)g(t)o(yp)q(es)g(`)p Fm(look)h(at)h(xyz)g(with)g(glass)p
Fp(')d(the)0 2101 y Fm(look_verb)18 b Fp(metho)q(d)h(on)g(the)f
Fm(xyz)h Fp(ob)s(ject)f(will)j(b)q(e)e(run)g(with)h(the)f(argumen)o(ts)f
Fm(at)p Fp(,)0 2150 y Fm(xyz)p Fp(,)e Fm(with)p Fp(,)g(and)g
Fm(glass)p Fp(.)23 b(If)17 b(there)g(is)g(another)f(ob)s(ject)f(in)j(the)e
(ro)q(om)g(or)g(carried)h(b)o(y)0 2200 y(the)c(pla)o(y)o(er,)f(named)h
Fm(glass)p Fp(,)f(with)h(a)f(a)g Fm(look)g Fp(v)o(erb,)h(it)f(ma)o(y)g(also)h
(b)q(e)g(called,)h(and)f(with)0 2250 y(the)g(same)g(argumen)o(ts.)18
b(Since)d(ev)o(ery)e(ob)s(ject)g(in)h(the)f(ro)q(om)f(or)h(carried)h(b)o(y)f
(the)g(pla)o(y)o(er)p eop
%%Page: 8 10
9 bop 0 -58 a Fp(8)776 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y(with)k(a)f Fm(look)g Fp(v)o(erb)g(ma)o(y)g(get)g(called,)i(eac)o(h)e
(ob)s(ject)g(m)o(ust)g(c)o(hec)o(k)h(the)f(argumen)o(ts)g(to)0
233 y(see)j(if)g(they)g(w)o(ere)f(the)h(one)g(the)g Fm(look)f
Fp(w)o(as)f(mean)o(t)i(for.)29 b(When)19 b(an)g(ob)s(ject's)f
Fm(look)0 283 y Fp(v)o(erb)f(determines)i(that)d(it's)h(the)h(ob)s(ject)f
(that)f(matc)o(hes,)h(it)h(returns)f Fm(0)g Fp(as)g(its)h(v)m(alue)0
333 y(to)c(tell)h(the)g(serv)o(er)f(that)f(no)i(further)f Fm(look)g
Fp(v)o(erbs)g(on)g(the)h(other)f(ob)s(jects)f(need)j(to)d(b)q(e)0
382 y(called.)62 445 y(An)e(ob)s(ject's)f Fm(verb)h Fp(binding)h(can)f(sp)q
(ecify)i(di\013eren)o(t)e(w)o(ords)f(to)g(in)o(v)o(ok)o(e)h(the)g(metho)q(d)0
495 y(the)18 b(v)o(erbs)h(are)f(b)q(ound)h(to.)28 b(F)l(or)18
b(example,)i(the)e(w)o(ords)f Fm(poke)h Fp(and)h Fm(prod)e
Fp(can)i(b)q(oth)0 544 y(b)q(e)d(v)o(erbs)f(b)q(ound)i(to)e(the)g
Fm(poke_verb)f Fp(metho)q(d.)21 b(Then)16 b(a)f(pla)o(y)o(er)g(could)i(t)o
(yp)q(e)e(either)0 594 y(`)p Fm(poke)f(xyz)p Fp(')h(or)f(`)p
Fm(prod)h(xyz)p Fp('.)62 656 y(V)l(erb)g(bindings)h(can)f(also)f(b)q(e)h(set)
f(up)h(so)f(that)g(in)h(addition)g(to)f(the)g(v)o(erb,)g(another)0
706 y(w)o(ord)h(m)o(ust)g(b)q(e)h(t)o(yp)q(ed)h(as)e(part)g(of)g(the)h
(command.)21 b(T)o(ypically)c(the)f(second)g(w)o(ord)f(is)0
756 y(a)g(prep)q(osition;)i(for)e(example,)h(`)p Fm(with)p
Fp(',)e(`)p Fm(in)p Fp(',)g(`)p Fm(to)p Fp(',)g(`)p Fm(from)p
Fp(',)g(and)i(so)f(on.)21 b(This)16 b(allo)o(ws)0 806 y(y)o(ou)f(to)f(set)h
(up)h(commands)f(lik)o(e)h(`)p Fm(put)f(money)f(in)h(jar)p
Fp(')f(and)i(`)p Fm(rub)e(lamp)h(with)f(rag)p Fp('.)p eop
%%Page: 9 11
10 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)549
b(9)0 183 y Fl(2)41 b(The)15 b(COOL)g(programming)h(language)62
302 y Fp(The)c(COOL)g(programming)e(language)h(is)h(a)f(relativ)o(ely)h
(small)g(and)f(simple)h(ob)s(ject-)0 351 y(orien)o(ted)k(language)f(designed)
i(to)d(b)q(e)i(easy)f(to)g(learn)g(for)g(most)f(non-programmers.)62
415 y(Ha)o(ving)22 b(giv)o(en)g(y)o(ou)g(enough)g(con)o(text)f(to)h(allo)o(w)
g(y)o(ou)f(to)g(understand)i(exactly)0 465 y(what)16 b(COOL)i(co)q(de)g(is)f
(doing,)g(w)o(e'll)h(see)f(what)f(COOL)i(co)q(de)f(lo)q(oks)g(lik)o(e)h(and)g
(what)0 515 y(it)g(means.)27 b(W)l(e'll)18 b(b)q(egin)h(with)f(the)g(syn)o
(tax)f(and)h(seman)o(tics)f(of)h(expressions,)g(those)0 564
y(pieces)13 b(of)e(co)q(de)h(that)f(ha)o(v)o(e)g(v)m(alues.)20
b(After)11 b(that,)g(w)o(e'll)h(go)f(o)o(v)o(er)g(statemen)o(ts,)f(the)i
(next)0 614 y(lev)o(el)18 b(of)e(structure)h(up)g(from)f(expressions.)25
b(Next,)17 b(w)o(e'll)g(discuss)h(the)f(concept)g(of)f(a)0
664 y(task,)i(the)h(kind)g(of)f(running)i(pro)q(cess)f(initiated)h(b)o(y)e
(pla)o(y)o(ers)h(en)o(tering)g(commands,)0 714 y(among)13 b(other)h(causes.)
20 b(Finally)l(,)15 b(w)o(e'll)g(go)e(o)o(v)o(er)h(the)g(built-in)i
(functions)f(a)o(v)m(ailable)h(to)0 764 y(COOL)g(co)q(de)g(and)f(describ)q(e)
i(what)e(they)g(do.)0 929 y Fo(2.1)33 b(Commen)n(ts)62 1021
y Fp(Y)l(ou)16 b(can)f(include)i(bits)f(of)f(text)f(in)i(y)o(our)f(COOL)h
(program)e(that)g(are)h(ignored)h(b)o(y)0 1071 y(the)h(serv)o(er.)26
b(The)17 b(idea)h(is)g(to)e(allo)o(w)i(y)o(ou)e(to)h(put)g(in)h(notes)f(to)g
(y)o(ourself)g(and)g(others)0 1121 y(ab)q(out)d(what)f(the)h(co)q(de)h(is)f
(doing.)20 b(T)l(o)13 b(add)i(a)e(commen)o(t)g(y)o(ou)h(use)g(a)g(c)o
(haracter)f(string)0 1171 y(literal)h(as)f(a)g(statemen)o(t.)18
b(F)l(or)13 b(example,)h(the)f(sen)o(tence)h(ab)q(out)f(p)q(ean)o(ut)h
(butter)f(in)h(the)0 1221 y(follo)o(wing)g(co)q(de)f(is)h(essen)o(tially)h
(ignored)e(during)h(execution)g(but)g(will)g(b)q(e)g(main)o(tained)0
1270 y(in)i(the)f(database:)90 1334 y Fm(for)23 b(x)h(in)g(\(#0.players\))138
1384 y("Grendel)e(eats)i(peanut)f(butter!";)138 1433 y(player:tell\(x.name,)e
(")j(\(",)f(x,)h("\)"\);)90 1483 y(endfor)0 1644 y Fo(2.2)33
b(Expressions)62 1737 y Fp(Expressions)23 b(are)g(those)f(pieces)i(of)e(COOL)
h(co)q(de)g(that)f(generate)h(v)m(alues;)k(for)0 1787 y(example,)16
b(the)f(COOL)h(co)q(de)90 1850 y Fm(3)24 b(+)f(4)0 1914 y Fp(is)18
b(an)f(expression)h(that)f(generates)g(\(or)g(\\has")f(or)h(\\returns"\))g
(the)g(v)m(alue)i(7.)26 b(There)0 1963 y(are)15 b(man)o(y)g(kinds)h(of)f
(expressions)h(in)g(COOL,)f(all)h(of)f(them)g(discussed)i(b)q(elo)o(w.)0
2108 y Fi(2.2.1)30 b(Errors)62 2200 y Fp(Most)22 b(kinds)h(of)f(expressions)h
(can)f(b)q(e)h(used)g(improp)q(erly)h(in)f(some)f(w)o(a)o(y)l(.)41
b(F)l(or)0 2250 y(example,)16 b(the)f(expression)p eop
%%Page: 10 12
11 bop 0 -58 a Fp(10)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)90
183 y Fm(3)24 b(/)f(0)0 258 y Fp(is)15 b(improp)q(er)g(b)q(ecause)g(it)f
(tries)h(to)e(divide)j(b)o(y)e(zero.)20 b(In)15 b(suc)o(h)f(cases,)g(COOL)h
(\\raises")0 308 y(an)i(error)e(v)m(alue)j(\()p Fm(E_DIV)e
Fp(in)h(this)g(example\),)g(whic)o(h)h(causes)e(the)h(metho)q(d's)f(co)q(de)i
(to)0 358 y(b)q(e)e(ab)q(orted)f(and)g(a)g(message)g(to)f(b)q(e)i(prin)o(ted)
g(on)f(the)h(pla)o(y)o(er's)f(screen.)0 490 y Fi(2.2.2)30 b(Literals)62
582 y Fp(The)13 b(simplest)h(kind)g(of)e(expression)h(is)h(a)e(literal)i
(COOL)f(v)m(alue,)h(just)f(as)f(describ)q(ed)0 631 y(in)i(the)f(section)g(on)
g(v)m(alues)i(at)d(the)h(b)q(eginning)i(of)e(this)g(do)q(cumen)o(t.)20
b(F)l(or)12 b(example,)i(the)0 681 y(follo)o(wing)i(are)f(all)h(expressions:)
90 743 y Fm(17)90 793 y(#893)90 843 y("This)23 b(is)h(a)f(character)g
(string.")90 893 y(E_TYPE)90 943 y({"This",)g("is",)g("a",)g("list",)g("of",)
g("words"})62 1005 y Fp(Note)12 b(that)g(the)h(list)g(expression)h(con)o
(tains)e(other)g(expressions,)i(sev)o(eral)f(c)o(haracter)0
1055 y(strings)j(in)h(this)f(case.)23 b(In)17 b(general,)f(those)g
(expressions)h(can)f(b)q(e)g(of)g(an)o(y)g(kind)h(at)e(all,)0
1105 y(not)g(necessarily)h(literal)h(v)m(alues.)k(F)l(or)14
b(example,)90 1167 y Fm({3)24 b(+)f(4,)h(3)g(-)f(4,)h(3)g(*)f(4})0
1229 y Fp(is)16 b(an)f(expression)h(whose)f(v)m(alue)h(is)g(the)f(list)h(`)p
Fm({7,)f(-1,)g(12})p Fp('.)62 1291 y(COOL)23 b(also)f(has)f(some)h(constan)o
(ts,)g(whic)o(h)h(are)e(returned)h(b)o(y)g(the)g Fm(typeof\(\))0
1341 y Fp(built-in)c(function:)90 1404 y Fm(NUM)214 b(OBJ)239
b(STR)90 1453 y(LIST)190 b(ERR)62 1516 y Fp(Their)16 b(meanings)g(are)f(as)g
(follo)o(ws:)0 1578 y Fm(NUM)168 b Fp(a)15 b(n)o(um)o(b)q(er,)g(the)g(t)o(yp)
q(e)h(co)q(de)f(for)g(n)o(um)o(b)q(ers)0 1640 y Fm(LIST)144
b Fp(a)15 b(n)o(um)o(b)q(er,)g(the)g(t)o(yp)q(e)h(co)q(de)f(for)g(lists)0
1702 y Fm(STR)168 b Fp(a)15 b(n)o(um)o(b)q(er,)g(the)g(t)o(yp)q(e)h(co)q(de)f
(for)g(strings)0 1765 y Fm(OBJ)168 b Fp(a)15 b(n)o(um)o(b)q(er,)g(the)g(t)o
(yp)q(e)h(co)q(de)f(for)g(ob)s(jects)0 1827 y Fm(ERR)168 b
Fp(a)15 b(n)o(um)o(b)q(er,)g(the)g(t)o(yp)q(e)h(co)q(de)f(for)g(error)f(v)m
(alues)0 1959 y Fi(2.2.3)30 b(V)-5 b(ariables)62 2051 y Fp(As)15
b(discussed)i(earlier,)f(it)f(is)h(p)q(ossible)g(to)f(store)f(v)m(alues)j(in)
f(v)m(ariables)g(on)f(ob)s(jects;)0 2101 y(the)21 b(v)m(ariables)g(will)i(k)o
(eep)e(those)f(v)m(alues)h(forev)o(er,)g(or)f(un)o(til)i(another)e(v)m(alue)i
(is)f(put)0 2150 y(there.)j(It's)17 b(often)f(useful)i(to)e(ha)o(v)o(e)g(a)h
(place)g(to)f(put)h(a)g(v)m(alue)g(for)g(just)f(the)h(duration)0
2200 y(of)g(the)g(execution)h(of)e(a)h(metho)q(d;)h(COOL)g(pro)o(vides)f
(metho)q(d)h(\(lo)q(cal\))f(v)m(ariables)i(for)0 2250 y(this)d(purp)q(ose.)p
eop
%%Page: 11 13
12 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(11)62 183 y(Metho)q(d)18 b(v)m(ariables)h(are)e(named)h(places)g(to)f(hold)
i(v)m(alues;)g(y)o(ou)f(can)f(get)g(and)h(set)0 233 y(the)h(v)m(alue)i(in)f
(a)f(giv)o(en)h(metho)q(d)f(v)m(ariable)i(as)e(man)o(y)f(times)i(as)f(y)o(ou)
g(lik)o(e.)33 b(Metho)q(d)0 283 y(v)m(ariables)20 b(are)e(temp)q(orary)l(,)g
(though;)h(they)f(only)h(last)f(while)i(a)e(particular)h(metho)q(d)0
333 y(is)g(running;)i(after)d(it)h(\014nishes,)i(all)e(of)f(the)h(metho)q(d)g
(v)m(ariables)h(cease)f(to)f(exist)h(and)0 382 y(the)f(v)m(alues)h(are)e
(forgotten.)26 b(The)18 b(metho)q(d)g(v)m(ariables)h(set)f(in)g(one)g(metho)q
(d)g(are)f(not)0 432 y(visible)g(to)d(the)h(co)q(de)g(of)f(other)g(metho)q
(ds.)20 b(When)15 b(a)g(metho)q(d)g(b)q(egins)g(executing,)h(the)0
482 y(metho)q(d)f(v)m(ariables)i(are)e(initialized)j(to)d(0.)62
549 y(The)21 b(name)f(for)g(ob)s(ject)f(and)i(metho)q(d)f(v)m(ariables)i(is)e
(made)h(up)f(of)g(letters,)h(dig-)0 599 y(its,)c(and)h(the)f(underscore)h(c)o
(haracter)e(\(`)p Fm(_)p Fp('\))g(and)h(cannot)g(b)q(egin)i(with)e(a)g
(digit.)27 b(The)0 649 y(follo)o(wing)16 b(are)f(all)h(v)m(alid)h(v)m
(ariable)f(names:)90 716 y Fm(foo)90 766 y(_foo)90 815 y(this2that)90
865 y(M68000)90 915 y(two_words)90 965 y(This_is_a_very_long_multiw)o
(ord_var)o(iable_na)o(me)62 1032 y Fp(Note)i(that,)f(along)h(with)h(almost)e
(ev)o(erything)h(else)h(in)g(COOL,)f(the)g(case)g(of)g(the)0
1082 y(letters)f(in)i(v)m(ariable)f(names)g(is)g(insigni\014can)o(t.)28
b(F)l(or)17 b(example,)h(these)g(are)f(all)h(names)0 1131 y(for)d(the)g(same)
g(v)m(ariable:)90 1199 y Fm(fubar)90 1248 y(Fubar)90 1298 y(FUBAR)90
1348 y(fUbAr)62 1415 y Fp(A)d(v)m(ariable)h(name)e(is)h(itself)h(an)e
(expression;)i(it's)f(v)m(alue)h(is)f(the)f(v)m(alue)i(of)e(the)h(named)0
1465 y(v)m(ariable.)62 1532 y(T)l(o)j(c)o(hange)g(the)h(v)m(alue)g(stored)f
(in)h(a)f(v)m(ariable,)h(use)g(an)f Fk(assignmen)o(t)h Fp(statemen)o(t:)90
1599 y Fk(v)m(ariable)28 b Fm(=)c Fk(expression)62 1666 y Fp(F)l(or)15
b(example,)h(to)e(c)o(hange)h(the)h(v)m(ariable)g(named)g(`)p
Fm(x)p Fp(')e(to)h(ha)o(v)o(e)f(the)i(v)m(alue)g(17,)e(y)o(ou)0
1716 y(w)o(ould)h(write)g(`)p Fm(x)f(=)h(17;)p Fp('.)k(An)c(assignmen)o(t)f
(statemen)o(t)g(c)o(hanges)g(the)h(v)m(alue)h(of)e(of)g(the)0
1765 y(named)h(v)m(ariable.)62 1832 y(COOL)h(also)g(has)f(some)f
(prede\014ned)j(pseudo-v)m(ariables,)g(they)e(are)g(read-only:)90
1900 y Fm(player)142 b(this)215 b(caller)90 1949 y(args)62
2016 y Fp(Their)16 b(v)m(alues)g(are)f(as)g(follo)o(ws:)0 2083
y Fm(player)96 b Fp(an)16 b(ob)s(ject,)f(the)h(pla)o(y)o(er)g(who)g(t)o(yp)q
(ed)g(the)g(command)g(that)g(started)f(the)240 2133 y(task)f(that)h(in)o(v)o
(olv)o(ed)h(running)g(this)g(piece)h(of)d(co)q(de.)0 2200 y
Fm(this)144 b Fp(an)21 b(ob)s(ject,)g(the)f(ob)s(ject)g(on)h(whic)o(h)h(the)e
(curren)o(tly-running)j(metho)q(d)240 2250 y(w)o(as)14 b(found.)p
eop
%%Page: 12 14
13 bop 0 -58 a Fp(12)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y Fm(caller)96 b Fp(an)25 b(ob)s(ject,)i(the)e(ob)s(ject)g(on)g(whic)o(h)
i(the)e(metho)q(d)g(that)g(called)i(the)240 233 y(curren)o(tly-running)12
b(metho)q(d)f(w)o(as)f(found.)18 b(F)l(or)10 b(the)h(\014rst)f(metho)q(d)g
(called)240 283 y(for)15 b(a)f(giv)o(en)i(command,)f Fm(caller)f
Fp(has)h(the)h(same)e(v)m(alue)j(as)e Fm(player)p Fp(.)0 349
y Fm(args)144 b Fp(usually)18 b(a)f(list,)g(the)g(argumen)o(ts)f(giv)o(en)h
(to)g(this)g(metho)q(d.)25 b(The)17 b Fm(parse)240 399 y Fp(metho)q(d)c(on)g
(the)f(pla)o(y)o(er)h(ob)s(ject)f(gets)h(the)f(en)o(tire)i(command)e(line)j
(t)o(yp)q(ed)240 448 y(b)o(y)h(the)h(pla)o(y)o(er,)f(it)g(hands)h(it)g(o\013)
e(to)h Fm(call_verb)p Fp(,)f(whic)o(h)i(splits)g(it)g(in)o(to)240
498 y(w)o(ords,)e(whic)o(h)h(is)g(passed)g(as)f(a)h(list)g(of)f(w)o(ords)g
(to)g(a)g(metho)q(d)h(b)q(ound)h(to)240 548 y(the)e(v)o(erb.)0
714 y Fi(2.2.4)30 b(Arithmetic)62 809 y Fp(All)22 b(of)d(the)i(usual)g
(simple)g(op)q(erations)f(on)h(n)o(um)o(b)q(ers)f(are)g(a)o(v)m(ailable)i(to)
d(COOL)0 859 y(programs:)90 925 y Fm(+)95 b(-)h(*)f(/)g(\045)62
991 y Fp(These)19 b(are,)f(in)i(order,)e(addition,)i(subtraction,)f(m)o
(ultiplication,)i(division,)g(and)0 1041 y(remainder.)k(In)17
b(the)f(follo)o(wing)i(table,)e(the)h(expressions)g(on)g(the)g(left)f(ha)o(v)
o(e)h(the)f(cor-)0 1091 y(resp)q(onding)g(v)m(alues)h(on)e(the)g(righ)o(t:)90
1157 y Fm(5)24 b(+)f(2)330 1154 y Fn(\))424 1157 y Fm(7)90
1207 y(5)h(-)f(2)330 1204 y Fn(\))424 1207 y Fm(3)90 1256 y(5)h(*)f(2)330
1253 y Fn(\))424 1256 y Fm(10)90 1306 y(5)h(/)f(2)330 1303
y Fn(\))424 1306 y Fm(2)90 1356 y(5)h(\045)f(2)330 1353 y Fn(\))424
1356 y Fm(1)90 1406 y(5)h(\045)f(-2)330 1403 y Fn(\))424 1406
y Fm(1)90 1456 y(-5)h(\045)f(2)330 1453 y Fn(\))424 1456 y
Fm(-1)90 1505 y(-5)h(\045)f(-2)330 1502 y Fn(\))424 1505 y
Fm(-1)90 1555 y(-\(5)g(+)h(2\))330 1552 y Fn(\))424 1555 y
Fm(-7)62 1621 y Fp(Note)c(that)g(division)i(in)f(COOL)g(thro)o(ws)f(a)o(w)o
(a)o(y)e(the)j(remainder)g(and)f(that)g(the)0 1671 y(result)h(of)f(the)h
(remainder)h(op)q(erator)e(\(`)p Fm(\045)p Fp('\))f(has)h(the)h(same)g(sign)g
(as)f(the)h(left-hand)0 1721 y(op)q(erand.)33 b(Also,)21 b(note)e(that)g(`)p
Fm(-)p Fp(')g(can)h(b)q(e)g(used)g(without)g(a)f(left-hand)i(op)q(erand)f(to)
0 1771 y(negate)15 b(a)g(n)o(umeric)h(expression.)62 1837 y(The)f(`)p
Fm(+)p Fp(')f(op)q(erator)f(can)i(also)g(b)q(e)g(used)g(to)f(app)q(end)i(t)o
(w)o(o)d(strings.)19 b(The)c(expression)90 1903 y Fm("foo")23
b(+)h("bar")0 1969 y Fp(has)15 b(the)g(v)m(alue)90 2035 y Fm("foobar")62
2101 y Fp(Unless)h(b)q(oth)f(op)q(erands)g(to)f(an)h(arithmetic)g(op)q
(erator)f(are)g(n)o(um)o(b)q(ers)i(\(or,)d(for)h(`)p Fm(+)p
Fp(',)0 2150 y(b)q(oth)f(strings\),)g(the)g(error)g(v)m(alue)h
Fm(E_TYPE)e Fp(is)i(raised.)20 b(If)13 b(the)g(righ)o(t-hand)h(op)q(erand)g
(for)0 2200 y(the)g(division)i(or)d(remainder)h(op)q(erators)f(\(`)p
Fm(/)p Fp(')f(or)i(`)p Fm(\045)p Fp('\))e(is)i(zero,)g(the)g(error)f(v)m
(alue)i Fm(E_DIV)0 2250 y Fp(is)h(raised.)p eop
%%Page: 13 15
14 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(13)0 183 y Fi(2.2.5)30 b(Comparing)15 b(v)m(alues)62 275
y Fp(An)o(y)k(t)o(w)o(o)e(v)m(alues)i(can)g(b)q(e)g(compared)f(for)g(equalit)
o(y)h(using)g(`)p Fm(==)p Fp(')f(and)g(`)p Fm(!=)p Fp('.)29
b(The)0 324 y(\014rst)12 b(of)f(these)i(returns)f(1)g(if)g(the)g(t)o(w)o(o)f
(v)m(alues)i(are)f(equal)h(and)f(0)g(otherwise;)h(the)f(second)0
374 y(do)q(es)k(the)f(rev)o(erse:)90 436 y Fm(3)24 b(==)f(4)950
433 y Fn(\))1045 436 y Fm(0)90 486 y(3)h(!=)f(4)950 483 y Fn(\))1045
486 y Fm(1)90 536 y("foo")g(==)h("Foo")950 533 y Fn(\))1045
536 y Fm(1)90 586 y(#34)f(!=)h(#34)950 583 y Fn(\))1045 586
y Fm(0)90 636 y({1,)f(#34,)h("foo"})f(==)g({1,)h(#34,)f("FoO"})950
633 y Fn(\))1045 636 y Fm(1)90 686 y(E_DIV)g(==)h(E_TYPE)950
683 y Fn(\))1045 686 y Fm(0)90 735 y(3)g(!=)f("foo")950 732
y Fn(\))1045 735 y Fm(1)0 798 y Fp(Note)17 b(that)f(comparison)h(of)f
(strings)h(is)g(case-insensitiv)o(e;)j(that)c(is,)h(it)g(do)q(es)h(not)e
(dis-)0 847 y(tinguish)g(b)q(et)o(w)o(een)g(the)f(upp)q(er-)h(and)f(lo)o(w)o
(er-case)g(v)o(ersion)g(of)g(letters.)20 b(T)l(o)14 b(p)q(erform)h(a)0
897 y(case-sensitiv)o(e)i(comparison,)d(use)i(the)f Fm(strcmp)g
Fp(function)h(describ)q(ed)h(later.)62 959 y(Num)o(b)q(ers,)c(ob)s(ject)f(n)o
(um)o(b)q(ers,)h(strings,)g(and)f(error)g(v)m(alues)i(can)e(also)h(b)q(e)g
(compared)0 1009 y(for)i(ordering)g(purp)q(oses)h(using)g(the)f(follo)o(wing)
h(op)q(erators:)90 1072 y Fm(<)167 b(<=)143 b(>=)g(>)0 1134
y Fp(meaning)23 b(\\less)f(than,")h(\\less)f(than)g(or)f(equal,")j(\\greater)
d(than)h(or)f(equal,")j(and)0 1184 y(\\greater)14 b(than,")h(resp)q(ectiv)o
(ely)l(.)24 b(As)15 b(with)h(the)g(equalit)o(y)g(op)q(erators,)f(these)h
(return)f(1)0 1233 y(when)h(their)f(op)q(erands)h(are)f(in)h(the)f
(appropriate)g(relation)h(and)g(0)e(otherwise:)90 1296 y Fm(3)24
b(<)f(4)473 1293 y Fn(\))567 1296 y Fm(1)90 1346 y(#34)g(>=)h(#32)473
1343 y Fn(\))567 1346 y Fm(1)90 1395 y("foo")f(<=)h("Boo")473
1392 y Fn(\))567 1395 y Fm(0)0 1458 y Fp(Note)j(that,)i(as)e(with)h(the)g
(equalit)o(y)g(op)q(erators,)h(strings)e(are)g(compared)h(case-)0
1507 y(insensitiv)o(ely)l(.)45 b(If)24 b(the)e(op)q(erands)i(to)e(these)h
(four)f(comparison)h(op)q(erators)f(are)g(of)0 1557 y(di\013eren)o(t)15
b(t)o(yp)q(es,)g(or)g(if)h(they)f(are)g(lists,)g(then)h Fm(E_TYPE)e
Fp(is)i(raised.)0 1687 y Fi(2.2.6)30 b(Conditional)15 b(expressions)62
1779 y Fp(There)f(is)h(a)f(notion)g(in)h(COOL)g(of)e Fk(true)k
Fp(and)d Fk(false)j Fp(v)m(alues;)e(ev)o(ery)f(v)m(alue)h(is)f(one)g(or)0
1829 y(the)h(other.)20 b(The)15 b(true)g(v)m(alues)i(are)e(as)f(follo)o(ws:)
37 1891 y Fn(\017)30 b Fp(all)16 b(n)o(um)o(b)q(ers)g(other)e(than)h(zero)37
1952 y Fn(\017)30 b Fp(all)16 b(non-empt)o(y)f(strings)h(\(i.e.,)e(other)h
(than)g(`)p Fm("")p Fp('\))37 2014 y Fn(\017)30 b Fp(all)16
b(non-empt)o(y)f(lists)h(\(i.e.,)f(other)g(than)g(`)p Fm({})p
Fp('\))37 2076 y Fn(\017)30 b Fp(all)17 b(non-negativ)o(e)f(ob)s(ject)g(n)o
(um)o(b)q(ers.)23 b(\(Note)15 b(that)g(a)h(negativ)o(e)g(ob)s(ject)g(n)o(um)o
(b)q(er)90 2125 y(do)q(esn't)f(necessarily)i(mean)e(that)f(suc)o(h)i(an)f(ob)
s(ject)g(exists.\))0 2188 y(All)h(other)f(v)m(alues)i(are)e(false:)37
2250 y Fn(\017)30 b Fp(zero)p eop
%%Page: 14 16
15 bop 0 -58 a Fp(14)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)37
183 y Fn(\017)30 b Fp(the)15 b(empt)o(y)g(string)g(\(`)p Fm("")p
Fp('\))37 259 y Fn(\017)30 b Fp(the)15 b(empt)o(y)g(list)h(\(`)p
Fm({})p Fp('\))37 336 y Fn(\017)30 b Fp(all)16 b(p)q(ositiv)o(e)g(ob)s(ject)f
(n)o(um)o(b)q(ers)37 412 y Fn(\017)30 b Fp(all)16 b(error)f(v)m(alues)62
488 y(There)22 b(are)f(four)g(kinds)h(of)f(expressions)h(and)g(t)o(w)o(o)e
(kinds)i(of)f(statemen)o(ts)g(that)0 538 y(dep)q(end)h(up)q(on)g(this)f
(classi\014cation)h(of)f(COOL)h(v)m(alues.)37 b(In)22 b(describing)g(them,)g
(w)o(e)0 588 y(sometimes)e(refer)g(to)g(the)g Fk(truth)g(v)m(alue)k
Fp(of)19 b(a)h(COOL)h(v)m(alue;)j(this)c(is)h(just)f Fk(true)i
Fp(or)0 638 y Fk(false)p Fp(,)15 b(the)g(category)g(in)o(to)g(whic)o(h)h
(that)e(COOL)i(v)m(alue)h(is)f(classi\014ed.)62 714 y(T)l(o)f(negate)g(the)g
(truth)g(v)m(alue)i(of)d(a)h(COOL)h(v)m(alue,)g(use)g(the)f(`)p
Fm(!)p Fp(')g(op)q(erator:)90 790 y Fm(!)24 b Fk(expression)62
866 y Fp(If)16 b(the)f(v)m(alue)h(of)f Fk(expression)h Fp(is)g(true,)f(`)p
Fm(!)p Fp(')f(returns)h(0;)g(otherwise,)g(it)g(returns)g(1:)90
943 y Fm(!)24 b("foo")377 940 y Fn(\))472 943 y Fm(0)90 992
y(!)g(\(3)f(>=)h(4\))377 989 y Fn(\))472 992 y Fm(1)0 1069
y Fp(The)15 b(negation)h(op)q(erator)e(is)i(usually)g(read)g(as)e(\\not.")62
1145 y(It)j(is)h(frequen)o(tly)g(useful)g(to)e(test)h(more)f(than)h(one)g
(condition)i(to)d(see)h(if)h(some)e(or)0 1195 y(all)g(of)f(them)g(are)g
(true.)20 b(COOL)c(pro)o(vides)f(t)o(w)o(o)f(op)q(erators)h(for)f(this:)90
1271 y Fk(expression-1)28 b Fm(&&)c Fk(expression-2)90 1321
y(expression-1)k Fm(||)c Fk(expression-2)0 1397 y Fp(These)16
b(op)q(erators)e(are)h(usually)h(read)f(as)g(\\and")g(and)g(\\or,")f(resp)q
(ectiv)o(ely)l(.)62 1473 y(The)j(`)p Fm(&&)p Fp(')e(op)q(erator)g(\014rst)h
(ev)m(aluates)g Fk(expression-1)p Fp(.)24 b(If)16 b(it)g(returns)g(a)g(true)g
(v)m(alue,)0 1523 y(then)j Fk(expression-2)j Fp(is)d(ev)m(aluated)h(and)e
(its)h(v)m(alue)h(b)q(ecomes)f(the)f(v)m(alue)i(of)e(the)g(`)p
Fm(&&)p Fp(')0 1573 y(expression)i(as)f(a)h(whole;)h(otherwise,)g(the)e(v)m
(alue)i(of)e Fk(expression-1)24 b Fp(is)c(used)g(as)f(the)0
1623 y(v)m(alue)k(of)e(the)h(`)p Fm(&&)p Fp(')e(expression.)40
b(Note)22 b(that)e Fk(expression-2)26 b Fp(is)d(only)f(ev)m(aluated)g(if)0
1673 y Fk(expression-1)e Fp(returns)15 b(a)g(true)g(v)m(alue.)62
1749 y(The)i(`)p Fm(||)p Fp(')f(op)q(erator)f(w)o(orks)h(similarly)l(,)j
(except)e(that)f Fk(expression-2)21 b Fp(is)c(ev)m(aluated)0
1799 y(only)f(if)f Fk(expression-1)20 b Fp(returns)15 b(a)g(false)g(v)m
(alue.)62 1875 y(These)h(t)o(w)o(o)e(op)q(erators)g(b)q(eha)o(v)o(e)h(v)o
(ery)g(m)o(uc)o(h)h(lik)o(e)g(\\and")f(and)g(\\or")f(in)i(English:)90
1951 y Fm(1)24 b(&&)f(1)664 1948 y Fn(\))758 1951 y Fm(1)90
2001 y(0)h(&&)f(1)664 1998 y Fn(\))758 2001 y Fm(0)90 2051
y(0)h(&&)f(0)664 2048 y Fn(\))758 2051 y Fm(0)90 2101 y(1)h(||)f(1)664
2098 y Fn(\))758 2101 y Fm(1)90 2150 y(0)h(||)f(1)664 2147
y Fn(\))758 2150 y Fm(1)90 2200 y(0)h(||)f(0)664 2197 y Fn(\))758
2200 y Fm(0)90 2250 y(17)h(<=)f(23)48 b(&&)f(23)24 b(<=)f(27)664
2247 y Fn(\))758 2250 y Fm(1)p eop
%%Page: 15 17
16 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(15)0 183 y Fi(2.2.7)30 b(Lists)15 b(and)g(strings)62 277
y Fp(As)h(w)o(as)g(men)o(tioned)h(earlier,)g(lists)g(can)f(b)q(e)h
(constructed)g(b)o(y)f(writing)h(a)e(comma-)0 327 y(separated)g(sequence)h
(of)f(expressions)h(inside)h(curly)f(braces:)90 391 y Fm({)p
Fk(expression-1)p Fm(,)24 b Fk(expression-2)p Fm(,)h Fh(:)8
b(:)g(:)n Fm(,)24 b Fk(expression-N)5 b Fm(})0 456 y Fp(The)17
b(resulting)i(list)e(has)g(the)h(v)m(alue)g(of)f Fk(expression-1)k
Fp(as)c(its)g(\014rst)g(elemen)o(t,)h(that)e(of)0 506 y Fk(expression-2)k
Fp(as)14 b(the)i(second,)f(etc.)90 570 y Fm({3)24 b(<)f(4,)h(3)g(<=)f(4,)h(3)
g(>=)f(4,)h(3)f(>)h(4})855 567 y Fn(\))949 570 y Fm({1,)g(1,)f(0,)h(0})62
635 y Fp(Both)15 b(strings)f(and)h(lists)g(can)g(b)q(e)g(seen)h(as)e(ordered)
h(sequences)g(of)g(COOL)g(v)m(alues.)0 685 y(In)21 b(the)f(case)g(of)g
(strings,)h(eac)o(h)f(is)h(a)f(sequence)h(of)f(single-c)o(haracter)h
(strings;)h(that)0 735 y(is,)16 b(one)g(can)g(view)h(the)f(string)f(`)p
Fm("bar")p Fp(')g(as)g(a)h(sequence)h(of)e(the)h(strings)g(`)p
Fm("b")p Fp(',)f(`)p Fm("a")p Fp(',)0 784 y(and)h(`)p Fm("r")p
Fp('.)j(COOL)d(allo)o(ws)g(y)o(ou)f(to)g(refer)g(to)g(the)h(elemen)o(ts)g(of)
f(lists)h(and)g(strings)f(b)o(y)0 834 y(n)o(um)o(b)q(er,)g(the)g
Fk(index)k Fp(of)c(that)f(elemen)o(t)i(in)g(the)f(list)g(or)g(string.)20
b(The)15 b(\014rst)f(elemen)o(t)i(in)0 884 y(a)f(list)h(or)f(string)g(has)g
(index)h(1,)f(the)g(second)h(has)f(index)h(2,)f(and)g(so)g(on.)0
1038 y Fi(Extracting)h(an)f(Elemen)n(t)g(from)g(a)g(List)g(or)g(String)62
1132 y Fp(The)e(indexing)i(expression)f(in)f(COOL)h(extracts)e(a)g(sp)q
(eci\014ed)j(elemen)o(t)f(from)e(a)g(list)0 1181 y(or)j(string:)90
1246 y Fk(expression-1)t Fm([)p Fk(expression-2)t Fm(])62 1311
y Fp(First,)22 b Fk(expression-1)k Fp(is)c(ev)m(aluated;)j(it)c(m)o(ust)g
(return)g(a)g(list)h(or)f(a)g(string)g(\(the)0 1360 y Fk(sequence)s
Fp(\).)h(Then,)17 b Fk(expression-2)j Fp(is)c(ev)m(aluated)h(and)f(m)o(ust)g
(return)f(a)h(n)o(um)o(b)q(er)g(\(the)0 1410 y Fk(index)s Fp(\).)k(If)14
b(either)g(of)f(the)h(expressions)g(returns)f(some)h(other)f(t)o(yp)q(e)g(of)
g(v)m(alue,)i Fm(E_TYPE)0 1460 y Fp(is)21 b(raised.)36 b(The)21
b(index)h(m)o(ust)e(b)q(e)h(b)q(et)o(w)o(een)g(1)f(and)h(the)f(length)h(of)g
(the)f(sequence,)0 1510 y(inclusiv)o(e;)25 b(if)d(it)f(is)g(not,)g(then)g
Fm(E_RANGE)f Fp(is)h(raised.)37 b(The)21 b(v)m(alue)h(of)e(the)h(indexing)0
1560 y(expression)16 b(is)g(the)f(index'th)h(elemen)o(t)g(in)g(the)f
(sequence.)90 1624 y Fm("fob"[2])568 1621 y Fn(\))663 1624
y Fm("o")90 1674 y("fob"[1])568 1671 y Fn(\))663 1674 y Fm("f")90
1724 y({#12,)23 b(#23,)g(#34}[3])568 1721 y Fn(\))663 1724
y Fm(#34)0 1788 y Fp(Note)15 b(that)h(there)f(are)h(no)g(legal)g(indices)i
(for)d(the)h(empt)o(y)g(string)f(or)h(list,)g(since)h(there)0
1838 y(are)e(no)g(n)o(um)o(b)q(ers)g(b)q(et)o(w)o(een)h(1)f(and)g(0)g(\(the)g
(length)h(of)f(the)g(empt)o(y)g(string)g(or)g(list\).)0 1992
y Fi(Extracting)h(a)f(subsequence)h(of)f(a)g(list)g(or)g(string)62
2086 y Fp(The)c(range)f(expression)h(extracts)e(a)h(sp)q(eci\014ed)j
(subsequence)f(from)d(a)h(list)i(or)d(string:)90 2150 y Fk(expression-1)t
Fm([)p Fk(expression-2)p Fm(..)p Fk(expression-3)t Fm(])90
2200 y Fk(expression-1)t Fm([..)p Fk(expression-3)t Fm(])90
2250 y Fk(expression-1)t Fm([)p Fk(expression-2)p Fm(..])p
eop
%%Page: 16 18
17 bop 0 -58 a Fp(16)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)62
183 y(The)k(three)g(expressions)g(are)f(ev)m(aluated)i(in)f(order.)23
b Fk(Expression-1)e Fp(m)o(ust)16 b(return)0 233 y(a)j(list)i(or)e(string)g
(\(the)g Fk(sequence)s Fp(\))h(and)g(the)f(other)h(t)o(w)o(o)e(expressions)i
(m)o(ust)f(return)0 283 y(n)o(um)o(b)q(ers)11 b(\(the)f Fk(lo)o(w)k
Fp(and)d Fk(high)h Fp(indices,)h(resp)q(ectiv)o(ely\);)g(otherwise,)e
Fm(E_TYPE)f Fp(is)h(raised.)0 333 y(If)h(the)f(lo)o(w)g(index)i(is)f(greater)
e(than)h(the)h(high)g(index,)h(then)f(the)f(empt)o(y)g(string)g(or)g(list)h
(is)0 382 y(returned,)h(dep)q(ending)h(on)f(whether)f(the)h(sequence)g(is)g
(a)f(string)g(or)g(a)g(list.)19 b(Otherwise,)0 432 y(b)q(oth)d(indices)h(m)o
(ust)f(b)q(e)g(b)q(et)o(w)o(een)g(1)f(and)h(the)g(length)g(of)f(the)h
(sequence;)h Fm(E_RANGE)d Fp(is)0 482 y(raised)h(if)f(they)h(are)f(not.)19
b(A)14 b(new)h(list)g(or)e(string)i(is)f(returned)h(that)f(con)o(tains)g
(just)g(the)0 532 y(elemen)o(ts)h(of)f(the)g(sequence)i(with)e(indices)j(b)q
(et)o(w)o(een)d(the)h(lo)o(w)f(and)g(high)i(b)q(ounds.)k(As)0
582 y(the)e(second)h(and)g(third)g(forms)e(sho)o(w,)i(y)o(ou)f(can)g(lea)o(v)
o(e)h(o\013)e(either)j(the)e(lo)o(w)g(or)g(high)0 632 y(index;)d(y)o(ou'll)e
(automatically)h(get)f(1)f(if)i(y)o(ou)f(lea)o(v)o(e)g(o\013)g(the)g(lo)o(w)g
(index,)h(and)g(the)f(v)m(alue)0 681 y(of)i(length)h(of)e(the)i(sequence)g
(if)g(y)o(ou)f(lea)o(v)o(e)g(o\013)f(the)i(high)g(index.)90
753 y Fm("foobar"[2..6])879 750 y Fn(\))973 753 y Fm("oobar")90
803 y("foobar"[2..])879 800 y Fn(\))973 803 y Fm("oobar")90
852 y("foobar"[3..3])879 849 y Fn(\))973 852 y Fm("o")90 902
y("foobar"[..3])879 899 y Fn(\))973 902 y Fm("foo")90 952 y("foobar"[17..12])
879 949 y Fn(\))973 952 y Fm("")90 1002 y({"one",)23 b("two",)g
("three"}[1..2])879 999 y Fn(\))973 1002 y Fm({"one",)g("two"})90
1052 y({"one",)g("two",)g("three"}[3..3])879 1049 y Fn(\))973
1052 y Fm({"three"})90 1101 y({"one",)g("two",)g("three"}[17..12])879
1098 y Fn(\))973 1101 y Fm({})0 1316 y Fi(Other)15 b(op)r(erations)g(on)g
(lists)g(and)g(strings)62 1417 y Fp(The)h(mem)o(b)q(ership)g(expression)g
(tests)f(whether)g(or)g(not)g(a)g(giv)o(en)h(COOL)g(v)m(alue)g(is)0
1466 y(an)i(elemen)o(t)g(of)g(a)f(giv)o(en)h(list,)h(or)f(a)f(substring)h(of)
g(a)f(giv)o(en)i(string)e(and,)i(if)f(so,)g(with)0 1516 y(what)d(index:)90
1588 y Fk(expression-1)28 b Fm(in)c Fk(expression-2)62 1659
y(Expression-2)h Fp(m)o(ust)20 b(return)g(a)g(list)h(or)f(string,)i
(otherwise,)f Fm(E_TYPE)f Fp(is)h(raised.)0 1709 y(If)f(the)g(v)m(alue)h(of)f
Fk(expression-1)k Fp(is)c(in)h(that)e(list)i(or)e(string,)i(then)f(the)g
(index)h(of)f(its)0 1759 y(\014rst)13 b(o)q(ccurrence)i(in)g(the)f(list)h(or)
e(string)h(is)g(returned;)h(otherwise,)f(the)g Fm(in)f Fp(expression)0
1808 y(returns)i(0.)90 1880 y Fm(2)24 b(in)f({5,)h(8,)f(2,)h(3})855
1877 y Fn(\))949 1880 y Fm(3)90 1930 y(7)g(in)f({5,)h(8,)f(2,)h(3})855
1927 y Fn(\))949 1930 y Fm(0)90 1979 y("bar")f(in)h({"Foo",)f("Bar",)g
("Baz"})855 1976 y Fn(\))949 1979 y Fm(2)90 2029 y("bit")g(in)h("frobitz")902
2026 y Fn(\))997 2029 y Fm(4)0 2101 y Fp(Note)14 b(that)g(the)g(mem)o(b)q
(ership)i(op)q(erator)d(is)i(case-insensitiv)o(e)i(in)e(comparing)f(strings,)
0 2150 y(just)g(lik)o(e)i(the)f(comparison)g(op)q(erators.)k(Note)14
b(also)h(that)f(since)i(it)f(returns)g(zero)f(only)0 2200 y(if)i(the)f(giv)o
(en)h(v)m(alue)h(is)f(not)f(in)h(the)g(giv)o(en)g(list)g(or)f(string,)g(the)g
Fm(in)g Fp(expression)i(can)e(b)q(e)0 2250 y(used)h(either)g(as)f(a)f(mem)o
(b)q(ership)j(test)d(or)h(as)g(an)g(elemen)o(t)h(or)f(substring)g(lo)q
(cator.)p eop
%%Page: 17 19
18 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(17)0 183 y Fi(2.2.8)30 b(Calling)15 b(built-in)h(functions)f(and)g(other)g
(metho)r(ds)62 277 y Fp(COOL)h(pro)o(vides)f(a)f(n)o(um)o(b)q(er)h(of)f
(functions)h(for)f(p)q(erforming)h(a)f(v)m(ariet)o(y)h(of)f(op)q(era-)0
327 y(tions;)f(a)e(complete)h(list,)h(giving)f(their)g(names,)g(argumen)o
(ts,)f(and)h(seman)o(tics,)g(app)q(ears)0 377 y(in)k(a)f(separate)g(section)g
(later.)62 442 y(The)h(syn)o(tax)e(of)h(a)g(call)h(to)f(a)g(built-in)i
(function)f(is)g(as)f(follo)o(ws:)90 507 y Fk(name)s Fm(\()p
Fk(expr-1)p Fm(,)23 b Fk(expr-2)p Fm(,)h Fh(:)8 b(:)g(:)n Fm(,)24
b Fk(expr-N)5 b Fm(\))0 572 y Fp(where)19 b Fk(name)h Fp(is)f(the)g(name)f
(of)g(one)g(of)g(the)h(built-in)i(functions.)30 b(The)18 b(expressions)0
622 y(b)q(et)o(w)o(een)f(the)g(paren)o(theses,)g(called)i Fk(argumen)o(ts)p
Fp(,)d(are)g(eac)o(h)h(ev)m(aluated)h(in)g(turn)f(and)0 672
y(then)i(giv)o(en)h(to)f(the)g(named)g(function.)33 b(Most)18
b(functions)h(require)h(that)f(certain)g(of)0 722 y(the)g(argumen)o(ts)f(ha)o
(v)o(e)g(certain)h(sp)q(eci\014ed)i(t)o(yp)q(es)d(\(e.g.,)g(the)h
Fm(lengthof\(\))e Fp(function)0 772 y(requires)e(a)f(list)h(or)f(a)g(string)g
(as)g(its)h(argumen)o(t\);)e Fm(E_TYPE)g Fp(is)i(raised)g(if)g(an)o(y)f
(argumen)o(t)0 821 y(has)h(the)g(wrong)g(t)o(yp)q(e.)62 886
y(Ob)s(ject)h(metho)q(ds)f(can)g(also)g(call)i(other)d(metho)q(ds,)h(usually)
i(using)f(this)g(syn)o(tax:)90 952 y Fk(expr-0)p Fm(.)p Fk(name)s
Fm(\()p Fk(expr-1)p Fm(,)23 b Fk(expr-2)p Fm(,)h Fh(:)8 b(:)g(:)n
Fm(,)24 b Fk(expr-N)5 b Fm(\))0 1017 y Fp(or,)13 b(if)h(there)f(aren't)g(an)o
(y)g(argumen)o(ts)g(y)o(ou)g(can)g(use)h(either)g(of)f(the)h(follo)o(wing)g
(2)f(forms:)90 1082 y Fk(expr-0)p Fm(.)p Fk(name)s Fm(\(\))90
1132 y Fk(expr-0)p Fm(.)p Fk(name)0 1197 y(Expr-0)20 b Fp(m)o(ust)d(return)f
(an)h(ob)s(ject)f(n)o(um)o(b)q(er;)i Fm(E_TYPE)e Fp(is)h(raised)h(otherwise;)
f(if)h Fk(expr-)0 1246 y(0)25 b Fp(do)q(esn't)c(ev)m(aluate)h(to)f(an)g(ob)s
(ject)g(v)m(alue,)j Fm(E_INVIND)c Fp(is)i(raised.)39 b(If)22
b(the)g(ob)s(ject)0 1296 y(with)13 b(that)f(n)o(um)o(b)q(er)h(do)q(es)g(not)f
(exist,)i Fm(E_OBJNF)d Fp(is)j(raised.)19 b(If)13 b(this)g(task)f(is)h(to)q
(o)f(deeply)0 1346 y(nested)h(in)g(metho)q(ds)f(calling)i(metho)q(ds)e
(calling)i(metho)q(ds,)f(then)f Fm(E_MAXREC)f Fp(is)i(raised;)0
1396 y(the)g(limit)i(in)f(COOLMUD)g(at)f(this)g(writing)h(is)g(50)f(lev)o
(els.)20 b(If)14 b(neither)g(the)f(ob)s(ject)g(nor)0 1446 y(an)o(y)g(of)g
(its)h(ancestors)f(de\014nes)h(a)f(metho)q(d)h(matc)o(hing)f(the)h(giv)o(en)g
(name,)f Fm(E_METHODNF)0 1495 y Fp(is)i(raised.)20 b(Otherwise,)15
b(if)g(none)g(of)g(these)f(things)h(happ)q(ens,)h(the)e(named)h(metho)q(d)g
(on)0 1545 y(the)j(giv)o(en)h(ob)s(ject)f(is)g(called;)j(the)d(v)m(arious)h
(built-in)i(v)m(ariables)e(ha)o(v)o(e)f(the)g(follo)o(wing)0
1595 y(initial)f(v)m(alues)g(in)f(the)f(called)i(metho)q(d:)0
1660 y Fm(this)144 b Fp(an)15 b(ob)s(ject,)f(the)i(v)m(alue)g(of)f
Fk(expr-0)0 1725 y Fm(args)144 b Fp(a)15 b(list,)h(the)f(v)m(alues)h(of)f
Fk(expr-1)p Fp(,)g Fk(expr-2)p Fp(,)g(etc.)0 1790 y Fm(caller)96
b Fp(an)15 b(ob)s(ject,)f(the)i(v)m(alue)g(of)f Fm(this)f Fp(in)i(the)g
(calling)h(metho)q(d)0 1855 y Fm(player)96 b Fp(an)10 b(ob)s(ject,)g(the)h
(same)f(v)m(alue)h(as)f(it)g(had)h(initially)i(in)e(the)f(calling)i(metho)q
(d.)62 1921 y(Note)20 b(that)f(these)i(are)e(really)i(pseudo-v)m(ariables;)k
(they're)19 b(read-only)i(and)f(y)o(ou)0 1970 y(can't)15 b(assign)g(new)g(v)m
(alues)i(to)d(them.)62 2035 y(W)l(e)20 b(said)f(\\usually")i(at)d(the)i(b)q
(eginning)h(of)e(the)g(previous)h(paragraph)f(b)q(ecause)0
2085 y(that)h(syn)o(tax)f(is)i(used)g(when)g(the)g Fk(name)i
Fp(follo)o(ws)d(the)h(rules)g(for)f(allo)o(w)o(ed)h(v)m(ariable)0
2135 y(names.)34 b(There)21 b(is)f(also)g(a)g(syn)o(tax)g(allo)o(wing)h(y)o
(ou)e(to)h(compute)g(the)g(name)g(of)g(the)0 2185 y(metho)q(d:)90
2250 y Fk(expr-0)p Fm(.\()p Fk(expr-00)t Fm(\)\()p Fk(expr-1)p
Fm(,)j Fk(expr-2)p Fm(,)h Fh(:)8 b(:)g(:)n Fm(,)24 b Fk(expr-N)5
b Fm(\))p eop
%%Page: 18 20
19 bop 0 -58 a Fp(18)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y(The)i(expression)i Fk(expr-00)h Fp(m)o(ust)d(return)g(a)g(string;)g
Fm(E_TYPE)f Fp(is)i(raised)f(otherwise.)0 428 y Fi(2.2.9)30
b(P)n(aren)n(theses)16 b(and)f(op)r(erator)f(precedence)62
532 y Fp(As)h(sho)o(wn)f(in)h(a)f(few)g(examples)i(ab)q(o)o(v)o(e,)d(COOL)j
(allo)o(ws)e(y)o(ou)g(to)g(use)h(paren)o(theses)0 582 y(to)f(mak)o(e)f(it)i
(clear)g(ho)o(w)f(y)o(ou)g(in)o(tend)h(for)f(complex)h(expressions)g(to)f(b)q
(e)h(group)q(ed.)20 b(F)l(or)0 631 y(example,)c(the)f(expression)90
706 y Fm(3)24 b(*)f(\(4)h(+)g(5\))0 781 y Fp(p)q(erforms)15
b(the)g(addition)h(of)f(4)g(and)h(5)e(b)q(efore)i(m)o(ultiplying)h(the)f
(result)f(b)o(y)g(3.)62 855 y(If)g(y)o(ou)g(lea)o(v)o(e)g(out)f(the)h(paren)o
(theses,)g(COOL)h(will)g(\014gure)f(out)g(ho)o(w)f(to)g(group)h(the)0
905 y(expression)c(according)g(to)e(certain)i(rules.)19 b(The)10
b(\014rst)g(of)g(these)g(is)h(that)e(some)h(op)q(erators)0
955 y(ha)o(v)o(e)17 b(higher)i Fk(precedence)j Fp(than)17 b(others;)i(op)q
(erators)d(with)i(higher)h(precedence)g(will)0 1005 y(bind)f(more)e(tigh)o
(tly)h(to)f(their)h(op)q(erands)f(than)h(those)f(with)h(lo)o(w)o(er)f
(precedence.)26 b(F)l(or)0 1055 y(example,)c(m)o(ultiplication)h(has)d
(higher)i(precedence)g(than)e(addition;)k(th)o(us,)d(if)g(the)0
1104 y(paren)o(theses)c(had)h(b)q(een)g(left)g(out)f(of)g(the)g(expression)h
(in)h(the)e(previous)h(paragraph,)0 1154 y(COOL)e(w)o(ould)g(ha)o(v)o(e)e
(group)q(ed)i(it)g(as)e(follo)o(ws:)90 1229 y Fm(\(3)24 b(*)f(4\))h(+)g(5)62
1304 y Fp(The)16 b(table)g(b)q(elo)o(w)g(giv)o(es)g(the)f(relativ)o(e)h
(precedence)h(of)e(all)i(of)e(the)g(COOL)i(op)q(era-)0 1354
y(tors;)c(op)q(erators)f(on)h(higher)h(lines)h(in)f(the)g(table)g(ha)o(v)o(e)
f(higher)h(precedence)h(and)e(those)0 1403 y(on)i(the)g(same)g(line)i(ha)o(v)
o(e)e(iden)o(tical)i(precedence:)90 1478 y Fm(!)167 b(-)24
b Fp(\(without)15 b(a)f(left)i(op)q(erand\))90 1528 y Fm(*)167
b(/)g(\045)90 1578 y(+)g(-)90 1627 y(==)143 b(!=)g(<)167 b(<=)143
b(>)167 b(>=)142 b(in)90 1677 y(&&)90 1727 y(||)90 1777 y(=)0
1852 y Fp(Th)o(us,)15 b(the)g(horrendous)g(expression)90 1926
y Fm(x)24 b(=)f(a)h(<)g(b)g(&&)f(c)h(>)g(d)f(+)h(e)g(*)g(f)f(?)h(w)g(in)f(y)h
(|)g(-)g(q)f(-)h(r)0 2001 y Fp(w)o(ould)16 b(b)q(e)f(group)q(ed)h(as)f(follo)
o(ws:)90 2076 y Fm(x)24 b(=)f(\(\(\(a)h(<)f(b\))h(&&)g(\(c)f(>)h(\(d)g(+)f
(\(e)h(*)g(f\)\)\)\))f(?)h(\(w)f(in)h(y\))f(|)h(\(\(-)f(q\))h(-)90
2125 y(r\)\))0 2200 y Fp(It)14 b(is)h(b)q(est)f(to)g(k)o(eep)g(expressions)h
(simpler)g(than)f(this)h(and)f(to)f(use)i(paren)o(theses)f(lib)q(er-)0
2250 y(ally)i(to)f(mak)o(e)f(y)o(our)h(meaning)h(clear)g(to)e(other)h(h)o
(umans.)p eop
%%Page: 19 21
20 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(19)0 183 y Fo(2.3)33 b(Statemen)n(ts)62 275 y Fp(Statemen)o(ts)10
b(are)g(COOL)h(constructs)f(that,)g(in)i(con)o(trast)d(to)g(expressions,)j(p)
q(erform)0 325 y(some)j(useful,)i(non-v)m(alue-pro)q(ducing)h(op)q(eration.)k
(F)l(or)15 b(example,)h(there)g(are)f(sev)o(eral)0 375 y(kinds)24
b(of)e(statemen)o(ts,)h(called)h(`lo)q(oping)g(constructs',)f(that)f(rep)q
(eatedly)i(p)q(erform)0 425 y(some)15 b(set)g(of)g(op)q(erations.)0
564 y Fi(2.3.1)30 b(Simple)15 b(statemen)n(ts)62 656 y Fp(The)g(simplest)g
(kind)g(of)f(statemen)o(t)f(is)i(the)f Fk(n)o(ull)k Fp(statemen)o(t,)13
b(consisting)i(of)e(just)h(a)0 705 y(semicolon:)90 768 y Fm(;)0
831 y Fp(It)h(do)q(esn't)g(do)g(an)o(ything)h(at)e(all.)62
894 y(The)21 b(next)f(simplest)h(statemen)o(ts)e(are)h(also)g(some)g(of)g
(the)g(most)f(common,)i(the)0 944 y(expression)16 b(statemen)o(t)e(and)i(the)
f(assignmen)o(t)g(statemen)o(t:)90 1007 y Fk(expression)p Fm(;)90
1057 y Fk(v)m(ar)27 b Fm(=)d Fk(expression)p Fm(;)0 1120 y
Fp(F)l(or)16 b(the)g(expression)h(statemen)o(t,)e(the)i(giv)o(en)g
(expression)g(is)g(ev)m(aluated)g(and)f(the)h(re-)0 1170 y(sulting)i(v)m
(alue)g(is)g(ignored.)29 b(The)18 b(t)o(ypical)h(expression)g(for)e(suc)o(h)h
(statemen)o(ts)f(is)i(the)0 1219 y(metho)q(d)d(call.)21 b(Of)16
b(course,)f(there's)g(no)g(use)h(for)f(suc)o(h)g(a)h(statemen)o(t)e(unless)i
(the)g(ev)m(al-)0 1269 y(uation)23 b(of)f Fk(expression)h Fp(has)f(some)g
(side-e\013ect,)j(suc)o(h)e(as)f(prin)o(ting)h(some)f(text)g(on)0
1319 y(someone's)17 b(screen,)g(etc.)26 b(F)l(or)16 b(the)i(assignmen)o(t)f
(statemen)o(t,)f(the)h(v)m(ariable)h(gets)f(the)0 1369 y(new)e(v)m(alue.)0
1508 y Fi(2.3.2)30 b(Conditional)15 b(execution)62 1600 y Fp(The)i
Fm(if)g Fp(statemen)o(t)e(allo)o(ws)i(y)o(ou)f(to)g(decide)j(whether)d(or)h
(not)f(to)g(p)q(erform)g(some)0 1650 y(statemen)o(ts)e(based)i(on)f(the)g(v)m
(alue)h(of)f(an)g(expression:)90 1712 y Fm(if)24 b(\()p Fk(expression)p
Fm(\))138 1762 y Fk(statemen)o(ts)90 1812 y Fm(endif)0 1875
y Fk(Expression)19 b Fp(is)g(ev)m(aluated,)g(if)g(it)f(returns)g(a)g(true)g
(v)m(alue,)i(the)f(statemen)o(ts)e(are)g(exe-)0 1925 y(cuted;)e(otherwise,)g
(nothing)h(is)g(done.)62 1988 y(Sometimes)d(y)o(ou'll)h(w)o(an)o(t)d(to)h(p)q
(erform)h(one)g(set)f(of)g(statemen)o(ts)g(if)h(some)g(condition)0
2038 y(is)f(true)f(and)g(some)g(other)g(set)g(of)g(statemen)o(ts)f
(otherwise.)19 b(The)11 b(optional)h Fm(else)f Fp(phrase)0
2087 y(in)16 b(an)f Fm(if)g Fp(statemen)o(t)f(allo)o(ws)i(y)o(ou)e(to)h(do)g
(this:)90 2150 y Fm(if)24 b(\()p Fk(expression)p Fm(\))138
2200 y Fk(statemen)o(ts-1)90 2250 y Fm(else)p eop
%%Page: 20 22
21 bop 0 -58 a Fp(20)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)138
183 y Fk(statemen)o(ts-2)90 233 y Fm(endif)0 299 y Fp(This)e(statemen)o(t)f
(is)h(executed)h(just)f(lik)o(e)h(the)f(previous)g(one,)h(except)f(that)f
Fk(statemen)o(ts-)0 349 y(1)19 b Fp(are)d(executed)h(if)g Fk(expression)g
Fp(returns)f(a)g(true)g(v)m(alue)h(and)f Fk(statemen)o(ts-2)j
Fp(are)c(exe-)0 399 y(cuted)h(otherwise.)62 465 y(Sometimes,)25
b(y)o(ou'll)e(need)h(to)e(test)g(sev)o(eral)h(conditions)h(in)g(a)e(kind)i
(of)e(nested)0 515 y(fashion:)90 581 y Fm(if)i(\()p Fk(expression-1)t
Fm(\))138 631 y Fk(statemen)o(ts-1)90 681 y Fm(else)138 731
y(if)f(\()p Fk(expression-2)t Fm(\))185 781 y Fk(statemen)o(ts-2)138
831 y Fm(else)185 880 y(if)h(\()p Fk(expression-3)t Fm(\))233
930 y Fk(statemen)o(ts-3)185 980 y Fm(else)233 1030 y Fk(statemen)o(ts-4)185
1080 y Fm(endif)138 1129 y(endif)90 1179 y(endif)0 1246 y Fp(Suc)o(h)18
b(co)q(de)f(can)g(easily)h(b)q(ecome)g(tedious)f(to)f(write)h(and)g
(di\016cult)i(to)d(read.)25 b(COOL)0 1295 y(pro)o(vides)16
b(a)f(somewhat)f(simpler)i(notation)f(for)g(suc)o(h)g(cases:)90
1362 y Fm(if)24 b(\()p Fk(expression-1)t Fm(\))138 1411 y Fk(statemen)o(ts-1)
90 1461 y Fm(elseif)f(\()p Fk(expression-2)t Fm(\))138 1511
y Fk(statemen)o(ts-2)90 1561 y Fm(elseif)g(\()p Fk(expression-3)t
Fm(\))138 1611 y Fk(statemen)o(ts-3)90 1661 y Fm(else)138 1710
y Fk(statemen)o(ts-4)90 1760 y Fm(endif)0 1826 y Fp(Note)13
b(that)h Fm(elseif)f Fp(is)h(written)g(as)f(a)h(single)h(w)o(ord,)e(without)h
(an)o(y)f(spaces.)20 b(This)14 b(sim-)0 1876 y(pler)g(v)o(ersion)e(has)h(the)
g(v)o(ery)f(same)h(meaning)g(as)f(the)h(original:)20 b(ev)m(aluate)13
b Fk(expression-i)0 1926 y Fp(for)18 b Fk(i)j Fp(equal)e(to)e(1,)h(2,)h(and)f
(3,)g(in)h(turn,)g(un)o(til)g(one)f(of)g(them)g(returns)g(a)g(true)g(v)m
(alue;)0 1976 y(then)13 b(execute)g(the)g Fk(statemen)o(ts-i)h
Fp(asso)q(ciated)f(with)g(that)e(expression.)20 b(If)13 b(none)g(of)f(the)0
2026 y Fk(expression-i)19 b Fp(return)c(a)g(true)g(v)m(alue,)h(then)g
(execute)g Fk(statemen)o(ts-4)p Fp(.)62 2092 y(An)o(y)f(n)o(um)o(b)q(er)h(of)
f Fm(elseif)f Fp(phrases)h(can)h(app)q(ear,)f(eac)o(h)g(ha)o(ving)g(this)h
(form:)90 2158 y Fm(elseif)23 b(\()p Fk(expression)p Fm(\))i
Fk(statemen)o(ts)62 2225 y Fp(The)16 b(complete)g(syn)o(tax)e(of)h(the)g
Fm(if)g Fp(statemen)o(t)f(is)i(as)f(follo)o(ws:)p eop
%%Page: 21 23
22 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(21)90 183 y Fm(if)24 b(\()p Fk(expression)p Fm(\))138 233
y Fk(statemen)o(ts)90 283 y(zero-or-more-elseif-phrases)90
333 y(an-optional-else-phrase)90 382 y Fm(endif)0 533 y Fi(2.3.3)30
b(Iteration)62 626 y Fp(COOL)16 b(pro)o(vides)e(three)h(di\013eren)o(t)f
(kinds)i(of)e(lo)q(oping)h(statemen)o(ts,)e(allo)o(wing)i(y)o(ou)0
676 y(to)j(ha)o(v)o(e)h(a)f(set)h(of)g(statemen)o(ts)e(executed)j(\(1\))e
(once)h(for)g(eac)o(h)g(elemen)o(t)g(of)g(a)f(giv)o(en)0 726
y(list,)f(\(2\))e(once)h(for)g(eac)o(h)g(n)o(um)o(b)q(er)h(in)f(a)g(giv)o(en)
h(range,)f(and)g(\(3\))f(o)o(v)o(er)g(and)i(o)o(v)o(er)e(un)o(til)0
775 y(a)g(giv)o(en)h(condition)g(stops)f(b)q(eing)h(true.)62
840 y(T)l(o)j(p)q(erform)f(some)h(statemen)o(ts)f(once)h(for)f(eac)o(h)h
(elemen)o(t)h(of)e(a)h(giv)o(en)g(list,)h(y)o(ou)0 890 y(use)c(this)f(syn)o
(tax:)90 954 y Fm(for)23 b Fk(v)m(ariable)28 b Fm(in)c(\()p
Fk(expression)p Fm(\))138 1004 y Fk(statemen)o(ts)90 1053 y
Fm(endfor)0 1118 y Fp(The)13 b Fk(expression)h Fp(is)f(ev)m(aluated)h(and)f
(should)h(return)f(a)f(list;)i(if)g(it)f(do)q(es)g(not,)f Fm(E_TYPE)g
Fp(is)0 1167 y(generated.)21 b(The)16 b Fk(statemen)o(ts)g
Fp(are)f(then)h(executed)h(once)f(for)f(eac)o(h)g(elemen)o(t)i(of)e(that)0
1217 y(list)e(in)h(turn;)f(eac)o(h)f(time,)i(the)e(giv)o(en)h
Fk(v)m(ariable)k Fp(is)c(assigned)g(the)g(v)m(alue)g(of)g(the)f(elemen)o(t)0
1267 y(in)k(question.)21 b(F)l(or)14 b(example,)i(consider)g(the)f(follo)o
(wing)h(statemen)o(ts:)90 1331 y Fm(odds)23 b(=)h({1,)f(3,)h(5,)g(7,)f(9};)90
1381 y(evens)g(=)h({};)90 1431 y(for)f(n)h(in)g(\(odds\))138
1481 y(evens)f(=)h(listappend\(evens,)d(n)j(+)g(1\);)90 1530
y(endfor)0 1595 y Fp(The)15 b(v)m(alue)i(of)e(the)g(v)m(ariable)h
Fm(evens)f Fp(after)f(executing)j(these)e(statemen)o(ts)f(is)i(the)f(list)90
1659 y Fm({2,)23 b(4,)h(6,)g(8,)f(10})62 1723 y Fp(The)15 b(syn)o(tax)f(for)g
(p)q(erforming)g(a)g(set)h(of)f(statemen)o(ts)f(once)i(for)f(eac)o(h)g(n)o
(um)o(b)q(er)h(in)g(a)0 1773 y(giv)o(en)h(range)f(is)g(as)g(follo)o(ws:)90
1837 y Fm(for)23 b Fk(v)m(ariable)28 b Fm(in)c([)p Fk(expression-1)p
Fm(..)p Fk(expression-2)t Fm(])138 1887 y Fk(statemen)o(ts)90
1937 y Fm(endfor)0 2001 y Fp(The)c(t)o(w)o(o)e(expressions)j(are)e(ev)m
(aluated)i(and)f(should)h(return)f(n)o(um)o(b)q(ers;)i Fm(E_TYPE)c
Fp(is)0 2051 y(raised)g(otherwise.)29 b(The)18 b Fk(statemen)o(ts)g
Fp(are)g(then)g(executed,)h(once)g(for)e(eac)o(h)h(in)o(teger)0
2101 y(greater)d(than)g(or)g(equal)i(to)e(the)g(v)m(alue)i(of)f
Fk(expression-1)k Fp(and)15 b(less)i(than)e(or)g(equal)i(to)0
2150 y(the)d(result)h(of)f Fk(expression-2)p Fp(,)g(in)h(increasing)h(order.)
j(Eac)o(h)14 b(time,)h(the)f(giv)o(en)h(v)m(ariable)0 2200
y(is)23 b(assigned)g(the)g(in)o(teger)g(in)g(question.)42 b(F)l(or)22
b(example,)j(consider)f(the)e(follo)o(wing)0 2250 y(statemen)o(ts:)p
eop
%%Page: 22 24
23 bop 0 -58 a Fp(22)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)90
183 y Fm(evens)23 b(=)h({};)90 233 y(for)f(n)h(in)g([1..5])138
283 y(evens)f(=)h(listappend\(evens,)d(2)j(*)g(n\);)90 333
y(endfor)0 404 y Fp(The)13 b(v)m(alue)i(of)d(the)i(v)m(ariable)g
Fm(evens)f Fp(after)f(executing)i(these)f(statemen)o(ts)f(is)i(the)f(same)0
454 y(as)i(in)h(the)f(previous)h(example,)g(the)f(list)90 526
y Fm({2,)23 b(4,)h(6,)g(8,)f(10})62 597 y Fp(The)17 b(\014nal)g(kind)g(of)f
(lo)q(op)g(in)h(COOL)g(executes)g(a)f(set)g(of)g(statemen)o(ts)f(rep)q
(eatedly)0 647 y(as)g(long)g(as)g(a)g(giv)o(en)h(condition)g(remains)g(true:)
90 718 y Fm(while)23 b(\()p Fk(expression)p Fm(\))138 768 y
Fk(statemen)o(ts)90 818 y Fm(endwhile)0 890 y Fp(The)18 b Fk(expression)h
Fp(is)g(ev)m(aluated)g(and,)g(if)g(it)f(returns)g(a)g(true)g(v)m(alue,)i(the)
e Fk(statemen)o(ts)0 939 y Fp(are)f(executed;)h(then,)g(execution)g(of)e(the)
h Fm(while)g Fp(statemen)o(t)f(b)q(egins)i(all)g(o)o(v)o(er)e(again)0
989 y(with)e(the)g(ev)m(aluation)h(of)e(the)h(expression.)21
b(That)13 b(is,)h(execution)h(alternates)f(b)q(et)o(w)o(een)0
1039 y(ev)m(aluating)i(the)f(expression)g(and)g(executing)h(the)f(statemen)o
(ts)e(un)o(til)j(the)f(expression)0 1089 y(returns)d(a)f(false)h(v)m(alue.)20
b(The)12 b(follo)o(wing)h(statemen)o(ts)e(ha)o(v)o(e)g(precisely)j(the)e
(same)f(e\013ect)0 1139 y(as)k(the)g(lo)q(op)h(just)f(sho)o(wn)g(ab)q(o)o(v)o
(e:)90 1210 y Fm(evens)23 b(=)h({};)90 1260 y(n)g(=)f(1;)90
1310 y(while)g(\(n)h(<=)f(5\))138 1360 y(evens)g(=)h(listappend\(evens,)d(2)j
(*)g(n\);)138 1410 y(n)f(=)h(n)g(+)g(1;)90 1459 y(endwhile)62
1531 y Fp(With)16 b(eac)o(h)f(kind)h(of)f(lo)q(op,)h(it)f(is)h(p)q(ossible)h
(that)e(the)g(statemen)o(ts)f(in)i(the)f(b)q(o)q(dy)h(of)0
1581 y(the)g(lo)q(op)g(will)h(nev)o(er)f(b)q(e)g(executed)h(at)e(all.)22
b(F)l(or)15 b(iteration)h(o)o(v)o(er)f(lists,)h(this)g(happ)q(ens)0
1631 y(when)d(the)g(list)h(returned)f(b)o(y)g(the)g(expression)h(is)f(empt)o
(y)l(.)19 b(F)l(or)12 b(iteration)h(on)g(n)o(um)o(b)q(ers,)0
1680 y(it)21 b(happ)q(ens)g(when)g Fk(expression-1)k Fp(returns)20
b(a)g(larger)h(n)o(um)o(b)q(er)f(than)h Fk(expression-2)p Fp(.)0
1730 y(Finally)l(,)15 b(for)e(the)h Fm(while)f Fp(lo)q(op,)h(it)f(happ)q(ens)
i(if)f(the)g(expression)g(returns)g(a)f(false)h(v)m(alue)0
1780 y(the)h(\014rst)g(time)h(it)f(is)h(ev)m(aluated.)62 1851
y(Inside)g(either)e(of)f(the)h Fm(for)g Fp(or)f Fm(while)g
Fp(iteration)h(lo)q(ops)g(y)o(ou)g(can)g(ha)o(v)o(e)f(a)g Fm(break)g
Fp(or)0 1901 y Fm(continue)j Fp(statemen)o(t.)26 b(The)17 b
Fm(break)g Fp(statemen)o(t)f(causes)i(execution)g(of)f(the)h
Fm(for)e Fp(or)0 1951 y Fm(while)c Fp(lo)q(op)i(to)f(end)h(prematurely;)f
(execution)i(con)o(tin)o(ues)e(with)h(the)f(\014rst)g(statemen)o(t)0
2001 y(after)19 b(the)g Fm(endfor)g Fp(or)g Fm(endwhile)p Fp(.)32
b(The)20 b Fm(continue)e Fp(statemen)o(t)g(causes)i(all)h(state-)0
2051 y(men)o(ts)d(after)g(it)g(in)h(the)g(iteration)g(lo)q(op)g(to)e(b)q(e)i
(skipp)q(ed)h(and)f(execution)g(con)o(tin)o(ues)0 2101 y(with)g(the)g(next)h
(iteration)f(of)f(the)h(lo)q(op.)32 b(If)20 b(y)o(ou)e(ha)o(v)o(e)h
Fm(for)f Fp(or)h Fm(while)f Fp(statemen)o(ts)0 2150 y(inside)d(of)e(other)g
Fm(for)f Fp(or)h Fm(while)f Fp(statemen)o(ts)g(y)o(ou)h(can)g(sp)q(ecify)i
(whic)o(h)f(iteration)f(lo)q(op)0 2200 y(should)20 b(b)q(e)f(brok)o(en)g(out)
f(of)g(b)o(y)h(follo)o(wing)g Fm(break)f Fp(with)h(a)f(n)o(um)o(b)q(er)h(sp)q
(ecifying)i(the)0 2250 y(lo)q(op)12 b(lev)o(el,)i(where)d(1)h(means)f(the)h
(curren)o(t)g(lo)q(op.)19 b(Lik)o(ewise,)13 b(for)e(the)h Fm(continue)f
Fp(state-)p eop
%%Page: 23 25
24 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(23)0 183 y(men)o(t)14 b(y)o(ou)g(can)g(sp)q(ecify)i(whic)o(h)f(iteration)f
(lo)q(op)h(to)f(to)f(skip)i(the)f(rest)g(of)g(b)o(y)g(follo)o(wing)0
233 y Fm(continue)g Fp(with)i(a)e(n)o(um)o(b)q(er)i(sp)q(ecifying)h(the)e(lo)
q(op)h(lev)o(el.)0 428 y Fi(2.3.4)30 b(Returning)15 b(a)g(v)m(alue)g(from)g
(a)f(metho)r(d)62 526 y Fp(The)i(COOL)h(program)e(in)h(a)g(metho)q(d)g(is)g
(just)g(a)f(sequence)i(of)f(statemen)o(ts.)k(Nor-)0 576 y(mally)l(,)e(when)g
(the)f(metho)q(d)g(is)h(called,)g(those)f(statemen)o(ts)f(are)h(simply)h
(executed)g(in)0 626 y(order)i(and)g(then)g(the)g(n)o(um)o(b)q(er)h(0)e(is)i
(returned)f(as)g(the)g(v)m(alue)h(of)e(the)h(metho)q(d-call)0
676 y(expression.)g(Using)15 b(the)e Fm(return)g Fp(statemen)o(t,)g(one)h
(can)g(c)o(hange)g(this)g(b)q(eha)o(vior.)20 b(The)0 725 y
Fm(return)14 b Fp(statemen)o(t)g(has)i(one)f(of)g(the)g(follo)o(wing)h(t)o(w)
o(o)e(forms:)90 795 y Fm(return;)0 864 y Fp(or)90 933 y Fm(return)23
b Fk(expression)p Fm(;)0 1002 y Fp(When)f(it)g(is)h(executed,)h(execution)f
(of)e(the)h(curren)o(t)g(metho)q(d)g(is)g(terminated)g(im-)0
1052 y(mediately)g(after)f(ev)m(aluating)i(the)e(giv)o(en)h
Fk(expression)p Fp(,)h(if)f(an)o(y)l(.)38 b(The)21 b(metho)q(d-call)0
1102 y(expression)15 b(that)e(started)h(the)g(execution)h(of)f(this)g(metho)q
(d)h(then)f(returns)g(either)h(the)0 1152 y(v)m(alue)h(of)f
Fk(expression)h Fp(or)f(the)g(n)o(um)o(b)q(er)h(0,)e(if)i(no)f
Fk(expression)h Fp(w)o(as)e(pro)o(vided.)0 1347 y Fi(2.3.5)30
b(Executing)16 b(statemen)n(ts)f(at)g(a)g(later)g(time)62 1445
y Fp(It)h(is)g(sometimes)g(useful)h(to)e(ha)o(v)o(e)h(some)f(sequence)i(of)f
(statemen)o(ts)f(execute)h(at)f(a)0 1495 y(later)f(time,)h(without)f(h)o
(uman)h(in)o(terv)o(en)o(tion.)20 b(F)l(or)14 b(example,)h(one)f(migh)o(t)h
(implemen)o(t)0 1544 y(an)d(ob)s(ject)f(that,)h(when)g(thro)o(wn)f(in)o(to)h
(the)g(air,)h(ev)o(en)o(tually)g(falls)f(bac)o(k)g(to)f(the)h(ground;)0
1594 y(the)k Fm(throw)e Fp(v)o(erb)i(on)f(that)g(ob)s(ject)g(should)i
(arrange)d(to)h(prin)o(t)h(a)f(message)g(ab)q(out)h(the)0 1644
y(ob)s(ject)j(landing)h(on)f(the)g(ground,)h(but)f(the)h(message)e(shouldn't)
i(b)q(e)g(prin)o(ted)g(un)o(til)0 1694 y(some)15 b(n)o(um)o(b)q(er)g(of)g
(seconds)h(ha)o(v)o(e)f(passed.)62 1763 y(The)c Fm(at)f Fp(statemen)o(t)g(is)
h(in)o(tended)h(for)e(just)g(suc)o(h)h(situations)g(and)g(has)g(the)f(follo)o
(wing)0 1813 y(syn)o(tax:)90 1882 y Fm(at)24 b(\()p Fk(expression)p
Fm(\))138 1932 y Fk(statemen)o(ts)90 1982 y Fm(endat)0 2051
y Fp(The)12 b Fm(at)g Fp(statemen)o(t)f(\014rst)g(executes)i(the)f
(expression,)h(whic)o(h)g(m)o(ust)e(return)h(a)g(n)o(um)o(b)q(er;)0
2101 y(call)i(that)d(n)o(um)o(b)q(er)i Fk(n)p Fp(.)19 b(It)12
b(then)h(creates)f(a)g(new)h(COOL)g Fk(task)i Fp(that)c(will,)j(after)e(at)g
(least)0 2150 y Fk(n)k Fp(seconds,)f(execute)h(the)g(statemen)o(ts.)j(When)d
(the)g(new)f(task)g(b)q(egins,)h(all)h(v)m(ariables)0 2200
y(will)j(ha)o(v)o(e)e(the)h(v)m(alues)g(they)g(had)g(at)e(the)i(time)g(the)f
Fm(at)g Fp(statemen)o(t)g(w)o(as)f(executed.)0 2250 y(The)e(task)g(executing)
h(the)f Fm(at)g Fp(statemen)o(t)f(immediately)j(con)o(tin)o(ues)f(execution.)
p eop
%%Page: 24 26
25 bop 0 -58 a Fp(24)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y Fi(2.3.6)30 b(Errors)62 275 y Fp(Statemen)o(ts)18 b(do)h(not)g(return)g
(v)m(alues,)h(but)f(some)g(kinds)h(of)e(statemen)o(ts)g(can)h(b)q(e)0
325 y(used)c(improp)q(erly)i(and)e(th)o(us)f(generate)h(errors.)k(If)c(suc)o
(h)g(an)f(error)h(is)g(generated)g(in)g(a)0 375 y(metho)q(d)i(that)f(is)h
(not)f(ignoring)h(that)f(particular)h(error,)f(then)h(an)f(error)g(message)g
(is)0 424 y(prin)o(ted)i(to)f(the)g(curren)o(t)g(pla)o(y)o(er)h(and)f(the)h
(curren)o(t)f(command)g(\(or)g(task,)f(really\))i(is)0 474
y(ab)q(orted.)23 b(If)17 b(the)g(metho)q(d)f(is)h(ignoring)g(that)f(error)g
(then)h(the)f(error)g(is)h(ignored)g(and)0 524 y(the)f(statemen)o(t)g(that)f
(generated)h(it)h(is)g(simply)g(skipp)q(ed;)h(execution)g(pro)q(ceeds)f(with)
0 574 y(the)e(next)h(statemen)o(t.)62 636 y Fk(\(Need)g(to)e(add)i(stu\013)e
(ab)q(out)h Fm(raise)g Fk(here)g(as)g(w)o(ell.\))0 796 y Fo(2.4)33
b(Built-in)18 b(functions)62 888 y Fp(There)11 b(are)g(a)f(n)o(um)o(b)q(er)h
(of)f(built-in)j(functions)f(a)o(v)m(ailable)g(to)e(COOL)i(programmers.)0
938 y(Eac)o(h)18 b(one)g(is)g(discussed)h(in)g(detail)g(in)g(this)f(section.)
29 b(The)18 b(presen)o(tation)g(is)g(brok)o(en)0 988 y(in)o(to)d(subsections)
h(b)o(y)f(grouping)h(functions)g(with)f(similar)i(or)e(related)g(uses.)62
1050 y(F)l(or)f(most)f(functions,)h(the)g(exp)q(ected)h(t)o(yp)q(es)f(of)g
(the)f(argumen)o(ts)h(are)f(giv)o(en;)i(if)f(the)0 1100 y(argumen)o(ts)g(are)
g(not)h(of)f(these)h(t)o(yp)q(es,)f Fm(E_TYPE)g Fp(is)i(raised.)k(Some)15
b(argumen)o(ts)e(can)i(b)q(e)0 1150 y(of)10 b(an)o(y)g(t)o(yp)q(e;)i(in)g
(suc)o(h)f(cases,)g(no)f(t)o(yp)q(e)h(sp)q(eci\014cation)h(is)f(giv)o(en)g
(for)f(the)h(argumen)o(t.)18 b(F)l(or)0 1200 y(most)10 b(functions,)j(the)e
(t)o(yp)q(e)g(of)g(the)g(result)h(of)e(the)h(function)h(is)g(giv)o(en.)19
b(Some)11 b(functions)0 1249 y(do)17 b(not)h(return)f(a)g(result;)i(in)f(suc)
o(h)g(cases,)g(the)f(sp)q(eci\014cation)j Fm(void)d Fp(is)h(used.)27
b(Some)0 1299 y(functions)15 b(can)g(return)f(a)g(result)h(of)f(an)o(y)g(t)o
(yp)q(e,)g(for)f(them)i(the)f(sp)q(eci\014caton)i Fm(value)d
Fp(is)0 1349 y(used.)62 1412 y(Most)g(functions)h(tak)o(e)e(a)h(\014xed)h(n)o
(um)o(b)q(er)g(of)f(argumen)o(ts)g(and,)g(in)h(some)g(cases,)f(one)0
1462 y(or)i(t)o(w)o(o)e(optional)j(argumen)o(ts.)j(If)c(a)g(function)h(is)f
(called)i(with)e(to)q(o)g(man)o(y)f(or)h(to)q(o)f(few)0 1511
y(argumen)o(ts,)g Fm(E_ARGS)g Fp(is)i(raised.)0 1647 y Fi(2.4.1)30
b(P)n(assing)15 b(execution)62 1739 y Fp(One)j(of)e(the)g(most)g(imp)q(ortan)
o(t)g(facilities)j(in)e(an)g(ob)s(ject-orien)o(ted)g(programming)0
1789 y(language)11 b(is)g(abilit)o(y)h(for)f(a)f(c)o(hild)j(ob)s(ject)d(to)g
(mak)o(e)h(use)g(of)f(a)h(paren)o(t's)f(implemen)o(tation)0
1839 y(of)16 b(some)g(op)q(eration,)h(ev)o(en)g(when)f(the)h(c)o(hild)h(pro)o
(vides)f(its)g(o)o(wn)f(de\014nition)i(for)e(that)0 1888 y(op)q(eration.)k
(The)c Fm(pass\(\))e Fp(function)i(pro)o(vides)g(this)f(facilit)o(y)h(in)g
(COOL.)62 1951 y(Often)k(it)g(is)g(useful)h(for)e(a)g(c)o(hild)i(ob)s(ject)e
(to)g(de\014ne)i(a)e(metho)q(d)h(that)f Fk(augmen)o(ts)0 2001
y Fp(the)g(b)q(eha)o(vior)h(of)e(a)h(metho)q(d)g(on)g(its)g(paren)o(t)f(ob)s
(ject.)31 b(F)l(or)18 b(example,)j(in)f(the)f Fm(boot)0 2051
y Fp(database,)j(the)g Fm(DESCRIBED)e Fp(ob)s(ject)h(\(whic)o(h)h(is)g(an)f
(ancestor)g(of)g(most)g(other)g(ob-)0 2101 y(jects\))d(de\014nes)i(a)f(metho)
q(d)g(called)h Fm(description)e Fp(that)g(simply)i(returns)f(the)g(v)m(alue)0
2150 y(of)h Fm(description)p Fp(;)i(this)f(metho)q(d)g(is)g(used)g(b)o(y)g
(the)g(implemen)o(tation)h(of)e(the)h Fm(look)0 2200 y Fp(command.)f(In)15
b(man)o(y)f(cases,)g(a)h(programmer)e(w)o(ould)i(lik)o(e)h(the)f(description)
h(of)e(some)0 2250 y(ob)s(ject)20 b(to)g(include)j(some)e(non-constan)o(t)f
(part;)j(for)d(example,)i(a)f(sen)o(tence)g(ab)q(out)p eop
%%Page: 25 27
26 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(25)0 183 y(whether)14 b(or)f(not)g(the)g(ob)s(ject)g(w)o(as)g(`a)o(w)o(ak)o
(e')e(or)i(`sleeping'.)21 b(This)14 b(sen)o(tence)g(should)g(b)q(e)0
233 y(added)j(on)o(to)e(the)h(end)h(of)f(the)g(normal)g(description.)25
b(The)16 b(programmer)f(w)o(ould)i(lik)o(e)0 283 y(to)h(ha)o(v)o(e)f(a)h
(means)g(of)g(calling)i(the)f(normal)f Fm(description)e Fp(metho)q(d)j(and)f
(then)h(ap-)0 333 y(p)q(ending)d(the)e(sen)o(tence)g(on)o(to)f(the)h(end)g
(of)g(that)f(description.)21 b(The)14 b(function)h Fm(pass\(\))0
382 y Fp(is)h(for)e(suc)o(h)i(situations.)62 445 y(Th)o(us,)26
b(in)f(the)f(example)h(ab)q(o)o(v)o(e,)g(the)f(c)o(hild-ob)s(ject's)h
Fm(description)e Fp(metho)q(d)0 495 y(migh)o(t)15 b(ha)o(v)o(e)g(the)g(follo)
o(wing)h(implemen)o(tation:)90 557 y Fm(return)23 b(pass\(\))g(+)h(")47
b(It)24 b(is)g(")f(+)h(\(this.awake)e(?)i("awake.")f(|)h("sleeping."\);)p
1691 567 21 42 v 0 619 a Fp(That)16 b(is,)g(it)h(calls)g(its)f(paren)o(t's)g
Fm(description)f Fp(metho)q(d)h(and)g(then)h(app)q(ends)g(to)f(the)0
669 y(result)e(a)g(sen)o(tence)h(whose)f(con)o(ten)o(t)f(is)i(computed)f
(based)g(on)g(the)g(v)m(alue)i(returned)e(b)o(y)0 719 y(a)h(metho)q(d)g(on)g
(the)h(ob)s(ject.)1275 803 y(F)l(unction)-1449 b Fg(value)20
b Ff(pass)h Fe(\()p Fk(arg)p Fm(,)14 b Fh(:)8 b(:)g(:)n Fe(\))1275
853 y Fp(F)l(unction)-1449 b Fg(value)20 b Ff(pass)h Fe(\()p
Fk(arg)p Fm(,)14 b Fh(:)8 b(:)g(:)n Fe(\))15 b Fm(to)g Fk(ob)s(ject)120
903 y Fm(pass)f Fp(calls)h(the)f(metho)q(d)h(with)f(the)h(same)f(name)g(on)g
(the)g(paren)o(t)g(of)g(the)120 953 y(ob)s(ject)i(who's)g(metho)q(d)g(is)h
(running.)25 b(The)16 b(argumen)o(ts)g(giv)o(en)h(to)f Fm(pass)120
1003 y Fp(are)f(the)h(ones)g(giv)o(en)g(to)f(the)g(called)i(metho)q(d)f(and)g
(the)g(returned)g(v)m(alue)120 1052 y(of)k(the)h(called)i(metho)q(d)e(is)h
(returned)f(from)f(the)h(call)h(to)e Fm(pass)p Fp(.)37 b(The)120
1102 y(initial)18 b(v)m(alue)g(of)e Fm(this)f Fp(in)i(the)g(called)g(metho)q
(d)g(is)g(the)f(same)g(as)g(in)h(the)120 1152 y(calling)g(metho)q(d.)120
1214 y(Since)g(COOL)g(pro)o(vides)f(for)f(m)o(ultiple)j(inheritence,)g(the)d
(second)i(form)120 1264 y(of)c(the)g Fm(pass\(\))g Fp(call)h(can)g(b)q(e)g
(used)g(to)e(sp)q(ecify)j(whic)o(h)f(paren)o(t's)f(metho)q(d)120
1314 y(to)i(call.)0 1442 y Fi(2.4.2)30 b(T)n(yp)r(e-c)n(hec)n(king)17
b(and)e(con)n(v)n(ersion)1275 1555 y Fp(F)l(unction)-1449 b
Fg(num)20 b Ff(t)n(yp)r(eof)i Fe(\()p Fk(v)m(alue)s Fe(\))120
1605 y Fp(T)l(ak)o(es)16 b(an)o(y)h(COOL)g(v)m(alue)h(and)f(returns)f(a)h(n)o
(um)o(b)q(er)g(represen)o(ting)g(the)120 1655 y(t)o(yp)q(e)22
b(of)g Fk(v)m(alue)p Fp(.)42 b(The)22 b(result)h(is)g(the)f(v)m(alue)h(of)f
(one)g(of)g(these)g(built-)120 1705 y(in)e(constan)o(ts:)27
b Fm(NUM)p Fp(,)19 b Fm(STR)p Fp(,)g Fm(LIST)p Fp(,)g Fm(OBJ)p
Fp(,)g(or)g Fm(ERR)p Fp(.)31 b(Th)o(us,)19 b(one)h(usually)120
1754 y(writes)15 b(co)q(de)h(lik)o(e)g(this:)210 1817 y Fm(if)24
b(\(typeof\(x\))e(==)i(LIST\))f Fh(:)8 b(:)g(:)120 1879 y Fp(and)15
b(not)g(lik)o(e)i(this:)210 1941 y Fm(if)24 b(\(typeof\(x\))e(==)i(3\))f
Fh(:)8 b(:)g(:)120 2004 y Fp(b)q(ecause)16 b(the)f(former)g(is)h(more)e
(readable)i(than)f(the)h(latter.)1275 2088 y(F)l(unction)-1449
b Fg(str)20 b Ff(tostr)i Fe(\()p Fk(v)m(alue)s Fe(\))120 2138
y Fp(Con)o(v)o(erts)14 b(the)h(giv)o(en)h(COOL)g(v)m(alue)h(in)o(to)e(a)g
(string)g(and)g(returns)g(it.)210 2200 y Fm(tostr\(17\))855
2197 y Fn(\))974 2200 y Fm("17")210 2250 y(tostr\(#17\))855
2247 y Fn(\))974 2250 y Fm("#17")p eop
%%Page: 26 28
27 bop 0 -58 a Fp(26)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)210
183 y Fm(tostr\("foo"\))855 180 y Fn(\))974 183 y Fm("foo")210
233 y(tostr\({1,)23 b(2}\))855 230 y Fn(\))974 233 y Fm("{1,)g(2}")210
283 y(tostr\(E_PERM\))855 280 y Fn(\))974 283 y Fm("Permission)f(denied")1275
371 y Fp(F)l(unction)-1449 b Fg(num)20 b Ff(ton)n(um)h Fe(\()p
Fk(v)m(alue)s Fe(\))120 421 y Fp(Con)o(v)o(erts)i(the)h(giv)o(en)h(COOL)g(v)m
(alue)h(in)o(to)e(a)g(n)o(um)o(b)q(er)h(and)f(returns)120 471
y(it.)g(Ob)s(ject)17 b(n)o(um)o(b)q(ers)g(are)f(con)o(v)o(erted)g(in)o(to)h
(the)g(equiv)m(alen)o(t)h(n)o(um)o(b)q(ers,)120 521 y(strings)c(are)g(parsed)
h(as)f(the)h(decimal)h(enco)q(ding)f(of)g(a)f(n)o(um)o(b)q(er,)g(and)h(er-)
120 571 y(rors)e(are)g(con)o(v)o(erted)g(in)o(to)g(n)o(um)o(b)q(ers.)20
b Fm(tonum\(\))12 b Fp(raises)h Fm(E_TYPE)g Fp(if)h Fk(v)m(alue)120
620 y Fp(is)19 b(a)f(list.)29 b(If)18 b Fk(v)m(alue)k Fp(is)d(a)f(string)g
(but)g(the)h(string)f(do)q(es)g(not)g(con)o(tain)g(a)120 670
y(syn)o(tactically-correct)e(n)o(um)o(b)q(er,)f(then)h Fm(tonum\(\))e
Fp(returns)h(0.)210 733 y Fm(tonum\(#34\))665 730 y Fn(\))783
733 y Fm(34)210 783 y(tonum\("34"\))665 780 y Fn(\))783 783
y Fm(34)210 832 y(tonum\(")23 b(-)h(34)47 b("\))665 829 y Fn(\))783
832 y Fm(34)210 882 y(tonum\(E_TYPE\))665 879 y Fn(\))783 882
y Fm(1)0 971 y Fp(Notice)16 b(that)e(when)i(parsing)f(digits,)h(spaces)f(are)
g(ignored.)1275 1059 y(F)l(unction)-1449 b Fg(obj)20 b Ff(to)r(ob)s(j)h
Fe(\()p Fk(v)m(alue)s Fe(\))120 1109 y Fp(Con)o(v)o(erts)15
b(the)h(giv)o(en)g(COOL)h(v)m(alue)g(in)o(to)f(an)g(ob)s(ject)f(n)o(um)o(b)q
(er)i(and)f(re-)120 1159 y(turns)g(it.)22 b(The)16 b(con)o(v)o(ersions)g(are)
g(v)o(ery)g(similar)h(to)e(those)h(for)f Fm(tonum\(\))120 1209
y Fp(except)h(that)e(for)h(strings,)f(the)i(n)o(um)o(b)q(er)f
Fk(ma)o(y)k Fp(b)q(e)d(preceded)g(b)o(y)f(`)p Fm(#)p Fp('.)210
1271 y Fm(toobj\("34"\))641 1268 y Fn(\))759 1271 y Fm(#34)210
1321 y(toobj\("#34"\))641 1318 y Fn(\))759 1321 y Fm(#34)210
1371 y(toobj\("foo"\))641 1368 y Fn(\))759 1371 y Fm(#0)210
1421 y(toobj\({1,)23 b(2}\))p 650 1392 109 3 v 650 1432 3 41
v 662 1422 a Fe(erro)o(r)p 756 1432 V 650 1434 109 3 v 854
1421 a Fm(E_TYPE)1275 1509 y Fp(F)l(unction)-1449 b Fg(err)20
b Ff(to)r(err)h Fe(\()p Fk(v)m(alue)s Fe(\))120 1559 y Fp(Con)o(v)o(erts)13
b(the)i(giv)o(en)g(COOL)g(v)m(alue)h(in)o(to)e(an)h(error)f(v)m(alue)h(and)g
(returns)120 1609 y(that)f(error)h(v)m(alue.)0 1745 y Fi(2.4.3)30
b(Op)r(erations)15 b(on)g(strings)1275 1863 y Fp(F)l(unction)-1449
b Fg(list)20 b Ff(explo)r(de)j Fe(\()p Fm(str)14 b Fk(string)19
b Fj([)p Fm(,)c(str)g Fk(string)t Fj(])p Fe(\))120 1913 y Fp(Break)e
Fk(string)k Fp(in)o(to)c(a)f(list)i(of)f(strings.)19 b(By)13
b(default,)h(explo)q(de)g(breaks)f(on)120 1962 y(spaces;)k(the)g(optional)h
(second)f(argumen)o(t)f(is)h(the)g(c)o(haracter)f(to)g(break)120
2012 y(on.)1275 2101 y(F)l(unction)-1449 b Fg(num)20 b Ff(lengthof)i
Fe(\()p Fm(str)15 b Fk(string)t Fe(\))120 2150 y Fp(Returns)d(the)g(n)o(um)o
(b)q(er)g(of)f(c)o(haracters)g(in)i Fk(string)p Fp(.)19 b(It)11
b(is)i(also)e(p)q(ermissible)120 2200 y(to)20 b(pass)h(a)g(list)h(to)e
Fm(lengthof\(\))p Fp(;)i(see)f(the)g(description)i(in)f(the)f(next)120
2250 y(section.)p eop
%%Page: 27 29
28 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(27)210 183 y Fm(lengthof\("foo"\))641 180 y Fn(\))759 183
y Fm(3)210 233 y(lengthof\(""\))641 230 y Fn(\))759 233 y Fm(0)1275
314 y Fp(F)l(unction)-1449 b Fg(str)20 b Ff(crypt)j Fe(\()p
Fm(str)14 b Fk(text)i Fj([)p Fm(,)f(str)f Fk(salt)q Fj(])p
Fe(\))120 364 y Fp(Encrypts)20 b(the)h(giv)o(en)g Fk(text)g
Fp(using)g(the)f(standard)g(UNIX)h(encryption)120 413 y(metho)q(d.)f(If)15
b(pro)o(vided,)h Fk(salt)g Fp(should)g(b)q(e)f(a)g(t)o(w)o(o-c)o(haracter)e
(string)i(used)120 463 y(for)i(the)i(extra)e(encryption)i(\\salt")e(in)i(the)
f(algorithm.)29 b(If)18 b Fk(salt)h Fp(is)f(not)120 513 y(pro)o(vided,)f(a)f
(random)f(pair)i(of)f(c)o(haracters)f(is)i(used.)23 b(The)17
b(salt)f(used)g(is)120 563 y(also)e(returned)g(as)f(the)h(\014rst)g(t)o(w)o
(o)e(c)o(haracters)h(of)h(the)g(encrypted)g(string.)120 625
y(Aside)22 b(from)f(the)g(p)q(ossibly-random)h(selection)h(of)e(the)g(salt,)h
(the)f(en-)120 675 y(cryption)g(algorithm)g(is)g(deterministic.)39
b(Y)l(ou)21 b(can)f(test)h(whether)f(or)120 725 y(not)f(a)h(giv)o(en)g
(string)f(is)h(the)g(same)g(as)f(the)g(one)h(used)g(to)f(pro)q(duced)i(a)120
775 y(giv)o(en)f(piece)h(of)f(encrypted)g(text;)h(extract)e(the)h(\014rst)f
(t)o(w)o(o)g(c)o(haracters)120 824 y(of)f(the)g(encrypted)h(text)f(and)g
(pass)g(the)h(candidate)g(string)f(and)g(those)120 874 y(t)o(w)o(o)12
b(c)o(haracters)i(to)f Fm(crypt\(\))p Fp(.)18 b(If)c(the)g(result)g(is)h
(iden)o(tical)g(to)f(the)f(giv)o(en)120 924 y(encrypted)j(text,)e(y)o(ou'v)o
(e)h(got)f(a)h(matc)o(h.)210 986 y Fm(crypt\("foobar"\))784
983 y Fn(\))902 986 y Fm("J3fSFQfgkp26w")210 1036 y(crypt\("foobar",)22
b("J3"\))784 1033 y Fn(\))902 1036 y Fm("J3fSFQfgkp26w")210
1086 y(crypt\("mumble",)g("J3"\))784 1083 y Fn(\))902 1086
y Fm("J3D0.dh.jjmWQ")210 1136 y(crypt\("foobar",)g("J4"\))784
1133 y Fn(\))902 1136 y Fm("J4AcPxOJ4ncq2")1275 1216 y Fp(F)l(unction)-1449
b Fg(list)20 b Ff(matc)n(h)i Fe(\()p Fm(str)14 b Fk(sub)s(ject)p
Fm(,)h(str)g Fk(pattern)g Fj([)p Fm(,)g Fk(tok)o(en)p Fj(])p
Fe(\))1275 1266 y Fp(F)l(unction)-1449 b Fg(list)20 b Ff(matc)n(h)p
281 1266 18 3 v 20 w(full)k Fe(\()p Fm(str)14 b Fk(sub)s(ject)p
Fm(,)h(str)g Fk(pattern)p Fm(,)f Fj([)p Fm(,)208 1316 y Fk(tok)o(en)g
Fj(])p Fe(\))120 1366 y Fp(Lo)q(oks)g(for)g Fk(pattern)g Fp(as)g(a)g
(substring)h(of)f Fk(sub)s(ject)p Fp(,)g(where)h Fk(pattern)f
Fp(m)o(ust)120 1416 y(start)g(on)g(a)h(w)o(ord)f(b)q(oundary)l(.)20
b(W)l(ord)15 b(are)f(separated)g(b)o(y)h(spaces,)g(or)f(b)o(y)120
1465 y Fk(tok)o(en)h Fp(if)g(giv)o(en.)21 b(Returns)15 b(1)g(if)h(a)f(matc)o
(h)g(w)o(as)f(found,)h(0)g(if)h(not.)210 1528 y Fm(match\("foo)22
b(bar)i(baz",)f("foo"\))1285 1525 y Fn(\))1355 1528 y Fm(1)210
1578 y(match\("foo)f(bar)i(baz",)f("f"\))1285 1575 y Fn(\))1355
1578 y Fm(1)210 1627 y(match\("foo)f(bar)i(baz",)f("o"\))1285
1624 y Fn(\))1355 1627 y Fm(0)210 1677 y(match\("large)f(green)h(monster",)g
("green"\))1285 1674 y Fn(\))1355 1677 y Fm(1)210 1727 y(match\("large)f
(green)h(monster",)g("gre"\))1285 1724 y Fn(\))1355 1727 y
Fm(1)210 1777 y(match\("large*green*monster)o(",)e("monster",)i("*"\))1285
1774 y Fn(\))1355 1777 y Fm(1)120 1839 y(match_full)e Fp(is)i(the)f(same)g
(as)g Fm(match)p Fp(,)h(except)f(that)g Fk(pattern)g Fp(m)o(ust)120
1889 y(matc)o(h)c(a)h(full)i(w)o(ord)d(within)i Fk(sub)s(ject)p
Fp(.)32 b(\(Useful)19 b(for)g(Tin)o(yMUD-st)o(yle)120 1939
y(exit)d(matc)o(hing.\))210 2001 y Fm(match_full\("foo)22 b(bar)h(baz",)g
("foo"\))1309 1998 y Fn(\))210 2051 y Fm(1)210 2101 y(match_full\("foo)f(bar)
h(baz",)g("f"\))1309 2098 y Fn(\))210 2150 y Fm(0)210 2200
y(match_full\("out;back;exit;)o(leave",)d("out",)j(";"\))1309
2197 y Fn(\))210 2250 y Fm(1)p eop
%%Page: 28 30
29 bop 0 -58 a Fp(28)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)210
183 y Fm(match_full\("out;back;exit;)o(leave",)20 b("ou",)k(";"\))1309
180 y Fn(\))210 233 y Fm(0)0 395 y Fi(2.4.4)30 b(Op)r(erations)15
b(on)g(lists)1275 521 y Fp(F)l(unction)-1449 b Fg(num)20 b
Ff(lengthof)i Fe(\()p Fm(list)14 b Fk(list)q Fe(\))120 570
y Fp(Returns)h(the)g(n)o(um)o(b)q(er)g(of)g(elemen)o(ts)g(in)h
Fk(list)p Fp(.)k(It)15 b(is)g(also)g(p)q(ermissible)j(to)120
620 y(pass)c(a)g(string)g(to)g Fm(lengthof\(\))p Fp(;)e(see)j(the)f
(description)i(in)f(the)f(previous)120 670 y(section.)210 736
y Fm(lengthof\({1,)22 b(2,)i(3}\))736 733 y Fn(\))854 736 y
Fm(3)210 785 y(lengthof\({}\))736 782 y Fn(\))854 785 y Fm(0)1275
882 y Fp(F)l(unction)-1449 b Fg(list)20 b Ff(listinsert)25
b Fe(\()p Fm(list)14 b Fk(list)p Fm(,)i Fk(v)m(alue)j Fj([)p
Fm(,)14 b(num)h Fk(index)s Fj(])p Fe(\))1275 932 y Fp(F)l(unction)-1449
b Fg(list)20 b Ff(listapp)r(end)j Fe(\()p Fm(list)14 b Fk(list)p
Fm(,)i Fk(v)m(alue)j Fj([)p Fm(,)c(num)g Fk(index)s Fj(])p
Fe(\))120 982 y Fp(These)g(functions)g(return)f(a)h(cop)o(y)f(of)g
Fk(list)i Fp(with)f Fk(v)m(alue)j Fp(added)d(as)g(a)f(new)120
1032 y(elemen)o(t.)41 b Fm(listinsert\(\))20 b Fp(and)i Fm(listappend\(\))e
Fp(add)i Fk(v)m(alue)k Fp(b)q(efore)120 1081 y(and)17 b(after)f(\(resp)q
(ectiv)o(ely\))h(the)g(existing)h(elemen)o(t)f(with)g(the)g(giv)o(en)g
Fk(in-)120 1131 y(dex)p Fp(,)e(if)h(pro)o(vided.)120 1197 y(The)f(follo)o
(wing)h(three)g(expressions)g(alw)o(a)o(ys)e(ha)o(v)o(e)h(the)g(same)g(v)m
(alue:)210 1262 y Fm(listinsert\()p Fk(list)p Fm(,)23 b Fk(elemen)o(t)p
Fm(,)i Fk(index)s Fm(\))210 1312 y(listappend\()p Fk(list)p
Fm(,)e Fk(elemen)o(t)p Fm(,)i Fk(index)j Fm(-)c(1\))120 1377
y Fp(If)17 b Fk(index)k Fp(is)c(not)f(pro)o(vided,)h(then)g
Fm(listappend\(\))d Fp(adds)j(the)f Fk(v)m(alue)21 b Fp(at)120
1427 y(the)15 b(end)h(of)f(the)g(list)h(and)g Fm(listinsert\(\))d
Fp(adds)i(it)h(at)e(the)i(b)q(eginning.)210 1493 y Fm(x)24
b(=)f({1,)h(2,)f(3};)210 1543 y(listappend\(x,)f(4,)i(2\))736
1540 y Fn(\))854 1543 y Fm({1,)g(2,)f(4,)h(3})210 1592 y(listinsert\(x,)e(4,)
i(2\))736 1589 y Fn(\))854 1592 y Fm({1,)g(4,)f(2,)h(3})210
1642 y(listappend\(x,)e(4\))736 1639 y Fn(\))854 1642 y Fm({1,)i(2,)f(3,)h
(4})210 1692 y(listinsert\(x,)e(4\))736 1689 y Fn(\))854 1692
y Fm({4,)i(1,)f(2,)h(3})1275 1789 y Fp(F)l(unction)-1449 b
Fg(list)20 b Ff(listdelete)26 b Fe(\()p Fm(list)14 b Fk(list)p
Fm(,)i(num)f Fk(index)s Fe(\))120 1839 y Fp(Returns)21 b(a)g(cop)o(y)g(of)f
Fk(list)j Fp(with)e(the)g Fk(index)s Fp(th)h(elemen)o(t)f(remo)o(v)o(ed.)37
b(If)120 1888 y Fk(index)16 b Fp(is)d(not)e(in)i(the)f(range)f(`)p
Fm([1..length\()p Fk(list)q Fm(\)])p Fp(',)g Fm(E_RANGE)f Fp(is)j(raised.)210
1954 y Fm(x)24 b(=)f({"foo",)g("bar",)g("baz"};)210 2004 y(listdelete\(x,)f
(2\))665 2001 y Fn(\))783 2004 y Fm({"foo",)h("baz"})1275 2101
y Fp(F)l(unction)-1449 b Fg(list)20 b Ff(listassign)k Fe(\()p
Fm(list)14 b Fk(list)p Fm(,)i Fk(v)m(alue)p Fm(,)g(num)f Fk(index)s
Fe(\))120 2150 y Fp(Returns)23 b(a)e(cop)o(y)h(of)g Fk(list)i
Fp(with)e(the)g Fk(index)s Fp(th)i(elemen)o(t)f(replaced)g(b)o(y)120
2200 y Fk(v)m(alue)p Fp(.)d(If)13 b Fk(index)k Fp(is)d(not)e(in)i(the)e
(range)h(`)p Fm([1..length\()p Fk(list)q Fm(\)])p Fp(',)e Fm(E_RANGE)120
2250 y Fp(is)16 b(raised.)p eop
%%Page: 29 31
30 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(29)210 183 y Fm(x)24 b(=)f({"foo",)g("bar",)g("baz"};)210
233 y(listassign\(x,)f("mumble",)h(2\))903 230 y Fn(\))1021
233 y Fm({"foo",)g("mum-)210 283 y(ble",)g("baz"})1275 366
y Fp(F)l(unction)-1449 b Fg(list)20 b Ff(setadd)i Fe(\()p Fm(list)14
b Fk(list)p Fm(,)i Fk(v)m(alue)s Fe(\))1275 416 y Fp(F)l(unction)-1449
b Fg(list)20 b Ff(setremo)n(v)n(e)i Fe(\()p Fm(list)14 b Fk(list)p
Fm(,)i Fk(v)m(alue)s Fe(\))120 466 y Fp(Returns)i(a)f(cop)o(y)h(of)f
Fk(list)i Fp(with)f(the)g(giv)o(en)g Fk(v)m(alue)k Fp(added)c(or)f(remo)o(v)o
(ed,)120 516 y(as)f(appropriate;)f Fk(list)j Fp(is)f(treated)e(as)h(a)f
(mathematical)h(set.)22 b Fm(setadd\(\))120 566 y Fp(only)g(adds)f
Fk(v)m(alue)j Fp(if)e(it)f(is)h(not)e(already)h(an)g(elemen)o(t)h(of)f
Fk(list)p Fp(.)38 b Fk(v)m(alue)120 615 y Fp(is)22 b(added)g(at)f(the)h(end)g
(of)f(the)g(resulting)i(list,)g(if)f(at)f(all.)40 b(Similarly)l(,)120
665 y Fm(setremove\(\))19 b Fp(returns)i(a)f(list)h(iden)o(tical)i(to)d
Fk(list)i Fp(if)f Fk(v)m(alue)k Fp(is)c(not)f(an)120 715 y(elemen)o(t.)25
b(If)17 b Fk(v)m(alue)j Fp(app)q(ears)d(more)f(than)h(once)g(in)g
Fk(list)p Fp(,)g(only)h(the)e(\014rst)120 765 y(o)q(ccurrence)g(is)g(remo)o
(v)o(ed)f(in)h(the)f(returned)h(cop)o(y)l(.)210 827 y Fm(setadd\({1,)22
b(2,)i(3},)g(3\))903 824 y Fn(\))1021 827 y Fm({1,)g(2,)f(3})210
877 y(setadd\({1,)f(2,)i(3},)g(4\))903 874 y Fn(\))1021 877
y Fm({1,)g(2,)f(3,)h(4})210 927 y(setremove\({1,)e(2,)i(3},)f(3\))903
924 y Fn(\))1021 927 y Fm({1,)h(2})210 977 y(setremove\({1,)e(2,)i(3},)f(4\))
903 974 y Fn(\))1021 977 y Fm({1,)h(2,)f(3})210 1026 y(setremove\({1,)f(2,)i
(3,)f(2},)h(2\))903 1023 y Fn(\))1021 1026 y Fm({1,)g(3,)f(2})0
1152 y Fi(2.4.5)30 b(Op)r(erations)15 b(on)g(ob)s(jects)1275
1265 y Fp(F)l(unction)-1449 b Fg(obj)20 b Ff(clone)j Fe(\(\))120
1314 y Fp(Clone)14 b(the)f(curren)o(t)g(ob)s(ject.)18 b(A)13
b(new)g(ob)s(ject)g(is)g(created,)g(whose)g(paren)o(t)120 1364
y(is)j(the)g(curren)o(t)g(ob)s(ject.)22 b(Returns)16 b(the)g(ob)s(ject)f(ID)h
(of)g(the)g(new)g(ob)s(ject.)120 1414 y(If)h(the)g(curren)o(t)g(ob)s(ject)f
(no)h(longer)g(exists)g(\(ie.,)g(has)g(b)q(een)h(destro)o(y)o(ed\),)120
1464 y(`)p Fm(#-1)p Fp(')c(is)i(returned.)1275 1547 y(F)l(unction)-1449
b Fg(void)20 b Ff(destro)n(y)i Fe(\(\))120 1597 y Fp(Destro)o(y)16
b(the)i(curren)o(t)f(ob)s(ject.)26 b(The)17 b(ob)s(ject)g(itself)h(is)g(resp)
q(onsible)i(for)120 1647 y(cleaning)15 b(up)f(an)o(y)f(references)h(to)f
(itself)h(prior)g(to)f(this)h(call.)20 b(This)14 b(migh)o(t)120
1697 y(include)g(remo)o(ving)d(an)o(y)g(con)o(tained)h(ob)s(jects,)g
(re-paren)o(ting)g(or)f(destro)o(y-)120 1747 y(ing)16 b(an)o(y)f(instances)h
(of)e(it,)h(etc.)1275 1830 y(F)l(unction)-1449 b Fg(void)20
b Ff(c)n(hparen)n(ts)j Fe(\()p Fm(list)14 b Fk(list)q Fe(\))1275
1901 y Fp(F)l(unction)-1449 b Fg(void)20 b Ff(call)p 210 1901
18 3 v 22 w(v)n(erb)j Fe(\()p Fm(str)15 b Fk(string)t Fe(\))120
1951 y Fm(call_verb)9 b Fp(isn't)i(a)f(function,)i(it's)e(a)h(sp)q(ecial)h
(metho)q(d;)g(when)f(an)g(ob)s(ject)120 2001 y(receiv)o(es)g(the)g
Fm(call_verb)e Fp(message,)i(the)f(serv)o(er)g(in)o(tercepts)h(it)g(and)g
(calls)120 2051 y(the)20 b(appropriate)f(v)o(erb.)34 b(The)19
b(argumen)o(t)g(should)i(b)q(e)f(the)g(command)120 2101 y(string)14
b(to)f(b)q(e)i(parsed,)f(whic)o(h)g(is)h(then)f(matc)o(hed)g(against)f(eac)o
(h)h(v)o(erb)g(on)120 2150 y(the)g(ob)s(ject.)19 b(If)14 b(a)g(matc)o(h)f(is)
i(found,)f(the)g(asso)q(ciated)g(metho)q(d)g(is)h(called,)120
2200 y(with)g(the)f(parsed)h(results)f(in)h Fm(args)p Fp(.)k(\()p
Fm(args[1])973 2202 y Fn(\021)1028 2200 y Fm(verb)p Fp(,)14
b Fm(args[2])1338 2202 y Fn(\021)120 2250 y Fm(dobj)p Fp(,)g
Fm(args[3])432 2252 y Fn(\021)488 2250 y Fm(prep)p Fp(,)h Fm(args[4])800
2252 y Fn(\021)857 2250 y Fm(iobj)p Fp(\).)p eop
%%Page: 30 32
31 bop 0 -58 a Fp(30)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)1275
183 y(F)l(unction)-1449 b Fg(void)20 b Ff(lo)r(c)n(k)k Fe(\()p
Fm(str)14 b Fk(string)t Fe(\))120 233 y Fp(This)e(function)f(is)h(used)g(to)e
(lo)q(c)o(k)h(an)g(ob)s(ject,)g(to)g(prev)o(en)o(t)f(another)h(execu-)120
283 y(tion)h(stream)g(from)f(mo)q(difying)j(the)e(ob)s(ject)g(b)q(efore)g
(the)h(curren)o(t)f(stream)120 333 y(is)19 b(\014nished)i(with)e(it)g(\(see)f
(the)h(section)g(on)g(lo)q(c)o(king\).)31 b(The)19 b(argumen)o(t)120
382 y(is)e(an)f(arbitrary)g(string,)g(the)h(name)f(of)g(the)g(lo)q(c)o(k)h
(to)f(place)h(on)f(the)h(ob-)120 432 y(ject.)j(Lo)q(c)o(ks)14
b(placed)i(b)o(y)f(an)g(execution)g(thread)g(remain)g(in)g(e\013ect)g(un)o
(til)120 482 y(a)g(corresp)q(onding)h Fm(unlock\(\))e Fp(call,)i(or)f(un)o
(til)h(the)f(thread)g(terminates.)1275 569 y(F)l(unction)-1449
b Fg(void)20 b Ff(rm)p 200 569 18 3 v 19 w(v)n(erb)j Fe(\()p
Fm(str)14 b Fk(v)o(erbname)s Fe(\))120 619 y Fp(Remo)o(v)o(es)19
b(the)g(\014rst)g(v)o(erb)g(named)g Fk(v)o(erbname)j Fp(from)c(the)h(curren)o
(t)g(ob-)120 669 y(ject.)52 b(The)27 b(argumen)o(t)e(ma)o(y)g(also)i(b)q(e)f
(a)g(string)g(represen)o(ting)h(the)120 719 y(n)o(um)o(b)q(er)20
b(indexing)h(the)e(v)o(erb)h(to)e(b)q(e)i(remo)o(v)o(ed)f(\(starting)f(at)h
(0\).)32 b(eg.,)120 768 y(`)p Fm(rm_verb\("3"\))p Fp(')13 b(w)o(ould)i(remo)o
(v)o(e)g(the)g(4th)g(v)o(erb.)1275 856 y(F)l(unction)-1449
b Fg(void)20 b Ff(rm)p 200 856 V 19 w(metho)r(d)h Fe(\()p Fm(str)14
b Fk(metho)q(dname)s Fe(\))120 905 y Fp(Remo)o(v)o(es)19 b(the)g(indicated)h
(metho)q(d)f(from)f(the)h(curren)o(t)g(ob)s(ject.)30 b(Note)120
955 y(that)22 b(COOLMUD)g(has)g(sp)q(ecial)i(pro)o(vision)f(to)f(allo)o(w)g
(a)g(metho)q(d)h(to)120 1005 y(remo)o(v)o(e)17 b(itself)j(and)e(con)o(tin)o
(ue)h(executing.)30 b(It)18 b(w)o(on't)f(b)q(e)i(actually)g(de-)120
1055 y(stro)o(y)o(ed)14 b(un)o(til)j(the)e(metho)q(d)g(\014nishes.)1275
1142 y(F)l(unction)-1449 b Fg(void)20 b Ff(rm)p 200 1142 V
19 w(v)m(ar)i Fe(\()p Fm(str)14 b Fk(v)m(ariablename)s Fe(\))120
1192 y Fp(Remo)o(v)o(es)h(the)g(indicated)i(v)m(ariable)g(from)d(the)i
(curren)o(t)f(ob)s(ject.)1275 1279 y(F)l(unction)-1449 b Fg(void)20
b Ff(unlo)r(c)n(k)j Fe(\()p Fm(str)15 b Fk(string)t Fe(\))120
1329 y Fp(Remo)o(v)o(es)f(the)g(indicated)i(lo)q(c)o(k)f(from)f(the)g(curren)
o(t)g(ob)s(ject.)19 b(If)c(an)o(y)e(exe-)120 1378 y(cution)i(threads)e(are)h
(w)o(aiting)g(for)f(this)i(lo)q(c)o(k)f(to)f(b)q(e)i(remo)o(v)o(ed,)e(they)h
(will)120 1428 y(execute.)1275 1515 y(F)l(unction)-1449 b Fg(void)20
b Ff(add)p 219 1515 V 20 w(v)n(erb)j Fe(\()p Fm(str)14 b Fk(v)o(erbname)p
Fm(,)h(str)g Fk(prep)q(osition)p Fm(,)208 1565 y(str)f Fk(metho)q(dname)s
Fe(\))120 1615 y Fp(Adds)20 b(a)f(v)o(erb)h(to)f(the)g(curren)o(t)h(ob)s
(ject.)32 b(The)20 b(\014rst)f(argumen)o(t)g(is)h(the)120 1665
y(name)e(of)f(the)h(v)o(erb.)28 b(The)18 b(second)h(argumen)o(t)e(is)h(the)g
(prep)q(osition,)h(or)120 1715 y(`)p Fm("")p Fp(')e(for)h(none.)29
b(The)19 b(third)g(argumen)o(t)e(is)i(the)f(name)h(of)e(the)i(metho)q(d)120
1764 y(to)d(call)h(in)g(the)g(curren)o(t)f(ob)s(ject)f(when)i(the)g(v)o(erb)f
(gets)g(triggered.)23 b(The)120 1814 y(v)o(erb)16 b(is)h(added)g(to)e(the)i
(end)f(of)g(the)h(ob)s(ject's)e(v)o(erb)h(list,)h(unless)g(a)f(v)o(erb)120
1864 y(with)21 b(the)f(same)g(name)h(and)f(no)g(prep)q(osition)i(exists,)g
(in)f(whic)o(h)g(case)120 1914 y(it)g(is)g(inserted)g(b)q(efore)g(that)e(v)o
(erb.)36 b(This)21 b(prev)o(en)o(ts)f(a)g(v)o(erb)g(with)h(no)120
1964 y(prep)q(osition)16 b(masking)g(one)f(with)h(a)f(prep)q(osition.)1275
2051 y(F)l(unction)-1449 b Fg(void)20 b Ff(setv)m(ar)i Fe(\()p
Fm(str)14 b Fk(string)p Fm(,)h Fk(v)m(alue)s Fe(\))120 2101
y Fp(Sets)c(a)g(v)m(ariable,)i(sp)q(eci\014ed)g(in)f Fk(string)p
Fp(,)g(on)f(the)g(curren)o(t)g(ob)s(ject)g(to)f Fk(v)m(alue)p
Fp(.)120 2150 y Fm(E_VARNF)19 b Fp(is)j(raised)e(if)h(the)g(v)m(ariable)h(do)
q(esn't)e(exist,)i(and)f Fm(E_TYPE)e Fp(is)120 2200 y(raised)j(if)g(there's)f
(a)g(t)o(yp)q(e)g(mismatc)o(h)g(\(either)h(b)q(et)o(w)o(een)g(an)f(existing)
120 2250 y(v)m(ariable,)16 b(or)f(an)g(inherited)i(one\).)p
eop
%%Page: 31 33
32 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(31)1275 183 y(F)l(unction)-1449 b Fg(list)20 b Ff(v)n(erbs)i
Fe(\(\))120 233 y Fp(Returns)c(a)f(list)i(of)e(v)o(erbs)g(on)h(the)f(curren)o
(t)h(ob)s(ject.)26 b(Eac)o(h)17 b(elemen)o(t)h(of)120 283 y(the)12
b(list)h(is)g(a)f(3-elemen)o(t)g(list,)h(consisting)g(of)f(3)g(strings:)18
b(the)12 b(v)o(erb)g(name,)120 333 y(the)j(prep)q(osition,)h(and)g(the)f
(metho)q(d)g(to)g(call.)1275 414 y(F)l(unction)-1449 b Fg(list)20
b Ff(v)m(ars)i Fe(\(\))120 464 y Fp(Returns)17 b(a)f(list)h(of)f(v)m
(ariables)h(on)f(the)h(curren)o(t)f(ob)s(ject.)22 b(Eac)o(h)16
b(elemen)o(t)120 514 y(of)f(the)g(list)h(is)g(a)f(string)g(con)o(taining)h
(the)f(name)g(of)g(the)g(v)m(ariable.)1275 596 y(F)l(unction)-1449
b Fg(value)20 b Ff(getv)m(ar)i Fe(\()p Fm(str)15 b Fk(v)m(ariablename)s
Fe(\))120 646 y Fp(Gets)i(the)h(v)m(alue)h(of)e(the)h(indicated)i(v)m
(ariable)f(on)e(the)h(curren)o(t)g(ob)s(ject.)120 695 y(This)g(allo)o(ws)f
(the)g(use)h(of)e(an)h(arbitrary)g(string)g(to)f(get)h(the)g(v)m(alue)i(of)d
(a)120 745 y(v)m(ariable.)21 b(\(eg.,)14 b(`)p Fm(getvar\("abc")f(+)i
("def"\))p Fp('\))1275 827 y(F)l(unction)-1449 b Fg(list)20
b Ff(metho)r(ds)g Fe(\(\))120 877 y Fp(Returns)d(a)g(list)g(of)f(metho)q(ds)h
(on)g(the)f(curren)o(t)h(ob)s(ject.)24 b(Eac)o(h)16 b(elemen)o(t)120
927 y(of)f(the)g(list)h(is)g(a)f(string)g(con)o(taining)h(the)f(name)g(of)g
(the)g(metho)q(d.)1275 1008 y(F)l(unction)-1449 b Fg(num)20
b Ff(hasparen)n(t)i Fe(\()p Fm(obj)14 b Fk(ob)s(ject)q Fe(\))120
1058 y Fp(Returns)20 b(a)g(p)q(ositiv)o(e)g(v)m(alue)h(if)g(the)e(curren)o(t)
h(ob)s(ject)f(has)h Fk(ob)s(ject)g Fp(as)f(a)120 1108 y(paren)o(t.)39
b(This)23 b(function)f(lo)q(oks)g(recursiv)o(ely)i(on)d(all)i(paren)o(ts)e
(of)h(the)120 1158 y(curren)o(t)17 b(ob)s(ject,)h(so)f(it)h(will)h(return)f
(1)f(if)h(the)g(ob)s(ject)f(has)g Fk(ob)s(ject)h Fp(as)f(a)120
1208 y(paren)o(t)e(an)o(ywhere)g(in)h(its)f(inheritance)i(tree,)e(and)g(0)g
(otherwise.)1275 1289 y(F)l(unction)-1449 b Fg(str)20 b Ff(sp)r(ew)p
225 1289 18 3 v 20 w(metho)r(d)h Fe(\()p Fm(str)14 b Fk(metho)q(dname)s
Fe(\))120 1339 y Fp(Returns)i(a)e(string)h(con)o(taining)h(the)g(in)o(ternal)
g(stac)o(k-mac)o(hine)f(co)q(de)h(for)120 1389 y(metho)q(d)i
Fk(metho)q(dname)p Fp(.)28 b(This)19 b(co)q(de)f(is)h(prett)o(y)e(unin)o
(telligibl)q(e)k(unless)120 1439 y(y)o(our)12 b(brain)g(w)o(orks)f(in)i(RPN.)
f(Ev)o(en)h(then,)f(some)g(instructions)h(are)f(hard)120 1489
y(to)e(\014gure)g(out,)h(and)f(there's)g(not)g(m)o(uc)o(h)g(p)q(oin)o(t.)19
b(Only)11 b(for)f(the)g(habitually)120 1539 y(curious.)1275
1620 y(F)l(unction)-1449 b Fg(str)20 b Ff(list)p 176 1620 V
22 w(metho)r(d)h Fe(\()p Fm(str)14 b Fk(metho)q(dname)k Fj([)p
Fm(,)d(num)g Fk(lineno)208 1670 y Fj([)p Fm(,)f(num)h Fk(fullbrac)o(k)o(ets)j
Fj([)p Fm(,)c(num)h Fk(inden)o(t)q Fj(]]])p Fe(\))120 1720
y Fp(Returns)23 b(a)f(string)h(con)o(taining)g(the)g(decompiled)i(co)q(de)e
(for)f(metho)q(d)120 1770 y Fk(metho)q(dname)p Fp(.)35 b(This)21
b(w)o(orks)e(b)o(y)i(turning)f(the)h(stac)o(k)e(mac)o(hine)i(co)q(de)120
1820 y(bac)o(k)g(in)o(to)h(readable)g(form.)38 b(It)21 b(do)q(es)h(automatic)
f(inden)o(tation,)i(line)120 1869 y(n)o(um)o(b)q(ering,)18
b(and)f(smart)f(brac)o(k)o(eting)g(\(ie.,)h(it)g(will)i(use)e(the)g(minim)o
(um)120 1919 y(n)o(um)o(b)q(er)c(of)f(brac)o(k)o(ets)g(when)h(decompiling)i
(an)d(expression\).)20 b(The)13 b(three)120 1969 y(optional)22
b(argumen)o(ts)f(are)g(n)o(umeric)i(argumen)o(ts)e(whic)o(h)h(con)o(trol)g
(the)120 2019 y(decompilation:)120 2081 y Fk(lineno)123 b Fp(T)l(urns)15
b(line)i(n)o(um)o(b)q(ering)f(on)g(and)f(o\013.)120 2141 y
Fk(fullbrac)o(k)o(ets)360 2200 y Fp(When)22 b(on,)h(dum)o(b)f(brac)o(k)o
(eting)g(will)h(b)q(e)f(used)h(in)f(ev)o(ery)360 2250 y(expression.)f
(Default)15 b(is)h(o\013,)e(or)g(smart)h(brac)o(k)o(eting.)p
eop
%%Page: 32 34
33 bop 0 -58 a Fp(32)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)120
183 y Fk(inden)o(t)116 b Fp(The)15 b(n)o(um)o(b)q(er)h(of)f(spaces)g(to)g
(use)g(in)h(inden)o(ting)h(the)e(co)q(de.)1275 282 y(F)l(unction)-1449
b Fg(void)20 b Ff(ec)n(ho)j Fe(\()p Fm(str)14 b Fk(string)t
Fe(\))120 332 y Fp(Displa)o(y)i Fk(string)j Fp(to)14 b(the)i(curren)o(t)f(ob)
s(ject,)f(a)h(pla)o(y)o(er.)1275 431 y(F)l(unction)-1449 b
Fg(void)20 b Ff(quit)k Fe(\(\))120 480 y Fp(Disconnect)16 b(the)f(curren)o(t)
g(ob)s(ject,)g(a)f(pla)o(y)o(er.)1275 579 y(F)l(unction)-1449
b Fg(void)20 b Ff(program)f Fe(\()p Fj([)p Fm(obj)14 b Fk(ob)s(ject)p
Fm(,)h(str)g Fk(metho)q(dname)s Fj(])p Fe(\))120 629 y Fp(En)o(ter)i
(programming)g(mo)q(de.)28 b(This)18 b(sets)f(a)h(\015ag)f(on)g(the)h(pla)o
(y)o(er's)f(de-)120 679 y(scriptor)c(suc)o(h)h(that)f(all)i(input)f(from)f
(the)g(pla)o(y)o(er)h(is)g(div)o(erted)g(to)f(a)g(tem-)120
729 y(p)q(orary)h(\014le.)20 b(When)15 b(the)g(pla)o(y)o(er)f(en)o(ters)g(`)p
Fm(.)p Fp(',)f(the)i(\014le)g(is)g(compiled,)h(and)120 779
y(then)i(erased.)28 b(There)18 b(can)g(either)h(b)q(e)f(no)g(argumen)o(ts,)g
(in)g(whic)o(h)h(case)120 828 y(the)e(serv)o(er)g(exp)q(ects)g(a)g(series)g
(of)g(ob)s(jects,)f(or)g(t)o(w)o(o)g(argumen)o(ts,)g(whic)o(h)120
878 y(should)k(b)q(e)g(the)g(ob)s(ject)e(and)i(metho)q(d)g(to)e(program.)31
b(In)20 b(either)g(case,)120 928 y(the)c(serv)o(er)g(curren)o(tly)h(uses)g(a)
f(built-in)i(set)f(of)e(p)q(ermissions)j(c)o(hec)o(ks)f(to)120
978 y(determine)c(whether)f(the)f(pla)o(y)o(er)h(ma)o(y)f(reprogram)g(that)g
(ob)s(ject:)17 b(either)120 1028 y(they)11 b(m)o(ust)f(b)q(e)i(in)f(the)g(ob)
s(ject's)f Fm(owners)g Fp(list,)i(or)f(in)g Fm(SYS_OBJ.wizards)p
Fp(.)1275 1126 y(F)l(unction)-1449 b Fg(num)20 b Ff(serv)n(erof)h
Fe(\()p Fm(obj)15 b Fk(ob)s(ject)q Fe(\))120 1176 y Fp(Returns)g(a)e(n)o(um)o
(b)q(er)h(represen)o(ting)h(the)f(serv)o(er)g(ID)g(of)f Fk(ob)s(ject)p
Fp(.)19 b(This)c(ID)120 1226 y(is)f(used)g(in)o(ternally)g(b)o(y)g(the)f
(serv)o(er,)g(and)h(has)f(no)g(meaning)h(except)g(that)120
1276 y(ID)h(zero)g(is)h(the)f(lo)q(cal)i(MUD.)d(So)h(the)g(statemen)o(t)210
1342 y Fm(if)24 b(\(!serverof\(obj\)\))305 1392 y(...)210 1442
y(endif)120 1508 y Fp(w)o(ould)16 b(ev)m(aluate)g(to)e(true)h(if)h
Fk(ob)s(ject)g Fp(is)f(a)g(lo)q(cal)h(ob)s(ject.)1275 1607
y(F)l(unction)-1449 b Fg(str)20 b Ff(serv)n(ername)h Fe(\()p
Fm(obj)14 b Fk(ob)s(ject)q Fe(\))120 1656 y Fp(Returns)i(a)f(string)g
(represen)o(ting)h(the)f(serv)o(er)g(name)g(part)g(of)f Fk(ob)s(ject)p
Fp(.)0 1824 y Fi(2.4.6)30 b(Miscellaneous)16 b(op)r(erations)1275
1952 y Fp(F)l(unction)-1449 b Fg(num)20 b Ff(random)g Fe(\()p
Fm(num)14 b Fk(n)p Fe(\))120 2002 y Fp(Returns)i(a)f(random)f(v)m(alue)j(b)q
(et)o(w)o(een)e(1)g(and)h Fk(n)p Fp(.)1275 2101 y(F)l(unction)-1449
b Fg(num)20 b Ff(time)i Fe(\(\))120 2150 y Fp(Returns)15 b(the)f(curren)o(t)g
(time,)h(represen)o(ted)g(as)f(the)g(n)o(um)o(b)q(er)h(of)f(seconds)120
2200 y(that)f(ha)o(v)o(e)h(elapsed)h(since)h(midnigh)o(t)f(on)f(1)g(Jan)o
(uary)g(1970,)e(Green)o(wic)o(h)120 2250 y(Mean)j(Time.)p eop
%%Page: 33 35
34 bop 0 -58 a Fp(Chapter)15 b(2:)k(The)d(COOL)g(programming)f(language)527
b(33)0 183 y Fi(2.4.7)30 b(System)16 b(functions)1275 299 y
Fp(F)l(unction)-1449 b Fg(void)20 b Ff(sh)n(utdo)n(wn)i Fe(\(\))120
349 y Fp(Sh)o(uts)16 b(do)o(wn)h(the)f(MUD.)g(The)g(database)g(is)h(written,)
g(remote)e(serv)o(ers)120 399 y(disconnected,)i(and)e(the)g(COOLMUD)h(pro)q
(cess)f(terminates.)1275 486 y(F)l(unction)-1449 b Fg(void)20
b Ff(dump)h Fe(\(\))120 536 y Fp(Syncs)16 b(the)f(cac)o(he)g(to)f(the)h
(database)g(so)f(that)g(the)h(database)g(on)g(disk)g(is)120
585 y(curren)o(t.)1275 672 y(F)l(unction)-1449 b Fg(void)20
b Ff(writelog)k Fe(\()p Fm(str)14 b Fk(string)t Fe(\))120 722
y Fp(W)l(rites)h Fk(string)k Fp(to)c(the)g(log\014le,)h(prep)q(ended)h(b)o(y)
e(a)g(timestamp.)1275 809 y(F)l(unction)-1449 b Fg(num)20 b
Ff(c)n(hec)n(kmem)i Fe(\(\))120 859 y Fp(Returns)e(a)g(string)f(sho)o(wing)h
(the)g(amoun)o(t)f(of)g(memory)g(dynamically)120 909 y(allo)q(cated,)25
b(and)e(ho)o(w)f(man)o(y)g(c)o(h)o(unks)h(it)g(w)o(as)f(allo)q(cated)i(in.)43
b(If)23 b(the)120 959 y(serv)o(er)f(w)o(as)g(not)g(compiled)i(with)f
Fm(-DCHECKMEM)p Fp(,)g(this)g(function)g(will)120 1008 y(return)15
b(`)p Fm("Memory)f(checking)g(disabled.")p Fp(')0 1163 y Fo(2.5)33
b(Syn)n(tax)16 b(for)f(ob)t(ject)f(co)r(de)62 1255 y Fp(The)i(syn)o(tax)e
(for)h(the)g(co)q(de)h(of)f(an)g(ob)s(ject)f(is)i(as)f(follo)o(ws:)90
1317 y Fm(object)23 b Fk(ob)s(jectname)185 1367 y(paren)o(t)15
b(declarations)185 1417 y(v)o(erb)h(declarations)185 1466 y(v)m(ariable)h
(declarations)185 1516 y(metho)q(d)f(declarations)90 1566 y
Fm(endobject)62 1628 y Fp(The)g(syn)o(tax)e(for)g(an)h(ob)s(ject)g(name)g(is)
g(the)g(same)g(as)g(for)f(v)m(ariables,)i(giv)o(en)g(ab)q(o)o(v)o(e.)0
1761 y Fi(2.5.1)30 b(P)n(aren)n(t)15 b(declarations)62 1852
y Fp(The)h(syn)o(tax)e(for)h(the)g(paren)o(t)g(declarations)h(is)f(as)g
(follo)o(ws:)90 1914 y Fm(parents)23 b Fk(paren)o(t-1)k Fm(,)d
Fh(:)8 b(:)g(:)22 b Fk(paren)o(t-n)h Fm(;)0 2047 y Fi(2.5.2)30
b(V)-5 b(erb)15 b(declarations)62 2138 y Fp(T)l(o)g(bind)i(a)e(v)o(erb)g(to)f
(a)h(metho)q(d)h(y)o(ou)e(use)i(the)f Fm(verb)g Fp(declaration:)90
2200 y Fm(verb)23 b Fk(string)28 b Fm(=)c Fk(metho)q(d)i Fm(;)90
2250 y(verb)d Fk(string)28 b Fm(:)c Fk(string)k Fm(=)23 b Fk(metho)q(d)j
Fm(;)p eop
%%Page: 34 36
35 bop 0 -58 a Fp(34)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y Fi(2.5.3)30 b(V)-5 b(ariable)15 b(declarations)62 275
y Fp(The)h(syn)o(tax)e(for)h(the)g(v)m(ariable)i(declarations)e(is:)90
337 y Fk(v)m(art)o(yp)q(e)27 b(v)m(ar-1)g Fm(,)d Fh(:)8 b(:)g(:)22
b Fk(v)m(ar-N)29 b Fm(;)62 399 y Fp(Where)19 b Fk(v)m(art)o(yp)q(e)h
Fp(is)f(one)f(of)g Fm(num)p Fp(,)g Fm(str)p Fp(,)g Fm(list)p
Fp(,)g(or)g Fm(obj)p Fp(.)28 b(Y)l(ou)19 b(can)f(ha)o(v)o(e)g(sev)o(eral)0
449 y(lines)d(of)d(v)m(ariable)j(declarations,)f(one)f(for)g(eac)o(h)g
(di\013eren)o(t)g(t)o(yp)q(e,)h(and)f(y)o(ou)g(don't)f(ha)o(v)o(e)0
499 y(to)18 b(ha)o(v)o(e)h(v)m(ariables)h(of)f(the)g(same)f(t)o(yp)q(e)h(all)
h(declared)g(on)f(the)g(same)g(line;)j(y)o(ou)d(can)0 549 y(ha)o(v)o(e)c(sev)
o(eral)g(v)m(ariable)i(declaration)f(lines)h(for)d(the)h(same)g(t)o(yp)q(e.)0
681 y Fi(2.5.4)30 b(Metho)r(d)15 b(declarations)62 773 y Fp(Metho)q(d)g
(declarations)h(lo)q(ok)g(similar)g(to)f(ob)s(ject)f(co)q(de:)90
835 y Fm(method)23 b Fk(metho)q(dname)185 885 y Fm(var)h Fk(lo)q(cal)16
b(v)m(ariable)h(declarations)185 935 y Fm(ignore)23 b Fk(errors)90
984 y Fm(endmethod)p eop
%%Page: 35 37
36 bop 0 -58 a Fp(Chapter)15 b(3:)k(Di\013erences)d(b)q(et)o(w)o(een)g(COOL)g
(and)f(MOO)469 b(35)0 183 y Fl(3)41 b(Di\013erences)13 b(b)r(et)n(w)n(een)i
(COOL)g(and)g(MOO)62 295 y Fp(Lam)o(b)q(daMOO)d(ob)s(jects)e(consist)h(of)f
(attributes,)i(prop)q(erties,)g(and)f(v)o(erbs.)18 b(COOL-)0
345 y(MUD)d(ob)s(jects)f(consist)i(of)e(v)m(ariables)j(and)e(metho)q(ds;)g
(there)h(are)e(no)i(attributes.)62 407 y(COOLMUD)j(ob)s(ject)f(v)m(ariables)i
(and)f(metho)q(ds)f(are)h(similar)g(to)f(Lam)o(b)q(daMOO)0
457 y(prop)q(erties)d(and)f(v)o(erbs.)20 b(With)14 b(Lam)o(b)q(daMOO,)h(all)g
(prop)q(erties)g(can)f(b)q(e)h(accessed)g(b)o(y)0 507 y(other)i(ob)s(jects,)h
(as)f(long)h(as)f(the)h(p)q(ermissions)h(allo)o(w)f(it,)g(whic)o(h)g(they)g
(generally)h(do)0 557 y(except)g(for)g(sp)q(ecial)i(prop)q(erties)e(that)f
(need)i(to)f(b)q(e)g(hidden.)33 b(With)19 b(Lam)o(b)q(daMOO)0
607 y(prop)q(erties)f(ha)o(v)o(e)f(an)g(o)o(wner.)25 b(With)18
b(COOLMUD,)f(ob)s(ject)g(v)m(ariables)h(can)g(only)f(b)q(e)0
656 y(accessed)f(if)f(there)g(is)h(a)e(metho)q(d)i(that)e(pro)o(vides)i
(acces,)e(otherwise)i(the)f(ob)s(ject)f(v)m(ari-)0 706 y(able)j(is)f
(inaccessible.)24 b(COOLMUD)16 b(ob)s(ject)g(v)m(ariables)h(don't)e(ha)o(v)o
(e)g(an)h(o)o(wner,)f(just)0 756 y(the)i(o)o(wners)g(of)g(the)g(ob)s(ject.)26
b(With)18 b(COOLMUD)f(the)h(ob)s(ject)f(v)m(ariables')h(metho)q(ds)0
806 y(that)c(pro)o(vide)h(access)g(to)f(them)h(also)g(completely)h(con)o
(trol)e(an)o(y)h(p)q(ermission)h(sc)o(heme.)62 868 y(COOLMUD)23
b(metho)q(ds)f(don't)f(ha)o(v)o(e)h(a)g(\\debug")g(bit,)i(metho)q(ds)e(can)g
Fm(ignore)0 918 y Fp(sp)q(eci\014c)17 b(errors)e(if)g(they)g(w)o(an)o(t)g
(to.)62 980 y(With)h(COOLMUD)f(command)g(parsing)h(is)g(m)o(uc)o(h)f(more)f
(con)o(trolled)i(b)o(y)g(the)f(ob-)0 1030 y(jects.)35 b(F)l(or)20
b(the)h(sak)o(e)f(of)g(example,)i(let's)e(ignore)h(prep)q(ositions.)37
b(When)21 b(a)f(paly)o(er)0 1080 y(t)o(yp)q(es)15 b(a)f(command,)h(some)f
(simple)j(matc)o(hing)e(is)g(done;)g(all)h(ob)s(jects)e(that)g(ha)o(v)o(e)h
(that)0 1130 y(\\v)o(erb")h(de\014ned)i(on)f(them)g(ha)o(v)o(e)f(the)h(metho)
q(d)g(that's)e(b)q(ound)j(to)e(that)g(v)o(erb)h(called.)0 1180
y(The)g(metho)q(d)f(is)h(resp)q(onsible)h(for)e(c)o(hec)o(king)h(the)g
(argumen)o(ts)e(to)h(see)g(if)h(they)g(matc)o(h)0 1229 y(its)c(ob)s(ject;)f
(e.g.,)g Fm(args[2])g Fp(is)h(t)o(ypically)h(the)f(ob)s(ject)f(and)g
Fm(args[1])g Fp(is)h(the)g(v)o(erb.)19 b(The)0 1279 y(metho)q(d)d(returns)g
(1)g(to)g(signify)h(that)e(the)i(argumen)o(ts)e(didn't)i(matc)o(h)e(for)h(it)
g(and)h(for)0 1329 y(the)i(parser)g(to)g(con)o(tin)o(ue)h(calling)h(metho)q
(ds)e(on)g(other)g(ob)s(jects.)32 b(The)19 b(metho)q(d)h(re-)0
1379 y(turns)14 b(0)g(to)g(sp)q(ecify)h(that)f(it)g(w)o(as)f(the)i(desired)g
(ob)s(ject)f(and)g(the)h(parser)f(stops)f(calling)0 1429 y(metho)q(ds)i(on)g
(the)h(rest)f(of)f(the)i(ob)s(jects.)62 1491 y(With)j(COOLMUD,)f(v)o(erbs)g
(are)g(\\b)q(ound")g(to)g(metho)q(ds.)29 b(Unless)19 b(a)f(metho)q(d)g(is)0
1541 y(b)q(ound)d(to)f(a)g(v)o(erb,)g(it)h(can't)e(b)q(e)j(accessed)e(b)o(y)h
(a)f(pla)o(y)o(er.)19 b(With)c(Lam)o(b)q(daMOO)g(there)0 1590
y(is)k(a)g(\\template")g(sp)q(eci\014ed)i(for)d(the)h(argumen)o(ts)f(when)i
(creating)f(a)g(v)o(erb)g(and)g(the)0 1640 y(template)f(`)p
Fm(this)d(none)f(this)p Fp(')j(is)i(t)o(ypically)h(used)f(to)e(sp)q(ecify)j
(a)e(v)o(erb)g(that)f(isn't)i(to)0 1690 y(b)q(e)d(accessed)h(as)e(a)h
(command)f(t)o(yp)q(ed)h(b)o(y)g(a)f(pla)o(y)o(er;)h(that)f(is,)h(the)g(v)o
(erb)g(will)h(b)q(e)f(used)0 1740 y(as)g(a)g(subroutine.)23
b(With)16 b(COOLMUD)h(y)o(ou)f(simply)h(don't)f(bind)h(the)f(metho)q(d)h(to)e
(a)0 1790 y(v)o(erb)g(if)h(y)o(ou)f(w)o(an)o(t)f(it)h(only)h(used)g(as)f(a)f
(subroutine.)62 1852 y(COOLMUD)24 b(treats)f(assignmen)o(ts)g(as)g(statemen)o
(ts,)h(not)g(expressions.)45 b(This)0 1902 y(means)15 b(that)g(y)o(ou)f
(can't)h(do)g(lo)q(oping)i(constructs)d(lik)o(e)90 1964 y Fm(while)23
b(\(\(var)g(=)h(name.method\))e(!=)i(someval\))185 2014 y Fh(:)8
b(:)g(:)90 2064 y Fm(endwhile)p eop
%%Page: 36 38
37 bop 0 -58 a Fp(36)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)p
eop
%%Page: 37 39
38 bop 0 -58 a Fp(Chapter)15 b(4:)k(Setting)d(up)g(a)f(new)g(COOLMUD)627
b(37)0 183 y Fl(4)41 b(Setting)15 b(up)g(a)g(new)g(COOLMUD)62
295 y Fp(\(explain)i(format)d(of)g(.cfg)h(\014le.\))0 452 y
Fo(4.1)33 b(In)n(terconnecting)16 b(COOLMUDs)p eop
%%Page: 38 40
39 bop 0 -58 a Fp(38)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)p
eop
%%Page: 39 41
40 bop 0 -58 a Fp(F)l(unction)16 b(Index)1155 b(39)0 183 y
Fl(F)-7 b(unction)15 b(Index)0 403 y Fo(A)0 457 y Fd(add)p
62 457 12 2 v 13 w(verb)r Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)t
Fb(30)0 503 y Fd(at)i Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)j Fb(23)0 602 y Fo(C)0 656 y Fd(call)p 82
656 V 13 w(verb)g Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)11
b Fb(29)0 701 y Fd(checkmem)6 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(33)0 747 y Fd(chparent)d Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
11 b Fb(5)0 793 y Fd(chparents)5 b Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
Fb(29)0 838 y Fd(clone)e Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)j
Fb(5,)k(29)0 884 y Fd(crypt)s Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)f Fb(27)0 990 y Fo(D)0 1044 y Fd(destroy)t Fc(:)h(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f Fb(5,)13 b(29)0 1090 y Fd(dump)t Fc(:)6
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
Fb(33)0 1197 y Fo(E)0 1251 y Fd(echo)t Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(32)0 1296 y Fd(else)t Fc(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(19)0 1342 y
Fd(elseif)q Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t
Fb(20)0 1388 y Fd(explode)i Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
11 b Fb(26)0 1494 y Fo(G)0 1548 y Fd(getvar)q Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)t Fb(31)0 1655 y Fo(H)0 1709 y Fd(hasparent)f
Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fb(31)0 1815 y Fo(I)0
1869 y Fd(if)f Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)j Fb(19)0 1915 y Fd(in)f Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fb(16)0 2013 y Fo(L)0 2067
y Fd(lengthof)t Fc(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)h Fb(17,)13 b(26,)g(28)0 2113
y Fd(list)p 82 2113 V 13 w(method)6 b Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
Fb(31)0 2159 y Fd(listappend)s Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
Fb(28)0 2204 y Fd(listassign)s Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
Fb(28)0 2250 y Fd(listdelete)s Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
Fb(28)780 403 y Fd(listinsert)s Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
Fb(28)780 449 y Fd(lock)t Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g Fb(30)780 547 y Fo(M)780 601 y Fd(match)s
Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
Fb(27)780 646 y Fd(match)p 882 646 V 12 w(full)j Fc(:)e(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)k Fb(27)780 692 y Fd(methods)e Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)11 b Fb(31)780 790 y Fo(P)780 844 y Fd(pass)t
Fc(:)6 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
Fb(25)780 889 y Fd(program)i Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)11 b Fb(32)780 995 y Fo(Q)780 1049 y Fd(quit)t Fc(:)6 b(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(32)780 1154 y Fo(R)780
1208 y Fd(random)q Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t
Fb(32)780 1254 y Fd(return)q Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)t Fb(23)780 1300 y Fd(rm)p 822 1300 V 13 w(method)j
Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)11 b Fb(30)780 1345
y Fd(rm)p 822 1345 V 13 w(var)5 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h Fb(30)780 1391 y Fd(rm)p 822 1391 V 13 w(verb)t
Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fb(30)780
1489 y Fo(S)780 1543 y Fd(servername)s Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
Fb(32)780 1588 y Fd(serverof)f Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(32)780 1634 y Fd(setadd)q Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)t Fb(29)780 1680 y Fd(setremove)f Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)j Fb(29)780 1725 y Fd(setvar)q Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)t Fb(30)780 1771 y Fd(shutdown)g Fc(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)k Fb(33)780 1817 y Fd(spew)p 862 1817
V 13 w(method)c Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fb(31)780
1862 y Fd(strcmp)q Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t
Fb(13)780 1968 y Fo(T)780 2022 y Fd(time)t Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(32)780 2067 y Fd(toerr)s
Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
Fb(26)780 2113 y Fd(tonum)s Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)f Fb(26)780 2159 y Fd(toobj)s Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)f Fb(26)780 2204 y Fd(tostr)s Fc(:)h(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f Fb(25)780 2250
y Fd(typeof)t Fc(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h Fb(10,)13
b(25)p eop
%%Page: 40 42
41 bop 0 -58 a Fp(40)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y Fo(U)0 237 y Fd(unlock)q Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)t Fb(30)0 372 y Fo(V)0 426 y Fd(vars)t Fc(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(31)780 183
y Fd(verb)f Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)h Fb(8)780 229 y Fd(verbs)s Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)f Fb(31)780 326 y Fo(W)780 380 y Fd(while)s
Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
Fb(22)780 426 y Fd(writelog)h Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(33)p eop
%%Page: 41 43
42 bop 0 -58 a Fp(V)l(ariable)16 b(Index)1166 b(41)0 183 y
Fl(V)-7 b(ariable)14 b(Index)0 403 y Fo(A)0 457 y Fd(args)8
b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)i Fb(12,)k(17)0
600 y Fo(C)0 654 y Fd(caller)t Fc(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
Fb(12,)13 b(17)0 796 y Fo(E)0 850 y Fd(E)p 22 850 12 2 v 14
w(ARGS)t Fc(:)6 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
Fb(24)0 896 y Fd(E)p 22 896 V 14 w(DIV)i Fc(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)11 b Fb(10,)i(12)0 942 y Fd(E)p 22 942 V 14 w(MAXREC)q
Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)t Fb(17)0
987 y Fd(E)p 22 987 V 14 w(METHODNF)g Fc(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(17)0 1033 y Fd(E)p 22 1033 V 14 w(OBJNF)s Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)f Fb(17)0 1079 y Fd(E)p 22 1079 V 14
w(RANGE)s Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)f
Fb(15)0 1124 y Fd(E)p 22 1124 V 14 w(TYPE)10 b Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)
12 b Fb(12,)g(13,)h(15,)g(16,)g(17,)g(21,)g(24,)g(30)0 1170
y Fd(E)p 22 1170 V 14 w(VARNF)s Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)f Fb(30)0 1216 y Fd(ERR)h Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i Fb(10)780 403 y Fo(L)780 457
y Fd(LIST)t Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
Fb(10)780 553 y Fo(N)780 607 y Fd(NUM)g Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i Fb(10)780 703 y Fo(O)780 757
y Fd(OBJ)e Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)i Fb(10)780 854 y Fo(P)780 908 y Fd(player)t Fc(:)e(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h Fb(11,)13 b(17)780 1012 y Fo(S)780 1065 y Fd(STR)6
b Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i
Fb(10)780 1162 y Fo(T)780 1216 y Fd(this)g Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)i Fb(11,)k(17)p eop
%%Page: 42 44
43 bop 0 -58 a Fp(42)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)p
eop
%%Page: 43 45
44 bop 0 -58 a Fp(Concept)15 b(Index)1166 b(43)0 183 y Fl(Concept)16
b(Index)0 417 y Fo(A)0 471 y Fb(arithmetic)c Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)k Fb(12)0 517 y(assignmen)o(t)15 b(statemen)o(t)9
b Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)j
Fb(11)0 621 y Fo(B)0 675 y Fb(built-in)16 b(functions)7 b Fc(:)f(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
Fb(17,)13 b(24)0 779 y Fo(C)0 833 y Fb(cloning)6 b Fc(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t Fb(5)0 879 y(comparing)15
b(v)n(alues)e Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)12 b Fb(13)0 925 y(conditional)k(execution)5
b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)s Fb(19)0 970 y(conditional)16 b(expressions)9 b Fc(:)d(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g Fb(13)0 1016
y(constan)o(ts)k Fc(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(10)0 1062 y(con)o(v)o(ersions)j Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)11
b Fb(25)0 1107 y(cop)o(y-on-write)f Fc(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)j
Fb(6)0 1211 y Fo(D)0 1265 y Fb(dela)o(y)o(ed)15 b(execution)9
b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)i Fb(23)0 1370 y Fo(E)0 1424 y Fb(errors)d Fc(:)h(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)f
Fb(3,)12 b(4,)h(9,)g(10,)g(24)0 1469 y(expressions)6 b Fc(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)t Fb(9)0 1574 y Fo(I)0 1627 y Fb(inheritance)h
Fc(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)f Fb(6)0 1673 y(iteration)10
b Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)i Fb(21)0
1771 y Fo(L)0 1825 y Fb(list)14 b(extracting)7 b Fc(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)e Fb(15)0 1870 y(list)14 b(op)q(erations)g Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)12
b Fb(28)0 1916 y(lists)f Fc(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)k Fb(3,)i(4,)h(10,)g(15,)g(28)0
1962 y(literals)8 b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
Fb(10)0 2007 y(lo)q(cal)15 b(v)n(ariables)5 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t
Fb(10)0 2105 y Fo(M)0 2159 y Fb(metho)q(d)14 b(argumen)o(ts)c
Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)j Fb(7)0 2204 y(metho)q(d)14 b(v)n(ariables)d Fc(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
Fb(7,)k(10)0 2250 y(metho)q(ds)5 b Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)t Fb(5,)12
b(6,)h(7,)g(17)780 417 y(miscellaneous)j(op)q(erations)c Fc(:)6
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k Fb(32)780
463 y(m)o(ultiple)15 b(inheritance)9 b Fc(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fb(5)780 566
y Fo(N)780 620 y Fb(n)o(um)o(b)q(ers)f Fc(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)t Fb(3,)13 b(10)780 724 y Fo(O)780 778 y Fb(ob)r(ject)g(co)q(de)h(syn)o
(tax)8 b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)i Fb(33)780 823 y(ob)r(ject)13 b(v)n(ariables)e
Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)j Fb(6)780 869 y(ob)r(jects)j Fc(:)6
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)11 b Fb(3,)i(5,)g(10)780 973 y Fo(P)780
1027 y Fb(paren)o(theses)d Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
Fb(18)780 1072 y(paren)o(ts)d Fc(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
Fb(5,)13 b(33)780 1118 y(passing)f Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)k Fb(24)780 1164 y(p)q(ermissions)i Fc(:)6 b(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)j Fb(6)780 1209 y(precedence)e Fc(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g Fb(18)780 1255 y(prep)q(ositions)i Fc(:)e(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)f Fb(8)780 1301 y(pseudo-v)n(ariable)q(s)13
b Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)11 b Fb(11)780 1404 y Fo(R)780 1458 y Fb(reparen)o(ting)i
Fc(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)11 b Fb(5)780 1504
y(returning)k(v)n(alues)5 b Fc(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)t Fb(23)780
1607 y Fo(S)780 1661 y Fb(serv)o(ers)h Fc(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h Fb(4)780 1707 y(statemen)o(ts)g Fc(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f Fb(19)780 1752 y(string)14 b(extracting)c
Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)j Fb(15)780 1798 y(string)14 b(op)q(erations)8
b Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g Fb(26)780 1844 y(strings)k Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)h
Fb(3,)13 b(10,)g(15,)g(26)780 1947 y Fo(T)780 2001 y Fb(t)o(yp)q(e-c)o(hec)o
(king)d Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)i Fb(25)780 2047 y(t)o(yp)q(es)i
Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
Fb(10)780 2150 y Fo(V)780 2204 y Fb(v)n(ariables)c Fc(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)t Fb(5,)12
b(7,)h(10,)g(11,)g(34)780 2250 y(v)n(ariables,)i(lo)q(cal)8
b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h Fb(10)p eop
%%Page: 44 46
45 bop 0 -58 a Fp(44)753 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)0
183 y Fb(v)n(ariables,)i(metho)q(d)9 b Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)i Fb(10)0
229 y(v)n(ariables,)15 b(pseudo)6 b Fc(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fb(11)780
183 y(v)o(erbs)h Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
Fb(7,)13 b(33)p eop
%%Page: -1 47
46 bop 1487 -58 a Fp(i)0 183 y Fl(T)-7 b(able)15 b(of)g(Con)n(ten)n(ts)0
333 y Fo(In)n(tro)r(duction)j Fa(:)10 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)k Fo(1)0 455
y(1)67 b(The)22 b(COOLMUD)f(database)13 b Fa(:)c(:)h(:)g(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)j Fo(3)149
517 y Fp(1.1)45 b(V)l(alues)6 b Fh(:)i(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)e Fp(3)149 567 y(1.2)45 b(Ob)s(jects)t Fh(:)7
b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)s Fp(5)299
617 y(1.2.1)44 b(P)o(aren)o(ts)t Fh(:)6 b(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)s
Fp(5)299 667 y(1.2.2)44 b(Ob)s(ject)15 b(v)m(ariables)8 b Fh(:)h(:)e(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f Fp(6)299 717
y(1.2.3)44 b(Metho)q(ds)13 b Fh(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)k Fp(7)299 766
y(1.2.4)44 b(V)l(erbs)14 b Fh(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)k
Fp(7)0 876 y Fo(2)67 b(The)22 b(COOL)f(programming)j(language)6
b Fa(:)k(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)c Fo(9)149
939 y Fp(2.1)45 b(Commen)o(ts)6 b Fh(:)g(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)t Fp(9)149 989 y(2.2)45 b(Expressions)5 b Fh(:)j(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)t Fp(9)299 1038 y(2.2.1)44 b(Errors)7 b
Fh(:)f(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)f Fp(9)299 1088 y(2.2.2)44 b(Literals)14
b Fh(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)13 b Fp(10)299 1138 y(2.2.3)44 b(V)l(ariables)7
b Fh(:)h(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g Fp(10)299 1188 y(2.2.4)44 b(Arithmetic)10
b Fh(:)e(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)j Fp(12)299 1238 y(2.2.5)44 b(Comparing)15 b(v)m(alues)d
Fh(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)k Fp(13)299
1287 y(2.2.6)44 b(Conditional)16 b(expressions)5 b Fh(:)j(:)f(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)e Fp(13)299 1337 y(2.2.7)44 b(Lists)15 b(and)h(strings)e
Fh(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)14
b Fp(15)299 1387 y(2.2.8)44 b(Calling)16 b(built-in)i(functions)e(and)f
(other)g(metho)q(ds)7 b Fh(:)h(:)f(:)g(:)g(:)g(:)g Fp(17)299
1437 y(2.2.9)44 b(P)o(aren)o(theses)15 b(and)g(op)q(erator)f(precedence)h
Fh(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)13 b
Fp(18)149 1487 y(2.3)45 b(Statemen)o(ts)9 b Fh(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)i Fp(19)299 1537 y(2.3.1)44 b(Simple)17 b(statemen)o(ts)8
b Fh(:)e(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f Fp(19)299
1586 y(2.3.2)44 b(Conditional)16 b(execution)d Fh(:)7 b(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)j Fp(19)299 1636 y(2.3.3)44 b(Iteration)12 b Fh(:)7
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)j Fp(21)299 1686 y(2.3.4)44 b(Returning)16 b(a)f(v)m(alue)h(from)f(a)g
(metho)q(d)8 b Fh(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g Fp(23)299 1736 y(2.3.5)44 b(Executing)16 b(statemen)o(ts)e(at)g(a)h
(later)g(time)5 b Fh(:)j(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)e
Fp(23)299 1786 y(2.3.6)44 b(Errors)5 b Fh(:)h(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)e
Fp(24)149 1835 y(2.4)45 b(Built-in)18 b(functions)6 b Fh(:)h(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)f
Fp(24)299 1885 y(2.4.1)44 b(P)o(assing)15 b(execution)f Fh(:)7
b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)13 b Fp(24)299
1935 y(2.4.2)44 b(T)o(yp)q(e-c)o(hec)o(king)16 b(and)g(con)o(v)o(ersion)d
Fh(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)k Fp(25)299 1985 y(2.4.3)44 b(Op)q(erations)16 b(on)f(strings)5
b Fh(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)e Fp(26)299 2035
y(2.4.4)44 b(Op)q(erations)16 b(on)f(lists)c Fh(:)d(:)f(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)k Fp(28)299 2084 y(2.4.5)44 b(Op)q(erations)16
b(on)f(ob)s(jects)c Fh(:)6 b(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)i
Fp(29)299 2134 y(2.4.6)44 b(Miscellaneous)17 b(op)q(erations)c
Fh(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)13 b Fp(32)299 2184 y(2.4.7)44 b(System)15
b(functions)10 b Fh(:)d(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)i
Fp(33)149 2234 y(2.5)45 b(Syn)o(tax)15 b(for)f(ob)s(ject)h(co)q(de)6
b Fh(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)f
Fp(33)p eop
%%Page: -2 48
47 bop 0 -58 a Fp(ii)775 b(COOLMUD)16 b(Programmer's)d(Man)o(ual)299
42 y(2.5.1)44 b(P)o(aren)o(t)14 b(declarations)7 b Fh(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)h(:)e Fp(33)299 91 y(2.5.2)44 b(V)l(erb)15
b(declarations)6 b Fh(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)d
Fp(33)299 141 y(2.5.3)44 b(V)l(ariable)16 b(declarations)11
b Fh(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)k Fp(34)299 191
y(2.5.4)44 b(Metho)q(d)15 b(declarations)6 b Fh(:)i(:)f(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)f Fp(34)0 301 y Fo(3)67 b(Di\013erences)22 b(b)r(et)n(w)n(een)
g(COOL)f(and)i(MOO)9 b Fa(:)g(:)h(:)h(:)f(:)g(:)g(:)h(:)e Fo(35)0
423 y(4)67 b(Setting)23 b(up)g(a)g(new)f(COOLMUD)8 b Fa(:)f(:)k(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)e Fo(37)149
486 y Fp(4.1)45 b(In)o(terconnecting)16 b(COOLMUDs)10 b Fh(:)e(:)f(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)j Fp(37)0 596 y Fo(F)-6 b(unction)25
b(Index)14 b Fa(:)c(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)k Fo(39)0 718 y(V)-6 b(ariable)24 b(Index)7 b Fa(:)k(:)g(:)f(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)e
Fo(41)0 841 y(Concept)22 b(Index)7 b Fa(:)k(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)e Fo(43)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF